```
├── .gitignore (900 tokens)
├── 404.html (1000 tokens)
├── LICENSE (omitted)
├── README.md (1100 tokens)
├── README_ZH.md (700 tokens)
├── assets/
├── app.QsHol1cT.js (300 tokens)
├── chunks/
├── framework.CeqdBC-b.js (20.5k tokens)
├── image02.DB0K7DFT.js
├── theme.CRyEE-cC.js (12.4k tokens)
├── en_guide_ai-features.md.COujKbH0.js (500 tokens)
├── en_guide_ai-features.md.COujKbH0.lean.js (100 tokens)
├── en_guide_index.md.DrA16F9O.js (500 tokens)
├── en_guide_index.md.DrA16F9O.lean.js (100 tokens)
├── en_guide_roadmap.md.DN-0aW7H.js (500 tokens)
├── en_guide_roadmap.md.DN-0aW7H.lean.js (100 tokens)
├── en_index.md.dedvTNEO.js (400 tokens)
├── en_index.md.dedvTNEO.lean.js (400 tokens)
├── guide_ai-features.md.DVxpQNf4.js (300 tokens)
├── guide_ai-features.md.DVxpQNf4.lean.js (100 tokens)
├── guide_index.md.B30tUVAg.js (400 tokens)
├── guide_index.md.B30tUVAg.lean.js (100 tokens)
├── guide_roadmap.md.D7AvK8yc.js (300 tokens)
├── guide_roadmap.md.D7AvK8yc.lean.js (100 tokens)
├── index.md.Bnv00zW7.js (300 tokens)
├── index.md.Bnv00zW7.lean.js (300 tokens)
├── inter-italic-cyrillic-ext.r48I6akx.woff2
├── inter-italic-cyrillic.By2_1cv3.woff2
├── inter-italic-greek-ext.1u6EdAuj.woff2
├── inter-italic-greek.DJ8dCoTZ.woff2
├── inter-italic-latin-ext.CN1xVJS-.woff2
├── inter-italic-latin.C2AdPX0b.woff2
├── inter-italic-vietnamese.BSbpV94h.woff2
├── inter-roman-cyrillic-ext.BBPuwvHQ.woff2
├── inter-roman-cyrillic.C5lxZ8CY.woff2
├── inter-roman-greek-ext.CqjqNYQ-.woff2
├── inter-roman-greek.BBVDIX6e.woff2
├── inter-roman-latin-ext.4ZJIpNVo.woff2
├── inter-roman-latin.Di8DUHzh.woff2
├── inter-roman-vietnamese.BjW4sHH5.woff2
├── style.-nVel7qH.css (23.1k tokens)
├── en/
├── guide/
├── ai-features.html (3.6k tokens)
├── index.html (3.6k tokens)
├── roadmap.html (3.5k tokens)
├── index.html (4.1k tokens)
├── example/
├── api.png
├── codecs.png
├── image01.png
├── image02.png
├── translate_cn.png
├── translate_en.png
├── guide/
├── ai-features.html (3.4k tokens)
├── index.html (3.4k tokens)
├── roadmap.html (3.4k tokens)
├── hashmap.json
├── index.html (3.8k tokens)
├── logo.png
├── update/
├── update.json (100 tokens)
├── vp-icons.css (200 tokens)
├── web/
├── assets/
├── css/
├── 260510-index-Be-7j-lN.css (176.4k tokens)
├── js/
├── 260510-index-BIHQjUrc.js (307.6k tokens)
├── 260510-library-BXq6mN_1.js (104.6k tokens)
├── 260510-runtime-CdH-rVhC.js (900 tokens)
├── 260510-vendor-BRWJb4--.js (67.6k tokens)
├── libs/
├── esm-runtime.js (33.8k tokens)
├── zlib.min.js (omitted)
├── plugins/
├── plugin-whisper/
├── index.js (25.3k tokens)
├── png/
├── 260510-grid-white-DC7z3u5z.png
├── index.html (18.4k tokens)
├── locales/
├── en.json (3k tokens)
├── ja.json (2.6k tokens)
├── ko.json (2.6k tokens)
├── zh.json (2.4k tokens)
├── zh_tw.json (2.4k tokens)
├── resource/
├── icon/
├── icon.png
├── icon_head.png
├── icon_login.png
├── user.png
├── images/
├── comfy/
├── default.png
├── thum.jpg
├── covers/
├── ass.jpg
├── audio.jpg
├── font.jpg
├── image.jpg
├── loading.jpg
├── lrc.jpg
├── missing.jpg
├── smart.jpg
├── srt.jpg
├── txt.jpg
├── video.jpg
├── crads/
├── Forest.jpg
├── Mountain.jpg
├── Portrait.jpg
├── Waterfall.jpg
├── generate/
├── loading.jpg
├── transparent.png
├── peview/
├── cover.png
├── cover_bg.jpg
├── storyboard/
├── example01.jpg
├── sounds/
├── msg_error.mp3
├── msg_generate.mp3
```
## /.gitignore
```gitignore path="/.gitignore"
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[codz]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py.cover
.hypothesis/
.pytest_cache/
cover/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
.pybuilder/
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# UV
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
#uv.lock
# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock
#poetry.toml
# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
# pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
# https://pdm-project.org/en/latest/usage/project/#working-with-version-control
#pdm.lock
#pdm.toml
.pdm-python
.pdm-build/
# pixi
# Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
#pixi.lock
# Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
# in the .venv directory. It is recommended not to include this directory in version control.
.pixi
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.envrc
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# pytype static type analyzer
.pytype/
# Cython debug symbols
cython_debug/
# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
# Abstra
# Abstra is an AI-powered process automation framework.
# Ignore directories containing user credentials, local state, and settings.
# Learn more at https://abstra.io/docs
.abstra/
# Visual Studio Code
# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
# and can be added to the global gitignore or merged into this file. However, if you prefer,
# you could uncomment the following to ignore the entire vscode folder
# .vscode/
# Ruff stuff:
.ruff_cache/
# PyPI configuration file
.pypirc
# Cursor
# Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
# exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
# refer to https://docs.cursor.com/context/ignore-files
.cursorignore
.cursorindexingignore
# Marimo
marimo/_static/
marimo/_lsp/
__marimo__/
```
## /404.html
```html path="/404.html"
<!DOCTYPE html>
<html lang="zh-CN" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>404 | ComeCut 「来剪」</title>
<meta name="description" content="Not Found">
<meta name="generator" content="VitePress v1.6.4">
<link rel="preload stylesheet" href="/ComeCut/assets/style.-nVel7qH.css" as="style">
<link rel="preload stylesheet" href="/ComeCut/vp-icons.css" as="style">
<script type="module" src="/ComeCut/assets/app.QsHol1cT.js"></script>
<link rel="preload" href="/ComeCut/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="icon" href="/logo.png">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"en_guide_ai-features.md\":\"COujKbH0\",\"en_guide_index.md\":\"DrA16F9O\",\"en_guide_roadmap.md\":\"DN-0aW7H\",\"en_index.md\":\"dedvTNEO\",\"guide_ai-features.md\":\"DVxpQNf4\",\"guide_index.md\":\"B30tUVAg\",\"guide_roadmap.md\":\"D7AvK8yc\",\"index.md\":\"Bnv00zW7\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"ComeCut\",\"description\":\"Free, Open-Source, AI-Powered Cross-Platform Video Editor\",\"base\":\"/ComeCut/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{},\"locales\":{\"root\":{\"label\":\"简体中文\",\"lang\":\"zh-CN\",\"title\":\"ComeCut 「来剪」\",\"description\":\"免费、AI 驱动、全平台视频编辑工具\",\"themeConfig\":{\"logo\":\"/logo.png\",\"nav\":[{\"text\":\"首页\",\"link\":\"/\"},{\"text\":\"指南\",\"link\":\"/guide/\"},{\"text\":\"下载\",\"link\":\"https://github.com/juntaosun/ComeCut/releases/\"},{\"text\":\"使用 ComeCut 线上版\",\"link\":\"https://juntaosun.github.io/ComeCut/web/\"}],\"sidebar\":[{\"text\":\"入门指南\",\"items\":[{\"text\":\"什么是 ComeCut\",\"link\":\"/guide/\"},{\"text\":\"AI 驱动特性\",\"link\":\"/guide/ai-features\"},{\"text\":\"路线图\",\"link\":\"/guide/roadmap\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/juntaosun/ComeCut\"}],\"footer\":{\"message\":\"基于 AGPL 3.0 协议发布\",\"copyright\":\"Copyright © 2025-present juntaosun\"},\"editLink\":{\"pattern\":\"https://github.com/juntaosun/ComeCut/edit/main/vitepress/:path\",\"text\":\"在 GitHub 上编辑此页\"},\"lastUpdated\":{\"text\":\"最后更新于\"},\"docFooter\":{\"prev\":\"上一页\",\"next\":\"下一页\"},\"outline\":{\"label\":\"页面导航\"},\"darkModeSwitchLabel\":\"主题\",\"sidebarMenuLabel\":\"菜单\",\"returnToTopLabel\":\"回到顶部\",\"langMenuLabel\":\"语言\",\"search\":{\"provider\":\"local\",\"options\":{\"translations\":{\"button\":{\"buttonText\":\"搜索文档\",\"buttonAriaLabel\":\"搜索文档\"},\"modal\":{\"noResultsText\":\"无法找到相关结果\",\"resetButtonTitle\":\"清除查询条件\",\"footer\":{\"selectText\":\"选择\",\"navigateText\":\"切换\",\"closeText\":\"关闭\"}}}}}}},\"en\":{\"label\":\"English\",\"lang\":\"en-US\",\"title\":\"ComeCut\",\"description\":\"Free, AI-Powered, Cross-Platform Video Editor\",\"themeConfig\":{\"logo\":\"/logo.png\",\"nav\":[{\"text\":\"Home\",\"link\":\"/en/\"},{\"text\":\"Guide\",\"link\":\"/en/guide/\"},{\"text\":\"Downloads\",\"link\":\"https://github.com/juntaosun/ComeCut/releases/\"},{\"text\":\"Use ComeCut online\",\"link\":\"https://juntaosun.github.io/ComeCut/web/\"}],\"sidebar\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"What is ComeCut\",\"link\":\"/en/guide/\"},{\"text\":\"AI-Powered Features\",\"link\":\"/en/guide/ai-features\"},{\"text\":\"Roadmap\",\"link\":\"/en/guide/roadmap\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/juntaosun/ComeCut\"}],\"footer\":{\"message\":\"Released under the AGPL 3.0 License\",\"copyright\":\"Copyright © 2025-present juntaosun\"},\"editLink\":{\"pattern\":\"https://github.com/juntaosun/ComeCut/edit/main/vitepress/en/:path\",\"text\":\"Edit this page on GitHub\"},\"lastUpdated\":{\"text\":\"Last updated\"},\"docFooter\":{\"prev\":\"Previous page\",\"next\":\"Next page\"},\"outline\":{\"label\":\"On this page\"},\"darkModeSwitchLabel\":\"Theme\",\"sidebarMenuLabel\":\"Menu\",\"returnToTopLabel\":\"Return to top\",\"langMenuLabel\":\"Language\",\"search\":{\"provider\":\"local\",\"options\":{\"translations\":{\"button\":{\"buttonText\":\"Search\",\"buttonAriaLabel\":\"Search\"},\"modal\":{\"noResultsText\":\"No results found\",\"resetButtonTitle\":\"Clear search\",\"footer\":{\"selectText\":\"to select\",\"navigateText\":\"to navigate\",\"closeText\":\"to close\"}}}}}}}},\"scrollOffset\":134,\"cleanUrls\":true}");</script>
</body>
</html>
```
## /README.md
<div align="center">
<img src="./logo.png" alt="ComeCut Logo" width="120" />
<h1>ComeCut 「来剪」</h1>
<p><b>A Free, Lightweight, and AI-Powered Video Editing Suite for Web & Desktop</b></p>
<p>
<img src="https://img.shields.io/badge/License-AGPL%203.0-blue.svg" alt="License" />
<img src="https://img.shields.io/badge/Version-Beta-orange.svg" alt="Version" />
<img src="https://img.shields.io/badge/Platform-Web%20|%20Win%20|%20Mac%20|%20Linux-brightgreen.svg" alt="Platform" />
<a href="https://juntaosun.github.io/ComeCut/"><img src="https://img.shields.io/badge/Demo-Online-red.svg" alt="Online Demo" /></a>
</p>
<h3>
<a href="README.md">English</a> | <a href="README_ZH.md">简体中文</a>
</h3>
</div>
---
<div align="center">
<img src='./example/image01.png' width="75%" style="border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);" />
</div>
## 🎁 Why ComeCut?
Our vision is to empower everyone with a professional-grade, AI-enhanced video editing experience. By leveraging the open-source community, we provide a truly free and scalable ecosystem.
* ✨ **Completely Free**: No hidden costs, unlimited usage.
* 🚀 **No Registration**: Start creating immediately—no account required.
* 🔒 **Privacy First**: Fully localized processing ensures your data stays yours.
* 🤖 **AI-Driven**: Seamlessly integrates state-of-the-art AI models.
* 🎨 **Powerful Tools**: A full-featured editor right in your browser or desktop.
* 👉 **ComfyUI**: It now supports workflows such as z-image, qwen-edit, klein, and ltx2.*
> Note: The ComfyUI workflow requires some simple setup to handle input control~
Z-Image, Flux-2-klein-4b/9b
Qwen-Image-Edit-2509/2511
Wan2.1, Wan2.2, LTX-2.3
* 🍌 **Nano banana**: Google Gemini banana is now supported for the following graph model:
> gemini-2.5-flash-image
gemini-3-pro-image-preview
* 🤗 **ASR**: Web platform audio to text, now available!
* 👉 **Ultra-Fast Cutout**: Integrated cutout, one-click instant cutout, hair-level cutout!
* 👉 **GIF GIFs**: Integrated GIF export for one-click generation, enjoy playing with GIFs and emojis!
* 👉 **Transition Engine**: A brand-new transition engine is ready—over 100 transition effects are coming soon!
> Support for creating custom transitions is now available, and Agent mode will be integrated in a future update.
* 👉 **Effects Engine**: A brand-new effects engine is ready—over 100 filter effects are coming soon!
> Customization and filter features are currently under development ~
* 👉 **Efficient Controls**: A completely new control experience—pan, rotate, and scale with greater freedom!
> Note: It downloads the model from huggingface.co
* ⬇️ **Desktop version**: The desktop version (Windows) has been successfully compiled and is now available for download!
---
## ✨ AI-Powered Ecosystem
### 🌐 100+ Global APIs & Large Models
ComeCut integrates with the world's leading AI providers to bring you the latest in generative video and audio technology.
<div align="center">
<img src='./example/api.png' width="80%" />
</div>
### 📝 Smart Subtitle Translation (SRT/VTT/LRC)
Effortlessly translate subtitles into multiple languages with one click, supporting dual-language display.
<div align="center">
<img src='./example/translate_en.png' width="80%" style="border-radius: 8px;" />
</div>
<div align="center">
<img src='./example/image02.png' width="90%" style="border-radius: 8px; margin-top: 20px;" />
</div>
---
## 🗺️ Roadmap (In Progress)
- [ ] 🎙️ **AI Voice Recognition**: Automatically generate subtitles from audio tracks.
- [ ] 🎭 **AI Creative Studio**: Integration with `Seedance-2.0`, `Veo3.1`, `Sora2` for AI short dramas and comics.
- [ ] 🎬 **AI Video Translation & Dubbing**: One-click localized dubbing (e.g., English to Mandarin).
---
## ⚡ Get Started
### Online Demo
Try the latest canary build directly in your browser:
👉 **[Canary Build Online Demo](https://juntaosun.github.io/ComeCut/)**
| Windows | MacOS | Linux |
| :---: | :---: | :---: |
| ✅ Beta | ✅ Beta | ✅ Beta |
---
## 💬 Community & Support
- 🌟 **Early Stage**: This project is growing fast! We have many exciting features in the pipeline.
- 💡 **Feedback**: Have an idea or found a bug? Open an [Issue](https://github.com/juntaosun/ComeCut/issues)!
- 🤝 **Contributing**: We appreciate your interest! We recommend waiting for the project to stabilize before making major contributions.
## 👏 News
- **[2026-06-10]** 🚀 **release v0.1.3**
- **[2026-06-06]** 🚀 **release v0.1.2**
- **[2026-06-05]** 🚀 **release v0.1.1**
- **[2026-05-18]** 🚀 **Compiled desktop version, website showcase, documentation, and changelog.**
- **[2025-09-07]** 🚀 **ComeCut project officially started!**
<details>
<summary>View More</summary>
...
</details>
---
## 🛡️ Privacy & Security
- **No Data Collection**: We don't track you or collect personal information.
- **Local Storage**: All project data is stored in your browser's local storage or your local machine.
- **API Access**: You are responsible for the privacy of the API model and the third-party API and you.
## 🔑 License
Copyright © 2025 **juntaosun** and contributors.
Licensed under the [GNU Affero General Public License v3.0](LICENSE).
> **Disclaimer**: ComeCut is for educational and research purposes. Users are responsible for complying with local laws and the terms of this license.
---
<div align="center">
<b>If you find ComeCut helpful, please give us a star! ⭐⭐⭐⭐⭐</b>
</div>
## /README_ZH.md
<div align="center">
<img src="./logo.png" alt="ComeCut Logo" width="120" />
<h1>ComeCut 「来剪」</h1>
<p><b>免费、轻量、AI 驱动的全平台视频编辑工具(网页版 & 桌面版)</b></p>
<p>
<img src="https://img.shields.io/badge/许可证-AGPL%203.0-blue.svg" alt="License" />
<img src="https://img.shields.io/badge/版本-Beta-orange.svg" alt="Version" />
<img src="https://img.shields.io/badge/平台-Web%20|%20Win%20|%20Mac%20|%20Linux-brightgreen.svg" alt="Platform" />
<a href="https://juntaosun.github.io/ComeCut/"><img src="https://img.shields.io/badge/在线演示-点击进入-red.svg" alt="Online Demo" /></a>
</p>
<h3>
<a href="README.md">English</a> | <a href="README_ZH.md">简体中文</a>
</h3>
</div>
---
<div align="center">
<img src='./example/image01.png' width="75%" style="border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);" />
</div>
## 🎁 为什么选择 ComeCut?
我们的愿景是:充分整合开源社区的力量,打造一个真正免费、开放、可扩展的 AI 视频编辑生态系统,惠及所有人。
* ✅ **完全免费**:无任何使用限制,无隐藏付费。
* 🚀 **无需注册**:即开即用,保护您的使用隐私。
* 🔒 **本地安全**:数据完全本地化处理,安全可靠。
* 🤖 **AI 赋能**:深度集成前沿 AI 模型。
* 🎨 **功能强大**:提供媲美专业软件的视频编辑体验。
* 👉 **ComfyUI**: 现已支持 z-image, qwen-edit, klein, and ltx2.* 等工作流。
> 备注:ComfyUI 工作流需要进行一些简单的设置以便能处理输入控制~
Z-Image, Flux-2-klein-4b/9b
Qwen-Image-Edit-2509/2511
Wan2.1, Wan2.2, LTX-2.3
* 🍌 **Nano banana**: 现已支持谷歌Gemini 香蕉(Nano banana)生图模型如下:
> gemini-2.5-flash-image
gemini-3-pro-image-preview
* 🤗 **ASR**: Web平台音频转文本,现在可用了!
> 说明: 默认从 huggingface.co 下载模型!
* 👉 **极速抠图**: 集成抠图,一键秒抠,发丝级别!
* 👉 **GIF动图**: 集成 GIF 动图导出,一键生成,畅玩动图/表情包!
* 👉 **转场引擎**: 全新转场引擎已搭建完成,任意 100+ 转场效果,即将到来!
> 现在支持新建自定义转场,后续将接入 Agent 模式 ~
* 👉 **特效引擎**: 全新特效引擎已搭建完成,任意 100+ 滤镜效果,即将到来! 、
> 自定义以及滤镜功能,正在构建中 ~
* 👉 **高效操作**: 全新控操体验,平移,旋转,缩放,更自由!
* ⬇️ **桌面版本**: 桌面版(Windows)已成功编译,现在可以下载使用了!
---
## ✨ AI 驱动的生态系统
### 🌐 支持全球 100+ API 大模型
ComeCut 接入了全球顶尖的 AI 能力,让您在剪辑过程中随时调用最强的生成式 AI。
<div align="center">
<img src='./example/api.png' width="80%" />
</div>
### 📝 AI 字幕翻译 (SRT/VTT/LRC)
双语字幕一键翻译,支持多种格式,让跨语言创作变得轻而易举。
<div align="center">
<img src='./example/translate_cn.png' width="80%" style="border-radius: 8px;" />
</div>
<div align="center">
<img src='./example/image02.png' width="90%" style="border-radius: 8px; margin-top: 20px;" />
</div>
---
## 🗺️ 路线图 (进行中)
- [ ] 🎙️ **AI 语音识别**:自动将语音轨道识别并生成字幕。
- [ ] 🎭 **AI 自由创作**:未来将接入 `Seedance-2.0`, `Veo3.1`, `Sora2` 等,轻松创作 AI 短剧/漫剧。
- [ ] 🎬 **AI 视频译制配音**:支持美剧/韩剧/日剧等一键译制成国语配音。
---
## ⚡ 在线演示
### 立即体验
无需安装,直接在浏览器中试用:
👉 **[在线演示入口](https://juntaosun.github.io/ComeCut/)**
| Windows | MacOS | Linux |
| :---: | :---: | :---: |
| ✅ Beta | ✅ Beta | ✅ Beta |
---
## 💬 交流与贡献
- 🌟 **早期阶段**:这是一个快速发展的项目,我们有许多新颖有趣的创意正在实现中。
- 💡 **反馈建议**:如果您有任何疑问或想法,欢迎通过 [Issues](https://github.com/juntaosun/ComeCut/issues) 与我们联系!
- 🤝 **参与贡献**:感谢您的关注,建议在项目进入稳定版本后再进行大规模代码贡献。
## 👏 最新动态
- **[2026-06-06]** 🚀 **release v0.1.2**
- **[2026-06-05]** 🚀 **release v0.1.1**
- **[2026-05-18]** 🚀 **编译桌面版本、网站展示,文档和更新日志。**
- **[2025-09-07]** 🚀 **ComeCut 项目正式启动!**
<details>
<summary>查看更多</summary>
...
</details>
---
## 🛡️ 隐私声明
- **无数据收集**:ComeCut 不会收集您的任何个人隐私数据。
- **本地存储**:所有创作数据均存储在您的本地浏览器或本地磁盘中。
- **API接入**:API大模型由您自行接入, 其隐私由第三方API和您自行负责。
## 🔑 许可证
版权所有 © 2025 **juntaosun** 及其他贡献者。
本程序基于 [GNU Affero General Public License v3.0](LICENSE) 协议。
> **免责声明**:ComeCut 仅用于教育学习和研究用途。请确保您的使用符合当地法律法规。
---
<div align="center">
<b>如果您觉得 ComeCut 对您有帮助,请点个 Star 鼓励一下! ⭐⭐⭐⭐⭐</b>
</div>
## /assets/app.QsHol1cT.js
```js path="/assets/app.QsHol1cT.js"
import{R as p}from"./chunks/theme.CRyEE-cC.js";import{p as s,a5 as i,R as u,q as c,l,a as f,C as d,S as m,g as h,I as g,h as A,m as C,$ as R,B as v,a9 as w,a1 as y,Z as P,Y as S,o as b}from"./chunks/framework.CeqdBC-b.js";function r(e){if(e.extends){const t=r(e.extends);return{...t,...e,async enhanceApp(a){t.enhanceApp&&await t.enhanceApp(a),e.enhanceApp&&await e.enhanceApp(a)}}}return e}const n=r(p),E=C({name:"VitePressApp",setup(){const{site:e,lang:t,dir:a}=R();return v(()=>{w(()=>{document.documentElement.lang=t.value,document.documentElement.dir=a.value})}),e.value.router.prefetchLinks&&y(),P(),S(),n.setup&&n.setup(),()=>b(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),t=D();t.provide(u,e);const a=c(e.route);return t.provide(l,a),t.component("Content",f),t.component("ClientOnly",d),Object.defineProperties(t.config.globalProperties,{$frontmatter:{get(){return a.frontmatter.value}},$params:{get(){return a.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:t,router:e,siteData:m}),{app:t,router:e,data:a}}function D(){return A(E)}function _(){let e=s;return h(t=>{let a=g(t),o=null;return a&&(e&&(a=a.replace(/\.js$/,".lean.js")),o=import(a)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:t,data:a})=>{t.go().then(()=>{i(t.route,a.site),e.mount("#app")})});export{T as createApp};
```
## /assets/chunks/framework.CeqdBC-b.js
```js path="/assets/chunks/framework.CeqdBC-b.js"
/**
* @vue/shared v3.5.34
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function Hs(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const re={},Mt=[],qe=()=>{},Qr=()=>!1,rn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Nn=e=>e.startsWith("onUpdate:"),he=Object.assign,Ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Do=Object.prototype.hasOwnProperty,Z=(e,t)=>Do.call(e,t),K=Array.isArray,Pt=e=>on(e)==="[object Map]",Zr=e=>on(e)==="[object Set]",ir=e=>on(e)==="[object Date]",G=e=>typeof e=="function",le=e=>typeof e=="string",Oe=e=>typeof e=="symbol",Q=e=>e!==null&&typeof e=="object",ei=e=>(Q(e)||G(e))&&G(e.then)&&G(e.catch),ti=Object.prototype.toString,on=e=>ti.call(e),jo=e=>on(e).slice(8,-1),ni=e=>on(e)==="[object Object]",Fn=e=>le(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,mt=Hs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Hn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},$o=/-\w/g,xe=Hn(e=>e.replace($o,t=>t.slice(1).toUpperCase())),Vo=/\B([A-Z])/g,at=Hn(e=>e.replace(Vo,"-$1").toLowerCase()),Dn=Hn(e=>e.charAt(0).toUpperCase()+e.slice(1)),wn=Hn(e=>e?`on${Dn(e)}`:""),Ke=(e,t)=>!Object.is(e,t),es=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},si=(e,t,n,s=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},ko=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Wo=e=>{const t=le(e)?Number(e):NaN;return isNaN(t)?e:t};let or;const jn=()=>or||(or=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function js(e){if(K(e)){const t={};for(let n=0;n<e.length;n++){const s=e[n],r=le(s)?qo(s):js(s);if(r)for(const i in r)t[i]=r[i]}return t}else if(le(e)||Q(e))return e}const Uo=/;(?![^(]*\))/g,Bo=/:([^]+)/,Ko=/\/\*[^]*?\*\//g;function qo(e){const t={};return e.replace(Ko,"").split(Uo).forEach(n=>{if(n){const s=n.split(Bo);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function $s(e){let t="";if(le(e))t=e;else if(K(e))for(let n=0;n<e.length;n++){const s=$s(e[n]);s&&(t+=s+" ")}else if(Q(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const Go="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Xo=Hs(Go);function ri(e){return!!e||e===""}function Yo(e,t){if(e.length!==t.length)return!1;let n=!0;for(let s=0;n&&s<e.length;s++)n=Vs(e[s],t[s]);return n}function Vs(e,t){if(e===t)return!0;let n=ir(e),s=ir(t);if(n||s)return n&&s?e.getTime()===t.getTime():!1;if(n=Oe(e),s=Oe(t),n||s)return e===t;if(n=K(e),s=K(t),n||s)return n&&s?Yo(e,t):!1;if(n=Q(e),s=Q(t),n||s){if(!n||!s)return!1;const r=Object.keys(e).length,i=Object.keys(t).length;if(r!==i)return!1;for(const l in e){const o=e.hasOwnProperty(l),c=t.hasOwnProperty(l);if(o&&!c||!o&&c||!Vs(e[l],t[l]))return!1}}return String(e)===String(t)}const ii=e=>!!(e&&e.__v_isRef===!0),Jo=e=>le(e)?e:e==null?"":K(e)||Q(e)&&(e.toString===ti||!G(e.toString))?ii(e)?Jo(e.value):JSON.stringify(e,oi,2):String(e),oi=(e,t)=>ii(t)?oi(e,t.value):Pt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],i)=>(n[ts(s,i)+" =>"]=r,n),{})}:Zr(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ts(n))}:Oe(t)?ts(t):Q(t)&&!K(t)&&!ni(t)?String(t):t,ts=(e,t="")=>{var n;return Oe(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/**
* @vue/reactivity v3.5.34
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let de;class zo{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&de&&(de.active?(this.parent=de,this.index=(de.scopes||(de.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].pause();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].resume();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].resume()}}run(t){if(this._active){const n=de;try{return de=this,t()}finally{de=n}}}on(){++this._on===1&&(this.prevScope=de,de=this)}off(){if(this._on>0&&--this._on===0){if(de===this)de=this.prevScope;else{let t=de;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n<s;n++)this.effects[n].stop();for(this.effects.length=0,n=0,s=this.cleanups.length;n<s;n++)this.cleanups[n]();if(this.cleanups.length=0,this.scopes){for(n=0,s=this.scopes.length;n<s;n++)this.scopes[n].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const r=this.parent.scopes.pop();r&&r!==this&&(this.parent.scopes[this.index]=r,r.index=this.index)}this.parent=void 0}}}function li(){return de}function Qo(e,t=!1){de&&de.cleanups.push(e)}let se;const ns=new WeakSet;class ci{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,de&&(de.active?de.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,ns.has(this)&&(ns.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||fi(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,lr(this),ui(this);const t=se,n=He;se=this,He=!0;try{return this.fn()}finally{di(this),se=t,He=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)Us(t);this.deps=this.depsTail=void 0,lr(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?ns.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){xs(this)&&this.run()}get dirty(){return xs(this)}}let ai=0,Bt,Kt;function fi(e,t=!1){if(e.flags|=8,t){e.next=Kt,Kt=e;return}e.next=Bt,Bt=e}function ks(){ai++}function Ws(){if(--ai>0)return;if(Kt){let t=Kt;for(Kt=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Bt;){let t=Bt;for(Bt=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function ui(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function di(e){let t,n=e.depsTail,s=n;for(;s;){const r=s.prevDep;s.version===-1?(s===n&&(n=r),Us(s),Zo(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=r}e.deps=t,e.depsTail=n}function xs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(hi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function hi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Yt)||(e.globalVersion=Yt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!xs(e))))return;e.flags|=2;const t=e.dep,n=se,s=He;se=e,He=!0;try{ui(e);const r=e.fn(e._value);(t.version===0||Ke(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{se=n,He=s,di(e),e.flags&=-3}}function Us(e,t=!1){const{dep:n,prevSub:s,nextSub:r}=e;if(s&&(s.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)Us(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Zo(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let He=!0;const pi=[];function Qe(){pi.push(He),He=!1}function Ze(){const e=pi.pop();He=e===void 0?!0:e}function lr(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=se;se=void 0;try{t()}finally{se=n}}}let Yt=0;class el{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class $n{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!se||!He||se===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==se)n=this.activeLink=new el(se,this),se.deps?(n.prevDep=se.depsTail,se.depsTail.nextDep=n,se.depsTail=n):se.deps=se.depsTail=n,gi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=se.depsTail,n.nextDep=void 0,se.depsTail.nextDep=n,se.depsTail=n,se.deps===n&&(se.deps=s)}return n}trigger(t){this.version++,Yt++,this.notify(t)}notify(t){ks();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Ws()}}}function gi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)gi(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Cn=new WeakMap,vt=Symbol(""),Ts=Symbol(""),Jt=Symbol("");function ve(e,t,n){if(He&&se){let s=Cn.get(e);s||Cn.set(e,s=new Map);let r=s.get(n);r||(s.set(n,r=new $n),r.map=s,r.key=n),r.track()}}function ze(e,t,n,s,r,i){const l=Cn.get(e);if(!l){Yt++;return}const o=c=>{c&&c.trigger()};if(ks(),t==="clear")l.forEach(o);else{const c=K(e),f=c&&Fn(n);if(c&&n==="length"){const a=Number(s);l.forEach((h,v)=>{(v==="length"||v===Jt||!Oe(v)&&v>=a)&&o(h)})}else switch((n!==void 0||l.has(void 0))&&o(l.get(n)),f&&o(l.get(Jt)),t){case"add":c?f&&o(l.get("length")):(o(l.get(vt)),Pt(e)&&o(l.get(Ts)));break;case"delete":c||(o(l.get(vt)),Pt(e)&&o(l.get(Ts)));break;case"set":Pt(e)&&o(l.get(vt));break}}Ws()}function tl(e,t){const n=Cn.get(e);return n&&n.get(t)}function At(e){const t=z(e);return t===e?t:(ve(t,"iterate",Jt),Re(e)?t:t.map(De))}function Vn(e){return ve(e=z(e),"iterate",Jt),e}function Be(e,t){return et(e)?Ft(lt(e)?De(t):t):De(t)}const nl={__proto__:null,[Symbol.iterator](){return ss(this,Symbol.iterator,e=>Be(this,e))},concat(...e){return At(this).concat(...e.map(t=>K(t)?At(t):t))},entries(){return ss(this,"entries",e=>(e[1]=Be(this,e[1]),e))},every(e,t){return Ge(this,"every",e,t,void 0,arguments)},filter(e,t){return Ge(this,"filter",e,t,n=>n.map(s=>Be(this,s)),arguments)},find(e,t){return Ge(this,"find",e,t,n=>Be(this,n),arguments)},findIndex(e,t){return Ge(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ge(this,"findLast",e,t,n=>Be(this,n),arguments)},findLastIndex(e,t){return Ge(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ge(this,"forEach",e,t,void 0,arguments)},includes(...e){return rs(this,"includes",e)},indexOf(...e){return rs(this,"indexOf",e)},join(e){return At(this).join(e)},lastIndexOf(...e){return rs(this,"lastIndexOf",e)},map(e,t){return Ge(this,"map",e,t,void 0,arguments)},pop(){return $t(this,"pop")},push(...e){return $t(this,"push",e)},reduce(e,...t){return cr(this,"reduce",e,t)},reduceRight(e,...t){return cr(this,"reduceRight",e,t)},shift(){return $t(this,"shift")},some(e,t){return Ge(this,"some",e,t,void 0,arguments)},splice(...e){return $t(this,"splice",e)},toReversed(){return At(this).toReversed()},toSorted(e){return At(this).toSorted(e)},toSpliced(...e){return At(this).toSpliced(...e)},unshift(...e){return $t(this,"unshift",e)},values(){return ss(this,"values",e=>Be(this,e))}};function ss(e,t,n){const s=Vn(e),r=s[t]();return s!==e&&!Re(e)&&(r._next=r.next,r.next=()=>{const i=r._next();return i.done||(i.value=n(i.value)),i}),r}const sl=Array.prototype;function Ge(e,t,n,s,r,i){const l=Vn(e),o=l!==e&&!Re(e),c=l[t];if(c!==sl[t]){const h=c.apply(e,i);return o?De(h):h}let f=n;l!==e&&(o?f=function(h,v){return n.call(this,Be(e,h),v,e)}:n.length>2&&(f=function(h,v){return n.call(this,h,v,e)}));const a=c.call(l,f,s);return o&&r?r(a):a}function cr(e,t,n,s){const r=Vn(e),i=r!==e&&!Re(e);let l=n,o=!1;r!==e&&(i?(o=s.length===0,l=function(f,a,h){return o&&(o=!1,f=Be(e,f)),n.call(this,f,Be(e,a),h,e)}):n.length>3&&(l=function(f,a,h){return n.call(this,f,a,h,e)}));const c=r[t](l,...s);return o?Be(e,c):c}function rs(e,t,n){const s=z(e);ve(s,"iterate",Jt);const r=s[t](...n);return(r===-1||r===!1)&&kn(n[0])?(n[0]=z(n[0]),s[t](...n)):r}function $t(e,t,n=[]){Qe(),ks();const s=z(e)[t].apply(e,n);return Ws(),Ze(),s}const rl=Hs("__proto__,__v_isRef,__isVue"),mi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Oe));function il(e){Oe(e)||(e=String(e));const t=z(this);return ve(t,"has",e),t.hasOwnProperty(e)}class vi{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return s===(r?i?gl:wi:i?bi:_i).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const l=K(t);if(!r){let c;if(l&&(c=nl[n]))return c;if(n==="hasOwnProperty")return il}const o=Reflect.get(t,n,fe(t)?t:s);if((Oe(n)?mi.has(n):rl(n))||(r||ve(t,"get",n),i))return o;if(fe(o)){const c=l&&Fn(n)?o:o.value;return r&&Q(c)?zt(c):c}return Q(o)?r?zt(o):Nt(o):o}}class yi extends vi{constructor(t=!1){super(!1,t)}set(t,n,s,r){let i=t[n];const l=K(t)&&Fn(n);if(!this._isShallow){const f=et(i);if(!Re(s)&&!et(s)&&(i=z(i),s=z(s)),!l&&fe(i)&&!fe(s))return f||(i.value=s),!0}const o=l?Number(n)<t.length:Z(t,n),c=Reflect.set(t,n,s,fe(t)?t:r);return t===z(r)&&(o?Ke(s,i)&&ze(t,"set",n,s):ze(t,"add",n,s)),c}deleteProperty(t,n){const s=Z(t,n);t[n];const r=Reflect.deleteProperty(t,n);return r&&s&&ze(t,"delete",n,void 0),r}has(t,n){const s=Reflect.has(t,n);return(!Oe(n)||!mi.has(n))&&ve(t,"has",n),s}ownKeys(t){return ve(t,"iterate",K(t)?"length":vt),Reflect.ownKeys(t)}}class ol extends vi{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const ll=new yi,cl=new ol,al=new yi(!0);const Cs=e=>e,un=e=>Reflect.getPrototypeOf(e);function fl(e,t,n){return function(...s){const r=this.__v_raw,i=z(r),l=Pt(i),o=e==="entries"||e===Symbol.iterator&&l,c=e==="keys"&&l,f=r[e](...s),a=n?Cs:t?Ft:De;return!t&&ve(i,"iterate",c?Ts:vt),he(Object.create(f),{next(){const{value:h,done:v}=f.next();return v?{value:h,done:v}:{value:o?[a(h[0]),a(h[1])]:a(h),done:v}}})}}function dn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ul(e,t){const n={get(r){const i=this.__v_raw,l=z(i),o=z(r);e||(Ke(r,o)&&ve(l,"get",r),ve(l,"get",o));const{has:c}=un(l),f=t?Cs:e?Ft:De;if(c.call(l,r))return f(i.get(r));if(c.call(l,o))return f(i.get(o));i!==l&&i.get(r)},get size(){const r=this.__v_raw;return!e&&ve(z(r),"iterate",vt),r.size},has(r){const i=this.__v_raw,l=z(i),o=z(r);return e||(Ke(r,o)&&ve(l,"has",r),ve(l,"has",o)),r===o?i.has(r):i.has(r)||i.has(o)},forEach(r,i){const l=this,o=l.__v_raw,c=z(o),f=t?Cs:e?Ft:De;return!e&&ve(c,"iterate",vt),o.forEach((a,h)=>r.call(i,f(a),f(h),l))}};return he(n,e?{add:dn("add"),set:dn("set"),delete:dn("delete"),clear:dn("clear")}:{add(r){const i=z(this),l=un(i),o=z(r),c=!t&&!Re(r)&&!et(r)?o:r;return l.has.call(i,c)||Ke(r,c)&&l.has.call(i,r)||Ke(o,c)&&l.has.call(i,o)||(i.add(c),ze(i,"add",c,c)),this},set(r,i){!t&&!Re(i)&&!et(i)&&(i=z(i));const l=z(this),{has:o,get:c}=un(l);let f=o.call(l,r);f||(r=z(r),f=o.call(l,r));const a=c.call(l,r);return l.set(r,i),f?Ke(i,a)&&ze(l,"set",r,i):ze(l,"add",r,i),this},delete(r){const i=z(this),{has:l,get:o}=un(i);let c=l.call(i,r);c||(r=z(r),c=l.call(i,r)),o&&o.call(i,r);const f=i.delete(r);return c&&ze(i,"delete",r,void 0),f},clear(){const r=z(this),i=r.size!==0,l=r.clear();return i&&ze(r,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=fl(r,e,t)}),n}function Bs(e,t){const n=ul(e,t);return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(Z(n,r)&&r in s?n:s,r,i)}const dl={get:Bs(!1,!1)},hl={get:Bs(!1,!0)},pl={get:Bs(!0,!1)};const _i=new WeakMap,bi=new WeakMap,wi=new WeakMap,gl=new WeakMap;function ml(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function vl(e){return e.__v_skip||!Object.isExtensible(e)?0:ml(jo(e))}function Nt(e){return et(e)?e:Ks(e,!1,ll,dl,_i)}function yl(e){return Ks(e,!1,al,hl,bi)}function zt(e){return Ks(e,!0,cl,pl,wi)}function Ks(e,t,n,s,r){if(!Q(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=vl(e);if(i===0)return e;const l=r.get(e);if(l)return l;const o=new Proxy(e,i===2?s:n);return r.set(e,o),o}function lt(e){return et(e)?lt(e.__v_raw):!!(e&&e.__v_isReactive)}function et(e){return!!(e&&e.__v_isReadonly)}function Re(e){return!!(e&&e.__v_isShallow)}function kn(e){return e?!!e.__v_raw:!1}function z(e){const t=e&&e.__v_raw;return t?z(t):e}function Sn(e){return!Z(e,"__v_skip")&&Object.isExtensible(e)&&si(e,"__v_skip",!0),e}const De=e=>Q(e)?Nt(e):e,Ft=e=>Q(e)?zt(e):e;function fe(e){return e?e.__v_isRef===!0:!1}function yt(e){return Si(e,!1)}function Le(e){return Si(e,!0)}function Si(e,t){return fe(e)?e:new _l(e,t)}class _l{constructor(t,n){this.dep=new $n,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:z(t),this._value=n?t:De(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||Re(t)||et(t);t=s?t:z(t),Ke(t,n)&&(this._rawValue=t,this._value=s?t:De(t),this.dep.trigger())}}function Wn(e){return fe(e)?e.value:e}function ce(e){return G(e)?e():Wn(e)}const bl={get:(e,t,n)=>t==="__v_raw"?e:Wn(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return fe(r)&&!fe(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function xi(e){return lt(e)?e:new Proxy(e,bl)}class wl{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new $n,{get:s,set:r}=t(n.track.bind(n),n.trigger.bind(n));this._get=s,this._set=r}get value(){return this._value=this._get()}set value(t){this._set(t)}}function Sl(e){return new wl(e)}class xl{constructor(t,n,s){this._object=t,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0,this._key=Oe(n)?n:String(n),this._raw=z(t);let r=!0,i=t;if(!K(t)||Oe(this._key)||!Fn(this._key))do r=!kn(i)||Re(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let t=this._object[this._key];return this._shallow&&(t=Wn(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&fe(this._raw[this._key])){const n=this._object[this._key];if(fe(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return tl(this._raw,this._key)}}class Tl{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Cl(e,t,n){return fe(e)?e:G(e)?new Tl(e):Q(e)&&arguments.length>1?El(e,t,n):yt(e)}function El(e,t,n){return new xl(e,t,n)}class Al{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new $n(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Yt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&se!==this)return fi(this,!0),!0}get value(){const t=this.dep.track();return hi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Rl(e,t,n=!1){let s,r;return G(e)?s=e:(s=e.get,r=e.set),new Al(s,r,n)}const hn={},En=new WeakMap;let pt;function Ol(e,t=!1,n=pt){if(n){let s=En.get(n);s||En.set(n,s=[]),s.push(e)}}function Ml(e,t,n=re){const{immediate:s,deep:r,once:i,scheduler:l,augmentJob:o,call:c}=n,f=g=>r?g:Re(g)||r===!1||r===0?ot(g,1):ot(g);let a,h,v,_,I=!1,T=!1;if(fe(e)?(h=()=>e.value,I=Re(e)):lt(e)?(h=()=>f(e),I=!0):K(e)?(T=!0,I=e.some(g=>lt(g)||Re(g)),h=()=>e.map(g=>{if(fe(g))return g.value;if(lt(g))return f(g);if(G(g))return c?c(g,2):g()})):G(e)?t?h=c?()=>c(e,2):e:h=()=>{if(v){Qe();try{v()}finally{Ze()}}const g=pt;pt=a;try{return c?c(e,3,[_]):e(_)}finally{pt=g}}:h=qe,t&&r){const g=h,R=r===!0?1/0:r;h=()=>ot(g(),R)}const W=li(),H=()=>{a.stop(),W&&W.active&&Ds(W.effects,a)};if(i&&t){const g=t;t=(...R)=>{g(...R),H()}}let D=T?new Array(e.length).fill(hn):hn;const p=g=>{if(!(!(a.flags&1)||!a.dirty&&!g))if(t){const R=a.run();if(r||I||(T?R.some((k,O)=>Ke(k,D[O])):Ke(R,D))){v&&v();const k=pt;pt=a;try{const O=[R,D===hn?void 0:T&&D[0]===hn?[]:D,_];D=R,c?c(t,3,O):t(...O)}finally{pt=k}}}else a.run()};return o&&o(p),a=new ci(h),a.scheduler=l?()=>l(p,!1):p,_=g=>Ol(g,!1,a),v=a.onStop=()=>{const g=En.get(a);if(g){if(c)c(g,4);else for(const R of g)R();En.delete(a)}},t?s?p(!0):D=a.run():l?l(p.bind(null,!0),!0):a.run(),H.pause=a.pause.bind(a),H.resume=a.resume.bind(a),H.stop=H,H}function ot(e,t=1/0,n){if(t<=0||!Q(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,fe(e))ot(e.value,t,n);else if(K(e))for(let s=0;s<e.length;s++)ot(e[s],t,n);else if(Zr(e)||Pt(e))e.forEach(s=>{ot(s,t,n)});else if(ni(e)){for(const s in e)ot(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&ot(e[s],t,n)}return e}/**
* @vue/runtime-core v3.5.34
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function ln(e,t,n,s){try{return s?e(...s):e()}catch(r){Un(r,t,n)}}function je(e,t,n,s){if(G(e)){const r=ln(e,t,n,s);return r&&ei(r)&&r.catch(i=>{Un(i,t,n)}),r}if(K(e)){const r=[];for(let i=0;i<e.length;i++)r.push(je(e[i],t,n,s));return r}}function Un(e,t,n,s=!0){const r=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:l}=t&&t.appContext.config||re;if(t){let o=t.parent;const c=t.proxy,f=`https://vuejs.org/error-reference/#runtime-${n}`;for(;o;){const a=o.ec;if(a){for(let h=0;h<a.length;h++)if(a[h](e,c,f)===!1)return}o=o.parent}if(i){Qe(),ln(i,null,10,[e,c,f]),Ze();return}}Pl(e,n,r,s,l)}function Pl(e,t,n,s=!0,r=!1){if(r)throw e;console.error(e)}const be=[];let ke=-1;const It=[];let it=null,Ot=0;const Ti=Promise.resolve();let An=null;function Bn(e){const t=An||Ti;return e?t.then(this?e.bind(this):e):t}function Il(e){let t=ke+1,n=be.length;for(;t<n;){const s=t+n>>>1,r=be[s],i=Qt(r);i<e||i===e&&r.flags&2?t=s+1:n=s}return t}function qs(e){if(!(e.flags&1)){const t=Qt(e),n=be[be.length-1];!n||!(e.flags&2)&&t>=Qt(n)?be.push(e):be.splice(Il(t),0,e),e.flags|=1,Ci()}}function Ci(){An||(An=Ti.then(Ei))}function Ll(e){K(e)?It.push(...e):it&&e.id===-1?it.splice(Ot+1,0,e):e.flags&1||(It.push(e),e.flags|=1),Ci()}function ar(e,t,n=ke+1){for(;n<be.length;n++){const s=be[n];if(s&&s.flags&2){if(e&&s.id!==e.uid)continue;be.splice(n,1),n--,s.flags&4&&(s.flags&=-2),s(),s.flags&4||(s.flags&=-2)}}}function Rn(e){if(It.length){const t=[...new Set(It)].sort((n,s)=>Qt(n)-Qt(s));if(It.length=0,it){it.push(...t);return}for(it=t,Ot=0;Ot<it.length;Ot++){const n=it[Ot];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}it=null,Ot=0}}const Qt=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Ei(e){try{for(ke=0;ke<be.length;ke++){const t=be[ke];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),ln(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;ke<be.length;ke++){const t=be[ke];t&&(t.flags&=-2)}ke=-1,be.length=0,Rn(),An=null,(be.length||It.length)&&Ei()}}let Se=null,Ai=null;function On(e){const t=Se;return Se=e,Ai=e&&e.type.__scopeId||null,t}function Nl(e,t=Se,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&In(-1);const i=On(t);let l;try{l=e(...r)}finally{On(i),s._d&&In(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function We(e,t,n,s){const r=e.dirs,i=t&&t.dirs;for(let l=0;l<r.length;l++){const o=r[l];i&&(o.oldValue=i[l].value);let c=o.dir[s];c&&(Qe(),je(c,n,8,[e.el,o,e,t]),Ze())}}function Fl(e,t){if(ye){let n=ye.provides;const s=ye.parent&&ye.parent.provides;s===n&&(n=ye.provides=Object.create(s)),n[e]=t}}function _t(e,t,n=!1){const s=Ct();if(s||wt){let r=wt?wt._context.provides:s?s.parent==null||s.ce?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides:void 0;if(r&&e in r)return r[e];if(arguments.length>1)return n&&G(t)?t.call(s&&s.proxy):t}}function Ri(){return!!(Ct()||wt)}const Hl=Symbol.for("v-scx"),Dl=()=>_t(Hl);function Oi(e,t){return Kn(e,null,t)}function Tf(e,t){return Kn(e,null,{flush:"post"})}function Ne(e,t,n){return Kn(e,t,n)}function Kn(e,t,n=re){const{immediate:s,deep:r,flush:i,once:l}=n,o=he({},n),c=t&&s||!t&&i!=="post";let f;if(nn){if(i==="sync"){const _=Dl();f=_.__watcherHandles||(_.__watcherHandles=[])}else if(!c){const _=()=>{};return _.stop=qe,_.resume=qe,_.pause=qe,_}}const a=ye;o.call=(_,I,T)=>je(_,a,I,T);let h=!1;i==="post"?o.scheduler=_=>{Te(_,a&&a.suspense)}:i!=="sync"&&(h=!0,o.scheduler=(_,I)=>{I?_():qs(_)}),o.augmentJob=_=>{t&&(_.flags|=4),h&&(_.flags|=2,a&&(_.id=a.uid,_.i=a))};const v=Ml(e,t,o);return nn&&(f?f.push(v):c&&v()),v}function jl(e,t,n){const s=this.proxy,r=le(e)?e.includes(".")?Mi(s,e):()=>s[e]:e.bind(s,s);let i;G(t)?i=t:(i=t.handler,n=t);const l=cn(this),o=Kn(r,i.bind(s),n);return l(),o}function Mi(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r<n.length&&s;r++)s=s[n[r]];return s}}const $l=Symbol("_vte"),Pi=e=>e.__isTeleport,Ue=Symbol("_leaveCb"),Vt=Symbol("_enterCb");function Vl(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Ht(()=>{e.isMounted=!0}),Vi(()=>{e.isUnmounting=!0}),e}const Me=[Function,Array],Ii={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Me,onEnter:Me,onAfterEnter:Me,onEnterCancelled:Me,onBeforeLeave:Me,onLeave:Me,onAfterLeave:Me,onLeaveCancelled:Me,onBeforeAppear:Me,onAppear:Me,onAfterAppear:Me,onAppearCancelled:Me},Li=e=>{const t=e.subTree;return t.component?Li(t.component):t},kl={name:"BaseTransition",props:Ii,setup(e,{slots:t}){const n=Ct(),s=Vl();return()=>{const r=t.default&&Hi(t.default(),!0),i=r&&r.length?Ni(r):n.subTree?Mc():void 0;if(!i)return;const l=z(e),{mode:o}=l;if(s.isLeaving)return is(i);const c=fr(i);if(!c)return is(i);let f=Es(c,l,s,n,h=>f=h);c.type!==pe&&Zt(c,f);let a=n.subTree&&fr(n.subTree);if(a&&a.type!==pe&&!gt(a,c)&&Li(n).type!==pe){let h=Es(a,l,s,n);if(Zt(a,h),o==="out-in"&&c.type!==pe)return s.isLeaving=!0,h.afterLeave=()=>{s.isLeaving=!1,n.job.flags&8||n.update(),delete h.afterLeave,a=void 0},is(i);o==="in-out"&&c.type!==pe?h.delayLeave=(v,_,I)=>{const T=Fi(s,a);T[String(a.key)]=a,v[Ue]=()=>{_(),v[Ue]=void 0,delete f.delayedLeave,a=void 0},f.delayedLeave=()=>{I(),delete f.delayedLeave,a=void 0}}:a=void 0}else a&&(a=void 0);return i}}};function Ni(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==pe){t=n;break}}return t}const Wl=kl;function Fi(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function Es(e,t,n,s,r){const{appear:i,mode:l,persisted:o=!1,onBeforeEnter:c,onEnter:f,onAfterEnter:a,onEnterCancelled:h,onBeforeLeave:v,onLeave:_,onAfterLeave:I,onLeaveCancelled:T,onBeforeAppear:W,onAppear:H,onAfterAppear:D,onAppearCancelled:p}=t,g=String(e.key),R=Fi(n,e),k=(C,M)=>{C&&je(C,s,9,M)},O=(C,M)=>{const E=M[1];k(C,M),K(C)?C.every(y=>y.length<=1)&&E():C.length<=1&&E()},B={mode:l,persisted:o,beforeEnter(C){let M=c;if(!n.isMounted)if(i)M=W||c;else return;C[Ue]&&C[Ue](!0);const E=R[g];E&>(e,E)&&E.el[Ue]&&E.el[Ue](),k(M,[C])},enter(C){if(R[g]===e)return;let M=f,E=a,y=h;if(!n.isMounted)if(i)M=H||f,E=D||a,y=p||h;else return;let N=!1;C[Vt]=ie=>{N||(N=!0,ie?k(y,[C]):k(E,[C]),B.delayedLeave&&B.delayedLeave(),C[Vt]=void 0)};const Y=C[Vt].bind(null,!1);M?O(M,[C,Y]):Y()},leave(C,M){const E=String(e.key);if(C[Vt]&&C[Vt](!0),n.isUnmounting)return M();k(v,[C]);let y=!1;C[Ue]=Y=>{y||(y=!0,M(),Y?k(T,[C]):k(I,[C]),C[Ue]=void 0,R[E]===e&&delete R[E])};const N=C[Ue].bind(null,!1);R[E]=e,_?O(_,[C,N]):N()},clone(C){const M=Es(C,t,n,s,r);return r&&r(M),M}};return B}function is(e){if(qn(e))return e=ct(e),e.children=null,e}function fr(e){if(!qn(e))return Pi(e.type)&&e.children?Ni(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&G(n.default))return n.default()}}function Zt(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Zt(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Hi(e,t=!1,n){let s=[],r=0;for(let i=0;i<e.length;i++){let l=e[i];const o=n==null?l.key:String(n)+String(l.key!=null?l.key:i);l.type===we?(l.patchFlag&128&&r++,s=s.concat(Hi(l.children,t,o))):(t||l.type!==pe)&&s.push(o!=null?ct(l,{key:o}):l)}if(r>1)for(let i=0;i<s.length;i++)s[i].patchFlag=-2;return s}function Di(e,t){return G(e)?he({name:e.name},t,{setup:e}):e}function ji(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function ur(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Mn=new WeakMap;function Lt(e,t,n,s,r=!1){if(K(e)){e.forEach((T,W)=>Lt(T,t&&(K(t)?t[W]:t),n,s,r));return}if(bt(s)&&!r){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&Lt(e,t,n,s.component.subTree);return}const i=s.shapeFlag&4?Js(s.component):s.el,l=r?null:i,{i:o,r:c}=e,f=t&&t.r,a=o.refs===re?o.refs={}:o.refs,h=o.setupState,v=z(h),_=h===re?Qr:T=>ur(a,T)?!1:Z(v,T),I=(T,W)=>!(W&&ur(a,W));if(f!=null&&f!==c){if(dr(t),le(f))a[f]=null,_(f)&&(h[f]=null);else if(fe(f)){const T=t;I(f,T.k)&&(f.value=null),T.k&&(a[T.k]=null)}}if(G(c))ln(c,o,12,[l,a]);else{const T=le(c),W=fe(c);if(T||W){const H=()=>{if(e.f){const D=T?_(c)?h[c]:a[c]:I()||!e.k?c.value:a[e.k];if(r)K(D)&&Ds(D,i);else if(K(D))D.includes(i)||D.push(i);else if(T)a[c]=[i],_(c)&&(h[c]=a[c]);else{const p=[i];I(c,e.k)&&(c.value=p),e.k&&(a[e.k]=p)}}else T?(a[c]=l,_(c)&&(h[c]=l)):W&&(I(c,e.k)&&(c.value=l),e.k&&(a[e.k]=l))};if(l){const D=()=>{H(),Mn.delete(e)};D.id=-1,Mn.set(e,D),Te(D,n)}else dr(e),H()}}}function dr(e){const t=Mn.get(e);t&&(t.flags|=8,Mn.delete(e))}let hr=!1;const Rt=()=>{hr||(console.error("Hydration completed but contains mismatches."),hr=!0)},Ul=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",Bl=e=>e.namespaceURI.includes("MathML"),pn=e=>{if(e.nodeType===1){if(Ul(e))return"svg";if(Bl(e))return"mathml"}},gn=e=>e.nodeType===8;function Kl(e){const{mt:t,p:n,o:{patchProp:s,createText:r,nextSibling:i,parentNode:l,remove:o,insert:c,createComment:f}}=e,a=(p,g)=>{if(!g.hasChildNodes()){n(null,p,g),Rn(),g._vnode=p;return}h(g.firstChild,p,null,null,null),Rn(),g._vnode=p},h=(p,g,R,k,O,B=!1)=>{B=B||!!g.dynamicChildren;const C=gn(p)&&p.data==="[",M=()=>T(p,g,R,k,O,C),{type:E,ref:y,shapeFlag:N,patchFlag:Y}=g;let ie=p.nodeType;g.el=p,Y===-2&&(B=!1,g.dynamicChildren=null);let V=null;switch(E){case St:ie!==3?g.children===""?(c(g.el=r(""),l(p),p),V=p):V=M():(p.data!==g.children&&(Rt(),p.data=g.children),V=i(p));break;case pe:D(p)?(V=i(p),H(g.el=p.content.firstChild,p,R)):ie!==8||C?V=M():V=i(p);break;case Gt:if(C&&(p=i(p),ie=p.nodeType),ie===1||ie===3){V=p;const X=!g.children.length;for(let j=0;j<g.staticCount;j++)X&&(g.children+=V.nodeType===1?V.outerHTML:V.data),j===g.staticCount-1&&(g.anchor=V),V=i(V);return C?i(V):V}else M();break;case we:C?V=I(p,g,R,k,O,B):V=M();break;default:if(N&1)(ie!==1||g.type.toLowerCase()!==p.tagName.toLowerCase())&&!D(p)?V=M():V=v(p,g,R,k,O,B);else if(N&6){g.slotScopeIds=O;const X=l(p);if(C?V=W(p):gn(p)&&p.data==="teleport start"?V=W(p,p.data,"teleport end"):V=i(p),t(g,X,null,R,k,pn(X),B),bt(g)&&!g.type.__asyncResolved){let j;C?(j=ge(we),j.anchor=V?V.previousSibling:X.lastChild):j=p.nodeType===3?go(""):ge("div"),j.el=p,g.component.subTree=j}}else N&64?ie!==8?V=M():V=g.type.hydrate(p,g,R,k,O,B,e,_):N&128&&(V=g.type.hydrate(p,g,R,k,pn(l(p)),O,B,e,h))}return y!=null&&Lt(y,null,k,g),V},v=(p,g,R,k,O,B)=>{B=B||!!g.dynamicChildren;const{type:C,props:M,patchFlag:E,shapeFlag:y,dirs:N,transition:Y}=g,ie=C==="input"||C==="option";if(ie||E!==-1){N&&We(g,null,R,"created");let V=!1;if(D(p)){V=io(null,Y)&&R&&R.vnode.props&&R.vnode.props.appear;const j=p.content.firstChild;if(V){const ee=j.getAttribute("class");ee&&(j.$cls=ee),Y.beforeEnter(j)}H(j,p,R),g.el=p=j}if(y&16&&!(M&&(M.innerHTML||M.textContent))){let j=_(p.firstChild,g,p,R,k,O,B);for(;j;){mn(p,1)||Rt();const ee=j;j=j.nextSibling,o(ee)}}else if(y&8){let j=g.children;j[0]===`
`&&(p.tagName==="PRE"||p.tagName==="TEXTAREA")&&(j=j.slice(1));const{textContent:ee}=p;ee!==j&&ee!==j.replace(/\r\n|\r/g,`
`)&&(mn(p,0)||Rt(),p.textContent=g.children)}if(M){if(ie||!B||E&48){const j=p.tagName.includes("-");for(const ee in M)(ie&&(ee.endsWith("value")||ee==="indeterminate")||rn(ee)&&!mt(ee)||ee[0]==="."||j&&!mt(ee))&&s(p,ee,null,M[ee],void 0,R)}else if(M.onClick)s(p,"onClick",null,M.onClick,void 0,R);else if(E&4&<(M.style))for(const j in M.style)M.style[j]}let X;(X=M&&M.onVnodeBeforeMount)&&Pe(X,R,g),N&&We(g,null,R,"beforeMount"),((X=M&&M.onVnodeMounted)||N||V)&&fo(()=>{X&&Pe(X,R,g),V&&Y.enter(p),N&&We(g,null,R,"mounted")},k)}return p.nextSibling},_=(p,g,R,k,O,B,C)=>{C=C||!!g.dynamicChildren;const M=g.children,E=M.length;for(let y=0;y<E;y++){const N=C?M[y]:M[y]=Ie(M[y]),Y=N.type===St;p?(Y&&!C&&y+1<E&&Ie(M[y+1]).type===St&&(c(r(p.data.slice(N.children.length)),R,i(p)),p.data=N.children),p=h(p,N,k,O,B,C)):Y&&!N.children?c(N.el=r(""),R):(mn(R,1)||Rt(),n(null,N,R,null,k,O,pn(R),B))}return p},I=(p,g,R,k,O,B)=>{const{slotScopeIds:C}=g;C&&(O=O?O.concat(C):C);const M=l(p),E=_(i(p),g,M,R,k,O,B);return E&&gn(E)&&E.data==="]"?i(g.anchor=E):(Rt(),c(g.anchor=f("]"),M,E),E)},T=(p,g,R,k,O,B)=>{if(mn(p.parentElement,1)||Rt(),g.el=null,B){const E=W(p);for(;;){const y=i(p);if(y&&y!==E)o(y);else break}}const C=i(p),M=l(p);return o(p),n(null,g,M,C,R,k,pn(M),O),R&&(R.vnode.el=g.el,Ji(R,g.el)),C},W=(p,g="[",R="]")=>{let k=0;for(;p;)if(p=i(p),p&&gn(p)&&(p.data===g&&k++,p.data===R)){if(k===0)return i(p);k--}return p},H=(p,g,R)=>{const k=g.parentNode;k&&k.replaceChild(p,g);let O=R;for(;O;)O.vnode.el===g&&(O.vnode.el=O.subTree.el=p),O=O.parent},D=p=>p.nodeType===1&&p.tagName==="TEMPLATE";return[a,h]}const pr="data-allow-mismatch",ql={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function mn(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(pr);)e=e.parentElement;const n=e&&e.getAttribute(pr);if(n==null)return!1;if(n==="")return!0;{const s=n.split(",");return t===0&&s.includes("children")?!0:s.includes(ql[t])}}jn().requestIdleCallback;jn().cancelIdleCallback;const bt=e=>!!e.type.__asyncLoader,qn=e=>e.type.__isKeepAlive;function Gl(e,t){$i(e,"a",t)}function Xl(e,t){$i(e,"da",t)}function $i(e,t,n=ye){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(Gn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)qn(r.parent.vnode)&&Yl(s,t,n,r),r=r.parent}}function Yl(e,t,n,s){const r=Gn(t,e,s,!0);Xn(()=>{Ds(s[t],r)},n)}function Gn(e,t,n=ye,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...l)=>{Qe();const o=cn(n),c=je(t,n,e,l);return o(),Ze(),c});return s?r.unshift(i):r.push(i),i}}const st=e=>(t,n=ye)=>{(!nn||e==="sp")&&Gn(e,(...s)=>t(...s),n)},Jl=st("bm"),Ht=st("m"),zl=st("bu"),Ql=st("u"),Vi=st("bum"),Xn=st("um"),Zl=st("sp"),ec=st("rtg"),tc=st("rtc");function nc(e,t=ye){Gn("ec",e,t)}const ki="components";function Cf(e,t){return Ui(ki,e,!0,t)||e}const Wi=Symbol.for("v-ndc");function Ef(e){return le(e)?Ui(ki,e,!1)||e:e||Wi}function Ui(e,t,n=!0,s=!1){const r=Se||ye;if(r){const i=r.type;{const o=jc(i,!1);if(o&&(o===t||o===xe(t)||o===Dn(xe(t))))return i}const l=gr(r[e]||i[e],t)||gr(r.appContext[e],t);return!l&&s?i:l}}function gr(e,t){return e&&(e[t]||e[xe(t)]||e[Dn(xe(t))])}function Af(e,t,n,s){let r;const i=n,l=K(e);if(l||le(e)){const o=l&<(e);let c=!1,f=!1;o&&(c=!Re(e),f=et(e),e=Vn(e)),r=new Array(e.length);for(let a=0,h=e.length;a<h;a++)r[a]=t(c?f?Ft(De(e[a])):De(e[a]):e[a],a,void 0,i)}else if(typeof e=="number"){r=new Array(e);for(let o=0;o<e;o++)r[o]=t(o+1,o,void 0,i)}else if(Q(e))if(e[Symbol.iterator])r=Array.from(e,(o,c)=>t(o,c,void 0,i));else{const o=Object.keys(e);r=new Array(o.length);for(let c=0,f=o.length;c<f;c++){const a=o[c];r[c]=t(e[a],a,c,i)}}else r=[];return r}function Rf(e,t,n={},s,r){if(Se.ce||Se.parent&&bt(Se.parent)&&Se.parent.ce){const f=Object.keys(n).length>0;return t!=="default"&&(n.name=t),Ps(),Is(we,null,[ge("slot",n,s&&s())],f?-2:64)}let i=e[t];i&&i._c&&(i._d=!1),Ps();const l=i&&Bi(i(n)),o=n.key||l&&l.key,c=Is(we,{key:(o&&!Oe(o)?o:`_${t}`)+(!l&&s?"_fb":"")},l||(s?s():[]),l&&e._===1?64:-2);return!r&&c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),i&&i._c&&(i._d=!0),c}function Bi(e){return e.some(t=>tn(t)?!(t.type===pe||t.type===we&&!Bi(t.children)):!0)?e:null}function Of(e,t){const n={};for(const s in e)n[/[A-Z]/.test(s)?`on:${s}`:wn(s)]=e[s];return n}const As=e=>e?mo(e)?Js(e):As(e.parent):null,qt=he(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>As(e.parent),$root:e=>As(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>qi(e),$forceUpdate:e=>e.f||(e.f=()=>{qs(e.update)}),$nextTick:e=>e.n||(e.n=Bn.bind(e.proxy)),$watch:e=>jl.bind(e)}),os=(e,t)=>e!==re&&!e.__isScriptSetup&&Z(e,t),sc={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:i,accessCache:l,type:o,appContext:c}=e;if(t[0]!=="{{contextString}}quot;){const v=l[t];if(v!==void 0)switch(v){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(os(s,t))return l[t]=1,s[t];if(r!==re&&Z(r,t))return l[t]=2,r[t];if(Z(i,t))return l[t]=3,i[t];if(n!==re&&Z(n,t))return l[t]=4,n[t];Rs&&(l[t]=0)}}const f=qt[t];let a,h;if(f)return t==="$attrs"&&ve(e.attrs,"get",""),f(e);if((a=o.__cssModules)&&(a=a[t]))return a;if(n!==re&&Z(n,t))return l[t]=4,n[t];if(h=c.config.globalProperties,Z(h,t))return h[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return os(r,t)?(r[t]=n,!0):s!==re&&Z(s,t)?(s[t]=n,!0):Z(e.props,t)||t[0]==="{{contextString}}quot;&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,props:i,type:l}},o){let c;return!!(n[o]||e!==re&&o[0]!=="{{contextString}}quot;&&Z(e,o)||os(t,o)||Z(i,o)||Z(s,o)||Z(qt,o)||Z(r.config.globalProperties,o)||(c=l.__cssModules)&&c[o])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Z(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Mf(){return rc().slots}function rc(e){const t=Ct();return t.setupContext||(t.setupContext=yo(t))}function mr(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Rs=!0;function ic(e){const t=qi(e),n=e.proxy,s=e.ctx;Rs=!1,t.beforeCreate&&vr(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:l,watch:o,provide:c,inject:f,created:a,beforeMount:h,mounted:v,beforeUpdate:_,updated:I,activated:T,deactivated:W,beforeDestroy:H,beforeUnmount:D,destroyed:p,unmounted:g,render:R,renderTracked:k,renderTriggered:O,errorCaptured:B,serverPrefetch:C,expose:M,inheritAttrs:E,components:y,directives:N,filters:Y}=t;if(f&&oc(f,s,null),l)for(const X in l){const j=l[X];G(j)&&(s[X]=j.bind(n))}if(r){const X=r.call(n,n);Q(X)&&(e.data=Nt(X))}if(Rs=!0,i)for(const X in i){const j=i[X],ee=G(j)?j.bind(n,n):G(j.get)?j.get.bind(n,n):qe,an=!G(j)&&G(j.set)?j.set.bind(n):qe,ft=oe({get:ee,set:an});Object.defineProperty(s,X,{enumerable:!0,configurable:!0,get:()=>ft.value,set:$e=>ft.value=$e})}if(o)for(const X in o)Ki(o[X],s,n,X);if(c){const X=G(c)?c.call(n):c;Reflect.ownKeys(X).forEach(j=>{Fl(j,X[j])})}a&&vr(a,e,"c");function V(X,j){K(j)?j.forEach(ee=>X(ee.bind(n))):j&&X(j.bind(n))}if(V(Jl,h),V(Ht,v),V(zl,_),V(Ql,I),V(Gl,T),V(Xl,W),V(nc,B),V(tc,k),V(ec,O),V(Vi,D),V(Xn,g),V(Zl,C),K(M))if(M.length){const X=e.exposed||(e.exposed={});M.forEach(j=>{Object.defineProperty(X,j,{get:()=>n[j],set:ee=>n[j]=ee,enumerable:!0})})}else e.exposed||(e.exposed={});R&&e.render===qe&&(e.render=R),E!=null&&(e.inheritAttrs=E),y&&(e.components=y),N&&(e.directives=N),C&&ji(e)}function oc(e,t,n=qe){K(e)&&(e=Os(e));for(const s in e){const r=e[s];let i;Q(r)?"default"in r?i=_t(r.from||s,r.default,!0):i=_t(r.from||s):i=_t(r),fe(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:l=>i.value=l}):t[s]=i}}function vr(e,t,n){je(K(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ki(e,t,n,s){let r=s.includes(".")?Mi(n,s):()=>n[s];if(le(e)){const i=t[e];G(i)&&Ne(r,i)}else if(G(e))Ne(r,e.bind(n));else if(Q(e))if(K(e))e.forEach(i=>Ki(i,t,n,s));else{const i=G(e.handler)?e.handler.bind(n):t[e.handler];G(i)&&Ne(r,i,e)}}function qi(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:l}}=e.appContext,o=i.get(t);let c;return o?c=o:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(f=>Pn(c,f,l,!0)),Pn(c,t,l)),Q(t)&&i.set(t,c),c}function Pn(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&Pn(e,i,n,!0),r&&r.forEach(l=>Pn(e,l,n,!0));for(const l in t)if(!(s&&l==="expose")){const o=lc[l]||n&&n[l];e[l]=o?o(e[l],t[l]):t[l]}return e}const lc={data:yr,props:_r,emits:_r,methods:Wt,computed:Wt,beforeCreate:_e,created:_e,beforeMount:_e,mounted:_e,beforeUpdate:_e,updated:_e,beforeDestroy:_e,beforeUnmount:_e,destroyed:_e,unmounted:_e,activated:_e,deactivated:_e,errorCaptured:_e,serverPrefetch:_e,components:Wt,directives:Wt,watch:ac,provide:yr,inject:cc};function yr(e,t){return t?e?function(){return he(G(e)?e.call(this,this):e,G(t)?t.call(this,this):t)}:t:e}function cc(e,t){return Wt(Os(e),Os(t))}function Os(e){if(K(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function _e(e,t){return e?[...new Set([].concat(e,t))]:t}function Wt(e,t){return e?he(Object.create(null),e,t):t}function _r(e,t){return e?K(e)&&K(t)?[...new Set([...e,...t])]:he(Object.create(null),mr(e),mr(t??{})):t}function ac(e,t){if(!e)return t;if(!t)return e;const n=he(Object.create(null),e);for(const s in t)n[s]=_e(e[s],t[s]);return n}function Gi(){return{app:null,config:{isNativeTag:Qr,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let fc=0;function uc(e,t){return function(s,r=null){G(s)||(s=he({},s)),r!=null&&!Q(r)&&(r=null);const i=Gi(),l=new WeakSet,o=[];let c=!1;const f=i.app={_uid:fc++,_component:s,_props:r,_container:null,_context:i,_instance:null,version:Vc,get config(){return i.config},set config(a){},use(a,...h){return l.has(a)||(a&&G(a.install)?(l.add(a),a.install(f,...h)):G(a)&&(l.add(a),a(f,...h))),f},mixin(a){return i.mixins.includes(a)||i.mixins.push(a),f},component(a,h){return h?(i.components[a]=h,f):i.components[a]},directive(a,h){return h?(i.directives[a]=h,f):i.directives[a]},mount(a,h,v){if(!c){const _=f._ceVNode||ge(s,r);return _.appContext=i,v===!0?v="svg":v===!1&&(v=void 0),h&&t?t(_,a):e(_,a,v),c=!0,f._container=a,a.__vue_app__=f,Js(_.component)}},onUnmount(a){o.push(a)},unmount(){c&&(je(o,f._instance,16),e(null,f._container),delete f._container.__vue_app__)},provide(a,h){return i.provides[a]=h,f},runWithContext(a){const h=wt;wt=f;try{return a()}finally{wt=h}}};return f}}let wt=null;const dc=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xe(t)}Modifiers`]||e[`${at(t)}Modifiers`];function hc(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||re;let r=n;const i=t.startsWith("update:"),l=i&&dc(s,t.slice(7));l&&(l.trim&&(r=n.map(a=>le(a)?a.trim():a)),l.number&&(r=n.map(ko)));let o,c=s[o=wn(t)]||s[o=wn(xe(t))];!c&&i&&(c=s[o=wn(at(t))]),c&&je(c,e,6,r);const f=s[o+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[o])return;e.emitted[o]=!0,je(f,e,6,r)}}const pc=new WeakMap;function Xi(e,t,n=!1){const s=n?pc:t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let l={},o=!1;if(!G(e)){const c=f=>{const a=Xi(f,t,!0);a&&(o=!0,he(l,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!o?(Q(e)&&s.set(e,null),null):(K(i)?i.forEach(c=>l[c]=null):he(l,i),Q(e)&&s.set(e,l),l)}function Yn(e,t){return!e||!rn(t)?!1:(t=t.slice(2).replace(/Once$/,""),Z(e,t[0].toLowerCase()+t.slice(1))||Z(e,at(t))||Z(e,t))}function ls(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[i],slots:l,attrs:o,emit:c,render:f,renderCache:a,props:h,data:v,setupState:_,ctx:I,inheritAttrs:T}=e,W=On(e);let H,D;try{if(n.shapeFlag&4){const g=r||s,R=g;H=Ie(f.call(R,g,a,h,_,v,I)),D=o}else{const g=t;H=Ie(g.length>1?g(h,{attrs:o,slots:l,emit:c}):g(h,null)),D=t.props?o:gc(o)}}catch(g){Xt.length=0,Un(g,e,1),H=ge(pe)}let p=H;if(D&&T!==!1){const g=Object.keys(D),{shapeFlag:R}=p;g.length&&R&7&&(i&&g.some(Nn)&&(D=mc(D,i)),p=ct(p,D,!1,!0))}return n.dirs&&(p=ct(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&Zt(p,n.transition),H=p,On(W),H}const gc=e=>{let t;for(const n in e)(n==="class"||n==="style"||rn(n))&&((t||(t={}))[n]=e[n]);return t},mc=(e,t)=>{const n={};for(const s in e)(!Nn(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function vc(e,t,n){const{props:s,children:r,component:i}=e,{props:l,children:o,patchFlag:c}=t,f=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?br(s,l,f):!!l;if(c&8){const a=t.dynamicProps;for(let h=0;h<a.length;h++){const v=a[h];if(Yi(l,s,v)&&!Yn(f,v))return!0}}}else return(r||o)&&(!o||!o.$stable)?!0:s===l?!1:s?l?br(s,l,f):!0:!!l;return!1}function br(e,t,n){const s=Object.keys(t);if(s.length!==Object.keys(e).length)return!0;for(let r=0;r<s.length;r++){const i=s[r];if(Yi(t,e,i)&&!Yn(n,i))return!0}return!1}function Yi(e,t,n){const s=e[n],r=t[n];return n==="style"&&Q(s)&&Q(r)?!Vs(s,r):s!==r}function Ji({vnode:e,parent:t,suspense:n},s){for(;t;){const r=t.subTree;if(r.suspense&&r.suspense.activeBranch===e&&(r.suspense.vnode.el=r.el=s,e=r),r===e)(e=t.vnode).el=s,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=s)}const zi={},Qi=()=>Object.create(zi),Zi=e=>Object.getPrototypeOf(e)===zi;function yc(e,t,n,s=!1){const r={},i=Qi();e.propsDefaults=Object.create(null),eo(e,t,r,i);for(const l in e.propsOptions[0])l in r||(r[l]=void 0);n?e.props=s?r:yl(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function _c(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:l}}=e,o=z(r),[c]=e.propsOptions;let f=!1;if((s||l>0)&&!(l&16)){if(l&8){const a=e.vnode.dynamicProps;for(let h=0;h<a.length;h++){let v=a[h];if(Yn(e.emitsOptions,v))continue;const _=t[v];if(c)if(Z(i,v))_!==i[v]&&(i[v]=_,f=!0);else{const I=xe(v);r[I]=Ms(c,o,I,_,e,!1)}else _!==i[v]&&(i[v]=_,f=!0)}}}else{eo(e,t,r,i)&&(f=!0);let a;for(const h in o)(!t||!Z(t,h)&&((a=at(h))===h||!Z(t,a)))&&(c?n&&(n[h]!==void 0||n[a]!==void 0)&&(r[h]=Ms(c,o,h,void 0,e,!0)):delete r[h]);if(i!==o)for(const h in i)(!t||!Z(t,h))&&(delete i[h],f=!0)}f&&ze(e.attrs,"set","")}function eo(e,t,n,s){const[r,i]=e.propsOptions;let l=!1,o;if(t)for(let c in t){if(mt(c))continue;const f=t[c];let a;r&&Z(r,a=xe(c))?!i||!i.includes(a)?n[a]=f:(o||(o={}))[a]=f:Yn(e.emitsOptions,c)||(!(c in s)||f!==s[c])&&(s[c]=f,l=!0)}if(i){const c=z(n),f=o||re;for(let a=0;a<i.length;a++){const h=i[a];n[h]=Ms(r,c,h,f[h],e,!Z(f,h))}}return l}function Ms(e,t,n,s,r,i){const l=e[n];if(l!=null){const o=Z(l,"default");if(o&&s===void 0){const c=l.default;if(l.type!==Function&&!l.skipFactory&&G(c)){const{propsDefaults:f}=r;if(n in f)s=f[n];else{const a=cn(r);s=f[n]=c.call(null,t),a()}}else s=c;r.ce&&r.ce._setProp(n,s)}l[0]&&(i&&!o?s=!1:l[1]&&(s===""||s===at(n))&&(s=!0))}return s}const bc=new WeakMap;function to(e,t,n=!1){const s=n?bc:t.propsCache,r=s.get(e);if(r)return r;const i=e.props,l={},o=[];let c=!1;if(!G(e)){const a=h=>{c=!0;const[v,_]=to(h,t,!0);he(l,v),_&&o.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!i&&!c)return Q(e)&&s.set(e,Mt),Mt;if(K(i))for(let a=0;a<i.length;a++){const h=xe(i[a]);wr(h)&&(l[h]=re)}else if(i)for(const a in i){const h=xe(a);if(wr(h)){const v=i[a],_=l[h]=K(v)||G(v)?{type:v}:he({},v),I=_.type;let T=!1,W=!0;if(K(I))for(let H=0;H<I.length;++H){const D=I[H],p=G(D)&&D.name;if(p==="Boolean"){T=!0;break}else p==="String"&&(W=!1)}else T=G(I)&&I.name==="Boolean";_[0]=T,_[1]=W,(T||Z(_,"default"))&&o.push(h)}}const f=[l,o];return Q(e)&&s.set(e,f),f}function wr(e){return e[0]!=="{{contextString}}quot;&&!mt(e)}const Gs=e=>e==="_"||e==="_ctx"||e==="$stable",Xs=e=>K(e)?e.map(Ie):[Ie(e)],wc=(e,t,n)=>{if(t._n)return t;const s=Nl((...r)=>Xs(t(...r)),n);return s._c=!1,s},no=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Gs(r))continue;const i=e[r];if(G(i))t[r]=wc(r,i,s);else if(i!=null){const l=Xs(i);t[r]=()=>l}}},so=(e,t)=>{const n=Xs(t);e.slots.default=()=>n},ro=(e,t,n)=>{for(const s in t)(n||!Gs(s))&&(e[s]=t[s])},Sc=(e,t,n)=>{const s=e.slots=Qi();if(e.vnode.shapeFlag&32){const r=t._;r?(ro(s,t,n),n&&si(s,"_",r,!0)):no(t,s)}else t&&so(e,t)},xc=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,l=re;if(s.shapeFlag&32){const o=t._;o?n&&o===1?i=!1:ro(r,t,n):(i=!t.$stable,no(t,r)),l=t}else t&&(so(e,t),l={default:1});if(i)for(const o in r)!Gs(o)&&l[o]==null&&delete r[o]},Te=fo;function Tc(e){return Cc(e,Kl)}function Cc(e,t){const n=jn();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:l,createText:o,createComment:c,setText:f,setElementText:a,parentNode:h,nextSibling:v,setScopeId:_=qe,insertStaticContent:I}=e,T=(u,d,m,x=null,b=null,w=null,L=void 0,P=null,A=!!d.dynamicChildren)=>{if(u===d)return;u&&!gt(u,d)&&(x=fn(u),$e(u,b,w,!0),u=null),d.patchFlag===-2&&(A=!1,d.dynamicChildren=null);const{type:S,ref:U,shapeFlag:F}=d;switch(S){case St:W(u,d,m,x);break;case pe:H(u,d,m,x);break;case Gt:u==null&&D(d,m,x,L);break;case we:y(u,d,m,x,b,w,L,P,A);break;default:F&1?R(u,d,m,x,b,w,L,P,A):F&6?N(u,d,m,x,b,w,L,P,A):(F&64||F&128)&&S.process(u,d,m,x,b,w,L,P,A,Et)}U!=null&&b?Lt(U,u&&u.ref,w,d||u,!d):U==null&&u&&u.ref!=null&&Lt(u.ref,null,w,u,!0)},W=(u,d,m,x)=>{if(u==null)s(d.el=o(d.children),m,x);else{const b=d.el=u.el;d.children!==u.children&&f(b,d.children)}},H=(u,d,m,x)=>{u==null?s(d.el=c(d.children||""),m,x):d.el=u.el},D=(u,d,m,x)=>{[u.el,u.anchor]=I(u.children,d,m,x,u.el,u.anchor)},p=({el:u,anchor:d},m,x)=>{let b;for(;u&&u!==d;)b=v(u),s(u,m,x),u=b;s(d,m,x)},g=({el:u,anchor:d})=>{let m;for(;u&&u!==d;)m=v(u),r(u),u=m;r(d)},R=(u,d,m,x,b,w,L,P,A)=>{if(d.type==="svg"?L="svg":d.type==="math"&&(L="mathml"),u==null)k(d,m,x,b,w,L,P,A);else{const S=u.el&&u.el._isVueCE?u.el:null;try{S&&S._beginPatch(),C(u,d,b,w,L,P,A)}finally{S&&S._endPatch()}}},k=(u,d,m,x,b,w,L,P)=>{let A,S;const{props:U,shapeFlag:F,transition:$,dirs:q}=u;if(A=u.el=l(u.type,w,U&&U.is,U),F&8?a(A,u.children):F&16&&B(u.children,A,null,x,b,cs(u,w),L,P),q&&We(u,null,x,"created"),O(A,u,u.scopeId,L,x),U){for(const te in U)te!=="value"&&!mt(te)&&i(A,te,null,U[te],w,x);"value"in U&&i(A,"value",null,U.value,w),(S=U.onVnodeBeforeMount)&&Pe(S,x,u)}q&&We(u,null,x,"beforeMount");const J=io(b,$);J&&$.beforeEnter(A),s(A,d,m),((S=U&&U.onVnodeMounted)||J||q)&&Te(()=>{try{S&&Pe(S,x,u),J&&$.enter(A),q&&We(u,null,x,"mounted")}finally{}},b)},O=(u,d,m,x,b)=>{if(m&&_(u,m),x)for(let w=0;w<x.length;w++)_(u,x[w]);if(b){let w=b.subTree;if(d===w||ao(w.type)&&(w.ssContent===d||w.ssFallback===d)){const L=b.vnode;O(u,L,L.scopeId,L.slotScopeIds,b.parent)}}},B=(u,d,m,x,b,w,L,P,A=0)=>{for(let S=A;S<u.length;S++){const U=u[S]=P?Je(u[S]):Ie(u[S]);T(null,U,d,m,x,b,w,L,P)}},C=(u,d,m,x,b,w,L)=>{const P=d.el=u.el;let{patchFlag:A,dynamicChildren:S,dirs:U}=d;A|=u.patchFlag&16;const F=u.props||re,$=d.props||re;let q;if(m&&ut(m,!1),(q=$.onVnodeBeforeUpdate)&&Pe(q,m,d,u),U&&We(d,u,m,"beforeUpdate"),m&&ut(m,!0),(F.innerHTML&&$.innerHTML==null||F.textContent&&$.textContent==null)&&a(P,""),S?M(u.dynamicChildren,S,P,m,x,cs(d,b),w):L||j(u,d,P,null,m,x,cs(d,b),w,!1),A>0){if(A&16)E(P,F,$,m,b);else if(A&2&&F.class!==$.class&&i(P,"class",null,$.class,b),A&4&&i(P,"style",F.style,$.style,b),A&8){const J=d.dynamicProps;for(let te=0;te<J.length;te++){const ne=J[te],ae=F[ne],ue=$[ne];(ue!==ae||ne==="value")&&i(P,ne,ae,ue,b,m)}}A&1&&u.children!==d.children&&a(P,d.children)}else!L&&S==null&&E(P,F,$,m,b);((q=$.onVnodeUpdated)||U)&&Te(()=>{q&&Pe(q,m,d,u),U&&We(d,u,m,"updated")},x)},M=(u,d,m,x,b,w,L)=>{for(let P=0;P<d.length;P++){const A=u[P],S=d[P],U=A.el&&(A.type===we||!gt(A,S)||A.shapeFlag&198)?h(A.el):m;T(A,S,U,null,x,b,w,L,!0)}},E=(u,d,m,x,b)=>{if(d!==m){if(d!==re)for(const w in d)!mt(w)&&!(w in m)&&i(u,w,d[w],null,b,x);for(const w in m){if(mt(w))continue;const L=m[w],P=d[w];L!==P&&w!=="value"&&i(u,w,P,L,b,x)}"value"in m&&i(u,"value",d.value,m.value,b)}},y=(u,d,m,x,b,w,L,P,A)=>{const S=d.el=u?u.el:o(""),U=d.anchor=u?u.anchor:o("");let{patchFlag:F,dynamicChildren:$,slotScopeIds:q}=d;q&&(P=P?P.concat(q):q),u==null?(s(S,m,x),s(U,m,x),B(d.children||[],m,U,b,w,L,P,A)):F>0&&F&64&&{{contextString}}amp;&u.dynamicChildren&&u.dynamicChildren.length===$.length?(M(u.dynamicChildren,$,m,b,w,L,P),(d.key!=null||b&&d===b.subTree)&&oo(u,d,!0)):j(u,d,m,U,b,w,L,P,A)},N=(u,d,m,x,b,w,L,P,A)=>{d.slotScopeIds=P,u==null?d.shapeFlag&512?b.ctx.activate(d,m,x,L,A):Y(d,m,x,b,w,L,A):ie(u,d,A)},Y=(u,d,m,x,b,w,L)=>{const P=u.component=Nc(u,x,b);if(qn(u)&&(P.ctx.renderer=Et),Fc(P,!1,L),P.asyncDep){if(b&&b.registerDep(P,V,L),!u.el){const A=P.subTree=ge(pe);H(null,A,d,m),u.placeholder=A.el}}else V(P,u,d,m,b,w,L)},ie=(u,d,m)=>{const x=d.component=u.component;if(vc(u,d,m))if(x.asyncDep&&!x.asyncResolved){X(x,d,m);return}else x.next=d,x.update();else d.el=u.el,x.vnode=d},V=(u,d,m,x,b,w,L)=>{const P=()=>{if(u.isMounted){let{next:F,bu:$,u:q,parent:J,vnode:te}=u;{const Ce=lo(u);if(Ce){F&&(F.el=te.el,X(u,F,L)),Ce.asyncDep.then(()=>{Te(()=>{u.isUnmounted||S()},b)});return}}let ne=F,ae;ut(u,!1),F?(F.el=te.el,X(u,F,L)):F=te,{{contextString}}amp;&es($),(ae=F.props&&F.props.onVnodeBeforeUpdate)&&Pe(ae,J,F,te),ut(u,!0);const ue=ls(u),Fe=u.subTree;u.subTree=ue,T(Fe,ue,h(Fe.el),fn(Fe),u,b,w),F.el=ue.el,ne===null&&Ji(u,ue.el),q&&Te(q,b),(ae=F.props&&F.props.onVnodeUpdated)&&Te(()=>Pe(ae,J,F,te),b)}else{let F;const{el:$,props:q}=d,{bm:J,m:te,parent:ne,root:ae,type:ue}=u,Fe=bt(d);if(ut(u,!1),J&&es(J),!Fe&&(F=q&&q.onVnodeBeforeMount)&&Pe(F,ne,d),ut(u,!0),{{contextString}}amp;&Zn){const Ce=()=>{u.subTree=ls(u),Zn($,u.subTree,u,b,null)};Fe&&ue.__asyncHydrate?ue.__asyncHydrate($,u,Ce):Ce()}else{ae.ce&&ae.ce._hasShadowRoot()&&ae.ce._injectChildStyle(ue,u.parent?u.parent.type:void 0);const Ce=u.subTree=ls(u);T(null,Ce,m,x,u,b,w),d.el=Ce.el}if(te&&Te(te,b),!Fe&&(F=q&&q.onVnodeMounted)){const Ce=d;Te(()=>Pe(F,ne,Ce),b)}(d.shapeFlag&256||ne&&bt(ne.vnode)&&ne.vnode.shapeFlag&256)&&u.a&&Te(u.a,b),u.isMounted=!0,d=m=x=null}};u.scope.on();const A=u.effect=new ci(P);u.scope.off();const S=u.update=A.run.bind(A),U=u.job=A.runIfDirty.bind(A);U.i=u,U.id=u.uid,A.scheduler=()=>qs(U),ut(u,!0),S()},X=(u,d,m)=>{d.component=u;const x=u.vnode.props;u.vnode=d,u.next=null,_c(u,d.props,x,m),xc(u,d.children,m),Qe(),ar(u),Ze()},j=(u,d,m,x,b,w,L,P,A=!1)=>{const S=u&&u.children,U=u?u.shapeFlag:0,F=d.children,{patchFlag:$,shapeFlag:q}=d;if({{contextString}}gt;0){if({{contextString}}amp;128){an(S,F,m,x,b,w,L,P,A);return}else if({{contextString}}amp;256){ee(S,F,m,x,b,w,L,P,A);return}}q&8?(U&16&&Dt(S,b,w),F!==S&&a(m,F)):U&16?q&16?an(S,F,m,x,b,w,L,P,A):Dt(S,b,w,!0):(U&8&&a(m,""),q&16&&B(F,m,x,b,w,L,P,A))},ee=(u,d,m,x,b,w,L,P,A)=>{u=u||Mt,d=d||Mt;const S=u.length,U=d.length,F=Math.min(S,U);let $;for($=0;{{contextString}}lt;F;$++){const q=d[$]=A?Je(d[$]):Ie(d[$]);T(u[$],q,m,null,b,w,L,P,A)}S>U?Dt(u,b,w,!0,!1,F):B(d,m,x,b,w,L,P,A,F)},an=(u,d,m,x,b,w,L,P,A)=>{let S=0;const U=d.length;let F=u.length-1,$=U-1;for(;S<=F&&S<=$;){const q=u[S],J=d[S]=A?Je(d[S]):Ie(d[S]);if(gt(q,J))T(q,J,m,null,b,w,L,P,A);else break;S++}for(;S<=F&&S<=$;){const q=u[F],J=d[$]=A?Je(d[$]):Ie(d[$]);if(gt(q,J))T(q,J,m,null,b,w,L,P,A);else break;F--,$--}if(S>F){if(S<=$){const q=$+1,J=q<U?d[q].el:x;for(;S<=$;)T(null,d[S]=A?Je(d[S]):Ie(d[S]),m,J,b,w,L,P,A),S++}}else if(S>$)for(;S<=F;)$e(u[S],b,w,!0),S++;else{const q=S,J=S,te=new Map;for(S=J;S<=$;S++){const Ee=d[S]=A?Je(d[S]):Ie(d[S]);Ee.key!=null&&te.set(Ee.key,S)}let ne,ae=0;const ue=$-J+1;let Fe=!1,Ce=0;const jt=new Array(ue);for(S=0;S<ue;S++)jt[S]=0;for(S=q;S<=F;S++){const Ee=u[S];if(ae>=ue){$e(Ee,b,w,!0);continue}let Ve;if(Ee.key!=null)Ve=te.get(Ee.key);else for(ne=J;ne<=$;ne++)if(jt[ne-J]===0&>(Ee,d[ne])){Ve=ne;break}Ve===void 0?$e(Ee,b,w,!0):(jt[Ve-J]=S+1,Ve>=Ce?Ce=Ve:Fe=!0,T(Ee,d[Ve],m,null,b,w,L,P,A),ae++)}const nr=Fe?Ec(jt):Mt;for(ne=nr.length-1,S=ue-1;S>=0;S--){const Ee=J+S,Ve=d[Ee],sr=d[Ee+1],rr=Ee+1<U?sr.el||co(sr):x;jt[S]===0?T(null,Ve,m,rr,b,w,L,P,A):Fe&&(ne<0||S!==nr[ne]?ft(Ve,m,rr,2):ne--)}}},ft=(u,d,m,x,b=null)=>{const{el:w,type:L,transition:P,children:A,shapeFlag:S}=u;if(S&6){ft(u.component.subTree,d,m,x);return}if(S&128){u.suspense.move(d,m,x);return}if(S&64){L.move(u,d,m,Et);return}if(L===we){s(w,d,m);for(let F=0;F<A.length;F++)ft(A[F],d,m,x);s(u.anchor,d,m);return}if(L===Gt){p(u,d,m);return}if(x!==2&&S&1&&P)if(x===0)P.beforeEnter(w),s(w,d,m),Te(()=>P.enter(w),b);else{const{leave:F,delayLeave:$,afterLeave:q}=P,J=()=>{u.ctx.isUnmounted?r(w):s(w,d,m)},te=()=>{w._isLeaving&&w[Ue](!0),F(w,()=>{J(),q&&q()})};$?$(w,J,te):te()}else s(w,d,m)},$e=(u,d,m,x=!1,b=!1)=>{const{type:w,props:L,ref:P,children:A,dynamicChildren:S,shapeFlag:U,patchFlag:F,dirs:$,cacheIndex:q,memo:J}=u;if(F===-2&&(b=!1),P!=null&&(Qe(),Lt(P,null,m,u,!0),Ze()),q!=null&&(d.renderCache[q]=void 0),U&256){d.ctx.deactivate(u);return}const te=U&1&&$,ne=!bt(u);let ae;if(ne&&(ae=L&&L.onVnodeBeforeUnmount)&&Pe(ae,d,u),U&6)Ho(u.component,m,x);else{if(U&128){u.suspense.unmount(m,x);return}te&&We(u,null,d,"beforeUnmount"),U&64?u.type.remove(u,d,m,Et,x):S&&!S.hasOnce&&(w!==we||F>0&&F&64)?Dt(S,d,m,!1,!0):(w===we&&F&384||!b&&U&16)&&Dt(A,d,m),x&&er(u)}const ue=J!=null&&q==null;(ne&&(ae=L&&L.onVnodeUnmounted)||te||ue)&&Te(()=>{ae&&Pe(ae,d,u),te&&We(u,null,d,"unmounted"),ue&&(u.el=null)},m)},er=u=>{const{type:d,el:m,anchor:x,transition:b}=u;if(d===we){Fo(m,x);return}if(d===Gt){g(u);return}const w=()=>{r(m),b&&!b.persisted&&b.afterLeave&&b.afterLeave()};if(u.shapeFlag&1&&b&&!b.persisted){const{leave:L,delayLeave:P}=b,A=()=>L(m,w);P?P(u.el,w,A):A()}else w()},Fo=(u,d)=>{let m;for(;u!==d;)m=v(u),r(u),u=m;r(d)},Ho=(u,d,m)=>{const{bum:x,scope:b,job:w,subTree:L,um:P,m:A,a:S}=u;Sr(A),Sr(S),x&&es(x),b.stop(),w&&(w.flags|=8,$e(L,u,d,m)),P&&Te(P,d),Te(()=>{u.isUnmounted=!0},d)},Dt=(u,d,m,x=!1,b=!1,w=0)=>{for(let L=w;L<u.length;L++)$e(u[L],d,m,x,b)},fn=u=>{if(u.shapeFlag&6)return fn(u.component.subTree);if(u.shapeFlag&128)return u.suspense.next();const d=v(u.anchor||u.el),m=d&&d[$l];return m?v(m):d};let zn=!1;const tr=(u,d,m)=>{let x;u==null?d._vnode&&($e(d._vnode,null,null,!0),x=d._vnode.component):T(d._vnode||null,u,d,null,null,null,m),d._vnode=u,zn||(zn=!0,ar(x),Rn(),zn=!1)},Et={p:T,um:$e,m:ft,r:er,mt:Y,mc:B,pc:j,pbc:M,n:fn,o:e};let Qn,Zn;return t&&([Qn,Zn]=t(Et)),{render:tr,hydrate:Qn,createApp:uc(tr,Qn)}}function cs({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function ut({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function io(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function oo(e,t,n=!1){const s=e.children,r=t.children;if(K(s)&&K(r))for(let i=0;i<s.length;i++){const l=s[i];let o=r[i];o.shapeFlag&1&&!o.dynamicChildren&&((o.patchFlag<=0||o.patchFlag===32)&&(o=r[i]=Je(r[i]),o.el=l.el),!n&&o.patchFlag!==-2&&oo(l,o)),o.type===St&&(o.patchFlag===-1&&(o=r[i]=Je(o)),o.el=l.el),o.type===pe&&!o.el&&(o.el=l.el)}}function Ec(e){const t=e.slice(),n=[0];let s,r,i,l,o;const c=e.length;for(s=0;s<c;s++){const f=e[s];if(f!==0){if(r=n[n.length-1],e[r]<f){t[s]=r,n.push(s);continue}for(i=0,l=n.length-1;i<l;)o=i+l>>1,e[n[o]]<f?i=o+1:l=o;f<e[n[i]]&&(i>0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,l=n[i-1];i-- >0;)n[i]=l,l=t[l];return n}function lo(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:lo(t)}function Sr(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function co(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?co(t.subTree):null}const ao=e=>e.__isSuspense;function fo(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):Ll(e)}const we=Symbol.for("v-fgt"),St=Symbol.for("v-txt"),pe=Symbol.for("v-cmt"),Gt=Symbol.for("v-stc"),Xt=[];let Ae=null;function Ps(e=!1){Xt.push(Ae=e?null:[])}function Ac(){Xt.pop(),Ae=Xt[Xt.length-1]||null}let en=1;function In(e,t=!1){en+=e,e<0&&Ae&&t&&(Ae.hasOnce=!0)}function uo(e){return e.dynamicChildren=en>0?Ae||Mt:null,Ac(),en>0&&Ae&&Ae.push(e),e}function Pf(e,t,n,s,r,i){return uo(po(e,t,n,s,r,i,!0))}function Is(e,t,n,s,r){return uo(ge(e,t,n,s,r,!0))}function tn(e){return e?e.__v_isVNode===!0:!1}function gt(e,t){return e.type===t.type&&e.key===t.key}const ho=({key:e})=>e??null,xn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?le(e)||fe(e)||G(e)?{i:Se,r:e,k:t,f:!!n}:e:null);function po(e,t=null,n=null,s=0,r=null,i=e===we?0:1,l=!1,o=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ho(t),ref:t&&xn(t),scopeId:Ai,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Se};return o?(Ys(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=le(n)?8:16),en>0&&!l&&Ae&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Ae.push(c),c}const ge=Rc;function Rc(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===Wi)&&(e=pe),tn(e)){const o=ct(e,t,!0);return n&&Ys(o,n),en>0&&!i&&Ae&&(o.shapeFlag&6?Ae[Ae.indexOf(e)]=o:Ae.push(o)),o.patchFlag=-2,o}if($c(e)&&(e=e.__vccOpts),t){t=Oc(t);let{class:o,style:c}=t;o&&!le(o)&&(t.class=$s(o)),Q(c)&&(kn(c)&&!K(c)&&(c=he({},c)),t.style=js(c))}const l=le(e)?1:ao(e)?128:Pi(e)?64:Q(e)?4:G(e)?2:0;return po(e,t,n,s,r,l,i,!0)}function Oc(e){return e?kn(e)||Zi(e)?he({},e):e:null}function ct(e,t,n=!1,s=!1){const{props:r,ref:i,patchFlag:l,children:o,transition:c}=e,f=t?Pc(r||{},t):r,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&ho(f),ref:t&&t.ref?n&&i?K(i)?i.concat(xn(t)):[i,xn(t)]:xn(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==we?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ct(e.ssContent),ssFallback:e.ssFallback&&ct(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&s&&Zt(a,c.clone(a)),a}function go(e=" ",t=0){return ge(St,null,e,t)}function If(e,t){const n=ge(Gt,null,e);return n.staticCount=t,n}function Mc(e="",t=!1){return t?(Ps(),Is(pe,null,e)):ge(pe,null,e)}function Ie(e){return e==null||typeof e=="boolean"?ge(pe):K(e)?ge(we,null,e.slice()):tn(e)?Je(e):ge(St,null,String(e))}function Je(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ct(e)}function Ys(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Ys(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!Zi(t)?t._ctx=Se:r===3&&Se&&(Se.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else G(t)?(t={default:t,_ctx:Se},n=32):(t=String(t),s&64?(n=16,t=[go(t)]):n=8);e.children=t,e.shapeFlag|=n}function Pc(...e){const t={};for(let n=0;n<e.length;n++){const s=e[n];for(const r in s)if(r==="class")t.class!==s.class&&(t.class=$s([t.class,s.class]));else if(r==="style")t.style=js([t.style,s.style]);else if(rn(r)){const i=t[r],l=s[r];l&&i!==l&&!(K(i)&&i.includes(l))?t[r]=i?[].concat(i,l):l:l==null&&i==null&&!Nn(r)&&(t[r]=l)}else r!==""&&(t[r]=s[r])}return t}function Pe(e,t,n,s=null){je(e,t,7,[n,s])}const Ic=Gi();let Lc=0;function Nc(e,t,n){const s=e.type,r=(t?t.appContext:e.appContext)||Ic,i={uid:Lc++,vnode:e,type:s,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new zo(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:to(s,r),emitsOptions:Xi(s,r),emit:null,emitted:null,propsDefaults:re,inheritAttrs:s.inheritAttrs,ctx:re,data:re,props:re,attrs:re,slots:re,refs:re,setupState:re,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return i.ctx={_:i},i.root=t?t.root:i,i.emit=hc.bind(null,i),e.ce&&e.ce(i),i}let ye=null;const Ct=()=>ye||Se;let Ln,Ls;{const e=jn(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),i=>{r.length>1?r.forEach(l=>l(i)):r[0](i)}};Ln=t("__VUE_INSTANCE_SETTERS__",n=>ye=n),Ls=t("__VUE_SSR_SETTERS__",n=>nn=n)}const cn=e=>{const t=ye;return Ln(e),e.scope.on(),()=>{e.scope.off(),Ln(t)}},xr=()=>{ye&&ye.scope.off(),Ln(null)};function mo(e){return e.vnode.shapeFlag&4}let nn=!1;function Fc(e,t=!1,n=!1){t&&Ls(t);const{props:s,children:r}=e.vnode,i=mo(e);yc(e,s,i,t),Sc(e,r,n||t);const l=i?Hc(e,t):void 0;return t&&Ls(!1),l}function Hc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,sc);const{setup:s}=n;if(s){Qe();const r=e.setupContext=s.length>1?yo(e):null,i=cn(e),l=ln(s,e,0,[e.props,r]),o=ei(l);if(Ze(),i(),(o||e.sp)&&!bt(e)&&ji(e),o){if(l.then(xr,xr),t)return l.then(c=>{Tr(e,c)}).catch(c=>{Un(c,e,0)});e.asyncDep=l}else Tr(e,l)}else vo(e)}function Tr(e,t,n){G(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Q(t)&&(e.setupState=xi(t)),vo(e)}function vo(e,t,n){const s=e.type;e.render||(e.render=s.render||qe);{const r=cn(e);Qe();try{ic(e)}finally{Ze(),r()}}}const Dc={get(e,t){return ve(e,"get",""),e[t]}};function yo(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Dc),slots:e.slots,emit:e.emit,expose:t}}function Js(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(xi(Sn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in qt)return qt[n](e)},has(t,n){return n in t||n in qt}})):e.proxy}function jc(e,t=!0){return G(e)?e.displayName||e.name:e.name||t&&e.__name}function $c(e){return G(e)&&"__vccOpts"in e}const oe=(e,t)=>Rl(e,t,nn);function Ns(e,t,n){try{In(-1);const s=arguments.length;return s===2?Q(t)&&!K(t)?tn(t)?ge(e,null,[t]):ge(e,t):ge(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&tn(n)&&(n=[n]),ge(e,t,n))}finally{In(1)}}const Vc="3.5.34";/**
* @vue/runtime-dom v3.5.34
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let Fs;const Cr=typeof window<"u"&&window.trustedTypes;if(Cr)try{Fs=Cr.createPolicy("vue",{createHTML:e=>e})}catch{}const _o=Fs?e=>Fs.createHTML(e):e=>e,kc="http://www.w3.org/2000/svg",Wc="http://www.w3.org/1998/Math/MathML",Ye=typeof document<"u"?document:null,Er=Ye&&Ye.createElement("template"),Uc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?Ye.createElementNS(kc,e):t==="mathml"?Ye.createElementNS(Wc,e):n?Ye.createElement(e,{is:n}):Ye.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Ye.createTextNode(e),createComment:e=>Ye.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ye.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const l=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{Er.innerHTML=_o(s==="svg"?`<svg>${e}</svg>`:s==="mathml"?`<math>${e}</math>`:e);const o=Er.content;if(s==="svg"||s==="mathml"){const c=o.firstChild;for(;c.firstChild;)o.appendChild(c.firstChild);o.removeChild(c)}t.insertBefore(o,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},rt="transition",kt="animation",sn=Symbol("_vtc"),bo={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Bc=he({},Ii,bo),Kc=e=>(e.displayName="Transition",e.props=Bc,e),Lf=Kc((e,{slots:t})=>Ns(Wl,qc(e),t)),dt=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ar=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function qc(e){const t={};for(const y in e)y in bo||(t[y]=e[y]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:l=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:f=l,appearToClass:a=o,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:v=`${n}-leave-active`,leaveToClass:_=`${n}-leave-to`}=e,I=Gc(r),T=I&&I[0],W=I&&I[1],{onBeforeEnter:H,onEnter:D,onEnterCancelled:p,onLeave:g,onLeaveCancelled:R,onBeforeAppear:k=H,onAppear:O=D,onAppearCancelled:B=p}=t,C=(y,N,Y,ie)=>{y._enterCancelled=ie,ht(y,N?a:o),ht(y,N?f:l),Y&&Y()},M=(y,N)=>{y._isLeaving=!1,ht(y,h),ht(y,_),ht(y,v),N&&N()},E=y=>(N,Y)=>{const ie=y?O:D,V=()=>C(N,y,Y);dt(ie,[N,V]),Rr(()=>{ht(N,y?c:i),Xe(N,y?a:o),Ar(ie)||Or(N,s,T,V)})};return he(t,{onBeforeEnter(y){dt(H,[y]),Xe(y,i),Xe(y,l)},onBeforeAppear(y){dt(k,[y]),Xe(y,c),Xe(y,f)},onEnter:E(!1),onAppear:E(!0),onLeave(y,N){y._isLeaving=!0;const Y=()=>M(y,N);Xe(y,h),y._enterCancelled?(Xe(y,v),Ir(y)):(Ir(y),Xe(y,v)),Rr(()=>{y._isLeaving&&(ht(y,h),Xe(y,_),Ar(g)||Or(y,s,W,Y))}),dt(g,[y,Y])},onEnterCancelled(y){C(y,!1,void 0,!0),dt(p,[y])},onAppearCancelled(y){C(y,!0,void 0,!0),dt(B,[y])},onLeaveCancelled(y){M(y),dt(R,[y])}})}function Gc(e){if(e==null)return null;if(Q(e))return[as(e.enter),as(e.leave)];{const t=as(e);return[t,t]}}function as(e){return Wo(e)}function Xe(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[sn]||(e[sn]=new Set)).add(t)}function ht(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[sn];n&&(n.delete(t),n.size||(e[sn]=void 0))}function Rr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Xc=0;function Or(e,t,n,s){const r=e._endId=++Xc,i=()=>{r===e._endId&&s()};if(n!=null)return setTimeout(i,n);const{type:l,timeout:o,propCount:c}=Yc(e,t);if(!l)return s();const f=l+"end";let a=0;const h=()=>{e.removeEventListener(f,v),i()},v=_=>{_.target===e&&++a>=c&&h()};setTimeout(()=>{a<c&&h()},o+1),e.addEventListener(f,v)}function Yc(e,t){const n=window.getComputedStyle(e),s=I=>(n[I]||"").split(", "),r=s(`${rt}Delay`),i=s(`${rt}Duration`),l=Mr(r,i),o=s(`${kt}Delay`),c=s(`${kt}Duration`),f=Mr(o,c);let a=null,h=0,v=0;t===rt?l>0&&(a=rt,h=l,v=i.length):t===kt?f>0&&(a=kt,h=f,v=c.length):(h=Math.max(l,f),a=h>0?l>f?rt:kt:null,v=a?a===rt?i.length:c.length:0);const _=a===rt&&/\b(?:transform|all)(?:,|$)/.test(s(`${rt}Property`).toString());return{type:a,timeout:h,propCount:v,hasTransform:_}}function Mr(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((n,s)=>Pr(n)+Pr(e[s])))}function Pr(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Ir(e){return(e?e.ownerDocument:document).body.offsetHeight}function Jc(e,t,n){const s=e[sn];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Lr=Symbol("_vod"),zc=Symbol("_vsh"),Qc=Symbol(""),Zc=/(?:^|;)\s*display\s*:/;function ea(e,t,n){const s=e.style,r=le(n);let i=!1;if(n&&!r){if(t)if(le(t))for(const l of t.split(";")){const o=l.slice(0,l.indexOf(":")).trim();n[o]==null&&Ut(s,o,"")}else for(const l in t)n[l]==null&&Ut(s,l,"");for(const l in n){l==="display"&&(i=!0);const o=n[l];o!=null?na(e,l,!le(t)&&t?t[l]:void 0,o)||Ut(s,l,o):Ut(s,l,"")}}else if(r){if(t!==n){const l=s[Qc];l&&(n+=";"+l),s.cssText=n,i=Zc.test(n)}}else t&&e.removeAttribute("style");Lr in e&&(e[Lr]=i?s.display:"",e[zc]&&(s.display="none"))}const Nr=/\s*!important$/;function Ut(e,t,n){if(K(n))n.forEach(s=>Ut(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=ta(e,t);Nr.test(n)?e.setProperty(at(s),n.replace(Nr,""),"important"):e[s]=n}}const Fr=["Webkit","Moz","ms"],fs={};function ta(e,t){const n=fs[t];if(n)return n;let s=xe(t);if(s!=="filter"&&s in e)return fs[t]=s;s=Dn(s);for(let r=0;r<Fr.length;r++){const i=Fr[r]+s;if(i in e)return fs[t]=i}return t}function na(e,t,n,s){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&le(s)&&n===s}const Hr="http://www.w3.org/1999/xlink";function Dr(e,t,n,s,r,i=Xo(t)){s&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(Hr,t.slice(6,t.length)):e.setAttributeNS(Hr,t,n):n==null||i&&!ri(n)?e.removeAttribute(t):e.setAttribute(t,i?"":Oe(n)?String(n):n)}function jr(e,t,n,s,r){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?_o(n):n);return}const i=e.tagName;if(t==="value"&&i!=="PROGRESS"&&!i.includes("-")){const o=i==="OPTION"?e.getAttribute("value")||"":e.value,c=n==null?e.type==="checkbox"?"on":"":String(n);(o!==c||!("_value"in e))&&(e.value=c),n==null&&e.removeAttribute(t),e._value=n;return}let l=!1;if(n===""||n==null){const o=typeof e[t];o==="boolean"?n=ri(n):n==null&&o==="string"?(n="",l=!0):o==="number"&&(n=0,l=!0)}try{e[t]=n}catch{}l&&e.removeAttribute(r||t)}function sa(e,t,n,s){e.addEventListener(t,n,s)}function ra(e,t,n,s){e.removeEventListener(t,n,s)}const $r=Symbol("_vei");function ia(e,t,n,s,r=null){const i=e[$r]||(e[$r]={}),l=i[t];if(s&&l)l.value=s;else{const[o,c]=oa(t);if(s){const f=i[t]=aa(s,r);sa(e,o,f,c)}else l&&(ra(e,o,l,c),i[t]=void 0)}}const Vr=/(?:Once|Passive|Capture)$/;function oa(e){let t;if(Vr.test(e)){t={};let s;for(;s=e.match(Vr);)e=e.slice(0,e.length-s[0].length),t[s[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):at(e.slice(2)),t]}let us=0;const la=Promise.resolve(),ca=()=>us||(la.then(()=>us=0),us=Date.now());function aa(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;je(fa(s,n.value),t,5,[s])};return n.value=e,n.attached=ca(),n}function fa(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const kr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ua=(e,t,n,s,r,i)=>{const l=r==="svg";t==="class"?Jc(e,s,l):t==="style"?ea(e,n,s):rn(t)?Nn(t)||ia(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):da(e,t,s,l))?(jr(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Dr(e,t,s,l,i,t!=="value")):e._isVueCE&&(ha(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!le(s)))?jr(e,xe(t),s,i,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Dr(e,t,s,l))};function da(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&kr(t)&&G(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return kr(t)&&le(n)?!1:t in e}function ha(e,t){const n=e._def.props;if(!n)return!1;const s=xe(t);return Array.isArray(n)?n.some(r=>xe(r)===s):Object.keys(n).some(r=>xe(r)===s)}const pa=["ctrl","shift","alt","meta"],ga={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>pa.some(n=>e[`${n}Key`]&&!t.includes(n))},Nf=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(r,...i)=>{for(let l=0;l<t.length;l++){const o=ga[t[l]];if(o&&o(r,t))return}return e(r,...i)})},ma={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Ff=(e,t)=>{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=r=>{if(!("key"in r))return;const i=at(r.key);if(t.some(l=>l===i||ma[l]===i))return e(r)})},va=he({patchProp:ua},Uc);let ds,Wr=!1;function ya(){return ds=Wr?ds:Tc(va),Wr=!0,ds}const Hf=(...e)=>{const t=ya().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=ba(s);if(r)return n(r,!0,_a(r))},t};function _a(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function ba(e){return le(e)?document.querySelector(e):e}const wa=window.__VP_SITE_DATA__;function wo(e){return li()?(Qo(e),!0):!1}const hs=new WeakMap,Sa=(...e)=>{var t;const n=e[0],s=(t=Ct())==null?void 0:t.proxy;if(s==null&&!Ri())throw new Error("injectLocal must be called in setup");return s&&hs.has(s)&&n in hs.get(s)?hs.get(s)[n]:_t(...e)},So=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const xa=Object.prototype.toString,Ta=e=>xa.call(e)==="[object Object]",Tt=()=>{},Ur=Ca();function Ca(){var e,t;return So&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function zs(e,t){function n(...s){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,s),{fn:t,thisArg:this,args:s})).then(r).catch(i)})}return n}const xo=e=>e();function Ea(e,t={}){let n,s,r=Tt;const i=c=>{clearTimeout(c),r(),r=Tt};let l;return c=>{const f=ce(e),a=ce(t.maxWait);return n&&i(n),f<=0||a!==void 0&&a<=0?(s&&(i(s),s=null),Promise.resolve(c())):new Promise((h,v)=>{r=t.rejectOnCancel?v:h,l=c,a&&!s&&(s=setTimeout(()=>{n&&i(n),s=null,h(l())},a)),n=setTimeout(()=>{s&&i(s),s=null,h(c())},f)})}}function Aa(...e){let t=0,n,s=!0,r=Tt,i,l,o,c,f;!fe(e[0])&&typeof e[0]=="object"?{delay:l,trailing:o=!0,leading:c=!0,rejectOnCancel:f=!1}=e[0]:[l,o=!0,c=!0,f=!1]=e;const a=()=>{n&&(clearTimeout(n),n=void 0,r(),r=Tt)};return v=>{const _=ce(l),I=Date.now()-t,T=()=>i=v();return a(),_<=0?(t=Date.now(),T()):(I>_&&(c||!s)?(t=Date.now(),T()):o&&(i=new Promise((W,H)=>{r=f?H:W,n=setTimeout(()=>{t=Date.now(),s=!0,W(T()),a()},Math.max(0,_-I))})),!c&&!n&&(n=setTimeout(()=>s=!0,_)),s=!1,i)}}function Ra(e=xo,t={}){const{initialState:n="active"}=t,s=Qs(n==="active");function r(){s.value=!1}function i(){s.value=!0}return{isActive:zt(s),pause:r,resume:i,eventFilter:(...o)=>{s.value&&e(...o)}}}function Br(e){return e.endsWith("rem")?Number.parseFloat(e)*16:Number.parseFloat(e)}function Oa(e){return Ct()}function ps(e){return Array.isArray(e)?e:[e]}function Qs(...e){if(e.length!==1)return Cl(...e);const t=e[0];return typeof t=="function"?zt(Sl(()=>({get:t,set:Tt}))):yt(t)}function Ma(e,t=200,n={}){return zs(Ea(t,n),e)}function Pa(e,t=200,n=!1,s=!0,r=!1){return zs(Aa(t,n,s,r),e)}function Ia(e,t,n={}){const{eventFilter:s=xo,...r}=n;return Ne(e,zs(s,t),r)}function La(e,t,n={}){const{eventFilter:s,initialState:r="active",...i}=n,{eventFilter:l,pause:o,resume:c,isActive:f}=Ra(s,{initialState:r});return{stop:Ia(e,t,{...i,eventFilter:l}),pause:o,resume:c,isActive:f}}function Jn(e,t=!0,n){Oa()?Ht(e,n):t?e():Bn(e)}function Na(e,t,n){return Ne(e,t,{...n,immediate:!0})}const tt=So?window:void 0;function Zs(e){var t;const n=ce(e);return(t=n==null?void 0:n.$el)!=null?t:n}function nt(...e){const t=[],n=()=>{t.forEach(o=>o()),t.length=0},s=(o,c,f,a)=>(o.addEventListener(c,f,a),()=>o.removeEventListener(c,f,a)),r=oe(()=>{const o=ps(ce(e[0])).filter(c=>c!=null);return o.every(c=>typeof c!="string")?o:void 0}),i=Na(()=>{var o,c;return[(c=(o=r.value)==null?void 0:o.map(f=>Zs(f)))!=null?c:[tt].filter(f=>f!=null),ps(ce(r.value?e[1]:e[0])),ps(Wn(r.value?e[2]:e[1])),ce(r.value?e[3]:e[2])]},([o,c,f,a])=>{if(n(),!(o!=null&&o.length)||!(c!=null&&c.length)||!(f!=null&&f.length))return;const h=Ta(a)?{...a}:a;t.push(...o.flatMap(v=>c.flatMap(_=>f.map(I=>s(v,_,I,h)))))},{flush:"post"}),l=()=>{i(),n()};return wo(n),l}function Fa(){const e=Le(!1),t=Ct();return t&&Ht(()=>{e.value=!0},t),e}function Ha(e){const t=Fa();return oe(()=>(t.value,!!e()))}function Da(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Df(...e){let t,n,s={};e.length===3?(t=e[0],n=e[1],s=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],s=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:r=tt,eventName:i="keydown",passive:l=!1,dedupe:o=!1}=s,c=Da(t);return nt(r,i,a=>{a.repeat&&ce(o)||c(a)&&n(a)},l)}const ja=Symbol("vueuse-ssr-width");function $a(){const e=Ri()?Sa(ja,null):null;return typeof e=="number"?e:void 0}function To(e,t={}){const{window:n=tt,ssrWidth:s=$a()}=t,r=Ha(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function"),i=Le(typeof s=="number"),l=Le(),o=Le(!1),c=f=>{o.value=f.matches};return Oi(()=>{if(i.value){i.value=!r.value;const f=ce(e).split(",");o.value=f.some(a=>{const h=a.includes("not all"),v=a.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),_=a.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let I=!!(v||_);return v&&I&&(I=s>=Br(v[1])),_&&I&&(I=s<=Br(_[1])),h?!I:I});return}r.value&&(l.value=n.matchMedia(ce(e)),o.value=l.value.matches)}),nt(l,"change",c,{passive:!0}),oe(()=>o.value)}const vn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},yn="__vueuse_ssr_handlers__",Va=ka();function ka(){return yn in vn||(vn[yn]=vn[yn]||{}),vn[yn]}function Co(e,t){return Va[e]||t}function Eo(e){return To("(prefers-color-scheme: dark)",e)}function Wa(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Ua={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Kr="vueuse-storage";function Ba(e,t,n,s={}){var r;const{flush:i="pre",deep:l=!0,listenToStorageChanges:o=!0,writeDefaults:c=!0,mergeDefaults:f=!1,shallow:a,window:h=tt,eventFilter:v,onError:_=E=>{console.error(E)},initOnMounted:I}=s,T=(a?Le:yt)(typeof t=="function"?t():t),W=oe(()=>ce(e));if(!n)try{n=Co("getDefaultStorage",()=>{var E;return(E=tt)==null?void 0:E.localStorage})()}catch(E){_(E)}if(!n)return T;const H=ce(t),D=Wa(H),p=(r=s.serializer)!=null?r:Ua[D],{pause:g,resume:R}=La(T,()=>O(T.value),{flush:i,deep:l,eventFilter:v});Ne(W,()=>C(),{flush:i}),h&&o&&Jn(()=>{n instanceof Storage?nt(h,"storage",C,{passive:!0}):nt(h,Kr,M),I&&C()}),I||C();function k(E,y){if(h){const N={key:W.value,oldValue:E,newValue:y,storageArea:n};h.dispatchEvent(n instanceof Storage?new StorageEvent("storage",N):new CustomEvent(Kr,{detail:N}))}}function O(E){try{const y=n.getItem(W.value);if(E==null)k(y,null),n.removeItem(W.value);else{const N=p.write(E);y!==N&&(n.setItem(W.value,N),k(y,N))}}catch(y){_(y)}}function B(E){const y=E?E.newValue:n.getItem(W.value);if(y==null)return c&&H!=null&&n.setItem(W.value,p.write(H)),H;if(!E&&f){const N=p.read(y);return typeof f=="function"?f(N,H):D==="object"&&!Array.isArray(N)?{...H,...N}:N}else return typeof y!="string"?y:p.read(y)}function C(E){if(!(E&&E.storageArea!==n)){if(E&&E.key==null){T.value=H;return}if(!(E&&E.key!==W.value)){g();try{(E==null?void 0:E.newValue)!==p.write(T.value)&&(T.value=B(E))}catch(y){_(y)}finally{E?Bn(R):R()}}}}function M(E){C(E.detail)}return T}const Ka="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function qa(e={}){const{selector:t="html",attribute:n="class",initialValue:s="auto",window:r=tt,storage:i,storageKey:l="vueuse-color-scheme",listenToStorageChanges:o=!0,storageRef:c,emitAuto:f,disableTransition:a=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},v=Eo({window:r}),_=oe(()=>v.value?"dark":"light"),I=c||(l==null?Qs(s):Ba(l,s,i,{window:r,listenToStorageChanges:o})),T=oe(()=>I.value==="auto"?_.value:I.value),W=Co("updateHTMLAttrs",(g,R,k)=>{const O=typeof g=="string"?r==null?void 0:r.document.querySelector(g):Zs(g);if(!O)return;const B=new Set,C=new Set;let M=null;if(R==="class"){const y=k.split(/\s/g);Object.values(h).flatMap(N=>(N||"").split(/\s/g)).filter(Boolean).forEach(N=>{y.includes(N)?B.add(N):C.add(N)})}else M={key:R,value:k};if(B.size===0&&C.size===0&&M===null)return;let E;a&&(E=r.document.createElement("style"),E.appendChild(document.createTextNode(Ka)),r.document.head.appendChild(E));for(const y of B)O.classList.add(y);for(const y of C)O.classList.remove(y);M&&O.setAttribute(M.key,M.value),a&&(r.getComputedStyle(E).opacity,document.head.removeChild(E))});function H(g){var R;W(t,n,(R=h[g])!=null?R:g)}function D(g){e.onChanged?e.onChanged(g,H):H(g)}Ne(T,D,{flush:"post",immediate:!0}),Jn(()=>D(T.value));const p=oe({get(){return f?I.value:T.value},set(g){I.value=g}});return Object.assign(p,{store:I,system:_,state:T})}function Ga(e={}){const{valueDark:t="dark",valueLight:n=""}=e,s=qa({...e,onChanged:(l,o)=>{var c;e.onChanged?(c=e.onChanged)==null||c.call(e,l==="dark",o,l):o(l)},modes:{dark:t,light:n}}),r=oe(()=>s.system.value);return oe({get(){return s.value==="dark"},set(l){const o=l?"dark":"light";r.value===o?s.value="auto":s.value=o}})}function gs(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}const qr=1;function Xa(e,t={}){const{throttle:n=0,idle:s=200,onStop:r=Tt,onScroll:i=Tt,offset:l={left:0,right:0,top:0,bottom:0},eventListenerOptions:o={capture:!1,passive:!0},behavior:c="auto",window:f=tt,onError:a=O=>{console.error(O)}}=t,h=Le(0),v=Le(0),_=oe({get(){return h.value},set(O){T(O,void 0)}}),I=oe({get(){return v.value},set(O){T(void 0,O)}});function T(O,B){var C,M,E,y;if(!f)return;const N=ce(e);if(!N)return;(E=N instanceof Document?f.document.body:N)==null||E.scrollTo({top:(C=ce(B))!=null?C:I.value,left:(M=ce(O))!=null?M:_.value,behavior:ce(c)});const Y=((y=N==null?void 0:N.document)==null?void 0:y.documentElement)||(N==null?void 0:N.documentElement)||N;_!=null&&(h.value=Y.scrollLeft),I!=null&&(v.value=Y.scrollTop)}const W=Le(!1),H=Nt({left:!0,right:!1,top:!0,bottom:!1}),D=Nt({left:!1,right:!1,top:!1,bottom:!1}),p=O=>{W.value&&(W.value=!1,D.left=!1,D.right=!1,D.top=!1,D.bottom=!1,r(O))},g=Ma(p,n+s),R=O=>{var B;if(!f)return;const C=((B=O==null?void 0:O.document)==null?void 0:B.documentElement)||(O==null?void 0:O.documentElement)||Zs(O),{display:M,flexDirection:E,direction:y}=getComputedStyle(C),N=y==="rtl"?-1:1,Y=C.scrollLeft;D.left=Y<h.value,D.right=Y>h.value;const ie=Math.abs(Y*N)<=(l.left||0),V=Math.abs(Y*N)+C.clientWidth>=C.scrollWidth-(l.right||0)-qr;M==="flex"&&E==="row-reverse"?(H.left=V,H.right=ie):(H.left=ie,H.right=V),h.value=Y;let X=C.scrollTop;O===f.document&&!X&&(X=f.document.body.scrollTop),D.top=X<v.value,D.bottom=X>v.value;const j=Math.abs(X)<=(l.top||0),ee=Math.abs(X)+C.clientHeight>=C.scrollHeight-(l.bottom||0)-qr;M==="flex"&&E==="column-reverse"?(H.top=ee,H.bottom=j):(H.top=j,H.bottom=ee),v.value=X},k=O=>{var B;if(!f)return;const C=(B=O.target.documentElement)!=null?B:O.target;R(C),W.value=!0,g(O),i(O)};return nt(e,"scroll",n?Pa(k,n,!0,!1):k,o),Jn(()=>{try{const O=ce(e);if(!O)return;R(O)}catch(O){a(O)}}),nt(e,"scrollend",p,o),{x:_,y:I,isScrolling:W,arrivedState:H,directions:D,measure(){const O=ce(e);f&&O&&R(O)}}}function Ao(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth<e.scrollWidth||t.overflowY==="auto"&&e.clientHeight<e.scrollHeight)return!0;{const n=e.parentNode;return!n||n.tagName==="BODY"?!1:Ao(n)}}function Ya(e){const t=e||window.event,n=t.target;return Ao(n)?!1:t.touches.length>1?!0:(t.preventDefault&&t.preventDefault(),!1)}const ms=new WeakMap;function jf(e,t=!1){const n=Le(t);let s=null,r="";Ne(Qs(e),o=>{const c=gs(ce(o));if(c){const f=c;if(ms.get(f)||ms.set(f,f.style.overflow),f.style.overflow!=="hidden"&&(r=f.style.overflow),f.style.overflow==="hidden")return n.value=!0;if(n.value)return f.style.overflow="hidden"}},{immediate:!0});const i=()=>{const o=gs(ce(e));!o||n.value||(Ur&&(s=nt(o,"touchmove",c=>{Ya(c)},{passive:!1})),o.style.overflow="hidden",n.value=!0)},l=()=>{const o=gs(ce(e));!o||!n.value||(Ur&&(s==null||s()),o.style.overflow=r,ms.delete(o),n.value=!1)};return wo(l),oe({get(){return n.value},set(o){o?i():l()}})}function $f(e={}){const{window:t=tt,...n}=e;return Xa(t,n)}function Vf(e={}){const{window:t=tt,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:s=Number.POSITIVE_INFINITY,listenOrientation:r=!0,includeScrollbar:i=!0,type:l="inner"}=e,o=Le(n),c=Le(s),f=()=>{if(t)if(l==="outer")o.value=t.outerWidth,c.value=t.outerHeight;else if(l==="visual"&&t.visualViewport){const{width:h,height:v,scale:_}=t.visualViewport;o.value=Math.round(h*_),c.value=Math.round(v*_)}else i?(o.value=t.innerWidth,c.value=t.innerHeight):(o.value=t.document.documentElement.clientWidth,c.value=t.document.documentElement.clientHeight)};f(),Jn(f);const a={passive:!0};if(nt("resize",f,a),t&&l==="visual"&&t.visualViewport&&nt(t.visualViewport,"resize",f,a),r){const h=To("(orientation: portrait)");Ne(h,()=>f())}return{width:o,height:c}}const vs={};var ys={};const Ro=/^(?:[a-z]+:|\/\/)/i,Ja="vitepress-theme-appearance",za=/#.*$/,Qa=/[?#].*$/,Za=/(?:(^|\/)index)?\.(?:md|html)$/,me=typeof document<"u",Oo={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function ef(e,t,n=!1){if(t===void 0)return!1;if(e=Gr(`/${e}`),n)return new RegExp(t).test(e);if(Gr(t)!==e)return!1;const s=t.match(za);return s?(me?location.hash:"")===s[0]:!0}function Gr(e){return decodeURI(e).replace(Qa,"").replace(Za,"$1")}function tf(e){return Ro.test(e)}function nf(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!tf(n)&&ef(t,`/${n}/`,!0))||"root"}function sf(e,t){var s,r,i,l,o,c,f;const n=nf(e,t);return Object.assign({},e,{localeIndex:n,lang:((s=e.locales[n])==null?void 0:s.lang)??e.lang,dir:((r=e.locales[n])==null?void 0:r.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((l=e.locales[n])==null?void 0:l.titleTemplate)??e.titleTemplate,description:((o=e.locales[n])==null?void 0:o.description)??e.description,head:Po(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(f=e.locales[n])==null?void 0:f.themeConfig}})}function Mo(e,t){const n=t.title||e.title,s=t.titleTemplate??e.titleTemplate;if(typeof s=="string"&&s.includes(":title"))return s.replace(/:title/g,n);const r=rf(e.title,s);return n===r.slice(3)?n:`${n}${r}`}function rf(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function of(e,t){const[n,s]=t;if(n!=="meta")return!1;const r=Object.entries(s)[0];return r==null?!1:e.some(([i,l])=>i===n&&l[r[0]]===r[1])}function Po(e,t){return[...e.filter(n=>!of(t,n)),...t]}const lf=/[\u0000-\u001F"#{{contextString}}amp;*+,:;<=>?[\]^`{|}\u007F]/g,cf=/^[a-z]:/i;function Xr(e){const t=cf.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(lf,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const _s=new Set;function af(e){if(_s.size===0){const n=typeof process=="object"&&(ys==null?void 0:ys.VITE_EXTRA_EXTENSIONS)||(vs==null?void 0:vs.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(s=>_s.add(s))}const t=e.split(".").pop();return t==null||!_s.has(t.toLowerCase())}const ff=Symbol(),xt=Le(wa);function kf(e){const t=oe(()=>sf(xt.value,e.data.relativePath)),n=t.value.appearance,s=n==="force-dark"?yt(!0):n==="force-auto"?Eo():n?Ga({storageKey:Ja,initialValue:()=>n==="dark"?"dark":"auto",...typeof n=="object"?n:{}}):yt(!1),r=yt(me?location.hash:"");return me&&window.addEventListener("hashchange",()=>{r.value=location.hash}),Ne(()=>e.data,()=>{r.value=me?location.hash:""}),{site:t,theme:oe(()=>t.value.themeConfig),page:oe(()=>e.data),frontmatter:oe(()=>e.data.frontmatter),params:oe(()=>e.data.params),lang:oe(()=>t.value.lang),dir:oe(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:oe(()=>t.value.localeIndex||"root"),title:oe(()=>Mo(t.value,e.data)),description:oe(()=>e.data.description||t.value.description),isDark:s,hash:oe(()=>r.value)}}function uf(){const e=_t(ff);if(!e)throw new Error("vitepress data not properly injected in app");return e}function df(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Yr(e){return Ro.test(e)||!e.startsWith("/")?e:df(xt.value.base,e)}function hf(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),me){const n="/ComeCut/";t=Xr(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];if(s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),!s)return null;t=`${n}assets/${t}.${s}.js`}else t=`./${Xr(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let Tn=[];function Wf(e){Tn.push(e),Xn(()=>{Tn=Tn.filter(t=>t!==e)})}function pf(){let e=xt.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=Jr(e,n);else if(Array.isArray(e))for(const s of e){const r=Jr(s,n);if(r){t=r;break}}return t}function Jr(e,t){const n=document.querySelector(e);if(!n)return 0;const s=n.getBoundingClientRect().bottom;return s<0?0:s+t}const gf=Symbol(),Io="http://a.com",mf=()=>({path:"/",component:null,data:Oo});function Uf(e,t){const n=Nt(mf()),s={route:n,go:r};async function r(o=me?location.href:"/"){var c,f;o=bs(o),await((c=s.onBeforeRouteChange)==null?void 0:c.call(s,o))!==!1&&(me&&o!==bs(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",o)),await l(o),await((f=s.onAfterRouteChange??s.onAfterRouteChanged)==null?void 0:f(o)))}let i=null;async function l(o,c=0,f=!1){var v,_;if(await((v=s.onBeforePageLoad)==null?void 0:v.call(s,o))===!1)return;const a=new URL(o,Io),h=i=a.pathname;try{let I=await e(h);if(!I)throw new Error(`Page not found: ${h}`);if(i===h){i=null;const{default:T,__pageData:W}=I;if(!T)throw new Error(`Invalid route component: ${T}`);await((_=s.onAfterPageLoad)==null?void 0:_.call(s,o)),n.path=me?h:Yr(h),n.component=Sn(T),n.data=Sn(W),me&&Bn(()=>{let H=xt.value.base+W.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!xt.value.cleanUrls&&!H.endsWith("/")&&(H+=".html"),H!==a.pathname&&(a.pathname=H,o=H+a.search+a.hash,history.replaceState({},"",o)),a.hash&&!c){let D=null;try{D=document.getElementById(decodeURIComponent(a.hash).slice(1))}catch(p){console.warn(p)}if(D){zr(D,a.hash);return}}window.scrollTo(0,c)})}}catch(I){if(!/fetch|Page not found/.test(I.message)&&!/^\/404(\.html|\/)?$/.test(o)&&console.error(I),!f)try{const T=await fetch(xt.value.base+"hashmap.json");window.__VP_HASH_MAP__=await T.json(),await l(o,c,!0);return}catch{}if(i===h){i=null,n.path=me?h:Yr(h),n.component=t?Sn(t):null;const T=me?h.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...Oo,relativePath:T}}}}return me&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",o=>{if(o.defaultPrevented||!(o.target instanceof Element)||o.target.closest("button")||o.button!==0||o.ctrlKey||o.shiftKey||o.altKey||o.metaKey)return;const c=o.target.closest("a");if(!c||c.closest(".vp-raw")||c.hasAttribute("download")||c.hasAttribute("target"))return;const f=c.getAttribute("href")??(c instanceof SVGAElement?c.getAttribute("xlink:href"):null);if(f==null)return;const{href:a,origin:h,pathname:v,hash:_,search:I}=new URL(f,c.baseURI),T=new URL(location.href);h===T.origin&&af(v)&&(o.preventDefault(),v===T.pathname&&I===T.search?(_!==T.hash&&(history.pushState({},"",a),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:T.href,newURL:a}))),_?zr(c,_,c.classList.contains("header-anchor")):window.scrollTo(0,0)):r(a))},{capture:!0}),window.addEventListener("popstate",async o=>{var f;if(o.state===null)return;const c=bs(location.href);await l(c,o.state&&o.state.scrollPosition||0),await((f=s.onAfterRouteChange??s.onAfterRouteChanged)==null?void 0:f(c))}),window.addEventListener("hashchange",o=>{o.preventDefault()})),s}function vf(){const e=_t(gf);if(!e)throw new Error("useRouter() is called without provider.");return e}function Lo(){return vf().route}function zr(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(r){console.warn(r)}if(s){let r=function(){!n||Math.abs(l-window.scrollY)>window.innerHeight?window.scrollTo(0,l):window.scrollTo({left:0,top:l,behavior:"smooth"})};const i=parseInt(window.getComputedStyle(s).paddingTop,10),l=window.scrollY+s.getBoundingClientRect().top-pf()+i;requestAnimationFrame(r)}}function bs(e){const t=new URL(e,Io);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),xt.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const _n=()=>Tn.forEach(e=>e()),Bf=Di({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Lo(),{frontmatter:n,site:s}=uf();return Ne(n,_n,{deep:!0,flush:"post"}),()=>Ns(e.as,s.value.contentProps??{style:{position:"relative"}},[t.component?Ns(t.component,{onVnodeMounted:_n,onVnodeUpdated:_n,onVnodeUnmounted:_n}):"404 Page Not Found"])}}),Kf=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},qf=Di({setup(e,{slots:t}){const n=yt(!1);return Ht(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function Gf(){me&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const s=(n=t.parentElement)==null?void 0:n.parentElement;if(!s)return;const r=Array.from(s.querySelectorAll("input")).indexOf(t);if(r<0)return;const i=s.querySelector(".blocks");if(!i)return;const l=Array.from(i.children).find(f=>f.classList.contains("active"));if(!l)return;const o=i.children[r];if(!o||l===o)return;l.classList.remove("active"),o.classList.add("active");const c=s==null?void 0:s.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function Xf(){if(me){const e=new WeakMap;window.addEventListener("click",t=>{var s;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,i=(s=n.nextElementSibling)==null?void 0:s.nextElementSibling;if(!r||!i)return;const l=/language-(shellscript|shell|bash|sh|zsh)/.test(r.className),o=[".vp-copy-ignore",".diff.remove"],c=i.cloneNode(!0);c.querySelectorAll(o.join(",")).forEach(a=>a.remove());let f=c.textContent||"";l&&(f=f.replace(/^ *(\$|>) /gm,"").trim()),yf(f).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const a=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,a)})}})}}async function yf(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const s=document.getSelection(),r=s?s.rangeCount>0&&s.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),r&&(s.removeAllRanges(),s.addRange(r)),n&&n.focus()}}function Yf(e,t){let n=!0,s=[];const r=i=>{if(n){n=!1,i.forEach(o=>{const c=ws(o);for(const f of document.head.children)if(f.isEqualNode(c)){s.push(f);return}});return}const l=i.map(ws);s.forEach((o,c)=>{const f=l.findIndex(a=>a==null?void 0:a.isEqualNode(o??null));f!==-1?delete l[f]:(o==null||o.remove(),delete s[c])}),l.forEach(o=>o&&document.head.appendChild(o)),s=[...s,...l].filter(Boolean)};Oi(()=>{const i=e.data,l=t.value,o=i&&i.description,c=i&&i.frontmatter.head||[],f=Mo(l,i);f!==document.title&&(document.title=f);const a=o||l.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==a&&h.setAttribute("content",a):ws(["meta",{name:"description",content:a}]),r(Po(l.head,bf(c)))})}function ws([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),e==="script"&&t.async==null&&(s.async=!1),s}function _f(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function bf(e){return e.filter(t=>!_f(t))}const Ss=new Set,No=()=>document.createElement("link"),wf=e=>{const t=No();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Sf=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let bn;const xf=me&&(bn=No())&&bn.relList&&bn.relList.supports&&bn.relList.supports("prefetch")?wf:Sf;function Jf(){if(!me||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const s=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(l=>{if(l.isIntersecting){const o=l.target;n.unobserve(o);const{pathname:c}=o;if(!Ss.has(c)){Ss.add(c);const f=hf(c);f&&xf(f)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:l,pathname:o}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=o.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&l===location.hostname&&(o!==location.pathname?n.observe(i):Ss.add(o))})})};Ht(s);const r=Lo();Ne(()=>r.path,s),Xn(()=>{n&&n.disconnect()})}export{uf as $,Df as A,Ht as B,qf as C,Xn as D,Ro as E,we as F,Ql as G,Ps as H,hf as I,Fl as J,zt as K,yt as L,Af as M,Rf as N,Cf as O,Ef as P,Le as Q,gf as R,xt as S,Lf as T,Jo as U,Of as V,af as W,Wn as X,Gf as Y,Xf as Z,Kf as _,Bf as a,To as a0,Jf as a1,Lo as a2,jf as a3,Mf as a4,Yf as a5,$f as a6,Vf as a7,Ne as a8,Oi as a9,Tf as aa,Yr as ab,Nl as ac,Ff as ad,Nf as ae,po as b,oe as c,Is as d,Mc as e,Pf as f,Uf as g,Hf as h,If as i,go as j,ge as k,ff as l,Di as m,pf as n,Ns as o,me as p,kf as q,_t as r,ef as s,tf as t,Pc as u,Bn as v,$s as w,js as x,Vi as y,Wf as z};
```
## /assets/chunks/image02.DB0K7DFT.js
```js path="/assets/chunks/image02.DB0K7DFT.js"
const e="/ComeCut/example/api.png",t="/ComeCut/example/translate_cn.png",a="/ComeCut/example/image02.png";export{e as _,t as a,a as b};
```
## /assets/chunks/theme.CRyEE-cC.js
```js path="/assets/chunks/theme.CRyEE-cC.js"
import{m as p,f as c,N as d,w as I,H as a,j as F,U as L,d as b,ac as h,T as me,e as f,_ as k,$ as Y,t as Ee,W as Fe,ab as j,c as P,b as l,X as i,s as z,a0 as ce,L as w,a8 as O,a9 as Z,B as D,D as ee,aa as he,G as Oe,n as De,F as x,M,O as R,z as te,k as g,Q as Le,P as B,E as Ve,a2 as ne,u as G,r as se,a7 as We,x as Se,A as Ue,v as we,a6 as xe,p as oe,K as Ge,a3 as Te,J as Ie,V as je,ad as ze,y as Re,ae as qe,a4 as Ke,o as J}from"./framework.CeqdBC-b.js";const Je=p({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(e){return(t,n)=>(a(),c("span",{class:I(["VPBadge",e.type])},[d(t.$slots,"default",{},()=>[F(L(e.text),1)])],2))}}),Qe={key:0,class:"VPBackdrop"},Xe=p({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(e){return(t,n)=>(a(),b(me,{name:"fade"},{default:h(()=>[e.show?(a(),c("div",Qe)):f("",!0)]),_:1}))}}),Ye=k(Xe,[["__scopeId","data-v-d224e4ff"]]),V=Y;function Ze(e,t){let n,o=!1;return()=>{n&&clearTimeout(n),o?n=setTimeout(e,t):(e(),(o=!0)&&setTimeout(()=>o=!1,t))}}function ue(e){return e.startsWith("/")?e:`/${e}`}function fe(e){const{pathname:t,search:n,hash:o,protocol:s}=new URL(e,"http://a.com");if(Ee(e)||e.startsWith("#")||!s.startsWith("http")||!Fe(t))return e;const{site:r}=V(),u=t.endsWith("/")||t.endsWith(".html")?e:e.replace(/(?:(^\.+)\/)?.*$/,`$1${t.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${n}${o}`);return j(u)}function K({correspondingLink:e=!1}={}){const{site:t,localeIndex:n,page:o,theme:s,hash:r}=V(),u=P(()=>{var m,$;return{label:(m=t.value.locales[n.value])==null?void 0:m.label,link:(($=t.value.locales[n.value])==null?void 0:$.link)||(n.value==="root"?"/":`/${n.value}/`)}});return{localeLinks:P(()=>Object.entries(t.value.locales).flatMap(([m,$])=>u.value.label===$.label?[]:{text:$.label,link:et($.link||(m==="root"?"/":`/${m}/`),s.value.i18nRouting!==!1&&e,o.value.relativePath.slice(u.value.link.length-1),!t.value.cleanUrls)+r.value})),currentLang:u}}function et(e,t,n,o){return t?e.replace(/\/$/,"")+ue(n.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,o?".html":"")):e}const tt={class:"NotFound"},nt={class:"code"},st={class:"title"},ot={class:"quote"},at={class:"action"},it=["href","aria-label"],lt=p({__name:"NotFound",setup(e){const{theme:t}=V(),{currentLang:n}=K();return(o,s)=>{var r,u,v,m,$;return a(),c("div",tt,[l("p",nt,L(((r=i(t).notFound)==null?void 0:r.code)??"404"),1),l("h1",st,L(((u=i(t).notFound)==null?void 0:u.title)??"PAGE NOT FOUND"),1),s[0]||(s[0]=l("div",{class:"divider"},null,-1)),l("blockquote",ot,L(((v=i(t).notFound)==null?void 0:v.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),l("div",at,[l("a",{class:"link",href:i(j)(i(n).link),"aria-label":((m=i(t).notFound)==null?void 0:m.linkLabel)??"go to home"},L((($=i(t).notFound)==null?void 0:$.linkText)??"Take me home"),9,it)])])}}}),rt=k(lt,[["__scopeId","data-v-68bc484d"]]);function Ae(e,t){if(Array.isArray(e))return Q(e);if(e==null)return[];t=ue(t);const n=Object.keys(e).sort((s,r)=>r.split("/").length-s.split("/").length).find(s=>t.startsWith(ue(s))),o=n?e[n]:[];return Array.isArray(o)?Q(o):Q(o.items,o.base)}function ct(e){const t=[];let n=0;for(const o in e){const s=e[o];if(s.items){n=t.push(s);continue}t[n]||t.push({items:[]}),t[n].items.push(s)}return t}function ut(e){const t=[];function n(o){for(const s of o)s.text&&s.link&&t.push({text:s.text,link:s.link,docFooterText:s.docFooterText}),s.items&&n(s.items)}return n(e),t}function de(e,t){return Array.isArray(t)?t.some(n=>de(e,n)):z(e,t.link)?!0:t.items?de(e,t.items):!1}function Q(e,t){return[...e].map(n=>{const o={...n},s=o.base||t;return s&&o.link&&(o.link=s+o.link),o.items&&(o.items=Q(o.items,s)),o})}function W(){const{frontmatter:e,page:t,theme:n}=V(),o=ce("(min-width: 960px)"),s=w(!1),r=P(()=>{const C=n.value.sidebar,N=t.value.relativePath;return C?Ae(C,N):[]}),u=w(r.value);O(r,(C,N)=>{JSON.stringify(C)!==JSON.stringify(N)&&(u.value=r.value)});const v=P(()=>e.value.sidebar!==!1&&u.value.length>0&&e.value.layout!=="home"),m=P(()=>$?e.value.aside==null?n.value.aside==="left":e.value.aside==="left":!1),$=P(()=>e.value.layout==="home"?!1:e.value.aside!=null?!!e.value.aside:n.value.aside!==!1),_=P(()=>v.value&&o.value),y=P(()=>v.value?ct(u.value):[]);function S(){s.value=!0}function T(){s.value=!1}function A(){s.value?T():S()}return{isOpen:s,sidebar:u,sidebarGroups:y,hasSidebar:v,hasAside:$,leftAside:m,isSidebarEnabled:_,open:S,close:T,toggle:A}}function dt(e,t){let n;Z(()=>{n=e.value?document.activeElement:void 0}),D(()=>{window.addEventListener("keyup",o)}),ee(()=>{window.removeEventListener("keyup",o)});function o(s){s.key==="Escape"&&e.value&&(t(),n==null||n.focus())}}function vt(e){const{page:t,hash:n}=V(),o=w(!1),s=P(()=>e.value.collapsed!=null),r=P(()=>!!e.value.link),u=w(!1),v=()=>{u.value=z(t.value.relativePath,e.value.link)};O([t,e,n],v),D(v);const m=P(()=>u.value?!0:e.value.items?de(t.value.relativePath,e.value.items):!1),$=P(()=>!!(e.value.items&&e.value.items.length));Z(()=>{o.value=!!(s.value&&e.value.collapsed)}),he(()=>{(u.value||m.value)&&(o.value=!1)});function _(){s.value&&(o.value=!o.value)}return{collapsed:o,collapsible:s,isLink:r,isActiveLink:u,hasActiveLink:m,hasChildren:$,toggle:_}}function mt(){const{hasSidebar:e}=W(),t=ce("(min-width: 960px)"),n=ce("(min-width: 1280px)");return{isAsideEnabled:P(()=>!n.value&&!t.value?!1:e.value?n.value:t.value)}}const ht=/\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/,ve=[];function Ce(e){return typeof e.outline=="object"&&!Array.isArray(e.outline)&&e.outline.label||e.outlineTitle||"On this page"}function pe(e){const t=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(n=>n.id&&n.hasChildNodes()).map(n=>{const o=Number(n.tagName[1]);return{element:n,title:ft(n),link:"#"+n.id,level:o}});return pt(t,e)}function ft(e){let t="";for(const n of e.childNodes)if(n.nodeType===1){if(ht.test(n.className))continue;t+=n.textContent}else n.nodeType===3&&(t+=n.textContent);return t.trim()}function pt(e,t){if(t===!1)return[];const n=(typeof t=="object"&&!Array.isArray(t)?t.level:t)||2,[o,s]=typeof n=="number"?[n,n]:n==="deep"?[2,6]:n;return kt(e,o,s)}function _t(e,t){const{isAsideEnabled:n}=mt(),o=Ze(r,100);let s=null;D(()=>{requestAnimationFrame(r),window.addEventListener("scroll",o)}),Oe(()=>{u(location.hash)}),ee(()=>{window.removeEventListener("scroll",o)});function r(){if(!n.value)return;const v=window.scrollY,m=window.innerHeight,$=document.body.offsetHeight,_=Math.abs(v+m-$)<1,y=ve.map(({element:T,link:A})=>({link:A,top:gt(T)})).filter(({top:T})=>!Number.isNaN(T)).sort((T,A)=>T.top-A.top);if(!y.length){u(null);return}if(v<1){u(null);return}if(_){u(y[y.length-1].link);return}let S=null;for(const{link:T,top:A}of y){if(A>v+De()+4)break;S=T}u(S)}function u(v){s&&s.classList.remove("active"),v==null?s=null:s=e.value.querySelector(`a[href="${decodeURIComponent(v)}"]`);const m=s;m?(m.classList.add("active"),t.value.style.top=m.offsetTop+39+"px",t.value.style.opacity="1"):(t.value.style.top="33px",t.value.style.opacity="0")}}function gt(e){let t=0;for(;e!==document.body;){if(e===null)return NaN;t+=e.offsetTop,e=e.offsetParent}return t}function kt(e,t,n){ve.length=0;const o=[],s=[];return e.forEach(r=>{const u={...r,children:[]};let v=s[s.length-1];for(;v&&v.level>=u.level;)s.pop(),v=s[s.length-1];if(u.element.classList.contains("ignore-header")||v&&"shouldIgnore"in v){s.push({level:u.level,shouldIgnore:!0});return}u.level>n||u.level<t||(ve.push({element:u.element,link:u.link}),v?v.children.push(u):o.push(u),s.push(u))}),o}const bt=["href","title"],$t=p({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(e){function t({target:n}){const o=n.href.split("#")[1],s=document.getElementById(decodeURIComponent(o));s==null||s.focus({preventScroll:!0})}return(n,o)=>{const s=R("VPDocOutlineItem",!0);return a(),c("ul",{class:I(["VPDocOutlineItem",e.root?"root":"nested"])},[(a(!0),c(x,null,M(e.headers,({children:r,link:u,title:v})=>(a(),c("li",null,[l("a",{class:"outline-link",href:u,onClick:t,title:v},L(v),9,bt),r!=null&&r.length?(a(),b(s,{key:0,headers:r},null,8,["headers"])):f("",!0)]))),256))],2)}}}),Me=k($t,[["__scopeId","data-v-909b8f54"]]),yt={class:"content"},Pt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Lt=p({__name:"VPDocAsideOutline",setup(e){const{frontmatter:t,theme:n}=V(),o=Le([]);te(()=>{o.value=pe(t.value.outline??n.value.outline)});const s=w(),r=w();return _t(s,r),(u,v)=>(a(),c("nav",{"aria-labelledby":"doc-outline-aria-label",class:I(["VPDocAsideOutline",{"has-outline":o.value.length>0}]),ref_key:"container",ref:s},[l("div",yt,[l("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),l("div",Pt,L(i(Ce)(i(n))),1),g(Me,{headers:o.value,root:!0},null,8,["headers"])])],2))}}),Vt=k(Lt,[["__scopeId","data-v-354516c3"]]),St={class:"VPDocAsideCarbonAds"},wt=p({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(e){const t=()=>null;return(n,o)=>(a(),c("div",St,[g(i(t),{"carbon-ads":e.carbonAds},null,8,["carbon-ads"])]))}}),xt={class:"VPDocAside"},Tt=p({__name:"VPDocAside",setup(e){const{theme:t}=V();return(n,o)=>(a(),c("div",xt,[d(n.$slots,"aside-top",{},void 0,!0),d(n.$slots,"aside-outline-before",{},void 0,!0),g(Vt),d(n.$slots,"aside-outline-after",{},void 0,!0),o[0]||(o[0]=l("div",{class:"spacer"},null,-1)),d(n.$slots,"aside-ads-before",{},void 0,!0),i(t).carbonAds?(a(),b(wt,{key:0,"carbon-ads":i(t).carbonAds},null,8,["carbon-ads"])):f("",!0),d(n.$slots,"aside-ads-after",{},void 0,!0),d(n.$slots,"aside-bottom",{},void 0,!0)]))}}),It=k(Tt,[["__scopeId","data-v-276a9b03"]]);function At(){const{theme:e,page:t}=V();return P(()=>{const{text:n="Edit this page",pattern:o=""}=e.value.editLink||{};let s;return typeof o=="function"?s=o(t.value):s=o.replace(/:path/g,t.value.filePath),{url:s,text:n}})}function Ct(){const{page:e,theme:t,frontmatter:n}=V();return P(()=>{var $,_,y,S,T,A,C,N;const o=Ae(t.value.sidebar,e.value.relativePath),s=ut(o),r=Mt(s,H=>H.link.replace(/[?#].*$/,"")),u=r.findIndex(H=>z(e.value.relativePath,H.link)),v=(($=t.value.docFooter)==null?void 0:$.prev)===!1&&!n.value.prev||n.value.prev===!1,m=((_=t.value.docFooter)==null?void 0:_.next)===!1&&!n.value.next||n.value.next===!1;return{prev:v?void 0:{text:(typeof n.value.prev=="string"?n.value.prev:typeof n.value.prev=="object"?n.value.prev.text:void 0)??((y=r[u-1])==null?void 0:y.docFooterText)??((S=r[u-1])==null?void 0:S.text),link:(typeof n.value.prev=="object"?n.value.prev.link:void 0)??((T=r[u-1])==null?void 0:T.link)},next:m?void 0:{text:(typeof n.value.next=="string"?n.value.next:typeof n.value.next=="object"?n.value.next.text:void 0)??((A=r[u+1])==null?void 0:A.docFooterText)??((C=r[u+1])==null?void 0:C.text),link:(typeof n.value.next=="object"?n.value.next.link:void 0)??((N=r[u+1])==null?void 0:N.link)}}})}function Mt(e,t){const n=new Set;return e.filter(o=>{const s=t(o);return n.has(s)?!1:n.add(s)})}const E=p({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(e){const t=e,n=P(()=>t.tag??(t.href?"a":"span")),o=P(()=>t.href&&Ve.test(t.href)||t.target==="_blank");return(s,r)=>(a(),b(B(n.value),{class:I(["VPLink",{link:e.href,"vp-external-link-icon":o.value,"no-icon":e.noIcon}]),href:e.href?i(fe)(e.href):void 0,target:e.target??(o.value?"_blank":void 0),rel:e.rel??(o.value?"noreferrer":void 0)},{default:h(()=>[d(s.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Nt={class:"VPLastUpdated"},Ht=["datetime"],Bt=p({__name:"VPDocFooterLastUpdated",setup(e){const{theme:t,page:n,lang:o}=V(),s=P(()=>new Date(n.value.lastUpdated)),r=P(()=>s.value.toISOString()),u=w("");return D(()=>{Z(()=>{var v,m,$;u.value=new Intl.DateTimeFormat((m=(v=t.value.lastUpdated)==null?void 0:v.formatOptions)!=null&&m.forceLocale?o.value:void 0,(($=t.value.lastUpdated)==null?void 0:$.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(s.value)})}),(v,m)=>{var $;return a(),c("p",Nt,[F(L((($=i(t).lastUpdated)==null?void 0:$.text)||i(t).lastUpdatedText||"Last updated")+": ",1),l("time",{datetime:r.value},L(u.value),9,Ht)])}}}),Et=k(Bt,[["__scopeId","data-v-515dfb47"]]),Ft={key:0,class:"VPDocFooter"},Ot={key:0,class:"edit-info"},Dt={key:0,class:"edit-link"},Wt={key:1,class:"last-updated"},Ut={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Gt={class:"pager"},jt=["innerHTML"],zt=["innerHTML"],Rt={class:"pager"},qt=["innerHTML"],Kt=["innerHTML"],Jt=p({__name:"VPDocFooter",setup(e){const{theme:t,page:n,frontmatter:o}=V(),s=At(),r=Ct(),u=P(()=>t.value.editLink&&o.value.editLink!==!1),v=P(()=>n.value.lastUpdated),m=P(()=>u.value||v.value||r.value.prev||r.value.next);return($,_)=>{var y,S,T,A;return m.value?(a(),c("footer",Ft,[d($.$slots,"doc-footer-before",{},void 0,!0),u.value||v.value?(a(),c("div",Ot,[u.value?(a(),c("div",Dt,[g(E,{class:"edit-link-button",href:i(s).url,"no-icon":!0},{default:h(()=>[_[0]||(_[0]=l("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),F(" "+L(i(s).text),1)]),_:1},8,["href"])])):f("",!0),v.value?(a(),c("div",Wt,[g(Et)])):f("",!0)])):f("",!0),(y=i(r).prev)!=null&&y.link||(S=i(r).next)!=null&&S.link?(a(),c("nav",Ut,[_[1]||(_[1]=l("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),l("div",Gt,[(T=i(r).prev)!=null&&T.link?(a(),b(E,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:h(()=>{var C;return[l("span",{class:"desc",innerHTML:((C=i(t).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,jt),l("span",{class:"title",innerHTML:i(r).prev.text},null,8,zt)]}),_:1},8,["href"])):f("",!0)]),l("div",Rt,[(A=i(r).next)!=null&&A.link?(a(),b(E,{key:0,class:"pager-link next",href:i(r).next.link},{default:h(()=>{var C;return[l("span",{class:"desc",innerHTML:((C=i(t).docFooter)==null?void 0:C.next)||"Next page"},null,8,qt),l("span",{class:"title",innerHTML:i(r).next.text},null,8,Kt)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),Qt=k(Jt,[["__scopeId","data-v-ebf48dce"]]),Xt={class:"container"},Yt={class:"aside-container"},Zt={class:"aside-content"},en={class:"content"},tn={class:"content-container"},nn={class:"main"},sn=p({__name:"VPDoc",setup(e){const{theme:t}=V(),n=ne(),{hasSidebar:o,hasAside:s,leftAside:r}=W(),u=P(()=>n.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(v,m)=>{const $=R("Content");return a(),c("div",{class:I(["VPDoc",{"has-sidebar":i(o),"has-aside":i(s)}])},[d(v.$slots,"doc-top",{},void 0,!0),l("div",Xt,[i(s)?(a(),c("div",{key:0,class:I(["aside",{"left-aside":i(r)}])},[m[0]||(m[0]=l("div",{class:"aside-curtain"},null,-1)),l("div",Yt,[l("div",Zt,[g(It,null,{"aside-top":h(()=>[d(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":h(()=>[d(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":h(()=>[d(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[d(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[d(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[d(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),l("div",en,[l("div",tn,[d(v.$slots,"doc-before",{},void 0,!0),l("main",nn,[g($,{class:I(["vp-doc",[u.value,i(t).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),g(Qt,null,{"doc-footer-before":h(()=>[d(v.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),d(v.$slots,"doc-after",{},void 0,!0)])])]),d(v.$slots,"doc-bottom",{},void 0,!0)],2)}}}),on=k(sn,[["__scopeId","data-v-be0aa853"]]),an=p({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(e){const t=e,n=P(()=>t.href&&Ve.test(t.href)),o=P(()=>t.tag||(t.href?"a":"button"));return(s,r)=>(a(),b(B(o.value),{class:I(["VPButton",[e.size,e.theme]]),href:e.href?i(fe)(e.href):void 0,target:t.target??(n.value?"_blank":void 0),rel:t.rel??(n.value?"noreferrer":void 0)},{default:h(()=>[F(L(e.text),1)]),_:1},8,["class","href","target","rel"]))}}),ln=k(an,[["__scopeId","data-v-3ab31266"]]),rn=["src","alt"],cn=p({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(e){return(t,n)=>{const o=R("VPImage",!0);return e.image?(a(),c(x,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),c("img",G({key:0,class:"VPImage"},typeof e.image=="string"?t.$attrs:{...e.image,...t.$attrs},{src:i(j)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,rn)):(a(),c(x,{key:1},[g(o,G({class:"dark",image:e.image.dark,alt:e.image.alt},t.$attrs),null,16,["image","alt"]),g(o,G({class:"light",image:e.image.light,alt:e.image.alt},t.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),X=k(cn,[["__scopeId","data-v-307916a2"]]),un={class:"container"},dn={class:"main"},vn={class:"heading"},mn=["innerHTML"],hn=["innerHTML"],fn=["innerHTML"],pn={key:0,class:"actions"},_n={key:0,class:"image"},gn={class:"image-container"},kn=p({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(e){const t=se("hero-image-slot-exists");return(n,o)=>(a(),c("div",{class:I(["VPHero",{"has-image":e.image||i(t)}])},[l("div",un,[l("div",dn,[d(n.$slots,"home-hero-info-before",{},void 0,!0),d(n.$slots,"home-hero-info",{},()=>[l("h1",vn,[e.name?(a(),c("span",{key:0,innerHTML:e.name,class:"name clip"},null,8,mn)):f("",!0),e.text?(a(),c("span",{key:1,innerHTML:e.text,class:"text"},null,8,hn)):f("",!0)]),e.tagline?(a(),c("p",{key:0,innerHTML:e.tagline,class:"tagline"},null,8,fn)):f("",!0)],!0),d(n.$slots,"home-hero-info-after",{},void 0,!0),e.actions?(a(),c("div",pn,[(a(!0),c(x,null,M(e.actions,s=>(a(),c("div",{key:s.link,class:"action"},[g(ln,{tag:"a",size:"medium",theme:s.theme,text:s.text,href:s.link,target:s.target,rel:s.rel},null,8,["theme","text","href","target","rel"])]))),128))])):f("",!0),d(n.$slots,"home-hero-actions-after",{},void 0,!0)]),e.image||i(t)?(a(),c("div",_n,[l("div",gn,[o[0]||(o[0]=l("div",{class:"image-bg"},null,-1)),d(n.$slots,"home-hero-image",{},()=>[e.image?(a(),b(X,{key:0,class:"image-src",image:e.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),bn=k(kn,[["__scopeId","data-v-a744c61a"]]),$n=p({__name:"VPHomeHero",setup(e){const{frontmatter:t}=V();return(n,o)=>i(t).hero?(a(),b(bn,{key:0,class:"VPHomeHero",name:i(t).hero.name,text:i(t).hero.text,tagline:i(t).hero.tagline,image:i(t).hero.image,actions:i(t).hero.actions},{"home-hero-info-before":h(()=>[d(n.$slots,"home-hero-info-before")]),"home-hero-info":h(()=>[d(n.$slots,"home-hero-info")]),"home-hero-info-after":h(()=>[d(n.$slots,"home-hero-info-after")]),"home-hero-actions-after":h(()=>[d(n.$slots,"home-hero-actions-after")]),"home-hero-image":h(()=>[d(n.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),yn={class:"box"},Pn={key:0,class:"icon"},Ln=["innerHTML"],Vn=["innerHTML"],Sn=["innerHTML"],wn={key:4,class:"link-text"},xn={class:"link-text-value"},Tn=p({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(e){return(t,n)=>(a(),b(E,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:h(()=>[l("article",yn,[typeof e.icon=="object"&&e.icon.wrap?(a(),c("div",Pn,[g(X,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),b(X,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),c("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Ln)):f("",!0),l("h2",{class:"title",innerHTML:e.title},null,8,Vn),e.details?(a(),c("p",{key:3,class:"details",innerHTML:e.details},null,8,Sn)):f("",!0),e.linkText?(a(),c("div",wn,[l("p",xn,[F(L(e.linkText)+" ",1),n[0]||(n[0]=l("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),In=k(Tn,[["__scopeId","data-v-f89785b4"]]),An={key:0,class:"VPFeatures"},Cn={class:"container"},Mn={class:"items"},Nn=p({__name:"VPFeatures",props:{features:{}},setup(e){const t=e,n=P(()=>{const o=t.features.length;if(o){if(o===2)return"grid-2";if(o===3)return"grid-3";if(o%3===0)return"grid-6";if(o>3)return"grid-4"}else return});return(o,s)=>e.features?(a(),c("div",An,[l("div",Cn,[l("div",Mn,[(a(!0),c(x,null,M(e.features,r=>(a(),c("div",{key:r.title,class:I(["item",[n.value]])},[g(In,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),Hn=k(Nn,[["__scopeId","data-v-c0bb34c8"]]),Bn=p({__name:"VPHomeFeatures",setup(e){const{frontmatter:t}=V();return(n,o)=>i(t).features?(a(),b(Hn,{key:0,class:"VPHomeFeatures",features:i(t).features},null,8,["features"])):f("",!0)}}),En=p({__name:"VPHomeContent",setup(e){const{width:t}=We({initialWidth:0,includeScrollbar:!1});return(n,o)=>(a(),c("div",{class:"vp-doc container",style:Se(i(t)?{"--vp-offset":`calc(50% - ${i(t)/2}px)`}:{})},[d(n.$slots,"default",{},void 0,!0)],4))}}),Fn=k(En,[["__scopeId","data-v-1888b52f"]]),On=p({__name:"VPHome",setup(e){const{frontmatter:t,theme:n}=V();return(o,s)=>{const r=R("Content");return a(),c("div",{class:I(["VPHome",{"external-link-icon-enabled":i(n).externalLinkIcon}])},[d(o.$slots,"home-hero-before",{},void 0,!0),g($n,null,{"home-hero-info-before":h(()=>[d(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[d(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[d(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[d(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[d(o.$slots,"home-hero-image",{},void 0,!0)]),_:3}),d(o.$slots,"home-hero-after",{},void 0,!0),d(o.$slots,"home-features-before",{},void 0,!0),g(Bn),d(o.$slots,"home-features-after",{},void 0,!0),i(t).markdownStyles!==!1?(a(),b(Fn,{key:0},{default:h(()=>[g(r)]),_:1})):(a(),b(r,{key:1}))],2)}}}),Dn=k(On,[["__scopeId","data-v-3f640cf3"]]),Wn={},Un={class:"VPPage"};function Gn(e,t){const n=R("Content");return a(),c("div",Un,[d(e.$slots,"page-top"),g(n),d(e.$slots,"page-bottom")])}const jn=k(Wn,[["render",Gn]]),zn=p({__name:"VPContent",setup(e){const{page:t,frontmatter:n}=V(),{hasSidebar:o}=W();return(s,r)=>(a(),c("div",{class:I(["VPContent",{"has-sidebar":i(o),"is-home":i(n).layout==="home"}]),id:"VPContent"},[i(t).isNotFound?d(s.$slots,"not-found",{key:0},()=>[g(rt)],!0):i(n).layout==="page"?(a(),b(jn,{key:1},{"page-top":h(()=>[d(s.$slots,"page-top",{},void 0,!0)]),"page-bottom":h(()=>[d(s.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(n).layout==="home"?(a(),b(Dn,{key:2},{"home-hero-before":h(()=>[d(s.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":h(()=>[d(s.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[d(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[d(s.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[d(s.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[d(s.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":h(()=>[d(s.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":h(()=>[d(s.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":h(()=>[d(s.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(n).layout&&i(n).layout!=="doc"?(a(),b(B(i(n).layout),{key:3})):(a(),b(on,{key:4},{"doc-top":h(()=>[d(s.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":h(()=>[d(s.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":h(()=>[d(s.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":h(()=>[d(s.$slots,"doc-before",{},void 0,!0)]),"doc-after":h(()=>[d(s.$slots,"doc-after",{},void 0,!0)]),"aside-top":h(()=>[d(s.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":h(()=>[d(s.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[d(s.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[d(s.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[d(s.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":h(()=>[d(s.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),Rn=k(zn,[["__scopeId","data-v-d44aaa0d"]]),qn={class:"container"},Kn=["innerHTML"],Jn=["innerHTML"],Qn=p({__name:"VPFooter",setup(e){const{theme:t,frontmatter:n}=V(),{hasSidebar:o}=W();return(s,r)=>i(t).footer&&i(n).footer!==!1?(a(),c("footer",{key:0,class:I(["VPFooter",{"has-sidebar":i(o)}])},[l("div",qn,[i(t).footer.message?(a(),c("p",{key:0,class:"message",innerHTML:i(t).footer.message},null,8,Kn)):f("",!0),i(t).footer.copyright?(a(),c("p",{key:1,class:"copyright",innerHTML:i(t).footer.copyright},null,8,Jn)):f("",!0)])],2)):f("",!0)}}),Xn=k(Qn,[["__scopeId","data-v-d66a45d2"]]);function Yn(){const{theme:e,frontmatter:t}=V(),n=Le([]),o=P(()=>n.value.length>0);return te(()=>{n.value=pe(t.value.outline??e.value.outline)}),{headers:n,hasLocalNav:o}}const Zn={class:"menu-text"},es={class:"header"},ts={class:"outline"},ns=p({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(e){const t=e,{theme:n}=V(),o=w(!1),s=w(0),r=w(),u=w();function v(y){var S;(S=r.value)!=null&&S.contains(y.target)||(o.value=!1)}O(o,y=>{if(y){document.addEventListener("click",v);return}document.removeEventListener("click",v)}),Ue("Escape",()=>{o.value=!1}),te(()=>{o.value=!1});function m(){o.value=!o.value,s.value=window.innerHeight+Math.min(window.scrollY-t.navHeight,0)}function $(y){y.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),we(()=>{o.value=!1}))}function _(){o.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(y,S)=>(a(),c("div",{class:"VPLocalNavOutlineDropdown",style:Se({"--vp-vh":s.value+"px"}),ref_key:"main",ref:r},[e.headers.length>0?(a(),c("button",{key:0,onClick:m,class:I({open:o.value})},[l("span",Zn,L(i(Ce)(i(n))),1),S[0]||(S[0]=l("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(a(),c("button",{key:1,onClick:_},L(i(n).returnToTopLabel||"Return to top"),1)),g(me,{name:"flyout"},{default:h(()=>[o.value?(a(),c("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:$},[l("div",es,[l("a",{class:"top-link",href:"#",onClick:_},L(i(n).returnToTopLabel||"Return to top"),1)]),l("div",ts,[g(Me,{headers:e.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),ss=k(ns,[["__scopeId","data-v-33a561cf"]]),os={class:"container"},as=["aria-expanded"],is={class:"menu-text"},ls=p({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(e){const{theme:t,frontmatter:n}=V(),{hasSidebar:o}=W(),{headers:s}=Yn(),{y:r}=xe(),u=w(0);D(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),te(()=>{s.value=pe(n.value.outline??t.value.outline)});const v=P(()=>s.value.length===0),m=P(()=>v.value&&!o.value),$=P(()=>({VPLocalNav:!0,"has-sidebar":o.value,empty:v.value,fixed:m.value}));return(_,y)=>i(n).layout!=="home"&&(!m.value||i(r)>=u.value)?(a(),c("div",{key:0,class:I($.value)},[l("div",os,[i(o)?(a(),c("button",{key:0,class:"menu","aria-expanded":e.open,"aria-controls":"VPSidebarNav",onClick:y[0]||(y[0]=S=>_.$emit("open-menu"))},[y[1]||(y[1]=l("span",{class:"vpi-align-left menu-icon"},null,-1)),l("span",is,L(i(t).sidebarMenuLabel||"Menu"),1)],8,as)):f("",!0),g(ss,{headers:i(s),navHeight:u.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),rs=k(ls,[["__scopeId","data-v-9206a483"]]);function cs(){const e=w(!1);function t(){e.value=!0,window.addEventListener("resize",s)}function n(){e.value=!1,window.removeEventListener("resize",s)}function o(){e.value?n():t()}function s(){window.outerWidth>=768&&n()}const r=ne();return O(()=>r.path,n),{isScreenOpen:e,openScreen:t,closeScreen:n,toggleScreen:o}}const us={},ds={class:"VPSwitch",type:"button",role:"switch"},vs={class:"check"},ms={key:0,class:"icon"};function hs(e,t){return a(),c("button",ds,[l("span",vs,[e.$slots.default?(a(),c("span",ms,[d(e.$slots,"default",{},void 0,!0)])):f("",!0)])])}const fs=k(us,[["render",hs],["__scopeId","data-v-385faf3a"]]),ps=p({__name:"VPSwitchAppearance",setup(e){const{isDark:t,theme:n}=V(),o=se("toggle-appearance",()=>{t.value=!t.value}),s=w("");return he(()=>{s.value=t.value?n.value.lightModeSwitchTitle||"Switch to light theme":n.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,u)=>(a(),b(fs,{title:s.value,class:"VPSwitchAppearance","aria-checked":i(t),onClick:i(o)},{default:h(()=>[...u[0]||(u[0]=[l("span",{class:"vpi-sun sun"},null,-1),l("span",{class:"vpi-moon moon"},null,-1)])]),_:1},8,["title","aria-checked","onClick"]))}}),_e=k(ps,[["__scopeId","data-v-f2a37889"]]),_s={key:0,class:"VPNavBarAppearance"},gs=p({__name:"VPNavBarAppearance",setup(e){const{site:t}=V();return(n,o)=>i(t).appearance&&i(t).appearance!=="force-dark"&&i(t).appearance!=="force-auto"?(a(),c("div",_s,[g(_e)])):f("",!0)}}),ks=k(gs,[["__scopeId","data-v-ed413d57"]]),ge=w();let Ne=!1,re=0;function bs(e){const t=w(!1);if(oe){!Ne&&$s(),re++;const n=O(ge,o=>{var s,r,u;o===e.el.value||(s=e.el.value)!=null&&s.contains(o)?(t.value=!0,(r=e.onFocus)==null||r.call(e)):(t.value=!1,(u=e.onBlur)==null||u.call(e))});ee(()=>{n(),re--,re||ys()})}return Ge(t)}function $s(){document.addEventListener("focusin",He),Ne=!0,ge.value=document.activeElement}function ys(){document.removeEventListener("focusin",He)}function He(){ge.value=document.activeElement}const Ps={class:"VPMenuLink"},Ls=["innerHTML"],Vs=p({__name:"VPMenuLink",props:{item:{}},setup(e){const{page:t}=V();return(n,o)=>(a(),c("div",Ps,[g(E,{class:I({active:i(z)(i(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon},{default:h(()=>[l("span",{innerHTML:e.item.text},null,8,Ls)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),ae=k(Vs,[["__scopeId","data-v-ed5cd40f"]]),Ss={class:"VPMenuGroup"},ws={key:0,class:"title"},xs=p({__name:"VPMenuGroup",props:{text:{},items:{}},setup(e){return(t,n)=>(a(),c("div",Ss,[e.text?(a(),c("p",ws,L(e.text),1)):f("",!0),(a(!0),c(x,null,M(e.items,o=>(a(),c(x,null,["link"in o?(a(),b(ae,{key:0,item:o},null,8,["item"])):f("",!0)],64))),256))]))}}),Ts=k(xs,[["__scopeId","data-v-c8367ebb"]]),Is={class:"VPMenu"},As={key:0,class:"items"},Cs=p({__name:"VPMenu",props:{items:{}},setup(e){return(t,n)=>(a(),c("div",Is,[e.items?(a(),c("div",As,[(a(!0),c(x,null,M(e.items,o=>(a(),c(x,{key:JSON.stringify(o)},["link"in o?(a(),b(ae,{key:0,item:o},null,8,["item"])):"component"in o?(a(),b(B(o.component),G({key:1,ref_for:!0},o.props),null,16)):(a(),b(Ts,{key:2,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):f("",!0),d(t.$slots,"default",{},void 0,!0)]))}}),Ms=k(Cs,[["__scopeId","data-v-15196d84"]]),Ns=["aria-expanded","aria-label"],Hs={key:0,class:"text"},Bs=["innerHTML"],Es={key:1,class:"vpi-more-horizontal icon"},Fs={class:"menu"},Os=p({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(e){const t=w(!1),n=w();bs({el:n,onBlur:o});function o(){t.value=!1}return(s,r)=>(a(),c("div",{class:"VPFlyout",ref_key:"el",ref:n,onMouseenter:r[1]||(r[1]=u=>t.value=!0),onMouseleave:r[2]||(r[2]=u=>t.value=!1)},[l("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":t.value,"aria-label":e.label,onClick:r[0]||(r[0]=u=>t.value=!t.value)},[e.button||e.icon?(a(),c("span",Hs,[e.icon?(a(),c("span",{key:0,class:I([e.icon,"option-icon"])},null,2)):f("",!0),e.button?(a(),c("span",{key:1,innerHTML:e.button},null,8,Bs)):f("",!0),r[3]||(r[3]=l("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(a(),c("span",Es))],8,Ns),l("div",Fs,[g(Ms,{items:e.items},{default:h(()=>[d(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ke=k(Os,[["__scopeId","data-v-b0f8aada"]]),Ds=["href","aria-label","innerHTML"],Ws=p({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(e){const t=e,n=w();D(async()=>{var r;await we();const s=(r=n.value)==null?void 0:r.children[0];s instanceof HTMLElement&&s.className.startsWith("vpi-social-")&&(getComputedStyle(s).maskImage||getComputedStyle(s).webkitMaskImage)==="none"&&s.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${t.icon}.svg')`)});const o=P(()=>typeof t.icon=="object"?t.icon.svg:`<span class="vpi-social-${t.icon}"></span>`);return(s,r)=>(a(),c("a",{ref_key:"el",ref:n,class:"VPSocialLink no-icon",href:e.link,"aria-label":e.ariaLabel??(typeof e.icon=="string"?e.icon:""),target:"_blank",rel:"noopener",innerHTML:o.value},null,8,Ds))}}),Us=k(Ws,[["__scopeId","data-v-58357848"]]),Gs={class:"VPSocialLinks"},js=p({__name:"VPSocialLinks",props:{links:{}},setup(e){return(t,n)=>(a(),c("div",Gs,[(a(!0),c(x,null,M(e.links,({link:o,icon:s,ariaLabel:r})=>(a(),b(Us,{key:o,icon:s,link:o,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),be=k(js,[["__scopeId","data-v-61f0d15d"]]),zs={key:0,class:"group translations"},Rs={class:"trans-title"},qs={key:1,class:"group"},Ks={class:"item appearance"},Js={class:"label"},Qs={class:"appearance-action"},Xs={key:2,class:"group"},Ys={class:"item social-links"},Zs=p({__name:"VPNavBarExtra",setup(e){const{site:t,theme:n}=V(),{localeLinks:o,currentLang:s}=K({correspondingLink:!0}),r=P(()=>o.value.length&&s.value.label||t.value.appearance||n.value.socialLinks);return(u,v)=>r.value?(a(),b(ke,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:h(()=>[i(o).length&&i(s).label?(a(),c("div",zs,[l("p",Rs,L(i(s).label),1),(a(!0),c(x,null,M(i(o),m=>(a(),b(ae,{key:m.link,item:m},null,8,["item"]))),128))])):f("",!0),i(t).appearance&&i(t).appearance!=="force-dark"&&i(t).appearance!=="force-auto"?(a(),c("div",qs,[l("div",Ks,[l("p",Js,L(i(n).darkModeSwitchLabel||"Appearance"),1),l("div",Qs,[g(_e)])])])):f("",!0),i(n).socialLinks?(a(),c("div",Xs,[l("div",Ys,[g(be,{class:"social-links-list",links:i(n).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),eo=k(Zs,[["__scopeId","data-v-6251a52d"]]),to=["aria-expanded"],no=p({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(e){return(t,n)=>(a(),c("button",{type:"button",class:I(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:n[0]||(n[0]=o=>t.$emit("click"))},[...n[1]||(n[1]=[l("span",{class:"container"},[l("span",{class:"top"}),l("span",{class:"middle"}),l("span",{class:"bottom"})],-1)])],10,to))}}),so=k(no,[["__scopeId","data-v-5e9062f0"]]),oo=["innerHTML"],ao=p({__name:"VPNavBarMenuLink",props:{item:{}},setup(e){const{page:t}=V();return(n,o)=>(a(),b(E,{class:I({VPNavBarMenuLink:!0,active:i(z)(i(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,tabindex:"0"},{default:h(()=>[l("span",{innerHTML:e.item.text},null,8,oo)]),_:1},8,["class","href","target","rel","no-icon"]))}}),io=k(ao,[["__scopeId","data-v-463865f9"]]),lo=p({__name:"VPNavBarMenuGroup",props:{item:{}},setup(e){const t=e,{page:n}=V(),o=r=>"component"in r?!1:"link"in r?z(n.value.relativePath,r.link,!!t.item.activeMatch):r.items.some(o),s=P(()=>o(t.item));return(r,u)=>(a(),b(ke,{class:I({VPNavBarMenuGroup:!0,active:i(z)(i(n).relativePath,e.item.activeMatch,!!e.item.activeMatch)||s.value}),button:e.item.text,items:e.item.items},null,8,["class","button","items"]))}}),ro={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},co=p({__name:"VPNavBarMenu",setup(e){const{theme:t}=V();return(n,o)=>i(t).nav?(a(),c("nav",ro,[o[0]||(o[0]=l("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(a(!0),c(x,null,M(i(t).nav,s=>(a(),c(x,{key:JSON.stringify(s)},["link"in s?(a(),b(io,{key:0,item:s},null,8,["item"])):"component"in s?(a(),b(B(s.component),G({key:1,ref_for:!0},s.props),null,16)):(a(),b(lo,{key:2,item:s},null,8,["item"]))],64))),128))])):f("",!0)}}),uo=k(co,[["__scopeId","data-v-ad424140"]]);function vo(e){const{localeIndex:t,theme:n}=V();function o(s){var A,C,N;const r=s.split("."),u=(A=n.value.search)==null?void 0:A.options,v=u&&typeof u=="object",m=v&&((N=(C=u.locales)==null?void 0:C[t.value])==null?void 0:N.translations)||null,$=v&&u.translations||null;let _=m,y=$,S=e;const T=r.pop();for(const H of r){let U=null;const q=S==null?void 0:S[H];q&&(U=S=q);const ie=y==null?void 0:y[H];ie&&(U=y=ie);const le=_==null?void 0:_[H];le&&(U=_=le),q||(S=U),ie||(y=U),le||(_=U)}return(_==null?void 0:_[T])??(y==null?void 0:y[T])??(S==null?void 0:S[T])??""}return o}const mo=["aria-label"],ho={class:"DocSearch-Button-Container"},fo={class:"DocSearch-Button-Placeholder"},$e=p({__name:"VPNavBarSearchButton",setup(e){const n=vo({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(o,s)=>(a(),c("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(n)("button.buttonAriaLabel")},[l("span",ho,[s[0]||(s[0]=l("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),l("span",fo,L(i(n)("button.buttonText")),1)]),s[1]||(s[1]=l("span",{class:"DocSearch-Button-Keys"},[l("kbd",{class:"DocSearch-Button-Key"}),l("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,mo))}}),po={class:"VPNavBarSearch"},_o={id:"local-search"},go={key:1,id:"docsearch"},ko=p({__name:"VPNavBarSearch",setup(e){const t=()=>null,n=()=>null,{theme:o}=V(),s=w(!1),r=w(!1);D(()=>{});function u(){s.value||(s.value=!0,setTimeout(v,16))}function v(){const _=new Event("keydown");_.key="k",_.metaKey=!0,window.dispatchEvent(_),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||v()},16)}const m=w(!1),$="";return(_,y)=>{var S;return a(),c("div",po,[i($)==="local"?(a(),c(x,{key:0},[m.value?(a(),b(i(t),{key:0,onClose:y[0]||(y[0]=T=>m.value=!1)})):f("",!0),l("div",_o,[g($e,{onClick:y[1]||(y[1]=T=>m.value=!0)})])],64)):i($)==="algolia"?(a(),c(x,{key:1},[s.value?(a(),b(i(n),{key:0,algolia:((S=i(o).search)==null?void 0:S.options)??i(o).algolia,onVnodeBeforeMount:y[2]||(y[2]=T=>r.value=!0)},null,8,["algolia"])):f("",!0),r.value?f("",!0):(a(),c("div",go,[g($e,{onClick:u})]))],64)):f("",!0)])}}}),bo=p({__name:"VPNavBarSocialLinks",setup(e){const{theme:t}=V();return(n,o)=>i(t).socialLinks?(a(),b(be,{key:0,class:"VPNavBarSocialLinks",links:i(t).socialLinks},null,8,["links"])):f("",!0)}}),$o=k(bo,[["__scopeId","data-v-0d46b6f9"]]),yo=["href","rel","target"],Po=["innerHTML"],Lo={key:2},Vo=p({__name:"VPNavBarTitle",setup(e){const{site:t,theme:n}=V(),{hasSidebar:o}=W(),{currentLang:s}=K(),r=P(()=>{var m;return typeof n.value.logoLink=="string"?n.value.logoLink:(m=n.value.logoLink)==null?void 0:m.link}),u=P(()=>{var m;return typeof n.value.logoLink=="string"||(m=n.value.logoLink)==null?void 0:m.rel}),v=P(()=>{var m;return typeof n.value.logoLink=="string"||(m=n.value.logoLink)==null?void 0:m.target});return(m,$)=>(a(),c("div",{class:I(["VPNavBarTitle",{"has-sidebar":i(o)}])},[l("a",{class:"title",href:r.value??i(fe)(i(s).link),rel:u.value,target:v.value},[d(m.$slots,"nav-bar-title-before",{},void 0,!0),i(n).logo?(a(),b(X,{key:0,class:"logo",image:i(n).logo},null,8,["image"])):f("",!0),i(n).siteTitle?(a(),c("span",{key:1,innerHTML:i(n).siteTitle},null,8,Po)):i(n).siteTitle===void 0?(a(),c("span",Lo,L(i(t).title),1)):f("",!0),d(m.$slots,"nav-bar-title-after",{},void 0,!0)],8,yo)],2))}}),So=k(Vo,[["__scopeId","data-v-3244061b"]]),wo={class:"items"},xo={class:"title"},To=p({__name:"VPNavBarTranslations",setup(e){const{theme:t}=V(),{localeLinks:n,currentLang:o}=K({correspondingLink:!0});return(s,r)=>i(n).length&&i(o).label?(a(),b(ke,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(t).langMenuLabel||"Change language"},{default:h(()=>[l("div",wo,[l("p",xo,L(i(o).label),1),(a(!0),c(x,null,M(i(n),u=>(a(),b(ae,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),Io=k(To,[["__scopeId","data-v-60595cd6"]]),Ao={class:"wrapper"},Co={class:"container"},Mo={class:"title"},No={class:"content"},Ho={class:"content-body"},Bo=p({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(e){const t=e,{y:n}=xe(),{hasSidebar:o}=W(),{frontmatter:s}=V(),r=w({});return he(()=>{r.value={"has-sidebar":o.value,home:s.value.layout==="home",top:n.value===0,"screen-open":t.isScreenOpen}}),(u,v)=>(a(),c("div",{class:I(["VPNavBar",r.value])},[l("div",Ao,[l("div",Co,[l("div",Mo,[g(So,null,{"nav-bar-title-before":h(()=>[d(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[d(u.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),l("div",No,[l("div",Ho,[d(u.$slots,"nav-bar-content-before",{},void 0,!0),g(ko,{class:"search"}),g(uo,{class:"menu"}),g(Io,{class:"translations"}),g(ks,{class:"appearance"}),g($o,{class:"social-links"}),g(eo,{class:"extra"}),d(u.$slots,"nav-bar-content-after",{},void 0,!0),g(so,{class:"hamburger",active:e.isScreenOpen,onClick:v[0]||(v[0]=m=>u.$emit("toggle-screen"))},null,8,["active"])])])])]),v[1]||(v[1]=l("div",{class:"divider"},[l("div",{class:"divider-line"})],-1))],2))}}),Eo=k(Bo,[["__scopeId","data-v-bf52a942"]]),Fo={key:0,class:"VPNavScreenAppearance"},Oo={class:"text"},Do=p({__name:"VPNavScreenAppearance",setup(e){const{site:t,theme:n}=V();return(o,s)=>i(t).appearance&&i(t).appearance!=="force-dark"&&i(t).appearance!=="force-auto"?(a(),c("div",Fo,[l("p",Oo,L(i(n).darkModeSwitchLabel||"Appearance"),1),g(_e)])):f("",!0)}}),Wo=k(Do,[["__scopeId","data-v-bda9fa8c"]]),Uo=["innerHTML"],Go=p({__name:"VPNavScreenMenuLink",props:{item:{}},setup(e){const t=se("close-screen");return(n,o)=>(a(),b(E,{class:"VPNavScreenMenuLink",href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,onClick:i(t)},{default:h(()=>[l("span",{innerHTML:e.item.text},null,8,Uo)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),jo=k(Go,[["__scopeId","data-v-8386554a"]]),zo=["innerHTML"],Ro=p({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(e){const t=se("close-screen");return(n,o)=>(a(),b(E,{class:"VPNavScreenMenuGroupLink",href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,onClick:i(t)},{default:h(()=>[l("span",{innerHTML:e.item.text},null,8,zo)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Be=k(Ro,[["__scopeId","data-v-752f5b8a"]]),qo={class:"VPNavScreenMenuGroupSection"},Ko={key:0,class:"title"},Jo=p({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(e){return(t,n)=>(a(),c("div",qo,[e.text?(a(),c("p",Ko,L(e.text),1)):f("",!0),(a(!0),c(x,null,M(e.items,o=>(a(),b(Be,{key:o.text,item:o},null,8,["item"]))),128))]))}}),Qo=k(Jo,[["__scopeId","data-v-570e532b"]]),Xo=["aria-controls","aria-expanded"],Yo=["innerHTML"],Zo=["id"],ea={key:0,class:"item"},ta={key:1,class:"item"},na={key:2,class:"group"},sa=p({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(e){const t=e,n=w(!1),o=P(()=>`NavScreenGroup-${t.text.replace(" ","-").toLowerCase()}`);function s(){n.value=!n.value}return(r,u)=>(a(),c("div",{class:I(["VPNavScreenMenuGroup",{open:n.value}])},[l("button",{class:"button","aria-controls":o.value,"aria-expanded":n.value,onClick:s},[l("span",{class:"button-text",innerHTML:e.text},null,8,Yo),u[0]||(u[0]=l("span",{class:"vpi-plus button-icon"},null,-1))],8,Xo),l("div",{id:o.value,class:"items"},[(a(!0),c(x,null,M(e.items,v=>(a(),c(x,{key:JSON.stringify(v)},["link"in v?(a(),c("div",ea,[g(Be,{item:v},null,8,["item"])])):"component"in v?(a(),c("div",ta,[(a(),b(B(v.component),G({ref_for:!0},v.props,{"screen-menu":""}),null,16))])):(a(),c("div",na,[g(Qo,{text:v.text,items:v.items},null,8,["text","items"])]))],64))),128))],8,Zo)],2))}}),oa=k(sa,[["__scopeId","data-v-eebadf0c"]]),aa={key:0,class:"VPNavScreenMenu"},ia=p({__name:"VPNavScreenMenu",setup(e){const{theme:t}=V();return(n,o)=>i(t).nav?(a(),c("nav",aa,[(a(!0),c(x,null,M(i(t).nav,s=>(a(),c(x,{key:JSON.stringify(s)},["link"in s?(a(),b(jo,{key:0,item:s},null,8,["item"])):"component"in s?(a(),b(B(s.component),G({key:1,ref_for:!0},s.props,{"screen-menu":""}),null,16)):(a(),b(oa,{key:2,text:s.text||"",items:s.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),la=p({__name:"VPNavScreenSocialLinks",setup(e){const{theme:t}=V();return(n,o)=>i(t).socialLinks?(a(),b(be,{key:0,class:"VPNavScreenSocialLinks",links:i(t).socialLinks},null,8,["links"])):f("",!0)}}),ra={class:"list"},ca=p({__name:"VPNavScreenTranslations",setup(e){const{localeLinks:t,currentLang:n}=K({correspondingLink:!0}),o=w(!1);function s(){o.value=!o.value}return(r,u)=>i(t).length&&i(n).label?(a(),c("div",{key:0,class:I(["VPNavScreenTranslations",{open:o.value}])},[l("button",{class:"title",onClick:s},[u[0]||(u[0]=l("span",{class:"vpi-languages icon lang"},null,-1)),F(" "+L(i(n).label)+" ",1),u[1]||(u[1]=l("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),l("ul",ra,[(a(!0),c(x,null,M(i(t),v=>(a(),c("li",{key:v.link,class:"item"},[g(E,{class:"link",href:v.link},{default:h(()=>[F(L(v.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),ua=k(ca,[["__scopeId","data-v-7f16bc46"]]),da={class:"container"},va=p({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(e){const t=w(null),n=Te(oe?document.body:null);return(o,s)=>(a(),b(me,{name:"fade",onEnter:s[0]||(s[0]=r=>n.value=!0),onAfterLeave:s[1]||(s[1]=r=>n.value=!1)},{default:h(()=>[e.open?(a(),c("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:t,id:"VPNavScreen"},[l("div",da,[d(o.$slots,"nav-screen-content-before",{},void 0,!0),g(ia,{class:"menu"}),g(ua,{class:"translations"}),g(Wo,{class:"appearance"}),g(la,{class:"social-links"}),d(o.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),ma=k(va,[["__scopeId","data-v-9f63d1b0"]]),ha={key:0,class:"VPNav"},fa=p({__name:"VPNav",setup(e){const{isScreenOpen:t,closeScreen:n,toggleScreen:o}=cs(),{frontmatter:s}=V(),r=P(()=>s.value.navbar!==!1);return Ie("close-screen",n),Z(()=>{oe&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(u,v)=>r.value?(a(),c("header",ha,[g(Eo,{"is-screen-open":i(t),onToggleScreen:i(o)},{"nav-bar-title-before":h(()=>[d(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[d(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":h(()=>[d(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":h(()=>[d(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),g(ma,{open:i(t)},{"nav-screen-content-before":h(()=>[d(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":h(()=>[d(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),pa=k(fa,[["__scopeId","data-v-e0c14098"]]),_a=["role","tabindex"],ga={key:1,class:"items"},ka=p({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(e){const t=e,{collapsed:n,collapsible:o,isLink:s,isActiveLink:r,hasActiveLink:u,hasChildren:v,toggle:m}=vt(P(()=>t.item)),$=P(()=>v.value?"section":"div"),_=P(()=>s.value?"a":"div"),y=P(()=>v.value?t.depth+2===7?"p":`h${t.depth+2}`:"p"),S=P(()=>s.value?void 0:"button"),T=P(()=>[[`level-${t.depth}`],{collapsible:o.value},{collapsed:n.value},{"is-link":s.value},{"is-active":r.value},{"has-active":u.value}]);function A(N){"key"in N&&N.key!=="Enter"||!t.item.link&&m()}function C(){t.item.link&&m()}return(N,H)=>{const U=R("VPSidebarItem",!0);return a(),b(B($.value),{class:I(["VPSidebarItem",T.value])},{default:h(()=>[e.item.text?(a(),c("div",G({key:0,class:"item",role:S.value},je(e.item.items?{click:A,keydown:A}:{},!0),{tabindex:e.item.items&&0}),[H[1]||(H[1]=l("div",{class:"indicator"},null,-1)),e.item.link?(a(),b(E,{key:0,tag:_.value,class:"link",href:e.item.link,rel:e.item.rel,target:e.item.target},{default:h(()=>[(a(),b(B(y.value),{class:"text",innerHTML:e.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),b(B(y.value),{key:1,class:"text",innerHTML:e.item.text},null,8,["innerHTML"])),e.item.collapsed!=null&&e.item.items&&e.item.items.length?(a(),c("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:ze(C,["enter"]),tabindex:"0"},[...H[0]||(H[0]=[l("span",{class:"vpi-chevron-right caret-icon"},null,-1)])],32)):f("",!0)],16,_a)):f("",!0),e.item.items&&e.item.items.length?(a(),c("div",ga,[e.depth<5?(a(!0),c(x,{key:0},M(e.item.items,q=>(a(),b(U,{key:q.text,item:q,depth:e.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),ba=k(ka,[["__scopeId","data-v-9c01e1d6"]]),$a=p({__name:"VPSidebarGroup",props:{items:{}},setup(e){const t=w(!0);let n=null;return D(()=>{n=setTimeout(()=>{n=null,t.value=!1},300)}),Re(()=>{n!=null&&(clearTimeout(n),n=null)}),(o,s)=>(a(!0),c(x,null,M(e.items,r=>(a(),c("div",{key:r.text,class:I(["group",{"no-transition":t.value}])},[g(ba,{item:r,depth:0},null,8,["item"])],2))),128))}}),ya=k($a,[["__scopeId","data-v-61d9b816"]]),Pa={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},La=p({__name:"VPSidebar",props:{open:{type:Boolean}},setup(e){const{sidebarGroups:t,hasSidebar:n}=W(),o=e,s=w(null),r=Te(oe?document.body:null);O([o,s],()=>{var v;o.open?(r.value=!0,(v=s.value)==null||v.focus()):r.value=!1},{immediate:!0,flush:"post"});const u=w(0);return O(t,()=>{u.value+=1},{deep:!0}),(v,m)=>i(n)?(a(),c("aside",{key:0,class:I(["VPSidebar",{open:e.open}]),ref_key:"navEl",ref:s,onClick:m[0]||(m[0]=qe(()=>{},["stop"]))},[m[2]||(m[2]=l("div",{class:"curtain"},null,-1)),l("nav",Pa,[m[1]||(m[1]=l("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),d(v.$slots,"sidebar-nav-before",{},void 0,!0),(a(),b(ya,{items:i(t),key:u.value},null,8,["items"])),d(v.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),Va=k(La,[["__scopeId","data-v-781fc7c3"]]),Sa=p({__name:"VPSkipLink",setup(e){const{theme:t}=V(),n=ne(),o=w();O(()=>n.path,()=>o.value.focus());function s({target:r}){const u=document.getElementById(decodeURIComponent(r.hash).slice(1));if(u){const v=()=>{u.removeAttribute("tabindex"),u.removeEventListener("blur",v)};u.setAttribute("tabindex","-1"),u.addEventListener("blur",v),u.focus(),window.scrollTo(0,0)}}return(r,u)=>(a(),c(x,null,[l("span",{ref_key:"backToTop",ref:o,tabindex:"-1"},null,512),l("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s},L(i(t).skipToContentLabel||"Skip to content"),1)],64))}}),wa=k(Sa,[["__scopeId","data-v-d18fb172"]]),xa=p({__name:"Layout",setup(e){const{isOpen:t,open:n,close:o}=W(),s=ne();O(()=>s.path,o),dt(t,o);const{frontmatter:r}=V(),u=Ke(),v=P(()=>!!u["home-hero-image"]);return Ie("hero-image-slot-exists",v),(m,$)=>{const _=R("Content");return i(r).layout!==!1?(a(),c("div",{key:0,class:I(["Layout",i(r).pageClass])},[d(m.$slots,"layout-top",{},void 0,!0),g(wa),g(Ye,{class:"backdrop",show:i(t),onClick:i(o)},null,8,["show","onClick"]),g(pa,null,{"nav-bar-title-before":h(()=>[d(m.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[d(m.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":h(()=>[d(m.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":h(()=>[d(m.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":h(()=>[d(m.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":h(()=>[d(m.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),g(rs,{open:i(t),onOpenMenu:i(n)},null,8,["open","onOpenMenu"]),g(Va,{open:i(t)},{"sidebar-nav-before":h(()=>[d(m.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":h(()=>[d(m.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),g(Rn,null,{"page-top":h(()=>[d(m.$slots,"page-top",{},void 0,!0)]),"page-bottom":h(()=>[d(m.$slots,"page-bottom",{},void 0,!0)]),"not-found":h(()=>[d(m.$slots,"not-found",{},void 0,!0)]),"home-hero-before":h(()=>[d(m.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":h(()=>[d(m.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[d(m.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[d(m.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[d(m.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[d(m.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":h(()=>[d(m.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":h(()=>[d(m.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":h(()=>[d(m.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":h(()=>[d(m.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":h(()=>[d(m.$slots,"doc-before",{},void 0,!0)]),"doc-after":h(()=>[d(m.$slots,"doc-after",{},void 0,!0)]),"doc-top":h(()=>[d(m.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":h(()=>[d(m.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":h(()=>[d(m.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":h(()=>[d(m.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":h(()=>[d(m.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[d(m.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[d(m.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[d(m.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),g(Xn),d(m.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),b(_,{key:1}))}}}),Ta=k(xa,[["__scopeId","data-v-1075a282"]]),ye={Layout:Ta,enhanceApp:({app:e})=>{e.component("Badge",Je)}},Ia=60,Pe=150,Aa={__name:"DynamicBackground",setup(e){const t=w(null);let n=null,o=null,s=[];class r{constructor($,_){this.x=Math.random()*$,this.y=Math.random()*_,this.vx=(Math.random()-.5)*.5,this.vy=(Math.random()-.5)*.5,this.size=Math.random()*2+1}update($,_){this.x+=this.vx,this.y+=this.vy,(this.x<0||this.x>$)&&(this.vx*=-1),(this.y<0||this.y>_)&&(this.vy*=-1)}draw(){n.beginPath(),n.arc(this.x,this.y,this.size,0,Math.PI*2),n.fillStyle="rgba(100, 108, 255, 0.5)",n.fill()}}const u=()=>{const m=window.innerWidth,$=window.innerHeight;t.value.width=m,t.value.height=$,s=[];for(let _=0;_<Ia;_++)s.push(new r(m,$))},v=()=>{n.clearRect(0,0,t.value.width,t.value.height);const m=t.value.width,$=t.value.height;s.forEach(_=>{_.update(m,$),_.draw()});for(let _=0;_<s.length;_++)for(let y=_+1;y<s.length;y++){const S=s[_].x-s[y].x,T=s[_].y-s[y].y,A=Math.sqrt(S*S+T*T);A<Pe&&(n.beginPath(),n.strokeStyle=`rgba(100, 108, 255, ${1-A/Pe})`,n.lineWidth=.5,n.moveTo(s[_].x,s[_].y),n.lineTo(s[y].x,s[y].y),n.stroke())}o=requestAnimationFrame(v)};return D(()=>{n=t.value.getContext("2d"),u(),v(),window.addEventListener("resize",u)}),ee(()=>{cancelAnimationFrame(o),window.removeEventListener("resize",u)}),(m,$)=>(a(),c("canvas",{ref_key:"canvas",ref:t,class:"dynamic-background"},null,512))}},Ca=k(Aa,[["__scopeId","data-v-1b73e314"]]),Ma="/ComeCut/example/image01.png",Na={class:"home-intro"},Ha={class:"intro-card"},Ba={class:"card-left"},Ea=["alt"],Fa={class:"card-right"},Oa={class:"title"},Da=["innerHTML"],Wa=p({__name:"HomeIntro",setup(e){const{lang:t}=Y(),n={imgAlt:"编辑器预览",title:"什么是 ComeCut?",description:"ComeCut(来剪)是一个<strong>免费、AI 驱动</strong>的全平台视频编辑工具。我们的愿景是:充分整合开源社区的力量,打造一个真正免费、开放、可扩展的 AI 视频编辑生态系统,惠及所有人。"},o={imgAlt:"Editor Preview",title:"What is ComeCut?",description:"ComeCut is a <strong>free, AI-driven</strong> cross-platform video editing tool. Our vision is to fully leverage the power of the open-source community to build a truly free, open, and extensible AI video editing ecosystem that benefits everyone."},s=P(()=>t.value==="zh-CN"?n:o);return(r,u)=>(a(),c("div",Na,[l("div",Ha,[l("div",Ba,[l("img",{src:Ma,alt:s.value.imgAlt,class:"preview-img"},null,8,Ea)]),l("div",Fa,[l("h2",Oa,L(s.value.title),1),l("p",{class:"description",innerHTML:s.value.description},null,8,Da)])])]))}}),Ua=k(Wa,[["__scopeId","data-v-0c34280f"]]),Ga={class:"home-feature-cards"},ja={class:"feature-card"},za={class:"card-image"},Ra=["src","alt"],qa={class:"card-body"},Ka={class:"card-title"},Ja={class:"card-desc"},Qa={key:0,class:"card-list"},Xa={class:"feature-card reverse"},Ya={class:"card-body"},Za={class:"card-title"},ei={class:"card-desc"},ti={key:0,class:"card-list"},ni={class:"card-image"},si=["src","alt"],oi={class:"feature-card"},ai={class:"card-image"},ii=["src","alt"],li={class:"card-body"},ri={class:"card-title"},ci={class:"card-desc"},ui={key:0,class:"card-list"},di={class:"feature-card reverse"},vi={class:"card-body"},mi={class:"card-title"},hi={class:"card-desc"},fi={key:0,class:"card-list"},pi={class:"card-image"},_i=["src","alt"],gi=p({__name:"HomeFeatureCards",setup(e){const{lang:t}=Y(),n=[{img:"/example/image01.png",imgAlt:"跨平台编辑",title:"什么是 ComeCut?",desc:"ComeCut(来剪)是一个免费、AI 驱动的全平台视频编辑工具。我们的愿景是:充分整合开源社区的力量,打造一个真正免费、开放、可扩展的 AI 视频编辑生态系统,惠及所有人。",items:["支持 Windows、macOS、Linux、Web","本地处理,保护隐私,无需上传云端","插件化架构,功能无限扩展"]},{img:"/example/api.png",imgAlt:"AI 模型集成",title:"🤖 100+ AI 模型一键调用",desc:"无缝接入全球顶尖大模型,为你的视频创作注入 AI 能力。",items:["支持 Gemini、DeepSeek、Qwen、ComfyUI 等","AI 字幕翻译,支持 SRT/VTT/LRC 格式","AI 语音识别自动生成字幕","工作流支持 LTX2.3, Wan2.2, Z-Image","Flux-2-klein-4b/9B, Qwen-Image-Edit-2509/2511"]},{img:"/example/translate_cn.png",imgAlt:"跨平台编辑",title:"🎬 专业级编辑,跨平台畅享",desc:"无论在哪,都能享受一致且强大的视频编辑体验。",items:["支持 Windows、macOS、Linux、Web","本地处理,保护隐私,无需上传云端","插件化架构,功能无限扩展"]},{img:"/example/codecs.png",imgAlt:"跨平台编辑",title:"🎬 宽容器和编解码器支持",desc:"ComeCut,支持许多常用的容器格式以及多种视频和音频编解码器。",items:["基于 ISOBMFF 的格式(.mp4、.m4v、.m4a 等)","WebM (.webm) , Ogg (.ogg) , MP3 (.mp3) ","WAVE (.wav) , FLAC (.flac) , QuickTime File Format (.mov)"]}],o=[{img:"/example/image01.png",imgAlt:"跨平台编辑",title:"什么是 ComeCut?",desc:"ComeCut is a free, AI-drivencross-platform video editing tool. Our vision is to fully leverage the power of the open-source community to build a truly free, open, and extensible AI video editing ecosystem that benefits everyone.",items:["Available on Windows, macOS, Linux & Web","Local processing — no cloud uploads, privacy first","Plugin-based architecture for infinite extensibility"]},{img:"/example/api.png",imgAlt:"AI Model Integration",title:"🤖 100+ AI Models at Your Fingertips",desc:"Seamlessly integrate the world’s top AI models to empower your video creation.",items:["Supports Gemini, DeepSeek, Qwen, ComfyUI & more","AI subtitle translation with SRT/VTT/LRC support","AI speech recognition for auto-generated captions","The workflow supports LTX2.3, Wan2.2, Z-Image","Flux-2-klein-4b/9B, Qwen-Image-Edit-2509/2511"]},{img:"/example/translate_cn.png",imgAlt:"Cross-Platform Editing",title:"🎬 Pro-Level Editing, Everywhere",desc:"Enjoy a consistent and powerful video editing experience across all platforms.",items:["Available on Windows, macOS, Linux & Web","Local processing — no cloud uploads, privacy first","Plugin-based architecture for infinite extensibility"]},{img:"/example/codecs.png",imgAlt:"Cross-Platform Editing",title:"🎬 Wide container & codec support",desc:"ComeCut supports many commonly used container formats and a wide variety of video and audio codecs. And all of them bidirectionally, too!",items:["ISOBMFF-based formats (.mp4, .m4v, .m4a, ...)","WebM (.webm) , Ogg (.ogg) , MP3 (.mp3) ","WAVE (.wav) , FLAC (.flac) , QuickTime File Format (.mov)"]}],s=P(()=>t.value==="zh-CN"?n:o);return(r,u)=>(a(),c("div",Ga,[l("div",ja,[l("div",za,[l("img",{src:i(j)(s.value[0].img),alt:s.value[0].imgAlt},null,8,Ra)]),l("div",qa,[l("h3",Ka,L(s.value[0].title),1),l("p",Ja,L(s.value[0].desc),1),s.value[0].items?(a(),c("ul",Qa,[(a(!0),c(x,null,M(s.value[0].items,v=>(a(),c("li",{key:v},L(v),1))),128))])):f("",!0)])]),l("div",Xa,[l("div",Ya,[l("h3",Za,L(s.value[1].title),1),l("p",ei,L(s.value[1].desc),1),s.value[1].items?(a(),c("ul",ti,[(a(!0),c(x,null,M(s.value[1].items,v=>(a(),c("li",{key:v},L(v),1))),128))])):f("",!0)]),l("div",ni,[l("img",{src:i(j)(s.value[1].img),alt:s.value[1].imgAlt},null,8,si)])]),l("div",oi,[l("div",ai,[l("img",{src:i(j)(s.value[2].img),alt:s.value[2].imgAlt},null,8,ii)]),l("div",li,[l("h3",ri,L(s.value[2].title),1),l("p",ci,L(s.value[2].desc),1),s.value[2].items?(a(),c("ul",ui,[(a(!0),c(x,null,M(s.value[2].items,v=>(a(),c("li",{key:v},L(v),1))),128))])):f("",!0)])]),l("div",di,[l("div",vi,[l("h3",mi,L(s.value[3].title),1),l("p",hi,L(s.value[3].desc),1),s.value[3].items?(a(),c("ul",fi,[(a(!0),c(x,null,M(s.value[3].items,v=>(a(),c("li",{key:v},L(v),1))),128))])):f("",!0)]),l("div",pi,[l("img",{src:i(j)(s.value[3].img),alt:s.value[3].imgAlt},null,8,_i)])])]))}}),ki=k(gi,[["__scopeId","data-v-4116ffdd"]]),bi={class:"footer-banner"},$i={class:"banner-container"},yi={class:"title"},Pi={class:"description"},Li={class:"actions"},Vi={href:"https://github.com/juntaosun/ComeCut/releases/",class:"btn primary"},Si={href:"https://github.com/juntaosun/ComeCut/web/",target:"_blank",class:"btn secondary"},wi={class:"platforms"},xi={__name:"HomeFooterBanner",setup(e){const{lang:t}=Y(),n=P(()=>t.value==="en-US"?{title:"Ready for a more efficient AI workflow?",desc:"Download ComeCut and start a new way of unified AI video editing workflow.",download:"Download Now (Windows)",github:"Online Use (Web)",platforms:"Supports macOS · Windows · Linux"}:{title:"准备好体验更高效的 AI 工作流了吗?",desc:"下载 ComeCut,开启统一的 AI 视频编辑工作流的新方式",download:"立即下载 (Windows)",github:"在线使用 (Web)",platforms:"支持 macOS · Windows · Linux"});return(o,s)=>(a(),c("section",bi,[l("div",$i,[l("h2",yi,L(n.value.title),1),l("p",Pi,L(n.value.desc),1),l("div",Li,[l("a",Vi,[s[0]||(s[0]=l("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-download w-5 h-5"},[l("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),l("polyline",{points:"7 10 12 15 17 10"}),l("line",{x1:"12",x2:"12",y1:"15",y2:"3"})],-1)),F(" "+L(n.value.download),1)]),l("a",Si,[F(L(n.value.github)+" ",1),s[1]||(s[1]=l("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-arrow-right w-5 h-5"},[l("path",{d:"M5 12h14"}),l("path",{d:"m12 5 7 7-7 7"})],-1))])]),l("p",wi,L(n.value.platforms),1)])]))}},Ti=k(xi,[["__scopeId","data-v-e54f13fa"]]),Ai={extends:ye,Layout:()=>J(ye.Layout,null,{"layout-bottom":()=>J(Ca),"layout-before":()=>J(Ua),"home-features-before":()=>J(ki)}),enhanceApp({app:e}){e.component("HomeFooterBanner",Ti)}};export{Ai as R,Ma as _};
```
## /assets/en_guide_ai-features.md.COujKbH0.js
```js path="/assets/en_guide_ai-features.md.COujKbH0.js"
import{_ as a,a as t,b as o}from"./chunks/image02.DB0K7DFT.js";import{_ as r,H as i,f as l,i as s}from"./chunks/framework.CeqdBC-b.js";const h=JSON.parse('{"title":"AI-Powered Features","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/ai-features.md","filePath":"en/guide/ai-features.md"}'),n={name:"en/guide/ai-features.md"};function p(d,e,u,m,c,f){return i(),l("div",null,[...e[0]||(e[0]=[s('<h1 id="ai-powered-features" tabindex="-1">AI-Powered Features <a class="header-anchor" href="#ai-powered-features" aria-label="Permalink to "AI-Powered Features""></a></h1><p>ComeCut deeply integrates the world's top AI capabilities, making creation smarter and simpler.</p><h2 id="_100-global-api-models-supported" tabindex="-1">100+ Global API Models Supported <a class="header-anchor" href="#_100-global-api-models-supported" aria-label="Permalink to "100+ Global API Models Supported""></a></h2><p>You can invoke the most powerful generative AI at any time to assist your creation.</p><p><img src="'+a+'" alt="API Support"></p><h3 id="currently-supported-workflows-models" tabindex="-1">Currently Supported Workflows & Models <a class="header-anchor" href="#currently-supported-workflows-models" aria-label="Permalink to "Currently Supported Workflows & Models""></a></h3><ul><li><strong>ComfyUI</strong>: Supports z-image, qwen-edit, klein, and ltx2.*, etc.</li><li><strong>Nano Banana</strong>: Supports Google Gemini image generation models: <ul><li><code>gemini-2.5-flash-image</code></li><li><code>gemini-3-pro-image-preview</code></li></ul></li><li><strong>ASR</strong>: Web platform audio-to-text is now live (models downloaded from huggingface.co by default).</li></ul><h2 id="ai-subtitle-translation-srt-vtt-lrc" tabindex="-1">AI Subtitle Translation (SRT/VTT/LRC) <a class="header-anchor" href="#ai-subtitle-translation-srt-vtt-lrc" aria-label="Permalink to "AI Subtitle Translation (SRT/VTT/LRC)""></a></h2><p>One-click bilingual subtitle translation, supporting multiple formats, making cross-language creation effortless.</p><p><img src="'+t+'" alt="Subtitle Translation"></p><p><img src="'+o+'" alt="Editor Interface"></p>',11)])])}const b=r(n,[["render",p]]);export{h as __pageData,b as default};
```
## /assets/en_guide_ai-features.md.COujKbH0.lean.js
```js path="/assets/en_guide_ai-features.md.COujKbH0.lean.js"
import{_ as a,a as t,b as o}from"./chunks/image02.DB0K7DFT.js";import{_ as r,H as i,f as l,i as s}from"./chunks/framework.CeqdBC-b.js";const h=JSON.parse('{"title":"AI-Powered Features","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/ai-features.md","filePath":"en/guide/ai-features.md"}'),n={name:"en/guide/ai-features.md"};function p(d,e,u,m,c,f){return i(),l("div",null,[...e[0]||(e[0]=[s("",11)])])}const b=r(n,[["render",p]]);export{h as __pageData,b as default};
```
## /assets/en_guide_index.md.DrA16F9O.js
```js path="/assets/en_guide_index.md.DrA16F9O.js"
import{_ as e}from"./chunks/theme.CRyEE-cC.js";import{_ as a,H as o,f as r,i}from"./chunks/framework.CeqdBC-b.js";const g=JSON.parse('{"title":"What is ComeCut?","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/index.md","filePath":"en/guide/index.md"}'),n={name:"en/guide/index.md"};function s(l,t,d,u,c,h){return o(),r("div",null,[...t[0]||(t[0]=[i('<h1 id="what-is-comecut" tabindex="-1">What is ComeCut? <a class="header-anchor" href="#what-is-comecut" aria-label="Permalink to "What is ComeCut?""></a></h1><p>ComeCut is a <strong>free, AI-driven</strong> cross-platform video editing tool. Our vision is to fully leverage the power of the open-source community to build a truly free, open, and extensible AI video editing ecosystem that benefits everyone.</p><p><img src="'+e+'" alt="Editor Preview"></p><h2 id="core-advantages" tabindex="-1">Core Advantages <a class="header-anchor" href="#core-advantages" aria-label="Permalink to "Core Advantages""></a></h2><ul><li>✅ <strong>Completely Free</strong>: No usage restrictions, no hidden fees.</li><li>🚀 <strong>No Registration Required</strong>: Start editing instantly, protecting your privacy.</li><li>🔒 <strong>Local & Secure</strong>: All data is processed locally, safe and reliable.</li><li>🤖 <strong>AI-Powered</strong>: Deeply integrated with cutting-edge AI models.</li><li>🎨 <strong>Feature-Rich</strong>: A professional-grade video editing experience.</li></ul><h2 id="platform-support" tabindex="-1">Platform Support <a class="header-anchor" href="#platform-support" aria-label="Permalink to "Platform Support""></a></h2><p>ComeCut currently supports the following platforms:</p><table tabindex="0"><thead><tr><th style="text-align:center;">Windows</th><th style="text-align:center;">MacOS</th><th style="text-align:center;">Linux</th><th style="text-align:center;">Web</th></tr></thead><tbody><tr><td style="text-align:center;">✅ Beta</td><td style="text-align:center;">✅ Beta</td><td style="text-align:center;">✅ Beta</td><td style="text-align:center;">✅ Beta</td></tr></tbody></table><h2 id="community-contributions" tabindex="-1">Community & Contributions <a class="header-anchor" href="#community-contributions" aria-label="Permalink to "Community & Contributions""></a></h2><p>If you have any questions or ideas, feel free to reach out via <a href="https://github.com/juntaosun/ComeCut/issues" target="_blank" rel="noreferrer">Issues</a>. Thank you for your interest!</p>',10)])])}const f=a(n,[["render",s]]);export{g as __pageData,f as default};
```
## /assets/en_guide_index.md.DrA16F9O.lean.js
```js path="/assets/en_guide_index.md.DrA16F9O.lean.js"
import{_ as e}from"./chunks/theme.CRyEE-cC.js";import{_ as a,H as o,f as r,i}from"./chunks/framework.CeqdBC-b.js";const g=JSON.parse('{"title":"What is ComeCut?","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/index.md","filePath":"en/guide/index.md"}'),n={name:"en/guide/index.md"};function s(l,t,d,u,c,h){return o(),r("div",null,[...t[0]||(t[0]=[i("",10)])])}const f=a(n,[["render",s]]);export{g as __pageData,f as default};
```
## /assets/en_guide_roadmap.md.DN-0aW7H.js
```js path="/assets/en_guide_roadmap.md.DN-0aW7H.js"
import{_ as e,H as o,f as r,i as t}from"./chunks/framework.CeqdBC-b.js";const h=JSON.parse('{"title":"Roadmap & Updates","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/roadmap.md","filePath":"en/guide/roadmap.md"}'),i={name:"en/guide/roadmap.md"};function n(s,a,l,d,c,p){return o(),r("div",null,[...a[0]||(a[0]=[t('<h1 id="roadmap-updates" tabindex="-1">Roadmap & Updates <a class="header-anchor" href="#roadmap-updates" aria-label="Permalink to "Roadmap & Updates""></a></h1><h2 id="🗺️-roadmap-in-progress" tabindex="-1">🗺️ Roadmap (In Progress) <a class="header-anchor" href="#🗺️-roadmap-in-progress" aria-label="Permalink to "🗺️ Roadmap (In Progress)""></a></h2><ul><li>[ ] 🎙️ <strong>AI Speech Recognition</strong>: Automatically recognize audio tracks and generate subtitles.</li><li>[ ] 🎭 <strong>AI Creative Generation</strong>: Future integration with <code>Seedance-2.0</code>, <code>Veo3.1</code>, <code>Sora2</code>, etc., for easy AI short drama/comic creation.</li><li>[ ] 🎬 <strong>AI Video Dubbing</strong>: One-click dubbing of US/Korean/Japanese dramas into Chinese voiceovers.</li></ul><hr><h2 id="👏-latest-updates" tabindex="-1">👏 Latest Updates <a class="header-anchor" href="#👏-latest-updates" aria-label="Permalink to "👏 Latest Updates""></a></h2><ul><li><strong>[2025-09-07]</strong> 🚀 <strong>ComeCut project officially launched!</strong></li></ul><hr><h2 id="🛡️-privacy-policy" tabindex="-1">🛡️ Privacy Policy <a class="header-anchor" href="#🛡️-privacy-policy" aria-label="Permalink to "🛡️ Privacy Policy""></a></h2><ul><li><strong>No Data Collection</strong>: ComeCut does not collect any of your personal privacy data.</li><li><strong>Local Storage</strong>: All creative data is stored in your local browser or local disk.</li></ul><h2 id="🔑-license" tabindex="-1">🔑 License <a class="header-anchor" href="#🔑-license" aria-label="Permalink to "🔑 License""></a></h2><p>Copyright © 2025 <strong>juntaosun</strong> and other contributors. This program is released under the <a href="./LICENSE">GNU Affero General Public License v3.0</a>.</p>',11)])])}const m=e(i,[["render",n]]);export{h as __pageData,m as default};
```
## /assets/en_guide_roadmap.md.DN-0aW7H.lean.js
```js path="/assets/en_guide_roadmap.md.DN-0aW7H.lean.js"
import{_ as e,H as o,f as r,i as t}from"./chunks/framework.CeqdBC-b.js";const h=JSON.parse('{"title":"Roadmap & Updates","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/roadmap.md","filePath":"en/guide/roadmap.md"}'),i={name:"en/guide/roadmap.md"};function n(s,a,l,d,c,p){return o(),r("div",null,[...a[0]||(a[0]=[t("",11)])])}const m=e(i,[["render",n]]);export{h as __pageData,m as default};
```
## /assets/en_index.md.dedvTNEO.js
```js path="/assets/en_index.md.dedvTNEO.js"
import{_ as i,O as n,H as r,f as a,b as e,k as l}from"./chunks/framework.CeqdBC-b.js";const f=JSON.parse(`{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"ComeCut","text":"A Lightweight AI Video Editor","tagline":"Free, cross-platform. AI-powered, Enjoy every creative idea.","image":{"src":"/logo.png","alt":"ComeCut Logo"},"actions":[{"theme":"brand","text":"🚀 Get Started","link":"/en/guide/"},{"theme":"alt","text":"📥 Download (Windows)","link":"https://github.com/juntaosun/ComeCut/releases/"}]},"features":[{"title":"🎁 Completely Free, Creative Freedom","details":"Truly free with no hidden charges and no watermark restrictions. We believe creative freedom belongs to everyone.","icon":"🌈"},{"title":"🔒 Privacy First, Your Data Stays Yours","details":"All operations are performed locally or in your browser. No need to upload videos to the cloud, protecting your personal privacy and business secrets.","icon":"🛡️"},{"title":"🤖 100+ Global AI Models Integrated","details":"Deeply integrated with cutting-edge AI like Gemini, DeepSeek, Qwen, and ComfyUI. From auto-subtitles to AI image generation, empowering your entire editing workflow.","icon":"✨"},{"title":"🎨 Cross-Platform Excellence","details":"Whether you're on Windows, macOS, or Linux, enjoy a smooth, responsive, professional editing experience.","icon":"💻"},{"title":"🌍 Multilingual Support","details":"Powerful ASR speech recognition and bilingual subtitle translation, supporting export in SRT/VTT/LRC and other formats.","icon":"🌐"},{"title":"🛠️ Plugin-Driven, Infinite Extensibility","details":"Built on a modern tech stack with plugin-based extensibility. Join the open-source community and help build the future of video editing.","icon":"🚀"}]},"headers":[],"relativePath":"en/index.md","filePath":"en/index.md"}`),s={name:"en/index.md"};function d(c,t,u,m,p,g){const o=n("HomeFooterBanner");return r(),a("div",null,[t[0]||(t[0]=e("div",{align:"center",style:{"margin-top":"4rem",opacity:"0.8"}},[e("h3",null,"Trusted and loved by 100+ creators"),e("p",null,"Building the coolest lightweight video tool")],-1)),l(o)])}const y=i(s,[["render",d]]);export{f as __pageData,y as default};
```
## /assets/en_index.md.dedvTNEO.lean.js
```js path="/assets/en_index.md.dedvTNEO.lean.js"
import{_ as i,O as n,H as r,f as a,b as e,k as l}from"./chunks/framework.CeqdBC-b.js";const f=JSON.parse(`{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"ComeCut","text":"A Lightweight AI Video Editor","tagline":"Free, cross-platform. AI-powered, Enjoy every creative idea.","image":{"src":"/logo.png","alt":"ComeCut Logo"},"actions":[{"theme":"brand","text":"🚀 Get Started","link":"/en/guide/"},{"theme":"alt","text":"📥 Download (Windows)","link":"https://github.com/juntaosun/ComeCut/releases/"}]},"features":[{"title":"🎁 Completely Free, Creative Freedom","details":"Truly free with no hidden charges and no watermark restrictions. We believe creative freedom belongs to everyone.","icon":"🌈"},{"title":"🔒 Privacy First, Your Data Stays Yours","details":"All operations are performed locally or in your browser. No need to upload videos to the cloud, protecting your personal privacy and business secrets.","icon":"🛡️"},{"title":"🤖 100+ Global AI Models Integrated","details":"Deeply integrated with cutting-edge AI like Gemini, DeepSeek, Qwen, and ComfyUI. From auto-subtitles to AI image generation, empowering your entire editing workflow.","icon":"✨"},{"title":"🎨 Cross-Platform Excellence","details":"Whether you're on Windows, macOS, or Linux, enjoy a smooth, responsive, professional editing experience.","icon":"💻"},{"title":"🌍 Multilingual Support","details":"Powerful ASR speech recognition and bilingual subtitle translation, supporting export in SRT/VTT/LRC and other formats.","icon":"🌐"},{"title":"🛠️ Plugin-Driven, Infinite Extensibility","details":"Built on a modern tech stack with plugin-based extensibility. Join the open-source community and help build the future of video editing.","icon":"🚀"}]},"headers":[],"relativePath":"en/index.md","filePath":"en/index.md"}`),s={name:"en/index.md"};function d(c,t,u,m,p,g){const o=n("HomeFooterBanner");return r(),a("div",null,[t[0]||(t[0]=e("div",{align:"center",style:{"margin-top":"4rem",opacity:"0.8"}},[e("h3",null,"Trusted and loved by 100+ creators"),e("p",null,"Building the coolest lightweight video tool")],-1)),l(o)])}const y=i(s,[["render",d]]);export{f as __pageData,y as default};
```
## /assets/guide_ai-features.md.DVxpQNf4.js
```js path="/assets/guide_ai-features.md.DVxpQNf4.js"
import{_ as e,a as i,b as t}from"./chunks/image02.DB0K7DFT.js";import{_ as r,H as o,f as l,i as s}from"./chunks/framework.CeqdBC-b.js";const f=JSON.parse('{"title":"AI 驱动特性","description":"","frontmatter":{},"headers":[],"relativePath":"guide/ai-features.md","filePath":"guide/ai-features.md"}'),n={name:"guide/ai-features.md"};function d(c,a,p,m,_,u){return o(),l("div",null,[...a[0]||(a[0]=[s('<h1 id="ai-驱动特性" tabindex="-1">AI 驱动特性 <a class="header-anchor" href="#ai-驱动特性" aria-label="Permalink to "AI 驱动特性""></a></h1><p>ComeCut 深度集成了全球顶尖的 AI 能力,让创作变得更智能、更简单。</p><h2 id="支持全球-100-api-大模型" tabindex="-1">支持全球 100+ API 大模型 <a class="header-anchor" href="#支持全球-100-api-大模型" aria-label="Permalink to "支持全球 100+ API 大模型""></a></h2><p>您可以随时调用最强的生成式 AI 来辅助您的创作。</p><p><img src="'+e+'" alt="API支持"></p><h3 id="目前支持的工作流与模型" tabindex="-1">目前支持的工作流与模型 <a class="header-anchor" href="#目前支持的工作流与模型" aria-label="Permalink to "目前支持的工作流与模型""></a></h3><ul><li><strong>ComfyUI</strong>: 支持 z-image, qwen-edit, klein, and ltx2.* 等。</li><li><strong>Nano Banana</strong>: 支持谷歌 Gemini 香蕉生图模型: <ul><li><code>gemini-2.5-flash-image</code></li><li><code>gemini-3-pro-image-preview</code></li></ul></li><li><strong>ASR</strong>: Web 平台音频转文本已上线(模型默认从 huggingface.co 下载)。</li></ul><h2 id="ai-字幕翻译-srt-vtt-lrc" tabindex="-1">AI 字幕翻译 (SRT/VTT/LRC) <a class="header-anchor" href="#ai-字幕翻译-srt-vtt-lrc" aria-label="Permalink to "AI 字幕翻译 (SRT/VTT/LRC)""></a></h2><p>双语字幕一键翻译,支持多种格式,让跨语言创作变得轻而易举。</p><p><img src="'+i+'" alt="字幕翻译"></p><p><img src="'+t+'" alt="编辑器界面"></p>',11)])])}const A=r(n,[["render",d]]);export{f as __pageData,A as default};
```
## /assets/guide_ai-features.md.DVxpQNf4.lean.js
```js path="/assets/guide_ai-features.md.DVxpQNf4.lean.js"
import{_ as e,a as i,b as t}from"./chunks/image02.DB0K7DFT.js";import{_ as r,H as o,f as l,i as s}from"./chunks/framework.CeqdBC-b.js";const f=JSON.parse('{"title":"AI 驱动特性","description":"","frontmatter":{},"headers":[],"relativePath":"guide/ai-features.md","filePath":"guide/ai-features.md"}'),n={name:"guide/ai-features.md"};function d(c,a,p,m,_,u){return o(),l("div",null,[...a[0]||(a[0]=[s("",11)])])}const A=r(n,[["render",d]]);export{f as __pageData,A as default};
```
## /assets/guide_index.md.B30tUVAg.js
```js path="/assets/guide_index.md.B30tUVAg.js"
import{_ as e}from"./chunks/theme.CRyEE-cC.js";import{_ as a,H as r,f as n,i as o}from"./chunks/framework.CeqdBC-b.js";const _=JSON.parse('{"title":"什么是 ComeCut?","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"guide/index.md"}'),i={name:"guide/index.md"};function l(s,t,d,c,h,u){return r(),n("div",null,[...t[0]||(t[0]=[o('<h1 id="什么是-comecut" tabindex="-1">什么是 ComeCut? <a class="header-anchor" href="#什么是-comecut" aria-label="Permalink to "什么是 ComeCut?""></a></h1><p>ComeCut(来剪)是一个<strong>免费、轻量、AI 驱动</strong>的全平台视频编辑工具。我们的愿景是:充分整合开源社区的力量,打造一个真正免费、开放、可扩展的 AI 视频编辑生态系统,惠及所有人。</p><p><img src="'+e+'" alt="编辑器预览"></p><h2 id="核心优势" tabindex="-1">核心优势 <a class="header-anchor" href="#核心优势" aria-label="Permalink to "核心优势""></a></h2><ul><li>✅ <strong>完全免费</strong>:无任何使用限制,无隐藏付费。</li><li>🚀 <strong>无需注册</strong>:即开即用,保护您的使用隐私。</li><li>🔒 <strong>本地安全</strong>:数据完全本地化处理,安全可靠。</li><li>🤖 <strong>AI 赋能</strong>:深度集成前沿 AI 模型。</li><li>🎨 <strong>功能强大</strong>:提供媲美专业软件的视频编辑体验。</li></ul><h2 id="平台支持" tabindex="-1">平台支持 <a class="header-anchor" href="#平台支持" aria-label="Permalink to "平台支持""></a></h2><p>目前 ComeCut 已支持以下平台:</p><table tabindex="0"><thead><tr><th style="text-align:center;">Windows</th><th style="text-align:center;">MacOS</th><th style="text-align:center;">Linux</th><th style="text-align:center;">Web</th></tr></thead><tbody><tr><td style="text-align:center;">✅ Beta</td><td style="text-align:center;">✅ Beta</td><td style="text-align:center;">✅ Beta</td><td style="text-align:center;">✅ Beta</td></tr></tbody></table><h2 id="交流与贡献" tabindex="-1">交流与贡献 <a class="header-anchor" href="#交流与贡献" aria-label="Permalink to "交流与贡献""></a></h2><p>如果您有任何疑问或想法,欢迎通过 <a href="https://github.com/juntaosun/ComeCut/issues" target="_blank" rel="noreferrer">Issues</a> 与我们联系!感谢您的关注。</p>',10)])])}const p=a(i,[["render",l]]);export{_ as __pageData,p as default};
```
## /assets/guide_index.md.B30tUVAg.lean.js
```js path="/assets/guide_index.md.B30tUVAg.lean.js"
import{_ as e}from"./chunks/theme.CRyEE-cC.js";import{_ as a,H as r,f as n,i as o}from"./chunks/framework.CeqdBC-b.js";const _=JSON.parse('{"title":"什么是 ComeCut?","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"guide/index.md"}'),i={name:"guide/index.md"};function l(s,t,d,c,h,u){return r(),n("div",null,[...t[0]||(t[0]=[o("",10)])])}const p=a(i,[["render",l]]);export{_ as __pageData,p as default};
```
## /assets/guide_roadmap.md.D7AvK8yc.js
```js path="/assets/guide_roadmap.md.D7AvK8yc.js"
import{_ as e,H as r,f as o,i as t}from"./chunks/framework.CeqdBC-b.js";const _=JSON.parse('{"title":"路线图与动态","description":"","frontmatter":{},"headers":[],"relativePath":"guide/roadmap.md","filePath":"guide/roadmap.md"}'),n={name:"guide/roadmap.md"};function i(l,a,s,d,c,h){return r(),o("div",null,[...a[0]||(a[0]=[t('<h1 id="路线图与动态" tabindex="-1">路线图与动态 <a class="header-anchor" href="#路线图与动态" aria-label="Permalink to "路线图与动态""></a></h1><h2 id="🗺️-路线图-进行中" tabindex="-1">🗺️ 路线图 (进行中) <a class="header-anchor" href="#🗺️-路线图-进行中" aria-label="Permalink to "🗺️ 路线图 (进行中)""></a></h2><ul><li>[ ] 🎙️ <strong>AI 语音识别</strong>:自动将语音轨道识别并生成字幕。</li><li>[ ] 🎭 <strong>AI 自由创作</strong>:未来将接入 <code>Seedance-2.0</code>, <code>Veo3.1</code>, <code>Sora2</code> 等,轻松创作 AI 短剧/漫剧。</li><li>[ ] 🎬 <strong>AI 视频译制配音</strong>:支持美剧/韩剧/日剧等一键译制成国语配音。</li></ul><hr><h2 id="👏-最新动态" tabindex="-1">👏 最新动态 <a class="header-anchor" href="#👏-最新动态" aria-label="Permalink to "👏 最新动态""></a></h2><ul><li><strong>[2025-09-07]</strong> 🚀 <strong>ComeCut 项目正式启动!</strong></li></ul><hr><h2 id="🛡️-隐私声明" tabindex="-1">🛡️ 隐私声明 <a class="header-anchor" href="#🛡️-隐私声明" aria-label="Permalink to "🛡️ 隐私声明""></a></h2><ul><li><strong>无数据收集</strong>:ComeCut 不会收集您的任何个人隐私数据。</li><li><strong>本地存储</strong>:所有创作数据均存储在您的本地浏览器或本地磁盘中。</li></ul><h2 id="🔑-许可证" tabindex="-1">🔑 许可证 <a class="header-anchor" href="#🔑-许可证" aria-label="Permalink to "🔑 许可证""></a></h2><p>版权所有 © 2025 <strong>juntaosun</strong> 及其他贡献者。 本程序基于 <a href="./LICENSE">GNU Affero General Public License v3.0</a> 协议发布。</p>',11)])])}const g=e(n,[["render",i]]);export{_ as __pageData,g as default};
```
## /assets/guide_roadmap.md.D7AvK8yc.lean.js
```js path="/assets/guide_roadmap.md.D7AvK8yc.lean.js"
import{_ as e,H as r,f as o,i as t}from"./chunks/framework.CeqdBC-b.js";const _=JSON.parse('{"title":"路线图与动态","description":"","frontmatter":{},"headers":[],"relativePath":"guide/roadmap.md","filePath":"guide/roadmap.md"}'),n={name:"guide/roadmap.md"};function i(l,a,s,d,c,h){return r(),o("div",null,[...a[0]||(a[0]=[t("",11)])])}const g=e(n,[["render",i]]);export{_ as __pageData,g as default};
```
## /assets/index.md.Bnv00zW7.js
```js path="/assets/index.md.Bnv00zW7.js"
import{_ as o,O as i,H as a,f as s,b as e,k as l}from"./chunks/framework.CeqdBC-b.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"ComeCut 「来剪」","text":"一款轻量级 AI 视频编辑工具","tagline":"免费、全平台。集成AI、本地处理,享受每一份创意。","image":{"src":"/logo.png","alt":"ComeCut Logo"},"actions":[{"theme":"brand","text":"🚀 开启创作","link":"/guide/"},{"theme":"alt","text":"📥 桌面版本(Windows)","link":"https://github.com/juntaosun/ComeCut/releases/"}]},"features":[{"title":"🎁 完全免费,自由创作","details":"真正的完全免费,无隐藏收费,无水印限制。我们相信创作自由应属于每一个人。","icon":"🌈"},{"title":"🔒 隐私至上,数据归你","details":"所有操作均在本地或您的浏览器中完成。无需上传视频到云端,保护您的个人隐私和商业机密。","icon":"🛡️"},{"title":"🤖 100+ 全球大模型集成","details":"深度整合 Gemini, DeepSeek, Qwen, ComfyUI 等前沿 AI。从自动字幕到 AI 生图,全方位赋能剪辑流程。","icon":"✨"},{"title":"🎨 跨平台极致体验","details":"无论您使用的是 Windows、macOS 还是 Linux,都能享受到丝滑、响应迅速的专业编辑体验。","icon":"💻"},{"title":"🌍 多语言支持","details":"强大的 ASR 语音识别与双语字幕翻译功能,支持 SRT/VTT/LRC 等多种格式导出。","icon":"🌐"},{"title":"🛠️ 插件驱动,无限扩展","details":"基于现代技术栈构建,支持插件化扩展。欢迎加入开源社区,共同打造视频编辑的未来。","icon":"🚀"}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),r={name:"index.md"};function d(m,t,c,p,u,f){const n=i("HomeFooterBanner");return a(),s("div",null,[t[0]||(t[0]=e("div",{align:"center",style:{"margin-top":"4rem",opacity:"0.8"}},[e("h3",null,"深受 100+ 创作者的信赖和喜爱"),e("p",null,"构建最酷的轻量级视频工具")],-1)),l(n)])}const g=o(r,[["render",d]]);export{_ as __pageData,g as default};
```
## /assets/index.md.Bnv00zW7.lean.js
```js path="/assets/index.md.Bnv00zW7.lean.js"
import{_ as o,O as i,H as a,f as s,b as e,k as l}from"./chunks/framework.CeqdBC-b.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"ComeCut 「来剪」","text":"一款轻量级 AI 视频编辑工具","tagline":"免费、全平台。集成AI、本地处理,享受每一份创意。","image":{"src":"/logo.png","alt":"ComeCut Logo"},"actions":[{"theme":"brand","text":"🚀 开启创作","link":"/guide/"},{"theme":"alt","text":"📥 桌面版本(Windows)","link":"https://github.com/juntaosun/ComeCut/releases/"}]},"features":[{"title":"🎁 完全免费,自由创作","details":"真正的完全免费,无隐藏收费,无水印限制。我们相信创作自由应属于每一个人。","icon":"🌈"},{"title":"🔒 隐私至上,数据归你","details":"所有操作均在本地或您的浏览器中完成。无需上传视频到云端,保护您的个人隐私和商业机密。","icon":"🛡️"},{"title":"🤖 100+ 全球大模型集成","details":"深度整合 Gemini, DeepSeek, Qwen, ComfyUI 等前沿 AI。从自动字幕到 AI 生图,全方位赋能剪辑流程。","icon":"✨"},{"title":"🎨 跨平台极致体验","details":"无论您使用的是 Windows、macOS 还是 Linux,都能享受到丝滑、响应迅速的专业编辑体验。","icon":"💻"},{"title":"🌍 多语言支持","details":"强大的 ASR 语音识别与双语字幕翻译功能,支持 SRT/VTT/LRC 等多种格式导出。","icon":"🌐"},{"title":"🛠️ 插件驱动,无限扩展","details":"基于现代技术栈构建,支持插件化扩展。欢迎加入开源社区,共同打造视频编辑的未来。","icon":"🚀"}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),r={name:"index.md"};function d(m,t,c,p,u,f){const n=i("HomeFooterBanner");return a(),s("div",null,[t[0]||(t[0]=e("div",{align:"center",style:{"margin-top":"4rem",opacity:"0.8"}},[e("h3",null,"深受 100+ 创作者的信赖和喜爱"),e("p",null,"构建最酷的轻量级视频工具")],-1)),l(n)])}const g=o(r,[["render",d]]);export{_ as __pageData,g as default};
```
## /assets/inter-italic-cyrillic-ext.r48I6akx.woff2
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/assets/inter-italic-cyrillic-ext.r48I6akx.woff2
## /assets/inter-italic-cyrillic.By2_1cv3.woff2
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/assets/inter-italic-cyrillic.By2_1cv3.woff2
## /assets/inter-italic-greek-ext.1u6EdAuj.woff2
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/assets/inter-italic-greek-ext.1u6EdAuj.woff2
## /assets/inter-italic-greek.DJ8dCoTZ.woff2
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/assets/inter-italic-greek.DJ8dCoTZ.woff2
## /assets/inter-italic-latin-ext.CN1xVJS-.woff2
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/assets/inter-italic-latin-ext.CN1xVJS-.woff2
## /assets/inter-italic-latin.C2AdPX0b.woff2
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/assets/inter-italic-latin.C2AdPX0b.woff2
## /assets/inter-italic-vietnamese.BSbpV94h.woff2
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/assets/inter-italic-vietnamese.BSbpV94h.woff2
## /assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2
## /assets/inter-roman-cyrillic.C5lxZ8CY.woff2
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/assets/inter-roman-cyrillic.C5lxZ8CY.woff2
## /assets/inter-roman-greek-ext.CqjqNYQ-.woff2
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/assets/inter-roman-greek-ext.CqjqNYQ-.woff2
## /assets/inter-roman-greek.BBVDIX6e.woff2
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/assets/inter-roman-greek.BBVDIX6e.woff2
## /assets/inter-roman-latin-ext.4ZJIpNVo.woff2
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/assets/inter-roman-latin-ext.4ZJIpNVo.woff2
## /assets/inter-roman-latin.Di8DUHzh.woff2
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/assets/inter-roman-latin.Di8DUHzh.woff2
## /assets/inter-roman-vietnamese.BjW4sHH5.woff2
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/assets/inter-roman-vietnamese.BjW4sHH5.woff2
## /en/guide/ai-features.html
```html path="/en/guide/ai-features.html"
<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>AI-Powered Features | ComeCut</title>
<meta name="description" content="Free, AI-Powered, Cross-Platform Video Editor">
<meta name="generator" content="VitePress v1.6.4">
<link rel="preload stylesheet" href="/ComeCut/assets/style.-nVel7qH.css" as="style">
<link rel="preload stylesheet" href="/ComeCut/vp-icons.css" as="style">
<script type="module" src="/ComeCut/assets/app.QsHol1cT.js"></script>
<link rel="preload" href="/ComeCut/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/ComeCut/assets/chunks/theme.CRyEE-cC.js">
<link rel="modulepreload" href="/ComeCut/assets/chunks/framework.CeqdBC-b.js">
<link rel="modulepreload" href="/ComeCut/assets/chunks/image02.DB0K7DFT.js">
<link rel="modulepreload" href="/ComeCut/assets/en_guide_ai-features.md.COujKbH0.lean.js">
<link rel="icon" href="/logo.png">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-1075a282><!--[--><!--]--><!--[--><span tabindex="-1" data-v-d18fb172></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-d18fb172>Skip to content</a><!--]--><!----><header class="VPNav" data-v-1075a282 data-v-e0c14098><div class="VPNavBar" data-v-e0c14098 data-v-bf52a942><div class="wrapper" data-v-bf52a942><div class="container" data-v-bf52a942><div class="title" data-v-bf52a942><div class="VPNavBarTitle has-sidebar" data-v-bf52a942 data-v-3244061b><a class="title" href="/ComeCut/en/" data-v-3244061b><!--[--><!--]--><!--[--><img class="VPImage logo" src="/ComeCut/logo.png" alt data-v-307916a2><!--]--><span data-v-3244061b>ComeCut</span><!--[--><!--]--></a></div></div><div class="content" data-v-bf52a942><div class="content-body" data-v-bf52a942><!--[--><!--]--><div class="VPNavBarSearch search" data-v-bf52a942><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-bf52a942 data-v-ad424140><span id="main-nav-aria-label" class="visually-hidden" data-v-ad424140> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/ComeCut/en/" tabindex="0" data-v-ad424140 data-v-463865f9><!--[--><span data-v-463865f9>Home</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/ComeCut/en/guide/" tabindex="0" data-v-ad424140 data-v-463865f9><!--[--><span data-v-463865f9>Guide</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://github.com/juntaosun/ComeCut/releases/" target="_blank" rel="noreferrer" tabindex="0" data-v-ad424140 data-v-463865f9><!--[--><span data-v-463865f9>Downloads</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://juntaosun.github.io/ComeCut/web/" target="_blank" rel="noreferrer" tabindex="0" data-v-ad424140 data-v-463865f9><!--[--><span data-v-463865f9>Use ComeCut online</span><!--]--></a><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-bf52a942 data-v-60595cd6 data-v-b0f8aada><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Language" data-v-b0f8aada><span class="text" data-v-b0f8aada><span class="vpi-languages option-icon" data-v-b0f8aada></span><!----><span class="vpi-chevron-down text-icon" data-v-b0f8aada></span></span></button><div class="menu" data-v-b0f8aada><div class="VPMenu" data-v-b0f8aada data-v-15196d84><!----><!--[--><!--[--><div class="items" data-v-60595cd6><p class="title" data-v-60595cd6>English</p><!--[--><div class="VPMenuLink" data-v-60595cd6 data-v-ed5cd40f><a class="VPLink link" href="/ComeCut/guide/ai-features" data-v-ed5cd40f><!--[--><span data-v-ed5cd40f>简体中文</span><!--]--></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-bf52a942 data-v-ed413d57><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-ed413d57 data-v-f2a37889 data-v-385faf3a><span class="check" data-v-385faf3a><span class="icon" data-v-385faf3a><!--[--><span class="vpi-sun sun" data-v-f2a37889></span><span class="vpi-moon moon" data-v-f2a37889></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-bf52a942 data-v-0d46b6f9 data-v-61f0d15d><!--[--><a class="VPSocialLink no-icon" href="https://github.com/juntaosun/ComeCut" aria-label="github" target="_blank" rel="noopener" data-v-61f0d15d data-v-58357848><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-bf52a942 data-v-6251a52d data-v-b0f8aada><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-b0f8aada><span class="vpi-more-horizontal icon" data-v-b0f8aada></span></button><div class="menu" data-v-b0f8aada><div class="VPMenu" data-v-b0f8aada data-v-15196d84><!----><!--[--><!--[--><div class="group translations" data-v-6251a52d><p class="trans-title" data-v-6251a52d>English</p><!--[--><div class="VPMenuLink" data-v-6251a52d data-v-ed5cd40f><a class="VPLink link" href="/ComeCut/guide/ai-features" data-v-ed5cd40f><!--[--><span data-v-ed5cd40f>简体中文</span><!--]--></a></div><!--]--></div><div class="group" data-v-6251a52d><div class="item appearance" data-v-6251a52d><p class="label" data-v-6251a52d>Theme</p><div class="appearance-action" data-v-6251a52d><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-6251a52d data-v-f2a37889 data-v-385faf3a><span class="check" data-v-385faf3a><span class="icon" data-v-385faf3a><!--[--><span class="vpi-sun sun" data-v-f2a37889></span><span class="vpi-moon moon" data-v-f2a37889></span><!--]--></span></span></button></div></div></div><div class="group" data-v-6251a52d><div class="item social-links" data-v-6251a52d><div class="VPSocialLinks social-links-list" data-v-6251a52d data-v-61f0d15d><!--[--><a class="VPSocialLink no-icon" href="https://github.com/juntaosun/ComeCut" aria-label="github" target="_blank" rel="noopener" data-v-61f0d15d data-v-58357848><span class="vpi-social-github"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-bf52a942 data-v-5e9062f0><span class="container" data-v-5e9062f0><span class="top" data-v-5e9062f0></span><span class="middle" data-v-5e9062f0></span><span class="bottom" data-v-5e9062f0></span></span></button></div></div></div></div><div class="divider" data-v-bf52a942><div class="divider-line" data-v-bf52a942></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-1075a282 data-v-9206a483><div class="container" data-v-9206a483><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-9206a483><span class="vpi-align-left menu-icon" data-v-9206a483></span><span class="menu-text" data-v-9206a483>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-9206a483 data-v-33a561cf><button data-v-33a561cf>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-1075a282 data-v-781fc7c3><div class="curtain" data-v-781fc7c3></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-781fc7c3><span class="visually-hidden" id="sidebar-aria-label" data-v-781fc7c3> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-61d9b816><section class="VPSidebarItem level-0 has-active" data-v-61d9b816 data-v-9c01e1d6><div class="item" role="button" tabindex="0" data-v-9c01e1d6><div class="indicator" data-v-9c01e1d6></div><h2 class="text" data-v-9c01e1d6>Getting Started</h2><!----></div><div class="items" data-v-9c01e1d6><!--[--><div class="VPSidebarItem level-1 is-link" data-v-9c01e1d6 data-v-9c01e1d6><div class="item" data-v-9c01e1d6><div class="indicator" data-v-9c01e1d6></div><a class="VPLink link link" href="/ComeCut/en/guide/" data-v-9c01e1d6><!--[--><p class="text" data-v-9c01e1d6>What is ComeCut</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-9c01e1d6 data-v-9c01e1d6><div class="item" data-v-9c01e1d6><div class="indicator" data-v-9c01e1d6></div><a class="VPLink link link" href="/ComeCut/en/guide/ai-features" data-v-9c01e1d6><!--[--><p class="text" data-v-9c01e1d6>AI-Powered Features</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-9c01e1d6 data-v-9c01e1d6><div class="item" data-v-9c01e1d6><div class="indicator" data-v-9c01e1d6></div><a class="VPLink link link" href="/ComeCut/en/guide/roadmap" data-v-9c01e1d6><!--[--><p class="text" data-v-9c01e1d6>Roadmap</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-1075a282 data-v-d44aaa0d><div class="VPDoc has-sidebar has-aside" data-v-d44aaa0d data-v-be0aa853><!--[--><!--]--><div class="container" data-v-be0aa853><div class="aside" data-v-be0aa853><div class="aside-curtain" data-v-be0aa853></div><div class="aside-container" data-v-be0aa853><div class="aside-content" data-v-be0aa853><div class="VPDocAside" data-v-be0aa853 data-v-276a9b03><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-276a9b03 data-v-354516c3><div class="content" data-v-354516c3><div class="outline-marker" data-v-354516c3></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-354516c3>On this page</div><ul class="VPDocOutlineItem root" data-v-354516c3 data-v-909b8f54><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-276a9b03></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-be0aa853><div class="content-container" data-v-be0aa853><!--[--><!--]--><main class="main" data-v-be0aa853><div style="position:relative;" class="vp-doc _ComeCut_en_guide_ai-features" data-v-be0aa853><div><h1 id="ai-powered-features" tabindex="-1">AI-Powered Features <a class="header-anchor" href="#ai-powered-features" aria-label="Permalink to "AI-Powered Features""></a></h1><p>ComeCut deeply integrates the world's top AI capabilities, making creation smarter and simpler.</p><h2 id="_100-global-api-models-supported" tabindex="-1">100+ Global API Models Supported <a class="header-anchor" href="#_100-global-api-models-supported" aria-label="Permalink to "100+ Global API Models Supported""></a></h2><p>You can invoke the most powerful generative AI at any time to assist your creation.</p><p><img src="/ComeCut/example/api.png" alt="API Support"></p><h3 id="currently-supported-workflows-models" tabindex="-1">Currently Supported Workflows & Models <a class="header-anchor" href="#currently-supported-workflows-models" aria-label="Permalink to "Currently Supported Workflows & Models""></a></h3><ul><li><strong>ComfyUI</strong>: Supports z-image, qwen-edit, klein, and ltx2.*, etc.</li><li><strong>Nano Banana</strong>: Supports Google Gemini image generation models: <ul><li><code>gemini-2.5-flash-image</code></li><li><code>gemini-3-pro-image-preview</code></li></ul></li><li><strong>ASR</strong>: Web platform audio-to-text is now live (models downloaded from huggingface.co by default).</li></ul><h2 id="ai-subtitle-translation-srt-vtt-lrc" tabindex="-1">AI Subtitle Translation (SRT/VTT/LRC) <a class="header-anchor" href="#ai-subtitle-translation-srt-vtt-lrc" aria-label="Permalink to "AI Subtitle Translation (SRT/VTT/LRC)""></a></h2><p>One-click bilingual subtitle translation, supporting multiple formats, making cross-language creation effortless.</p><p><img src="/ComeCut/example/translate_cn.png" alt="Subtitle Translation"></p><p><img src="/ComeCut/example/image02.png" alt="Editor Interface"></p></div></div></main><footer class="VPDocFooter" data-v-be0aa853 data-v-ebf48dce><!--[--><!--]--><div class="edit-info" data-v-ebf48dce><div class="edit-link" data-v-ebf48dce><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/juntaosun/ComeCut/edit/main/vitepress/en/en/guide/ai-features.md" target="_blank" rel="noreferrer" data-v-ebf48dce><!--[--><span class="vpi-square-pen edit-link-icon" data-v-ebf48dce></span> Edit this page on GitHub<!--]--></a></div><!----></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-ebf48dce><span class="visually-hidden" id="doc-footer-aria-label" data-v-ebf48dce>Pager</span><div class="pager" data-v-ebf48dce><a class="VPLink link pager-link prev" href="/ComeCut/en/guide/" data-v-ebf48dce><!--[--><span class="desc" data-v-ebf48dce>Previous page</span><span class="title" data-v-ebf48dce>What is ComeCut</span><!--]--></a></div><div class="pager" data-v-ebf48dce><a class="VPLink link pager-link next" href="/ComeCut/en/guide/roadmap" data-v-ebf48dce><!--[--><span class="desc" data-v-ebf48dce>Next page</span><span class="title" data-v-ebf48dce>Roadmap</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-1075a282 data-v-d66a45d2><div class="container" data-v-d66a45d2><p class="message" data-v-d66a45d2>Released under the AGPL 3.0 License</p><p class="copyright" data-v-d66a45d2>Copyright © 2025-present juntaosun</p></div></footer><!--[--><canvas class="dynamic-background" data-v-1b73e314></canvas><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"en_guide_ai-features.md\":\"COujKbH0\",\"en_guide_index.md\":\"DrA16F9O\",\"en_guide_roadmap.md\":\"DN-0aW7H\",\"en_index.md\":\"dedvTNEO\",\"guide_ai-features.md\":\"DVxpQNf4\",\"guide_index.md\":\"B30tUVAg\",\"guide_roadmap.md\":\"D7AvK8yc\",\"index.md\":\"Bnv00zW7\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"ComeCut\",\"description\":\"Free, Open-Source, AI-Powered Cross-Platform Video Editor\",\"base\":\"/ComeCut/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{},\"locales\":{\"root\":{\"label\":\"简体中文\",\"lang\":\"zh-CN\",\"title\":\"ComeCut 「来剪」\",\"description\":\"免费、AI 驱动、全平台视频编辑工具\",\"themeConfig\":{\"logo\":\"/logo.png\",\"nav\":[{\"text\":\"首页\",\"link\":\"/\"},{\"text\":\"指南\",\"link\":\"/guide/\"},{\"text\":\"下载\",\"link\":\"https://github.com/juntaosun/ComeCut/releases/\"},{\"text\":\"使用 ComeCut 线上版\",\"link\":\"https://juntaosun.github.io/ComeCut/web/\"}],\"sidebar\":[{\"text\":\"入门指南\",\"items\":[{\"text\":\"什么是 ComeCut\",\"link\":\"/guide/\"},{\"text\":\"AI 驱动特性\",\"link\":\"/guide/ai-features\"},{\"text\":\"路线图\",\"link\":\"/guide/roadmap\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/juntaosun/ComeCut\"}],\"footer\":{\"message\":\"基于 AGPL 3.0 协议发布\",\"copyright\":\"Copyright © 2025-present juntaosun\"},\"editLink\":{\"pattern\":\"https://github.com/juntaosun/ComeCut/edit/main/vitepress/:path\",\"text\":\"在 GitHub 上编辑此页\"},\"lastUpdated\":{\"text\":\"最后更新于\"},\"docFooter\":{\"prev\":\"上一页\",\"next\":\"下一页\"},\"outline\":{\"label\":\"页面导航\"},\"darkModeSwitchLabel\":\"主题\",\"sidebarMenuLabel\":\"菜单\",\"returnToTopLabel\":\"回到顶部\",\"langMenuLabel\":\"语言\",\"search\":{\"provider\":\"local\",\"options\":{\"translations\":{\"button\":{\"buttonText\":\"搜索文档\",\"buttonAriaLabel\":\"搜索文档\"},\"modal\":{\"noResultsText\":\"无法找到相关结果\",\"resetButtonTitle\":\"清除查询条件\",\"footer\":{\"selectText\":\"选择\",\"navigateText\":\"切换\",\"closeText\":\"关闭\"}}}}}}},\"en\":{\"label\":\"English\",\"lang\":\"en-US\",\"title\":\"ComeCut\",\"description\":\"Free, AI-Powered, Cross-Platform Video Editor\",\"themeConfig\":{\"logo\":\"/logo.png\",\"nav\":[{\"text\":\"Home\",\"link\":\"/en/\"},{\"text\":\"Guide\",\"link\":\"/en/guide/\"},{\"text\":\"Downloads\",\"link\":\"https://github.com/juntaosun/ComeCut/releases/\"},{\"text\":\"Use ComeCut online\",\"link\":\"https://juntaosun.github.io/ComeCut/web/\"}],\"sidebar\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"What is ComeCut\",\"link\":\"/en/guide/\"},{\"text\":\"AI-Powered Features\",\"link\":\"/en/guide/ai-features\"},{\"text\":\"Roadmap\",\"link\":\"/en/guide/roadmap\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/juntaosun/ComeCut\"}],\"footer\":{\"message\":\"Released under the AGPL 3.0 License\",\"copyright\":\"Copyright © 2025-present juntaosun\"},\"editLink\":{\"pattern\":\"https://github.com/juntaosun/ComeCut/edit/main/vitepress/en/:path\",\"text\":\"Edit this page on GitHub\"},\"lastUpdated\":{\"text\":\"Last updated\"},\"docFooter\":{\"prev\":\"Previous page\",\"next\":\"Next page\"},\"outline\":{\"label\":\"On this page\"},\"darkModeSwitchLabel\":\"Theme\",\"sidebarMenuLabel\":\"Menu\",\"returnToTopLabel\":\"Return to top\",\"langMenuLabel\":\"Language\",\"search\":{\"provider\":\"local\",\"options\":{\"translations\":{\"button\":{\"buttonText\":\"Search\",\"buttonAriaLabel\":\"Search\"},\"modal\":{\"noResultsText\":\"No results found\",\"resetButtonTitle\":\"Clear search\",\"footer\":{\"selectText\":\"to select\",\"navigateText\":\"to navigate\",\"closeText\":\"to close\"}}}}}}}},\"scrollOffset\":134,\"cleanUrls\":true}");</script>
</body>
</html>
```
## /en/guide/index.html
```html path="/en/guide/index.html"
<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>What is ComeCut? | ComeCut</title>
<meta name="description" content="Free, AI-Powered, Cross-Platform Video Editor">
<meta name="generator" content="VitePress v1.6.4">
<link rel="preload stylesheet" href="/ComeCut/assets/style.-nVel7qH.css" as="style">
<link rel="preload stylesheet" href="/ComeCut/vp-icons.css" as="style">
<script type="module" src="/ComeCut/assets/app.QsHol1cT.js"></script>
<link rel="preload" href="/ComeCut/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/ComeCut/assets/chunks/theme.CRyEE-cC.js">
<link rel="modulepreload" href="/ComeCut/assets/chunks/framework.CeqdBC-b.js">
<link rel="modulepreload" href="/ComeCut/assets/en_guide_index.md.DrA16F9O.lean.js">
<link rel="icon" href="/logo.png">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-1075a282><!--[--><!--]--><!--[--><span tabindex="-1" data-v-d18fb172></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-d18fb172>Skip to content</a><!--]--><!----><header class="VPNav" data-v-1075a282 data-v-e0c14098><div class="VPNavBar" data-v-e0c14098 data-v-bf52a942><div class="wrapper" data-v-bf52a942><div class="container" data-v-bf52a942><div class="title" data-v-bf52a942><div class="VPNavBarTitle has-sidebar" data-v-bf52a942 data-v-3244061b><a class="title" href="/ComeCut/en/" data-v-3244061b><!--[--><!--]--><!--[--><img class="VPImage logo" src="/ComeCut/logo.png" alt data-v-307916a2><!--]--><span data-v-3244061b>ComeCut</span><!--[--><!--]--></a></div></div><div class="content" data-v-bf52a942><div class="content-body" data-v-bf52a942><!--[--><!--]--><div class="VPNavBarSearch search" data-v-bf52a942><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-bf52a942 data-v-ad424140><span id="main-nav-aria-label" class="visually-hidden" data-v-ad424140> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/ComeCut/en/" tabindex="0" data-v-ad424140 data-v-463865f9><!--[--><span data-v-463865f9>Home</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/ComeCut/en/guide/" tabindex="0" data-v-ad424140 data-v-463865f9><!--[--><span data-v-463865f9>Guide</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://github.com/juntaosun/ComeCut/releases/" target="_blank" rel="noreferrer" tabindex="0" data-v-ad424140 data-v-463865f9><!--[--><span data-v-463865f9>Downloads</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://juntaosun.github.io/ComeCut/web/" target="_blank" rel="noreferrer" tabindex="0" data-v-ad424140 data-v-463865f9><!--[--><span data-v-463865f9>Use ComeCut online</span><!--]--></a><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-bf52a942 data-v-60595cd6 data-v-b0f8aada><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Language" data-v-b0f8aada><span class="text" data-v-b0f8aada><span class="vpi-languages option-icon" data-v-b0f8aada></span><!----><span class="vpi-chevron-down text-icon" data-v-b0f8aada></span></span></button><div class="menu" data-v-b0f8aada><div class="VPMenu" data-v-b0f8aada data-v-15196d84><!----><!--[--><!--[--><div class="items" data-v-60595cd6><p class="title" data-v-60595cd6>English</p><!--[--><div class="VPMenuLink" data-v-60595cd6 data-v-ed5cd40f><a class="VPLink link" href="/ComeCut/guide/" data-v-ed5cd40f><!--[--><span data-v-ed5cd40f>简体中文</span><!--]--></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-bf52a942 data-v-ed413d57><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-ed413d57 data-v-f2a37889 data-v-385faf3a><span class="check" data-v-385faf3a><span class="icon" data-v-385faf3a><!--[--><span class="vpi-sun sun" data-v-f2a37889></span><span class="vpi-moon moon" data-v-f2a37889></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-bf52a942 data-v-0d46b6f9 data-v-61f0d15d><!--[--><a class="VPSocialLink no-icon" href="https://github.com/juntaosun/ComeCut" aria-label="github" target="_blank" rel="noopener" data-v-61f0d15d data-v-58357848><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-bf52a942 data-v-6251a52d data-v-b0f8aada><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-b0f8aada><span class="vpi-more-horizontal icon" data-v-b0f8aada></span></button><div class="menu" data-v-b0f8aada><div class="VPMenu" data-v-b0f8aada data-v-15196d84><!----><!--[--><!--[--><div class="group translations" data-v-6251a52d><p class="trans-title" data-v-6251a52d>English</p><!--[--><div class="VPMenuLink" data-v-6251a52d data-v-ed5cd40f><a class="VPLink link" href="/ComeCut/guide/" data-v-ed5cd40f><!--[--><span data-v-ed5cd40f>简体中文</span><!--]--></a></div><!--]--></div><div class="group" data-v-6251a52d><div class="item appearance" data-v-6251a52d><p class="label" data-v-6251a52d>Theme</p><div class="appearance-action" data-v-6251a52d><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-6251a52d data-v-f2a37889 data-v-385faf3a><span class="check" data-v-385faf3a><span class="icon" data-v-385faf3a><!--[--><span class="vpi-sun sun" data-v-f2a37889></span><span class="vpi-moon moon" data-v-f2a37889></span><!--]--></span></span></button></div></div></div><div class="group" data-v-6251a52d><div class="item social-links" data-v-6251a52d><div class="VPSocialLinks social-links-list" data-v-6251a52d data-v-61f0d15d><!--[--><a class="VPSocialLink no-icon" href="https://github.com/juntaosun/ComeCut" aria-label="github" target="_blank" rel="noopener" data-v-61f0d15d data-v-58357848><span class="vpi-social-github"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-bf52a942 data-v-5e9062f0><span class="container" data-v-5e9062f0><span class="top" data-v-5e9062f0></span><span class="middle" data-v-5e9062f0></span><span class="bottom" data-v-5e9062f0></span></span></button></div></div></div></div><div class="divider" data-v-bf52a942><div class="divider-line" data-v-bf52a942></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-1075a282 data-v-9206a483><div class="container" data-v-9206a483><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-9206a483><span class="vpi-align-left menu-icon" data-v-9206a483></span><span class="menu-text" data-v-9206a483>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-9206a483 data-v-33a561cf><button data-v-33a561cf>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-1075a282 data-v-781fc7c3><div class="curtain" data-v-781fc7c3></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-781fc7c3><span class="visually-hidden" id="sidebar-aria-label" data-v-781fc7c3> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-61d9b816><section class="VPSidebarItem level-0 has-active" data-v-61d9b816 data-v-9c01e1d6><div class="item" role="button" tabindex="0" data-v-9c01e1d6><div class="indicator" data-v-9c01e1d6></div><h2 class="text" data-v-9c01e1d6>Getting Started</h2><!----></div><div class="items" data-v-9c01e1d6><!--[--><div class="VPSidebarItem level-1 is-link" data-v-9c01e1d6 data-v-9c01e1d6><div class="item" data-v-9c01e1d6><div class="indicator" data-v-9c01e1d6></div><a class="VPLink link link" href="/ComeCut/en/guide/" data-v-9c01e1d6><!--[--><p class="text" data-v-9c01e1d6>What is ComeCut</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-9c01e1d6 data-v-9c01e1d6><div class="item" data-v-9c01e1d6><div class="indicator" data-v-9c01e1d6></div><a class="VPLink link link" href="/ComeCut/en/guide/ai-features" data-v-9c01e1d6><!--[--><p class="text" data-v-9c01e1d6>AI-Powered Features</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-9c01e1d6 data-v-9c01e1d6><div class="item" data-v-9c01e1d6><div class="indicator" data-v-9c01e1d6></div><a class="VPLink link link" href="/ComeCut/en/guide/roadmap" data-v-9c01e1d6><!--[--><p class="text" data-v-9c01e1d6>Roadmap</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-1075a282 data-v-d44aaa0d><div class="VPDoc has-sidebar has-aside" data-v-d44aaa0d data-v-be0aa853><!--[--><!--]--><div class="container" data-v-be0aa853><div class="aside" data-v-be0aa853><div class="aside-curtain" data-v-be0aa853></div><div class="aside-container" data-v-be0aa853><div class="aside-content" data-v-be0aa853><div class="VPDocAside" data-v-be0aa853 data-v-276a9b03><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-276a9b03 data-v-354516c3><div class="content" data-v-354516c3><div class="outline-marker" data-v-354516c3></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-354516c3>On this page</div><ul class="VPDocOutlineItem root" data-v-354516c3 data-v-909b8f54><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-276a9b03></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-be0aa853><div class="content-container" data-v-be0aa853><!--[--><!--]--><main class="main" data-v-be0aa853><div style="position:relative;" class="vp-doc _ComeCut_en_guide_" data-v-be0aa853><div><h1 id="what-is-comecut" tabindex="-1">What is ComeCut? <a class="header-anchor" href="#what-is-comecut" aria-label="Permalink to "What is ComeCut?""></a></h1><p>ComeCut is a <strong>free, AI-driven</strong> cross-platform video editing tool. Our vision is to fully leverage the power of the open-source community to build a truly free, open, and extensible AI video editing ecosystem that benefits everyone.</p><p><img src="/ComeCut/example/image01.png" alt="Editor Preview"></p><h2 id="core-advantages" tabindex="-1">Core Advantages <a class="header-anchor" href="#core-advantages" aria-label="Permalink to "Core Advantages""></a></h2><ul><li>✅ <strong>Completely Free</strong>: No usage restrictions, no hidden fees.</li><li>🚀 <strong>No Registration Required</strong>: Start editing instantly, protecting your privacy.</li><li>🔒 <strong>Local & Secure</strong>: All data is processed locally, safe and reliable.</li><li>🤖 <strong>AI-Powered</strong>: Deeply integrated with cutting-edge AI models.</li><li>🎨 <strong>Feature-Rich</strong>: A professional-grade video editing experience.</li></ul><h2 id="platform-support" tabindex="-1">Platform Support <a class="header-anchor" href="#platform-support" aria-label="Permalink to "Platform Support""></a></h2><p>ComeCut currently supports the following platforms:</p><table tabindex="0"><thead><tr><th style="text-align:center;">Windows</th><th style="text-align:center;">MacOS</th><th style="text-align:center;">Linux</th><th style="text-align:center;">Web</th></tr></thead><tbody><tr><td style="text-align:center;">✅ Beta</td><td style="text-align:center;">✅ Beta</td><td style="text-align:center;">✅ Beta</td><td style="text-align:center;">✅ Beta</td></tr></tbody></table><h2 id="community-contributions" tabindex="-1">Community & Contributions <a class="header-anchor" href="#community-contributions" aria-label="Permalink to "Community & Contributions""></a></h2><p>If you have any questions or ideas, feel free to reach out via <a href="https://github.com/juntaosun/ComeCut/issues" target="_blank" rel="noreferrer">Issues</a>. Thank you for your interest!</p></div></div></main><footer class="VPDocFooter" data-v-be0aa853 data-v-ebf48dce><!--[--><!--]--><div class="edit-info" data-v-ebf48dce><div class="edit-link" data-v-ebf48dce><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/juntaosun/ComeCut/edit/main/vitepress/en/en/guide/index.md" target="_blank" rel="noreferrer" data-v-ebf48dce><!--[--><span class="vpi-square-pen edit-link-icon" data-v-ebf48dce></span> Edit this page on GitHub<!--]--></a></div><!----></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-ebf48dce><span class="visually-hidden" id="doc-footer-aria-label" data-v-ebf48dce>Pager</span><div class="pager" data-v-ebf48dce><!----></div><div class="pager" data-v-ebf48dce><a class="VPLink link pager-link next" href="/ComeCut/en/guide/ai-features" data-v-ebf48dce><!--[--><span class="desc" data-v-ebf48dce>Next page</span><span class="title" data-v-ebf48dce>AI-Powered Features</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-1075a282 data-v-d66a45d2><div class="container" data-v-d66a45d2><p class="message" data-v-d66a45d2>Released under the AGPL 3.0 License</p><p class="copyright" data-v-d66a45d2>Copyright © 2025-present juntaosun</p></div></footer><!--[--><canvas class="dynamic-background" data-v-1b73e314></canvas><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"en_guide_ai-features.md\":\"COujKbH0\",\"en_guide_index.md\":\"DrA16F9O\",\"en_guide_roadmap.md\":\"DN-0aW7H\",\"en_index.md\":\"dedvTNEO\",\"guide_ai-features.md\":\"DVxpQNf4\",\"guide_index.md\":\"B30tUVAg\",\"guide_roadmap.md\":\"D7AvK8yc\",\"index.md\":\"Bnv00zW7\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"ComeCut\",\"description\":\"Free, Open-Source, AI-Powered Cross-Platform Video Editor\",\"base\":\"/ComeCut/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{},\"locales\":{\"root\":{\"label\":\"简体中文\",\"lang\":\"zh-CN\",\"title\":\"ComeCut 「来剪」\",\"description\":\"免费、AI 驱动、全平台视频编辑工具\",\"themeConfig\":{\"logo\":\"/logo.png\",\"nav\":[{\"text\":\"首页\",\"link\":\"/\"},{\"text\":\"指南\",\"link\":\"/guide/\"},{\"text\":\"下载\",\"link\":\"https://github.com/juntaosun/ComeCut/releases/\"},{\"text\":\"使用 ComeCut 线上版\",\"link\":\"https://juntaosun.github.io/ComeCut/web/\"}],\"sidebar\":[{\"text\":\"入门指南\",\"items\":[{\"text\":\"什么是 ComeCut\",\"link\":\"/guide/\"},{\"text\":\"AI 驱动特性\",\"link\":\"/guide/ai-features\"},{\"text\":\"路线图\",\"link\":\"/guide/roadmap\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/juntaosun/ComeCut\"}],\"footer\":{\"message\":\"基于 AGPL 3.0 协议发布\",\"copyright\":\"Copyright © 2025-present juntaosun\"},\"editLink\":{\"pattern\":\"https://github.com/juntaosun/ComeCut/edit/main/vitepress/:path\",\"text\":\"在 GitHub 上编辑此页\"},\"lastUpdated\":{\"text\":\"最后更新于\"},\"docFooter\":{\"prev\":\"上一页\",\"next\":\"下一页\"},\"outline\":{\"label\":\"页面导航\"},\"darkModeSwitchLabel\":\"主题\",\"sidebarMenuLabel\":\"菜单\",\"returnToTopLabel\":\"回到顶部\",\"langMenuLabel\":\"语言\",\"search\":{\"provider\":\"local\",\"options\":{\"translations\":{\"button\":{\"buttonText\":\"搜索文档\",\"buttonAriaLabel\":\"搜索文档\"},\"modal\":{\"noResultsText\":\"无法找到相关结果\",\"resetButtonTitle\":\"清除查询条件\",\"footer\":{\"selectText\":\"选择\",\"navigateText\":\"切换\",\"closeText\":\"关闭\"}}}}}}},\"en\":{\"label\":\"English\",\"lang\":\"en-US\",\"title\":\"ComeCut\",\"description\":\"Free, AI-Powered, Cross-Platform Video Editor\",\"themeConfig\":{\"logo\":\"/logo.png\",\"nav\":[{\"text\":\"Home\",\"link\":\"/en/\"},{\"text\":\"Guide\",\"link\":\"/en/guide/\"},{\"text\":\"Downloads\",\"link\":\"https://github.com/juntaosun/ComeCut/releases/\"},{\"text\":\"Use ComeCut online\",\"link\":\"https://juntaosun.github.io/ComeCut/web/\"}],\"sidebar\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"What is ComeCut\",\"link\":\"/en/guide/\"},{\"text\":\"AI-Powered Features\",\"link\":\"/en/guide/ai-features\"},{\"text\":\"Roadmap\",\"link\":\"/en/guide/roadmap\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/juntaosun/ComeCut\"}],\"footer\":{\"message\":\"Released under the AGPL 3.0 License\",\"copyright\":\"Copyright © 2025-present juntaosun\"},\"editLink\":{\"pattern\":\"https://github.com/juntaosun/ComeCut/edit/main/vitepress/en/:path\",\"text\":\"Edit this page on GitHub\"},\"lastUpdated\":{\"text\":\"Last updated\"},\"docFooter\":{\"prev\":\"Previous page\",\"next\":\"Next page\"},\"outline\":{\"label\":\"On this page\"},\"darkModeSwitchLabel\":\"Theme\",\"sidebarMenuLabel\":\"Menu\",\"returnToTopLabel\":\"Return to top\",\"langMenuLabel\":\"Language\",\"search\":{\"provider\":\"local\",\"options\":{\"translations\":{\"button\":{\"buttonText\":\"Search\",\"buttonAriaLabel\":\"Search\"},\"modal\":{\"noResultsText\":\"No results found\",\"resetButtonTitle\":\"Clear search\",\"footer\":{\"selectText\":\"to select\",\"navigateText\":\"to navigate\",\"closeText\":\"to close\"}}}}}}}},\"scrollOffset\":134,\"cleanUrls\":true}");</script>
</body>
</html>
```
## /example/api.png
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/example/api.png
## /example/codecs.png
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/example/codecs.png
## /example/image01.png
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/example/image01.png
## /example/image02.png
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/example/image02.png
## /example/translate_cn.png
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/example/translate_cn.png
## /example/translate_en.png
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/example/translate_en.png
## /hashmap.json
```json path="/hashmap.json"
{"en_guide_ai-features.md":"COujKbH0","en_guide_index.md":"DrA16F9O","en_guide_roadmap.md":"DN-0aW7H","en_index.md":"dedvTNEO","guide_ai-features.md":"DVxpQNf4","guide_index.md":"B30tUVAg","guide_roadmap.md":"D7AvK8yc","index.md":"Bnv00zW7"}
```
## /logo.png
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/logo.png
## /web/assets/png/260510-grid-white-DC7z3u5z.png
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/web/assets/png/260510-grid-white-DC7z3u5z.png
## /web/resource/icon/icon.png
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/web/resource/icon/icon.png
## /web/resource/icon/icon_head.png
Binary file available at https://raw.githubusercontent.com/juntaosun/ComeCut/refs/heads/main/web/resource/icon/icon_head.png
The content has been capped at 50000 tokens. The user could consider applying other filters to refine the result. The better and more specific the context, the better the LLM can follow instructions. If the context seems verbose, the user can refine the filter using uithub. Thank you for using https://uithub.com - Perfect LLM context for any GitHub repo.