diff --git a/README.md b/README.md index 079837c..5114515 100644 --- a/README.md +++ b/README.md @@ -158,8 +158,9 @@ mix assets.build ## Monaco Editor -Monaco is bundled via esbuild using its ESM entry point (`monaco-editor/esm/vs/editor/editor.api.js`). The -bundle is built as part of `mix assets.build` and lives at `priv/static/assets/monaco.js` and `monaco.css`. +Monaco is bundled via esbuild using its ESM entry point (`monaco-editor/esm/vs/editor/editor.main.js`). The +main bundle is built as part of `mix assets.build` and lives at `priv/static/assets/monaco.js` and +`monaco.css`; ESM worker bundles live under `priv/static/assets/monaco/`. ```bash mix monaco.version # show current monaco-editor version diff --git a/assets/js/error_reporter.js b/assets/js/error_reporter.js deleted file mode 100644 index e125763..0000000 --- a/assets/js/error_reporter.js +++ /dev/null @@ -1,35 +0,0 @@ -// App-wide error reporter — catches JS errors and displays them as an overlay. -// Enables debugging in WKWebView where devtools are unavailable. -(function () { - const overlay = document.createElement("div"); - overlay.id = "error-reporter"; - overlay.style.cssText = - "position:fixed;bottom:0;left:0;right:0;max-height:200px;overflow:auto;background:#1a1a2e;color:#f0f0f0;font:12px monospace;padding:8px 12px;border-top:2px solid #e74c3c;z-index:99999;display:none;"; - overlay.innerHTML = '⚠ JS Errors
';
-  document.body.appendChild(overlay);
-
-  const log = document.getElementById("error-reporter-log");
-
-  const append = (msg) => {
-    overlay.style.display = "block";
-    log.textContent += msg + "\n";
-    overlay.scrollTop = overlay.scrollHeight;
-  };
-
-  window.addEventListener("error", (e) => {
-    const src = e.filename || "";
-    const loc = e.lineno !== undefined ? `:${e.lineno}` : "";
-    append(`[${new Date().toLocaleTimeString()}] ${e.message || e.error}\n  at ${src}${loc}`);
-  });
-
-  window.addEventListener("unhandledrejection", (e) => {
-    append(`[${new Date().toLocaleTimeString()}] Unhandled rejection: ${e.reason}`);
-  });
-
-  // Also wrap console.error to catch Monaco errors
-  const origError = console.error;
-  console.error = (...args) => {
-    origError.apply(console, args);
-    append(`[${new Date().toLocaleTimeString()}] ${args.join(" ")}`);
-  };
-})();
diff --git a/assets/js/monaco/services.js b/assets/js/monaco/services.js
index 1f521d7..7c71e15 100644
--- a/assets/js/monaco/services.js
+++ b/assets/js/monaco/services.js
@@ -4,7 +4,51 @@ import { registerLiquidLanguage, registerMarkdownWithMacrosLanguage } from "./la
 let monacoLoaderPromise;
 const monacoEditors = new Map();
 
+const monacoWorkerUrls = {
+  editor: "/assets/monaco/editor.worker.js",
+  css: "/assets/monaco/css.worker.js",
+  html: "/assets/monaco/html.worker.js",
+  json: "/assets/monaco/json.worker.js",
+  ts: "/assets/monaco/ts.worker.js"
+};
+
+const workerNameForLanguage = (label) => {
+  switch (label) {
+    case "css":
+    case "scss":
+    case "less":
+      return "css";
+    case "html":
+    case "handlebars":
+    case "razor":
+      return "html";
+    case "json":
+      return "json";
+    case "typescript":
+    case "javascript":
+      return "ts";
+    default:
+      return "editor";
+  }
+};
+
+const ensureMonacoEnvironment = () => {
+  if (globalThis.MonacoEnvironment?.getWorker) {
+    return;
+  }
+
+  globalThis.MonacoEnvironment = {
+    ...globalThis.MonacoEnvironment,
+    getWorker(_workerId, label) {
+      const workerName = workerNameForLanguage(label);
+      return new Worker(monacoWorkerUrls[workerName], { name: label, type: "module" });
+    }
+  };
+};
+
 export const loadMonaco = () => {
+  ensureMonacoEnvironment();
+
   if (window.monaco?.editor) {
     ensureMonacoTheme(window.monaco);
     registerLiquidLanguage(window.monaco);
diff --git a/assets/js/monaco_workers/css.worker.js b/assets/js/monaco_workers/css.worker.js
new file mode 100644
index 0000000..24ded89
--- /dev/null
+++ b/assets/js/monaco_workers/css.worker.js
@@ -0,0 +1 @@
+import "monaco-editor/esm/vs/language/css/css.worker.js";
\ No newline at end of file
diff --git a/assets/js/monaco_workers/editor.worker.js b/assets/js/monaco_workers/editor.worker.js
new file mode 100644
index 0000000..135d6d3
--- /dev/null
+++ b/assets/js/monaco_workers/editor.worker.js
@@ -0,0 +1 @@
+import "monaco-editor/esm/vs/editor/editor.worker.js";
\ No newline at end of file
diff --git a/assets/js/monaco_workers/html.worker.js b/assets/js/monaco_workers/html.worker.js
new file mode 100644
index 0000000..1102290
--- /dev/null
+++ b/assets/js/monaco_workers/html.worker.js
@@ -0,0 +1 @@
+import "monaco-editor/esm/vs/language/html/html.worker.js";
\ No newline at end of file
diff --git a/assets/js/monaco_workers/json.worker.js b/assets/js/monaco_workers/json.worker.js
new file mode 100644
index 0000000..cd8e011
--- /dev/null
+++ b/assets/js/monaco_workers/json.worker.js
@@ -0,0 +1 @@
+import "monaco-editor/esm/vs/language/json/json.worker.js";
\ No newline at end of file
diff --git a/assets/js/monaco_workers/ts.worker.js b/assets/js/monaco_workers/ts.worker.js
new file mode 100644
index 0000000..8b5c2f3
--- /dev/null
+++ b/assets/js/monaco_workers/ts.worker.js
@@ -0,0 +1 @@
+import "monaco-editor/esm/vs/language/typescript/ts.worker.js";
\ No newline at end of file
diff --git a/config/config.exs b/config/config.exs
index e9593c3..77ddda6 100644
--- a/config/config.exs
+++ b/config/config.exs
@@ -67,6 +67,22 @@ config :esbuild,
       --loader:.ttf=dataurl
     ),
     env: %{"NODE_PATH" => Path.expand("../node_modules", __DIR__)}
+  ],
+  monaco_workers: [
+    cd: Path.expand("../assets", __DIR__),
+    args: ~w(
+      js/monaco_workers/editor.worker.js
+      js/monaco_workers/css.worker.js
+      js/monaco_workers/html.worker.js
+      js/monaco_workers/json.worker.js
+      js/monaco_workers/ts.worker.js
+      --bundle
+      --target=es2022
+      --format=esm
+      --outdir=../priv/static/assets/monaco
+      --loader:.ttf=dataurl
+    ),
+    env: %{"NODE_PATH" => Path.expand("../node_modules", __DIR__)}
   ]
 
 config :bds, :scripting,
diff --git a/lib/bds/desktop/endpoint.ex b/lib/bds/desktop/endpoint.ex
index 2179ead..e425782 100644
--- a/lib/bds/desktop/endpoint.ex
+++ b/lib/bds/desktop/endpoint.ex
@@ -17,7 +17,7 @@ defmodule BDS.Desktop.Endpoint do
   plug(Plug.Static,
     at: "/assets",
     from: {:bds, "priv/static/assets"},
-    only: ["app.css", "app.js", "monaco.css", "monaco.js"]
+    only: ["app.css", "app.js", "monaco.css", "monaco.js", "monaco"]
   )
 
   plug(BDS.Desktop.Router)
diff --git a/lib/mix/tasks/monaco.update.ex b/lib/mix/tasks/monaco.update.ex
index cd3d050..1ce8224 100644
--- a/lib/mix/tasks/monaco.update.ex
+++ b/lib/mix/tasks/monaco.update.ex
@@ -9,8 +9,8 @@ defmodule Mix.Tasks.Monaco.Update do
   This task:
 
   1. Runs `npm install monaco-editor@ --save-dev`
-  2. Removes the old `priv/static/assets/monaco.js` and `monaco.css`
-  3. Rebuilds the Monaco bundle via esbuild (both dev and minified)
+  2. Removes the old Monaco bundle assets
+  3. Rebuilds the Monaco main and worker bundles via esbuild (both dev and minified)
 
   Use `mix monaco.version` to check the result.
 
@@ -27,14 +27,14 @@ defmodule Mix.Tasks.Monaco.Update do
         Mix.shell().error("Missing version argument.")
         Mix.shell().info("Usage: mix monaco.update ")
         Mix.shell().info("Example: mix monaco.update 0.55.1")
-        System.at_exit(fn _ -> System.halt(1) end)
+        Mix.raise("missing Monaco version argument")
 
       [version] ->
         do_update(version)
 
       _ ->
         Mix.shell().error("Too many arguments. Usage: mix monaco.update ")
-        System.at_exit(fn _ -> System.halt(1) end)
+        Mix.raise("too many arguments for mix monaco.update")
     end
   end
 
@@ -49,24 +49,31 @@ defmodule Mix.Tasks.Monaco.Update do
     # 2. Clean old bundle
     monaco_js = Path.join(File.cwd!(), "priv/static/assets/monaco.js")
     monaco_css = Path.join(File.cwd!(), "priv/static/assets/monaco.css")
+    monaco_workers = Path.join(File.cwd!(), "priv/static/assets/monaco")
 
-    for path <- [monaco_js, monaco_css] do
+    for path <- [monaco_js, monaco_css, monaco_workers] do
       if File.exists?(path) do
-        File.rm!(path)
+        File.rm_rf!(path)
       end
     end
 
-    Mix.shell().info("Removed old monaco.js and monaco.css")
+    Mix.shell().info("Removed old Monaco bundle assets")
 
     # 3. Rebuild via esbuild (dev + minified)
-    Mix.Task.run("esbuild", ["monaco"])
-    Mix.Task.run("esbuild", ["monaco", "--minify"])
+    run_esbuild(["monaco"])
+    run_esbuild(["monaco_workers"])
+    run_esbuild(["monaco", "--minify"])
+    run_esbuild(["monaco_workers", "--minify"])
 
     # 4. Verify
     new = current_version()
     Mix.shell().info("monaco-editor is now at #{new}")
   end
 
+  defp run_esbuild(args) do
+    Mix.Task.run("esbuild", args)
+  end
+
   defp current_version do
     lock = Path.join(File.cwd!(), "package-lock.json")
 
diff --git a/lib/mix/tasks/monaco.version.ex b/lib/mix/tasks/monaco.version.ex
index 7cf745d..16b73f6 100644
--- a/lib/mix/tasks/monaco.version.ex
+++ b/lib/mix/tasks/monaco.version.ex
@@ -6,8 +6,9 @@ defmodule Mix.Tasks.Monaco.Version do
 
       mix monaco.version
 
-  Reads the version from package-lock.json. The Monaco bundle lives at
-  `priv/static/assets/monaco.js` and is built via `mix esbuild monaco`.
+  Reads the version from package-lock.json. The Monaco main bundle lives at
+  `priv/static/assets/monaco.js`; worker bundles live under
+  `priv/static/assets/monaco/`.
   """
 
   use Mix.Task
@@ -30,12 +31,12 @@ defmodule Mix.Tasks.Monaco.Version do
           v when is_binary(v) -> Mix.shell().info("monaco-editor: #{v}")
           nil ->
             Mix.shell().error("Could not find monaco-editor in package-lock.json")
-            System.at_exit(fn _ -> System.halt(1) end)
+            Mix.raise("could not find monaco-editor in package-lock.json")
         end
 
       {:error, reason} ->
         Mix.shell().error("package-lock.json not found: #{reason}")
-        System.at_exit(fn _ -> System.halt(1) end)
+        Mix.raise("package-lock.json not found: #{reason}")
     end
   end
 end
diff --git a/mix.exs b/mix.exs
index 6fdf56a..0648415 100644
--- a/mix.exs
+++ b/mix.exs
@@ -66,8 +66,13 @@ defmodule BDS.MixProject do
       "ecto.setup": ["ecto.create", "ecto.migrate"],
       "ecto.reset": ["ecto.drop", "ecto.setup"],
       "assets.setup": ["tailwind.install --if-missing", "esbuild.install --if-missing"],
-      "assets.build": ["tailwind default", "esbuild default", "esbuild monaco"],
-      "assets.deploy": ["tailwind default --minify", "esbuild default --minify", "esbuild monaco"],
+      "assets.build": ["tailwind default", "esbuild default", "esbuild monaco", "esbuild monaco_workers"],
+      "assets.deploy": [
+        "tailwind default --minify",
+        "esbuild default --minify",
+        "esbuild monaco --minify",
+        "esbuild monaco_workers --minify"
+      ],
       test: ["ecto.create --quiet", "ecto.migrate --quiet", "test"],
       validate: ["test", "credo --strict", "deps.audit --ignore-file .mix_audit.ignore", "dialyzer"]
     ]
diff --git a/priv/static/assets/app.js b/priv/static/assets/app.js
index 353915f..b9db938 100644
--- a/priv/static/assets/app.js
+++ b/priv/static/assets/app.js
@@ -8821,7 +8821,46 @@ removing illegal node: "${(childNode.outerHTML || childNode.nodeValue).trim()}"
   // js/monaco/services.js
   var monacoLoaderPromise;
   var monacoEditors = /* @__PURE__ */ new Map();
+  var monacoWorkerUrls = {
+    editor: "/assets/monaco/editor.worker.js",
+    css: "/assets/monaco/css.worker.js",
+    html: "/assets/monaco/html.worker.js",
+    json: "/assets/monaco/json.worker.js",
+    ts: "/assets/monaco/ts.worker.js"
+  };
+  var workerNameForLanguage = (label) => {
+    switch (label) {
+      case "css":
+      case "scss":
+      case "less":
+        return "css";
+      case "html":
+      case "handlebars":
+      case "razor":
+        return "html";
+      case "json":
+        return "json";
+      case "typescript":
+      case "javascript":
+        return "ts";
+      default:
+        return "editor";
+    }
+  };
+  var ensureMonacoEnvironment = () => {
+    if (globalThis.MonacoEnvironment?.getWorker) {
+      return;
+    }
+    globalThis.MonacoEnvironment = {
+      ...globalThis.MonacoEnvironment,
+      getWorker(_workerId, label) {
+        const workerName = workerNameForLanguage(label);
+        return new Worker(monacoWorkerUrls[workerName], { name: label, type: "module" });
+      }
+    };
+  };
   var loadMonaco = () => {
+    ensureMonacoEnvironment();
     if (window.monaco?.editor) {
       ensureMonacoTheme(window.monaco);
       registerLiquidLanguage(window.monaco);
diff --git a/priv/static/assets/monaco.css b/priv/static/assets/monaco.css
index 9f479d1..b06b3e9 100644
--- a/priv/static/assets/monaco.css
+++ b/priv/static/assets/monaco.css
@@ -1,5786 +1 @@
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/aria/aria.css */
-.monaco-aria-container {
-  position: absolute;
-  left: -999em;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/widget/codeEditor/editor.css */
-::-ms-clear {
-  display: none;
-}
-.monaco-editor .editor-widget input {
-  color: inherit;
-}
-.monaco-editor {
-  position: relative;
-  overflow: visible;
-  -webkit-text-size-adjust: 100%;
-  color: var(--vscode-editor-foreground);
-  background-color: var(--vscode-editor-background);
-  overflow-wrap: initial;
-}
-.monaco-editor-background {
-  background-color: var(--vscode-editor-background);
-}
-.monaco-editor .rangeHighlight {
-  background-color: var(--vscode-editor-rangeHighlightBackground);
-  box-sizing: border-box;
-  border: 1px solid var(--vscode-editor-rangeHighlightBorder);
-}
-.monaco-editor.hc-black .rangeHighlight,
-.monaco-editor.hc-light .rangeHighlight {
-  border-style: dotted;
-}
-.monaco-editor .symbolHighlight {
-  background-color: var(--vscode-editor-symbolHighlightBackground);
-  box-sizing: border-box;
-  border: 1px solid var(--vscode-editor-symbolHighlightBorder);
-}
-.monaco-editor.hc-black .symbolHighlight,
-.monaco-editor.hc-light .symbolHighlight {
-  border-style: dotted;
-}
-.monaco-editor .editorCanvas {
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  z-index: 0;
-  pointer-events: none;
-}
-.monaco-editor .overflow-guard {
-  position: relative;
-  overflow: hidden;
-}
-.monaco-editor .view-overlays {
-  position: absolute;
-  top: 0;
-}
-.monaco-editor .view-overlays > div,
-.monaco-editor .margin-view-overlays > div {
-  position: absolute;
-  width: 100%;
-}
-.monaco-editor .squiggly-error {
-  border-bottom: 4px double var(--vscode-editorError-border);
-}
-.monaco-editor .squiggly-error::before {
-  display: block;
-  content: "";
-  width: 100%;
-  height: 100%;
-  background: var(--vscode-editorError-background);
-}
-.monaco-editor .squiggly-warning {
-  border-bottom: 4px double var(--vscode-editorWarning-border);
-}
-.monaco-editor .squiggly-warning::before {
-  display: block;
-  content: "";
-  width: 100%;
-  height: 100%;
-  background: var(--vscode-editorWarning-background);
-}
-.monaco-editor .squiggly-info {
-  border-bottom: 4px double var(--vscode-editorInfo-border);
-}
-.monaco-editor .squiggly-info::before {
-  display: block;
-  content: "";
-  width: 100%;
-  height: 100%;
-  background: var(--vscode-editorInfo-background);
-}
-.monaco-editor .squiggly-hint {
-  border-bottom: 2px dotted var(--vscode-editorHint-border);
-}
-.monaco-editor.showUnused .squiggly-unnecessary {
-  border-bottom: 2px dashed var(--vscode-editorUnnecessaryCode-border);
-}
-.monaco-editor.showDeprecated .squiggly-inline-deprecated {
-  text-decoration: line-through;
-  text-decoration-color: var(--vscode-editor-foreground, inherit);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/media/scrollbars.css */
-.monaco-scrollable-element > .scrollbar > .scra {
-  cursor: pointer;
-  font-size: 11px !important;
-}
-.monaco-scrollable-element > .visible {
-  opacity: 1;
-  background: rgba(0, 0, 0, 0);
-  transition: opacity 100ms linear;
-  z-index: 11;
-}
-.monaco-scrollable-element > .invisible {
-  opacity: 0;
-  pointer-events: none;
-}
-.monaco-scrollable-element > .invisible.fade {
-  transition: opacity 800ms linear;
-}
-.monaco-scrollable-element > .shadow {
-  position: absolute;
-  display: none;
-}
-.monaco-scrollable-element > .shadow.top {
-  display: block;
-  top: 0;
-  left: 3px;
-  height: 3px;
-  width: 100%;
-  box-shadow: var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset;
-}
-.monaco-scrollable-element > .shadow.left {
-  display: block;
-  top: 3px;
-  left: 0;
-  height: 100%;
-  width: 3px;
-  box-shadow: var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset;
-}
-.monaco-scrollable-element > .shadow.top-left-corner {
-  display: block;
-  top: 0;
-  left: 0;
-  height: 3px;
-  width: 3px;
-}
-.monaco-scrollable-element > .shadow.top.left {
-  box-shadow: var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset;
-}
-.monaco-scrollable-element > .scrollbar {
-  background: var(--vscode-scrollbar-background);
-}
-.monaco-scrollable-element > .scrollbar > .slider {
-  background: var(--vscode-scrollbarSlider-background);
-}
-.monaco-scrollable-element > .scrollbar > .slider:hover {
-  background: var(--vscode-scrollbarSlider-hoverBackground);
-}
-.monaco-scrollable-element > .scrollbar > .slider.active {
-  background: var(--vscode-scrollbarSlider-activeBackground);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/viewParts/blockDecorations/blockDecorations.css */
-.monaco-editor .blockDecorations-container {
-  position: absolute;
-  top: 0;
-  pointer-events: none;
-}
-.monaco-editor .blockDecorations-block {
-  position: absolute;
-  box-sizing: border-box;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.css */
-.monaco-editor .view-overlays .current-line {
-  display: block;
-  position: absolute;
-  left: 0;
-  top: 0;
-  box-sizing: border-box;
-  height: 100%;
-}
-.monaco-editor .margin-view-overlays .current-line {
-  display: block;
-  position: absolute;
-  left: 0;
-  top: 0;
-  box-sizing: border-box;
-  height: 100%;
-}
-.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both {
-  border-right: 0;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/viewParts/decorations/decorations.css */
-.monaco-editor .lines-content .cdr {
-  position: absolute;
-  height: 100%;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.css */
-.monaco-editor .glyph-margin {
-  position: absolute;
-  top: 0;
-}
-.monaco-editor .glyph-margin-widgets .cgmr {
-  position: absolute;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-}
-.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin::before {
-  position: absolute;
-  top: 50%;
-  left: 50%;
-  transform: translate(-50%, -50%);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/viewParts/indentGuides/indentGuides.css */
-.monaco-editor .lines-content .core-guide {
-  position: absolute;
-  box-sizing: border-box;
-  height: 100%;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/viewParts/lineNumbers/lineNumbers.css */
-.monaco-editor .margin-view-overlays .line-numbers {
-  bottom: 0;
-  font-variant-numeric: tabular-nums;
-  position: absolute;
-  text-align: right;
-  display: inline-block;
-  vertical-align: middle;
-  box-sizing: border-box;
-  cursor: default;
-}
-.monaco-editor .relative-current-line-number {
-  text-align: left;
-  display: inline-block;
-  width: 100%;
-}
-.monaco-editor .margin-view-overlays .line-numbers.lh-odd {
-  margin-top: 1px;
-}
-.monaco-editor .line-numbers {
-  color: var(--vscode-editorLineNumber-foreground);
-}
-.monaco-editor .line-numbers.active-line-number {
-  color: var(--vscode-editorLineNumber-activeForeground);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/mouseCursor/mouseCursor.css */
-.monaco-mouse-cursor-text {
-  cursor: text;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/viewParts/viewLines/viewLines.css */
-.mtkcontrol {
-  color: rgb(255, 255, 255) !important;
-  background: rgb(150, 0, 0) !important;
-}
-.mtkoverflow {
-  background-color: var(--vscode-button-background, var(--vscode-editor-background));
-  color: var(--vscode-button-foreground, var(--vscode-editor-foreground));
-  border-width: 1px;
-  border-style: solid;
-  border-color: var(--vscode-contrastBorder);
-  border-radius: 2px;
-  padding: 4px;
-  cursor: pointer;
-}
-.mtkoverflow:hover {
-  background-color: var(--vscode-button-hoverBackground);
-}
-.monaco-editor.no-user-select .lines-content,
-.monaco-editor.no-user-select .view-line,
-.monaco-editor.no-user-select .view-lines {
-  user-select: none;
-  -webkit-user-select: none;
-}
-.monaco-editor.mac .lines-content:hover,
-.monaco-editor.mac .view-line:hover,
-.monaco-editor.mac .view-lines:hover {
-  user-select: text;
-  -webkit-user-select: text;
-  -ms-user-select: text;
-}
-.monaco-editor.enable-user-select {
-  user-select: initial;
-  -webkit-user-select: initial;
-}
-.monaco-editor .view-lines {
-  white-space: nowrap;
-}
-.monaco-editor .view-line {
-  box-sizing: border-box;
-  position: absolute;
-  width: 100%;
-}
-.monaco-editor .lines-content > .view-lines > .view-line > span {
-  top: 0;
-  bottom: 0;
-  position: absolute;
-}
-.monaco-editor .mtkw {
-  color: var(--vscode-editorWhitespace-foreground) !important;
-}
-.monaco-editor .mtkz {
-  display: inline-block;
-  color: var(--vscode-editorWhitespace-foreground) !important;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/viewParts/linesDecorations/linesDecorations.css */
-.monaco-editor .lines-decorations {
-  position: absolute;
-  top: 0;
-  background: white;
-}
-.monaco-editor .margin-view-overlays .cldr {
-  position: absolute;
-  height: 100%;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/viewParts/margin/margin.css */
-.monaco-editor .margin {
-  background-color: var(--vscode-editorGutter-background);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/viewParts/marginDecorations/marginDecorations.css */
-.monaco-editor .margin-view-overlays .cmdr {
-  position: absolute;
-  left: 0;
-  width: 100%;
-  height: 100%;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/viewParts/minimap/minimap.css */
-.monaco-editor .minimap.slider-mouseover .minimap-slider {
-  opacity: 0;
-  transition: opacity 100ms linear;
-}
-.monaco-editor .minimap.slider-mouseover:hover .minimap-slider {
-  opacity: 1;
-}
-.monaco-editor .minimap.slider-mouseover .minimap-slider.active {
-  opacity: 1;
-}
-.monaco-editor .minimap-slider .minimap-slider-horizontal {
-  background: var(--vscode-minimapSlider-background);
-}
-.monaco-editor .minimap-slider:hover .minimap-slider-horizontal {
-  background: var(--vscode-minimapSlider-hoverBackground);
-}
-.monaco-editor .minimap-slider.active .minimap-slider-horizontal {
-  background: var(--vscode-minimapSlider-activeBackground);
-}
-.monaco-editor .minimap-shadow-visible {
-  box-shadow: var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset;
-}
-.monaco-editor .minimap-shadow-hidden {
-  position: absolute;
-  width: 0;
-}
-.monaco-editor .minimap-shadow-visible {
-  position: absolute;
-  left: -6px;
-  width: 6px;
-  pointer-events: none;
-}
-.monaco-editor.no-minimap-shadow .minimap-shadow-visible {
-  position: absolute;
-  left: -1px;
-  width: 1px;
-}
-.minimap.minimap-autohide-mouseover,
-.minimap.minimap-autohide-scroll {
-  opacity: 0;
-  transition: opacity 0.5s;
-}
-.minimap.minimap-autohide-scroll {
-  pointer-events: none;
-}
-.minimap.minimap-autohide-mouseover:hover,
-.minimap.minimap-autohide-scroll.active {
-  opacity: 1;
-  pointer-events: auto;
-}
-.monaco-editor .minimap {
-  z-index: 5;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.css */
-.monaco-editor .overlayWidgets {
-  position: absolute;
-  top: 0;
-  left: 0;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/viewParts/rulers/rulers.css */
-.monaco-editor .view-ruler {
-  position: absolute;
-  top: 0;
-  box-shadow: 1px 0 0 0 var(--vscode-editorRuler-foreground) inset;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.css */
-.monaco-editor .scroll-decoration {
-  position: absolute;
-  top: 0;
-  left: 0;
-  height: 6px;
-  box-shadow: var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/viewParts/selections/selections.css */
-.monaco-editor .lines-content .cslr {
-  position: absolute;
-}
-.monaco-editor .focused .selected-text {
-  background-color: var(--vscode-editor-selectionBackground);
-}
-.monaco-editor .selected-text {
-  background-color: var(--vscode-editor-inactiveSelectionBackground);
-}
-.monaco-editor .top-left-radius {
-  border-top-left-radius: 3px;
-}
-.monaco-editor .bottom-left-radius {
-  border-bottom-left-radius: 3px;
-}
-.monaco-editor .top-right-radius {
-  border-top-right-radius: 3px;
-}
-.monaco-editor .bottom-right-radius {
-  border-bottom-right-radius: 3px;
-}
-.monaco-editor.hc-black .top-left-radius {
-  border-top-left-radius: 0;
-}
-.monaco-editor.hc-black .bottom-left-radius {
-  border-bottom-left-radius: 0;
-}
-.monaco-editor.hc-black .top-right-radius {
-  border-top-right-radius: 0;
-}
-.monaco-editor.hc-black .bottom-right-radius {
-  border-bottom-right-radius: 0;
-}
-.monaco-editor.hc-light .top-left-radius {
-  border-top-left-radius: 0;
-}
-.monaco-editor.hc-light .bottom-left-radius {
-  border-bottom-left-radius: 0;
-}
-.monaco-editor.hc-light .top-right-radius {
-  border-top-right-radius: 0;
-}
-.monaco-editor.hc-light .bottom-right-radius {
-  border-bottom-right-radius: 0;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/viewParts/viewCursors/viewCursors.css */
-.monaco-editor .cursors-layer {
-  position: absolute;
-  top: 0;
-}
-.monaco-editor .cursors-layer > .cursor {
-  position: absolute;
-  overflow: hidden;
-  box-sizing: border-box;
-}
-.monaco-editor .cursors-layer.cursor-smooth-caret-animation > .cursor {
-  transition: all 80ms;
-}
-.monaco-editor .cursors-layer.cursor-block-outline-style > .cursor {
-  background: transparent !important;
-  border-style: solid;
-  border-width: 1px;
-}
-.monaco-editor .cursors-layer.cursor-underline-style > .cursor {
-  border-bottom-width: 2px;
-  border-bottom-style: solid;
-  background: transparent !important;
-}
-.monaco-editor .cursors-layer.cursor-underline-thin-style > .cursor {
-  border-bottom-width: 1px;
-  border-bottom-style: solid;
-  background: transparent !important;
-}
-@keyframes monaco-cursor-smooth {
-  0%, 20% {
-    opacity: 1;
-  }
-  60%, 100% {
-    opacity: 0;
-  }
-}
-@keyframes monaco-cursor-phase {
-  0%, 20% {
-    opacity: 1;
-  }
-  90%, 100% {
-    opacity: 0;
-  }
-}
-@keyframes monaco-cursor-expand {
-  0%, 20% {
-    transform: scaleY(1);
-  }
-  80%, 100% {
-    transform: scaleY(0);
-  }
-}
-.cursor-smooth {
-  animation: monaco-cursor-smooth 0.5s ease-in-out 0s 20 alternate;
-}
-.cursor-phase {
-  animation: monaco-cursor-phase 0.5s ease-in-out 0s 20 alternate;
-}
-.cursor-expand > .cursor {
-  animation: monaco-cursor-expand 0.5s ease-in-out 0s 20 alternate;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/viewParts/whitespace/whitespace.css */
-.monaco-editor .mwh {
-  position: absolute;
-  color: var(--vscode-editorWhitespace-foreground) !important;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/gpu/css/media/decorationCssRuleExtractor.css */
-.monaco-editor .monaco-decoration-css-rule-extractor {
-  visibility: hidden;
-  pointer-events: none;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.css */
-.monaco-editor .inputarea {
-  min-width: 0;
-  min-height: 0;
-  margin: 0;
-  padding: 0;
-  position: absolute;
-  outline: none !important;
-  resize: none;
-  border: none;
-  overflow: hidden;
-  color: transparent;
-  background-color: transparent;
-  z-index: -10;
-}
-.monaco-editor .inputarea.ime-input {
-  z-index: 10;
-  caret-color: var(--vscode-editorCursor-foreground);
-  color: var(--vscode-editor-foreground);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.css */
-.monaco-editor .native-edit-context {
-  margin: 0;
-  padding: 0;
-  position: absolute;
-  overflow-y: scroll;
-  scrollbar-width: none;
-  z-index: -10;
-  white-space: pre-wrap;
-}
-.monaco-editor .ime-text-area {
-  min-width: 0;
-  min-height: 0;
-  margin: 0;
-  padding: 0;
-  position: absolute;
-  outline: none !important;
-  resize: none;
-  border: none;
-  overflow: hidden;
-  color: transparent;
-  background-color: transparent;
-  z-index: -10;
-}
-.monaco-editor .edit-context-composition-none {
-  background-color: transparent;
-  border-bottom: none;
-}
-.monaco-editor :not(.hc-black, .hc-light) .edit-context-composition-secondary {
-  border-bottom: 1px solid var(--vscode-editor-compositionBorder);
-}
-.monaco-editor :not(.hc-black, .hc-light) .edit-context-composition-primary {
-  border-bottom: 2px solid var(--vscode-editor-compositionBorder);
-}
-.monaco-editor :is(.hc-black, .hc-light) .edit-context-composition-secondary {
-  border: 1px solid var(--vscode-editor-compositionBorder);
-}
-.monaco-editor :is(.hc-black, .hc-light) .edit-context-composition-primary {
-  border: 2px solid var(--vscode-editor-compositionBorder);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/viewParts/gpuMark/gpuMark.css */
-.monaco-editor .margin-view-overlays .gpu-mark {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  left: 0;
-  width: 100%;
-  display: inline-block;
-  border-left: solid 2px var(--vscode-editorWarning-foreground);
-  opacity: 0.2;
-  transition: background-color 0.1s linear;
-}
-.monaco-editor .margin-view-overlays .gpu-mark:hover {
-  background-color: var(--vscode-editorWarning-foreground);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/selectBox/selectBox.css */
-.monaco-select-box {
-  width: 100%;
-  cursor: pointer;
-  border-radius: 2px;
-}
-.monaco-select-box-dropdown-container {
-  font-size: 13px;
-  font-weight: normal;
-  text-transform: none;
-}
-.monaco-action-bar .action-item.select-container {
-  cursor: default;
-}
-.monaco-action-bar .action-item .monaco-select-box {
-  cursor: pointer;
-  min-width: 100px;
-  min-height: 18px;
-  padding: 2px 23px 2px 8px;
-}
-.mac .monaco-action-bar .action-item .monaco-select-box {
-  font-size: 11px;
-  border-radius: 3px;
-  min-height: 24px;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/list/list.css */
-.monaco-list {
-  position: relative;
-  height: 100%;
-  width: 100%;
-  white-space: nowrap;
-}
-.monaco-list.mouse-support {
-  user-select: none;
-  -webkit-user-select: none;
-}
-.monaco-list > .monaco-scrollable-element {
-  height: 100%;
-}
-.monaco-list-rows {
-  position: relative;
-  width: 100%;
-  height: 100%;
-}
-.monaco-list.horizontal-scrolling .monaco-list-rows {
-  width: auto;
-  min-width: 100%;
-}
-.monaco-list-row {
-  position: absolute;
-  box-sizing: border-box;
-  overflow: hidden;
-  width: 100%;
-}
-.monaco-list.mouse-support .monaco-list-row {
-  cursor: pointer;
-  touch-action: none;
-}
-.monaco-list .monaco-scrollable-element > .scrollbar.vertical,
-.monaco-pane-view > .monaco-split-view2.vertical > .monaco-scrollable-element > .scrollbar.vertical {
-  z-index: 14;
-}
-.monaco-list-row.scrolling {
-  display: none !important;
-}
-.monaco-list.element-focused,
-.monaco-list.selection-single,
-.monaco-list.selection-multiple {
-  outline: 0 !important;
-}
-.monaco-list-type-filter-message {
-  position: absolute;
-  box-sizing: border-box;
-  width: 100%;
-  height: 100%;
-  top: 0;
-  left: 0;
-  padding: 40px 1em 1em 1em;
-  text-align: center;
-  white-space: normal;
-  opacity: 0.7;
-  pointer-events: none;
-}
-.monaco-list-type-filter-message:empty {
-  display: none;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/dnd/dnd.css */
-.monaco-drag-image {
-  display: inline-block;
-  padding: 1px 7px;
-  border-radius: 10px;
-  font-size: 12px;
-  position: absolute;
-  z-index: 1000;
-  background-color: var(--vscode-list-activeSelectionBackground);
-  color: var(--vscode-list-activeSelectionForeground);
-  outline: 1px solid var(--vscode-list-focusOutline);
-  outline-offset: -1px;
-  max-width: 120px;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/selectBox/selectBoxCustom.css */
-.monaco-select-box-dropdown-padding {
-  --dropdown-padding-top: 1px;
-  --dropdown-padding-bottom: 1px;
-}
-.hc-black .monaco-select-box-dropdown-padding,
-.hc-light .monaco-select-box-dropdown-padding {
-  --dropdown-padding-top: 3px;
-  --dropdown-padding-bottom: 4px;
-}
-.monaco-select-box-dropdown-container {
-  display: none;
-  box-sizing: border-box;
-}
-.monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown * {
-  margin: 0;
-}
-.monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown a:focus {
-  outline: 1px solid -webkit-focus-ring-color;
-  outline-offset: -1px;
-}
-.monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown code {
-  line-height: 15px;
-  font-family: var(--monaco-monospace-font);
-}
-.monaco-select-box-dropdown-container.visible {
-  display: flex;
-  flex-direction: column;
-  text-align: left;
-  width: 1px;
-  overflow: hidden;
-  border-bottom-left-radius: 3px;
-  border-bottom-right-radius: 3px;
-}
-.monaco-select-box-dropdown-container > .select-box-dropdown-list-container {
-  flex: 0 0 auto;
-  align-self: flex-start;
-  padding-top: var(--dropdown-padding-top);
-  padding-bottom: var(--dropdown-padding-bottom);
-  padding-left: 1px;
-  padding-right: 1px;
-  width: 100%;
-  overflow: hidden;
-  box-sizing: border-box;
-}
-.monaco-select-box-dropdown-container > .select-box-details-pane {
-  padding: 5px;
-}
-.hc-black .monaco-select-box-dropdown-container > .select-box-dropdown-list-container {
-  padding-top: var(--dropdown-padding-top);
-  padding-bottom: var(--dropdown-padding-bottom);
-}
-.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row {
-  cursor: pointer;
-}
-.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .option-text {
-  text-overflow: ellipsis;
-  overflow: hidden;
-  padding-left: 3.5px;
-  white-space: nowrap;
-  float: left;
-}
-.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .option-detail {
-  text-overflow: ellipsis;
-  overflow: hidden;
-  padding-left: 3.5px;
-  white-space: nowrap;
-  float: left;
-  opacity: 0.7;
-}
-.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .option-decorator-right {
-  text-overflow: ellipsis;
-  overflow: hidden;
-  padding-right: 10px;
-  white-space: nowrap;
-  float: right;
-}
-.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .visually-hidden {
-  position: absolute;
-  left: -10000px;
-  top: auto;
-  width: 1px;
-  height: 1px;
-  overflow: hidden;
-}
-.monaco-select-box-dropdown-container > .select-box-dropdown-container-width-control {
-  flex: 1 1 auto;
-  align-self: flex-start;
-  opacity: 0;
-}
-.monaco-select-box-dropdown-container > .select-box-dropdown-container-width-control > .width-control-div {
-  overflow: hidden;
-  max-height: 0px;
-}
-.monaco-select-box-dropdown-container > .select-box-dropdown-container-width-control > .width-control-div > .option-text-width-control {
-  padding-left: 4px;
-  padding-right: 8px;
-  white-space: nowrap;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/actionbar/actionbar.css */
-.monaco-action-bar {
-  white-space: nowrap;
-  height: 100%;
-}
-.monaco-action-bar .actions-container {
-  display: flex;
-  margin: 0 auto;
-  padding: 0;
-  height: 100%;
-  width: 100%;
-  align-items: center;
-}
-.monaco-action-bar.vertical .actions-container {
-  display: inline-block;
-}
-.monaco-action-bar .action-item {
-  display: block;
-  align-items: center;
-  justify-content: center;
-  cursor: pointer;
-  position: relative;
-}
-.monaco-action-bar .action-item.disabled {
-  cursor: default;
-}
-.monaco-action-bar .action-item .icon,
-.monaco-action-bar .action-item .codicon {
-  display: block;
-}
-.monaco-action-bar .action-item .codicon {
-  display: flex;
-  align-items: center;
-  width: 16px;
-  height: 16px;
-}
-.monaco-action-bar .action-label {
-  display: flex;
-  font-size: 11px;
-  padding: 3px;
-  border-radius: 5px;
-}
-.monaco-action-bar .action-item.disabled .action-label:not(.icon),
-.monaco-action-bar .action-item.disabled .action-label:not(.icon)::before,
-.monaco-action-bar .action-item.disabled .action-label:not(.icon):hover {
-  color: var(--vscode-disabledForeground);
-}
-.monaco-action-bar .action-item.disabled .action-label.icon,
-.monaco-action-bar .action-item.disabled .action-label.icon::before,
-.monaco-action-bar .action-item.disabled .action-label.icon:hover {
-  opacity: 0.6;
-}
-.monaco-action-bar.vertical {
-  text-align: left;
-}
-.monaco-action-bar.vertical .action-item {
-  display: block;
-}
-.monaco-action-bar.vertical .action-label.separator {
-  display: block;
-  border-bottom: 1px solid var(--vscode-disabledForeground);
-  padding-top: 1px;
-  margin-left: .8em;
-  margin-right: .8em;
-}
-.monaco-action-bar .action-item .action-label.separator {
-  width: 1px;
-  height: 16px;
-  margin: 5px 4px !important;
-  cursor: default;
-  min-width: 1px;
-  padding: 0;
-  background-color: var(--vscode-disabledForeground);
-}
-.secondary-actions .monaco-action-bar .action-label {
-  margin-left: 6px;
-}
-.monaco-action-bar .action-item.select-container {
-  overflow: hidden;
-  flex: 1;
-  max-width: 170px;
-  min-width: 60px;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  margin-right: 10px;
-}
-.monaco-action-bar .action-item.action-dropdown-item {
-  display: flex;
-}
-.monaco-action-bar .action-item.action-dropdown-item > .action-dropdown-item-separator {
-  display: flex;
-  align-items: center;
-  cursor: default;
-}
-.monaco-action-bar .action-item.action-dropdown-item > .action-dropdown-item-separator > div {
-  width: 1px;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer.css */
-.monaco-diff-editor .diff-review {
-  position: absolute;
-}
-.monaco-component.diff-review {
-  user-select: none;
-  -webkit-user-select: none;
-  z-index: 99;
-  .diff-review-line-number {
-    text-align: right;
-    display: inline-block;
-    color: var(--vscode-editorLineNumber-foreground);
-  }
-  .diff-review-summary {
-    padding-left: 10px;
-  }
-  .diff-review-shadow {
-    position: absolute;
-    box-shadow: var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset;
-  }
-  .diff-review-row {
-    white-space: pre;
-  }
-  .diff-review-table {
-    display: table;
-    min-width: 100%;
-  }
-  .diff-review-row {
-    display: table-row;
-    width: 100%;
-  }
-  .diff-review-spacer {
-    display: inline-block;
-    width: 10px;
-    vertical-align: middle;
-  }
-  .diff-review-spacer > .codicon {
-    font-size: 9px !important;
-  }
-  .diff-review-actions {
-    display: inline-block;
-    position: absolute;
-    right: 10px;
-    top: 2px;
-    z-index: 100;
-  }
-  .diff-review-actions .action-label {
-    width: 16px;
-    height: 16px;
-    margin: 2px 0;
-  }
-  .revertButton {
-    cursor: pointer;
-  }
-  .action-label {
-    background: var(--vscode-editorActionList-background);
-  }
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/sash/sash.css */
-:root {
-  --vscode-sash-size: 4px;
-  --vscode-sash-hover-size: 4px;
-}
-.monaco-sash {
-  position: absolute;
-  z-index: 35;
-  touch-action: none;
-}
-.monaco-sash.disabled {
-  pointer-events: none;
-}
-.monaco-sash.mac.vertical {
-  cursor: col-resize;
-}
-.monaco-sash.vertical.minimum {
-  cursor: e-resize;
-}
-.monaco-sash.vertical.maximum {
-  cursor: w-resize;
-}
-.monaco-sash.mac.horizontal {
-  cursor: row-resize;
-}
-.monaco-sash.horizontal.minimum {
-  cursor: s-resize;
-}
-.monaco-sash.horizontal.maximum {
-  cursor: n-resize;
-}
-.monaco-sash.disabled {
-  cursor: default !important;
-  pointer-events: none !important;
-}
-.monaco-sash.vertical {
-  cursor: ew-resize;
-  top: 0;
-  width: var(--vscode-sash-size);
-  height: 100%;
-}
-.monaco-sash.horizontal {
-  cursor: ns-resize;
-  left: 0;
-  width: 100%;
-  height: var(--vscode-sash-size);
-}
-.monaco-sash:not(.disabled) > .orthogonal-drag-handle {
-  content: " ";
-  height: calc(var(--vscode-sash-size) * 2);
-  width: calc(var(--vscode-sash-size) * 2);
-  z-index: 100;
-  display: block;
-  cursor: all-scroll;
-  position: absolute;
-}
-.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled) > .orthogonal-drag-handle.start,
-.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled) > .orthogonal-drag-handle.end {
-  cursor: nwse-resize;
-}
-.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled) > .orthogonal-drag-handle.end,
-.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled) > .orthogonal-drag-handle.start {
-  cursor: nesw-resize;
-}
-.monaco-sash.vertical > .orthogonal-drag-handle.start {
-  left: calc(var(--vscode-sash-size) * -0.5);
-  top: calc(var(--vscode-sash-size) * -1);
-}
-.monaco-sash.vertical > .orthogonal-drag-handle.end {
-  left: calc(var(--vscode-sash-size) * -0.5);
-  bottom: calc(var(--vscode-sash-size) * -1);
-}
-.monaco-sash.horizontal > .orthogonal-drag-handle.start {
-  top: calc(var(--vscode-sash-size) * -0.5);
-  left: calc(var(--vscode-sash-size) * -1);
-}
-.monaco-sash.horizontal > .orthogonal-drag-handle.end {
-  top: calc(var(--vscode-sash-size) * -0.5);
-  right: calc(var(--vscode-sash-size) * -1);
-}
-.monaco-sash:before {
-  content: "";
-  pointer-events: none;
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  background: transparent;
-}
-.monaco-enable-motion .monaco-sash:before {
-  transition: background-color 0.1s ease-out;
-}
-.monaco-sash.hover:before,
-.monaco-sash.active:before {
-  background: var(--vscode-sash-hoverBorder);
-}
-.monaco-sash.vertical:before {
-  width: var(--vscode-sash-hover-size);
-  left: calc(50% - (var(--vscode-sash-hover-size) / 2));
-}
-.monaco-sash.horizontal:before {
-  height: var(--vscode-sash-hover-size);
-  top: calc(50% - (var(--vscode-sash-hover-size) / 2));
-}
-.pointer-events-disabled {
-  pointer-events: none !important;
-}
-.monaco-sash.debug {
-  background: cyan;
-}
-.monaco-sash.debug.disabled {
-  background: rgba(0, 255, 255, 0.2);
-}
-.monaco-sash.debug:not(.disabled) > .orthogonal-drag-handle {
-  background: red;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/dropdown/dropdown.css */
-.monaco-dropdown {
-  height: 100%;
-  padding: 0;
-}
-.monaco-dropdown > .dropdown-label {
-  cursor: pointer;
-  height: 100%;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-}
-.monaco-dropdown > .dropdown-label > .action-label.disabled {
-  cursor: default;
-}
-.monaco-dropdown-with-primary {
-  display: flex !important;
-  flex-direction: row;
-  border-radius: 5px;
-}
-.monaco-dropdown-with-primary > .action-container > .action-label {
-  margin-right: 0;
-}
-.monaco-dropdown-with-primary > .dropdown-action-container > .monaco-dropdown > .dropdown-label .codicon[class*=codicon-] {
-  font-size: 12px;
-  padding-left: 0px;
-  padding-right: 0px;
-  line-height: 16px;
-  margin-left: -3px;
-}
-.monaco-dropdown-with-primary > .dropdown-action-container > .monaco-dropdown > .dropdown-label > .action-label {
-  display: block;
-  background-size: 16px;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/toolbar/toolbar.css */
-.monaco-toolbar {
-  height: 100%;
-}
-.monaco-toolbar .toolbar-toggle-more {
-  display: inline-block;
-  padding: 0;
-}
-.monaco-toolbar.responsive {
-  .monaco-action-bar > .actions-container > .action-item {
-    flex-shrink: 1;
-    min-width: 20px;
-  }
-}
-
-/* ../node_modules/monaco-editor/esm/vs/platform/actions/browser/menuEntryActionViewItem.css */
-.monaco-action-bar .action-item.menu-entry .action-label.icon {
-  width: 16px;
-  height: 16px;
-  background-repeat: no-repeat;
-  background-position: 50%;
-  background-size: 16px;
-}
-.monaco-action-bar .action-item.menu-entry.text-only .action-label {
-  color: var(--vscode-descriptionForeground);
-  overflow: hidden;
-  border-radius: 2px;
-}
-.monaco-action-bar .action-item.menu-entry.text-only.use-comma:not(:last-of-type) .action-label::after {
-  content: ", ";
-}
-.monaco-action-bar .action-item.menu-entry.text-only + .action-item:not(.text-only) > .monaco-dropdown .action-label {
-  color: var(--vscode-descriptionForeground);
-}
-.monaco-dropdown-with-default {
-  display: flex !important;
-  flex-direction: row;
-  border-radius: 5px;
-}
-.monaco-dropdown-with-default > .action-container > .action-label {
-  margin-right: 0;
-}
-.monaco-dropdown-with-default > .action-container.menu-entry > .action-label.icon {
-  width: 16px;
-  height: 16px;
-  background-repeat: no-repeat;
-  background-position: 50%;
-  background-size: 16px;
-}
-.monaco-dropdown-with-default:hover {
-  background-color: var(--vscode-toolbar-hoverBackground);
-}
-.monaco-dropdown-with-default > .dropdown-action-container > .monaco-dropdown > .dropdown-label .codicon[class*=codicon-] {
-  font-size: 12px;
-  padding-left: 0px;
-  padding-right: 0px;
-  line-height: 16px;
-  margin-left: -3px;
-}
-.monaco-dropdown-with-default > .dropdown-action-container > .monaco-dropdown > .dropdown-label > .action-label {
-  display: block;
-  background-size: 16px;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/style.css */
-.monaco-editor .diff-hidden-lines-widget {
-  width: 100%;
-}
-.monaco-editor .diff-hidden-lines {
-  height: 0px;
-  transform: translate(0px, -10px);
-  font-size: 13px;
-  line-height: 14px;
-}
-.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover,
-.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover,
-.monaco-editor .diff-hidden-lines .top.dragging,
-.monaco-editor .diff-hidden-lines .bottom.dragging {
-  background-color: var(--vscode-focusBorder);
-}
-.monaco-editor .diff-hidden-lines .top,
-.monaco-editor .diff-hidden-lines .bottom {
-  transition: background-color 0.1s ease-out;
-  height: 4px;
-  background-color: transparent;
-  background-clip: padding-box;
-  border-bottom: 2px solid transparent;
-  border-top: 4px solid transparent;
-}
-.monaco-editor.draggingUnchangedRegion.canMoveTop:not(.canMoveBottom) *,
-.monaco-editor .diff-hidden-lines .top.canMoveTop:not(.canMoveBottom),
-.monaco-editor .diff-hidden-lines .bottom.canMoveTop:not(.canMoveBottom) {
-  cursor: n-resize !important;
-}
-.monaco-editor.draggingUnchangedRegion:not(.canMoveTop).canMoveBottom *,
-.monaco-editor .diff-hidden-lines .top:not(.canMoveTop).canMoveBottom,
-.monaco-editor .diff-hidden-lines .bottom:not(.canMoveTop).canMoveBottom {
-  cursor: s-resize !important;
-}
-.monaco-editor.draggingUnchangedRegion.canMoveTop.canMoveBottom *,
-.monaco-editor .diff-hidden-lines .top.canMoveTop.canMoveBottom,
-.monaco-editor .diff-hidden-lines .bottom.canMoveTop.canMoveBottom {
-  cursor: ns-resize !important;
-}
-.monaco-editor .diff-hidden-lines .top {
-  transform: translate(0px, 4px);
-}
-.monaco-editor .diff-hidden-lines .bottom {
-  transform: translate(0px, -6px);
-}
-.monaco-editor .diff-unchanged-lines {
-  background: var(--vscode-diffEditor-unchangedCodeBackground);
-}
-.monaco-editor .noModificationsOverlay {
-  z-index: 1;
-  background: var(--vscode-editor-background);
-  display: flex;
-  justify-content: center;
-  align-items: center;
-}
-.monaco-editor .diff-hidden-lines .center {
-  background: var(--vscode-diffEditor-unchangedRegionBackground);
-  color: var(--vscode-diffEditor-unchangedRegionForeground);
-  overflow: hidden;
-  display: block;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-  height: 24px;
-  box-shadow: inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow), inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow);
-}
-.monaco-editor .diff-hidden-lines .center span.codicon {
-  vertical-align: middle;
-}
-.monaco-editor .diff-hidden-lines .center a:hover .codicon {
-  cursor: pointer;
-  color: var(--vscode-editorLink-activeForeground) !important;
-}
-.monaco-editor .diff-hidden-lines div.breadcrumb-item {
-  cursor: pointer;
-}
-.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover {
-  color: var(--vscode-editorLink-activeForeground);
-}
-.monaco-editor .movedOriginal {
-  border: 2px solid var(--vscode-diffEditor-move-border);
-}
-.monaco-editor .movedModified {
-  border: 2px solid var(--vscode-diffEditor-move-border);
-}
-.monaco-editor .movedOriginal.currentMove,
-.monaco-editor .movedModified.currentMove {
-  border: 2px solid var(--vscode-diffEditor-moveActive-border);
-}
-.monaco-diff-editor .moved-blocks-lines path.currentMove {
-  stroke: var(--vscode-diffEditor-moveActive-border);
-}
-.monaco-diff-editor .moved-blocks-lines path {
-  pointer-events: visiblestroke;
-}
-.monaco-diff-editor .moved-blocks-lines .arrow {
-  fill: var(--vscode-diffEditor-move-border);
-}
-.monaco-diff-editor .moved-blocks-lines .arrow.currentMove {
-  fill: var(--vscode-diffEditor-moveActive-border);
-}
-.monaco-diff-editor .moved-blocks-lines .arrow-rectangle {
-  fill: var(--vscode-editor-background);
-}
-.monaco-diff-editor .moved-blocks-lines {
-  position: absolute;
-  pointer-events: none;
-}
-.monaco-diff-editor .moved-blocks-lines path {
-  fill: none;
-  stroke: var(--vscode-diffEditor-move-border);
-  stroke-width: 2;
-}
-.monaco-editor .char-delete.diff-range-empty {
-  margin-left: -1px;
-  border-left: solid var(--vscode-diffEditor-removedTextBackground) 3px;
-}
-.monaco-editor .char-insert.diff-range-empty {
-  border-left: solid var(--vscode-diffEditor-insertedTextBackground) 3px;
-}
-.monaco-editor .fold-unchanged {
-  cursor: pointer;
-}
-.monaco-diff-editor .diff-moved-code-block {
-  display: flex;
-  justify-content: flex-end;
-  margin-top: -4px;
-}
-.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon {
-  width: 12px;
-  height: 12px;
-  font-size: 12px;
-}
-.monaco-diff-editor .diffOverview {
-  z-index: 9;
-}
-.monaco-diff-editor .diffOverview .diffViewport {
-  z-index: 10;
-}
-.monaco-diff-editor.vs .diffOverview {
-  background: rgba(0, 0, 0, 0.03);
-}
-.monaco-diff-editor.vs-dark .diffOverview {
-  background: rgba(255, 255, 255, 0.01);
-}
-.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar {
-  background: rgba(0, 0, 0, 0);
-}
-.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar {
-  background: rgba(0, 0, 0, 0);
-}
-.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar {
-  background: none;
-}
-.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar {
-  background: none;
-}
-.monaco-scrollable-element.modified-in-monaco-diff-editor .slider {
-  z-index: 10;
-}
-.modified-in-monaco-diff-editor .slider.active {
-  background: rgba(171, 171, 171, .4);
-}
-.modified-in-monaco-diff-editor.hc-black .slider.active {
-  background: none;
-}
-.modified-in-monaco-diff-editor.hc-light .slider.active {
-  background: none;
-}
-.monaco-editor .insert-sign,
-.monaco-diff-editor .insert-sign,
-.monaco-editor .delete-sign,
-.monaco-diff-editor .delete-sign {
-  font-size: 11px !important;
-  opacity: 0.7 !important;
-  display: flex !important;
-  align-items: center;
-}
-.monaco-editor.hc-black .insert-sign,
-.monaco-diff-editor.hc-black .insert-sign,
-.monaco-editor.hc-black .delete-sign,
-.monaco-diff-editor.hc-black .delete-sign,
-.monaco-editor.hc-light .insert-sign,
-.monaco-diff-editor.hc-light .insert-sign,
-.monaco-editor.hc-light .delete-sign,
-.monaco-diff-editor.hc-light .delete-sign {
-  opacity: 1;
-}
-.monaco-editor .inline-deleted-margin-view-zone {
-  text-align: right;
-}
-.monaco-editor .inline-added-margin-view-zone {
-  text-align: right;
-}
-.monaco-editor .arrow-revert-change {
-  z-index: 10;
-  position: absolute;
-}
-.monaco-editor .arrow-revert-change:hover {
-  cursor: pointer;
-}
-.monaco-editor .view-zones .view-lines .view-line span {
-  display: inline-block;
-}
-.monaco-editor .margin-view-zones .lightbulb-glyph:hover {
-  cursor: pointer;
-}
-.monaco-editor .char-insert,
-.monaco-diff-editor .char-insert {
-  background-color: var(--vscode-diffEditor-insertedTextBackground);
-}
-.monaco-editor .line-insert,
-.monaco-diff-editor .line-insert {
-  background-color: var(--vscode-diffEditor-insertedLineBackground, var(--vscode-diffEditor-insertedTextBackground));
-}
-.monaco-editor .line-insert,
-.monaco-editor .char-insert {
-  box-sizing: border-box;
-  border: 1px solid var(--vscode-diffEditor-insertedTextBorder);
-}
-.monaco-editor.hc-black .line-insert,
-.monaco-editor.hc-light .line-insert,
-.monaco-editor.hc-black .char-insert,
-.monaco-editor.hc-light .char-insert {
-  border-style: dashed;
-}
-.monaco-editor .line-delete,
-.monaco-editor .char-delete {
-  box-sizing: border-box;
-  border: 1px solid var(--vscode-diffEditor-removedTextBorder);
-}
-.monaco-editor.hc-black .line-delete,
-.monaco-editor.hc-light .line-delete,
-.monaco-editor.hc-black .char-delete,
-.monaco-editor.hc-light .char-delete {
-  border-style: dashed;
-}
-.monaco-editor .inline-added-margin-view-zone,
-.monaco-editor .gutter-insert,
-.monaco-diff-editor .gutter-insert {
-  background-color: var(--vscode-diffEditorGutter-insertedLineBackground, var(--vscode-diffEditor-insertedLineBackground), var(--vscode-diffEditor-insertedTextBackground));
-}
-.monaco-editor .char-delete,
-.monaco-diff-editor .char-delete,
-.monaco-editor .inline-deleted-text {
-  background-color: var(--vscode-diffEditor-removedTextBackground);
-}
-.monaco-editor .inline-deleted-text {
-  text-decoration: line-through;
-}
-.monaco-editor .line-delete,
-.monaco-diff-editor .line-delete {
-  background-color: var(--vscode-diffEditor-removedLineBackground, var(--vscode-diffEditor-removedTextBackground));
-}
-.monaco-editor .inline-deleted-margin-view-zone,
-.monaco-editor .gutter-delete,
-.monaco-diff-editor .gutter-delete {
-  background-color: var(--vscode-diffEditorGutter-removedLineBackground, var(--vscode-diffEditor-removedLineBackground), var(--vscode-diffEditor-removedTextBackground));
-}
-.monaco-diff-editor.side-by-side .editor.modified {
-  box-shadow: -6px 0 5px -5px var(--vscode-scrollbar-shadow);
-  border-left: 1px solid var(--vscode-diffEditor-border);
-}
-.monaco-diff-editor.side-by-side .editor.original {
-  box-shadow: 6px 0 5px -5px var(--vscode-scrollbar-shadow);
-  border-right: 1px solid var(--vscode-diffEditor-border);
-}
-.monaco-diff-editor .diffViewport {
-  background: var(--vscode-scrollbarSlider-background);
-}
-.monaco-diff-editor .diffViewport:hover {
-  background: var(--vscode-scrollbarSlider-hoverBackground);
-}
-.monaco-diff-editor .diffViewport:active {
-  background: var(--vscode-scrollbarSlider-activeBackground);
-}
-.monaco-editor .diagonal-fill {
-  background-image:
-    linear-gradient(
-      -45deg,
-      var(--vscode-diffEditor-diagonalFill) 12.5%,
-      #0000 12.5%,
-      #0000 50%,
-      var(--vscode-diffEditor-diagonalFill) 50%,
-      var(--vscode-diffEditor-diagonalFill) 62.5%,
-      #0000 62.5%,
-      #0000 100%);
-  background-size: 8px 8px;
-}
-.monaco-diff-editor .gutter {
-  position: relative;
-  overflow: hidden;
-  flex-shrink: 0;
-  flex-grow: 0;
-  & > div {
-    position: absolute;
-  }
-  .gutterItem {
-    opacity: 0;
-    transition: opacity 0.7s;
-    &.showAlways {
-      opacity: 1;
-      transition: none;
-    }
-    &.noTransition {
-      transition: none;
-    }
-  }
-  &:hover .gutterItem {
-    opacity: 1;
-    transition: opacity 0.1s ease-in-out;
-  }
-  .gutterItem {
-    .background {
-      position: absolute;
-      height: 100%;
-      left: 50%;
-      width: 1px;
-      border-left: 2px var(--vscode-menu-separatorBackground) solid;
-    }
-    .buttons {
-      position: absolute;
-      width: 100%;
-      display: flex;
-      justify-content: center;
-      align-items: center;
-      .monaco-toolbar {
-        height: fit-content;
-        .monaco-action-bar {
-          line-height: 1;
-          .actions-container {
-            width: fit-content;
-            border-radius: 4px;
-            background: var(--vscode-editorGutter-itemBackground);
-            .action-item {
-              &:hover {
-                background: var(--vscode-toolbar-hoverBackground);
-              }
-              .action-label {
-                color: var(--vscode-editorGutter-itemGlyphForeground);
-                padding: 1px 2px;
-              }
-            }
-          }
-        }
-      }
-    }
-  }
-}
-.monaco-diff-editor .diff-hidden-lines-compact {
-  display: flex;
-  height: 11px;
-  .line-left,
-  .line-right {
-    height: 1px;
-    border-top: 1px solid;
-    border-color: var(--vscode-editorCodeLens-foreground);
-    opacity: 0.5;
-    margin: auto;
-    width: 100%;
-  }
-  .line-left {
-    width: 20px;
-  }
-  .text {
-    color: var(--vscode-editorCodeLens-foreground);
-    text-wrap: nowrap;
-    font-size: 11px;
-    line-height: 11px;
-    margin: 0 4px;
-  }
-}
-.monaco-editor .line-delete-selectable {
-  user-select: text !important;
-  -webkit-user-select: text !important;
-  z-index: 1 !important;
-}
-.line-delete-selectable .view-line {
-  user-select: text !important;
-  -webkit-user-select: text !important;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.css */
-.monaco-editor .selection-anchor {
-  background-color: #007ACC;
-  width: 2px !important;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.css */
-.monaco-editor .bracket-match {
-  box-sizing: border-box;
-  background-color: var(--vscode-editorBracketMatch-background);
-  border: 1px solid var(--vscode-editorBracketMatch-border);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/inlineProgress/browser/inlineProgressWidget.css */
-.inline-editor-progress-decoration {
-  display: inline-block;
-  width: 1em;
-  height: 1em;
-}
-.inline-progress-widget {
-  display: flex !important;
-  justify-content: center;
-  align-items: center;
-}
-.inline-progress-widget .icon {
-  font-size: 80% !important;
-}
-.inline-progress-widget:hover .icon {
-  font-size: 90% !important;
-  animation: none;
-}
-.inline-progress-widget:hover .icon::before {
-  content: var(--vscode-icon-x-content);
-  font-family: var(--vscode-icon-x-font-family);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/message/browser/messageController.css */
-.monaco-editor .monaco-editor-overlaymessage {
-  padding-bottom: 8px;
-  z-index: 10000;
-}
-.monaco-editor .monaco-editor-overlaymessage.below {
-  padding-bottom: 0;
-  padding-top: 8px;
-  z-index: 10000;
-}
-@keyframes fadeIn {
-  from {
-    opacity: 0;
-  }
-  to {
-    opacity: 1;
-  }
-}
-.monaco-editor .monaco-editor-overlaymessage.fadeIn {
-  animation: fadeIn 150ms ease-out;
-}
-@keyframes fadeOut {
-  from {
-    opacity: 1;
-  }
-  to {
-    opacity: 0;
-  }
-}
-.monaco-editor .monaco-editor-overlaymessage.fadeOut {
-  animation: fadeOut 100ms ease-out;
-}
-.monaco-editor .monaco-editor-overlaymessage .message {
-  padding: 2px 4px;
-  color: var(--vscode-editorHoverWidget-foreground);
-  background-color: var(--vscode-editorHoverWidget-background);
-  border: 1px solid var(--vscode-inputValidation-infoBorder);
-  border-radius: 3px;
-}
-.monaco-editor .monaco-editor-overlaymessage .message p {
-  margin-block: 0px;
-}
-.monaco-editor .monaco-editor-overlaymessage .message a {
-  color: var(--vscode-textLink-foreground);
-}
-.monaco-editor .monaco-editor-overlaymessage .message a:hover {
-  color: var(--vscode-textLink-activeForeground);
-}
-.monaco-editor.hc-black .monaco-editor-overlaymessage .message,
-.monaco-editor.hc-light .monaco-editor-overlaymessage .message {
-  border-width: 2px;
-}
-.monaco-editor .monaco-editor-overlaymessage .anchor {
-  width: 0 !important;
-  height: 0 !important;
-  border-color: transparent;
-  border-style: solid;
-  z-index: 1000;
-  border-width: 8px;
-  position: absolute;
-  left: 2px;
-}
-.monaco-editor .monaco-editor-overlaymessage .anchor.top {
-  border-bottom-color: var(--vscode-inputValidation-infoBorder);
-}
-.monaco-editor .monaco-editor-overlaymessage .anchor.below {
-  border-top-color: var(--vscode-inputValidation-infoBorder);
-}
-.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top,
-.monaco-editor .monaco-editor-overlaymessage.below .anchor.below {
-  display: none;
-}
-.monaco-editor .monaco-editor-overlaymessage.below .anchor.top {
-  display: inherit;
-  top: -8px;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/button/button.css */
-.monaco-text-button {
-  box-sizing: border-box;
-  display: flex;
-  width: 100%;
-  padding: 4px;
-  border-radius: 2px;
-  text-align: center;
-  cursor: pointer;
-  justify-content: center;
-  align-items: center;
-  border: 1px solid var(--vscode-button-border, transparent);
-  line-height: 18px;
-}
-.monaco-text-button:focus {
-  outline-offset: 2px !important;
-}
-.monaco-text-button:hover {
-  text-decoration: none !important;
-}
-.monaco-button.disabled:focus,
-.monaco-button.disabled {
-  opacity: 0.4 !important;
-  cursor: default;
-}
-.monaco-text-button .codicon {
-  margin: 0 0.2em;
-  color: inherit !important;
-}
-.monaco-text-button.monaco-text-button-with-short-label {
-  flex-direction: row;
-  flex-wrap: wrap;
-  padding: 0 4px;
-  overflow: hidden;
-  height: 28px;
-}
-.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label {
-  flex-basis: 100%;
-}
-.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label-short {
-  flex-grow: 1;
-  width: 0;
-  overflow: hidden;
-}
-.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label,
-.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label-short {
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  font-weight: normal;
-  font-style: inherit;
-  padding: 4px 0;
-}
-.monaco-button-dropdown {
-  display: flex;
-  cursor: pointer;
-}
-.monaco-button-dropdown.disabled {
-  cursor: default;
-}
-.monaco-button-dropdown > .monaco-button:focus {
-  outline-offset: -1px !important;
-}
-.monaco-button-dropdown.disabled > .monaco-button.disabled,
-.monaco-button-dropdown.disabled > .monaco-button.disabled:focus,
-.monaco-button-dropdown.disabled > .monaco-button-dropdown-separator {
-  opacity: 0.4 !important;
-}
-.monaco-button-dropdown > .monaco-button.monaco-text-button {
-  border-right-width: 0 !important;
-}
-.monaco-button-dropdown .monaco-button-dropdown-separator {
-  padding: 4px 0;
-  cursor: default;
-}
-.monaco-button-dropdown .monaco-button-dropdown-separator > div {
-  height: 100%;
-  width: 1px;
-}
-.monaco-button-dropdown > .monaco-button.monaco-dropdown-button {
-  border: 1px solid var(--vscode-button-border, transparent);
-  border-left-width: 0 !important;
-  border-radius: 0 2px 2px 0;
-  display: flex;
-  align-items: center;
-}
-.monaco-button-dropdown > .monaco-button.monaco-text-button {
-  border-radius: 2px 0 0 2px;
-}
-.monaco-description-button {
-  display: flex;
-  flex-direction: column;
-  align-items: center;
-  margin: 4px 5px;
-}
-.monaco-description-button .monaco-button-description {
-  font-style: italic;
-  font-size: 11px;
-  padding: 4px 20px;
-}
-.monaco-description-button .monaco-button-label,
-.monaco-description-button .monaco-button-description {
-  display: flex;
-  justify-content: center;
-  align-items: center;
-}
-.monaco-description-button .monaco-button-label > .codicon,
-.monaco-description-button .monaco-button-description > .codicon {
-  margin: 0 0.2em;
-  color: inherit !important;
-}
-.monaco-button.default-colors,
-.monaco-button-dropdown.default-colors > .monaco-button {
-  color: var(--vscode-button-foreground);
-  background-color: var(--vscode-button-background);
-}
-.monaco-button.default-colors:hover,
-.monaco-button-dropdown.default-colors > .monaco-button:hover {
-  background-color: var(--vscode-button-hoverBackground);
-}
-.monaco-button.default-colors.secondary,
-.monaco-button-dropdown.default-colors > .monaco-button.secondary {
-  color: var(--vscode-button-secondaryForeground);
-  background-color: var(--vscode-button-secondaryBackground);
-}
-.monaco-button.default-colors.secondary:hover,
-.monaco-button-dropdown.default-colors > .monaco-button.secondary:hover {
-  background-color: var(--vscode-button-secondaryHoverBackground);
-}
-.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator {
-  background-color: var(--vscode-button-background);
-  border-top: 1px solid var(--vscode-button-border);
-  border-bottom: 1px solid var(--vscode-button-border);
-}
-.monaco-button-dropdown.default-colors .monaco-button.secondary + .monaco-button-dropdown-separator {
-  background-color: var(--vscode-button-secondaryBackground);
-}
-.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator > div {
-  background-color: var(--vscode-button-separator);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/platform/actionWidget/browser/actionWidget.css */
-.action-widget {
-  font-size: 13px;
-  border-radius: 0;
-  min-width: 100px;
-  max-width: 80vw;
-  z-index: 40;
-  display: block;
-  width: 100%;
-  border: 1px solid var(--vscode-menu-border) !important;
-  border-radius: 5px;
-  background-color: var(--vscode-menu-background);
-  color: var(--vscode-menu-foreground);
-  padding: 4px;
-  box-shadow: 0 2px 8px var(--vscode-widget-shadow);
-}
-.context-view-block {
-  position: fixed;
-  cursor: initial;
-  left: 0;
-  top: 0;
-  width: 100%;
-  height: 100%;
-  z-index: -1;
-}
-.context-view-pointerBlock {
-  position: fixed;
-  cursor: initial;
-  left: 0;
-  top: 0;
-  width: 100%;
-  height: 100%;
-  z-index: 2;
-}
-.action-widget .monaco-list {
-  user-select: none;
-  -webkit-user-select: none;
-  border: none !important;
-  border-width: 0 !important;
-}
-.action-widget .monaco-list:focus:before {
-  outline: 0 !important;
-}
-.action-widget .monaco-list .monaco-scrollable-element {
-  overflow: visible;
-}
-.action-widget .monaco-list .monaco-list-row {
-  padding: 0 4px 0 4px;
-  white-space: nowrap;
-  cursor: pointer;
-  touch-action: none;
-  width: 100%;
-  border-radius: 3px;
-}
-.action-widget .monaco-list .monaco-list-row.action.focused:not(.option-disabled) {
-  background-color: var(--vscode-list-activeSelectionBackground) !important;
-  color: var(--vscode-list-activeSelectionForeground);
-  outline: 1px solid var(--vscode-menu-selectionBorder, transparent);
-  outline-offset: -1px;
-}
-.action-widget .monaco-list-row.group-header {
-  color: var(--vscode-descriptionForeground) !important;
-  font-weight: 600;
-  font-size: 13px;
-}
-.action-widget .monaco-list-row.group-header:not(:first-of-type) {
-  margin-top: 2px;
-}
-.action-widget .monaco-scrollable-element .monaco-list-rows .monaco-list-row.separator {
-  border-top: 1px solid var(--vscode-editorHoverWidget-border);
-  color: var(--vscode-descriptionForeground);
-  font-size: 12px;
-  padding: 0;
-  margin: 4px 0 0 0;
-  cursor: default;
-  user-select: none;
-  border-radius: 0;
-}
-.action-widget .monaco-scrollable-element .monaco-list-rows .monaco-list-row.separator.focused {
-  outline: 0 solid;
-  background-color: transparent;
-  border-radius: 0;
-}
-.action-widget .monaco-list-row.separator:first-of-type {
-  border-top: none;
-  margin-top: 0;
-}
-.action-widget .monaco-list .group-header,
-.action-widget .monaco-list .option-disabled,
-.action-widget .monaco-list .option-disabled:before,
-.action-widget .monaco-list .option-disabled .focused,
-.action-widget .monaco-list .option-disabled .focused:before {
-  cursor: default !important;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  user-select: none;
-  background-color: transparent !important;
-  outline: 0 solid !important;
-}
-.action-widget .monaco-list-row.action {
-  display: flex;
-  gap: 4px;
-  align-items: center;
-}
-.action-widget .monaco-list-row.action.option-disabled,
-.action-widget .monaco-list:focus .monaco-list-row.focused.action.option-disabled,
-.action-widget .monaco-list-row.action.option-disabled .codicon,
-.action-widget .monaco-list:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused).option-disabled {
-  color: var(--vscode-disabledForeground);
-}
-.action-widget .monaco-list-row.action:not(.option-disabled) .codicon {
-  color: inherit;
-}
-.action-widget .monaco-list-row.action .title {
-  flex: 1;
-  overflow: hidden;
-  text-overflow: ellipsis;
-}
-.action-widget .monaco-list-row.action .monaco-keybinding > .monaco-keybinding-key {
-  background-color: var(--vscode-keybindingLabel-background);
-  color: var(--vscode-keybindingLabel-foreground);
-  border-style: solid;
-  border-width: 1px;
-  border-radius: 3px;
-  border-color: var(--vscode-keybindingLabel-border);
-  border-bottom-color: var(--vscode-keybindingLabel-bottomBorder);
-  box-shadow: inset 0 -1px 0 var(--vscode-widget-shadow);
-}
-.action-widget .action-widget-action-bar {
-  background-color: var(--vscode-menu-background);
-  border-top: 1px solid var(--vscode-menu-border);
-  margin-top: 2px;
-}
-.action-widget .action-widget-action-bar::before {
-  display: block;
-  content: "";
-  width: 100%;
-}
-.action-widget .action-widget-action-bar .actions-container {
-  padding: 4px 8px 2px 24px;
-}
-.action-widget-action-bar .action-label {
-  color: var(--vscode-textLink-activeForeground);
-  font-size: 13px;
-  line-height: 22px;
-  padding: 0;
-  pointer-events: all;
-}
-.action-widget-action-bar .action-item {
-  margin-right: 16px;
-  pointer-events: none;
-}
-.action-widget-action-bar .action-label:hover {
-  background-color: transparent !important;
-}
-.monaco-action-bar .actions-container.highlight-toggled .action-label.checked {
-  background: var(--vscode-actionBar-toggledBackground) !important;
-}
-.action-widget .monaco-list .monaco-list-row .description {
-  opacity: 0.7;
-  margin-left: 0.5em;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/keybindingLabel/keybindingLabel.css */
-.monaco-keybinding {
-  display: flex;
-  align-items: center;
-  line-height: 10px;
-}
-.monaco-keybinding > .monaco-keybinding-key {
-  display: inline-block;
-  border-style: solid;
-  border-width: 1px;
-  border-radius: 3px;
-  vertical-align: middle;
-  font-size: 11px;
-  padding: 3px 5px;
-  margin: 0 2px;
-}
-.monaco-keybinding > .monaco-keybinding-key:first-child {
-  margin-left: 0;
-}
-.monaco-keybinding > .monaco-keybinding-key:last-child {
-  margin-right: 0;
-}
-.monaco-keybinding > .monaco-keybinding-key-separator {
-  display: inline-block;
-}
-.monaco-keybinding > .monaco-keybinding-key-chord-separator {
-  width: 6px;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.css */
-.post-edit-widget {
-  box-shadow: 0 0 8px 2px var(--vscode-widget-shadow);
-  border: 1px solid var(--vscode-widget-border, transparent);
-  border-radius: 4px;
-  color: var(--vscode-button-foreground);
-  background-color: var(--vscode-button-background);
-  overflow: hidden;
-}
-.post-edit-widget .monaco-button {
-  padding: 2px;
-  border: none;
-  border-radius: 0;
-}
-.post-edit-widget .monaco-button:hover {
-  background-color: var(--vscode-button-hoverBackground) !important;
-}
-.post-edit-widget .monaco-button .codicon {
-  margin: 0;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/codicons/codicon/codicon.css */
-@font-face {
-  font-family: "codicon";
-  font-display: block;
-  src: url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQiCLJXoAAAE4AAAAVE9TLzI3UEsvAAABjAAAAGBjbWFwdCJY8AAACfwAAB5QZ2x5ZpdPvvsAACxYAAGRYGhlYWRYkqBSAAAA4AAAADZoaGVhAlYDLwAAALwAAAAkaG10eFs1/+YAAAHsAAAIEGxvY2EPPKwaAAAoTAAABAptYXhwAx0BiAAAARgAAAAgbmFtZZP7uU8AAb24AAAB+HBvc3RPbs8TAAG/sAAAHMQAAQAAASwAAAAAASz/+v/+AS4AAQAAAAAAAAAAAAAAAAAAAgQAAQAAAAEAAD/d1LtfDzz1AAsBLAAAAAB8JbCAAAAAAHwlsID/+v/8AS4BLQAAAAgAAgAAAAAAAAABAAACBAF8AA8AAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAQBKwGQAAUAAAC+ANIAAAAqAL4A0gAAAJAADgBNAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwOpg8QMBLAAAABsBRwAEAAAAAQAAAAAAAAAAAAAAAAACAAAAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLP//ASz//wEsAAABLAAAASz//wEs//8BLP//ASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLP//ASz//wEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASz//AEsAAABLP//ASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABIAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLP//ASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABIAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASAAAAEsAAABLAAAASD/+gEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEgAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABIAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABIAAAASwAAAEsAAABIAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLAAAASwAAAEsAAABLAAAASz//wEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAAAAABQAAAAMAAAAsAAAABAAABaQAAQAAAAAEngADAAEAAAAsAAMACgAABaQABARyAAAAEgAQAAMAAuqI6ozqx+rJ6wnrTuxx8QP//wAA6mDqiuqP6snqzOsL61DxAf//AAAAAAAAAAAAAAAAAAAAAAABABIAYgBmANYA1gFQAdYEGAAAAAMBHAF8AXcA1gFmAckBUwDKAToBqQBXAfkBlAGfAZ4AqgA7AV0AnQDzASgARgHHAI0AGAH0ALUAnwFzAUsBQQFCAd4A7ADBAN4B1QG2AKMBxQGvAPsBvAGwAb4BxAHAAbkA4QG1AcIAAgAFAAYACwAMAA0ADgAPABAAEQATABwAHgAfACAAcABxAHIAcwB2AHcAIwAkACUAJgAoACsAMAAxADIAMwA0ADUANwA4ADkAOgBBAD4AQgBDAEQARQBHAEgATABOAFAAVABoAGoAawBsAHsAfQB/AIIAhgCIAIkAigCLAIwAjgCPAJAAkQCSAJMAlQCWAJgAmQCeAKAApACoAKkArACtAK4ArwCwALEAsgC0ALYAuAC6ALsAvAC9AL4AwADDAMQAxQDGAMsAzADPANoA2wDfAOMA5wDoAOsA7QDuAO8A8AD3APgA+QD6APsA/AD9AQEBGQEdAR4BIAEjASQBJQEmASoBKwEwATIBMwE5ATsBPAE9AT8BRAFFAUgBSgFNAU4BVgCGAVoBWwFcAV4BXwFhAWIBZAFlAWoBawFsAW0BbgFvAXEBcgF0AXYBeQF6AX0AlwF/AYABgQGCAYMBiwGMAY0BjgGPAZMBmQGaAZsBnQGhAaMBpgGnAagBqgGrAbEBsgGzAbQBtwC1AbgBugG9Ab8BwQHDAcsBzAHWAdgB2gHcAd0B3wHgAeEB4gHjAecB6QHqAesB7gE9Ae8B8QHzAfoB+wH8ACUB/gICAgMAuAEfASEBIgB0AHUAhAA/AIUAeAG5AIMAhwCBAG8AKQAqATQApQCrAOkB6AABABkAegEYAUwBhgHGAVgA3AGYAZcBUAGsAVkBaABuAfAASQE2AKYA5AEpAUcBaQAvAVcBTwA8AD0AUQHIAewB5gHkAeUA0QGEAYcBRgCAAf8CAQIAAc4BzwHRAdIB0wHUAc0AEgBmAVIAtwH4AH4A9QEEAQMBAgBaAFkAWAAWAPYA0ADTAG0AfAGJAL8AewAXAOUA5gFVACEAIgEnABUB7QFDARcBBQEGAQwBCQELAQ4BDwESARUBFgEIAQcBygDxAWcAogAHAAgACQAKARQBDQERAB0A6gEvASwAQAAbABoAVgDUANUBkABVAZYBpQD0ATgB2QHbAE0BogDCAfUANgFUAT4BNwF1AGUBGwF+AaQAlwCUAa4BnADZANcA2AH3AfYASgGIAYUAZwDd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AADrcQAAAeIAAOtyAADrcgAAAeMAAOtzAADrcwAAAecAAOt0AADrdAAAAekAAOt1AADrdQAAAeoAAOt2AADrdgAAAesAAOt3AADrdwAAAe4AAOt4AADreAAAAT0AAOt5AADreQAAAe8AAOt6AADregAAAfEAAOt7AADrewAAAfMAAOt8AADrfAAAAfoAAOt9AADrfQAAAfsAAOt+AADrfgAAAfwAAOt/AADrfwAAACUAAOuAAADrgAAAAf4AAOuBAADrgQAAAgIAAOuCAADrggAAAgMAAOuDAADrgwAAALgAAOuEAADrhAAAAR8AAOuFAADrhQAAASEAAOuGAADrhgAAASIAAOuHAADrhwAAAHQAAOuIAADriAAAAHUAAOuJAADriQAAAIQAAOuKAADrigAAAD8AAOuLAADriwAAAIUAAOuMAADrjAAAAHgAAOuNAADrjQAAAbkAAOuOAADrjgAAAIMAAOuPAADrjwAAAIcAAOuQAADrkAAAAIEAAOuRAADrkQAAAG8AAOuSAADrkgAAACkAAOuTAADrkwAAACoAAOuUAADrlAAAATQAAOuVAADrlQAAAKUAAOuWAADrlgAAAKsAAOuXAADrlwAAAOkAAOuYAADrmAAAAegAAOuZAADrmQAAAAEAAOuaAADrmgAAABkAAOubAADrmwAAAHoAAOucAADrnAAAARgAAOudAADrnQAAAUwAAOueAADrngAAAYYAAOufAADrnwAAAcYAAOugAADroAAAAVgAAOuhAADroQAAANwAAOuiAADrogAAAZgAAOujAADrowAAAZcAAOukAADrpAAAAVAAAOulAADrpQAAAawAAOumAADrpgAAAVkAAOunAADrpwAAAWgAAOuoAADrqAAAAG4AAOupAADrqQAAAfAAAOuqAADrqgAAAEkAAOurAADrqwAAATYAAOusAADrrAAAAKYAAOutAADrrQAAAOQAAOuuAADrrgAAASkAAOuvAADrrwAAAUcAAOuwAADrsAAAAWkAAOuxAADrsQAAAC8AAOuyAADrsgAAAVcAAOuzAADrswAAAU8AAOu0AADrtAAAADwAAOu1AADrtQAAAD0AAOu2AADrtgAAAFEAAOu3AADrtwAAAcgAAOu4AADruAAAAewAAOu5AADruQAAAeYAAOu6AADrugAAAeQAAOu7AADruwAAAeUAAOu8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AQxjb2RpY29uUmVndWxhcmNvZGljb25jb2RpY29uVmVyc2lvbiAxLjE1Y29kaWNvblRoZSBpY29uIGZvbnQgZm9yIFZpc3VhbCBTdHVkaW8gQ29kZWh0dHA6Ly9mb250ZWxsby5jb20AYwBvAGQAaQBjAG8AbgBSAGUAZwB1AGwAYQByAGMAbwBkAGkAYwBvAG4AYwBvAGQAaQBjAG8AbgBWAGUAcgBzAGkAbwBuACAAMQAuADEANQBjAG8AZABpAGMAbwBuAFQAaABlACAAaQBjAG8AbgAgAGYAbwBuAHQAIABmAG8AcgAgAFYAaQBzAHUAYQBsACAAUwB0AHUAZABpAG8AIABDAG8AZABlAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHfAeAB4QHiAeMB5AHlAeYB5wHoAekB6gHrAewB7QHuAe8B8AHxAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4B/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoCCwIMAg0CDgIPAhACEQISAhMCFAIVAhYCFwIYAhkCGgIbAhwCHQIeAh8CIAIhAiICIwIkAiUCJgInAigCKQIqAisCLAItAi4CLwIwAjECMgIzAjQCNQI2AjcCOAI5AjoCOwI8Aj0CPgI/AkACQQJCAkMCRAJFAkYCRwJIAkkCSgJLAkwCTQJOAk8CUAJRAlICUwJUAlUCVgJXAlgCWQJaAlsCXAJdAl4CXwJgAmECYgJjAmQCZQJmAmcCaAJpAmoCawJsAm0CbgJvAnACcQJyAnMCdAJ1AnYCdwJ4AnkCegJ7AnwCfQJ+An8CgAKBAoICgwKEAoUChgKHAogCiQKKAosCjAKNAo4CjwKQApECkgKTApQClQKWApcCmAKZApoCmwKcAp0CngKfAqACoQKiAqMCpAKlAqYCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4CvwLAAsECwgLDAsQCxQLGAscCyALJAsoCywLMAs0CzgLPAtAC0QLSAtMC1ALVAtYC1wLYAtkC2gLbAtwC3QLeAt8C4ALhAuIC4wLkAuUC5gLnAugC6QLqAusC7ALtAu4C7wLwAvEC8gLzAvQC9QL2AvcC+AL5AvoC+wL8Av0C/gL/AwADAQMCAwMDBAMFAAdhY2NvdW50FGFjdGl2YXRlLWJyZWFrcG9pbnRzA2FkZAVhZ2VudAdhcmNoaXZlCmFycm93LWJvdGgRYXJyb3ctY2lyY2xlLWRvd24RYXJyb3ctY2lyY2xlLWxlZnQSYXJyb3ctY2lyY2xlLXJpZ2h0D2Fycm93LWNpcmNsZS11cAphcnJvdy1kb3duCmFycm93LWxlZnQLYXJyb3ctcmlnaHQQYXJyb3ctc21hbGwtZG93bhBhcnJvdy1zbWFsbC1sZWZ0EWFycm93LXNtYWxsLXJpZ2h0DmFycm93LXNtYWxsLXVwCmFycm93LXN3YXAIYXJyb3ctdXAGYXR0YWNoDGF6dXJlLWRldm9wcwVhenVyZQtiZWFrZXItc3RvcAZiZWFrZXIIYmVsbC1kb3QOYmVsbC1zbGFzaC1kb3QKYmVsbC1zbGFzaARiZWxsBWJsYW5rBGJvbGQEYm9vawhib29rbWFyawticmFja2V0LWRvdA1icmFja2V0LWVycm9yCWJyaWVmY2FzZQlicm9hZGNhc3QHYnJvd3NlcgNidWcFYnVpbGQIY2FsZW5kYXINY2FsbC1pbmNvbWluZw1jYWxsLW91dGdvaW5nDmNhc2Utc2Vuc2l0aXZlEmNoYXQtc3BhcmtsZS1lcnJvchRjaGF0LXNwYXJrbGUtd2FybmluZwxjaGF0LXNwYXJrbGUJY2hlY2stYWxsBWNoZWNrCWNoZWNrbGlzdAxjaGV2cm9uLWRvd24MY2hldnJvbi1sZWZ0DWNoZXZyb24tcmlnaHQKY2hldnJvbi11cARjaGlwDGNocm9tZS1jbG9zZQ9jaHJvbWUtbWF4aW1pemUPY2hyb21lLW1pbmltaXplDmNocm9tZS1yZXN0b3JlDWNpcmNsZS1maWxsZWQTY2lyY2xlLWxhcmdlLWZpbGxlZAxjaXJjbGUtbGFyZ2UMY2lyY2xlLXNsYXNoE2NpcmNsZS1zbWFsbC1maWxsZWQMY2lyY2xlLXNtYWxsBmNpcmNsZQ1jaXJjdWl0LWJvYXJkCWNsZWFyLWFsbAZjbGlwcHkJY2xvc2UtYWxsBWNsb3NlDmNsb3VkLWRvd25sb2FkDGNsb3VkLXVwbG9hZAVjbG91ZAhjb2RlLW9zcwtjb2RlLXJldmlldwRjb2RlBmNvZmZlZQxjb2xsYXBzZS1hbGwKY29sbGVjdGlvbgpjb2xvci1tb2RlB2NvbWJpbmUYY29tbWVudC1kaXNjdXNzaW9uLXF1b3RlGmNvbW1lbnQtZGlzY3Vzc2lvbi1zcGFya2xlEmNvbW1lbnQtZGlzY3Vzc2lvbg1jb21tZW50LWRyYWZ0EmNvbW1lbnQtdW5yZXNvbHZlZAdjb21tZW50DmNvbXBhc3MtYWN0aXZlC2NvbXBhc3MtZG90B2NvbXBhc3MPY29waWxvdC1ibG9ja2VkDWNvcGlsb3QtZXJyb3ITY29waWxvdC1pbi1wcm9ncmVzcw1jb3BpbG90LWxhcmdlFWNvcGlsb3Qtbm90LWNvbm5lY3RlZA5jb3BpbG90LXNub296ZQ9jb3BpbG90LXN1Y2Nlc3MTY29waWxvdC11bmF2YWlsYWJsZRVjb3BpbG90LXdhcm5pbmctbGFyZ2UPY29waWxvdC13YXJuaW5nB2NvcGlsb3QEY29weQhjb3ZlcmFnZQtjcmVkaXQtY2FyZAZjdXJzb3IEZGFzaAlkYXNoYm9hcmQIZGF0YWJhc2UJZGVidWctYWxsD2RlYnVnLWFsdC1zbWFsbAlkZWJ1Zy1hbHQnZGVidWctYnJlYWtwb2ludC1jb25kaXRpb25hbC11bnZlcmlmaWVkHGRlYnVnLWJyZWFrcG9pbnQtY29uZGl0aW9uYWwgZGVidWctYnJlYWtwb2ludC1kYXRhLXVudmVyaWZpZWQVZGVidWctYnJlYWtwb2ludC1kYXRhJGRlYnVnLWJyZWFrcG9pbnQtZnVuY3Rpb24tdW52ZXJpZmllZBlkZWJ1Zy1icmVha3BvaW50LWZ1bmN0aW9uH2RlYnVnLWJyZWFrcG9pbnQtbG9nLXVudmVyaWZpZWQUZGVidWctYnJlYWtwb2ludC1sb2ccZGVidWctYnJlYWtwb2ludC11bnN1cHBvcnRlZA9kZWJ1Zy1jb25uZWN0ZWQNZGVidWctY29uc29sZRRkZWJ1Zy1jb250aW51ZS1zbWFsbA5kZWJ1Zy1jb3ZlcmFnZRBkZWJ1Zy1kaXNjb25uZWN0EmRlYnVnLWxpbmUtYnktbGluZQtkZWJ1Zy1wYXVzZQtkZWJ1Zy1yZXJ1bhNkZWJ1Zy1yZXN0YXJ0LWZyYW1lDWRlYnVnLXJlc3RhcnQWZGVidWctcmV2ZXJzZS1jb250aW51ZRdkZWJ1Zy1zdGFja2ZyYW1lLWFjdGl2ZRBkZWJ1Zy1zdGFja2ZyYW1lC2RlYnVnLXN0YXJ0D2RlYnVnLXN0ZXAtYmFjaw9kZWJ1Zy1zdGVwLWludG8OZGVidWctc3RlcC1vdXQPZGVidWctc3RlcC1vdmVyCmRlYnVnLXN0b3AFZGVidWcQZGVza3RvcC1kb3dubG9hZBNkZXZpY2UtY2FtZXJhLXZpZGVvDWRldmljZS1jYW1lcmENZGV2aWNlLW1vYmlsZQpkaWZmLWFkZGVkDGRpZmYtaWdub3JlZA1kaWZmLW1vZGlmaWVkDWRpZmYtbXVsdGlwbGUMZGlmZi1yZW1vdmVkDGRpZmYtcmVuYW1lZAtkaWZmLXNpbmdsZQRkaWZmB2Rpc2NhcmQJZWRpdC1jb2RlDGVkaXQtc2Vzc2lvbgxlZGl0LXNwYXJrbGUEZWRpdA1lZGl0b3ItbGF5b3V0CGVsbGlwc2lzDGVtcHR5LXdpbmRvdwZlcmFzZXILZXJyb3Itc21hbGwFZXJyb3IHZXhjbHVkZQpleHBhbmQtYWxsBmV4cG9ydBBleHRlbnNpb25zLWxhcmdlCmV4dGVuc2lvbnMKZXllLWNsb3NlZANleWUIZmVlZGJhY2sLZmlsZS1iaW5hcnkJZmlsZS1jb2RlCmZpbGUtbWVkaWEIZmlsZS1wZGYOZmlsZS1zdWJtb2R1bGUWZmlsZS1zeW1saW5rLWRpcmVjdG9yeRFmaWxlLXN5bWxpbmstZmlsZQlmaWxlLXRleHQIZmlsZS16aXAEZmlsZQVmaWxlcw1maWx0ZXItZmlsbGVkBmZpbHRlcgRmbGFnBWZsYW1lCWZvbGQtZG93bgdmb2xkLXVwBGZvbGQNZm9sZGVyLWFjdGl2ZQ5mb2xkZXItbGlicmFyeQ1mb2xkZXItb3BlbmVkBmZvbGRlcgRnYW1lBGdlYXIEZ2lmdAtnaXN0LXNlY3JldARnaXN0EmdpdC1icmFuY2gtY2hhbmdlcxRnaXQtYnJhbmNoLWNvbmZsaWN0cxlnaXQtYnJhbmNoLXN0YWdlZC1jaGFuZ2VzCmdpdC1icmFuY2gKZ2l0LWNvbW1pdAtnaXQtY29tcGFyZQlnaXQtZmV0Y2gIZ2l0LWxlbnMJZ2l0LW1lcmdlF2dpdC1wdWxsLXJlcXVlc3QtY2xvc2VkF2dpdC1wdWxsLXJlcXVlc3QtY3JlYXRlFWdpdC1wdWxsLXJlcXVlc3QtZG9uZRZnaXQtcHVsbC1yZXF1ZXN0LWRyYWZ0HmdpdC1wdWxsLXJlcXVlc3QtZ28tdG8tY2hhbmdlcxxnaXQtcHVsbC1yZXF1ZXN0LW5ldy1jaGFuZ2VzEGdpdC1wdWxsLXJlcXVlc3QPZ2l0LXN0YXNoLWFwcGx5DWdpdC1zdGFzaC1wb3AJZ2l0LXN0YXNoDWdpdGh1Yi1hY3Rpb24KZ2l0aHViLWFsdA9naXRodWItaW52ZXJ0ZWQOZ2l0aHViLXByb2plY3QGZ2l0aHViBWdsb2JlFWdvLXRvLWVkaXRpbmctc2Vzc2lvbgpnby10by1maWxlDGdvLXRvLXNlYXJjaAdncmFiYmVyCmdyYXBoLWxlZnQKZ3JhcGgtbGluZQ1ncmFwaC1zY2F0dGVyBWdyYXBoB2dyaXBwZXIRZ3JvdXAtYnktcmVmLXR5cGUMaGVhcnQtZmlsbGVkBWhlYXJ0B2hpc3RvcnkEaG9tZQ9ob3Jpem9udGFsLXJ1bGUFaHVib3QFaW5ib3gGaW5kZW50CmluZGV4LXplcm8EaW5mbwZpbnNlcnQHaW5zcGVjdAtpc3N1ZS1kcmFmdA5pc3N1ZS1yZW9wZW5lZAZpc3N1ZXMGaXRhbGljBmplcnNleQRqc29uDmtlYmFiLXZlcnRpY2FsA2tleRJrZXlib2FyZC10YWItYWJvdmUSa2V5Ym9hcmQtdGFiLWJlbG93DGtleWJvYXJkLXRhYgNsYXcNbGF5ZXJzLWFjdGl2ZQpsYXllcnMtZG90BmxheWVycxdsYXlvdXQtYWN0aXZpdHliYXItbGVmdBhsYXlvdXQtYWN0aXZpdHliYXItcmlnaHQPbGF5b3V0LWNlbnRlcmVkDmxheW91dC1tZW51YmFyE2xheW91dC1wYW5lbC1jZW50ZXIRbGF5b3V0LXBhbmVsLWRvY2sUbGF5b3V0LXBhbmVsLWp1c3RpZnkRbGF5b3V0LXBhbmVsLWxlZnQQbGF5b3V0LXBhbmVsLW9mZhJsYXlvdXQtcGFuZWwtcmlnaHQMbGF5b3V0LXBhbmVsGGxheW91dC1zaWRlYmFyLWxlZnQtZG9jaxdsYXlvdXQtc2lkZWJhci1sZWZ0LW9mZhNsYXlvdXQtc2lkZWJhci1sZWZ0GWxheW91dC1zaWRlYmFyLXJpZ2h0LWRvY2sYbGF5b3V0LXNpZGViYXItcmlnaHQtb2ZmFGxheW91dC1zaWRlYmFyLXJpZ2h0EGxheW91dC1zdGF0dXNiYXIGbGF5b3V0B2xpYnJhcnkRbGlnaHRidWxiLWF1dG9maXgPbGlnaHRidWxiLWVtcHR5EWxpZ2h0YnVsYi1zcGFya2xlCWxpZ2h0YnVsYg1saW5rLWV4dGVybmFsBGxpbmsJbGlzdC1mbGF0DGxpc3Qtb3JkZXJlZA5saXN0LXNlbGVjdGlvbglsaXN0LXRyZWUObGlzdC11bm9yZGVyZWQKbGl2ZS1zaGFyZQdsb2FkaW5nCGxvY2F0aW9uCmxvY2stc21hbGwEbG9jawZtYWduZXQJbWFpbC1yZWFkBG1haWwKbWFwLWZpbGxlZBNtYXAtdmVydGljYWwtZmlsbGVkDG1hcC12ZXJ0aWNhbANtYXAIbWFya2Rvd24DbWNwCW1lZ2FwaG9uZQdtZW50aW9uBG1lbnUKbWVyZ2UtaW50bwVtZXJnZQptaWMtZmlsbGVkA21pYwltaWxlc3RvbmUGbWlycm9yDG1vcnRhci1ib2FyZARtb3ZlEG11bHRpcGxlLXdpbmRvd3MFbXVzaWMEbXV0ZQ5uZXctY29sbGVjdGlvbghuZXctZmlsZQpuZXctZm9sZGVyB25ld2xpbmUKbm8tbmV3bGluZQRub3RlEW5vdGVib29rLXRlbXBsYXRlCG5vdGVib29rCG9jdG9mYWNlD29wZW4taW4tcHJvZHVjdAxvcGVuLXByZXZpZXcMb3JnYW5pemF0aW9uBm91dHB1dAdwYWNrYWdlCHBhaW50Y2FuC3Bhc3MtZmlsbGVkBHBhc3MKcGVyY2VudGFnZQpwZXJzb24tYWRkBnBlcnNvbgVwaWFubwlwaWUtY2hhcnQDcGluDHBpbm5lZC1kaXJ0eQZwaW5uZWQLcGxheS1jaXJjbGUEcGx1Zw1wcmVzZXJ2ZS1jYXNlB3ByZXZpZXcQcHJpbWl0aXZlLXNxdWFyZQdwcm9qZWN0BXB1bHNlBnB5dGhvbghxdWVzdGlvbgVxdW90ZQZxdW90ZXMLcmFkaW8tdG93ZXIJcmVhY3Rpb25zC3JlY29yZC1rZXlzDHJlY29yZC1zbWFsbAZyZWNvcmQEcmVkbwpyZWZlcmVuY2VzB3JlZnJlc2gFcmVnZXgPcmVtb3RlLWV4cGxvcmVyBnJlbW90ZQZyZW1vdmUGcmVuYW1lC3JlcGxhY2UtYWxsB3JlcGxhY2UFcmVwbHkKcmVwby1jbG9uZQpyZXBvLWZldGNoD3JlcG8tZm9yY2UtcHVzaAtyZXBvLWZvcmtlZAtyZXBvLXBpbm5lZAlyZXBvLXB1bGwJcmVwby1wdXNoDXJlcG8tc2VsZWN0ZWQEcmVwbwZyZXBvcnQFcm9ib3QGcm9ja2V0EnJvb3QtZm9sZGVyLW9wZW5lZAtyb290LWZvbGRlcgNyc3MEcnVieQlydW4tYWJvdmUQcnVuLWFsbC1jb3ZlcmFnZQdydW4tYWxsCXJ1bi1iZWxvdwxydW4tY292ZXJhZ2UKcnVuLWVycm9ycw1ydW4td2l0aC1kZXBzCHNhdmUtYWxsB3NhdmUtYXMEc2F2ZQtzY3JlZW4tZnVsbA1zY3JlZW4tbm9ybWFsDHNlYXJjaC1mdXp6eQxzZWFyY2gtbGFyZ2UOc2VhcmNoLXNwYXJrbGULc2VhcmNoLXN0b3AGc2VhcmNoFHNlbmQtdG8tcmVtb3RlLWFnZW50BHNlbmQSc2VydmVyLWVudmlyb25tZW50DnNlcnZlci1wcm9jZXNzBnNlcnZlcg1zZXR0aW5ncy1nZWFyCHNldHRpbmdzBXNoYXJlBnNoaWVsZAdzaWduLWluCHNpZ24tb3V0BHNraXAGc21pbGV5BXNuYWtlD3NvcnQtcHJlY2VkZW5jZQ5zcGFya2xlLWZpbGxlZAdzcGFya2xlEHNwbGl0LWhvcml6b250YWwOc3BsaXQtdmVydGljYWwIc3F1aXJyZWwKc3Rhci1lbXB0eQlzdGFyLWZ1bGwJc3Rhci1oYWxmC3N0b3AtY2lyY2xlDXN0cmlrZXRocm91Z2gNc3Vycm91bmQtd2l0aAxzeW1ib2wtYXJyYXkOc3ltYm9sLWJvb2xlYW4Mc3ltYm9sLWNsYXNzDHN5bWJvbC1jb2xvcg9zeW1ib2wtY29uc3RhbnQSc3ltYm9sLWVudW0tbWVtYmVyC3N5bWJvbC1lbnVtDHN5bWJvbC1ldmVudAxzeW1ib2wtZmllbGQQc3ltYm9sLWludGVyZmFjZQpzeW1ib2wta2V5DnN5bWJvbC1rZXl3b3JkE3N5bWJvbC1tZXRob2QtYXJyb3cNc3ltYm9sLW1ldGhvZAtzeW1ib2wtbWlzYw5zeW1ib2wtbnVtZXJpYw9zeW1ib2wtb3BlcmF0b3IQc3ltYm9sLXBhcmFtZXRlcg9zeW1ib2wtcHJvcGVydHkMc3ltYm9sLXJ1bGVyDnN5bWJvbC1zbmlwcGV0EHN5bWJvbC1zdHJ1Y3R1cmUPc3ltYm9sLXZhcmlhYmxlDHN5bmMtaWdub3JlZARzeW5jBXRhYmxlA3RhZwZ0YXJnZXQIdGFza2xpc3QJdGVsZXNjb3BlDXRlcm1pbmFsLWJhc2gMdGVybWluYWwtY21kD3Rlcm1pbmFsLWRlYmlhbhF0ZXJtaW5hbC1naXQtYmFzaA50ZXJtaW5hbC1saW51eBN0ZXJtaW5hbC1wb3dlcnNoZWxsDXRlcm1pbmFsLXRtdXgPdGVybWluYWwtdWJ1bnR1CHRlcm1pbmFsCXRleHQtc2l6ZQh0aGlua2luZwp0aHJlZS1iYXJzEXRodW1ic2Rvd24tZmlsbGVkCnRodW1ic2Rvd24PdGh1bWJzdXAtZmlsbGVkCHRodW1ic3VwBXRvb2xzBXRyYXNoDXRyaWFuZ2xlLWRvd24NdHJpYW5nbGUtbGVmdA50cmlhbmdsZS1yaWdodAt0cmlhbmdsZS11cAd0d2l0dGVyEnR5cGUtaGllcmFyY2h5LXN1YhR0eXBlLWhpZXJhcmNoeS1zdXBlcg50eXBlLWhpZXJhcmNoeQZ1bmZvbGQTdW5ncm91cC1ieS1yZWYtdHlwZQZ1bmxvY2sGdW5tdXRlCnVudmVyaWZpZWQOdmFyaWFibGUtZ3JvdXAPdmVyaWZpZWQtZmlsbGVkCHZlcmlmaWVkCXZtLWFjdGl2ZQp2bS1jb25uZWN0CnZtLW91dGxpbmUKdm0tcGVuZGluZwp2bS1ydW5uaW5nAnZtAnZyD3ZzY29kZS1pbnNpZGVycwZ2c2NvZGUEd2FuZAd3YXJuaW5nBXdhdGNoCndoaXRlc3BhY2UKd2hvbGUtd29yZA13aW5kb3ctYWN0aXZlCXdvcmQtd3JhcBF3b3Jrc3BhY2UtdHJ1c3RlZBF3b3Jrc3BhY2UtdW5rbm93bhN3b3Jrc3BhY2UtdW50cnVzdGVkB3pvb20taW4Iem9vbS1vdXQAAA==) format("truetype");
-}
-.codicon[class*=codicon-] {
-  font: normal normal normal 16px/1 codicon;
-  display: inline-block;
-  text-decoration: none;
-  text-rendering: auto;
-  text-align: center;
-  text-transform: none;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  user-select: none;
-  -webkit-user-select: none;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/codicons/codicon/codicon-modifiers.css */
-.codicon-wrench-subaction {
-  opacity: 0.5;
-}
-@keyframes codicon-spin {
-  100% {
-    transform: rotate(360deg);
-  }
-}
-.codicon-sync.codicon-modifier-spin,
-.codicon-loading.codicon-modifier-spin,
-.codicon-gear.codicon-modifier-spin,
-.codicon-notebook-state-executing.codicon-modifier-spin {
-  animation: codicon-spin 1.5s steps(30) infinite;
-}
-.codicon-modifier-disabled {
-  opacity: 0.4;
-}
-.codicon-loading,
-.codicon-tree-item-loading::before {
-  animation-duration: 1s !important;
-  animation-timing-function: cubic-bezier(0.53, 0.21, 0.29, 0.67) !important;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.css */
-.monaco-editor .codicon.codicon-symbol-array,
-.monaco-workbench .codicon.codicon-symbol-array {
-  color: var(--vscode-symbolIcon-arrayForeground);
-}
-.monaco-editor .codicon.codicon-symbol-boolean,
-.monaco-workbench .codicon.codicon-symbol-boolean {
-  color: var(--vscode-symbolIcon-booleanForeground);
-}
-.monaco-editor .codicon.codicon-symbol-class,
-.monaco-workbench .codicon.codicon-symbol-class {
-  color: var(--vscode-symbolIcon-classForeground);
-}
-.monaco-editor .codicon.codicon-symbol-method,
-.monaco-workbench .codicon.codicon-symbol-method {
-  color: var(--vscode-symbolIcon-methodForeground);
-}
-.monaco-editor .codicon.codicon-symbol-color,
-.monaco-workbench .codicon.codicon-symbol-color {
-  color: var(--vscode-symbolIcon-colorForeground);
-}
-.monaco-editor .codicon.codicon-symbol-constant,
-.monaco-workbench .codicon.codicon-symbol-constant {
-  color: var(--vscode-symbolIcon-constantForeground);
-}
-.monaco-editor .codicon.codicon-symbol-constructor,
-.monaco-workbench .codicon.codicon-symbol-constructor {
-  color: var(--vscode-symbolIcon-constructorForeground);
-}
-.monaco-editor .codicon.codicon-symbol-value,
-.monaco-workbench .codicon.codicon-symbol-value,
-.monaco-editor .codicon.codicon-symbol-enum,
-.monaco-workbench .codicon.codicon-symbol-enum {
-  color: var(--vscode-symbolIcon-enumeratorForeground);
-}
-.monaco-editor .codicon.codicon-symbol-enum-member,
-.monaco-workbench .codicon.codicon-symbol-enum-member {
-  color: var(--vscode-symbolIcon-enumeratorMemberForeground);
-}
-.monaco-editor .codicon.codicon-symbol-event,
-.monaco-workbench .codicon.codicon-symbol-event {
-  color: var(--vscode-symbolIcon-eventForeground);
-}
-.monaco-editor .codicon.codicon-symbol-field,
-.monaco-workbench .codicon.codicon-symbol-field {
-  color: var(--vscode-symbolIcon-fieldForeground);
-}
-.monaco-editor .codicon.codicon-symbol-file,
-.monaco-workbench .codicon.codicon-symbol-file {
-  color: var(--vscode-symbolIcon-fileForeground);
-}
-.monaco-editor .codicon.codicon-symbol-folder,
-.monaco-workbench .codicon.codicon-symbol-folder {
-  color: var(--vscode-symbolIcon-folderForeground);
-}
-.monaco-editor .codicon.codicon-symbol-function,
-.monaco-workbench .codicon.codicon-symbol-function {
-  color: var(--vscode-symbolIcon-functionForeground);
-}
-.monaco-editor .codicon.codicon-symbol-interface,
-.monaco-workbench .codicon.codicon-symbol-interface {
-  color: var(--vscode-symbolIcon-interfaceForeground);
-}
-.monaco-editor .codicon.codicon-symbol-key,
-.monaco-workbench .codicon.codicon-symbol-key {
-  color: var(--vscode-symbolIcon-keyForeground);
-}
-.monaco-editor .codicon.codicon-symbol-keyword,
-.monaco-workbench .codicon.codicon-symbol-keyword {
-  color: var(--vscode-symbolIcon-keywordForeground);
-}
-.monaco-editor .codicon.codicon-symbol-module,
-.monaco-workbench .codicon.codicon-symbol-module {
-  color: var(--vscode-symbolIcon-moduleForeground);
-}
-.monaco-editor .codicon.codicon-symbol-namespace,
-.monaco-workbench .codicon.codicon-symbol-namespace {
-  color: var(--vscode-symbolIcon-namespaceForeground);
-}
-.monaco-editor .codicon.codicon-symbol-null,
-.monaco-workbench .codicon.codicon-symbol-null {
-  color: var(--vscode-symbolIcon-nullForeground);
-}
-.monaco-editor .codicon.codicon-symbol-number,
-.monaco-workbench .codicon.codicon-symbol-number {
-  color: var(--vscode-symbolIcon-numberForeground);
-}
-.monaco-editor .codicon.codicon-symbol-object,
-.monaco-workbench .codicon.codicon-symbol-object {
-  color: var(--vscode-symbolIcon-objectForeground);
-}
-.monaco-editor .codicon.codicon-symbol-operator,
-.monaco-workbench .codicon.codicon-symbol-operator {
-  color: var(--vscode-symbolIcon-operatorForeground);
-}
-.monaco-editor .codicon.codicon-symbol-package,
-.monaco-workbench .codicon.codicon-symbol-package {
-  color: var(--vscode-symbolIcon-packageForeground);
-}
-.monaco-editor .codicon.codicon-symbol-property,
-.monaco-workbench .codicon.codicon-symbol-property {
-  color: var(--vscode-symbolIcon-propertyForeground);
-}
-.monaco-editor .codicon.codicon-symbol-reference,
-.monaco-workbench .codicon.codicon-symbol-reference {
-  color: var(--vscode-symbolIcon-referenceForeground);
-}
-.monaco-editor .codicon.codicon-symbol-snippet,
-.monaco-workbench .codicon.codicon-symbol-snippet {
-  color: var(--vscode-symbolIcon-snippetForeground);
-}
-.monaco-editor .codicon.codicon-symbol-string,
-.monaco-workbench .codicon.codicon-symbol-string {
-  color: var(--vscode-symbolIcon-stringForeground);
-}
-.monaco-editor .codicon.codicon-symbol-struct,
-.monaco-workbench .codicon.codicon-symbol-struct {
-  color: var(--vscode-symbolIcon-structForeground);
-}
-.monaco-editor .codicon.codicon-symbol-text,
-.monaco-workbench .codicon.codicon-symbol-text {
-  color: var(--vscode-symbolIcon-textForeground);
-}
-.monaco-editor .codicon.codicon-symbol-type-parameter,
-.monaco-workbench .codicon.codicon-symbol-type-parameter {
-  color: var(--vscode-symbolIcon-typeParameterForeground);
-}
-.monaco-editor .codicon.codicon-symbol-unit,
-.monaco-workbench .codicon.codicon-symbol-unit {
-  color: var(--vscode-symbolIcon-unitForeground);
-}
-.monaco-editor .codicon.codicon-symbol-variable,
-.monaco-workbench .codicon.codicon-symbol-variable {
-  color: var(--vscode-symbolIcon-variableForeground);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.css */
-.monaco-editor .lightBulbWidget {
-  display: flex;
-  align-items: center;
-  justify-content: center;
-}
-.monaco-editor .lightBulbWidget:hover {
-  cursor: pointer;
-}
-.monaco-editor .lightBulbWidget.codicon-light-bulb,
-.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle {
-  color: var(--vscode-editorLightBulb-foreground);
-}
-.monaco-editor .lightBulbWidget.codicon-lightbulb-autofix,
-.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle-autofix {
-  color: var(--vscode-editorLightBulbAutoFix-foreground, var(--vscode-editorLightBulb-foreground));
-}
-.monaco-editor .lightBulbWidget.codicon-sparkle-filled {
-  color: var(--vscode-editorLightBulbAi-foreground, var(--vscode-icon-foreground));
-}
-.monaco-editor .lightBulbWidget:before {
-  position: relative;
-  z-index: 2;
-}
-.monaco-editor .lightBulbWidget:after {
-  position: absolute;
-  top: 0;
-  left: 0;
-  content: "";
-  display: block;
-  width: 100%;
-  height: 100%;
-  opacity: 0.3;
-  z-index: 1;
-}
-.monaco-editor .glyph-margin-widgets .cgmr[class*=codicon-gutter-lightbulb] {
-  display: block;
-  cursor: pointer;
-}
-.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb,
-.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-sparkle {
-  color: var(--vscode-editorLightBulb-foreground);
-}
-.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-auto-fix,
-.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-aifix-auto-fix {
-  color: var(--vscode-editorLightBulbAutoFix-foreground, var(--vscode-editorLightBulb-foreground));
-}
-.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-sparkle-filled {
-  color: var(--vscode-editorLightBulbAi-foreground, var(--vscode-icon-foreground));
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/codelens/browser/codelensWidget.css */
-.monaco-editor .codelens-decoration {
-  overflow: hidden;
-  display: inline-flex !important;
-  align-items: center;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-  color: var(--vscode-editorCodeLens-foreground);
-  line-height: var(--vscode-editorCodeLens-lineHeight);
-  font-size: var(--vscode-editorCodeLens-fontSize);
-  padding-right: calc(var(--vscode-editorCodeLens-fontSize)*0.5);
-  font-feature-settings: var(--vscode-editorCodeLens-fontFeatureSettings);
-  font-family: var(--vscode-editorCodeLens-fontFamily), var(--vscode-editorCodeLens-fontFamilyDefault);
-}
-.monaco-editor .codelens-decoration > span,
-.monaco-editor .codelens-decoration > a {
-  user-select: none;
-  -webkit-user-select: none;
-  white-space: nowrap;
-  vertical-align: sub;
-  display: inline-flex;
-  align-items: center;
-}
-.monaco-editor .codelens-decoration > a {
-  text-decoration: none;
-}
-.monaco-editor .codelens-decoration > a:hover {
-  cursor: pointer;
-  color: var(--vscode-editorLink-activeForeground) !important;
-}
-.monaco-editor .codelens-decoration > a:hover .codicon {
-  color: var(--vscode-editorLink-activeForeground) !important;
-}
-.monaco-editor .codelens-decoration .codicon[class*=codicon-] {
-  vertical-align: middle;
-  color: currentColor !important;
-  color: var(--vscode-editorCodeLens-foreground);
-  line-height: var(--vscode-editorCodeLens-lineHeight);
-  font-size: var(--vscode-editorCodeLens-fontSize);
-}
-.monaco-editor .codelens-decoration > a:hover .codicon::before {
-  cursor: pointer;
-}
-@keyframes fadein {
-  0% {
-    opacity: 0;
-  }
-  100% {
-    opacity: 1;
-  }
-}
-.monaco-editor .codelens-decoration.fadein {
-  animation: fadein 0.1s linear;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.css */
-.monaco-editor .inlineSuggestionsHints {
-  padding: 4px;
-  .warningMessage p {
-    margin: 0;
-  }
-}
-.monaco-editor .inlineSuggestionsHints.withBorder {
-  z-index: 39;
-  color: var(--vscode-editorHoverWidget-foreground);
-  background-color: var(--vscode-editorHoverWidget-background);
-  border: 1px solid var(--vscode-editorHoverWidget-border);
-}
-.monaco-editor .inlineSuggestionsHints a {
-  color: var(--vscode-foreground) !important;
-}
-.monaco-editor .inlineSuggestionsHints a:hover {
-  color: var(--vscode-foreground) !important;
-}
-.monaco-editor .inlineSuggestionsHints .keybinding {
-  display: flex;
-  margin-left: 4px;
-  opacity: 0.6;
-}
-.monaco-editor .inlineSuggestionsHints .keybinding .monaco-keybinding-key {
-  font-size: 8px;
-  padding: 2px 3px;
-}
-.monaco-editor .inlineSuggestionsHints .availableSuggestionCount a {
-  display: flex;
-  min-width: 19px;
-  justify-content: center;
-}
-.monaco-editor .inlineSuggestionStatusBarItemLabel {
-  margin-right: 2px;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/hover/hoverWidget.css */
-.monaco-hover {
-  cursor: default;
-  position: absolute;
-  overflow: hidden;
-  user-select: text;
-  -webkit-user-select: text;
-  box-sizing: border-box;
-  line-height: 1.5em;
-  white-space: var(--vscode-hover-whiteSpace, normal);
-}
-.monaco-hover.fade-in {
-  animation: fadein 100ms linear;
-}
-.monaco-hover.hidden {
-  display: none;
-}
-.monaco-hover a:hover:not(.disabled) {
-  cursor: pointer;
-}
-.monaco-hover .hover-contents:not(.html-hover-contents) {
-  padding: 4px 8px;
-}
-.monaco-hover .markdown-hover > .hover-contents:not(.code-hover-contents) {
-  max-width: var(--vscode-hover-maxWidth, 500px);
-  word-wrap: break-word;
-}
-.monaco-hover .markdown-hover > .hover-contents:not(.code-hover-contents) hr {
-  min-width: 100%;
-}
-.monaco-hover p,
-.monaco-hover .code,
-.monaco-hover ul,
-.monaco-hover h1,
-.monaco-hover h2,
-.monaco-hover h3,
-.monaco-hover h4,
-.monaco-hover h5,
-.monaco-hover h6 {
-  margin: 8px 0;
-}
-.monaco-hover h1,
-.monaco-hover h2,
-.monaco-hover h3,
-.monaco-hover h4,
-.monaco-hover h5,
-.monaco-hover h6 {
-  line-height: 1.1;
-}
-.monaco-hover code {
-  font-family: var(--monaco-monospace-font);
-}
-.monaco-hover hr {
-  box-sizing: border-box;
-  border-left: 0px;
-  border-right: 0px;
-  margin-top: 4px;
-  margin-bottom: -4px;
-  margin-left: -8px;
-  margin-right: -8px;
-  height: 1px;
-}
-.monaco-hover p:first-child,
-.monaco-hover .code:first-child,
-.monaco-hover ul:first-child {
-  margin-top: 0;
-}
-.monaco-hover p:last-child,
-.monaco-hover .code:last-child,
-.monaco-hover ul:last-child {
-  margin-bottom: 0;
-}
-.monaco-hover ul {
-  padding-left: 20px;
-}
-.monaco-hover ol {
-  padding-left: 20px;
-}
-.monaco-hover li > p {
-  margin-bottom: 0;
-}
-.monaco-hover li > ul {
-  margin-top: 0;
-}
-.monaco-hover code {
-  border-radius: 3px;
-  padding: 0 0.4em;
-}
-.monaco-hover .monaco-tokenized-source {
-  white-space: var(--vscode-hover-sourceWhiteSpace, pre-wrap);
-}
-.monaco-hover .hover-row.status-bar {
-  font-size: 12px;
-  line-height: 22px;
-}
-.monaco-hover .hover-row.status-bar .info {
-  font-style: italic;
-  padding: 0px 8px;
-}
-.monaco-hover .hover-row.status-bar .actions {
-  display: flex;
-  padding: 0px 8px;
-  width: 100%;
-}
-.monaco-hover .hover-row.status-bar .actions .action-container {
-  margin-right: 16px;
-  cursor: pointer;
-  overflow: hidden;
-  text-wrap: nowrap;
-  text-overflow: ellipsis;
-}
-.monaco-hover .hover-row.status-bar .actions .action-container .action .icon {
-  padding-right: 4px;
-  vertical-align: middle;
-}
-.monaco-hover .hover-row.status-bar .actions .action-container a {
-  color: var(--vscode-textLink-foreground);
-  text-decoration: var(--text-link-decoration);
-}
-.monaco-hover .hover-row.status-bar .actions .action-container a .icon.codicon {
-  color: var(--vscode-textLink-foreground);
-}
-.monaco-hover .markdown-hover .hover-contents .codicon {
-  color: inherit;
-  font-size: inherit;
-  vertical-align: middle;
-}
-.monaco-hover .hover-contents a.code-link:hover,
-.monaco-hover .hover-contents a.code-link {
-  color: inherit;
-}
-.monaco-hover .hover-contents a.code-link:before {
-  content: "(";
-}
-.monaco-hover .hover-contents a.code-link:after {
-  content: ")";
-}
-.monaco-hover .hover-contents a.code-link > span {
-  text-decoration: underline;
-  border-bottom: 1px solid transparent;
-  text-underline-position: under;
-  color: var(--vscode-textLink-foreground);
-}
-.monaco-hover .hover-contents a.code-link > span:hover {
-  color: var(--vscode-textLink-activeForeground);
-}
-.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) p:last-child [style*=background-color] {
-  margin-bottom: 4px;
-  display: inline-block;
-}
-.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span.codicon {
-  margin-bottom: 2px;
-}
-.monaco-hover-content .action-container a {
-  -webkit-user-select: none;
-  user-select: none;
-}
-.monaco-hover-content .action-container.disabled {
-  pointer-events: none;
-  opacity: 0.4;
-  cursor: default;
-}
-.monaco-hover .action-container,
-.monaco-hover .action,
-.monaco-hover button,
-.monaco-hover .monaco-button,
-.monaco-hover .monaco-text-button,
-.monaco-hover [role=button] {
-  -webkit-user-select: none;
-  user-select: none;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/toggle/toggle.css */
-.monaco-custom-toggle {
-  margin-left: 2px;
-  float: left;
-  cursor: pointer;
-  overflow: hidden;
-  width: 20px;
-  height: 20px;
-  border-radius: 3px;
-  border: 1px solid transparent;
-  padding: 1px;
-  box-sizing: border-box;
-  user-select: none;
-  -webkit-user-select: none;
-}
-.monaco-custom-toggle:hover {
-  background-color: var(--vscode-inputOption-hoverBackground);
-}
-.hc-black .monaco-custom-toggle:hover,
-.hc-light .monaco-custom-toggle:hover {
-  border: 1px dashed var(--vscode-focusBorder);
-}
-.hc-black .monaco-custom-toggle,
-.hc-light .monaco-custom-toggle {
-  background: none;
-}
-.hc-black .monaco-custom-toggle:hover,
-.hc-light .monaco-custom-toggle:hover {
-  background: none;
-}
-.monaco-custom-toggle.monaco-checkbox {
-  height: 18px;
-  width: 18px;
-  border: 1px solid transparent;
-  border-radius: 3px;
-  margin-right: 9px;
-  margin-left: 0px;
-  padding: 0px;
-  opacity: 1;
-  background-size: 16px !important;
-}
-.monaco-action-bar .checkbox-action-item {
-  display: flex;
-  align-items: center;
-  border-radius: 2px;
-  padding-right: 2px;
-}
-.monaco-action-bar .checkbox-action-item:hover {
-  background-color: var(--vscode-toolbar-hoverBackground);
-}
-.monaco-action-bar .checkbox-action-item > .monaco-custom-toggle.monaco-checkbox {
-  margin-right: 4px;
-}
-.monaco-action-bar .checkbox-action-item > .checkbox-label {
-  font-size: 12px;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/find/browser/findWidget.css */
-.monaco-editor .find-widget {
-  position: absolute;
-  z-index: 35;
-  height: 33px;
-  overflow: hidden;
-  line-height: 19px;
-  transition: transform 200ms linear;
-  padding: 0 4px;
-  box-sizing: border-box;
-  transform: translateY(calc(-100% - 10px));
-  box-shadow: 0 0 8px 2px var(--vscode-widget-shadow);
-  color: var(--vscode-editorWidget-foreground);
-  border-left: 1px solid var(--vscode-widget-border);
-  border-right: 1px solid var(--vscode-widget-border);
-  border-bottom: 1px solid var(--vscode-widget-border);
-  border-bottom-left-radius: 4px;
-  border-bottom-right-radius: 4px;
-  background-color: var(--vscode-editorWidget-background);
-}
-.monaco-reduce-motion .monaco-editor .find-widget {
-  transition: transform 0ms linear;
-}
-.monaco-editor .find-widget textarea {
-  margin: 0px;
-}
-.monaco-editor .find-widget.hiddenEditor {
-  display: none;
-}
-.monaco-editor .find-widget.replaceToggled > .replace-part {
-  display: flex;
-}
-.monaco-editor .find-widget.visible {
-  transform: translateY(0);
-}
-.monaco-editor .find-widget .monaco-inputbox.synthetic-focus {
-  outline: 1px solid -webkit-focus-ring-color;
-  outline-offset: -1px;
-  outline-color: var(--vscode-focusBorder);
-}
-.monaco-editor .find-widget .monaco-inputbox .input {
-  background-color: transparent;
-  min-height: 0;
-}
-.monaco-editor .find-widget .monaco-findInput .input {
-  font-size: 13px;
-}
-.monaco-editor .find-widget > .find-part,
-.monaco-editor .find-widget > .replace-part {
-  margin: 3px 25px 0 17px;
-  font-size: 12px;
-  display: flex;
-}
-.monaco-editor .find-widget > .find-part .monaco-inputbox,
-.monaco-editor .find-widget > .replace-part .monaco-inputbox {
-  min-height: 25px;
-}
-.monaco-editor .find-widget > .replace-part .monaco-inputbox > .ibwrapper > .mirror {
-  padding-right: 22px;
-}
-.monaco-editor .find-widget > .find-part .monaco-inputbox > .ibwrapper > .input,
-.monaco-editor .find-widget > .find-part .monaco-inputbox > .ibwrapper > .mirror,
-.monaco-editor .find-widget > .replace-part .monaco-inputbox > .ibwrapper > .input,
-.monaco-editor .find-widget > .replace-part .monaco-inputbox > .ibwrapper > .mirror {
-  padding-top: 2px;
-  padding-bottom: 2px;
-}
-.monaco-editor .find-widget > .find-part .find-actions {
-  height: 25px;
-  display: flex;
-  align-items: center;
-}
-.monaco-editor .find-widget > .replace-part .replace-actions {
-  height: 25px;
-  display: flex;
-  align-items: center;
-}
-.monaco-editor .find-widget .monaco-findInput {
-  vertical-align: middle;
-  display: flex;
-  flex: 1;
-}
-.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element {
-  width: 100%;
-}
-.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical {
-  opacity: 0;
-}
-.monaco-editor .find-widget .matchesCount {
-  display: flex;
-  flex: initial;
-  margin: 0 0 0 3px;
-  padding: 2px 0 0 2px;
-  height: 25px;
-  vertical-align: middle;
-  box-sizing: border-box;
-  text-align: center;
-  line-height: 23px;
-}
-.monaco-editor .find-widget .button {
-  width: 16px;
-  height: 16px;
-  padding: 3px;
-  border-radius: 5px;
-  display: flex;
-  flex: initial;
-  margin-left: 3px;
-  background-position: center center;
-  background-repeat: no-repeat;
-  cursor: pointer;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-}
-.monaco-editor .find-widget .codicon-find-selection {
-  width: 22px;
-  height: 22px;
-  padding: 3px;
-  border-radius: 5px;
-}
-.monaco-editor .find-widget .button.left {
-  margin-left: 0;
-  margin-right: 3px;
-}
-.monaco-editor .find-widget .button.wide {
-  width: auto;
-  padding: 1px 6px;
-  top: -1px;
-}
-.monaco-editor .find-widget .button.toggle {
-  position: absolute;
-  top: 0;
-  left: 3px;
-  width: 18px;
-  height: 100%;
-  border-radius: 0;
-  box-sizing: border-box;
-}
-.monaco-editor .find-widget .button.toggle.disabled {
-  display: none;
-}
-.monaco-editor .find-widget .disabled {
-  color: var(--vscode-disabledForeground);
-  cursor: default;
-}
-.monaco-editor .find-widget > .replace-part {
-  display: none;
-}
-.monaco-editor .find-widget > .replace-part > .monaco-findInput {
-  position: relative;
-  display: flex;
-  vertical-align: middle;
-  flex: auto;
-  flex-grow: 0;
-  flex-shrink: 0;
-}
-.monaco-editor .find-widget > .replace-part > .monaco-findInput > .controls {
-  position: absolute;
-  top: 3px;
-  right: 2px;
-}
-.monaco-editor .find-widget.reduced-find-widget .matchesCount {
-  display: none;
-}
-.monaco-editor .find-widget.narrow-find-widget {
-  max-width: 257px !important;
-}
-.monaco-editor .find-widget.collapsed-find-widget {
-  max-width: 170px !important;
-}
-.monaco-editor .find-widget.collapsed-find-widget .button.previous,
-.monaco-editor .find-widget.collapsed-find-widget .button.next,
-.monaco-editor .find-widget.collapsed-find-widget .button.replace,
-.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,
-.monaco-editor .find-widget.collapsed-find-widget > .find-part .monaco-findInput .controls {
-  display: none;
-}
-.monaco-editor .find-widget.no-results .matchesCount {
-  color: var(--vscode-errorForeground);
-}
-.monaco-editor .findMatch {
-  animation-duration: 0;
-  animation-name: inherit !important;
-  background-color: var(--vscode-editor-findMatchHighlightBackground);
-}
-.monaco-editor .currentFindMatch {
-  background-color: var(--vscode-editor-findMatchBackground);
-  border: 2px solid var(--vscode-editor-findMatchBorder);
-  padding: 1px;
-  box-sizing: border-box;
-}
-.monaco-editor .findScope {
-  background-color: var(--vscode-editor-findRangeHighlightBackground);
-}
-.monaco-editor .find-widget .monaco-sash {
-  left: 0 !important;
-  background-color: var(--vscode-editorWidget-resizeBorder, var(--vscode-editorWidget-border));
-}
-.monaco-editor.hc-black .find-widget .button:before {
-  position: relative;
-  top: 1px;
-  left: 2px;
-}
-.monaco-editor .find-widget .button:not(.disabled):hover,
-.monaco-editor .find-widget .codicon-find-selection:hover {
-  background-color: var(--vscode-toolbar-hoverBackground) !important;
-}
-.monaco-editor.findMatch {
-  background-color: var(--vscode-editor-findMatchHighlightBackground);
-}
-.monaco-editor.currentFindMatch {
-  background-color: var(--vscode-editor-findMatchBackground);
-}
-.monaco-editor.findScope {
-  background-color: var(--vscode-editor-findRangeHighlightBackground);
-}
-.monaco-editor.findMatch {
-  background-color: var(--vscode-editorWidget-background);
-}
-.monaco-editor .find-widget > .button.codicon-widget-close {
-  position: absolute;
-  top: 5px;
-  right: 4px;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/inputbox/inputBox.css */
-.monaco-inputbox {
-  position: relative;
-  display: block;
-  padding: 0;
-  box-sizing: border-box;
-  border-radius: 2px;
-  font-size: inherit;
-}
-.monaco-inputbox > .ibwrapper > .input,
-.monaco-inputbox > .ibwrapper > .mirror {
-  padding: 4px 6px;
-}
-.monaco-inputbox > .ibwrapper {
-  position: relative;
-  width: 100%;
-}
-.monaco-inputbox > .ibwrapper > .input {
-  display: inline-block;
-  box-sizing: border-box;
-  width: 100%;
-  height: 100%;
-  line-height: inherit;
-  border: none;
-  font-family: inherit;
-  font-size: inherit;
-  resize: none;
-  color: inherit;
-}
-.monaco-inputbox > .ibwrapper > input {
-  text-overflow: ellipsis;
-}
-.monaco-inputbox > .ibwrapper > textarea.input {
-  display: block;
-  scrollbar-width: none;
-  outline: none;
-}
-.monaco-inputbox > .ibwrapper > textarea.input::-webkit-scrollbar {
-  display: none;
-}
-.monaco-inputbox > .ibwrapper > textarea.input.empty {
-  white-space: nowrap;
-}
-.monaco-inputbox > .ibwrapper > .mirror {
-  position: absolute;
-  display: inline-block;
-  width: 100%;
-  top: 0;
-  left: 0;
-  box-sizing: border-box;
-  white-space: pre-wrap;
-  visibility: hidden;
-  word-wrap: break-word;
-}
-.monaco-inputbox-container {
-  text-align: right;
-}
-.monaco-inputbox-container .monaco-inputbox-message {
-  display: inline-block;
-  overflow: hidden;
-  text-align: left;
-  width: 100%;
-  box-sizing: border-box;
-  padding: 0.4em;
-  font-size: 12px;
-  line-height: 17px;
-  margin-top: -1px;
-  word-wrap: break-word;
-}
-.monaco-inputbox .monaco-action-bar {
-  position: absolute;
-  right: 2px;
-  top: 4px;
-}
-.monaco-inputbox .monaco-action-bar .action-item {
-  margin-left: 2px;
-}
-.monaco-inputbox .monaco-action-bar .action-item .codicon {
-  background-repeat: no-repeat;
-  width: 16px;
-  height: 16px;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/findinput/findInput.css */
-.monaco-findInput {
-  position: relative;
-}
-.monaco-findInput .monaco-inputbox {
-  font-size: 13px;
-  width: 100%;
-}
-.monaco-findInput > .controls {
-  position: absolute;
-  top: 3px;
-  right: 2px;
-}
-.vs .monaco-findInput.disabled {
-  background-color: #E1E1E1;
-}
-.vs-dark .monaco-findInput.disabled {
-  background-color: #333;
-}
-.monaco-findInput.highlight-0 .controls,
-.hc-light .monaco-findInput.highlight-0 .controls {
-  animation: monaco-findInput-highlight-0 100ms linear 0s;
-}
-.monaco-findInput.highlight-1 .controls,
-.hc-light .monaco-findInput.highlight-1 .controls {
-  animation: monaco-findInput-highlight-1 100ms linear 0s;
-}
-.hc-black .monaco-findInput.highlight-0 .controls,
-.vs-dark .monaco-findInput.highlight-0 .controls {
-  animation: monaco-findInput-highlight-dark-0 100ms linear 0s;
-}
-.hc-black .monaco-findInput.highlight-1 .controls,
-.vs-dark .monaco-findInput.highlight-1 .controls {
-  animation: monaco-findInput-highlight-dark-1 100ms linear 0s;
-}
-@keyframes monaco-findInput-highlight-0 {
-  0% {
-    background: rgba(253, 255, 0, 0.8);
-  }
-  100% {
-    background: transparent;
-  }
-}
-@keyframes monaco-findInput-highlight-1 {
-  0% {
-    background: rgba(253, 255, 0, 0.8);
-  }
-  99% {
-    background: transparent;
-  }
-}
-@keyframes monaco-findInput-highlight-dark-0 {
-  0% {
-    background: rgba(255, 255, 255, 0.44);
-  }
-  100% {
-    background: transparent;
-  }
-}
-@keyframes monaco-findInput-highlight-dark-1 {
-  0% {
-    background: rgba(255, 255, 255, 0.44);
-  }
-  99% {
-    background: transparent;
-  }
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/browser/colorPicker.css */
-.colorpicker-widget {
-  height: 190px;
-  user-select: none;
-  -webkit-user-select: none;
-}
-.colorpicker-color-decoration,
-.hc-light .colorpicker-color-decoration {
-  border: solid 0.1em #000;
-  box-sizing: border-box;
-  margin: 0.1em 0.2em 0 0.2em;
-  width: 0.8em;
-  height: 0.8em;
-  line-height: 0.8em;
-  display: inline-block;
-  cursor: pointer;
-}
-.hc-black .colorpicker-color-decoration,
-.vs-dark .colorpicker-color-decoration {
-  border: solid 0.1em #eee;
-}
-.colorpicker-header {
-  display: flex;
-  height: 24px;
-  position: relative;
-  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);
-  background-size: 9px 9px;
-  image-rendering: pixelated;
-}
-.colorpicker-header .picked-color {
-  width: 240px;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  line-height: 24px;
-  cursor: pointer;
-  color: white;
-  flex: 1;
-  white-space: nowrap;
-  overflow: hidden;
-}
-.colorpicker-header .picked-color .picked-color-presentation {
-  white-space: nowrap;
-  margin-left: 5px;
-  margin-right: 5px;
-}
-.colorpicker-header .picked-color .codicon {
-  color: inherit;
-  font-size: 14px;
-}
-.colorpicker-header .picked-color.light {
-  color: black;
-}
-.colorpicker-header .original-color {
-  width: 74px;
-  z-index: inherit;
-  cursor: pointer;
-}
-.standalone-colorpicker {
-  color: var(--vscode-editorHoverWidget-foreground);
-  background-color: var(--vscode-editorHoverWidget-background);
-  border: 1px solid var(--vscode-editorHoverWidget-border);
-}
-.colorpicker-header.standalone-colorpicker {
-  border-bottom: none;
-}
-.colorpicker-header .close-button {
-  cursor: pointer;
-  background-color: var(--vscode-editorHoverWidget-background);
-  border-left: 1px solid var(--vscode-editorHoverWidget-border);
-}
-.colorpicker-header .close-button-inner-div {
-  width: 100%;
-  height: 100%;
-  text-align: center;
-}
-.colorpicker-header .close-button-inner-div:hover {
-  background-color: var(--vscode-toolbar-hoverBackground);
-}
-.colorpicker-header .close-icon {
-  padding: 3px;
-}
-.colorpicker-body {
-  display: flex;
-  padding: 8px;
-  position: relative;
-}
-.colorpicker-body .saturation-wrap {
-  overflow: hidden;
-  height: 150px;
-  position: relative;
-  min-width: 220px;
-  flex: 1;
-}
-.colorpicker-body .saturation-box {
-  height: 150px;
-  position: absolute;
-}
-.colorpicker-body .saturation-selection {
-  width: 9px;
-  height: 9px;
-  margin: -5px 0 0 -5px;
-  border: 1px solid rgb(255, 255, 255);
-  border-radius: 100%;
-  box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.8);
-  position: absolute;
-}
-.colorpicker-body .strip {
-  width: 25px;
-  height: 150px;
-}
-.colorpicker-body .standalone-strip {
-  width: 25px;
-  height: 122px;
-}
-.colorpicker-body .hue-strip {
-  position: relative;
-  margin-left: 8px;
-  cursor: grab;
-  background:
-    linear-gradient(
-      to bottom,
-      #ff0000 0%,
-      #ffff00 17%,
-      #00ff00 33%,
-      #00ffff 50%,
-      #0000ff 67%,
-      #ff00ff 83%,
-      #ff0000 100%);
-}
-.colorpicker-body .opacity-strip {
-  position: relative;
-  margin-left: 8px;
-  cursor: grab;
-  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);
-  background-size: 9px 9px;
-  image-rendering: pixelated;
-}
-.colorpicker-body .strip.grabbing {
-  cursor: grabbing;
-}
-.colorpicker-body .slider {
-  position: absolute;
-  top: 0;
-  left: -2px;
-  width: calc(100% + 4px);
-  height: 4px;
-  box-sizing: border-box;
-  border: 1px solid rgba(255, 255, 255, 0.71);
-  box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.85);
-}
-.colorpicker-body .strip .overlay {
-  height: 150px;
-  pointer-events: none;
-}
-.colorpicker-body .standalone-strip .standalone-overlay {
-  height: 122px;
-  pointer-events: none;
-}
-.standalone-colorpicker-body {
-  display: block;
-  border: 1px solid transparent;
-  border-bottom: 1px solid var(--vscode-editorHoverWidget-border);
-  overflow: hidden;
-}
-.colorpicker-body .insert-button {
-  position: absolute;
-  height: 20px;
-  width: 58px;
-  padding: 0px;
-  right: 8px;
-  bottom: 8px;
-  background: var(--vscode-button-background);
-  color: var(--vscode-button-foreground);
-  border-radius: 2px;
-  border: none;
-  cursor: pointer;
-}
-.colorpicker-body .insert-button:hover {
-  background: var(--vscode-button-hoverBackground);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/peekView/browser/media/peekViewWidget.css */
-.monaco-editor .peekview-widget .head {
-  box-sizing: border-box;
-  display: flex;
-  justify-content: space-between;
-  flex-wrap: nowrap;
-}
-.monaco-editor .peekview-widget .head .peekview-title {
-  display: flex;
-  align-items: baseline;
-  font-size: 13px;
-  margin-left: 20px;
-  min-width: 0;
-  text-overflow: ellipsis;
-  overflow: hidden;
-}
-.monaco-editor .peekview-widget .head .peekview-title.clickable {
-  cursor: pointer;
-}
-.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty) {
-  font-size: 0.9em;
-  margin-left: 0.5em;
-}
-.monaco-editor .peekview-widget .head .peekview-title .meta {
-  white-space: nowrap;
-  overflow: hidden;
-  text-overflow: ellipsis;
-}
-.monaco-editor .peekview-widget .head .peekview-title .dirname {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-.monaco-editor .peekview-widget .head .peekview-title .filename {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty)::before {
-  content: "-";
-  padding: 0 0.3em;
-}
-.monaco-editor .peekview-widget .head .peekview-actions {
-  flex: 1;
-  text-align: right;
-  padding-right: 2px;
-}
-.monaco-editor .peekview-widget .head .peekview-actions > .monaco-action-bar {
-  display: inline-block;
-}
-.monaco-editor .peekview-widget .head .peekview-actions > .monaco-action-bar,
-.monaco-editor .peekview-widget .head .peekview-actions > .monaco-action-bar > .actions-container {
-  height: 100%;
-}
-.monaco-editor .peekview-widget > .body {
-  border-top: 1px solid;
-  position: relative;
-}
-.monaco-editor .peekview-widget .head .peekview-title .codicon {
-  margin-right: 4px;
-  align-self: center;
-}
-.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon {
-  color: inherit !important;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/zoneWidget/browser/zoneWidget.css */
-.monaco-editor .zone-widget {
-  position: absolute;
-  z-index: 10;
-}
-.monaco-editor .zone-widget .zone-widget-container {
-  border-top-style: solid;
-  border-bottom-style: solid;
-  border-top-width: 0;
-  border-bottom-width: 0;
-  position: relative;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/splitview/splitview.css */
-.monaco-split-view2 {
-  position: relative;
-  width: 100%;
-  height: 100%;
-}
-.monaco-split-view2 > .sash-container {
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  pointer-events: none;
-}
-.monaco-split-view2 > .sash-container > .monaco-sash {
-  pointer-events: initial;
-}
-.monaco-split-view2 > .monaco-scrollable-element {
-  width: 100%;
-  height: 100%;
-}
-.monaco-split-view2 > .monaco-scrollable-element > .split-view-container {
-  width: 100%;
-  height: 100%;
-  white-space: nowrap;
-  position: relative;
-}
-.monaco-split-view2 > .monaco-scrollable-element > .split-view-container > .split-view-view {
-  white-space: initial;
-  position: absolute;
-}
-.monaco-split-view2 > .monaco-scrollable-element > .split-view-container > .split-view-view:not(.visible) {
-  display: none;
-}
-.monaco-split-view2.vertical > .monaco-scrollable-element > .split-view-container > .split-view-view {
-  width: 100%;
-}
-.monaco-split-view2.horizontal > .monaco-scrollable-element > .split-view-container > .split-view-view {
-  height: 100%;
-}
-.monaco-split-view2.separator-border > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before {
-  content: " ";
-  position: absolute;
-  top: 0;
-  left: 0;
-  z-index: 5;
-  pointer-events: none;
-  background-color: var(--separator-border);
-}
-.monaco-split-view2.separator-border.horizontal > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before {
-  height: 100%;
-  width: 1px;
-}
-.monaco-split-view2.separator-border.vertical > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before {
-  height: 1px;
-  width: 100%;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/table/table.css */
-.monaco-table {
-  display: flex;
-  flex-direction: column;
-  position: relative;
-  height: 100%;
-  width: 100%;
-  white-space: nowrap;
-  overflow: hidden;
-}
-.monaco-table > .monaco-split-view2 {
-  border-bottom: 1px solid transparent;
-}
-.monaco-table > .monaco-list {
-  flex: 1;
-}
-.monaco-table-tr {
-  display: flex;
-  height: 100%;
-}
-.monaco-table-th {
-  width: 100%;
-  height: 100%;
-  font-weight: bold;
-  overflow: hidden;
-  text-overflow: ellipsis;
-}
-.monaco-table-th,
-.monaco-table-td {
-  box-sizing: border-box;
-  flex-shrink: 0;
-  overflow: hidden;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-}
-.monaco-table > .monaco-split-view2 .monaco-sash.vertical::before {
-  content: "";
-  position: absolute;
-  left: calc(var(--vscode-sash-size) / 2);
-  width: 0;
-  border-left: 1px solid transparent;
-}
-.monaco-enable-motion .monaco-table > .monaco-split-view2,
-.monaco-enable-motion .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before {
-  transition: border-color 0.2s ease-out;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/tree/media/tree.css */
-.monaco-tl-row {
-  display: flex;
-  height: 100%;
-  align-items: center;
-  position: relative;
-}
-.monaco-tl-row.disabled {
-  cursor: default;
-}
-.monaco-tl-indent {
-  height: 100%;
-  position: absolute;
-  top: 0;
-  left: 16px;
-  pointer-events: none;
-}
-.hide-arrows .monaco-tl-indent {
-  left: 12px;
-}
-.monaco-tl-indent > .indent-guide {
-  display: inline-block;
-  box-sizing: border-box;
-  height: 100%;
-  border-left: 1px solid transparent;
-  opacity: 0;
-}
-.monaco-enable-motion .monaco-tl-indent > .indent-guide {
-  transition: opacity 0.1s linear;
-}
-.monaco-tl-twistie,
-.monaco-tl-contents {
-  height: 100%;
-}
-.monaco-tl-twistie {
-  font-size: 10px;
-  text-align: right;
-  padding-right: 6px;
-  flex-shrink: 0;
-  width: 16px;
-  display: flex !important;
-  align-items: center;
-  justify-content: center;
-  transform: translateX(3px);
-}
-.monaco-tl-contents {
-  flex: 1;
-  overflow: hidden;
-}
-.monaco-tl-twistie::before {
-  border-radius: 20px;
-}
-.monaco-tl-twistie.collapsed::before {
-  transform: rotate(-90deg);
-}
-.monaco-tl-twistie.codicon-tree-item-loading::before {
-  animation: codicon-spin 1.25s steps(30) infinite;
-}
-.monaco-tree-type-filter {
-  position: absolute;
-  top: 0;
-  right: 0;
-  display: flex;
-  padding: 3px;
-  max-width: 200px;
-  z-index: 100;
-  margin: 0 10px 0 6px;
-  border: 1px solid var(--vscode-widget-border);
-  border-bottom-left-radius: 4px;
-  border-bottom-right-radius: 4px;
-}
-.monaco-enable-motion .monaco-tree-type-filter {
-  transition: top 0.3s;
-}
-.monaco-tree-type-filter.disabled {
-  top: -40px !important;
-}
-.monaco-tree-type-filter-input {
-  flex: 1;
-}
-.monaco-tree-type-filter-input .monaco-inputbox {
-  height: 23px;
-}
-.monaco-tree-type-filter-input .monaco-inputbox > .ibwrapper > .input,
-.monaco-tree-type-filter-input .monaco-inputbox > .ibwrapper > .mirror {
-  padding: 2px 4px;
-}
-.monaco-tree-type-filter-input .monaco-findInput > .controls {
-  top: 2px;
-}
-.monaco-tree-type-filter-actionbar {
-  margin-left: 4px;
-}
-.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label {
-  padding: 2px;
-}
-.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container {
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 100%;
-  height: 0;
-  z-index: 13;
-  background-color: var(--vscode-sideBar-background);
-}
-.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row.monaco-list-row {
-  position: absolute;
-  width: 100%;
-  opacity: 1 !important;
-  overflow: hidden;
-  background-color: var(--vscode-sideBar-background);
-}
-.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover {
-  background-color: var(--vscode-list-hoverBackground) !important;
-  cursor: pointer;
-}
-.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty,
-.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty .monaco-tree-sticky-container-shadow {
-  display: none;
-}
-.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow {
-  position: absolute;
-  bottom: -3px;
-  left: 0px;
-  height: 0px;
-  width: 100%;
-}
-.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container[tabindex="0"]:focus {
-  outline: none;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.css */
-.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget {
-  border-top-width: 1px;
-  border-bottom-width: 1px;
-}
-.monaco-editor .reference-zone-widget .inline {
-  display: inline-block;
-  vertical-align: top;
-}
-.monaco-editor .reference-zone-widget .messages {
-  height: 100%;
-  width: 100%;
-  text-align: center;
-  padding: 3em 0;
-}
-.monaco-editor .reference-zone-widget .ref-tree {
-  line-height: 23px;
-  background-color: var(--vscode-peekViewResult-background);
-  color: var(--vscode-peekViewResult-lineForeground);
-}
-.monaco-editor .reference-zone-widget .ref-tree .reference {
-  text-overflow: ellipsis;
-  overflow: hidden;
-}
-.monaco-editor .reference-zone-widget .ref-tree .reference-file {
-  display: inline-flex;
-  width: 100%;
-  height: 100%;
-  color: var(--vscode-peekViewResult-fileForeground);
-}
-.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file {
-  color: inherit !important;
-}
-.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) {
-  background-color: var(--vscode-peekViewResult-selectionBackground);
-  color: var(--vscode-peekViewResult-selectionForeground) !important;
-}
-.monaco-editor .reference-zone-widget .ref-tree .reference-file .count {
-  margin-right: 12px;
-  margin-left: auto;
-}
-.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight {
-  color: var(--vscode-peekViewResult-fileForeground) !important;
-  background-color: var(--vscode-peekViewResult-matchHighlightBackground) !important;
-}
-.monaco-editor .reference-zone-widget .preview .reference-decoration {
-  background-color: var(--vscode-peekViewEditor-matchHighlightBackground);
-  border: 2px solid var(--vscode-peekViewEditor-matchHighlightBorder);
-  box-sizing: border-box;
-}
-.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,
-.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input {
-  background-color: var(--vscode-peekViewEditor-background);
-}
-.monaco-editor .reference-zone-widget .preview .monaco-editor .margin {
-  background-color: var(--vscode-peekViewEditorGutter-background);
-}
-.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,
-.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file {
-  font-weight: bold;
-}
-.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,
-.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight {
-  border: 1px dotted var(--vscode-contrastActiveBorder, transparent);
-  box-sizing: border-box;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/countBadge/countBadge.css */
-.monaco-count-badge {
-  padding: 3px 5px;
-  border-radius: 11px;
-  font-size: 11px;
-  min-width: 18px;
-  min-height: 18px;
-  line-height: 11px;
-  font-weight: normal;
-  text-align: center;
-  display: inline-block;
-  box-sizing: border-box;
-}
-.monaco-count-badge.long {
-  padding: 2px 3px;
-  border-radius: 2px;
-  min-height: auto;
-  line-height: normal;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/iconLabel/iconlabel.css */
-.monaco-icon-label {
-  display: flex;
-  overflow: hidden;
-  text-overflow: ellipsis;
-}
-.monaco-icon-label::before {
-  background-size: 16px;
-  background-position: left center;
-  background-repeat: no-repeat;
-  padding-right: 6px;
-  width: 16px;
-  height: 22px;
-  line-height: inherit !important;
-  display: inline-block;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  vertical-align: top;
-  flex-shrink: 0;
-}
-.monaco-icon-label-iconpath {
-  width: 16px;
-  height: 22px;
-  margin-right: 6px;
-  display: flex;
-}
-.monaco-icon-label-container.disabled {
-  color: var(--vscode-disabledForeground);
-}
-.monaco-icon-label > .monaco-icon-label-container {
-  min-width: 0;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  flex: 1;
-}
-.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-name-container > .label-name {
-  color: inherit;
-  white-space: pre;
-}
-.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-name-container > .label-name > .label-separator {
-  margin: 0 2px;
-  opacity: 0.5;
-}
-.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-suffix-container > .label-suffix {
-  opacity: .7;
-  white-space: pre;
-}
-.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {
-  opacity: .7;
-  margin-left: 0.5em;
-  font-size: 0.9em;
-  white-space: pre;
-}
-.monaco-icon-label.nowrap > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {
-  white-space: nowrap;
-}
-.vs .monaco-icon-label > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {
-  opacity: .95;
-}
-.monaco-icon-label.bold > .monaco-icon-label-container > .monaco-icon-name-container > .label-name,
-.monaco-icon-label.bold > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {
-  font-weight: bold;
-}
-.monaco-icon-label.italic > .monaco-icon-label-container > .monaco-icon-name-container > .label-name,
-.monaco-icon-label.italic > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {
-  font-style: italic;
-}
-.monaco-icon-label.deprecated {
-  text-decoration: line-through;
-  opacity: 0.66;
-}
-.monaco-icon-label.strikethrough > .monaco-icon-label-container > .monaco-icon-name-container > .label-name,
-.monaco-icon-label.strikethrough > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {
-  text-decoration: line-through;
-}
-.monaco-icon-label::after {
-  opacity: 0.75;
-  font-size: 90%;
-  font-weight: 600;
-  margin: auto 16px 0 5px;
-  text-align: center;
-}
-.monaco-list:focus .selected .monaco-icon-label,
-.monaco-list:focus .selected .monaco-icon-label::after {
-  color: inherit !important;
-}
-.monaco-list-row.focused.selected .label-description,
-.monaco-list-row.selected .label-description {
-  opacity: .8;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/gotoError/browser/media/gotoErrorWidget.css */
-.monaco-editor .peekview-widget .head .peekview-title .severity-icon {
-  display: inline-block;
-  vertical-align: text-top;
-  margin-right: 4px;
-}
-.monaco-editor .marker-widget {
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-.monaco-editor .marker-widget > .stale {
-  opacity: 0.6;
-  font-style: italic;
-}
-.monaco-editor .marker-widget .title {
-  display: inline-block;
-  padding-right: 5px;
-}
-.monaco-editor .marker-widget .descriptioncontainer {
-  position: absolute;
-  white-space: pre;
-  user-select: text;
-  -webkit-user-select: text;
-  padding: 8px 12px 0 20px;
-}
-.monaco-editor .marker-widget .descriptioncontainer .message {
-  display: flex;
-  flex-direction: column;
-}
-.monaco-editor .marker-widget .descriptioncontainer .message .details {
-  padding-left: 6px;
-}
-.monaco-editor .marker-widget .descriptioncontainer .message .source,
-.monaco-editor .marker-widget .descriptioncontainer .message span.code {
-  opacity: 0.6;
-}
-.monaco-editor .marker-widget .descriptioncontainer .message a.code-link {
-  opacity: 0.6;
-  color: inherit;
-}
-.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before {
-  content: "(";
-}
-.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after {
-  content: ")";
-}
-.monaco-editor .marker-widget .descriptioncontainer .message a.code-link > span {
-  text-decoration: underline;
-  border-bottom: 1px solid transparent;
-  text-underline-position: under;
-  color: var(--vscode-textLink-activeForeground);
-}
-.monaco-editor .marker-widget .descriptioncontainer .filename {
-  cursor: pointer;
-  color: var(--vscode-textLink-activeForeground);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/severityIcon/media/severityIcon.css */
-.monaco-editor .zone-widget .codicon.codicon-error,
-.markers-panel .marker-icon.error,
-.markers-panel .marker-icon .codicon.codicon-error,
-.text-search-provider-messages .providerMessage .codicon.codicon-error,
-.extensions-viewlet > .extensions .codicon.codicon-error,
-.extension-editor .codicon.codicon-error,
-.chat-attached-context-attachment .codicon.codicon-error {
-  color: var(--vscode-problemsErrorIcon-foreground);
-}
-.monaco-editor .zone-widget .codicon.codicon-warning,
-.markers-panel .marker-icon.warning,
-.markers-panel .marker-icon .codicon.codicon-warning,
-.text-search-provider-messages .providerMessage .codicon.codicon-warning,
-.extensions-viewlet > .extensions .codicon.codicon-warning,
-.extension-editor .codicon.codicon-warning,
-.preferences-editor .codicon.codicon-warning {
-  color: var(--vscode-problemsWarningIcon-foreground);
-}
-.monaco-editor .zone-widget .codicon.codicon-info,
-.markers-panel .marker-icon.info,
-.markers-panel .marker-icon .codicon.codicon-info,
-.text-search-provider-messages .providerMessage .codicon.codicon-info,
-.extensions-viewlet > .extensions .codicon.codicon-info,
-.extension-editor .codicon.codicon-info {
-  color: var(--vscode-problemsInfoIcon-foreground);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/hover.css */
-.monaco-editor .hoverHighlight {
-  background-color: var(--vscode-editor-hoverHighlightBackground);
-}
-.monaco-editor .monaco-resizable-hover {
-  border: 1px solid var(--vscode-editorHoverWidget-border);
-  border-radius: 3px;
-  box-sizing: content-box;
-}
-.monaco-editor .monaco-resizable-hover > .monaco-hover {
-  border: none;
-  border-radius: none;
-}
-.monaco-editor .monaco-hover {
-  border: 1px solid var(--vscode-editorHoverWidget-border);
-  border-radius: 3px;
-  color: var(--vscode-editorHoverWidget-foreground);
-  background-color: var(--vscode-editorHoverWidget-background);
-}
-.monaco-editor .monaco-hover a {
-  color: var(--vscode-textLink-foreground);
-}
-.monaco-editor .monaco-hover a:hover {
-  color: var(--vscode-textLink-activeForeground);
-}
-.monaco-editor .monaco-hover .hover-row {
-  display: flex;
-}
-.monaco-editor .monaco-hover .hover-row.hover-row-with-copy {
-  position: relative;
-  padding-right: 20px;
-}
-.monaco-editor .monaco-hover .hover-row .hover-row-contents {
-  min-width: 0;
-  display: flex;
-  flex-direction: column;
-}
-.monaco-editor .monaco-hover .hover-row .verbosity-actions {
-  border-right: 1px solid var(--vscode-editorHoverWidget-border);
-  width: 22px;
-  overflow-y: clip;
-}
-.monaco-editor .monaco-hover .hover-row .verbosity-actions-inner {
-  display: flex;
-  flex-direction: column;
-  padding-left: 5px;
-  padding-right: 5px;
-  justify-content: flex-end;
-  position: relative;
-}
-.monaco-editor .monaco-hover .hover-row .verbosity-actions-inner .codicon {
-  cursor: pointer;
-  font-size: 11px;
-}
-.monaco-editor .monaco-hover .hover-row .verbosity-actions-inner .codicon.enabled {
-  color: var(--vscode-textLink-foreground);
-}
-.monaco-editor .monaco-hover .hover-row .verbosity-actions-inner .codicon.disabled {
-  opacity: 0.6;
-}
-.monaco-editor .monaco-hover .hover-row .actions {
-  background-color: var(--vscode-editorHoverWidget-statusBarBackground);
-}
-.monaco-editor .monaco-hover code {
-  background-color: var(--vscode-textCodeBlock-background);
-}
-.monaco-editor .monaco-hover .hover-copy-button {
-  position: absolute;
-  top: 4px;
-  right: 4px;
-  padding: 2px 4px;
-  border-radius: 3px;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  opacity: 0;
-}
-.monaco-editor .monaco-hover .hover-row-with-copy:hover .hover-copy-button,
-.monaco-editor .monaco-hover .hover-row-with-copy:focus-within .hover-copy-button {
-  opacity: 1;
-}
-.monaco-editor .monaco-hover .hover-copy-button:hover {
-  background-color: var(--vscode-toolbar-hoverBackground);
-  cursor: pointer;
-}
-.monaco-editor .monaco-hover .hover-copy-button:focus {
-  outline: 1px solid var(--vscode-focusBorder);
-  outline-offset: -1px;
-}
-.monaco-editor .monaco-hover .hover-copy-button .codicon {
-  font-size: 16px;
-  color: var(--vscode-foreground);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/dnd/browser/dnd.css */
-.monaco-editor.vs .dnd-target,
-.monaco-editor.hc-light .dnd-target {
-  border-right: 2px dotted black;
-  color: white;
-}
-.monaco-editor.vs-dark .dnd-target {
-  border-right: 2px dotted #AEAFAD;
-  color: #51504f;
-}
-.monaco-editor.hc-black .dnd-target {
-  border-right: 2px dotted #fff;
-  color: #000;
-}
-.monaco-editor.mouse-default .view-lines,
-.monaco-editor.vs-dark.mac.mouse-default .view-lines,
-.monaco-editor.hc-black.mac.mouse-default .view-lines,
-.monaco-editor.hc-light.mac.mouse-default .view-lines {
-  cursor: default;
-}
-.monaco-editor.mouse-copy .view-lines,
-.monaco-editor.vs-dark.mac.mouse-copy .view-lines,
-.monaco-editor.hc-black.mac.mouse-copy .view-lines,
-.monaco-editor.hc-light.mac.mouse-copy .view-lines {
-  cursor: copy;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/find/browser/findOptionsWidget.css */
-.monaco-editor .findOptionsWidget {
-  background-color: var(--vscode-editorWidget-background);
-  color: var(--vscode-editorWidget-foreground);
-  box-shadow: 0 0 8px 2px var(--vscode-widget-shadow);
-  border: 2px solid var(--vscode-contrastBorder);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/folding/browser/folding.css */
-.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,
-.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,
-.monaco-editor .margin-view-overlays .codicon-folding-expanded,
-.monaco-editor .margin-view-overlays .codicon-folding-collapsed {
-  cursor: pointer;
-  opacity: 0;
-  transition: opacity 0.5s;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  font-size: 140%;
-  margin-left: 2px;
-}
-.monaco-reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,
-.monaco-reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,
-.monaco-reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-expanded,
-.monaco-reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-collapsed {
-  transition: initial;
-}
-.monaco-editor .margin-view-overlays:hover .codicon,
-.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,
-.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,
-.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons {
-  opacity: 1;
-}
-.monaco-editor .inline-folded:after {
-  color: var(--vscode-editor-foldPlaceholderForeground);
-  margin: 0.1em 0.2em 0 0.2em;
-  content: "\22ef";
-  display: inline;
-  line-height: 1em;
-  cursor: pointer;
-}
-.monaco-editor .folded-background {
-  background-color: var(--vscode-editor-foldBackground);
-}
-.monaco-editor .cldr.codicon.codicon-folding-expanded,
-.monaco-editor .cldr.codicon.codicon-folding-collapsed,
-.monaco-editor .cldr.codicon.codicon-folding-manual-expanded,
-.monaco-editor .cldr.codicon.codicon-folding-manual-collapsed {
-  color: var(--vscode-editorGutter-foldingControlForeground) !important;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/snippet/browser/snippetSession.css */
-.monaco-editor .snippet-placeholder {
-  min-width: 2px;
-  outline-style: solid;
-  outline-width: 1px;
-  background-color: var(--vscode-editor-snippetTabstopHighlightBackground, transparent);
-  outline-color: var(--vscode-editor-snippetTabstopHighlightBorder, transparent);
-}
-.monaco-editor .finish-snippet-placeholder {
-  outline-style: solid;
-  outline-width: 1px;
-  background-color: var(--vscode-editor-snippetFinalTabstopHighlightBackground, transparent);
-  outline-color: var(--vscode-editor-snippetFinalTabstopHighlightBorder, transparent);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/suggest/browser/media/suggest.css */
-.monaco-editor .suggest-widget {
-  width: 430px;
-  z-index: 40;
-  display: flex;
-  flex-direction: column;
-  border-radius: 3px;
-}
-.monaco-editor .suggest-widget.message {
-  flex-direction: row;
-  align-items: center;
-}
-.monaco-editor .suggest-widget,
-.monaco-editor .suggest-details {
-  flex: 0 1 auto;
-  width: 100%;
-  border-style: solid;
-  border-width: 1px;
-  border-color: var(--vscode-editorSuggestWidget-border);
-  background-color: var(--vscode-editorSuggestWidget-background);
-}
-.monaco-editor.hc-black .suggest-widget,
-.monaco-editor.hc-black .suggest-details,
-.monaco-editor.hc-light .suggest-widget,
-.monaco-editor.hc-light .suggest-details {
-  border-width: 2px;
-}
-.monaco-editor .suggest-widget .suggest-status-bar {
-  box-sizing: border-box;
-  display: none;
-  flex-flow: row nowrap;
-  justify-content: space-between;
-  width: 100%;
-  font-size: 80%;
-  padding: 0 4px 0 4px;
-  border-top: 1px solid var(--vscode-editorSuggestWidget-border);
-  overflow: hidden;
-}
-.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar {
-  display: flex;
-}
-.monaco-editor .suggest-widget .suggest-status-bar .left {
-  padding-right: 8px;
-}
-.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label {
-  color: var(--vscode-editorSuggestWidgetStatus-foreground);
-}
-.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label {
-  margin-right: 0;
-}
-.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label::after {
-  content: ", ";
-  margin-right: 0.3em;
-}
-.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row > .contents > .main > .right > .readMore,
-.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label > .contents > .main > .right > .readMore {
-  display: none;
-}
-.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover > .contents > .main > .right.can-expand-details > .details-label {
-  width: 100%;
-}
-.monaco-editor .suggest-widget > .message {
-  padding-left: 22px;
-}
-.monaco-editor .suggest-widget > .tree {
-  height: 100%;
-  width: 100%;
-}
-.monaco-editor .suggest-widget .monaco-list {
-  user-select: none;
-  -webkit-user-select: none;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row {
-  display: flex;
-  -mox-box-sizing: border-box;
-  box-sizing: border-box;
-  padding-right: 10px;
-  background-repeat: no-repeat;
-  background-position: 2px 2px;
-  white-space: nowrap;
-  cursor: pointer;
-  touch-action: none;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused {
-  color: var(--vscode-editorSuggestWidget-selectedForeground);
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon {
-  color: var(--vscode-editorSuggestWidget-selectedIconForeground);
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents {
-  flex: 1;
-  height: 100%;
-  overflow: hidden;
-  padding-left: 2px;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main {
-  display: flex;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: pre;
-  justify-content: space-between;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left,
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right {
-  display: flex;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused) > .contents > .main .monaco-icon-label {
-  color: var(--vscode-editorSuggestWidget-foreground);
-}
-.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight {
-  font-weight: bold;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main .monaco-highlighted-label .highlight {
-  color: var(--vscode-editorSuggestWidget-highlightForeground);
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused > .contents > .main .monaco-highlighted-label .highlight {
-  color: var(--vscode-editorSuggestWidget-focusHighlightForeground);
-}
-.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .codicon-close,
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .readMore::before {
-  color: inherit;
-  opacity: 1;
-  font-size: 14px;
-  cursor: pointer;
-}
-.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .codicon-close {
-  position: absolute;
-  top: 6px;
-  right: 2px;
-}
-.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .codicon-close:hover,
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .readMore:hover {
-  opacity: 1;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .details-label {
-  opacity: 0.7;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left > .signature-label {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  opacity: 0.6;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left > .qualifier-label {
-  margin-left: 12px;
-  opacity: 0.4;
-  font-size: 85%;
-  line-height: initial;
-  text-overflow: ellipsis;
-  overflow: hidden;
-  align-self: center;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .details-label {
-  font-size: 85%;
-  margin-left: 1.1em;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .details-label > .monaco-tokenized-source {
-  display: inline;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .details-label {
-  display: none;
-}
-.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused > .contents > .main > .right > .details-label {
-  display: inline;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label) > .contents > .main > .right > .details-label,
-.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label) > .contents > .main > .right > .details-label {
-  display: inline;
-}
-.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover > .contents > .main > .right.can-expand-details > .details-label {
-  width: calc(100% - 26px);
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left {
-  flex-shrink: 1;
-  flex-grow: 1;
-  overflow: hidden;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left > .monaco-icon-label {
-  flex-shrink: 0;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label) > .contents > .main > .left > .monaco-icon-label {
-  max-width: 100%;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label > .contents > .main > .left > .monaco-icon-label {
-  flex-shrink: 1;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right {
-  overflow: hidden;
-  flex-shrink: 4;
-  max-width: 70%;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .readMore {
-  display: inline-block;
-  position: absolute;
-  right: 10px;
-  width: 18px;
-  height: 18px;
-  visibility: hidden;
-}
-.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row > .contents > .main > .right > .readMore {
-  display: none !important;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label > .contents > .main > .right > .readMore {
-  display: none;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label > .contents > .main > .right > .readMore {
-  display: inline-block;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover > .contents > .main > .right > .readMore {
-  visibility: visible;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated {
-  opacity: 0.66;
-  text-decoration: unset;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated > .monaco-icon-label-container > .monaco-icon-name-container {
-  text-decoration: line-through;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label::before {
-  height: 100%;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon {
-  display: block;
-  height: 16px;
-  width: 16px;
-  margin-left: 2px;
-  background-repeat: no-repeat;
-  background-size: 80%;
-  background-position: center;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide {
-  display: none;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon {
-  display: flex;
-  align-items: center;
-  margin-right: 4px;
-}
-.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,
-.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon::before {
-  display: none;
-}
-.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan {
-  margin: 0 0 0 0.3em;
-  border: 0.1em solid #000;
-  width: 0.7em;
-  height: 0.7em;
-  display: inline-block;
-}
-.monaco-editor .suggest-details-container {
-  z-index: 41;
-}
-.monaco-editor .suggest-details {
-  display: flex;
-  flex-direction: column;
-  cursor: default;
-  color: var(--vscode-editorSuggestWidget-foreground);
-}
-.monaco-editor .suggest-details:focus {
-  border-color: var(--vscode-focusBorder);
-}
-.monaco-editor .suggest-details a {
-  color: var(--vscode-textLink-foreground);
-}
-.monaco-editor .suggest-details a:hover {
-  color: var(--vscode-textLink-activeForeground);
-}
-.monaco-editor .suggest-details code {
-  background-color: var(--vscode-textCodeBlock-background);
-}
-.monaco-editor .suggest-details.no-docs {
-  display: none;
-}
-.monaco-editor .suggest-details > .monaco-scrollable-element {
-  flex: 1;
-}
-.monaco-editor .suggest-details > .monaco-scrollable-element > .body {
-  box-sizing: border-box;
-  height: 100%;
-  width: 100%;
-}
-.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .type {
-  flex: 2;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  opacity: 0.7;
-  white-space: pre;
-  margin: 0 24px 0 0;
-  padding: 4px 0 4px 5px;
-}
-.monaco-editor .suggest-details.detail-and-doc > .monaco-scrollable-element > .body > .header > .type {
-  padding-bottom: 12px;
-}
-.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .type.auto-wrap {
-  white-space: normal;
-  word-break: break-all;
-}
-.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs {
-  margin: 0;
-  padding: 4px 5px;
-  white-space: pre-wrap;
-}
-.monaco-editor .suggest-details.no-type > .monaco-scrollable-element > .body > .docs {
-  margin-right: 24px;
-  overflow: hidden;
-}
-.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs {
-  padding: 0;
-  white-space: initial;
-  min-height: calc(1rem + 8px);
-}
-.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs > div,
-.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs > span:not(:empty) {
-  padding: 4px 5px;
-}
-.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs > div > p:first-child {
-  margin-top: 0;
-}
-.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs > div > p:last-child {
-  margin-bottom: 0;
-}
-.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs .monaco-tokenized-source {
-  white-space: pre;
-}
-.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs .code {
-  white-space: pre-wrap;
-  word-wrap: break-word;
-}
-.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs .codicon {
-  vertical-align: sub;
-}
-.monaco-editor .suggest-details > .monaco-scrollable-element > .body > p:empty {
-  display: none;
-}
-.monaco-editor .suggest-details code {
-  border-radius: 3px;
-  padding: 0 0.4em;
-}
-.monaco-editor .suggest-details ul {
-  padding-left: 20px;
-}
-.monaco-editor .suggest-details ol {
-  padding-left: 20px;
-}
-.monaco-editor .suggest-details p code {
-  font-family: var(--monaco-monospace-font);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.css */
-.monaco-editor .suggest-preview-additional-widget {
-  white-space: nowrap;
-}
-.monaco-editor .suggest-preview-additional-widget .content-spacer {
-  color: transparent;
-  white-space: pre;
-}
-.monaco-editor .suggest-preview-additional-widget .button {
-  display: inline-block;
-  cursor: pointer;
-  text-decoration: underline;
-  text-underline-position: under;
-}
-.monaco-editor .ghost-text-hidden {
-  opacity: 0;
-  font-size: 0;
-}
-.monaco-editor .ghost-text-decoration,
-.monaco-editor .suggest-preview-text .ghost-text {
-  font-style: italic;
-}
-.monaco-editor .suggest-preview-text.clickable .view-line {
-  z-index: 1;
-}
-.monaco-editor .ghost-text-decoration.clickable,
-.monaco-editor .ghost-text-decoration-preview.clickable,
-.monaco-editor .suggest-preview-text.clickable .ghost-text {
-  cursor: pointer;
-}
-.monaco-editor .inline-completion-text-to-replace {
-  text-decoration: underline;
-  text-underline-position: under;
-}
-.monaco-editor .ghost-text-decoration,
-.monaco-editor .ghost-text-decoration-preview,
-.monaco-editor .suggest-preview-text .ghost-text {
-  &.syntax-highlighted {
-    opacity: 0.7;
-  }
-  &:not(.syntax-highlighted) {
-    color: var(--vscode-editorGhostText-foreground);
-  }
-  background-color: var(--vscode-editorGhostText-background);
-  border: 1px solid var(--vscode-editorGhostText-border);
-}
-.monaco-editor .ghost-text-decoration.warning,
-.monaco-editor .ghost-text-decoration-preview.warning,
-.monaco-editor .suggest-preview-text .ghost-text.warning {
-  background: var(--monaco-editor-warning-decoration) repeat-x bottom left;
-  border-bottom: 4px double var(--vscode-editorWarning-border);
-}
-.ghost-text-view-warning-widget-icon {
-  .codicon {
-    color: var(--vscode-editorWarning-foreground) !important;
-  }
-}
-.monaco-editor {
-  .edits-fadeout-decoration {
-    opacity: var(--animation-opacity, 1);
-    background-color: var(--vscode-inlineEdit-modifiedChangedTextBackground);
-  }
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/stickyScroll/browser/stickyScroll.css */
-.monaco-editor .sticky-widget {
-  overflow: hidden;
-  border-bottom: 1px solid var(--vscode-editorStickyScroll-border);
-  width: 100%;
-  box-shadow: var(--vscode-editorStickyScroll-shadow) 0 4px 2px -2px;
-  z-index: 4;
-  right: initial !important;
-  margin-left: "0px";
-}
-.monaco-editor .sticky-widget .sticky-widget-line-numbers {
-  float: left;
-  background-color: var(--vscode-editorStickyScrollGutter-background);
-}
-.monaco-editor .sticky-widget.peek .sticky-widget-line-numbers {
-  background-color: var(--vscode-peekViewEditorStickyScrollGutter-background);
-}
-.monaco-editor .sticky-widget .sticky-widget-lines-scrollable {
-  display: inline-block;
-  position: absolute;
-  overflow: hidden;
-  width: var(--vscode-editorStickyScroll-scrollableWidth);
-  background-color: var(--vscode-editorStickyScroll-background);
-}
-.monaco-editor .sticky-widget.peek .sticky-widget-lines-scrollable {
-  background-color: var(--vscode-peekViewEditorStickyScroll-background);
-}
-.monaco-editor .sticky-widget .sticky-widget-lines {
-  position: absolute;
-  background-color: inherit;
-}
-.monaco-editor .sticky-widget .sticky-line-number,
-.monaco-editor .sticky-widget .sticky-line-content {
-  color: var(--vscode-editorLineNumber-foreground);
-  white-space: nowrap;
-  display: inline-block;
-  position: absolute;
-  background-color: inherit;
-}
-.monaco-editor .sticky-widget .sticky-line-number .codicon-folding-expanded,
-.monaco-editor .sticky-widget .sticky-line-number .codicon-folding-collapsed {
-  float: right;
-  transition: var(--vscode-editorStickyScroll-foldingOpacityTransition);
-  position: absolute;
-  margin-left: 2px;
-}
-.monaco-editor .sticky-widget .sticky-line-content {
-  width: var(--vscode-editorStickyScroll-scrollableWidth);
-  background-color: inherit;
-  white-space: nowrap;
-}
-.monaco-editor .sticky-widget .sticky-line-number-inner {
-  display: inline-block;
-  text-align: right;
-}
-.monaco-editor .sticky-widget .sticky-line-content:hover {
-  background-color: var(--vscode-editorStickyScrollHover-background);
-  cursor: pointer;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/view.css */
-.monaco-editor {
-  .inline-edits-view-indicator {
-    display: flex;
-    z-index: 34;
-    height: 20px;
-    color: var(--vscode-inlineEdit-gutterIndicator-primaryForeground);
-    background-color: var(--vscode-inlineEdit-gutterIndicator-background);
-    border: 1px solid var(--vscode-inlineEdit-gutterIndicator-primaryBorder);
-    border-radius: 3px;
-    align-items: center;
-    padding: 2px;
-    padding-right: 10px;
-    margin: 0 4px;
-    opacity: 0;
-    &.contained {
-      transition: opacity 0.2s ease-in-out;
-      transition-delay: 0.4s;
-    }
-    &.visible {
-      opacity: 1;
-    }
-    &.top {
-      opacity: 1;
-      .icon {
-        transform: rotate(90deg);
-      }
-    }
-    &.bottom {
-      opacity: 1;
-      .icon {
-        transform: rotate(-90deg);
-      }
-    }
-    .icon {
-      display: flex;
-      align-items: center;
-      margin: 0 2px;
-      transform: none;
-      transition: transform 0.2s ease-in-out;
-      .codicon {
-        color: var(--vscode-inlineEdit-gutterIndicator-primaryForeground);
-      }
-    }
-    .label {
-      margin: 0 2px;
-      display: flex;
-      justify-content: center;
-      width: 100%;
-    }
-  }
-  .inline-edits-view .editorContainer {
-    .preview .monaco-editor {
-      .view-overlays .current-line-exact {
-        border: none;
-      }
-      .current-line-margin {
-        border: none;
-      }
-    }
-    .inline-edits-view-zone.diagonal-fill {
-      opacity: 0.5;
-    }
-  }
-  .strike-through {
-    text-decoration: line-through;
-  }
-  .inlineCompletions-line-insert {
-    background: var(--vscode-inlineEdit-modifiedChangedLineBackground);
-  }
-  .inlineCompletions-line-delete {
-    background: var(--vscode-inlineEdit-originalChangedLineBackground);
-  }
-  .inlineCompletions-char-insert {
-    background: var(--vscode-inlineEdit-modifiedChangedTextBackground);
-    cursor: pointer;
-  }
-  .inlineCompletions-char-delete {
-    background: var(--vscode-inlineEdit-originalChangedTextBackground);
-  }
-  .inlineCompletions-char-delete.diff-range-empty {
-    margin-left: -1px;
-    border-left: solid var(--vscode-inlineEdit-originalChangedTextBackground) 3px;
-  }
-  .inlineCompletions-char-insert.diff-range-empty {
-    border-left: solid var(--vscode-inlineEdit-modifiedChangedTextBackground) 3px;
-  }
-  .inlineCompletions-char-delete.single-line-inline {
-    border: 1px solid var(--vscode-editorHoverWidget-border);
-    margin: -2px 0 0 -2px;
-  }
-  .inlineCompletions-char-insert.single-line-inline {
-    border-top: 1px solid var(--vscode-inlineEdit-modifiedBorder);
-    border-bottom: 1px solid var(--vscode-inlineEdit-modifiedBorder);
-  }
-  .inlineCompletions-char-insert.single-line-inline.start {
-    border-top-left-radius: 4px;
-    border-bottom-left-radius: 4px;
-    border-left: 1px solid var(--vscode-inlineEdit-modifiedBorder);
-  }
-  .inlineCompletions-char-insert.single-line-inline.end {
-    border-top-right-radius: 4px;
-    border-bottom-right-radius: 4px;
-    border-right: 1px solid var(--vscode-inlineEdit-modifiedBorder);
-  }
-  .inlineCompletions-char-delete.single-line-inline.empty,
-  .inlineCompletions-char-insert.single-line-inline.empty {
-    display: none;
-  }
-  .inlineCompletions.strike-through {
-    text-decoration-thickness: 1px;
-  }
-  .inlineCompletions-modified-bubble {
-    background: var(--vscode-inlineEdit-modifiedChangedTextBackground);
-  }
-  .inlineCompletions-original-bubble {
-    background: var(--vscode-inlineEdit-originalChangedTextBackground);
-  }
-  .inlineCompletions-modified-bubble,
-  .inlineCompletions-original-bubble {
-    pointer-events: none;
-    display: inline-block;
-  }
-  .inline-edit.ghost-text,
-  .inline-edit.ghost-text-decoration,
-  .inline-edit.ghost-text-decoration-preview,
-  .inline-edit.suggest-preview-text .ghost-text {
-    &.syntax-highlighted {
-      opacity: 1 !important;
-    }
-    font-style: normal !important;
-  }
-  .inline-edit.modified-background.ghost-text,
-  .inline-edit.modified-background.ghost-text-decoration,
-  .inline-edit.modified-background.ghost-text-decoration-preview,
-  .inline-edit.modified-background.suggest-preview-text .ghost-text {
-    background: var(--vscode-inlineEdit-modifiedChangedTextBackground) !important;
-    display: inline-block !important;
-  }
-  .inlineCompletions-original-lines {
-    background: var(--vscode-editor-background);
-  }
-}
-.monaco-menu-option {
-  color: var(--vscode-editorActionList-foreground);
-  font-size: 13px;
-  padding: 0 4px;
-  line-height: 28px;
-  display: flex;
-  gap: 4px;
-  align-items: center;
-  border-radius: 3px;
-  cursor: pointer;
-  .monaco-keybinding-key {
-    font-size: 13px;
-    opacity: 0.7;
-  }
-  &.active {
-    background: var(--vscode-editorActionList-focusBackground);
-    color: var(--vscode-editorActionList-focusForeground);
-    outline: 1px solid var(--vscode-menu-selectionBorder, transparent);
-    outline-offset: -1px;
-    .monaco-keybinding-key {
-      color: var(--vscode-editorActionList-focusForeground);
-    }
-  }
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.css */
-.monaco-editor .goto-definition-link {
-  text-decoration: underline;
-  cursor: pointer;
-  color: var(--vscode-editorLink-activeForeground) !important;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.css */
-.monaco-editor.vs .valueSetReplacement {
-  outline: solid 2px var(--vscode-editorBracketMatch-border);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.css */
-.monaco-editor .linked-editing-decoration {
-  background-color: var(--vscode-editor-linkedEditingBackground);
-  min-width: 1px;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/links/browser/links.css */
-.monaco-editor .detected-link,
-.monaco-editor .detected-link-active {
-  text-decoration: underline;
-  text-underline-position: under;
-}
-.monaco-editor .detected-link-active {
-  cursor: pointer;
-  color: var(--vscode-editorLink-activeForeground) !important;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/middleScroll/browser/middleScroll.css */
-.monaco-editor {
-  .scroll-editor-on-middle-click-dot {
-    cursor: all-scroll;
-    position: absolute;
-    z-index: 1;
-    background-color: var(--vscode-editor-foreground, white);
-    border: 1px solid var(--vscode-editor-background, black);
-    opacity: 0.5;
-    width: 5px;
-    height: 5px;
-    border-radius: 50%;
-    transform: translate(-50%, -50%);
-    &.hidden {
-      display: none;
-    }
-  }
-  &.scroll-editor-on-middle-click-editor * {
-    cursor: all-scroll;
-  }
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.css */
-.monaco-editor .focused .selectionHighlight {
-  background-color: var(--vscode-editor-selectionHighlightBackground);
-  box-sizing: border-box;
-  border: 1px solid var(--vscode-editor-selectionHighlightBorder);
-}
-.monaco-editor.hc-black .focused .selectionHighlight,
-.monaco-editor.hc-light .focused .selectionHighlight {
-  border-style: dotted;
-}
-.monaco-editor .wordHighlight {
-  background-color: var(--vscode-editor-wordHighlightBackground);
-  box-sizing: border-box;
-  border: 1px solid var(--vscode-editor-wordHighlightBorder);
-}
-.monaco-editor.hc-black .wordHighlight,
-.monaco-editor.hc-light .wordHighlight {
-  border-style: dotted;
-}
-.monaco-editor .wordHighlightStrong {
-  background-color: var(--vscode-editor-wordHighlightStrongBackground);
-  box-sizing: border-box;
-  border: 1px solid var(--vscode-editor-wordHighlightStrongBorder);
-}
-.monaco-editor.hc-black .wordHighlightStrong,
-.monaco-editor.hc-light .wordHighlightStrong {
-  border-style: dotted;
-}
-.monaco-editor .wordHighlightText {
-  background-color: var(--vscode-editor-wordHighlightTextBackground);
-  box-sizing: border-box;
-  border: 1px solid var(--vscode-editor-wordHighlightTextBorder);
-}
-.monaco-editor.hc-black .wordHighlightText,
-.monaco-editor.hc-light .wordHighlightText {
-  border-style: dotted;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/parameterHints/browser/parameterHints.css */
-.monaco-editor .parameter-hints-widget {
-  z-index: 39;
-  display: flex;
-  flex-direction: column;
-  line-height: 1.5em;
-  cursor: default;
-  color: var(--vscode-editorHoverWidget-foreground);
-  background-color: var(--vscode-editorHoverWidget-background);
-  border: 1px solid var(--vscode-editorHoverWidget-border);
-}
-.hc-black .monaco-editor .parameter-hints-widget,
-.hc-light .monaco-editor .parameter-hints-widget {
-  border-width: 2px;
-}
-.monaco-editor .parameter-hints-widget > .phwrapper {
-  max-width: 440px;
-  display: flex;
-  flex-direction: row;
-}
-.monaco-editor .parameter-hints-widget.multiple {
-  min-height: 3.3em;
-  padding: 0;
-}
-.monaco-editor .parameter-hints-widget.multiple .body::before {
-  content: "";
-  display: block;
-  height: 100%;
-  position: absolute;
-  opacity: 0.5;
-  border-left: 1px solid var(--vscode-editorHoverWidget-border);
-}
-.monaco-editor .parameter-hints-widget p,
-.monaco-editor .parameter-hints-widget ul {
-  margin: 8px 0;
-}
-.monaco-editor .parameter-hints-widget .monaco-scrollable-element,
-.monaco-editor .parameter-hints-widget .body {
-  display: flex;
-  flex: 1;
-  flex-direction: column;
-  min-height: 100%;
-}
-.monaco-editor .parameter-hints-widget .signature {
-  padding: 4px 5px;
-  position: relative;
-}
-.monaco-editor .parameter-hints-widget .signature.has-docs::after {
-  content: "";
-  display: block;
-  position: absolute;
-  left: 0;
-  width: 100%;
-  padding-top: 4px;
-  opacity: 0.5;
-  border-bottom: 1px solid var(--vscode-editorHoverWidget-border);
-}
-.monaco-editor .parameter-hints-widget .code {
-  font-family: var(--vscode-parameterHintsWidget-editorFontFamily), var(--vscode-parameterHintsWidget-editorFontFamilyDefault);
-}
-.monaco-editor .parameter-hints-widget .docs {
-  padding: 0 10px 0 5px;
-  white-space: pre-wrap;
-}
-.monaco-editor .parameter-hints-widget .docs.empty {
-  display: none;
-}
-.monaco-editor .parameter-hints-widget .docs a {
-  color: var(--vscode-textLink-foreground);
-}
-.monaco-editor .parameter-hints-widget .docs a:hover {
-  color: var(--vscode-textLink-activeForeground);
-  cursor: pointer;
-}
-.monaco-editor .parameter-hints-widget .docs .markdown-docs {
-  white-space: initial;
-}
-.monaco-editor .parameter-hints-widget .docs code {
-  font-family: var(--monaco-monospace-font);
-  border-radius: 3px;
-  padding: 0 0.4em;
-  background-color: var(--vscode-textCodeBlock-background);
-}
-.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source,
-.monaco-editor .parameter-hints-widget .docs .code {
-  white-space: pre-wrap;
-}
-.monaco-editor .parameter-hints-widget .controls {
-  display: none;
-  flex-direction: column;
-  align-items: center;
-  min-width: 22px;
-  justify-content: flex-end;
-}
-.monaco-editor .parameter-hints-widget.multiple .controls {
-  display: flex;
-  padding: 0 2px;
-}
-.monaco-editor .parameter-hints-widget.multiple .button {
-  width: 16px;
-  height: 16px;
-  background-repeat: no-repeat;
-  cursor: pointer;
-}
-.monaco-editor .parameter-hints-widget .button.previous {
-  bottom: 24px;
-}
-.monaco-editor .parameter-hints-widget .overloads {
-  text-align: center;
-  height: 12px;
-  line-height: 12px;
-  font-family: var(--monaco-monospace-font);
-}
-.monaco-editor .parameter-hints-widget .signature .parameter.active {
-  color: var(--vscode-editorHoverWidget-highlightForeground);
-  font-weight: bold;
-}
-.monaco-editor .parameter-hints-widget .documentation-parameter > .parameter {
-  font-weight: bold;
-  margin-right: 0.5em;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/placeholderText/browser/placeholderText.css */
-.monaco-editor {
-  .editorPlaceholder {
-    top: 0px;
-    position: absolute;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    text-wrap: nowrap;
-    pointer-events: none;
-    color: var(--vscode-editor-placeholder-foreground);
-  }
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/rename/browser/renameWidget.css */
-.monaco-editor .rename-box {
-  z-index: 100;
-  color: inherit;
-  border-radius: 4px;
-}
-.monaco-editor .rename-box.preview {
-  padding: 4px 4px 0 4px;
-}
-.monaco-editor .rename-box .rename-input-with-button {
-  padding: 3px;
-  border-radius: 2px;
-  width: calc(100% - 8px);
-}
-.monaco-editor .rename-box .rename-input {
-  width: calc(100% - 8px);
-  padding: 0;
-}
-.monaco-editor .rename-box .rename-input:focus {
-  outline: none;
-}
-.monaco-editor .rename-box .rename-suggestions-button {
-  display: flex;
-  align-items: center;
-  padding: 3px;
-  background-color: transparent;
-  border: none;
-  border-radius: 5px;
-  cursor: pointer;
-}
-.monaco-editor .rename-box .rename-suggestions-button:hover {
-  background-color: var(--vscode-toolbar-hoverBackground);
-}
-.monaco-editor .rename-box .rename-candidate-list-container .monaco-list-row {
-  border-radius: 2px;
-}
-.monaco-editor .rename-box .rename-label {
-  display: none;
-  opacity: .8;
-}
-.monaco-editor .rename-box.preview .rename-label {
-  display: inherit;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.css */
-.monaco-editor .unicode-highlight {
-  border: 1px solid var(--vscode-editorUnicodeHighlight-border);
-  background-color: var(--vscode-editorUnicodeHighlight-background);
-  box-sizing: border-box;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.css */
-.editor-banner {
-  box-sizing: border-box;
-  cursor: default;
-  width: 100%;
-  font-size: 12px;
-  display: flex;
-  overflow: visible;
-  height: 26px;
-  background: var(--vscode-banner-background);
-}
-.editor-banner .icon-container {
-  display: flex;
-  flex-shrink: 0;
-  align-items: center;
-  padding: 0 6px 0 10px;
-}
-.editor-banner .icon-container.custom-icon {
-  background-repeat: no-repeat;
-  background-position: center center;
-  background-size: 16px;
-  width: 16px;
-  padding: 0;
-  margin: 0 6px 0 10px;
-}
-.editor-banner .message-container {
-  display: flex;
-  align-items: center;
-  line-height: 26px;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-  overflow: hidden;
-}
-.editor-banner .message-container p {
-  margin-block-start: 0;
-  margin-block-end: 0;
-}
-.editor-banner .message-actions-container {
-  flex-grow: 1;
-  flex-shrink: 0;
-  line-height: 26px;
-  margin: 0 4px;
-}
-.editor-banner .message-actions-container a.monaco-button {
-  width: inherit;
-  margin: 2px 8px;
-  padding: 0px 12px;
-}
-.editor-banner .message-actions-container a {
-  padding: 3px;
-  margin-left: 12px;
-  text-decoration: underline;
-}
-.editor-banner .action-container {
-  padding: 0 10px 0 6px;
-}
-.editor-banner {
-  background-color: var(--vscode-banner-background);
-}
-.editor-banner,
-.editor-banner .action-container .codicon,
-.editor-banner .message-actions-container .monaco-link {
-  color: var(--vscode-banner-foreground);
-}
-.editor-banner .icon-container .codicon {
-  color: var(--vscode-banner-iconForeground);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/platform/opener/browser/link.css */
-.monaco-link {
-  color: var(--vscode-textLink-foreground);
-}
-.monaco-link:hover {
-  color: var(--vscode-textLink-activeForeground);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/contrib/floatingMenu/browser/floatingMenu.css */
-.floating-menu-overlay-widget {
-  padding: 0px;
-  color: var(--vscode-button-foreground);
-  background-color: var(--vscode-button-background);
-  border-radius: 2px;
-  border: 1px solid var(--vscode-contrastBorder);
-  display: flex;
-  align-items: center;
-  z-index: 10;
-  box-shadow: 0 2px 8px var(--vscode-widget-shadow);
-  overflow: hidden;
-  .action-item > .action-label {
-    padding: 5px;
-    font-size: 12px;
-    border-radius: 2px;
-  }
-  .action-item > .action-label.codicon {
-    color: var(--vscode-button-foreground);
-  }
-  .action-item > .action-label.codicon:not(.separator) {
-    padding-top: 6px;
-    padding-bottom: 6px;
-  }
-  .action-item:first-child > .action-label {
-    padding-left: 7px;
-  }
-  .action-item:last-child > .action-label {
-    padding-right: 7px;
-  }
-  .action-item .action-label.separator {
-    background-color: var(--vscode-menu-separatorBackground);
-  }
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.css */
-.monaco-editor .iPadShowKeyboard {
-  width: 58px;
-  min-width: 0;
-  height: 36px;
-  min-height: 0;
-  margin: 0;
-  padding: 0;
-  position: absolute;
-  resize: none;
-  overflow: hidden;
-  background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjNDI0MjQyIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==) center center no-repeat;
-  border: 4px solid #F6F6F6;
-  border-radius: 4px;
-}
-.monaco-editor.vs-dark .iPadShowKeyboard {
-  background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjQzVDNUM1Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==) center center no-repeat;
-  border: 4px solid #252526;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/standalone/browser/inspectTokens/inspectTokens.css */
-.monaco-editor .tokens-inspect-widget {
-  z-index: 50;
-  user-select: text;
-  -webkit-user-select: text;
-  padding: 10px;
-  color: var(--vscode-editorHoverWidget-foreground);
-  background-color: var(--vscode-editorHoverWidget-background);
-  border: 1px solid var(--vscode-editorHoverWidget-border);
-}
-.monaco-editor.hc-black .tokens-inspect-widget,
-.monaco-editor.hc-light .tokens-inspect-widget {
-  border-width: 2px;
-}
-.monaco-editor .tokens-inspect-widget .tokens-inspect-separator {
-  height: 1px;
-  border: 0;
-  background-color: var(--vscode-editorHoverWidget-border);
-}
-.monaco-editor .tokens-inspect-widget .tm-token {
-  font-family: var(--monaco-monospace-font);
-}
-.monaco-editor .tokens-inspect-widget .tm-token-length {
-  font-weight: normal;
-  font-size: 60%;
-  float: right;
-}
-.monaco-editor .tokens-inspect-widget .tm-metadata-table {
-  width: 100%;
-}
-.monaco-editor .tokens-inspect-widget .tm-metadata-value {
-  font-family: var(--monaco-monospace-font);
-  text-align: right;
-}
-.monaco-editor .tokens-inspect-widget .tm-token-type {
-  font-family: var(--monaco-monospace-font);
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/standalone/browser/standalone-tokens.css */
-.monaco-editor {
-  font-family:
-    -apple-system,
-    BlinkMacSystemFont,
-    "Segoe WPC",
-    "Segoe UI",
-    "HelveticaNeue-Light",
-    system-ui,
-    "Ubuntu",
-    "Droid Sans",
-    sans-serif;
-  --monaco-monospace-font:
-    "SF Mono",
-    Monaco,
-    Menlo,
-    Consolas,
-    "Ubuntu Mono",
-    "Liberation Mono",
-    "DejaVu Sans Mono",
-    "Courier New",
-    monospace;
-}
-.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label {
-  stroke-width: 1.2px;
-}
-.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,
-.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,
-.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label {
-  stroke-width: 1.2px;
-}
-.monaco-hover p {
-  margin: 0;
-}
-.monaco-aria-container {
-  position: absolute !important;
-  top: 0;
-  height: 1px;
-  width: 1px;
-  margin: -1px;
-  overflow: hidden;
-  padding: 0;
-  clip: rect(1px, 1px, 1px, 1px);
-  clip-path: inset(50%);
-}
-.monaco-editor .synthetic-focus,
-.monaco-diff-editor .synthetic-focus,
-.monaco-editor [tabindex="0"]:focus,
-.monaco-diff-editor [tabindex="0"]:focus,
-.monaco-editor [tabindex="-1"]:focus,
-.monaco-diff-editor [tabindex="-1"]:focus,
-.monaco-editor button:focus,
-.monaco-diff-editor button:focus,
-.monaco-editor input[type=button]:focus,
-.monaco-diff-editor input[type=button]:focus,
-.monaco-editor input[type=checkbox]:focus,
-.monaco-diff-editor input[type=checkbox]:focus,
-.monaco-editor input[type=search]:focus,
-.monaco-diff-editor input[type=search]:focus,
-.monaco-editor input[type=text]:focus,
-.monaco-diff-editor input[type=text]:focus,
-.monaco-editor select:focus,
-.monaco-diff-editor select:focus,
-.monaco-editor textarea:focus,
-.monaco-diff-editor textarea:focus {
-  outline-width: 1px;
-  outline-style: solid;
-  outline-offset: -1px;
-  outline-color: var(--vscode-focusBorder);
-  opacity: 1;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/platform/hover/browser/hover.css */
-.monaco-hover.workbench-hover {
-  position: relative;
-  font-size: 13px;
-  line-height: 19px;
-  z-index: 40;
-  overflow: hidden;
-  max-width: 700px;
-  background: var(--vscode-editorHoverWidget-background);
-  border: 1px solid var(--vscode-editorHoverWidget-border);
-  border-radius: 5px;
-  color: var(--vscode-editorHoverWidget-foreground);
-  box-shadow: 0 2px 8px var(--vscode-widget-shadow);
-}
-.monaco-hover.workbench-hover .monaco-action-bar .action-item .codicon {
-  width: 13px;
-  height: 13px;
-}
-.monaco-hover.workbench-hover hr {
-  border-bottom: none;
-}
-.monaco-hover.workbench-hover.compact {
-  font-size: 12px;
-}
-.monaco-hover.workbench-hover.compact .monaco-action-bar .action-item .codicon {
-  width: 12px;
-  height: 12px;
-}
-.monaco-hover.workbench-hover.compact .hover-contents {
-  padding: 2px 8px;
-}
-.workbench-hover-container.locked .monaco-hover.workbench-hover {
-  outline: 1px solid var(--vscode-editorHoverWidget-border);
-}
-.workbench-hover-container:focus-within.locked .monaco-hover.workbench-hover {
-  outline-color: var(--vscode-focusBorder);
-}
-.workbench-hover-pointer {
-  position: absolute;
-  z-index: 41;
-  pointer-events: none;
-}
-.workbench-hover-pointer:after {
-  content: "";
-  position: absolute;
-  width: 5px;
-  height: 5px;
-  background-color: var(--vscode-editorHoverWidget-background);
-  border-right: 1px solid var(--vscode-editorHoverWidget-border);
-  border-bottom: 1px solid var(--vscode-editorHoverWidget-border);
-}
-.workbench-hover-container:not(:focus-within).locked .workbench-hover-pointer:after {
-  width: 4px;
-  height: 4px;
-  border-right-width: 2px;
-  border-bottom-width: 2px;
-}
-.workbench-hover-container:focus-within .workbench-hover-pointer:after {
-  border-right: 1px solid var(--vscode-focusBorder);
-  border-bottom: 1px solid var(--vscode-focusBorder);
-}
-.workbench-hover-pointer.left {
-  left: -3px;
-}
-.workbench-hover-pointer.right {
-  right: 3px;
-}
-.workbench-hover-pointer.top {
-  top: -3px;
-}
-.workbench-hover-pointer.bottom {
-  bottom: 3px;
-}
-.workbench-hover-pointer.left:after {
-  transform: rotate(135deg);
-}
-.workbench-hover-pointer.right:after {
-  transform: rotate(315deg);
-}
-.workbench-hover-pointer.top:after {
-  transform: rotate(225deg);
-}
-.workbench-hover-pointer.bottom:after {
-  transform: rotate(45deg);
-}
-.monaco-hover.workbench-hover a {
-  color: var(--vscode-textLink-foreground);
-}
-.monaco-hover.workbench-hover a:focus {
-  outline: 1px solid;
-  outline-offset: -1px;
-  text-decoration: underline;
-  outline-color: var(--vscode-focusBorder);
-}
-.monaco-hover.workbench-hover a.codicon:focus,
-.monaco-hover.workbench-hover a.monaco-button:focus {
-  text-decoration: none;
-}
-.monaco-hover.workbench-hover a:hover,
-.monaco-hover.workbench-hover a:active {
-  color: var(--vscode-textLink-activeForeground);
-}
-.monaco-hover.workbench-hover code {
-  background: var(--vscode-textCodeBlock-background);
-}
-.monaco-hover.workbench-hover .hover-row .actions {
-  background: var(--vscode-editorHoverWidget-statusBarBackground);
-}
-.monaco-hover.workbench-hover.right-aligned {
-  left: 1px;
-}
-.monaco-hover.workbench-hover.right-aligned .hover-row.status-bar .actions {
-  flex-direction: row-reverse;
-}
-.monaco-hover.workbench-hover.right-aligned .hover-row.status-bar .actions .action-container {
-  margin-right: 0;
-  margin-left: 16px;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/contextview/contextview.css */
-.context-view {
-  position: absolute;
-}
-.context-view.fixed {
-  all: initial;
-  font-family: inherit;
-  font-size: 13px;
-  position: fixed;
-  color: inherit;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickInput/standaloneQuickInput.css */
-.quick-input-widget {
-  font-size: 13px;
-}
-.quick-input-widget .monaco-highlighted-label .highlight,
-.quick-input-widget .monaco-highlighted-label .highlight {
-  color: #0066BF;
-}
-.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight,
-.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight {
-  color: #9DDDFF;
-}
-.vs-dark .quick-input-widget .monaco-highlighted-label .highlight,
-.vs-dark .quick-input-widget .monaco-highlighted-label .highlight {
-  color: #0097fb;
-}
-.hc-black .quick-input-widget .monaco-highlighted-label .highlight,
-.hc-black .quick-input-widget .monaco-highlighted-label .highlight {
-  color: #F38518;
-}
-.hc-light .quick-input-widget .monaco-highlighted-label .highlight,
-.hc-light .quick-input-widget .monaco-highlighted-label .highlight {
-  color: #0F4A85;
-}
-.monaco-keybinding > .monaco-keybinding-key {
-  background-color: rgba(221, 221, 221, 0.4);
-  border: solid 1px rgba(204, 204, 204, 0.4);
-  border-bottom-color: rgba(187, 187, 187, 0.4);
-  box-shadow: inset 0 -1px 0 rgba(187, 187, 187, 0.4);
-  color: #555;
-}
-.hc-black .monaco-keybinding > .monaco-keybinding-key {
-  background-color: transparent;
-  border: solid 1px rgb(111, 195, 223);
-  box-shadow: none;
-  color: #fff;
-}
-.hc-light .monaco-keybinding > .monaco-keybinding-key {
-  background-color: transparent;
-  border: solid 1px #0F4A85;
-  box-shadow: none;
-  color: #292929;
-}
-.vs-dark .monaco-keybinding > .monaco-keybinding-key {
-  background-color: rgba(128, 128, 128, 0.17);
-  border: solid 1px rgba(51, 51, 51, 0.6);
-  border-bottom-color: rgba(68, 68, 68, 0.6);
-  box-shadow: inset 0 -1px 0 rgba(68, 68, 68, 0.6);
-  color: #ccc;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/platform/quickinput/browser/media/quickInput.css */
-.quick-input-widget {
-  position: absolute;
-  width: 600px;
-  z-index: 2550;
-  left: 50%;
-  -webkit-app-region: no-drag;
-  border-radius: 6px;
-}
-.quick-input-titlebar {
-  cursor: grab;
-  display: flex;
-  align-items: center;
-  border-top-right-radius: 5px;
-  border-top-left-radius: 5px;
-}
-.quick-input-left-action-bar {
-  display: flex;
-  margin-left: 4px;
-  flex: 1;
-}
-.quick-input-inline-action-bar > .actions-container > .action-item:first-child {
-  margin-left: 5px;
-}
-.quick-input-inline-action-bar > .actions-container > .action-item {
-  margin-top: 2px;
-}
-.quick-input-title {
-  cursor: grab;
-  padding: 3px 0px;
-  text-align: center;
-  text-overflow: ellipsis;
-  overflow: hidden;
-}
-.quick-input-right-action-bar {
-  display: flex;
-  margin-right: 4px;
-  flex: 1;
-}
-.quick-input-right-action-bar > .actions-container {
-  justify-content: flex-end;
-}
-.quick-input-right-action-bar > .actions-container > .action-item {
-  margin-left: 4px;
-}
-.quick-input-titlebar .monaco-action-bar .action-label.codicon {
-  background-position: center;
-  background-repeat: no-repeat;
-  padding: 2px;
-}
-.quick-input-description {
-  margin: 6px 6px 6px 11px;
-}
-.quick-input-header .quick-input-description {
-  margin: 4px 2px;
-  flex: 1;
-}
-.quick-input-header {
-  cursor: grab;
-  display: flex;
-  padding: 6px 6px 2px 6px;
-}
-.quick-input-widget.hidden-input .quick-input-header {
-  padding: 0;
-  margin-bottom: 0;
-}
-.quick-input-and-message {
-  display: flex;
-  flex-direction: column;
-  flex-grow: 1;
-  min-width: 0;
-  position: relative;
-}
-.quick-input-check-all {
-  align-self: center;
-  margin: 0;
-}
-.quick-input-widget .quick-input-header .monaco-checkbox {
-  margin-top: 6px;
-}
-.quick-input-filter {
-  flex-grow: 1;
-  display: flex;
-  position: relative;
-}
-.quick-input-box {
-  flex-grow: 1;
-}
-.quick-input-widget.show-checkboxes .quick-input-box,
-.quick-input-widget.show-checkboxes .quick-input-message {
-  margin-left: 5px;
-}
-.quick-input-visible-count {
-  position: absolute;
-  left: -10000px;
-}
-.quick-input-count {
-  align-self: center;
-  position: absolute;
-  right: 4px;
-  display: flex;
-  align-items: center;
-}
-.quick-input-count .monaco-count-badge {
-  vertical-align: middle;
-  padding: 2px 4px;
-  border-radius: 2px;
-  min-height: auto;
-  line-height: normal;
-}
-.quick-input-action {
-  margin-left: 6px;
-}
-.quick-input-action .monaco-text-button {
-  font-size: 11px;
-  padding: 0 6px;
-  display: flex;
-  height: 25px;
-  align-items: center;
-}
-.quick-input-message {
-  margin-top: -1px;
-  padding: 5px;
-  overflow-wrap: break-word;
-}
-.quick-input-message > .codicon {
-  margin: 0 0.2em;
-  vertical-align: text-bottom;
-}
-.quick-input-message a {
-  color: inherit;
-}
-.quick-input-progress.monaco-progress-container {
-  position: relative;
-}
-.quick-input-list {
-  line-height: 22px;
-}
-.quick-input-widget.hidden-input .quick-input-list {
-  margin-top: 4px;
-  padding-bottom: 4px;
-}
-.quick-input-list .monaco-list {
-  overflow: hidden;
-  max-height: calc(20 * 22px);
-  padding-bottom: 5px;
-}
-.quick-input-list .monaco-scrollable-element {
-  padding: 0px 6px;
-}
-.quick-input-list .quick-input-list-entry {
-  box-sizing: border-box;
-  overflow: hidden;
-  display: flex;
-  padding: 0 6px;
-}
-.quick-input-list .quick-input-list-entry.quick-input-list-separator-border {
-  border-top-width: 1px;
-  border-top-style: solid;
-}
-.quick-input-list .monaco-list-row {
-  border-radius: 3px;
-}
-.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border {
-  border-top-style: none;
-}
-.quick-input-list .quick-input-list-label {
-  overflow: hidden;
-  display: flex;
-  height: 100%;
-  flex: 1;
-}
-.quick-input-widget .monaco-checkbox {
-  margin-right: 0;
-}
-.quick-input-widget .quick-input-list .monaco-checkbox,
-.quick-input-widget .quick-input-tree .monaco-checkbox {
-  margin-top: 4px;
-}
-.quick-input-list .quick-input-list-icon {
-  background-size: 16px;
-  background-position: left center;
-  background-repeat: no-repeat;
-  padding-right: 6px;
-  width: 16px;
-  height: 22px;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-}
-.quick-input-list .quick-input-list-rows {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  display: flex;
-  flex-direction: column;
-  height: 100%;
-  flex: 1;
-  margin-left: 5px;
-}
-.quick-input-list .quick-input-list-rows > .quick-input-list-row {
-  display: flex;
-  align-items: center;
-}
-.quick-input-list .quick-input-list-rows > .quick-input-list-row .monaco-icon-label,
-.quick-input-list .quick-input-list-rows > .quick-input-list-row .monaco-icon-label .monaco-icon-label-container > .monaco-icon-name-container {
-  flex: 1;
-}
-.quick-input-list .quick-input-list-rows > .quick-input-list-row .codicon[class*=codicon-] {
-  vertical-align: text-bottom;
-}
-.quick-input-list .quick-input-list-rows .monaco-highlighted-label > span {
-  opacity: 1;
-}
-.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding {
-  margin-right: 8px;
-}
-.quick-input-list .quick-input-list-label-meta {
-  opacity: 0.7;
-  line-height: normal;
-  text-overflow: ellipsis;
-  overflow: hidden;
-}
-.quick-input-list .monaco-list .monaco-list-row .monaco-highlighted-label .highlight {
-  font-weight: bold;
-  background-color: unset;
-  color: var(--vscode-list-highlightForeground) !important;
-}
-.quick-input-list .monaco-list .monaco-list-row.focused .monaco-highlighted-label .highlight {
-  color: var(--vscode-list-focusHighlightForeground) !important;
-}
-.quick-input-list .quick-input-list-entry .quick-input-list-separator {
-  margin-right: 4px;
-}
-.quick-input-list .quick-input-list-entry-action-bar {
-  display: flex;
-  flex: 0;
-  overflow: visible;
-}
-.quick-input-list .quick-input-list-entry-action-bar .action-label {
-  display: none;
-}
-.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon {
-  margin-right: 4px;
-  padding: 2px;
-}
-.quick-input-list .quick-input-list-entry-action-bar {
-  margin-top: 1px;
-}
-.quick-input-list .quick-input-list-entry-action-bar {
-  margin-right: 4px;
-}
-.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,
-.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label,
-.quick-input-list .quick-input-list-entry.focus-inside .quick-input-list-entry-action-bar .action-label,
-.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,
-.quick-input-list .monaco-list-row.passive-focused .quick-input-list-entry-action-bar .action-label {
-  display: flex;
-}
-.quick-input-list > .monaco-list:focus .monaco-list-row.focused {
-  outline: 1px solid var(--vscode-list-focusOutline) !important;
-  outline-offset: -1px;
-}
-.quick-input-list > .monaco-list:focus .monaco-list-row.focused .quick-input-list-entry.quick-input-list-separator-border {
-  border-color: transparent;
-}
-.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,
-.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator {
-  color: inherit;
-}
-.quick-input-list .monaco-list-row.focused .monaco-keybinding-key {
-  background: none;
-}
-.quick-input-list .quick-input-list-separator-as-item {
-  padding: 4px 6px;
-  font-size: 12px;
-}
-.quick-input-list .quick-input-list-separator-as-item .label-name {
-  font-weight: 600;
-}
-.quick-input-list .quick-input-list-separator-as-item .label-description {
-  opacity: 1 !important;
-}
-.quick-input-list .monaco-tree-sticky-row .quick-input-list-entry.quick-input-list-separator-as-item.quick-input-list-separator-border {
-  border-top-style: none;
-}
-.quick-input-list .monaco-tree-sticky-row {
-  padding: 0 5px;
-}
-.quick-input-list .monaco-tl-twistie {
-  display: none !important;
-}
-.quick-input-tree .monaco-list {
-  overflow: hidden;
-  max-height: calc(20 * 22px);
-  padding-bottom: 5px;
-}
-.quick-input-tree .quick-input-tree-entry {
-  box-sizing: border-box;
-  overflow: hidden;
-  display: flex;
-  padding: 0 6px;
-}
-.quick-input-tree .quick-input-tree-label {
-  overflow: hidden;
-  display: flex;
-  height: 100%;
-  flex: 1;
-}
-.quick-input-tree .quick-input-tree-icon {
-  background-size: 16px;
-  background-position: left center;
-  background-repeat: no-repeat;
-  padding-right: 6px;
-  width: 16px;
-  height: 22px;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-}
-.quick-input-tree .quick-input-tree-rows {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  display: flex;
-  flex-direction: column;
-  height: 100%;
-  flex: 1;
-  margin-left: 5px;
-}
-.quick-input-tree .quick-input-tree-rows > .quick-input-tree-row {
-  display: flex;
-  align-items: center;
-}
-.quick-input-tree .quick-input-tree-rows > .quick-input-tree-row .monaco-icon-label,
-.quick-input-tree .quick-input-tree-rows > .quick-input-tree-row .monaco-icon-label .monaco-icon-label-container > .monaco-icon-name-container {
-  flex: 1;
-}
-.quick-input-tree .quick-input-tree-rows > .quick-input-tree-row .codicon[class*=codicon-] {
-  vertical-align: text-bottom;
-}
-.quick-input-tree .quick-input-tree-rows .monaco-highlighted-label > span {
-  opacity: 1;
-}
-.quick-input-tree .quick-input-tree-entry-action-bar {
-  display: flex;
-  flex: 0;
-  overflow: visible;
-}
-.quick-input-tree .quick-input-tree-entry-action-bar .action-label {
-  display: none;
-}
-.quick-input-tree .quick-input-tree-entry-action-bar .action-label.codicon {
-  margin-right: 4px;
-  padding: 2px;
-}
-.quick-input-tree .quick-input-tree-entry-action-bar {
-  margin-top: 1px;
-}
-.quick-input-tree .quick-input-tree-entry-action-bar {
-  margin-right: 4px;
-}
-.quick-input-tree .quick-input-tree-entry .quick-input-tree-entry-action-bar .action-label.always-visible,
-.quick-input-tree .quick-input-tree-entry:hover .quick-input-tree-entry-action-bar .action-label,
-.quick-input-tree .quick-input-tree-entry.focus-inside .quick-input-tree-entry-action-bar .action-label,
-.quick-input-tree .monaco-list-row.focused .quick-input-tree-entry-action-bar .action-label,
-.quick-input-tree .monaco-list-row.passive-focused .quick-input-tree-entry-action-bar .action-label {
-  display: flex;
-}
-.quick-input-tree > .monaco-list:focus .monaco-list-row.focused {
-  outline: 1px solid var(--vscode-list-focusOutline) !important;
-  outline-offset: -1px;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/base/browser/ui/progressbar/progressbar.css */
-.monaco-progress-container {
-  width: 100%;
-  height: 2px;
-  overflow: hidden;
-}
-.monaco-progress-container .progress-bit {
-  width: 2%;
-  height: 2px;
-  position: absolute;
-  left: 0;
-  display: none;
-}
-.monaco-progress-container.active .progress-bit {
-  display: inherit;
-}
-.monaco-progress-container.discrete .progress-bit {
-  left: 0;
-  transition: width 100ms linear;
-}
-.monaco-progress-container.discrete.done .progress-bit {
-  width: 100%;
-}
-.monaco-progress-container.infinite .progress-bit {
-  animation-name: progress;
-  animation-duration: 4s;
-  animation-iteration-count: infinite;
-  transform: translate3d(0px, 0px, 0px);
-  animation-timing-function: linear;
-}
-.monaco-progress-container.infinite.infinite-long-running .progress-bit {
-  animation-timing-function: steps(100);
-}
-@keyframes progress {
-  from {
-    transform: translateX(0%) scaleX(1);
-  }
-  50% {
-    transform: translateX(2500%) scaleX(3);
-  }
-  to {
-    transform: translateX(4900%) scaleX(1);
-  }
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/widget/markdownRenderer/browser/renderedMarkdown.css */
-.monaco-editor .rendered-markdown kbd {
-  background-color: var(--vscode-keybindingLabel-background);
-  color: var(--vscode-keybindingLabel-foreground);
-  border-style: solid;
-  border-width: 1px;
-  border-radius: 3px;
-  border-color: var(--vscode-keybindingLabel-border);
-  border-bottom-color: var(--vscode-keybindingLabel-bottomBorder);
-  box-shadow: inset 0 -1px 0 var(--vscode-widget-shadow);
-  vertical-align: middle;
-  padding: 1px 3px;
-}
-.rendered-markdown li:has(input[type=checkbox]) {
-  list-style-type: none;
-}
-
-/* ../node_modules/monaco-editor/esm/vs/editor/browser/widget/multiDiffEditor/style.css */
-.monaco-component.multiDiffEditor {
-  background: var(--vscode-multiDiffEditor-background);
-  position: relative;
-  height: 100%;
-  width: 100%;
-  overflow-y: hidden;
-  > div {
-    position: absolute;
-    top: 0px;
-    left: 0px;
-    height: 100%;
-    width: 100%;
-    &.placeholder {
-      visibility: hidden;
-      &.visible {
-        visibility: visible;
-      }
-      display: grid;
-      place-items: center;
-      place-content: center;
-    }
-  }
-  .active {
-    --vscode-multiDiffEditor-border: var(--vscode-focusBorder);
-  }
-  .multiDiffEntry {
-    display: flex;
-    flex-direction: column;
-    flex: 1;
-    overflow: hidden;
-    .collapse-button {
-      margin: 0 5px;
-      cursor: pointer;
-      a {
-        display: block;
-      }
-    }
-    .header {
-      z-index: 1000;
-      background: var(--vscode-editor-background);
-      &:not(.collapsed) .header-content {
-        border-bottom: 1px solid var(--vscode-sideBarSectionHeader-border);
-      }
-      .header-content {
-        margin: 8px 0px 0px 0px;
-        padding: 4px 5px;
-        border-top: 1px solid var(--vscode-multiDiffEditor-border);
-        display: flex;
-        align-items: center;
-        color: var(--vscode-foreground);
-        background: var(--vscode-multiDiffEditor-headerBackground);
-        &.shadow {
-          box-shadow: var(--vscode-scrollbar-shadow) 0px 6px 6px -6px;
-        }
-        .file-path {
-          display: flex;
-          flex: 1;
-          min-width: 0;
-          .title {
-            font-size: 14px;
-            line-height: 22px;
-            &.original {
-              flex: 1;
-              min-width: 0;
-              text-overflow: ellipsis;
-            }
-          }
-          .status {
-            font-weight: 600;
-            opacity: 0.75;
-            margin: 0px 10px;
-            line-height: 22px;
-          }
-        }
-        .actions {
-          padding: 0 8px;
-        }
-      }
-    }
-    .editorParent {
-      flex: 1;
-      display: flex;
-      flex-direction: column;
-      border-bottom: 1px solid var(--vscode-multiDiffEditor-border);
-      overflow: hidden;
-    }
-    .editorContainer {
-      flex: 1;
-    }
-  }
-}
+.monaco-aria-container{position:absolute;left:-999em}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{position:relative;overflow:visible;-webkit-text-size-adjust:100%;color:var(--vscode-editor-foreground);background-color:var(--vscode-editor-background);overflow-wrap:initial}.monaco-editor-background{background-color:var(--vscode-editor-background)}.monaco-editor .rangeHighlight{background-color:var(--vscode-editor-rangeHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-rangeHighlightBorder)}.monaco-editor.hc-black .rangeHighlight,.monaco-editor.hc-light .rangeHighlight{border-style:dotted}.monaco-editor .symbolHighlight{background-color:var(--vscode-editor-symbolHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-symbolHighlightBorder)}.monaco-editor.hc-black .symbolHighlight,.monaco-editor.hc-light .symbolHighlight{border-style:dotted}.monaco-editor .editorCanvas{position:absolute;width:100%;height:100%;z-index:0;pointer-events:none}.monaco-editor .overflow-guard{position:relative;overflow:hidden}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .view-overlays>div,.monaco-editor .margin-view-overlays>div{position:absolute;width:100%}.monaco-editor .squiggly-error{border-bottom:4px double var(--vscode-editorError-border)}.monaco-editor .squiggly-error:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorError-background)}.monaco-editor .squiggly-warning{border-bottom:4px double var(--vscode-editorWarning-border)}.monaco-editor .squiggly-warning:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorWarning-background)}.monaco-editor .squiggly-info{border-bottom:4px double var(--vscode-editorInfo-border)}.monaco-editor .squiggly-info:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorInfo-background)}.monaco-editor .squiggly-hint{border-bottom:2px dotted var(--vscode-editorHint-border)}.monaco-editor.showUnused .squiggly-unnecessary{border-bottom:2px dashed var(--vscode-editorUnnecessaryCode-border)}.monaco-editor.showDeprecated .squiggly-inline-deprecated{text-decoration:line-through;text-decoration-color:var(--vscode-editor-foreground, inherit)}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{position:absolute;display:none}.monaco-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.monaco-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.scrollbar{background:var(--vscode-scrollbar-background)}.monaco-scrollable-element>.scrollbar>.slider{background:var(--vscode-scrollbarSlider-background)}.monaco-scrollable-element>.scrollbar>.slider:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-scrollable-element>.scrollbar>.slider.active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .blockDecorations-container{position:absolute;top:0;pointer-events:none}.monaco-editor .blockDecorations-block{position:absolute;box-sizing:border-box}.monaco-editor .view-overlays .current-line,.monaco-editor .margin-view-overlays .current-line{display:block;position:absolute;left:0;top:0;box-sizing:border-box;height:100%}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{position:absolute;height:100%}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .glyph-margin-widgets .cgmr{position:absolute;display:flex;align-items:center;justify-content:center}.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin:before{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.monaco-editor .lines-content .core-guide{position:absolute;box-sizing:border-box;height:100%}.monaco-editor .margin-view-overlays .line-numbers{bottom:0;font-variant-numeric:tabular-nums;position:absolute;text-align:right;display:inline-block;vertical-align:middle;box-sizing:border-box;cursor:default}.monaco-editor .relative-current-line-number{text-align:left;display:inline-block;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-editor .line-numbers{color:var(--vscode-editorLineNumber-foreground)}.monaco-editor .line-numbers.active-line-number{color:var(--vscode-editorLineNumber-activeForeground)}.monaco-mouse-cursor-text{cursor:text}.mtkcontrol{color:#fff!important;background:#960000!important}.mtkoverflow{background-color:var(--vscode-button-background, var(--vscode-editor-background));color:var(--vscode-button-foreground, var(--vscode-editor-foreground));border-width:1px;border-style:solid;border-color:var(--vscode-contrastBorder);border-radius:2px;padding:4px;cursor:pointer}.mtkoverflow:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{user-select:none;-webkit-user-select:none}.monaco-editor.mac .lines-content:hover,.monaco-editor.mac .view-line:hover,.monaco-editor.mac .view-lines:hover{user-select:text;-webkit-user-select:text;-ms-user-select:text}.monaco-editor.enable-user-select{user-select:initial;-webkit-user-select:initial}.monaco-editor .view-lines{white-space:nowrap}.monaco-editor .view-line{box-sizing:border-box;position:absolute;width:100%}.monaco-editor .lines-content>.view-lines>.view-line>span{top:0;bottom:0;position:absolute}.monaco-editor .mtkw{color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .mtkz{display:inline-block;color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .lines-decorations{position:absolute;top:0;background:#fff}.monaco-editor .margin-view-overlays .cldr{position:absolute;height:100%}.monaco-editor .margin{background-color:var(--vscode-editorGutter-background)}.monaco-editor .margin-view-overlays .cmdr{position:absolute;left:0;width:100%;height:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover:hover .minimap-slider,.monaco-editor .minimap.slider-mouseover .minimap-slider.active{opacity:1}.monaco-editor .minimap-slider .minimap-slider-horizontal{background:var(--vscode-minimapSlider-background)}.monaco-editor .minimap-slider:hover .minimap-slider-horizontal{background:var(--vscode-minimapSlider-hoverBackground)}.monaco-editor .minimap-slider.active .minimap-slider-horizontal{background:var(--vscode-minimapSlider-activeBackground)}.monaco-editor .minimap-shadow-visible{box-shadow:var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{position:absolute;left:-6px;width:6px;pointer-events:none}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{position:absolute;left:-1px;width:1px}.minimap.minimap-autohide-mouseover,.minimap.minimap-autohide-scroll{opacity:0;transition:opacity .5s}.minimap.minimap-autohide-scroll{pointer-events:none}.minimap.minimap-autohide-mouseover:hover,.minimap.minimap-autohide-scroll.active{opacity:1;pointer-events:auto}.monaco-editor .minimap{z-index:5}.monaco-editor .overlayWidgets{position:absolute;top:0;left:0}.monaco-editor .view-ruler{position:absolute;top:0;box-shadow:1px 0 0 0 var(--vscode-editorRuler-foreground) inset}.monaco-editor .scroll-decoration{position:absolute;top:0;left:0;height:6px;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .focused .selected-text{background-color:var(--vscode-editor-selectionBackground)}.monaco-editor .selected-text{background-color:var(--vscode-editor-inactiveSelectionBackground)}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor.hc-light .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-light .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-light .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-light .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{position:absolute;overflow:hidden;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{background:transparent!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{border-bottom-width:2px;border-bottom-style:solid;background:transparent!important}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{border-bottom-width:1px;border-bottom-style:solid;background:transparent!important}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-expand{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-editor .mwh{position:absolute;color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .monaco-decoration-css-rule-extractor{visibility:hidden;pointer-events:none}.monaco-editor .inputarea{min-width:0;min-height:0;margin:0;padding:0;position:absolute;outline:none!important;resize:none;border:none;overflow:hidden;color:transparent;background-color:transparent;z-index:-10}.monaco-editor .inputarea.ime-input{z-index:10;caret-color:var(--vscode-editorCursor-foreground);color:var(--vscode-editor-foreground)}.monaco-editor .native-edit-context{margin:0;padding:0;position:absolute;overflow-y:scroll;scrollbar-width:none;z-index:-10;white-space:pre-wrap}.monaco-editor .ime-text-area{min-width:0;min-height:0;margin:0;padding:0;position:absolute;outline:none!important;resize:none;border:none;overflow:hidden;color:transparent;background-color:transparent;z-index:-10}.monaco-editor .edit-context-composition-none{background-color:transparent;border-bottom:none}.monaco-editor :not(.hc-black,.hc-light) .edit-context-composition-secondary{border-bottom:1px solid var(--vscode-editor-compositionBorder)}.monaco-editor :not(.hc-black,.hc-light) .edit-context-composition-primary{border-bottom:2px solid var(--vscode-editor-compositionBorder)}.monaco-editor :is(.hc-black,.hc-light) .edit-context-composition-secondary{border:1px solid var(--vscode-editor-compositionBorder)}.monaco-editor :is(.hc-black,.hc-light) .edit-context-composition-primary{border:2px solid var(--vscode-editor-compositionBorder)}.monaco-editor .margin-view-overlays .gpu-mark{position:absolute;top:0;bottom:0;left:0;width:100%;display:inline-block;border-left:solid 2px var(--vscode-editorWarning-foreground);opacity:.2;transition:background-color .1s linear}.monaco-editor .margin-view-overlays .gpu-mark:hover{background-color:var(--vscode-editorWarning-foreground)}.monaco-select-box{width:100%;cursor:pointer;border-radius:2px}.monaco-select-box-dropdown-container{font-size:13px;font-weight:400;text-transform:none}.monaco-action-bar .action-item.select-container{cursor:default}.monaco-action-bar .action-item .monaco-select-box{cursor:pointer;min-width:100px;min-height:18px;padding:2px 23px 2px 8px}.mac .monaco-action-bar .action-item .monaco-select-box{font-size:11px;border-radius:3px;min-height:24px}.monaco-list{position:relative;height:100%;width:100%;white-space:nowrap}.monaco-list.mouse-support{user-select:none;-webkit-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{position:relative;width:100%;height:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{width:auto;min-width:100%}.monaco-list-row{position:absolute;box-sizing:border-box;overflow:hidden;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list .monaco-scrollable-element>.scrollbar.vertical,.monaco-pane-view>.monaco-split-view2.vertical>.monaco-scrollable-element>.scrollbar.vertical{z-index:14}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-single,.monaco-list.selection-multiple{outline:0!important}.monaco-list-type-filter-message{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;padding:40px 1em 1em;text-align:center;white-space:normal;opacity:.7;pointer-events:none}.monaco-list-type-filter-message:empty{display:none}.monaco-drag-image{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;position:absolute;z-index:1000;background-color:var(--vscode-list-activeSelectionBackground);color:var(--vscode-list-activeSelectionForeground);outline:1px solid var(--vscode-list-focusOutline);outline-offset:-1px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-select-box-dropdown-padding{--dropdown-padding-top: 1px;--dropdown-padding-bottom: 1px}.hc-black .monaco-select-box-dropdown-padding,.hc-light .monaco-select-box-dropdown-padding{--dropdown-padding-top: 3px;--dropdown-padding-bottom: 4px}.monaco-select-box-dropdown-container{display:none;box-sizing:border-box}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown *{margin:0}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown a:focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown code{line-height:15px;font-family:var(--monaco-monospace-font)}.monaco-select-box-dropdown-container.visible{display:flex;flex-direction:column;text-align:left;width:1px;overflow:hidden;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container{flex:0 0 auto;align-self:flex-start;padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom);padding-left:1px;padding-right:1px;width:100%;overflow:hidden;box-sizing:border-box}.monaco-select-box-dropdown-container>.select-box-details-pane{padding:5px}.hc-black .monaco-select-box-dropdown-container>.select-box-dropdown-list-container{padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom)}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row{cursor:pointer}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-text{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-detail{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left;opacity:.7}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-decorator-right{text-overflow:ellipsis;overflow:hidden;padding-right:10px;white-space:nowrap;float:right}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.visually-hidden{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control{flex:1 1 auto;align-self:flex-start;opacity:0}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div{overflow:hidden;max-height:0px}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div>.option-text-width-control{padding-left:4px;padding-right:8px;white-space:nowrap}.monaco-action-bar{white-space:nowrap;height:100%}.monaco-action-bar .actions-container{display:flex;margin:0 auto;padding:0;height:100%;width:100%;align-items:center}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar .action-item{display:block;align-items:center;justify-content:center;cursor:pointer;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar .action-item .icon,.monaco-action-bar .action-item .codicon{display:block}.monaco-action-bar .action-item .codicon{display:flex;align-items:center;width:16px;height:16px}.monaco-action-bar .action-label{display:flex;font-size:11px;padding:3px;border-radius:5px}.monaco-action-bar .action-item.disabled .action-label:not(.icon),.monaco-action-bar .action-item.disabled .action-label:not(.icon):before,.monaco-action-bar .action-item.disabled .action-label:not(.icon):hover{color:var(--vscode-disabledForeground)}.monaco-action-bar .action-item.disabled .action-label.icon,.monaco-action-bar .action-item.disabled .action-label.icon:before,.monaco-action-bar .action-item.disabled .action-label.icon:hover{opacity:.6}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{display:block;border-bottom:1px solid var(--vscode-disabledForeground);padding-top:1px;margin-left:.8em;margin-right:.8em}.monaco-action-bar .action-item .action-label.separator{width:1px;height:16px;margin:5px 4px!important;cursor:default;min-width:1px;padding:0;background-color:var(--vscode-disabledForeground)}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{overflow:hidden;flex:1;max-width:170px;min-width:60px;display:flex;align-items:center;justify-content:center;margin-right:10px}.monaco-action-bar .action-item.action-dropdown-item{display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator{display:flex;align-items:center;cursor:default}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator>div{width:1px}.monaco-diff-editor .diff-review{position:absolute}.monaco-component.diff-review{user-select:none;-webkit-user-select:none;z-index:99;.diff-review-line-number{text-align:right;display:inline-block;color:var(--vscode-editorLineNumber-foreground)}.diff-review-summary{padding-left:10px}.diff-review-shadow{position:absolute;box-shadow:var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset}.diff-review-row{white-space:pre}.diff-review-table{display:table;min-width:100%}.diff-review-row{display:table-row;width:100%}.diff-review-spacer{display:inline-block;width:10px;vertical-align:middle}.diff-review-spacer>.codicon{font-size:9px!important}.diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px;z-index:100}.diff-review-actions .action-label{width:16px;height:16px;margin:2px 0}.revertButton{cursor:pointer}.action-label{background:var(--vscode-editorActionList-background)}}:root{--vscode-sash-size: 4px;--vscode-sash-hover-size: 4px}.monaco-sash{position:absolute;z-index:35;touch-action:none}.monaco-sash.disabled{pointer-events:none}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.vertical{cursor:ew-resize;top:0;width:var(--vscode-sash-size);height:100%}.monaco-sash.horizontal{cursor:ns-resize;left:0;width:100%;height:var(--vscode-sash-size)}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:" ";height:calc(var(--vscode-sash-size) * 2);width:calc(var(--vscode-sash-size) * 2);z-index:100;display:block;cursor:all-scroll;position:absolute}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:calc(var(--vscode-sash-size) * -.5);top:calc(var(--vscode-sash-size) * -1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{left:calc(var(--vscode-sash-size) * -.5);bottom:calc(var(--vscode-sash-size) * -1)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{top:calc(var(--vscode-sash-size) * -.5);left:calc(var(--vscode-sash-size) * -1)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{top:calc(var(--vscode-sash-size) * -.5);right:calc(var(--vscode-sash-size) * -1)}.monaco-sash:before{content:"";pointer-events:none;position:absolute;width:100%;height:100%;background:transparent}.monaco-enable-motion .monaco-sash:before{transition:background-color .1s ease-out}.monaco-sash.hover:before,.monaco-sash.active:before{background:var(--vscode-sash-hoverBorder)}.monaco-sash.vertical:before{width:var(--vscode-sash-hover-size);left:calc(50% - (var(--vscode-sash-hover-size) / 2))}.monaco-sash.horizontal:before{height:var(--vscode-sash-hover-size);top:calc(50% - (var(--vscode-sash-hover-size) / 2))}.pointer-events-disabled{pointer-events:none!important}.monaco-sash.debug{background:#0ff}.monaco-sash.debug.disabled{background:#0ff3}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.monaco-dropdown{height:100%;padding:0}.monaco-dropdown>.dropdown-label{cursor:pointer;height:100%;display:flex;align-items:center;justify-content:center}.monaco-dropdown>.dropdown-label>.action-label.disabled{cursor:default}.monaco-dropdown-with-primary{display:flex!important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-primary>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{display:block;background-size:16px;background-position:center center;background-repeat:no-repeat}.monaco-toolbar{height:100%}.monaco-toolbar .toolbar-toggle-more{display:inline-block;padding:0}.monaco-toolbar.responsive{.monaco-action-bar>.actions-container>.action-item{flex-shrink:1;min-width:20px}}.monaco-action-bar .action-item.menu-entry .action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-action-bar .action-item.menu-entry.text-only .action-label{color:var(--vscode-descriptionForeground);overflow:hidden;border-radius:2px}.monaco-action-bar .action-item.menu-entry.text-only.use-comma:not(:last-of-type) .action-label:after{content:", "}.monaco-action-bar .action-item.menu-entry.text-only+.action-item:not(.text-only)>.monaco-dropdown .action-label{color:var(--vscode-descriptionForeground)}.monaco-dropdown-with-default{display:flex!important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-default>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-default>.action-container.menu-entry>.action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-dropdown-with-default:hover{background-color:var(--vscode-toolbar-hoverBackground)}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{display:block;background-size:16px;background-position:center center;background-repeat:no-repeat}.monaco-editor .diff-hidden-lines-widget{width:100%}.monaco-editor .diff-hidden-lines{height:0px;transform:translateY(-10px);font-size:13px;line-height:14px}.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover,.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover,.monaco-editor .diff-hidden-lines .top.dragging,.monaco-editor .diff-hidden-lines .bottom.dragging{background-color:var(--vscode-focusBorder)}.monaco-editor .diff-hidden-lines .top,.monaco-editor .diff-hidden-lines .bottom{transition:background-color .1s ease-out;height:4px;background-color:transparent;background-clip:padding-box;border-bottom:2px solid transparent;border-top:4px solid transparent}.monaco-editor.draggingUnchangedRegion.canMoveTop:not(.canMoveBottom) *,.monaco-editor .diff-hidden-lines .top.canMoveTop:not(.canMoveBottom),.monaco-editor .diff-hidden-lines .bottom.canMoveTop:not(.canMoveBottom){cursor:n-resize!important}.monaco-editor.draggingUnchangedRegion:not(.canMoveTop).canMoveBottom *,.monaco-editor .diff-hidden-lines .top:not(.canMoveTop).canMoveBottom,.monaco-editor .diff-hidden-lines .bottom:not(.canMoveTop).canMoveBottom{cursor:s-resize!important}.monaco-editor.draggingUnchangedRegion.canMoveTop.canMoveBottom *,.monaco-editor .diff-hidden-lines .top.canMoveTop.canMoveBottom,.monaco-editor .diff-hidden-lines .bottom.canMoveTop.canMoveBottom{cursor:ns-resize!important}.monaco-editor .diff-hidden-lines .top{transform:translateY(4px)}.monaco-editor .diff-hidden-lines .bottom{transform:translateY(-6px)}.monaco-editor .diff-unchanged-lines{background:var(--vscode-diffEditor-unchangedCodeBackground)}.monaco-editor .noModificationsOverlay{z-index:1;background:var(--vscode-editor-background);display:flex;justify-content:center;align-items:center}.monaco-editor .diff-hidden-lines .center{background:var(--vscode-diffEditor-unchangedRegionBackground);color:var(--vscode-diffEditor-unchangedRegionForeground);overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;height:24px;box-shadow:inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow),inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow)}.monaco-editor .diff-hidden-lines .center span.codicon{vertical-align:middle}.monaco-editor .diff-hidden-lines .center a:hover .codicon{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .diff-hidden-lines div.breadcrumb-item{cursor:pointer}.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover{color:var(--vscode-editorLink-activeForeground)}.monaco-editor .movedOriginal,.monaco-editor .movedModified{border:2px solid var(--vscode-diffEditor-move-border)}.monaco-editor .movedOriginal.currentMove,.monaco-editor .movedModified.currentMove{border:2px solid var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path.currentMove{stroke:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path{pointer-events:visiblestroke}.monaco-diff-editor .moved-blocks-lines .arrow{fill:var(--vscode-diffEditor-move-border)}.monaco-diff-editor .moved-blocks-lines .arrow.currentMove{fill:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines .arrow-rectangle{fill:var(--vscode-editor-background)}.monaco-diff-editor .moved-blocks-lines{position:absolute;pointer-events:none}.monaco-diff-editor .moved-blocks-lines path{fill:none;stroke:var(--vscode-diffEditor-move-border);stroke-width:2}.monaco-editor .char-delete.diff-range-empty{margin-left:-1px;border-left:solid var(--vscode-diffEditor-removedTextBackground) 3px}.monaco-editor .char-insert.diff-range-empty{border-left:solid var(--vscode-diffEditor-insertedTextBackground) 3px}.monaco-editor .fold-unchanged{cursor:pointer}.monaco-diff-editor .diff-moved-code-block{display:flex;justify-content:flex-end;margin-top:-4px}.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon{width:12px;height:12px;font-size:12px}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport{z-index:10}.monaco-diff-editor.vs .diffOverview{background:#00000008}.monaco-diff-editor.vs-dark .diffOverview{background:#ffffff03}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar{background:#0000}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:#ababab66}.modified-in-monaco-diff-editor.hc-black .slider.active,.modified-in-monaco-diff-editor.hc-light .slider.active{background:none}.monaco-editor .insert-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-diff-editor .delete-sign{font-size:11px!important;opacity:.7!important;display:flex!important;align-items:center}.monaco-editor.hc-black .insert-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .delete-sign,.monaco-editor.hc-light .insert-sign,.monaco-diff-editor.hc-light .insert-sign,.monaco-editor.hc-light .delete-sign,.monaco-diff-editor.hc-light .delete-sign{opacity:1}.monaco-editor .inline-deleted-margin-view-zone,.monaco-editor .inline-added-margin-view-zone{text-align:right}.monaco-editor .arrow-revert-change{z-index:10;position:absolute}.monaco-editor .arrow-revert-change:hover{cursor:pointer}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}.monaco-editor .char-insert,.monaco-diff-editor .char-insert{background-color:var(--vscode-diffEditor-insertedTextBackground)}.monaco-editor .line-insert,.monaco-diff-editor .line-insert{background-color:var(--vscode-diffEditor-insertedLineBackground, var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .line-insert,.monaco-editor .char-insert{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-insertedTextBorder)}.monaco-editor.hc-black .line-insert,.monaco-editor.hc-light .line-insert,.monaco-editor.hc-black .char-insert,.monaco-editor.hc-light .char-insert{border-style:dashed}.monaco-editor .line-delete,.monaco-editor .char-delete{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-removedTextBorder)}.monaco-editor.hc-black .line-delete,.monaco-editor.hc-light .line-delete,.monaco-editor.hc-black .char-delete,.monaco-editor.hc-light .char-delete{border-style:dashed}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .gutter-insert,.monaco-diff-editor .gutter-insert{background-color:var(--vscode-diffEditorGutter-insertedLineBackground, var(--vscode-diffEditor-insertedLineBackground), var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .char-delete,.monaco-diff-editor .char-delete,.monaco-editor .inline-deleted-text{background-color:var(--vscode-diffEditor-removedTextBackground)}.monaco-editor .inline-deleted-text{text-decoration:line-through}.monaco-editor .line-delete,.monaco-diff-editor .line-delete{background-color:var(--vscode-diffEditor-removedLineBackground, var(--vscode-diffEditor-removedTextBackground))}.monaco-editor .inline-deleted-margin-view-zone,.monaco-editor .gutter-delete,.monaco-diff-editor .gutter-delete{background-color:var(--vscode-diffEditorGutter-removedLineBackground, var(--vscode-diffEditor-removedLineBackground), var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor.side-by-side .editor.modified{box-shadow:-6px 0 5px -5px var(--vscode-scrollbar-shadow);border-left:1px solid var(--vscode-diffEditor-border)}.monaco-diff-editor.side-by-side .editor.original{box-shadow:6px 0 5px -5px var(--vscode-scrollbar-shadow);border-right:1px solid var(--vscode-diffEditor-border)}.monaco-diff-editor .diffViewport{background:var(--vscode-scrollbarSlider-background)}.monaco-diff-editor .diffViewport:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-diff-editor .diffViewport:active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .diagonal-fill{background-image:linear-gradient(-45deg,var(--vscode-diffEditor-diagonalFill) 12.5%,#0000 12.5%,#0000 50%,var(--vscode-diffEditor-diagonalFill) 50%,var(--vscode-diffEditor-diagonalFill) 62.5%,#0000 62.5%,#0000 100%);background-size:8px 8px}.monaco-diff-editor .gutter{position:relative;overflow:hidden;flex-shrink:0;flex-grow:0;>div{position:absolute}.gutterItem{opacity:0;transition:opacity .7s;&.showAlways{opacity:1;transition:none}&.noTransition{transition:none}}&:hover .gutterItem{opacity:1;transition:opacity .1s ease-in-out}.gutterItem{.background{position:absolute;height:100%;left:50%;width:1px;border-left:2px var(--vscode-menu-separatorBackground) solid}.buttons{position:absolute;width:100%;display:flex;justify-content:center;align-items:center;.monaco-toolbar{height:fit-content;.monaco-action-bar{line-height:1;.actions-container{width:fit-content;border-radius:4px;background:var(--vscode-editorGutter-itemBackground);.action-item{&:hover{background:var(--vscode-toolbar-hoverBackground)}.action-label{color:var(--vscode-editorGutter-itemGlyphForeground);padding:1px 2px}}}}}}}}.monaco-diff-editor .diff-hidden-lines-compact{display:flex;height:11px;.line-left,.line-right{height:1px;border-top:1px solid;border-color:var(--vscode-editorCodeLens-foreground);opacity:.5;margin:auto;width:100%}.line-left{width:20px}.text{color:var(--vscode-editorCodeLens-foreground);text-wrap:nowrap;font-size:11px;line-height:11px;margin:0 4px}}.monaco-editor .line-delete-selectable{user-select:text!important;-webkit-user-select:text!important;z-index:1!important}.line-delete-selectable .view-line{user-select:text!important;-webkit-user-select:text!important}.monaco-editor .selection-anchor{background-color:#007acc;width:2px!important}.monaco-editor .bracket-match{box-sizing:border-box;background-color:var(--vscode-editorBracketMatch-background);border:1px solid var(--vscode-editorBracketMatch-border)}.inline-editor-progress-decoration{display:inline-block;width:1em;height:1em}.inline-progress-widget{display:flex!important;justify-content:center;align-items:center}.inline-progress-widget .icon{font-size:80%!important}.inline-progress-widget:hover .icon{font-size:90%!important;animation:none}.inline-progress-widget:hover .icon:before{content:var(--vscode-icon-x-content);font-family:var(--vscode-icon-x-font-family)}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px;z-index:10000}.monaco-editor .monaco-editor-overlaymessage.below{padding-bottom:0;padding-top:8px;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:fadeIn .15s ease-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:fadeOut .1s ease-out}.monaco-editor .monaco-editor-overlaymessage .message{padding:2px 4px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-inputValidation-infoBorder);border-radius:3px}.monaco-editor .monaco-editor-overlaymessage .message p{margin-block:0px}.monaco-editor .monaco-editor-overlaymessage .message a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-editor-overlaymessage .message a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor.hc-black .monaco-editor-overlaymessage .message,.monaco-editor.hc-light .monaco-editor-overlaymessage .message{border-width:2px}.monaco-editor .monaco-editor-overlaymessage .anchor{width:0!important;height:0!important;border-color:transparent;border-style:solid;z-index:1000;border-width:8px;position:absolute;left:2px}.monaco-editor .monaco-editor-overlaymessage .anchor.top{border-bottom-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage .anchor.below{border-top-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top,.monaco-editor .monaco-editor-overlaymessage.below .anchor.below{display:none}.monaco-editor .monaco-editor-overlaymessage.below .anchor.top{display:inherit;top:-8px}.monaco-text-button{box-sizing:border-box;display:flex;width:100%;padding:4px;border-radius:2px;text-align:center;cursor:pointer;justify-content:center;align-items:center;border:1px solid var(--vscode-button-border, transparent);line-height:18px}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled:focus,.monaco-button.disabled{opacity:.4!important;cursor:default}.monaco-text-button .codicon{margin:0 .2em;color:inherit!important}.monaco-text-button.monaco-text-button-with-short-label{flex-direction:row;flex-wrap:wrap;padding:0 4px;overflow:hidden;height:28px}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label{flex-basis:100%}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{flex-grow:1;width:0;overflow:hidden}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label,.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{display:flex;justify-content:center;align-items:center;font-weight:400;font-style:inherit;padding:4px 0}.monaco-button-dropdown{display:flex;cursor:pointer}.monaco-button-dropdown.disabled{cursor:default}.monaco-button-dropdown>.monaco-button:focus{outline-offset:-1px!important}.monaco-button-dropdown.disabled>.monaco-button.disabled,.monaco-button-dropdown.disabled>.monaco-button.disabled:focus,.monaco-button-dropdown.disabled>.monaco-button-dropdown-separator{opacity:.4!important}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-right-width:0!important}.monaco-button-dropdown .monaco-button-dropdown-separator{padding:4px 0;cursor:default}.monaco-button-dropdown .monaco-button-dropdown-separator>div{height:100%;width:1px}.monaco-button-dropdown>.monaco-button.monaco-dropdown-button{border:1px solid var(--vscode-button-border, transparent);border-left-width:0!important;border-radius:0 2px 2px 0;display:flex;align-items:center}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-radius:2px 0 0 2px}.monaco-description-button{display:flex;flex-direction:column;align-items:center;margin:4px 5px}.monaco-description-button .monaco-button-description{font-style:italic;font-size:11px;padding:4px 20px}.monaco-description-button .monaco-button-label,.monaco-description-button .monaco-button-description{display:flex;justify-content:center;align-items:center}.monaco-description-button .monaco-button-label>.codicon,.monaco-description-button .monaco-button-description>.codicon{margin:0 .2em;color:inherit!important}.monaco-button.default-colors,.monaco-button-dropdown.default-colors>.monaco-button{color:var(--vscode-button-foreground);background-color:var(--vscode-button-background)}.monaco-button.default-colors:hover,.monaco-button-dropdown.default-colors>.monaco-button:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-button.default-colors.secondary,.monaco-button-dropdown.default-colors>.monaco-button.secondary{color:var(--vscode-button-secondaryForeground);background-color:var(--vscode-button-secondaryBackground)}.monaco-button.default-colors.secondary:hover,.monaco-button-dropdown.default-colors>.monaco-button.secondary:hover{background-color:var(--vscode-button-secondaryHoverBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator{background-color:var(--vscode-button-background);border-top:1px solid var(--vscode-button-border);border-bottom:1px solid var(--vscode-button-border)}.monaco-button-dropdown.default-colors .monaco-button.secondary+.monaco-button-dropdown-separator{background-color:var(--vscode-button-secondaryBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator>div{background-color:var(--vscode-button-separator)}.action-widget{font-size:13px;min-width:100px;max-width:80vw;z-index:40;display:block;width:100%;border:1px solid var(--vscode-menu-border)!important;border-radius:5px;background-color:var(--vscode-menu-background);color:var(--vscode-menu-foreground);padding:4px;box-shadow:0 2px 8px var(--vscode-widget-shadow)}.context-view-block{position:fixed;cursor:initial;left:0;top:0;width:100%;height:100%;z-index:-1}.context-view-pointerBlock{position:fixed;cursor:initial;left:0;top:0;width:100%;height:100%;z-index:2}.action-widget .monaco-list{user-select:none;-webkit-user-select:none;border:none!important;border-width:0!important}.action-widget .monaco-list:focus:before{outline:0!important}.action-widget .monaco-list .monaco-scrollable-element{overflow:visible}.action-widget .monaco-list .monaco-list-row{padding:0 4px;white-space:nowrap;cursor:pointer;touch-action:none;width:100%;border-radius:3px}.action-widget .monaco-list .monaco-list-row.action.focused:not(.option-disabled){background-color:var(--vscode-list-activeSelectionBackground)!important;color:var(--vscode-list-activeSelectionForeground);outline:1px solid var(--vscode-menu-selectionBorder, transparent);outline-offset:-1px}.action-widget .monaco-list-row.group-header{color:var(--vscode-descriptionForeground)!important;font-weight:600;font-size:13px}.action-widget .monaco-list-row.group-header:not(:first-of-type){margin-top:2px}.action-widget .monaco-scrollable-element .monaco-list-rows .monaco-list-row.separator{border-top:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-descriptionForeground);font-size:12px;padding:0;margin:4px 0 0;cursor:default;user-select:none;border-radius:0}.action-widget .monaco-scrollable-element .monaco-list-rows .monaco-list-row.separator.focused{outline:0 solid;background-color:transparent;border-radius:0}.action-widget .monaco-list-row.separator:first-of-type{border-top:none;margin-top:0}.action-widget .monaco-list .group-header,.action-widget .monaco-list .option-disabled,.action-widget .monaco-list .option-disabled:before,.action-widget .monaco-list .option-disabled .focused,.action-widget .monaco-list .option-disabled .focused:before{cursor:default!important;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background-color:transparent!important;outline:0 solid!important}.action-widget .monaco-list-row.action{display:flex;gap:4px;align-items:center}.action-widget .monaco-list-row.action.option-disabled,.action-widget .monaco-list:focus .monaco-list-row.focused.action.option-disabled,.action-widget .monaco-list-row.action.option-disabled .codicon,.action-widget .monaco-list:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused).option-disabled{color:var(--vscode-disabledForeground)}.action-widget .monaco-list-row.action:not(.option-disabled) .codicon{color:inherit}.action-widget .monaco-list-row.action .title{flex:1;overflow:hidden;text-overflow:ellipsis}.action-widget .monaco-list-row.action .monaco-keybinding>.monaco-keybinding-key{background-color:var(--vscode-keybindingLabel-background);color:var(--vscode-keybindingLabel-foreground);border-style:solid;border-width:1px;border-radius:3px;border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow)}.action-widget .action-widget-action-bar{background-color:var(--vscode-menu-background);border-top:1px solid var(--vscode-menu-border);margin-top:2px}.action-widget .action-widget-action-bar:before{display:block;content:"";width:100%}.action-widget .action-widget-action-bar .actions-container{padding:4px 8px 2px 24px}.action-widget-action-bar .action-label{color:var(--vscode-textLink-activeForeground);font-size:13px;line-height:22px;padding:0;pointer-events:all}.action-widget-action-bar .action-item{margin-right:16px;pointer-events:none}.action-widget-action-bar .action-label:hover{background-color:transparent!important}.monaco-action-bar .actions-container.highlight-toggled .action-label.checked{background:var(--vscode-actionBar-toggledBackground)!important}.action-widget .monaco-list .monaco-list-row .description{opacity:.7;margin-left:.5em}.monaco-keybinding{display:flex;align-items:center;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{display:inline-block;border-style:solid;border-width:1px;border-radius:3px;vertical-align:middle;font-size:11px;padding:3px 5px;margin:0 2px}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.post-edit-widget{box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:1px solid var(--vscode-widget-border, transparent);border-radius:4px;color:var(--vscode-button-foreground);background-color:var(--vscode-button-background);overflow:hidden}.post-edit-widget .monaco-button{padding:2px;border:none;border-radius:0}.post-edit-widget .monaco-button:hover{background-color:var(--vscode-button-hoverBackground)!important}.post-edit-widget .monaco-button .codicon{margin:0}@font-face{font-family:codicon;font-display:block;src:url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQiCLJXoAAAE4AAAAVE9TLzI3UEsvAAABjAAAAGBjbWFwdCJY8AAACfwAAB5QZ2x5ZpdPvvsAACxYAAGRYGhlYWRYkqBSAAAA4AAAADZoaGVhAlYDLwAAALwAAAAkaG10eFs1/+YAAAHsAAAIEGxvY2EPPKwaAAAoTAAABAptYXhwAx0BiAAAARgAAAAgbmFtZZP7uU8AAb24AAAB+HBvc3RPbs8TAAG/sAAAHMQAAQAAASwAAAAAASz/+v/+AS4AAQAAAAAAAAAAAAAAAAAAAgQAAQAAAAEAAD/d1LtfDzz1AAsBLAAAAAB8JbCAAAAAAHwlsID/+v/8AS4BLQAAAAgAAgAAAAAAAAABAAACBAF8AA8AAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAQBKwGQAAUAAAC+ANIAAAAqAL4A0gAAAJAADgBNAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwOpg8QMBLAAAABsBRwAEAAAAAQAAAAAAAAAAAAAAAAACAAAAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLP//ASz//wEsAAABLAAAASz//wEs//8BLP//ASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLP//ASz//wEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASz//AEsAAABLP//ASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABIAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLP//ASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABIAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASAAAAEsAAABLAAAASD/+gEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEgAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABIAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABIAAAASwAAAEsAAABIAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLAAAASwAAAEsAAABLAAAASz//wEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAAAAABQAAAAMAAAAsAAAABAAABaQAAQAAAAAEngADAAEAAAAsAAMACgAABaQABARyAAAAEgAQAAMAAuqI6ozqx+rJ6wnrTuxx8QP//wAA6mDqiuqP6snqzOsL61DxAf//AAAAAAAAAAAAAAAAAAAAAAABABIAYgBmANYA1gFQAdYEGAAAAAMBHAF8AXcA1gFmAckBUwDKAToBqQBXAfkBlAGfAZ4AqgA7AV0AnQDzASgARgHHAI0AGAH0ALUAnwFzAUsBQQFCAd4A7ADBAN4B1QG2AKMBxQGvAPsBvAGwAb4BxAHAAbkA4QG1AcIAAgAFAAYACwAMAA0ADgAPABAAEQATABwAHgAfACAAcABxAHIAcwB2AHcAIwAkACUAJgAoACsAMAAxADIAMwA0ADUANwA4ADkAOgBBAD4AQgBDAEQARQBHAEgATABOAFAAVABoAGoAawBsAHsAfQB/AIIAhgCIAIkAigCLAIwAjgCPAJAAkQCSAJMAlQCWAJgAmQCeAKAApACoAKkArACtAK4ArwCwALEAsgC0ALYAuAC6ALsAvAC9AL4AwADDAMQAxQDGAMsAzADPANoA2wDfAOMA5wDoAOsA7QDuAO8A8AD3APgA+QD6APsA/AD9AQEBGQEdAR4BIAEjASQBJQEmASoBKwEwATIBMwE5ATsBPAE9AT8BRAFFAUgBSgFNAU4BVgCGAVoBWwFcAV4BXwFhAWIBZAFlAWoBawFsAW0BbgFvAXEBcgF0AXYBeQF6AX0AlwF/AYABgQGCAYMBiwGMAY0BjgGPAZMBmQGaAZsBnQGhAaMBpgGnAagBqgGrAbEBsgGzAbQBtwC1AbgBugG9Ab8BwQHDAcsBzAHWAdgB2gHcAd0B3wHgAeEB4gHjAecB6QHqAesB7gE9Ae8B8QHzAfoB+wH8ACUB/gICAgMAuAEfASEBIgB0AHUAhAA/AIUAeAG5AIMAhwCBAG8AKQAqATQApQCrAOkB6AABABkAegEYAUwBhgHGAVgA3AGYAZcBUAGsAVkBaABuAfAASQE2AKYA5AEpAUcBaQAvAVcBTwA8AD0AUQHIAewB5gHkAeUA0QGEAYcBRgCAAf8CAQIAAc4BzwHRAdIB0wHUAc0AEgBmAVIAtwH4AH4A9QEEAQMBAgBaAFkAWAAWAPYA0ADTAG0AfAGJAL8AewAXAOUA5gFVACEAIgEnABUB7QFDARcBBQEGAQwBCQELAQ4BDwESARUBFgEIAQcBygDxAWcAogAHAAgACQAKARQBDQERAB0A6gEvASwAQAAbABoAVgDUANUBkABVAZYBpQD0ATgB2QHbAE0BogDCAfUANgFUAT4BNwF1AGUBGwF+AaQAlwCUAa4BnADZANcA2AH3AfYASgGIAYUAZwDd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AADrcQAAAeIAAOtyAADrcgAAAeMAAOtzAADrcwAAAecAAOt0AADrdAAAAekAAOt1AADrdQAAAeoAAOt2AADrdgAAAesAAOt3AADrdwAAAe4AAOt4AADreAAAAT0AAOt5AADreQAAAe8AAOt6AADregAAAfEAAOt7AADrewAAAfMAAOt8AADrfAAAAfoAAOt9AADrfQAAAfsAAOt+AADrfgAAAfwAAOt/AADrfwAAACUAAOuAAADrgAAAAf4AAOuBAADrgQAAAgIAAOuCAADrggAAAgMAAOuDAADrgwAAALgAAOuEAADrhAAAAR8AAOuFAADrhQAAASEAAOuGAADrhgAAASIAAOuHAADrhwAAAHQAAOuIAADriAAAAHUAAOuJAADriQAAAIQAAOuKAADrigAAAD8AAOuLAADriwAAAIUAAOuMAADrjAAAAHgAAOuNAADrjQAAAbkAAOuOAADrjgAAAIMAAOuPAADrjwAAAIcAAOuQAADrkAAAAIEAAOuRAADrkQAAAG8AAOuSAADrkgAAACkAAOuTAADrkwAAACoAAOuUAADrlAAAATQAAOuVAADrlQAAAKUAAOuWAADrlgAAAKsAAOuXAADrlwAAAOkAAOuYAADrmAAAAegAAOuZAADrmQAAAAEAAOuaAADrmgAAABkAAOubAADrmwAAAHoAAOucAADrnAAAARgAAOudAADrnQAAAUwAAOueAADrngAAAYYAAOufAADrnwAAAcYAAOugAADroAAAAVgAAOuhAADroQAAANwAAOuiAADrogAAAZgAAOujAADrowAAAZcAAOukAADrpAAAAVAAAOulAADrpQAAAawAAOumAADrpgAAAVkAAOunAADrpwAAAWgAAOuoAADrqAAAAG4AAOupAADrqQAAAfAAAOuqAADrqgAAAEkAAOurAADrqwAAATYAAOusAADrrAAAAKYAAOutAADrrQAAAOQAAOuuAADrrgAAASkAAOuvAADrrwAAAUcAAOuwAADrsAAAAWkAAOuxAADrsQAAAC8AAOuyAADrsgAAAVcAAOuzAADrswAAAU8AAOu0AADrtAAAADwAAOu1AADrtQAAAD0AAOu2AADrtgAAAFEAAOu3AADrtwAAAcgAAOu4AADruAAAAewAAOu5AADruQAAAeYAAOu6AADrugAAAeQAAOu7AADruwAAAeUAAOu8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AQxjb2RpY29uUmVndWxhcmNvZGljb25jb2RpY29uVmVyc2lvbiAxLjE1Y29kaWNvblRoZSBpY29uIGZvbnQgZm9yIFZpc3VhbCBTdHVkaW8gQ29kZWh0dHA6Ly9mb250ZWxsby5jb20AYwBvAGQAaQBjAG8AbgBSAGUAZwB1AGwAYQByAGMAbwBkAGkAYwBvAG4AYwBvAGQAaQBjAG8AbgBWAGUAcgBzAGkAbwBuACAAMQAuADEANQBjAG8AZABpAGMAbwBuAFQAaABlACAAaQBjAG8AbgAgAGYAbwBuAHQAIABmAG8AcgAgAFYAaQBzAHUAYQBsACAAUwB0AHUAZABpAG8AIABDAG8AZABlAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHfAeAB4QHiAeMB5AHlAeYB5wHoAekB6gHrAewB7QHuAe8B8AHxAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4B/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoCCwIMAg0CDgIPAhACEQISAhMCFAIVAhYCFwIYAhkCGgIbAhwCHQIeAh8CIAIhAiICIwIkAiUCJgInAigCKQIqAisCLAItAi4CLwIwAjECMgIzAjQCNQI2AjcCOAI5AjoCOwI8Aj0CPgI/AkACQQJCAkMCRAJFAkYCRwJIAkkCSgJLAkwCTQJOAk8CUAJRAlICUwJUAlUCVgJXAlgCWQJaAlsCXAJdAl4CXwJgAmECYgJjAmQCZQJmAmcCaAJpAmoCawJsAm0CbgJvAnACcQJyAnMCdAJ1AnYCdwJ4AnkCegJ7AnwCfQJ+An8CgAKBAoICgwKEAoUChgKHAogCiQKKAosCjAKNAo4CjwKQApECkgKTApQClQKWApcCmAKZApoCmwKcAp0CngKfAqACoQKiAqMCpAKlAqYCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4CvwLAAsECwgLDAsQCxQLGAscCyALJAsoCywLMAs0CzgLPAtAC0QLSAtMC1ALVAtYC1wLYAtkC2gLbAtwC3QLeAt8C4ALhAuIC4wLkAuUC5gLnAugC6QLqAusC7ALtAu4C7wLwAvEC8gLzAvQC9QL2AvcC+AL5AvoC+wL8Av0C/gL/AwADAQMCAwMDBAMFAAdhY2NvdW50FGFjdGl2YXRlLWJyZWFrcG9pbnRzA2FkZAVhZ2VudAdhcmNoaXZlCmFycm93LWJvdGgRYXJyb3ctY2lyY2xlLWRvd24RYXJyb3ctY2lyY2xlLWxlZnQSYXJyb3ctY2lyY2xlLXJpZ2h0D2Fycm93LWNpcmNsZS11cAphcnJvdy1kb3duCmFycm93LWxlZnQLYXJyb3ctcmlnaHQQYXJyb3ctc21hbGwtZG93bhBhcnJvdy1zbWFsbC1sZWZ0EWFycm93LXNtYWxsLXJpZ2h0DmFycm93LXNtYWxsLXVwCmFycm93LXN3YXAIYXJyb3ctdXAGYXR0YWNoDGF6dXJlLWRldm9wcwVhenVyZQtiZWFrZXItc3RvcAZiZWFrZXIIYmVsbC1kb3QOYmVsbC1zbGFzaC1kb3QKYmVsbC1zbGFzaARiZWxsBWJsYW5rBGJvbGQEYm9vawhib29rbWFyawticmFja2V0LWRvdA1icmFja2V0LWVycm9yCWJyaWVmY2FzZQlicm9hZGNhc3QHYnJvd3NlcgNidWcFYnVpbGQIY2FsZW5kYXINY2FsbC1pbmNvbWluZw1jYWxsLW91dGdvaW5nDmNhc2Utc2Vuc2l0aXZlEmNoYXQtc3BhcmtsZS1lcnJvchRjaGF0LXNwYXJrbGUtd2FybmluZwxjaGF0LXNwYXJrbGUJY2hlY2stYWxsBWNoZWNrCWNoZWNrbGlzdAxjaGV2cm9uLWRvd24MY2hldnJvbi1sZWZ0DWNoZXZyb24tcmlnaHQKY2hldnJvbi11cARjaGlwDGNocm9tZS1jbG9zZQ9jaHJvbWUtbWF4aW1pemUPY2hyb21lLW1pbmltaXplDmNocm9tZS1yZXN0b3JlDWNpcmNsZS1maWxsZWQTY2lyY2xlLWxhcmdlLWZpbGxlZAxjaXJjbGUtbGFyZ2UMY2lyY2xlLXNsYXNoE2NpcmNsZS1zbWFsbC1maWxsZWQMY2lyY2xlLXNtYWxsBmNpcmNsZQ1jaXJjdWl0LWJvYXJkCWNsZWFyLWFsbAZjbGlwcHkJY2xvc2UtYWxsBWNsb3NlDmNsb3VkLWRvd25sb2FkDGNsb3VkLXVwbG9hZAVjbG91ZAhjb2RlLW9zcwtjb2RlLXJldmlldwRjb2RlBmNvZmZlZQxjb2xsYXBzZS1hbGwKY29sbGVjdGlvbgpjb2xvci1tb2RlB2NvbWJpbmUYY29tbWVudC1kaXNjdXNzaW9uLXF1b3RlGmNvbW1lbnQtZGlzY3Vzc2lvbi1zcGFya2xlEmNvbW1lbnQtZGlzY3Vzc2lvbg1jb21tZW50LWRyYWZ0EmNvbW1lbnQtdW5yZXNvbHZlZAdjb21tZW50DmNvbXBhc3MtYWN0aXZlC2NvbXBhc3MtZG90B2NvbXBhc3MPY29waWxvdC1ibG9ja2VkDWNvcGlsb3QtZXJyb3ITY29waWxvdC1pbi1wcm9ncmVzcw1jb3BpbG90LWxhcmdlFWNvcGlsb3Qtbm90LWNvbm5lY3RlZA5jb3BpbG90LXNub296ZQ9jb3BpbG90LXN1Y2Nlc3MTY29waWxvdC11bmF2YWlsYWJsZRVjb3BpbG90LXdhcm5pbmctbGFyZ2UPY29waWxvdC13YXJuaW5nB2NvcGlsb3QEY29weQhjb3ZlcmFnZQtjcmVkaXQtY2FyZAZjdXJzb3IEZGFzaAlkYXNoYm9hcmQIZGF0YWJhc2UJZGVidWctYWxsD2RlYnVnLWFsdC1zbWFsbAlkZWJ1Zy1hbHQnZGVidWctYnJlYWtwb2ludC1jb25kaXRpb25hbC11bnZlcmlmaWVkHGRlYnVnLWJyZWFrcG9pbnQtY29uZGl0aW9uYWwgZGVidWctYnJlYWtwb2ludC1kYXRhLXVudmVyaWZpZWQVZGVidWctYnJlYWtwb2ludC1kYXRhJGRlYnVnLWJyZWFrcG9pbnQtZnVuY3Rpb24tdW52ZXJpZmllZBlkZWJ1Zy1icmVha3BvaW50LWZ1bmN0aW9uH2RlYnVnLWJyZWFrcG9pbnQtbG9nLXVudmVyaWZpZWQUZGVidWctYnJlYWtwb2ludC1sb2ccZGVidWctYnJlYWtwb2ludC11bnN1cHBvcnRlZA9kZWJ1Zy1jb25uZWN0ZWQNZGVidWctY29uc29sZRRkZWJ1Zy1jb250aW51ZS1zbWFsbA5kZWJ1Zy1jb3ZlcmFnZRBkZWJ1Zy1kaXNjb25uZWN0EmRlYnVnLWxpbmUtYnktbGluZQtkZWJ1Zy1wYXVzZQtkZWJ1Zy1yZXJ1bhNkZWJ1Zy1yZXN0YXJ0LWZyYW1lDWRlYnVnLXJlc3RhcnQWZGVidWctcmV2ZXJzZS1jb250aW51ZRdkZWJ1Zy1zdGFja2ZyYW1lLWFjdGl2ZRBkZWJ1Zy1zdGFja2ZyYW1lC2RlYnVnLXN0YXJ0D2RlYnVnLXN0ZXAtYmFjaw9kZWJ1Zy1zdGVwLWludG8OZGVidWctc3RlcC1vdXQPZGVidWctc3RlcC1vdmVyCmRlYnVnLXN0b3AFZGVidWcQZGVza3RvcC1kb3dubG9hZBNkZXZpY2UtY2FtZXJhLXZpZGVvDWRldmljZS1jYW1lcmENZGV2aWNlLW1vYmlsZQpkaWZmLWFkZGVkDGRpZmYtaWdub3JlZA1kaWZmLW1vZGlmaWVkDWRpZmYtbXVsdGlwbGUMZGlmZi1yZW1vdmVkDGRpZmYtcmVuYW1lZAtkaWZmLXNpbmdsZQRkaWZmB2Rpc2NhcmQJZWRpdC1jb2RlDGVkaXQtc2Vzc2lvbgxlZGl0LXNwYXJrbGUEZWRpdA1lZGl0b3ItbGF5b3V0CGVsbGlwc2lzDGVtcHR5LXdpbmRvdwZlcmFzZXILZXJyb3Itc21hbGwFZXJyb3IHZXhjbHVkZQpleHBhbmQtYWxsBmV4cG9ydBBleHRlbnNpb25zLWxhcmdlCmV4dGVuc2lvbnMKZXllLWNsb3NlZANleWUIZmVlZGJhY2sLZmlsZS1iaW5hcnkJZmlsZS1jb2RlCmZpbGUtbWVkaWEIZmlsZS1wZGYOZmlsZS1zdWJtb2R1bGUWZmlsZS1zeW1saW5rLWRpcmVjdG9yeRFmaWxlLXN5bWxpbmstZmlsZQlmaWxlLXRleHQIZmlsZS16aXAEZmlsZQVmaWxlcw1maWx0ZXItZmlsbGVkBmZpbHRlcgRmbGFnBWZsYW1lCWZvbGQtZG93bgdmb2xkLXVwBGZvbGQNZm9sZGVyLWFjdGl2ZQ5mb2xkZXItbGlicmFyeQ1mb2xkZXItb3BlbmVkBmZvbGRlcgRnYW1lBGdlYXIEZ2lmdAtnaXN0LXNlY3JldARnaXN0EmdpdC1icmFuY2gtY2hhbmdlcxRnaXQtYnJhbmNoLWNvbmZsaWN0cxlnaXQtYnJhbmNoLXN0YWdlZC1jaGFuZ2VzCmdpdC1icmFuY2gKZ2l0LWNvbW1pdAtnaXQtY29tcGFyZQlnaXQtZmV0Y2gIZ2l0LWxlbnMJZ2l0LW1lcmdlF2dpdC1wdWxsLXJlcXVlc3QtY2xvc2VkF2dpdC1wdWxsLXJlcXVlc3QtY3JlYXRlFWdpdC1wdWxsLXJlcXVlc3QtZG9uZRZnaXQtcHVsbC1yZXF1ZXN0LWRyYWZ0HmdpdC1wdWxsLXJlcXVlc3QtZ28tdG8tY2hhbmdlcxxnaXQtcHVsbC1yZXF1ZXN0LW5ldy1jaGFuZ2VzEGdpdC1wdWxsLXJlcXVlc3QPZ2l0LXN0YXNoLWFwcGx5DWdpdC1zdGFzaC1wb3AJZ2l0LXN0YXNoDWdpdGh1Yi1hY3Rpb24KZ2l0aHViLWFsdA9naXRodWItaW52ZXJ0ZWQOZ2l0aHViLXByb2plY3QGZ2l0aHViBWdsb2JlFWdvLXRvLWVkaXRpbmctc2Vzc2lvbgpnby10by1maWxlDGdvLXRvLXNlYXJjaAdncmFiYmVyCmdyYXBoLWxlZnQKZ3JhcGgtbGluZQ1ncmFwaC1zY2F0dGVyBWdyYXBoB2dyaXBwZXIRZ3JvdXAtYnktcmVmLXR5cGUMaGVhcnQtZmlsbGVkBWhlYXJ0B2hpc3RvcnkEaG9tZQ9ob3Jpem9udGFsLXJ1bGUFaHVib3QFaW5ib3gGaW5kZW50CmluZGV4LXplcm8EaW5mbwZpbnNlcnQHaW5zcGVjdAtpc3N1ZS1kcmFmdA5pc3N1ZS1yZW9wZW5lZAZpc3N1ZXMGaXRhbGljBmplcnNleQRqc29uDmtlYmFiLXZlcnRpY2FsA2tleRJrZXlib2FyZC10YWItYWJvdmUSa2V5Ym9hcmQtdGFiLWJlbG93DGtleWJvYXJkLXRhYgNsYXcNbGF5ZXJzLWFjdGl2ZQpsYXllcnMtZG90BmxheWVycxdsYXlvdXQtYWN0aXZpdHliYXItbGVmdBhsYXlvdXQtYWN0aXZpdHliYXItcmlnaHQPbGF5b3V0LWNlbnRlcmVkDmxheW91dC1tZW51YmFyE2xheW91dC1wYW5lbC1jZW50ZXIRbGF5b3V0LXBhbmVsLWRvY2sUbGF5b3V0LXBhbmVsLWp1c3RpZnkRbGF5b3V0LXBhbmVsLWxlZnQQbGF5b3V0LXBhbmVsLW9mZhJsYXlvdXQtcGFuZWwtcmlnaHQMbGF5b3V0LXBhbmVsGGxheW91dC1zaWRlYmFyLWxlZnQtZG9jaxdsYXlvdXQtc2lkZWJhci1sZWZ0LW9mZhNsYXlvdXQtc2lkZWJhci1sZWZ0GWxheW91dC1zaWRlYmFyLXJpZ2h0LWRvY2sYbGF5b3V0LXNpZGViYXItcmlnaHQtb2ZmFGxheW91dC1zaWRlYmFyLXJpZ2h0EGxheW91dC1zdGF0dXNiYXIGbGF5b3V0B2xpYnJhcnkRbGlnaHRidWxiLWF1dG9maXgPbGlnaHRidWxiLWVtcHR5EWxpZ2h0YnVsYi1zcGFya2xlCWxpZ2h0YnVsYg1saW5rLWV4dGVybmFsBGxpbmsJbGlzdC1mbGF0DGxpc3Qtb3JkZXJlZA5saXN0LXNlbGVjdGlvbglsaXN0LXRyZWUObGlzdC11bm9yZGVyZWQKbGl2ZS1zaGFyZQdsb2FkaW5nCGxvY2F0aW9uCmxvY2stc21hbGwEbG9jawZtYWduZXQJbWFpbC1yZWFkBG1haWwKbWFwLWZpbGxlZBNtYXAtdmVydGljYWwtZmlsbGVkDG1hcC12ZXJ0aWNhbANtYXAIbWFya2Rvd24DbWNwCW1lZ2FwaG9uZQdtZW50aW9uBG1lbnUKbWVyZ2UtaW50bwVtZXJnZQptaWMtZmlsbGVkA21pYwltaWxlc3RvbmUGbWlycm9yDG1vcnRhci1ib2FyZARtb3ZlEG11bHRpcGxlLXdpbmRvd3MFbXVzaWMEbXV0ZQ5uZXctY29sbGVjdGlvbghuZXctZmlsZQpuZXctZm9sZGVyB25ld2xpbmUKbm8tbmV3bGluZQRub3RlEW5vdGVib29rLXRlbXBsYXRlCG5vdGVib29rCG9jdG9mYWNlD29wZW4taW4tcHJvZHVjdAxvcGVuLXByZXZpZXcMb3JnYW5pemF0aW9uBm91dHB1dAdwYWNrYWdlCHBhaW50Y2FuC3Bhc3MtZmlsbGVkBHBhc3MKcGVyY2VudGFnZQpwZXJzb24tYWRkBnBlcnNvbgVwaWFubwlwaWUtY2hhcnQDcGluDHBpbm5lZC1kaXJ0eQZwaW5uZWQLcGxheS1jaXJjbGUEcGx1Zw1wcmVzZXJ2ZS1jYXNlB3ByZXZpZXcQcHJpbWl0aXZlLXNxdWFyZQdwcm9qZWN0BXB1bHNlBnB5dGhvbghxdWVzdGlvbgVxdW90ZQZxdW90ZXMLcmFkaW8tdG93ZXIJcmVhY3Rpb25zC3JlY29yZC1rZXlzDHJlY29yZC1zbWFsbAZyZWNvcmQEcmVkbwpyZWZlcmVuY2VzB3JlZnJlc2gFcmVnZXgPcmVtb3RlLWV4cGxvcmVyBnJlbW90ZQZyZW1vdmUGcmVuYW1lC3JlcGxhY2UtYWxsB3JlcGxhY2UFcmVwbHkKcmVwby1jbG9uZQpyZXBvLWZldGNoD3JlcG8tZm9yY2UtcHVzaAtyZXBvLWZvcmtlZAtyZXBvLXBpbm5lZAlyZXBvLXB1bGwJcmVwby1wdXNoDXJlcG8tc2VsZWN0ZWQEcmVwbwZyZXBvcnQFcm9ib3QGcm9ja2V0EnJvb3QtZm9sZGVyLW9wZW5lZAtyb290LWZvbGRlcgNyc3MEcnVieQlydW4tYWJvdmUQcnVuLWFsbC1jb3ZlcmFnZQdydW4tYWxsCXJ1bi1iZWxvdwxydW4tY292ZXJhZ2UKcnVuLWVycm9ycw1ydW4td2l0aC1kZXBzCHNhdmUtYWxsB3NhdmUtYXMEc2F2ZQtzY3JlZW4tZnVsbA1zY3JlZW4tbm9ybWFsDHNlYXJjaC1mdXp6eQxzZWFyY2gtbGFyZ2UOc2VhcmNoLXNwYXJrbGULc2VhcmNoLXN0b3AGc2VhcmNoFHNlbmQtdG8tcmVtb3RlLWFnZW50BHNlbmQSc2VydmVyLWVudmlyb25tZW50DnNlcnZlci1wcm9jZXNzBnNlcnZlcg1zZXR0aW5ncy1nZWFyCHNldHRpbmdzBXNoYXJlBnNoaWVsZAdzaWduLWluCHNpZ24tb3V0BHNraXAGc21pbGV5BXNuYWtlD3NvcnQtcHJlY2VkZW5jZQ5zcGFya2xlLWZpbGxlZAdzcGFya2xlEHNwbGl0LWhvcml6b250YWwOc3BsaXQtdmVydGljYWwIc3F1aXJyZWwKc3Rhci1lbXB0eQlzdGFyLWZ1bGwJc3Rhci1oYWxmC3N0b3AtY2lyY2xlDXN0cmlrZXRocm91Z2gNc3Vycm91bmQtd2l0aAxzeW1ib2wtYXJyYXkOc3ltYm9sLWJvb2xlYW4Mc3ltYm9sLWNsYXNzDHN5bWJvbC1jb2xvcg9zeW1ib2wtY29uc3RhbnQSc3ltYm9sLWVudW0tbWVtYmVyC3N5bWJvbC1lbnVtDHN5bWJvbC1ldmVudAxzeW1ib2wtZmllbGQQc3ltYm9sLWludGVyZmFjZQpzeW1ib2wta2V5DnN5bWJvbC1rZXl3b3JkE3N5bWJvbC1tZXRob2QtYXJyb3cNc3ltYm9sLW1ldGhvZAtzeW1ib2wtbWlzYw5zeW1ib2wtbnVtZXJpYw9zeW1ib2wtb3BlcmF0b3IQc3ltYm9sLXBhcmFtZXRlcg9zeW1ib2wtcHJvcGVydHkMc3ltYm9sLXJ1bGVyDnN5bWJvbC1zbmlwcGV0EHN5bWJvbC1zdHJ1Y3R1cmUPc3ltYm9sLXZhcmlhYmxlDHN5bmMtaWdub3JlZARzeW5jBXRhYmxlA3RhZwZ0YXJnZXQIdGFza2xpc3QJdGVsZXNjb3BlDXRlcm1pbmFsLWJhc2gMdGVybWluYWwtY21kD3Rlcm1pbmFsLWRlYmlhbhF0ZXJtaW5hbC1naXQtYmFzaA50ZXJtaW5hbC1saW51eBN0ZXJtaW5hbC1wb3dlcnNoZWxsDXRlcm1pbmFsLXRtdXgPdGVybWluYWwtdWJ1bnR1CHRlcm1pbmFsCXRleHQtc2l6ZQh0aGlua2luZwp0aHJlZS1iYXJzEXRodW1ic2Rvd24tZmlsbGVkCnRodW1ic2Rvd24PdGh1bWJzdXAtZmlsbGVkCHRodW1ic3VwBXRvb2xzBXRyYXNoDXRyaWFuZ2xlLWRvd24NdHJpYW5nbGUtbGVmdA50cmlhbmdsZS1yaWdodAt0cmlhbmdsZS11cAd0d2l0dGVyEnR5cGUtaGllcmFyY2h5LXN1YhR0eXBlLWhpZXJhcmNoeS1zdXBlcg50eXBlLWhpZXJhcmNoeQZ1bmZvbGQTdW5ncm91cC1ieS1yZWYtdHlwZQZ1bmxvY2sGdW5tdXRlCnVudmVyaWZpZWQOdmFyaWFibGUtZ3JvdXAPdmVyaWZpZWQtZmlsbGVkCHZlcmlmaWVkCXZtLWFjdGl2ZQp2bS1jb25uZWN0CnZtLW91dGxpbmUKdm0tcGVuZGluZwp2bS1ydW5uaW5nAnZtAnZyD3ZzY29kZS1pbnNpZGVycwZ2c2NvZGUEd2FuZAd3YXJuaW5nBXdhdGNoCndoaXRlc3BhY2UKd2hvbGUtd29yZA13aW5kb3ctYWN0aXZlCXdvcmQtd3JhcBF3b3Jrc3BhY2UtdHJ1c3RlZBF3b3Jrc3BhY2UtdW5rbm93bhN3b3Jrc3BhY2UtdW50cnVzdGVkB3pvb20taW4Iem9vbS1vdXQAAA==) format("truetype")}.codicon[class*=codicon-]{font: 16px/1 codicon;display:inline-block;text-decoration:none;text-rendering:auto;text-align:center;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none}.codicon-wrench-subaction{opacity:.5}@keyframes codicon-spin{to{transform:rotate(360deg)}}.codicon-sync.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-gear.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin{animation:codicon-spin 1.5s steps(30) infinite}.codicon-modifier-disabled{opacity:.4}.codicon-loading,.codicon-tree-item-loading:before{animation-duration:1s!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.monaco-editor .codicon.codicon-symbol-array,.monaco-workbench .codicon.codicon-symbol-array{color:var(--vscode-symbolIcon-arrayForeground)}.monaco-editor .codicon.codicon-symbol-boolean,.monaco-workbench .codicon.codicon-symbol-boolean{color:var(--vscode-symbolIcon-booleanForeground)}.monaco-editor .codicon.codicon-symbol-class,.monaco-workbench .codicon.codicon-symbol-class{color:var(--vscode-symbolIcon-classForeground)}.monaco-editor .codicon.codicon-symbol-method,.monaco-workbench .codicon.codicon-symbol-method{color:var(--vscode-symbolIcon-methodForeground)}.monaco-editor .codicon.codicon-symbol-color,.monaco-workbench .codicon.codicon-symbol-color{color:var(--vscode-symbolIcon-colorForeground)}.monaco-editor .codicon.codicon-symbol-constant,.monaco-workbench .codicon.codicon-symbol-constant{color:var(--vscode-symbolIcon-constantForeground)}.monaco-editor .codicon.codicon-symbol-constructor,.monaco-workbench .codicon.codicon-symbol-constructor{color:var(--vscode-symbolIcon-constructorForeground)}.monaco-editor .codicon.codicon-symbol-value,.monaco-workbench .codicon.codicon-symbol-value,.monaco-editor .codicon.codicon-symbol-enum,.monaco-workbench .codicon.codicon-symbol-enum{color:var(--vscode-symbolIcon-enumeratorForeground)}.monaco-editor .codicon.codicon-symbol-enum-member,.monaco-workbench .codicon.codicon-symbol-enum-member{color:var(--vscode-symbolIcon-enumeratorMemberForeground)}.monaco-editor .codicon.codicon-symbol-event,.monaco-workbench .codicon.codicon-symbol-event{color:var(--vscode-symbolIcon-eventForeground)}.monaco-editor .codicon.codicon-symbol-field,.monaco-workbench .codicon.codicon-symbol-field{color:var(--vscode-symbolIcon-fieldForeground)}.monaco-editor .codicon.codicon-symbol-file,.monaco-workbench .codicon.codicon-symbol-file{color:var(--vscode-symbolIcon-fileForeground)}.monaco-editor .codicon.codicon-symbol-folder,.monaco-workbench .codicon.codicon-symbol-folder{color:var(--vscode-symbolIcon-folderForeground)}.monaco-editor .codicon.codicon-symbol-function,.monaco-workbench .codicon.codicon-symbol-function{color:var(--vscode-symbolIcon-functionForeground)}.monaco-editor .codicon.codicon-symbol-interface,.monaco-workbench .codicon.codicon-symbol-interface{color:var(--vscode-symbolIcon-interfaceForeground)}.monaco-editor .codicon.codicon-symbol-key,.monaco-workbench .codicon.codicon-symbol-key{color:var(--vscode-symbolIcon-keyForeground)}.monaco-editor .codicon.codicon-symbol-keyword,.monaco-workbench .codicon.codicon-symbol-keyword{color:var(--vscode-symbolIcon-keywordForeground)}.monaco-editor .codicon.codicon-symbol-module,.monaco-workbench .codicon.codicon-symbol-module{color:var(--vscode-symbolIcon-moduleForeground)}.monaco-editor .codicon.codicon-symbol-namespace,.monaco-workbench .codicon.codicon-symbol-namespace{color:var(--vscode-symbolIcon-namespaceForeground)}.monaco-editor .codicon.codicon-symbol-null,.monaco-workbench .codicon.codicon-symbol-null{color:var(--vscode-symbolIcon-nullForeground)}.monaco-editor .codicon.codicon-symbol-number,.monaco-workbench .codicon.codicon-symbol-number{color:var(--vscode-symbolIcon-numberForeground)}.monaco-editor .codicon.codicon-symbol-object,.monaco-workbench .codicon.codicon-symbol-object{color:var(--vscode-symbolIcon-objectForeground)}.monaco-editor .codicon.codicon-symbol-operator,.monaco-workbench .codicon.codicon-symbol-operator{color:var(--vscode-symbolIcon-operatorForeground)}.monaco-editor .codicon.codicon-symbol-package,.monaco-workbench .codicon.codicon-symbol-package{color:var(--vscode-symbolIcon-packageForeground)}.monaco-editor .codicon.codicon-symbol-property,.monaco-workbench .codicon.codicon-symbol-property{color:var(--vscode-symbolIcon-propertyForeground)}.monaco-editor .codicon.codicon-symbol-reference,.monaco-workbench .codicon.codicon-symbol-reference{color:var(--vscode-symbolIcon-referenceForeground)}.monaco-editor .codicon.codicon-symbol-snippet,.monaco-workbench .codicon.codicon-symbol-snippet{color:var(--vscode-symbolIcon-snippetForeground)}.monaco-editor .codicon.codicon-symbol-string,.monaco-workbench .codicon.codicon-symbol-string{color:var(--vscode-symbolIcon-stringForeground)}.monaco-editor .codicon.codicon-symbol-struct,.monaco-workbench .codicon.codicon-symbol-struct{color:var(--vscode-symbolIcon-structForeground)}.monaco-editor .codicon.codicon-symbol-text,.monaco-workbench .codicon.codicon-symbol-text{color:var(--vscode-symbolIcon-textForeground)}.monaco-editor .codicon.codicon-symbol-type-parameter,.monaco-workbench .codicon.codicon-symbol-type-parameter{color:var(--vscode-symbolIcon-typeParameterForeground)}.monaco-editor .codicon.codicon-symbol-unit,.monaco-workbench .codicon.codicon-symbol-unit{color:var(--vscode-symbolIcon-unitForeground)}.monaco-editor .codicon.codicon-symbol-variable,.monaco-workbench .codicon.codicon-symbol-variable{color:var(--vscode-symbolIcon-variableForeground)}.monaco-editor .lightBulbWidget{display:flex;align-items:center;justify-content:center}.monaco-editor .lightBulbWidget:hover{cursor:pointer}.monaco-editor .lightBulbWidget.codicon-light-bulb,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .lightBulbWidget.codicon-lightbulb-autofix,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle-autofix{color:var(--vscode-editorLightBulbAutoFix-foreground, var(--vscode-editorLightBulb-foreground))}.monaco-editor .lightBulbWidget.codicon-sparkle-filled{color:var(--vscode-editorLightBulbAi-foreground, var(--vscode-icon-foreground))}.monaco-editor .lightBulbWidget:before{position:relative;z-index:2}.monaco-editor .lightBulbWidget:after{position:absolute;top:0;left:0;content:"";display:block;width:100%;height:100%;opacity:.3;z-index:1}.monaco-editor .glyph-margin-widgets .cgmr[class*=codicon-gutter-lightbulb]{display:block;cursor:pointer}.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb,.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-auto-fix,.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-aifix-auto-fix{color:var(--vscode-editorLightBulbAutoFix-foreground, var(--vscode-editorLightBulb-foreground))}.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-sparkle-filled{color:var(--vscode-editorLightBulbAi-foreground, var(--vscode-icon-foreground))}.monaco-editor .codelens-decoration{overflow:hidden;display:inline-flex!important;align-items:center;text-overflow:ellipsis;white-space:nowrap;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize);padding-right:calc(var(--vscode-editorCodeLens-fontSize)*.5);font-feature-settings:var(--vscode-editorCodeLens-fontFeatureSettings);font-family:var(--vscode-editorCodeLens-fontFamily),var(--vscode-editorCodeLens-fontFamilyDefault)}.monaco-editor .codelens-decoration>span,.monaco-editor .codelens-decoration>a{user-select:none;-webkit-user-select:none;white-space:nowrap;vertical-align:sub;display:inline-flex;align-items:center}.monaco-editor .codelens-decoration>a{text-decoration:none}.monaco-editor .codelens-decoration>a:hover{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration>a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration .codicon[class*=codicon-]{vertical-align:middle;color:currentColor!important;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize)}.monaco-editor .codelens-decoration>a:hover .codicon:before{cursor:pointer}@keyframes fadein{0%{opacity:0}to{opacity:1}}.monaco-editor .codelens-decoration.fadein{animation:fadein .1s linear}.monaco-editor .inlineSuggestionsHints{padding:4px;.warningMessage p{margin:0}}.monaco-editor .inlineSuggestionsHints.withBorder{z-index:39;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .inlineSuggestionsHints a,.monaco-editor .inlineSuggestionsHints a:hover{color:var(--vscode-foreground)!important}.monaco-editor .inlineSuggestionsHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineSuggestionsHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineSuggestionsHints .availableSuggestionCount a{display:flex;min-width:19px;justify-content:center}.monaco-editor .inlineSuggestionStatusBarItemLabel{margin-right:2px}.monaco-hover{cursor:default;position:absolute;overflow:hidden;user-select:text;-webkit-user-select:text;box-sizing:border-box;line-height:1.5em;white-space:var(--vscode-hover-whiteSpace, normal)}.monaco-hover.fade-in{animation:fadein .1s linear}.monaco-hover.hidden{display:none}.monaco-hover a:hover:not(.disabled){cursor:pointer}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){max-width:var(--vscode-hover-maxWidth, 500px);word-wrap:break-word}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-hover p,.monaco-hover .code,.monaco-hover ul,.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{margin:8px 0}.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{line-height:1.1}.monaco-hover code{font-family:var(--monaco-monospace-font)}.monaco-hover hr{box-sizing:border-box;border-left:0px;border-right:0px;margin:4px -8px -4px;height:1px}.monaco-hover p:first-child,.monaco-hover .code:first-child,.monaco-hover ul:first-child{margin-top:0}.monaco-hover p:last-child,.monaco-hover .code:last-child,.monaco-hover ul:last-child{margin-bottom:0}.monaco-hover ul,.monaco-hover ol{padding-left:20px}.monaco-hover li>p{margin-bottom:0}.monaco-hover li>ul{margin-top:0}.monaco-hover code{border-radius:3px;padding:0 .4em}.monaco-hover .monaco-tokenized-source{white-space:var(--vscode-hover-sourceWhiteSpace, pre-wrap)}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .info{font-style:italic;padding:0 8px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px;width:100%}.monaco-hover .hover-row.status-bar .actions .action-container{margin-right:16px;cursor:pointer;overflow:hidden;text-wrap:nowrap;text-overflow:ellipsis}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px;vertical-align:middle}.monaco-hover .hover-row.status-bar .actions .action-container a{color:var(--vscode-textLink-foreground);text-decoration:var(--text-link-decoration)}.monaco-hover .hover-row.status-bar .actions .action-container a .icon.codicon{color:var(--vscode-textLink-foreground)}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-hover .hover-contents a.code-link:hover,.monaco-hover .hover-contents a.code-link{color:inherit}.monaco-hover .hover-contents a.code-link:before{content:"("}.monaco-hover .hover-contents a.code-link:after{content:")"}.monaco-hover .hover-contents a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-foreground)}.monaco-hover .hover-contents a.code-link>span:hover{color:var(--vscode-textLink-activeForeground)}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) p:last-child [style*=background-color]{margin-bottom:4px;display:inline-block}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span.codicon{margin-bottom:2px}.monaco-hover-content .action-container a{-webkit-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{pointer-events:none;opacity:.4;cursor:default}.monaco-hover .action-container,.monaco-hover .action,.monaco-hover button,.monaco-hover .monaco-button,.monaco-hover .monaco-text-button,.monaco-hover [role=button]{-webkit-user-select:none;user-select:none}.monaco-custom-toggle{margin-left:2px;float:left;cursor:pointer;overflow:hidden;width:20px;height:20px;border-radius:3px;border:1px solid transparent;padding:1px;box-sizing:border-box;user-select:none;-webkit-user-select:none}.monaco-custom-toggle:hover{background-color:var(--vscode-inputOption-hoverBackground)}.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{border:1px dashed var(--vscode-focusBorder)}.hc-black .monaco-custom-toggle,.hc-light .monaco-custom-toggle,.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{background:none}.monaco-custom-toggle.monaco-checkbox{height:18px;width:18px;border:1px solid transparent;border-radius:3px;margin-right:9px;margin-left:0;padding:0;opacity:1;background-size:16px!important}.monaco-action-bar .checkbox-action-item{display:flex;align-items:center;border-radius:2px;padding-right:2px}.monaco-action-bar .checkbox-action-item:hover{background-color:var(--vscode-toolbar-hoverBackground)}.monaco-action-bar .checkbox-action-item>.monaco-custom-toggle.monaco-checkbox{margin-right:4px}.monaco-action-bar .checkbox-action-item>.checkbox-label{font-size:12px}.monaco-editor .find-widget{position:absolute;z-index:35;height:33px;overflow:hidden;line-height:19px;transition:transform .2s linear;padding:0 4px;box-sizing:border-box;transform:translateY(calc(-100% - 10px));box-shadow:0 0 8px 2px var(--vscode-widget-shadow);color:var(--vscode-editorWidget-foreground);border-left:1px solid var(--vscode-widget-border);border-right:1px solid var(--vscode-widget-border);border-bottom:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px;background-color:var(--vscode-editorWidget-background)}.monaco-reduce-motion .monaco-editor .find-widget{transition:transform 0ms linear}.monaco-editor .find-widget textarea{margin:0}.monaco-editor .find-widget.hiddenEditor{display:none}.monaco-editor .find-widget.replaceToggled>.replace-part{display:flex}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px;outline-color:var(--vscode-focusBorder)}.monaco-editor .find-widget .monaco-inputbox .input{background-color:transparent;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{margin:3px 25px 0 17px;font-size:12px;display:flex}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-top:2px;padding-bottom:2px}.monaco-editor .find-widget>.find-part .find-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget>.replace-part .replace-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget .monaco-findInput{vertical-align:middle;display:flex;flex:1}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element{width:100%}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{display:flex;flex:initial;margin:0 0 0 3px;padding:2px 0 0 2px;height:25px;vertical-align:middle;box-sizing:border-box;text-align:center;line-height:23px}.monaco-editor .find-widget .button{width:16px;height:16px;padding:3px;border-radius:5px;flex:initial;margin-left:3px;background-position:center center;background-repeat:no-repeat;cursor:pointer;display:flex;align-items:center;justify-content:center}.monaco-editor .find-widget .codicon-find-selection{width:22px;height:22px;padding:3px;border-radius:5px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{width:auto;padding:1px 6px;top:-1px}.monaco-editor .find-widget .button.toggle{position:absolute;top:0;left:3px;width:18px;height:100%;border-radius:0;box-sizing:border-box}.monaco-editor .find-widget .button.toggle.disabled{display:none}.monaco-editor .find-widget .disabled{color:var(--vscode-disabledForeground);cursor:default}.monaco-editor .find-widget>.replace-part{display:none}.monaco-editor .find-widget>.replace-part>.monaco-findInput{position:relative;display:flex;vertical-align:middle;flex:auto;flex-grow:0;flex-shrink:0}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.monaco-editor .find-widget.reduced-find-widget .matchesCount{display:none}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls{display:none}.monaco-editor .find-widget.no-results .matchesCount{color:var(--vscode-errorForeground)}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important;background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor .currentFindMatch{background-color:var(--vscode-editor-findMatchBackground);border:2px solid var(--vscode-editor-findMatchBorder);padding:1px;box-sizing:border-box}.monaco-editor .findScope{background-color:var(--vscode-editor-findRangeHighlightBackground)}.monaco-editor .find-widget .monaco-sash{left:0!important;background-color:var(--vscode-editorWidget-resizeBorder, var(--vscode-editorWidget-border))}.monaco-editor.hc-black .find-widget .button:before{position:relative;top:1px;left:2px}.monaco-editor .find-widget .button:not(.disabled):hover,.monaco-editor .find-widget .codicon-find-selection:hover{background-color:var(--vscode-toolbar-hoverBackground)!important}.monaco-editor.findMatch{background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor.currentFindMatch{background-color:var(--vscode-editor-findMatchBackground)}.monaco-editor.findScope{background-color:var(--vscode-editor-findRangeHighlightBackground)}.monaco-editor.findMatch{background-color:var(--vscode-editorWidget-background)}.monaco-editor .find-widget>.button.codicon-widget-close{position:absolute;top:5px;right:4px}.monaco-inputbox{position:relative;display:block;padding:0;box-sizing:border-box;border-radius:2px;font-size:inherit}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px 6px}.monaco-inputbox>.ibwrapper{position:relative;width:100%}.monaco-inputbox>.ibwrapper>.input{display:inline-block;box-sizing:border-box;width:100%;height:100%;line-height:inherit;border:none;font-family:inherit;font-size:inherit;resize:none;color:inherit}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{display:block;scrollbar-width:none;outline:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>textarea.input.empty{white-space:nowrap}.monaco-inputbox>.ibwrapper>.mirror{position:absolute;display:inline-block;width:100%;top:0;left:0;box-sizing:border-box;white-space:pre-wrap;visibility:hidden;word-wrap:break-word}.monaco-inputbox-container{text-align:right}.monaco-inputbox-container .monaco-inputbox-message{display:inline-block;overflow:hidden;text-align:left;width:100%;box-sizing:border-box;padding:.4em;font-size:12px;line-height:17px;margin-top:-1px;word-wrap:break-word}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;width:16px;height:16px}.monaco-findInput{position:relative}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.monaco-findInput.highlight-0 .controls,.hc-light .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-0 .1s linear 0s}.monaco-findInput.highlight-1 .controls,.hc-light .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-1 .1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-dark-0 .1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-dark-1 .1s linear 0s}@keyframes monaco-findInput-highlight-0{0%{background:#fdff00cc}to{background:transparent}}@keyframes monaco-findInput-highlight-1{0%{background:#fdff00cc}99%{background:transparent}}@keyframes monaco-findInput-highlight-dark-0{0%{background:#ffffff70}to{background:transparent}}@keyframes monaco-findInput-highlight-dark-1{0%{background:#ffffff70}99%{background:transparent}}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none}.colorpicker-color-decoration,.hc-light .colorpicker-color-decoration{border:solid .1em #000;box-sizing:border-box;margin:.1em .2em 0;width:.8em;height:.8em;line-height:.8em;display:inline-block;cursor:pointer}.hc-black .colorpicker-color-decoration,.vs-dark .colorpicker-color-decoration{border:solid .1em #eee}.colorpicker-header{display:flex;height:24px;position:relative;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-header .picked-color{width:240px;display:flex;align-items:center;justify-content:center;line-height:24px;cursor:pointer;color:#fff;flex:1;white-space:nowrap;overflow:hidden}.colorpicker-header .picked-color .picked-color-presentation{white-space:nowrap;margin-left:5px;margin-right:5px}.colorpicker-header .picked-color .codicon{color:inherit;font-size:14px}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{width:74px;z-index:inherit;cursor:pointer}.standalone-colorpicker{color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header.standalone-colorpicker{border-bottom:none}.colorpicker-header .close-button{cursor:pointer;background-color:var(--vscode-editorHoverWidget-background);border-left:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header .close-button-inner-div{width:100%;height:100%;text-align:center}.colorpicker-header .close-button-inner-div:hover{background-color:var(--vscode-toolbar-hoverBackground)}.colorpicker-header .close-icon{padding:3px}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{overflow:hidden;height:150px;position:relative;min-width:220px;flex:1}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{width:9px;height:9px;margin:-5px 0 0 -5px;border:1px solid rgb(255,255,255);border-radius:100%;box-shadow:0 0 2px #000c;position:absolute}.colorpicker-body .strip{width:25px;height:150px}.colorpicker-body .standalone-strip{width:25px;height:122px}.colorpicker-body .hue-strip{position:relative;margin-left:8px;cursor:grab;background:linear-gradient(to bottom,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.colorpicker-body .opacity-strip{position:relative;margin-left:8px;cursor:grab;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-body .strip.grabbing{cursor:grabbing}.colorpicker-body .slider{position:absolute;top:0;left:-2px;width:calc(100% + 4px);height:4px;box-sizing:border-box;border:1px solid rgba(255,255,255,.71);box-shadow:0 0 1px #000000d9}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.colorpicker-body .standalone-strip .standalone-overlay{height:122px;pointer-events:none}.standalone-colorpicker-body{display:block;border:1px solid transparent;border-bottom:1px solid var(--vscode-editorHoverWidget-border);overflow:hidden}.colorpicker-body .insert-button{position:absolute;height:20px;width:58px;padding:0;right:8px;bottom:8px;background:var(--vscode-button-background);color:var(--vscode-button-foreground);border-radius:2px;border:none;cursor:pointer}.colorpicker-body .insert-button:hover{background:var(--vscode-button-hoverBackground)}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex;justify-content:space-between;flex-wrap:nowrap}.monaco-editor .peekview-widget .head .peekview-title{display:flex;align-items:baseline;font-size:13px;margin-left:20px;min-width:0;text-overflow:ellipsis;overflow:hidden}.monaco-editor .peekview-widget .head .peekview-title.clickable{cursor:pointer}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em}.monaco-editor .peekview-widget .head .peekview-title .meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title .dirname,.monaco-editor .peekview-widget .head .peekview-title .filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:"-";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1;text-align:right;padding-right:2px}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar{display:inline-block}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container{height:100%}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{margin-right:4px;align-self:center}.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon{color:inherit!important}.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-editor .zone-widget .zone-widget-container{border-top-style:solid;border-bottom-style:solid;border-top-width:0;border-bottom-width:0;position:relative}.monaco-split-view2{position:relative;width:100%;height:100%}.monaco-split-view2>.sash-container{position:absolute;width:100%;height:100%;pointer-events:none}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:initial}.monaco-split-view2>.monaco-scrollable-element{width:100%;height:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container{width:100%;height:100%;white-space:nowrap;position:relative}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{white-space:initial;position:absolute}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view{width:100%}.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view{height:100%}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{content:" ";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--separator-border)}.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-table{display:flex;flex-direction:column;position:relative;height:100%;width:100%;white-space:nowrap;overflow:hidden}.monaco-table>.monaco-split-view2{border-bottom:1px solid transparent}.monaco-table>.monaco-list{flex:1}.monaco-table-tr{display:flex;height:100%}.monaco-table-th{width:100%;height:100%;font-weight:700;overflow:hidden;text-overflow:ellipsis}.monaco-table-th,.monaco-table-td{box-sizing:border-box;flex-shrink:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{content:"";position:absolute;left:calc(var(--vscode-sash-size) / 2);width:0;border-left:1px solid transparent}.monaco-enable-motion .monaco-table>.monaco-split-view2,.monaco-enable-motion .monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-tl-row{display:flex;height:100%;align-items:center;position:relative}.monaco-tl-row.disabled{cursor:default}.monaco-tl-indent{height:100%;position:absolute;top:0;left:16px;pointer-events:none}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{display:inline-block;box-sizing:border-box;height:100%;border-left:1px solid transparent;opacity:0}.monaco-enable-motion .monaco-tl-indent>.indent-guide{transition:opacity .1s linear}.monaco-tl-twistie,.monaco-tl-contents{height:100%}.monaco-tl-twistie{font-size:10px;text-align:right;padding-right:6px;flex-shrink:0;width:16px;display:flex!important;align-items:center;justify-content:center;transform:translate(3px)}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{animation:codicon-spin 1.25s steps(30) infinite}.monaco-tree-type-filter{position:absolute;top:0;right:0;display:flex;padding:3px;max-width:200px;z-index:100;margin:0 10px 0 6px;border:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px}.monaco-enable-motion .monaco-tree-type-filter{transition:top .3s}.monaco-tree-type-filter.disabled{top:-40px!important}.monaco-tree-type-filter-input{flex:1}.monaco-tree-type-filter-input .monaco-inputbox{height:23px}.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.input,.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.mirror{padding:2px 4px}.monaco-tree-type-filter-input .monaco-findInput>.controls{top:2px}.monaco-tree-type-filter-actionbar{margin-left:4px}.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label{padding:2px}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container{position:absolute;top:0;left:0;width:100%;height:0;z-index:13;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row.monaco-list-row{position:absolute;width:100%;opacity:1!important;overflow:hidden;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover{background-color:var(--vscode-list-hoverBackground)!important;cursor:pointer}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty,.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty .monaco-tree-sticky-container-shadow{display:none}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow{position:absolute;bottom:-3px;left:0;height:0px;width:100%}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container[tabindex="0"]:focus{outline:none}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-top-width:1px;border-bottom-width:1px}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;width:100%;text-align:center;padding:3em 0}.monaco-editor .reference-zone-widget .ref-tree{line-height:23px;background-color:var(--vscode-peekViewResult-background);color:var(--vscode-peekViewResult-lineForeground)}.monaco-editor .reference-zone-widget .ref-tree .reference{text-overflow:ellipsis;overflow:hidden}.monaco-editor .reference-zone-widget .ref-tree .reference-file{display:inline-flex;width:100%;height:100%;color:var(--vscode-peekViewResult-fileForeground)}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file{color:inherit!important}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows>.monaco-list-row.selected:not(.highlighted){background-color:var(--vscode-peekViewResult-selectionBackground);color:var(--vscode-peekViewResult-selectionForeground)!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-right:12px;margin-left:auto}.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight{color:var(--vscode-peekViewResult-fileForeground)!important;background-color:var(--vscode-peekViewResult-matchHighlightBackground)!important}.monaco-editor .reference-zone-widget .preview .reference-decoration{background-color:var(--vscode-peekViewEditor-matchHighlightBackground);border:2px solid var(--vscode-peekViewEditor-matchHighlightBorder);box-sizing:border-box}.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input{background-color:var(--vscode-peekViewEditor-background)}.monaco-editor .reference-zone-widget .preview .monaco-editor .margin{background-color:var(--vscode-peekViewEditorGutter-background)}.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file{font-weight:700}.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight{border:1px dotted var(--vscode-contrastActiveBorder, transparent);box-sizing:border-box}.monaco-count-badge{padding:3px 5px;border-radius:11px;font-size:11px;min-width:18px;min-height:18px;line-height:11px;font-weight:400;text-align:center;display:inline-block;box-sizing:border-box}.monaco-count-badge.long{padding:2px 3px;border-radius:2px;min-height:auto;line-height:normal}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{background-size:16px;background-position:left center;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;line-height:inherit!important;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top;flex-shrink:0}.monaco-icon-label-iconpath{width:16px;height:22px;margin-right:6px;display:flex}.monaco-icon-label-container.disabled{color:var(--vscode-disabledForeground)}.monaco-icon-label>.monaco-icon-label-container{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:1}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-suffix-container>.label-suffix{opacity:.7;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.7;margin-left:.5em;font-size:.9em;white-space:pre}.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{white-space:nowrap}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.95}.monaco-icon-label.bold>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.monaco-icon-label.bold>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{font-weight:700}.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{font-style:italic}.monaco-icon-label.deprecated{text-decoration:line-through;opacity:.66}.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{text-decoration:line-through}.monaco-icon-label:after{opacity:.75;font-size:90%;font-weight:600;margin:auto 16px 0 5px;text-align:center}.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description{opacity:.8}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;vertical-align:text-top;margin-right:4px}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{opacity:.6;font-style:italic}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{position:absolute;white-space:pre;user-select:text;-webkit-user-select:text;padding:8px 12px 0 20px}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code{opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{opacity:.6;color:inherit}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before{content:"("}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after{content:")"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-activeForeground)}.monaco-editor .marker-widget .descriptioncontainer .filename{cursor:pointer;color:var(--vscode-textLink-activeForeground)}.monaco-editor .zone-widget .codicon.codicon-error,.markers-panel .marker-icon.error,.markers-panel .marker-icon .codicon.codicon-error,.text-search-provider-messages .providerMessage .codicon.codicon-error,.extensions-viewlet>.extensions .codicon.codicon-error,.extension-editor .codicon.codicon-error,.chat-attached-context-attachment .codicon.codicon-error{color:var(--vscode-problemsErrorIcon-foreground)}.monaco-editor .zone-widget .codicon.codicon-warning,.markers-panel .marker-icon.warning,.markers-panel .marker-icon .codicon.codicon-warning,.text-search-provider-messages .providerMessage .codicon.codicon-warning,.extensions-viewlet>.extensions .codicon.codicon-warning,.extension-editor .codicon.codicon-warning,.preferences-editor .codicon.codicon-warning{color:var(--vscode-problemsWarningIcon-foreground)}.monaco-editor .zone-widget .codicon.codicon-info,.markers-panel .marker-icon.info,.markers-panel .marker-icon .codicon.codicon-info,.text-search-provider-messages .providerMessage .codicon.codicon-info,.extensions-viewlet>.extensions .codicon.codicon-info,.extension-editor .codicon.codicon-info{color:var(--vscode-problemsInfoIcon-foreground)}.monaco-editor .hoverHighlight{background-color:var(--vscode-editor-hoverHighlightBackground)}.monaco-editor .monaco-resizable-hover{border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px;box-sizing:content-box}.monaco-editor .monaco-resizable-hover>.monaco-hover{border:none;border-radius:none}.monaco-editor .monaco-hover{border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background)}.monaco-editor .monaco-hover a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-hover a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .monaco-hover .hover-row{display:flex}.monaco-editor .monaco-hover .hover-row.hover-row-with-copy{position:relative;padding-right:20px}.monaco-editor .monaco-hover .hover-row .hover-row-contents{min-width:0;display:flex;flex-direction:column}.monaco-editor .monaco-hover .hover-row .verbosity-actions{border-right:1px solid var(--vscode-editorHoverWidget-border);width:22px;overflow-y:clip}.monaco-editor .monaco-hover .hover-row .verbosity-actions-inner{display:flex;flex-direction:column;padding-left:5px;padding-right:5px;justify-content:flex-end;position:relative}.monaco-editor .monaco-hover .hover-row .verbosity-actions-inner .codicon{cursor:pointer;font-size:11px}.monaco-editor .monaco-hover .hover-row .verbosity-actions-inner .codicon.enabled{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-hover .hover-row .verbosity-actions-inner .codicon.disabled{opacity:.6}.monaco-editor .monaco-hover .hover-row .actions{background-color:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-editor .monaco-hover code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .monaco-hover .hover-copy-button{position:absolute;top:4px;right:4px;padding:2px 4px;border-radius:3px;display:flex;align-items:center;justify-content:center;opacity:0}.monaco-editor .monaco-hover .hover-row-with-copy:hover .hover-copy-button,.monaco-editor .monaco-hover .hover-row-with-copy:focus-within .hover-copy-button{opacity:1}.monaco-editor .monaco-hover .hover-copy-button:hover{background-color:var(--vscode-toolbar-hoverBackground);cursor:pointer}.monaco-editor .monaco-hover .hover-copy-button:focus{outline:1px solid var(--vscode-focusBorder);outline-offset:-1px}.monaco-editor .monaco-hover .hover-copy-button .codicon{font-size:16px;color:var(--vscode-foreground)}.monaco-editor.vs .dnd-target,.monaco-editor.hc-light .dnd-target{border-right:2px dotted black;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #AEAFAD;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines,.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.hc-light.mac.mouse-default .view-lines{cursor:default}.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines,.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.hc-light.mac.mouse-copy .view-lines{cursor:copy}.monaco-editor .findOptionsWidget{background-color:var(--vscode-editorWidget-background);color:var(--vscode-editorWidget-foreground);box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:2px solid var(--vscode-contrastBorder)}.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,.monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-editor .margin-view-overlays .codicon-folding-collapsed{cursor:pointer;opacity:0;transition:opacity .5s;display:flex;align-items:center;justify-content:center;font-size:140%;margin-left:2px}.monaco-reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,.monaco-reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-collapsed{transition:initial}.monaco-editor .margin-view-overlays:hover .codicon,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons{opacity:1}.monaco-editor .inline-folded:after{color:var(--vscode-editor-foldPlaceholderForeground);margin:.1em .2em 0;content:"\22ef";display:inline;line-height:1em;cursor:pointer}.monaco-editor .folded-background{background-color:var(--vscode-editor-foldBackground)}.monaco-editor .cldr.codicon.codicon-folding-expanded,.monaco-editor .cldr.codicon.codicon-folding-collapsed,.monaco-editor .cldr.codicon.codicon-folding-manual-expanded,.monaco-editor .cldr.codicon.codicon-folding-manual-collapsed{color:var(--vscode-editorGutter-foldingControlForeground)!important}.monaco-editor .snippet-placeholder{min-width:2px;outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetTabstopHighlightBackground, transparent);outline-color:var(--vscode-editor-snippetTabstopHighlightBorder, transparent)}.monaco-editor .finish-snippet-placeholder{outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetFinalTabstopHighlightBackground, transparent);outline-color:var(--vscode-editor-snippetFinalTabstopHighlightBorder, transparent)}.monaco-editor .suggest-widget{width:430px;z-index:40;display:flex;flex-direction:column;border-radius:3px}.monaco-editor .suggest-widget.message{flex-direction:row;align-items:center}.monaco-editor .suggest-widget,.monaco-editor .suggest-details{flex:0 1 auto;width:100%;border-style:solid;border-width:1px;border-color:var(--vscode-editorSuggestWidget-border);background-color:var(--vscode-editorSuggestWidget-background)}.monaco-editor.hc-black .suggest-widget,.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-light .suggest-widget,.monaco-editor.hc-light .suggest-details{border-width:2px}.monaco-editor .suggest-widget .suggest-status-bar{box-sizing:border-box;display:none;flex-flow:row nowrap;justify-content:space-between;width:100%;font-size:80%;padding:0 4px;border-top:1px solid var(--vscode-editorSuggestWidget-border);overflow:hidden}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar{display:flex}.monaco-editor .suggest-widget .suggest-status-bar .left{padding-right:8px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label{color:var(--vscode-editorSuggestWidgetStatus-foreground)}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label{margin-right:0}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label:after{content:", ";margin-right:.3em}.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:100%}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget>.tree{height:100%;width:100%}.monaco-editor .suggest-widget .monaco-list{user-select:none;-webkit-user-select:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{display:flex;-mox-box-sizing:border-box;box-sizing:border-box;padding-right:10px;background-repeat:no-repeat;background-position:2px 2px;white-space:nowrap;cursor:pointer;touch-action:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused{color:var(--vscode-editorSuggestWidget-selectedForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon{color:var(--vscode-editorSuggestWidget-selectedIconForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;overflow:hidden;text-overflow:ellipsis;white-space:pre;justify-content:space-between}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{display:flex}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused)>.contents>.main .monaco-icon-label{color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight{font-weight:700}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-highlightForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-focusHighlightForeground)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;opacity:1;font-size:14px;cursor:pointer}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;top:6px;right:2px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover{opacity:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{opacity:.7}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label{overflow:hidden;text-overflow:ellipsis;opacity:.6}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{margin-left:12px;opacity:.4;font-size:85%;line-height:initial;text-overflow:ellipsis;overflow:hidden;align-self:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{font-size:85%;margin-left:1.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{display:none}.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-shrink:1;flex-grow:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:0}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label{max-width:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{overflow:hidden;flex-shrink:4;max-width:70%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;position:absolute;right:10px;width:18px;height:18px;visibility:hidden}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none!important}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:inline-block}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right>.readMore{visibility:visible}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:unset}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container{text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before{height:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{display:block;height:16px;width:16px;margin-left:2px;background-repeat:no-repeat;background-size:80%;background-position:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{display:flex;align-items:center;margin-right:4px}.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{margin:0 0 0 .3em;border:.1em solid #000;width:.7em;height:.7em;display:inline-block}.monaco-editor .suggest-details-container{z-index:41}.monaco-editor .suggest-details{display:flex;flex-direction:column;cursor:default;color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-details:focus{border-color:var(--vscode-focusBorder)}.monaco-editor .suggest-details a{color:var(--vscode-textLink-foreground)}.monaco-editor .suggest-details a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .suggest-details code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .suggest-details.no-docs{display:none}.monaco-editor .suggest-details>.monaco-scrollable-element{flex:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body{box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type{flex:2;overflow:hidden;text-overflow:ellipsis;opacity:.7;white-space:pre;margin:0 24px 0 0;padding:4px 0 4px 5px}.monaco-editor .suggest-details.detail-and-doc>.monaco-scrollable-element>.body>.header>.type{padding-bottom:12px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap{white-space:normal;word-break:break-all}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs{margin-right:24px;overflow:hidden}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs{padding:0;white-space:initial;min-height:calc(1rem + 8px)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child{margin-top:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child{margin-bottom:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .monaco-tokenized-source{white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code{white-space:pre-wrap;word-wrap:break-word}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon{vertical-align:sub}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty{display:none}.monaco-editor .suggest-details code{border-radius:3px;padding:0 .4em}.monaco-editor .suggest-details ul,.monaco-editor .suggest-details ol{padding-left:20px}.monaco-editor .suggest-details p code{font-family:var(--monaco-monospace-font)}.monaco-editor .suggest-preview-additional-widget{white-space:nowrap}.monaco-editor .suggest-preview-additional-widget .content-spacer{color:transparent;white-space:pre}.monaco-editor .suggest-preview-additional-widget .button{display:inline-block;cursor:pointer;text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-hidden{opacity:0;font-size:0}.monaco-editor .ghost-text-decoration,.monaco-editor .suggest-preview-text .ghost-text{font-style:italic}.monaco-editor .suggest-preview-text.clickable .view-line{z-index:1}.monaco-editor .ghost-text-decoration.clickable,.monaco-editor .ghost-text-decoration-preview.clickable,.monaco-editor .suggest-preview-text.clickable .ghost-text{cursor:pointer}.monaco-editor .inline-completion-text-to-replace{text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-decoration,.monaco-editor .ghost-text-decoration-preview,.monaco-editor .suggest-preview-text .ghost-text{&.syntax-highlighted{opacity:.7}&:not(.syntax-highlighted){color:var(--vscode-editorGhostText-foreground)}background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border)}.monaco-editor .ghost-text-decoration.warning,.monaco-editor .ghost-text-decoration-preview.warning,.monaco-editor .suggest-preview-text .ghost-text.warning{background:var(--monaco-editor-warning-decoration) repeat-x bottom left;border-bottom:4px double var(--vscode-editorWarning-border)}.ghost-text-view-warning-widget-icon{.codicon{color:var(--vscode-editorWarning-foreground)!important}}.monaco-editor{.edits-fadeout-decoration{opacity:var(--animation-opacity, 1);background-color:var(--vscode-inlineEdit-modifiedChangedTextBackground)}}.monaco-editor .sticky-widget{overflow:hidden;border-bottom:1px solid var(--vscode-editorStickyScroll-border);width:100%;box-shadow:var(--vscode-editorStickyScroll-shadow) 0 4px 2px -2px;z-index:4;right:initial!important;margin-left:"0px"}.monaco-editor .sticky-widget .sticky-widget-line-numbers{float:left;background-color:var(--vscode-editorStickyScrollGutter-background)}.monaco-editor .sticky-widget.peek .sticky-widget-line-numbers{background-color:var(--vscode-peekViewEditorStickyScrollGutter-background)}.monaco-editor .sticky-widget .sticky-widget-lines-scrollable{display:inline-block;position:absolute;overflow:hidden;width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:var(--vscode-editorStickyScroll-background)}.monaco-editor .sticky-widget.peek .sticky-widget-lines-scrollable{background-color:var(--vscode-peekViewEditorStickyScroll-background)}.monaco-editor .sticky-widget .sticky-widget-lines{position:absolute;background-color:inherit}.monaco-editor .sticky-widget .sticky-line-number,.monaco-editor .sticky-widget .sticky-line-content{color:var(--vscode-editorLineNumber-foreground);white-space:nowrap;display:inline-block;position:absolute;background-color:inherit}.monaco-editor .sticky-widget .sticky-line-number .codicon-folding-expanded,.monaco-editor .sticky-widget .sticky-line-number .codicon-folding-collapsed{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition);position:absolute;margin-left:2px}.monaco-editor .sticky-widget .sticky-line-content{width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:inherit;white-space:nowrap}.monaco-editor .sticky-widget .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor .sticky-widget .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor{.inline-edits-view-indicator{display:flex;z-index:34;height:20px;color:var(--vscode-inlineEdit-gutterIndicator-primaryForeground);background-color:var(--vscode-inlineEdit-gutterIndicator-background);border:1px solid var(--vscode-inlineEdit-gutterIndicator-primaryBorder);border-radius:3px;align-items:center;padding:2px 10px 2px 2px;margin:0 4px;opacity:0;&.contained{transition:opacity .2s ease-in-out;transition-delay:.4s}&.visible{opacity:1}&.top{opacity:1;.icon{transform:rotate(90deg)}}&.bottom{opacity:1;.icon{transform:rotate(-90deg)}}.icon{display:flex;align-items:center;margin:0 2px;transform:none;transition:transform .2s ease-in-out;.codicon{color:var(--vscode-inlineEdit-gutterIndicator-primaryForeground)}}.label{margin:0 2px;display:flex;justify-content:center;width:100%}}.inline-edits-view .editorContainer{.preview .monaco-editor{.view-overlays .current-line-exact,.current-line-margin{border:none}}.inline-edits-view-zone.diagonal-fill{opacity:.5}}.strike-through{text-decoration:line-through}.inlineCompletions-line-insert{background:var(--vscode-inlineEdit-modifiedChangedLineBackground)}.inlineCompletions-line-delete{background:var(--vscode-inlineEdit-originalChangedLineBackground)}.inlineCompletions-char-insert{background:var(--vscode-inlineEdit-modifiedChangedTextBackground);cursor:pointer}.inlineCompletions-char-delete{background:var(--vscode-inlineEdit-originalChangedTextBackground)}.inlineCompletions-char-delete.diff-range-empty{margin-left:-1px;border-left:solid var(--vscode-inlineEdit-originalChangedTextBackground) 3px}.inlineCompletions-char-insert.diff-range-empty{border-left:solid var(--vscode-inlineEdit-modifiedChangedTextBackground) 3px}.inlineCompletions-char-delete.single-line-inline{border:1px solid var(--vscode-editorHoverWidget-border);margin:-2px 0 0 -2px}.inlineCompletions-char-insert.single-line-inline{border-top:1px solid var(--vscode-inlineEdit-modifiedBorder);border-bottom:1px solid var(--vscode-inlineEdit-modifiedBorder)}.inlineCompletions-char-insert.single-line-inline.start{border-top-left-radius:4px;border-bottom-left-radius:4px;border-left:1px solid var(--vscode-inlineEdit-modifiedBorder)}.inlineCompletions-char-insert.single-line-inline.end{border-top-right-radius:4px;border-bottom-right-radius:4px;border-right:1px solid var(--vscode-inlineEdit-modifiedBorder)}.inlineCompletions-char-delete.single-line-inline.empty,.inlineCompletions-char-insert.single-line-inline.empty{display:none}.inlineCompletions.strike-through{text-decoration-thickness:1px}.inlineCompletions-modified-bubble{background:var(--vscode-inlineEdit-modifiedChangedTextBackground)}.inlineCompletions-original-bubble{background:var(--vscode-inlineEdit-originalChangedTextBackground)}.inlineCompletions-modified-bubble,.inlineCompletions-original-bubble{pointer-events:none;display:inline-block}.inline-edit.ghost-text,.inline-edit.ghost-text-decoration,.inline-edit.ghost-text-decoration-preview,.inline-edit.suggest-preview-text .ghost-text{&.syntax-highlighted{opacity:1!important}font-style:normal!important}.inline-edit.modified-background.ghost-text,.inline-edit.modified-background.ghost-text-decoration,.inline-edit.modified-background.ghost-text-decoration-preview,.inline-edit.modified-background.suggest-preview-text .ghost-text{background:var(--vscode-inlineEdit-modifiedChangedTextBackground)!important;display:inline-block!important}.inlineCompletions-original-lines{background:var(--vscode-editor-background)}}.monaco-menu-option{color:var(--vscode-editorActionList-foreground);font-size:13px;padding:0 4px;line-height:28px;display:flex;gap:4px;align-items:center;border-radius:3px;cursor:pointer;.monaco-keybinding-key{font-size:13px;opacity:.7}&.active{background:var(--vscode-editorActionList-focusBackground);color:var(--vscode-editorActionList-focusForeground);outline:1px solid var(--vscode-menu-selectionBorder, transparent);outline-offset:-1px;.monaco-keybinding-key{color:var(--vscode-editorActionList-focusForeground)}}}.monaco-editor .goto-definition-link{text-decoration:underline;cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor.vs .valueSetReplacement{outline:solid 2px var(--vscode-editorBracketMatch-border)}.monaco-editor .linked-editing-decoration{background-color:var(--vscode-editor-linkedEditingBackground);min-width:1px}.monaco-editor .detected-link,.monaco-editor .detected-link-active{text-decoration:underline;text-underline-position:under}.monaco-editor .detected-link-active{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor{.scroll-editor-on-middle-click-dot{cursor:all-scroll;position:absolute;z-index:1;background-color:var(--vscode-editor-foreground, white);border:1px solid var(--vscode-editor-background, black);opacity:.5;width:5px;height:5px;border-radius:50%;transform:translate(-50%,-50%);&.hidden{display:none}}&.scroll-editor-on-middle-click-editor *{cursor:all-scroll}}.monaco-editor .focused .selectionHighlight{background-color:var(--vscode-editor-selectionHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-selectionHighlightBorder)}.monaco-editor.hc-black .focused .selectionHighlight,.monaco-editor.hc-light .focused .selectionHighlight{border-style:dotted}.monaco-editor .wordHighlight{background-color:var(--vscode-editor-wordHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightBorder)}.monaco-editor.hc-black .wordHighlight,.monaco-editor.hc-light .wordHighlight{border-style:dotted}.monaco-editor .wordHighlightStrong{background-color:var(--vscode-editor-wordHighlightStrongBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightStrongBorder)}.monaco-editor.hc-black .wordHighlightStrong,.monaco-editor.hc-light .wordHighlightStrong{border-style:dotted}.monaco-editor .wordHighlightText{background-color:var(--vscode-editor-wordHighlightTextBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightTextBorder)}.monaco-editor.hc-black .wordHighlightText,.monaco-editor.hc-light .wordHighlightText{border-style:dotted}.monaco-editor .parameter-hints-widget{z-index:39;display:flex;flex-direction:column;line-height:1.5em;cursor:default;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.hc-black .monaco-editor .parameter-hints-widget,.hc-light .monaco-editor .parameter-hints-widget{border-width:2px}.monaco-editor .parameter-hints-widget>.phwrapper{max-width:440px;display:flex;flex-direction:row}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.multiple .body:before{content:"";display:block;height:100%;position:absolute;opacity:.5;border-left:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul{margin:8px 0}.monaco-editor .parameter-hints-widget .monaco-scrollable-element,.monaco-editor .parameter-hints-widget .body{display:flex;flex:1;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .signature{padding:4px 5px;position:relative}.monaco-editor .parameter-hints-widget .signature.has-docs:after{content:"";display:block;position:absolute;left:0;width:100%;padding-top:4px;opacity:.5;border-bottom:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget .code{font-family:var(--vscode-parameterHintsWidget-editorFontFamily),var(--vscode-parameterHintsWidget-editorFontFamilyDefault)}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs.empty{display:none}.monaco-editor .parameter-hints-widget .docs a{color:var(--vscode-textLink-foreground)}.monaco-editor .parameter-hints-widget .docs a:hover{color:var(--vscode-textLink-activeForeground);cursor:pointer}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:initial}.monaco-editor .parameter-hints-widget .docs code{font-family:var(--monaco-monospace-font);border-radius:3px;padding:0 .4em;background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source,.monaco-editor .parameter-hints-widget .docs .code{white-space:pre-wrap}.monaco-editor .parameter-hints-widget .controls{display:none;flex-direction:column;align-items:center;min-width:22px;justify-content:flex-end}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{width:16px;height:16px;background-repeat:no-repeat;cursor:pointer}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{text-align:center;height:12px;line-height:12px;font-family:var(--monaco-monospace-font)}.monaco-editor .parameter-hints-widget .signature .parameter.active{color:var(--vscode-editorHoverWidget-highlightForeground);font-weight:700}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor{.editorPlaceholder{top:0;position:absolute;overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap;pointer-events:none;color:var(--vscode-editor-placeholder-foreground)}}.monaco-editor .rename-box{z-index:100;color:inherit;border-radius:4px}.monaco-editor .rename-box.preview{padding:4px 4px 0}.monaco-editor .rename-box .rename-input-with-button{padding:3px;border-radius:2px;width:calc(100% - 8px)}.monaco-editor .rename-box .rename-input{width:calc(100% - 8px);padding:0}.monaco-editor .rename-box .rename-input:focus{outline:none}.monaco-editor .rename-box .rename-suggestions-button{display:flex;align-items:center;padding:3px;background-color:transparent;border:none;border-radius:5px;cursor:pointer}.monaco-editor .rename-box .rename-suggestions-button:hover{background-color:var(--vscode-toolbar-hoverBackground)}.monaco-editor .rename-box .rename-candidate-list-container .monaco-list-row{border-radius:2px}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .rename-box.preview .rename-label{display:inherit}.monaco-editor .unicode-highlight{border:1px solid var(--vscode-editorUnicodeHighlight-border);background-color:var(--vscode-editorUnicodeHighlight-background);box-sizing:border-box}.editor-banner{box-sizing:border-box;cursor:default;width:100%;font-size:12px;display:flex;overflow:visible;height:26px;background:var(--vscode-banner-background)}.editor-banner .icon-container{display:flex;flex-shrink:0;align-items:center;padding:0 6px 0 10px}.editor-banner .icon-container.custom-icon{background-repeat:no-repeat;background-position:center center;background-size:16px;width:16px;padding:0;margin:0 6px 0 10px}.editor-banner .message-container{display:flex;align-items:center;line-height:26px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.editor-banner .message-container p{margin-block-start:0;margin-block-end:0}.editor-banner .message-actions-container{flex-grow:1;flex-shrink:0;line-height:26px;margin:0 4px}.editor-banner .message-actions-container a.monaco-button{width:inherit;margin:2px 8px;padding:0 12px}.editor-banner .message-actions-container a{padding:3px;margin-left:12px;text-decoration:underline}.editor-banner .action-container{padding:0 10px 0 6px}.editor-banner{background-color:var(--vscode-banner-background)}.editor-banner,.editor-banner .action-container .codicon,.editor-banner .message-actions-container .monaco-link{color:var(--vscode-banner-foreground)}.editor-banner .icon-container .codicon{color:var(--vscode-banner-iconForeground)}.monaco-link{color:var(--vscode-textLink-foreground)}.monaco-link:hover{color:var(--vscode-textLink-activeForeground)}.floating-menu-overlay-widget{padding:0;color:var(--vscode-button-foreground);background-color:var(--vscode-button-background);border-radius:2px;border:1px solid var(--vscode-contrastBorder);display:flex;align-items:center;z-index:10;box-shadow:0 2px 8px var(--vscode-widget-shadow);overflow:hidden;.action-item>.action-label{padding:5px;font-size:12px;border-radius:2px}.action-item>.action-label.codicon{color:var(--vscode-button-foreground)}.action-item>.action-label.codicon:not(.separator){padding-top:6px;padding-bottom:6px}.action-item:first-child>.action-label{padding-left:7px}.action-item:last-child>.action-label{padding-right:7px}.action-item .action-label.separator{background-color:var(--vscode-menu-separatorBackground)}}.monaco-editor .iPadShowKeyboard{width:58px;min-width:0;height:36px;min-height:0;margin:0;padding:0;position:absolute;resize:none;overflow:hidden;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjNDI0MjQyIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==) center center no-repeat;border:4px solid #F6F6F6;border-radius:4px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjQzVDNUM1Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==) center center no-repeat;border:4px solid #252526}.monaco-editor .tokens-inspect-widget{z-index:50;user-select:text;-webkit-user-select:text;padding:10px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor.hc-black .tokens-inspect-widget,.monaco-editor.hc-light .tokens-inspect-widget{border-width:2px}.monaco-editor .tokens-inspect-widget .tokens-inspect-separator{height:1px;border:0;background-color:var(--vscode-editorHoverWidget-border)}.monaco-editor .tokens-inspect-widget .tm-token{font-family:var(--monaco-monospace-font)}.monaco-editor .tokens-inspect-widget .tm-token-length{font-weight:400;font-size:60%;float:right}.monaco-editor .tokens-inspect-widget .tm-metadata-table{width:100%}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:var(--monaco-monospace-font);text-align:right}.monaco-editor .tokens-inspect-widget .tm-token-type{font-family:var(--monaco-monospace-font)}.monaco-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif;--monaco-monospace-font: "SF Mono", Monaco, Menlo, Consolas, "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace}.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-hover p{margin:0}.monaco-aria-container{position:absolute!important;top:0;height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%)}.monaco-editor .synthetic-focus,.monaco-diff-editor .synthetic-focus,.monaco-editor [tabindex="0"]:focus,.monaco-diff-editor [tabindex="0"]:focus,.monaco-editor [tabindex="-1"]:focus,.monaco-diff-editor [tabindex="-1"]:focus,.monaco-editor button:focus,.monaco-diff-editor button:focus,.monaco-editor input[type=button]:focus,.monaco-diff-editor input[type=button]:focus,.monaco-editor input[type=checkbox]:focus,.monaco-diff-editor input[type=checkbox]:focus,.monaco-editor input[type=search]:focus,.monaco-diff-editor input[type=search]:focus,.monaco-editor input[type=text]:focus,.monaco-diff-editor input[type=text]:focus,.monaco-editor select:focus,.monaco-diff-editor select:focus,.monaco-editor textarea:focus,.monaco-diff-editor textarea:focus{outline-width:1px;outline-style:solid;outline-offset:-1px;outline-color:var(--vscode-focusBorder);opacity:1}.monaco-hover.workbench-hover{position:relative;font-size:13px;line-height:19px;z-index:40;overflow:hidden;max-width:700px;background:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:5px;color:var(--vscode-editorHoverWidget-foreground);box-shadow:0 2px 8px var(--vscode-widget-shadow)}.monaco-hover.workbench-hover .monaco-action-bar .action-item .codicon{width:13px;height:13px}.monaco-hover.workbench-hover hr{border-bottom:none}.monaco-hover.workbench-hover.compact{font-size:12px}.monaco-hover.workbench-hover.compact .monaco-action-bar .action-item .codicon{width:12px;height:12px}.monaco-hover.workbench-hover.compact .hover-contents{padding:2px 8px}.workbench-hover-container.locked .monaco-hover.workbench-hover{outline:1px solid var(--vscode-editorHoverWidget-border)}.workbench-hover-container:focus-within.locked .monaco-hover.workbench-hover{outline-color:var(--vscode-focusBorder)}.workbench-hover-pointer{position:absolute;z-index:41;pointer-events:none}.workbench-hover-pointer:after{content:"";position:absolute;width:5px;height:5px;background-color:var(--vscode-editorHoverWidget-background);border-right:1px solid var(--vscode-editorHoverWidget-border);border-bottom:1px solid var(--vscode-editorHoverWidget-border)}.workbench-hover-container:not(:focus-within).locked .workbench-hover-pointer:after{width:4px;height:4px;border-right-width:2px;border-bottom-width:2px}.workbench-hover-container:focus-within .workbench-hover-pointer:after{border-right:1px solid var(--vscode-focusBorder);border-bottom:1px solid var(--vscode-focusBorder)}.workbench-hover-pointer.left{left:-3px}.workbench-hover-pointer.right{right:3px}.workbench-hover-pointer.top{top:-3px}.workbench-hover-pointer.bottom{bottom:3px}.workbench-hover-pointer.left:after{transform:rotate(135deg)}.workbench-hover-pointer.right:after{transform:rotate(315deg)}.workbench-hover-pointer.top:after{transform:rotate(225deg)}.workbench-hover-pointer.bottom:after{transform:rotate(45deg)}.monaco-hover.workbench-hover a{color:var(--vscode-textLink-foreground)}.monaco-hover.workbench-hover a:focus{outline:1px solid;outline-offset:-1px;text-decoration:underline;outline-color:var(--vscode-focusBorder)}.monaco-hover.workbench-hover a.codicon:focus,.monaco-hover.workbench-hover a.monaco-button:focus{text-decoration:none}.monaco-hover.workbench-hover a:hover,.monaco-hover.workbench-hover a:active{color:var(--vscode-textLink-activeForeground)}.monaco-hover.workbench-hover code{background:var(--vscode-textCodeBlock-background)}.monaco-hover.workbench-hover .hover-row .actions{background:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-hover.workbench-hover.right-aligned{left:1px}.monaco-hover.workbench-hover.right-aligned .hover-row.status-bar .actions{flex-direction:row-reverse}.monaco-hover.workbench-hover.right-aligned .hover-row.status-bar .actions .action-container{margin-right:0;margin-left:16px}.context-view{position:absolute}.context-view.fixed{all:initial;font-family:inherit;font-size:13px;position:fixed;color:inherit}.quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.hc-light .quick-input-widget .monaco-highlighted-label .highlight{color:#0f4a85}.monaco-keybinding>.monaco-keybinding-key{background-color:#ddd6;border:solid 1px rgba(204,204,204,.4);border-bottom-color:#bbb6;box-shadow:inset 0 -1px #bbb6;color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:solid 1px rgb(111,195,223);box-shadow:none;color:#fff}.hc-light .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:solid 1px #0F4A85;box-shadow:none;color:#292929}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:#8080802b;border:solid 1px rgba(51,51,51,.6);border-bottom-color:#4449;box-shadow:inset 0 -1px #4449;color:#ccc}.quick-input-widget{position:absolute;width:600px;z-index:2550;left:50%;-webkit-app-region:no-drag;border-radius:6px}.quick-input-titlebar{cursor:grab;display:flex;align-items:center;border-top-right-radius:5px;border-top-left-radius:5px}.quick-input-left-action-bar{display:flex;margin-left:4px;flex:1}.quick-input-inline-action-bar>.actions-container>.action-item:first-child{margin-left:5px}.quick-input-inline-action-bar>.actions-container>.action-item{margin-top:2px}.quick-input-title{cursor:grab;padding:3px 0;text-align:center;text-overflow:ellipsis;overflow:hidden}.quick-input-right-action-bar{display:flex;margin-right:4px;flex:1}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-right-action-bar>.actions-container>.action-item{margin-left:4px}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:center;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px 6px 6px 11px}.quick-input-header .quick-input-description{margin:4px 2px;flex:1}.quick-input-header{cursor:grab;display:flex;padding:6px 6px 2px}.quick-input-widget.hidden-input .quick-input-header{padding:0;margin-bottom:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;min-width:0;position:relative}.quick-input-check-all{align-self:center;margin:0}.quick-input-widget .quick-input-header .monaco-checkbox{margin-top:6px}.quick-input-filter{flex-grow:1;display:flex;position:relative}.quick-input-box{flex-grow:1}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{position:absolute;left:-10000px}.quick-input-count{align-self:center;position:absolute;right:4px;display:flex;align-items:center}.quick-input-count .monaco-count-badge{vertical-align:middle;padding:2px 4px;border-radius:2px;min-height:auto;line-height:normal}.quick-input-action{margin-left:6px}.quick-input-action .monaco-text-button{font-size:11px;padding:0 6px;display:flex;height:25px;align-items:center}.quick-input-message{margin-top:-1px;padding:5px;overflow-wrap:break-word}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-message a{color:inherit}.quick-input-progress.monaco-progress-container{position:relative}.quick-input-list{line-height:22px}.quick-input-widget.hidden-input .quick-input-list{margin-top:4px;padding-bottom:4px}.quick-input-list .monaco-list{overflow:hidden;max-height:440px;padding-bottom:5px}.quick-input-list .monaco-scrollable-element{padding:0 6px}.quick-input-list .quick-input-list-entry{box-sizing:border-box;overflow:hidden;display:flex;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-width:1px;border-top-style:solid}.quick-input-list .monaco-list-row{border-radius:3px}.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{overflow:hidden;display:flex;height:100%;flex:1}.quick-input-widget .monaco-checkbox{margin-right:0}.quick-input-widget .quick-input-list .monaco-checkbox,.quick-input-widget .quick-input-tree .monaco-checkbox{margin-top:4px}.quick-input-list .quick-input-list-icon{background-size:16px;background-position:left center;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;display:flex;align-items:center;justify-content:center}.quick-input-list .quick-input-list-rows{overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;height:100%;flex:1;margin-left:5px}.quick-input-list .quick-input-list-rows>.quick-input-list-row{display:flex;align-items:center}.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-rows .monaco-highlighted-label>span{opacity:1}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{opacity:.7;line-height:normal;text-overflow:ellipsis;overflow:hidden}.quick-input-list .monaco-list .monaco-list-row .monaco-highlighted-label .highlight{font-weight:700;background-color:unset;color:var(--vscode-list-highlightForeground)!important}.quick-input-list .monaco-list .monaco-list-row.focused .monaco-highlighted-label .highlight{color:var(--vscode-list-focusHighlightForeground)!important}.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:4px}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0;overflow:visible}.quick-input-list .quick-input-list-entry-action-bar .action-label{display:none}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:2px}.quick-input-list .quick-input-list-entry-action-bar{margin-top:1px}.quick-input-list .quick-input-list-entry-action-bar{margin-right:4px}.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry.focus-inside .quick-input-list-entry-action-bar .action-label,.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .monaco-list-row.passive-focused .quick-input-list-entry-action-bar .action-label{display:flex}.quick-input-list>.monaco-list:focus .monaco-list-row.focused{outline:1px solid var(--vscode-list-focusOutline)!important;outline-offset:-1px}.quick-input-list>.monaco-list:focus .monaco-list-row.focused .quick-input-list-entry.quick-input-list-separator-border{border-color:transparent}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator{color:inherit}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key{background:none}.quick-input-list .quick-input-list-separator-as-item{padding:4px 6px;font-size:12px}.quick-input-list .quick-input-list-separator-as-item .label-name{font-weight:600}.quick-input-list .quick-input-list-separator-as-item .label-description{opacity:1!important}.quick-input-list .monaco-tree-sticky-row .quick-input-list-entry.quick-input-list-separator-as-item.quick-input-list-separator-border{border-top-style:none}.quick-input-list .monaco-tree-sticky-row{padding:0 5px}.quick-input-list .monaco-tl-twistie{display:none!important}.quick-input-tree .monaco-list{overflow:hidden;max-height:440px;padding-bottom:5px}.quick-input-tree .quick-input-tree-entry{box-sizing:border-box;overflow:hidden;display:flex;padding:0 6px}.quick-input-tree .quick-input-tree-label{overflow:hidden;display:flex;height:100%;flex:1}.quick-input-tree .quick-input-tree-icon{background-size:16px;background-position:left center;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;display:flex;align-items:center;justify-content:center}.quick-input-tree .quick-input-tree-rows{overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;height:100%;flex:1;margin-left:5px}.quick-input-tree .quick-input-tree-rows>.quick-input-tree-row{display:flex;align-items:center}.quick-input-tree .quick-input-tree-rows>.quick-input-tree-row .monaco-icon-label,.quick-input-tree .quick-input-tree-rows>.quick-input-tree-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.quick-input-tree .quick-input-tree-rows>.quick-input-tree-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-tree .quick-input-tree-rows .monaco-highlighted-label>span{opacity:1}.quick-input-tree .quick-input-tree-entry-action-bar{display:flex;flex:0;overflow:visible}.quick-input-tree .quick-input-tree-entry-action-bar .action-label{display:none}.quick-input-tree .quick-input-tree-entry-action-bar .action-label.codicon{margin-right:4px;padding:2px}.quick-input-tree .quick-input-tree-entry-action-bar{margin-top:1px}.quick-input-tree .quick-input-tree-entry-action-bar{margin-right:4px}.quick-input-tree .quick-input-tree-entry .quick-input-tree-entry-action-bar .action-label.always-visible,.quick-input-tree .quick-input-tree-entry:hover .quick-input-tree-entry-action-bar .action-label,.quick-input-tree .quick-input-tree-entry.focus-inside .quick-input-tree-entry-action-bar .action-label,.quick-input-tree .monaco-list-row.focused .quick-input-tree-entry-action-bar .action-label,.quick-input-tree .monaco-list-row.passive-focused .quick-input-tree-entry-action-bar .action-label{display:flex}.quick-input-tree>.monaco-list:focus .monaco-list-row.focused{outline:1px solid var(--vscode-list-focusOutline)!important;outline-offset:-1px}.monaco-progress-container{width:100%;height:2px;overflow:hidden}.monaco-progress-container .progress-bit{width:2%;height:2px;position:absolute;left:0;display:none}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{animation-name:progress;animation-duration:4s;animation-iteration-count:infinite;transform:translateZ(0);animation-timing-function:linear}.monaco-progress-container.infinite.infinite-long-running .progress-bit{animation-timing-function:steps(100)}@keyframes progress{0%{transform:translate(0) scaleX(1)}50%{transform:translate(2500%) scaleX(3)}to{transform:translate(4900%) scaleX(1)}}.monaco-editor .rendered-markdown kbd{background-color:var(--vscode-keybindingLabel-background);color:var(--vscode-keybindingLabel-foreground);border-style:solid;border-width:1px;border-radius:3px;border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);vertical-align:middle;padding:1px 3px}.rendered-markdown li:has(input[type=checkbox]){list-style-type:none}.monaco-component.multiDiffEditor{background:var(--vscode-multiDiffEditor-background);position:relative;height:100%;width:100%;overflow-y:hidden;>div{position:absolute;top:0;left:0;height:100%;width:100%;&.placeholder{visibility:hidden;&.visible{visibility:visible}display:grid;place-items:center;place-content:center}}.active{--vscode-multiDiffEditor-border: var(--vscode-focusBorder)}.multiDiffEntry{display:flex;flex-direction:column;flex:1;overflow:hidden;.collapse-button{margin:0 5px;cursor:pointer;a{display:block}}.header{z-index:1000;background:var(--vscode-editor-background);&:not(.collapsed) .header-content{border-bottom:1px solid var(--vscode-sideBarSectionHeader-border)}.header-content{margin:8px 0 0;padding:4px 5px;border-top:1px solid var(--vscode-multiDiffEditor-border);display:flex;align-items:center;color:var(--vscode-foreground);background:var(--vscode-multiDiffEditor-headerBackground);&.shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px}.file-path{display:flex;flex:1;min-width:0;.title{font-size:14px;line-height:22px;&.original{flex:1;min-width:0;text-overflow:ellipsis}}.status{font-weight:600;opacity:.75;margin:0 10px;line-height:22px}}.actions{padding:0 8px}}}.editorParent{flex:1;display:flex;flex-direction:column;border-bottom:1px solid var(--vscode-multiDiffEditor-border);overflow:hidden}.editorContainer{flex:1}}}
diff --git a/priv/static/assets/monaco.js b/priv/static/assets/monaco.js
index d70960b..cb2da23 100644
--- a/priv/static/assets/monaco.js
+++ b/priv/static/assets/monaco.js
@@ -1,20151 +1,16 @@
-var __defProp = Object.defineProperty;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __esm = (fn, res) => function __init() {
-  return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
-};
-var __export = (target, all) => {
-  for (var name in all)
-    __defProp(target, name, { get: all[name], enumerable: true });
-};
+var KWe=Object.defineProperty;var w=(n,e)=>()=>(n&&(e=n(n=0)),e);var Ke=(n,e)=>{for(var t in e)KWe(n,t,{get:e[t],enumerable:!0})};function fO(){return globalThis._VSCODE_NLS_MESSAGES}function ry(){return globalThis._VSCODE_NLS_LANGUAGE}var mO=w(()=>{});function gO(n,e){let t;return e.length===0?t=n:t=n.replace(/\{(\d+)\}/g,(i,o)=>{let r=o[0],s=e[r],a=i;return typeof s=="string"?a=s:(typeof s=="number"||typeof s=="boolean"||s===void 0||s===null)&&(a=String(s)),a}),GWe&&(t="\uFF3B"+t.replace(/[aouei]/g,"$&$&")+"\uFF3D"),t}function g(n,e,...t){return gO(typeof n=="number"?Upe(n,e):e,t)}function Upe(n,e){let t=fO()?.[n];if(typeof t!="string"){if(typeof e=="string")return e;throw new Error(`!!! NLS MISSING: ${n} !!!`)}return t}function V(n,e,...t){let i;typeof n=="number"?i=Upe(n,e):i=e;let o=gO(i,t);return{value:o,original:e===i?o:gO(e,t)}}var GWe,le=w(()=>{mO();GWe=ry()==="pseudo"||typeof document<"u"&&document.location&&typeof document.location.hash=="string"&&document.location.hash.indexOf("pseudo=true")>=0});function $pe(n,e){let t=n;typeof t.vscodeWindowId!="number"&&Object.defineProperty(t,"vscodeWindowId",{get:()=>e})}var Et,ka=w(()=>{Et=window});function mG(n,e,t){typeof e=="string"&&(e=n.matchMedia(e)),e.addEventListener("change",t)}function WE(n){return fG.INSTANCE.getZoomFactor(n)}function ay(){return globalThis.MonacoEnvironment}var fG,sy,To,_C,jb,Pu,pO,gG,uG,Gs=w(()=>{ka();fG=class n{constructor(){this.mapWindowIdToZoomFactor=new Map}static{this.INSTANCE=new n}getZoomFactor(e){return this.mapWindowIdToZoomFactor.get(this.getWindowId(e))??1}getWindowId(e){return e.vscodeWindowId}};sy=navigator.userAgent,To=sy.indexOf("Firefox")>=0,_C=sy.indexOf("AppleWebKit")>=0,jb=sy.indexOf("Chrome")>=0,Pu=!jb&&sy.indexOf("Safari")>=0,pO=!jb&&!Pu&&_C;sy.indexOf("Electron/")>=0;gG=sy.indexOf("Android")>=0,uG=!1;if(typeof Et.matchMedia=="function"){let n=Et.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)"),e=Et.matchMedia("(display-mode: fullscreen)");uG=n.matches,mG(Et,n,({matches:t})=>{uG&&e.matches||(uG=t)})}});function ly(n){_G.onUnexpectedError(n)}function De(n){ir(n)||_G.onUnexpectedError(n)}function si(n){ir(n)||_G.onUnexpectedExternalError(n)}function vO(n){if(n instanceof Error){let{name:e,message:t,cause:i}=n,o=n.stacktrace||n.stack;return{$isError:!0,name:e,message:t,stack:o,noTelemetry:HE.isErrorNoTelemetry(n),cause:i?vO(i):void 0,code:n.code}}return n}function ir(n){return n instanceof Za?!0:n instanceof Error&&n.name===_O&&n.message===_O}function qpe(){let n=new Error(_O);return n.name=n.message,n}function da(n){return n?new Error(`Illegal argument: ${n}`):new Error("Illegal argument")}function bC(n){return n?new Error(`Illegal state: ${n}`):new Error("Illegal state")}var pG,_G,_O,Za,bO,HE,ke,Ae=w(()=>{pG=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?HE.isErrorNoTelemetry(e)?new HE(e.message+`
 
-// ../node_modules/monaco-editor/esm/vs/nls.messages.js
-function getNLSMessages() {
-  return globalThis._VSCODE_NLS_MESSAGES;
-}
-function getNLSLanguage() {
-  return globalThis._VSCODE_NLS_LANGUAGE;
-}
-var init_nls_messages = __esm({
-  "../node_modules/monaco-editor/esm/vs/nls.messages.js"() {
-  }
-});
+`+e.stack):new Error(e.message+`
 
-// ../node_modules/monaco-editor/esm/vs/nls.js
-function _format(message, args) {
-  let result;
-  if (args.length === 0) {
-    result = message;
-  } else {
-    result = message.replace(/\{(\d+)\}/g, (match2, rest) => {
-      const index = rest[0];
-      const arg = args[index];
-      let result2 = match2;
-      if (typeof arg === "string") {
-        result2 = arg;
-      } else if (typeof arg === "number" || typeof arg === "boolean" || arg === void 0 || arg === null) {
-        result2 = String(arg);
-      }
-      return result2;
-    });
-  }
-  if (isPseudo) {
-    result = "\uFF3B" + result.replace(/[aouei]/g, "$&$&") + "\uFF3D";
-  }
-  return result;
-}
-function localize(data, message, ...args) {
-  if (typeof data === "number") {
-    return _format(lookupMessage(data, message), args);
-  }
-  return _format(message, args);
-}
-function lookupMessage(index, fallback2) {
-  const message = getNLSMessages()?.[index];
-  if (typeof message !== "string") {
-    if (typeof fallback2 === "string") {
-      return fallback2;
-    }
-    throw new Error(`!!! NLS MISSING: ${index} !!!`);
-  }
-  return message;
-}
-function localize2(data, originalMessage, ...args) {
-  let message;
-  if (typeof data === "number") {
-    message = lookupMessage(data, originalMessage);
-  } else {
-    message = originalMessage;
-  }
-  const value = _format(message, args);
-  return {
-    value,
-    original: originalMessage === message ? value : _format(originalMessage, args)
-  };
-}
-var isPseudo;
-var init_nls = __esm({
-  "../node_modules/monaco-editor/esm/vs/nls.js"() {
-    init_nls_messages();
-    isPseudo = getNLSLanguage() === "pseudo" || typeof document !== "undefined" && document.location && typeof document.location.hash === "string" && document.location.hash.indexOf("pseudo=true") >= 0;
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/browser/window.js
-function ensureCodeWindow(targetWindow, fallbackWindowId) {
-  const codeWindow = targetWindow;
-  if (typeof codeWindow.vscodeWindowId !== "number") {
-    Object.defineProperty(codeWindow, "vscodeWindowId", {
-      get: () => fallbackWindowId
-    });
-  }
-}
-var mainWindow;
-var init_window = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/browser/window.js"() {
-    mainWindow = window;
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/browser/browser.js
-function addMatchMediaChangeListener(targetWindow, query, callback) {
-  if (typeof query === "string") {
-    query = targetWindow.matchMedia(query);
-  }
-  query.addEventListener("change", callback);
-}
-function getZoomFactor(targetWindow) {
-  return WindowManager.INSTANCE.getZoomFactor(targetWindow);
-}
-function getMonacoEnvironment() {
-  return globalThis.MonacoEnvironment;
-}
-var WindowManager, userAgent, isFirefox, isWebKit, isChrome, isSafari, isWebkitWebView, isAndroid, standalone;
-var init_browser = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/browser/browser.js"() {
-    init_window();
-    WindowManager = class _WindowManager {
-      constructor() {
-        this.mapWindowIdToZoomFactor = /* @__PURE__ */ new Map();
-      }
-      static {
-        this.INSTANCE = new _WindowManager();
-      }
-      getZoomFactor(targetWindow) {
-        return this.mapWindowIdToZoomFactor.get(this.getWindowId(targetWindow)) ?? 1;
-      }
-      getWindowId(targetWindow) {
-        return targetWindow.vscodeWindowId;
-      }
-    };
-    userAgent = navigator.userAgent;
-    isFirefox = userAgent.indexOf("Firefox") >= 0;
-    isWebKit = userAgent.indexOf("AppleWebKit") >= 0;
-    isChrome = userAgent.indexOf("Chrome") >= 0;
-    isSafari = !isChrome && userAgent.indexOf("Safari") >= 0;
-    isWebkitWebView = !isChrome && !isSafari && isWebKit;
-    userAgent.indexOf("Electron/") >= 0;
-    isAndroid = userAgent.indexOf("Android") >= 0;
-    standalone = false;
-    if (typeof mainWindow.matchMedia === "function") {
-      const standaloneMatchMedia = mainWindow.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)");
-      const fullScreenMatchMedia = mainWindow.matchMedia("(display-mode: fullscreen)");
-      standalone = standaloneMatchMedia.matches;
-      addMatchMediaChangeListener(mainWindow, standaloneMatchMedia, ({ matches }) => {
-        if (standalone && fullScreenMatchMedia.matches) {
-          return;
-        }
-        standalone = matches;
-      });
-    }
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/errors.js
-function onBugIndicatingError(e) {
-  errorHandler.onUnexpectedError(e);
-  return void 0;
-}
-function onUnexpectedError(e) {
-  if (!isCancellationError(e)) {
-    errorHandler.onUnexpectedError(e);
-  }
-  return void 0;
-}
-function onUnexpectedExternalError(e) {
-  if (!isCancellationError(e)) {
-    errorHandler.onUnexpectedExternalError(e);
-  }
-  return void 0;
-}
-function transformErrorForSerialization(error) {
-  if (error instanceof Error) {
-    const { name, message, cause } = error;
-    const stack = error.stacktrace || error.stack;
-    return {
-      $isError: true,
-      name,
-      message,
-      stack,
-      noTelemetry: ErrorNoTelemetry.isErrorNoTelemetry(error),
-      cause: cause ? transformErrorForSerialization(cause) : void 0,
-      code: error.code
-    };
-  }
-  return error;
-}
-function isCancellationError(error) {
-  if (error instanceof CancellationError) {
-    return true;
-  }
-  return error instanceof Error && error.name === canceledName && error.message === canceledName;
-}
-function canceled() {
-  const error = new Error(canceledName);
-  error.name = error.message;
-  return error;
-}
-function illegalArgument(name) {
-  if (name) {
-    return new Error(`Illegal argument: ${name}`);
-  } else {
-    return new Error("Illegal argument");
-  }
-}
-function illegalState(name) {
-  if (name) {
-    return new Error(`Illegal state: ${name}`);
-  } else {
-    return new Error("Illegal state");
-  }
-}
-var ErrorHandler, errorHandler, canceledName, CancellationError, NotSupportedError, ErrorNoTelemetry, BugIndicatingError;
-var init_errors = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/errors.js"() {
-    ErrorHandler = class {
-      constructor() {
-        this.listeners = [];
-        this.unexpectedErrorHandler = function(e) {
-          setTimeout(() => {
-            if (e.stack) {
-              if (ErrorNoTelemetry.isErrorNoTelemetry(e)) {
-                throw new ErrorNoTelemetry(e.message + "\n\n" + e.stack);
-              }
-              throw new Error(e.message + "\n\n" + e.stack);
-            }
-            throw e;
-          }, 0);
-        };
-      }
-      emit(e) {
-        this.listeners.forEach((listener) => {
-          listener(e);
-        });
-      }
-      onUnexpectedError(e) {
-        this.unexpectedErrorHandler(e);
-        this.emit(e);
-      }
-      // For external errors, we don't want the listeners to be called
-      onUnexpectedExternalError(e) {
-        this.unexpectedErrorHandler(e);
-      }
-    };
-    errorHandler = new ErrorHandler();
-    canceledName = "Canceled";
-    CancellationError = class extends Error {
-      constructor() {
-        super(canceledName);
-        this.name = this.message;
-      }
-    };
-    NotSupportedError = class extends Error {
-      constructor(message) {
-        super("NotSupported");
-        if (message) {
-          this.message = message;
-        }
-      }
-    };
-    ErrorNoTelemetry = class _ErrorNoTelemetry extends Error {
-      constructor(msg) {
-        super(msg);
-        this.name = "CodeExpectedError";
-      }
-      static fromError(err) {
-        if (err instanceof _ErrorNoTelemetry) {
-          return err;
-        }
-        const result = new _ErrorNoTelemetry();
-        result.message = err.message;
-        result.stack = err.stack;
-        return result;
-      }
-      static isErrorNoTelemetry(err) {
-        return err.name === "CodeExpectedError";
-      }
-    };
-    BugIndicatingError = class _BugIndicatingError extends Error {
-      constructor(message) {
-        super(message || "An unexpected bug occurred.");
-        Object.setPrototypeOf(this, _BugIndicatingError.prototype);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/assert.js
-function ok(value, message) {
-  if (!value) {
-    throw new Error(message ? `Assertion failed (${message})` : "Assertion Failed");
-  }
-}
-function assertNever(value, message = "Unreachable") {
-  throw new Error(message);
-}
-function assert(condition, messageOrError = "unexpected state") {
-  if (!condition) {
-    const errorToThrow = typeof messageOrError === "string" ? new BugIndicatingError(`Assertion Failed: ${messageOrError}`) : messageOrError;
-    throw errorToThrow;
-  }
-}
-function softAssert(condition, message = "Soft Assertion Failed") {
-  if (!condition) {
-    onUnexpectedError(new BugIndicatingError(message));
-  }
-}
-function assertFn(condition) {
-  if (!condition()) {
-    debugger;
-    condition();
-    onUnexpectedError(new BugIndicatingError("Assertion Failed"));
-  }
-}
-function checkAdjacentItems(items, predicate) {
-  let i2 = 0;
-  while (i2 < items.length - 1) {
-    const a = items[i2];
-    const b = items[i2 + 1];
-    if (!predicate(a, b)) {
-      return false;
-    }
-    i2++;
-  }
-  return true;
-}
-var init_assert = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/assert.js"() {
-    init_errors();
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/types.js
-function isString(str) {
-  return typeof str === "string";
-}
-function isArrayOf(value, check) {
-  return Array.isArray(value) && value.every(check);
-}
-function isObject(obj) {
-  return typeof obj === "object" && obj !== null && !Array.isArray(obj) && !(obj instanceof RegExp) && !(obj instanceof Date);
-}
-function isTypedArray(obj) {
-  const TypedArray = Object.getPrototypeOf(Uint8Array);
-  return typeof obj === "object" && obj instanceof TypedArray;
-}
-function isNumber(obj) {
-  return typeof obj === "number" && !isNaN(obj);
-}
-function isIterable(obj) {
-  return !!obj && typeof obj[Symbol.iterator] === "function";
-}
-function isBoolean(obj) {
-  return obj === true || obj === false;
-}
-function isUndefined(obj) {
-  return typeof obj === "undefined";
-}
-function isDefined(arg) {
-  return !isUndefinedOrNull(arg);
-}
-function isUndefinedOrNull(obj) {
-  return isUndefined(obj) || obj === null;
-}
-function assertType(condition, type) {
-  if (!condition) {
-    throw new Error(type ? `Unexpected type, expected '${type}'` : "Unexpected type");
-  }
-}
-function assertReturnsDefined(arg) {
-  assert(arg !== null && arg !== void 0, "Argument is `undefined` or `null`.");
-  return arg;
-}
-function isFunction(obj) {
-  return typeof obj === "function";
-}
-function validateConstraints(args, constraints) {
-  const len = Math.min(args.length, constraints.length);
-  for (let i2 = 0; i2 < len; i2++) {
-    validateConstraint(args[i2], constraints[i2]);
-  }
-}
-function validateConstraint(arg, constraint) {
-  if (isString(constraint)) {
-    if (typeof arg !== constraint) {
-      throw new Error(`argument does not match constraint: typeof ${constraint}`);
-    }
-  } else if (isFunction(constraint)) {
-    try {
-      if (arg instanceof constraint) {
-        return;
-      }
-    } catch {
-    }
-    if (!isUndefinedOrNull(arg) && arg.constructor === constraint) {
-      return;
-    }
-    if (constraint.length === 1 && constraint.call(void 0, arg) === true) {
-      return;
-    }
-    throw new Error(`argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true`);
-  }
-}
-function upcast(x) {
-  return x;
-}
-var init_types = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/types.js"() {
-    init_assert();
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/platform.js
-function isLittleEndian() {
-  if (!_isLittleEndianComputed) {
-    _isLittleEndianComputed = true;
-    const test = new Uint8Array(2);
-    test[0] = 1;
-    test[1] = 2;
-    const view = new Uint16Array(test.buffer);
-    _isLittleEndian = view[0] === (2 << 8) + 1;
-  }
-  return _isLittleEndian;
-}
-var LANGUAGE_DEFAULT, _isWindows, _isMacintosh, _isLinux, _isNative, _isWeb, _isIOS, _isMobile, _locale, _language, _platformLocale, _translationsConfigFile, _userAgent, $globalThis, nodeProcess, isElectronProcess, isElectronRenderer, _platform, isWindows, isMacintosh, isLinux, isNative, isWeb, isWebWorker, webWorkerOrigin, isIOS, isMobile, platform, userAgent2, language, setTimeout0IsFaster, setTimeout0, OS, _isLittleEndian, _isLittleEndianComputed, isChrome2, isFirefox2, isSafari2, isEdge, isAndroid2;
-var init_platform = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/platform.js"() {
-    init_nls();
-    init_nls_messages();
-    LANGUAGE_DEFAULT = "en";
-    _isWindows = false;
-    _isMacintosh = false;
-    _isLinux = false;
-    _isNative = false;
-    _isWeb = false;
-    _isIOS = false;
-    _isMobile = false;
-    _locale = void 0;
-    _language = LANGUAGE_DEFAULT;
-    _platformLocale = LANGUAGE_DEFAULT;
-    _translationsConfigFile = void 0;
-    _userAgent = void 0;
-    $globalThis = globalThis;
-    nodeProcess = void 0;
-    if (typeof $globalThis.vscode !== "undefined" && typeof $globalThis.vscode.process !== "undefined") {
-      nodeProcess = $globalThis.vscode.process;
-    } else if (typeof process !== "undefined" && typeof process?.versions?.node === "string") {
-      nodeProcess = process;
-    }
-    isElectronProcess = typeof nodeProcess?.versions?.electron === "string";
-    isElectronRenderer = isElectronProcess && nodeProcess?.type === "renderer";
-    if (typeof nodeProcess === "object") {
-      _isWindows = nodeProcess.platform === "win32";
-      _isMacintosh = nodeProcess.platform === "darwin";
-      _isLinux = nodeProcess.platform === "linux";
-      _isLinux && !!nodeProcess.env["SNAP"] && !!nodeProcess.env["SNAP_REVISION"];
-      !!nodeProcess.env["CI"] || !!nodeProcess.env["BUILD_ARTIFACTSTAGINGDIRECTORY"] || !!nodeProcess.env["GITHUB_WORKSPACE"];
-      _locale = LANGUAGE_DEFAULT;
-      _language = LANGUAGE_DEFAULT;
-      const rawNlsConfig = nodeProcess.env["VSCODE_NLS_CONFIG"];
-      if (rawNlsConfig) {
-        try {
-          const nlsConfig = JSON.parse(rawNlsConfig);
-          _locale = nlsConfig.userLocale;
-          _platformLocale = nlsConfig.osLocale;
-          _language = nlsConfig.resolvedLanguage || LANGUAGE_DEFAULT;
-          _translationsConfigFile = nlsConfig.languagePack?.translationsConfigFile;
-        } catch (e) {
-        }
-      }
-      _isNative = true;
-    } else if (typeof navigator === "object" && !isElectronRenderer) {
-      _userAgent = navigator.userAgent;
-      _isWindows = _userAgent.indexOf("Windows") >= 0;
-      _isMacintosh = _userAgent.indexOf("Macintosh") >= 0;
-      _isIOS = (_userAgent.indexOf("Macintosh") >= 0 || _userAgent.indexOf("iPad") >= 0 || _userAgent.indexOf("iPhone") >= 0) && !!navigator.maxTouchPoints && navigator.maxTouchPoints > 0;
-      _isLinux = _userAgent.indexOf("Linux") >= 0;
-      _isMobile = _userAgent?.indexOf("Mobi") >= 0;
-      _isWeb = true;
-      _language = getNLSLanguage() || LANGUAGE_DEFAULT;
-      _locale = navigator.language.toLowerCase();
-      _platformLocale = _locale;
-    } else {
-      console.error("Unable to resolve platform.");
-    }
-    _platform = 0;
-    if (_isMacintosh) {
-      _platform = 1;
-    } else if (_isWindows) {
-      _platform = 3;
-    } else if (_isLinux) {
-      _platform = 2;
-    }
-    isWindows = _isWindows;
-    isMacintosh = _isMacintosh;
-    isLinux = _isLinux;
-    isNative = _isNative;
-    isWeb = _isWeb;
-    isWebWorker = _isWeb && typeof $globalThis.importScripts === "function";
-    webWorkerOrigin = isWebWorker ? $globalThis.origin : void 0;
-    isIOS = _isIOS;
-    isMobile = _isMobile;
-    platform = _platform;
-    userAgent2 = _userAgent;
-    language = _language;
-    setTimeout0IsFaster = typeof $globalThis.postMessage === "function" && !$globalThis.importScripts;
-    setTimeout0 = (() => {
-      if (setTimeout0IsFaster) {
-        const pending = [];
-        $globalThis.addEventListener("message", (e) => {
-          if (e.data && e.data.vscodeScheduleAsyncWork) {
-            for (let i2 = 0, len = pending.length; i2 < len; i2++) {
-              const candidate = pending[i2];
-              if (candidate.id === e.data.vscodeScheduleAsyncWork) {
-                pending.splice(i2, 1);
-                candidate.callback();
-                return;
-              }
-            }
-          }
-        });
-        let lastId = 0;
-        return (callback) => {
-          const myId = ++lastId;
-          pending.push({
-            id: myId,
-            callback
-          });
-          $globalThis.postMessage({ vscodeScheduleAsyncWork: myId }, "*");
-        };
-      }
-      return (callback) => setTimeout(callback);
-    })();
-    OS = _isMacintosh || _isIOS ? 2 : _isWindows ? 1 : 3;
-    _isLittleEndian = true;
-    _isLittleEndianComputed = false;
-    isChrome2 = !!(userAgent2 && userAgent2.indexOf("Chrome") >= 0);
-    isFirefox2 = !!(userAgent2 && userAgent2.indexOf("Firefox") >= 0);
-    isSafari2 = !!(!isChrome2 && (userAgent2 && userAgent2.indexOf("Safari") >= 0));
-    isEdge = !!(userAgent2 && userAgent2.indexOf("Edg/") >= 0);
-    isAndroid2 = !!(userAgent2 && userAgent2.indexOf("Android") >= 0);
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/browser/canIUse.js
-var BrowserFeatures;
-var init_canIUse = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/browser/canIUse.js"() {
-    init_browser();
-    init_window();
-    init_platform();
-    BrowserFeatures = {
-      clipboard: {
-        writeText: isNative || document.queryCommandSupported && document.queryCommandSupported("copy") || !!(navigator && navigator.clipboard && navigator.clipboard.writeText),
-        readText: isNative || !!(navigator && navigator.clipboard && navigator.clipboard.readText)
-      },
-      pointerEvents: mainWindow.PointerEvent && ("ontouchstart" in mainWindow || navigator.maxTouchPoints > 0)
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/keyCodes.js
-function KeyChord(firstPart, secondPart) {
-  const chordPart = (secondPart & 65535) << 16 >>> 0;
-  return (firstPart | chordPart) >>> 0;
-}
-var KeyCodeStrMap, uiMap, userSettingsUSMap, userSettingsGeneralMap, EVENT_KEY_CODE_MAP, scanCodeStrToInt, scanCodeLowerCaseStrToInt, IMMUTABLE_CODE_TO_KEY_CODE, KeyCodeUtils;
-var init_keyCodes = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/keyCodes.js"() {
-    KeyCodeStrMap = class {
-      constructor() {
-        this._keyCodeToStr = [];
-        this._strToKeyCode = /* @__PURE__ */ Object.create(null);
-      }
-      define(keyCode, str) {
-        this._keyCodeToStr[keyCode] = str;
-        this._strToKeyCode[str.toLowerCase()] = keyCode;
-      }
-      keyCodeToStr(keyCode) {
-        return this._keyCodeToStr[keyCode];
-      }
-      strToKeyCode(str) {
-        return this._strToKeyCode[str.toLowerCase()] || 0;
-      }
-    };
-    uiMap = new KeyCodeStrMap();
-    userSettingsUSMap = new KeyCodeStrMap();
-    userSettingsGeneralMap = new KeyCodeStrMap();
-    EVENT_KEY_CODE_MAP = new Array(230);
-    scanCodeStrToInt = /* @__PURE__ */ Object.create(null);
-    scanCodeLowerCaseStrToInt = /* @__PURE__ */ Object.create(null);
-    IMMUTABLE_CODE_TO_KEY_CODE = [];
-    for (let i2 = 0; i2 <= 193; i2++) {
-      IMMUTABLE_CODE_TO_KEY_CODE[i2] = -1;
-    }
-    (function() {
-      const empty2 = "";
-      const mappings = [
-        // immutable, scanCode, scanCodeStr, keyCode, keyCodeStr, eventKeyCode, vkey, usUserSettingsLabel, generalUserSettingsLabel
-        [1, 0, "None", 0, "unknown", 0, "VK_UNKNOWN", empty2, empty2],
-        [1, 1, "Hyper", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 2, "Super", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 3, "Fn", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 4, "FnLock", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 5, "Suspend", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 6, "Resume", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 7, "Turbo", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 8, "Sleep", 0, empty2, 0, "VK_SLEEP", empty2, empty2],
-        [1, 9, "WakeUp", 0, empty2, 0, empty2, empty2, empty2],
-        [0, 10, "KeyA", 31, "A", 65, "VK_A", empty2, empty2],
-        [0, 11, "KeyB", 32, "B", 66, "VK_B", empty2, empty2],
-        [0, 12, "KeyC", 33, "C", 67, "VK_C", empty2, empty2],
-        [0, 13, "KeyD", 34, "D", 68, "VK_D", empty2, empty2],
-        [0, 14, "KeyE", 35, "E", 69, "VK_E", empty2, empty2],
-        [0, 15, "KeyF", 36, "F", 70, "VK_F", empty2, empty2],
-        [0, 16, "KeyG", 37, "G", 71, "VK_G", empty2, empty2],
-        [0, 17, "KeyH", 38, "H", 72, "VK_H", empty2, empty2],
-        [0, 18, "KeyI", 39, "I", 73, "VK_I", empty2, empty2],
-        [0, 19, "KeyJ", 40, "J", 74, "VK_J", empty2, empty2],
-        [0, 20, "KeyK", 41, "K", 75, "VK_K", empty2, empty2],
-        [0, 21, "KeyL", 42, "L", 76, "VK_L", empty2, empty2],
-        [0, 22, "KeyM", 43, "M", 77, "VK_M", empty2, empty2],
-        [0, 23, "KeyN", 44, "N", 78, "VK_N", empty2, empty2],
-        [0, 24, "KeyO", 45, "O", 79, "VK_O", empty2, empty2],
-        [0, 25, "KeyP", 46, "P", 80, "VK_P", empty2, empty2],
-        [0, 26, "KeyQ", 47, "Q", 81, "VK_Q", empty2, empty2],
-        [0, 27, "KeyR", 48, "R", 82, "VK_R", empty2, empty2],
-        [0, 28, "KeyS", 49, "S", 83, "VK_S", empty2, empty2],
-        [0, 29, "KeyT", 50, "T", 84, "VK_T", empty2, empty2],
-        [0, 30, "KeyU", 51, "U", 85, "VK_U", empty2, empty2],
-        [0, 31, "KeyV", 52, "V", 86, "VK_V", empty2, empty2],
-        [0, 32, "KeyW", 53, "W", 87, "VK_W", empty2, empty2],
-        [0, 33, "KeyX", 54, "X", 88, "VK_X", empty2, empty2],
-        [0, 34, "KeyY", 55, "Y", 89, "VK_Y", empty2, empty2],
-        [0, 35, "KeyZ", 56, "Z", 90, "VK_Z", empty2, empty2],
-        [0, 36, "Digit1", 22, "1", 49, "VK_1", empty2, empty2],
-        [0, 37, "Digit2", 23, "2", 50, "VK_2", empty2, empty2],
-        [0, 38, "Digit3", 24, "3", 51, "VK_3", empty2, empty2],
-        [0, 39, "Digit4", 25, "4", 52, "VK_4", empty2, empty2],
-        [0, 40, "Digit5", 26, "5", 53, "VK_5", empty2, empty2],
-        [0, 41, "Digit6", 27, "6", 54, "VK_6", empty2, empty2],
-        [0, 42, "Digit7", 28, "7", 55, "VK_7", empty2, empty2],
-        [0, 43, "Digit8", 29, "8", 56, "VK_8", empty2, empty2],
-        [0, 44, "Digit9", 30, "9", 57, "VK_9", empty2, empty2],
-        [0, 45, "Digit0", 21, "0", 48, "VK_0", empty2, empty2],
-        [1, 46, "Enter", 3, "Enter", 13, "VK_RETURN", empty2, empty2],
-        [1, 47, "Escape", 9, "Escape", 27, "VK_ESCAPE", empty2, empty2],
-        [1, 48, "Backspace", 1, "Backspace", 8, "VK_BACK", empty2, empty2],
-        [1, 49, "Tab", 2, "Tab", 9, "VK_TAB", empty2, empty2],
-        [1, 50, "Space", 10, "Space", 32, "VK_SPACE", empty2, empty2],
-        [0, 51, "Minus", 88, "-", 189, "VK_OEM_MINUS", "-", "OEM_MINUS"],
-        [0, 52, "Equal", 86, "=", 187, "VK_OEM_PLUS", "=", "OEM_PLUS"],
-        [0, 53, "BracketLeft", 92, "[", 219, "VK_OEM_4", "[", "OEM_4"],
-        [0, 54, "BracketRight", 94, "]", 221, "VK_OEM_6", "]", "OEM_6"],
-        [0, 55, "Backslash", 93, "\\", 220, "VK_OEM_5", "\\", "OEM_5"],
-        [0, 56, "IntlHash", 0, empty2, 0, empty2, empty2, empty2],
-        // has been dropped from the w3c spec
-        [0, 57, "Semicolon", 85, ";", 186, "VK_OEM_1", ";", "OEM_1"],
-        [0, 58, "Quote", 95, "'", 222, "VK_OEM_7", "'", "OEM_7"],
-        [0, 59, "Backquote", 91, "`", 192, "VK_OEM_3", "`", "OEM_3"],
-        [0, 60, "Comma", 87, ",", 188, "VK_OEM_COMMA", ",", "OEM_COMMA"],
-        [0, 61, "Period", 89, ".", 190, "VK_OEM_PERIOD", ".", "OEM_PERIOD"],
-        [0, 62, "Slash", 90, "/", 191, "VK_OEM_2", "/", "OEM_2"],
-        [1, 63, "CapsLock", 8, "CapsLock", 20, "VK_CAPITAL", empty2, empty2],
-        [1, 64, "F1", 59, "F1", 112, "VK_F1", empty2, empty2],
-        [1, 65, "F2", 60, "F2", 113, "VK_F2", empty2, empty2],
-        [1, 66, "F3", 61, "F3", 114, "VK_F3", empty2, empty2],
-        [1, 67, "F4", 62, "F4", 115, "VK_F4", empty2, empty2],
-        [1, 68, "F5", 63, "F5", 116, "VK_F5", empty2, empty2],
-        [1, 69, "F6", 64, "F6", 117, "VK_F6", empty2, empty2],
-        [1, 70, "F7", 65, "F7", 118, "VK_F7", empty2, empty2],
-        [1, 71, "F8", 66, "F8", 119, "VK_F8", empty2, empty2],
-        [1, 72, "F9", 67, "F9", 120, "VK_F9", empty2, empty2],
-        [1, 73, "F10", 68, "F10", 121, "VK_F10", empty2, empty2],
-        [1, 74, "F11", 69, "F11", 122, "VK_F11", empty2, empty2],
-        [1, 75, "F12", 70, "F12", 123, "VK_F12", empty2, empty2],
-        [1, 76, "PrintScreen", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 77, "ScrollLock", 84, "ScrollLock", 145, "VK_SCROLL", empty2, empty2],
-        [1, 78, "Pause", 7, "PauseBreak", 19, "VK_PAUSE", empty2, empty2],
-        [1, 79, "Insert", 19, "Insert", 45, "VK_INSERT", empty2, empty2],
-        [1, 80, "Home", 14, "Home", 36, "VK_HOME", empty2, empty2],
-        [1, 81, "PageUp", 11, "PageUp", 33, "VK_PRIOR", empty2, empty2],
-        [1, 82, "Delete", 20, "Delete", 46, "VK_DELETE", empty2, empty2],
-        [1, 83, "End", 13, "End", 35, "VK_END", empty2, empty2],
-        [1, 84, "PageDown", 12, "PageDown", 34, "VK_NEXT", empty2, empty2],
-        [1, 85, "ArrowRight", 17, "RightArrow", 39, "VK_RIGHT", "Right", empty2],
-        [1, 86, "ArrowLeft", 15, "LeftArrow", 37, "VK_LEFT", "Left", empty2],
-        [1, 87, "ArrowDown", 18, "DownArrow", 40, "VK_DOWN", "Down", empty2],
-        [1, 88, "ArrowUp", 16, "UpArrow", 38, "VK_UP", "Up", empty2],
-        [1, 89, "NumLock", 83, "NumLock", 144, "VK_NUMLOCK", empty2, empty2],
-        [1, 90, "NumpadDivide", 113, "NumPad_Divide", 111, "VK_DIVIDE", empty2, empty2],
-        [1, 91, "NumpadMultiply", 108, "NumPad_Multiply", 106, "VK_MULTIPLY", empty2, empty2],
-        [1, 92, "NumpadSubtract", 111, "NumPad_Subtract", 109, "VK_SUBTRACT", empty2, empty2],
-        [1, 93, "NumpadAdd", 109, "NumPad_Add", 107, "VK_ADD", empty2, empty2],
-        [1, 94, "NumpadEnter", 3, empty2, 0, empty2, empty2, empty2],
-        [1, 95, "Numpad1", 99, "NumPad1", 97, "VK_NUMPAD1", empty2, empty2],
-        [1, 96, "Numpad2", 100, "NumPad2", 98, "VK_NUMPAD2", empty2, empty2],
-        [1, 97, "Numpad3", 101, "NumPad3", 99, "VK_NUMPAD3", empty2, empty2],
-        [1, 98, "Numpad4", 102, "NumPad4", 100, "VK_NUMPAD4", empty2, empty2],
-        [1, 99, "Numpad5", 103, "NumPad5", 101, "VK_NUMPAD5", empty2, empty2],
-        [1, 100, "Numpad6", 104, "NumPad6", 102, "VK_NUMPAD6", empty2, empty2],
-        [1, 101, "Numpad7", 105, "NumPad7", 103, "VK_NUMPAD7", empty2, empty2],
-        [1, 102, "Numpad8", 106, "NumPad8", 104, "VK_NUMPAD8", empty2, empty2],
-        [1, 103, "Numpad9", 107, "NumPad9", 105, "VK_NUMPAD9", empty2, empty2],
-        [1, 104, "Numpad0", 98, "NumPad0", 96, "VK_NUMPAD0", empty2, empty2],
-        [1, 105, "NumpadDecimal", 112, "NumPad_Decimal", 110, "VK_DECIMAL", empty2, empty2],
-        [0, 106, "IntlBackslash", 97, "OEM_102", 226, "VK_OEM_102", empty2, empty2],
-        [1, 107, "ContextMenu", 58, "ContextMenu", 93, empty2, empty2, empty2],
-        [1, 108, "Power", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 109, "NumpadEqual", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 110, "F13", 71, "F13", 124, "VK_F13", empty2, empty2],
-        [1, 111, "F14", 72, "F14", 125, "VK_F14", empty2, empty2],
-        [1, 112, "F15", 73, "F15", 126, "VK_F15", empty2, empty2],
-        [1, 113, "F16", 74, "F16", 127, "VK_F16", empty2, empty2],
-        [1, 114, "F17", 75, "F17", 128, "VK_F17", empty2, empty2],
-        [1, 115, "F18", 76, "F18", 129, "VK_F18", empty2, empty2],
-        [1, 116, "F19", 77, "F19", 130, "VK_F19", empty2, empty2],
-        [1, 117, "F20", 78, "F20", 131, "VK_F20", empty2, empty2],
-        [1, 118, "F21", 79, "F21", 132, "VK_F21", empty2, empty2],
-        [1, 119, "F22", 80, "F22", 133, "VK_F22", empty2, empty2],
-        [1, 120, "F23", 81, "F23", 134, "VK_F23", empty2, empty2],
-        [1, 121, "F24", 82, "F24", 135, "VK_F24", empty2, empty2],
-        [1, 122, "Open", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 123, "Help", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 124, "Select", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 125, "Again", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 126, "Undo", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 127, "Cut", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 128, "Copy", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 129, "Paste", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 130, "Find", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 131, "AudioVolumeMute", 117, "AudioVolumeMute", 173, "VK_VOLUME_MUTE", empty2, empty2],
-        [1, 132, "AudioVolumeUp", 118, "AudioVolumeUp", 175, "VK_VOLUME_UP", empty2, empty2],
-        [1, 133, "AudioVolumeDown", 119, "AudioVolumeDown", 174, "VK_VOLUME_DOWN", empty2, empty2],
-        [1, 134, "NumpadComma", 110, "NumPad_Separator", 108, "VK_SEPARATOR", empty2, empty2],
-        [0, 135, "IntlRo", 115, "ABNT_C1", 193, "VK_ABNT_C1", empty2, empty2],
-        [1, 136, "KanaMode", 0, empty2, 0, empty2, empty2, empty2],
-        [0, 137, "IntlYen", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 138, "Convert", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 139, "NonConvert", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 140, "Lang1", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 141, "Lang2", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 142, "Lang3", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 143, "Lang4", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 144, "Lang5", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 145, "Abort", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 146, "Props", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 147, "NumpadParenLeft", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 148, "NumpadParenRight", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 149, "NumpadBackspace", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 150, "NumpadMemoryStore", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 151, "NumpadMemoryRecall", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 152, "NumpadMemoryClear", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 153, "NumpadMemoryAdd", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 154, "NumpadMemorySubtract", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 155, "NumpadClear", 131, "Clear", 12, "VK_CLEAR", empty2, empty2],
-        [1, 156, "NumpadClearEntry", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 0, empty2, 5, "Ctrl", 17, "VK_CONTROL", empty2, empty2],
-        [1, 0, empty2, 4, "Shift", 16, "VK_SHIFT", empty2, empty2],
-        [1, 0, empty2, 6, "Alt", 18, "VK_MENU", empty2, empty2],
-        [1, 0, empty2, 57, "Meta", 91, "VK_COMMAND", empty2, empty2],
-        [1, 157, "ControlLeft", 5, empty2, 0, "VK_LCONTROL", empty2, empty2],
-        [1, 158, "ShiftLeft", 4, empty2, 0, "VK_LSHIFT", empty2, empty2],
-        [1, 159, "AltLeft", 6, empty2, 0, "VK_LMENU", empty2, empty2],
-        [1, 160, "MetaLeft", 57, empty2, 0, "VK_LWIN", empty2, empty2],
-        [1, 161, "ControlRight", 5, empty2, 0, "VK_RCONTROL", empty2, empty2],
-        [1, 162, "ShiftRight", 4, empty2, 0, "VK_RSHIFT", empty2, empty2],
-        [1, 163, "AltRight", 6, empty2, 0, "VK_RMENU", empty2, empty2],
-        [1, 164, "MetaRight", 57, empty2, 0, "VK_RWIN", empty2, empty2],
-        [1, 165, "BrightnessUp", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 166, "BrightnessDown", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 167, "MediaPlay", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 168, "MediaRecord", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 169, "MediaFastForward", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 170, "MediaRewind", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 171, "MediaTrackNext", 124, "MediaTrackNext", 176, "VK_MEDIA_NEXT_TRACK", empty2, empty2],
-        [1, 172, "MediaTrackPrevious", 125, "MediaTrackPrevious", 177, "VK_MEDIA_PREV_TRACK", empty2, empty2],
-        [1, 173, "MediaStop", 126, "MediaStop", 178, "VK_MEDIA_STOP", empty2, empty2],
-        [1, 174, "Eject", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 175, "MediaPlayPause", 127, "MediaPlayPause", 179, "VK_MEDIA_PLAY_PAUSE", empty2, empty2],
-        [1, 176, "MediaSelect", 128, "LaunchMediaPlayer", 181, "VK_MEDIA_LAUNCH_MEDIA_SELECT", empty2, empty2],
-        [1, 177, "LaunchMail", 129, "LaunchMail", 180, "VK_MEDIA_LAUNCH_MAIL", empty2, empty2],
-        [1, 178, "LaunchApp2", 130, "LaunchApp2", 183, "VK_MEDIA_LAUNCH_APP2", empty2, empty2],
-        [1, 179, "LaunchApp1", 0, empty2, 0, "VK_MEDIA_LAUNCH_APP1", empty2, empty2],
-        [1, 180, "SelectTask", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 181, "LaunchScreenSaver", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 182, "BrowserSearch", 120, "BrowserSearch", 170, "VK_BROWSER_SEARCH", empty2, empty2],
-        [1, 183, "BrowserHome", 121, "BrowserHome", 172, "VK_BROWSER_HOME", empty2, empty2],
-        [1, 184, "BrowserBack", 122, "BrowserBack", 166, "VK_BROWSER_BACK", empty2, empty2],
-        [1, 185, "BrowserForward", 123, "BrowserForward", 167, "VK_BROWSER_FORWARD", empty2, empty2],
-        [1, 186, "BrowserStop", 0, empty2, 0, "VK_BROWSER_STOP", empty2, empty2],
-        [1, 187, "BrowserRefresh", 0, empty2, 0, "VK_BROWSER_REFRESH", empty2, empty2],
-        [1, 188, "BrowserFavorites", 0, empty2, 0, "VK_BROWSER_FAVORITES", empty2, empty2],
-        [1, 189, "ZoomToggle", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 190, "MailReply", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 191, "MailForward", 0, empty2, 0, empty2, empty2, empty2],
-        [1, 192, "MailSend", 0, empty2, 0, empty2, empty2, empty2],
-        // See https://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html
-        // If an Input Method Editor is processing key input and the event is keydown, return 229.
-        [1, 0, empty2, 114, "KeyInComposition", 229, empty2, empty2, empty2],
-        [1, 0, empty2, 116, "ABNT_C2", 194, "VK_ABNT_C2", empty2, empty2],
-        [1, 0, empty2, 96, "OEM_8", 223, "VK_OEM_8", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_KANA", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_HANGUL", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_JUNJA", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_FINAL", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_HANJA", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_KANJI", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_CONVERT", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_NONCONVERT", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_ACCEPT", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_MODECHANGE", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_SELECT", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_PRINT", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_EXECUTE", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_SNAPSHOT", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_HELP", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_APPS", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_PROCESSKEY", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_PACKET", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_DBE_SBCSCHAR", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_DBE_DBCSCHAR", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_ATTN", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_CRSEL", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_EXSEL", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_EREOF", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_PLAY", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_ZOOM", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_NONAME", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_PA1", empty2, empty2],
-        [1, 0, empty2, 0, empty2, 0, "VK_OEM_CLEAR", empty2, empty2]
-      ];
-      const seenKeyCode = [];
-      const seenScanCode = [];
-      for (const mapping of mappings) {
-        const [immutable, scanCode, scanCodeStr, keyCode, keyCodeStr, eventKeyCode, vkey, usUserSettingsLabel, generalUserSettingsLabel] = mapping;
-        if (!seenScanCode[scanCode]) {
-          seenScanCode[scanCode] = true;
-          scanCodeStrToInt[scanCodeStr] = scanCode;
-          scanCodeLowerCaseStrToInt[scanCodeStr.toLowerCase()] = scanCode;
-          if (immutable) {
-            IMMUTABLE_CODE_TO_KEY_CODE[scanCode] = keyCode;
-          }
-        }
-        if (!seenKeyCode[keyCode]) {
-          seenKeyCode[keyCode] = true;
-          if (!keyCodeStr) {
-            throw new Error(`String representation missing for key code ${keyCode} around scan code ${scanCodeStr}`);
-          }
-          uiMap.define(keyCode, keyCodeStr);
-          userSettingsUSMap.define(keyCode, usUserSettingsLabel || keyCodeStr);
-          userSettingsGeneralMap.define(keyCode, generalUserSettingsLabel || usUserSettingsLabel || keyCodeStr);
-        }
-        if (eventKeyCode) {
-          EVENT_KEY_CODE_MAP[eventKeyCode] = keyCode;
-        }
-      }
-    })();
-    (function(KeyCodeUtils2) {
-      function toString(keyCode) {
-        return uiMap.keyCodeToStr(keyCode);
-      }
-      KeyCodeUtils2.toString = toString;
-      function fromString(key) {
-        return uiMap.strToKeyCode(key);
-      }
-      KeyCodeUtils2.fromString = fromString;
-      function toUserSettingsUS(keyCode) {
-        return userSettingsUSMap.keyCodeToStr(keyCode);
-      }
-      KeyCodeUtils2.toUserSettingsUS = toUserSettingsUS;
-      function toUserSettingsGeneral(keyCode) {
-        return userSettingsGeneralMap.keyCodeToStr(keyCode);
-      }
-      KeyCodeUtils2.toUserSettingsGeneral = toUserSettingsGeneral;
-      function fromUserSettings(key) {
-        return userSettingsUSMap.strToKeyCode(key) || userSettingsGeneralMap.strToKeyCode(key);
-      }
-      KeyCodeUtils2.fromUserSettings = fromUserSettings;
-      function toElectronAccelerator(keyCode) {
-        if (keyCode >= 98 && keyCode <= 113) {
-          return null;
-        }
-        switch (keyCode) {
-          case 16:
-            return "Up";
-          case 18:
-            return "Down";
-          case 15:
-            return "Left";
-          case 17:
-            return "Right";
-        }
-        return uiMap.keyCodeToStr(keyCode);
-      }
-      KeyCodeUtils2.toElectronAccelerator = toElectronAccelerator;
-    })(KeyCodeUtils || (KeyCodeUtils = {}));
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/keybindings.js
-function decodeKeybinding(keybinding, OS2) {
-  if (typeof keybinding === "number") {
-    if (keybinding === 0) {
-      return null;
-    }
-    const firstChord = (keybinding & 65535) >>> 0;
-    const secondChord = (keybinding & 4294901760) >>> 16;
-    if (secondChord !== 0) {
-      return new Keybinding([
-        createSimpleKeybinding(firstChord, OS2),
-        createSimpleKeybinding(secondChord, OS2)
-      ]);
-    }
-    return new Keybinding([createSimpleKeybinding(firstChord, OS2)]);
-  } else {
-    const chords = [];
-    for (let i2 = 0; i2 < keybinding.length; i2++) {
-      chords.push(createSimpleKeybinding(keybinding[i2], OS2));
-    }
-    return new Keybinding(chords);
-  }
-}
-function createSimpleKeybinding(keybinding, OS2) {
-  const ctrlCmd = keybinding & 2048 ? true : false;
-  const winCtrl = keybinding & 256 ? true : false;
-  const ctrlKey = OS2 === 2 ? winCtrl : ctrlCmd;
-  const shiftKey = keybinding & 1024 ? true : false;
-  const altKey = keybinding & 512 ? true : false;
-  const metaKey = OS2 === 2 ? ctrlCmd : winCtrl;
-  const keyCode = keybinding & 255;
-  return new KeyCodeChord(ctrlKey, shiftKey, altKey, metaKey, keyCode);
-}
-var KeyCodeChord, Keybinding, ResolvedChord, ResolvedKeybinding;
-var init_keybindings = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/keybindings.js"() {
-    init_errors();
-    KeyCodeChord = class _KeyCodeChord {
-      constructor(ctrlKey, shiftKey, altKey, metaKey, keyCode) {
-        this.ctrlKey = ctrlKey;
-        this.shiftKey = shiftKey;
-        this.altKey = altKey;
-        this.metaKey = metaKey;
-        this.keyCode = keyCode;
-      }
-      equals(other) {
-        return other instanceof _KeyCodeChord && this.ctrlKey === other.ctrlKey && this.shiftKey === other.shiftKey && this.altKey === other.altKey && this.metaKey === other.metaKey && this.keyCode === other.keyCode;
-      }
-      isModifierKey() {
-        return this.keyCode === 0 || this.keyCode === 5 || this.keyCode === 57 || this.keyCode === 6 || this.keyCode === 4;
-      }
-      /**
-       * Does this keybinding refer to the key code of a modifier and it also has the modifier flag?
-       */
-      isDuplicateModifierCase() {
-        return this.ctrlKey && this.keyCode === 5 || this.shiftKey && this.keyCode === 4 || this.altKey && this.keyCode === 6 || this.metaKey && this.keyCode === 57;
-      }
-    };
-    Keybinding = class {
-      constructor(chords) {
-        if (chords.length === 0) {
-          throw illegalArgument(`chords`);
-        }
-        this.chords = chords;
-      }
-    };
-    ResolvedChord = class {
-      constructor(ctrlKey, shiftKey, altKey, metaKey, keyLabel, keyAriaLabel) {
-        this.ctrlKey = ctrlKey;
-        this.shiftKey = shiftKey;
-        this.altKey = altKey;
-        this.metaKey = metaKey;
-        this.keyLabel = keyLabel;
-        this.keyAriaLabel = keyAriaLabel;
-      }
-    };
-    ResolvedKeybinding = class {
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/browser/keyboardEvent.js
-function extractKeyCode(e) {
-  if (e.charCode) {
-    const char = String.fromCharCode(e.charCode).toUpperCase();
-    return KeyCodeUtils.fromString(char);
-  }
-  const keyCode = e.keyCode;
-  if (keyCode === 3) {
-    return 7;
-  } else if (isFirefox) {
-    switch (keyCode) {
-      case 59:
-        return 85;
-      case 60:
-        if (isLinux) {
-          return 97;
-        }
-        break;
-      case 61:
-        return 86;
-      // based on: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode#numpad_keys
-      case 107:
-        return 109;
-      case 109:
-        return 111;
-      case 173:
-        return 88;
-      case 224:
-        if (isMacintosh) {
-          return 57;
-        }
-        break;
-    }
-  } else if (isWebKit) {
-    if (isMacintosh && keyCode === 93) {
-      return 57;
-    } else if (!isMacintosh && keyCode === 92) {
-      return 57;
-    }
-  }
-  return EVENT_KEY_CODE_MAP[keyCode] || 0;
-}
-var ctrlKeyMod, altKeyMod, shiftKeyMod, metaKeyMod, StandardKeyboardEvent;
-var init_keyboardEvent = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/browser/keyboardEvent.js"() {
-    init_browser();
-    init_keyCodes();
-    init_keybindings();
-    init_platform();
-    ctrlKeyMod = isMacintosh ? 256 : 2048;
-    altKeyMod = 512;
-    shiftKeyMod = 1024;
-    metaKeyMod = isMacintosh ? 2048 : 256;
-    StandardKeyboardEvent = class {
-      constructor(source) {
-        this._standardKeyboardEventBrand = true;
-        const e = source;
-        this.browserEvent = e;
-        this.target = e.target;
-        this.ctrlKey = e.ctrlKey;
-        this.shiftKey = e.shiftKey;
-        this.altKey = e.altKey;
-        this.metaKey = e.metaKey;
-        this.altGraphKey = e.getModifierState?.("AltGraph");
-        this.keyCode = extractKeyCode(e);
-        this.code = e.code;
-        this.ctrlKey = this.ctrlKey || this.keyCode === 5;
-        this.altKey = this.altKey || this.keyCode === 6;
-        this.shiftKey = this.shiftKey || this.keyCode === 4;
-        this.metaKey = this.metaKey || this.keyCode === 57;
-        this._asKeybinding = this._computeKeybinding();
-        this._asKeyCodeChord = this._computeKeyCodeChord();
-      }
-      preventDefault() {
-        if (this.browserEvent && this.browserEvent.preventDefault) {
-          this.browserEvent.preventDefault();
-        }
-      }
-      stopPropagation() {
-        if (this.browserEvent && this.browserEvent.stopPropagation) {
-          this.browserEvent.stopPropagation();
-        }
-      }
-      toKeyCodeChord() {
-        return this._asKeyCodeChord;
-      }
-      equals(other) {
-        return this._asKeybinding === other;
-      }
-      _computeKeybinding() {
-        let key = 0;
-        if (this.keyCode !== 5 && this.keyCode !== 4 && this.keyCode !== 6 && this.keyCode !== 57) {
-          key = this.keyCode;
-        }
-        let result = 0;
-        if (this.ctrlKey) {
-          result |= ctrlKeyMod;
-        }
-        if (this.altKey) {
-          result |= altKeyMod;
-        }
-        if (this.shiftKey) {
-          result |= shiftKeyMod;
-        }
-        if (this.metaKey) {
-          result |= metaKeyMod;
-        }
-        result |= key;
-        return result;
-      }
-      _computeKeyCodeChord() {
-        let key = 0;
-        if (this.keyCode !== 5 && this.keyCode !== 4 && this.keyCode !== 6 && this.keyCode !== 57) {
-          key = this.keyCode;
-        }
-        return new KeyCodeChord(this.ctrlKey, this.shiftKey, this.altKey, this.metaKey, key);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/browser/iframe.js
-function getParentWindowIfSameOrigin(w) {
-  if (!w.parent || w.parent === w) {
-    return null;
-  }
-  try {
-    const location = w.location;
-    const parentLocation = w.parent.location;
-    if (location.origin !== "null" && parentLocation.origin !== "null" && location.origin !== parentLocation.origin) {
-      return null;
-    }
-  } catch (e) {
-    return null;
-  }
-  return w.parent;
-}
-var sameOriginWindowChainCache, IframeUtils;
-var init_iframe = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/browser/iframe.js"() {
-    sameOriginWindowChainCache = /* @__PURE__ */ new WeakMap();
-    IframeUtils = class {
-      /**
-       * Returns a chain of embedded windows with the same origin (which can be accessed programmatically).
-       * Having a chain of length 1 might mean that the current execution environment is running outside of an iframe or inside an iframe embedded in a window with a different origin.
-       */
-      static getSameOriginWindowChain(targetWindow) {
-        let windowChainCache = sameOriginWindowChainCache.get(targetWindow);
-        if (!windowChainCache) {
-          windowChainCache = [];
-          sameOriginWindowChainCache.set(targetWindow, windowChainCache);
-          let w = targetWindow;
-          let parent;
-          do {
-            parent = getParentWindowIfSameOrigin(w);
-            if (parent) {
-              windowChainCache.push({
-                window: new WeakRef(w),
-                iframeElement: w.frameElement || null
-              });
-            } else {
-              windowChainCache.push({
-                window: new WeakRef(w),
-                iframeElement: null
-              });
-            }
-            w = parent;
-          } while (w);
-        }
-        return windowChainCache.slice(0);
-      }
-      /**
-       * Returns the position of `childWindow` relative to `ancestorWindow`
-       */
-      static getPositionOfChildWindowRelativeToAncestorWindow(childWindow, ancestorWindow) {
-        if (!ancestorWindow || childWindow === ancestorWindow) {
-          return {
-            top: 0,
-            left: 0
-          };
-        }
-        let top = 0, left = 0;
-        const windowChain = this.getSameOriginWindowChain(childWindow);
-        for (const windowChainEl of windowChain) {
-          const windowInChain = windowChainEl.window.deref();
-          top += windowInChain?.scrollY ?? 0;
-          left += windowInChain?.scrollX ?? 0;
-          if (windowInChain === ancestorWindow) {
-            break;
-          }
-          if (!windowChainEl.iframeElement) {
-            break;
-          }
-          const boundingRect = windowChainEl.iframeElement.getBoundingClientRect();
-          top += boundingRect.top;
-          left += boundingRect.left;
-        }
-        return {
-          top,
-          left
-        };
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/browser/mouseEvent.js
-var StandardMouseEvent, StandardWheelEvent;
-var init_mouseEvent = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/browser/mouseEvent.js"() {
-    init_browser();
-    init_iframe();
-    init_platform();
-    StandardMouseEvent = class {
-      constructor(targetWindow, e) {
-        this.timestamp = Date.now();
-        this.browserEvent = e;
-        this.leftButton = e.button === 0;
-        this.middleButton = e.button === 1;
-        this.rightButton = e.button === 2;
-        this.buttons = e.buttons;
-        this.defaultPrevented = e.defaultPrevented;
-        this.target = e.target;
-        this.detail = e.detail || 1;
-        if (e.type === "dblclick") {
-          this.detail = 2;
-        }
-        this.ctrlKey = e.ctrlKey;
-        this.shiftKey = e.shiftKey;
-        this.altKey = e.altKey;
-        this.metaKey = e.metaKey;
-        if (typeof e.pageX === "number") {
-          this.posx = e.pageX;
-          this.posy = e.pageY;
-        } else {
-          this.posx = e.clientX + this.target.ownerDocument.body.scrollLeft + this.target.ownerDocument.documentElement.scrollLeft;
-          this.posy = e.clientY + this.target.ownerDocument.body.scrollTop + this.target.ownerDocument.documentElement.scrollTop;
-        }
-        const iframeOffsets = IframeUtils.getPositionOfChildWindowRelativeToAncestorWindow(targetWindow, e.view);
-        this.posx -= iframeOffsets.left;
-        this.posy -= iframeOffsets.top;
-      }
-      preventDefault() {
-        this.browserEvent.preventDefault();
-      }
-      stopPropagation() {
-        this.browserEvent.stopPropagation();
-      }
-    };
-    StandardWheelEvent = class {
-      constructor(e, deltaX = 0, deltaY = 0) {
-        this.browserEvent = e || null;
-        this.target = e ? e.target || e.targetNode || e.srcElement : null;
-        this.deltaY = deltaY;
-        this.deltaX = deltaX;
-        let shouldFactorDPR = false;
-        if (isChrome) {
-          const chromeVersionMatch = navigator.userAgent.match(/Chrome\/(\d+)/);
-          const chromeMajorVersion = chromeVersionMatch ? parseInt(chromeVersionMatch[1]) : 123;
-          shouldFactorDPR = chromeMajorVersion <= 122;
-        }
-        if (e) {
-          const e1 = e;
-          const e2 = e;
-          const devicePixelRatio = e.view?.devicePixelRatio || 1;
-          if (typeof e1.wheelDeltaY !== "undefined") {
-            if (shouldFactorDPR) {
-              this.deltaY = e1.wheelDeltaY / (120 * devicePixelRatio);
-            } else {
-              this.deltaY = e1.wheelDeltaY / 120;
-            }
-          } else if (typeof e2.VERTICAL_AXIS !== "undefined" && e2.axis === e2.VERTICAL_AXIS) {
-            this.deltaY = -e2.detail / 3;
-          } else if (e.type === "wheel") {
-            const ev = e;
-            if (ev.deltaMode === ev.DOM_DELTA_LINE) {
-              if (isFirefox && !isMacintosh) {
-                this.deltaY = -e.deltaY / 3;
-              } else {
-                this.deltaY = -e.deltaY;
-              }
-            } else {
-              this.deltaY = -e.deltaY / 40;
-            }
-          }
-          if (typeof e1.wheelDeltaX !== "undefined") {
-            if (isSafari && isWindows) {
-              this.deltaX = -(e1.wheelDeltaX / 120);
-            } else if (shouldFactorDPR) {
-              this.deltaX = e1.wheelDeltaX / (120 * devicePixelRatio);
-            } else {
-              this.deltaX = e1.wheelDeltaX / 120;
-            }
-          } else if (typeof e2.HORIZONTAL_AXIS !== "undefined" && e2.axis === e2.HORIZONTAL_AXIS) {
-            this.deltaX = -e.detail / 3;
-          } else if (e.type === "wheel") {
-            const ev = e;
-            if (ev.deltaMode === ev.DOM_DELTA_LINE) {
-              if (isFirefox && !isMacintosh) {
-                this.deltaX = -e.deltaX / 3;
-              } else {
-                this.deltaX = -e.deltaX;
-              }
-            } else {
-              this.deltaX = -e.deltaX / 40;
-            }
-          }
-          if (this.deltaY === 0 && this.deltaX === 0 && e.wheelDelta) {
-            if (shouldFactorDPR) {
-              this.deltaY = e.wheelDelta / (120 * devicePixelRatio);
-            } else {
-              this.deltaY = e.wheelDelta / 120;
-            }
-          }
-        }
-      }
-      preventDefault() {
-        this.browserEvent?.preventDefault();
-      }
-      stopPropagation() {
-        this.browserEvent?.stopPropagation();
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/functional.js
-function createSingleCallFunction(fn, fnDidRunCallback) {
-  const _this = this;
-  let didCall = false;
-  let result;
-  return function() {
-    if (didCall) {
-      return result;
-    }
-    didCall = true;
-    {
-      result = fn.apply(_this, arguments);
-    }
-    return result;
-  };
-}
-var init_functional = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/functional.js"() {
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/iterator.js
-var Iterable;
-var init_iterator = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/iterator.js"() {
-    init_types();
-    (function(Iterable2) {
-      function is(thing) {
-        return !!thing && typeof thing === "object" && typeof thing[Symbol.iterator] === "function";
-      }
-      Iterable2.is = is;
-      const _empty2 = Object.freeze([]);
-      function empty2() {
-        return _empty2;
-      }
-      Iterable2.empty = empty2;
-      function* single(element) {
-        yield element;
-      }
-      Iterable2.single = single;
-      function wrap(iterableOrElement) {
-        if (is(iterableOrElement)) {
-          return iterableOrElement;
-        } else {
-          return single(iterableOrElement);
-        }
-      }
-      Iterable2.wrap = wrap;
-      function from(iterable) {
-        return iterable || _empty2;
-      }
-      Iterable2.from = from;
-      function* reverse(array2) {
-        for (let i2 = array2.length - 1; i2 >= 0; i2--) {
-          yield array2[i2];
-        }
-      }
-      Iterable2.reverse = reverse;
-      function isEmpty(iterable) {
-        return !iterable || iterable[Symbol.iterator]().next().done === true;
-      }
-      Iterable2.isEmpty = isEmpty;
-      function first2(iterable) {
-        return iterable[Symbol.iterator]().next().value;
-      }
-      Iterable2.first = first2;
-      function some(iterable, predicate) {
-        let i2 = 0;
-        for (const element of iterable) {
-          if (predicate(element, i2++)) {
-            return true;
-          }
-        }
-        return false;
-      }
-      Iterable2.some = some;
-      function every(iterable, predicate) {
-        let i2 = 0;
-        for (const element of iterable) {
-          if (!predicate(element, i2++)) {
-            return false;
-          }
-        }
-        return true;
-      }
-      Iterable2.every = every;
-      function find(iterable, predicate) {
-        for (const element of iterable) {
-          if (predicate(element)) {
-            return element;
-          }
-        }
-        return void 0;
-      }
-      Iterable2.find = find;
-      function* filter(iterable, predicate) {
-        for (const element of iterable) {
-          if (predicate(element)) {
-            yield element;
-          }
-        }
-      }
-      Iterable2.filter = filter;
-      function* map(iterable, fn) {
-        let index = 0;
-        for (const element of iterable) {
-          yield fn(element, index++);
-        }
-      }
-      Iterable2.map = map;
-      function* flatMap(iterable, fn) {
-        let index = 0;
-        for (const element of iterable) {
-          yield* fn(element, index++);
-        }
-      }
-      Iterable2.flatMap = flatMap;
-      function* concat4(...iterables) {
-        for (const item of iterables) {
-          if (isIterable(item)) {
-            yield* item;
-          } else {
-            yield item;
-          }
-        }
-      }
-      Iterable2.concat = concat4;
-      function reduce(iterable, reducer, initialValue) {
-        let value = initialValue;
-        for (const element of iterable) {
-          value = reducer(value, element);
-        }
-        return value;
-      }
-      Iterable2.reduce = reduce;
-      function length(iterable) {
-        let count = 0;
-        for (const _ of iterable) {
-          count++;
-        }
-        return count;
-      }
-      Iterable2.length = length;
-      function* slice(arr, from2, to = arr.length) {
-        if (from2 < -arr.length) {
-          from2 = 0;
-        }
-        if (from2 < 0) {
-          from2 += arr.length;
-        }
-        if (to < 0) {
-          to += arr.length;
-        } else if (to > arr.length) {
-          to = arr.length;
-        }
-        for (; from2 < to; from2++) {
-          yield arr[from2];
-        }
-      }
-      Iterable2.slice = slice;
-      function consume(iterable, atMost = Number.POSITIVE_INFINITY) {
-        const consumed = [];
-        if (atMost === 0) {
-          return [consumed, iterable];
-        }
-        const iterator = iterable[Symbol.iterator]();
-        for (let i2 = 0; i2 < atMost; i2++) {
-          const next = iterator.next();
-          if (next.done) {
-            return [consumed, Iterable2.empty()];
-          }
-          consumed.push(next.value);
-        }
-        return [consumed, { [Symbol.iterator]() {
-          return iterator;
-        } }];
-      }
-      Iterable2.consume = consume;
-      async function asyncToArray(iterable) {
-        const result = [];
-        for await (const item of iterable) {
-          result.push(item);
-        }
-        return result;
-      }
-      Iterable2.asyncToArray = asyncToArray;
-      async function asyncToArrayFlat(iterable) {
-        let result = [];
-        for await (const item of iterable) {
-          result = result.concat(item);
-        }
-        return result;
-      }
-      Iterable2.asyncToArrayFlat = asyncToArrayFlat;
-    })(Iterable || (Iterable = {}));
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/lifecycle.js
-function setParentOfDisposable(child, parent) {
-}
-function markAsSingleton(singleton) {
-  return singleton;
-}
-function isDisposable(thing) {
-  return typeof thing === "object" && thing !== null && typeof thing.dispose === "function" && thing.dispose.length === 0;
-}
-function dispose(arg) {
-  if (Iterable.is(arg)) {
-    const errors = [];
-    for (const d of arg) {
-      if (d) {
-        try {
-          d.dispose();
-        } catch (e) {
-          errors.push(e);
-        }
-      }
-    }
-    if (errors.length === 1) {
-      throw errors[0];
-    } else if (errors.length > 1) {
-      throw new AggregateError(errors, "Encountered errors while disposing of store");
-    }
-    return Array.isArray(arg) ? [] : arg;
-  } else if (arg) {
-    arg.dispose();
-    return arg;
-  }
-}
-function combinedDisposable(...disposables) {
-  const parent = toDisposable(() => dispose(disposables));
-  return parent;
-}
-function toDisposable(fn) {
-  return new FunctionDisposable(fn);
-}
-var FunctionDisposable, DisposableStore, Disposable, MutableDisposable, RefCountedDisposable, ImmortalReference, DisposableMap;
-var init_lifecycle = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/lifecycle.js"() {
-    init_iterator();
-    FunctionDisposable = class {
-      constructor(fn) {
-        this._isDisposed = false;
-        this._fn = fn;
-      }
-      dispose() {
-        if (this._isDisposed) {
-          return;
-        }
-        if (!this._fn) {
-          throw new Error(`Unbound disposable context: Need to use an arrow function to preserve the value of this`);
-        }
-        this._isDisposed = true;
-        this._fn();
-      }
-    };
-    DisposableStore = class _DisposableStore {
-      static {
-        this.DISABLE_DISPOSED_WARNING = false;
-      }
-      constructor() {
-        this._toDispose = /* @__PURE__ */ new Set();
-        this._isDisposed = false;
-      }
-      /**
-       * Dispose of all registered disposables and mark this object as disposed.
-       *
-       * Any future disposables added to this object will be disposed of on `add`.
-       */
-      dispose() {
-        if (this._isDisposed) {
-          return;
-        }
-        this._isDisposed = true;
-        this.clear();
-      }
-      /**
-       * @return `true` if this object has been disposed of.
-       */
-      get isDisposed() {
-        return this._isDisposed;
-      }
-      /**
-       * Dispose of all registered disposables but do not mark this object as disposed.
-       */
-      clear() {
-        if (this._toDispose.size === 0) {
-          return;
-        }
-        try {
-          dispose(this._toDispose);
-        } finally {
-          this._toDispose.clear();
-        }
-      }
-      /**
-       * Add a new {@link IDisposable disposable} to the collection.
-       */
-      add(o) {
-        if (!o || o === Disposable.None) {
-          return o;
-        }
-        if (o === this) {
-          throw new Error("Cannot register a disposable on itself!");
-        }
-        if (this._isDisposed) {
-          if (!_DisposableStore.DISABLE_DISPOSED_WARNING) {
-            console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack);
-          }
-        } else {
-          this._toDispose.add(o);
-        }
-        return o;
-      }
-      /**
-       * Deletes a disposable from store and disposes of it. This will not throw or warn and proceed to dispose the
-       * disposable even when the disposable is not part in the store.
-       */
-      delete(o) {
-        if (!o) {
-          return;
-        }
-        if (o === this) {
-          throw new Error("Cannot dispose a disposable on itself!");
-        }
-        this._toDispose.delete(o);
-        o.dispose();
-      }
-    };
-    Disposable = class {
-      static {
-        this.None = Object.freeze({ dispose() {
-        } });
-      }
-      constructor() {
-        this._store = new DisposableStore();
-        setParentOfDisposable(this._store);
-      }
-      dispose() {
-        this._store.dispose();
-      }
-      /**
-       * Adds `o` to the collection of disposables managed by this object.
-       */
-      _register(o) {
-        if (o === this) {
-          throw new Error("Cannot register a disposable on itself!");
-        }
-        return this._store.add(o);
-      }
-    };
-    MutableDisposable = class {
-      constructor() {
-        this._isDisposed = false;
-      }
-      /**
-       * Get the currently held disposable value, or `undefined` if this MutableDisposable has been disposed
-       */
-      get value() {
-        return this._isDisposed ? void 0 : this._value;
-      }
-      /**
-       * Set a new disposable value.
-       *
-       * Behaviour:
-       * - If the MutableDisposable has been disposed, the setter is a no-op.
-       * - If the new value is strictly equal to the current value, the setter is a no-op.
-       * - Otherwise the previous value (if any) is disposed and the new value is stored.
-       *
-       * Related helpers:
-       * - clear() resets the value to `undefined` (and disposes the previous value).
-       * - clearAndLeak() returns the old value without disposing it and removes its parent.
-       */
-      set value(value) {
-        if (this._isDisposed || value === this._value) {
-          return;
-        }
-        this._value?.dispose();
-        this._value = value;
-      }
-      /**
-       * Resets the stored value and disposed of the previously stored value.
-       */
-      clear() {
-        this.value = void 0;
-      }
-      dispose() {
-        this._isDisposed = true;
-        this._value?.dispose();
-        this._value = void 0;
-      }
-    };
-    RefCountedDisposable = class {
-      constructor(_disposable) {
-        this._disposable = _disposable;
-        this._counter = 1;
-      }
-      acquire() {
-        this._counter++;
-        return this;
-      }
-      release() {
-        if (--this._counter === 0) {
-          this._disposable.dispose();
-        }
-        return this;
-      }
-    };
-    ImmortalReference = class {
-      constructor(object) {
-        this.object = object;
-      }
-      dispose() {
-      }
-    };
-    DisposableMap = class {
-      constructor() {
-        this._store = /* @__PURE__ */ new Map();
-        this._isDisposed = false;
-      }
-      /**
-       * Disposes of all stored values and mark this object as disposed.
-       *
-       * Trying to use this object after it has been disposed of is an error.
-       */
-      dispose() {
-        this._isDisposed = true;
-        this.clearAndDisposeAll();
-      }
-      /**
-       * Disposes of all stored values and clear the map, but DO NOT mark this object as disposed.
-       */
-      clearAndDisposeAll() {
-        if (!this._store.size) {
-          return;
-        }
-        try {
-          dispose(this._store.values());
-        } finally {
-          this._store.clear();
-        }
-      }
-      get(key) {
-        return this._store.get(key);
-      }
-      set(key, value, skipDisposeOnOverwrite = false) {
-        if (this._isDisposed) {
-          console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack);
-        }
-        if (!skipDisposeOnOverwrite) {
-          this._store.get(key)?.dispose();
-        }
-        this._store.set(key, value);
-      }
-      /**
-       * Delete the value stored for `key` from this map and also dispose of it.
-       */
-      deleteAndDispose(key) {
-        this._store.get(key)?.dispose();
-        this._store.delete(key);
-      }
-      values() {
-        return this._store.values();
-      }
-      [Symbol.iterator]() {
-        return this._store[Symbol.iterator]();
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/linkedList.js
-var Node2, LinkedList;
-var init_linkedList = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/linkedList.js"() {
-    Node2 = class _Node {
-      static {
-        this.Undefined = new _Node(void 0);
-      }
-      constructor(element) {
-        this.element = element;
-        this.next = _Node.Undefined;
-        this.prev = _Node.Undefined;
-      }
-    };
-    LinkedList = class {
-      constructor() {
-        this._first = Node2.Undefined;
-        this._last = Node2.Undefined;
-        this._size = 0;
-      }
-      get size() {
-        return this._size;
-      }
-      isEmpty() {
-        return this._first === Node2.Undefined;
-      }
-      clear() {
-        let node = this._first;
-        while (node !== Node2.Undefined) {
-          const next = node.next;
-          node.prev = Node2.Undefined;
-          node.next = Node2.Undefined;
-          node = next;
-        }
-        this._first = Node2.Undefined;
-        this._last = Node2.Undefined;
-        this._size = 0;
-      }
-      unshift(element) {
-        return this._insert(element, false);
-      }
-      push(element) {
-        return this._insert(element, true);
-      }
-      _insert(element, atTheEnd) {
-        const newNode = new Node2(element);
-        if (this._first === Node2.Undefined) {
-          this._first = newNode;
-          this._last = newNode;
-        } else if (atTheEnd) {
-          const oldLast = this._last;
-          this._last = newNode;
-          newNode.prev = oldLast;
-          oldLast.next = newNode;
-        } else {
-          const oldFirst = this._first;
-          this._first = newNode;
-          newNode.next = oldFirst;
-          oldFirst.prev = newNode;
-        }
-        this._size += 1;
-        let didRemove = false;
-        return () => {
-          if (!didRemove) {
-            didRemove = true;
-            this._remove(newNode);
-          }
-        };
-      }
-      shift() {
-        if (this._first === Node2.Undefined) {
-          return void 0;
-        } else {
-          const res = this._first.element;
-          this._remove(this._first);
-          return res;
-        }
-      }
-      pop() {
-        if (this._last === Node2.Undefined) {
-          return void 0;
-        } else {
-          const res = this._last.element;
-          this._remove(this._last);
-          return res;
-        }
-      }
-      _remove(node) {
-        if (node.prev !== Node2.Undefined && node.next !== Node2.Undefined) {
-          const anchor = node.prev;
-          anchor.next = node.next;
-          node.next.prev = anchor;
-        } else if (node.prev === Node2.Undefined && node.next === Node2.Undefined) {
-          this._first = Node2.Undefined;
-          this._last = Node2.Undefined;
-        } else if (node.next === Node2.Undefined) {
-          this._last = this._last.prev;
-          this._last.next = Node2.Undefined;
-        } else if (node.prev === Node2.Undefined) {
-          this._first = this._first.next;
-          this._first.prev = Node2.Undefined;
-        }
-        this._size -= 1;
-      }
-      *[Symbol.iterator]() {
-        let node = this._first;
-        while (node !== Node2.Undefined) {
-          yield node.element;
-          node = node.next;
-        }
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/stopwatch.js
-var performanceNow, StopWatch;
-var init_stopwatch = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/stopwatch.js"() {
-    performanceNow = globalThis.performance.now.bind(globalThis.performance);
-    StopWatch = class _StopWatch {
-      static create(highResolution) {
-        return new _StopWatch(highResolution);
-      }
-      constructor(highResolution) {
-        this._now = highResolution === false ? Date.now : performanceNow;
-        this._startTime = this._now();
-        this._stopTime = -1;
-      }
-      stop() {
-        this._stopTime = this._now();
-      }
-      reset() {
-        this._startTime = this._now();
-        this._stopTime = -1;
-      }
-      elapsed() {
-        if (this._stopTime !== -1) {
-          return this._stopTime - this._startTime;
-        }
-        return this._now() - this._startTime;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/event.js
-var Event, EventProfiling, _globalLeakWarningThreshold, LeakageMonitor, Stacktrace, ListenerLeakError, ListenerRefusalError, UniqueContainer, compactionThreshold, Emitter, createEventDeliveryQueue, EventDeliveryQueuePrivate, PauseableEmitter, DebounceEmitter, MicrotaskEmitter, EventMultiplexer, EventBufferer, Relay;
-var init_event = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/event.js"() {
-    init_errors();
-    init_functional();
-    init_lifecycle();
-    init_linkedList();
-    init_stopwatch();
-    (function(Event2) {
-      Event2.None = () => Disposable.None;
-      function defer(event, disposable) {
-        return debounce(event, () => void 0, 0, void 0, true, void 0, disposable);
-      }
-      Event2.defer = defer;
-      function once(event) {
-        return (listener, thisArgs = null, disposables) => {
-          let didFire = false;
-          let result = void 0;
-          result = event((e) => {
-            if (didFire) {
-              return;
-            } else if (result) {
-              result.dispose();
-            } else {
-              didFire = true;
-            }
-            return listener.call(thisArgs, e);
-          }, null, disposables);
-          if (didFire) {
-            result.dispose();
-          }
-          return result;
-        };
-      }
-      Event2.once = once;
-      function onceIf(event, condition) {
-        return Event2.once(Event2.filter(event, condition));
-      }
-      Event2.onceIf = onceIf;
-      function map(event, map2, disposable) {
-        return snapshot((listener, thisArgs = null, disposables) => event((i2) => listener.call(thisArgs, map2(i2)), null, disposables), disposable);
-      }
-      Event2.map = map;
-      function forEach(event, each, disposable) {
-        return snapshot((listener, thisArgs = null, disposables) => event((i2) => {
-          each(i2);
-          listener.call(thisArgs, i2);
-        }, null, disposables), disposable);
-      }
-      Event2.forEach = forEach;
-      function filter(event, filter2, disposable) {
-        return snapshot((listener, thisArgs = null, disposables) => event((e) => filter2(e) && listener.call(thisArgs, e), null, disposables), disposable);
-      }
-      Event2.filter = filter;
-      function signal(event) {
-        return event;
-      }
-      Event2.signal = signal;
-      function any(...events) {
-        return (listener, thisArgs = null, disposables) => {
-          const disposable = combinedDisposable(...events.map((event) => event((e) => listener.call(thisArgs, e))));
-          return addAndReturnDisposable(disposable, disposables);
-        };
-      }
-      Event2.any = any;
-      function reduce(event, merge, initial, disposable) {
-        let output = initial;
-        return map(event, (e) => {
-          output = merge(output, e);
-          return output;
-        }, disposable);
-      }
-      Event2.reduce = reduce;
-      function snapshot(event, disposable) {
-        let listener;
-        const options = {
-          onWillAddFirstListener() {
-            listener = event(emitter.fire, emitter);
-          },
-          onDidRemoveLastListener() {
-            listener?.dispose();
-          }
-        };
-        const emitter = new Emitter(options);
-        disposable?.add(emitter);
-        return emitter.event;
-      }
-      function addAndReturnDisposable(d, store) {
-        if (store instanceof Array) {
-          store.push(d);
-        } else if (store) {
-          store.add(d);
-        }
-        return d;
-      }
-      function debounce(event, merge, delay = 100, leading = false, flushOnListenerRemove = false, leakWarningThreshold, disposable) {
-        let subscription;
-        let output = void 0;
-        let handle = void 0;
-        let numDebouncedCalls = 0;
-        let doFire;
-        const options = {
-          leakWarningThreshold,
-          onWillAddFirstListener() {
-            subscription = event((cur) => {
-              numDebouncedCalls++;
-              output = merge(output, cur);
-              if (leading && !handle) {
-                emitter.fire(output);
-                output = void 0;
-              }
-              doFire = () => {
-                const _output = output;
-                output = void 0;
-                handle = void 0;
-                if (!leading || numDebouncedCalls > 1) {
-                  emitter.fire(_output);
-                }
-                numDebouncedCalls = 0;
-              };
-              if (typeof delay === "number") {
-                if (handle) {
-                  clearTimeout(handle);
-                }
-                handle = setTimeout(doFire, delay);
-              } else {
-                if (handle === void 0) {
-                  handle = null;
-                  queueMicrotask(doFire);
-                }
-              }
-            });
-          },
-          onWillRemoveListener() {
-            if (flushOnListenerRemove && numDebouncedCalls > 0) {
-              doFire?.();
-            }
-          },
-          onDidRemoveLastListener() {
-            doFire = void 0;
-            subscription.dispose();
-          }
-        };
-        const emitter = new Emitter(options);
-        disposable?.add(emitter);
-        return emitter.event;
-      }
-      Event2.debounce = debounce;
-      function accumulate(event, delay = 0, disposable) {
-        return Event2.debounce(event, (last, e) => {
-          if (!last) {
-            return [e];
-          }
-          last.push(e);
-          return last;
-        }, delay, void 0, true, void 0, disposable);
-      }
-      Event2.accumulate = accumulate;
-      function latch(event, equals3 = (a, b) => a === b, disposable) {
-        let firstCall = true;
-        let cache;
-        return filter(event, (value) => {
-          const shouldEmit = firstCall || !equals3(value, cache);
-          firstCall = false;
-          cache = value;
-          return shouldEmit;
-        }, disposable);
-      }
-      Event2.latch = latch;
-      function split(event, isT, disposable) {
-        return [
-          Event2.filter(event, isT, disposable),
-          Event2.filter(event, (e) => !isT(e), disposable)
-        ];
-      }
-      Event2.split = split;
-      function buffer(event, flushAfterTimeout = false, _buffer = [], disposable) {
-        let buffer2 = _buffer.slice();
-        let listener = event((e) => {
-          if (buffer2) {
-            buffer2.push(e);
-          } else {
-            emitter.fire(e);
-          }
-        });
-        if (disposable) {
-          disposable.add(listener);
-        }
-        const flush = () => {
-          buffer2?.forEach((e) => emitter.fire(e));
-          buffer2 = null;
-        };
-        const emitter = new Emitter({
-          onWillAddFirstListener() {
-            if (!listener) {
-              listener = event((e) => emitter.fire(e));
-              if (disposable) {
-                disposable.add(listener);
-              }
-            }
-          },
-          onDidAddFirstListener() {
-            if (buffer2) {
-              if (flushAfterTimeout) {
-                setTimeout(flush);
-              } else {
-                flush();
-              }
-            }
-          },
-          onDidRemoveLastListener() {
-            if (listener) {
-              listener.dispose();
-            }
-            listener = null;
-          }
-        });
-        if (disposable) {
-          disposable.add(emitter);
-        }
-        return emitter.event;
-      }
-      Event2.buffer = buffer;
-      function chain(event, sythensize) {
-        const fn = (listener, thisArgs, disposables) => {
-          const cs = sythensize(new ChainableSynthesis());
-          return event(function(value) {
-            const result = cs.evaluate(value);
-            if (result !== HaltChainable) {
-              listener.call(thisArgs, result);
-            }
-          }, void 0, disposables);
-        };
-        return fn;
-      }
-      Event2.chain = chain;
-      const HaltChainable = Symbol("HaltChainable");
-      class ChainableSynthesis {
-        constructor() {
-          this.steps = [];
-        }
-        map(fn) {
-          this.steps.push(fn);
-          return this;
-        }
-        forEach(fn) {
-          this.steps.push((v) => {
-            fn(v);
-            return v;
-          });
-          return this;
-        }
-        filter(fn) {
-          this.steps.push((v) => fn(v) ? v : HaltChainable);
-          return this;
-        }
-        reduce(merge, initial) {
-          let last = initial;
-          this.steps.push((v) => {
-            last = merge(last, v);
-            return last;
-          });
-          return this;
-        }
-        latch(equals3 = (a, b) => a === b) {
-          let firstCall = true;
-          let cache;
-          this.steps.push((value) => {
-            const shouldEmit = firstCall || !equals3(value, cache);
-            firstCall = false;
-            cache = value;
-            return shouldEmit ? value : HaltChainable;
-          });
-          return this;
-        }
-        evaluate(value) {
-          for (const step of this.steps) {
-            value = step(value);
-            if (value === HaltChainable) {
-              break;
-            }
-          }
-          return value;
-        }
-      }
-      function fromNodeEventEmitter(emitter, eventName, map2 = (id) => id) {
-        const fn = (...args) => result.fire(map2(...args));
-        const onFirstListenerAdd = () => emitter.on(eventName, fn);
-        const onLastListenerRemove = () => emitter.removeListener(eventName, fn);
-        const result = new Emitter({ onWillAddFirstListener: onFirstListenerAdd, onDidRemoveLastListener: onLastListenerRemove });
-        return result.event;
-      }
-      Event2.fromNodeEventEmitter = fromNodeEventEmitter;
-      function fromDOMEventEmitter(emitter, eventName, map2 = (id) => id) {
-        const fn = (...args) => result.fire(map2(...args));
-        const onFirstListenerAdd = () => emitter.addEventListener(eventName, fn);
-        const onLastListenerRemove = () => emitter.removeEventListener(eventName, fn);
-        const result = new Emitter({ onWillAddFirstListener: onFirstListenerAdd, onDidRemoveLastListener: onLastListenerRemove });
-        return result.event;
-      }
-      Event2.fromDOMEventEmitter = fromDOMEventEmitter;
-      function toPromise(event, disposables) {
-        let cancelRef;
-        const promise = new Promise((resolve3, reject) => {
-          const listener = once(event)(resolve3, null, disposables);
-          cancelRef = () => listener.dispose();
-        });
-        promise.cancel = cancelRef;
-        return promise;
-      }
-      Event2.toPromise = toPromise;
-      function forward(from, to) {
-        return from((e) => to.fire(e));
-      }
-      Event2.forward = forward;
-      function runAndSubscribe(event, handler, initial) {
-        handler(initial);
-        return event((e) => handler(e));
-      }
-      Event2.runAndSubscribe = runAndSubscribe;
-      class EmitterObserver {
-        constructor(_observable, store) {
-          this._observable = _observable;
-          this._counter = 0;
-          this._hasChanged = false;
-          const options = {
-            onWillAddFirstListener: () => {
-              _observable.addObserver(this);
-              this._observable.reportChanges();
-            },
-            onDidRemoveLastListener: () => {
-              _observable.removeObserver(this);
-            }
-          };
-          this.emitter = new Emitter(options);
-          if (store) {
-            store.add(this.emitter);
-          }
-        }
-        beginUpdate(_observable) {
-          this._counter++;
-        }
-        handlePossibleChange(_observable) {
-        }
-        handleChange(_observable, _change) {
-          this._hasChanged = true;
-        }
-        endUpdate(_observable) {
-          this._counter--;
-          if (this._counter === 0) {
-            this._observable.reportChanges();
-            if (this._hasChanged) {
-              this._hasChanged = false;
-              this.emitter.fire(this._observable.get());
-            }
-          }
-        }
-      }
-      function fromObservable(obs, store) {
-        const observer = new EmitterObserver(obs, store);
-        return observer.emitter.event;
-      }
-      Event2.fromObservable = fromObservable;
-      function fromObservableLight(observable) {
-        return (listener, thisArgs, disposables) => {
-          let count = 0;
-          let didChange = false;
-          const observer = {
-            beginUpdate() {
-              count++;
-            },
-            endUpdate() {
-              count--;
-              if (count === 0) {
-                observable.reportChanges();
-                if (didChange) {
-                  didChange = false;
-                  listener.call(thisArgs);
-                }
-              }
-            },
-            handlePossibleChange() {
-            },
-            handleChange() {
-              didChange = true;
-            }
-          };
-          observable.addObserver(observer);
-          observable.reportChanges();
-          const disposable = {
-            dispose() {
-              observable.removeObserver(observer);
-            }
-          };
-          if (disposables instanceof DisposableStore) {
-            disposables.add(disposable);
-          } else if (Array.isArray(disposables)) {
-            disposables.push(disposable);
-          }
-          return disposable;
-        };
-      }
-      Event2.fromObservableLight = fromObservableLight;
-    })(Event || (Event = {}));
-    EventProfiling = class _EventProfiling {
-      static {
-        this.all = /* @__PURE__ */ new Set();
-      }
-      static {
-        this._idPool = 0;
-      }
-      constructor(name) {
-        this.listenerCount = 0;
-        this.invocationCount = 0;
-        this.elapsedOverall = 0;
-        this.durations = [];
-        this.name = `${name}_${_EventProfiling._idPool++}`;
-        _EventProfiling.all.add(this);
-      }
-      start(listenerCount) {
-        this._stopWatch = new StopWatch();
-        this.listenerCount = listenerCount;
-      }
-      stop() {
-        if (this._stopWatch) {
-          const elapsed = this._stopWatch.elapsed();
-          this.durations.push(elapsed);
-          this.elapsedOverall += elapsed;
-          this.invocationCount += 1;
-          this._stopWatch = void 0;
-        }
-      }
-    };
-    _globalLeakWarningThreshold = -1;
-    LeakageMonitor = class _LeakageMonitor {
-      static {
-        this._idPool = 1;
-      }
-      constructor(_errorHandler, threshold, name = (_LeakageMonitor._idPool++).toString(16).padStart(3, "0")) {
-        this._errorHandler = _errorHandler;
-        this.threshold = threshold;
-        this.name = name;
-        this._warnCountdown = 0;
-      }
-      dispose() {
-        this._stacks?.clear();
-      }
-      check(stack, listenerCount) {
-        const threshold = this.threshold;
-        if (threshold <= 0 || listenerCount < threshold) {
-          return void 0;
-        }
-        if (!this._stacks) {
-          this._stacks = /* @__PURE__ */ new Map();
-        }
-        const count = this._stacks.get(stack.value) || 0;
-        this._stacks.set(stack.value, count + 1);
-        this._warnCountdown -= 1;
-        if (this._warnCountdown <= 0) {
-          this._warnCountdown = threshold * 0.5;
-          const [topStack, topCount] = this.getMostFrequentStack();
-          const message = `[${this.name}] potential listener LEAK detected, having ${listenerCount} listeners already. MOST frequent listener (${topCount}):`;
-          console.warn(message);
-          console.warn(topStack);
-          const error = new ListenerLeakError(message, topStack);
-          this._errorHandler(error);
-        }
-        return () => {
-          const count2 = this._stacks.get(stack.value) || 0;
-          this._stacks.set(stack.value, count2 - 1);
-        };
-      }
-      getMostFrequentStack() {
-        if (!this._stacks) {
-          return void 0;
-        }
-        let topStack;
-        let topCount = 0;
-        for (const [stack, count] of this._stacks) {
-          if (!topStack || topCount < count) {
-            topStack = [stack, count];
-            topCount = count;
-          }
-        }
-        return topStack;
-      }
-    };
-    Stacktrace = class _Stacktrace {
-      static create() {
-        const err = new Error();
-        return new _Stacktrace(err.stack ?? "");
-      }
-      constructor(value) {
-        this.value = value;
-      }
-      print() {
-        console.warn(this.value.split("\n").slice(2).join("\n"));
-      }
-    };
-    ListenerLeakError = class extends Error {
-      constructor(message, stack) {
-        super(message);
-        this.name = "ListenerLeakError";
-        this.stack = stack;
-      }
-    };
-    ListenerRefusalError = class extends Error {
-      constructor(message, stack) {
-        super(message);
-        this.name = "ListenerRefusalError";
-        this.stack = stack;
-      }
-    };
-    UniqueContainer = class {
-      constructor(value) {
-        this.value = value;
-      }
-    };
-    compactionThreshold = 2;
-    Emitter = class {
-      constructor(options) {
-        this._size = 0;
-        this._options = options;
-        this._leakageMon = this._options?.leakWarningThreshold ? new LeakageMonitor(options?.onListenerError ?? onUnexpectedError, this._options?.leakWarningThreshold ?? _globalLeakWarningThreshold) : void 0;
-        this._perfMon = this._options?._profName ? new EventProfiling(this._options._profName) : void 0;
-        this._deliveryQueue = this._options?.deliveryQueue;
-      }
-      dispose() {
-        if (!this._disposed) {
-          this._disposed = true;
-          if (this._deliveryQueue?.current === this) {
-            this._deliveryQueue.reset();
-          }
-          if (this._listeners) {
-            this._listeners = void 0;
-            this._size = 0;
-          }
-          this._options?.onDidRemoveLastListener?.();
-          this._leakageMon?.dispose();
-        }
-      }
-      /**
-       * For the public to allow to subscribe
-       * to events from this Emitter
-       */
-      get event() {
-        this._event ??= (callback, thisArgs, disposables) => {
-          if (this._leakageMon && this._size > this._leakageMon.threshold ** 2) {
-            const message = `[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;
-            console.warn(message);
-            const tuple = this._leakageMon.getMostFrequentStack() ?? ["UNKNOWN stack", -1];
-            const error = new ListenerRefusalError(`${message}. HINT: Stack shows most frequent listener (${tuple[1]}-times)`, tuple[0]);
-            const errorHandler2 = this._options?.onListenerError || onUnexpectedError;
-            errorHandler2(error);
-            return Disposable.None;
-          }
-          if (this._disposed) {
-            return Disposable.None;
-          }
-          if (thisArgs) {
-            callback = callback.bind(thisArgs);
-          }
-          const contained = new UniqueContainer(callback);
-          let removeMonitor;
-          if (this._leakageMon && this._size >= Math.ceil(this._leakageMon.threshold * 0.2)) {
-            contained.stack = Stacktrace.create();
-            removeMonitor = this._leakageMon.check(contained.stack, this._size + 1);
-          }
-          if (!this._listeners) {
-            this._options?.onWillAddFirstListener?.(this);
-            this._listeners = contained;
-            this._options?.onDidAddFirstListener?.(this);
-          } else if (this._listeners instanceof UniqueContainer) {
-            this._deliveryQueue ??= new EventDeliveryQueuePrivate();
-            this._listeners = [this._listeners, contained];
-          } else {
-            this._listeners.push(contained);
-          }
-          this._options?.onDidAddListener?.(this);
-          this._size++;
-          const result = toDisposable(() => {
-            removeMonitor?.();
-            this._removeListener(contained);
-          });
-          if (disposables instanceof DisposableStore) {
-            disposables.add(result);
-          } else if (Array.isArray(disposables)) {
-            disposables.push(result);
-          }
-          return result;
-        };
-        return this._event;
-      }
-      _removeListener(listener) {
-        this._options?.onWillRemoveListener?.(this);
-        if (!this._listeners) {
-          return;
-        }
-        if (this._size === 1) {
-          this._listeners = void 0;
-          this._options?.onDidRemoveLastListener?.(this);
-          this._size = 0;
-          return;
-        }
-        const listeners = this._listeners;
-        const index = listeners.indexOf(listener);
-        if (index === -1) {
-          console.log("disposed?", this._disposed);
-          console.log("size?", this._size);
-          console.log("arr?", JSON.stringify(this._listeners));
-          throw new Error("Attempted to dispose unknown listener");
-        }
-        this._size--;
-        listeners[index] = void 0;
-        const adjustDeliveryQueue = this._deliveryQueue.current === this;
-        if (this._size * compactionThreshold <= listeners.length) {
-          let n2 = 0;
-          for (let i2 = 0; i2 < listeners.length; i2++) {
-            if (listeners[i2]) {
-              listeners[n2++] = listeners[i2];
-            } else if (adjustDeliveryQueue && n2 < this._deliveryQueue.end) {
-              this._deliveryQueue.end--;
-              if (n2 < this._deliveryQueue.i) {
-                this._deliveryQueue.i--;
-              }
-            }
-          }
-          listeners.length = n2;
-        }
-      }
-      _deliver(listener, value) {
-        if (!listener) {
-          return;
-        }
-        const errorHandler2 = this._options?.onListenerError || onUnexpectedError;
-        if (!errorHandler2) {
-          listener.value(value);
-          return;
-        }
-        try {
-          listener.value(value);
-        } catch (e) {
-          errorHandler2(e);
-        }
-      }
-      /** Delivers items in the queue. Assumes the queue is ready to go. */
-      _deliverQueue(dq) {
-        const listeners = dq.current._listeners;
-        while (dq.i < dq.end) {
-          this._deliver(listeners[dq.i++], dq.value);
-        }
-        dq.reset();
-      }
-      /**
-       * To be kept private to fire an event to
-       * subscribers
-       */
-      fire(event) {
-        if (this._deliveryQueue?.current) {
-          this._deliverQueue(this._deliveryQueue);
-          this._perfMon?.stop();
-        }
-        this._perfMon?.start(this._size);
-        if (!this._listeners) ;
-        else if (this._listeners instanceof UniqueContainer) {
-          this._deliver(this._listeners, event);
-        } else {
-          const dq = this._deliveryQueue;
-          dq.enqueue(this, event, this._listeners.length);
-          this._deliverQueue(dq);
-        }
-        this._perfMon?.stop();
-      }
-      hasListeners() {
-        return this._size > 0;
-      }
-    };
-    createEventDeliveryQueue = () => new EventDeliveryQueuePrivate();
-    EventDeliveryQueuePrivate = class {
-      constructor() {
-        this.i = -1;
-        this.end = 0;
-      }
-      enqueue(emitter, value, end) {
-        this.i = 0;
-        this.end = end;
-        this.current = emitter;
-        this.value = value;
-      }
-      reset() {
-        this.i = this.end;
-        this.current = void 0;
-        this.value = void 0;
-      }
-    };
-    PauseableEmitter = class extends Emitter {
-      constructor(options) {
-        super(options);
-        this._isPaused = 0;
-        this._eventQueue = new LinkedList();
-        this._mergeFn = options?.merge;
-      }
-      pause() {
-        this._isPaused++;
-      }
-      resume() {
-        if (this._isPaused !== 0 && --this._isPaused === 0) {
-          if (this._mergeFn) {
-            if (this._eventQueue.size > 0) {
-              const events = Array.from(this._eventQueue);
-              this._eventQueue.clear();
-              super.fire(this._mergeFn(events));
-            }
-          } else {
-            while (!this._isPaused && this._eventQueue.size !== 0) {
-              super.fire(this._eventQueue.shift());
-            }
-          }
-        }
-      }
-      fire(event) {
-        if (this._size) {
-          if (this._isPaused !== 0) {
-            this._eventQueue.push(event);
-          } else {
-            super.fire(event);
-          }
-        }
-      }
-    };
-    DebounceEmitter = class extends PauseableEmitter {
-      constructor(options) {
-        super(options);
-        this._delay = options.delay ?? 100;
-      }
-      fire(event) {
-        if (!this._handle) {
-          this.pause();
-          this._handle = setTimeout(() => {
-            this._handle = void 0;
-            this.resume();
-          }, this._delay);
-        }
-        super.fire(event);
-      }
-    };
-    MicrotaskEmitter = class extends Emitter {
-      constructor(options) {
-        super(options);
-        this._queuedEvents = [];
-        this._mergeFn = options?.merge;
-      }
-      fire(event) {
-        if (!this.hasListeners()) {
-          return;
-        }
-        this._queuedEvents.push(event);
-        if (this._queuedEvents.length === 1) {
-          queueMicrotask(() => {
-            if (this._mergeFn) {
-              super.fire(this._mergeFn(this._queuedEvents));
-            } else {
-              this._queuedEvents.forEach((e) => super.fire(e));
-            }
-            this._queuedEvents = [];
-          });
-        }
-      }
-    };
-    EventMultiplexer = class {
-      constructor() {
-        this.hasListeners = false;
-        this.events = [];
-        this.emitter = new Emitter({
-          onWillAddFirstListener: () => this.onFirstListenerAdd(),
-          onDidRemoveLastListener: () => this.onLastListenerRemove()
-        });
-      }
-      get event() {
-        return this.emitter.event;
-      }
-      add(event) {
-        const e = { event, listener: null };
-        this.events.push(e);
-        if (this.hasListeners) {
-          this.hook(e);
-        }
-        const dispose2 = () => {
-          if (this.hasListeners) {
-            this.unhook(e);
-          }
-          const idx = this.events.indexOf(e);
-          this.events.splice(idx, 1);
-        };
-        return toDisposable(createSingleCallFunction(dispose2));
-      }
-      onFirstListenerAdd() {
-        this.hasListeners = true;
-        this.events.forEach((e) => this.hook(e));
-      }
-      onLastListenerRemove() {
-        this.hasListeners = false;
-        this.events.forEach((e) => this.unhook(e));
-      }
-      hook(e) {
-        e.listener = e.event((r) => this.emitter.fire(r));
-      }
-      unhook(e) {
-        e.listener?.dispose();
-        e.listener = null;
-      }
-      dispose() {
-        this.emitter.dispose();
-        for (const e of this.events) {
-          e.listener?.dispose();
-        }
-        this.events = [];
-      }
-    };
-    EventBufferer = class {
-      constructor() {
-        this.data = [];
-      }
-      wrapEvent(event, reduce, initial) {
-        return (listener, thisArgs, disposables) => {
-          return event((i2) => {
-            const data = this.data[this.data.length - 1];
-            if (!reduce) {
-              if (data) {
-                data.buffers.push(() => listener.call(thisArgs, i2));
-              } else {
-                listener.call(thisArgs, i2);
-              }
-              return;
-            }
-            const reduceData = data;
-            if (!reduceData) {
-              listener.call(thisArgs, reduce(initial, i2));
-              return;
-            }
-            reduceData.items ??= [];
-            reduceData.items.push(i2);
-            if (reduceData.buffers.length === 0) {
-              data.buffers.push(() => {
-                reduceData.reducedResult ??= initial ? reduceData.items.reduce(reduce, initial) : reduceData.items.reduce(reduce);
-                listener.call(thisArgs, reduceData.reducedResult);
-              });
-            }
-          }, void 0, disposables);
-        };
-      }
-      bufferEvents(fn) {
-        const data = { buffers: new Array() };
-        this.data.push(data);
-        const r = fn();
-        this.data.pop();
-        data.buffers.forEach((flush) => flush());
-        return r;
-      }
-    };
-    Relay = class {
-      constructor() {
-        this.listening = false;
-        this.inputEvent = Event.None;
-        this.inputEventListener = Disposable.None;
-        this.emitter = new Emitter({
-          onDidAddFirstListener: () => {
-            this.listening = true;
-            this.inputEventListener = this.inputEvent(this.emitter.fire, this.emitter);
-          },
-          onDidRemoveLastListener: () => {
-            this.listening = false;
-            this.inputEventListener.dispose();
-          }
-        });
-        this.event = this.emitter.event;
-      }
-      set input(event) {
-        this.inputEvent = event;
-        if (this.listening) {
-          this.inputEventListener.dispose();
-          this.inputEventListener = event(this.emitter.fire, this.emitter);
-        }
-      }
-      dispose() {
-        this.inputEventListener.dispose();
-        this.emitter.dispose();
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/cancellation.js
-function cancelOnDispose(store) {
-  const source = new CancellationTokenSource();
-  store.add({ dispose() {
-    source.cancel();
-  } });
-  return source.token;
-}
-var shortcutEvent, CancellationToken, MutableToken, CancellationTokenSource;
-var init_cancellation = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/cancellation.js"() {
-    init_event();
-    shortcutEvent = Object.freeze(function(callback, context) {
-      const handle = setTimeout(callback.bind(context), 0);
-      return { dispose() {
-        clearTimeout(handle);
-      } };
-    });
-    (function(CancellationToken2) {
-      function isCancellationToken(thing) {
-        if (thing === CancellationToken2.None || thing === CancellationToken2.Cancelled) {
-          return true;
-        }
-        if (thing instanceof MutableToken) {
-          return true;
-        }
-        if (!thing || typeof thing !== "object") {
-          return false;
-        }
-        return typeof thing.isCancellationRequested === "boolean" && typeof thing.onCancellationRequested === "function";
-      }
-      CancellationToken2.isCancellationToken = isCancellationToken;
-      CancellationToken2.None = Object.freeze({
-        isCancellationRequested: false,
-        onCancellationRequested: Event.None
-      });
-      CancellationToken2.Cancelled = Object.freeze({
-        isCancellationRequested: true,
-        onCancellationRequested: shortcutEvent
-      });
-    })(CancellationToken || (CancellationToken = {}));
-    MutableToken = class {
-      constructor() {
-        this._isCancelled = false;
-        this._emitter = null;
-      }
-      cancel() {
-        if (!this._isCancelled) {
-          this._isCancelled = true;
-          if (this._emitter) {
-            this._emitter.fire(void 0);
-            this.dispose();
-          }
-        }
-      }
-      get isCancellationRequested() {
-        return this._isCancelled;
-      }
-      get onCancellationRequested() {
-        if (this._isCancelled) {
-          return shortcutEvent;
-        }
-        if (!this._emitter) {
-          this._emitter = new Emitter();
-        }
-        return this._emitter.event;
-      }
-      dispose() {
-        if (this._emitter) {
-          this._emitter.dispose();
-          this._emitter = null;
-        }
-      }
-    };
-    CancellationTokenSource = class {
-      constructor(parent) {
-        this._token = void 0;
-        this._parentListener = void 0;
-        this._parentListener = parent && parent.onCancellationRequested(this.cancel, this);
-      }
-      get token() {
-        if (!this._token) {
-          this._token = new MutableToken();
-        }
-        return this._token;
-      }
-      cancel() {
-        if (!this._token) {
-          this._token = CancellationToken.Cancelled;
-        } else if (this._token instanceof MutableToken) {
-          this._token.cancel();
-        }
-      }
-      dispose(cancel = false) {
-        if (cancel) {
-          this.cancel();
-        }
-        this._parentListener?.dispose();
-        if (!this._token) {
-          this._token = CancellationToken.None;
-        } else if (this._token instanceof MutableToken) {
-          this._token.dispose();
-        }
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/symbols.js
-var MicrotaskDelay;
-var init_symbols = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/symbols.js"() {
-    MicrotaskDelay = Symbol("MicrotaskDelay");
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/async.js
-function isThenable(obj) {
-  return !!obj && typeof obj.then === "function";
-}
-function createCancelablePromise(callback) {
-  const source = new CancellationTokenSource();
-  const thenable = callback(source.token);
-  let isCancelled = false;
-  const promise = new Promise((resolve3, reject) => {
-    const subscription = source.token.onCancellationRequested(() => {
-      isCancelled = true;
-      subscription.dispose();
-      reject(new CancellationError());
-    });
-    Promise.resolve(thenable).then((value) => {
-      subscription.dispose();
-      source.dispose();
-      if (!isCancelled) {
-        resolve3(value);
-      } else if (isDisposable(value)) {
-        value.dispose();
-      }
-    }, (err) => {
-      subscription.dispose();
-      source.dispose();
-      reject(err);
-    });
-  });
-  return new class {
-    cancel() {
-      source.cancel();
-      source.dispose();
-    }
-    then(resolve3, reject) {
-      return promise.then(resolve3, reject);
-    }
-    catch(reject) {
-      return this.then(void 0, reject);
-    }
-    finally(onfinally) {
-      return promise.finally(onfinally);
-    }
-  }();
-}
-function raceCancellation(promise, token, defaultValue) {
-  return new Promise((resolve3, reject) => {
-    const ref = token.onCancellationRequested(() => {
-      ref.dispose();
-      resolve3(defaultValue);
-    });
-    promise.then(resolve3, reject).finally(() => ref.dispose());
-  });
-}
-function raceCancellationError(promise, token) {
-  return new Promise((resolve3, reject) => {
-    const ref = token.onCancellationRequested(() => {
-      ref.dispose();
-      reject(new CancellationError());
-    });
-    promise.then(resolve3, reject).finally(() => ref.dispose());
-  });
-}
-function timeout(millis, token) {
-  if (!token) {
-    return createCancelablePromise((token2) => timeout(millis, token2));
-  }
-  return new Promise((resolve3, reject) => {
-    const handle = setTimeout(() => {
-      disposable.dispose();
-      resolve3();
-    }, millis);
-    const disposable = token.onCancellationRequested(() => {
-      clearTimeout(handle);
-      disposable.dispose();
-      reject(new CancellationError());
-    });
-  });
-}
-function disposableTimeout(handler, timeout2 = 0, store) {
-  const timer = setTimeout(() => {
-    handler();
-    if (store) {
-      disposable.dispose();
-    }
-  }, timeout2);
-  const disposable = toDisposable(() => {
-    clearTimeout(timer);
-    store?.delete(disposable);
-  });
-  store?.add(disposable);
-  return disposable;
-}
-function first(promiseFactories, shouldStop = (t) => !!t, defaultValue = null) {
-  let index = 0;
-  const len = promiseFactories.length;
-  const loop = () => {
-    if (index >= len) {
-      return Promise.resolve(defaultValue);
-    }
-    const factory = promiseFactories[index++];
-    const promise = Promise.resolve(factory());
-    return promise.then((result) => {
-      if (shouldStop(result)) {
-        return Promise.resolve(result);
-      }
-      return loop();
-    });
-  };
-  return loop();
-}
-function createCancelableAsyncIterableProducer(callback) {
-  const source = new CancellationTokenSource();
-  const innerIterable = callback(source.token);
-  return new CancelableAsyncIterableProducer(source, async (emitter) => {
-    const subscription = source.token.onCancellationRequested(() => {
-      subscription.dispose();
-      source.dispose();
-      emitter.reject(new CancellationError());
-    });
-    try {
-      for await (const item of innerIterable) {
-        if (source.token.isCancellationRequested) {
-          return;
-        }
-        emitter.emitOne(item);
-      }
-      subscription.dispose();
-      source.dispose();
-    } catch (err) {
-      subscription.dispose();
-      source.dispose();
-      emitter.reject(err);
-    }
-  });
-}
-var Throttler, timeoutDeferred, microtaskDeferred, Delayer, ThrottledDelayer, TaskQueue, TimeoutTimer, IntervalTimer, RunOnceScheduler, runWhenGlobalIdle, _runWhenIdle, AbstractIdleValue, GlobalIdleValue, DeferredPromise, Promises, ProducerConsumer, AsyncIterableProducer, CancelableAsyncIterableProducer;
-var init_async = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/async.js"() {
-    init_cancellation();
-    init_errors();
-    init_lifecycle();
-    init_platform();
-    init_symbols();
-    Throttler = class {
-      constructor() {
-        this.activePromise = null;
-        this.queuedPromise = null;
-        this.queuedPromiseFactory = null;
-        this.cancellationTokenSource = new CancellationTokenSource();
-      }
-      queue(promiseFactory) {
-        if (this.cancellationTokenSource.token.isCancellationRequested) {
-          return Promise.reject(new Error("Throttler is disposed"));
-        }
-        if (this.activePromise) {
-          this.queuedPromiseFactory = promiseFactory;
-          if (!this.queuedPromise) {
-            const onComplete = () => {
-              this.queuedPromise = null;
-              if (this.cancellationTokenSource.token.isCancellationRequested) {
-                return;
-              }
-              const result = this.queue(this.queuedPromiseFactory);
-              this.queuedPromiseFactory = null;
-              return result;
-            };
-            this.queuedPromise = new Promise((resolve3) => {
-              this.activePromise.then(onComplete, onComplete).then(resolve3);
-            });
-          }
-          return new Promise((resolve3, reject) => {
-            this.queuedPromise.then(resolve3, reject);
-          });
-        }
-        this.activePromise = promiseFactory(this.cancellationTokenSource.token);
-        return new Promise((resolve3, reject) => {
-          this.activePromise.then((result) => {
-            this.activePromise = null;
-            resolve3(result);
-          }, (err) => {
-            this.activePromise = null;
-            reject(err);
-          });
-        });
-      }
-      dispose() {
-        this.cancellationTokenSource.cancel();
-      }
-    };
-    timeoutDeferred = (timeout2, fn) => {
-      let scheduled = true;
-      const handle = setTimeout(() => {
-        scheduled = false;
-        fn();
-      }, timeout2);
-      return {
-        isTriggered: () => scheduled,
-        dispose: () => {
-          clearTimeout(handle);
-          scheduled = false;
-        }
-      };
-    };
-    microtaskDeferred = (fn) => {
-      let scheduled = true;
-      queueMicrotask(() => {
-        if (scheduled) {
-          scheduled = false;
-          fn();
-        }
-      });
-      return {
-        isTriggered: () => scheduled,
-        dispose: () => {
-          scheduled = false;
-        }
-      };
-    };
-    Delayer = class {
-      constructor(defaultDelay) {
-        this.defaultDelay = defaultDelay;
-        this.deferred = null;
-        this.completionPromise = null;
-        this.doResolve = null;
-        this.doReject = null;
-        this.task = null;
-      }
-      trigger(task, delay = this.defaultDelay) {
-        this.task = task;
-        this.cancelTimeout();
-        if (!this.completionPromise) {
-          this.completionPromise = new Promise((resolve3, reject) => {
-            this.doResolve = resolve3;
-            this.doReject = reject;
-          }).then(() => {
-            this.completionPromise = null;
-            this.doResolve = null;
-            if (this.task) {
-              const task2 = this.task;
-              this.task = null;
-              return task2();
-            }
-            return void 0;
-          });
-        }
-        const fn = () => {
-          this.deferred = null;
-          this.doResolve?.(null);
-        };
-        this.deferred = delay === MicrotaskDelay ? microtaskDeferred(fn) : timeoutDeferred(delay, fn);
-        return this.completionPromise;
-      }
-      isTriggered() {
-        return !!this.deferred?.isTriggered();
-      }
-      cancel() {
-        this.cancelTimeout();
-        if (this.completionPromise) {
-          this.doReject?.(new CancellationError());
-          this.completionPromise = null;
-        }
-      }
-      cancelTimeout() {
-        this.deferred?.dispose();
-        this.deferred = null;
-      }
-      dispose() {
-        this.cancel();
-      }
-    };
-    ThrottledDelayer = class {
-      constructor(defaultDelay) {
-        this.delayer = new Delayer(defaultDelay);
-        this.throttler = new Throttler();
-      }
-      trigger(promiseFactory, delay) {
-        return this.delayer.trigger(() => this.throttler.queue(promiseFactory), delay);
-      }
-      cancel() {
-        this.delayer.cancel();
-      }
-      dispose() {
-        this.delayer.dispose();
-        this.throttler.dispose();
-      }
-    };
-    TaskQueue = class {
-      constructor() {
-        this._runningTask = void 0;
-        this._pendingTasks = [];
-      }
-      /**
-       * Waits for the current and pending tasks to finish, then runs and awaits the given task.
-       * If the task is skipped because of clearPending, the promise is rejected with a CancellationError.
-      */
-      schedule(task) {
-        const deferred = new DeferredPromise();
-        this._pendingTasks.push({ task, deferred, setUndefinedWhenCleared: false });
-        this._runIfNotRunning();
-        return deferred.p;
-      }
-      _runIfNotRunning() {
-        if (this._runningTask === void 0) {
-          this._processQueue();
-        }
-      }
-      async _processQueue() {
-        if (this._pendingTasks.length === 0) {
-          return;
-        }
-        const next = this._pendingTasks.shift();
-        if (!next) {
-          return;
-        }
-        if (this._runningTask) {
-          throw new BugIndicatingError();
-        }
-        this._runningTask = next.task;
-        try {
-          const result = await next.task();
-          next.deferred.complete(result);
-        } catch (e) {
-          next.deferred.error(e);
-        } finally {
-          this._runningTask = void 0;
-          this._processQueue();
-        }
-      }
-      /**
-       * Clears all pending tasks. Does not cancel the currently running task.
-      */
-      clearPending() {
-        const tasks = this._pendingTasks;
-        this._pendingTasks = [];
-        for (const task of tasks) {
-          if (task.setUndefinedWhenCleared) {
-            task.deferred.complete(void 0);
-          } else {
-            task.deferred.error(new CancellationError());
-          }
-        }
-      }
-    };
-    TimeoutTimer = class {
-      constructor(runner, timeout2) {
-        this._isDisposed = false;
-        this._token = void 0;
-        if (typeof runner === "function" && typeof timeout2 === "number") {
-          this.setIfNotSet(runner, timeout2);
-        }
-      }
-      dispose() {
-        this.cancel();
-        this._isDisposed = true;
-      }
-      cancel() {
-        if (this._token !== void 0) {
-          clearTimeout(this._token);
-          this._token = void 0;
-        }
-      }
-      cancelAndSet(runner, timeout2) {
-        if (this._isDisposed) {
-          throw new BugIndicatingError(`Calling 'cancelAndSet' on a disposed TimeoutTimer`);
-        }
-        this.cancel();
-        this._token = setTimeout(() => {
-          this._token = void 0;
-          runner();
-        }, timeout2);
-      }
-      setIfNotSet(runner, timeout2) {
-        if (this._isDisposed) {
-          throw new BugIndicatingError(`Calling 'setIfNotSet' on a disposed TimeoutTimer`);
-        }
-        if (this._token !== void 0) {
-          return;
-        }
-        this._token = setTimeout(() => {
-          this._token = void 0;
-          runner();
-        }, timeout2);
-      }
-    };
-    IntervalTimer = class {
-      constructor() {
-        this.disposable = void 0;
-        this.isDisposed = false;
-      }
-      cancel() {
-        this.disposable?.dispose();
-        this.disposable = void 0;
-      }
-      cancelAndSet(runner, interval, context = globalThis) {
-        if (this.isDisposed) {
-          throw new BugIndicatingError(`Calling 'cancelAndSet' on a disposed IntervalTimer`);
-        }
-        this.cancel();
-        const handle = context.setInterval(() => {
-          runner();
-        }, interval);
-        this.disposable = toDisposable(() => {
-          context.clearInterval(handle);
-          this.disposable = void 0;
-        });
-      }
-      dispose() {
-        this.cancel();
-        this.isDisposed = true;
-      }
-    };
-    RunOnceScheduler = class {
-      constructor(runner, delay) {
-        this.timeoutToken = void 0;
-        this.runner = runner;
-        this.timeout = delay;
-        this.timeoutHandler = this.onTimeout.bind(this);
-      }
-      /**
-       * Dispose RunOnceScheduler
-       */
-      dispose() {
-        this.cancel();
-        this.runner = null;
-      }
-      /**
-       * Cancel current scheduled runner (if any).
-       */
-      cancel() {
-        if (this.isScheduled()) {
-          clearTimeout(this.timeoutToken);
-          this.timeoutToken = void 0;
-        }
-      }
-      /**
-       * Cancel previous runner (if any) & schedule a new runner.
-       */
-      schedule(delay = this.timeout) {
-        this.cancel();
-        this.timeoutToken = setTimeout(this.timeoutHandler, delay);
-      }
-      get delay() {
-        return this.timeout;
-      }
-      set delay(value) {
-        this.timeout = value;
-      }
-      /**
-       * Returns true if scheduled.
-       */
-      isScheduled() {
-        return this.timeoutToken !== void 0;
-      }
-      onTimeout() {
-        this.timeoutToken = void 0;
-        if (this.runner) {
-          this.doRun();
-        }
-      }
-      doRun() {
-        this.runner?.();
-      }
-    };
-    (function() {
-      const safeGlobal = globalThis;
-      if (typeof safeGlobal.requestIdleCallback !== "function" || typeof safeGlobal.cancelIdleCallback !== "function") {
-        _runWhenIdle = (_targetWindow, runner, timeout2) => {
-          setTimeout0(() => {
-            if (disposed) {
-              return;
-            }
-            const end = Date.now() + 15;
-            const deadline = {
-              didTimeout: true,
-              timeRemaining() {
-                return Math.max(0, end - Date.now());
-              }
-            };
-            runner(Object.freeze(deadline));
-          });
-          let disposed = false;
-          return {
-            dispose() {
-              if (disposed) {
-                return;
-              }
-              disposed = true;
-            }
-          };
-        };
-      } else {
-        _runWhenIdle = (targetWindow, runner, timeout2) => {
-          const handle = targetWindow.requestIdleCallback(runner, typeof timeout2 === "number" ? { timeout: timeout2 } : void 0);
-          let disposed = false;
-          return {
-            dispose() {
-              if (disposed) {
-                return;
-              }
-              disposed = true;
-              targetWindow.cancelIdleCallback(handle);
-            }
-          };
-        };
-      }
-      runWhenGlobalIdle = (runner, timeout2) => _runWhenIdle(globalThis, runner, timeout2);
-    })();
-    AbstractIdleValue = class {
-      constructor(targetWindow, executor) {
-        this._didRun = false;
-        this._executor = () => {
-          try {
-            this._value = executor();
-          } catch (err) {
-            this._error = err;
-          } finally {
-            this._didRun = true;
-          }
-        };
-        this._handle = _runWhenIdle(targetWindow, () => this._executor());
-      }
-      dispose() {
-        this._handle.dispose();
-      }
-      get value() {
-        if (!this._didRun) {
-          this._handle.dispose();
-          this._executor();
-        }
-        if (this._error) {
-          throw this._error;
-        }
-        return this._value;
-      }
-      get isInitialized() {
-        return this._didRun;
-      }
-    };
-    GlobalIdleValue = class extends AbstractIdleValue {
-      constructor(executor) {
-        super(globalThis, executor);
-      }
-    };
-    DeferredPromise = class {
-      get isRejected() {
-        return this.outcome?.outcome === 1;
-      }
-      get isSettled() {
-        return !!this.outcome;
-      }
-      constructor() {
-        this.p = new Promise((c, e) => {
-          this.completeCallback = c;
-          this.errorCallback = e;
-        });
-      }
-      complete(value) {
-        if (this.isSettled) {
-          return Promise.resolve();
-        }
-        return new Promise((resolve3) => {
-          this.completeCallback(value);
-          this.outcome = { outcome: 0, value };
-          resolve3();
-        });
-      }
-      error(err) {
-        if (this.isSettled) {
-          return Promise.resolve();
-        }
-        return new Promise((resolve3) => {
-          this.errorCallback(err);
-          this.outcome = { outcome: 1, value: err };
-          resolve3();
-        });
-      }
-      cancel() {
-        return this.error(new CancellationError());
-      }
-    };
-    (function(Promises2) {
-      async function settled(promises) {
-        let firstError = void 0;
-        const result = await Promise.all(promises.map((promise) => promise.then((value) => value, (error) => {
-          if (!firstError) {
-            firstError = error;
-          }
-          return void 0;
-        })));
-        if (typeof firstError !== "undefined") {
-          throw firstError;
-        }
-        return result;
-      }
-      Promises2.settled = settled;
-      function withAsyncBody(bodyFn) {
-        return new Promise(async (resolve3, reject) => {
-          try {
-            await bodyFn(resolve3, reject);
-          } catch (error) {
-            reject(error);
-          }
-        });
-      }
-      Promises2.withAsyncBody = withAsyncBody;
-    })(Promises || (Promises = {}));
-    ProducerConsumer = class {
-      constructor() {
-        this._unsatisfiedConsumers = [];
-        this._unconsumedValues = [];
-      }
-      get hasFinalValue() {
-        return !!this._finalValue;
-      }
-      produce(value) {
-        this._ensureNoFinalValue();
-        if (this._unsatisfiedConsumers.length > 0) {
-          const deferred = this._unsatisfiedConsumers.shift();
-          this._resolveOrRejectDeferred(deferred, value);
-        } else {
-          this._unconsumedValues.push(value);
-        }
-      }
-      produceFinal(value) {
-        this._ensureNoFinalValue();
-        this._finalValue = value;
-        for (const deferred of this._unsatisfiedConsumers) {
-          this._resolveOrRejectDeferred(deferred, value);
-        }
-        this._unsatisfiedConsumers.length = 0;
-      }
-      _ensureNoFinalValue() {
-        if (this._finalValue) {
-          throw new BugIndicatingError("ProducerConsumer: cannot produce after final value has been set");
-        }
-      }
-      _resolveOrRejectDeferred(deferred, value) {
-        if (value.ok) {
-          deferred.complete(value.value);
-        } else {
-          deferred.error(value.error);
-        }
-      }
-      consume() {
-        if (this._unconsumedValues.length > 0 || this._finalValue) {
-          const value = this._unconsumedValues.length > 0 ? this._unconsumedValues.shift() : this._finalValue;
-          if (value.ok) {
-            return Promise.resolve(value.value);
-          } else {
-            return Promise.reject(value.error);
-          }
-        } else {
-          const deferred = new DeferredPromise();
-          this._unsatisfiedConsumers.push(deferred);
-          return deferred.p;
-        }
-      }
-    };
-    AsyncIterableProducer = class _AsyncIterableProducer {
-      constructor(executor, _onReturn) {
-        this._onReturn = _onReturn;
-        this._producerConsumer = new ProducerConsumer();
-        this._iterator = {
-          next: () => this._producerConsumer.consume(),
-          return: () => {
-            this._onReturn?.();
-            return Promise.resolve({ done: true, value: void 0 });
-          },
-          throw: async (e) => {
-            this._finishError(e);
-            return { done: true, value: void 0 };
-          }
-        };
-        queueMicrotask(async () => {
-          const p = executor({
-            emitOne: (value) => this._producerConsumer.produce({ ok: true, value: { done: false, value } }),
-            emitMany: (values) => {
-              for (const value of values) {
-                this._producerConsumer.produce({ ok: true, value: { done: false, value } });
-              }
-            },
-            reject: (error) => this._finishError(error)
-          });
-          if (!this._producerConsumer.hasFinalValue) {
-            try {
-              await p;
-              this._finishOk();
-            } catch (error) {
-              this._finishError(error);
-            }
-          }
-        });
-      }
-      static fromArray(items) {
-        return new _AsyncIterableProducer((writer) => {
-          writer.emitMany(items);
-        });
-      }
-      static fromPromise(promise) {
-        return new _AsyncIterableProducer(async (emitter) => {
-          emitter.emitMany(await promise);
-        });
-      }
-      static fromPromisesResolveOrder(promises) {
-        return new _AsyncIterableProducer(async (emitter) => {
-          await Promise.all(promises.map(async (p) => emitter.emitOne(await p)));
-        });
-      }
-      static merge(iterables) {
-        return new _AsyncIterableProducer(async (emitter) => {
-          await Promise.all(iterables.map(async (iterable) => {
-            for await (const item of iterable) {
-              emitter.emitOne(item);
-            }
-          }));
-        });
-      }
-      static {
-        this.EMPTY = _AsyncIterableProducer.fromArray([]);
-      }
-      static map(iterable, mapFn) {
-        return new _AsyncIterableProducer(async (emitter) => {
-          for await (const item of iterable) {
-            emitter.emitOne(mapFn(item));
-          }
-        });
-      }
-      map(mapFn) {
-        return _AsyncIterableProducer.map(this, mapFn);
-      }
-      static coalesce(iterable) {
-        return _AsyncIterableProducer.filter(iterable, (item) => !!item);
-      }
-      coalesce() {
-        return _AsyncIterableProducer.coalesce(this);
-      }
-      static filter(iterable, filterFn) {
-        return new _AsyncIterableProducer(async (emitter) => {
-          for await (const item of iterable) {
-            if (filterFn(item)) {
-              emitter.emitOne(item);
-            }
-          }
-        });
-      }
-      filter(filterFn) {
-        return _AsyncIterableProducer.filter(this, filterFn);
-      }
-      _finishOk() {
-        if (!this._producerConsumer.hasFinalValue) {
-          this._producerConsumer.produceFinal({ ok: true, value: { done: true, value: void 0 } });
-        }
-      }
-      _finishError(error) {
-        if (!this._producerConsumer.hasFinalValue) {
-          this._producerConsumer.produceFinal({ ok: false, error });
-        }
-      }
-      [Symbol.asyncIterator]() {
-        return this._iterator;
-      }
-    };
-    CancelableAsyncIterableProducer = class extends AsyncIterableProducer {
-      constructor(_source, executor) {
-        super(executor);
-        this._source = _source;
-      }
-      cancel() {
-        this._source.cancel();
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/cache.js
-function identity(t) {
-  return t;
-}
-var LRUCachedFunction, CachedFunction;
-var init_cache = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/cache.js"() {
-    LRUCachedFunction = class {
-      constructor(arg1, arg2) {
-        this.lastCache = void 0;
-        this.lastArgKey = void 0;
-        if (typeof arg1 === "function") {
-          this._fn = arg1;
-          this._computeKey = identity;
-        } else {
-          this._fn = arg2;
-          this._computeKey = arg1.getCacheKey;
-        }
-      }
-      get(arg) {
-        const key = this._computeKey(arg);
-        if (this.lastArgKey !== key) {
-          this.lastArgKey = key;
-          this.lastCache = this._fn(arg);
-        }
-        return this.lastCache;
-      }
-    };
-    CachedFunction = class {
-      get cachedValues() {
-        return this._map;
-      }
-      constructor(arg1, arg2) {
-        this._map = /* @__PURE__ */ new Map();
-        this._map2 = /* @__PURE__ */ new Map();
-        if (typeof arg1 === "function") {
-          this._fn = arg1;
-          this._computeKey = identity;
-        } else {
-          this._fn = arg2;
-          this._computeKey = arg1.getCacheKey;
-        }
-      }
-      get(arg) {
-        const key = this._computeKey(arg);
-        if (this._map2.has(key)) {
-          return this._map2.get(key);
-        }
-        const value = this._fn(arg);
-        this._map.set(arg, value);
-        this._map2.set(key, value);
-        return value;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/lazy.js
-var LazyValueState, Lazy;
-var init_lazy = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/lazy.js"() {
-    (function(LazyValueState2) {
-      LazyValueState2[LazyValueState2["Uninitialized"] = 0] = "Uninitialized";
-      LazyValueState2[LazyValueState2["Running"] = 1] = "Running";
-      LazyValueState2[LazyValueState2["Completed"] = 2] = "Completed";
-    })(LazyValueState || (LazyValueState = {}));
-    Lazy = class {
-      constructor(executor) {
-        this.executor = executor;
-        this._state = LazyValueState.Uninitialized;
-      }
-      /**
-       * Get the wrapped value.
-       *
-       * This will force evaluation of the lazy value if it has not been resolved yet. Lazy values are only
-       * resolved once. `getValue` will re-throw exceptions that are hit while resolving the value
-       */
-      get value() {
-        if (this._state === LazyValueState.Uninitialized) {
-          this._state = LazyValueState.Running;
-          try {
-            this._value = this.executor();
-          } catch (err) {
-            this._error = err;
-          } finally {
-            this._state = LazyValueState.Completed;
-          }
-        } else if (this._state === LazyValueState.Running) {
-          throw new Error("Cannot read the value of a lazy that is being initialized");
-        }
-        if (this._error) {
-          throw this._error;
-        }
-        return this._value;
-      }
-      /**
-       * Get the wrapped value without forcing evaluation.
-       */
-      get rawValue() {
-        return this._value;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/strings.js
-function isFalsyOrWhitespace(str) {
-  if (!str || typeof str !== "string") {
-    return true;
-  }
-  return str.trim().length === 0;
-}
-function format(value, ...args) {
-  if (args.length === 0) {
-    return value;
-  }
-  return value.replace(_formatRegexp, function(match2, group) {
-    const idx = parseInt(group, 10);
-    return isNaN(idx) || idx < 0 || idx >= args.length ? match2 : args[idx];
-  });
-}
-function htmlAttributeEncodeValue(value) {
-  return value.replace(/[<>"'&]/g, (ch) => {
-    switch (ch) {
-      case "<":
-        return "<";
-      case ">":
-        return ">";
-      case '"':
-        return """;
-      case "'":
-        return "'";
-      case "&":
-        return "&";
-    }
-    return ch;
-  });
-}
-function escape(html3) {
-  return html3.replace(/[<>&]/g, function(match2) {
-    switch (match2) {
-      case "<":
-        return "<";
-      case ">":
-        return ">";
-      case "&":
-        return "&";
-      default:
-        return match2;
-    }
-  });
-}
-function escapeRegExpCharacters(value) {
-  return value.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g, "\\$&");
-}
-function trim(haystack, needle = " ") {
-  const trimmed = ltrim(haystack, needle);
-  return rtrim(trimmed, needle);
-}
-function ltrim(haystack, needle) {
-  if (!haystack || !needle) {
-    return haystack;
-  }
-  const needleLen = needle.length;
-  if (needleLen === 0 || haystack.length === 0) {
-    return haystack;
-  }
-  let offset = 0;
-  while (haystack.indexOf(needle, offset) === offset) {
-    offset = offset + needleLen;
-  }
-  return haystack.substring(offset);
-}
-function rtrim(haystack, needle) {
-  if (!haystack || !needle) {
-    return haystack;
-  }
-  const needleLen = needle.length, haystackLen = haystack.length;
-  if (needleLen === 0 || haystackLen === 0) {
-    return haystack;
-  }
-  let offset = haystackLen, idx = -1;
-  while (true) {
-    idx = haystack.lastIndexOf(needle, offset - 1);
-    if (idx === -1 || idx + needleLen !== offset) {
-      break;
-    }
-    if (idx === 0) {
-      return "";
-    }
-    offset = idx;
-  }
-  return haystack.substring(0, offset);
-}
-function convertSimple2RegExpPattern(pattern) {
-  return pattern.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g, "\\$&").replace(/[\*]/g, ".*");
-}
-function createRegExp(searchString, isRegex, options = {}) {
-  if (!searchString) {
-    throw new Error("Cannot create regex from empty string");
-  }
-  if (!isRegex) {
-    searchString = escapeRegExpCharacters(searchString);
-  }
-  if (options.wholeWord) {
-    if (!/\B/.test(searchString.charAt(0))) {
-      searchString = "\\b" + searchString;
-    }
-    if (!/\B/.test(searchString.charAt(searchString.length - 1))) {
-      searchString = searchString + "\\b";
-    }
-  }
-  let modifiers = "";
-  if (options.global) {
-    modifiers += "g";
-  }
-  if (!options.matchCase) {
-    modifiers += "i";
-  }
-  if (options.multiline) {
-    modifiers += "m";
-  }
-  if (options.unicode) {
-    modifiers += "u";
-  }
-  return new RegExp(searchString, modifiers);
-}
-function regExpLeadsToEndlessLoop(regexp) {
-  if (regexp.source === "^" || regexp.source === "^$" || regexp.source === "$" || regexp.source === "^\\s*$") {
-    return false;
-  }
-  const match2 = regexp.exec("");
-  return !!(match2 && regexp.lastIndex === 0);
-}
-function splitLines(str) {
-  return str.split(/\r\n|\r|\n/);
-}
-function firstNonWhitespaceIndex(str) {
-  for (let i2 = 0, len = str.length; i2 < len; i2++) {
-    const chCode = str.charCodeAt(i2);
-    if (chCode !== 32 && chCode !== 9) {
-      return i2;
-    }
-  }
-  return -1;
-}
-function getLeadingWhitespace(str, start = 0, end = str.length) {
-  for (let i2 = start; i2 < end; i2++) {
-    const chCode = str.charCodeAt(i2);
-    if (chCode !== 32 && chCode !== 9) {
-      return str.substring(start, i2);
-    }
-  }
-  return str.substring(start, end);
-}
-function lastNonWhitespaceIndex(str, startIndex = str.length - 1) {
-  for (let i2 = startIndex; i2 >= 0; i2--) {
-    const chCode = str.charCodeAt(i2);
-    if (chCode !== 32 && chCode !== 9) {
-      return i2;
-    }
-  }
-  return -1;
-}
-function compare(a, b) {
-  if (a < b) {
-    return -1;
-  } else if (a > b) {
-    return 1;
-  } else {
-    return 0;
-  }
-}
-function compareSubstring(a, b, aStart = 0, aEnd = a.length, bStart = 0, bEnd = b.length) {
-  for (; aStart < aEnd && bStart < bEnd; aStart++, bStart++) {
-    const codeA = a.charCodeAt(aStart);
-    const codeB = b.charCodeAt(bStart);
-    if (codeA < codeB) {
-      return -1;
-    } else if (codeA > codeB) {
-      return 1;
-    }
-  }
-  const aLen = aEnd - aStart;
-  const bLen = bEnd - bStart;
-  if (aLen < bLen) {
-    return -1;
-  } else if (aLen > bLen) {
-    return 1;
-  }
-  return 0;
-}
-function compareIgnoreCase(a, b) {
-  return compareSubstringIgnoreCase(a, b, 0, a.length, 0, b.length);
-}
-function compareSubstringIgnoreCase(a, b, aStart = 0, aEnd = a.length, bStart = 0, bEnd = b.length) {
-  for (; aStart < aEnd && bStart < bEnd; aStart++, bStart++) {
-    let codeA = a.charCodeAt(aStart);
-    let codeB = b.charCodeAt(bStart);
-    if (codeA === codeB) {
-      continue;
-    }
-    if (codeA >= 128 || codeB >= 128) {
-      return compareSubstring(a.toLowerCase(), b.toLowerCase(), aStart, aEnd, bStart, bEnd);
-    }
-    if (isLowerAsciiLetter(codeA)) {
-      codeA -= 32;
-    }
-    if (isLowerAsciiLetter(codeB)) {
-      codeB -= 32;
-    }
-    const diff = codeA - codeB;
-    if (diff === 0) {
-      continue;
-    }
-    return diff;
-  }
-  const aLen = aEnd - aStart;
-  const bLen = bEnd - bStart;
-  if (aLen < bLen) {
-    return -1;
-  } else if (aLen > bLen) {
-    return 1;
-  }
-  return 0;
-}
-function isAsciiDigit(code) {
-  return code >= 48 && code <= 57;
-}
-function isLowerAsciiLetter(code) {
-  return code >= 97 && code <= 122;
-}
-function isUpperAsciiLetter(code) {
-  return code >= 65 && code <= 90;
-}
-function equalsIgnoreCase(a, b) {
-  return a.length === b.length && compareSubstringIgnoreCase(a, b) === 0;
-}
-function startsWithIgnoreCase(str, candidate) {
-  const len = candidate.length;
-  return len <= str.length && compareSubstringIgnoreCase(str, candidate, 0, len) === 0;
-}
-function endsWithIgnoreCase(str, candidate) {
-  const len = str.length;
-  const start = len - candidate.length;
-  return start >= 0 && compareSubstringIgnoreCase(str, candidate, start, len) === 0;
-}
-function commonPrefixLength(a, b) {
-  const len = Math.min(a.length, b.length);
-  let i2;
-  for (i2 = 0; i2 < len; i2++) {
-    if (a.charCodeAt(i2) !== b.charCodeAt(i2)) {
-      return i2;
-    }
-  }
-  return len;
-}
-function commonSuffixLength(a, b) {
-  const len = Math.min(a.length, b.length);
-  let i2;
-  const aLastIndex = a.length - 1;
-  const bLastIndex = b.length - 1;
-  for (i2 = 0; i2 < len; i2++) {
-    if (a.charCodeAt(aLastIndex - i2) !== b.charCodeAt(bLastIndex - i2)) {
-      return i2;
-    }
-  }
-  return len;
-}
-function isHighSurrogate(charCode) {
-  return 55296 <= charCode && charCode <= 56319;
-}
-function isLowSurrogate(charCode) {
-  return 56320 <= charCode && charCode <= 57343;
-}
-function computeCodePoint(highSurrogate, lowSurrogate) {
-  return (highSurrogate - 55296 << 10) + (lowSurrogate - 56320) + 65536;
-}
-function getNextCodePoint(str, len, offset) {
-  const charCode = str.charCodeAt(offset);
-  if (isHighSurrogate(charCode) && offset + 1 < len) {
-    const nextCharCode = str.charCodeAt(offset + 1);
-    if (isLowSurrogate(nextCharCode)) {
-      return computeCodePoint(charCode, nextCharCode);
-    }
-  }
-  return charCode;
-}
-function getPrevCodePoint(str, offset) {
-  const charCode = str.charCodeAt(offset - 1);
-  if (isLowSurrogate(charCode) && offset > 1) {
-    const prevCharCode = str.charCodeAt(offset - 2);
-    if (isHighSurrogate(prevCharCode)) {
-      return computeCodePoint(prevCharCode, charCode);
-    }
-  }
-  return charCode;
-}
-function nextCharLength(str, initialOffset) {
-  const iterator = new GraphemeIterator(str, initialOffset);
-  return iterator.nextGraphemeLength();
-}
-function prevCharLength(str, initialOffset) {
-  const iterator = new GraphemeIterator(str, initialOffset);
-  return iterator.prevGraphemeLength();
-}
-function getCharContainingOffset(str, offset) {
-  if (offset > 0 && isLowSurrogate(str.charCodeAt(offset))) {
-    offset--;
-  }
-  const endOffset = offset + nextCharLength(str, offset);
-  const startOffset = endOffset - prevCharLength(str, endOffset);
-  return [startOffset, endOffset];
-}
-function makeContainsRtl() {
-  return /(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/;
-}
-function containsRTL(str) {
-  if (!CONTAINS_RTL) {
-    CONTAINS_RTL = makeContainsRtl();
-  }
-  return CONTAINS_RTL.test(str);
-}
-function isBasicASCII(str) {
-  return IS_BASIC_ASCII.test(str);
-}
-function containsUnusualLineTerminators(str) {
-  return UNUSUAL_LINE_TERMINATORS.test(str);
-}
-function isFullWidthCharacter(charCode) {
-  return charCode >= 11904 && charCode <= 55215 || charCode >= 63744 && charCode <= 64255 || charCode >= 65281 && charCode <= 65374;
-}
-function isEmojiImprecise(x) {
-  return x >= 127462 && x <= 127487 || x === 8986 || x === 8987 || x === 9200 || x === 9203 || x >= 9728 && x <= 10175 || x === 11088 || x === 11093 || x >= 127744 && x <= 128591 || x >= 128640 && x <= 128764 || x >= 128992 && x <= 129008 || x >= 129280 && x <= 129535 || x >= 129648 && x <= 129782;
-}
-function startsWithUTF8BOM(str) {
-  return !!(str && str.length > 0 && str.charCodeAt(0) === 65279);
-}
-function containsUppercaseCharacter(target, ignoreEscapedChars = false) {
-  if (!target) {
-    return false;
-  }
-  if (ignoreEscapedChars) {
-    target = target.replace(/\\./g, "");
-  }
-  return target.toLowerCase() !== target;
-}
-function singleLetterHash(n2) {
-  const LETTERS_CNT = 90 - 65 + 1;
-  n2 = n2 % (2 * LETTERS_CNT);
-  if (n2 < LETTERS_CNT) {
-    return String.fromCharCode(97 + n2);
-  }
-  return String.fromCharCode(65 + n2 - LETTERS_CNT);
-}
-function breakBetweenGraphemeBreakType(breakTypeA, breakTypeB) {
-  if (breakTypeA === 0) {
-    return breakTypeB !== 5 && breakTypeB !== 7;
-  }
-  if (breakTypeA === 2) {
-    if (breakTypeB === 3) {
-      return false;
-    }
-  }
-  if (breakTypeA === 4 || breakTypeA === 2 || breakTypeA === 3) {
-    return true;
-  }
-  if (breakTypeB === 4 || breakTypeB === 2 || breakTypeB === 3) {
-    return true;
-  }
-  if (breakTypeA === 8) {
-    if (breakTypeB === 8 || breakTypeB === 9 || breakTypeB === 11 || breakTypeB === 12) {
-      return false;
-    }
-  }
-  if (breakTypeA === 11 || breakTypeA === 9) {
-    if (breakTypeB === 9 || breakTypeB === 10) {
-      return false;
-    }
-  }
-  if (breakTypeA === 12 || breakTypeA === 10) {
-    if (breakTypeB === 10) {
-      return false;
-    }
-  }
-  if (breakTypeB === 5 || breakTypeB === 13) {
-    return false;
-  }
-  if (breakTypeB === 7) {
-    return false;
-  }
-  if (breakTypeA === 1) {
-    return false;
-  }
-  if (breakTypeA === 13 && breakTypeB === 14) {
-    return false;
-  }
-  if (breakTypeA === 6 && breakTypeB === 6) {
-    return false;
-  }
-  return true;
-}
-function getGraphemeBreakRawData() {
-  return JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]");
-}
-function getLeftDeleteOffset(offset, str) {
-  if (offset === 0) {
-    return 0;
-  }
-  const emojiOffset = getOffsetBeforeLastEmojiComponent(offset, str);
-  if (emojiOffset !== void 0) {
-    return emojiOffset;
-  }
-  const iterator = new CodePointIterator(str, offset);
-  iterator.prevCodePoint();
-  return iterator.offset;
-}
-function getOffsetBeforeLastEmojiComponent(initialOffset, str) {
-  const iterator = new CodePointIterator(str, initialOffset);
-  let codePoint = iterator.prevCodePoint();
-  while (isEmojiModifier(codePoint) || codePoint === 65039 || codePoint === 8419) {
-    if (iterator.offset === 0) {
-      return void 0;
-    }
-    codePoint = iterator.prevCodePoint();
-  }
-  if (!isEmojiImprecise(codePoint)) {
-    return void 0;
-  }
-  let resultOffset = iterator.offset;
-  if (resultOffset > 0) {
-    const optionalZwjCodePoint = iterator.prevCodePoint();
-    if (optionalZwjCodePoint === 8205) {
-      resultOffset = iterator.offset;
-    }
-  }
-  return resultOffset;
-}
-function isEmojiModifier(codePoint) {
-  return 127995 <= codePoint && codePoint <= 127999;
-}
-var _formatRegexp, CodePointIterator, GraphemeIterator, CONTAINS_RTL, IS_BASIC_ASCII, UNUSUAL_LINE_TERMINATORS, UTF8_BOM_CHARACTER, GraphemeBreakTree, noBreakWhitespace, AmbiguousCharacters, InvisibleCharacters;
-var init_strings = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/strings.js"() {
-    init_cache();
-    init_lazy();
-    _formatRegexp = /{(\d+)}/g;
-    CodePointIterator = class {
-      get offset() {
-        return this._offset;
-      }
-      constructor(str, offset = 0) {
-        this._str = str;
-        this._len = str.length;
-        this._offset = offset;
-      }
-      setOffset(offset) {
-        this._offset = offset;
-      }
-      prevCodePoint() {
-        const codePoint = getPrevCodePoint(this._str, this._offset);
-        this._offset -= codePoint >= 65536 ? 2 : 1;
-        return codePoint;
-      }
-      nextCodePoint() {
-        const codePoint = getNextCodePoint(this._str, this._len, this._offset);
-        this._offset += codePoint >= 65536 ? 2 : 1;
-        return codePoint;
-      }
-      eol() {
-        return this._offset >= this._len;
-      }
-    };
-    GraphemeIterator = class {
-      get offset() {
-        return this._iterator.offset;
-      }
-      constructor(str, offset = 0) {
-        this._iterator = new CodePointIterator(str, offset);
-      }
-      nextGraphemeLength() {
-        const graphemeBreakTree = GraphemeBreakTree.getInstance();
-        const iterator = this._iterator;
-        const initialOffset = iterator.offset;
-        let graphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.nextCodePoint());
-        while (!iterator.eol()) {
-          const offset = iterator.offset;
-          const nextGraphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.nextCodePoint());
-          if (breakBetweenGraphemeBreakType(graphemeBreakType, nextGraphemeBreakType)) {
-            iterator.setOffset(offset);
-            break;
-          }
-          graphemeBreakType = nextGraphemeBreakType;
-        }
-        return iterator.offset - initialOffset;
-      }
-      prevGraphemeLength() {
-        const graphemeBreakTree = GraphemeBreakTree.getInstance();
-        const iterator = this._iterator;
-        const initialOffset = iterator.offset;
-        let graphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.prevCodePoint());
-        while (iterator.offset > 0) {
-          const offset = iterator.offset;
-          const prevGraphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.prevCodePoint());
-          if (breakBetweenGraphemeBreakType(prevGraphemeBreakType, graphemeBreakType)) {
-            iterator.setOffset(offset);
-            break;
-          }
-          graphemeBreakType = prevGraphemeBreakType;
-        }
-        return initialOffset - iterator.offset;
-      }
-      eol() {
-        return this._iterator.eol();
-      }
-    };
-    CONTAINS_RTL = void 0;
-    IS_BASIC_ASCII = /^[\t\n\r\x20-\x7E]*$/;
-    UNUSUAL_LINE_TERMINATORS = /[\u2028\u2029]/;
-    UTF8_BOM_CHARACTER = String.fromCharCode(
-      65279
-      /* CharCode.UTF8_BOM */
-    );
-    GraphemeBreakTree = class _GraphemeBreakTree {
-      static {
-        this._INSTANCE = null;
-      }
-      static getInstance() {
-        if (!_GraphemeBreakTree._INSTANCE) {
-          _GraphemeBreakTree._INSTANCE = new _GraphemeBreakTree();
-        }
-        return _GraphemeBreakTree._INSTANCE;
-      }
-      constructor() {
-        this._data = getGraphemeBreakRawData();
-      }
-      getGraphemeBreakType(codePoint) {
-        if (codePoint < 32) {
-          if (codePoint === 10) {
-            return 3;
-          }
-          if (codePoint === 13) {
-            return 2;
-          }
-          return 4;
-        }
-        if (codePoint < 127) {
-          return 0;
-        }
-        const data = this._data;
-        const nodeCount = data.length / 3;
-        let nodeIndex = 1;
-        while (nodeIndex <= nodeCount) {
-          if (codePoint < data[3 * nodeIndex]) {
-            nodeIndex = 2 * nodeIndex;
-          } else if (codePoint > data[3 * nodeIndex + 1]) {
-            nodeIndex = 2 * nodeIndex + 1;
-          } else {
-            return data[3 * nodeIndex + 2];
-          }
-        }
-        return 0;
-      }
-    };
-    noBreakWhitespace = "\xA0";
-    AmbiguousCharacters = class _AmbiguousCharacters {
-      static {
-        this.ambiguousCharacterData = new Lazy(() => {
-          return JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,1523,96,8242,96,1370,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,118002,50,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,118003,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,118004,52,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,118005,53,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,118006,54,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,118007,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,118008,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,118009,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,117974,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,117975,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71913,67,71922,67,65315,67,8557,67,8450,67,8493,67,117976,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,117977,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,117978,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,117979,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,117980,71,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,117981,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,117983,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,117984,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,118001,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,117982,108,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,117985,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,117986,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,117987,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,118000,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,117988,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,117989,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,117990,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,117991,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,117992,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,117993,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,117994,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,117995,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71910,87,71919,87,117996,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,117997,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,117998,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,71909,90,66293,90,65338,90,8484,90,8488,90,117999,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65283,35,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"cs":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"es":[8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"fr":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"it":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"ja":[8211,45,8218,44,65281,33,8216,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65292,44,65297,49,65307,59],"ko":[8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"pt-BR":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"ru":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"zh-hans":[160,32,65374,126,8218,44,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65297,49],"zh-hant":[8211,45,65374,126,8218,44,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89]}');
-        });
-      }
-      static {
-        this.cache = new LRUCachedFunction({ getCacheKey: JSON.stringify }, (locales) => {
-          function arrayToMap(arr) {
-            const result = /* @__PURE__ */ new Map();
-            for (let i2 = 0; i2 < arr.length; i2 += 2) {
-              result.set(arr[i2], arr[i2 + 1]);
-            }
-            return result;
-          }
-          function mergeMaps(map1, map2) {
-            const result = new Map(map1);
-            for (const [key, value] of map2) {
-              result.set(key, value);
-            }
-            return result;
-          }
-          function intersectMaps(map1, map2) {
-            if (!map1) {
-              return map2;
-            }
-            const result = /* @__PURE__ */ new Map();
-            for (const [key, value] of map1) {
-              if (map2.has(key)) {
-                result.set(key, value);
-              }
-            }
-            return result;
-          }
-          const data = this.ambiguousCharacterData.value;
-          let filteredLocales = locales.filter((l) => !l.startsWith("_") && Object.hasOwn(data, l));
-          if (filteredLocales.length === 0) {
-            filteredLocales = ["_default"];
-          }
-          let languageSpecificMap = void 0;
-          for (const locale of filteredLocales) {
-            const map2 = arrayToMap(data[locale]);
-            languageSpecificMap = intersectMaps(languageSpecificMap, map2);
-          }
-          const commonMap = arrayToMap(data["_common"]);
-          const map = mergeMaps(commonMap, languageSpecificMap);
-          return new _AmbiguousCharacters(map);
-        });
-      }
-      static getInstance(locales) {
-        return _AmbiguousCharacters.cache.get(Array.from(locales));
-      }
-      static {
-        this._locales = new Lazy(() => Object.keys(_AmbiguousCharacters.ambiguousCharacterData.value).filter((k) => !k.startsWith("_")));
-      }
-      static getLocales() {
-        return _AmbiguousCharacters._locales.value;
-      }
-      constructor(confusableDictionary) {
-        this.confusableDictionary = confusableDictionary;
-      }
-      isAmbiguous(codePoint) {
-        return this.confusableDictionary.has(codePoint);
-      }
-      /**
-       * Returns the non basic ASCII code point that the given code point can be confused,
-       * or undefined if such code point does note exist.
-       */
-      getPrimaryConfusable(codePoint) {
-        return this.confusableDictionary.get(codePoint);
-      }
-      getConfusableCodePoints() {
-        return new Set(this.confusableDictionary.keys());
-      }
-    };
-    InvisibleCharacters = class _InvisibleCharacters {
-      static getRawData() {
-        return JSON.parse('{"_common":[11,12,13,127,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999],"cs":[173,8203,12288],"de":[173,8203,12288],"es":[8203,12288],"fr":[173,8203,12288],"it":[160,173,12288],"ja":[173],"ko":[173,12288],"pl":[173,8203,12288],"pt-BR":[173,8203,12288],"qps-ploc":[160,173,8203,12288],"ru":[173,12288],"tr":[160,173,8203,12288],"zh-hans":[160,173,8203,12288],"zh-hant":[173,12288]}');
-      }
-      static {
-        this._data = void 0;
-      }
-      static getData() {
-        if (!this._data) {
-          this._data = new Set([...Object.values(_InvisibleCharacters.getRawData())].flat());
-        }
-        return this._data;
-      }
-      static isInvisibleCharacter(codePoint) {
-        return _InvisibleCharacters.getData().has(codePoint);
-      }
-      static get codePoints() {
-        return _InvisibleCharacters.getData();
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/process.js
-var safeProcess, vscodeGlobal, cwd, env, platform2;
-var init_process = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/process.js"() {
-    init_platform();
-    vscodeGlobal = globalThis.vscode;
-    if (typeof vscodeGlobal !== "undefined" && typeof vscodeGlobal.process !== "undefined") {
-      const sandboxProcess = vscodeGlobal.process;
-      safeProcess = {
-        get platform() {
-          return sandboxProcess.platform;
-        },
-        get arch() {
-          return sandboxProcess.arch;
-        },
-        get env() {
-          return sandboxProcess.env;
-        },
-        cwd() {
-          return sandboxProcess.cwd();
-        }
-      };
-    } else if (typeof process !== "undefined" && typeof process?.versions?.node === "string") {
-      safeProcess = {
-        get platform() {
-          return process.platform;
-        },
-        get arch() {
-          return process.arch;
-        },
-        get env() {
-          return process.env;
-        },
-        cwd() {
-          return process.env["VSCODE_CWD"] || process.cwd();
-        }
-      };
-    } else {
-      safeProcess = {
-        // Supported
-        get platform() {
-          return isWindows ? "win32" : isMacintosh ? "darwin" : "linux";
-        },
-        get arch() {
-          return void 0;
-        },
-        // Unsupported
-        get env() {
-          return {};
-        },
-        cwd() {
-          return "/";
-        }
-      };
-    }
-    cwd = safeProcess.cwd;
-    env = safeProcess.env;
-    platform2 = safeProcess.platform;
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/path.js
-function validateObject(pathObject, name) {
-  if (pathObject === null || typeof pathObject !== "object") {
-    throw new ErrorInvalidArgType(name, "Object", pathObject);
-  }
-}
-function validateString(value, name) {
-  if (typeof value !== "string") {
-    throw new ErrorInvalidArgType(name, "string", value);
-  }
-}
-function isPathSeparator(code) {
-  return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;
-}
-function isPosixPathSeparator(code) {
-  return code === CHAR_FORWARD_SLASH;
-}
-function isWindowsDeviceRoot(code) {
-  return code >= CHAR_UPPERCASE_A && code <= CHAR_UPPERCASE_Z || code >= CHAR_LOWERCASE_A && code <= CHAR_LOWERCASE_Z;
-}
-function normalizeString(path, allowAboveRoot, separator2, isPathSeparator3) {
-  let res = "";
-  let lastSegmentLength = 0;
-  let lastSlash = -1;
-  let dots = 0;
-  let code = 0;
-  for (let i2 = 0; i2 <= path.length; ++i2) {
-    if (i2 < path.length) {
-      code = path.charCodeAt(i2);
-    } else if (isPathSeparator3(code)) {
-      break;
-    } else {
-      code = CHAR_FORWARD_SLASH;
-    }
-    if (isPathSeparator3(code)) {
-      if (lastSlash === i2 - 1 || dots === 1) ;
-      else if (dots === 2) {
-        if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== CHAR_DOT || res.charCodeAt(res.length - 2) !== CHAR_DOT) {
-          if (res.length > 2) {
-            const lastSlashIndex = res.lastIndexOf(separator2);
-            if (lastSlashIndex === -1) {
-              res = "";
-              lastSegmentLength = 0;
-            } else {
-              res = res.slice(0, lastSlashIndex);
-              lastSegmentLength = res.length - 1 - res.lastIndexOf(separator2);
-            }
-            lastSlash = i2;
-            dots = 0;
-            continue;
-          } else if (res.length !== 0) {
-            res = "";
-            lastSegmentLength = 0;
-            lastSlash = i2;
-            dots = 0;
-            continue;
-          }
-        }
-        if (allowAboveRoot) {
-          res += res.length > 0 ? `${separator2}..` : "..";
-          lastSegmentLength = 2;
-        }
-      } else {
-        if (res.length > 0) {
-          res += `${separator2}${path.slice(lastSlash + 1, i2)}`;
-        } else {
-          res = path.slice(lastSlash + 1, i2);
-        }
-        lastSegmentLength = i2 - lastSlash - 1;
-      }
-      lastSlash = i2;
-      dots = 0;
-    } else if (code === CHAR_DOT && dots !== -1) {
-      ++dots;
-    } else {
-      dots = -1;
-    }
-  }
-  return res;
-}
-function formatExt(ext) {
-  return ext ? `${ext[0] === "." ? "" : "."}${ext}` : "";
-}
-function _format2(sep2, pathObject) {
-  validateObject(pathObject, "pathObject");
-  const dir = pathObject.dir || pathObject.root;
-  const base = pathObject.base || `${pathObject.name || ""}${formatExt(pathObject.ext)}`;
-  if (!dir) {
-    return base;
-  }
-  return dir === pathObject.root ? `${dir}${base}` : `${dir}${sep2}${base}`;
-}
-var CHAR_UPPERCASE_A, CHAR_LOWERCASE_A, CHAR_UPPERCASE_Z, CHAR_LOWERCASE_Z, CHAR_DOT, CHAR_FORWARD_SLASH, CHAR_BACKWARD_SLASH, CHAR_COLON, CHAR_QUESTION_MARK, ErrorInvalidArgType, platformIsWin32, win32, posixCwd, posix, normalize, resolve, relative, dirname, basename, extname, sep;
-var init_path = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/path.js"() {
-    init_process();
-    CHAR_UPPERCASE_A = 65;
-    CHAR_LOWERCASE_A = 97;
-    CHAR_UPPERCASE_Z = 90;
-    CHAR_LOWERCASE_Z = 122;
-    CHAR_DOT = 46;
-    CHAR_FORWARD_SLASH = 47;
-    CHAR_BACKWARD_SLASH = 92;
-    CHAR_COLON = 58;
-    CHAR_QUESTION_MARK = 63;
-    ErrorInvalidArgType = class extends Error {
-      constructor(name, expected, actual) {
-        let determiner;
-        if (typeof expected === "string" && expected.indexOf("not ") === 0) {
-          determiner = "must not be";
-          expected = expected.replace(/^not /, "");
-        } else {
-          determiner = "must be";
-        }
-        const type = name.indexOf(".") !== -1 ? "property" : "argument";
-        let msg = `The "${name}" ${type} ${determiner} of type ${expected}`;
-        msg += `. Received type ${typeof actual}`;
-        super(msg);
-        this.code = "ERR_INVALID_ARG_TYPE";
-      }
-    };
-    platformIsWin32 = platform2 === "win32";
-    win32 = {
-      // path.resolve([from ...], to)
-      resolve(...pathSegments) {
-        let resolvedDevice = "";
-        let resolvedTail = "";
-        let resolvedAbsolute = false;
-        for (let i2 = pathSegments.length - 1; i2 >= -1; i2--) {
-          let path;
-          if (i2 >= 0) {
-            path = pathSegments[i2];
-            validateString(path, `paths[${i2}]`);
-            if (path.length === 0) {
-              continue;
-            }
-          } else if (resolvedDevice.length === 0) {
-            path = cwd();
-          } else {
-            path = env[`=${resolvedDevice}`] || cwd();
-            if (path === void 0 || path.slice(0, 2).toLowerCase() !== resolvedDevice.toLowerCase() && path.charCodeAt(2) === CHAR_BACKWARD_SLASH) {
-              path = `${resolvedDevice}\\`;
-            }
-          }
-          const len = path.length;
-          let rootEnd = 0;
-          let device = "";
-          let isAbsolute = false;
-          const code = path.charCodeAt(0);
-          if (len === 1) {
-            if (isPathSeparator(code)) {
-              rootEnd = 1;
-              isAbsolute = true;
-            }
-          } else if (isPathSeparator(code)) {
-            isAbsolute = true;
-            if (isPathSeparator(path.charCodeAt(1))) {
-              let j = 2;
-              let last = j;
-              while (j < len && !isPathSeparator(path.charCodeAt(j))) {
-                j++;
-              }
-              if (j < len && j !== last) {
-                const firstPart = path.slice(last, j);
-                last = j;
-                while (j < len && isPathSeparator(path.charCodeAt(j))) {
-                  j++;
-                }
-                if (j < len && j !== last) {
-                  last = j;
-                  while (j < len && !isPathSeparator(path.charCodeAt(j))) {
-                    j++;
-                  }
-                  if (j === len || j !== last) {
-                    device = `\\\\${firstPart}\\${path.slice(last, j)}`;
-                    rootEnd = j;
-                  }
-                }
-              }
-            } else {
-              rootEnd = 1;
-            }
-          } else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) {
-            device = path.slice(0, 2);
-            rootEnd = 2;
-            if (len > 2 && isPathSeparator(path.charCodeAt(2))) {
-              isAbsolute = true;
-              rootEnd = 3;
-            }
-          }
-          if (device.length > 0) {
-            if (resolvedDevice.length > 0) {
-              if (device.toLowerCase() !== resolvedDevice.toLowerCase()) {
-                continue;
-              }
-            } else {
-              resolvedDevice = device;
-            }
-          }
-          if (resolvedAbsolute) {
-            if (resolvedDevice.length > 0) {
-              break;
-            }
-          } else {
-            resolvedTail = `${path.slice(rootEnd)}\\${resolvedTail}`;
-            resolvedAbsolute = isAbsolute;
-            if (isAbsolute && resolvedDevice.length > 0) {
-              break;
-            }
-          }
-        }
-        resolvedTail = normalizeString(resolvedTail, !resolvedAbsolute, "\\", isPathSeparator);
-        return resolvedAbsolute ? `${resolvedDevice}\\${resolvedTail}` : `${resolvedDevice}${resolvedTail}` || ".";
-      },
-      normalize(path) {
-        validateString(path, "path");
-        const len = path.length;
-        if (len === 0) {
-          return ".";
-        }
-        let rootEnd = 0;
-        let device;
-        let isAbsolute = false;
-        const code = path.charCodeAt(0);
-        if (len === 1) {
-          return isPosixPathSeparator(code) ? "\\" : path;
-        }
-        if (isPathSeparator(code)) {
-          isAbsolute = true;
-          if (isPathSeparator(path.charCodeAt(1))) {
-            let j = 2;
-            let last = j;
-            while (j < len && !isPathSeparator(path.charCodeAt(j))) {
-              j++;
-            }
-            if (j < len && j !== last) {
-              const firstPart = path.slice(last, j);
-              last = j;
-              while (j < len && isPathSeparator(path.charCodeAt(j))) {
-                j++;
-              }
-              if (j < len && j !== last) {
-                last = j;
-                while (j < len && !isPathSeparator(path.charCodeAt(j))) {
-                  j++;
-                }
-                if (j === len) {
-                  return `\\\\${firstPart}\\${path.slice(last)}\\`;
-                }
-                if (j !== last) {
-                  device = `\\\\${firstPart}\\${path.slice(last, j)}`;
-                  rootEnd = j;
-                }
-              }
-            }
-          } else {
-            rootEnd = 1;
-          }
-        } else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) {
-          device = path.slice(0, 2);
-          rootEnd = 2;
-          if (len > 2 && isPathSeparator(path.charCodeAt(2))) {
-            isAbsolute = true;
-            rootEnd = 3;
-          }
-        }
-        let tail2 = rootEnd < len ? normalizeString(path.slice(rootEnd), !isAbsolute, "\\", isPathSeparator) : "";
-        if (tail2.length === 0 && !isAbsolute) {
-          tail2 = ".";
-        }
-        if (tail2.length > 0 && isPathSeparator(path.charCodeAt(len - 1))) {
-          tail2 += "\\";
-        }
-        if (!isAbsolute && device === void 0 && path.includes(":")) {
-          if (tail2.length >= 2 && isWindowsDeviceRoot(tail2.charCodeAt(0)) && tail2.charCodeAt(1) === CHAR_COLON) {
-            return `.\\${tail2}`;
-          }
-          let index = path.indexOf(":");
-          do {
-            if (index === len - 1 || isPathSeparator(path.charCodeAt(index + 1))) {
-              return `.\\${tail2}`;
-            }
-          } while ((index = path.indexOf(":", index + 1)) !== -1);
-        }
-        if (device === void 0) {
-          return isAbsolute ? `\\${tail2}` : tail2;
-        }
-        return isAbsolute ? `${device}\\${tail2}` : `${device}${tail2}`;
-      },
-      isAbsolute(path) {
-        validateString(path, "path");
-        const len = path.length;
-        if (len === 0) {
-          return false;
-        }
-        const code = path.charCodeAt(0);
-        return isPathSeparator(code) || // Possible device root
-        len > 2 && isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON && isPathSeparator(path.charCodeAt(2));
-      },
-      join(...paths) {
-        if (paths.length === 0) {
-          return ".";
-        }
-        let joined;
-        let firstPart;
-        for (let i2 = 0; i2 < paths.length; ++i2) {
-          const arg = paths[i2];
-          validateString(arg, "path");
-          if (arg.length > 0) {
-            if (joined === void 0) {
-              joined = firstPart = arg;
-            } else {
-              joined += `\\${arg}`;
-            }
-          }
-        }
-        if (joined === void 0) {
-          return ".";
-        }
-        let needsReplace = true;
-        let slashCount = 0;
-        if (typeof firstPart === "string" && isPathSeparator(firstPart.charCodeAt(0))) {
-          ++slashCount;
-          const firstLen = firstPart.length;
-          if (firstLen > 1 && isPathSeparator(firstPart.charCodeAt(1))) {
-            ++slashCount;
-            if (firstLen > 2) {
-              if (isPathSeparator(firstPart.charCodeAt(2))) {
-                ++slashCount;
-              } else {
-                needsReplace = false;
-              }
-            }
-          }
-        }
-        if (needsReplace) {
-          while (slashCount < joined.length && isPathSeparator(joined.charCodeAt(slashCount))) {
-            slashCount++;
-          }
-          if (slashCount >= 2) {
-            joined = `\\${joined.slice(slashCount)}`;
-          }
-        }
-        return win32.normalize(joined);
-      },
-      // It will solve the relative path from `from` to `to`, for instance:
-      //  from = 'C:\\orandea\\test\\aaa'
-      //  to = 'C:\\orandea\\impl\\bbb'
-      // The output of the function should be: '..\\..\\impl\\bbb'
-      relative(from, to) {
-        validateString(from, "from");
-        validateString(to, "to");
-        if (from === to) {
-          return "";
-        }
-        const fromOrig = win32.resolve(from);
-        const toOrig = win32.resolve(to);
-        if (fromOrig === toOrig) {
-          return "";
-        }
-        from = fromOrig.toLowerCase();
-        to = toOrig.toLowerCase();
-        if (from === to) {
-          return "";
-        }
-        if (fromOrig.length !== from.length || toOrig.length !== to.length) {
-          const fromSplit = fromOrig.split("\\");
-          const toSplit = toOrig.split("\\");
-          if (fromSplit[fromSplit.length - 1] === "") {
-            fromSplit.pop();
-          }
-          if (toSplit[toSplit.length - 1] === "") {
-            toSplit.pop();
-          }
-          const fromLen2 = fromSplit.length;
-          const toLen2 = toSplit.length;
-          const length2 = fromLen2 < toLen2 ? fromLen2 : toLen2;
-          let i3;
-          for (i3 = 0; i3 < length2; i3++) {
-            if (fromSplit[i3].toLowerCase() !== toSplit[i3].toLowerCase()) {
-              break;
-            }
-          }
-          if (i3 === 0) {
-            return toOrig;
-          } else if (i3 === length2) {
-            if (toLen2 > length2) {
-              return toSplit.slice(i3).join("\\");
-            }
-            if (fromLen2 > length2) {
-              return "..\\".repeat(fromLen2 - 1 - i3) + "..";
-            }
-            return "";
-          }
-          return "..\\".repeat(fromLen2 - i3) + toSplit.slice(i3).join("\\");
-        }
-        let fromStart = 0;
-        while (fromStart < from.length && from.charCodeAt(fromStart) === CHAR_BACKWARD_SLASH) {
-          fromStart++;
-        }
-        let fromEnd = from.length;
-        while (fromEnd - 1 > fromStart && from.charCodeAt(fromEnd - 1) === CHAR_BACKWARD_SLASH) {
-          fromEnd--;
-        }
-        const fromLen = fromEnd - fromStart;
-        let toStart = 0;
-        while (toStart < to.length && to.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) {
-          toStart++;
-        }
-        let toEnd = to.length;
-        while (toEnd - 1 > toStart && to.charCodeAt(toEnd - 1) === CHAR_BACKWARD_SLASH) {
-          toEnd--;
-        }
-        const toLen = toEnd - toStart;
-        const length = fromLen < toLen ? fromLen : toLen;
-        let lastCommonSep = -1;
-        let i2 = 0;
-        for (; i2 < length; i2++) {
-          const fromCode = from.charCodeAt(fromStart + i2);
-          if (fromCode !== to.charCodeAt(toStart + i2)) {
-            break;
-          } else if (fromCode === CHAR_BACKWARD_SLASH) {
-            lastCommonSep = i2;
-          }
-        }
-        if (i2 !== length) {
-          if (lastCommonSep === -1) {
-            return toOrig;
-          }
-        } else {
-          if (toLen > length) {
-            if (to.charCodeAt(toStart + i2) === CHAR_BACKWARD_SLASH) {
-              return toOrig.slice(toStart + i2 + 1);
-            }
-            if (i2 === 2) {
-              return toOrig.slice(toStart + i2);
-            }
-          }
-          if (fromLen > length) {
-            if (from.charCodeAt(fromStart + i2) === CHAR_BACKWARD_SLASH) {
-              lastCommonSep = i2;
-            } else if (i2 === 2) {
-              lastCommonSep = 3;
-            }
-          }
-          if (lastCommonSep === -1) {
-            lastCommonSep = 0;
-          }
-        }
-        let out = "";
-        for (i2 = fromStart + lastCommonSep + 1; i2 <= fromEnd; ++i2) {
-          if (i2 === fromEnd || from.charCodeAt(i2) === CHAR_BACKWARD_SLASH) {
-            out += out.length === 0 ? ".." : "\\..";
-          }
-        }
-        toStart += lastCommonSep;
-        if (out.length > 0) {
-          return `${out}${toOrig.slice(toStart, toEnd)}`;
-        }
-        if (toOrig.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) {
-          ++toStart;
-        }
-        return toOrig.slice(toStart, toEnd);
-      },
-      toNamespacedPath(path) {
-        if (typeof path !== "string" || path.length === 0) {
-          return path;
-        }
-        const resolvedPath = win32.resolve(path);
-        if (resolvedPath.length <= 2) {
-          return path;
-        }
-        if (resolvedPath.charCodeAt(0) === CHAR_BACKWARD_SLASH) {
-          if (resolvedPath.charCodeAt(1) === CHAR_BACKWARD_SLASH) {
-            const code = resolvedPath.charCodeAt(2);
-            if (code !== CHAR_QUESTION_MARK && code !== CHAR_DOT) {
-              return `\\\\?\\UNC\\${resolvedPath.slice(2)}`;
-            }
-          }
-        } else if (isWindowsDeviceRoot(resolvedPath.charCodeAt(0)) && resolvedPath.charCodeAt(1) === CHAR_COLON && resolvedPath.charCodeAt(2) === CHAR_BACKWARD_SLASH) {
-          return `\\\\?\\${resolvedPath}`;
-        }
-        return resolvedPath;
-      },
-      dirname(path) {
-        validateString(path, "path");
-        const len = path.length;
-        if (len === 0) {
-          return ".";
-        }
-        let rootEnd = -1;
-        let offset = 0;
-        const code = path.charCodeAt(0);
-        if (len === 1) {
-          return isPathSeparator(code) ? path : ".";
-        }
-        if (isPathSeparator(code)) {
-          rootEnd = offset = 1;
-          if (isPathSeparator(path.charCodeAt(1))) {
-            let j = 2;
-            let last = j;
-            while (j < len && !isPathSeparator(path.charCodeAt(j))) {
-              j++;
-            }
-            if (j < len && j !== last) {
-              last = j;
-              while (j < len && isPathSeparator(path.charCodeAt(j))) {
-                j++;
-              }
-              if (j < len && j !== last) {
-                last = j;
-                while (j < len && !isPathSeparator(path.charCodeAt(j))) {
-                  j++;
-                }
-                if (j === len) {
-                  return path;
-                }
-                if (j !== last) {
-                  rootEnd = offset = j + 1;
-                }
-              }
-            }
-          }
-        } else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) {
-          rootEnd = len > 2 && isPathSeparator(path.charCodeAt(2)) ? 3 : 2;
-          offset = rootEnd;
-        }
-        let end = -1;
-        let matchedSlash = true;
-        for (let i2 = len - 1; i2 >= offset; --i2) {
-          if (isPathSeparator(path.charCodeAt(i2))) {
-            if (!matchedSlash) {
-              end = i2;
-              break;
-            }
-          } else {
-            matchedSlash = false;
-          }
-        }
-        if (end === -1) {
-          if (rootEnd === -1) {
-            return ".";
-          }
-          end = rootEnd;
-        }
-        return path.slice(0, end);
-      },
-      basename(path, suffix) {
-        if (suffix !== void 0) {
-          validateString(suffix, "suffix");
-        }
-        validateString(path, "path");
-        let start = 0;
-        let end = -1;
-        let matchedSlash = true;
-        let i2;
-        if (path.length >= 2 && isWindowsDeviceRoot(path.charCodeAt(0)) && path.charCodeAt(1) === CHAR_COLON) {
-          start = 2;
-        }
-        if (suffix !== void 0 && suffix.length > 0 && suffix.length <= path.length) {
-          if (suffix === path) {
-            return "";
-          }
-          let extIdx = suffix.length - 1;
-          let firstNonSlashEnd = -1;
-          for (i2 = path.length - 1; i2 >= start; --i2) {
-            const code = path.charCodeAt(i2);
-            if (isPathSeparator(code)) {
-              if (!matchedSlash) {
-                start = i2 + 1;
-                break;
-              }
-            } else {
-              if (firstNonSlashEnd === -1) {
-                matchedSlash = false;
-                firstNonSlashEnd = i2 + 1;
-              }
-              if (extIdx >= 0) {
-                if (code === suffix.charCodeAt(extIdx)) {
-                  if (--extIdx === -1) {
-                    end = i2;
-                  }
-                } else {
-                  extIdx = -1;
-                  end = firstNonSlashEnd;
-                }
-              }
-            }
-          }
-          if (start === end) {
-            end = firstNonSlashEnd;
-          } else if (end === -1) {
-            end = path.length;
-          }
-          return path.slice(start, end);
-        }
-        for (i2 = path.length - 1; i2 >= start; --i2) {
-          if (isPathSeparator(path.charCodeAt(i2))) {
-            if (!matchedSlash) {
-              start = i2 + 1;
-              break;
-            }
-          } else if (end === -1) {
-            matchedSlash = false;
-            end = i2 + 1;
-          }
-        }
-        if (end === -1) {
-          return "";
-        }
-        return path.slice(start, end);
-      },
-      extname(path) {
-        validateString(path, "path");
-        let start = 0;
-        let startDot = -1;
-        let startPart = 0;
-        let end = -1;
-        let matchedSlash = true;
-        let preDotState = 0;
-        if (path.length >= 2 && path.charCodeAt(1) === CHAR_COLON && isWindowsDeviceRoot(path.charCodeAt(0))) {
-          start = startPart = 2;
-        }
-        for (let i2 = path.length - 1; i2 >= start; --i2) {
-          const code = path.charCodeAt(i2);
-          if (isPathSeparator(code)) {
-            if (!matchedSlash) {
-              startPart = i2 + 1;
-              break;
-            }
-            continue;
-          }
-          if (end === -1) {
-            matchedSlash = false;
-            end = i2 + 1;
-          }
-          if (code === CHAR_DOT) {
-            if (startDot === -1) {
-              startDot = i2;
-            } else if (preDotState !== 1) {
-              preDotState = 1;
-            }
-          } else if (startDot !== -1) {
-            preDotState = -1;
-          }
-        }
-        if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot
-        preDotState === 0 || // The (right-most) trimmed path component is exactly '..'
-        preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
-          return "";
-        }
-        return path.slice(startDot, end);
-      },
-      format: _format2.bind(null, "\\"),
-      parse(path) {
-        validateString(path, "path");
-        const ret = { root: "", dir: "", base: "", ext: "", name: "" };
-        if (path.length === 0) {
-          return ret;
-        }
-        const len = path.length;
-        let rootEnd = 0;
-        let code = path.charCodeAt(0);
-        if (len === 1) {
-          if (isPathSeparator(code)) {
-            ret.root = ret.dir = path;
-            return ret;
-          }
-          ret.base = ret.name = path;
-          return ret;
-        }
-        if (isPathSeparator(code)) {
-          rootEnd = 1;
-          if (isPathSeparator(path.charCodeAt(1))) {
-            let j = 2;
-            let last = j;
-            while (j < len && !isPathSeparator(path.charCodeAt(j))) {
-              j++;
-            }
-            if (j < len && j !== last) {
-              last = j;
-              while (j < len && isPathSeparator(path.charCodeAt(j))) {
-                j++;
-              }
-              if (j < len && j !== last) {
-                last = j;
-                while (j < len && !isPathSeparator(path.charCodeAt(j))) {
-                  j++;
-                }
-                if (j === len) {
-                  rootEnd = j;
-                } else if (j !== last) {
-                  rootEnd = j + 1;
-                }
-              }
-            }
-          }
-        } else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) {
-          if (len <= 2) {
-            ret.root = ret.dir = path;
-            return ret;
-          }
-          rootEnd = 2;
-          if (isPathSeparator(path.charCodeAt(2))) {
-            if (len === 3) {
-              ret.root = ret.dir = path;
-              return ret;
-            }
-            rootEnd = 3;
-          }
-        }
-        if (rootEnd > 0) {
-          ret.root = path.slice(0, rootEnd);
-        }
-        let startDot = -1;
-        let startPart = rootEnd;
-        let end = -1;
-        let matchedSlash = true;
-        let i2 = path.length - 1;
-        let preDotState = 0;
-        for (; i2 >= rootEnd; --i2) {
-          code = path.charCodeAt(i2);
-          if (isPathSeparator(code)) {
-            if (!matchedSlash) {
-              startPart = i2 + 1;
-              break;
-            }
-            continue;
-          }
-          if (end === -1) {
-            matchedSlash = false;
-            end = i2 + 1;
-          }
-          if (code === CHAR_DOT) {
-            if (startDot === -1) {
-              startDot = i2;
-            } else if (preDotState !== 1) {
-              preDotState = 1;
-            }
-          } else if (startDot !== -1) {
-            preDotState = -1;
-          }
-        }
-        if (end !== -1) {
-          if (startDot === -1 || // We saw a non-dot character immediately before the dot
-          preDotState === 0 || // The (right-most) trimmed path component is exactly '..'
-          preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
-            ret.base = ret.name = path.slice(startPart, end);
-          } else {
-            ret.name = path.slice(startPart, startDot);
-            ret.base = path.slice(startPart, end);
-            ret.ext = path.slice(startDot, end);
-          }
-        }
-        if (startPart > 0 && startPart !== rootEnd) {
-          ret.dir = path.slice(0, startPart - 1);
-        } else {
-          ret.dir = ret.root;
-        }
-        return ret;
-      },
-      sep: "\\",
-      delimiter: ";",
-      win32: null,
-      posix: null
-    };
-    posixCwd = (() => {
-      if (platformIsWin32) {
-        const regexp = /\\/g;
-        return () => {
-          const cwd$1 = cwd().replace(regexp, "/");
-          return cwd$1.slice(cwd$1.indexOf("/"));
-        };
-      }
-      return () => cwd();
-    })();
-    posix = {
-      // path.resolve([from ...], to)
-      resolve(...pathSegments) {
-        let resolvedPath = "";
-        let resolvedAbsolute = false;
-        for (let i2 = pathSegments.length - 1; i2 >= 0 && !resolvedAbsolute; i2--) {
-          const path = pathSegments[i2];
-          validateString(path, `paths[${i2}]`);
-          if (path.length === 0) {
-            continue;
-          }
-          resolvedPath = `${path}/${resolvedPath}`;
-          resolvedAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH;
-        }
-        if (!resolvedAbsolute) {
-          const cwd2 = posixCwd();
-          resolvedPath = `${cwd2}/${resolvedPath}`;
-          resolvedAbsolute = cwd2.charCodeAt(0) === CHAR_FORWARD_SLASH;
-        }
-        resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute, "/", isPosixPathSeparator);
-        if (resolvedAbsolute) {
-          return `/${resolvedPath}`;
-        }
-        return resolvedPath.length > 0 ? resolvedPath : ".";
-      },
-      normalize(path) {
-        validateString(path, "path");
-        if (path.length === 0) {
-          return ".";
-        }
-        const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH;
-        const trailingSeparator = path.charCodeAt(path.length - 1) === CHAR_FORWARD_SLASH;
-        path = normalizeString(path, !isAbsolute, "/", isPosixPathSeparator);
-        if (path.length === 0) {
-          if (isAbsolute) {
-            return "/";
-          }
-          return trailingSeparator ? "./" : ".";
-        }
-        if (trailingSeparator) {
-          path += "/";
-        }
-        return isAbsolute ? `/${path}` : path;
-      },
-      isAbsolute(path) {
-        validateString(path, "path");
-        return path.length > 0 && path.charCodeAt(0) === CHAR_FORWARD_SLASH;
-      },
-      join(...paths) {
-        if (paths.length === 0) {
-          return ".";
-        }
-        const path = [];
-        for (let i2 = 0; i2 < paths.length; ++i2) {
-          const arg = paths[i2];
-          validateString(arg, "path");
-          if (arg.length > 0) {
-            path.push(arg);
-          }
-        }
-        if (path.length === 0) {
-          return ".";
-        }
-        return posix.normalize(path.join("/"));
-      },
-      relative(from, to) {
-        validateString(from, "from");
-        validateString(to, "to");
-        if (from === to) {
-          return "";
-        }
-        from = posix.resolve(from);
-        to = posix.resolve(to);
-        if (from === to) {
-          return "";
-        }
-        const fromStart = 1;
-        const fromEnd = from.length;
-        const fromLen = fromEnd - fromStart;
-        const toStart = 1;
-        const toLen = to.length - toStart;
-        const length = fromLen < toLen ? fromLen : toLen;
-        let lastCommonSep = -1;
-        let i2 = 0;
-        for (; i2 < length; i2++) {
-          const fromCode = from.charCodeAt(fromStart + i2);
-          if (fromCode !== to.charCodeAt(toStart + i2)) {
-            break;
-          } else if (fromCode === CHAR_FORWARD_SLASH) {
-            lastCommonSep = i2;
-          }
-        }
-        if (i2 === length) {
-          if (toLen > length) {
-            if (to.charCodeAt(toStart + i2) === CHAR_FORWARD_SLASH) {
-              return to.slice(toStart + i2 + 1);
-            }
-            if (i2 === 0) {
-              return to.slice(toStart + i2);
-            }
-          } else if (fromLen > length) {
-            if (from.charCodeAt(fromStart + i2) === CHAR_FORWARD_SLASH) {
-              lastCommonSep = i2;
-            } else if (i2 === 0) {
-              lastCommonSep = 0;
-            }
-          }
-        }
-        let out = "";
-        for (i2 = fromStart + lastCommonSep + 1; i2 <= fromEnd; ++i2) {
-          if (i2 === fromEnd || from.charCodeAt(i2) === CHAR_FORWARD_SLASH) {
-            out += out.length === 0 ? ".." : "/..";
-          }
-        }
-        return `${out}${to.slice(toStart + lastCommonSep)}`;
-      },
-      toNamespacedPath(path) {
-        return path;
-      },
-      dirname(path) {
-        validateString(path, "path");
-        if (path.length === 0) {
-          return ".";
-        }
-        const hasRoot = path.charCodeAt(0) === CHAR_FORWARD_SLASH;
-        let end = -1;
-        let matchedSlash = true;
-        for (let i2 = path.length - 1; i2 >= 1; --i2) {
-          if (path.charCodeAt(i2) === CHAR_FORWARD_SLASH) {
-            if (!matchedSlash) {
-              end = i2;
-              break;
-            }
-          } else {
-            matchedSlash = false;
-          }
-        }
-        if (end === -1) {
-          return hasRoot ? "/" : ".";
-        }
-        if (hasRoot && end === 1) {
-          return "//";
-        }
-        return path.slice(0, end);
-      },
-      basename(path, suffix) {
-        if (suffix !== void 0) {
-          validateString(suffix, "suffix");
-        }
-        validateString(path, "path");
-        let start = 0;
-        let end = -1;
-        let matchedSlash = true;
-        let i2;
-        if (suffix !== void 0 && suffix.length > 0 && suffix.length <= path.length) {
-          if (suffix === path) {
-            return "";
-          }
-          let extIdx = suffix.length - 1;
-          let firstNonSlashEnd = -1;
-          for (i2 = path.length - 1; i2 >= 0; --i2) {
-            const code = path.charCodeAt(i2);
-            if (code === CHAR_FORWARD_SLASH) {
-              if (!matchedSlash) {
-                start = i2 + 1;
-                break;
-              }
-            } else {
-              if (firstNonSlashEnd === -1) {
-                matchedSlash = false;
-                firstNonSlashEnd = i2 + 1;
-              }
-              if (extIdx >= 0) {
-                if (code === suffix.charCodeAt(extIdx)) {
-                  if (--extIdx === -1) {
-                    end = i2;
-                  }
-                } else {
-                  extIdx = -1;
-                  end = firstNonSlashEnd;
-                }
-              }
-            }
-          }
-          if (start === end) {
-            end = firstNonSlashEnd;
-          } else if (end === -1) {
-            end = path.length;
-          }
-          return path.slice(start, end);
-        }
-        for (i2 = path.length - 1; i2 >= 0; --i2) {
-          if (path.charCodeAt(i2) === CHAR_FORWARD_SLASH) {
-            if (!matchedSlash) {
-              start = i2 + 1;
-              break;
-            }
-          } else if (end === -1) {
-            matchedSlash = false;
-            end = i2 + 1;
-          }
-        }
-        if (end === -1) {
-          return "";
-        }
-        return path.slice(start, end);
-      },
-      extname(path) {
-        validateString(path, "path");
-        let startDot = -1;
-        let startPart = 0;
-        let end = -1;
-        let matchedSlash = true;
-        let preDotState = 0;
-        for (let i2 = path.length - 1; i2 >= 0; --i2) {
-          const char = path[i2];
-          if (char === "/") {
-            if (!matchedSlash) {
-              startPart = i2 + 1;
-              break;
-            }
-            continue;
-          }
-          if (end === -1) {
-            matchedSlash = false;
-            end = i2 + 1;
-          }
-          if (char === ".") {
-            if (startDot === -1) {
-              startDot = i2;
-            } else if (preDotState !== 1) {
-              preDotState = 1;
-            }
-          } else if (startDot !== -1) {
-            preDotState = -1;
-          }
-        }
-        if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot
-        preDotState === 0 || // The (right-most) trimmed path component is exactly '..'
-        preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
-          return "";
-        }
-        return path.slice(startDot, end);
-      },
-      format: _format2.bind(null, "/"),
-      parse(path) {
-        validateString(path, "path");
-        const ret = { root: "", dir: "", base: "", ext: "", name: "" };
-        if (path.length === 0) {
-          return ret;
-        }
-        const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH;
-        let start;
-        if (isAbsolute) {
-          ret.root = "/";
-          start = 1;
-        } else {
-          start = 0;
-        }
-        let startDot = -1;
-        let startPart = 0;
-        let end = -1;
-        let matchedSlash = true;
-        let i2 = path.length - 1;
-        let preDotState = 0;
-        for (; i2 >= start; --i2) {
-          const code = path.charCodeAt(i2);
-          if (code === CHAR_FORWARD_SLASH) {
-            if (!matchedSlash) {
-              startPart = i2 + 1;
-              break;
-            }
-            continue;
-          }
-          if (end === -1) {
-            matchedSlash = false;
-            end = i2 + 1;
-          }
-          if (code === CHAR_DOT) {
-            if (startDot === -1) {
-              startDot = i2;
-            } else if (preDotState !== 1) {
-              preDotState = 1;
-            }
-          } else if (startDot !== -1) {
-            preDotState = -1;
-          }
-        }
-        if (end !== -1) {
-          const start2 = startPart === 0 && isAbsolute ? 1 : startPart;
-          if (startDot === -1 || // We saw a non-dot character immediately before the dot
-          preDotState === 0 || // The (right-most) trimmed path component is exactly '..'
-          preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
-            ret.base = ret.name = path.slice(start2, end);
-          } else {
-            ret.name = path.slice(start2, startDot);
-            ret.base = path.slice(start2, end);
-            ret.ext = path.slice(startDot, end);
-          }
-        }
-        if (startPart > 0) {
-          ret.dir = path.slice(0, startPart - 1);
-        } else if (isAbsolute) {
-          ret.dir = "/";
-        }
-        return ret;
-      },
-      sep: "/",
-      delimiter: ":",
-      win32: null,
-      posix: null
-    };
-    posix.win32 = win32.win32 = win32;
-    posix.posix = win32.posix = posix;
-    normalize = platformIsWin32 ? win32.normalize : posix.normalize;
-    resolve = platformIsWin32 ? win32.resolve : posix.resolve;
-    relative = platformIsWin32 ? win32.relative : posix.relative;
-    dirname = platformIsWin32 ? win32.dirname : posix.dirname;
-    basename = platformIsWin32 ? win32.basename : posix.basename;
-    extname = platformIsWin32 ? win32.extname : posix.extname;
-    sep = platformIsWin32 ? win32.sep : posix.sep;
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/uri.js
-function _validateUri(ret, _strict) {
-  if (!ret.scheme && _strict) {
-    throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${ret.authority}", path: "${ret.path}", query: "${ret.query}", fragment: "${ret.fragment}"}`);
-  }
-  if (ret.scheme && !_schemePattern.test(ret.scheme)) {
-    throw new Error("[UriError]: Scheme contains illegal characters.");
-  }
-  if (ret.path) {
-    if (ret.authority) {
-      if (!_singleSlashStart.test(ret.path)) {
-        throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character');
-      }
-    } else {
-      if (_doubleSlashStart.test(ret.path)) {
-        throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")');
-      }
-    }
-  }
-}
-function _schemeFix(scheme, _strict) {
-  if (!scheme && !_strict) {
-    return "file";
-  }
-  return scheme;
-}
-function _referenceResolution(scheme, path) {
-  switch (scheme) {
-    case "https":
-    case "http":
-    case "file":
-      if (!path) {
-        path = _slash;
-      } else if (path[0] !== _slash) {
-        path = _slash + path;
-      }
-      break;
-  }
-  return path;
-}
-function encodeURIComponentFast(uriComponent, isPath, isAuthority) {
-  let res = void 0;
-  let nativeEncodePos = -1;
-  for (let pos = 0; pos < uriComponent.length; pos++) {
-    const code = uriComponent.charCodeAt(pos);
-    if (code >= 97 && code <= 122 || code >= 65 && code <= 90 || code >= 48 && code <= 57 || code === 45 || code === 46 || code === 95 || code === 126 || isPath && code === 47 || isAuthority && code === 91 || isAuthority && code === 93 || isAuthority && code === 58) {
-      if (nativeEncodePos !== -1) {
-        res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));
-        nativeEncodePos = -1;
-      }
-      if (res !== void 0) {
-        res += uriComponent.charAt(pos);
-      }
-    } else {
-      if (res === void 0) {
-        res = uriComponent.substr(0, pos);
-      }
-      const escaped = encodeTable[code];
-      if (escaped !== void 0) {
-        if (nativeEncodePos !== -1) {
-          res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));
-          nativeEncodePos = -1;
-        }
-        res += escaped;
-      } else if (nativeEncodePos === -1) {
-        nativeEncodePos = pos;
-      }
-    }
-  }
-  if (nativeEncodePos !== -1) {
-    res += encodeURIComponent(uriComponent.substring(nativeEncodePos));
-  }
-  return res !== void 0 ? res : uriComponent;
-}
-function encodeURIComponentMinimal(path) {
-  let res = void 0;
-  for (let pos = 0; pos < path.length; pos++) {
-    const code = path.charCodeAt(pos);
-    if (code === 35 || code === 63) {
-      if (res === void 0) {
-        res = path.substr(0, pos);
-      }
-      res += encodeTable[code];
-    } else {
-      if (res !== void 0) {
-        res += path[pos];
-      }
-    }
-  }
-  return res !== void 0 ? res : path;
-}
-function uriToFsPath(uri, keepDriveLetterCasing) {
-  let value;
-  if (uri.authority && uri.path.length > 1 && uri.scheme === "file") {
-    value = `//${uri.authority}${uri.path}`;
-  } else if (uri.path.charCodeAt(0) === 47 && (uri.path.charCodeAt(1) >= 65 && uri.path.charCodeAt(1) <= 90 || uri.path.charCodeAt(1) >= 97 && uri.path.charCodeAt(1) <= 122) && uri.path.charCodeAt(2) === 58) {
-    if (!keepDriveLetterCasing) {
-      value = uri.path[1].toLowerCase() + uri.path.substr(2);
-    } else {
-      value = uri.path.substr(1);
-    }
-  } else {
-    value = uri.path;
-  }
-  if (isWindows) {
-    value = value.replace(/\//g, "\\");
-  }
-  return value;
-}
-function _asFormatted(uri, skipEncoding) {
-  const encoder = !skipEncoding ? encodeURIComponentFast : encodeURIComponentMinimal;
-  let res = "";
-  let { scheme, authority, path, query, fragment } = uri;
-  if (scheme) {
-    res += scheme;
-    res += ":";
-  }
-  if (authority || scheme === "file") {
-    res += _slash;
-    res += _slash;
-  }
-  if (authority) {
-    let idx = authority.indexOf("@");
-    if (idx !== -1) {
-      const userinfo = authority.substr(0, idx);
-      authority = authority.substr(idx + 1);
-      idx = userinfo.lastIndexOf(":");
-      if (idx === -1) {
-        res += encoder(userinfo, false, false);
-      } else {
-        res += encoder(userinfo.substr(0, idx), false, false);
-        res += ":";
-        res += encoder(userinfo.substr(idx + 1), false, true);
-      }
-      res += "@";
-    }
-    authority = authority.toLowerCase();
-    idx = authority.lastIndexOf(":");
-    if (idx === -1) {
-      res += encoder(authority, false, true);
-    } else {
-      res += encoder(authority.substr(0, idx), false, true);
-      res += authority.substr(idx);
-    }
-  }
-  if (path) {
-    if (path.length >= 3 && path.charCodeAt(0) === 47 && path.charCodeAt(2) === 58) {
-      const code = path.charCodeAt(1);
-      if (code >= 65 && code <= 90) {
-        path = `/${String.fromCharCode(code + 32)}:${path.substr(3)}`;
-      }
-    } else if (path.length >= 2 && path.charCodeAt(1) === 58) {
-      const code = path.charCodeAt(0);
-      if (code >= 65 && code <= 90) {
-        path = `${String.fromCharCode(code + 32)}:${path.substr(2)}`;
-      }
-    }
-    res += encoder(path, true, false);
-  }
-  if (query) {
-    res += "?";
-    res += encoder(query, false, false);
-  }
-  if (fragment) {
-    res += "#";
-    res += !skipEncoding ? encodeURIComponentFast(fragment, false, false) : fragment;
-  }
-  return res;
-}
-function decodeURIComponentGraceful(str) {
-  try {
-    return decodeURIComponent(str);
-  } catch {
-    if (str.length > 3) {
-      return str.substr(0, 3) + decodeURIComponentGraceful(str.substr(3));
-    } else {
-      return str;
-    }
-  }
-}
-function percentDecode(str) {
-  if (!str.match(_rEncodedAsHex)) {
-    return str;
-  }
-  return str.replace(_rEncodedAsHex, (match2) => decodeURIComponentGraceful(match2));
-}
-var _schemePattern, _singleSlashStart, _doubleSlashStart, _empty, _slash, _regexp, URI, _pathSepMarker, Uri, encodeTable, _rEncodedAsHex;
-var init_uri = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/uri.js"() {
-    init_path();
-    init_platform();
-    _schemePattern = /^\w[\w\d+.-]*$/;
-    _singleSlashStart = /^\//;
-    _doubleSlashStart = /^\/\//;
-    _empty = "";
-    _slash = "/";
-    _regexp = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
-    URI = class _URI {
-      static isUri(thing) {
-        if (thing instanceof _URI) {
-          return true;
-        }
-        if (!thing || typeof thing !== "object") {
-          return false;
-        }
-        return typeof thing.authority === "string" && typeof thing.fragment === "string" && typeof thing.path === "string" && typeof thing.query === "string" && typeof thing.scheme === "string" && typeof thing.fsPath === "string" && typeof thing.with === "function" && typeof thing.toString === "function";
-      }
-      /**
-       * @internal
-       */
-      constructor(schemeOrData, authority, path, query, fragment, _strict = false) {
-        if (typeof schemeOrData === "object") {
-          this.scheme = schemeOrData.scheme || _empty;
-          this.authority = schemeOrData.authority || _empty;
-          this.path = schemeOrData.path || _empty;
-          this.query = schemeOrData.query || _empty;
-          this.fragment = schemeOrData.fragment || _empty;
-        } else {
-          this.scheme = _schemeFix(schemeOrData, _strict);
-          this.authority = authority || _empty;
-          this.path = _referenceResolution(this.scheme, path || _empty);
-          this.query = query || _empty;
-          this.fragment = fragment || _empty;
-          _validateUri(this, _strict);
-        }
-      }
-      // ---- filesystem path -----------------------
-      /**
-       * Returns a string representing the corresponding file system path of this URI.
-       * Will handle UNC paths, normalizes windows drive letters to lower-case, and uses the
-       * platform specific path separator.
-       *
-       * * Will *not* validate the path for invalid characters and semantics.
-       * * Will *not* look at the scheme of this URI.
-       * * The result shall *not* be used for display purposes but for accessing a file on disk.
-       *
-       *
-       * The *difference* to `URI#path` is the use of the platform specific separator and the handling
-       * of UNC paths. See the below sample of a file-uri with an authority (UNC path).
-       *
-       * ```ts
-          const u = URI.parse('file://server/c$/folder/file.txt')
-          u.authority === 'server'
-          u.path === '/shares/c$/file.txt'
-          u.fsPath === '\\server\c$\folder\file.txt'
-      ```
-       *
-       * Using `URI#path` to read a file (using fs-apis) would not be enough because parts of the path,
-       * namely the server name, would be missing. Therefore `URI#fsPath` exists - it's sugar to ease working
-       * with URIs that represent files on disk (`file` scheme).
-       */
-      get fsPath() {
-        return uriToFsPath(this, false);
-      }
-      // ---- modify to new -------------------------
-      with(change) {
-        if (!change) {
-          return this;
-        }
-        let { scheme, authority, path, query, fragment } = change;
-        if (scheme === void 0) {
-          scheme = this.scheme;
-        } else if (scheme === null) {
-          scheme = _empty;
-        }
-        if (authority === void 0) {
-          authority = this.authority;
-        } else if (authority === null) {
-          authority = _empty;
-        }
-        if (path === void 0) {
-          path = this.path;
-        } else if (path === null) {
-          path = _empty;
-        }
-        if (query === void 0) {
-          query = this.query;
-        } else if (query === null) {
-          query = _empty;
-        }
-        if (fragment === void 0) {
-          fragment = this.fragment;
-        } else if (fragment === null) {
-          fragment = _empty;
-        }
-        if (scheme === this.scheme && authority === this.authority && path === this.path && query === this.query && fragment === this.fragment) {
-          return this;
-        }
-        return new Uri(scheme, authority, path, query, fragment);
-      }
-      // ---- parse & validate ------------------------
-      /**
-       * Creates a new URI from a string, e.g. `http://www.example.com/some/path`,
-       * `file:///usr/home`, or `scheme:with/path`.
-       *
-       * @param value A string which represents an URI (see `URI#toString`).
-       */
-      static parse(value, _strict = false) {
-        const match2 = _regexp.exec(value);
-        if (!match2) {
-          return new Uri(_empty, _empty, _empty, _empty, _empty);
-        }
-        return new Uri(match2[2] || _empty, percentDecode(match2[4] || _empty), percentDecode(match2[5] || _empty), percentDecode(match2[7] || _empty), percentDecode(match2[9] || _empty), _strict);
-      }
-      /**
-       * Creates a new URI from a file system path, e.g. `c:\my\files`,
-       * `/usr/home`, or `\\server\share\some\path`.
-       *
-       * The *difference* between `URI#parse` and `URI#file` is that the latter treats the argument
-       * as path, not as stringified-uri. E.g. `URI.file(path)` is **not the same as**
-       * `URI.parse('file://' + path)` because the path might contain characters that are
-       * interpreted (# and ?). See the following sample:
-       * ```ts
-      const good = URI.file('/coding/c#/project1');
-      good.scheme === 'file';
-      good.path === '/coding/c#/project1';
-      good.fragment === '';
-      const bad = URI.parse('file://' + '/coding/c#/project1');
-      bad.scheme === 'file';
-      bad.path === '/coding/c'; // path is now broken
-      bad.fragment === '/project1';
-      ```
-       *
-       * @param path A file system path (see `URI#fsPath`)
-       */
-      static file(path) {
-        let authority = _empty;
-        if (isWindows) {
-          path = path.replace(/\\/g, _slash);
-        }
-        if (path[0] === _slash && path[1] === _slash) {
-          const idx = path.indexOf(_slash, 2);
-          if (idx === -1) {
-            authority = path.substring(2);
-            path = _slash;
-          } else {
-            authority = path.substring(2, idx);
-            path = path.substring(idx) || _slash;
-          }
-        }
-        return new Uri("file", authority, path, _empty, _empty);
-      }
-      /**
-       * Creates new URI from uri components.
-       *
-       * Unless `strict` is `true` the scheme is defaults to be `file`. This function performs
-       * validation and should be used for untrusted uri components retrieved from storage,
-       * user input, command arguments etc
-       */
-      static from(components, strict) {
-        const result = new Uri(components.scheme, components.authority, components.path, components.query, components.fragment, strict);
-        return result;
-      }
-      /**
-       * Join a URI path with path fragments and normalizes the resulting path.
-       *
-       * @param uri The input URI.
-       * @param pathFragment The path fragment to add to the URI path.
-       * @returns The resulting URI.
-       */
-      static joinPath(uri, ...pathFragment) {
-        if (!uri.path) {
-          throw new Error(`[UriError]: cannot call joinPath on URI without path`);
-        }
-        let newPath;
-        if (isWindows && uri.scheme === "file") {
-          newPath = _URI.file(win32.join(uriToFsPath(uri, true), ...pathFragment)).path;
-        } else {
-          newPath = posix.join(uri.path, ...pathFragment);
-        }
-        return uri.with({ path: newPath });
-      }
-      // ---- printing/externalize ---------------------------
-      /**
-       * Creates a string representation for this URI. It's guaranteed that calling
-       * `URI.parse` with the result of this function creates an URI which is equal
-       * to this URI.
-       *
-       * * The result shall *not* be used for display purposes but for externalization or transport.
-       * * The result will be encoded using the percentage encoding and encoding happens mostly
-       * ignore the scheme-specific encoding rules.
-       *
-       * @param skipEncoding Do not encode the result, default is `false`
-       */
-      toString(skipEncoding = false) {
-        return _asFormatted(this, skipEncoding);
-      }
-      toJSON() {
-        return this;
-      }
-      static revive(data) {
-        if (!data) {
-          return data;
-        } else if (data instanceof _URI) {
-          return data;
-        } else {
-          const result = new Uri(data);
-          result._formatted = data.external ?? null;
-          result._fsPath = data._sep === _pathSepMarker ? data.fsPath ?? null : null;
-          return result;
-        }
-      }
-    };
-    _pathSepMarker = isWindows ? 1 : void 0;
-    Uri = class extends URI {
-      constructor() {
-        super(...arguments);
-        this._formatted = null;
-        this._fsPath = null;
-      }
-      get fsPath() {
-        if (!this._fsPath) {
-          this._fsPath = uriToFsPath(this, false);
-        }
-        return this._fsPath;
-      }
-      toString(skipEncoding = false) {
-        if (!skipEncoding) {
-          if (!this._formatted) {
-            this._formatted = _asFormatted(this, false);
-          }
-          return this._formatted;
-        } else {
-          return _asFormatted(this, true);
-        }
-      }
-      toJSON() {
-        const res = {
-          $mid: 1
-          /* MarshalledId.Uri */
-        };
-        if (this._fsPath) {
-          res.fsPath = this._fsPath;
-          res._sep = _pathSepMarker;
-        }
-        if (this._formatted) {
-          res.external = this._formatted;
-        }
-        if (this.path) {
-          res.path = this.path;
-        }
-        if (this.scheme) {
-          res.scheme = this.scheme;
-        }
-        if (this.authority) {
-          res.authority = this.authority;
-        }
-        if (this.query) {
-          res.query = this.query;
-        }
-        if (this.fragment) {
-          res.fragment = this.fragment;
-        }
-        return res;
-      }
-    };
-    encodeTable = {
-      [
-        58
-        /* CharCode.Colon */
-      ]: "%3A",
-      // gen-delims
-      [
-        47
-        /* CharCode.Slash */
-      ]: "%2F",
-      [
-        63
-        /* CharCode.QuestionMark */
-      ]: "%3F",
-      [
-        35
-        /* CharCode.Hash */
-      ]: "%23",
-      [
-        91
-        /* CharCode.OpenSquareBracket */
-      ]: "%5B",
-      [
-        93
-        /* CharCode.CloseSquareBracket */
-      ]: "%5D",
-      [
-        64
-        /* CharCode.AtSign */
-      ]: "%40",
-      [
-        33
-        /* CharCode.ExclamationMark */
-      ]: "%21",
-      // sub-delims
-      [
-        36
-        /* CharCode.DollarSign */
-      ]: "%24",
-      [
-        38
-        /* CharCode.Ampersand */
-      ]: "%26",
-      [
-        39
-        /* CharCode.SingleQuote */
-      ]: "%27",
-      [
-        40
-        /* CharCode.OpenParen */
-      ]: "%28",
-      [
-        41
-        /* CharCode.CloseParen */
-      ]: "%29",
-      [
-        42
-        /* CharCode.Asterisk */
-      ]: "%2A",
-      [
-        43
-        /* CharCode.Plus */
-      ]: "%2B",
-      [
-        44
-        /* CharCode.Comma */
-      ]: "%2C",
-      [
-        59
-        /* CharCode.Semicolon */
-      ]: "%3B",
-      [
-        61
-        /* CharCode.Equals */
-      ]: "%3D",
-      [
-        32
-        /* CharCode.Space */
-      ]: "%20"
-    };
-    _rEncodedAsHex = /(%[0-9A-Za-z][0-9A-Za-z])+/g;
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/network.js
-function matchesScheme(target, scheme) {
-  if (URI.isUri(target)) {
-    return equalsIgnoreCase(target.scheme, scheme);
-  } else {
-    return startsWithIgnoreCase(target, scheme + ":");
-  }
-}
-function matchesSomeScheme(target, ...schemes) {
-  return schemes.some((scheme) => matchesScheme(target, scheme));
-}
-var Schemas, connectionTokenQueryName, RemoteAuthoritiesImpl, RemoteAuthorities, VSCODE_AUTHORITY, FileAccessImpl, FileAccess, COI;
-var init_network = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/network.js"() {
-    init_errors();
-    init_platform();
-    init_strings();
-    init_uri();
-    init_path();
-    (function(Schemas2) {
-      Schemas2.inMemory = "inmemory";
-      Schemas2.vscode = "vscode";
-      Schemas2.internal = "private";
-      Schemas2.walkThrough = "walkThrough";
-      Schemas2.walkThroughSnippet = "walkThroughSnippet";
-      Schemas2.http = "http";
-      Schemas2.https = "https";
-      Schemas2.file = "file";
-      Schemas2.mailto = "mailto";
-      Schemas2.untitled = "untitled";
-      Schemas2.data = "data";
-      Schemas2.command = "command";
-      Schemas2.vscodeRemote = "vscode-remote";
-      Schemas2.vscodeRemoteResource = "vscode-remote-resource";
-      Schemas2.vscodeManagedRemoteResource = "vscode-managed-remote-resource";
-      Schemas2.vscodeUserData = "vscode-userdata";
-      Schemas2.vscodeCustomEditor = "vscode-custom-editor";
-      Schemas2.vscodeNotebookCell = "vscode-notebook-cell";
-      Schemas2.vscodeNotebookCellMetadata = "vscode-notebook-cell-metadata";
-      Schemas2.vscodeNotebookCellMetadataDiff = "vscode-notebook-cell-metadata-diff";
-      Schemas2.vscodeNotebookCellOutput = "vscode-notebook-cell-output";
-      Schemas2.vscodeNotebookCellOutputDiff = "vscode-notebook-cell-output-diff";
-      Schemas2.vscodeNotebookMetadata = "vscode-notebook-metadata";
-      Schemas2.vscodeInteractiveInput = "vscode-interactive-input";
-      Schemas2.vscodeSettings = "vscode-settings";
-      Schemas2.vscodeWorkspaceTrust = "vscode-workspace-trust";
-      Schemas2.vscodeTerminal = "vscode-terminal";
-      Schemas2.vscodeChatCodeBlock = "vscode-chat-code-block";
-      Schemas2.vscodeChatCodeCompareBlock = "vscode-chat-code-compare-block";
-      Schemas2.vscodeChatEditor = "vscode-chat-editor";
-      Schemas2.vscodeChatInput = "chatSessionInput";
-      Schemas2.vscodeLocalChatSession = "vscode-chat-session";
-      Schemas2.webviewPanel = "webview-panel";
-      Schemas2.vscodeWebview = "vscode-webview";
-      Schemas2.extension = "extension";
-      Schemas2.vscodeFileResource = "vscode-file";
-      Schemas2.tmp = "tmp";
-      Schemas2.vsls = "vsls";
-      Schemas2.vscodeSourceControl = "vscode-scm";
-      Schemas2.commentsInput = "comment";
-      Schemas2.codeSetting = "code-setting";
-      Schemas2.outputChannel = "output";
-      Schemas2.accessibleView = "accessible-view";
-      Schemas2.chatEditingSnapshotScheme = "chat-editing-snapshot-text-model";
-      Schemas2.chatEditingModel = "chat-editing-text-model";
-      Schemas2.copilotPr = "copilot-pr";
-    })(Schemas || (Schemas = {}));
-    connectionTokenQueryName = "tkn";
-    RemoteAuthoritiesImpl = class {
-      constructor() {
-        this._hosts = /* @__PURE__ */ Object.create(null);
-        this._ports = /* @__PURE__ */ Object.create(null);
-        this._connectionTokens = /* @__PURE__ */ Object.create(null);
-        this._preferredWebSchema = "http";
-        this._delegate = null;
-        this._serverRootPath = "/";
-      }
-      setPreferredWebSchema(schema) {
-        this._preferredWebSchema = schema;
-      }
-      get _remoteResourcesPath() {
-        return posix.join(this._serverRootPath, Schemas.vscodeRemoteResource);
-      }
-      rewrite(uri) {
-        if (this._delegate) {
-          try {
-            return this._delegate(uri);
-          } catch (err) {
-            onUnexpectedError(err);
-            return uri;
-          }
-        }
-        const authority = uri.authority;
-        let host = this._hosts[authority];
-        if (host && host.indexOf(":") !== -1 && host.indexOf("[") === -1) {
-          host = `[${host}]`;
-        }
-        const port = this._ports[authority];
-        const connectionToken = this._connectionTokens[authority];
-        let query = `path=${encodeURIComponent(uri.path)}`;
-        if (typeof connectionToken === "string") {
-          query += `&${connectionTokenQueryName}=${encodeURIComponent(connectionToken)}`;
-        }
-        return URI.from({
-          scheme: isWeb ? this._preferredWebSchema : Schemas.vscodeRemoteResource,
-          authority: `${host}:${port}`,
-          path: this._remoteResourcesPath,
-          query
-        });
-      }
-    };
-    RemoteAuthorities = new RemoteAuthoritiesImpl();
-    VSCODE_AUTHORITY = "vscode-app";
-    FileAccessImpl = class _FileAccessImpl {
-      static {
-        this.FALLBACK_AUTHORITY = VSCODE_AUTHORITY;
-      }
-      /**
-       * Returns a URI to use in contexts where the browser is responsible
-       * for loading (e.g. fetch()) or when used within the DOM.
-       *
-       * **Note:** use `dom.ts#asCSSUrl` whenever the URL is to be used in CSS context.
-       */
-      uriToBrowserUri(uri) {
-        if (uri.scheme === Schemas.vscodeRemote) {
-          return RemoteAuthorities.rewrite(uri);
-        }
-        if (
-          // ...only ever for `file` resources
-          uri.scheme === Schemas.file && // ...and we run in native environments
-          (isNative || // ...or web worker extensions on desktop
-          webWorkerOrigin === `${Schemas.vscodeFileResource}://${_FileAccessImpl.FALLBACK_AUTHORITY}`)
-        ) {
-          return uri.with({
-            scheme: Schemas.vscodeFileResource,
-            // We need to provide an authority here so that it can serve
-            // as origin for network and loading matters in chromium.
-            // If the URI is not coming with an authority already, we
-            // add our own
-            authority: uri.authority || _FileAccessImpl.FALLBACK_AUTHORITY,
-            query: null,
-            fragment: null
-          });
-        }
-        return uri;
-      }
-    };
-    FileAccess = new FileAccessImpl();
-    (function(COI2) {
-      const coiHeaders = /* @__PURE__ */ new Map([
-        ["1", { "Cross-Origin-Opener-Policy": "same-origin" }],
-        ["2", { "Cross-Origin-Embedder-Policy": "require-corp" }],
-        ["3", { "Cross-Origin-Opener-Policy": "same-origin", "Cross-Origin-Embedder-Policy": "require-corp" }]
-      ]);
-      COI2.CoopAndCoep = Object.freeze(coiHeaders.get("3"));
-      const coiSearchParamName = "vscode-coi";
-      function getHeadersFromQuery(url) {
-        let params;
-        if (typeof url === "string") {
-          params = new URL(url).searchParams;
-        } else if (url instanceof URL) {
-          params = url.searchParams;
-        } else if (URI.isUri(url)) {
-          params = new URL(url.toString(true)).searchParams;
-        }
-        const value = params?.get(coiSearchParamName);
-        if (!value) {
-          return void 0;
-        }
-        return coiHeaders.get(value);
-      }
-      COI2.getHeadersFromQuery = getHeadersFromQuery;
-      function addSearchParam(urlOrSearch, coop, coep) {
-        if (!globalThis.crossOriginIsolated) {
-          return;
-        }
-        const value = coop && coep ? "3" : coep ? "2" : "1";
-        if (urlOrSearch instanceof URLSearchParams) {
-          urlOrSearch.set(coiSearchParamName, value);
-        } else {
-          urlOrSearch[coiSearchParamName] = value;
-        }
-      }
-      COI2.addSearchParam = addSearchParam;
-    })(COI || (COI = {}));
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/buffer.js
-function readUInt16LE(source, offset) {
-  return source[offset + 0] << 0 >>> 0 | source[offset + 1] << 8 >>> 0;
-}
-function writeUInt16LE(destination, value, offset) {
-  destination[offset + 0] = value & 255;
-  value = value >>> 8;
-  destination[offset + 1] = value & 255;
-}
-function readUInt32BE(source, offset) {
-  return source[offset] * 2 ** 24 + source[offset + 1] * 2 ** 16 + source[offset + 2] * 2 ** 8 + source[offset + 3];
-}
-function writeUInt32BE(destination, value, offset) {
-  destination[offset + 3] = value;
-  value = value >>> 8;
-  destination[offset + 2] = value;
-  value = value >>> 8;
-  destination[offset + 1] = value;
-  value = value >>> 8;
-  destination[offset] = value;
-}
-function readUInt8(source, offset) {
-  return source[offset];
-}
-function writeUInt8(destination, value, offset) {
-  destination[offset] = value;
-}
-function encodeHex({ buffer }) {
-  let result = "";
-  for (let i2 = 0; i2 < buffer.length; i2++) {
-    const byte = buffer[i2];
-    result += hexChars[byte >>> 4];
-    result += hexChars[byte & 15];
-  }
-  return result;
-}
-var hasBuffer, textDecoder, VSBuffer, hexChars;
-var init_buffer = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/buffer.js"() {
-    init_lazy();
-    hasBuffer = typeof Buffer !== "undefined";
-    new Lazy(() => new Uint8Array(256));
-    VSBuffer = class _VSBuffer {
-      /**
-       * When running in a nodejs context, if `actual` is not a nodejs Buffer, the backing store for
-       * the returned `VSBuffer` instance might use a nodejs Buffer allocated from node's Buffer pool,
-       * which is not transferrable.
-       */
-      static wrap(actual) {
-        if (hasBuffer && !Buffer.isBuffer(actual)) {
-          actual = Buffer.from(actual.buffer, actual.byteOffset, actual.byteLength);
-        }
-        return new _VSBuffer(actual);
-      }
-      constructor(buffer) {
-        this.buffer = buffer;
-        this.byteLength = this.buffer.byteLength;
-      }
-      toString() {
-        if (hasBuffer) {
-          return this.buffer.toString();
-        } else {
-          if (!textDecoder) {
-            textDecoder = new TextDecoder();
-          }
-          return textDecoder.decode(this.buffer);
-        }
-      }
-    };
-    hexChars = "0123456789abcdef";
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/hash.js
-function hash(obj) {
-  return doHash(obj, 0);
-}
-function doHash(obj, hashVal) {
-  switch (typeof obj) {
-    case "object":
-      if (obj === null) {
-        return numberHash(349, hashVal);
-      } else if (Array.isArray(obj)) {
-        return arrayHash(obj, hashVal);
-      }
-      return objectHash(obj, hashVal);
-    case "string":
-      return stringHash(obj, hashVal);
-    case "boolean":
-      return booleanHash(obj, hashVal);
-    case "number":
-      return numberHash(obj, hashVal);
-    case "undefined":
-      return numberHash(937, hashVal);
-    default:
-      return numberHash(617, hashVal);
-  }
-}
-function numberHash(val, initialHashVal) {
-  return (initialHashVal << 5) - initialHashVal + val | 0;
-}
-function booleanHash(b, initialHashVal) {
-  return numberHash(b ? 433 : 863, initialHashVal);
-}
-function stringHash(s, hashVal) {
-  hashVal = numberHash(149417, hashVal);
-  for (let i2 = 0, length = s.length; i2 < length; i2++) {
-    hashVal = numberHash(s.charCodeAt(i2), hashVal);
-  }
-  return hashVal;
-}
-function arrayHash(arr, initialHashVal) {
-  initialHashVal = numberHash(104579, initialHashVal);
-  return arr.reduce((hashVal, item) => doHash(item, hashVal), initialHashVal);
-}
-function objectHash(obj, initialHashVal) {
-  initialHashVal = numberHash(181387, initialHashVal);
-  return Object.keys(obj).sort().reduce((hashVal, key) => {
-    hashVal = stringHash(key, hashVal);
-    return doHash(obj[key], hashVal);
-  }, initialHashVal);
-}
-function leftRotate(value, bits, totalBits = 32) {
-  const delta = totalBits - bits;
-  const mask = ~((1 << delta) - 1);
-  return (value << bits | (mask & value) >>> delta) >>> 0;
-}
-function toHexString(bufferOrValue, bitsize = 32) {
-  if (bufferOrValue instanceof ArrayBuffer) {
-    return encodeHex(VSBuffer.wrap(new Uint8Array(bufferOrValue)));
-  }
-  return (bufferOrValue >>> 0).toString(16).padStart(bitsize / 4, "0");
-}
-var StringSHA1;
-var init_hash = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/hash.js"() {
-    init_buffer();
-    init_strings();
-    StringSHA1 = class _StringSHA1 {
-      static {
-        this._bigBlock32 = new DataView(new ArrayBuffer(320));
-      }
-      // 80 * 4 = 320
-      constructor() {
-        this._h0 = 1732584193;
-        this._h1 = 4023233417;
-        this._h2 = 2562383102;
-        this._h3 = 271733878;
-        this._h4 = 3285377520;
-        this._buff = new Uint8Array(
-          64 + 3
-          /* to fit any utf-8 */
-        );
-        this._buffDV = new DataView(this._buff.buffer);
-        this._buffLen = 0;
-        this._totalLen = 0;
-        this._leftoverHighSurrogate = 0;
-        this._finished = false;
-      }
-      update(str) {
-        const strLen = str.length;
-        if (strLen === 0) {
-          return;
-        }
-        const buff = this._buff;
-        let buffLen = this._buffLen;
-        let leftoverHighSurrogate = this._leftoverHighSurrogate;
-        let charCode;
-        let offset;
-        if (leftoverHighSurrogate !== 0) {
-          charCode = leftoverHighSurrogate;
-          offset = -1;
-          leftoverHighSurrogate = 0;
-        } else {
-          charCode = str.charCodeAt(0);
-          offset = 0;
-        }
-        while (true) {
-          let codePoint = charCode;
-          if (isHighSurrogate(charCode)) {
-            if (offset + 1 < strLen) {
-              const nextCharCode = str.charCodeAt(offset + 1);
-              if (isLowSurrogate(nextCharCode)) {
-                offset++;
-                codePoint = computeCodePoint(charCode, nextCharCode);
-              } else {
-                codePoint = 65533;
-              }
-            } else {
-              leftoverHighSurrogate = charCode;
-              break;
-            }
-          } else if (isLowSurrogate(charCode)) {
-            codePoint = 65533;
-          }
-          buffLen = this._push(buff, buffLen, codePoint);
-          offset++;
-          if (offset < strLen) {
-            charCode = str.charCodeAt(offset);
-          } else {
-            break;
-          }
-        }
-        this._buffLen = buffLen;
-        this._leftoverHighSurrogate = leftoverHighSurrogate;
-      }
-      _push(buff, buffLen, codePoint) {
-        if (codePoint < 128) {
-          buff[buffLen++] = codePoint;
-        } else if (codePoint < 2048) {
-          buff[buffLen++] = 192 | (codePoint & 1984) >>> 6;
-          buff[buffLen++] = 128 | (codePoint & 63) >>> 0;
-        } else if (codePoint < 65536) {
-          buff[buffLen++] = 224 | (codePoint & 61440) >>> 12;
-          buff[buffLen++] = 128 | (codePoint & 4032) >>> 6;
-          buff[buffLen++] = 128 | (codePoint & 63) >>> 0;
-        } else {
-          buff[buffLen++] = 240 | (codePoint & 1835008) >>> 18;
-          buff[buffLen++] = 128 | (codePoint & 258048) >>> 12;
-          buff[buffLen++] = 128 | (codePoint & 4032) >>> 6;
-          buff[buffLen++] = 128 | (codePoint & 63) >>> 0;
-        }
-        if (buffLen >= 64) {
-          this._step();
-          buffLen -= 64;
-          this._totalLen += 64;
-          buff[0] = buff[64 + 0];
-          buff[1] = buff[64 + 1];
-          buff[2] = buff[64 + 2];
-        }
-        return buffLen;
-      }
-      digest() {
-        if (!this._finished) {
-          this._finished = true;
-          if (this._leftoverHighSurrogate) {
-            this._leftoverHighSurrogate = 0;
-            this._buffLen = this._push(
-              this._buff,
-              this._buffLen,
-              65533
-              /* SHA1Constant.UNICODE_REPLACEMENT */
-            );
-          }
-          this._totalLen += this._buffLen;
-          this._wrapUp();
-        }
-        return toHexString(this._h0) + toHexString(this._h1) + toHexString(this._h2) + toHexString(this._h3) + toHexString(this._h4);
-      }
-      _wrapUp() {
-        this._buff[this._buffLen++] = 128;
-        this._buff.subarray(this._buffLen).fill(0);
-        if (this._buffLen > 56) {
-          this._step();
-          this._buff.fill(0);
-        }
-        const ml = 8 * this._totalLen;
-        this._buffDV.setUint32(56, Math.floor(ml / 4294967296), false);
-        this._buffDV.setUint32(60, ml % 4294967296, false);
-        this._step();
-      }
-      _step() {
-        const bigBlock32 = _StringSHA1._bigBlock32;
-        const data = this._buffDV;
-        for (let j = 0; j < 64; j += 4) {
-          bigBlock32.setUint32(j, data.getUint32(j, false), false);
-        }
-        for (let j = 64; j < 320; j += 4) {
-          bigBlock32.setUint32(j, leftRotate(bigBlock32.getUint32(j - 12, false) ^ bigBlock32.getUint32(j - 32, false) ^ bigBlock32.getUint32(j - 56, false) ^ bigBlock32.getUint32(j - 64, false), 1), false);
-        }
-        let a = this._h0;
-        let b = this._h1;
-        let c = this._h2;
-        let d = this._h3;
-        let e = this._h4;
-        let f, k;
-        let temp;
-        for (let j = 0; j < 80; j++) {
-          if (j < 20) {
-            f = b & c | ~b & d;
-            k = 1518500249;
-          } else if (j < 40) {
-            f = b ^ c ^ d;
-            k = 1859775393;
-          } else if (j < 60) {
-            f = b & c | b & d | c & d;
-            k = 2400959708;
-          } else {
-            f = b ^ c ^ d;
-            k = 3395469782;
-          }
-          temp = leftRotate(a, 5) + f + e + k + bigBlock32.getUint32(j * 4, false) & 4294967295;
-          e = d;
-          d = c;
-          c = leftRotate(b, 30);
-          b = a;
-          a = temp;
-        }
-        this._h0 = this._h0 + a & 4294967295;
-        this._h1 = this._h1 + b & 4294967295;
-        this._h2 = this._h2 + c & 4294967295;
-        this._h3 = this._h3 + d & 4294967295;
-        this._h4 = this._h4 + e & 4294967295;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/arrays.js
-function tail(arr) {
-  if (arr.length === 0) {
-    throw new Error("Invalid tail call");
-  }
-  return [arr.slice(0, arr.length - 1), arr[arr.length - 1]];
-}
-function equals(one, other, itemEquals2 = (a, b) => a === b) {
-  if (one === other) {
-    return true;
-  }
-  if (!one || !other) {
-    return false;
-  }
-  if (one.length !== other.length) {
-    return false;
-  }
-  for (let i2 = 0, len = one.length; i2 < len; i2++) {
-    if (!itemEquals2(one[i2], other[i2])) {
-      return false;
-    }
-  }
-  return true;
-}
-function removeFastWithoutKeepingOrder(array2, index) {
-  const last = array2.length - 1;
-  if (index < last) {
-    array2[index] = array2[last];
-  }
-  array2.pop();
-}
-function binarySearch(array2, key, comparator) {
-  return binarySearch2(array2.length, (i2) => comparator(array2[i2], key));
-}
-function binarySearch2(length, compareToKey) {
-  let low = 0, high = length - 1;
-  while (low <= high) {
-    const mid = (low + high) / 2 | 0;
-    const comp = compareToKey(mid);
-    if (comp < 0) {
-      low = mid + 1;
-    } else if (comp > 0) {
-      high = mid - 1;
-    } else {
-      return mid;
-    }
-  }
-  return -(low + 1);
-}
-function quickSelect(nth, data, compare2) {
-  nth = nth | 0;
-  if (nth >= data.length) {
-    throw new TypeError("invalid index");
-  }
-  const pivotValue = data[Math.floor(data.length * Math.random())];
-  const lower = [];
-  const higher = [];
-  const pivots = [];
-  for (const value of data) {
-    const val = compare2(value, pivotValue);
-    if (val < 0) {
-      lower.push(value);
-    } else if (val > 0) {
-      higher.push(value);
-    } else {
-      pivots.push(value);
-    }
-  }
-  if (nth < lower.length) {
-    return quickSelect(nth, lower, compare2);
-  } else if (nth < lower.length + pivots.length) {
-    return pivots[0];
-  } else {
-    return quickSelect(nth - (lower.length + pivots.length), higher, compare2);
-  }
-}
-function groupBy(data, compare2) {
-  const result = [];
-  let currentGroup = void 0;
-  for (const element of data.slice(0).sort(compare2)) {
-    if (!currentGroup || compare2(currentGroup[0], element) !== 0) {
-      currentGroup = [element];
-      result.push(currentGroup);
-    } else {
-      currentGroup.push(element);
-    }
-  }
-  return result;
-}
-function* groupAdjacentBy(items, shouldBeGrouped) {
-  let currentGroup;
-  let last;
-  for (const item of items) {
-    if (last !== void 0 && shouldBeGrouped(last, item)) {
-      currentGroup.push(item);
-    } else {
-      if (currentGroup) {
-        yield currentGroup;
-      }
-      currentGroup = [item];
-    }
-    last = item;
-  }
-  if (currentGroup) {
-    yield currentGroup;
-  }
-}
-function forEachAdjacent(arr, f) {
-  for (let i2 = 0; i2 <= arr.length; i2++) {
-    f(i2 === 0 ? void 0 : arr[i2 - 1], i2 === arr.length ? void 0 : arr[i2]);
-  }
-}
-function forEachWithNeighbors(arr, f) {
-  for (let i2 = 0; i2 < arr.length; i2++) {
-    f(i2 === 0 ? void 0 : arr[i2 - 1], arr[i2], i2 + 1 === arr.length ? void 0 : arr[i2 + 1]);
-  }
-}
-function coalesce(array2) {
-  return array2.filter((e) => !!e);
-}
-function coalesceInPlace(array2) {
-  let to = 0;
-  for (let i2 = 0; i2 < array2.length; i2++) {
-    if (!!array2[i2]) {
-      array2[to] = array2[i2];
-      to += 1;
-    }
-  }
-  array2.length = to;
-}
-function isFalsyOrEmpty(obj) {
-  return !Array.isArray(obj) || obj.length === 0;
-}
-function isNonEmptyArray(obj) {
-  return Array.isArray(obj) && obj.length > 0;
-}
-function distinct(array2, keyFn = (value) => value) {
-  const seen = /* @__PURE__ */ new Set();
-  return array2.filter((element) => {
-    const key = keyFn(element);
-    if (seen.has(key)) {
-      return false;
-    }
-    seen.add(key);
-    return true;
-  });
-}
-function range(arg, to) {
-  let from = typeof to === "number" ? arg : 0;
-  if (typeof to === "number") {
-    from = arg;
-  } else {
-    from = 0;
-    to = arg;
-  }
-  const result = [];
-  if (from <= to) {
-    for (let i2 = from; i2 < to; i2++) {
-      result.push(i2);
-    }
-  } else {
-    for (let i2 = from; i2 > to; i2--) {
-      result.push(i2);
-    }
-  }
-  return result;
-}
-function arrayInsert(target, insertIndex, insertArr) {
-  const before = target.slice(0, insertIndex);
-  const after2 = target.slice(insertIndex);
-  return before.concat(insertArr, after2);
-}
-function pushToStart(arr, value) {
-  const index = arr.indexOf(value);
-  if (index > -1) {
-    arr.splice(index, 1);
-    arr.unshift(value);
-  }
-}
-function pushToEnd(arr, value) {
-  const index = arr.indexOf(value);
-  if (index > -1) {
-    arr.splice(index, 1);
-    arr.push(value);
-  }
-}
-function pushMany(arr, items) {
-  for (const item of items) {
-    arr.push(item);
-  }
-}
-function mapFilter(array2, fn) {
-  const result = [];
-  for (const item of array2) {
-    const mapped = fn(item);
-    if (mapped !== void 0) {
-      result.push(mapped);
-    }
-  }
-  return result;
-}
-function asArray(x) {
-  return Array.isArray(x) ? x : [x];
-}
-function insertInto(array2, start, newItems) {
-  const startIdx = getActualStartIndex(array2, start);
-  const originalLength = array2.length;
-  const newItemsLength = newItems.length;
-  array2.length = originalLength + newItemsLength;
-  for (let i2 = originalLength - 1; i2 >= startIdx; i2--) {
-    array2[i2 + newItemsLength] = array2[i2];
-  }
-  for (let i2 = 0; i2 < newItemsLength; i2++) {
-    array2[i2 + startIdx] = newItems[i2];
-  }
-}
-function splice(array2, start, deleteCount, newItems) {
-  const index = getActualStartIndex(array2, start);
-  let result = array2.splice(index, deleteCount);
-  if (result === void 0) {
-    result = [];
-  }
-  insertInto(array2, index, newItems);
-  return result;
-}
-function getActualStartIndex(array2, start) {
-  return start < 0 ? Math.max(start + array2.length, 0) : Math.min(start, array2.length);
-}
-function compareBy(selector, comparator) {
-  return (a, b) => comparator(selector(a), selector(b));
-}
-function tieBreakComparators(...comparators) {
-  return (item1, item2) => {
-    for (const comparator of comparators) {
-      const result = comparator(item1, item2);
-      if (!CompareResult.isNeitherLessOrGreaterThan(result)) {
-        return result;
-      }
-    }
-    return CompareResult.neitherLessOrGreaterThan;
-  };
-}
-function reverseOrder(comparator) {
-  return (a, b) => -comparator(a, b);
-}
-function compareUndefinedSmallest(comparator) {
-  return (a, b) => {
-    if (a === void 0) {
-      return b === void 0 ? CompareResult.neitherLessOrGreaterThan : CompareResult.lessThan;
-    } else if (b === void 0) {
-      return CompareResult.greaterThan;
-    }
-    return comparator(a, b);
-  };
-}
-function sum(array2) {
-  return array2.reduce((acc, value) => acc + value, 0);
-}
-var CompareResult, numberComparator, booleanComparator, ArrayQueue, CallbackIterable, Permutation;
-var init_arrays = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/arrays.js"() {
-    (function(CompareResult2) {
-      function isLessThan(result) {
-        return result < 0;
-      }
-      CompareResult2.isLessThan = isLessThan;
-      function isLessThanOrEqual(result) {
-        return result <= 0;
-      }
-      CompareResult2.isLessThanOrEqual = isLessThanOrEqual;
-      function isGreaterThan(result) {
-        return result > 0;
-      }
-      CompareResult2.isGreaterThan = isGreaterThan;
-      function isNeitherLessOrGreaterThan(result) {
-        return result === 0;
-      }
-      CompareResult2.isNeitherLessOrGreaterThan = isNeitherLessOrGreaterThan;
-      CompareResult2.greaterThan = 1;
-      CompareResult2.lessThan = -1;
-      CompareResult2.neitherLessOrGreaterThan = 0;
-    })(CompareResult || (CompareResult = {}));
-    numberComparator = (a, b) => a - b;
-    booleanComparator = (a, b) => numberComparator(a ? 1 : 0, b ? 1 : 0);
-    ArrayQueue = class {
-      /**
-       * Constructs a queue that is backed by the given array. Runtime is O(1).
-      */
-      constructor(items) {
-        this.firstIdx = 0;
-        this.items = items;
-        this.lastIdx = this.items.length - 1;
-      }
-      get length() {
-        return this.lastIdx - this.firstIdx + 1;
-      }
-      /**
-       * Consumes elements from the beginning of the queue as long as the predicate returns true.
-       * If no elements were consumed, `null` is returned. Has a runtime of O(result.length).
-      */
-      takeWhile(predicate) {
-        let startIdx = this.firstIdx;
-        while (startIdx < this.items.length && predicate(this.items[startIdx])) {
-          startIdx++;
-        }
-        const result = startIdx === this.firstIdx ? null : this.items.slice(this.firstIdx, startIdx);
-        this.firstIdx = startIdx;
-        return result;
-      }
-      /**
-       * Consumes elements from the end of the queue as long as the predicate returns true.
-       * If no elements were consumed, `null` is returned.
-       * The result has the same order as the underlying array!
-      */
-      takeFromEndWhile(predicate) {
-        let endIdx = this.lastIdx;
-        while (endIdx >= 0 && predicate(this.items[endIdx])) {
-          endIdx--;
-        }
-        const result = endIdx === this.lastIdx ? null : this.items.slice(endIdx + 1, this.lastIdx + 1);
-        this.lastIdx = endIdx;
-        return result;
-      }
-      peek() {
-        if (this.length === 0) {
-          return void 0;
-        }
-        return this.items[this.firstIdx];
-      }
-      dequeue() {
-        const result = this.items[this.firstIdx];
-        this.firstIdx++;
-        return result;
-      }
-      takeCount(count) {
-        const result = this.items.slice(this.firstIdx, this.firstIdx + count);
-        this.firstIdx += count;
-        return result;
-      }
-    };
-    CallbackIterable = class _CallbackIterable {
-      static {
-        this.empty = new _CallbackIterable((_callback) => {
-        });
-      }
-      constructor(iterate) {
-        this.iterate = iterate;
-      }
-      toArray() {
-        const result = [];
-        this.iterate((item) => {
-          result.push(item);
-          return true;
-        });
-        return result;
-      }
-      filter(predicate) {
-        return new _CallbackIterable((cb) => this.iterate((item) => predicate(item) ? cb(item) : true));
-      }
-      map(mapFn) {
-        return new _CallbackIterable((cb) => this.iterate((item) => cb(mapFn(item))));
-      }
-      findLast(predicate) {
-        let result;
-        this.iterate((item) => {
-          if (predicate(item)) {
-            result = item;
-          }
-          return true;
-        });
-        return result;
-      }
-      findLastMaxBy(comparator) {
-        let result;
-        let first2 = true;
-        this.iterate((item) => {
-          if (first2 || CompareResult.isGreaterThan(comparator(item, result))) {
-            first2 = false;
-            result = item;
-          }
-          return true;
-        });
-        return result;
-      }
-    };
-    Permutation = class _Permutation {
-      constructor(_indexMap) {
-        this._indexMap = _indexMap;
-      }
-      /**
-       * Returns a permutation that sorts the given array according to the given compare function.
-       */
-      static createSortPermutation(arr, compareFn) {
-        const sortIndices = Array.from(arr.keys()).sort((index1, index2) => compareFn(arr[index1], arr[index2]));
-        return new _Permutation(sortIndices);
-      }
-      /**
-       * Returns a new array with the elements of the given array re-arranged according to this permutation.
-       */
-      apply(arr) {
-        return arr.map((_, index) => arr[this._indexMap[index]]);
-      }
-      /**
-       * Returns a new permutation that undoes the re-arrangement of this permutation.
-      */
-      inverse() {
-        const inverseIndexMap = this._indexMap.slice();
-        for (let i2 = 0; i2 < this._indexMap.length; i2++) {
-          inverseIndexMap[this._indexMap[i2]] = i2;
-        }
-        return new _Permutation(inverseIndexMap);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/logging/logging.js
-function addLogger(logger) {
-  if (!globalObservableLogger) {
-    globalObservableLogger = logger;
-  } else if (globalObservableLogger instanceof ComposedLogger) {
-    globalObservableLogger.loggers.push(logger);
-  } else {
-    globalObservableLogger = new ComposedLogger([globalObservableLogger, logger]);
-  }
-}
-function getLogger() {
-  return globalObservableLogger;
-}
-var globalObservableLogger, ComposedLogger;
-var init_logging = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/logging/logging.js"() {
-    ComposedLogger = class {
-      constructor(loggers) {
-        this.loggers = loggers;
-      }
-      handleObservableCreated(observable, location) {
-        for (const logger of this.loggers) {
-          logger.handleObservableCreated(observable, location);
-        }
-      }
-      handleOnListenerCountChanged(observable, newCount) {
-        for (const logger of this.loggers) {
-          logger.handleOnListenerCountChanged(observable, newCount);
-        }
-      }
-      handleObservableUpdated(observable, info) {
-        for (const logger of this.loggers) {
-          logger.handleObservableUpdated(observable, info);
-        }
-      }
-      handleAutorunCreated(autorun2, location) {
-        for (const logger of this.loggers) {
-          logger.handleAutorunCreated(autorun2, location);
-        }
-      }
-      handleAutorunDisposed(autorun2) {
-        for (const logger of this.loggers) {
-          logger.handleAutorunDisposed(autorun2);
-        }
-      }
-      handleAutorunDependencyChanged(autorun2, observable, change) {
-        for (const logger of this.loggers) {
-          logger.handleAutorunDependencyChanged(autorun2, observable, change);
-        }
-      }
-      handleAutorunStarted(autorun2) {
-        for (const logger of this.loggers) {
-          logger.handleAutorunStarted(autorun2);
-        }
-      }
-      handleAutorunFinished(autorun2) {
-        for (const logger of this.loggers) {
-          logger.handleAutorunFinished(autorun2);
-        }
-      }
-      handleDerivedDependencyChanged(derived2, observable, change) {
-        for (const logger of this.loggers) {
-          logger.handleDerivedDependencyChanged(derived2, observable, change);
-        }
-      }
-      handleDerivedCleared(observable) {
-        for (const logger of this.loggers) {
-          logger.handleDerivedCleared(observable);
-        }
-      }
-      handleBeginTransaction(transaction2) {
-        for (const logger of this.loggers) {
-          logger.handleBeginTransaction(transaction2);
-        }
-      }
-      handleEndTransaction(transaction2) {
-        for (const logger of this.loggers) {
-          logger.handleEndTransaction(transaction2);
-        }
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/debugLocation.js
-function parseLine(stackLine) {
-  const match2 = stackLine.match(/\((.*):(\d+):(\d+)\)/);
-  if (match2) {
-    return {
-      fileName: match2[1],
-      line: parseInt(match2[2]),
-      column: parseInt(match2[3]),
-      id: stackLine
-    };
-  }
-  const match22 = stackLine.match(/at ([^\(\)]*):(\d+):(\d+)/);
-  if (match22) {
-    return {
-      fileName: match22[1],
-      line: parseInt(match22[2]),
-      column: parseInt(match22[3]),
-      id: stackLine
-    };
-  }
-  return void 0;
-}
-var DebugLocation, DebugLocationImpl;
-var init_debugLocation = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/debugLocation.js"() {
-    (function(DebugLocation2) {
-      let enabled = false;
-      function enable() {
-        enabled = true;
-      }
-      DebugLocation2.enable = enable;
-      function ofCaller() {
-        if (!enabled) {
-          return void 0;
-        }
-        const Err = Error;
-        const l = Err.stackTraceLimit;
-        Err.stackTraceLimit = 3;
-        const stack = new Error().stack;
-        Err.stackTraceLimit = l;
-        return DebugLocationImpl.fromStack(stack, 2);
-      }
-      DebugLocation2.ofCaller = ofCaller;
-    })(DebugLocation || (DebugLocation = {}));
-    DebugLocationImpl = class _DebugLocationImpl {
-      static fromStack(stack, parentIdx) {
-        const lines = stack.split("\n");
-        const location = parseLine(lines[parentIdx + 1]);
-        if (location) {
-          return new _DebugLocationImpl(location.fileName, location.line, location.column, location.id);
-        } else {
-          return void 0;
-        }
-      }
-      constructor(fileName, line, column, id) {
-        this.fileName = fileName;
-        this.line = line;
-        this.column = column;
-        this.id = id;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/equals.js
-function itemsEquals(itemEquals2 = strictEquals) {
-  return (a, b) => equals(a, b, itemEquals2);
-}
-function itemEquals() {
-  return (a, b) => a.equals(b);
-}
-function equalsIfDefined(equalsOrV1, v2, equals3) {
-  if (equals3 !== void 0) {
-    const v1 = equalsOrV1;
-    if (v1 === void 0 || v1 === null || v2 === void 0 || v2 === null) {
-      return v2 === v1;
-    }
-    return equals3(v1, v2);
-  } else {
-    const equals4 = equalsOrV1;
-    return (v1, v22) => {
-      if (v1 === void 0 || v1 === null || v22 === void 0 || v22 === null) {
-        return v22 === v1;
-      }
-      return equals4(v1, v22);
-    };
-  }
-}
-function structuralEquals(a, b) {
-  if (a === b) {
-    return true;
-  }
-  if (Array.isArray(a) && Array.isArray(b)) {
-    if (a.length !== b.length) {
-      return false;
-    }
-    for (let i2 = 0; i2 < a.length; i2++) {
-      if (!structuralEquals(a[i2], b[i2])) {
-        return false;
-      }
-    }
-    return true;
-  }
-  if (a && typeof a === "object" && b && typeof b === "object") {
-    if (Object.getPrototypeOf(a) === Object.prototype && Object.getPrototypeOf(b) === Object.prototype) {
-      const aObj = a;
-      const bObj = b;
-      const keysA = Object.keys(aObj);
-      const keysB = Object.keys(bObj);
-      const keysBSet = new Set(keysB);
-      if (keysA.length !== keysB.length) {
-        return false;
-      }
-      for (const key of keysA) {
-        if (!keysBSet.has(key)) {
-          return false;
-        }
-        if (!structuralEquals(aObj[key], bObj[key])) {
-          return false;
-        }
-      }
-      return true;
-    }
-  }
-  return false;
-}
-var strictEquals;
-var init_equals = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/equals.js"() {
-    init_arrays();
-    strictEquals = (a, b) => a === b;
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/debugName.js
-function getDebugName(target, data) {
-  const cached = cachedDebugName.get(target);
-  if (cached) {
-    return cached;
-  }
-  const dbgName = computeDebugName(target, data);
-  if (dbgName) {
-    let count = countPerName.get(dbgName) ?? 0;
-    count++;
-    countPerName.set(dbgName, count);
-    const result = count === 1 ? dbgName : `${dbgName}#${count}`;
-    cachedDebugName.set(target, result);
-    return result;
-  }
-  return void 0;
-}
-function computeDebugName(self2, data) {
-  const cached = cachedDebugName.get(self2);
-  if (cached) {
-    return cached;
-  }
-  const ownerStr = data.owner ? formatOwner(data.owner) + `.` : "";
-  let result;
-  const debugNameSource = data.debugNameSource;
-  if (debugNameSource !== void 0) {
-    if (typeof debugNameSource === "function") {
-      result = debugNameSource();
-      if (result !== void 0) {
-        return ownerStr + result;
-      }
-    } else {
-      return ownerStr + debugNameSource;
-    }
-  }
-  const referenceFn = data.referenceFn;
-  if (referenceFn !== void 0) {
-    result = getFunctionName(referenceFn);
-    if (result !== void 0) {
-      return ownerStr + result;
-    }
-  }
-  if (data.owner !== void 0) {
-    const key = findKey(data.owner, self2);
-    if (key !== void 0) {
-      return ownerStr + key;
-    }
-  }
-  return void 0;
-}
-function findKey(obj, value) {
-  for (const key in obj) {
-    if (obj[key] === value) {
-      return key;
-    }
-  }
-  return void 0;
-}
-function formatOwner(owner) {
-  const id = ownerId.get(owner);
-  if (id) {
-    return id;
-  }
-  const className2 = getClassName(owner) ?? "Object";
-  let count = countPerClassName.get(className2) ?? 0;
-  count++;
-  countPerClassName.set(className2, count);
-  const result = count === 1 ? className2 : `${className2}#${count}`;
-  ownerId.set(owner, result);
-  return result;
-}
-function getClassName(obj) {
-  const ctor = obj.constructor;
-  if (ctor) {
-    if (ctor.name === "Object") {
-      return void 0;
-    }
-    return ctor.name;
-  }
-  return void 0;
-}
-function getFunctionName(fn) {
-  const fnSrc = fn.toString();
-  const regexp = /\/\*\*\s*@description\s*([^*]*)\*\//;
-  const match2 = regexp.exec(fnSrc);
-  const result = match2 ? match2[1] : void 0;
-  return result?.trim();
-}
-var DebugNameData, countPerName, cachedDebugName, countPerClassName, ownerId;
-var init_debugName = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/debugName.js"() {
-    DebugNameData = class {
-      constructor(owner, debugNameSource, referenceFn) {
-        this.owner = owner;
-        this.debugNameSource = debugNameSource;
-        this.referenceFn = referenceFn;
-      }
-      getDebugName(target) {
-        return getDebugName(target, this);
-      }
-    };
-    countPerName = /* @__PURE__ */ new Map();
-    cachedDebugName = /* @__PURE__ */ new WeakMap();
-    countPerClassName = /* @__PURE__ */ new Map();
-    ownerId = /* @__PURE__ */ new WeakMap();
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/observables/baseObservable.js
-function _setDerivedOpts(derived2) {
-  _derived = derived2;
-}
-function _setRecomputeInitiallyAndOnChange(recomputeInitiallyAndOnChange2) {
-  _recomputeInitiallyAndOnChange = recomputeInitiallyAndOnChange2;
-}
-var _derived, _recomputeInitiallyAndOnChange, ConvenientObservable, BaseObservable;
-var init_baseObservable = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/observables/baseObservable.js"() {
-    init_debugLocation();
-    init_debugName();
-    init_logging();
-    ConvenientObservable = class {
-      get TChange() {
-        return null;
-      }
-      reportChanges() {
-        this.get();
-      }
-      /** @sealed */
-      read(reader) {
-        if (reader) {
-          return reader.readObservable(this);
-        } else {
-          return this.get();
-        }
-      }
-      map(fnOrOwner, fnOrUndefined, debugLocation = DebugLocation.ofCaller()) {
-        const owner = fnOrUndefined === void 0 ? void 0 : fnOrOwner;
-        const fn = fnOrUndefined === void 0 ? fnOrOwner : fnOrUndefined;
-        return _derived({
-          owner,
-          debugName: () => {
-            const name = getFunctionName(fn);
-            if (name !== void 0) {
-              return name;
-            }
-            const regexp = /^\s*\(?\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\s*\)?\s*=>\s*\1(?:\??)\.([a-zA-Z_$][a-zA-Z_$0-9]*)\s*$/;
-            const match2 = regexp.exec(fn.toString());
-            if (match2) {
-              return `${this.debugName}.${match2[2]}`;
-            }
-            if (!owner) {
-              return `${this.debugName} (mapped)`;
-            }
-            return void 0;
-          },
-          debugReferenceFn: fn
-        }, (reader) => fn(this.read(reader), reader), debugLocation);
-      }
-      /**
-       * @sealed
-       * Converts an observable of an observable value into a direct observable of the value.
-      */
-      flatten() {
-        return _derived({
-          owner: void 0,
-          debugName: () => `${this.debugName} (flattened)`
-        }, (reader) => this.read(reader).read(reader));
-      }
-      recomputeInitiallyAndOnChange(store, handleValue) {
-        store.add(_recomputeInitiallyAndOnChange(this, handleValue));
-        return this;
-      }
-    };
-    BaseObservable = class extends ConvenientObservable {
-      constructor(debugLocation) {
-        super();
-        this._observers = /* @__PURE__ */ new Set();
-        getLogger()?.handleObservableCreated(this, debugLocation);
-      }
-      addObserver(observer) {
-        const len = this._observers.size;
-        this._observers.add(observer);
-        if (len === 0) {
-          this.onFirstObserverAdded();
-        }
-        if (len !== this._observers.size) {
-          getLogger()?.handleOnListenerCountChanged(this, this._observers.size);
-        }
-      }
-      removeObserver(observer) {
-        const deleted = this._observers.delete(observer);
-        if (deleted && this._observers.size === 0) {
-          this.onLastObserverRemoved();
-        }
-        if (deleted) {
-          getLogger()?.handleOnListenerCountChanged(this, this._observers.size);
-        }
-      }
-      onFirstObserverAdded() {
-      }
-      onLastObserverRemoved() {
-      }
-      debugGetObservers() {
-        return this._observers;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/observables/derivedImpl.js
-function derivedStateToString(state) {
-  switch (state) {
-    case 0:
-      return "initial";
-    case 1:
-      return "dependenciesMightHaveChanged";
-    case 2:
-      return "stale";
-    case 3:
-      return "upToDate";
-    default:
-      return "";
-  }
-}
-var Derived, DerivedWithSetter;
-var init_derivedImpl = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/observables/derivedImpl.js"() {
-    init_baseObservable();
-    init_assert();
-    init_arrays();
-    init_errors();
-    init_event();
-    init_lifecycle();
-    init_logging();
-    Derived = class extends BaseObservable {
-      get debugName() {
-        return this._debugNameData.getDebugName(this) ?? "(anonymous)";
-      }
-      constructor(_debugNameData, _computeFn, _changeTracker, _handleLastObserverRemoved = void 0, _equalityComparator, debugLocation) {
-        super(debugLocation);
-        this._debugNameData = _debugNameData;
-        this._computeFn = _computeFn;
-        this._changeTracker = _changeTracker;
-        this._handleLastObserverRemoved = _handleLastObserverRemoved;
-        this._equalityComparator = _equalityComparator;
-        this._state = 0;
-        this._value = void 0;
-        this._updateCount = 0;
-        this._dependencies = /* @__PURE__ */ new Set();
-        this._dependenciesToBeRemoved = /* @__PURE__ */ new Set();
-        this._changeSummary = void 0;
-        this._isUpdating = false;
-        this._isComputing = false;
-        this._didReportChange = false;
-        this._isInBeforeUpdate = false;
-        this._isReaderValid = false;
-        this._store = void 0;
-        this._delayedStore = void 0;
-        this._removedObserverToCallEndUpdateOn = null;
-        this._changeSummary = this._changeTracker?.createChangeSummary(void 0);
-      }
-      onLastObserverRemoved() {
-        this._state = 0;
-        this._value = void 0;
-        getLogger()?.handleDerivedCleared(this);
-        for (const d of this._dependencies) {
-          d.removeObserver(this);
-        }
-        this._dependencies.clear();
-        if (this._store !== void 0) {
-          this._store.dispose();
-          this._store = void 0;
-        }
-        if (this._delayedStore !== void 0) {
-          this._delayedStore.dispose();
-          this._delayedStore = void 0;
-        }
-        this._handleLastObserverRemoved?.();
-      }
-      get() {
-        const checkEnabled = false;
-        if (this._isComputing && checkEnabled) ;
-        if (this._observers.size === 0) {
-          let result;
-          try {
-            this._isReaderValid = true;
-            let changeSummary = void 0;
-            if (this._changeTracker) {
-              changeSummary = this._changeTracker.createChangeSummary(void 0);
-              this._changeTracker.beforeUpdate?.(this, changeSummary);
-            }
-            result = this._computeFn(this, changeSummary);
-          } finally {
-            this._isReaderValid = false;
-          }
-          this.onLastObserverRemoved();
-          return result;
-        } else {
-          do {
-            if (this._state === 1) {
-              for (const d of this._dependencies) {
-                d.reportChanges();
-                if (this._state === 2) {
-                  break;
-                }
-              }
-            }
-            if (this._state === 1) {
-              this._state = 3;
-            }
-            if (this._state !== 3) {
-              this._recompute();
-            }
-          } while (this._state !== 3);
-          return this._value;
-        }
-      }
-      _recompute() {
-        let didChange = false;
-        this._isComputing = true;
-        this._didReportChange = false;
-        const emptySet = this._dependenciesToBeRemoved;
-        this._dependenciesToBeRemoved = this._dependencies;
-        this._dependencies = emptySet;
-        try {
-          const changeSummary = this._changeSummary;
-          this._isReaderValid = true;
-          if (this._changeTracker) {
-            this._isInBeforeUpdate = true;
-            this._changeTracker.beforeUpdate?.(this, changeSummary);
-            this._isInBeforeUpdate = false;
-            this._changeSummary = this._changeTracker?.createChangeSummary(changeSummary);
-          }
-          const hadValue = this._state !== 0;
-          const oldValue = this._value;
-          this._state = 3;
-          const delayedStore = this._delayedStore;
-          if (delayedStore !== void 0) {
-            this._delayedStore = void 0;
-          }
-          try {
-            if (this._store !== void 0) {
-              this._store.dispose();
-              this._store = void 0;
-            }
-            this._value = this._computeFn(this, changeSummary);
-          } finally {
-            this._isReaderValid = false;
-            for (const o of this._dependenciesToBeRemoved) {
-              o.removeObserver(this);
-            }
-            this._dependenciesToBeRemoved.clear();
-            if (delayedStore !== void 0) {
-              delayedStore.dispose();
-            }
-          }
-          didChange = this._didReportChange || hadValue && !this._equalityComparator(oldValue, this._value);
-          getLogger()?.handleObservableUpdated(this, {
-            oldValue,
-            newValue: this._value,
-            change: void 0,
-            didChange,
-            hadValue
-          });
-        } catch (e) {
-          onBugIndicatingError(e);
-        }
-        this._isComputing = false;
-        if (!this._didReportChange && didChange) {
-          for (const r of this._observers) {
-            r.handleChange(this, void 0);
-          }
-        } else {
-          this._didReportChange = false;
-        }
-      }
-      toString() {
-        return `LazyDerived<${this.debugName}>`;
-      }
-      // IObserver Implementation
-      beginUpdate(_observable) {
-        if (this._isUpdating) {
-          throw new BugIndicatingError("Cyclic deriveds are not supported yet!");
-        }
-        this._updateCount++;
-        this._isUpdating = true;
-        try {
-          const propagateBeginUpdate = this._updateCount === 1;
-          if (this._state === 3) {
-            this._state = 1;
-            if (!propagateBeginUpdate) {
-              for (const r of this._observers) {
-                r.handlePossibleChange(this);
-              }
-            }
-          }
-          if (propagateBeginUpdate) {
-            for (const r of this._observers) {
-              r.beginUpdate(this);
-            }
-          }
-        } finally {
-          this._isUpdating = false;
-        }
-      }
-      endUpdate(_observable) {
-        this._updateCount--;
-        if (this._updateCount === 0) {
-          const observers = [...this._observers];
-          for (const r of observers) {
-            r.endUpdate(this);
-          }
-          if (this._removedObserverToCallEndUpdateOn) {
-            const observers2 = [...this._removedObserverToCallEndUpdateOn];
-            this._removedObserverToCallEndUpdateOn = null;
-            for (const r of observers2) {
-              r.endUpdate(this);
-            }
-          }
-        }
-        assertFn(() => this._updateCount >= 0);
-      }
-      handlePossibleChange(observable) {
-        if (this._state === 3 && this._dependencies.has(observable) && !this._dependenciesToBeRemoved.has(observable)) {
-          this._state = 1;
-          for (const r of this._observers) {
-            r.handlePossibleChange(this);
-          }
-        }
-      }
-      handleChange(observable, change) {
-        if (this._dependencies.has(observable) && !this._dependenciesToBeRemoved.has(observable) || this._isInBeforeUpdate) {
-          getLogger()?.handleDerivedDependencyChanged(this, observable, change);
-          let shouldReact = false;
-          try {
-            shouldReact = this._changeTracker ? this._changeTracker.handleChange({
-              changedObservable: observable,
-              change,
-              // eslint-disable-next-line local/code-no-any-casts
-              didChange: (o) => o === observable
-            }, this._changeSummary) : true;
-          } catch (e) {
-            onBugIndicatingError(e);
-          }
-          const wasUpToDate = this._state === 3;
-          if (shouldReact && (this._state === 1 || wasUpToDate)) {
-            this._state = 2;
-            if (wasUpToDate) {
-              for (const r of this._observers) {
-                r.handlePossibleChange(this);
-              }
-            }
-          }
-        }
-      }
-      // IReader Implementation
-      _ensureReaderValid() {
-        if (!this._isReaderValid) {
-          throw new BugIndicatingError("The reader object cannot be used outside its compute function!");
-        }
-      }
-      readObservable(observable) {
-        this._ensureReaderValid();
-        observable.addObserver(this);
-        const value = observable.get();
-        this._dependencies.add(observable);
-        this._dependenciesToBeRemoved.delete(observable);
-        return value;
-      }
-      get store() {
-        this._ensureReaderValid();
-        if (this._store === void 0) {
-          this._store = new DisposableStore();
-        }
-        return this._store;
-      }
-      addObserver(observer) {
-        const shouldCallBeginUpdate = !this._observers.has(observer) && this._updateCount > 0;
-        super.addObserver(observer);
-        if (shouldCallBeginUpdate) {
-          if (this._removedObserverToCallEndUpdateOn && this._removedObserverToCallEndUpdateOn.has(observer)) {
-            this._removedObserverToCallEndUpdateOn.delete(observer);
-          } else {
-            observer.beginUpdate(this);
-          }
-        }
-      }
-      removeObserver(observer) {
-        if (this._observers.has(observer) && this._updateCount > 0) {
-          if (!this._removedObserverToCallEndUpdateOn) {
-            this._removedObserverToCallEndUpdateOn = /* @__PURE__ */ new Set();
-          }
-          this._removedObserverToCallEndUpdateOn.add(observer);
-        }
-        super.removeObserver(observer);
-      }
-      debugGetState() {
-        return {
-          state: this._state,
-          stateStr: derivedStateToString(this._state),
-          updateCount: this._updateCount,
-          isComputing: this._isComputing,
-          dependencies: this._dependencies,
-          value: this._value
-        };
-      }
-      debugSetValue(newValue) {
-        this._value = newValue;
-      }
-      debugRecompute() {
-        if (!this._isComputing) {
-          this._recompute();
-        } else {
-          this._state = 2;
-        }
-      }
-      setValue(newValue, tx, change) {
-        this._value = newValue;
-        const observers = this._observers;
-        tx.updateObserver(this, this);
-        for (const d of observers) {
-          d.handleChange(this, change);
-        }
-      }
-    };
-    DerivedWithSetter = class extends Derived {
-      constructor(debugNameData, computeFn, changeTracker, handleLastObserverRemoved = void 0, equalityComparator, set, debugLocation) {
-        super(debugNameData, computeFn, changeTracker, handleLastObserverRemoved, equalityComparator, debugLocation);
-        this.set = set;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/observables/derived.js
-function derived(computeFnOrOwner, computeFn, debugLocation = DebugLocation.ofCaller()) {
-  if (computeFn !== void 0) {
-    return new Derived(new DebugNameData(computeFnOrOwner, void 0, computeFn), computeFn, void 0, void 0, strictEquals, debugLocation);
-  }
-  return new Derived(
-    // eslint-disable-next-line local/code-no-any-casts
-    new DebugNameData(void 0, void 0, computeFnOrOwner),
-    // eslint-disable-next-line local/code-no-any-casts
-    computeFnOrOwner,
-    void 0,
-    void 0,
-    strictEquals,
-    debugLocation
-  );
-}
-function derivedWithSetter(owner, computeFn, setter, debugLocation = DebugLocation.ofCaller()) {
-  return new DerivedWithSetter(new DebugNameData(owner, void 0, computeFn), computeFn, void 0, void 0, strictEquals, setter, debugLocation);
-}
-function derivedOpts(options, computeFn, debugLocation = DebugLocation.ofCaller()) {
-  return new Derived(new DebugNameData(options.owner, options.debugName, options.debugReferenceFn), computeFn, void 0, options.onLastObserverRemoved, options.equalsFn ?? strictEquals, debugLocation);
-}
-function derivedHandleChanges(options, computeFn, debugLocation = DebugLocation.ofCaller()) {
-  return new Derived(new DebugNameData(options.owner, options.debugName, void 0), computeFn, options.changeTracker, void 0, options.equalityComparer ?? strictEquals, debugLocation);
-}
-function derivedDisposable(computeFnOrOwner, computeFnOrUndefined, debugLocation = DebugLocation.ofCaller()) {
-  let computeFn;
-  let owner;
-  if (computeFnOrUndefined === void 0) {
-    computeFn = computeFnOrOwner;
-    owner = void 0;
-  } else {
-    owner = computeFnOrOwner;
-    computeFn = computeFnOrUndefined;
-  }
-  let store = void 0;
-  return new Derived(new DebugNameData(owner, void 0, computeFn), (r) => {
-    if (!store) {
-      store = new DisposableStore();
-    } else {
-      store.clear();
-    }
-    const result = computeFn(r);
-    if (result) {
-      store.add(result);
-    }
-    return result;
-  }, void 0, () => {
-    if (store) {
-      store.dispose();
-      store = void 0;
-    }
-  }, strictEquals, debugLocation);
-}
-var init_derived = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/observables/derived.js"() {
-    init_equals();
-    init_event();
-    init_lifecycle();
-    init_debugLocation();
-    init_debugName();
-    init_baseObservable();
-    init_derivedImpl();
-    _setDerivedOpts(derivedOpts);
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/reactions/autorunImpl.js
-function autorunStateToString(state) {
-  switch (state) {
-    case 1:
-      return "dependenciesMightHaveChanged";
-    case 2:
-      return "stale";
-    case 3:
-      return "upToDate";
-    default:
-      return "";
-  }
-}
-var AutorunObserver;
-var init_autorunImpl = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/reactions/autorunImpl.js"() {
-    init_assert();
-    init_arrays();
-    init_errors();
-    init_event();
-    init_lifecycle();
-    init_logging();
-    AutorunObserver = class {
-      get debugName() {
-        return this._debugNameData.getDebugName(this) ?? "(anonymous)";
-      }
-      constructor(_debugNameData, _runFn, _changeTracker, debugLocation) {
-        this._debugNameData = _debugNameData;
-        this._runFn = _runFn;
-        this._changeTracker = _changeTracker;
-        this._state = 2;
-        this._updateCount = 0;
-        this._disposed = false;
-        this._dependencies = /* @__PURE__ */ new Set();
-        this._dependenciesToBeRemoved = /* @__PURE__ */ new Set();
-        this._isRunning = false;
-        this._store = void 0;
-        this._delayedStore = void 0;
-        this._changeSummary = this._changeTracker?.createChangeSummary(void 0);
-        getLogger()?.handleAutorunCreated(this, debugLocation);
-        this._run();
-      }
-      dispose() {
-        if (this._disposed) {
-          return;
-        }
-        this._disposed = true;
-        for (const o of this._dependencies) {
-          o.removeObserver(this);
-        }
-        this._dependencies.clear();
-        if (this._store !== void 0) {
-          this._store.dispose();
-        }
-        if (this._delayedStore !== void 0) {
-          this._delayedStore.dispose();
-        }
-        getLogger()?.handleAutorunDisposed(this);
-      }
-      _run() {
-        const emptySet = this._dependenciesToBeRemoved;
-        this._dependenciesToBeRemoved = this._dependencies;
-        this._dependencies = emptySet;
-        this._state = 3;
-        try {
-          if (!this._disposed) {
-            getLogger()?.handleAutorunStarted(this);
-            const changeSummary = this._changeSummary;
-            const delayedStore = this._delayedStore;
-            if (delayedStore !== void 0) {
-              this._delayedStore = void 0;
-            }
-            try {
-              this._isRunning = true;
-              if (this._changeTracker) {
-                this._changeTracker.beforeUpdate?.(this, changeSummary);
-                this._changeSummary = this._changeTracker.createChangeSummary(changeSummary);
-              }
-              if (this._store !== void 0) {
-                this._store.dispose();
-                this._store = void 0;
-              }
-              this._runFn(this, changeSummary);
-            } catch (e) {
-              onBugIndicatingError(e);
-            } finally {
-              this._isRunning = false;
-              if (delayedStore !== void 0) {
-                delayedStore.dispose();
-              }
-            }
-          }
-        } finally {
-          if (!this._disposed) {
-            getLogger()?.handleAutorunFinished(this);
-          }
-          for (const o of this._dependenciesToBeRemoved) {
-            o.removeObserver(this);
-          }
-          this._dependenciesToBeRemoved.clear();
-        }
-      }
-      toString() {
-        return `Autorun<${this.debugName}>`;
-      }
-      // IObserver implementation
-      beginUpdate(_observable) {
-        if (this._state === 3) {
-          this._state = 1;
-        }
-        this._updateCount++;
-      }
-      endUpdate(_observable) {
-        try {
-          if (this._updateCount === 1) {
-            do {
-              if (this._state === 1) {
-                this._state = 3;
-                for (const d of this._dependencies) {
-                  d.reportChanges();
-                  if (this._state === 2) {
-                    break;
-                  }
-                }
-              }
-              if (this._state !== 3) {
-                this._run();
-              }
-            } while (this._state !== 3);
-          }
-        } finally {
-          this._updateCount--;
-        }
-        assertFn(() => this._updateCount >= 0);
-      }
-      handlePossibleChange(observable) {
-        if (this._state === 3 && this._isDependency(observable)) {
-          this._state = 1;
-        }
-      }
-      handleChange(observable, change) {
-        if (this._isDependency(observable)) {
-          getLogger()?.handleAutorunDependencyChanged(this, observable, change);
-          try {
-            const shouldReact = this._changeTracker ? this._changeTracker.handleChange({
-              changedObservable: observable,
-              change,
-              // eslint-disable-next-line local/code-no-any-casts
-              didChange: (o) => o === observable
-            }, this._changeSummary) : true;
-            if (shouldReact) {
-              this._state = 2;
-            }
-          } catch (e) {
-            onBugIndicatingError(e);
-          }
-        }
-      }
-      _isDependency(observable) {
-        return this._dependencies.has(observable) && !this._dependenciesToBeRemoved.has(observable);
-      }
-      // IReader implementation
-      _ensureNoRunning() {
-        if (!this._isRunning) {
-          throw new BugIndicatingError("The reader object cannot be used outside its compute function!");
-        }
-      }
-      readObservable(observable) {
-        this._ensureNoRunning();
-        if (this._disposed) {
-          return observable.get();
-        }
-        observable.addObserver(this);
-        const value = observable.get();
-        this._dependencies.add(observable);
-        this._dependenciesToBeRemoved.delete(observable);
-        return value;
-      }
-      get store() {
-        this._ensureNoRunning();
-        if (this._disposed) {
-          throw new BugIndicatingError("Cannot access store after dispose");
-        }
-        if (this._store === void 0) {
-          this._store = new DisposableStore();
-        }
-        return this._store;
-      }
-      debugGetState() {
-        return {
-          isRunning: this._isRunning,
-          updateCount: this._updateCount,
-          dependencies: this._dependencies,
-          state: this._state,
-          stateStr: autorunStateToString(this._state)
-        };
-      }
-      debugRerun() {
-        if (!this._isRunning) {
-          this._run();
-        } else {
-          this._state = 2;
-        }
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/reactions/autorun.js
-function autorun(fn, debugLocation = DebugLocation.ofCaller()) {
-  return new AutorunObserver(new DebugNameData(void 0, void 0, fn), fn, void 0, debugLocation);
-}
-function autorunOpts(options, fn, debugLocation = DebugLocation.ofCaller()) {
-  return new AutorunObserver(new DebugNameData(options.owner, options.debugName, options.debugReferenceFn ?? fn), fn, void 0, debugLocation);
-}
-function autorunHandleChanges(options, fn, debugLocation = DebugLocation.ofCaller()) {
-  return new AutorunObserver(new DebugNameData(options.owner, options.debugName, options.debugReferenceFn ?? fn), fn, options.changeTracker, debugLocation);
-}
-function autorunWithStoreHandleChanges(options, fn) {
-  const store = new DisposableStore();
-  const disposable = autorunHandleChanges({
-    owner: options.owner,
-    debugName: options.debugName,
-    debugReferenceFn: options.debugReferenceFn ?? fn,
-    changeTracker: options.changeTracker
-  }, (reader, changeSummary) => {
-    store.clear();
-    fn(reader, changeSummary, store);
-  });
-  return toDisposable(() => {
-    disposable.dispose();
-    store.dispose();
-  });
-}
-function autorunWithStore(fn) {
-  const store = new DisposableStore();
-  const disposable = autorunOpts({
-    owner: void 0,
-    debugName: void 0,
-    debugReferenceFn: fn
-  }, (reader) => {
-    store.clear();
-    fn(reader, store);
-  });
-  return toDisposable(() => {
-    disposable.dispose();
-    store.dispose();
-  });
-}
-function autorunDelta(observable, handler) {
-  let _lastValue;
-  return autorunOpts({ debugReferenceFn: handler }, (reader) => {
-    const newValue = observable.read(reader);
-    const lastValue = _lastValue;
-    _lastValue = newValue;
-    handler({ lastValue, newValue });
-  });
-}
-var init_autorun = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/reactions/autorun.js"() {
-    init_arrays();
-    init_event();
-    init_lifecycle();
-    init_debugName();
-    init_autorunImpl();
-    init_debugLocation();
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/base.js
-function handleBugIndicatingErrorRecovery(message) {
-  const err = new Error("BugIndicatingErrorRecovery: " + message);
-  onUnexpectedError(err);
-  console.error("recovered from an error that indicates a bug", err);
-}
-var init_base = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/base.js"() {
-    init_errors();
-    init_arrays();
-    init_event();
-    init_lifecycle();
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/transaction.js
-function transaction(fn, getDebugName2) {
-  const tx = new TransactionImpl(fn, getDebugName2);
-  try {
-    fn(tx);
-  } finally {
-    tx.finish();
-  }
-}
-function globalTransaction(fn) {
-  if (_globalTransaction) {
-    fn(_globalTransaction);
-  } else {
-    const tx = new TransactionImpl(fn, void 0);
-    _globalTransaction = tx;
-    try {
-      fn(tx);
-    } finally {
-      tx.finish();
-      _globalTransaction = void 0;
-    }
-  }
-}
-async function asyncTransaction(fn, getDebugName2) {
-  const tx = new TransactionImpl(fn, getDebugName2);
-  try {
-    await fn(tx);
-  } finally {
-    tx.finish();
-  }
-}
-function subtransaction(tx, fn, getDebugName2) {
-  if (!tx) {
-    transaction(fn, getDebugName2);
-  } else {
-    fn(tx);
-  }
-}
-var _globalTransaction, TransactionImpl;
-var init_transaction = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/transaction.js"() {
-    init_base();
-    init_debugName();
-    init_logging();
-    _globalTransaction = void 0;
-    TransactionImpl = class {
-      constructor(_fn, _getDebugName) {
-        this._fn = _fn;
-        this._getDebugName = _getDebugName;
-        this._updatingObservers = [];
-        getLogger()?.handleBeginTransaction(this);
-      }
-      getDebugName() {
-        if (this._getDebugName) {
-          return this._getDebugName();
-        }
-        return getFunctionName(this._fn);
-      }
-      updateObserver(observer, observable) {
-        if (!this._updatingObservers) {
-          handleBugIndicatingErrorRecovery("Transaction already finished!");
-          transaction((tx) => {
-            tx.updateObserver(observer, observable);
-          });
-          return;
-        }
-        this._updatingObservers.push({ observer, observable });
-        observer.beginUpdate(observable);
-      }
-      finish() {
-        const updatingObservers = this._updatingObservers;
-        if (!updatingObservers) {
-          handleBugIndicatingErrorRecovery("transaction.finish() has already been called!");
-          return;
-        }
-        for (let i2 = 0; i2 < updatingObservers.length; i2++) {
-          const { observer, observable } = updatingObservers[i2];
-          observer.endUpdate(observable);
-        }
-        this._updatingObservers = null;
-        getLogger()?.handleEndTransaction(this);
-      }
-      debugGetUpdatingObservers() {
-        return this._updatingObservers;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/observables/observableFromEvent.js
-function observableFromEvent(...args) {
-  let owner;
-  let event;
-  let getValue;
-  let debugLocation;
-  if (args.length === 2) {
-    [event, getValue] = args;
-  } else {
-    [owner, event, getValue, debugLocation] = args;
-  }
-  return new FromEventObservable(new DebugNameData(owner, void 0, getValue), event, getValue, () => FromEventObservable.globalTransaction, strictEquals, debugLocation ?? DebugLocation.ofCaller());
-}
-function observableFromEventOpts(options, event, getValue, debugLocation = DebugLocation.ofCaller()) {
-  return new FromEventObservable(new DebugNameData(options.owner, options.debugName, options.debugReferenceFn ?? getValue), event, getValue, () => FromEventObservable.globalTransaction, options.equalsFn ?? strictEquals, debugLocation);
-}
-var FromEventObservable;
-var init_observableFromEvent = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/observables/observableFromEvent.js"() {
-    init_transaction();
-    init_equals();
-    init_event();
-    init_lifecycle();
-    init_debugName();
-    init_logging();
-    init_baseObservable();
-    init_debugLocation();
-    FromEventObservable = class extends BaseObservable {
-      constructor(_debugNameData, event, _getValue, _getTransaction, _equalityComparator, debugLocation) {
-        super(debugLocation);
-        this._debugNameData = _debugNameData;
-        this.event = event;
-        this._getValue = _getValue;
-        this._getTransaction = _getTransaction;
-        this._equalityComparator = _equalityComparator;
-        this._hasValue = false;
-        this.handleEvent = (args) => {
-          const newValue = this._getValue(args);
-          const oldValue = this._value;
-          const didChange = !this._hasValue || !this._equalityComparator(oldValue, newValue);
-          let didRunTransaction = false;
-          if (didChange) {
-            this._value = newValue;
-            if (this._hasValue) {
-              didRunTransaction = true;
-              subtransaction(this._getTransaction(), (tx) => {
-                getLogger()?.handleObservableUpdated(this, { oldValue, newValue, change: void 0, didChange, hadValue: this._hasValue });
-                for (const o of this._observers) {
-                  tx.updateObserver(o, this);
-                  o.handleChange(this, void 0);
-                }
-              }, () => {
-                const name = this.getDebugName();
-                return "Event fired" + (name ? `: ${name}` : "");
-              });
-            }
-            this._hasValue = true;
-          }
-          if (!didRunTransaction) {
-            getLogger()?.handleObservableUpdated(this, { oldValue, newValue, change: void 0, didChange, hadValue: this._hasValue });
-          }
-        };
-      }
-      getDebugName() {
-        return this._debugNameData.getDebugName(this);
-      }
-      get debugName() {
-        const name = this.getDebugName();
-        return "From Event" + (name ? `: ${name}` : "");
-      }
-      onFirstObserverAdded() {
-        this._subscription = this.event(this.handleEvent);
-      }
-      onLastObserverRemoved() {
-        this._subscription.dispose();
-        this._subscription = void 0;
-        this._hasValue = false;
-        this._value = void 0;
-      }
-      get() {
-        if (this._subscription) {
-          if (!this._hasValue) {
-            this.handleEvent(void 0);
-          }
-          return this._value;
-        } else {
-          const value = this._getValue(void 0);
-          return value;
-        }
-      }
-      debugSetValue(value) {
-        this._value = value;
-      }
-      debugGetState() {
-        return { value: this._value, hasValue: this._hasValue };
-      }
-    };
-    (function(observableFromEvent2) {
-      observableFromEvent2.Observer = FromEventObservable;
-      function batchEventsGlobally(tx, fn) {
-        let didSet = false;
-        if (FromEventObservable.globalTransaction === void 0) {
-          FromEventObservable.globalTransaction = tx;
-          didSet = true;
-        }
-        try {
-          fn();
-        } finally {
-          if (didSet) {
-            FromEventObservable.globalTransaction = void 0;
-          }
-        }
-      }
-      observableFromEvent2.batchEventsGlobally = batchEventsGlobally;
-    })(observableFromEvent || (observableFromEvent = {}));
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/utils/utils.js
-function debouncedObservable(observable, debounceMs) {
-  let hasValue = false;
-  let lastValue;
-  let timeout2 = void 0;
-  return observableFromEvent((cb) => {
-    const d = autorun((reader) => {
-      const value = observable.read(reader);
-      if (!hasValue) {
-        hasValue = true;
-        lastValue = value;
-      } else {
-        if (timeout2) {
-          clearTimeout(timeout2);
-        }
-        timeout2 = setTimeout(() => {
-          lastValue = value;
-          cb();
-        }, debounceMs);
-      }
-    });
-    return {
-      dispose() {
-        d.dispose();
-        hasValue = false;
-        lastValue = void 0;
-      }
-    };
-  }, () => {
-    if (hasValue) {
-      return lastValue;
-    } else {
-      return observable.get();
-    }
-  });
-}
-function recomputeInitiallyAndOnChange(observable, handleValue) {
-  const o = new KeepAliveObserver(true, handleValue);
-  observable.addObserver(o);
-  try {
-    o.beginUpdate(observable);
-  } finally {
-    o.endUpdate(observable);
-  }
-  return toDisposable(() => {
-    observable.removeObserver(o);
-  });
-}
-function derivedObservableWithCache(owner, computeFn) {
-  let lastValue = void 0;
-  const observable = derivedOpts({ owner, debugReferenceFn: computeFn }, (reader) => {
-    lastValue = computeFn(reader, lastValue);
-    return lastValue;
-  });
-  return observable;
-}
-function mapObservableArrayCached(owner, items, map, keySelector) {
-  let m = new ArrayMap(map, keySelector);
-  const self2 = derivedOpts({
-    debugReferenceFn: map,
-    owner,
-    onLastObserverRemoved: () => {
-      m.dispose();
-      m = new ArrayMap(map);
-    }
-  }, (reader) => {
-    m.setItems(items.read(reader));
-    return m.getItems();
-  });
-  return self2;
-}
-var KeepAliveObserver, ArrayMap;
-var init_utils = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/utils/utils.js"() {
-    init_autorun();
-    init_arrays();
-    init_event();
-    init_lifecycle();
-    init_derived();
-    init_observableFromEvent();
-    init_baseObservable();
-    init_debugLocation();
-    _setRecomputeInitiallyAndOnChange(recomputeInitiallyAndOnChange);
-    KeepAliveObserver = class {
-      constructor(_forceRecompute, _handleValue) {
-        this._forceRecompute = _forceRecompute;
-        this._handleValue = _handleValue;
-        this._counter = 0;
-      }
-      beginUpdate(observable) {
-        this._counter++;
-      }
-      endUpdate(observable) {
-        if (this._counter === 1 && this._forceRecompute) {
-          if (this._handleValue) {
-            this._handleValue(observable.get());
-          } else {
-            observable.reportChanges();
-          }
-        }
-        this._counter--;
-      }
-      handlePossibleChange(observable) {
-      }
-      handleChange(observable, change) {
-      }
-    };
-    ArrayMap = class {
-      constructor(_map, _keySelector) {
-        this._map = _map;
-        this._keySelector = _keySelector;
-        this._cache = /* @__PURE__ */ new Map();
-        this._items = [];
-      }
-      dispose() {
-        this._cache.forEach((entry) => entry.store.dispose());
-        this._cache.clear();
-      }
-      setItems(items) {
-        const newItems = [];
-        const itemsToRemove = new Set(this._cache.keys());
-        for (const item of items) {
-          const key = this._keySelector ? this._keySelector(item) : item;
-          let entry = this._cache.get(key);
-          if (!entry) {
-            const store = new DisposableStore();
-            const out = this._map(item, store);
-            entry = { out, store };
-            this._cache.set(key, entry);
-          } else {
-            itemsToRemove.delete(key);
-          }
-          newItems.push(entry.out);
-        }
-        for (const item of itemsToRemove) {
-          const entry = this._cache.get(item);
-          entry.store.dispose();
-          this._cache.delete(item);
-        }
-        this._items = newItems;
-      }
-      getItems() {
-        return this._items;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/logging/consoleObservableLogger.js
-function formatValue(value, availableLen) {
-  switch (typeof value) {
-    case "number":
-      return "" + value;
-    case "string":
-      if (value.length + 2 <= availableLen) {
-        return `"${value}"`;
-      }
-      return `"${value.substr(0, availableLen - 7)}"+...`;
-    case "boolean":
-      return value ? "true" : "false";
-    case "undefined":
-      return "undefined";
-    case "object":
-      if (value === null) {
-        return "null";
-      }
-      if (Array.isArray(value)) {
-        return formatArray(value, availableLen);
-      }
-      return formatObject(value, availableLen);
-    case "symbol":
-      return value.toString();
-    case "function":
-      return `[[Function${value.name ? " " + value.name : ""}]]`;
-    default:
-      return "" + value;
-  }
-}
-function formatArray(value, availableLen) {
-  let result = "[ ";
-  let first2 = true;
-  for (const val of value) {
-    if (!first2) {
-      result += ", ";
-    }
-    if (result.length - 5 > availableLen) {
-      result += "...";
-      break;
-    }
-    first2 = false;
-    result += `${formatValue(val, availableLen - result.length)}`;
-  }
-  result += " ]";
-  return result;
-}
-function formatObject(value, availableLen) {
-  if (typeof value.toString === "function" && value.toString !== Object.prototype.toString) {
-    const val = value.toString();
-    if (val.length <= availableLen) {
-      return val;
-    }
-    return val.substring(0, availableLen - 3) + "...";
-  }
-  const className2 = getClassName(value);
-  let result = className2 ? className2 + "(" : "{ ";
-  let first2 = true;
-  for (const [key, val] of Object.entries(value)) {
-    if (!first2) {
-      result += ", ";
-    }
-    if (result.length - 5 > availableLen) {
-      result += "...";
-      break;
-    }
-    first2 = false;
-    result += `${key}: ${formatValue(val, availableLen - result.length)}`;
-  }
-  result += className2 ? ")" : " }";
-  return result;
-}
-var init_consoleObservableLogger = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/logging/consoleObservableLogger.js"() {
-    init_debugName();
-    init_debugLocation();
-    init_arrays();
-    init_event();
-    init_lifecycle();
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/logging/debugger/rpc.js
-var SimpleTypedRpcConnection;
-var init_rpc = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/logging/debugger/rpc.js"() {
-    SimpleTypedRpcConnection = class _SimpleTypedRpcConnection {
-      static createClient(channelFactory, getHandler) {
-        return new _SimpleTypedRpcConnection(channelFactory, getHandler);
-      }
-      constructor(_channelFactory, _getHandler) {
-        this._channelFactory = _channelFactory;
-        this._getHandler = _getHandler;
-        this._channel = this._channelFactory({
-          handleNotification: (notificationData) => {
-            const m = notificationData;
-            const fn = this._getHandler().notifications[m[0]];
-            if (!fn) {
-              throw new Error(`Unknown notification "${m[0]}"!`);
-            }
-            fn(...m[1]);
-          },
-          handleRequest: (requestData) => {
-            const m = requestData;
-            try {
-              const result = this._getHandler().requests[m[0]](...m[1]);
-              return { type: "result", value: result };
-            } catch (e) {
-              return { type: "error", value: e };
-            }
-          }
-        });
-        const requests = new Proxy({}, {
-          get: (target, key) => {
-            return async (...args) => {
-              const result = await this._channel.sendRequest([key, args]);
-              if (result.type === "error") {
-                throw result.value;
-              } else {
-                return result.value;
-              }
-            };
-          }
-        });
-        const notifications = new Proxy({}, {
-          get: (target, key) => {
-            return (...args) => {
-              this._channel.sendNotification([key, args]);
-            };
-          }
-        });
-        this.api = { notifications, requests };
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/logging/debugger/debuggerRpc.js
-function registerDebugChannel(channelId, createClient) {
-  const g = globalThis;
-  let queuedNotifications = [];
-  let curHost = void 0;
-  const { channel, handler } = createChannelFactoryFromDebugChannel({
-    sendNotification: (data) => {
-      if (curHost) {
-        curHost.sendNotification(data);
-      } else {
-        queuedNotifications.push(data);
-      }
-    }
-  });
-  let curClient = void 0;
-  (g.$$debugValueEditor_debugChannels ?? (g.$$debugValueEditor_debugChannels = {}))[channelId] = (host) => {
-    curClient = createClient();
-    curHost = host;
-    for (const n2 of queuedNotifications) {
-      host.sendNotification(n2);
-    }
-    queuedNotifications = [];
-    return handler;
-  };
-  return SimpleTypedRpcConnection.createClient(channel, () => {
-    if (!curClient) {
-      throw new Error("Not supported");
-    }
-    return curClient;
-  });
-}
-function createChannelFactoryFromDebugChannel(host) {
-  let h2;
-  const channel = (handler) => {
-    h2 = handler;
-    return {
-      sendNotification: (data) => {
-        host.sendNotification(data);
-      },
-      sendRequest: (data) => {
-        throw new Error("not supported");
-      }
-    };
-  };
-  return {
-    channel,
-    handler: {
-      handleRequest: (data) => {
-        if (data.type === "notification") {
-          return h2?.handleNotification(data.data);
-        } else {
-          return h2?.handleRequest(data.data);
-        }
-      }
-    }
-  };
-}
-var init_debuggerRpc = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/logging/debugger/debuggerRpc.js"() {
-    init_rpc();
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/logging/debugger/utils.js
-function deepAssign(target, source) {
-  for (const key in source) {
-    if (!!target[key] && typeof target[key] === "object" && !!source[key] && typeof source[key] === "object") {
-      deepAssign(target[key], source[key]);
-    } else {
-      target[key] = source[key];
-    }
-  }
-}
-function deepAssignDeleteNulls(target, source) {
-  for (const key in source) {
-    if (source[key] === null) {
-      delete target[key];
-    } else if (!!target[key] && typeof target[key] === "object" && !!source[key] && typeof source[key] === "object") {
-      deepAssignDeleteNulls(target[key], source[key]);
-    } else {
-      target[key] = source[key];
-    }
-  }
-}
-var Throttler2;
-var init_utils2 = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/logging/debugger/utils.js"() {
-    Throttler2 = class {
-      constructor() {
-        this._timeout = void 0;
-      }
-      throttle(fn, timeoutMs) {
-        if (this._timeout === void 0) {
-          this._timeout = setTimeout(() => {
-            this._timeout = void 0;
-            fn();
-          }, timeoutMs);
-        }
-      }
-      dispose() {
-        if (this._timeout !== void 0) {
-          clearTimeout(this._timeout);
-        }
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/observables/observableValue.js
-function observableValue(nameOrOwner, initialValue, debugLocation = DebugLocation.ofCaller()) {
-  let debugNameData;
-  if (typeof nameOrOwner === "string") {
-    debugNameData = new DebugNameData(void 0, nameOrOwner, void 0);
-  } else {
-    debugNameData = new DebugNameData(nameOrOwner, void 0, void 0);
-  }
-  return new ObservableValue(debugNameData, initialValue, strictEquals, debugLocation);
-}
-function disposableObservableValue(nameOrOwner, initialValue, debugLocation = DebugLocation.ofCaller()) {
-  let debugNameData;
-  if (typeof nameOrOwner === "string") {
-    debugNameData = new DebugNameData(void 0, nameOrOwner, void 0);
-  } else {
-    debugNameData = new DebugNameData(nameOrOwner, void 0, void 0);
-  }
-  return new DisposableObservableValue(debugNameData, initialValue, strictEquals, debugLocation);
-}
-var ObservableValue, DisposableObservableValue;
-var init_observableValue = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/observables/observableValue.js"() {
-    init_transaction();
-    init_baseObservable();
-    init_equals();
-    init_event();
-    init_lifecycle();
-    init_debugName();
-    init_logging();
-    init_debugLocation();
-    ObservableValue = class extends BaseObservable {
-      get debugName() {
-        return this._debugNameData.getDebugName(this) ?? "ObservableValue";
-      }
-      constructor(_debugNameData, initialValue, _equalityComparator, debugLocation) {
-        super(debugLocation);
-        this._debugNameData = _debugNameData;
-        this._equalityComparator = _equalityComparator;
-        this._value = initialValue;
-        getLogger()?.handleObservableUpdated(this, { hadValue: false, newValue: initialValue, change: void 0, didChange: true, oldValue: void 0 });
-      }
-      get() {
-        return this._value;
-      }
-      set(value, tx, change) {
-        if (change === void 0 && this._equalityComparator(this._value, value)) {
-          return;
-        }
-        let _tx;
-        if (!tx) {
-          tx = _tx = new TransactionImpl(() => {
-          }, () => `Setting ${this.debugName}`);
-        }
-        try {
-          const oldValue = this._value;
-          this._setValue(value);
-          getLogger()?.handleObservableUpdated(this, { oldValue, newValue: value, change, didChange: true, hadValue: true });
-          for (const observer of this._observers) {
-            tx.updateObserver(observer, this);
-            observer.handleChange(this, change);
-          }
-        } finally {
-          if (_tx) {
-            _tx.finish();
-          }
-        }
-      }
-      toString() {
-        return `${this.debugName}: ${this._value}`;
-      }
-      _setValue(newValue) {
-        this._value = newValue;
-      }
-      debugGetState() {
-        return {
-          value: this._value
-        };
-      }
-      debugSetValue(value) {
-        this._value = value;
-      }
-    };
-    DisposableObservableValue = class extends ObservableValue {
-      _setValue(newValue) {
-        if (this._value === newValue) {
-          return;
-        }
-        if (this._value) {
-          this._value.dispose();
-        }
-        this._value = newValue;
-      }
-      dispose() {
-        this._value?.dispose();
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/logging/debugger/devToolsLogger.js
-var DevToolsLogger;
-var init_devToolsLogger = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/logging/debugger/devToolsLogger.js"() {
-    init_autorunImpl();
-    init_consoleObservableLogger();
-    init_debuggerRpc();
-    init_utils2();
-    init_types();
-    init_observableFromEvent();
-    init_errors();
-    init_derivedImpl();
-    init_observableValue();
-    init_debugLocation();
-    DevToolsLogger = class _DevToolsLogger {
-      static {
-        this._instance = void 0;
-      }
-      static getInstance() {
-        if (_DevToolsLogger._instance === void 0) {
-          _DevToolsLogger._instance = new _DevToolsLogger();
-        }
-        return _DevToolsLogger._instance;
-      }
-      getTransactionState() {
-        const affected = [];
-        const txs = [...this._activeTransactions];
-        if (txs.length === 0) {
-          return void 0;
-        }
-        const observerQueue = txs.flatMap((t) => t.debugGetUpdatingObservers() ?? []).map((o) => o.observer);
-        const processedObservers = /* @__PURE__ */ new Set();
-        while (observerQueue.length > 0) {
-          const observer = observerQueue.shift();
-          if (processedObservers.has(observer)) {
-            continue;
-          }
-          processedObservers.add(observer);
-          const state = this._getInfo(observer, (d) => {
-            if (!processedObservers.has(d)) {
-              observerQueue.push(d);
-            }
-          });
-          if (state) {
-            affected.push(state);
-          }
-        }
-        return { names: txs.map((t) => t.getDebugName() ?? "tx"), affected };
-      }
-      _getObservableInfo(observable) {
-        const info = this._instanceInfos.get(observable);
-        if (!info) {
-          onUnexpectedError(new BugIndicatingError("No info found"));
-          return void 0;
-        }
-        return info;
-      }
-      _getAutorunInfo(autorun2) {
-        const info = this._instanceInfos.get(autorun2);
-        if (!info) {
-          onUnexpectedError(new BugIndicatingError("No info found"));
-          return void 0;
-        }
-        return info;
-      }
-      _getInfo(observer, queue) {
-        if (observer instanceof Derived) {
-          const observersToUpdate = [...observer.debugGetObservers()];
-          for (const o of observersToUpdate) {
-            queue(o);
-          }
-          const info = this._getObservableInfo(observer);
-          if (!info) {
-            return;
-          }
-          const observerState = observer.debugGetState();
-          const base = { name: observer.debugName, instanceId: info.instanceId, updateCount: observerState.updateCount };
-          const changedDependencies = [...info.changedObservables].map((o) => this._instanceInfos.get(o)?.instanceId).filter(isDefined);
-          if (observerState.isComputing) {
-            return { ...base, type: "observable/derived", state: "updating", changedDependencies, initialComputation: false };
-          }
-          switch (observerState.state) {
-            case 0:
-              return { ...base, type: "observable/derived", state: "noValue" };
-            case 3:
-              return { ...base, type: "observable/derived", state: "upToDate" };
-            case 2:
-              return { ...base, type: "observable/derived", state: "stale", changedDependencies };
-            case 1:
-              return { ...base, type: "observable/derived", state: "possiblyStale" };
-          }
-        } else if (observer instanceof AutorunObserver) {
-          const info = this._getAutorunInfo(observer);
-          if (!info) {
-            return void 0;
-          }
-          const base = { name: observer.debugName, instanceId: info.instanceId, updateCount: info.updateCount };
-          const changedDependencies = [...info.changedObservables].map((o) => this._instanceInfos.get(o).instanceId);
-          if (observer.debugGetState().isRunning) {
-            return { ...base, type: "autorun", state: "updating", changedDependencies };
-          }
-          switch (observer.debugGetState().state) {
-            case 3:
-              return { ...base, type: "autorun", state: "upToDate" };
-            case 2:
-              return { ...base, type: "autorun", state: "stale", changedDependencies };
-            case 1:
-              return { ...base, type: "autorun", state: "possiblyStale" };
-          }
-        }
-        return void 0;
-      }
-      _formatObservable(obs) {
-        const info = this._getObservableInfo(obs);
-        if (!info) {
-          return void 0;
-        }
-        return { name: obs.debugName, instanceId: info.instanceId };
-      }
-      _formatObserver(obs) {
-        if (obs instanceof Derived) {
-          return { name: obs.toString(), instanceId: this._getObservableInfo(obs)?.instanceId };
-        }
-        const autorunInfo = this._getAutorunInfo(obs);
-        if (autorunInfo) {
-          return { name: obs.toString(), instanceId: autorunInfo.instanceId };
-        }
-        return void 0;
-      }
-      constructor() {
-        this._declarationId = 0;
-        this._instanceId = 0;
-        this._declarations = /* @__PURE__ */ new Map();
-        this._instanceInfos = /* @__PURE__ */ new WeakMap();
-        this._aliveInstances = /* @__PURE__ */ new Map();
-        this._activeTransactions = /* @__PURE__ */ new Set();
-        this._channel = registerDebugChannel("observableDevTools", () => {
-          return {
-            notifications: {
-              setDeclarationIdFilter: (declarationIds) => {
-              },
-              logObservableValue: (observableId) => {
-                console.log("logObservableValue", observableId);
-              },
-              flushUpdates: () => {
-                this._flushUpdates();
-              },
-              resetUpdates: () => {
-                this._pendingChanges = null;
-                this._channel.api.notifications.handleChange(this._fullState, true);
-              }
-            },
-            requests: {
-              getDeclarations: () => {
-                const result = {};
-                for (const decl of this._declarations.values()) {
-                  result[decl.id] = decl;
-                }
-                return { decls: result };
-              },
-              getSummarizedInstances: () => {
-                return null;
-              },
-              getObservableValueInfo: (instanceId) => {
-                const obs = this._aliveInstances.get(instanceId);
-                return {
-                  observers: [...obs.debugGetObservers()].map((d) => this._formatObserver(d)).filter(isDefined)
-                };
-              },
-              getDerivedInfo: (instanceId) => {
-                const d = this._aliveInstances.get(instanceId);
-                return {
-                  dependencies: [...d.debugGetState().dependencies].map((d2) => this._formatObservable(d2)).filter(isDefined),
-                  observers: [...d.debugGetObservers()].map((d2) => this._formatObserver(d2)).filter(isDefined)
-                };
-              },
-              getAutorunInfo: (instanceId) => {
-                const obs = this._aliveInstances.get(instanceId);
-                return {
-                  dependencies: [...obs.debugGetState().dependencies].map((d) => this._formatObservable(d)).filter(isDefined)
-                };
-              },
-              getTransactionState: () => {
-                return this.getTransactionState();
-              },
-              setValue: (instanceId, jsonValue) => {
-                const obs = this._aliveInstances.get(instanceId);
-                if (obs instanceof Derived) {
-                  obs.debugSetValue(jsonValue);
-                } else if (obs instanceof ObservableValue) {
-                  obs.debugSetValue(jsonValue);
-                } else if (obs instanceof FromEventObservable) {
-                  obs.debugSetValue(jsonValue);
-                } else {
-                  throw new BugIndicatingError("Observable is not supported");
-                }
-                const observers = [...obs.debugGetObservers()];
-                for (const d of observers) {
-                  d.beginUpdate(obs);
-                }
-                for (const d of observers) {
-                  d.handleChange(obs, void 0);
-                }
-                for (const d of observers) {
-                  d.endUpdate(obs);
-                }
-              },
-              getValue: (instanceId) => {
-                const obs = this._aliveInstances.get(instanceId);
-                if (obs instanceof Derived) {
-                  return formatValue(obs.debugGetState().value, 200);
-                } else if (obs instanceof ObservableValue) {
-                  return formatValue(obs.debugGetState().value, 200);
-                }
-                return void 0;
-              },
-              logValue: (instanceId) => {
-                const obs = this._aliveInstances.get(instanceId);
-                if (obs && "get" in obs) {
-                  console.log("Logged Value:", obs.get());
-                } else {
-                  throw new BugIndicatingError("Observable is not supported");
-                }
-              },
-              rerun: (instanceId) => {
-                const obs = this._aliveInstances.get(instanceId);
-                if (obs instanceof Derived) {
-                  obs.debugRecompute();
-                } else if (obs instanceof AutorunObserver) {
-                  obs.debugRerun();
-                } else {
-                  throw new BugIndicatingError("Observable is not supported");
-                }
-              }
-            }
-          };
-        });
-        this._pendingChanges = null;
-        this._changeThrottler = new Throttler2();
-        this._fullState = {};
-        this._flushUpdates = () => {
-          if (this._pendingChanges !== null) {
-            this._channel.api.notifications.handleChange(this._pendingChanges, false);
-            this._pendingChanges = null;
-          }
-        };
-        DebugLocation.enable();
-      }
-      _handleChange(update) {
-        deepAssignDeleteNulls(this._fullState, update);
-        if (this._pendingChanges === null) {
-          this._pendingChanges = update;
-        } else {
-          deepAssign(this._pendingChanges, update);
-        }
-        this._changeThrottler.throttle(this._flushUpdates, 10);
-      }
-      _getDeclarationId(type, location) {
-        if (!location) {
-          return -1;
-        }
-        let decInfo = this._declarations.get(location.id);
-        if (decInfo === void 0) {
-          decInfo = {
-            id: this._declarationId++,
-            type,
-            url: location.fileName,
-            line: location.line,
-            column: location.column
-          };
-          this._declarations.set(location.id, decInfo);
-          this._handleChange({ decls: { [decInfo.id]: decInfo } });
-        }
-        return decInfo.id;
-      }
-      handleObservableCreated(observable, location) {
-        const declarationId = this._getDeclarationId("observable/value", location);
-        const info = {
-          declarationId,
-          instanceId: this._instanceId++,
-          listenerCount: 0,
-          lastValue: void 0,
-          updateCount: 0,
-          changedObservables: /* @__PURE__ */ new Set()
-        };
-        this._instanceInfos.set(observable, info);
-      }
-      handleOnListenerCountChanged(observable, newCount) {
-        const info = this._getObservableInfo(observable);
-        if (!info) {
-          return;
-        }
-        if (info.listenerCount === 0 && newCount > 0) {
-          const type = observable instanceof Derived ? "observable/derived" : "observable/value";
-          this._aliveInstances.set(info.instanceId, observable);
-          this._handleChange({
-            instances: {
-              [info.instanceId]: {
-                instanceId: info.instanceId,
-                declarationId: info.declarationId,
-                formattedValue: info.lastValue,
-                type,
-                name: observable.debugName
-              }
-            }
-          });
-        } else if (info.listenerCount > 0 && newCount === 0) {
-          this._handleChange({
-            instances: { [info.instanceId]: null }
-          });
-          this._aliveInstances.delete(info.instanceId);
-        }
-        info.listenerCount = newCount;
-      }
-      handleObservableUpdated(observable, changeInfo) {
-        if (observable instanceof Derived) {
-          this._handleDerivedRecomputed(observable, changeInfo);
-          return;
-        }
-        const info = this._getObservableInfo(observable);
-        if (info) {
-          if (changeInfo.didChange) {
-            info.lastValue = formatValue(changeInfo.newValue, 30);
-            if (info.listenerCount > 0) {
-              this._handleChange({
-                instances: { [info.instanceId]: { formattedValue: info.lastValue } }
-              });
-            }
-          }
-        }
-      }
-      handleAutorunCreated(autorun2, location) {
-        const declarationId = this._getDeclarationId("autorun", location);
-        const info = {
-          declarationId,
-          instanceId: this._instanceId++,
-          updateCount: 0,
-          changedObservables: /* @__PURE__ */ new Set()
-        };
-        this._instanceInfos.set(autorun2, info);
-        this._aliveInstances.set(info.instanceId, autorun2);
-        if (info) {
-          this._handleChange({
-            instances: {
-              [info.instanceId]: {
-                instanceId: info.instanceId,
-                declarationId: info.declarationId,
-                runCount: 0,
-                type: "autorun",
-                name: autorun2.debugName
-              }
-            }
-          });
-        }
-      }
-      handleAutorunDisposed(autorun2) {
-        const info = this._getAutorunInfo(autorun2);
-        if (!info) {
-          return;
-        }
-        this._handleChange({
-          instances: { [info.instanceId]: null }
-        });
-        this._instanceInfos.delete(autorun2);
-        this._aliveInstances.delete(info.instanceId);
-      }
-      handleAutorunDependencyChanged(autorun2, observable, change) {
-        const info = this._getAutorunInfo(autorun2);
-        if (!info) {
-          return;
-        }
-        info.changedObservables.add(observable);
-      }
-      handleAutorunStarted(autorun2) {
-      }
-      handleAutorunFinished(autorun2) {
-        const info = this._getAutorunInfo(autorun2);
-        if (!info) {
-          return;
-        }
-        info.changedObservables.clear();
-        info.updateCount++;
-        this._handleChange({
-          instances: { [info.instanceId]: { runCount: info.updateCount } }
-        });
-      }
-      handleDerivedDependencyChanged(derived2, observable, change) {
-        const info = this._getObservableInfo(derived2);
-        if (info) {
-          info.changedObservables.add(observable);
-        }
-      }
-      _handleDerivedRecomputed(observable, changeInfo) {
-        const info = this._getObservableInfo(observable);
-        if (!info) {
-          return;
-        }
-        const formattedValue = formatValue(changeInfo.newValue, 30);
-        info.updateCount++;
-        info.changedObservables.clear();
-        info.lastValue = formattedValue;
-        if (info.listenerCount > 0) {
-          this._handleChange({
-            instances: { [info.instanceId]: { formattedValue, recomputationCount: info.updateCount } }
-          });
-        }
-      }
-      handleDerivedCleared(observable) {
-        const info = this._getObservableInfo(observable);
-        if (!info) {
-          return;
-        }
-        info.lastValue = void 0;
-        info.changedObservables.clear();
-        if (info.listenerCount > 0) {
-          this._handleChange({
-            instances: {
-              [info.instanceId]: {
-                formattedValue: void 0
-              }
-            }
-          });
-        }
-      }
-      handleBeginTransaction(transaction2) {
-        this._activeTransactions.add(transaction2);
-      }
-      handleEndTransaction(transaction2) {
-        this._activeTransactions.delete(transaction2);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/observableInternal/index.js
-var init_observableInternal = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/observableInternal/index.js"() {
-    init_arrays();
-    init_event();
-    init_lifecycle();
-    init_logging();
-    init_debugLocation();
-    init_derived();
-    init_cancellation();
-    init_utils();
-    init_observableFromEvent();
-    init_devToolsLogger();
-    init_process();
-    if (env && env["VSCODE_DEV_DEBUG_OBSERVABLES"]) {
-      addLogger(DevToolsLogger.getInstance());
-    }
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/browser/dom.js
-function clearNode(node) {
-  while (node.firstChild) {
-    node.firstChild.remove();
-  }
-}
-function addDisposableListener(node, type, handler, useCaptureOrOptions) {
-  return new DomListener(node, type, handler, useCaptureOrOptions);
-}
-function _wrapAsStandardMouseEvent(targetWindow, handler) {
-  return function(e) {
-    return handler(new StandardMouseEvent(targetWindow, e));
-  };
-}
-function _wrapAsStandardKeyboardEvent(handler) {
-  return function(e) {
-    return handler(new StandardKeyboardEvent(e));
-  };
-}
-function addDisposableGenericMouseDownListener(node, handler, useCapture) {
-  return addDisposableListener(node, isIOS && BrowserFeatures.pointerEvents ? EventType.POINTER_DOWN : EventType.MOUSE_DOWN, handler, useCapture);
-}
-function addDisposableGenericMouseMoveListener(node, handler, useCapture) {
-  return addDisposableListener(node, isIOS && BrowserFeatures.pointerEvents ? EventType.POINTER_MOVE : EventType.MOUSE_MOVE, handler, useCapture);
-}
-function addDisposableGenericMouseUpListener(node, handler, useCapture) {
-  return addDisposableListener(node, isIOS && BrowserFeatures.pointerEvents ? EventType.POINTER_UP : EventType.MOUSE_UP, handler, useCapture);
-}
-function runWhenWindowIdle(targetWindow, callback, timeout2) {
-  return _runWhenIdle(targetWindow, callback, timeout2);
-}
-function getComputedStyle(el) {
-  return getWindow(el).getComputedStyle(el, null);
-}
-function getClientArea(element, defaultValue, fallbackElement) {
-  const elWindow = getWindow(element);
-  const elDocument = elWindow.document;
-  if (element !== elDocument.body) {
-    return new Dimension(element.clientWidth, element.clientHeight);
-  }
-  if (isIOS && elWindow?.visualViewport) {
-    return new Dimension(elWindow.visualViewport.width, elWindow.visualViewport.height);
-  }
-  if (elWindow?.innerWidth && elWindow.innerHeight) {
-    return new Dimension(elWindow.innerWidth, elWindow.innerHeight);
-  }
-  if (elDocument.body && elDocument.body.clientWidth && elDocument.body.clientHeight) {
-    return new Dimension(elDocument.body.clientWidth, elDocument.body.clientHeight);
-  }
-  if (elDocument.documentElement && elDocument.documentElement.clientWidth && elDocument.documentElement.clientHeight) {
-    return new Dimension(elDocument.documentElement.clientWidth, elDocument.documentElement.clientHeight);
-  }
-  throw new Error("Unable to figure out browser width and height");
-}
-function getTopLeftOffset(element) {
-  let offsetParent = element.offsetParent;
-  let top = element.offsetTop;
-  let left = element.offsetLeft;
-  while ((element = element.parentNode) !== null && element !== element.ownerDocument.body && element !== element.ownerDocument.documentElement) {
-    top -= element.scrollTop;
-    const c = isShadowRoot(element) ? null : getComputedStyle(element);
-    if (c) {
-      left -= c.direction !== "rtl" ? element.scrollLeft : -element.scrollLeft;
-    }
-    if (element === offsetParent) {
-      left += SizeUtils.getBorderLeftWidth(element);
-      top += SizeUtils.getBorderTopWidth(element);
-      top += element.offsetTop;
-      left += element.offsetLeft;
-      offsetParent = element.offsetParent;
-    }
-  }
-  return {
-    left,
-    top
-  };
-}
-function size(element, width2, height) {
-  if (typeof width2 === "number") {
-    element.style.width = `${width2}px`;
-  }
-  if (typeof height === "number") {
-    element.style.height = `${height}px`;
-  }
-}
-function getDomNodePagePosition(domNode) {
-  const bb = domNode.getBoundingClientRect();
-  const window2 = getWindow(domNode);
-  return {
-    left: bb.left + window2.scrollX,
-    top: bb.top + window2.scrollY,
-    width: bb.width,
-    height: bb.height
-  };
-}
-function getDomNodeZoomLevel(domNode) {
-  let testElement = domNode;
-  let zoom = 1;
-  do {
-    const elementZoomLevel = getComputedStyle(testElement).zoom;
-    if (elementZoomLevel !== null && elementZoomLevel !== void 0 && elementZoomLevel !== "1") {
-      zoom *= elementZoomLevel;
-    }
-    testElement = testElement.parentElement;
-  } while (testElement !== null && testElement !== testElement.ownerDocument.documentElement);
-  return zoom;
-}
-function getTotalWidth(element) {
-  const margin = SizeUtils.getMarginLeft(element) + SizeUtils.getMarginRight(element);
-  return element.offsetWidth + margin;
-}
-function getContentWidth(element) {
-  const border = SizeUtils.getBorderLeftWidth(element) + SizeUtils.getBorderRightWidth(element);
-  const padding = SizeUtils.getPaddingLeft(element) + SizeUtils.getPaddingRight(element);
-  return element.offsetWidth - border - padding;
-}
-function getContentHeight(element) {
-  const border = SizeUtils.getBorderTopWidth(element) + SizeUtils.getBorderBottomWidth(element);
-  const padding = SizeUtils.getPaddingTop(element) + SizeUtils.getPaddingBottom(element);
-  return element.offsetHeight - border - padding;
-}
-function getTotalHeight(element) {
-  const margin = SizeUtils.getMarginTop(element) + SizeUtils.getMarginBottom(element);
-  return element.offsetHeight + margin;
-}
-function isAncestor(testChild, testAncestor) {
-  return Boolean(testAncestor?.contains(testChild));
-}
-function findParentWithClass(node, clazz, stopAtClazzOrNode) {
-  while (node && node.nodeType === node.ELEMENT_NODE) {
-    if (node.classList.contains(clazz)) {
-      return node;
-    }
-    if (stopAtClazzOrNode) {
-      if (typeof stopAtClazzOrNode === "string") {
-        if (node.classList.contains(stopAtClazzOrNode)) {
-          return null;
-        }
-      } else {
-        if (node === stopAtClazzOrNode) {
-          return null;
-        }
-      }
-    }
-    node = node.parentNode;
-  }
-  return null;
-}
-function hasParentWithClass(node, clazz, stopAtClazzOrNode) {
-  return !!findParentWithClass(node, clazz, stopAtClazzOrNode);
-}
-function isShadowRoot(node) {
-  return node && !!node.host && !!node.mode;
-}
-function isInShadowDOM(domNode) {
-  return !!getShadowRoot(domNode);
-}
-function getShadowRoot(domNode) {
-  while (domNode.parentNode) {
-    if (domNode === domNode.ownerDocument?.body) {
-      return null;
-    }
-    domNode = domNode.parentNode;
-  }
-  return isShadowRoot(domNode) ? domNode : null;
-}
-function getActiveElement() {
-  let result = getActiveDocument().activeElement;
-  while (result?.shadowRoot) {
-    result = result.shadowRoot.activeElement;
-  }
-  return result;
-}
-function isActiveElement(element) {
-  return getActiveElement() === element;
-}
-function isAncestorOfActiveElement(ancestor) {
-  return isAncestor(getActiveElement(), ancestor);
-}
-function getActiveDocument() {
-  if (getWindowsCount() <= 1) {
-    return mainWindow.document;
-  }
-  const documents = Array.from(getWindows()).map(({ window: window2 }) => window2.document);
-  return documents.find((doc) => doc.hasFocus()) ?? mainWindow.document;
-}
-function getActiveWindow() {
-  const document2 = getActiveDocument();
-  return document2.defaultView?.window ?? mainWindow;
-}
-function isHTMLElement(e) {
-  return e instanceof HTMLElement || e instanceof getWindow(e).HTMLElement;
-}
-function isHTMLAnchorElement(e) {
-  return e instanceof HTMLAnchorElement || e instanceof getWindow(e).HTMLAnchorElement;
-}
-function isSVGElement(e) {
-  return e instanceof SVGElement || e instanceof getWindow(e).SVGElement;
-}
-function isMouseEvent(e) {
-  return e instanceof MouseEvent || e instanceof getWindow(e).MouseEvent;
-}
-function isKeyboardEvent(e) {
-  return e instanceof KeyboardEvent || e instanceof getWindow(e).KeyboardEvent;
-}
-function isEventLike(obj) {
-  const candidate = obj;
-  return !!(candidate && typeof candidate.preventDefault === "function" && typeof candidate.stopPropagation === "function");
-}
-function saveParentsScrollTop(node) {
-  const r = [];
-  for (let i2 = 0; node && node.nodeType === node.ELEMENT_NODE; i2++) {
-    r[i2] = node.scrollTop;
-    node = node.parentNode;
-  }
-  return r;
-}
-function restoreParentsScrollTop(node, state) {
-  for (let i2 = 0; node && node.nodeType === node.ELEMENT_NODE; i2++) {
-    if (node.scrollTop !== state[i2]) {
-      node.scrollTop = state[i2];
-    }
-    node = node.parentNode;
-  }
-}
-function trackFocus(element) {
-  return new FocusTracker(element);
-}
-function after(sibling, child) {
-  sibling.after(child);
-  return child;
-}
-function append(parent, ...children) {
-  parent.append(...children);
-  if (children.length === 1 && typeof children[0] !== "string") {
-    return children[0];
-  }
-}
-function prepend(parent, child) {
-  parent.insertBefore(child, parent.firstChild);
-  return child;
-}
-function reset(parent, ...children) {
-  parent.textContent = "";
-  append(parent, ...children);
-}
-function _$(namespace, description, attrs, ...children) {
-  const match2 = SELECTOR_REGEX.exec(description);
-  if (!match2) {
-    throw new Error("Bad use of emmet");
-  }
-  const tagName = match2[1] || "div";
-  let result;
-  if (namespace !== Namespace.HTML) {
-    result = document.createElementNS(namespace, tagName);
-  } else {
-    result = document.createElement(tagName);
-  }
-  if (match2[3]) {
-    result.id = match2[3];
-  }
-  if (match2[4]) {
-    result.className = match2[4].replace(/\./g, " ").trim();
-  }
-  if (attrs) {
-    Object.entries(attrs).forEach(([name, value]) => {
-      if (typeof value === "undefined") {
-        return;
-      }
-      if (/^on\w+$/.test(name)) {
-        result[name] = value;
-      } else if (name === "selected") {
-        if (value) {
-          result.setAttribute(name, "true");
-        }
-      } else {
-        result.setAttribute(name, value);
-      }
-    });
-  }
-  result.append(...children);
-  return result;
-}
-function $(description, attrs, ...children) {
-  return _$(Namespace.HTML, description, attrs, ...children);
-}
-function setVisibility(visible, ...elements) {
-  if (visible) {
-    show(...elements);
-  } else {
-    hide(...elements);
-  }
-}
-function show(...elements) {
-  for (const element of elements) {
-    element.style.display = "";
-    element.removeAttribute("aria-hidden");
-  }
-}
-function hide(...elements) {
-  for (const element of elements) {
-    element.style.display = "none";
-    element.setAttribute("aria-hidden", "true");
-  }
-}
-function computeScreenAwareSize(window2, cssPx) {
-  const screenPx = window2.devicePixelRatio * cssPx;
-  return Math.max(1, Math.floor(screenPx)) / window2.devicePixelRatio;
-}
-function windowOpenNoOpener(url) {
-  mainWindow.open(url, "_blank", "noopener");
-}
-function animate(targetWindow, fn) {
-  const step = () => {
-    fn();
-    stepDisposable = scheduleAtNextAnimationFrame(targetWindow, step);
-  };
-  let stepDisposable = scheduleAtNextAnimationFrame(targetWindow, step);
-  return toDisposable(() => stepDisposable.dispose());
-}
-function h(tag2, ...args) {
-  let attributes;
-  let children;
-  if (Array.isArray(args[0])) {
-    attributes = {};
-    children = args[0];
-  } else {
-    attributes = args[0] || {};
-    children = args[1];
-  }
-  const match2 = H_REGEX.exec(tag2);
-  if (!match2 || !match2.groups) {
-    throw new Error("Bad use of h");
-  }
-  const tagName = match2.groups["tag"] || "div";
-  const el = document.createElement(tagName);
-  if (match2.groups["id"]) {
-    el.id = match2.groups["id"];
-  }
-  const classNames2 = [];
-  if (match2.groups["class"]) {
-    for (const className2 of match2.groups["class"].split(".")) {
-      if (className2 !== "") {
-        classNames2.push(className2);
-      }
-    }
-  }
-  if (attributes.className !== void 0) {
-    for (const className2 of attributes.className.split(".")) {
-      if (className2 !== "") {
-        classNames2.push(className2);
-      }
-    }
-  }
-  if (classNames2.length > 0) {
-    el.className = classNames2.join(" ");
-  }
-  const result = {};
-  if (match2.groups["name"]) {
-    result[match2.groups["name"]] = el;
-  }
-  if (children) {
-    for (const c of children) {
-      if (isHTMLElement(c)) {
-        el.appendChild(c);
-      } else if (typeof c === "string") {
-        el.append(c);
-      } else if ("root" in c) {
-        Object.assign(result, c);
-        el.appendChild(c.root);
-      }
-    }
-  }
-  for (const [key, value] of Object.entries(attributes)) {
-    if (key === "className") {
-      continue;
-    } else if (key === "style") {
-      for (const [cssKey, cssValue] of Object.entries(value)) {
-        el.style.setProperty(camelCaseToHyphenCase(cssKey), typeof cssValue === "number" ? cssValue + "px" : "" + cssValue);
-      }
-    } else if (key === "tabIndex") {
-      el.tabIndex = value;
-    } else {
-      el.setAttribute(camelCaseToHyphenCase(key), value.toString());
-    }
-  }
-  result["root"] = el;
-  return result;
-}
-function camelCaseToHyphenCase(str) {
-  return str.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
-}
-function isEditableElement(element) {
-  return element.tagName.toLowerCase() === "input" || element.tagName.toLowerCase() === "textarea" || isHTMLElement(element) && !!element.editContext;
-}
-function setClassName(domNode, className2) {
-  if (isSVGElement(domNode)) {
-    domNode.setAttribute("class", className2);
-  } else {
-    domNode.className = className2;
-  }
-}
-function resolve2(value, reader, cb) {
-  if (isObservable(value)) {
-    cb(value.read(reader));
-    return;
-  }
-  if (Array.isArray(value)) {
-    for (const v of value) {
-      resolve2(v, reader, cb);
-    }
-    return;
-  }
-  cb(value);
-}
-function getClassName2(className2, reader) {
-  let result = "";
-  resolve2(className2, reader, (val) => {
-    if (val) {
-      if (result.length === 0) {
-        result = val;
-      } else {
-        result += " " + val;
-      }
-    }
-  });
-  return result;
-}
-function hasObservable(value) {
-  if (isObservable(value)) {
-    return true;
-  }
-  if (Array.isArray(value)) {
-    return value.some((v) => hasObservable(v));
-  }
-  return false;
-}
-function convertCssValue(value) {
-  if (typeof value === "number") {
-    return value + "px";
-  }
-  return value;
-}
-function childrenIsObservable(children) {
-  if (isObservable(children)) {
-    return true;
-  }
-  if (Array.isArray(children)) {
-    return children.some((c) => childrenIsObservable(c));
-  }
-  return false;
-}
-function setOrRemoveAttribute(element, key, value) {
-  if (value === null || value === void 0) {
-    element.removeAttribute(camelCaseToHyphenCase(key));
-  } else {
-    element.setAttribute(camelCaseToHyphenCase(key), String(value));
-  }
-}
-function isObservable(obj) {
-  return !!obj && obj.read !== void 0 && obj.reportChanges !== void 0;
-}
-var getWindow, getDocument, getWindows, getWindowsCount, getWindowId, getWindowById, onDidRegisterWindow, onWillUnregisterWindow, onDidUnregisterWindow, DomListener, addStandardDisposableListener, addStandardDisposableGenericMouseDownListener, WindowIdleValue, runAtThisOrScheduleAtNextAnimationFrame, scheduleAtNextAnimationFrame, WindowIntervalTimer, AnimationFrameQueueItem, SizeUtils, Dimension, sharedMutationObserver, EventType, EventHelper, FocusTracker, SELECTOR_REGEX, Namespace, ModifierKeyEmitter, DragAndDropObserver, H_REGEX, n, ObserverNode, LiveElement, ObserverNodeWithElement;
-var init_dom = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/browser/dom.js"() {
-    init_browser();
-    init_canIUse();
-    init_keyboardEvent();
-    init_mouseEvent();
-    init_async();
-    init_errors();
-    init_event();
-    init_lifecycle();
-    init_network();
-    init_platform();
-    init_hash();
-    init_window();
-    init_observableInternal();
-    init_observableValue();
-    init_derived();
-    ({ getWindow, getDocument, getWindows, getWindowsCount, getWindowId, getWindowById, onDidRegisterWindow, onWillUnregisterWindow, onDidUnregisterWindow } = function() {
-      const windows = /* @__PURE__ */ new Map();
-      ensureCodeWindow(mainWindow, 1);
-      const mainWindowRegistration = { window: mainWindow, disposables: new DisposableStore() };
-      windows.set(mainWindow.vscodeWindowId, mainWindowRegistration);
-      const onDidRegisterWindow2 = new Emitter();
-      const onDidUnregisterWindow2 = new Emitter();
-      const onWillUnregisterWindow2 = new Emitter();
-      function getWindowById2(windowId, fallbackToMain) {
-        const window2 = typeof windowId === "number" ? windows.get(windowId) : void 0;
-        return window2 ?? (fallbackToMain ? mainWindowRegistration : void 0);
-      }
-      return {
-        onDidRegisterWindow: onDidRegisterWindow2.event,
-        onWillUnregisterWindow: onWillUnregisterWindow2.event,
-        onDidUnregisterWindow: onDidUnregisterWindow2.event,
-        registerWindow(window2) {
-          if (windows.has(window2.vscodeWindowId)) {
-            return Disposable.None;
-          }
-          const disposables = new DisposableStore();
-          const registeredWindow = {
-            window: window2,
-            disposables: disposables.add(new DisposableStore())
-          };
-          windows.set(window2.vscodeWindowId, registeredWindow);
-          disposables.add(toDisposable(() => {
-            windows.delete(window2.vscodeWindowId);
-            onDidUnregisterWindow2.fire(window2);
-          }));
-          disposables.add(addDisposableListener(window2, EventType.BEFORE_UNLOAD, () => {
-            onWillUnregisterWindow2.fire(window2);
-          }));
-          onDidRegisterWindow2.fire(registeredWindow);
-          return disposables;
-        },
-        getWindows() {
-          return windows.values();
-        },
-        getWindowsCount() {
-          return windows.size;
-        },
-        getWindowId(targetWindow) {
-          return targetWindow.vscodeWindowId;
-        },
-        hasWindow(windowId) {
-          return windows.has(windowId);
-        },
-        getWindowById: getWindowById2,
-        getWindow(e) {
-          const candidateNode = e;
-          if (candidateNode?.ownerDocument?.defaultView) {
-            return candidateNode.ownerDocument.defaultView.window;
-          }
-          const candidateEvent = e;
-          if (candidateEvent?.view) {
-            return candidateEvent.view.window;
-          }
-          return mainWindow;
-        },
-        getDocument(e) {
-          const candidateNode = e;
-          return getWindow(candidateNode).document;
-        }
-      };
-    }());
-    DomListener = class {
-      constructor(node, type, handler, options) {
-        this._node = node;
-        this._type = type;
-        this._handler = handler;
-        this._options = options || false;
-        this._node.addEventListener(this._type, this._handler, this._options);
-      }
-      dispose() {
-        if (!this._handler) {
-          return;
-        }
-        this._node.removeEventListener(this._type, this._handler, this._options);
-        this._node = null;
-        this._handler = null;
-      }
-    };
-    addStandardDisposableListener = function addStandardDisposableListener2(node, type, handler, useCapture) {
-      let wrapHandler = handler;
-      if (type === "click" || type === "mousedown" || type === "contextmenu") {
-        wrapHandler = _wrapAsStandardMouseEvent(getWindow(node), handler);
-      } else if (type === "keydown" || type === "keypress" || type === "keyup") {
-        wrapHandler = _wrapAsStandardKeyboardEvent(handler);
-      }
-      return addDisposableListener(node, type, wrapHandler, useCapture);
-    };
-    addStandardDisposableGenericMouseDownListener = function addStandardDisposableListener3(node, handler, useCapture) {
-      const wrapHandler = _wrapAsStandardMouseEvent(getWindow(node), handler);
-      return addDisposableGenericMouseDownListener(node, wrapHandler, useCapture);
-    };
-    WindowIdleValue = class extends AbstractIdleValue {
-      constructor(targetWindow, executor) {
-        super(targetWindow, executor);
-      }
-    };
-    WindowIntervalTimer = class extends IntervalTimer {
-      /**
-       *
-       * @param node The optional node from which the target window is determined
-       */
-      constructor(node) {
-        super();
-        this.defaultTarget = node && getWindow(node);
-      }
-      cancelAndSet(runner, interval, targetWindow) {
-        return super.cancelAndSet(runner, interval, targetWindow ?? this.defaultTarget);
-      }
-    };
-    AnimationFrameQueueItem = class {
-      constructor(runner, priority = 0) {
-        this._runner = runner;
-        this.priority = priority;
-        this._canceled = false;
-      }
-      dispose() {
-        this._canceled = true;
-      }
-      execute() {
-        if (this._canceled) {
-          return;
-        }
-        try {
-          this._runner();
-        } catch (e) {
-          onUnexpectedError(e);
-        }
-      }
-      // Sort by priority (largest to lowest)
-      static sort(a, b) {
-        return b.priority - a.priority;
-      }
-    };
-    (function() {
-      const NEXT_QUEUE = /* @__PURE__ */ new Map();
-      const CURRENT_QUEUE = /* @__PURE__ */ new Map();
-      const animFrameRequested = /* @__PURE__ */ new Map();
-      const inAnimationFrameRunner = /* @__PURE__ */ new Map();
-      const animationFrameRunner = (targetWindowId) => {
-        animFrameRequested.set(targetWindowId, false);
-        const currentQueue = NEXT_QUEUE.get(targetWindowId) ?? [];
-        CURRENT_QUEUE.set(targetWindowId, currentQueue);
-        NEXT_QUEUE.set(targetWindowId, []);
-        inAnimationFrameRunner.set(targetWindowId, true);
-        while (currentQueue.length > 0) {
-          currentQueue.sort(AnimationFrameQueueItem.sort);
-          const top = currentQueue.shift();
-          top.execute();
-        }
-        inAnimationFrameRunner.set(targetWindowId, false);
-      };
-      scheduleAtNextAnimationFrame = (targetWindow, runner, priority = 0) => {
-        const targetWindowId = getWindowId(targetWindow);
-        const item = new AnimationFrameQueueItem(runner, priority);
-        let nextQueue = NEXT_QUEUE.get(targetWindowId);
-        if (!nextQueue) {
-          nextQueue = [];
-          NEXT_QUEUE.set(targetWindowId, nextQueue);
-        }
-        nextQueue.push(item);
-        if (!animFrameRequested.get(targetWindowId)) {
-          animFrameRequested.set(targetWindowId, true);
-          targetWindow.requestAnimationFrame(() => animationFrameRunner(targetWindowId));
-        }
-        return item;
-      };
-      runAtThisOrScheduleAtNextAnimationFrame = (targetWindow, runner, priority) => {
-        const targetWindowId = getWindowId(targetWindow);
-        if (inAnimationFrameRunner.get(targetWindowId)) {
-          const item = new AnimationFrameQueueItem(runner, priority);
-          let currentQueue = CURRENT_QUEUE.get(targetWindowId);
-          if (!currentQueue) {
-            currentQueue = [];
-            CURRENT_QUEUE.set(targetWindowId, currentQueue);
-          }
-          currentQueue.push(item);
-          return item;
-        } else {
-          return scheduleAtNextAnimationFrame(targetWindow, runner, priority);
-        }
-      };
-    })();
-    SizeUtils = class _SizeUtils {
-      // Adapted from WinJS
-      // Converts a CSS positioning string for the specified element to pixels.
-      static convertToPixels(element, value) {
-        return parseFloat(value) || 0;
-      }
-      static getDimension(element, cssPropertyName) {
-        const computedStyle = getComputedStyle(element);
-        const value = computedStyle ? computedStyle.getPropertyValue(cssPropertyName) : "0";
-        return _SizeUtils.convertToPixels(element, value);
-      }
-      static getBorderLeftWidth(element) {
-        return _SizeUtils.getDimension(element, "border-left-width");
-      }
-      static getBorderRightWidth(element) {
-        return _SizeUtils.getDimension(element, "border-right-width");
-      }
-      static getBorderTopWidth(element) {
-        return _SizeUtils.getDimension(element, "border-top-width");
-      }
-      static getBorderBottomWidth(element) {
-        return _SizeUtils.getDimension(element, "border-bottom-width");
-      }
-      static getPaddingLeft(element) {
-        return _SizeUtils.getDimension(element, "padding-left");
-      }
-      static getPaddingRight(element) {
-        return _SizeUtils.getDimension(element, "padding-right");
-      }
-      static getPaddingTop(element) {
-        return _SizeUtils.getDimension(element, "padding-top");
-      }
-      static getPaddingBottom(element) {
-        return _SizeUtils.getDimension(element, "padding-bottom");
-      }
-      static getMarginLeft(element) {
-        return _SizeUtils.getDimension(element, "margin-left");
-      }
-      static getMarginTop(element) {
-        return _SizeUtils.getDimension(element, "margin-top");
-      }
-      static getMarginRight(element) {
-        return _SizeUtils.getDimension(element, "margin-right");
-      }
-      static getMarginBottom(element) {
-        return _SizeUtils.getDimension(element, "margin-bottom");
-      }
-    };
-    Dimension = class _Dimension {
-      static {
-        this.None = new _Dimension(0, 0);
-      }
-      constructor(width2, height) {
-        this.width = width2;
-        this.height = height;
-      }
-      with(width2 = this.width, height = this.height) {
-        if (width2 !== this.width || height !== this.height) {
-          return new _Dimension(width2, height);
-        } else {
-          return this;
-        }
-      }
-      static is(obj) {
-        return typeof obj === "object" && typeof obj.height === "number" && typeof obj.width === "number";
-      }
-      static lift(obj) {
-        if (obj instanceof _Dimension) {
-          return obj;
-        } else {
-          return new _Dimension(obj.width, obj.height);
-        }
-      }
-      static equals(a, b) {
-        if (a === b) {
-          return true;
-        }
-        if (!a || !b) {
-          return false;
-        }
-        return a.width === b.width && a.height === b.height;
-      }
-    };
-    sharedMutationObserver = new class {
-      constructor() {
-        this.mutationObservers = /* @__PURE__ */ new Map();
-      }
-      observe(target, disposables, options) {
-        let mutationObserversPerTarget = this.mutationObservers.get(target);
-        if (!mutationObserversPerTarget) {
-          mutationObserversPerTarget = /* @__PURE__ */ new Map();
-          this.mutationObservers.set(target, mutationObserversPerTarget);
-        }
-        const optionsHash = hash(options);
-        let mutationObserverPerOptions = mutationObserversPerTarget.get(optionsHash);
-        if (!mutationObserverPerOptions) {
-          const onDidMutate = new Emitter();
-          const observer = new MutationObserver((mutations) => onDidMutate.fire(mutations));
-          observer.observe(target, options);
-          const resolvedMutationObserverPerOptions = mutationObserverPerOptions = {
-            users: 1,
-            observer,
-            onDidMutate: onDidMutate.event
-          };
-          disposables.add(toDisposable(() => {
-            resolvedMutationObserverPerOptions.users -= 1;
-            if (resolvedMutationObserverPerOptions.users === 0) {
-              onDidMutate.dispose();
-              observer.disconnect();
-              mutationObserversPerTarget?.delete(optionsHash);
-              if (mutationObserversPerTarget?.size === 0) {
-                this.mutationObservers.delete(target);
-              }
-            }
-          }));
-          mutationObserversPerTarget.set(optionsHash, mutationObserverPerOptions);
-        } else {
-          mutationObserverPerOptions.users += 1;
-        }
-        return mutationObserverPerOptions.onDidMutate;
-      }
-    }();
-    EventType = {
-      // Mouse
-      CLICK: "click",
-      AUXCLICK: "auxclick",
-      DBLCLICK: "dblclick",
-      MOUSE_UP: "mouseup",
-      MOUSE_DOWN: "mousedown",
-      MOUSE_OVER: "mouseover",
-      MOUSE_MOVE: "mousemove",
-      MOUSE_OUT: "mouseout",
-      MOUSE_ENTER: "mouseenter",
-      MOUSE_LEAVE: "mouseleave",
-      MOUSE_WHEEL: "wheel",
-      POINTER_UP: "pointerup",
-      POINTER_DOWN: "pointerdown",
-      POINTER_MOVE: "pointermove",
-      POINTER_LEAVE: "pointerleave",
-      CONTEXT_MENU: "contextmenu",
-      // Keyboard
-      KEY_DOWN: "keydown",
-      KEY_UP: "keyup",
-      BEFORE_UNLOAD: "beforeunload",
-      FOCUS: "focus",
-      FOCUS_IN: "focusin",
-      FOCUS_OUT: "focusout",
-      BLUR: "blur",
-      INPUT: "input",
-      // Drag
-      DRAG_START: "dragstart",
-      DRAG: "drag",
-      DRAG_ENTER: "dragenter",
-      DRAG_LEAVE: "dragleave",
-      DRAG_OVER: "dragover",
-      DROP: "drop",
-      DRAG_END: "dragend"
-    };
-    EventHelper = {
-      stop: (e, cancelBubble) => {
-        e.preventDefault();
-        if (cancelBubble) {
-          e.stopPropagation();
-        }
-        return e;
-      }
-    };
-    FocusTracker = class _FocusTracker extends Disposable {
-      get onDidFocus() {
-        return this._onDidFocus.event;
-      }
-      get onDidBlur() {
-        return this._onDidBlur.event;
-      }
-      static hasFocusWithin(element) {
-        if (isHTMLElement(element)) {
-          const shadowRoot = getShadowRoot(element);
-          const activeElement = shadowRoot ? shadowRoot.activeElement : element.ownerDocument.activeElement;
-          return isAncestor(activeElement, element);
-        } else {
-          const window2 = element;
-          return isAncestor(window2.document.activeElement, window2.document);
-        }
-      }
-      constructor(element) {
-        super();
-        this._onDidFocus = this._register(new Emitter());
-        this._onDidBlur = this._register(new Emitter());
-        let hasFocus = _FocusTracker.hasFocusWithin(element);
-        let loosingFocus = false;
-        const onFocus = () => {
-          loosingFocus = false;
-          if (!hasFocus) {
-            hasFocus = true;
-            this._onDidFocus.fire();
-          }
-        };
-        const onBlur = () => {
-          if (hasFocus) {
-            loosingFocus = true;
-            (isHTMLElement(element) ? getWindow(element) : element).setTimeout(() => {
-              if (loosingFocus) {
-                loosingFocus = false;
-                hasFocus = false;
-                this._onDidBlur.fire();
-              }
-            }, 0);
-          }
-        };
-        this._refreshStateHandler = () => {
-          const currentNodeHasFocus = _FocusTracker.hasFocusWithin(element);
-          if (currentNodeHasFocus !== hasFocus) {
-            if (hasFocus) {
-              onBlur();
-            } else {
-              onFocus();
-            }
-          }
-        };
-        this._register(addDisposableListener(element, EventType.FOCUS, onFocus, true));
-        this._register(addDisposableListener(element, EventType.BLUR, onBlur, true));
-        if (isHTMLElement(element)) {
-          this._register(addDisposableListener(element, EventType.FOCUS_IN, () => this._refreshStateHandler()));
-          this._register(addDisposableListener(element, EventType.FOCUS_OUT, () => this._refreshStateHandler()));
-        }
-      }
-    };
-    SELECTOR_REGEX = /([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;
-    (function(Namespace2) {
-      Namespace2["HTML"] = "http://www.w3.org/1999/xhtml";
-      Namespace2["SVG"] = "http://www.w3.org/2000/svg";
-    })(Namespace || (Namespace = {}));
-    $.SVG = function(description, attrs, ...children) {
-      return _$(Namespace.SVG, description, attrs, ...children);
-    };
-    RemoteAuthorities.setPreferredWebSchema(/^https:/.test(mainWindow.location.href) ? "https" : "http");
-    ModifierKeyEmitter = class _ModifierKeyEmitter extends Emitter {
-      constructor() {
-        super();
-        this._subscriptions = new DisposableStore();
-        this._keyStatus = {
-          altKey: false,
-          shiftKey: false,
-          ctrlKey: false,
-          metaKey: false
-        };
-        this._subscriptions.add(Event.runAndSubscribe(onDidRegisterWindow, ({ window: window2, disposables }) => this.registerListeners(window2, disposables), { window: mainWindow, disposables: this._subscriptions }));
-      }
-      registerListeners(window2, disposables) {
-        disposables.add(addDisposableListener(window2, "keydown", (e) => {
-          if (e.defaultPrevented) {
-            return;
-          }
-          const event = new StandardKeyboardEvent(e);
-          if (event.keyCode === 6 && e.repeat) {
-            return;
-          }
-          if (e.altKey && !this._keyStatus.altKey) {
-            this._keyStatus.lastKeyPressed = "alt";
-          } else if (e.ctrlKey && !this._keyStatus.ctrlKey) {
-            this._keyStatus.lastKeyPressed = "ctrl";
-          } else if (e.metaKey && !this._keyStatus.metaKey) {
-            this._keyStatus.lastKeyPressed = "meta";
-          } else if (e.shiftKey && !this._keyStatus.shiftKey) {
-            this._keyStatus.lastKeyPressed = "shift";
-          } else if (event.keyCode !== 6) {
-            this._keyStatus.lastKeyPressed = void 0;
-          } else {
-            return;
-          }
-          this._keyStatus.altKey = e.altKey;
-          this._keyStatus.ctrlKey = e.ctrlKey;
-          this._keyStatus.metaKey = e.metaKey;
-          this._keyStatus.shiftKey = e.shiftKey;
-          if (this._keyStatus.lastKeyPressed) {
-            this._keyStatus.event = e;
-            this.fire(this._keyStatus);
-          }
-        }, true));
-        disposables.add(addDisposableListener(window2, "keyup", (e) => {
-          if (e.defaultPrevented) {
-            return;
-          }
-          if (!e.altKey && this._keyStatus.altKey) {
-            this._keyStatus.lastKeyReleased = "alt";
-          } else if (!e.ctrlKey && this._keyStatus.ctrlKey) {
-            this._keyStatus.lastKeyReleased = "ctrl";
-          } else if (!e.metaKey && this._keyStatus.metaKey) {
-            this._keyStatus.lastKeyReleased = "meta";
-          } else if (!e.shiftKey && this._keyStatus.shiftKey) {
-            this._keyStatus.lastKeyReleased = "shift";
-          } else {
-            this._keyStatus.lastKeyReleased = void 0;
-          }
-          if (this._keyStatus.lastKeyPressed !== this._keyStatus.lastKeyReleased) {
-            this._keyStatus.lastKeyPressed = void 0;
-          }
-          this._keyStatus.altKey = e.altKey;
-          this._keyStatus.ctrlKey = e.ctrlKey;
-          this._keyStatus.metaKey = e.metaKey;
-          this._keyStatus.shiftKey = e.shiftKey;
-          if (this._keyStatus.lastKeyReleased) {
-            this._keyStatus.event = e;
-            this.fire(this._keyStatus);
-          }
-        }, true));
-        disposables.add(addDisposableListener(window2.document.body, "mousedown", () => {
-          this._keyStatus.lastKeyPressed = void 0;
-        }, true));
-        disposables.add(addDisposableListener(window2.document.body, "mouseup", () => {
-          this._keyStatus.lastKeyPressed = void 0;
-        }, true));
-        disposables.add(addDisposableListener(window2.document.body, "mousemove", (e) => {
-          if (e.buttons) {
-            this._keyStatus.lastKeyPressed = void 0;
-          }
-        }, true));
-        disposables.add(addDisposableListener(window2, "blur", () => {
-          this.resetKeyStatus();
-        }));
-      }
-      get keyStatus() {
-        return this._keyStatus;
-      }
-      /**
-       * Allows to explicitly reset the key status based on more knowledge (#109062)
-       */
-      resetKeyStatus() {
-        this.doResetKeyStatus();
-        this.fire(this._keyStatus);
-      }
-      doResetKeyStatus() {
-        this._keyStatus = {
-          altKey: false,
-          shiftKey: false,
-          ctrlKey: false,
-          metaKey: false
-        };
-      }
-      static getInstance() {
-        if (!_ModifierKeyEmitter.instance) {
-          _ModifierKeyEmitter.instance = new _ModifierKeyEmitter();
-        }
-        return _ModifierKeyEmitter.instance;
-      }
-      dispose() {
-        super.dispose();
-        this._subscriptions.dispose();
-      }
-    };
-    DragAndDropObserver = class extends Disposable {
-      constructor(element, callbacks) {
-        super();
-        this.element = element;
-        this.callbacks = callbacks;
-        this.counter = 0;
-        this.dragStartTime = 0;
-        this.registerListeners();
-      }
-      registerListeners() {
-        if (this.callbacks.onDragStart) {
-          this._register(addDisposableListener(this.element, EventType.DRAG_START, (e) => {
-            this.callbacks.onDragStart?.(e);
-          }));
-        }
-        if (this.callbacks.onDrag) {
-          this._register(addDisposableListener(this.element, EventType.DRAG, (e) => {
-            this.callbacks.onDrag?.(e);
-          }));
-        }
-        this._register(addDisposableListener(this.element, EventType.DRAG_ENTER, (e) => {
-          this.counter++;
-          this.dragStartTime = e.timeStamp;
-          this.callbacks.onDragEnter?.(e);
-        }));
-        this._register(addDisposableListener(this.element, EventType.DRAG_OVER, (e) => {
-          e.preventDefault();
-          this.callbacks.onDragOver?.(e, e.timeStamp - this.dragStartTime);
-        }));
-        this._register(addDisposableListener(this.element, EventType.DRAG_LEAVE, (e) => {
-          this.counter--;
-          if (this.counter === 0) {
-            this.dragStartTime = 0;
-            this.callbacks.onDragLeave?.(e);
-          }
-        }));
-        this._register(addDisposableListener(this.element, EventType.DRAG_END, (e) => {
-          this.counter = 0;
-          this.dragStartTime = 0;
-          this.callbacks.onDragEnd?.(e);
-        }));
-        this._register(addDisposableListener(this.element, EventType.DROP, (e) => {
-          this.counter = 0;
-          this.dragStartTime = 0;
-          this.callbacks.onDrop?.(e);
-        }));
-      }
-    };
-    H_REGEX = /(?[\w\-]+)?(?:#(?[\w\-]+))?(?(?:\.(?:[\w\-]+))*)(?:@(?(?:[\w\_])+))?/;
-    (function(n2) {
-      function nodeNs(elementNs = void 0) {
-        return (tag2, attributes, children) => {
-          const className2 = attributes.class;
-          delete attributes.class;
-          const ref2 = attributes.ref;
-          delete attributes.ref;
-          const obsRef = attributes.obsRef;
-          delete attributes.obsRef;
-          return new ObserverNodeWithElement(tag2, ref2, obsRef, elementNs, className2, attributes, children);
-        };
-      }
-      function node(tag2, elementNs = void 0) {
-        const f = nodeNs(elementNs);
-        return (attributes, children) => {
-          return f(tag2, attributes, children);
-        };
-      }
-      n2.div = node("div");
-      n2.elem = nodeNs(void 0);
-      n2.svg = node("svg", "http://www.w3.org/2000/svg");
-      n2.svgElem = nodeNs("http://www.w3.org/2000/svg");
-      function ref() {
-        let value = void 0;
-        const result = function(val) {
-          value = val;
-        };
-        Object.defineProperty(result, "element", {
-          get() {
-            if (!value) {
-              throw new BugIndicatingError("Make sure the ref is set before accessing the element. Maybe wrong initialization order?");
-            }
-            return value;
-          }
-        });
-        return result;
-      }
-      n2.ref = ref;
-    })(n || (n = {}));
-    ObserverNode = class _ObserverNode {
-      constructor(tag2, ref, obsRef, ns, className2, attributes, children) {
-        this._deriveds = [];
-        this._element = ns ? document.createElementNS(ns, tag2) : document.createElement(tag2);
-        if (ref) {
-          ref(this._element);
-        }
-        if (obsRef) {
-          this._deriveds.push(derived((_reader) => {
-            obsRef(this);
-            _reader.store.add({
-              dispose: () => {
-                obsRef(null);
-              }
-            });
-          }));
-        }
-        if (className2) {
-          if (hasObservable(className2)) {
-            this._deriveds.push(derived(this, (reader) => {
-              setClassName(this._element, getClassName2(className2, reader));
-            }));
-          } else {
-            setClassName(this._element, getClassName2(className2, void 0));
-          }
-        }
-        for (const [key, value] of Object.entries(attributes)) {
-          if (key === "style") {
-            for (const [cssKey, cssValue] of Object.entries(value)) {
-              const key2 = camelCaseToHyphenCase(cssKey);
-              if (isObservable(cssValue)) {
-                this._deriveds.push(derivedOpts({ owner: this, debugName: () => `set.style.${key2}` }, (reader) => {
-                  this._element.style.setProperty(key2, convertCssValue(cssValue.read(reader)));
-                }));
-              } else {
-                this._element.style.setProperty(key2, convertCssValue(cssValue));
-              }
-            }
-          } else if (key === "tabIndex") {
-            if (isObservable(value)) {
-              this._deriveds.push(derived(this, (reader) => {
-                this._element.tabIndex = value.read(reader);
-              }));
-            } else {
-              this._element.tabIndex = value;
-            }
-          } else if (key.startsWith("on")) {
-            this._element[key] = value;
-          } else {
-            if (isObservable(value)) {
-              this._deriveds.push(derivedOpts({ owner: this, debugName: () => `set.${key}` }, (reader) => {
-                setOrRemoveAttribute(this._element, key, value.read(reader));
-              }));
-            } else {
-              setOrRemoveAttribute(this._element, key, value);
-            }
-          }
-        }
-        if (children) {
-          let getChildren = function(reader, children2) {
-            if (isObservable(children2)) {
-              return getChildren(reader, children2.read(reader));
-            }
-            if (Array.isArray(children2)) {
-              return children2.flatMap((c) => getChildren(reader, c));
-            }
-            if (children2 instanceof _ObserverNode) {
-              if (reader) {
-                children2.readEffect(reader);
-              }
-              return [children2._element];
-            }
-            if (children2) {
-              return [children2];
-            }
-            return [];
-          };
-          const d = derived(this, (reader) => {
-            this._element.replaceChildren(...getChildren(reader, children));
-          });
-          this._deriveds.push(d);
-          if (!childrenIsObservable(children)) {
-            d.get();
-          }
-        }
-      }
-      readEffect(reader) {
-        for (const d of this._deriveds) {
-          d.read(reader);
-        }
-      }
-      keepUpdated(store) {
-        derived((reader) => {
-          this.readEffect(reader);
-        }).recomputeInitiallyAndOnChange(store);
-        return this;
-      }
-      /**
-       * Creates a live element that will keep the element updated as long as the returned object is not disposed.
-      */
-      toDisposableLiveElement() {
-        const store = new DisposableStore();
-        this.keepUpdated(store);
-        return new LiveElement(this._element, store);
-      }
-    };
-    LiveElement = class {
-      constructor(element, _disposable) {
-        this.element = element;
-        this._disposable = _disposable;
-      }
-      dispose() {
-        this._disposable.dispose();
-      }
-    };
-    ObserverNodeWithElement = class extends ObserverNode {
-      constructor() {
-        super(...arguments);
-        this._isHovered = void 0;
-        this._didMouseMoveDuringHover = void 0;
-      }
-      get element() {
-        return this._element;
-      }
-      get isHovered() {
-        if (!this._isHovered) {
-          const hovered = observableValue("hovered", false);
-          this._element.addEventListener("mouseenter", (_e2) => hovered.set(true, void 0));
-          this._element.addEventListener("mouseleave", (_e2) => hovered.set(false, void 0));
-          this._isHovered = hovered;
-        }
-        return this._isHovered;
-      }
-      get didMouseMoveDuringHover() {
-        if (!this._didMouseMoveDuringHover) {
-          let _hovering = false;
-          const hovered = observableValue("didMouseMoveDuringHover", false);
-          this._element.addEventListener("mouseenter", (_e2) => {
-            _hovering = true;
-          });
-          this._element.addEventListener("mousemove", (_e2) => {
-            if (_hovering) {
-              hovered.set(true, void 0);
-            }
-          });
-          this._element.addEventListener("mouseleave", (_e2) => {
-            _hovering = false;
-            hovered.set(false, void 0);
-          });
-          this._didMouseMoveDuringHover = hovered;
-        }
-        return this._didMouseMoveDuringHover;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/browser/ui/aria/aria.css
-var init_aria = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/browser/ui/aria/aria.css"() {
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/browser/ui/aria/aria.js
-function setARIAContainer(parent) {
-  ariaContainer = document.createElement("div");
-  ariaContainer.className = "monaco-aria-container";
-  const createAlertContainer = () => {
-    const element = document.createElement("div");
-    element.className = "monaco-alert";
-    element.setAttribute("role", "alert");
-    element.setAttribute("aria-atomic", "true");
-    ariaContainer.appendChild(element);
-    return element;
-  };
-  alertContainer = createAlertContainer();
-  alertContainer2 = createAlertContainer();
-  const createStatusContainer = () => {
-    const element = document.createElement("div");
-    element.className = "monaco-status";
-    element.setAttribute("aria-live", "polite");
-    element.setAttribute("aria-atomic", "true");
-    ariaContainer.appendChild(element);
-    return element;
-  };
-  statusContainer = createStatusContainer();
-  statusContainer2 = createStatusContainer();
-  parent.appendChild(ariaContainer);
-}
-function alert(msg) {
-  if (!ariaContainer) {
-    return;
-  }
-  if (alertContainer.textContent !== msg) {
-    clearNode(alertContainer2);
-    insertMessage(alertContainer, msg);
-  } else {
-    clearNode(alertContainer);
-    insertMessage(alertContainer2, msg);
-  }
-}
-function status(msg) {
-  if (!ariaContainer) {
-    return;
-  }
-  if (statusContainer.textContent !== msg) {
-    clearNode(statusContainer2);
-    insertMessage(statusContainer, msg);
-  } else {
-    clearNode(statusContainer);
-    insertMessage(statusContainer2, msg);
-  }
-}
-function insertMessage(target, msg) {
-  clearNode(target);
-  if (msg.length > MAX_MESSAGE_LENGTH) {
-    msg = msg.substr(0, MAX_MESSAGE_LENGTH);
-  }
-  target.textContent = msg;
-  target.style.visibility = "hidden";
-  target.style.visibility = "visible";
-}
-var MAX_MESSAGE_LENGTH, ariaContainer, alertContainer, alertContainer2, statusContainer, statusContainer2;
-var init_aria2 = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/browser/ui/aria/aria.js"() {
-    init_dom();
-    init_aria();
-    MAX_MESSAGE_LENGTH = 2e4;
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/platform/instantiation/common/instantiation.js
-function storeServiceDependency(id, target, index) {
-  if (target[_util.DI_TARGET] === target) {
-    target[_util.DI_DEPENDENCIES].push({ id, index });
-  } else {
-    target[_util.DI_DEPENDENCIES] = [{ id, index }];
-    target[_util.DI_TARGET] = target;
-  }
-}
-function createDecorator(serviceId) {
-  if (_util.serviceIds.has(serviceId)) {
-    return _util.serviceIds.get(serviceId);
-  }
-  const id = function(target, key, index) {
-    if (arguments.length !== 3) {
-      throw new Error("@IServiceName-decorator can only be used to decorate a parameter");
-    }
-    storeServiceDependency(id, target, index);
-  };
-  id.toString = () => serviceId;
-  _util.serviceIds.set(serviceId, id);
-  return id;
-}
-var _util, IInstantiationService;
-var init_instantiation = __esm({
-  "../node_modules/monaco-editor/esm/vs/platform/instantiation/common/instantiation.js"() {
-    (function(_util2) {
-      _util2.serviceIds = /* @__PURE__ */ new Map();
-      _util2.DI_TARGET = "$di$target";
-      _util2.DI_DEPENDENCIES = "$di$dependencies";
-      function getServiceDependencies(ctor) {
-        return ctor[_util2.DI_DEPENDENCIES] || [];
-      }
-      _util2.getServiceDependencies = getServiceDependencies;
-    })(_util || (_util = {}));
-    IInstantiationService = createDecorator("instantiationService");
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/browser/services/codeEditorService.js
-var ICodeEditorService;
-var init_codeEditorService = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/browser/services/codeEditorService.js"() {
-    init_instantiation();
-    ICodeEditorService = createDecorator("codeEditorService");
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/core/position.js
-var Position;
-var init_position = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/core/position.js"() {
-    Position = class _Position {
-      constructor(lineNumber, column) {
-        this.lineNumber = lineNumber;
-        this.column = column;
-      }
-      /**
-       * Create a new position from this position.
-       *
-       * @param newLineNumber new line number
-       * @param newColumn new column
-       */
-      with(newLineNumber = this.lineNumber, newColumn = this.column) {
-        if (newLineNumber === this.lineNumber && newColumn === this.column) {
-          return this;
-        } else {
-          return new _Position(newLineNumber, newColumn);
-        }
-      }
-      /**
-       * Derive a new position from this position.
-       *
-       * @param deltaLineNumber line number delta
-       * @param deltaColumn column delta
-       */
-      delta(deltaLineNumber = 0, deltaColumn = 0) {
-        return this.with(Math.max(1, this.lineNumber + deltaLineNumber), Math.max(1, this.column + deltaColumn));
-      }
-      /**
-       * Test if this position equals other position
-       */
-      equals(other) {
-        return _Position.equals(this, other);
-      }
-      /**
-       * Test if position `a` equals position `b`
-       */
-      static equals(a, b) {
-        if (!a && !b) {
-          return true;
-        }
-        return !!a && !!b && a.lineNumber === b.lineNumber && a.column === b.column;
-      }
-      /**
-       * Test if this position is before other position.
-       * If the two positions are equal, the result will be false.
-       */
-      isBefore(other) {
-        return _Position.isBefore(this, other);
-      }
-      /**
-       * Test if position `a` is before position `b`.
-       * If the two positions are equal, the result will be false.
-       */
-      static isBefore(a, b) {
-        if (a.lineNumber < b.lineNumber) {
-          return true;
-        }
-        if (b.lineNumber < a.lineNumber) {
-          return false;
-        }
-        return a.column < b.column;
-      }
-      /**
-       * Test if this position is before other position.
-       * If the two positions are equal, the result will be true.
-       */
-      isBeforeOrEqual(other) {
-        return _Position.isBeforeOrEqual(this, other);
-      }
-      /**
-       * Test if position `a` is before position `b`.
-       * If the two positions are equal, the result will be true.
-       */
-      static isBeforeOrEqual(a, b) {
-        if (a.lineNumber < b.lineNumber) {
-          return true;
-        }
-        if (b.lineNumber < a.lineNumber) {
-          return false;
-        }
-        return a.column <= b.column;
-      }
-      /**
-       * A function that compares positions, useful for sorting
-       */
-      static compare(a, b) {
-        const aLineNumber = a.lineNumber | 0;
-        const bLineNumber = b.lineNumber | 0;
-        if (aLineNumber === bLineNumber) {
-          const aColumn = a.column | 0;
-          const bColumn = b.column | 0;
-          return aColumn - bColumn;
-        }
-        return aLineNumber - bLineNumber;
-      }
-      /**
-       * Clone this position.
-       */
-      clone() {
-        return new _Position(this.lineNumber, this.column);
-      }
-      /**
-       * Convert to a human-readable representation.
-       */
-      toString() {
-        return "(" + this.lineNumber + "," + this.column + ")";
-      }
-      // ---
-      /**
-       * Create a `Position` from an `IPosition`.
-       */
-      static lift(pos) {
-        return new _Position(pos.lineNumber, pos.column);
-      }
-      /**
-       * Test if `obj` is an `IPosition`.
-       */
-      static isIPosition(obj) {
-        return !!obj && typeof obj.lineNumber === "number" && typeof obj.column === "number";
-      }
-      toJSON() {
-        return {
-          lineNumber: this.lineNumber,
-          column: this.column
-        };
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/services/model.js
-var IModelService;
-var init_model = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/services/model.js"() {
-    init_instantiation();
-    IModelService = createDecorator("modelService");
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/services/resolverService.js
-var ITextModelService;
-var init_resolverService = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/services/resolverService.js"() {
-    init_instantiation();
-    ITextModelService = createDecorator("textModelService");
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/actions.js
-function toAction(props) {
-  return {
-    id: props.id,
-    label: props.label,
-    tooltip: props.tooltip ?? props.label,
-    class: props.class,
-    enabled: props.enabled ?? true,
-    checked: props.checked,
-    run: async (...args) => props.run(...args)
-  };
-}
-var Action, ActionRunner, Separator, SubmenuAction, EmptySubmenuAction;
-var init_actions = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/actions.js"() {
-    init_event();
-    init_lifecycle();
-    init_nls();
-    Action = class extends Disposable {
-      get onDidChange() {
-        return this._onDidChange.event;
-      }
-      constructor(id, label = "", cssClass = "", enabled = true, actionCallback) {
-        super();
-        this._onDidChange = this._register(new Emitter());
-        this._enabled = true;
-        this._id = id;
-        this._label = label;
-        this._cssClass = cssClass;
-        this._enabled = enabled;
-        this._actionCallback = actionCallback;
-      }
-      get id() {
-        return this._id;
-      }
-      get label() {
-        return this._label;
-      }
-      set label(value) {
-        this._setLabel(value);
-      }
-      _setLabel(value) {
-        if (this._label !== value) {
-          this._label = value;
-          this._onDidChange.fire({ label: value });
-        }
-      }
-      get tooltip() {
-        return this._tooltip || "";
-      }
-      set tooltip(value) {
-        this._setTooltip(value);
-      }
-      _setTooltip(value) {
-        if (this._tooltip !== value) {
-          this._tooltip = value;
-          this._onDidChange.fire({ tooltip: value });
-        }
-      }
-      get class() {
-        return this._cssClass;
-      }
-      set class(value) {
-        this._setClass(value);
-      }
-      _setClass(value) {
-        if (this._cssClass !== value) {
-          this._cssClass = value;
-          this._onDidChange.fire({ class: value });
-        }
-      }
-      get enabled() {
-        return this._enabled;
-      }
-      set enabled(value) {
-        this._setEnabled(value);
-      }
-      _setEnabled(value) {
-        if (this._enabled !== value) {
-          this._enabled = value;
-          this._onDidChange.fire({ enabled: value });
-        }
-      }
-      get checked() {
-        return this._checked;
-      }
-      set checked(value) {
-        this._setChecked(value);
-      }
-      _setChecked(value) {
-        if (this._checked !== value) {
-          this._checked = value;
-          this._onDidChange.fire({ checked: value });
-        }
-      }
-      async run(event, data) {
-        if (this._actionCallback) {
-          await this._actionCallback(event);
-        }
-      }
-    };
-    ActionRunner = class extends Disposable {
-      constructor() {
-        super(...arguments);
-        this._onWillRun = this._register(new Emitter());
-        this._onDidRun = this._register(new Emitter());
-      }
-      get onWillRun() {
-        return this._onWillRun.event;
-      }
-      get onDidRun() {
-        return this._onDidRun.event;
-      }
-      async run(action, context) {
-        if (!action.enabled) {
-          return;
-        }
-        this._onWillRun.fire({ action });
-        let error = void 0;
-        try {
-          await this.runAction(action, context);
-        } catch (e) {
-          error = e;
-        }
-        this._onDidRun.fire({ action, error });
-      }
-      async runAction(action, context) {
-        await action.run(context);
-      }
-    };
-    Separator = class _Separator {
-      constructor() {
-        this.id = _Separator.ID;
-        this.label = "";
-        this.tooltip = "";
-        this.class = "separator";
-        this.enabled = false;
-        this.checked = false;
-      }
-      /**
-       * Joins all non-empty lists of actions with separators.
-       */
-      static join(...actionLists) {
-        let out = [];
-        for (const list2 of actionLists) {
-          if (!list2.length) ;
-          else if (out.length) {
-            out = [...out, new _Separator(), ...list2];
-          } else {
-            out = list2;
-          }
-        }
-        return out;
-      }
-      static {
-        this.ID = "vs.actions.separator";
-      }
-      async run() {
-      }
-    };
-    SubmenuAction = class {
-      get actions() {
-        return this._actions;
-      }
-      constructor(id, label, actions, cssClass) {
-        this.tooltip = "";
-        this.enabled = true;
-        this.checked = void 0;
-        this.id = id;
-        this.label = label;
-        this.class = cssClass;
-        this._actions = actions;
-      }
-      async run() {
-      }
-    };
-    EmptySubmenuAction = class _EmptySubmenuAction extends Action {
-      static {
-        this.ID = "vs.actions.empty";
-      }
-      constructor() {
-        super(_EmptySubmenuAction.ID, localize(28, "(empty)"), void 0, false);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/codiconsUtil.js
-function register(id, fontCharacter) {
-  if (isString(fontCharacter)) {
-    const val = _codiconFontCharacters[fontCharacter];
-    if (val === void 0) {
-      throw new Error(`${id} references an unknown codicon: ${fontCharacter}`);
-    }
-    fontCharacter = val;
-  }
-  _codiconFontCharacters[id] = fontCharacter;
-  return { id };
-}
-function getCodiconFontCharacters() {
-  return _codiconFontCharacters;
-}
-var _codiconFontCharacters;
-var init_codiconsUtil = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/codiconsUtil.js"() {
-    init_types();
-    _codiconFontCharacters = /* @__PURE__ */ Object.create(null);
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/codiconsLibrary.js
-var codiconsLibrary;
-var init_codiconsLibrary = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/codiconsLibrary.js"() {
-    init_codiconsUtil();
-    codiconsLibrary = {
-      add: register("add", 6e4),
-      plus: register("plus", 6e4),
-      gistNew: register("gist-new", 6e4),
-      repoCreate: register("repo-create", 6e4),
-      lightbulb: register("lightbulb", 60001),
-      lightBulb: register("light-bulb", 60001),
-      repo: register("repo", 60002),
-      repoDelete: register("repo-delete", 60002),
-      gistFork: register("gist-fork", 60003),
-      repoForked: register("repo-forked", 60003),
-      gitPullRequest: register("git-pull-request", 60004),
-      gitPullRequestAbandoned: register("git-pull-request-abandoned", 60004),
-      recordKeys: register("record-keys", 60005),
-      keyboard: register("keyboard", 60005),
-      tag: register("tag", 60006),
-      gitPullRequestLabel: register("git-pull-request-label", 60006),
-      tagAdd: register("tag-add", 60006),
-      tagRemove: register("tag-remove", 60006),
-      person: register("person", 60007),
-      personFollow: register("person-follow", 60007),
-      personOutline: register("person-outline", 60007),
-      personFilled: register("person-filled", 60007),
-      sourceControl: register("source-control", 60008),
-      mirror: register("mirror", 60009),
-      mirrorPublic: register("mirror-public", 60009),
-      star: register("star", 60010),
-      starAdd: register("star-add", 60010),
-      starDelete: register("star-delete", 60010),
-      starEmpty: register("star-empty", 60010),
-      comment: register("comment", 60011),
-      commentAdd: register("comment-add", 60011),
-      alert: register("alert", 60012),
-      warning: register("warning", 60012),
-      search: register("search", 60013),
-      searchSave: register("search-save", 60013),
-      logOut: register("log-out", 60014),
-      signOut: register("sign-out", 60014),
-      logIn: register("log-in", 60015),
-      signIn: register("sign-in", 60015),
-      eye: register("eye", 60016),
-      eyeUnwatch: register("eye-unwatch", 60016),
-      eyeWatch: register("eye-watch", 60016),
-      circleFilled: register("circle-filled", 60017),
-      primitiveDot: register("primitive-dot", 60017),
-      closeDirty: register("close-dirty", 60017),
-      debugBreakpoint: register("debug-breakpoint", 60017),
-      debugBreakpointDisabled: register("debug-breakpoint-disabled", 60017),
-      debugHint: register("debug-hint", 60017),
-      terminalDecorationSuccess: register("terminal-decoration-success", 60017),
-      primitiveSquare: register("primitive-square", 60018),
-      edit: register("edit", 60019),
-      pencil: register("pencil", 60019),
-      info: register("info", 60020),
-      issueOpened: register("issue-opened", 60020),
-      gistPrivate: register("gist-private", 60021),
-      gitForkPrivate: register("git-fork-private", 60021),
-      lock: register("lock", 60021),
-      mirrorPrivate: register("mirror-private", 60021),
-      close: register("close", 60022),
-      removeClose: register("remove-close", 60022),
-      x: register("x", 60022),
-      repoSync: register("repo-sync", 60023),
-      sync: register("sync", 60023),
-      clone: register("clone", 60024),
-      desktopDownload: register("desktop-download", 60024),
-      beaker: register("beaker", 60025),
-      microscope: register("microscope", 60025),
-      vm: register("vm", 60026),
-      deviceDesktop: register("device-desktop", 60026),
-      file: register("file", 60027),
-      more: register("more", 60028),
-      ellipsis: register("ellipsis", 60028),
-      kebabHorizontal: register("kebab-horizontal", 60028),
-      mailReply: register("mail-reply", 60029),
-      reply: register("reply", 60029),
-      organization: register("organization", 60030),
-      organizationFilled: register("organization-filled", 60030),
-      organizationOutline: register("organization-outline", 60030),
-      newFile: register("new-file", 60031),
-      fileAdd: register("file-add", 60031),
-      newFolder: register("new-folder", 60032),
-      fileDirectoryCreate: register("file-directory-create", 60032),
-      trash: register("trash", 60033),
-      trashcan: register("trashcan", 60033),
-      history: register("history", 60034),
-      clock: register("clock", 60034),
-      folder: register("folder", 60035),
-      fileDirectory: register("file-directory", 60035),
-      symbolFolder: register("symbol-folder", 60035),
-      logoGithub: register("logo-github", 60036),
-      markGithub: register("mark-github", 60036),
-      github: register("github", 60036),
-      terminal: register("terminal", 60037),
-      console: register("console", 60037),
-      repl: register("repl", 60037),
-      zap: register("zap", 60038),
-      symbolEvent: register("symbol-event", 60038),
-      error: register("error", 60039),
-      stop: register("stop", 60039),
-      variable: register("variable", 60040),
-      symbolVariable: register("symbol-variable", 60040),
-      array: register("array", 60042),
-      symbolArray: register("symbol-array", 60042),
-      symbolModule: register("symbol-module", 60043),
-      symbolPackage: register("symbol-package", 60043),
-      symbolNamespace: register("symbol-namespace", 60043),
-      symbolObject: register("symbol-object", 60043),
-      symbolMethod: register("symbol-method", 60044),
-      symbolFunction: register("symbol-function", 60044),
-      symbolConstructor: register("symbol-constructor", 60044),
-      symbolBoolean: register("symbol-boolean", 60047),
-      symbolNull: register("symbol-null", 60047),
-      symbolNumeric: register("symbol-numeric", 60048),
-      symbolNumber: register("symbol-number", 60048),
-      symbolStructure: register("symbol-structure", 60049),
-      symbolStruct: register("symbol-struct", 60049),
-      symbolParameter: register("symbol-parameter", 60050),
-      symbolTypeParameter: register("symbol-type-parameter", 60050),
-      symbolKey: register("symbol-key", 60051),
-      symbolText: register("symbol-text", 60051),
-      symbolReference: register("symbol-reference", 60052),
-      goToFile: register("go-to-file", 60052),
-      symbolEnum: register("symbol-enum", 60053),
-      symbolValue: register("symbol-value", 60053),
-      symbolRuler: register("symbol-ruler", 60054),
-      symbolUnit: register("symbol-unit", 60054),
-      activateBreakpoints: register("activate-breakpoints", 60055),
-      archive: register("archive", 60056),
-      arrowBoth: register("arrow-both", 60057),
-      arrowDown: register("arrow-down", 60058),
-      arrowLeft: register("arrow-left", 60059),
-      arrowRight: register("arrow-right", 60060),
-      arrowSmallDown: register("arrow-small-down", 60061),
-      arrowSmallLeft: register("arrow-small-left", 60062),
-      arrowSmallRight: register("arrow-small-right", 60063),
-      arrowSmallUp: register("arrow-small-up", 60064),
-      arrowUp: register("arrow-up", 60065),
-      bell: register("bell", 60066),
-      bold: register("bold", 60067),
-      book: register("book", 60068),
-      bookmark: register("bookmark", 60069),
-      debugBreakpointConditionalUnverified: register("debug-breakpoint-conditional-unverified", 60070),
-      debugBreakpointConditional: register("debug-breakpoint-conditional", 60071),
-      debugBreakpointConditionalDisabled: register("debug-breakpoint-conditional-disabled", 60071),
-      debugBreakpointDataUnverified: register("debug-breakpoint-data-unverified", 60072),
-      debugBreakpointData: register("debug-breakpoint-data", 60073),
-      debugBreakpointDataDisabled: register("debug-breakpoint-data-disabled", 60073),
-      debugBreakpointLogUnverified: register("debug-breakpoint-log-unverified", 60074),
-      debugBreakpointLog: register("debug-breakpoint-log", 60075),
-      debugBreakpointLogDisabled: register("debug-breakpoint-log-disabled", 60075),
-      briefcase: register("briefcase", 60076),
-      broadcast: register("broadcast", 60077),
-      browser: register("browser", 60078),
-      bug: register("bug", 60079),
-      calendar: register("calendar", 60080),
-      caseSensitive: register("case-sensitive", 60081),
-      check: register("check", 60082),
-      checklist: register("checklist", 60083),
-      chevronDown: register("chevron-down", 60084),
-      chevronLeft: register("chevron-left", 60085),
-      chevronRight: register("chevron-right", 60086),
-      chevronUp: register("chevron-up", 60087),
-      chromeClose: register("chrome-close", 60088),
-      chromeMaximize: register("chrome-maximize", 60089),
-      chromeMinimize: register("chrome-minimize", 60090),
-      chromeRestore: register("chrome-restore", 60091),
-      circleOutline: register("circle-outline", 60092),
-      circle: register("circle", 60092),
-      debugBreakpointUnverified: register("debug-breakpoint-unverified", 60092),
-      terminalDecorationIncomplete: register("terminal-decoration-incomplete", 60092),
-      circleSlash: register("circle-slash", 60093),
-      circuitBoard: register("circuit-board", 60094),
-      clearAll: register("clear-all", 60095),
-      clippy: register("clippy", 60096),
-      closeAll: register("close-all", 60097),
-      cloudDownload: register("cloud-download", 60098),
-      cloudUpload: register("cloud-upload", 60099),
-      code: register("code", 60100),
-      collapseAll: register("collapse-all", 60101),
-      colorMode: register("color-mode", 60102),
-      commentDiscussion: register("comment-discussion", 60103),
-      creditCard: register("credit-card", 60105),
-      dash: register("dash", 60108),
-      dashboard: register("dashboard", 60109),
-      database: register("database", 60110),
-      debugContinue: register("debug-continue", 60111),
-      debugDisconnect: register("debug-disconnect", 60112),
-      debugPause: register("debug-pause", 60113),
-      debugRestart: register("debug-restart", 60114),
-      debugStart: register("debug-start", 60115),
-      debugStepInto: register("debug-step-into", 60116),
-      debugStepOut: register("debug-step-out", 60117),
-      debugStepOver: register("debug-step-over", 60118),
-      debugStop: register("debug-stop", 60119),
-      debug: register("debug", 60120),
-      deviceCameraVideo: register("device-camera-video", 60121),
-      deviceCamera: register("device-camera", 60122),
-      deviceMobile: register("device-mobile", 60123),
-      diffAdded: register("diff-added", 60124),
-      diffIgnored: register("diff-ignored", 60125),
-      diffModified: register("diff-modified", 60126),
-      diffRemoved: register("diff-removed", 60127),
-      diffRenamed: register("diff-renamed", 60128),
-      diff: register("diff", 60129),
-      diffSidebyside: register("diff-sidebyside", 60129),
-      discard: register("discard", 60130),
-      editorLayout: register("editor-layout", 60131),
-      emptyWindow: register("empty-window", 60132),
-      exclude: register("exclude", 60133),
-      extensions: register("extensions", 60134),
-      eyeClosed: register("eye-closed", 60135),
-      fileBinary: register("file-binary", 60136),
-      fileCode: register("file-code", 60137),
-      fileMedia: register("file-media", 60138),
-      filePdf: register("file-pdf", 60139),
-      fileSubmodule: register("file-submodule", 60140),
-      fileSymlinkDirectory: register("file-symlink-directory", 60141),
-      fileSymlinkFile: register("file-symlink-file", 60142),
-      fileZip: register("file-zip", 60143),
-      files: register("files", 60144),
-      filter: register("filter", 60145),
-      flame: register("flame", 60146),
-      foldDown: register("fold-down", 60147),
-      foldUp: register("fold-up", 60148),
-      fold: register("fold", 60149),
-      folderActive: register("folder-active", 60150),
-      folderOpened: register("folder-opened", 60151),
-      gear: register("gear", 60152),
-      gift: register("gift", 60153),
-      gistSecret: register("gist-secret", 60154),
-      gist: register("gist", 60155),
-      gitCommit: register("git-commit", 60156),
-      gitCompare: register("git-compare", 60157),
-      compareChanges: register("compare-changes", 60157),
-      gitMerge: register("git-merge", 60158),
-      githubAction: register("github-action", 60159),
-      githubAlt: register("github-alt", 60160),
-      globe: register("globe", 60161),
-      grabber: register("grabber", 60162),
-      graph: register("graph", 60163),
-      gripper: register("gripper", 60164),
-      heart: register("heart", 60165),
-      home: register("home", 60166),
-      horizontalRule: register("horizontal-rule", 60167),
-      hubot: register("hubot", 60168),
-      inbox: register("inbox", 60169),
-      issueReopened: register("issue-reopened", 60171),
-      issues: register("issues", 60172),
-      italic: register("italic", 60173),
-      jersey: register("jersey", 60174),
-      json: register("json", 60175),
-      kebabVertical: register("kebab-vertical", 60176),
-      key: register("key", 60177),
-      law: register("law", 60178),
-      lightbulbAutofix: register("lightbulb-autofix", 60179),
-      linkExternal: register("link-external", 60180),
-      link: register("link", 60181),
-      listOrdered: register("list-ordered", 60182),
-      listUnordered: register("list-unordered", 60183),
-      liveShare: register("live-share", 60184),
-      loading: register("loading", 60185),
-      location: register("location", 60186),
-      mailRead: register("mail-read", 60187),
-      mail: register("mail", 60188),
-      markdown: register("markdown", 60189),
-      megaphone: register("megaphone", 60190),
-      mention: register("mention", 60191),
-      milestone: register("milestone", 60192),
-      gitPullRequestMilestone: register("git-pull-request-milestone", 60192),
-      mortarBoard: register("mortar-board", 60193),
-      move: register("move", 60194),
-      multipleWindows: register("multiple-windows", 60195),
-      mute: register("mute", 60196),
-      noNewline: register("no-newline", 60197),
-      note: register("note", 60198),
-      octoface: register("octoface", 60199),
-      openPreview: register("open-preview", 60200),
-      package: register("package", 60201),
-      paintcan: register("paintcan", 60202),
-      pin: register("pin", 60203),
-      play: register("play", 60204),
-      run: register("run", 60204),
-      plug: register("plug", 60205),
-      preserveCase: register("preserve-case", 60206),
-      preview: register("preview", 60207),
-      project: register("project", 60208),
-      pulse: register("pulse", 60209),
-      question: register("question", 60210),
-      quote: register("quote", 60211),
-      radioTower: register("radio-tower", 60212),
-      reactions: register("reactions", 60213),
-      references: register("references", 60214),
-      refresh: register("refresh", 60215),
-      regex: register("regex", 60216),
-      remoteExplorer: register("remote-explorer", 60217),
-      remote: register("remote", 60218),
-      remove: register("remove", 60219),
-      replaceAll: register("replace-all", 60220),
-      replace: register("replace", 60221),
-      repoClone: register("repo-clone", 60222),
-      repoForcePush: register("repo-force-push", 60223),
-      repoPull: register("repo-pull", 60224),
-      repoPush: register("repo-push", 60225),
-      report: register("report", 60226),
-      requestChanges: register("request-changes", 60227),
-      rocket: register("rocket", 60228),
-      rootFolderOpened: register("root-folder-opened", 60229),
-      rootFolder: register("root-folder", 60230),
-      rss: register("rss", 60231),
-      ruby: register("ruby", 60232),
-      saveAll: register("save-all", 60233),
-      saveAs: register("save-as", 60234),
-      save: register("save", 60235),
-      screenFull: register("screen-full", 60236),
-      screenNormal: register("screen-normal", 60237),
-      searchStop: register("search-stop", 60238),
-      server: register("server", 60240),
-      settingsGear: register("settings-gear", 60241),
-      settings: register("settings", 60242),
-      shield: register("shield", 60243),
-      smiley: register("smiley", 60244),
-      sortPrecedence: register("sort-precedence", 60245),
-      splitHorizontal: register("split-horizontal", 60246),
-      splitVertical: register("split-vertical", 60247),
-      squirrel: register("squirrel", 60248),
-      starFull: register("star-full", 60249),
-      starHalf: register("star-half", 60250),
-      symbolClass: register("symbol-class", 60251),
-      symbolColor: register("symbol-color", 60252),
-      symbolConstant: register("symbol-constant", 60253),
-      symbolEnumMember: register("symbol-enum-member", 60254),
-      symbolField: register("symbol-field", 60255),
-      symbolFile: register("symbol-file", 60256),
-      symbolInterface: register("symbol-interface", 60257),
-      symbolKeyword: register("symbol-keyword", 60258),
-      symbolMisc: register("symbol-misc", 60259),
-      symbolOperator: register("symbol-operator", 60260),
-      symbolProperty: register("symbol-property", 60261),
-      wrench: register("wrench", 60261),
-      wrenchSubaction: register("wrench-subaction", 60261),
-      symbolSnippet: register("symbol-snippet", 60262),
-      tasklist: register("tasklist", 60263),
-      telescope: register("telescope", 60264),
-      textSize: register("text-size", 60265),
-      threeBars: register("three-bars", 60266),
-      thumbsdown: register("thumbsdown", 60267),
-      thumbsup: register("thumbsup", 60268),
-      tools: register("tools", 60269),
-      triangleDown: register("triangle-down", 60270),
-      triangleLeft: register("triangle-left", 60271),
-      triangleRight: register("triangle-right", 60272),
-      triangleUp: register("triangle-up", 60273),
-      twitter: register("twitter", 60274),
-      unfold: register("unfold", 60275),
-      unlock: register("unlock", 60276),
-      unmute: register("unmute", 60277),
-      unverified: register("unverified", 60278),
-      verified: register("verified", 60279),
-      versions: register("versions", 60280),
-      vmActive: register("vm-active", 60281),
-      vmOutline: register("vm-outline", 60282),
-      vmRunning: register("vm-running", 60283),
-      watch: register("watch", 60284),
-      whitespace: register("whitespace", 60285),
-      wholeWord: register("whole-word", 60286),
-      window: register("window", 60287),
-      wordWrap: register("word-wrap", 60288),
-      zoomIn: register("zoom-in", 60289),
-      zoomOut: register("zoom-out", 60290),
-      listFilter: register("list-filter", 60291),
-      listFlat: register("list-flat", 60292),
-      listSelection: register("list-selection", 60293),
-      selection: register("selection", 60293),
-      listTree: register("list-tree", 60294),
-      debugBreakpointFunctionUnverified: register("debug-breakpoint-function-unverified", 60295),
-      debugBreakpointFunction: register("debug-breakpoint-function", 60296),
-      debugBreakpointFunctionDisabled: register("debug-breakpoint-function-disabled", 60296),
-      debugStackframeActive: register("debug-stackframe-active", 60297),
-      circleSmallFilled: register("circle-small-filled", 60298),
-      debugStackframeDot: register("debug-stackframe-dot", 60298),
-      terminalDecorationMark: register("terminal-decoration-mark", 60298),
-      debugStackframe: register("debug-stackframe", 60299),
-      debugStackframeFocused: register("debug-stackframe-focused", 60299),
-      debugBreakpointUnsupported: register("debug-breakpoint-unsupported", 60300),
-      symbolString: register("symbol-string", 60301),
-      debugReverseContinue: register("debug-reverse-continue", 60302),
-      debugStepBack: register("debug-step-back", 60303),
-      debugRestartFrame: register("debug-restart-frame", 60304),
-      debugAlt: register("debug-alt", 60305),
-      callIncoming: register("call-incoming", 60306),
-      callOutgoing: register("call-outgoing", 60307),
-      menu: register("menu", 60308),
-      expandAll: register("expand-all", 60309),
-      feedback: register("feedback", 60310),
-      gitPullRequestReviewer: register("git-pull-request-reviewer", 60310),
-      groupByRefType: register("group-by-ref-type", 60311),
-      ungroupByRefType: register("ungroup-by-ref-type", 60312),
-      account: register("account", 60313),
-      gitPullRequestAssignee: register("git-pull-request-assignee", 60313),
-      bellDot: register("bell-dot", 60314),
-      debugConsole: register("debug-console", 60315),
-      library: register("library", 60316),
-      output: register("output", 60317),
-      runAll: register("run-all", 60318),
-      syncIgnored: register("sync-ignored", 60319),
-      pinned: register("pinned", 60320),
-      githubInverted: register("github-inverted", 60321),
-      serverProcess: register("server-process", 60322),
-      serverEnvironment: register("server-environment", 60323),
-      pass: register("pass", 60324),
-      issueClosed: register("issue-closed", 60324),
-      stopCircle: register("stop-circle", 60325),
-      playCircle: register("play-circle", 60326),
-      record: register("record", 60327),
-      debugAltSmall: register("debug-alt-small", 60328),
-      vmConnect: register("vm-connect", 60329),
-      cloud: register("cloud", 60330),
-      merge: register("merge", 60331),
-      export: register("export", 60332),
-      graphLeft: register("graph-left", 60333),
-      magnet: register("magnet", 60334),
-      notebook: register("notebook", 60335),
-      redo: register("redo", 60336),
-      checkAll: register("check-all", 60337),
-      pinnedDirty: register("pinned-dirty", 60338),
-      passFilled: register("pass-filled", 60339),
-      circleLargeFilled: register("circle-large-filled", 60340),
-      circleLarge: register("circle-large", 60341),
-      circleLargeOutline: register("circle-large-outline", 60341),
-      combine: register("combine", 60342),
-      gather: register("gather", 60342),
-      table: register("table", 60343),
-      variableGroup: register("variable-group", 60344),
-      typeHierarchy: register("type-hierarchy", 60345),
-      typeHierarchySub: register("type-hierarchy-sub", 60346),
-      typeHierarchySuper: register("type-hierarchy-super", 60347),
-      gitPullRequestCreate: register("git-pull-request-create", 60348),
-      runAbove: register("run-above", 60349),
-      runBelow: register("run-below", 60350),
-      notebookTemplate: register("notebook-template", 60351),
-      debugRerun: register("debug-rerun", 60352),
-      workspaceTrusted: register("workspace-trusted", 60353),
-      workspaceUntrusted: register("workspace-untrusted", 60354),
-      workspaceUnknown: register("workspace-unknown", 60355),
-      terminalCmd: register("terminal-cmd", 60356),
-      terminalDebian: register("terminal-debian", 60357),
-      terminalLinux: register("terminal-linux", 60358),
-      terminalPowershell: register("terminal-powershell", 60359),
-      terminalTmux: register("terminal-tmux", 60360),
-      terminalUbuntu: register("terminal-ubuntu", 60361),
-      terminalBash: register("terminal-bash", 60362),
-      arrowSwap: register("arrow-swap", 60363),
-      copy: register("copy", 60364),
-      personAdd: register("person-add", 60365),
-      filterFilled: register("filter-filled", 60366),
-      wand: register("wand", 60367),
-      debugLineByLine: register("debug-line-by-line", 60368),
-      inspect: register("inspect", 60369),
-      layers: register("layers", 60370),
-      layersDot: register("layers-dot", 60371),
-      layersActive: register("layers-active", 60372),
-      compass: register("compass", 60373),
-      compassDot: register("compass-dot", 60374),
-      compassActive: register("compass-active", 60375),
-      azure: register("azure", 60376),
-      issueDraft: register("issue-draft", 60377),
-      gitPullRequestClosed: register("git-pull-request-closed", 60378),
-      gitPullRequestDraft: register("git-pull-request-draft", 60379),
-      debugAll: register("debug-all", 60380),
-      debugCoverage: register("debug-coverage", 60381),
-      runErrors: register("run-errors", 60382),
-      folderLibrary: register("folder-library", 60383),
-      debugContinueSmall: register("debug-continue-small", 60384),
-      beakerStop: register("beaker-stop", 60385),
-      graphLine: register("graph-line", 60386),
-      graphScatter: register("graph-scatter", 60387),
-      pieChart: register("pie-chart", 60388),
-      bracket: register("bracket", 60175),
-      bracketDot: register("bracket-dot", 60389),
-      bracketError: register("bracket-error", 60390),
-      lockSmall: register("lock-small", 60391),
-      azureDevops: register("azure-devops", 60392),
-      verifiedFilled: register("verified-filled", 60393),
-      newline: register("newline", 60394),
-      layout: register("layout", 60395),
-      layoutActivitybarLeft: register("layout-activitybar-left", 60396),
-      layoutActivitybarRight: register("layout-activitybar-right", 60397),
-      layoutPanelLeft: register("layout-panel-left", 60398),
-      layoutPanelCenter: register("layout-panel-center", 60399),
-      layoutPanelJustify: register("layout-panel-justify", 60400),
-      layoutPanelRight: register("layout-panel-right", 60401),
-      layoutPanel: register("layout-panel", 60402),
-      layoutSidebarLeft: register("layout-sidebar-left", 60403),
-      layoutSidebarRight: register("layout-sidebar-right", 60404),
-      layoutStatusbar: register("layout-statusbar", 60405),
-      layoutMenubar: register("layout-menubar", 60406),
-      layoutCentered: register("layout-centered", 60407),
-      target: register("target", 60408),
-      indent: register("indent", 60409),
-      recordSmall: register("record-small", 60410),
-      errorSmall: register("error-small", 60411),
-      terminalDecorationError: register("terminal-decoration-error", 60411),
-      arrowCircleDown: register("arrow-circle-down", 60412),
-      arrowCircleLeft: register("arrow-circle-left", 60413),
-      arrowCircleRight: register("arrow-circle-right", 60414),
-      arrowCircleUp: register("arrow-circle-up", 60415),
-      layoutSidebarRightOff: register("layout-sidebar-right-off", 60416),
-      layoutPanelOff: register("layout-panel-off", 60417),
-      layoutSidebarLeftOff: register("layout-sidebar-left-off", 60418),
-      blank: register("blank", 60419),
-      heartFilled: register("heart-filled", 60420),
-      map: register("map", 60421),
-      mapHorizontal: register("map-horizontal", 60421),
-      foldHorizontal: register("fold-horizontal", 60421),
-      mapFilled: register("map-filled", 60422),
-      mapHorizontalFilled: register("map-horizontal-filled", 60422),
-      foldHorizontalFilled: register("fold-horizontal-filled", 60422),
-      circleSmall: register("circle-small", 60423),
-      bellSlash: register("bell-slash", 60424),
-      bellSlashDot: register("bell-slash-dot", 60425),
-      commentUnresolved: register("comment-unresolved", 60426),
-      gitPullRequestGoToChanges: register("git-pull-request-go-to-changes", 60427),
-      gitPullRequestNewChanges: register("git-pull-request-new-changes", 60428),
-      searchFuzzy: register("search-fuzzy", 60429),
-      commentDraft: register("comment-draft", 60430),
-      send: register("send", 60431),
-      sparkle: register("sparkle", 60432),
-      insert: register("insert", 60433),
-      mic: register("mic", 60434),
-      thumbsdownFilled: register("thumbsdown-filled", 60435),
-      thumbsupFilled: register("thumbsup-filled", 60436),
-      coffee: register("coffee", 60437),
-      snake: register("snake", 60438),
-      game: register("game", 60439),
-      vr: register("vr", 60440),
-      chip: register("chip", 60441),
-      piano: register("piano", 60442),
-      music: register("music", 60443),
-      micFilled: register("mic-filled", 60444),
-      repoFetch: register("repo-fetch", 60445),
-      copilot: register("copilot", 60446),
-      lightbulbSparkle: register("lightbulb-sparkle", 60447),
-      robot: register("robot", 60448),
-      sparkleFilled: register("sparkle-filled", 60449),
-      diffSingle: register("diff-single", 60450),
-      diffMultiple: register("diff-multiple", 60451),
-      surroundWith: register("surround-with", 60452),
-      share: register("share", 60453),
-      gitStash: register("git-stash", 60454),
-      gitStashApply: register("git-stash-apply", 60455),
-      gitStashPop: register("git-stash-pop", 60456),
-      vscode: register("vscode", 60457),
-      vscodeInsiders: register("vscode-insiders", 60458),
-      codeOss: register("code-oss", 60459),
-      runCoverage: register("run-coverage", 60460),
-      runAllCoverage: register("run-all-coverage", 60461),
-      coverage: register("coverage", 60462),
-      githubProject: register("github-project", 60463),
-      mapVertical: register("map-vertical", 60464),
-      foldVertical: register("fold-vertical", 60464),
-      mapVerticalFilled: register("map-vertical-filled", 60465),
-      foldVerticalFilled: register("fold-vertical-filled", 60465),
-      goToSearch: register("go-to-search", 60466),
-      percentage: register("percentage", 60467),
-      sortPercentage: register("sort-percentage", 60467),
-      attach: register("attach", 60468),
-      goToEditingSession: register("go-to-editing-session", 60469),
-      editSession: register("edit-session", 60470),
-      codeReview: register("code-review", 60471),
-      copilotWarning: register("copilot-warning", 60472),
-      python: register("python", 60473),
-      copilotLarge: register("copilot-large", 60474),
-      copilotWarningLarge: register("copilot-warning-large", 60475),
-      keyboardTab: register("keyboard-tab", 60476),
-      copilotBlocked: register("copilot-blocked", 60477),
-      copilotNotConnected: register("copilot-not-connected", 60478),
-      flag: register("flag", 60479),
-      lightbulbEmpty: register("lightbulb-empty", 60480),
-      symbolMethodArrow: register("symbol-method-arrow", 60481),
-      copilotUnavailable: register("copilot-unavailable", 60482),
-      repoPinned: register("repo-pinned", 60483),
-      keyboardTabAbove: register("keyboard-tab-above", 60484),
-      keyboardTabBelow: register("keyboard-tab-below", 60485),
-      gitPullRequestDone: register("git-pull-request-done", 60486),
-      mcp: register("mcp", 60487),
-      extensionsLarge: register("extensions-large", 60488),
-      layoutPanelDock: register("layout-panel-dock", 60489),
-      layoutSidebarLeftDock: register("layout-sidebar-left-dock", 60490),
-      layoutSidebarRightDock: register("layout-sidebar-right-dock", 60491),
-      copilotInProgress: register("copilot-in-progress", 60492),
-      copilotError: register("copilot-error", 60493),
-      copilotSuccess: register("copilot-success", 60494),
-      chatSparkle: register("chat-sparkle", 60495),
-      searchSparkle: register("search-sparkle", 60496),
-      editSparkle: register("edit-sparkle", 60497),
-      copilotSnooze: register("copilot-snooze", 60498),
-      sendToRemoteAgent: register("send-to-remote-agent", 60499),
-      commentDiscussionSparkle: register("comment-discussion-sparkle", 60500),
-      chatSparkleWarning: register("chat-sparkle-warning", 60501),
-      chatSparkleError: register("chat-sparkle-error", 60502),
-      collection: register("collection", 60503),
-      newCollection: register("new-collection", 60504),
-      thinking: register("thinking", 60505),
-      build: register("build", 60506),
-      commentDiscussionQuote: register("comment-discussion-quote", 60507),
-      cursor: register("cursor", 60508),
-      eraser: register("eraser", 60509),
-      fileText: register("file-text", 60510),
-      gitLens: register("git-lens", 60511),
-      quotes: register("quotes", 60512),
-      rename: register("rename", 60513),
-      runWithDeps: register("run-with-deps", 60514),
-      debugConnected: register("debug-connected", 60515),
-      strikethrough: register("strikethrough", 60516),
-      openInProduct: register("open-in-product", 60517),
-      indexZero: register("index-zero", 60518),
-      agent: register("agent", 60519),
-      editCode: register("edit-code", 60520),
-      repoSelected: register("repo-selected", 60521),
-      skip: register("skip", 60522),
-      mergeInto: register("merge-into", 60523),
-      gitBranchChanges: register("git-branch-changes", 60524),
-      gitBranchStagedChanges: register("git-branch-staged-changes", 60525),
-      gitBranchConflicts: register("git-branch-conflicts", 60526),
-      gitBranch: register("git-branch", 60527),
-      gitBranchCreate: register("git-branch-create", 60527),
-      gitBranchDelete: register("git-branch-delete", 60527),
-      searchLarge: register("search-large", 60528),
-      terminalGitBash: register("terminal-git-bash", 60529)
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/codicons.js
-var codiconsDerived, Codicon;
-var init_codicons = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/codicons.js"() {
-    init_codiconsUtil();
-    init_codiconsLibrary();
-    codiconsDerived = {
-      dialogError: register("dialog-error", "error"),
-      dialogWarning: register("dialog-warning", "warning"),
-      dialogInfo: register("dialog-info", "info"),
-      dialogClose: register("dialog-close", "close"),
-      treeItemExpanded: register("tree-item-expanded", "chevron-down"),
-      // collapsed is done with rotation
-      treeFilterOnTypeOn: register("tree-filter-on-type-on", "list-filter"),
-      treeFilterOnTypeOff: register("tree-filter-on-type-off", "list-selection"),
-      treeFilterClear: register("tree-filter-clear", "close"),
-      treeItemLoading: register("tree-item-loading", "loading"),
-      menuSelection: register("menu-selection", "check"),
-      menuSubmenu: register("menu-submenu", "chevron-right"),
-      menuBarMore: register("menubar-more", "more"),
-      scrollbarButtonLeft: register("scrollbar-button-left", "triangle-left"),
-      scrollbarButtonRight: register("scrollbar-button-right", "triangle-right"),
-      scrollbarButtonUp: register("scrollbar-button-up", "triangle-up"),
-      scrollbarButtonDown: register("scrollbar-button-down", "triangle-down"),
-      toolBarMore: register("toolbar-more", "more"),
-      quickInputBack: register("quick-input-back", "arrow-left"),
-      dropDownButton: register("drop-down-button", 60084),
-      symbolCustomColor: register("symbol-customcolor", 60252),
-      exportIcon: register("export", 60332),
-      workspaceUnspecified: register("workspace-unspecified", 60355),
-      newLine: register("newline", 60394),
-      thumbsDownFilled: register("thumbsdown-filled", 60435),
-      thumbsUpFilled: register("thumbsup-filled", 60436),
-      gitFetch: register("git-fetch", 60445),
-      lightbulbSparkleAutofix: register("lightbulb-sparkle-autofix", 60447),
-      debugBreakpointPending: register("debug-breakpoint-pending", 60377)
-    };
-    Codicon = {
-      ...codiconsLibrary,
-      ...codiconsDerived
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/themables.js
-var ThemeColor, ThemeIcon;
-var init_themables = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/themables.js"() {
-    init_codicons();
-    (function(ThemeColor2) {
-      function isThemeColor(obj) {
-        return !!obj && typeof obj === "object" && typeof obj.id === "string";
-      }
-      ThemeColor2.isThemeColor = isThemeColor;
-    })(ThemeColor || (ThemeColor = {}));
-    (function(ThemeIcon2) {
-      ThemeIcon2.iconNameSegment = "[A-Za-z0-9]+";
-      ThemeIcon2.iconNameExpression = "[A-Za-z0-9-]+";
-      ThemeIcon2.iconModifierExpression = "~[A-Za-z]+";
-      ThemeIcon2.iconNameCharacter = "[A-Za-z0-9~-]";
-      const ThemeIconIdRegex = new RegExp(`^(${ThemeIcon2.iconNameExpression})(${ThemeIcon2.iconModifierExpression})?$`);
-      function asClassNameArray(icon) {
-        const match2 = ThemeIconIdRegex.exec(icon.id);
-        if (!match2) {
-          return asClassNameArray(Codicon.error);
-        }
-        const [, id, modifier] = match2;
-        const classNames2 = ["codicon", "codicon-" + id];
-        if (modifier) {
-          classNames2.push("codicon-modifier-" + modifier.substring(1));
-        }
-        return classNames2;
-      }
-      ThemeIcon2.asClassNameArray = asClassNameArray;
-      function asClassName(icon) {
-        return asClassNameArray(icon).join(" ");
-      }
-      ThemeIcon2.asClassName = asClassName;
-      function asCSSSelector(icon) {
-        return "." + asClassNameArray(icon).join(".");
-      }
-      ThemeIcon2.asCSSSelector = asCSSSelector;
-      function isThemeIcon(obj) {
-        return !!obj && typeof obj === "object" && typeof obj.id === "string" && (typeof obj.color === "undefined" || ThemeColor.isThemeColor(obj.color));
-      }
-      ThemeIcon2.isThemeIcon = isThemeIcon;
-      const _regexFromString = new RegExp(`^\\$\\((${ThemeIcon2.iconNameExpression}(?:${ThemeIcon2.iconModifierExpression})?)\\)$`);
-      function fromString(str) {
-        const match2 = _regexFromString.exec(str);
-        if (!match2) {
-          return void 0;
-        }
-        const [, name] = match2;
-        return { id: name };
-      }
-      ThemeIcon2.fromString = fromString;
-      function fromId(id) {
-        return { id };
-      }
-      ThemeIcon2.fromId = fromId;
-      function modify(icon, modifier) {
-        let id = icon.id;
-        const tildeIndex = id.lastIndexOf("~");
-        if (tildeIndex !== -1) {
-          id = id.substring(0, tildeIndex);
-        }
-        if (modifier) {
-          id = `${id}~${modifier}`;
-        }
-        return { id };
-      }
-      ThemeIcon2.modify = modify;
-      function getModifier(icon) {
-        const tildeIndex = icon.id.lastIndexOf("~");
-        if (tildeIndex !== -1) {
-          return icon.id.substring(tildeIndex + 1);
-        }
-        return void 0;
-      }
-      ThemeIcon2.getModifier = getModifier;
-      function isEqual2(ti1, ti2) {
-        return ti1.id === ti2.id && ti1.color?.id === ti2.color?.id;
-      }
-      ThemeIcon2.isEqual = isEqual2;
-      function isFile(icon) {
-        return icon?.id === Codicon.file.id;
-      }
-      ThemeIcon2.isFile = isFile;
-      function isFolder(icon) {
-        return icon?.id === Codicon.folder.id;
-      }
-      ThemeIcon2.isFolder = isFolder;
-    })(ThemeIcon || (ThemeIcon = {}));
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/platform/commands/common/commands.js
-var ICommandService, CommandsRegistry;
-var init_commands = __esm({
-  "../node_modules/monaco-editor/esm/vs/platform/commands/common/commands.js"() {
-    init_event();
-    init_iterator();
-    init_lifecycle();
-    init_linkedList();
-    init_types();
-    init_instantiation();
-    ICommandService = createDecorator("commandService");
-    CommandsRegistry = new class {
-      constructor() {
-        this._commands = /* @__PURE__ */ new Map();
-        this._onDidRegisterCommand = new Emitter();
-        this.onDidRegisterCommand = this._onDidRegisterCommand.event;
-      }
-      registerCommand(idOrCommand, handler) {
-        if (!idOrCommand) {
-          throw new Error(`invalid command`);
-        }
-        if (typeof idOrCommand === "string") {
-          if (!handler) {
-            throw new Error(`invalid command`);
-          }
-          return this.registerCommand({ id: idOrCommand, handler });
-        }
-        if (idOrCommand.metadata && Array.isArray(idOrCommand.metadata.args)) {
-          const constraints = [];
-          for (const arg of idOrCommand.metadata.args) {
-            constraints.push(arg.constraint);
-          }
-          const actualHandler = idOrCommand.handler;
-          idOrCommand.handler = function(accessor, ...args) {
-            validateConstraints(args, constraints);
-            return actualHandler(accessor, ...args);
-          };
-        }
-        const { id } = idOrCommand;
-        let commands = this._commands.get(id);
-        if (!commands) {
-          commands = new LinkedList();
-          this._commands.set(id, commands);
-        }
-        const removeFn = commands.unshift(idOrCommand);
-        const ret = toDisposable(() => {
-          removeFn();
-          const command = this._commands.get(id);
-          if (command?.isEmpty()) {
-            this._commands.delete(id);
-          }
-        });
-        this._onDidRegisterCommand.fire(id);
-        return markAsSingleton(ret);
-      }
-      registerCommandAlias(oldId, newId) {
-        return CommandsRegistry.registerCommand(oldId, (accessor, ...args) => accessor.get(ICommandService).executeCommand(newId, ...args));
-      }
-      getCommand(id) {
-        const list2 = this._commands.get(id);
-        if (!list2 || list2.isEmpty()) {
-          return void 0;
-        }
-        return Iterable.first(list2);
-      }
-      getCommands() {
-        const result = /* @__PURE__ */ new Map();
-        for (const key of this._commands.keys()) {
-          const command = this.getCommand(key);
-          if (command) {
-            result.set(key, command);
-          }
-        }
-        return result;
-      }
-    }();
-    CommandsRegistry.registerCommand("noop", () => {
-    });
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/platform/contextkey/common/scanner.js
-function hintDidYouMean(...meant) {
-  switch (meant.length) {
-    case 1:
-      return localize(1693, "Did you mean {0}?", meant[0]);
-    case 2:
-      return localize(1694, "Did you mean {0} or {1}?", meant[0], meant[1]);
-    case 3:
-      return localize(1695, "Did you mean {0}, {1} or {2}?", meant[0], meant[1], meant[2]);
-    default:
-      return void 0;
-  }
-}
-var hintDidYouForgetToOpenOrCloseQuote, hintDidYouForgetToEscapeSlash, Scanner;
-var init_scanner = __esm({
-  "../node_modules/monaco-editor/esm/vs/platform/contextkey/common/scanner.js"() {
-    init_errors();
-    init_nls();
-    hintDidYouForgetToOpenOrCloseQuote = localize(1696, "Did you forget to open or close the quote?");
-    hintDidYouForgetToEscapeSlash = localize(1697, "Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\/'.");
-    Scanner = class _Scanner {
-      constructor() {
-        this._input = "";
-        this._start = 0;
-        this._current = 0;
-        this._tokens = [];
-        this._errors = [];
-        this.stringRe = /[a-zA-Z0-9_<>\-\./\\:\*\?\+\[\]\^,#@;"%\$\p{L}-]+/uy;
-      }
-      static getLexeme(token) {
-        switch (token.type) {
-          case 0:
-            return "(";
-          case 1:
-            return ")";
-          case 2:
-            return "!";
-          case 3:
-            return token.isTripleEq ? "===" : "==";
-          case 4:
-            return token.isTripleEq ? "!==" : "!=";
-          case 5:
-            return "<";
-          case 6:
-            return "<=";
-          case 7:
-            return ">=";
-          case 8:
-            return ">=";
-          case 9:
-            return "=~";
-          case 10:
-            return token.lexeme;
-          case 11:
-            return "true";
-          case 12:
-            return "false";
-          case 13:
-            return "in";
-          case 14:
-            return "not";
-          case 15:
-            return "&&";
-          case 16:
-            return "||";
-          case 17:
-            return token.lexeme;
-          case 18:
-            return token.lexeme;
-          case 19:
-            return token.lexeme;
-          case 20:
-            return "EOF";
-          default:
-            throw illegalState(`unhandled token type: ${JSON.stringify(token)}; have you forgotten to add a case?`);
-        }
-      }
-      static {
-        this._regexFlags = new Set(["i", "g", "s", "m", "y", "u"].map((ch) => ch.charCodeAt(0)));
-      }
-      static {
-        this._keywords = /* @__PURE__ */ new Map([
-          [
-            "not",
-            14
-            /* TokenType.Not */
-          ],
-          [
-            "in",
-            13
-            /* TokenType.In */
-          ],
-          [
-            "false",
-            12
-            /* TokenType.False */
-          ],
-          [
-            "true",
-            11
-            /* TokenType.True */
-          ]
-        ]);
-      }
-      reset(value) {
-        this._input = value;
-        this._start = 0;
-        this._current = 0;
-        this._tokens = [];
-        this._errors = [];
-        return this;
-      }
-      scan() {
-        while (!this._isAtEnd()) {
-          this._start = this._current;
-          const ch = this._advance();
-          switch (ch) {
-            case 40:
-              this._addToken(
-                0
-                /* TokenType.LParen */
-              );
-              break;
-            case 41:
-              this._addToken(
-                1
-                /* TokenType.RParen */
-              );
-              break;
-            case 33:
-              if (this._match(
-                61
-                /* CharCode.Equals */
-              )) {
-                const isTripleEq = this._match(
-                  61
-                  /* CharCode.Equals */
-                );
-                this._tokens.push({ type: 4, offset: this._start, isTripleEq });
-              } else {
-                this._addToken(
-                  2
-                  /* TokenType.Neg */
-                );
-              }
-              break;
-            case 39:
-              this._quotedString();
-              break;
-            case 47:
-              this._regex();
-              break;
-            case 61:
-              if (this._match(
-                61
-                /* CharCode.Equals */
-              )) {
-                const isTripleEq = this._match(
-                  61
-                  /* CharCode.Equals */
-                );
-                this._tokens.push({ type: 3, offset: this._start, isTripleEq });
-              } else if (this._match(
-                126
-                /* CharCode.Tilde */
-              )) {
-                this._addToken(
-                  9
-                  /* TokenType.RegexOp */
-                );
-              } else {
-                this._error(hintDidYouMean("==", "=~"));
-              }
-              break;
-            case 60:
-              this._addToken(
-                this._match(
-                  61
-                  /* CharCode.Equals */
-                ) ? 6 : 5
-                /* TokenType.Lt */
-              );
-              break;
-            case 62:
-              this._addToken(
-                this._match(
-                  61
-                  /* CharCode.Equals */
-                ) ? 8 : 7
-                /* TokenType.Gt */
-              );
-              break;
-            case 38:
-              if (this._match(
-                38
-                /* CharCode.Ampersand */
-              )) {
-                this._addToken(
-                  15
-                  /* TokenType.And */
-                );
-              } else {
-                this._error(hintDidYouMean("&&"));
-              }
-              break;
-            case 124:
-              if (this._match(
-                124
-                /* CharCode.Pipe */
-              )) {
-                this._addToken(
-                  16
-                  /* TokenType.Or */
-                );
-              } else {
-                this._error(hintDidYouMean("||"));
-              }
-              break;
-            // TODO@ulugbekna: 1) rewrite using a regex 2) reconsider what characters are considered whitespace, including unicode, nbsp, etc.
-            case 32:
-            case 13:
-            case 9:
-            case 10:
-            case 160:
-              break;
-            default:
-              this._string();
-          }
-        }
-        this._start = this._current;
-        this._addToken(
-          20
-          /* TokenType.EOF */
-        );
-        return Array.from(this._tokens);
-      }
-      _match(expected) {
-        if (this._isAtEnd()) {
-          return false;
-        }
-        if (this._input.charCodeAt(this._current) !== expected) {
-          return false;
-        }
-        this._current++;
-        return true;
-      }
-      _advance() {
-        return this._input.charCodeAt(this._current++);
-      }
-      _peek() {
-        return this._isAtEnd() ? 0 : this._input.charCodeAt(this._current);
-      }
-      _addToken(type) {
-        this._tokens.push({ type, offset: this._start });
-      }
-      _error(additional) {
-        const offset = this._start;
-        const lexeme = this._input.substring(this._start, this._current);
-        const errToken = { type: 19, offset: this._start, lexeme };
-        this._errors.push({ offset, lexeme, additionalInfo: additional });
-        this._tokens.push(errToken);
-      }
-      _string() {
-        this.stringRe.lastIndex = this._start;
-        const match2 = this.stringRe.exec(this._input);
-        if (match2) {
-          this._current = this._start + match2[0].length;
-          const lexeme = this._input.substring(this._start, this._current);
-          const keyword = _Scanner._keywords.get(lexeme);
-          if (keyword) {
-            this._addToken(keyword);
-          } else {
-            this._tokens.push({ type: 17, lexeme, offset: this._start });
-          }
-        }
-      }
-      // captures the lexeme without the leading and trailing '
-      _quotedString() {
-        while (this._peek() !== 39 && !this._isAtEnd()) {
-          this._advance();
-        }
-        if (this._isAtEnd()) {
-          this._error(hintDidYouForgetToOpenOrCloseQuote);
-          return;
-        }
-        this._advance();
-        this._tokens.push({ type: 18, lexeme: this._input.substring(this._start + 1, this._current - 1), offset: this._start + 1 });
-      }
-      /*
-       * Lexing a regex expression: /.../[igsmyu]*
-       * Based on https://github.com/microsoft/TypeScript/blob/9247ef115e617805983740ba795d7a8164babf89/src/compiler/scanner.ts#L2129-L2181
-       *
-       * Note that we want slashes within a regex to be escaped, e.g., /file:\\/\\/\\// should match `file:///`
-       */
-      _regex() {
-        let p = this._current;
-        let inEscape = false;
-        let inCharacterClass = false;
-        while (true) {
-          if (p >= this._input.length) {
-            this._current = p;
-            this._error(hintDidYouForgetToEscapeSlash);
-            return;
-          }
-          const ch = this._input.charCodeAt(p);
-          if (inEscape) {
-            inEscape = false;
-          } else if (ch === 47 && !inCharacterClass) {
-            p++;
-            break;
-          } else if (ch === 91) {
-            inCharacterClass = true;
-          } else if (ch === 92) {
-            inEscape = true;
-          } else if (ch === 93) {
-            inCharacterClass = false;
-          }
-          p++;
-        }
-        while (p < this._input.length && _Scanner._regexFlags.has(this._input.charCodeAt(p))) {
-          p++;
-        }
-        this._current = p;
-        const lexeme = this._input.substring(this._start, this._current);
-        this._tokens.push({ type: 10, lexeme, offset: this._start });
-      }
-      _isAtEnd() {
-        return this._current >= this._input.length;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/platform/contextkey/common/contextkey.js
-function expressionsAreEqualWithConstantSubstitution(a, b) {
-  const aExpr = a ? a.substituteConstants() : void 0;
-  const bExpr = b ? b.substituteConstants() : void 0;
-  if (!aExpr && !bExpr) {
-    return true;
-  }
-  if (!aExpr || !bExpr) {
-    return false;
-  }
-  return aExpr.equals(bExpr);
-}
-function cmp(a, b) {
-  return a.cmp(b);
-}
-function withFloatOrStr(value, callback) {
-  if (typeof value === "string") {
-    const n2 = parseFloat(value);
-    if (!isNaN(n2)) {
-      value = n2;
-    }
-  }
-  if (typeof value === "string" || typeof value === "number") {
-    return callback(value);
-  }
-  return ContextKeyFalseExpr.INSTANCE;
-}
-function eliminateConstantsInArray(arr) {
-  let newArr = null;
-  for (let i2 = 0, len = arr.length; i2 < len; i2++) {
-    const newExpr = arr[i2].substituteConstants();
-    if (arr[i2] !== newExpr) {
-      if (newArr === null) {
-        newArr = [];
-        for (let j = 0; j < i2; j++) {
-          newArr[j] = arr[j];
-        }
-      }
-    }
-    if (newArr !== null) {
-      newArr[i2] = newExpr;
-    }
-  }
-  if (newArr === null) {
-    return arr;
-  }
-  return newArr;
-}
-function cmp1(key1, key2) {
-  if (key1 < key2) {
-    return -1;
-  }
-  if (key1 > key2) {
-    return 1;
-  }
-  return 0;
-}
-function cmp2(key1, value1, key2, value2) {
-  if (key1 < key2) {
-    return -1;
-  }
-  if (key1 > key2) {
-    return 1;
-  }
-  if (value1 < value2) {
-    return -1;
-  }
-  if (value1 > value2) {
-    return 1;
-  }
-  return 0;
-}
-function implies(p, q) {
-  if (p.type === 0 || q.type === 1) {
-    return true;
-  }
-  if (p.type === 9) {
-    if (q.type === 9) {
-      return allElementsIncluded(p.expr, q.expr);
-    }
-    return false;
-  }
-  if (q.type === 9) {
-    for (const element of q.expr) {
-      if (implies(p, element)) {
-        return true;
-      }
-    }
-    return false;
-  }
-  if (p.type === 6) {
-    if (q.type === 6) {
-      return allElementsIncluded(q.expr, p.expr);
-    }
-    for (const element of p.expr) {
-      if (implies(element, q)) {
-        return true;
-      }
-    }
-    return false;
-  }
-  return p.equals(q);
-}
-function allElementsIncluded(p, q) {
-  let pIndex = 0;
-  let qIndex = 0;
-  while (pIndex < p.length && qIndex < q.length) {
-    const cmp3 = p[pIndex].cmp(q[qIndex]);
-    if (cmp3 < 0) {
-      return false;
-    } else if (cmp3 === 0) {
-      pIndex++;
-      qIndex++;
-    } else {
-      qIndex++;
-    }
-  }
-  return pIndex === p.length;
-}
-function getTerminals(node) {
-  if (node.type === 9) {
-    return node.expr;
-  }
-  return [node];
-}
-var CONSTANT_VALUES, hasOwnProperty, defaultConfig, errorEmptyString, hintEmptyString, errorNoInAfterNot, errorClosingParenthesis, errorUnexpectedToken, hintUnexpectedToken, errorUnexpectedEOF, hintUnexpectedEOF, Parser, ContextKeyExpr, ContextKeyFalseExpr, ContextKeyTrueExpr, ContextKeyDefinedExpr, ContextKeyEqualsExpr, ContextKeyInExpr, ContextKeyNotInExpr, ContextKeyNotEqualsExpr, ContextKeyNotExpr, ContextKeyGreaterExpr, ContextKeyGreaterEqualsExpr, ContextKeySmallerExpr, ContextKeySmallerEqualsExpr, ContextKeyRegexExpr, ContextKeyNotRegexExpr, ContextKeyAndExpr, ContextKeyOrExpr, RawContextKey, IContextKeyService;
-var init_contextkey = __esm({
-  "../node_modules/monaco-editor/esm/vs/platform/contextkey/common/contextkey.js"() {
-    init_platform();
-    init_strings();
-    init_scanner();
-    init_instantiation();
-    init_nls();
-    CONSTANT_VALUES = /* @__PURE__ */ new Map();
-    CONSTANT_VALUES.set("false", false);
-    CONSTANT_VALUES.set("true", true);
-    CONSTANT_VALUES.set("isMac", isMacintosh);
-    CONSTANT_VALUES.set("isLinux", isLinux);
-    CONSTANT_VALUES.set("isWindows", isWindows);
-    CONSTANT_VALUES.set("isWeb", isWeb);
-    CONSTANT_VALUES.set("isMacNative", isMacintosh && !isWeb);
-    CONSTANT_VALUES.set("isEdge", isEdge);
-    CONSTANT_VALUES.set("isFirefox", isFirefox2);
-    CONSTANT_VALUES.set("isChrome", isChrome2);
-    CONSTANT_VALUES.set("isSafari", isSafari2);
-    hasOwnProperty = Object.prototype.hasOwnProperty;
-    defaultConfig = {
-      regexParsingWithErrorRecovery: true
-    };
-    errorEmptyString = localize(1675, "Empty context key expression");
-    hintEmptyString = localize(1676, "Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively.");
-    errorNoInAfterNot = localize(1677, "'in' after 'not'.");
-    errorClosingParenthesis = localize(1678, "closing parenthesis ')'");
-    errorUnexpectedToken = localize(1679, "Unexpected token");
-    hintUnexpectedToken = localize(1680, "Did you forget to put && or || before the token?");
-    errorUnexpectedEOF = localize(1681, "Unexpected end of expression");
-    hintUnexpectedEOF = localize(1682, "Did you forget to put a context key?");
-    Parser = class _Parser2 {
-      static {
-        this._parseError = new Error();
-      }
-      constructor(_config = defaultConfig) {
-        this._config = _config;
-        this._scanner = new Scanner();
-        this._tokens = [];
-        this._current = 0;
-        this._parsingErrors = [];
-        this._flagsGYRe = /g|y/g;
-      }
-      /**
-       * Parse a context key expression.
-       *
-       * @param input the expression to parse
-       * @returns the parsed expression or `undefined` if there's an error - call `lexingErrors` and `parsingErrors` to see the errors
-       */
-      parse(input) {
-        if (input === "") {
-          this._parsingErrors.push({ message: errorEmptyString, offset: 0, lexeme: "", additionalInfo: hintEmptyString });
-          return void 0;
-        }
-        this._tokens = this._scanner.reset(input).scan();
-        this._current = 0;
-        this._parsingErrors = [];
-        try {
-          const expr = this._expr();
-          if (!this._isAtEnd()) {
-            const peek = this._peek();
-            const additionalInfo = peek.type === 17 ? hintUnexpectedToken : void 0;
-            this._parsingErrors.push({ message: errorUnexpectedToken, offset: peek.offset, lexeme: Scanner.getLexeme(peek), additionalInfo });
-            throw _Parser2._parseError;
-          }
-          return expr;
-        } catch (e) {
-          if (!(e === _Parser2._parseError)) {
-            throw e;
-          }
-          return void 0;
-        }
-      }
-      _expr() {
-        return this._or();
-      }
-      _or() {
-        const expr = [this._and()];
-        while (this._matchOne(
-          16
-          /* TokenType.Or */
-        )) {
-          const right = this._and();
-          expr.push(right);
-        }
-        return expr.length === 1 ? expr[0] : ContextKeyExpr.or(...expr);
-      }
-      _and() {
-        const expr = [this._term()];
-        while (this._matchOne(
-          15
-          /* TokenType.And */
-        )) {
-          const right = this._term();
-          expr.push(right);
-        }
-        return expr.length === 1 ? expr[0] : ContextKeyExpr.and(...expr);
-      }
-      _term() {
-        if (this._matchOne(
-          2
-          /* TokenType.Neg */
-        )) {
-          const peek = this._peek();
-          switch (peek.type) {
-            case 11:
-              this._advance();
-              return ContextKeyFalseExpr.INSTANCE;
-            case 12:
-              this._advance();
-              return ContextKeyTrueExpr.INSTANCE;
-            case 0: {
-              this._advance();
-              const expr = this._expr();
-              this._consume(1, errorClosingParenthesis);
-              return expr?.negate();
-            }
-            case 17:
-              this._advance();
-              return ContextKeyNotExpr.create(peek.lexeme);
-            default:
-              throw this._errExpectedButGot(`KEY | true | false | '(' expression ')'`, peek);
-          }
-        }
-        return this._primary();
-      }
-      _primary() {
-        const peek = this._peek();
-        switch (peek.type) {
-          case 11:
-            this._advance();
-            return ContextKeyExpr.true();
-          case 12:
-            this._advance();
-            return ContextKeyExpr.false();
-          case 0: {
-            this._advance();
-            const expr = this._expr();
-            this._consume(1, errorClosingParenthesis);
-            return expr;
-          }
-          case 17: {
-            const key = peek.lexeme;
-            this._advance();
-            if (this._matchOne(
-              9
-              /* TokenType.RegexOp */
-            )) {
-              const expr = this._peek();
-              if (!this._config.regexParsingWithErrorRecovery) {
-                this._advance();
-                if (expr.type !== 10) {
-                  throw this._errExpectedButGot(`REGEX`, expr);
-                }
-                const regexLexeme = expr.lexeme;
-                const closingSlashIndex = regexLexeme.lastIndexOf("/");
-                const flags = closingSlashIndex === regexLexeme.length - 1 ? void 0 : this._removeFlagsGY(regexLexeme.substring(closingSlashIndex + 1));
-                let regexp;
-                try {
-                  regexp = new RegExp(regexLexeme.substring(1, closingSlashIndex), flags);
-                } catch (e) {
-                  throw this._errExpectedButGot(`REGEX`, expr);
-                }
-                return ContextKeyRegexExpr.create(key, regexp);
-              }
-              switch (expr.type) {
-                case 10:
-                case 19: {
-                  const lexemeReconstruction = [expr.lexeme];
-                  this._advance();
-                  let followingToken = this._peek();
-                  let parenBalance = 0;
-                  for (let i2 = 0; i2 < expr.lexeme.length; i2++) {
-                    if (expr.lexeme.charCodeAt(i2) === 40) {
-                      parenBalance++;
-                    } else if (expr.lexeme.charCodeAt(i2) === 41) {
-                      parenBalance--;
-                    }
-                  }
-                  while (!this._isAtEnd() && followingToken.type !== 15 && followingToken.type !== 16) {
-                    switch (followingToken.type) {
-                      case 0:
-                        parenBalance++;
-                        break;
-                      case 1:
-                        parenBalance--;
-                        break;
-                      case 10:
-                      case 18:
-                        for (let i2 = 0; i2 < followingToken.lexeme.length; i2++) {
-                          if (followingToken.lexeme.charCodeAt(i2) === 40) {
-                            parenBalance++;
-                          } else if (expr.lexeme.charCodeAt(i2) === 41) {
-                            parenBalance--;
-                          }
-                        }
-                    }
-                    if (parenBalance < 0) {
-                      break;
-                    }
-                    lexemeReconstruction.push(Scanner.getLexeme(followingToken));
-                    this._advance();
-                    followingToken = this._peek();
-                  }
-                  const regexLexeme = lexemeReconstruction.join("");
-                  const closingSlashIndex = regexLexeme.lastIndexOf("/");
-                  const flags = closingSlashIndex === regexLexeme.length - 1 ? void 0 : this._removeFlagsGY(regexLexeme.substring(closingSlashIndex + 1));
-                  let regexp;
-                  try {
-                    regexp = new RegExp(regexLexeme.substring(1, closingSlashIndex), flags);
-                  } catch (e) {
-                    throw this._errExpectedButGot(`REGEX`, expr);
-                  }
-                  return ContextKeyExpr.regex(key, regexp);
-                }
-                case 18: {
-                  const serializedValue = expr.lexeme;
-                  this._advance();
-                  let regex = null;
-                  if (!isFalsyOrWhitespace(serializedValue)) {
-                    const start = serializedValue.indexOf("/");
-                    const end = serializedValue.lastIndexOf("/");
-                    if (start !== end && start >= 0) {
-                      const value = serializedValue.slice(start + 1, end);
-                      const caseIgnoreFlag = serializedValue[end + 1] === "i" ? "i" : "";
-                      try {
-                        regex = new RegExp(value, caseIgnoreFlag);
-                      } catch (_e2) {
-                        throw this._errExpectedButGot(`REGEX`, expr);
-                      }
-                    }
-                  }
-                  if (regex === null) {
-                    throw this._errExpectedButGot("REGEX", expr);
-                  }
-                  return ContextKeyRegexExpr.create(key, regex);
-                }
-                default:
-                  throw this._errExpectedButGot("REGEX", this._peek());
-              }
-            }
-            if (this._matchOne(
-              14
-              /* TokenType.Not */
-            )) {
-              this._consume(13, errorNoInAfterNot);
-              const right = this._value();
-              return ContextKeyExpr.notIn(key, right);
-            }
-            const maybeOp = this._peek().type;
-            switch (maybeOp) {
-              case 3: {
-                this._advance();
-                const right = this._value();
-                if (this._previous().type === 18) {
-                  return ContextKeyExpr.equals(key, right);
-                }
-                switch (right) {
-                  case "true":
-                    return ContextKeyExpr.has(key);
-                  case "false":
-                    return ContextKeyExpr.not(key);
-                  default:
-                    return ContextKeyExpr.equals(key, right);
-                }
-              }
-              case 4: {
-                this._advance();
-                const right = this._value();
-                if (this._previous().type === 18) {
-                  return ContextKeyExpr.notEquals(key, right);
-                }
-                switch (right) {
-                  case "true":
-                    return ContextKeyExpr.not(key);
-                  case "false":
-                    return ContextKeyExpr.has(key);
-                  default:
-                    return ContextKeyExpr.notEquals(key, right);
-                }
-              }
-              // TODO: ContextKeyExpr.smaller(key, right) accepts only `number` as `right` AND during eval of this node, we just eval to `false` if `right` is not a number
-              // consequently, package.json linter should _warn_ the user if they're passing undesired things to ops
-              case 5:
-                this._advance();
-                return ContextKeySmallerExpr.create(key, this._value());
-              case 6:
-                this._advance();
-                return ContextKeySmallerEqualsExpr.create(key, this._value());
-              case 7:
-                this._advance();
-                return ContextKeyGreaterExpr.create(key, this._value());
-              case 8:
-                this._advance();
-                return ContextKeyGreaterEqualsExpr.create(key, this._value());
-              case 13:
-                this._advance();
-                return ContextKeyExpr.in(key, this._value());
-              default:
-                return ContextKeyExpr.has(key);
-            }
-          }
-          case 20:
-            this._parsingErrors.push({ message: errorUnexpectedEOF, offset: peek.offset, lexeme: "", additionalInfo: hintUnexpectedEOF });
-            throw _Parser2._parseError;
-          default:
-            throw this._errExpectedButGot(`true | false | KEY 
+`+e.stack):e},0)}}emit(e){this.listeners.forEach(t=>{t(e)})}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}},_G=new pG;_O="Canceled";Za=class extends Error{constructor(){super(_O),this.name=this.message}};bO=class extends Error{constructor(e){super("NotSupported"),e&&(this.message=e)}},HE=class n extends Error{constructor(e){super(e),this.name="CodeExpectedError"}static fromError(e){if(e instanceof n)return e;let t=new n;return t.message=e.message,t.stack=e.stack,t}static isErrorNoTelemetry(e){return e.name==="CodeExpectedError"}},ke=class n extends Error{constructor(e){super(e||"An unexpected bug occurred."),Object.setPrototypeOf(this,n.prototype)}}});function wO(n,e){if(!n)throw new Error(e?`Assertion failed (${e})`:"Assertion Failed")}function Hm(n,e="Unreachable"){throw new Error(e)}function Fp(n,e="unexpected state"){if(!n)throw typeof e=="string"?new ke(`Assertion Failed: ${e}`):e}function bG(n,e="Soft Assertion Failed"){n||De(new ke(e))}function gd(n){if(!n()){debugger;n(),De(new ke("Assertion Failed"))}}function Vm(n,e){let t=0;for(;t{Ae()});function En(n){return typeof n=="string"}function jpe(n,e){return Array.isArray(n)&&n.every(e)}function _n(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)&&!(n instanceof RegExp)&&!(n instanceof Date)}function Kpe(n){let e=Object.getPrototypeOf(Uint8Array);return typeof n=="object"&&n instanceof e}function Fc(n){return typeof n=="number"&&!isNaN(n)}function VE(n){return!!n&&typeof n[Symbol.iterator]=="function"}function zE(n){return n===!0||n===!1}function gs(n){return typeof n>"u"}function to(n){return!Ml(n)}function Ml(n){return gs(n)||n===null}function mt(n,e){if(!n)throw new Error(e?`Unexpected type, expected '${e}'`:"Unexpected type")}function Fu(n){return Fp(n!=null,"Argument is `undefined` or `null`."),n}function Bu(n){return typeof n=="function"}function Gpe(n,e){let t=Math.min(n.length,e.length);for(let i=0;i{_l()});function LO(){if(!Xpe){Xpe=!0;let n=new Uint8Array(2);n[0]=1,n[1]=2,Zpe=new Uint16Array(n.buffer)[0]===513}return Zpe}var Kb,$E,qE,UE,Qpe,vG,wG,Jpe,CO,xO,Ype,ZWe,Bp,Wp,Yd,XWe,QWe,SO,Qi,qe,go,oc,Bc,JWe,e_e,La,yO,kO,zm,t_e,e6e,Um,Ns,Zpe,Xpe,jE,i_e,n_e,IO,o_e,ct=w(()=>{le();mO();Kb="en",$E=!1,qE=!1,UE=!1,Qpe=!1,vG=!1,wG=!1,Jpe=!1,xO=Kb,Ype=Kb,Wp=globalThis;typeof Wp.vscode<"u"&&typeof Wp.vscode.process<"u"?Yd=Wp.vscode.process:typeof process<"u"&&typeof process?.versions?.node=="string"&&(Yd=process);XWe=typeof Yd?.versions?.electron=="string",QWe=XWe&&Yd?.type==="renderer";if(typeof Yd=="object"){$E=Yd.platform==="win32",qE=Yd.platform==="darwin",UE=Yd.platform==="linux",UE&&Yd.env.SNAP&&Yd.env.SNAP_REVISION,Yd.env.CI||Yd.env.BUILD_ARTIFACTSTAGINGDIRECTORY||Yd.env.GITHUB_WORKSPACE,CO=Kb,xO=Kb;let n=Yd.env.VSCODE_NLS_CONFIG;if(n)try{let e=JSON.parse(n);CO=e.userLocale,Ype=e.osLocale,xO=e.resolvedLanguage||Kb,ZWe=e.languagePack?.translationsConfigFile}catch{}Qpe=!0}else typeof navigator=="object"&&!QWe?(Bp=navigator.userAgent,$E=Bp.indexOf("Windows")>=0,qE=Bp.indexOf("Macintosh")>=0,wG=(Bp.indexOf("Macintosh")>=0||Bp.indexOf("iPad")>=0||Bp.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,UE=Bp.indexOf("Linux")>=0,Jpe=Bp?.indexOf("Mobi")>=0,vG=!0,xO=ry()||Kb,CO=navigator.language.toLowerCase(),Ype=CO):console.error("Unable to resolve platform.");SO=0;qE?SO=1:$E?SO=3:UE&&(SO=2);Qi=$E,qe=qE,go=UE,oc=Qpe,Bc=vG,JWe=vG&&typeof Wp.importScripts=="function",e_e=JWe?Wp.origin:void 0,La=wG,yO=Jpe,kO=SO,zm=Bp,t_e=xO,e6e=typeof Wp.postMessage=="function"&&!Wp.importScripts,Um=(()=>{if(e6e){let n=[];Wp.addEventListener("message",t=>{if(t.data&&t.data.vscodeScheduleAsyncWork)for(let i=0,o=n.length;i{let i=++e;n.push({id:i,callback:t}),Wp.postMessage({vscodeScheduleAsyncWork:i},"*")}}return n=>setTimeout(n)})(),Ns=qE||wG?2:$E?1:3,Zpe=!0,Xpe=!1;jE=!!(zm&&zm.indexOf("Chrome")>=0),i_e=!!(zm&&zm.indexOf("Firefox")>=0),n_e=!!(!jE&&zm&&zm.indexOf("Safari")>=0),IO=!!(zm&&zm.indexOf("Edg/")>=0),o_e=!!(zm&&zm.indexOf("Android")>=0)});var Gb,EO=w(()=>{Gs();ka();ct();Gb={clipboard:{writeText:oc||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:oc||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText)},pointerEvents:Et.PointerEvent&&("ontouchstart"in Et||navigator.maxTouchPoints>0)}});function rn(n,e){let t=(e&65535)<<16>>>0;return(n|t)>>>0}var KE,DO,CG,xG,SG,t6e,i6e,TO,Wu,pd=w(()=>{KE=class{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e}keyCodeToStr(e){return this._keyCodeToStr[e]}strToKeyCode(e){return this._strToKeyCode[e.toLowerCase()]||0}},DO=new KE,CG=new KE,xG=new KE,SG=new Array(230),t6e=Object.create(null),i6e=Object.create(null),TO=[];for(let n=0;n<=193;n++)TO[n]=-1;(function(){let n="",e=[[1,0,"None",0,"unknown",0,"VK_UNKNOWN",n,n],[1,1,"Hyper",0,n,0,n,n,n],[1,2,"Super",0,n,0,n,n,n],[1,3,"Fn",0,n,0,n,n,n],[1,4,"FnLock",0,n,0,n,n,n],[1,5,"Suspend",0,n,0,n,n,n],[1,6,"Resume",0,n,0,n,n,n],[1,7,"Turbo",0,n,0,n,n,n],[1,8,"Sleep",0,n,0,"VK_SLEEP",n,n],[1,9,"WakeUp",0,n,0,n,n,n],[0,10,"KeyA",31,"A",65,"VK_A",n,n],[0,11,"KeyB",32,"B",66,"VK_B",n,n],[0,12,"KeyC",33,"C",67,"VK_C",n,n],[0,13,"KeyD",34,"D",68,"VK_D",n,n],[0,14,"KeyE",35,"E",69,"VK_E",n,n],[0,15,"KeyF",36,"F",70,"VK_F",n,n],[0,16,"KeyG",37,"G",71,"VK_G",n,n],[0,17,"KeyH",38,"H",72,"VK_H",n,n],[0,18,"KeyI",39,"I",73,"VK_I",n,n],[0,19,"KeyJ",40,"J",74,"VK_J",n,n],[0,20,"KeyK",41,"K",75,"VK_K",n,n],[0,21,"KeyL",42,"L",76,"VK_L",n,n],[0,22,"KeyM",43,"M",77,"VK_M",n,n],[0,23,"KeyN",44,"N",78,"VK_N",n,n],[0,24,"KeyO",45,"O",79,"VK_O",n,n],[0,25,"KeyP",46,"P",80,"VK_P",n,n],[0,26,"KeyQ",47,"Q",81,"VK_Q",n,n],[0,27,"KeyR",48,"R",82,"VK_R",n,n],[0,28,"KeyS",49,"S",83,"VK_S",n,n],[0,29,"KeyT",50,"T",84,"VK_T",n,n],[0,30,"KeyU",51,"U",85,"VK_U",n,n],[0,31,"KeyV",52,"V",86,"VK_V",n,n],[0,32,"KeyW",53,"W",87,"VK_W",n,n],[0,33,"KeyX",54,"X",88,"VK_X",n,n],[0,34,"KeyY",55,"Y",89,"VK_Y",n,n],[0,35,"KeyZ",56,"Z",90,"VK_Z",n,n],[0,36,"Digit1",22,"1",49,"VK_1",n,n],[0,37,"Digit2",23,"2",50,"VK_2",n,n],[0,38,"Digit3",24,"3",51,"VK_3",n,n],[0,39,"Digit4",25,"4",52,"VK_4",n,n],[0,40,"Digit5",26,"5",53,"VK_5",n,n],[0,41,"Digit6",27,"6",54,"VK_6",n,n],[0,42,"Digit7",28,"7",55,"VK_7",n,n],[0,43,"Digit8",29,"8",56,"VK_8",n,n],[0,44,"Digit9",30,"9",57,"VK_9",n,n],[0,45,"Digit0",21,"0",48,"VK_0",n,n],[1,46,"Enter",3,"Enter",13,"VK_RETURN",n,n],[1,47,"Escape",9,"Escape",27,"VK_ESCAPE",n,n],[1,48,"Backspace",1,"Backspace",8,"VK_BACK",n,n],[1,49,"Tab",2,"Tab",9,"VK_TAB",n,n],[1,50,"Space",10,"Space",32,"VK_SPACE",n,n],[0,51,"Minus",88,"-",189,"VK_OEM_MINUS","-","OEM_MINUS"],[0,52,"Equal",86,"=",187,"VK_OEM_PLUS","=","OEM_PLUS"],[0,53,"BracketLeft",92,"[",219,"VK_OEM_4","[","OEM_4"],[0,54,"BracketRight",94,"]",221,"VK_OEM_6","]","OEM_6"],[0,55,"Backslash",93,"\\",220,"VK_OEM_5","\\","OEM_5"],[0,56,"IntlHash",0,n,0,n,n,n],[0,57,"Semicolon",85,";",186,"VK_OEM_1",";","OEM_1"],[0,58,"Quote",95,"'",222,"VK_OEM_7","'","OEM_7"],[0,59,"Backquote",91,"`",192,"VK_OEM_3","`","OEM_3"],[0,60,"Comma",87,",",188,"VK_OEM_COMMA",",","OEM_COMMA"],[0,61,"Period",89,".",190,"VK_OEM_PERIOD",".","OEM_PERIOD"],[0,62,"Slash",90,"/",191,"VK_OEM_2","/","OEM_2"],[1,63,"CapsLock",8,"CapsLock",20,"VK_CAPITAL",n,n],[1,64,"F1",59,"F1",112,"VK_F1",n,n],[1,65,"F2",60,"F2",113,"VK_F2",n,n],[1,66,"F3",61,"F3",114,"VK_F3",n,n],[1,67,"F4",62,"F4",115,"VK_F4",n,n],[1,68,"F5",63,"F5",116,"VK_F5",n,n],[1,69,"F6",64,"F6",117,"VK_F6",n,n],[1,70,"F7",65,"F7",118,"VK_F7",n,n],[1,71,"F8",66,"F8",119,"VK_F8",n,n],[1,72,"F9",67,"F9",120,"VK_F9",n,n],[1,73,"F10",68,"F10",121,"VK_F10",n,n],[1,74,"F11",69,"F11",122,"VK_F11",n,n],[1,75,"F12",70,"F12",123,"VK_F12",n,n],[1,76,"PrintScreen",0,n,0,n,n,n],[1,77,"ScrollLock",84,"ScrollLock",145,"VK_SCROLL",n,n],[1,78,"Pause",7,"PauseBreak",19,"VK_PAUSE",n,n],[1,79,"Insert",19,"Insert",45,"VK_INSERT",n,n],[1,80,"Home",14,"Home",36,"VK_HOME",n,n],[1,81,"PageUp",11,"PageUp",33,"VK_PRIOR",n,n],[1,82,"Delete",20,"Delete",46,"VK_DELETE",n,n],[1,83,"End",13,"End",35,"VK_END",n,n],[1,84,"PageDown",12,"PageDown",34,"VK_NEXT",n,n],[1,85,"ArrowRight",17,"RightArrow",39,"VK_RIGHT","Right",n],[1,86,"ArrowLeft",15,"LeftArrow",37,"VK_LEFT","Left",n],[1,87,"ArrowDown",18,"DownArrow",40,"VK_DOWN","Down",n],[1,88,"ArrowUp",16,"UpArrow",38,"VK_UP","Up",n],[1,89,"NumLock",83,"NumLock",144,"VK_NUMLOCK",n,n],[1,90,"NumpadDivide",113,"NumPad_Divide",111,"VK_DIVIDE",n,n],[1,91,"NumpadMultiply",108,"NumPad_Multiply",106,"VK_MULTIPLY",n,n],[1,92,"NumpadSubtract",111,"NumPad_Subtract",109,"VK_SUBTRACT",n,n],[1,93,"NumpadAdd",109,"NumPad_Add",107,"VK_ADD",n,n],[1,94,"NumpadEnter",3,n,0,n,n,n],[1,95,"Numpad1",99,"NumPad1",97,"VK_NUMPAD1",n,n],[1,96,"Numpad2",100,"NumPad2",98,"VK_NUMPAD2",n,n],[1,97,"Numpad3",101,"NumPad3",99,"VK_NUMPAD3",n,n],[1,98,"Numpad4",102,"NumPad4",100,"VK_NUMPAD4",n,n],[1,99,"Numpad5",103,"NumPad5",101,"VK_NUMPAD5",n,n],[1,100,"Numpad6",104,"NumPad6",102,"VK_NUMPAD6",n,n],[1,101,"Numpad7",105,"NumPad7",103,"VK_NUMPAD7",n,n],[1,102,"Numpad8",106,"NumPad8",104,"VK_NUMPAD8",n,n],[1,103,"Numpad9",107,"NumPad9",105,"VK_NUMPAD9",n,n],[1,104,"Numpad0",98,"NumPad0",96,"VK_NUMPAD0",n,n],[1,105,"NumpadDecimal",112,"NumPad_Decimal",110,"VK_DECIMAL",n,n],[0,106,"IntlBackslash",97,"OEM_102",226,"VK_OEM_102",n,n],[1,107,"ContextMenu",58,"ContextMenu",93,n,n,n],[1,108,"Power",0,n,0,n,n,n],[1,109,"NumpadEqual",0,n,0,n,n,n],[1,110,"F13",71,"F13",124,"VK_F13",n,n],[1,111,"F14",72,"F14",125,"VK_F14",n,n],[1,112,"F15",73,"F15",126,"VK_F15",n,n],[1,113,"F16",74,"F16",127,"VK_F16",n,n],[1,114,"F17",75,"F17",128,"VK_F17",n,n],[1,115,"F18",76,"F18",129,"VK_F18",n,n],[1,116,"F19",77,"F19",130,"VK_F19",n,n],[1,117,"F20",78,"F20",131,"VK_F20",n,n],[1,118,"F21",79,"F21",132,"VK_F21",n,n],[1,119,"F22",80,"F22",133,"VK_F22",n,n],[1,120,"F23",81,"F23",134,"VK_F23",n,n],[1,121,"F24",82,"F24",135,"VK_F24",n,n],[1,122,"Open",0,n,0,n,n,n],[1,123,"Help",0,n,0,n,n,n],[1,124,"Select",0,n,0,n,n,n],[1,125,"Again",0,n,0,n,n,n],[1,126,"Undo",0,n,0,n,n,n],[1,127,"Cut",0,n,0,n,n,n],[1,128,"Copy",0,n,0,n,n,n],[1,129,"Paste",0,n,0,n,n,n],[1,130,"Find",0,n,0,n,n,n],[1,131,"AudioVolumeMute",117,"AudioVolumeMute",173,"VK_VOLUME_MUTE",n,n],[1,132,"AudioVolumeUp",118,"AudioVolumeUp",175,"VK_VOLUME_UP",n,n],[1,133,"AudioVolumeDown",119,"AudioVolumeDown",174,"VK_VOLUME_DOWN",n,n],[1,134,"NumpadComma",110,"NumPad_Separator",108,"VK_SEPARATOR",n,n],[0,135,"IntlRo",115,"ABNT_C1",193,"VK_ABNT_C1",n,n],[1,136,"KanaMode",0,n,0,n,n,n],[0,137,"IntlYen",0,n,0,n,n,n],[1,138,"Convert",0,n,0,n,n,n],[1,139,"NonConvert",0,n,0,n,n,n],[1,140,"Lang1",0,n,0,n,n,n],[1,141,"Lang2",0,n,0,n,n,n],[1,142,"Lang3",0,n,0,n,n,n],[1,143,"Lang4",0,n,0,n,n,n],[1,144,"Lang5",0,n,0,n,n,n],[1,145,"Abort",0,n,0,n,n,n],[1,146,"Props",0,n,0,n,n,n],[1,147,"NumpadParenLeft",0,n,0,n,n,n],[1,148,"NumpadParenRight",0,n,0,n,n,n],[1,149,"NumpadBackspace",0,n,0,n,n,n],[1,150,"NumpadMemoryStore",0,n,0,n,n,n],[1,151,"NumpadMemoryRecall",0,n,0,n,n,n],[1,152,"NumpadMemoryClear",0,n,0,n,n,n],[1,153,"NumpadMemoryAdd",0,n,0,n,n,n],[1,154,"NumpadMemorySubtract",0,n,0,n,n,n],[1,155,"NumpadClear",131,"Clear",12,"VK_CLEAR",n,n],[1,156,"NumpadClearEntry",0,n,0,n,n,n],[1,0,n,5,"Ctrl",17,"VK_CONTROL",n,n],[1,0,n,4,"Shift",16,"VK_SHIFT",n,n],[1,0,n,6,"Alt",18,"VK_MENU",n,n],[1,0,n,57,"Meta",91,"VK_COMMAND",n,n],[1,157,"ControlLeft",5,n,0,"VK_LCONTROL",n,n],[1,158,"ShiftLeft",4,n,0,"VK_LSHIFT",n,n],[1,159,"AltLeft",6,n,0,"VK_LMENU",n,n],[1,160,"MetaLeft",57,n,0,"VK_LWIN",n,n],[1,161,"ControlRight",5,n,0,"VK_RCONTROL",n,n],[1,162,"ShiftRight",4,n,0,"VK_RSHIFT",n,n],[1,163,"AltRight",6,n,0,"VK_RMENU",n,n],[1,164,"MetaRight",57,n,0,"VK_RWIN",n,n],[1,165,"BrightnessUp",0,n,0,n,n,n],[1,166,"BrightnessDown",0,n,0,n,n,n],[1,167,"MediaPlay",0,n,0,n,n,n],[1,168,"MediaRecord",0,n,0,n,n,n],[1,169,"MediaFastForward",0,n,0,n,n,n],[1,170,"MediaRewind",0,n,0,n,n,n],[1,171,"MediaTrackNext",124,"MediaTrackNext",176,"VK_MEDIA_NEXT_TRACK",n,n],[1,172,"MediaTrackPrevious",125,"MediaTrackPrevious",177,"VK_MEDIA_PREV_TRACK",n,n],[1,173,"MediaStop",126,"MediaStop",178,"VK_MEDIA_STOP",n,n],[1,174,"Eject",0,n,0,n,n,n],[1,175,"MediaPlayPause",127,"MediaPlayPause",179,"VK_MEDIA_PLAY_PAUSE",n,n],[1,176,"MediaSelect",128,"LaunchMediaPlayer",181,"VK_MEDIA_LAUNCH_MEDIA_SELECT",n,n],[1,177,"LaunchMail",129,"LaunchMail",180,"VK_MEDIA_LAUNCH_MAIL",n,n],[1,178,"LaunchApp2",130,"LaunchApp2",183,"VK_MEDIA_LAUNCH_APP2",n,n],[1,179,"LaunchApp1",0,n,0,"VK_MEDIA_LAUNCH_APP1",n,n],[1,180,"SelectTask",0,n,0,n,n,n],[1,181,"LaunchScreenSaver",0,n,0,n,n,n],[1,182,"BrowserSearch",120,"BrowserSearch",170,"VK_BROWSER_SEARCH",n,n],[1,183,"BrowserHome",121,"BrowserHome",172,"VK_BROWSER_HOME",n,n],[1,184,"BrowserBack",122,"BrowserBack",166,"VK_BROWSER_BACK",n,n],[1,185,"BrowserForward",123,"BrowserForward",167,"VK_BROWSER_FORWARD",n,n],[1,186,"BrowserStop",0,n,0,"VK_BROWSER_STOP",n,n],[1,187,"BrowserRefresh",0,n,0,"VK_BROWSER_REFRESH",n,n],[1,188,"BrowserFavorites",0,n,0,"VK_BROWSER_FAVORITES",n,n],[1,189,"ZoomToggle",0,n,0,n,n,n],[1,190,"MailReply",0,n,0,n,n,n],[1,191,"MailForward",0,n,0,n,n,n],[1,192,"MailSend",0,n,0,n,n,n],[1,0,n,114,"KeyInComposition",229,n,n,n],[1,0,n,116,"ABNT_C2",194,"VK_ABNT_C2",n,n],[1,0,n,96,"OEM_8",223,"VK_OEM_8",n,n],[1,0,n,0,n,0,"VK_KANA",n,n],[1,0,n,0,n,0,"VK_HANGUL",n,n],[1,0,n,0,n,0,"VK_JUNJA",n,n],[1,0,n,0,n,0,"VK_FINAL",n,n],[1,0,n,0,n,0,"VK_HANJA",n,n],[1,0,n,0,n,0,"VK_KANJI",n,n],[1,0,n,0,n,0,"VK_CONVERT",n,n],[1,0,n,0,n,0,"VK_NONCONVERT",n,n],[1,0,n,0,n,0,"VK_ACCEPT",n,n],[1,0,n,0,n,0,"VK_MODECHANGE",n,n],[1,0,n,0,n,0,"VK_SELECT",n,n],[1,0,n,0,n,0,"VK_PRINT",n,n],[1,0,n,0,n,0,"VK_EXECUTE",n,n],[1,0,n,0,n,0,"VK_SNAPSHOT",n,n],[1,0,n,0,n,0,"VK_HELP",n,n],[1,0,n,0,n,0,"VK_APPS",n,n],[1,0,n,0,n,0,"VK_PROCESSKEY",n,n],[1,0,n,0,n,0,"VK_PACKET",n,n],[1,0,n,0,n,0,"VK_DBE_SBCSCHAR",n,n],[1,0,n,0,n,0,"VK_DBE_DBCSCHAR",n,n],[1,0,n,0,n,0,"VK_ATTN",n,n],[1,0,n,0,n,0,"VK_CRSEL",n,n],[1,0,n,0,n,0,"VK_EXSEL",n,n],[1,0,n,0,n,0,"VK_EREOF",n,n],[1,0,n,0,n,0,"VK_PLAY",n,n],[1,0,n,0,n,0,"VK_ZOOM",n,n],[1,0,n,0,n,0,"VK_NONAME",n,n],[1,0,n,0,n,0,"VK_PA1",n,n],[1,0,n,0,n,0,"VK_OEM_CLEAR",n,n]],t=[],i=[];for(let o of e){let[r,s,a,l,c,d,h,u,f]=o;if(i[s]||(i[s]=!0,t6e[a]=s,i6e[a.toLowerCase()]=s,r&&(TO[s]=l)),!t[l]){if(t[l]=!0,!c)throw new Error(`String representation missing for key code ${l} around scan code ${a}`);DO.define(l,c),CG.define(l,u||c),xG.define(l,f||u||c)}d&&(SG[d]=l)}})();(function(n){function e(a){return DO.keyCodeToStr(a)}n.toString=e;function t(a){return DO.strToKeyCode(a)}n.fromString=t;function i(a){return CG.keyCodeToStr(a)}n.toUserSettingsUS=i;function o(a){return xG.keyCodeToStr(a)}n.toUserSettingsGeneral=o;function r(a){return CG.strToKeyCode(a)||xG.strToKeyCode(a)}n.fromUserSettings=r;function s(a){if(a>=98&&a<=113)return null;switch(a){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return DO.keyCodeToStr(a)}n.toElectronAccelerator=s})(Wu||(Wu={}))});function YE(n,e){if(typeof n=="number"){if(n===0)return null;let t=(n&65535)>>>0,i=(n&4294901760)>>>16;return i!==0?new GE([NO(t,e),NO(i,e)]):new GE([NO(t,e)])}else{let t=[];for(let i=0;i{Ae();zh=class n{constructor(e,t,i,o,r){this.ctrlKey=e,this.shiftKey=t,this.altKey=i,this.metaKey=o,this.keyCode=r}equals(e){return e instanceof n&&this.ctrlKey===e.ctrlKey&&this.shiftKey===e.shiftKey&&this.altKey===e.altKey&&this.metaKey===e.metaKey&&this.keyCode===e.keyCode}isModifierKey(){return this.keyCode===0||this.keyCode===5||this.keyCode===57||this.keyCode===6||this.keyCode===4}isDuplicateModifierCase(){return this.ctrlKey&&this.keyCode===5||this.shiftKey&&this.keyCode===4||this.altKey&&this.keyCode===6||this.metaKey&&this.keyCode===57}},GE=class{constructor(e){if(e.length===0)throw da("chords");this.chords=e}},RO=class{constructor(e,t,i,o,r,s){this.ctrlKey=e,this.shiftKey=t,this.altKey=i,this.metaKey=o,this.keyLabel=r,this.keyAriaLabel=s}},AO=class{}});function n6e(n){if(n.charCode){let t=String.fromCharCode(n.charCode).toUpperCase();return Wu.fromString(t)}let e=n.keyCode;if(e===3)return 7;if(To)switch(e){case 59:return 85;case 60:if(go)return 97;break;case 61:return 86;case 107:return 109;case 109:return 111;case 173:return 88;case 224:if(qe)return 57;break}else if(_C){if(qe&&e===93)return 57;if(!qe&&e===92)return 57}return SG[e]||0}var o6e,r6e,s6e,a6e,St,ha=w(()=>{Gs();pd();vC();ct();o6e=qe?256:2048,r6e=512,s6e=1024,a6e=qe?2048:256,St=class{constructor(e){this._standardKeyboardEventBrand=!0;let t=e;this.browserEvent=t,this.target=t.target,this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.altKey=t.altKey,this.metaKey=t.metaKey,this.altGraphKey=t.getModifierState?.("AltGraph"),this.keyCode=n6e(t),this.code=t.code,this.ctrlKey=this.ctrlKey||this.keyCode===5,this.altKey=this.altKey||this.keyCode===6,this.shiftKey=this.shiftKey||this.keyCode===4,this.metaKey=this.metaKey||this.keyCode===57,this._asKeybinding=this._computeKeybinding(),this._asKeyCodeChord=this._computeKeyCodeChord()}preventDefault(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()}toKeyCodeChord(){return this._asKeyCodeChord}equals(e){return this._asKeybinding===e}_computeKeybinding(){let e=0;this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(e=this.keyCode);let t=0;return this.ctrlKey&&(t|=o6e),this.altKey&&(t|=r6e),this.shiftKey&&(t|=s6e),this.metaKey&&(t|=a6e),t|=e,t}_computeKeyCodeChord(){let e=0;return this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(e=this.keyCode),new zh(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,e)}}});function l6e(n){if(!n.parent||n.parent===n)return null;try{let e=n.location,t=n.parent.location;if(e.origin!=="null"&&t.origin!=="null"&&e.origin!==t.origin)return null}catch{return null}return n.parent}var r_e,MO,s_e=w(()=>{r_e=new WeakMap;MO=class{static getSameOriginWindowChain(e){let t=r_e.get(e);if(!t){t=[],r_e.set(e,t);let i=e,o;do o=l6e(i),o?t.push({window:new WeakRef(i),iframeElement:i.frameElement||null}):t.push({window:new WeakRef(i),iframeElement:null}),i=o;while(i)}return t.slice(0)}static getPositionOfChildWindowRelativeToAncestorWindow(e,t){if(!t||e===t)return{top:0,left:0};let i=0,o=0,r=this.getSameOriginWindowChain(e);for(let s of r){let a=s.window.deref();if(i+=a?.scrollY??0,o+=a?.scrollX??0,a===t||!s.iframeElement)break;let l=s.iframeElement.getBoundingClientRect();i+=l.top,o+=l.left}return{top:i,left:o}}}});var dn,Uh,Xa=w(()=>{Gs();s_e();ct();dn=class{constructor(e,t){this.timestamp=Date.now(),this.browserEvent=t,this.leftButton=t.button===0,this.middleButton=t.button===1,this.rightButton=t.button===2,this.buttons=t.buttons,this.defaultPrevented=t.defaultPrevented,this.target=t.target,this.detail=t.detail||1,t.type==="dblclick"&&(this.detail=2),this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.altKey=t.altKey,this.metaKey=t.metaKey,typeof t.pageX=="number"?(this.posx=t.pageX,this.posy=t.pageY):(this.posx=t.clientX+this.target.ownerDocument.body.scrollLeft+this.target.ownerDocument.documentElement.scrollLeft,this.posy=t.clientY+this.target.ownerDocument.body.scrollTop+this.target.ownerDocument.documentElement.scrollTop);let i=MO.getPositionOfChildWindowRelativeToAncestorWindow(e,t.view);this.posx-=i.left,this.posy-=i.top}preventDefault(){this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent.stopPropagation()}},Uh=class{constructor(e,t=0,i=0){this.browserEvent=e||null,this.target=e?e.target||e.targetNode||e.srcElement:null,this.deltaY=i,this.deltaX=t;let o=!1;if(jb){let r=navigator.userAgent.match(/Chrome\/(\d+)/);o=(r?parseInt(r[1]):123)<=122}if(e){let r=e,s=e,a=e.view?.devicePixelRatio||1;if(typeof r.wheelDeltaY<"u")o?this.deltaY=r.wheelDeltaY/(120*a):this.deltaY=r.wheelDeltaY/120;else if(typeof s.VERTICAL_AXIS<"u"&&s.axis===s.VERTICAL_AXIS)this.deltaY=-s.detail/3;else if(e.type==="wheel"){let l=e;l.deltaMode===l.DOM_DELTA_LINE?To&&!qe?this.deltaY=-e.deltaY/3:this.deltaY=-e.deltaY:this.deltaY=-e.deltaY/40}if(typeof r.wheelDeltaX<"u")Pu&&Qi?this.deltaX=-(r.wheelDeltaX/120):o?this.deltaX=r.wheelDeltaX/(120*a):this.deltaX=r.wheelDeltaX/120;else if(typeof s.HORIZONTAL_AXIS<"u"&&s.axis===s.HORIZONTAL_AXIS)this.deltaX=-e.detail/3;else if(e.type==="wheel"){let l=e;l.deltaMode===l.DOM_DELTA_LINE?To&&!qe?this.deltaX=-e.deltaX/3:this.deltaX=-e.deltaX:this.deltaX=-e.deltaX/40}this.deltaY===0&&this.deltaX===0&&e.wheelDelta&&(o?this.deltaY=e.wheelDelta/(120*a):this.deltaY=e.wheelDelta/120)}}preventDefault(){this.browserEvent?.preventDefault()}stopPropagation(){this.browserEvent?.stopPropagation()}}});function $h(n,e){let t=this,i=!1,o;return function(){return i||(i=!0,o=n.apply(t,arguments)),o}}var wC=w(()=>{});var ht,bl=w(()=>{Nt();(function(n){function e(I){return!!I&&typeof I=="object"&&typeof I[Symbol.iterator]=="function"}n.is=e;let t=Object.freeze([]);function i(){return t}n.empty=i;function*o(I){yield I}n.single=o;function r(I){return e(I)?I:o(I)}n.wrap=r;function s(I){return I||t}n.from=s;function*a(I){for(let D=I.length-1;D>=0;D--)yield I[D]}n.reverse=a;function l(I){return!I||I[Symbol.iterator]().next().done===!0}n.isEmpty=l;function c(I){return I[Symbol.iterator]().next().value}n.first=c;function d(I,D){let T=0;for(let O of I)if(D(O,T++))return!0;return!1}n.some=d;function h(I,D){let T=0;for(let O of I)if(!D(O,T++))return!1;return!0}n.every=h;function u(I,D){for(let T of I)if(D(T))return T}n.find=u;function*f(I,D){for(let T of I)D(T)&&(yield T)}n.filter=f;function*m(I,D){let T=0;for(let O of I)yield D(O,T++)}n.map=m;function*p(I,D){let T=0;for(let O of I)yield*D(O,T++)}n.flatMap=p;function*_(...I){for(let D of I)VE(D)?yield*D:yield D}n.concat=_;function b(I,D,T){let O=T;for(let W of I)O=D(O,W);return O}n.reduce=b;function v(I){let D=0;for(let T of I)D++;return D}n.length=v;function*x(I,D,T=I.length){for(D<-I.length&&(D=0),D<0&&(D+=I.length),T<0?T+=I.length:T>I.length&&(T=I.length);D1)throw new AggregateError(e,"Encountered errors while disposing of store");return Array.isArray(n)?[]:n}else if(n)return n.dispose(),n}function Ia(...n){return se(()=>ut(n))}function se(n){return new yG(n)}var yG,P,E,tt,OO,PO,$m,B=w(()=>{bl();yG=class{constructor(e){this._isDisposed=!1,this._fn=e}dispose(){if(!this._isDisposed){if(!this._fn)throw new Error("Unbound disposable context: Need to use an arrow function to preserve the value of this");this._isDisposed=!0,this._fn()}}};P=class n{static{this.DISABLE_DISPOSED_WARNING=!1}constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{ut(this._toDispose)}finally{this._toDispose.clear()}}add(e){if(!e||e===E.None)return e;if(e===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?n.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(e),e}delete(e){if(e){if(e===this)throw new Error("Cannot dispose a disposable on itself!");this._toDispose.delete(e),e.dispose()}}},E=class{static{this.None=Object.freeze({dispose(){}})}constructor(){this._store=new P,this._store}dispose(){this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}},tt=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){this._isDisposed||e===this._value||(this._value?.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}},OO=class{constructor(e){this._disposable=e,this._counter=1}acquire(){return this._counter++,this}release(){return--this._counter===0&&this._disposable.dispose(),this}},PO=class{constructor(e){this.object=e}dispose(){}},$m=class{constructor(){this._store=new Map,this._isDisposed=!1}dispose(){this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{ut(this._store.values())}finally{this._store.clear()}}get(e){return this._store.get(e)}set(e,t,i=!1){this._isDisposed&&console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack),i||this._store.get(e)?.dispose(),this._store.set(e,t)}deleteAndDispose(e){this._store.get(e)?.dispose(),this._store.delete(e)}values(){return this._store.values()}[Symbol.iterator](){return this._store[Symbol.iterator]()}}});var ps,Fn,_d=w(()=>{ps=class n{static{this.Undefined=new n(void 0)}constructor(e){this.element=e,this.next=n.Undefined,this.prev=n.Undefined}},Fn=class{constructor(){this._first=ps.Undefined,this._last=ps.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===ps.Undefined}clear(){let e=this._first;for(;e!==ps.Undefined;){let t=e.next;e.prev=ps.Undefined,e.next=ps.Undefined,e=t}this._first=ps.Undefined,this._last=ps.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){let i=new ps(e);if(this._first===ps.Undefined)this._first=i,this._last=i;else if(t){let r=this._last;this._last=i,i.prev=r,r.next=i}else{let r=this._first;this._first=i,i.next=r,r.prev=i}this._size+=1;let o=!1;return()=>{o||(o=!0,this._remove(i))}}shift(){if(this._first!==ps.Undefined){let e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==ps.Undefined){let e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==ps.Undefined&&e.next!==ps.Undefined){let t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===ps.Undefined&&e.next===ps.Undefined?(this._first=ps.Undefined,this._last=ps.Undefined):e.next===ps.Undefined?(this._last=this._last.prev,this._last.next=ps.Undefined):e.prev===ps.Undefined&&(this._first=this._first.next,this._first.prev=ps.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==ps.Undefined;)yield e.element,e=e.next}}});var c6e,Gi,Ol=w(()=>{c6e=globalThis.performance.now.bind(globalThis.performance),Gi=class n{static create(e){return new n(e)}constructor(e){this._now=e===!1?Date.now:c6e,this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}}});var X,kG,d6e,LG,IG,EG,DG,ZE,h6e,N,a_e,FO,qh,cy,BO,WO,Hu,Yb,ae=w(()=>{Ae();wC();B();_d();Ol();(function(n){n.None=()=>E.None;function e(H,z){return u(H,()=>{},0,void 0,!0,void 0,z)}n.defer=e;function t(H){return(z,Q=null,ee)=>{let pe=!1,he;return he=H(_e=>{if(!pe)return he?he.dispose():pe=!0,z.call(Q,_e)},null,ee),pe&&he.dispose(),he}}n.once=t;function i(H,z){return n.once(n.filter(H,z))}n.onceIf=i;function o(H,z,Q){return d((ee,pe=null,he)=>H(_e=>ee.call(pe,z(_e)),null,he),Q)}n.map=o;function r(H,z,Q){return d((ee,pe=null,he)=>H(_e=>{z(_e),ee.call(pe,_e)},null,he),Q)}n.forEach=r;function s(H,z,Q){return d((ee,pe=null,he)=>H(_e=>z(_e)&&ee.call(pe,_e),null,he),Q)}n.filter=s;function a(H){return H}n.signal=a;function l(...H){return(z,Q=null,ee)=>{let pe=Ia(...H.map(he=>he(_e=>z.call(Q,_e))));return h(pe,ee)}}n.any=l;function c(H,z,Q,ee){let pe=Q;return o(H,he=>(pe=z(pe,he),pe),ee)}n.reduce=c;function d(H,z){let Q,ee={onWillAddFirstListener(){Q=H(pe.fire,pe)},onDidRemoveLastListener(){Q?.dispose()}},pe=new N(ee);return z?.add(pe),pe.event}function h(H,z){return z instanceof Array?z.push(H):z&&z.add(H),H}function u(H,z,Q=100,ee=!1,pe=!1,he,_e){let Oe,Qe,pt,ti=0,Vt,pn={leakWarningThreshold:he,onWillAddFirstListener(){Oe=H(Ks=>{ti++,Qe=z(Qe,Ks),ee&&!pt&&(Ni.fire(Qe),Qe=void 0),Vt=()=>{let Vo=Qe;Qe=void 0,pt=void 0,(!ee||ti>1)&&Ni.fire(Vo),ti=0},typeof Q=="number"?(pt&&clearTimeout(pt),pt=setTimeout(Vt,Q)):pt===void 0&&(pt=null,queueMicrotask(Vt))})},onWillRemoveListener(){pe&&ti>0&&Vt?.()},onDidRemoveLastListener(){Vt=void 0,Oe.dispose()}},Ni=new N(pn);return _e?.add(Ni),Ni.event}n.debounce=u;function f(H,z=0,Q){return n.debounce(H,(ee,pe)=>ee?(ee.push(pe),ee):[pe],z,void 0,!0,void 0,Q)}n.accumulate=f;function m(H,z=(ee,pe)=>ee===pe,Q){let ee=!0,pe;return s(H,he=>{let _e=ee||!z(he,pe);return ee=!1,pe=he,_e},Q)}n.latch=m;function p(H,z,Q){return[n.filter(H,z,Q),n.filter(H,ee=>!z(ee),Q)]}n.split=p;function _(H,z=!1,Q=[],ee){let pe=Q.slice(),he=H(Qe=>{pe?pe.push(Qe):Oe.fire(Qe)});ee&&ee.add(he);let _e=()=>{pe?.forEach(Qe=>Oe.fire(Qe)),pe=null},Oe=new N({onWillAddFirstListener(){he||(he=H(Qe=>Oe.fire(Qe)),ee&&ee.add(he))},onDidAddFirstListener(){pe&&(z?setTimeout(_e):_e())},onDidRemoveLastListener(){he&&he.dispose(),he=null}});return ee&&ee.add(Oe),Oe.event}n.buffer=_;function b(H,z){return(ee,pe,he)=>{let _e=z(new x);return H(function(Oe){let Qe=_e.evaluate(Oe);Qe!==v&&ee.call(pe,Qe)},void 0,he)}}n.chain=b;let v=Symbol("HaltChainable");class x{constructor(){this.steps=[]}map(z){return this.steps.push(z),this}forEach(z){return this.steps.push(Q=>(z(Q),Q)),this}filter(z){return this.steps.push(Q=>z(Q)?Q:v),this}reduce(z,Q){let ee=Q;return this.steps.push(pe=>(ee=z(ee,pe),ee)),this}latch(z=(Q,ee)=>Q===ee){let Q=!0,ee;return this.steps.push(pe=>{let he=Q||!z(pe,ee);return Q=!1,ee=pe,he?pe:v}),this}evaluate(z){for(let Q of this.steps)if(z=Q(z),z===v)break;return z}}function C(H,z,Q=ee=>ee){let ee=(...Oe)=>_e.fire(Q(...Oe)),pe=()=>H.on(z,ee),he=()=>H.removeListener(z,ee),_e=new N({onWillAddFirstListener:pe,onDidRemoveLastListener:he});return _e.event}n.fromNodeEventEmitter=C;function S(H,z,Q=ee=>ee){let ee=(...Oe)=>_e.fire(Q(...Oe)),pe=()=>H.addEventListener(z,ee),he=()=>H.removeEventListener(z,ee),_e=new N({onWillAddFirstListener:pe,onDidRemoveLastListener:he});return _e.event}n.fromDOMEventEmitter=S;function L(H,z){let Q,ee=new Promise((pe,he)=>{let _e=t(H)(pe,null,z);Q=()=>_e.dispose()});return ee.cancel=Q,ee}n.toPromise=L;function I(H,z){return H(Q=>z.fire(Q))}n.forward=I;function D(H,z,Q){return z(Q),H(ee=>z(ee))}n.runAndSubscribe=D;class T{constructor(z,Q){this._observable=z,this._counter=0,this._hasChanged=!1;let ee={onWillAddFirstListener:()=>{z.addObserver(this),this._observable.reportChanges()},onDidRemoveLastListener:()=>{z.removeObserver(this)}};this.emitter=new N(ee),Q&&Q.add(this.emitter)}beginUpdate(z){this._counter++}handlePossibleChange(z){}handleChange(z,Q){this._hasChanged=!0}endUpdate(z){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function O(H,z){return new T(H,z).emitter.event}n.fromObservable=O;function W(H){return(z,Q,ee)=>{let pe=0,he=!1,_e={beginUpdate(){pe++},endUpdate(){pe--,pe===0&&(H.reportChanges(),he&&(he=!1,z.call(Q)))},handlePossibleChange(){},handleChange(){he=!0}};H.addObserver(_e),H.reportChanges();let Oe={dispose(){H.removeObserver(_e)}};return ee instanceof P?ee.add(Oe):Array.isArray(ee)&&ee.push(Oe),Oe}}n.fromObservableLight=W})(X||(X={}));kG=class n{static{this.all=new Set}static{this._idPool=0}constructor(e){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${e}_${n._idPool++}`,n.all.add(this)}start(e){this._stopWatch=new Gi,this.listenerCount=e}stop(){if(this._stopWatch){let e=this._stopWatch.elapsed();this.durations.push(e),this.elapsedOverall+=e,this.invocationCount+=1,this._stopWatch=void 0}}},d6e=-1,LG=class n{static{this._idPool=1}constructor(e,t,i=(n._idPool++).toString(16).padStart(3,"0")){this._errorHandler=e,this.threshold=t,this.name=i,this._warnCountdown=0}dispose(){this._stacks?.clear()}check(e,t){let i=this.threshold;if(i<=0||t{let r=this._stacks.get(e.value)||0;this._stacks.set(e.value,r-1)}}getMostFrequentStack(){if(!this._stacks)return;let e,t=0;for(let[i,o]of this._stacks)(!e||t{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let a=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(a);let l=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],c=new DG(`${a}. HINT: Stack shows most frequent listener (${l[1]}-times)`,l[0]);return(this._options?.onListenerError||De)(c),E.None}if(this._disposed)return E.None;t&&(e=e.bind(t));let o=new ZE(e),r;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(o.stack=IG.create(),r=this._leakageMon.check(o.stack,this._size+1)),this._listeners?this._listeners instanceof ZE?(this._deliveryQueue??=new FO,this._listeners=[this._listeners,o]):this._listeners.push(o):(this._options?.onWillAddFirstListener?.(this),this._listeners=o,this._options?.onDidAddFirstListener?.(this)),this._options?.onDidAddListener?.(this),this._size++;let s=se(()=>{r?.(),this._removeListener(o)});return i instanceof P?i.add(s):Array.isArray(i)&&i.push(s),s},this._event}_removeListener(e){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let t=this._listeners,i=t.indexOf(e);if(i===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,t[i]=void 0;let o=this._deliveryQueue.current===this;if(this._size*h6e<=t.length){let r=0;for(let s=0;s0}},a_e=()=>new FO,FO=class{constructor(){this.i=-1,this.end=0}enqueue(e,t,i){this.i=0,this.end=i,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}},qh=class extends N{constructor(e){super(e),this._isPaused=0,this._eventQueue=new Fn,this._mergeFn=e?.merge}pause(){this._isPaused++}resume(){if(this._isPaused!==0&&--this._isPaused===0)if(this._mergeFn){if(this._eventQueue.size>0){let e=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(e))}}else for(;!this._isPaused&&this._eventQueue.size!==0;)super.fire(this._eventQueue.shift())}fire(e){this._size&&(this._isPaused!==0?this._eventQueue.push(e):super.fire(e))}},cy=class extends qh{constructor(e){super(e),this._delay=e.delay??100}fire(e){this._handle||(this.pause(),this._handle=setTimeout(()=>{this._handle=void 0,this.resume()},this._delay)),super.fire(e)}},BO=class extends N{constructor(e){super(e),this._queuedEvents=[],this._mergeFn=e?.merge}fire(e){this.hasListeners()&&(this._queuedEvents.push(e),this._queuedEvents.length===1&&queueMicrotask(()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach(t=>super.fire(t)),this._queuedEvents=[]}))}},WO=class{constructor(){this.hasListeners=!1,this.events=[],this.emitter=new N({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(e){let t={event:e,listener:null};return this.events.push(t),this.hasListeners&&this.hook(t),se($h(()=>{this.hasListeners&&this.unhook(t);let o=this.events.indexOf(t);this.events.splice(o,1)}))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach(e=>this.hook(e))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach(e=>this.unhook(e))}hook(e){e.listener=e.event(t=>this.emitter.fire(t))}unhook(e){e.listener?.dispose(),e.listener=null}dispose(){this.emitter.dispose();for(let e of this.events)e.listener?.dispose();this.events=[]}},Hu=class{constructor(){this.data=[]}wrapEvent(e,t,i){return(o,r,s)=>e(a=>{let l=this.data[this.data.length-1];if(!t){l?l.buffers.push(()=>o.call(r,a)):o.call(r,a);return}let c=l;if(!c){o.call(r,t(i,a));return}c.items??=[],c.items.push(a),c.buffers.length===0&&l.buffers.push(()=>{c.reducedResult??=i?c.items.reduce(t,i):c.items.reduce(t),o.call(r,c.reducedResult)})},void 0,s)}bufferEvents(e){let t={buffers:new Array};this.data.push(t);let i=e();return this.data.pop(),t.buffers.forEach(o=>o()),i}},Yb=class{constructor(){this.listening=!1,this.inputEvent=X.None,this.inputEventListener=E.None,this.emitter=new N({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(e){this.inputEvent=e,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=e(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}}});function XE(n){let e=new yt;return n.add({dispose(){e.cancel()}}),e.token}var l_e,Ge,dy,yt,zt=w(()=>{ae();l_e=Object.freeze(function(n,e){let t=setTimeout(n.bind(e),0);return{dispose(){clearTimeout(t)}}});(function(n){function e(t){return t===n.None||t===n.Cancelled||t instanceof dy?!0:!t||typeof t!="object"?!1:typeof t.isCancellationRequested=="boolean"&&typeof t.onCancellationRequested=="function"}n.isCancellationToken=e,n.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:X.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:l_e})})(Ge||(Ge={}));dy=class{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?l_e:(this._emitter||(this._emitter=new N),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}},yt=class{constructor(e){this._token=void 0,this._parentListener=void 0,this._parentListener=e&&e.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new dy),this._token}cancel(){this._token?this._token instanceof dy&&this._token.cancel():this._token=Ge.Cancelled}dispose(e=!1){e&&this.cancel(),this._parentListener?.dispose(),this._token?this._token instanceof dy&&this._token.dispose():this._token=Ge.None}}});var HO,TG=w(()=>{HO=Symbol("MicrotaskDelay")});function UO(n){return!!n&&typeof n.then=="function"}function Vi(n){let e=new yt,t=n(e.token),i=!1,o=new Promise((r,s)=>{let a=e.token.onCancellationRequested(()=>{i=!0,a.dispose(),s(new Za)});Promise.resolve(t).then(l=>{a.dispose(),e.dispose(),i?Zd(l)&&l.dispose():r(l)},l=>{a.dispose(),e.dispose(),s(l)})});return new class{cancel(){e.cancel(),e.dispose()}then(r,s){return o.then(r,s)}catch(r){return this.then(void 0,r)}finally(r){return o.finally(r)}}}function Pf(n,e,t){return new Promise((i,o)=>{let r=e.onCancellationRequested(()=>{r.dispose(),i(t)});n.then(i,o).finally(()=>r.dispose())})}function c_e(n,e){return new Promise((t,i)=>{let o=e.onCancellationRequested(()=>{o.dispose(),i(new Za)});n.then(t,i).finally(()=>o.dispose())})}function Pl(n,e){return e?new Promise((t,i)=>{let o=setTimeout(()=>{r.dispose(),t()},n),r=e.onCancellationRequested(()=>{clearTimeout(o),r.dispose(),i(new Za)})}):Vi(t=>Pl(n,t))}function Wc(n,e=0,t){let i=setTimeout(()=>{n(),t&&o.dispose()},e),o=se(()=>{clearTimeout(i),t?.delete(o)});return t?.add(o),o}function JE(n,e=i=>!!i,t=null){let i=0,o=n.length,r=()=>{if(i>=o)return Promise.resolve(t);let s=n[i++];return Promise.resolve(s()).then(l=>e(l)?Promise.resolve(l):r())};return r()}function d_e(n){let e=new yt,t=n(e.token);return new AG(e,async i=>{let o=e.token.onCancellationRequested(()=>{o.dispose(),e.dispose(),i.reject(new Za)});try{for await(let r of t){if(e.token.isCancellationRequested)return;i.emitOne(r)}o.dispose(),e.dispose()}catch(r){o.dispose(),e.dispose(),i.reject(r)}})}var NG,u6e,f6e,nr,uy,VO,io,Zb,lt,eD,hy,QE,zO,Xd,CC,RG,vl,AG,Ye=w(()=>{zt();Ae();B();ct();TG();NG=class{constructor(){this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null,this.cancellationTokenSource=new yt}queue(e){if(this.cancellationTokenSource.token.isCancellationRequested)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=e,!this.queuedPromise){let t=()=>{if(this.queuedPromise=null,this.cancellationTokenSource.token.isCancellationRequested)return;let i=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,i};this.queuedPromise=new Promise(i=>{this.activePromise.then(t,t).then(i)})}return new Promise((t,i)=>{this.queuedPromise.then(t,i)})}return this.activePromise=e(this.cancellationTokenSource.token),new Promise((t,i)=>{this.activePromise.then(o=>{this.activePromise=null,t(o)},o=>{this.activePromise=null,i(o)})})}dispose(){this.cancellationTokenSource.cancel()}},u6e=(n,e)=>{let t=!0,i=setTimeout(()=>{t=!1,e()},n);return{isTriggered:()=>t,dispose:()=>{clearTimeout(i),t=!1}}},f6e=n=>{let e=!0;return queueMicrotask(()=>{e&&(e=!1,n())}),{isTriggered:()=>e,dispose:()=>{e=!1}}},nr=class{constructor(e){this.defaultDelay=e,this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(e,t=this.defaultDelay){this.task=e,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((o,r)=>{this.doResolve=o,this.doReject=r}).then(()=>{if(this.completionPromise=null,this.doResolve=null,this.task){let o=this.task;return this.task=null,o()}}));let i=()=>{this.deferred=null,this.doResolve?.(null)};return this.deferred=t===HO?f6e(i):u6e(t,i),this.completionPromise}isTriggered(){return!!this.deferred?.isTriggered()}cancel(){this.cancelTimeout(),this.completionPromise&&(this.doReject?.(new Za),this.completionPromise=null)}cancelTimeout(){this.deferred?.dispose(),this.deferred=null}dispose(){this.cancel()}},uy=class{constructor(e){this.delayer=new nr(e),this.throttler=new NG}trigger(e,t){return this.delayer.trigger(()=>this.throttler.queue(e),t)}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose(),this.throttler.dispose()}};VO=class{constructor(){this._runningTask=void 0,this._pendingTasks=[]}schedule(e){let t=new Xd;return this._pendingTasks.push({task:e,deferred:t,setUndefinedWhenCleared:!1}),this._runIfNotRunning(),t.p}_runIfNotRunning(){this._runningTask===void 0&&this._processQueue()}async _processQueue(){if(this._pendingTasks.length===0)return;let e=this._pendingTasks.shift();if(e){if(this._runningTask)throw new ke;this._runningTask=e.task;try{let t=await e.task();e.deferred.complete(t)}catch(t){e.deferred.error(t)}finally{this._runningTask=void 0,this._processQueue()}}}clearPending(){let e=this._pendingTasks;this._pendingTasks=[];for(let t of e)t.setUndefinedWhenCleared?t.deferred.complete(void 0):t.deferred.error(new Za)}},io=class{constructor(e,t){this._isDisposed=!1,this._token=void 0,typeof e=="function"&&typeof t=="number"&&this.setIfNotSet(e,t)}dispose(){this.cancel(),this._isDisposed=!0}cancel(){this._token!==void 0&&(clearTimeout(this._token),this._token=void 0)}cancelAndSet(e,t){if(this._isDisposed)throw new ke("Calling 'cancelAndSet' on a disposed TimeoutTimer");this.cancel(),this._token=setTimeout(()=>{this._token=void 0,e()},t)}setIfNotSet(e,t){if(this._isDisposed)throw new ke("Calling 'setIfNotSet' on a disposed TimeoutTimer");this._token===void 0&&(this._token=setTimeout(()=>{this._token=void 0,e()},t))}},Zb=class{constructor(){this.disposable=void 0,this.isDisposed=!1}cancel(){this.disposable?.dispose(),this.disposable=void 0}cancelAndSet(e,t,i=globalThis){if(this.isDisposed)throw new ke("Calling 'cancelAndSet' on a disposed IntervalTimer");this.cancel();let o=i.setInterval(()=>{e()},t);this.disposable=se(()=>{i.clearInterval(o),this.disposable=void 0})}dispose(){this.cancel(),this.isDisposed=!0}},lt=class{constructor(e,t){this.timeoutToken=void 0,this.runner=e,this.timeout=t,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=void 0)}schedule(e=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,e)}get delay(){return this.timeout}set delay(e){this.timeout=e}isScheduled(){return this.timeoutToken!==void 0}onTimeout(){this.timeoutToken=void 0,this.runner&&this.doRun()}doRun(){this.runner?.()}};(function(){let n=globalThis;typeof n.requestIdleCallback!="function"||typeof n.cancelIdleCallback!="function"?hy=(e,t,i)=>{Um(()=>{if(o)return;let r=Date.now()+15;t(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,r-Date.now())}}))});let o=!1;return{dispose(){o||(o=!0)}}}:hy=(e,t,i)=>{let o=e.requestIdleCallback(t,typeof i=="number"?{timeout:i}:void 0),r=!1;return{dispose(){r||(r=!0,e.cancelIdleCallback(o))}}},eD=(e,t)=>hy(globalThis,e,t)})();QE=class{constructor(e,t){this._didRun=!1,this._executor=()=>{try{this._value=t()}catch(i){this._error=i}finally{this._didRun=!0}},this._handle=hy(e,()=>this._executor())}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}},zO=class extends QE{constructor(e){super(globalThis,e)}},Xd=class{get isRejected(){return this.outcome?.outcome===1}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise((e,t)=>{this.completeCallback=e,this.errorCallback=t})}complete(e){return this.isSettled?Promise.resolve():new Promise(t=>{this.completeCallback(e),this.outcome={outcome:0,value:e},t()})}error(e){return this.isSettled?Promise.resolve():new Promise(t=>{this.errorCallback(e),this.outcome={outcome:1,value:e},t()})}cancel(){return this.error(new Za)}};(function(n){async function e(i){let o,r=await Promise.all(i.map(s=>s.then(a=>a,a=>{o||(o=a)})));if(typeof o<"u")throw o;return r}n.settled=e;function t(i){return new Promise(async(o,r)=>{try{await i(o,r)}catch(s){r(s)}})}n.withAsyncBody=t})(CC||(CC={}));RG=class{constructor(){this._unsatisfiedConsumers=[],this._unconsumedValues=[]}get hasFinalValue(){return!!this._finalValue}produce(e){if(this._ensureNoFinalValue(),this._unsatisfiedConsumers.length>0){let t=this._unsatisfiedConsumers.shift();this._resolveOrRejectDeferred(t,e)}else this._unconsumedValues.push(e)}produceFinal(e){this._ensureNoFinalValue(),this._finalValue=e;for(let t of this._unsatisfiedConsumers)this._resolveOrRejectDeferred(t,e);this._unsatisfiedConsumers.length=0}_ensureNoFinalValue(){if(this._finalValue)throw new ke("ProducerConsumer: cannot produce after final value has been set")}_resolveOrRejectDeferred(e,t){t.ok?e.complete(t.value):e.error(t.error)}consume(){if(this._unconsumedValues.length>0||this._finalValue){let e=this._unconsumedValues.length>0?this._unconsumedValues.shift():this._finalValue;return e.ok?Promise.resolve(e.value):Promise.reject(e.error)}else{let e=new Xd;return this._unsatisfiedConsumers.push(e),e.p}}},vl=class n{constructor(e,t){this._onReturn=t,this._producerConsumer=new RG,this._iterator={next:()=>this._producerConsumer.consume(),return:()=>(this._onReturn?.(),Promise.resolve({done:!0,value:void 0})),throw:async i=>(this._finishError(i),{done:!0,value:void 0})},queueMicrotask(async()=>{let i=e({emitOne:o=>this._producerConsumer.produce({ok:!0,value:{done:!1,value:o}}),emitMany:o=>{for(let r of o)this._producerConsumer.produce({ok:!0,value:{done:!1,value:r}})},reject:o=>this._finishError(o)});if(!this._producerConsumer.hasFinalValue)try{await i,this._finishOk()}catch(o){this._finishError(o)}})}static fromArray(e){return new n(t=>{t.emitMany(e)})}static fromPromise(e){return new n(async t=>{t.emitMany(await e)})}static fromPromisesResolveOrder(e){return new n(async t=>{await Promise.all(e.map(async i=>t.emitOne(await i)))})}static merge(e){return new n(async t=>{await Promise.all(e.map(async i=>{for await(let o of i)t.emitOne(o)}))})}static{this.EMPTY=n.fromArray([])}static map(e,t){return new n(async i=>{for await(let o of e)i.emitOne(t(o))})}map(e){return n.map(this,e)}static coalesce(e){return n.filter(e,t=>!!t)}coalesce(){return n.coalesce(this)}static filter(e,t){return new n(async i=>{for await(let o of e)t(o)&&i.emitOne(o)})}filter(e){return n.filter(this,e)}_finishOk(){this._producerConsumer.hasFinalValue||this._producerConsumer.produceFinal({ok:!0,value:{done:!0,value:void 0}})}_finishError(e){this._producerConsumer.hasFinalValue||this._producerConsumer.produceFinal({ok:!1,error:e})}[Symbol.asyncIterator](){return this._iterator}},AG=class extends vl{constructor(e,t){super(t),this._source=e}cancel(){this._source.cancel()}}});function h_e(n){return n}var $O,xC,qO=w(()=>{$O=class{constructor(e,t){this.lastCache=void 0,this.lastArgKey=void 0,typeof e=="function"?(this._fn=e,this._computeKey=h_e):(this._fn=t,this._computeKey=e.getCacheKey)}get(e){let t=this._computeKey(e);return this.lastArgKey!==t&&(this.lastArgKey=t,this.lastCache=this._fn(e)),this.lastCache}},xC=class{get cachedValues(){return this._map}constructor(e,t){this._map=new Map,this._map2=new Map,typeof e=="function"?(this._fn=e,this._computeKey=h_e):(this._fn=t,this._computeKey=e.getCacheKey)}get(e){let t=this._computeKey(e);if(this._map2.has(t))return this._map2.get(t);let i=this._fn(e);return this._map.set(e,i),this._map2.set(t,i),i}}});var SC,$n,Vu=w(()=>{(function(n){n[n.Uninitialized=0]="Uninitialized",n[n.Running=1]="Running",n[n.Completed=2]="Completed"})(SC||(SC={}));$n=class{constructor(e){this.executor=e,this._state=SC.Uninitialized}get value(){if(this._state===SC.Uninitialized){this._state=SC.Running;try{this._value=this.executor()}catch(e){this._error=e}finally{this._state=SC.Completed}}else if(this._state===SC.Running)throw new Error("Cannot read the value of a lazy that is being initialized");if(this._error)throw this._error;return this._value}get rawValue(){return this._value}}});function KO(n){return!n||typeof n!="string"?!0:n.trim().length===0}function jh(n,...e){return e.length===0?n:n.replace(m6e,function(t,i){let o=parseInt(i,10);return isNaN(o)||o<0||o>=e.length?t:e[o]})}function f_e(n){return n.replace(/[<>"'&]/g,e=>{switch(e){case"<":return"<";case">":return">";case'"':return""";case"'":return"'";case"&":return"&"}return e})}function rc(n){return n.replace(/[<>&]/g,function(e){switch(e){case"<":return"<";case">":return">";case"&":return"&";default:return e}})}function or(n){return n.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function m_e(n,e=" "){let t=Vp(n,e);return OG(t,e)}function Vp(n,e){if(!n||!e)return n;let t=e.length;if(t===0||n.length===0)return n;let i=0;for(;n.indexOf(e,i)===i;)i=i+t;return n.substring(i)}function OG(n,e){if(!n||!e)return n;let t=e.length,i=n.length;if(t===0||i===0)return n;let o=i,r=-1;for(;r=n.lastIndexOf(e,o-1),!(r===-1||r+t!==o);){if(r===0)return"";o=r}return n.substring(0,o)}function g_e(n){return n.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}function GO(n,e,t={}){if(!n)throw new Error("Cannot create regex from empty string");e||(n=or(n)),t.wholeWord&&(/\B/.test(n.charAt(0))||(n="\\b"+n),/\B/.test(n.charAt(n.length-1))||(n=n+"\\b"));let i="";return t.global&&(i+="g"),t.matchCase||(i+="i"),t.multiline&&(i+="m"),t.unicode&&(i+="u"),new RegExp(n,i)}function YO(n){return n.source==="^"||n.source==="^$"||n.source==="$"||n.source==="^\\s*$"?!1:!!(n.exec("")&&n.lastIndex===0)}function No(n){return n.split(/\r\n|\r|\n/)}function Gn(n){for(let e=0,t=n.length;e=0;t--){let i=n.charCodeAt(t);if(i!==32&&i!==9)return t}return-1}function Xb(n,e){return ne?1:0}function ZO(n,e,t=0,i=n.length,o=0,r=e.length){for(;tc)return 1}let s=i-t,a=r-o;return sa?1:0}function iD(n,e){return kC(n,e,0,n.length,0,e.length)}function kC(n,e,t=0,i=n.length,o=0,r=e.length){for(;t=128||c>=128)return ZO(n.toLowerCase(),e.toLowerCase(),t,i,o,r);qm(l)&&(l-=32),qm(c)&&(c-=32);let d=l-c;if(d!==0)return d}let s=i-t,a=r-o;return sa?1:0}function nD(n){return n>=48&&n<=57}function qm(n){return n>=97&&n<=122}function Kh(n){return n>=65&&n<=90}function Ff(n,e){return n.length===e.length&&kC(n,e)===0}function my(n,e){let t=e.length;return t<=n.length&&kC(n,e,0,t)===0}function p_e(n,e){let t=n.length,i=t-e.length;return i>=0&&kC(n,e,i,t)===0}function Ea(n,e){let t=Math.min(n.length,e.length),i;for(i=0;i1){let i=n.charCodeAt(e-2);if(Dn(i))return XO(i,t)}return t}function oD(n,e){return new yC(n,e).nextGraphemeLength()}function PG(n,e){return new yC(n,e).prevGraphemeLength()}function __e(n,e){e>0&&zu(n.charCodeAt(e))&&e--;let t=e+oD(n,e);return[t-PG(n,t),t]}function p6e(){return/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/}function Bf(n){return MG||(MG=p6e()),MG.test(n)}function jm(n){return _6e.test(n)}function QO(n){return FG.test(n)}function vd(n){return n>=11904&&n<=55215||n>=63744&&n<=64255||n>=65281&&n<=65374}function rD(n){return n>=127462&&n<=127487||n===8986||n===8987||n===9200||n===9203||n>=9728&&n<=10175||n===11088||n===11093||n>=127744&&n<=128591||n>=128640&&n<=128764||n>=128992&&n<=129008||n>=129280&&n<=129535||n>=129648&&n<=129782}function py(n){return!!(n&&n.length>0&&n.charCodeAt(0)===65279)}function v_e(n,e=!1){return n?(e&&(n=n.replace(/\\./g,"")),n.toLowerCase()!==n):!1}function JO(n){return n=n%(2*26),n<26?String.fromCharCode(97+n):String.fromCharCode(65+n-26)}function u_e(n,e){return n===0?e!==5&&e!==7:n===2&&e===3?!1:n===4||n===2||n===3||e===4||e===2||e===3?!0:!(n===8&&(e===8||e===9||e===11||e===12)||(n===11||n===9)&&(e===9||e===10)||(n===12||n===10)&&e===10||e===5||e===13||e===7||n===1||n===13&&e===14||n===6&&e===6)}function b6e(){return JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}function w_e(n,e){if(n===0)return 0;let t=v6e(n,e);if(t!==void 0)return t;let i=new tD(e,n);return i.prevCodePoint(),i.offset}function v6e(n,e){let t=new tD(e,n),i=t.prevCodePoint();for(;w6e(i)||i===65039||i===8419;){if(t.offset===0)return;i=t.prevCodePoint()}if(!rD(i))return;let o=t.offset;return o>0&&t.prevCodePoint()===8205&&(o=t.offset),o}function w6e(n){return 127995<=n&&n<=127999}var m6e,tD,yC,MG,_6e,FG,b_e,jO,eP,fy,Hp,He=w(()=>{qO();Vu();m6e=/{(\d+)}/g;tD=class{get offset(){return this._offset}constructor(e,t=0){this._str=e,this._len=e.length,this._offset=t}setOffset(e){this._offset=e}prevCodePoint(){let e=g6e(this._str,this._offset);return this._offset-=e>=65536?2:1,e}nextCodePoint(){let e=gy(this._str,this._len,this._offset);return this._offset+=e>=65536?2:1,e}eol(){return this._offset>=this._len}},yC=class{get offset(){return this._iterator.offset}constructor(e,t=0){this._iterator=new tD(e,t)}nextGraphemeLength(){let e=jO.getInstance(),t=this._iterator,i=t.offset,o=e.getGraphemeBreakType(t.nextCodePoint());for(;!t.eol();){let r=t.offset,s=e.getGraphemeBreakType(t.nextCodePoint());if(u_e(o,s)){t.setOffset(r);break}o=s}return t.offset-i}prevGraphemeLength(){let e=jO.getInstance(),t=this._iterator,i=t.offset,o=e.getGraphemeBreakType(t.prevCodePoint());for(;t.offset>0;){let r=t.offset,s=e.getGraphemeBreakType(t.prevCodePoint());if(u_e(s,o)){t.setOffset(r);break}o=s}return i-t.offset}eol(){return this._iterator.eol()}};_6e=/^[\t\n\r\x20-\x7E]*$/;FG=/[\u2028\u2029]/;b_e="\uFEFF";jO=class n{static{this._INSTANCE=null}static getInstance(){return n._INSTANCE||(n._INSTANCE=new n),n._INSTANCE}constructor(){this._data=b6e()}getGraphemeBreakType(e){if(e<32)return e===10?3:e===13?2:4;if(e<127)return 0;let t=this._data,i=t.length/3,o=1;for(;o<=i;)if(et[3*o+1])o=2*o+1;else return t[3*o+2];return 0}};eP="\xA0",fy=class n{static{this.ambiguousCharacterData=new $n(()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,1523,96,8242,96,1370,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,118002,50,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,118003,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,118004,52,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,118005,53,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,118006,54,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,118007,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,118008,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,118009,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,117974,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,117975,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71913,67,71922,67,65315,67,8557,67,8450,67,8493,67,117976,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,117977,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,117978,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,117979,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,117980,71,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,117981,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,117983,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,117984,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,118001,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,117982,108,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,117985,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,117986,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,117987,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,118000,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,117988,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,117989,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,117990,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,117991,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,117992,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,117993,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,117994,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,117995,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71910,87,71919,87,117996,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,117997,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,117998,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,71909,90,66293,90,65338,90,8484,90,8488,90,117999,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65283,35,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"cs":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"es":[8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"fr":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"it":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"ja":[8211,45,8218,44,65281,33,8216,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65292,44,65297,49,65307,59],"ko":[8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"pt-BR":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"ru":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"zh-hans":[160,32,65374,126,8218,44,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65297,49],"zh-hant":[8211,45,65374,126,8218,44,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89]}'))}static{this.cache=new $O({getCacheKey:JSON.stringify},e=>{function t(d){let h=new Map;for(let u=0;u!d.startsWith("_")&&Object.hasOwn(r,d));s.length===0&&(s=["_default"]);let a;for(let d of s){let h=t(r[d]);a=o(a,h)}let l=t(r._common),c=i(l,a);return new n(c)})}static getInstance(e){return n.cache.get(Array.from(e))}static{this._locales=new $n(()=>Object.keys(n.ambiguousCharacterData.value).filter(e=>!e.startsWith("_")))}static getLocales(){return n._locales.value}constructor(e){this.confusableDictionary=e}isAmbiguous(e){return this.confusableDictionary.has(e)}getPrimaryConfusable(e){return this.confusableDictionary.get(e)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}},Hp=class n{static getRawData(){return JSON.parse('{"_common":[11,12,13,127,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999],"cs":[173,8203,12288],"de":[173,8203,12288],"es":[8203,12288],"fr":[173,8203,12288],"it":[160,173,12288],"ja":[173],"ko":[173,12288],"pl":[173,8203,12288],"pt-BR":[173,8203,12288],"qps-ploc":[160,173,8203,12288],"ru":[173,12288],"tr":[160,173,8203,12288],"zh-hans":[160,173,8203,12288],"zh-hant":[173,12288]}')}static{this._data=void 0}static getData(){return this._data||(this._data=new Set([...Object.values(n.getRawData())].flat())),this._data}static isInvisibleCharacter(e){return n.getData().has(e)}static get codePoints(){return n.getData()}}});var _y,BG,sD,LC,C_e,tP=w(()=>{ct();BG=globalThis.vscode;if(typeof BG<"u"&&typeof BG.process<"u"){let n=BG.process;_y={get platform(){return n.platform},get arch(){return n.arch},get env(){return n.env},cwd(){return n.cwd()}}}else typeof process<"u"&&typeof process?.versions?.node=="string"?_y={get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd(){return process.env.VSCODE_CWD||process.cwd()}}:_y={get platform(){return Qi?"win32":qe?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};sD=_y.cwd,LC=_y.env,C_e=_y.platform});function L6e(n,e){if(n===null||typeof n!="object")throw new iP(e,"Object",n)}function fa(n,e){if(typeof n!="string")throw new iP(e,"string",n)}function zi(n){return n===Fl||n===Qd}function WG(n){return n===Fl}function Up(n){return n>=C6e&&n<=S6e||n>=x6e&&n<=y6e}function nP(n,e,t,i){let o="",r=0,s=-1,a=0,l=0;for(let c=0;c<=n.length;++c){if(c2){let d=o.lastIndexOf(t);d===-1?(o="",r=0):(o=o.slice(0,d),r=o.length-1-o.lastIndexOf(t)),s=c,a=0;continue}else if(o.length!==0){o="",r=0,s=c,a=0;continue}}e&&(o+=o.length>0?`${t}..`:"..",r=2)}else o.length>0?o+=`${t}${n.slice(s+1,c)}`:o=n.slice(s+1,c),r=c-s-1;s=c,a=0}else l===IC&&a!==-1?++a:a=-1}return o}function I6e(n){return n?`${n[0]==="."?"":"."}${n}`:""}function x_e(n,e){L6e(e,"pathObject");let t=e.dir||e.root,i=e.base||`${e.name||""}${I6e(e.ext)}`;return t?t===e.root?`${t}${i}`:`${t}${n}${i}`:i}var C6e,x6e,S6e,y6e,IC,Fl,Qd,zp,k6e,iP,Qb,Hc,E6e,Yn,oP,S_e,y_e,by,Gh,k_e,wd,Wf=w(()=>{tP();C6e=65,x6e=97,S6e=90,y6e=122,IC=46,Fl=47,Qd=92,zp=58,k6e=63,iP=class extends Error{constructor(e,t,i){let o;typeof t=="string"&&t.indexOf("not ")===0?(o="must not be",t=t.replace(/^not /,"")):o="must be";let r=e.indexOf(".")!==-1?"property":"argument",s=`The "${e}" ${r} ${o} of type ${t}`;s+=`. Received type ${typeof i}`,super(s),this.code="ERR_INVALID_ARG_TYPE"}};Qb=C_e==="win32";Hc={resolve(...n){let e="",t="",i=!1;for(let o=n.length-1;o>=-1;o--){let r;if(o>=0){if(r=n[o],fa(r,`paths[${o}]`),r.length===0)continue}else e.length===0?r=sD():(r=LC[`=${e}`]||sD(),(r===void 0||r.slice(0,2).toLowerCase()!==e.toLowerCase()&&r.charCodeAt(2)===Qd)&&(r=`${e}\\`));let s=r.length,a=0,l="",c=!1,d=r.charCodeAt(0);if(s===1)zi(d)&&(a=1,c=!0);else if(zi(d))if(c=!0,zi(r.charCodeAt(1))){let h=2,u=h;for(;h2&&zi(r.charCodeAt(2))&&(c=!0,a=3));if(l.length>0)if(e.length>0){if(l.toLowerCase()!==e.toLowerCase())continue}else e=l;if(i){if(e.length>0)break}else if(t=`${r.slice(a)}\\${t}`,i=c,c&&e.length>0)break}return t=nP(t,!i,"\\",zi),i?`${e}\\${t}`:`${e}${t}`||"."},normalize(n){fa(n,"path");let e=n.length;if(e===0)return".";let t=0,i,o=!1,r=n.charCodeAt(0);if(e===1)return WG(r)?"\\":n;if(zi(r))if(o=!0,zi(n.charCodeAt(1))){let a=2,l=a;for(;a2&&zi(n.charCodeAt(2))&&(o=!0,t=3));let s=t0&&zi(n.charCodeAt(e-1))&&(s+="\\"),!o&&i===void 0&&n.includes(":")){if(s.length>=2&&Up(s.charCodeAt(0))&&s.charCodeAt(1)===zp)return`.\\${s}`;let a=n.indexOf(":");do if(a===e-1||zi(n.charCodeAt(a+1)))return`.\\${s}`;while((a=n.indexOf(":",a+1))!==-1)}return i===void 0?o?`\\${s}`:s:o?`${i}\\${s}`:`${i}${s}`},isAbsolute(n){fa(n,"path");let e=n.length;if(e===0)return!1;let t=n.charCodeAt(0);return zi(t)||e>2&&Up(t)&&n.charCodeAt(1)===zp&&zi(n.charCodeAt(2))},join(...n){if(n.length===0)return".";let e,t;for(let r=0;r0&&(e===void 0?e=t=s:e+=`\\${s}`)}if(e===void 0)return".";let i=!0,o=0;if(typeof t=="string"&&zi(t.charCodeAt(0))){++o;let r=t.length;r>1&&zi(t.charCodeAt(1))&&(++o,r>2&&(zi(t.charCodeAt(2))?++o:i=!1))}if(i){for(;o=2&&(e=`\\${e.slice(o)}`)}return Hc.normalize(e)},relative(n,e){if(fa(n,"from"),fa(e,"to"),n===e)return"";let t=Hc.resolve(n),i=Hc.resolve(e);if(t===i||(n=t.toLowerCase(),e=i.toLowerCase(),n===e))return"";if(t.length!==n.length||i.length!==e.length){let m=t.split("\\"),p=i.split("\\");m[m.length-1]===""&&m.pop(),p[p.length-1]===""&&p.pop();let _=m.length,b=p.length,v=_v?p.slice(x).join("\\"):_>v?"..\\".repeat(_-1-x)+"..":"":"..\\".repeat(_-x)+p.slice(x).join("\\")}let o=0;for(;oo&&n.charCodeAt(r-1)===Qd;)r--;let s=r-o,a=0;for(;aa&&e.charCodeAt(l-1)===Qd;)l--;let c=l-a,d=sd){if(e.charCodeAt(a+u)===Qd)return i.slice(a+u+1);if(u===2)return i.slice(a+u)}s>d&&(n.charCodeAt(o+u)===Qd?h=u:u===2&&(h=3)),h===-1&&(h=0)}let f="";for(u=o+h+1;u<=r;++u)(u===r||n.charCodeAt(u)===Qd)&&(f+=f.length===0?"..":"\\..");return a+=h,f.length>0?`${f}${i.slice(a,l)}`:(i.charCodeAt(a)===Qd&&++a,i.slice(a,l))},toNamespacedPath(n){if(typeof n!="string"||n.length===0)return n;let e=Hc.resolve(n);if(e.length<=2)return n;if(e.charCodeAt(0)===Qd){if(e.charCodeAt(1)===Qd){let t=e.charCodeAt(2);if(t!==k6e&&t!==IC)return`\\\\?\\UNC\\${e.slice(2)}`}}else if(Up(e.charCodeAt(0))&&e.charCodeAt(1)===zp&&e.charCodeAt(2)===Qd)return`\\\\?\\${e}`;return e},dirname(n){fa(n,"path");let e=n.length;if(e===0)return".";let t=-1,i=0,o=n.charCodeAt(0);if(e===1)return zi(o)?n:".";if(zi(o)){if(t=i=1,zi(n.charCodeAt(1))){let a=2,l=a;for(;a2&&zi(n.charCodeAt(2))?3:2,i=t);let r=-1,s=!0;for(let a=e-1;a>=i;--a)if(zi(n.charCodeAt(a))){if(!s){r=a;break}}else s=!1;if(r===-1){if(t===-1)return".";r=t}return n.slice(0,r)},basename(n,e){e!==void 0&&fa(e,"suffix"),fa(n,"path");let t=0,i=-1,o=!0,r;if(n.length>=2&&Up(n.charCodeAt(0))&&n.charCodeAt(1)===zp&&(t=2),e!==void 0&&e.length>0&&e.length<=n.length){if(e===n)return"";let s=e.length-1,a=-1;for(r=n.length-1;r>=t;--r){let l=n.charCodeAt(r);if(zi(l)){if(!o){t=r+1;break}}else a===-1&&(o=!1,a=r+1),s>=0&&(l===e.charCodeAt(s)?--s===-1&&(i=r):(s=-1,i=a))}return t===i?i=a:i===-1&&(i=n.length),n.slice(t,i)}for(r=n.length-1;r>=t;--r)if(zi(n.charCodeAt(r))){if(!o){t=r+1;break}}else i===-1&&(o=!1,i=r+1);return i===-1?"":n.slice(t,i)},extname(n){fa(n,"path");let e=0,t=-1,i=0,o=-1,r=!0,s=0;n.length>=2&&n.charCodeAt(1)===zp&&Up(n.charCodeAt(0))&&(e=i=2);for(let a=n.length-1;a>=e;--a){let l=n.charCodeAt(a);if(zi(l)){if(!r){i=a+1;break}continue}o===-1&&(r=!1,o=a+1),l===IC?t===-1?t=a:s!==1&&(s=1):t!==-1&&(s=-1)}return t===-1||o===-1||s===0||s===1&&t===o-1&&t===i+1?"":n.slice(t,o)},format:x_e.bind(null,"\\"),parse(n){fa(n,"path");let e={root:"",dir:"",base:"",ext:"",name:""};if(n.length===0)return e;let t=n.length,i=0,o=n.charCodeAt(0);if(t===1)return zi(o)?(e.root=e.dir=n,e):(e.base=e.name=n,e);if(zi(o)){if(i=1,zi(n.charCodeAt(1))){let h=2,u=h;for(;h0&&(e.root=n.slice(0,i));let r=-1,s=i,a=-1,l=!0,c=n.length-1,d=0;for(;c>=i;--c){if(o=n.charCodeAt(c),zi(o)){if(!l){s=c+1;break}continue}a===-1&&(l=!1,a=c+1),o===IC?r===-1?r=c:d!==1&&(d=1):r!==-1&&(d=-1)}return a!==-1&&(r===-1||d===0||d===1&&r===a-1&&r===s+1?e.base=e.name=n.slice(s,a):(e.name=n.slice(s,r),e.base=n.slice(s,a),e.ext=n.slice(r,a))),s>0&&s!==i?e.dir=n.slice(0,s-1):e.dir=e.root,e},sep:"\\",delimiter:";",win32:null,posix:null},E6e=(()=>{if(Qb){let n=/\\/g;return()=>{let e=sD().replace(n,"/");return e.slice(e.indexOf("/"))}}return()=>sD()})(),Yn={resolve(...n){let e="",t=!1;for(let i=n.length-1;i>=0&&!t;i--){let o=n[i];fa(o,`paths[${i}]`),o.length!==0&&(e=`${o}/${e}`,t=o.charCodeAt(0)===Fl)}if(!t){let i=E6e();e=`${i}/${e}`,t=i.charCodeAt(0)===Fl}return e=nP(e,!t,"/",WG),t?`/${e}`:e.length>0?e:"."},normalize(n){if(fa(n,"path"),n.length===0)return".";let e=n.charCodeAt(0)===Fl,t=n.charCodeAt(n.length-1)===Fl;return n=nP(n,!e,"/",WG),n.length===0?e?"/":t?"./":".":(t&&(n+="/"),e?`/${n}`:n)},isAbsolute(n){return fa(n,"path"),n.length>0&&n.charCodeAt(0)===Fl},join(...n){if(n.length===0)return".";let e=[];for(let t=0;t0&&e.push(i)}return e.length===0?".":Yn.normalize(e.join("/"))},relative(n,e){if(fa(n,"from"),fa(e,"to"),n===e||(n=Yn.resolve(n),e=Yn.resolve(e),n===e))return"";let t=1,i=n.length,o=i-t,r=1,s=e.length-r,a=oa){if(e.charCodeAt(r+c)===Fl)return e.slice(r+c+1);if(c===0)return e.slice(r+c)}else o>a&&(n.charCodeAt(t+c)===Fl?l=c:c===0&&(l=0));let d="";for(c=t+l+1;c<=i;++c)(c===i||n.charCodeAt(c)===Fl)&&(d+=d.length===0?"..":"/..");return`${d}${e.slice(r+l)}`},toNamespacedPath(n){return n},dirname(n){if(fa(n,"path"),n.length===0)return".";let e=n.charCodeAt(0)===Fl,t=-1,i=!0;for(let o=n.length-1;o>=1;--o)if(n.charCodeAt(o)===Fl){if(!i){t=o;break}}else i=!1;return t===-1?e?"/":".":e&&t===1?"//":n.slice(0,t)},basename(n,e){e!==void 0&&fa(e,"suffix"),fa(n,"path");let t=0,i=-1,o=!0,r;if(e!==void 0&&e.length>0&&e.length<=n.length){if(e===n)return"";let s=e.length-1,a=-1;for(r=n.length-1;r>=0;--r){let l=n.charCodeAt(r);if(l===Fl){if(!o){t=r+1;break}}else a===-1&&(o=!1,a=r+1),s>=0&&(l===e.charCodeAt(s)?--s===-1&&(i=r):(s=-1,i=a))}return t===i?i=a:i===-1&&(i=n.length),n.slice(t,i)}for(r=n.length-1;r>=0;--r)if(n.charCodeAt(r)===Fl){if(!o){t=r+1;break}}else i===-1&&(o=!1,i=r+1);return i===-1?"":n.slice(t,i)},extname(n){fa(n,"path");let e=-1,t=0,i=-1,o=!0,r=0;for(let s=n.length-1;s>=0;--s){let a=n[s];if(a==="/"){if(!o){t=s+1;break}continue}i===-1&&(o=!1,i=s+1),a==="."?e===-1?e=s:r!==1&&(r=1):e!==-1&&(r=-1)}return e===-1||i===-1||r===0||r===1&&e===i-1&&e===t+1?"":n.slice(e,i)},format:x_e.bind(null,"/"),parse(n){fa(n,"path");let e={root:"",dir:"",base:"",ext:"",name:""};if(n.length===0)return e;let t=n.charCodeAt(0)===Fl,i;t?(e.root="/",i=1):i=0;let o=-1,r=0,s=-1,a=!0,l=n.length-1,c=0;for(;l>=i;--l){let d=n.charCodeAt(l);if(d===Fl){if(!a){r=l+1;break}continue}s===-1&&(a=!1,s=l+1),d===IC?o===-1?o=l:c!==1&&(c=1):o!==-1&&(c=-1)}if(s!==-1){let d=r===0&&t?1:r;o===-1||c===0||c===1&&o===s-1&&o===r+1?e.base=e.name=n.slice(d,s):(e.name=n.slice(d,o),e.base=n.slice(d,s),e.ext=n.slice(o,s))}return r>0?e.dir=n.slice(0,r-1):t&&(e.dir="/"),e},sep:"/",delimiter:":",win32:null,posix:null};Yn.win32=Hc.win32=Hc;Yn.posix=Hc.posix=Yn;oP=Qb?Hc.normalize:Yn.normalize,S_e=Qb?Hc.resolve:Yn.resolve,y_e=Qb?Hc.relative:Yn.relative,by=Qb?Hc.dirname:Yn.dirname,Gh=Qb?Hc.basename:Yn.basename,k_e=Qb?Hc.extname:Yn.extname,wd=Qb?Hc.sep:Yn.sep});function R6e(n,e){if(!n.scheme&&e)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${n.authority}", path: "${n.path}", query: "${n.query}", fragment: "${n.fragment}"}`);if(n.scheme&&!D6e.test(n.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(n.path){if(n.authority){if(!T6e.test(n.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(N6e.test(n.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}function A6e(n,e){return!n&&!e?"file":n}function M6e(n,e){switch(n){case"https":case"http":case"file":e?e[0]!==Hf&&(e=Hf+e):e=Hf;break}return e}function L_e(n,e,t){let i,o=-1;for(let r=0;r=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||s===45||s===46||s===95||s===126||e&&s===47||t&&s===91||t&&s===93||t&&s===58)o!==-1&&(i+=encodeURIComponent(n.substring(o,r)),o=-1),i!==void 0&&(i+=n.charAt(r));else{i===void 0&&(i=n.substr(0,r));let a=D_e[s];a!==void 0?(o!==-1&&(i+=encodeURIComponent(n.substring(o,r)),o=-1),i+=a):o===-1&&(o=r)}}return o!==-1&&(i+=encodeURIComponent(n.substring(o))),i!==void 0?i:n}function P6e(n){let e;for(let t=0;t1&&n.scheme==="file"?t=`//${n.authority}${n.path}`:n.path.charCodeAt(0)===47&&(n.path.charCodeAt(1)>=65&&n.path.charCodeAt(1)<=90||n.path.charCodeAt(1)>=97&&n.path.charCodeAt(1)<=122)&&n.path.charCodeAt(2)===58?e?t=n.path.substr(1):t=n.path[1].toLowerCase()+n.path.substr(2):t=n.path,Qi&&(t=t.replace(/\//g,"\\")),t}function HG(n,e){let t=e?P6e:L_e,i="",{scheme:o,authority:r,path:s,query:a,fragment:l}=n;if(o&&(i+=o,i+=":"),(r||o==="file")&&(i+=Hf,i+=Hf),r){let c=r.indexOf("@");if(c!==-1){let d=r.substr(0,c);r=r.substr(c+1),c=d.lastIndexOf(":"),c===-1?i+=t(d,!1,!1):(i+=t(d.substr(0,c),!1,!1),i+=":",i+=t(d.substr(c+1),!1,!0)),i+="@"}r=r.toLowerCase(),c=r.lastIndexOf(":"),c===-1?i+=t(r,!1,!0):(i+=t(r.substr(0,c),!1,!0),i+=r.substr(c))}if(s){if(s.length>=3&&s.charCodeAt(0)===47&&s.charCodeAt(2)===58){let c=s.charCodeAt(1);c>=65&&c<=90&&(s=`/${String.fromCharCode(c+32)}:${s.substr(3)}`)}else if(s.length>=2&&s.charCodeAt(1)===58){let c=s.charCodeAt(0);c>=65&&c<=90&&(s=`${String.fromCharCode(c+32)}:${s.substr(2)}`)}i+=t(s,!0,!1)}return a&&(i+="?",i+=t(a,!1,!1)),l&&(i+="#",i+=e?l:L_e(l,!1,!1)),i}function T_e(n){try{return decodeURIComponent(n)}catch{return n.length>3?n.substr(0,3)+T_e(n.substr(3)):n}}function rP(n){return n.match(I_e)?n.replace(I_e,e=>T_e(e)):n}var D6e,T6e,N6e,zo,Hf,O6e,Se,E_e,Jb,D_e,I_e,ii=w(()=>{Wf();ct();D6e=/^\w[\w\d+.-]*$/,T6e=/^\//,N6e=/^\/\//;zo="",Hf="/",O6e=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,Se=class n{static isUri(e){return e instanceof n?!0:!e||typeof e!="object"?!1:typeof e.authority=="string"&&typeof e.fragment=="string"&&typeof e.path=="string"&&typeof e.query=="string"&&typeof e.scheme=="string"&&typeof e.fsPath=="string"&&typeof e.with=="function"&&typeof e.toString=="function"}constructor(e,t,i,o,r,s=!1){typeof e=="object"?(this.scheme=e.scheme||zo,this.authority=e.authority||zo,this.path=e.path||zo,this.query=e.query||zo,this.fragment=e.fragment||zo):(this.scheme=A6e(e,s),this.authority=t||zo,this.path=M6e(this.scheme,i||zo),this.query=o||zo,this.fragment=r||zo,R6e(this,s))}get fsPath(){return aD(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:i,path:o,query:r,fragment:s}=e;return t===void 0?t=this.scheme:t===null&&(t=zo),i===void 0?i=this.authority:i===null&&(i=zo),o===void 0?o=this.path:o===null&&(o=zo),r===void 0?r=this.query:r===null&&(r=zo),s===void 0?s=this.fragment:s===null&&(s=zo),t===this.scheme&&i===this.authority&&o===this.path&&r===this.query&&s===this.fragment?this:new Jb(t,i,o,r,s)}static parse(e,t=!1){let i=O6e.exec(e);return i?new Jb(i[2]||zo,rP(i[4]||zo),rP(i[5]||zo),rP(i[7]||zo),rP(i[9]||zo),t):new Jb(zo,zo,zo,zo,zo)}static file(e){let t=zo;if(Qi&&(e=e.replace(/\\/g,Hf)),e[0]===Hf&&e[1]===Hf){let i=e.indexOf(Hf,2);i===-1?(t=e.substring(2),e=Hf):(t=e.substring(2,i),e=e.substring(i)||Hf)}return new Jb("file",t,e,zo,zo)}static from(e,t){return new Jb(e.scheme,e.authority,e.path,e.query,e.fragment,t)}static joinPath(e,...t){if(!e.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let i;return Qi&&e.scheme==="file"?i=n.file(Hc.join(aD(e,!0),...t)).path:i=Yn.join(e.path,...t),e.with({path:i})}toString(e=!1){return HG(this,e)}toJSON(){return this}static revive(e){if(e){if(e instanceof n)return e;{let t=new Jb(e);return t._formatted=e.external??null,t._fsPath=e._sep===E_e?e.fsPath??null:null,t}}else return e}},E_e=Qi?1:void 0,Jb=class extends Se{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=aD(this,!1)),this._fsPath}toString(e=!1){return e?HG(this,!0):(this._formatted||(this._formatted=HG(this,!1)),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=E_e),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}},D_e={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};I_e=/(%[0-9A-Za-z][0-9A-Za-z])+/g});function EC(n,e){return Se.isUri(n)?Ff(n.scheme,e):my(n,e+":")}function lD(n,...e){return e.some(t=>EC(n,t))}var Be,F6e,VG,UG,B6e,zG,aP,sP,Ys=w(()=>{Ae();ct();He();ii();Wf();(function(n){n.inMemory="inmemory",n.vscode="vscode",n.internal="private",n.walkThrough="walkThrough",n.walkThroughSnippet="walkThroughSnippet",n.http="http",n.https="https",n.file="file",n.mailto="mailto",n.untitled="untitled",n.data="data",n.command="command",n.vscodeRemote="vscode-remote",n.vscodeRemoteResource="vscode-remote-resource",n.vscodeManagedRemoteResource="vscode-managed-remote-resource",n.vscodeUserData="vscode-userdata",n.vscodeCustomEditor="vscode-custom-editor",n.vscodeNotebookCell="vscode-notebook-cell",n.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",n.vscodeNotebookCellMetadataDiff="vscode-notebook-cell-metadata-diff",n.vscodeNotebookCellOutput="vscode-notebook-cell-output",n.vscodeNotebookCellOutputDiff="vscode-notebook-cell-output-diff",n.vscodeNotebookMetadata="vscode-notebook-metadata",n.vscodeInteractiveInput="vscode-interactive-input",n.vscodeSettings="vscode-settings",n.vscodeWorkspaceTrust="vscode-workspace-trust",n.vscodeTerminal="vscode-terminal",n.vscodeChatCodeBlock="vscode-chat-code-block",n.vscodeChatCodeCompareBlock="vscode-chat-code-compare-block",n.vscodeChatEditor="vscode-chat-editor",n.vscodeChatInput="chatSessionInput",n.vscodeLocalChatSession="vscode-chat-session",n.webviewPanel="webview-panel",n.vscodeWebview="vscode-webview",n.extension="extension",n.vscodeFileResource="vscode-file",n.tmp="tmp",n.vsls="vsls",n.vscodeSourceControl="vscode-scm",n.commentsInput="comment",n.codeSetting="code-setting",n.outputChannel="output",n.accessibleView="accessible-view",n.chatEditingSnapshotScheme="chat-editing-snapshot-text-model",n.chatEditingModel="chat-editing-text-model",n.copilotPr="copilot-pr"})(Be||(Be={}));F6e="tkn",VG=class{constructor(){this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema="http",this._delegate=null,this._serverRootPath="/"}setPreferredWebSchema(e){this._preferredWebSchema=e}get _remoteResourcesPath(){return Yn.join(this._serverRootPath,Be.vscodeRemoteResource)}rewrite(e){if(this._delegate)try{return this._delegate(e)}catch(a){return De(a),e}let t=e.authority,i=this._hosts[t];i&&i.indexOf(":")!==-1&&i.indexOf("[")===-1&&(i=`[${i}]`);let o=this._ports[t],r=this._connectionTokens[t],s=`path=${encodeURIComponent(e.path)}`;return typeof r=="string"&&(s+=`&${F6e}=${encodeURIComponent(r)}`),Se.from({scheme:Bc?this._preferredWebSchema:Be.vscodeRemoteResource,authority:`${i}:${o}`,path:this._remoteResourcesPath,query:s})}},UG=new VG,B6e="vscode-app",zG=class n{static{this.FALLBACK_AUTHORITY=B6e}uriToBrowserUri(e){return e.scheme===Be.vscodeRemote?UG.rewrite(e):e.scheme===Be.file&&(oc||e_e===`${Be.vscodeFileResource}://${n.FALLBACK_AUTHORITY}`)?e.with({scheme:Be.vscodeFileResource,authority:e.authority||n.FALLBACK_AUTHORITY,query:null,fragment:null}):e}},aP=new zG;(function(n){let e=new Map([["1",{"Cross-Origin-Opener-Policy":"same-origin"}],["2",{"Cross-Origin-Embedder-Policy":"require-corp"}],["3",{"Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp"}]]);n.CoopAndCoep=Object.freeze(e.get("3"));let t="vscode-coi";function i(r){let s;typeof r=="string"?s=new URL(r).searchParams:r instanceof URL?s=r.searchParams:Se.isUri(r)&&(s=new URL(r.toString(!0)).searchParams);let a=s?.get(t);if(a)return e.get(a)}n.getHeadersFromQuery=i;function o(r,s,a){if(!globalThis.crossOriginIsolated)return;let l=s&&a?"3":a?"2":"1";r instanceof URLSearchParams?r.set(t,l):r[t]=l}n.addSearchParam=o})(sP||(sP={}))});function A_e(n,e){return n[e+0]<<0>>>0|n[e+1]<<8>>>0}function M_e(n,e,t){n[t+0]=e&255,e=e>>>8,n[t+1]=e&255}function Yh(n,e){return n[e]*2**24+n[e+1]*2**16+n[e+2]*2**8+n[e+3]}function Zh(n,e,t){n[t+3]=e,e=e>>>8,n[t+2]=e,e=e>>>8,n[t+1]=e,e=e>>>8,n[t]=e}function qG(n,e){return n[e]}function jG(n,e,t){n[t]=e}function O_e({buffer:n}){let e="";for(let t=0;t>>4],e+=R_e[i&15]}return e}var N_e,$G,Uu,R_e,ev=w(()=>{Vu();N_e=typeof Buffer<"u";new $n(()=>new Uint8Array(256));Uu=class n{static wrap(e){return N_e&&!Buffer.isBuffer(e)&&(e=Buffer.from(e.buffer,e.byteOffset,e.byteLength)),new n(e)}constructor(e){this.buffer=e,this.byteLength=this.buffer.byteLength}toString(){return N_e?this.buffer.toString():($G||($G=new TextDecoder),$G.decode(this.buffer))}};R_e="0123456789abcdef"});function Km(n){return dD(n,0)}function dD(n,e){switch(typeof n){case"object":return n===null?$p(349,e):Array.isArray(n)?H6e(n,e):V6e(n,e);case"string":return cP(n,e);case"boolean":return W6e(n,e);case"number":return $p(n,e);case"undefined":return $p(937,e);default:return $p(617,e)}}function $p(n,e){return(e<<5)-e+n|0}function W6e(n,e){return $p(n?433:863,e)}function cP(n,e){e=$p(149417,e);for(let t=0,i=n.length;tdD(i,t),e)}function V6e(n,e){return e=$p(181387,e),Object.keys(n).sort().reduce((t,i)=>(t=cP(i,t),dD(n[i],t)),e)}function KG(n,e,t=32){let i=t-e,o=~((1<>>i)>>>0}function cD(n,e=32){return n instanceof ArrayBuffer?O_e(Uu.wrap(new Uint8Array(n))):(n>>>0).toString(16).padStart(e/4,"0")}var lP,qp=w(()=>{ev();He();lP=class n{static{this._bigBlock32=new DataView(new ArrayBuffer(320))}constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(e){let t=e.length;if(t===0)return;let i=this._buff,o=this._buffLen,r=this._leftoverHighSurrogate,s,a;for(r!==0?(s=r,a=-1,r=0):(s=e.charCodeAt(0),a=0);;){let l=s;if(Dn(s))if(a+1>>6,e[t++]=128|(i&63)>>>0):i<65536?(e[t++]=224|(i&61440)>>>12,e[t++]=128|(i&4032)>>>6,e[t++]=128|(i&63)>>>0):(e[t++]=240|(i&1835008)>>>18,e[t++]=128|(i&258048)>>>12,e[t++]=128|(i&4032)>>>6,e[t++]=128|(i&63)>>>0),t>=64&&(this._step(),t-=64,this._totalLen+=64,e[0]=e[64],e[1]=e[65],e[2]=e[66]),t}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),cD(this._h0)+cD(this._h1)+cD(this._h2)+cD(this._h3)+cD(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,this._buff.subarray(this._buffLen).fill(0),this._buffLen>56&&(this._step(),this._buff.fill(0));let e=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(e/4294967296),!1),this._buffDV.setUint32(60,e%4294967296,!1),this._step()}_step(){let e=n._bigBlock32,t=this._buffDV;for(let h=0;h<64;h+=4)e.setUint32(h,t.getUint32(h,!1),!1);for(let h=64;h<320;h+=4)e.setUint32(h,KG(e.getUint32(h-12,!1)^e.getUint32(h-32,!1)^e.getUint32(h-56,!1)^e.getUint32(h-64,!1),1),!1);let i=this._h0,o=this._h1,r=this._h2,s=this._h3,a=this._h4,l,c,d;for(let h=0;h<80;h++)h<20?(l=o&r|~o&s,c=1518500249):h<40?(l=o^r^s,c=1859775393):h<60?(l=o&r|o&s|r&s,c=2400959708):(l=o^r^s,c=3395469782),d=KG(i,5)+l+a+c+e.getUint32(h*4,!1)&4294967295,a=s,s=r,r=KG(o,30),o=i,i=d;this._h0=this._h0+i&4294967295,this._h1=this._h1+o&4294967295,this._h2=this._h2+r&4294967295,this._h3=this._h3+s&4294967295,this._h4=this._h4+a&4294967295}}});function P_e(n){if(n.length===0)throw new Error("Invalid tail call");return[n.slice(0,n.length-1),n[n.length-1]]}function Pt(n,e,t=(i,o)=>i===o){if(n===e)return!0;if(!n||!e||n.length!==e.length)return!1;for(let i=0,o=n.length;it(n[i],e))}function hD(n,e){let t=0,i=n-1;for(;t<=i;){let o=(t+i)/2|0,r=e(o);if(r<0)t=o+1;else if(r>0)i=o-1;else return o}return-(t+1)}function dP(n,e,t){if(n=n|0,n>=e.length)throw new TypeError("invalid index");let i=e[Math.floor(e.length*Math.random())],o=[],r=[],s=[];for(let a of e){let l=t(a,i);l<0?o.push(a):l>0?r.push(a):s.push(a)}return n!!e)}function YG(n){let e=0;for(let t=0;t0}function Vc(n,e=t=>t){let t=new Set;return n.filter(i=>{let o=e(i);return t.has(o)?!1:(t.add(o),!0)})}function Da(n,e){let t=typeof e=="number"?n:0;typeof e=="number"?t=n:(t=0,e=n);let i=[];if(t<=e)for(let o=t;oe;o--)i.push(o);return i}function iv(n,e,t){let i=n.slice(0,e),o=n.slice(e);return i.concat(t,o)}function mP(n,e){let t=n.indexOf(e);t>-1&&(n.splice(t,1),n.unshift(e))}function uD(n,e){let t=n.indexOf(e);t>-1&&(n.splice(t,1),n.push(e))}function fD(n,e){for(let t of e)n.push(t)}function W_e(n,e){let t=[];for(let i of n){let o=e(i);o!==void 0&&t.push(o)}return t}function wy(n){return Array.isArray(n)?n:[n]}function z6e(n,e,t){let i=H_e(n,e),o=n.length,r=t.length;n.length=o+r;for(let s=o-1;s>=i;s--)n[s+r]=n[s];for(let s=0;se(n(t),n(i))}function V_e(...n){return(e,t)=>{for(let i of n){let o=i(e,t);if(!tv.isNeitherLessOrGreaterThan(o))return o}return tv.neitherLessOrGreaterThan}}function pP(n){return(e,t)=>-n(e,t)}function z_e(n){return(e,t)=>e===void 0?t===void 0?tv.neitherLessOrGreaterThan:tv.lessThan:t===void 0?tv.greaterThan:n(e,t)}function Cy(n){return n.reduce((e,t)=>e+t,0)}var tv,Rs,gP,Bl,jp,hP,We=w(()=>{(function(n){function e(r){return r<0}n.isLessThan=e;function t(r){return r<=0}n.isLessThanOrEqual=t;function i(r){return r>0}n.isGreaterThan=i;function o(r){return r===0}n.isNeitherLessOrGreaterThan=o,n.greaterThan=1,n.lessThan=-1,n.neitherLessOrGreaterThan=0})(tv||(tv={}));Rs=(n,e)=>n-e,gP=(n,e)=>Rs(n?1:0,e?1:0);Bl=class{constructor(e){this.firstIdx=0,this.items=e,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(e){let t=this.firstIdx;for(;t=0&&e(this.items[t]);)t--;let i=t===this.lastIdx?null:this.items.slice(t+1,this.lastIdx+1);return this.lastIdx=t,i}peek(){if(this.length!==0)return this.items[this.firstIdx]}dequeue(){let e=this.items[this.firstIdx];return this.firstIdx++,e}takeCount(e){let t=this.items.slice(this.firstIdx,this.firstIdx+e);return this.firstIdx+=e,t}},jp=class n{static{this.empty=new n(e=>{})}constructor(e){this.iterate=e}toArray(){let e=[];return this.iterate(t=>(e.push(t),!0)),e}filter(e){return new n(t=>this.iterate(i=>e(i)?t(i):!0))}map(e){return new n(t=>this.iterate(i=>t(e(i))))}findLast(e){let t;return this.iterate(i=>(e(i)&&(t=i),!0)),t}findLastMaxBy(e){let t,i=!0;return this.iterate(o=>((i||tv.isGreaterThan(e(o,t)))&&(i=!1,t=o),!0)),t}},hP=class n{constructor(e){this._indexMap=e}static createSortPermutation(e,t){let i=Array.from(e.keys()).sort((o,r)=>t(e[o],e[r]));return new n(i)}apply(e){return e.map((t,i)=>e[this._indexMap[i]])}inverse(){let e=this._indexMap.slice();for(let t=0;t{_P=class{constructor(e){this.loggers=e}handleObservableCreated(e,t){for(let i of this.loggers)i.handleObservableCreated(e,t)}handleOnListenerCountChanged(e,t){for(let i of this.loggers)i.handleOnListenerCountChanged(e,t)}handleObservableUpdated(e,t){for(let i of this.loggers)i.handleObservableUpdated(e,t)}handleAutorunCreated(e,t){for(let i of this.loggers)i.handleAutorunCreated(e,t)}handleAutorunDisposed(e){for(let t of this.loggers)t.handleAutorunDisposed(e)}handleAutorunDependencyChanged(e,t,i){for(let o of this.loggers)o.handleAutorunDependencyChanged(e,t,i)}handleAutorunStarted(e){for(let t of this.loggers)t.handleAutorunStarted(e)}handleAutorunFinished(e){for(let t of this.loggers)t.handleAutorunFinished(e)}handleDerivedDependencyChanged(e,t,i){for(let o of this.loggers)o.handleDerivedDependencyChanged(e,t,i)}handleDerivedCleared(e){for(let t of this.loggers)t.handleDerivedCleared(e)}handleBeginTransaction(e){for(let t of this.loggers)t.handleBeginTransaction(e)}handleEndTransaction(e){for(let t of this.loggers)t.handleEndTransaction(e)}}});function U6e(n){let e=n.match(/\((.*):(\d+):(\d+)\)/);if(e)return{fileName:e[1],line:parseInt(e[2]),column:parseInt(e[3]),id:n};let t=n.match(/at ([^\(\)]*):(\d+):(\d+)/);if(t)return{fileName:t[1],line:parseInt(t[2]),column:parseInt(t[3]),id:n}}var sn,ZG,sc=w(()=>{(function(n){let e=!1;function t(){e=!0}n.enable=t;function i(){if(!e)return;let o=Error,r=o.stackTraceLimit;o.stackTraceLimit=3;let s=new Error().stack;return o.stackTraceLimit=r,ZG.fromStack(s,2)}n.ofCaller=i})(sn||(sn={}));ZG=class n{static fromStack(e,t){let i=e.split(`
+`),o=U6e(i[t+1]);if(o)return new n(o.fileName,o.line,o.column,o.id)}constructor(e,t,i,o){this.fileName=e,this.line=t,this.column=i,this.id=o}}});function nv(n=wl){return(e,t)=>Pt(e,t,n)}function xy(){return(n,e)=>n.equals(e)}function Vf(n,e,t){if(t!==void 0){let i=n;return i==null||e===void 0||e===null?e===i:t(i,e)}else{let i=n;return(o,r)=>o==null||r===void 0||r===null?r===o:i(o,r)}}function bP(n,e){if(n===e)return!0;if(Array.isArray(n)&&Array.isArray(e)){if(n.length!==e.length)return!1;for(let t=0;t{We();wl=(n,e)=>n===e});function $6e(n,e){let t=XG.get(n);if(t)return t;let i=q6e(n,e);if(i){let o=$_e.get(i)??0;o++,$_e.set(i,o);let r=o===1?i:`${i}#${o}`;return XG.set(n,r),r}}function q6e(n,e){let t=XG.get(n);if(t)return t;let i=e.owner?K6e(e.owner)+".":"",o,r=e.debugNameSource;if(r!==void 0)if(typeof r=="function"){if(o=r(),o!==void 0)return i+o}else return i+r;let s=e.referenceFn;if(s!==void 0&&(o=mD(s),o!==void 0))return i+o;if(e.owner!==void 0){let a=j6e(e.owner,n);if(a!==void 0)return i+a}}function j6e(n,e){for(let t in n)if(n[t]===e)return t}function K6e(n){let e=j_e.get(n);if(e)return e;let t=QG(n)??"Object",i=q_e.get(t)??0;i++,q_e.set(t,i);let o=i===1?t:`${t}#${i}`;return j_e.set(n,o),o}function QG(n){let e=n.constructor;if(e)return e.name==="Object"?void 0:e.name}function mD(n){let e=n.toString(),i=/\/\*\*\s*@description\s*([^*]*)\*\//.exec(e);return(i?i[1]:void 0)?.trim()}var po,$_e,XG,q_e,j_e,qu=w(()=>{po=class{constructor(e,t,i){this.owner=e,this.debugNameSource=t,this.referenceFn=i}getDebugName(e){return $6e(e,this)}},$_e=new Map,XG=new WeakMap;q_e=new Map,j_e=new WeakMap});function K_e(n){JG=n}function Y_e(n){G_e=n}var JG,G_e,gD,Jd,Gm=w(()=>{sc();qu();Kp();gD=class{get TChange(){return null}reportChanges(){this.get()}read(e){return e?e.readObservable(this):this.get()}map(e,t,i=sn.ofCaller()){let o=t===void 0?void 0:e,r=t===void 0?e:t;return JG({owner:o,debugName:()=>{let s=mD(r);if(s!==void 0)return s;let l=/^\s*\(?\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\s*\)?\s*=>\s*\1(?:\??)\.([a-zA-Z_$][a-zA-Z_$0-9]*)\s*$/.exec(r.toString());if(l)return`${this.debugName}.${l[2]}`;if(!o)return`${this.debugName} (mapped)`},debugReferenceFn:r},s=>r(this.read(s),s),i)}flatten(){return JG({owner:void 0,debugName:()=>`${this.debugName} (flattened)`},e=>this.read(e).read(e))}recomputeInitiallyAndOnChange(e,t){return e.add(G_e(this,t)),this}},Jd=class extends gD{constructor(e){super(),this._observers=new Set,rr()?.handleObservableCreated(this,e)}addObserver(e){let t=this._observers.size;this._observers.add(e),t===0&&this.onFirstObserverAdded(),t!==this._observers.size&&rr()?.handleOnListenerCountChanged(this,this._observers.size)}removeObserver(e){let t=this._observers.delete(e);t&&this._observers.size===0&&this.onLastObserverRemoved(),t&&rr()?.handleOnListenerCountChanged(this,this._observers.size)}onFirstObserverAdded(){}onLastObserverRemoved(){}debugGetObservers(){return this._observers}}});function G6e(n){switch(n){case 0:return"initial";case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return""}}var ac,Sy,vP=w(()=>{Gm();_l();We();Ae();ae();B();Kp();ac=class extends Jd{get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}constructor(e,t,i,o=void 0,r,s){super(s),this._debugNameData=e,this._computeFn=t,this._changeTracker=i,this._handleLastObserverRemoved=o,this._equalityComparator=r,this._state=0,this._value=void 0,this._updateCount=0,this._dependencies=new Set,this._dependenciesToBeRemoved=new Set,this._changeSummary=void 0,this._isUpdating=!1,this._isComputing=!1,this._didReportChange=!1,this._isInBeforeUpdate=!1,this._isReaderValid=!1,this._store=void 0,this._delayedStore=void 0,this._removedObserverToCallEndUpdateOn=null,this._changeSummary=this._changeTracker?.createChangeSummary(void 0)}onLastObserverRemoved(){this._state=0,this._value=void 0,rr()?.handleDerivedCleared(this);for(let e of this._dependencies)e.removeObserver(this);this._dependencies.clear(),this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._delayedStore!==void 0&&(this._delayedStore.dispose(),this._delayedStore=void 0),this._handleLastObserverRemoved?.()}get(){if(this._isComputing,this._observers.size===0){let t;try{this._isReaderValid=!0;let i;this._changeTracker&&(i=this._changeTracker.createChangeSummary(void 0),this._changeTracker.beforeUpdate?.(this,i)),t=this._computeFn(this,i)}finally{this._isReaderValid=!1}return this.onLastObserverRemoved(),t}else{do{if(this._state===1){for(let t of this._dependencies)if(t.reportChanges(),this._state===2)break}this._state===1&&(this._state=3),this._state!==3&&this._recompute()}while(this._state!==3);return this._value}}_recompute(){let e=!1;this._isComputing=!0,this._didReportChange=!1;let t=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=t;try{let i=this._changeSummary;this._isReaderValid=!0,this._changeTracker&&(this._isInBeforeUpdate=!0,this._changeTracker.beforeUpdate?.(this,i),this._isInBeforeUpdate=!1,this._changeSummary=this._changeTracker?.createChangeSummary(i));let o=this._state!==0,r=this._value;this._state=3;let s=this._delayedStore;s!==void 0&&(this._delayedStore=void 0);try{this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._value=this._computeFn(this,i)}finally{this._isReaderValid=!1;for(let a of this._dependenciesToBeRemoved)a.removeObserver(this);this._dependenciesToBeRemoved.clear(),s!==void 0&&s.dispose()}e=this._didReportChange||o&&!this._equalityComparator(r,this._value),rr()?.handleObservableUpdated(this,{oldValue:r,newValue:this._value,change:void 0,didChange:e,hadValue:o})}catch(i){ly(i)}if(this._isComputing=!1,!this._didReportChange&&e)for(let i of this._observers)i.handleChange(this,void 0);else this._didReportChange=!1}toString(){return`LazyDerived<${this.debugName}>`}beginUpdate(e){if(this._isUpdating)throw new ke("Cyclic deriveds are not supported yet!");this._updateCount++,this._isUpdating=!0;try{let t=this._updateCount===1;if(this._state===3&&(this._state=1,!t))for(let i of this._observers)i.handlePossibleChange(this);if(t)for(let i of this._observers)i.beginUpdate(this)}finally{this._isUpdating=!1}}endUpdate(e){if(this._updateCount--,this._updateCount===0){let t=[...this._observers];for(let i of t)i.endUpdate(this);if(this._removedObserverToCallEndUpdateOn){let i=[...this._removedObserverToCallEndUpdateOn];this._removedObserverToCallEndUpdateOn=null;for(let o of i)o.endUpdate(this)}}gd(()=>this._updateCount>=0)}handlePossibleChange(e){if(this._state===3&&this._dependencies.has(e)&&!this._dependenciesToBeRemoved.has(e)){this._state=1;for(let t of this._observers)t.handlePossibleChange(this)}}handleChange(e,t){if(this._dependencies.has(e)&&!this._dependenciesToBeRemoved.has(e)||this._isInBeforeUpdate){rr()?.handleDerivedDependencyChanged(this,e,t);let i=!1;try{i=this._changeTracker?this._changeTracker.handleChange({changedObservable:e,change:t,didChange:r=>r===e},this._changeSummary):!0}catch(r){ly(r)}let o=this._state===3;if(i&&(this._state===1||o)&&(this._state=2,o))for(let r of this._observers)r.handlePossibleChange(this)}}_ensureReaderValid(){if(!this._isReaderValid)throw new ke("The reader object cannot be used outside its compute function!")}readObservable(e){this._ensureReaderValid(),e.addObserver(this);let t=e.get();return this._dependencies.add(e),this._dependenciesToBeRemoved.delete(e),t}get store(){return this._ensureReaderValid(),this._store===void 0&&(this._store=new P),this._store}addObserver(e){let t=!this._observers.has(e)&&this._updateCount>0;super.addObserver(e),t&&(this._removedObserverToCallEndUpdateOn&&this._removedObserverToCallEndUpdateOn.has(e)?this._removedObserverToCallEndUpdateOn.delete(e):e.beginUpdate(this))}removeObserver(e){this._observers.has(e)&&this._updateCount>0&&(this._removedObserverToCallEndUpdateOn||(this._removedObserverToCallEndUpdateOn=new Set),this._removedObserverToCallEndUpdateOn.add(e)),super.removeObserver(e)}debugGetState(){return{state:this._state,stateStr:G6e(this._state),updateCount:this._updateCount,isComputing:this._isComputing,dependencies:this._dependencies,value:this._value}}debugSetValue(e){this._value=e}debugRecompute(){this._isComputing?this._state=2:this._recompute()}setValue(e,t,i){this._value=e;let o=this._observers;t.updateObserver(this,this);for(let r of o)r.handleChange(this,i)}},Sy=class extends ac{constructor(e,t,i,o=void 0,r,s,a){super(e,t,i,o,r,a),this.set=s}}});function $(n,e,t=sn.ofCaller()){return e!==void 0?new ac(new po(n,void 0,e),e,void 0,void 0,wl,t):new ac(new po(void 0,void 0,n),n,void 0,void 0,wl,t)}function RC(n,e,t,i=sn.ofCaller()){return new Sy(new po(n,void 0,e),e,void 0,void 0,wl,t,i)}function oo(n,e,t=sn.ofCaller()){return new ac(new po(n.owner,n.debugName,n.debugReferenceFn),e,void 0,n.onLastObserverRemoved,n.equalsFn??wl,t)}function wP(n,e,t=sn.ofCaller()){return new ac(new po(n.owner,n.debugName,void 0),e,n.changeTracker,void 0,n.equalityComparer??wl,t)}function Cl(n,e,t=sn.ofCaller()){let i,o;e===void 0?(i=n,o=void 0):(o=n,i=e);let r;return new ac(new po(o,void 0,i),s=>{r?r.clear():r=new P;let a=i(s);return a&&r.add(a),a},void 0,()=>{r&&(r.dispose(),r=void 0)},wl,t)}var fi=w(()=>{$u();ae();B();sc();qu();Gm();vP();K_e(oo)});function Y6e(n){switch(n){case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return""}}var Gp,eY=w(()=>{_l();We();Ae();ae();B();Kp();Gp=class{get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}constructor(e,t,i,o){this._debugNameData=e,this._runFn=t,this._changeTracker=i,this._state=2,this._updateCount=0,this._disposed=!1,this._dependencies=new Set,this._dependenciesToBeRemoved=new Set,this._isRunning=!1,this._store=void 0,this._delayedStore=void 0,this._changeSummary=this._changeTracker?.createChangeSummary(void 0),rr()?.handleAutorunCreated(this,o),this._run()}dispose(){if(!this._disposed){this._disposed=!0;for(let e of this._dependencies)e.removeObserver(this);this._dependencies.clear(),this._store!==void 0&&this._store.dispose(),this._delayedStore!==void 0&&this._delayedStore.dispose(),rr()?.handleAutorunDisposed(this)}}_run(){let e=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=e,this._state=3;try{if(!this._disposed){rr()?.handleAutorunStarted(this);let t=this._changeSummary,i=this._delayedStore;i!==void 0&&(this._delayedStore=void 0);try{this._isRunning=!0,this._changeTracker&&(this._changeTracker.beforeUpdate?.(this,t),this._changeSummary=this._changeTracker.createChangeSummary(t)),this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._runFn(this,t)}catch(o){ly(o)}finally{this._isRunning=!1,i!==void 0&&i.dispose()}}}finally{this._disposed||rr()?.handleAutorunFinished(this);for(let t of this._dependenciesToBeRemoved)t.removeObserver(this);this._dependenciesToBeRemoved.clear()}}toString(){return`Autorun<${this.debugName}>`}beginUpdate(e){this._state===3&&(this._state=1),this._updateCount++}endUpdate(e){try{if(this._updateCount===1)do{if(this._state===1){this._state=3;for(let t of this._dependencies)if(t.reportChanges(),this._state===2)break}this._state!==3&&this._run()}while(this._state!==3)}finally{this._updateCount--}gd(()=>this._updateCount>=0)}handlePossibleChange(e){this._state===3&&this._isDependency(e)&&(this._state=1)}handleChange(e,t){if(this._isDependency(e)){rr()?.handleAutorunDependencyChanged(this,e,t);try{(this._changeTracker?this._changeTracker.handleChange({changedObservable:e,change:t,didChange:o=>o===e},this._changeSummary):!0)&&(this._state=2)}catch(i){ly(i)}}}_isDependency(e){return this._dependencies.has(e)&&!this._dependenciesToBeRemoved.has(e)}_ensureNoRunning(){if(!this._isRunning)throw new ke("The reader object cannot be used outside its compute function!")}readObservable(e){if(this._ensureNoRunning(),this._disposed)return e.get();e.addObserver(this);let t=e.get();return this._dependencies.add(e),this._dependenciesToBeRemoved.delete(e),t}get store(){if(this._ensureNoRunning(),this._disposed)throw new ke("Cannot access store after dispose");return this._store===void 0&&(this._store=new P),this._store}debugGetState(){return{isRunning:this._isRunning,updateCount:this._updateCount,dependencies:this._dependencies,state:this._state,stateStr:Y6e(this._state)}}debugRerun(){this._isRunning?this._state=2:this._run()}}});function Te(n,e=sn.ofCaller()){return new Gp(new po(void 0,void 0,n),n,void 0,e)}function yy(n,e,t=sn.ofCaller()){return new Gp(new po(n.owner,n.debugName,n.debugReferenceFn??e),e,void 0,t)}function Ym(n,e,t=sn.ofCaller()){return new Gp(new po(n.owner,n.debugName,n.debugReferenceFn??e),e,n.changeTracker,t)}function Z_e(n,e){let t=new P,i=Ym({owner:n.owner,debugName:n.debugName,debugReferenceFn:n.debugReferenceFn??e,changeTracker:n.changeTracker},(o,r)=>{t.clear(),e(o,r,t)});return se(()=>{i.dispose(),t.dispose()})}function Tn(n){let e=new P,t=yy({owner:void 0,debugName:void 0,debugReferenceFn:n},i=>{e.clear(),n(i,e)});return se(()=>{t.dispose(),e.dispose()})}function X_e(n,e){let t;return yy({debugReferenceFn:e},i=>{let o=n.read(i),r=t;t=o,e({lastValue:r,newValue:o})})}var pi=w(()=>{We();ae();B();qu();eY();sc()});function tY(n){let e=new Error("BugIndicatingErrorRecovery: "+n);De(e),console.error("recovered from an error that indicates a bug",e)}var Q_e=w(()=>{Ae();We();ae();B()});function Gt(n,e){let t=new zf(n,e);try{n(t)}finally{t.finish()}}function AC(n){if(CP)n(CP);else{let e=new zf(n,void 0);CP=e;try{n(e)}finally{e.finish(),CP=void 0}}}async function J_e(n,e){let t=new zf(n,e);try{await n(t)}finally{t.finish()}}function Uf(n,e,t){n?e(n):Gt(e,t)}var CP,zf,As=w(()=>{Q_e();qu();Kp();zf=class{constructor(e,t){this._fn=e,this._getDebugName=t,this._updatingObservers=[],rr()?.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():mD(this._fn)}updateObserver(e,t){if(!this._updatingObservers){tY("Transaction already finished!"),Gt(i=>{i.updateObserver(e,t)});return}this._updatingObservers.push({observer:e,observable:t}),e.beginUpdate(t)}finish(){let e=this._updatingObservers;if(!e){tY("transaction.finish() has already been called!");return}for(let t=0;tju.globalTransaction,wl,o??sn.ofCaller())}function pD(n,e,t,i=sn.ofCaller()){return new ju(new po(n.owner,n.debugName,n.debugReferenceFn??t),e,t,()=>ju.globalTransaction,n.equalsFn??wl,i)}var ju,Ro=w(()=>{As();$u();ae();B();qu();Kp();Gm();sc();ju=class extends Jd{constructor(e,t,i,o,r,s){super(s),this._debugNameData=e,this.event=t,this._getValue=i,this._getTransaction=o,this._equalityComparator=r,this._hasValue=!1,this.handleEvent=a=>{let l=this._getValue(a),c=this._value,d=!this._hasValue||!this._equalityComparator(c,l),h=!1;d&&(this._value=l,this._hasValue&&(h=!0,Uf(this._getTransaction(),u=>{rr()?.handleObservableUpdated(this,{oldValue:c,newValue:l,change:void 0,didChange:d,hadValue:this._hasValue});for(let f of this._observers)u.updateObserver(f,this),f.handleChange(this,void 0)},()=>{let u=this.getDebugName();return"Event fired"+(u?`: ${u}`:"")})),this._hasValue=!0),h||rr()?.handleObservableUpdated(this,{oldValue:c,newValue:l,change:void 0,didChange:d,hadValue:this._hasValue})}}getDebugName(){return this._debugNameData.getDebugName(this)}get debugName(){let e=this.getDebugName();return"From Event"+(e?`: ${e}`:"")}onFirstObserverAdded(){this._subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this._subscription.dispose(),this._subscription=void 0,this._hasValue=!1,this._value=void 0}get(){return this._subscription?(this._hasValue||this.handleEvent(void 0),this._value):this._getValue(void 0)}debugSetValue(e){this._value=e}debugGetState(){return{value:this._value,hasValue:this._hasValue}}};(function(n){n.Observer=ju;function e(t,i){let o=!1;ju.globalTransaction===void 0&&(ju.globalTransaction=t,o=!0);try{i()}finally{o&&(ju.globalTransaction=void 0)}}n.batchEventsGlobally=e})(ft||(ft={}))});function SP(n,e){let t=!1,i,o;return ft(r=>{let s=Te(a=>{let l=n.read(a);t?(o&&clearTimeout(o),o=setTimeout(()=>{i=l,r()},e)):(t=!0,i=l)});return{dispose(){s.dispose(),t=!1,i=void 0}}},()=>t?i:n.get())}function $f(n,e){let t=new iY(!0,e);n.addObserver(t);try{t.beginUpdate(n)}finally{t.endUpdate(n)}return se(()=>{n.removeObserver(t)})}function xl(n,e){let t;return oo({owner:n,debugReferenceFn:e},o=>(t=e(o,t),t))}function MC(n,e,t,i){let o=new xP(t,i);return oo({debugReferenceFn:t,owner:n,onLastObserverRemoved:()=>{o.dispose(),o=new xP(t)}},s=>(o.setItems(e.read(s)),o.getItems()))}var iY,xP,lc=w(()=>{pi();We();ae();B();fi();Ro();Gm();sc();Y_e($f);iY=class{constructor(e,t){this._forceRecompute=e,this._handleValue=t,this._counter=0}beginUpdate(e){this._counter++}endUpdate(e){this._counter===1&&this._forceRecompute&&(this._handleValue?this._handleValue(e.get()):e.reportChanges()),this._counter--}handlePossibleChange(e){}handleChange(e,t){}};xP=class{constructor(e,t){this._map=e,this._keySelector=t,this._cache=new Map,this._items=[]}dispose(){this._cache.forEach(e=>e.store.dispose()),this._cache.clear()}setItems(e){let t=[],i=new Set(this._cache.keys());for(let o of e){let r=this._keySelector?this._keySelector(o):o,s=this._cache.get(r);if(s)i.delete(r);else{let a=new P;s={out:this._map(o,a),store:a},this._cache.set(r,s)}t.push(s.out)}for(let o of i)this._cache.get(o).store.dispose(),this._cache.delete(o);this._items=t}getItems(){return this._items}}});function OC(n,e){switch(typeof n){case"number":return""+n;case"string":return n.length+2<=e?`"${n}"`:`"${n.substr(0,e-7)}"+...`;case"boolean":return n?"true":"false";case"undefined":return"undefined";case"object":return n===null?"null":Array.isArray(n)?Z6e(n,e):X6e(n,e);case"symbol":return n.toString();case"function":return`[[Function${n.name?" "+n.name:""}]]`;default:return""+n}}function Z6e(n,e){let t="[ ",i=!0;for(let o of n){if(i||(t+=", "),t.length-5>e){t+="...";break}i=!1,t+=`${OC(o,e-t.length)}`}return t+=" ]",t}function X6e(n,e){if(typeof n.toString=="function"&&n.toString!==Object.prototype.toString){let r=n.toString();return r.length<=e?r:r.substring(0,e-3)+"..."}let t=QG(n),i=t?t+"(":"{ ",o=!0;for(let[r,s]of Object.entries(n)){if(o||(i+=", "),i.length-5>e){i+="...";break}o=!1,i+=`${r}: ${OC(s,e-i.length)}`}return i+=t?")":" }",i}var ebe=w(()=>{qu();sc();We();ae();B()});var yP,tbe=w(()=>{yP=class n{static createClient(e,t){return new n(e,t)}constructor(e,t){this._channelFactory=e,this._getHandler=t,this._channel=this._channelFactory({handleNotification:r=>{let s=r,a=this._getHandler().notifications[s[0]];if(!a)throw new Error(`Unknown notification "${s[0]}"!`);a(...s[1])},handleRequest:r=>{let s=r;try{return{type:"result",value:this._getHandler().requests[s[0]](...s[1])}}catch(a){return{type:"error",value:a}}}});let i=new Proxy({},{get:(r,s)=>async(...a)=>{let l=await this._channel.sendRequest([s,a]);if(l.type==="error")throw l.value;return l.value}}),o=new Proxy({},{get:(r,s)=>(...a)=>{this._channel.sendNotification([s,a])}});this.api={notifications:o,requests:i}}}});function ibe(n,e){let t=globalThis,i=[],o,{channel:r,handler:s}=Q6e({sendNotification:l=>{o?o.sendNotification(l):i.push(l)}}),a;return(t.$$debugValueEditor_debugChannels??(t.$$debugValueEditor_debugChannels={}))[n]=l=>{a=e(),o=l;for(let c of i)l.sendNotification(c);return i=[],s},yP.createClient(r,()=>{if(!a)throw new Error("Not supported");return a})}function Q6e(n){let e;return{channel:i=>(e=i,{sendNotification:o=>{n.sendNotification(o)},sendRequest:o=>{throw new Error("not supported")}}),handler:{handleRequest:i=>i.type==="notification"?e?.handleNotification(i.data):e?.handleRequest(i.data)}}}var nbe=w(()=>{tbe()});function nY(n,e){for(let t in e)n[t]&&typeof n[t]=="object"&&e[t]&&typeof e[t]=="object"?nY(n[t],e[t]):n[t]=e[t]}function oY(n,e){for(let t in e)e[t]===null?delete n[t]:n[t]&&typeof n[t]=="object"&&e[t]&&typeof e[t]=="object"?oY(n[t],e[t]):n[t]=e[t]}var kP,obe=w(()=>{kP=class{constructor(){this._timeout=void 0}throttle(e,t){this._timeout===void 0&&(this._timeout=setTimeout(()=>{this._timeout=void 0,e()},t))}dispose(){this._timeout!==void 0&&clearTimeout(this._timeout)}}});function Ne(n,e,t=sn.ofCaller()){let i;return typeof n=="string"?i=new po(void 0,n,void 0):i=new po(n,void 0,void 0),new Yp(i,e,wl,t)}function ky(n,e,t=sn.ofCaller()){let i;return typeof n=="string"?i=new po(void 0,n,void 0):i=new po(n,void 0,void 0),new rY(i,e,wl,t)}var Yp,rY,Ri=w(()=>{As();Gm();$u();ae();B();qu();Kp();sc();Yp=class extends Jd{get debugName(){return this._debugNameData.getDebugName(this)??"ObservableValue"}constructor(e,t,i,o){super(o),this._debugNameData=e,this._equalityComparator=i,this._value=t,rr()?.handleObservableUpdated(this,{hadValue:!1,newValue:t,change:void 0,didChange:!0,oldValue:void 0})}get(){return this._value}set(e,t,i){if(i===void 0&&this._equalityComparator(this._value,e))return;let o;t||(t=o=new zf(()=>{},()=>`Setting ${this.debugName}`));try{let r=this._value;this._setValue(e),rr()?.handleObservableUpdated(this,{oldValue:r,newValue:e,change:i,didChange:!0,hadValue:!0});for(let s of this._observers)t.updateObserver(s,this),s.handleChange(this,i)}finally{o&&o.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(e){this._value=e}debugGetState(){return{value:this._value}}debugSetValue(e){this._value=e}};rY=class extends Yp{_setValue(e){this._value!==e&&(this._value&&this._value.dispose(),this._value=e)}dispose(){this._value?.dispose()}}});var LP,rbe=w(()=>{eY();ebe();nbe();obe();Nt();Ro();Ae();vP();Ri();sc();LP=class n{static{this._instance=void 0}static getInstance(){return n._instance===void 0&&(n._instance=new n),n._instance}getTransactionState(){let e=[],t=[...this._activeTransactions];if(t.length===0)return;let i=t.flatMap(r=>r.debugGetUpdatingObservers()??[]).map(r=>r.observer),o=new Set;for(;i.length>0;){let r=i.shift();if(o.has(r))continue;o.add(r);let s=this._getInfo(r,a=>{o.has(a)||i.push(a)});s&&e.push(s)}return{names:t.map(r=>r.getDebugName()??"tx"),affected:e}}_getObservableInfo(e){let t=this._instanceInfos.get(e);if(!t){De(new ke("No info found"));return}return t}_getAutorunInfo(e){let t=this._instanceInfos.get(e);if(!t){De(new ke("No info found"));return}return t}_getInfo(e,t){if(e instanceof ac){let i=[...e.debugGetObservers()];for(let l of i)t(l);let o=this._getObservableInfo(e);if(!o)return;let r=e.debugGetState(),s={name:e.debugName,instanceId:o.instanceId,updateCount:r.updateCount},a=[...o.changedObservables].map(l=>this._instanceInfos.get(l)?.instanceId).filter(to);if(r.isComputing)return{...s,type:"observable/derived",state:"updating",changedDependencies:a,initialComputation:!1};switch(r.state){case 0:return{...s,type:"observable/derived",state:"noValue"};case 3:return{...s,type:"observable/derived",state:"upToDate"};case 2:return{...s,type:"observable/derived",state:"stale",changedDependencies:a};case 1:return{...s,type:"observable/derived",state:"possiblyStale"}}}else if(e instanceof Gp){let i=this._getAutorunInfo(e);if(!i)return;let o={name:e.debugName,instanceId:i.instanceId,updateCount:i.updateCount},r=[...i.changedObservables].map(s=>this._instanceInfos.get(s).instanceId);if(e.debugGetState().isRunning)return{...o,type:"autorun",state:"updating",changedDependencies:r};switch(e.debugGetState().state){case 3:return{...o,type:"autorun",state:"upToDate"};case 2:return{...o,type:"autorun",state:"stale",changedDependencies:r};case 1:return{...o,type:"autorun",state:"possiblyStale"}}}}_formatObservable(e){let t=this._getObservableInfo(e);if(t)return{name:e.debugName,instanceId:t.instanceId}}_formatObserver(e){if(e instanceof ac)return{name:e.toString(),instanceId:this._getObservableInfo(e)?.instanceId};let t=this._getAutorunInfo(e);if(t)return{name:e.toString(),instanceId:t.instanceId}}constructor(){this._declarationId=0,this._instanceId=0,this._declarations=new Map,this._instanceInfos=new WeakMap,this._aliveInstances=new Map,this._activeTransactions=new Set,this._channel=ibe("observableDevTools",()=>({notifications:{setDeclarationIdFilter:e=>{},logObservableValue:e=>{console.log("logObservableValue",e)},flushUpdates:()=>{this._flushUpdates()},resetUpdates:()=>{this._pendingChanges=null,this._channel.api.notifications.handleChange(this._fullState,!0)}},requests:{getDeclarations:()=>{let e={};for(let t of this._declarations.values())e[t.id]=t;return{decls:e}},getSummarizedInstances:()=>null,getObservableValueInfo:e=>({observers:[...this._aliveInstances.get(e).debugGetObservers()].map(i=>this._formatObserver(i)).filter(to)}),getDerivedInfo:e=>{let t=this._aliveInstances.get(e);return{dependencies:[...t.debugGetState().dependencies].map(i=>this._formatObservable(i)).filter(to),observers:[...t.debugGetObservers()].map(i=>this._formatObserver(i)).filter(to)}},getAutorunInfo:e=>({dependencies:[...this._aliveInstances.get(e).debugGetState().dependencies].map(i=>this._formatObservable(i)).filter(to)}),getTransactionState:()=>this.getTransactionState(),setValue:(e,t)=>{let i=this._aliveInstances.get(e);if(i instanceof ac)i.debugSetValue(t);else if(i instanceof Yp)i.debugSetValue(t);else if(i instanceof ju)i.debugSetValue(t);else throw new ke("Observable is not supported");let o=[...i.debugGetObservers()];for(let r of o)r.beginUpdate(i);for(let r of o)r.handleChange(i,void 0);for(let r of o)r.endUpdate(i)},getValue:e=>{let t=this._aliveInstances.get(e);if(t instanceof ac)return OC(t.debugGetState().value,200);if(t instanceof Yp)return OC(t.debugGetState().value,200)},logValue:e=>{let t=this._aliveInstances.get(e);if(t&&"get"in t)console.log("Logged Value:",t.get());else throw new ke("Observable is not supported")},rerun:e=>{let t=this._aliveInstances.get(e);if(t instanceof ac)t.debugRecompute();else if(t instanceof Gp)t.debugRerun();else throw new ke("Observable is not supported")}}})),this._pendingChanges=null,this._changeThrottler=new kP,this._fullState={},this._flushUpdates=()=>{this._pendingChanges!==null&&(this._channel.api.notifications.handleChange(this._pendingChanges,!1),this._pendingChanges=null)},sn.enable()}_handleChange(e){oY(this._fullState,e),this._pendingChanges===null?this._pendingChanges=e:nY(this._pendingChanges,e),this._changeThrottler.throttle(this._flushUpdates,10)}_getDeclarationId(e,t){if(!t)return-1;let i=this._declarations.get(t.id);return i===void 0&&(i={id:this._declarationId++,type:e,url:t.fileName,line:t.line,column:t.column},this._declarations.set(t.id,i),this._handleChange({decls:{[i.id]:i}})),i.id}handleObservableCreated(e,t){let o={declarationId:this._getDeclarationId("observable/value",t),instanceId:this._instanceId++,listenerCount:0,lastValue:void 0,updateCount:0,changedObservables:new Set};this._instanceInfos.set(e,o)}handleOnListenerCountChanged(e,t){let i=this._getObservableInfo(e);if(i){if(i.listenerCount===0&&t>0){let o=e instanceof ac?"observable/derived":"observable/value";this._aliveInstances.set(i.instanceId,e),this._handleChange({instances:{[i.instanceId]:{instanceId:i.instanceId,declarationId:i.declarationId,formattedValue:i.lastValue,type:o,name:e.debugName}}})}else i.listenerCount>0&&t===0&&(this._handleChange({instances:{[i.instanceId]:null}}),this._aliveInstances.delete(i.instanceId));i.listenerCount=t}}handleObservableUpdated(e,t){if(e instanceof ac){this._handleDerivedRecomputed(e,t);return}let i=this._getObservableInfo(e);i&&t.didChange&&(i.lastValue=OC(t.newValue,30),i.listenerCount>0&&this._handleChange({instances:{[i.instanceId]:{formattedValue:i.lastValue}}}))}handleAutorunCreated(e,t){let o={declarationId:this._getDeclarationId("autorun",t),instanceId:this._instanceId++,updateCount:0,changedObservables:new Set};this._instanceInfos.set(e,o),this._aliveInstances.set(o.instanceId,e),o&&this._handleChange({instances:{[o.instanceId]:{instanceId:o.instanceId,declarationId:o.declarationId,runCount:0,type:"autorun",name:e.debugName}}})}handleAutorunDisposed(e){let t=this._getAutorunInfo(e);t&&(this._handleChange({instances:{[t.instanceId]:null}}),this._instanceInfos.delete(e),this._aliveInstances.delete(t.instanceId))}handleAutorunDependencyChanged(e,t,i){let o=this._getAutorunInfo(e);o&&o.changedObservables.add(t)}handleAutorunStarted(e){}handleAutorunFinished(e){let t=this._getAutorunInfo(e);t&&(t.changedObservables.clear(),t.updateCount++,this._handleChange({instances:{[t.instanceId]:{runCount:t.updateCount}}}))}handleDerivedDependencyChanged(e,t,i){let o=this._getObservableInfo(e);o&&o.changedObservables.add(t)}_handleDerivedRecomputed(e,t){let i=this._getObservableInfo(e);if(!i)return;let o=OC(t.newValue,30);i.updateCount++,i.changedObservables.clear(),i.lastValue=o,i.listenerCount>0&&this._handleChange({instances:{[i.instanceId]:{formattedValue:o,recomputationCount:i.updateCount}}})}handleDerivedCleared(e){let t=this._getObservableInfo(e);t&&(t.lastValue=void 0,t.changedObservables.clear(),t.listenerCount>0&&this._handleChange({instances:{[t.instanceId]:{formattedValue:void 0}}}))}handleBeginTransaction(e){this._activeTransactions.add(e)}handleEndTransaction(e){this._activeTransactions.delete(e)}}});var dt=w(()=>{We();ae();B();Kp();sc();fi();zt();lc();Ro();rbe();tP();LC&&LC.VSCODE_DEV_DEBUG_OBSERVABLES&&U_e(LP.getInstance())});function qn(n){for(;n.firstChild;)n.firstChild.remove()}function F(n,e,t,i){return new sY(n,e,t,i)}function fbe(n,e){return function(t){return e(new dn(n,t))}}function e9e(n){return function(e){return n(new St(e))}}function fY(n,e,t){return F(n,La&&Gb.pointerEvents?J.POINTER_DOWN:J.MOUSE_DOWN,e,t)}function gbe(n,e,t){return F(n,La&&Gb.pointerEvents?J.POINTER_MOVE:J.MOUSE_MOVE,e,t)}function mY(n,e,t){return F(n,La&&Gb.pointerEvents?J.POINTER_UP:J.MOUSE_UP,e,t)}function FC(n,e,t){return hy(n,e,t)}function wD(n){return Ce(n).getComputedStyle(n,null)}function Cd(n,e,t){let i=Ce(n),o=i.document;if(n!==o.body)return new Yt(n.clientWidth,n.clientHeight);if(La&&i?.visualViewport)return new Yt(i.visualViewport.width,i.visualViewport.height);if(i?.innerWidth&&i.innerHeight)return new Yt(i.innerWidth,i.innerHeight);if(o.body&&o.body.clientWidth&&o.body.clientHeight)return new Yt(o.body.clientWidth,o.body.clientHeight);if(o.documentElement&&o.documentElement.clientWidth&&o.documentElement.clientHeight)return new Yt(o.documentElement.clientWidth,o.documentElement.clientHeight);throw new Error("Unable to figure out browser width and height")}function EP(n){let e=n.offsetParent,t=n.offsetTop,i=n.offsetLeft;for(;(n=n.parentNode)!==null&&n!==n.ownerDocument.body&&n!==n.ownerDocument.documentElement;){t-=n.scrollTop;let o=bbe(n)?null:wD(n);o&&(i-=o.direction!=="rtl"?n.scrollLeft:-n.scrollLeft),n===e&&(i+=zc.getBorderLeftWidth(n),t+=zc.getBorderTopWidth(n),t+=n.offsetTop,i+=n.offsetLeft,e=n.offsetParent)}return{left:i,top:t}}function pbe(n,e,t){typeof e=="number"&&(n.style.width=`${e}px`),typeof t=="number"&&(n.style.height=`${t}px`)}function Zt(n){let e=n.getBoundingClientRect(),t=Ce(n);return{left:e.left+t.scrollX,top:e.top+t.scrollY,width:e.width,height:e.height}}function DP(n){let e=n,t=1;do{let i=wD(e).zoom;i!=null&&i!=="1"&&(t*=i),e=e.parentElement}while(e!==null&&e!==e.ownerDocument.documentElement);return t}function Ta(n){let e=zc.getMarginLeft(n)+zc.getMarginRight(n);return n.offsetWidth+e}function TP(n){let e=zc.getBorderLeftWidth(n)+zc.getBorderRightWidth(n),t=zc.getPaddingLeft(n)+zc.getPaddingRight(n);return n.offsetWidth-e-t}function _be(n){let e=zc.getBorderTopWidth(n)+zc.getBorderBottomWidth(n),t=zc.getPaddingTop(n)+zc.getPaddingBottom(n);return n.offsetHeight-e-t}function Xh(n){let e=zc.getMarginTop(n)+zc.getMarginBottom(n);return n.offsetHeight+e}function Bn(n,e){return!!e?.contains(n)}function t9e(n,e,t){for(;n&&n.nodeType===n.ELEMENT_NODE;){if(n.classList.contains(e))return n;if(t){if(typeof t=="string"){if(n.classList.contains(t))return null}else if(n===t)return null}n=n.parentNode}return null}function NP(n,e,t){return!!t9e(n,e,t)}function bbe(n){return n&&!!n.host&&!!n.mode}function BC(n){return!!Qh(n)}function Qh(n){for(;n.parentNode;){if(n===n.ownerDocument?.body)return null;n=n.parentNode}return bbe(n)?n:null}function hn(){let n=sv().activeElement;for(;n?.shadowRoot;)n=n.shadowRoot.activeElement;return n}function WC(n){return hn()===n}function RP(n){return Bn(hn(),n)}function sv(){return J6e()<=1?Et.document:Array.from(hY()).map(({window:e})=>e.document).find(e=>e.hasFocus())??Et.document}function Rt(){return sv().defaultView?.window??Et}function ni(n){return n instanceof HTMLElement||n instanceof Ce(n).HTMLElement}function gY(n){return n instanceof HTMLAnchorElement||n instanceof Ce(n).HTMLAnchorElement}function pY(n){return n instanceof SVGElement||n instanceof Ce(n).SVGElement}function Ey(n){return n instanceof MouseEvent||n instanceof Ce(n).MouseEvent}function Ku(n){return n instanceof KeyboardEvent||n instanceof Ce(n).KeyboardEvent}function wbe(n){let e=n;return!!(e&&typeof e.preventDefault=="function"&&typeof e.stopPropagation=="function")}function Cbe(n){let e=[];for(let t=0;n&&n.nodeType===n.ELEMENT_NODE;t++)e[t]=n.scrollTop,n=n.parentNode;return e}function xbe(n,e){for(let t=0;n&&n.nodeType===n.ELEMENT_NODE;t++)n.scrollTop!==e[t]&&(n.scrollTop=e[t]),n=n.parentNode}function Os(n){return new aY(n)}function Sbe(n,e){return n.after(e),e}function Y(n,...e){if(n.append(...e),e.length===1&&typeof e[0]!="string")return e[0]}function av(n,e){return n.insertBefore(e,n.firstChild),e}function bn(n,...e){n.textContent="",Y(n,...e)}function ybe(n,e,t,...i){let o=i9e.exec(e);if(!o)throw new Error("Bad use of emmet");let r=o[1]||"div",s;return n!==bD.HTML?s=document.createElementNS(n,r):s=document.createElement(r),o[3]&&(s.id=o[3]),o[4]&&(s.className=o[4].replace(/\./g," ").trim()),t&&Object.entries(t).forEach(([a,l])=>{typeof l>"u"||(/^on\w+$/.test(a)?s[a]=l:a==="selected"?l&&s.setAttribute(a,"true"):s.setAttribute(a,l))}),s.append(...i),s}function K(n,e,...t){return ybe(bD.HTML,n,e,...t)}function kbe(n,...e){n?ga(...e):Zs(...e)}function ga(...n){for(let e of n)e.style.display="",e.removeAttribute("aria-hidden")}function Zs(...n){for(let e of n)e.style.display="none",e.setAttribute("aria-hidden","true")}function _Y(n,e){let t=n.devicePixelRatio*e;return Math.max(1,Math.floor(t))/n.devicePixelRatio}function AP(n){Et.open(n,"_blank","noopener")}function Lbe(n,e){let t=()=>{e(),i=Ms(n,t)},i=Ms(n,t);return se(()=>i.dispose())}function Lt(n,...e){let t,i;Array.isArray(e[0])?(t={},i=e[0]):(t=e[0]||{},i=e[1]);let o=n9e.exec(n);if(!o||!o.groups)throw new Error("Bad use of h");let r=o.groups.tag||"div",s=document.createElement(r);o.groups.id&&(s.id=o.groups.id);let a=[];if(o.groups.class)for(let c of o.groups.class.split("."))c!==""&&a.push(c);if(t.className!==void 0)for(let c of t.className.split("."))c!==""&&a.push(c);a.length>0&&(s.className=a.join(" "));let l={};if(o.groups.name&&(l[o.groups.name]=s),i)for(let c of i)ni(c)?s.appendChild(c):typeof c=="string"?s.append(c):"root"in c&&(Object.assign(l,c),s.appendChild(c.root));for(let[c,d]of Object.entries(t))if(c!=="className")if(c==="style")for(let[h,u]of Object.entries(d))s.style.setProperty(vD(h),typeof u=="number"?u+"px":""+u);else c==="tabIndex"?s.tabIndex=d:s.setAttribute(vD(c),d.toString());return l.root=s,l}function vD(n){return n.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function Uc(n){return n.tagName.toLowerCase()==="input"||n.tagName.toLowerCase()==="textarea"||ni(n)&&!!n.editContext}function sbe(n,e){pY(n)?n.setAttribute("class",e):n.className=e}function Ibe(n,e,t){if(PC(n)){t(n.read(e));return}if(Array.isArray(n)){for(let i of n)Ibe(i,e,t);return}t(n)}function abe(n,e){let t="";return Ibe(n,e,i=>{i&&(t.length===0?t=i:t+=" "+i)}),t}function Ebe(n){return PC(n)?!0:Array.isArray(n)?n.some(e=>Ebe(e)):!1}function lbe(n){return typeof n=="number"?n+"px":n}function Dbe(n){return PC(n)?!0:Array.isArray(n)?n.some(e=>Dbe(e)):!1}function cbe(n,e,t){t==null?n.removeAttribute(vD(e)):n.setAttribute(vD(e),String(t))}function PC(n){return!!n&&n.read!==void 0&&n.reportChanges!==void 0}var Ce,dbe,hY,J6e,ov,uY,Xp,hbe,ube,sY,_i,mbe,Ly,Iy,Ms,rv,_D,zc,Yt,vbe,J,kt,aY,i9e,bD,Zp,IP,n9e,nt,lY,cY,dY,oe=w(()=>{Gs();EO();ha();Xa();Ye();Ae();ae();B();Ys();ct();qp();ka();dt();Ri();fi();({getWindow:Ce,getDocument:dbe,getWindows:hY,getWindowsCount:J6e,getWindowId:ov,getWindowById:uY,onDidRegisterWindow:Xp,onWillUnregisterWindow:hbe,onDidUnregisterWindow:ube}=function(){let n=new Map;$pe(Et,1);let e={window:Et,disposables:new P};n.set(Et.vscodeWindowId,e);let t=new N,i=new N,o=new N;function r(s,a){return(typeof s=="number"?n.get(s):void 0)??(a?e:void 0)}return{onDidRegisterWindow:t.event,onWillUnregisterWindow:o.event,onDidUnregisterWindow:i.event,registerWindow(s){if(n.has(s.vscodeWindowId))return E.None;let a=new P,l={window:s,disposables:a.add(new P)};return n.set(s.vscodeWindowId,l),a.add(se(()=>{n.delete(s.vscodeWindowId),i.fire(s)})),a.add(F(s,J.BEFORE_UNLOAD,()=>{o.fire(s)})),t.fire(l),a},getWindows(){return n.values()},getWindowsCount(){return n.size},getWindowId(s){return s.vscodeWindowId},hasWindow(s){return n.has(s)},getWindowById:r,getWindow(s){let a=s;if(a?.ownerDocument?.defaultView)return a.ownerDocument.defaultView.window;let l=s;return l?.view?l.view.window:Et},getDocument(s){return Ce(s).document}}}());sY=class{constructor(e,t,i,o){this._node=e,this._type=t,this._handler=i,this._options=o||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}};_i=function(e,t,i,o){let r=i;return t==="click"||t==="mousedown"||t==="contextmenu"?r=fbe(Ce(e),i):(t==="keydown"||t==="keypress"||t==="keyup")&&(r=e9e(i)),F(e,t,r,o)},mbe=function(e,t,i){let o=fbe(Ce(e),t);return fY(e,o,i)};Ly=class extends QE{constructor(e,t){super(e,t)}},rv=class extends Zb{constructor(e){super(),this.defaultTarget=e&&Ce(e)}cancelAndSet(e,t,i){return super.cancelAndSet(e,t,i??this.defaultTarget)}},_D=class{constructor(e,t=0){this._runner=e,this.priority=t,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(e){De(e)}}static sort(e,t){return t.priority-e.priority}};(function(){let n=new Map,e=new Map,t=new Map,i=new Map,o=r=>{t.set(r,!1);let s=n.get(r)??[];for(e.set(r,s),n.set(r,[]),i.set(r,!0);s.length>0;)s.sort(_D.sort),s.shift().execute();i.set(r,!1)};Ms=(r,s,a=0)=>{let l=ov(r),c=new _D(s,a),d=n.get(l);return d||(d=[],n.set(l,d)),d.push(c),t.get(l)||(t.set(l,!0),r.requestAnimationFrame(()=>o(l))),c},Iy=(r,s,a)=>{let l=ov(r);if(i.get(l)){let c=new _D(s,a),d=e.get(l);return d||(d=[],e.set(l,d)),d.push(c),c}else return Ms(r,s,a)}})();zc=class n{static convertToPixels(e,t){return parseFloat(t)||0}static getDimension(e,t){let i=wD(e),o=i?i.getPropertyValue(t):"0";return n.convertToPixels(e,o)}static getBorderLeftWidth(e){return n.getDimension(e,"border-left-width")}static getBorderRightWidth(e){return n.getDimension(e,"border-right-width")}static getBorderTopWidth(e){return n.getDimension(e,"border-top-width")}static getBorderBottomWidth(e){return n.getDimension(e,"border-bottom-width")}static getPaddingLeft(e){return n.getDimension(e,"padding-left")}static getPaddingRight(e){return n.getDimension(e,"padding-right")}static getPaddingTop(e){return n.getDimension(e,"padding-top")}static getPaddingBottom(e){return n.getDimension(e,"padding-bottom")}static getMarginLeft(e){return n.getDimension(e,"margin-left")}static getMarginTop(e){return n.getDimension(e,"margin-top")}static getMarginRight(e){return n.getDimension(e,"margin-right")}static getMarginBottom(e){return n.getDimension(e,"margin-bottom")}},Yt=class n{static{this.None=new n(0,0)}constructor(e,t){this.width=e,this.height=t}with(e=this.width,t=this.height){return e!==this.width||t!==this.height?new n(e,t):this}static is(e){return typeof e=="object"&&typeof e.height=="number"&&typeof e.width=="number"}static lift(e){return e instanceof n?e:new n(e.width,e.height)}static equals(e,t){return e===t?!0:!e||!t?!1:e.width===t.width&&e.height===t.height}};vbe=new class{constructor(){this.mutationObservers=new Map}observe(n,e,t){let i=this.mutationObservers.get(n);i||(i=new Map,this.mutationObservers.set(n,i));let o=Km(t),r=i.get(o);if(r)r.users+=1;else{let s=new N,a=new MutationObserver(c=>s.fire(c));a.observe(n,t);let l=r={users:1,observer:a,onDidMutate:s.event};e.add(se(()=>{l.users-=1,l.users===0&&(s.dispose(),a.disconnect(),i?.delete(o),i?.size===0&&this.mutationObservers.delete(n))})),i.set(o,r)}return r.onDidMutate}};J={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",POINTER_LEAVE:"pointerleave",CONTEXT_MENU:"contextmenu",KEY_DOWN:"keydown",KEY_UP:"keyup",BEFORE_UNLOAD:"beforeunload",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend"};kt={stop:(n,e)=>(n.preventDefault(),e&&n.stopPropagation(),n)};aY=class n extends E{get onDidFocus(){return this._onDidFocus.event}get onDidBlur(){return this._onDidBlur.event}static hasFocusWithin(e){if(ni(e)){let t=Qh(e),i=t?t.activeElement:e.ownerDocument.activeElement;return Bn(i,e)}else{let t=e;return Bn(t.document.activeElement,t.document)}}constructor(e){super(),this._onDidFocus=this._register(new N),this._onDidBlur=this._register(new N);let t=n.hasFocusWithin(e),i=!1,o=()=>{i=!1,t||(t=!0,this._onDidFocus.fire())},r=()=>{t&&(i=!0,(ni(e)?Ce(e):e).setTimeout(()=>{i&&(i=!1,t=!1,this._onDidBlur.fire())},0))};this._refreshStateHandler=()=>{n.hasFocusWithin(e)!==t&&(t?r():o())},this._register(F(e,J.FOCUS,o,!0)),this._register(F(e,J.BLUR,r,!0)),ni(e)&&(this._register(F(e,J.FOCUS_IN,()=>this._refreshStateHandler())),this._register(F(e,J.FOCUS_OUT,()=>this._refreshStateHandler())))}};i9e=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;(function(n){n.HTML="http://www.w3.org/1999/xhtml",n.SVG="http://www.w3.org/2000/svg"})(bD||(bD={}));K.SVG=function(n,e,...t){return ybe(bD.SVG,n,e,...t)};UG.setPreferredWebSchema(/^https:/.test(Et.location.href)?"https":"http");Zp=class n extends N{constructor(){super(),this._subscriptions=new P,this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1},this._subscriptions.add(X.runAndSubscribe(Xp,({window:e,disposables:t})=>this.registerListeners(e,t),{window:Et,disposables:this._subscriptions}))}registerListeners(e,t){t.add(F(e,"keydown",i=>{if(i.defaultPrevented)return;let o=new St(i);if(!(o.keyCode===6&&i.repeat)){if(i.altKey&&!this._keyStatus.altKey)this._keyStatus.lastKeyPressed="alt";else if(i.ctrlKey&&!this._keyStatus.ctrlKey)this._keyStatus.lastKeyPressed="ctrl";else if(i.metaKey&&!this._keyStatus.metaKey)this._keyStatus.lastKeyPressed="meta";else if(i.shiftKey&&!this._keyStatus.shiftKey)this._keyStatus.lastKeyPressed="shift";else if(o.keyCode!==6)this._keyStatus.lastKeyPressed=void 0;else return;this._keyStatus.altKey=i.altKey,this._keyStatus.ctrlKey=i.ctrlKey,this._keyStatus.metaKey=i.metaKey,this._keyStatus.shiftKey=i.shiftKey,this._keyStatus.lastKeyPressed&&(this._keyStatus.event=i,this.fire(this._keyStatus))}},!0)),t.add(F(e,"keyup",i=>{i.defaultPrevented||(!i.altKey&&this._keyStatus.altKey?this._keyStatus.lastKeyReleased="alt":!i.ctrlKey&&this._keyStatus.ctrlKey?this._keyStatus.lastKeyReleased="ctrl":!i.metaKey&&this._keyStatus.metaKey?this._keyStatus.lastKeyReleased="meta":!i.shiftKey&&this._keyStatus.shiftKey?this._keyStatus.lastKeyReleased="shift":this._keyStatus.lastKeyReleased=void 0,this._keyStatus.lastKeyPressed!==this._keyStatus.lastKeyReleased&&(this._keyStatus.lastKeyPressed=void 0),this._keyStatus.altKey=i.altKey,this._keyStatus.ctrlKey=i.ctrlKey,this._keyStatus.metaKey=i.metaKey,this._keyStatus.shiftKey=i.shiftKey,this._keyStatus.lastKeyReleased&&(this._keyStatus.event=i,this.fire(this._keyStatus)))},!0)),t.add(F(e.document.body,"mousedown",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),t.add(F(e.document.body,"mouseup",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),t.add(F(e.document.body,"mousemove",i=>{i.buttons&&(this._keyStatus.lastKeyPressed=void 0)},!0)),t.add(F(e,"blur",()=>{this.resetKeyStatus()}))}get keyStatus(){return this._keyStatus}resetKeyStatus(){this.doResetKeyStatus(),this.fire(this._keyStatus)}doResetKeyStatus(){this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1}}static getInstance(){return n.instance||(n.instance=new n),n.instance}dispose(){super.dispose(),this._subscriptions.dispose()}},IP=class extends E{constructor(e,t){super(),this.element=e,this.callbacks=t,this.counter=0,this.dragStartTime=0,this.registerListeners()}registerListeners(){this.callbacks.onDragStart&&this._register(F(this.element,J.DRAG_START,e=>{this.callbacks.onDragStart?.(e)})),this.callbacks.onDrag&&this._register(F(this.element,J.DRAG,e=>{this.callbacks.onDrag?.(e)})),this._register(F(this.element,J.DRAG_ENTER,e=>{this.counter++,this.dragStartTime=e.timeStamp,this.callbacks.onDragEnter?.(e)})),this._register(F(this.element,J.DRAG_OVER,e=>{e.preventDefault(),this.callbacks.onDragOver?.(e,e.timeStamp-this.dragStartTime)})),this._register(F(this.element,J.DRAG_LEAVE,e=>{this.counter--,this.counter===0&&(this.dragStartTime=0,this.callbacks.onDragLeave?.(e))})),this._register(F(this.element,J.DRAG_END,e=>{this.counter=0,this.dragStartTime=0,this.callbacks.onDragEnd?.(e)})),this._register(F(this.element,J.DROP,e=>{this.counter=0,this.dragStartTime=0,this.callbacks.onDrop?.(e)}))}},n9e=/(?[\w\-]+)?(?:#(?[\w\-]+))?(?(?:\.(?:[\w\-]+))*)(?:@(?(?:[\w\_])+))?/;(function(n){function e(o=void 0){return(r,s,a)=>{let l=s.class;delete s.class;let c=s.ref;delete s.ref;let d=s.obsRef;return delete s.obsRef,new dY(r,c,d,o,l,s,a)}}function t(o,r=void 0){let s=e(r);return(a,l)=>s(o,a,l)}n.div=t("div"),n.elem=e(void 0),n.svg=t("svg","http://www.w3.org/2000/svg"),n.svgElem=e("http://www.w3.org/2000/svg");function i(){let o,r=function(s){o=s};return Object.defineProperty(r,"element",{get(){if(!o)throw new ke("Make sure the ref is set before accessing the element. Maybe wrong initialization order?");return o}}),r}n.ref=i})(nt||(nt={}));lY=class n{constructor(e,t,i,o,r,s,a){this._deriveds=[],this._element=o?document.createElementNS(o,e):document.createElement(e),t&&t(this._element),i&&this._deriveds.push($(l=>{i(this),l.store.add({dispose:()=>{i(null)}})})),r&&(Ebe(r)?this._deriveds.push($(this,l=>{sbe(this._element,abe(r,l))})):sbe(this._element,abe(r,void 0)));for(let[l,c]of Object.entries(s))if(l==="style")for(let[d,h]of Object.entries(c)){let u=vD(d);PC(h)?this._deriveds.push(oo({owner:this,debugName:()=>`set.style.${u}`},f=>{this._element.style.setProperty(u,lbe(h.read(f)))})):this._element.style.setProperty(u,lbe(h))}else l==="tabIndex"?PC(c)?this._deriveds.push($(this,d=>{this._element.tabIndex=c.read(d)})):this._element.tabIndex=c:l.startsWith("on")?this._element[l]=c:PC(c)?this._deriveds.push(oo({owner:this,debugName:()=>`set.${l}`},d=>{cbe(this._element,l,c.read(d))})):cbe(this._element,l,c);if(a){let l=function(d,h){return PC(h)?l(d,h.read(d)):Array.isArray(h)?h.flatMap(u=>l(d,u)):h instanceof n?(d&&h.readEffect(d),[h._element]):h?[h]:[]},c=$(this,d=>{this._element.replaceChildren(...l(d,a))});this._deriveds.push(c),Dbe(a)||c.get()}}readEffect(e){for(let t of this._deriveds)t.read(e)}keepUpdated(e){return $(t=>{this.readEffect(t)}).recomputeInitiallyAndOnChange(e),this}toDisposableLiveElement(){let e=new P;return this.keepUpdated(e),new cY(this._element,e)}};cY=class{constructor(e,t){this.element=e,this._disposable=t}dispose(){this._disposable.dispose()}},dY=class extends lY{constructor(){super(...arguments),this._isHovered=void 0,this._didMouseMoveDuringHover=void 0}get element(){return this._element}get isHovered(){if(!this._isHovered){let e=Ne("hovered",!1);this._element.addEventListener("mouseenter",t=>e.set(!0,void 0)),this._element.addEventListener("mouseleave",t=>e.set(!1,void 0)),this._isHovered=e}return this._isHovered}get didMouseMoveDuringHover(){if(!this._didMouseMoveDuringHover){let e=!1,t=Ne("didMouseMoveDuringHover",!1);this._element.addEventListener("mouseenter",i=>{e=!0}),this._element.addEventListener("mousemove",i=>{e&&t.set(!0,void 0)}),this._element.addEventListener("mouseleave",i=>{e=!1,t.set(!1,void 0)}),this._didMouseMoveDuringHover=t}return this._didMouseMoveDuringHover}}});var Tbe=w(()=>{});function Rbe(n){HC=document.createElement("div"),HC.className="monaco-aria-container";let e=()=>{let i=document.createElement("div");return i.className="monaco-alert",i.setAttribute("role","alert"),i.setAttribute("aria-atomic","true"),HC.appendChild(i),i};MP=e(),bY=e();let t=()=>{let i=document.createElement("div");return i.className="monaco-status",i.setAttribute("aria-live","polite"),i.setAttribute("aria-atomic","true"),HC.appendChild(i),i};OP=t(),vY=t(),n.appendChild(HC)}function _o(n){HC&&(MP.textContent!==n?(qn(bY),PP(MP,n)):(qn(MP),PP(bY,n)))}function Qa(n){HC&&(OP.textContent!==n?(qn(vY),PP(OP,n)):(qn(OP),PP(vY,n)))}function PP(n,e){qn(n),e.length>Nbe&&(e=e.substr(0,Nbe)),n.textContent=e,n.style.visibility="hidden",n.style.visibility="visible"}var Nbe,HC,MP,bY,OP,vY,Xs=w(()=>{oe();Tbe();Nbe=2e4});function o9e(n,e,t){e[Gu.DI_TARGET]===e?e[Gu.DI_DEPENDENCIES].push({id:n,index:t}):(e[Gu.DI_DEPENDENCIES]=[{id:n,index:t}],e[Gu.DI_TARGET]=e)}function Re(n){if(Gu.serviceIds.has(n))return Gu.serviceIds.get(n);let e=function(t,i,o){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");o9e(e,t,o)};return e.toString=()=>n,Gu.serviceIds.set(n,e),e}var Gu,ne,ye=w(()=>{(function(n){n.serviceIds=new Map,n.DI_TARGET="$di$target",n.DI_DEPENDENCIES="$di$dependencies";function e(t){return t[n.DI_DEPENDENCIES]||[]}n.getServiceDependencies=e})(Gu||(Gu={}));ne=Re("instantiationService")});var ot,bo=w(()=>{ye();ot=Re("codeEditorService")});var M,Fe=w(()=>{M=class n{constructor(e,t){this.lineNumber=e,this.column=t}with(e=this.lineNumber,t=this.column){return e===this.lineNumber&&t===this.column?this:new n(e,t)}delta(e=0,t=0){return this.with(Math.max(1,this.lineNumber+e),Math.max(1,this.column+t))}equals(e){return n.equals(this,e)}static equals(e,t){return!e&&!t?!0:!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column}isBefore(e){return n.isBefore(this,e)}static isBefore(e,t){return e.lineNumber{ye();mi=Re("modelService")});var Xn,xd=w(()=>{ye();Xn=Re("textModelService")});function Zm(n){return{id:n.id,label:n.label,tooltip:n.tooltip??n.label,class:n.class,enabled:n.enabled??!0,checked:n.checked,run:async(...e)=>n.run(...e)}}var Ps,Sd,vn,Jh,FP,pa=w(()=>{ae();B();le();Ps=class extends E{get onDidChange(){return this._onDidChange.event}constructor(e,t="",i="",o=!0,r){super(),this._onDidChange=this._register(new N),this._enabled=!0,this._id=e,this._label=t,this._cssClass=i,this._enabled=o,this._actionCallback=r}get id(){return this._id}get label(){return this._label}set label(e){this._setLabel(e)}_setLabel(e){this._label!==e&&(this._label=e,this._onDidChange.fire({label:e}))}get tooltip(){return this._tooltip||""}set tooltip(e){this._setTooltip(e)}_setTooltip(e){this._tooltip!==e&&(this._tooltip=e,this._onDidChange.fire({tooltip:e}))}get class(){return this._cssClass}set class(e){this._setClass(e)}_setClass(e){this._cssClass!==e&&(this._cssClass=e,this._onDidChange.fire({class:e}))}get enabled(){return this._enabled}set enabled(e){this._setEnabled(e)}_setEnabled(e){this._enabled!==e&&(this._enabled=e,this._onDidChange.fire({enabled:e}))}get checked(){return this._checked}set checked(e){this._setChecked(e)}_setChecked(e){this._checked!==e&&(this._checked=e,this._onDidChange.fire({checked:e}))}async run(e,t){this._actionCallback&&await this._actionCallback(e)}},Sd=class extends E{constructor(){super(...arguments),this._onWillRun=this._register(new N),this._onDidRun=this._register(new N)}get onWillRun(){return this._onWillRun.event}get onDidRun(){return this._onDidRun.event}async run(e,t){if(!e.enabled)return;this._onWillRun.fire({action:e});let i;try{await this.runAction(e,t)}catch(o){i=o}this._onDidRun.fire({action:e,error:i})}async runAction(e,t){await e.run(t)}},vn=class n{constructor(){this.id=n.ID,this.label="",this.tooltip="",this.class="separator",this.enabled=!1,this.checked=!1}static join(...e){let t=[];for(let i of e)i.length&&(t.length?t=[...t,new n,...i]:t=i);return t}static{this.ID="vs.actions.separator"}async run(){}},Jh=class{get actions(){return this._actions}constructor(e,t,i,o){this.tooltip="",this.enabled=!0,this.checked=void 0,this.id=e,this.label=t,this.class=o,this._actions=i}async run(){}},FP=class n extends Ps{static{this.ID="vs.actions.empty"}constructor(){super(n.ID,g(28,"(empty)"),void 0,!1)}}});function k(n,e){if(En(e)){let t=wY[e];if(t===void 0)throw new Error(`${n} references an unknown codicon: ${e}`);e=t}return wY[n]=e,{id:n}}function BP(){return wY}var wY,CD=w(()=>{Nt();wY=Object.create(null)});var Abe,Mbe=w(()=>{CD();Abe={add:k("add",6e4),plus:k("plus",6e4),gistNew:k("gist-new",6e4),repoCreate:k("repo-create",6e4),lightbulb:k("lightbulb",60001),lightBulb:k("light-bulb",60001),repo:k("repo",60002),repoDelete:k("repo-delete",60002),gistFork:k("gist-fork",60003),repoForked:k("repo-forked",60003),gitPullRequest:k("git-pull-request",60004),gitPullRequestAbandoned:k("git-pull-request-abandoned",60004),recordKeys:k("record-keys",60005),keyboard:k("keyboard",60005),tag:k("tag",60006),gitPullRequestLabel:k("git-pull-request-label",60006),tagAdd:k("tag-add",60006),tagRemove:k("tag-remove",60006),person:k("person",60007),personFollow:k("person-follow",60007),personOutline:k("person-outline",60007),personFilled:k("person-filled",60007),sourceControl:k("source-control",60008),mirror:k("mirror",60009),mirrorPublic:k("mirror-public",60009),star:k("star",60010),starAdd:k("star-add",60010),starDelete:k("star-delete",60010),starEmpty:k("star-empty",60010),comment:k("comment",60011),commentAdd:k("comment-add",60011),alert:k("alert",60012),warning:k("warning",60012),search:k("search",60013),searchSave:k("search-save",60013),logOut:k("log-out",60014),signOut:k("sign-out",60014),logIn:k("log-in",60015),signIn:k("sign-in",60015),eye:k("eye",60016),eyeUnwatch:k("eye-unwatch",60016),eyeWatch:k("eye-watch",60016),circleFilled:k("circle-filled",60017),primitiveDot:k("primitive-dot",60017),closeDirty:k("close-dirty",60017),debugBreakpoint:k("debug-breakpoint",60017),debugBreakpointDisabled:k("debug-breakpoint-disabled",60017),debugHint:k("debug-hint",60017),terminalDecorationSuccess:k("terminal-decoration-success",60017),primitiveSquare:k("primitive-square",60018),edit:k("edit",60019),pencil:k("pencil",60019),info:k("info",60020),issueOpened:k("issue-opened",60020),gistPrivate:k("gist-private",60021),gitForkPrivate:k("git-fork-private",60021),lock:k("lock",60021),mirrorPrivate:k("mirror-private",60021),close:k("close",60022),removeClose:k("remove-close",60022),x:k("x",60022),repoSync:k("repo-sync",60023),sync:k("sync",60023),clone:k("clone",60024),desktopDownload:k("desktop-download",60024),beaker:k("beaker",60025),microscope:k("microscope",60025),vm:k("vm",60026),deviceDesktop:k("device-desktop",60026),file:k("file",60027),more:k("more",60028),ellipsis:k("ellipsis",60028),kebabHorizontal:k("kebab-horizontal",60028),mailReply:k("mail-reply",60029),reply:k("reply",60029),organization:k("organization",60030),organizationFilled:k("organization-filled",60030),organizationOutline:k("organization-outline",60030),newFile:k("new-file",60031),fileAdd:k("file-add",60031),newFolder:k("new-folder",60032),fileDirectoryCreate:k("file-directory-create",60032),trash:k("trash",60033),trashcan:k("trashcan",60033),history:k("history",60034),clock:k("clock",60034),folder:k("folder",60035),fileDirectory:k("file-directory",60035),symbolFolder:k("symbol-folder",60035),logoGithub:k("logo-github",60036),markGithub:k("mark-github",60036),github:k("github",60036),terminal:k("terminal",60037),console:k("console",60037),repl:k("repl",60037),zap:k("zap",60038),symbolEvent:k("symbol-event",60038),error:k("error",60039),stop:k("stop",60039),variable:k("variable",60040),symbolVariable:k("symbol-variable",60040),array:k("array",60042),symbolArray:k("symbol-array",60042),symbolModule:k("symbol-module",60043),symbolPackage:k("symbol-package",60043),symbolNamespace:k("symbol-namespace",60043),symbolObject:k("symbol-object",60043),symbolMethod:k("symbol-method",60044),symbolFunction:k("symbol-function",60044),symbolConstructor:k("symbol-constructor",60044),symbolBoolean:k("symbol-boolean",60047),symbolNull:k("symbol-null",60047),symbolNumeric:k("symbol-numeric",60048),symbolNumber:k("symbol-number",60048),symbolStructure:k("symbol-structure",60049),symbolStruct:k("symbol-struct",60049),symbolParameter:k("symbol-parameter",60050),symbolTypeParameter:k("symbol-type-parameter",60050),symbolKey:k("symbol-key",60051),symbolText:k("symbol-text",60051),symbolReference:k("symbol-reference",60052),goToFile:k("go-to-file",60052),symbolEnum:k("symbol-enum",60053),symbolValue:k("symbol-value",60053),symbolRuler:k("symbol-ruler",60054),symbolUnit:k("symbol-unit",60054),activateBreakpoints:k("activate-breakpoints",60055),archive:k("archive",60056),arrowBoth:k("arrow-both",60057),arrowDown:k("arrow-down",60058),arrowLeft:k("arrow-left",60059),arrowRight:k("arrow-right",60060),arrowSmallDown:k("arrow-small-down",60061),arrowSmallLeft:k("arrow-small-left",60062),arrowSmallRight:k("arrow-small-right",60063),arrowSmallUp:k("arrow-small-up",60064),arrowUp:k("arrow-up",60065),bell:k("bell",60066),bold:k("bold",60067),book:k("book",60068),bookmark:k("bookmark",60069),debugBreakpointConditionalUnverified:k("debug-breakpoint-conditional-unverified",60070),debugBreakpointConditional:k("debug-breakpoint-conditional",60071),debugBreakpointConditionalDisabled:k("debug-breakpoint-conditional-disabled",60071),debugBreakpointDataUnverified:k("debug-breakpoint-data-unverified",60072),debugBreakpointData:k("debug-breakpoint-data",60073),debugBreakpointDataDisabled:k("debug-breakpoint-data-disabled",60073),debugBreakpointLogUnverified:k("debug-breakpoint-log-unverified",60074),debugBreakpointLog:k("debug-breakpoint-log",60075),debugBreakpointLogDisabled:k("debug-breakpoint-log-disabled",60075),briefcase:k("briefcase",60076),broadcast:k("broadcast",60077),browser:k("browser",60078),bug:k("bug",60079),calendar:k("calendar",60080),caseSensitive:k("case-sensitive",60081),check:k("check",60082),checklist:k("checklist",60083),chevronDown:k("chevron-down",60084),chevronLeft:k("chevron-left",60085),chevronRight:k("chevron-right",60086),chevronUp:k("chevron-up",60087),chromeClose:k("chrome-close",60088),chromeMaximize:k("chrome-maximize",60089),chromeMinimize:k("chrome-minimize",60090),chromeRestore:k("chrome-restore",60091),circleOutline:k("circle-outline",60092),circle:k("circle",60092),debugBreakpointUnverified:k("debug-breakpoint-unverified",60092),terminalDecorationIncomplete:k("terminal-decoration-incomplete",60092),circleSlash:k("circle-slash",60093),circuitBoard:k("circuit-board",60094),clearAll:k("clear-all",60095),clippy:k("clippy",60096),closeAll:k("close-all",60097),cloudDownload:k("cloud-download",60098),cloudUpload:k("cloud-upload",60099),code:k("code",60100),collapseAll:k("collapse-all",60101),colorMode:k("color-mode",60102),commentDiscussion:k("comment-discussion",60103),creditCard:k("credit-card",60105),dash:k("dash",60108),dashboard:k("dashboard",60109),database:k("database",60110),debugContinue:k("debug-continue",60111),debugDisconnect:k("debug-disconnect",60112),debugPause:k("debug-pause",60113),debugRestart:k("debug-restart",60114),debugStart:k("debug-start",60115),debugStepInto:k("debug-step-into",60116),debugStepOut:k("debug-step-out",60117),debugStepOver:k("debug-step-over",60118),debugStop:k("debug-stop",60119),debug:k("debug",60120),deviceCameraVideo:k("device-camera-video",60121),deviceCamera:k("device-camera",60122),deviceMobile:k("device-mobile",60123),diffAdded:k("diff-added",60124),diffIgnored:k("diff-ignored",60125),diffModified:k("diff-modified",60126),diffRemoved:k("diff-removed",60127),diffRenamed:k("diff-renamed",60128),diff:k("diff",60129),diffSidebyside:k("diff-sidebyside",60129),discard:k("discard",60130),editorLayout:k("editor-layout",60131),emptyWindow:k("empty-window",60132),exclude:k("exclude",60133),extensions:k("extensions",60134),eyeClosed:k("eye-closed",60135),fileBinary:k("file-binary",60136),fileCode:k("file-code",60137),fileMedia:k("file-media",60138),filePdf:k("file-pdf",60139),fileSubmodule:k("file-submodule",60140),fileSymlinkDirectory:k("file-symlink-directory",60141),fileSymlinkFile:k("file-symlink-file",60142),fileZip:k("file-zip",60143),files:k("files",60144),filter:k("filter",60145),flame:k("flame",60146),foldDown:k("fold-down",60147),foldUp:k("fold-up",60148),fold:k("fold",60149),folderActive:k("folder-active",60150),folderOpened:k("folder-opened",60151),gear:k("gear",60152),gift:k("gift",60153),gistSecret:k("gist-secret",60154),gist:k("gist",60155),gitCommit:k("git-commit",60156),gitCompare:k("git-compare",60157),compareChanges:k("compare-changes",60157),gitMerge:k("git-merge",60158),githubAction:k("github-action",60159),githubAlt:k("github-alt",60160),globe:k("globe",60161),grabber:k("grabber",60162),graph:k("graph",60163),gripper:k("gripper",60164),heart:k("heart",60165),home:k("home",60166),horizontalRule:k("horizontal-rule",60167),hubot:k("hubot",60168),inbox:k("inbox",60169),issueReopened:k("issue-reopened",60171),issues:k("issues",60172),italic:k("italic",60173),jersey:k("jersey",60174),json:k("json",60175),kebabVertical:k("kebab-vertical",60176),key:k("key",60177),law:k("law",60178),lightbulbAutofix:k("lightbulb-autofix",60179),linkExternal:k("link-external",60180),link:k("link",60181),listOrdered:k("list-ordered",60182),listUnordered:k("list-unordered",60183),liveShare:k("live-share",60184),loading:k("loading",60185),location:k("location",60186),mailRead:k("mail-read",60187),mail:k("mail",60188),markdown:k("markdown",60189),megaphone:k("megaphone",60190),mention:k("mention",60191),milestone:k("milestone",60192),gitPullRequestMilestone:k("git-pull-request-milestone",60192),mortarBoard:k("mortar-board",60193),move:k("move",60194),multipleWindows:k("multiple-windows",60195),mute:k("mute",60196),noNewline:k("no-newline",60197),note:k("note",60198),octoface:k("octoface",60199),openPreview:k("open-preview",60200),package:k("package",60201),paintcan:k("paintcan",60202),pin:k("pin",60203),play:k("play",60204),run:k("run",60204),plug:k("plug",60205),preserveCase:k("preserve-case",60206),preview:k("preview",60207),project:k("project",60208),pulse:k("pulse",60209),question:k("question",60210),quote:k("quote",60211),radioTower:k("radio-tower",60212),reactions:k("reactions",60213),references:k("references",60214),refresh:k("refresh",60215),regex:k("regex",60216),remoteExplorer:k("remote-explorer",60217),remote:k("remote",60218),remove:k("remove",60219),replaceAll:k("replace-all",60220),replace:k("replace",60221),repoClone:k("repo-clone",60222),repoForcePush:k("repo-force-push",60223),repoPull:k("repo-pull",60224),repoPush:k("repo-push",60225),report:k("report",60226),requestChanges:k("request-changes",60227),rocket:k("rocket",60228),rootFolderOpened:k("root-folder-opened",60229),rootFolder:k("root-folder",60230),rss:k("rss",60231),ruby:k("ruby",60232),saveAll:k("save-all",60233),saveAs:k("save-as",60234),save:k("save",60235),screenFull:k("screen-full",60236),screenNormal:k("screen-normal",60237),searchStop:k("search-stop",60238),server:k("server",60240),settingsGear:k("settings-gear",60241),settings:k("settings",60242),shield:k("shield",60243),smiley:k("smiley",60244),sortPrecedence:k("sort-precedence",60245),splitHorizontal:k("split-horizontal",60246),splitVertical:k("split-vertical",60247),squirrel:k("squirrel",60248),starFull:k("star-full",60249),starHalf:k("star-half",60250),symbolClass:k("symbol-class",60251),symbolColor:k("symbol-color",60252),symbolConstant:k("symbol-constant",60253),symbolEnumMember:k("symbol-enum-member",60254),symbolField:k("symbol-field",60255),symbolFile:k("symbol-file",60256),symbolInterface:k("symbol-interface",60257),symbolKeyword:k("symbol-keyword",60258),symbolMisc:k("symbol-misc",60259),symbolOperator:k("symbol-operator",60260),symbolProperty:k("symbol-property",60261),wrench:k("wrench",60261),wrenchSubaction:k("wrench-subaction",60261),symbolSnippet:k("symbol-snippet",60262),tasklist:k("tasklist",60263),telescope:k("telescope",60264),textSize:k("text-size",60265),threeBars:k("three-bars",60266),thumbsdown:k("thumbsdown",60267),thumbsup:k("thumbsup",60268),tools:k("tools",60269),triangleDown:k("triangle-down",60270),triangleLeft:k("triangle-left",60271),triangleRight:k("triangle-right",60272),triangleUp:k("triangle-up",60273),twitter:k("twitter",60274),unfold:k("unfold",60275),unlock:k("unlock",60276),unmute:k("unmute",60277),unverified:k("unverified",60278),verified:k("verified",60279),versions:k("versions",60280),vmActive:k("vm-active",60281),vmOutline:k("vm-outline",60282),vmRunning:k("vm-running",60283),watch:k("watch",60284),whitespace:k("whitespace",60285),wholeWord:k("whole-word",60286),window:k("window",60287),wordWrap:k("word-wrap",60288),zoomIn:k("zoom-in",60289),zoomOut:k("zoom-out",60290),listFilter:k("list-filter",60291),listFlat:k("list-flat",60292),listSelection:k("list-selection",60293),selection:k("selection",60293),listTree:k("list-tree",60294),debugBreakpointFunctionUnverified:k("debug-breakpoint-function-unverified",60295),debugBreakpointFunction:k("debug-breakpoint-function",60296),debugBreakpointFunctionDisabled:k("debug-breakpoint-function-disabled",60296),debugStackframeActive:k("debug-stackframe-active",60297),circleSmallFilled:k("circle-small-filled",60298),debugStackframeDot:k("debug-stackframe-dot",60298),terminalDecorationMark:k("terminal-decoration-mark",60298),debugStackframe:k("debug-stackframe",60299),debugStackframeFocused:k("debug-stackframe-focused",60299),debugBreakpointUnsupported:k("debug-breakpoint-unsupported",60300),symbolString:k("symbol-string",60301),debugReverseContinue:k("debug-reverse-continue",60302),debugStepBack:k("debug-step-back",60303),debugRestartFrame:k("debug-restart-frame",60304),debugAlt:k("debug-alt",60305),callIncoming:k("call-incoming",60306),callOutgoing:k("call-outgoing",60307),menu:k("menu",60308),expandAll:k("expand-all",60309),feedback:k("feedback",60310),gitPullRequestReviewer:k("git-pull-request-reviewer",60310),groupByRefType:k("group-by-ref-type",60311),ungroupByRefType:k("ungroup-by-ref-type",60312),account:k("account",60313),gitPullRequestAssignee:k("git-pull-request-assignee",60313),bellDot:k("bell-dot",60314),debugConsole:k("debug-console",60315),library:k("library",60316),output:k("output",60317),runAll:k("run-all",60318),syncIgnored:k("sync-ignored",60319),pinned:k("pinned",60320),githubInverted:k("github-inverted",60321),serverProcess:k("server-process",60322),serverEnvironment:k("server-environment",60323),pass:k("pass",60324),issueClosed:k("issue-closed",60324),stopCircle:k("stop-circle",60325),playCircle:k("play-circle",60326),record:k("record",60327),debugAltSmall:k("debug-alt-small",60328),vmConnect:k("vm-connect",60329),cloud:k("cloud",60330),merge:k("merge",60331),export:k("export",60332),graphLeft:k("graph-left",60333),magnet:k("magnet",60334),notebook:k("notebook",60335),redo:k("redo",60336),checkAll:k("check-all",60337),pinnedDirty:k("pinned-dirty",60338),passFilled:k("pass-filled",60339),circleLargeFilled:k("circle-large-filled",60340),circleLarge:k("circle-large",60341),circleLargeOutline:k("circle-large-outline",60341),combine:k("combine",60342),gather:k("gather",60342),table:k("table",60343),variableGroup:k("variable-group",60344),typeHierarchy:k("type-hierarchy",60345),typeHierarchySub:k("type-hierarchy-sub",60346),typeHierarchySuper:k("type-hierarchy-super",60347),gitPullRequestCreate:k("git-pull-request-create",60348),runAbove:k("run-above",60349),runBelow:k("run-below",60350),notebookTemplate:k("notebook-template",60351),debugRerun:k("debug-rerun",60352),workspaceTrusted:k("workspace-trusted",60353),workspaceUntrusted:k("workspace-untrusted",60354),workspaceUnknown:k("workspace-unknown",60355),terminalCmd:k("terminal-cmd",60356),terminalDebian:k("terminal-debian",60357),terminalLinux:k("terminal-linux",60358),terminalPowershell:k("terminal-powershell",60359),terminalTmux:k("terminal-tmux",60360),terminalUbuntu:k("terminal-ubuntu",60361),terminalBash:k("terminal-bash",60362),arrowSwap:k("arrow-swap",60363),copy:k("copy",60364),personAdd:k("person-add",60365),filterFilled:k("filter-filled",60366),wand:k("wand",60367),debugLineByLine:k("debug-line-by-line",60368),inspect:k("inspect",60369),layers:k("layers",60370),layersDot:k("layers-dot",60371),layersActive:k("layers-active",60372),compass:k("compass",60373),compassDot:k("compass-dot",60374),compassActive:k("compass-active",60375),azure:k("azure",60376),issueDraft:k("issue-draft",60377),gitPullRequestClosed:k("git-pull-request-closed",60378),gitPullRequestDraft:k("git-pull-request-draft",60379),debugAll:k("debug-all",60380),debugCoverage:k("debug-coverage",60381),runErrors:k("run-errors",60382),folderLibrary:k("folder-library",60383),debugContinueSmall:k("debug-continue-small",60384),beakerStop:k("beaker-stop",60385),graphLine:k("graph-line",60386),graphScatter:k("graph-scatter",60387),pieChart:k("pie-chart",60388),bracket:k("bracket",60175),bracketDot:k("bracket-dot",60389),bracketError:k("bracket-error",60390),lockSmall:k("lock-small",60391),azureDevops:k("azure-devops",60392),verifiedFilled:k("verified-filled",60393),newline:k("newline",60394),layout:k("layout",60395),layoutActivitybarLeft:k("layout-activitybar-left",60396),layoutActivitybarRight:k("layout-activitybar-right",60397),layoutPanelLeft:k("layout-panel-left",60398),layoutPanelCenter:k("layout-panel-center",60399),layoutPanelJustify:k("layout-panel-justify",60400),layoutPanelRight:k("layout-panel-right",60401),layoutPanel:k("layout-panel",60402),layoutSidebarLeft:k("layout-sidebar-left",60403),layoutSidebarRight:k("layout-sidebar-right",60404),layoutStatusbar:k("layout-statusbar",60405),layoutMenubar:k("layout-menubar",60406),layoutCentered:k("layout-centered",60407),target:k("target",60408),indent:k("indent",60409),recordSmall:k("record-small",60410),errorSmall:k("error-small",60411),terminalDecorationError:k("terminal-decoration-error",60411),arrowCircleDown:k("arrow-circle-down",60412),arrowCircleLeft:k("arrow-circle-left",60413),arrowCircleRight:k("arrow-circle-right",60414),arrowCircleUp:k("arrow-circle-up",60415),layoutSidebarRightOff:k("layout-sidebar-right-off",60416),layoutPanelOff:k("layout-panel-off",60417),layoutSidebarLeftOff:k("layout-sidebar-left-off",60418),blank:k("blank",60419),heartFilled:k("heart-filled",60420),map:k("map",60421),mapHorizontal:k("map-horizontal",60421),foldHorizontal:k("fold-horizontal",60421),mapFilled:k("map-filled",60422),mapHorizontalFilled:k("map-horizontal-filled",60422),foldHorizontalFilled:k("fold-horizontal-filled",60422),circleSmall:k("circle-small",60423),bellSlash:k("bell-slash",60424),bellSlashDot:k("bell-slash-dot",60425),commentUnresolved:k("comment-unresolved",60426),gitPullRequestGoToChanges:k("git-pull-request-go-to-changes",60427),gitPullRequestNewChanges:k("git-pull-request-new-changes",60428),searchFuzzy:k("search-fuzzy",60429),commentDraft:k("comment-draft",60430),send:k("send",60431),sparkle:k("sparkle",60432),insert:k("insert",60433),mic:k("mic",60434),thumbsdownFilled:k("thumbsdown-filled",60435),thumbsupFilled:k("thumbsup-filled",60436),coffee:k("coffee",60437),snake:k("snake",60438),game:k("game",60439),vr:k("vr",60440),chip:k("chip",60441),piano:k("piano",60442),music:k("music",60443),micFilled:k("mic-filled",60444),repoFetch:k("repo-fetch",60445),copilot:k("copilot",60446),lightbulbSparkle:k("lightbulb-sparkle",60447),robot:k("robot",60448),sparkleFilled:k("sparkle-filled",60449),diffSingle:k("diff-single",60450),diffMultiple:k("diff-multiple",60451),surroundWith:k("surround-with",60452),share:k("share",60453),gitStash:k("git-stash",60454),gitStashApply:k("git-stash-apply",60455),gitStashPop:k("git-stash-pop",60456),vscode:k("vscode",60457),vscodeInsiders:k("vscode-insiders",60458),codeOss:k("code-oss",60459),runCoverage:k("run-coverage",60460),runAllCoverage:k("run-all-coverage",60461),coverage:k("coverage",60462),githubProject:k("github-project",60463),mapVertical:k("map-vertical",60464),foldVertical:k("fold-vertical",60464),mapVerticalFilled:k("map-vertical-filled",60465),foldVerticalFilled:k("fold-vertical-filled",60465),goToSearch:k("go-to-search",60466),percentage:k("percentage",60467),sortPercentage:k("sort-percentage",60467),attach:k("attach",60468),goToEditingSession:k("go-to-editing-session",60469),editSession:k("edit-session",60470),codeReview:k("code-review",60471),copilotWarning:k("copilot-warning",60472),python:k("python",60473),copilotLarge:k("copilot-large",60474),copilotWarningLarge:k("copilot-warning-large",60475),keyboardTab:k("keyboard-tab",60476),copilotBlocked:k("copilot-blocked",60477),copilotNotConnected:k("copilot-not-connected",60478),flag:k("flag",60479),lightbulbEmpty:k("lightbulb-empty",60480),symbolMethodArrow:k("symbol-method-arrow",60481),copilotUnavailable:k("copilot-unavailable",60482),repoPinned:k("repo-pinned",60483),keyboardTabAbove:k("keyboard-tab-above",60484),keyboardTabBelow:k("keyboard-tab-below",60485),gitPullRequestDone:k("git-pull-request-done",60486),mcp:k("mcp",60487),extensionsLarge:k("extensions-large",60488),layoutPanelDock:k("layout-panel-dock",60489),layoutSidebarLeftDock:k("layout-sidebar-left-dock",60490),layoutSidebarRightDock:k("layout-sidebar-right-dock",60491),copilotInProgress:k("copilot-in-progress",60492),copilotError:k("copilot-error",60493),copilotSuccess:k("copilot-success",60494),chatSparkle:k("chat-sparkle",60495),searchSparkle:k("search-sparkle",60496),editSparkle:k("edit-sparkle",60497),copilotSnooze:k("copilot-snooze",60498),sendToRemoteAgent:k("send-to-remote-agent",60499),commentDiscussionSparkle:k("comment-discussion-sparkle",60500),chatSparkleWarning:k("chat-sparkle-warning",60501),chatSparkleError:k("chat-sparkle-error",60502),collection:k("collection",60503),newCollection:k("new-collection",60504),thinking:k("thinking",60505),build:k("build",60506),commentDiscussionQuote:k("comment-discussion-quote",60507),cursor:k("cursor",60508),eraser:k("eraser",60509),fileText:k("file-text",60510),gitLens:k("git-lens",60511),quotes:k("quotes",60512),rename:k("rename",60513),runWithDeps:k("run-with-deps",60514),debugConnected:k("debug-connected",60515),strikethrough:k("strikethrough",60516),openInProduct:k("open-in-product",60517),indexZero:k("index-zero",60518),agent:k("agent",60519),editCode:k("edit-code",60520),repoSelected:k("repo-selected",60521),skip:k("skip",60522),mergeInto:k("merge-into",60523),gitBranchChanges:k("git-branch-changes",60524),gitBranchStagedChanges:k("git-branch-staged-changes",60525),gitBranchConflicts:k("git-branch-conflicts",60526),gitBranch:k("git-branch",60527),gitBranchCreate:k("git-branch-create",60527),gitBranchDelete:k("git-branch-delete",60527),searchLarge:k("search-large",60528),terminalGitBash:k("terminal-git-bash",60529)}});var r9e,j,li=w(()=>{CD();Mbe();r9e={dialogError:k("dialog-error","error"),dialogWarning:k("dialog-warning","warning"),dialogInfo:k("dialog-info","info"),dialogClose:k("dialog-close","close"),treeItemExpanded:k("tree-item-expanded","chevron-down"),treeFilterOnTypeOn:k("tree-filter-on-type-on","list-filter"),treeFilterOnTypeOff:k("tree-filter-on-type-off","list-selection"),treeFilterClear:k("tree-filter-clear","close"),treeItemLoading:k("tree-item-loading","loading"),menuSelection:k("menu-selection","check"),menuSubmenu:k("menu-submenu","chevron-right"),menuBarMore:k("menubar-more","more"),scrollbarButtonLeft:k("scrollbar-button-left","triangle-left"),scrollbarButtonRight:k("scrollbar-button-right","triangle-right"),scrollbarButtonUp:k("scrollbar-button-up","triangle-up"),scrollbarButtonDown:k("scrollbar-button-down","triangle-down"),toolBarMore:k("toolbar-more","more"),quickInputBack:k("quick-input-back","arrow-left"),dropDownButton:k("drop-down-button",60084),symbolCustomColor:k("symbol-customcolor",60252),exportIcon:k("export",60332),workspaceUnspecified:k("workspace-unspecified",60355),newLine:k("newline",60394),thumbsDownFilled:k("thumbsdown-filled",60435),thumbsUpFilled:k("thumbsup-filled",60436),gitFetch:k("git-fetch",60445),lightbulbSparkleAutofix:k("lightbulb-sparkle-autofix",60447),debugBreakpointPending:k("debug-breakpoint-pending",60377)},j={...Abe,...r9e}});var CY,Ie,Ui=w(()=>{li();(function(n){function e(t){return!!t&&typeof t=="object"&&typeof t.id=="string"}n.isThemeColor=e})(CY||(CY={}));(function(n){n.iconNameSegment="[A-Za-z0-9]+",n.iconNameExpression="[A-Za-z0-9-]+",n.iconModifierExpression="~[A-Za-z]+",n.iconNameCharacter="[A-Za-z0-9~-]";let e=new RegExp(`^(${n.iconNameExpression})(${n.iconModifierExpression})?$`);function t(m){let p=e.exec(m.id);if(!p)return t(j.error);let[,_,b]=p,v=["codicon","codicon-"+_];return b&&v.push("codicon-modifier-"+b.substring(1)),v}n.asClassNameArray=t;function i(m){return t(m).join(" ")}n.asClassName=i;function o(m){return"."+t(m).join(".")}n.asCSSSelector=o;function r(m){return!!m&&typeof m=="object"&&typeof m.id=="string"&&(typeof m.color>"u"||CY.isThemeColor(m.color))}n.isThemeIcon=r;let s=new RegExp(`^\\$\\((${n.iconNameExpression}(?:${n.iconModifierExpression})?)\\)$`);function a(m){let p=s.exec(m);if(!p)return;let[,_]=p;return{id:_}}n.fromString=a;function l(m){return{id:m}}n.fromId=l;function c(m,p){let _=m.id,b=_.lastIndexOf("~");return b!==-1&&(_=_.substring(0,b)),p&&(_=`${_}~${p}`),{id:_}}n.modify=c;function d(m){let p=m.id.lastIndexOf("~");if(p!==-1)return m.id.substring(p+1)}n.getModifier=d;function h(m,p){return m.id===p.id&&m.color?.id===p.color?.id}n.isEqual=h;function u(m){return m?.id===j.file.id}n.isFile=u;function f(m){return m?.id===j.folder.id}n.isFolder=f})(Ie||(Ie={}))});var Dt,st,Ai=w(()=>{ae();bl();B();_d();Nt();ye();Dt=Re("commandService"),st=new class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new N,this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(n,e){if(!n)throw new Error("invalid command");if(typeof n=="string"){if(!e)throw new Error("invalid command");return this.registerCommand({id:n,handler:e})}if(n.metadata&&Array.isArray(n.metadata.args)){let s=[];for(let l of n.metadata.args)s.push(l.constraint);let a=n.handler;n.handler=function(l,...c){return Gpe(c,s),a(l,...c)}}let{id:t}=n,i=this._commands.get(t);i||(i=new Fn,this._commands.set(t,i));let o=i.unshift(n),r=se(()=>{o(),this._commands.get(t)?.isEmpty()&&this._commands.delete(t)});return this._onDidRegisterCommand.fire(t),r}registerCommandAlias(n,e){return st.registerCommand(n,(t,...i)=>t.get(Dt).executeCommand(e,...i))}getCommand(n){let e=this._commands.get(n);if(!(!e||e.isEmpty()))return ht.first(e)}getCommands(){let n=new Map;for(let e of this._commands.keys()){let t=this.getCommand(e);t&&n.set(e,t)}return n}};st.registerCommand("noop",()=>{})});function xY(...n){switch(n.length){case 1:return g(1693,"Did you mean {0}?",n[0]);case 2:return g(1694,"Did you mean {0} or {1}?",n[0],n[1]);case 3:return g(1695,"Did you mean {0}, {1} or {2}?",n[0],n[1],n[2]);default:return}}var s9e,a9e,lv,Obe=w(()=>{Ae();le();s9e=g(1696,"Did you forget to open or close the quote?"),a9e=g(1697,"Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\/'."),lv=class n{constructor(){this._input="",this._start=0,this._current=0,this._tokens=[],this._errors=[],this.stringRe=/[a-zA-Z0-9_<>\-\./\\:\*\?\+\[\]\^,#@;"%\$\p{L}-]+/uy}static getLexeme(e){switch(e.type){case 0:return"(";case 1:return")";case 2:return"!";case 3:return e.isTripleEq?"===":"==";case 4:return e.isTripleEq?"!==":"!=";case 5:return"<";case 6:return"<=";case 7:return">=";case 8:return">=";case 9:return"=~";case 10:return e.lexeme;case 11:return"true";case 12:return"false";case 13:return"in";case 14:return"not";case 15:return"&&";case 16:return"||";case 17:return e.lexeme;case 18:return e.lexeme;case 19:return e.lexeme;case 20:return"EOF";default:throw bC(`unhandled token type: ${JSON.stringify(e)}; have you forgotten to add a case?`)}}static{this._regexFlags=new Set(["i","g","s","m","y","u"].map(e=>e.charCodeAt(0)))}static{this._keywords=new Map([["not",14],["in",13],["false",12],["true",11]])}reset(e){return this._input=e,this._start=0,this._current=0,this._tokens=[],this._errors=[],this}scan(){for(;!this._isAtEnd();)switch(this._start=this._current,this._advance()){case 40:this._addToken(0);break;case 41:this._addToken(1);break;case 33:if(this._match(61)){let t=this._match(61);this._tokens.push({type:4,offset:this._start,isTripleEq:t})}else this._addToken(2);break;case 39:this._quotedString();break;case 47:this._regex();break;case 61:if(this._match(61)){let t=this._match(61);this._tokens.push({type:3,offset:this._start,isTripleEq:t})}else this._match(126)?this._addToken(9):this._error(xY("==","=~"));break;case 60:this._addToken(this._match(61)?6:5);break;case 62:this._addToken(this._match(61)?8:7);break;case 38:this._match(38)?this._addToken(15):this._error(xY("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(xY("||"));break;case 32:case 13:case 9:case 10:case 160:break;default:this._string()}return this._start=this._current,this._addToken(20),Array.from(this._tokens)}_match(e){return this._isAtEnd()||this._input.charCodeAt(this._current)!==e?!1:(this._current++,!0)}_advance(){return this._input.charCodeAt(this._current++)}_peek(){return this._isAtEnd()?0:this._input.charCodeAt(this._current)}_addToken(e){this._tokens.push({type:e,offset:this._start})}_error(e){let t=this._start,i=this._input.substring(this._start,this._current),o={type:19,offset:this._start,lexeme:i};this._errors.push({offset:t,lexeme:i,additionalInfo:e}),this._tokens.push(o)}_string(){this.stringRe.lastIndex=this._start;let e=this.stringRe.exec(this._input);if(e){this._current=this._start+e[0].length;let t=this._input.substring(this._start,this._current),i=n._keywords.get(t);i?this._addToken(i):this._tokens.push({type:17,lexeme:t,offset:this._start})}}_quotedString(){for(;this._peek()!==39&&!this._isAtEnd();)this._advance();if(this._isAtEnd()){this._error(s9e);return}this._advance(),this._tokens.push({type:18,lexeme:this._input.substring(this._start+1,this._current-1),offset:this._start+1})}_regex(){let e=this._current,t=!1,i=!1;for(;;){if(e>=this._input.length){this._current=e,this._error(a9e);return}let r=this._input.charCodeAt(e);if(t)t=!1;else if(r===47&&!i){e++;break}else r===91?i=!0:r===92?t=!0:r===93&&(i=!1);e++}for(;e=this._input.length}}});function Wbe(n,e){let t=n?n.substituteConstants():void 0,i=e?e.substituteConstants():void 0;return!t&&!i?!0:!t||!i?!1:t.equals(i)}function SD(n,e){return n.cmp(e)}function GP(n,e){if(typeof n=="string"){let t=parseFloat(n);isNaN(t)||(n=t)}return typeof n=="string"||typeof n=="number"?e(n):dc.INSTANCE}function Hbe(n){let e=null;for(let t=0,i=n.length;te?1:0}function $C(n,e,t,i){return nt?1:ei?1:0}function KP(n,e){if(n.type===0||e.type===1)return!0;if(n.type===9)return e.type===9?Fbe(n.expr,e.expr):!1;if(e.type===9){for(let t of e.expr)if(KP(n,t))return!0;return!1}if(n.type===6){if(e.type===6)return Fbe(e.expr,n.expr);for(let t of n.expr)if(KP(t,e))return!0;return!1}return n.equals(e)}function Fbe(n,e){let t=0,i=0;for(;t{ct();He();Obe();ye();le();Sl=new Map;Sl.set("false",!1);Sl.set("true",!0);Sl.set("isMac",qe);Sl.set("isLinux",go);Sl.set("isWindows",Qi);Sl.set("isWeb",Bc);Sl.set("isMacNative",qe&&!Bc);Sl.set("isEdge",IO);Sl.set("isFirefox",i_e);Sl.set("isChrome",jE);Sl.set("isSafari",n_e);l9e=Object.prototype.hasOwnProperty,c9e={regexParsingWithErrorRecovery:!0},d9e=g(1675,"Empty context key expression"),h9e=g(1676,"Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively."),u9e=g(1677,"'in' after 'not'."),Pbe=g(1678,"closing parenthesis ')'"),f9e=g(1679,"Unexpected token"),m9e=g(1680,"Did you forget to put && or || before the token?"),g9e=g(1681,"Unexpected end of expression"),p9e=g(1682,"Did you forget to put a context key?"),SY=class n{static{this._parseError=new Error}constructor(e=c9e){this._config=e,this._scanner=new lv,this._tokens=[],this._current=0,this._parsingErrors=[],this._flagsGYRe=/g|y/g}parse(e){if(e===""){this._parsingErrors.push({message:d9e,offset:0,lexeme:"",additionalInfo:h9e});return}this._tokens=this._scanner.reset(e).scan(),this._current=0,this._parsingErrors=[];try{let t=this._expr();if(!this._isAtEnd()){let i=this._peek(),o=i.type===17?m9e:void 0;throw this._parsingErrors.push({message:f9e,offset:i.offset,lexeme:lv.getLexeme(i),additionalInfo:o}),n._parseError}return t}catch(t){if(t!==n._parseError)throw t;return}}_expr(){return this._or()}_or(){let e=[this._and()];for(;this._matchOne(16);){let t=this._and();e.push(t)}return e.length===1?e[0]:G.or(...e)}_and(){let e=[this._term()];for(;this._matchOne(15);){let t=this._term();e.push(t)}return e.length===1?e[0]:G.and(...e)}_term(){if(this._matchOne(2)){let e=this._peek();switch(e.type){case 11:return this._advance(),dc.INSTANCE;case 12:return this._advance(),$c.INSTANCE;case 0:{this._advance();let t=this._expr();return this._consume(1,Pbe),t?.negate()}case 17:return this._advance(),UC.create(e.lexeme);default:throw this._errExpectedButGot("KEY | true | false | '(' expression ')'",e)}}return this._primary()}_primary(){let e=this._peek();switch(e.type){case 11:return this._advance(),G.true();case 12:return this._advance(),G.false();case 0:{this._advance();let t=this._expr();return this._consume(1,Pbe),t}case 17:{let t=e.lexeme;if(this._advance(),this._matchOne(9)){let o=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),o.type!==10)throw this._errExpectedButGot("REGEX",o);let r=o.lexeme,s=r.lastIndexOf("/"),a=s===r.length-1?void 0:this._removeFlagsGY(r.substring(s+1)),l;try{l=new RegExp(r.substring(1,s),a)}catch{throw this._errExpectedButGot("REGEX",o)}return yD.create(t,l)}switch(o.type){case 10:case 19:{let r=[o.lexeme];this._advance();let s=this._peek(),a=0;for(let u=0;u=0){let c=r.slice(a+1,l),d=r[l+1]==="i"?"i":"";try{s=new RegExp(c,d)}catch{throw this._errExpectedButGot("REGEX",o)}}}if(s===null)throw this._errExpectedButGot("REGEX",o);return yD.create(t,s)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,u9e);let o=this._value();return G.notIn(t,o)}switch(this._peek().type){case 3:{this._advance();let o=this._value();if(this._previous().type===18)return G.equals(t,o);switch(o){case"true":return G.has(t);case"false":return G.not(t);default:return G.equals(t,o)}}case 4:{this._advance();let o=this._value();if(this._previous().type===18)return G.notEquals(t,o);switch(o){case"true":return G.not(t);case"false":return G.has(t);default:return G.notEquals(t,o)}}case 5:return this._advance(),$P.create(t,this._value());case 6:return this._advance(),qP.create(t,this._value());case 7:return this._advance(),zP.create(t,this._value());case 8:return this._advance(),UP.create(t,this._value());case 13:return this._advance(),G.in(t,this._value());default:return G.has(t)}}case 20:throw this._parsingErrors.push({message:g9e,offset:e.offset,lexeme:"",additionalInfo:p9e}),n._parseError;default:throw this._errExpectedButGot(`true | false | KEY 
 	| KEY '=~' REGEX 
-	| KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value`, this._peek());
-        }
-      }
-      _value() {
-        const token = this._peek();
-        switch (token.type) {
-          case 17:
-          case 18:
-            this._advance();
-            return token.lexeme;
-          case 11:
-            this._advance();
-            return "true";
-          case 12:
-            this._advance();
-            return "false";
-          case 13:
-            this._advance();
-            return "in";
-          default:
-            return "";
-        }
-      }
-      _removeFlagsGY(flags) {
-        return flags.replaceAll(this._flagsGYRe, "");
-      }
-      // careful: this can throw if current token is the initial one (ie index = 0)
-      _previous() {
-        return this._tokens[this._current - 1];
-      }
-      _matchOne(token) {
-        if (this._check(token)) {
-          this._advance();
-          return true;
-        }
-        return false;
-      }
-      _advance() {
-        if (!this._isAtEnd()) {
-          this._current++;
-        }
-        return this._previous();
-      }
-      _consume(type, message) {
-        if (this._check(type)) {
-          return this._advance();
-        }
-        throw this._errExpectedButGot(message, this._peek());
-      }
-      _errExpectedButGot(expected, got, additionalInfo) {
-        const message = localize(1683, "Expected: {0}\nReceived: '{1}'.", expected, Scanner.getLexeme(got));
-        const offset = got.offset;
-        const lexeme = Scanner.getLexeme(got);
-        this._parsingErrors.push({ message, offset, lexeme, additionalInfo });
-        return _Parser2._parseError;
-      }
-      _check(type) {
-        return this._peek().type === type;
-      }
-      _peek() {
-        return this._tokens[this._current];
-      }
-      _isAtEnd() {
-        return this._peek().type === 20;
-      }
-    };
-    ContextKeyExpr = class {
-      static false() {
-        return ContextKeyFalseExpr.INSTANCE;
-      }
-      static true() {
-        return ContextKeyTrueExpr.INSTANCE;
-      }
-      static has(key) {
-        return ContextKeyDefinedExpr.create(key);
-      }
-      static equals(key, value) {
-        return ContextKeyEqualsExpr.create(key, value);
-      }
-      static notEquals(key, value) {
-        return ContextKeyNotEqualsExpr.create(key, value);
-      }
-      static regex(key, value) {
-        return ContextKeyRegexExpr.create(key, value);
-      }
-      static in(key, value) {
-        return ContextKeyInExpr.create(key, value);
-      }
-      static notIn(key, value) {
-        return ContextKeyNotInExpr.create(key, value);
-      }
-      static not(key) {
-        return ContextKeyNotExpr.create(key);
-      }
-      static and(...expr) {
-        return ContextKeyAndExpr.create(expr, null, true);
-      }
-      static or(...expr) {
-        return ContextKeyOrExpr.create(expr, null, true);
-      }
-      static {
-        this._parser = new Parser({ regexParsingWithErrorRecovery: false });
-      }
-      static deserialize(serialized) {
-        if (serialized === void 0 || serialized === null) {
-          return void 0;
-        }
-        const expr = this._parser.parse(serialized);
-        return expr;
-      }
-    };
-    ContextKeyFalseExpr = class _ContextKeyFalseExpr {
-      static {
-        this.INSTANCE = new _ContextKeyFalseExpr();
-      }
-      constructor() {
-        this.type = 0;
-      }
-      cmp(other) {
-        return this.type - other.type;
-      }
-      equals(other) {
-        return other.type === this.type;
-      }
-      substituteConstants() {
-        return this;
-      }
-      evaluate(context) {
-        return false;
-      }
-      serialize() {
-        return "false";
-      }
-      keys() {
-        return [];
-      }
-      negate() {
-        return ContextKeyTrueExpr.INSTANCE;
-      }
-    };
-    ContextKeyTrueExpr = class _ContextKeyTrueExpr {
-      static {
-        this.INSTANCE = new _ContextKeyTrueExpr();
-      }
-      constructor() {
-        this.type = 1;
-      }
-      cmp(other) {
-        return this.type - other.type;
-      }
-      equals(other) {
-        return other.type === this.type;
-      }
-      substituteConstants() {
-        return this;
-      }
-      evaluate(context) {
-        return true;
-      }
-      serialize() {
-        return "true";
-      }
-      keys() {
-        return [];
-      }
-      negate() {
-        return ContextKeyFalseExpr.INSTANCE;
-      }
-    };
-    ContextKeyDefinedExpr = class _ContextKeyDefinedExpr {
-      static create(key, negated = null) {
-        const constantValue = CONSTANT_VALUES.get(key);
-        if (typeof constantValue === "boolean") {
-          return constantValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE;
-        }
-        return new _ContextKeyDefinedExpr(key, negated);
-      }
-      constructor(key, negated) {
-        this.key = key;
-        this.negated = negated;
-        this.type = 2;
-      }
-      cmp(other) {
-        if (other.type !== this.type) {
-          return this.type - other.type;
-        }
-        return cmp1(this.key, other.key);
-      }
-      equals(other) {
-        if (other.type === this.type) {
-          return this.key === other.key;
-        }
-        return false;
-      }
-      substituteConstants() {
-        const constantValue = CONSTANT_VALUES.get(this.key);
-        if (typeof constantValue === "boolean") {
-          return constantValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE;
-        }
-        return this;
-      }
-      evaluate(context) {
-        return !!context.getValue(this.key);
-      }
-      serialize() {
-        return this.key;
-      }
-      keys() {
-        return [this.key];
-      }
-      negate() {
-        if (!this.negated) {
-          this.negated = ContextKeyNotExpr.create(this.key, this);
-        }
-        return this.negated;
-      }
-    };
-    ContextKeyEqualsExpr = class _ContextKeyEqualsExpr {
-      static create(key, value, negated = null) {
-        if (typeof value === "boolean") {
-          return value ? ContextKeyDefinedExpr.create(key, negated) : ContextKeyNotExpr.create(key, negated);
-        }
-        const constantValue = CONSTANT_VALUES.get(key);
-        if (typeof constantValue === "boolean") {
-          const trueValue = constantValue ? "true" : "false";
-          return value === trueValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE;
-        }
-        return new _ContextKeyEqualsExpr(key, value, negated);
-      }
-      constructor(key, value, negated) {
-        this.key = key;
-        this.value = value;
-        this.negated = negated;
-        this.type = 4;
-      }
-      cmp(other) {
-        if (other.type !== this.type) {
-          return this.type - other.type;
-        }
-        return cmp2(this.key, this.value, other.key, other.value);
-      }
-      equals(other) {
-        if (other.type === this.type) {
-          return this.key === other.key && this.value === other.value;
-        }
-        return false;
-      }
-      substituteConstants() {
-        const constantValue = CONSTANT_VALUES.get(this.key);
-        if (typeof constantValue === "boolean") {
-          const trueValue = constantValue ? "true" : "false";
-          return this.value === trueValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE;
-        }
-        return this;
-      }
-      evaluate(context) {
-        return context.getValue(this.key) == this.value;
-      }
-      serialize() {
-        return `${this.key} == '${this.value}'`;
-      }
-      keys() {
-        return [this.key];
-      }
-      negate() {
-        if (!this.negated) {
-          this.negated = ContextKeyNotEqualsExpr.create(this.key, this.value, this);
-        }
-        return this.negated;
-      }
-    };
-    ContextKeyInExpr = class _ContextKeyInExpr {
-      static create(key, valueKey) {
-        return new _ContextKeyInExpr(key, valueKey);
-      }
-      constructor(key, valueKey) {
-        this.key = key;
-        this.valueKey = valueKey;
-        this.type = 10;
-        this.negated = null;
-      }
-      cmp(other) {
-        if (other.type !== this.type) {
-          return this.type - other.type;
-        }
-        return cmp2(this.key, this.valueKey, other.key, other.valueKey);
-      }
-      equals(other) {
-        if (other.type === this.type) {
-          return this.key === other.key && this.valueKey === other.valueKey;
-        }
-        return false;
-      }
-      substituteConstants() {
-        return this;
-      }
-      evaluate(context) {
-        const source = context.getValue(this.valueKey);
-        const item = context.getValue(this.key);
-        if (Array.isArray(source)) {
-          return source.includes(item);
-        }
-        if (typeof item === "string" && typeof source === "object" && source !== null) {
-          return hasOwnProperty.call(source, item);
-        }
-        return false;
-      }
-      serialize() {
-        return `${this.key} in '${this.valueKey}'`;
-      }
-      keys() {
-        return [this.key, this.valueKey];
-      }
-      negate() {
-        if (!this.negated) {
-          this.negated = ContextKeyNotInExpr.create(this.key, this.valueKey);
-        }
-        return this.negated;
-      }
-    };
-    ContextKeyNotInExpr = class _ContextKeyNotInExpr {
-      static create(key, valueKey) {
-        return new _ContextKeyNotInExpr(key, valueKey);
-      }
-      constructor(key, valueKey) {
-        this.key = key;
-        this.valueKey = valueKey;
-        this.type = 11;
-        this._negated = ContextKeyInExpr.create(key, valueKey);
-      }
-      cmp(other) {
-        if (other.type !== this.type) {
-          return this.type - other.type;
-        }
-        return this._negated.cmp(other._negated);
-      }
-      equals(other) {
-        if (other.type === this.type) {
-          return this._negated.equals(other._negated);
-        }
-        return false;
-      }
-      substituteConstants() {
-        return this;
-      }
-      evaluate(context) {
-        return !this._negated.evaluate(context);
-      }
-      serialize() {
-        return `${this.key} not in '${this.valueKey}'`;
-      }
-      keys() {
-        return this._negated.keys();
-      }
-      negate() {
-        return this._negated;
-      }
-    };
-    ContextKeyNotEqualsExpr = class _ContextKeyNotEqualsExpr {
-      static create(key, value, negated = null) {
-        if (typeof value === "boolean") {
-          if (value) {
-            return ContextKeyNotExpr.create(key, negated);
-          }
-          return ContextKeyDefinedExpr.create(key, negated);
-        }
-        const constantValue = CONSTANT_VALUES.get(key);
-        if (typeof constantValue === "boolean") {
-          const falseValue = constantValue ? "true" : "false";
-          return value === falseValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE;
-        }
-        return new _ContextKeyNotEqualsExpr(key, value, negated);
-      }
-      constructor(key, value, negated) {
-        this.key = key;
-        this.value = value;
-        this.negated = negated;
-        this.type = 5;
-      }
-      cmp(other) {
-        if (other.type !== this.type) {
-          return this.type - other.type;
-        }
-        return cmp2(this.key, this.value, other.key, other.value);
-      }
-      equals(other) {
-        if (other.type === this.type) {
-          return this.key === other.key && this.value === other.value;
-        }
-        return false;
-      }
-      substituteConstants() {
-        const constantValue = CONSTANT_VALUES.get(this.key);
-        if (typeof constantValue === "boolean") {
-          const falseValue = constantValue ? "true" : "false";
-          return this.value === falseValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE;
-        }
-        return this;
-      }
-      evaluate(context) {
-        return context.getValue(this.key) != this.value;
-      }
-      serialize() {
-        return `${this.key} != '${this.value}'`;
-      }
-      keys() {
-        return [this.key];
-      }
-      negate() {
-        if (!this.negated) {
-          this.negated = ContextKeyEqualsExpr.create(this.key, this.value, this);
-        }
-        return this.negated;
-      }
-    };
-    ContextKeyNotExpr = class _ContextKeyNotExpr {
-      static create(key, negated = null) {
-        const constantValue = CONSTANT_VALUES.get(key);
-        if (typeof constantValue === "boolean") {
-          return constantValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE;
-        }
-        return new _ContextKeyNotExpr(key, negated);
-      }
-      constructor(key, negated) {
-        this.key = key;
-        this.negated = negated;
-        this.type = 3;
-      }
-      cmp(other) {
-        if (other.type !== this.type) {
-          return this.type - other.type;
-        }
-        return cmp1(this.key, other.key);
-      }
-      equals(other) {
-        if (other.type === this.type) {
-          return this.key === other.key;
-        }
-        return false;
-      }
-      substituteConstants() {
-        const constantValue = CONSTANT_VALUES.get(this.key);
-        if (typeof constantValue === "boolean") {
-          return constantValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE;
-        }
-        return this;
-      }
-      evaluate(context) {
-        return !context.getValue(this.key);
-      }
-      serialize() {
-        return `!${this.key}`;
-      }
-      keys() {
-        return [this.key];
-      }
-      negate() {
-        if (!this.negated) {
-          this.negated = ContextKeyDefinedExpr.create(this.key, this);
-        }
-        return this.negated;
-      }
-    };
-    ContextKeyGreaterExpr = class _ContextKeyGreaterExpr {
-      static create(key, _value, negated = null) {
-        return withFloatOrStr(_value, (value) => new _ContextKeyGreaterExpr(key, value, negated));
-      }
-      constructor(key, value, negated) {
-        this.key = key;
-        this.value = value;
-        this.negated = negated;
-        this.type = 12;
-      }
-      cmp(other) {
-        if (other.type !== this.type) {
-          return this.type - other.type;
-        }
-        return cmp2(this.key, this.value, other.key, other.value);
-      }
-      equals(other) {
-        if (other.type === this.type) {
-          return this.key === other.key && this.value === other.value;
-        }
-        return false;
-      }
-      substituteConstants() {
-        return this;
-      }
-      evaluate(context) {
-        if (typeof this.value === "string") {
-          return false;
-        }
-        return parseFloat(context.getValue(this.key)) > this.value;
-      }
-      serialize() {
-        return `${this.key} > ${this.value}`;
-      }
-      keys() {
-        return [this.key];
-      }
-      negate() {
-        if (!this.negated) {
-          this.negated = ContextKeySmallerEqualsExpr.create(this.key, this.value, this);
-        }
-        return this.negated;
-      }
-    };
-    ContextKeyGreaterEqualsExpr = class _ContextKeyGreaterEqualsExpr {
-      static create(key, _value, negated = null) {
-        return withFloatOrStr(_value, (value) => new _ContextKeyGreaterEqualsExpr(key, value, negated));
-      }
-      constructor(key, value, negated) {
-        this.key = key;
-        this.value = value;
-        this.negated = negated;
-        this.type = 13;
-      }
-      cmp(other) {
-        if (other.type !== this.type) {
-          return this.type - other.type;
-        }
-        return cmp2(this.key, this.value, other.key, other.value);
-      }
-      equals(other) {
-        if (other.type === this.type) {
-          return this.key === other.key && this.value === other.value;
-        }
-        return false;
-      }
-      substituteConstants() {
-        return this;
-      }
-      evaluate(context) {
-        if (typeof this.value === "string") {
-          return false;
-        }
-        return parseFloat(context.getValue(this.key)) >= this.value;
-      }
-      serialize() {
-        return `${this.key} >= ${this.value}`;
-      }
-      keys() {
-        return [this.key];
-      }
-      negate() {
-        if (!this.negated) {
-          this.negated = ContextKeySmallerExpr.create(this.key, this.value, this);
-        }
-        return this.negated;
-      }
-    };
-    ContextKeySmallerExpr = class _ContextKeySmallerExpr {
-      static create(key, _value, negated = null) {
-        return withFloatOrStr(_value, (value) => new _ContextKeySmallerExpr(key, value, negated));
-      }
-      constructor(key, value, negated) {
-        this.key = key;
-        this.value = value;
-        this.negated = negated;
-        this.type = 14;
-      }
-      cmp(other) {
-        if (other.type !== this.type) {
-          return this.type - other.type;
-        }
-        return cmp2(this.key, this.value, other.key, other.value);
-      }
-      equals(other) {
-        if (other.type === this.type) {
-          return this.key === other.key && this.value === other.value;
-        }
-        return false;
-      }
-      substituteConstants() {
-        return this;
-      }
-      evaluate(context) {
-        if (typeof this.value === "string") {
-          return false;
-        }
-        return parseFloat(context.getValue(this.key)) < this.value;
-      }
-      serialize() {
-        return `${this.key} < ${this.value}`;
-      }
-      keys() {
-        return [this.key];
-      }
-      negate() {
-        if (!this.negated) {
-          this.negated = ContextKeyGreaterEqualsExpr.create(this.key, this.value, this);
-        }
-        return this.negated;
-      }
-    };
-    ContextKeySmallerEqualsExpr = class _ContextKeySmallerEqualsExpr {
-      static create(key, _value, negated = null) {
-        return withFloatOrStr(_value, (value) => new _ContextKeySmallerEqualsExpr(key, value, negated));
-      }
-      constructor(key, value, negated) {
-        this.key = key;
-        this.value = value;
-        this.negated = negated;
-        this.type = 15;
-      }
-      cmp(other) {
-        if (other.type !== this.type) {
-          return this.type - other.type;
-        }
-        return cmp2(this.key, this.value, other.key, other.value);
-      }
-      equals(other) {
-        if (other.type === this.type) {
-          return this.key === other.key && this.value === other.value;
-        }
-        return false;
-      }
-      substituteConstants() {
-        return this;
-      }
-      evaluate(context) {
-        if (typeof this.value === "string") {
-          return false;
-        }
-        return parseFloat(context.getValue(this.key)) <= this.value;
-      }
-      serialize() {
-        return `${this.key} <= ${this.value}`;
-      }
-      keys() {
-        return [this.key];
-      }
-      negate() {
-        if (!this.negated) {
-          this.negated = ContextKeyGreaterExpr.create(this.key, this.value, this);
-        }
-        return this.negated;
-      }
-    };
-    ContextKeyRegexExpr = class _ContextKeyRegexExpr {
-      static create(key, regexp) {
-        return new _ContextKeyRegexExpr(key, regexp);
-      }
-      constructor(key, regexp) {
-        this.key = key;
-        this.regexp = regexp;
-        this.type = 7;
-        this.negated = null;
-      }
-      cmp(other) {
-        if (other.type !== this.type) {
-          return this.type - other.type;
-        }
-        if (this.key < other.key) {
-          return -1;
-        }
-        if (this.key > other.key) {
-          return 1;
-        }
-        const thisSource = this.regexp ? this.regexp.source : "";
-        const otherSource = other.regexp ? other.regexp.source : "";
-        if (thisSource < otherSource) {
-          return -1;
-        }
-        if (thisSource > otherSource) {
-          return 1;
-        }
-        return 0;
-      }
-      equals(other) {
-        if (other.type === this.type) {
-          const thisSource = this.regexp ? this.regexp.source : "";
-          const otherSource = other.regexp ? other.regexp.source : "";
-          return this.key === other.key && thisSource === otherSource;
-        }
-        return false;
-      }
-      substituteConstants() {
-        return this;
-      }
-      evaluate(context) {
-        const value = context.getValue(this.key);
-        return this.regexp ? this.regexp.test(value) : false;
-      }
-      serialize() {
-        const value = this.regexp ? `/${this.regexp.source}/${this.regexp.flags}` : "/invalid/";
-        return `${this.key} =~ ${value}`;
-      }
-      keys() {
-        return [this.key];
-      }
-      negate() {
-        if (!this.negated) {
-          this.negated = ContextKeyNotRegexExpr.create(this);
-        }
-        return this.negated;
-      }
-    };
-    ContextKeyNotRegexExpr = class _ContextKeyNotRegexExpr {
-      static create(actual) {
-        return new _ContextKeyNotRegexExpr(actual);
-      }
-      constructor(_actual) {
-        this._actual = _actual;
-        this.type = 8;
-      }
-      cmp(other) {
-        if (other.type !== this.type) {
-          return this.type - other.type;
-        }
-        return this._actual.cmp(other._actual);
-      }
-      equals(other) {
-        if (other.type === this.type) {
-          return this._actual.equals(other._actual);
-        }
-        return false;
-      }
-      substituteConstants() {
-        return this;
-      }
-      evaluate(context) {
-        return !this._actual.evaluate(context);
-      }
-      serialize() {
-        return `!(${this._actual.serialize()})`;
-      }
-      keys() {
-        return this._actual.keys();
-      }
-      negate() {
-        return this._actual;
-      }
-    };
-    ContextKeyAndExpr = class _ContextKeyAndExpr {
-      static create(_expr, negated, extraRedundantCheck) {
-        return _ContextKeyAndExpr._normalizeArr(_expr, negated, extraRedundantCheck);
-      }
-      constructor(expr, negated) {
-        this.expr = expr;
-        this.negated = negated;
-        this.type = 6;
-      }
-      cmp(other) {
-        if (other.type !== this.type) {
-          return this.type - other.type;
-        }
-        if (this.expr.length < other.expr.length) {
-          return -1;
-        }
-        if (this.expr.length > other.expr.length) {
-          return 1;
-        }
-        for (let i2 = 0, len = this.expr.length; i2 < len; i2++) {
-          const r = cmp(this.expr[i2], other.expr[i2]);
-          if (r !== 0) {
-            return r;
-          }
-        }
-        return 0;
-      }
-      equals(other) {
-        if (other.type === this.type) {
-          if (this.expr.length !== other.expr.length) {
-            return false;
-          }
-          for (let i2 = 0, len = this.expr.length; i2 < len; i2++) {
-            if (!this.expr[i2].equals(other.expr[i2])) {
-              return false;
-            }
-          }
-          return true;
-        }
-        return false;
-      }
-      substituteConstants() {
-        const exprArr = eliminateConstantsInArray(this.expr);
-        if (exprArr === this.expr) {
-          return this;
-        }
-        return _ContextKeyAndExpr.create(exprArr, this.negated, false);
-      }
-      evaluate(context) {
-        for (let i2 = 0, len = this.expr.length; i2 < len; i2++) {
-          if (!this.expr[i2].evaluate(context)) {
-            return false;
-          }
-        }
-        return true;
-      }
-      static _normalizeArr(arr, negated, extraRedundantCheck) {
-        const expr = [];
-        let hasTrue = false;
-        for (const e of arr) {
-          if (!e) {
-            continue;
-          }
-          if (e.type === 1) {
-            hasTrue = true;
-            continue;
-          }
-          if (e.type === 0) {
-            return ContextKeyFalseExpr.INSTANCE;
-          }
-          if (e.type === 6) {
-            expr.push(...e.expr);
-            continue;
-          }
-          expr.push(e);
-        }
-        if (expr.length === 0 && hasTrue) {
-          return ContextKeyTrueExpr.INSTANCE;
-        }
-        if (expr.length === 0) {
-          return void 0;
-        }
-        if (expr.length === 1) {
-          return expr[0];
-        }
-        expr.sort(cmp);
-        for (let i2 = 1; i2 < expr.length; i2++) {
-          if (expr[i2 - 1].equals(expr[i2])) {
-            expr.splice(i2, 1);
-            i2--;
-          }
-        }
-        if (expr.length === 1) {
-          return expr[0];
-        }
-        while (expr.length > 1) {
-          const lastElement = expr[expr.length - 1];
-          if (lastElement.type !== 9) {
-            break;
-          }
-          expr.pop();
-          const secondToLastElement = expr.pop();
-          const isFinished = expr.length === 0;
-          const resultElement = ContextKeyOrExpr.create(lastElement.expr.map((el) => _ContextKeyAndExpr.create([el, secondToLastElement], null, extraRedundantCheck)), null, isFinished);
-          if (resultElement) {
-            expr.push(resultElement);
-            expr.sort(cmp);
-          }
-        }
-        if (expr.length === 1) {
-          return expr[0];
-        }
-        if (extraRedundantCheck) {
-          for (let i2 = 0; i2 < expr.length; i2++) {
-            for (let j = i2 + 1; j < expr.length; j++) {
-              if (expr[i2].negate().equals(expr[j])) {
-                return ContextKeyFalseExpr.INSTANCE;
-              }
-            }
-          }
-          if (expr.length === 1) {
-            return expr[0];
-          }
-        }
-        return new _ContextKeyAndExpr(expr, negated);
-      }
-      serialize() {
-        return this.expr.map((e) => e.serialize()).join(" && ");
-      }
-      keys() {
-        const result = [];
-        for (const expr of this.expr) {
-          result.push(...expr.keys());
-        }
-        return result;
-      }
-      negate() {
-        if (!this.negated) {
-          const result = [];
-          for (const expr of this.expr) {
-            result.push(expr.negate());
-          }
-          this.negated = ContextKeyOrExpr.create(result, this, true);
-        }
-        return this.negated;
-      }
-    };
-    ContextKeyOrExpr = class _ContextKeyOrExpr {
-      static create(_expr, negated, extraRedundantCheck) {
-        return _ContextKeyOrExpr._normalizeArr(_expr, negated, extraRedundantCheck);
-      }
-      constructor(expr, negated) {
-        this.expr = expr;
-        this.negated = negated;
-        this.type = 9;
-      }
-      cmp(other) {
-        if (other.type !== this.type) {
-          return this.type - other.type;
-        }
-        if (this.expr.length < other.expr.length) {
-          return -1;
-        }
-        if (this.expr.length > other.expr.length) {
-          return 1;
-        }
-        for (let i2 = 0, len = this.expr.length; i2 < len; i2++) {
-          const r = cmp(this.expr[i2], other.expr[i2]);
-          if (r !== 0) {
-            return r;
-          }
-        }
-        return 0;
-      }
-      equals(other) {
-        if (other.type === this.type) {
-          if (this.expr.length !== other.expr.length) {
-            return false;
-          }
-          for (let i2 = 0, len = this.expr.length; i2 < len; i2++) {
-            if (!this.expr[i2].equals(other.expr[i2])) {
-              return false;
-            }
-          }
-          return true;
-        }
-        return false;
-      }
-      substituteConstants() {
-        const exprArr = eliminateConstantsInArray(this.expr);
-        if (exprArr === this.expr) {
-          return this;
-        }
-        return _ContextKeyOrExpr.create(exprArr, this.negated, false);
-      }
-      evaluate(context) {
-        for (let i2 = 0, len = this.expr.length; i2 < len; i2++) {
-          if (this.expr[i2].evaluate(context)) {
-            return true;
-          }
-        }
-        return false;
-      }
-      static _normalizeArr(arr, negated, extraRedundantCheck) {
-        let expr = [];
-        let hasFalse = false;
-        if (arr) {
-          for (let i2 = 0, len = arr.length; i2 < len; i2++) {
-            const e = arr[i2];
-            if (!e) {
-              continue;
-            }
-            if (e.type === 0) {
-              hasFalse = true;
-              continue;
-            }
-            if (e.type === 1) {
-              return ContextKeyTrueExpr.INSTANCE;
-            }
-            if (e.type === 9) {
-              expr = expr.concat(e.expr);
-              continue;
-            }
-            expr.push(e);
-          }
-          if (expr.length === 0 && hasFalse) {
-            return ContextKeyFalseExpr.INSTANCE;
-          }
-          expr.sort(cmp);
-        }
-        if (expr.length === 0) {
-          return void 0;
-        }
-        if (expr.length === 1) {
-          return expr[0];
-        }
-        for (let i2 = 1; i2 < expr.length; i2++) {
-          if (expr[i2 - 1].equals(expr[i2])) {
-            expr.splice(i2, 1);
-            i2--;
-          }
-        }
-        if (expr.length === 1) {
-          return expr[0];
-        }
-        if (extraRedundantCheck) {
-          for (let i2 = 0; i2 < expr.length; i2++) {
-            for (let j = i2 + 1; j < expr.length; j++) {
-              if (expr[i2].negate().equals(expr[j])) {
-                return ContextKeyTrueExpr.INSTANCE;
-              }
-            }
-          }
-          if (expr.length === 1) {
-            return expr[0];
-          }
-        }
-        return new _ContextKeyOrExpr(expr, negated);
-      }
-      serialize() {
-        return this.expr.map((e) => e.serialize()).join(" || ");
-      }
-      keys() {
-        const result = [];
-        for (const expr of this.expr) {
-          result.push(...expr.keys());
-        }
-        return result;
-      }
-      negate() {
-        if (!this.negated) {
-          const result = [];
-          for (const expr of this.expr) {
-            result.push(expr.negate());
-          }
-          while (result.length > 1) {
-            const LEFT = result.shift();
-            const RIGHT = result.shift();
-            const all = [];
-            for (const left of getTerminals(LEFT)) {
-              for (const right of getTerminals(RIGHT)) {
-                all.push(ContextKeyAndExpr.create([left, right], null, false));
-              }
-            }
-            result.unshift(_ContextKeyOrExpr.create(all, null, false));
-          }
-          this.negated = _ContextKeyOrExpr.create(result, this, true);
-        }
-        return this.negated;
-      }
-    };
-    RawContextKey = class _RawContextKey extends ContextKeyDefinedExpr {
-      static {
-        this._info = [];
-      }
-      static all() {
-        return _RawContextKey._info.values();
-      }
-      constructor(key, defaultValue, metaOrHide) {
-        super(key, null);
-        this._defaultValue = defaultValue;
-        if (typeof metaOrHide === "object") {
-          _RawContextKey._info.push({ ...metaOrHide, key });
-        } else if (metaOrHide !== true) {
-          _RawContextKey._info.push({ key, description: metaOrHide, type: defaultValue !== null && defaultValue !== void 0 ? typeof defaultValue : void 0 });
-        }
-      }
-      bindTo(target) {
-        return target.createKey(this.key, this._defaultValue);
-      }
-      getValue(target) {
-        return target.getContextKeyValue(this.key);
-      }
-      toNegated() {
-        return this.negate();
-      }
-      isEqualTo(value) {
-        return ContextKeyEqualsExpr.create(this.key, value);
-      }
-    };
-    IContextKeyService = createDecorator("contextKeyService");
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/platform/registry/common/platform.js
-var RegistryImpl, Registry;
-var init_platform2 = __esm({
-  "../node_modules/monaco-editor/esm/vs/platform/registry/common/platform.js"() {
-    init_assert();
-    init_types();
-    RegistryImpl = class {
-      constructor() {
-        this.data = /* @__PURE__ */ new Map();
-      }
-      add(id, data) {
-        ok(isString(id));
-        ok(isObject(data));
-        ok(!this.data.has(id), "There is already an extension with this id");
-        this.data.set(id, data);
-      }
-      as(id) {
-        return this.data.get(id) || null;
-      }
-      dispose() {
-        this.data.forEach((value) => {
-          if (isFunction(value.dispose)) {
-            value.dispose();
-          }
-        });
-        this.data.clear();
-      }
-    };
-    Registry = new RegistryImpl();
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/platform/keybinding/common/keybindingsRegistry.js
-function sorter(a, b) {
-  if (a.weight1 !== b.weight1) {
-    return a.weight1 - b.weight1;
-  }
-  if (a.command && b.command) {
-    if (a.command < b.command) {
-      return -1;
-    }
-    if (a.command > b.command) {
-      return 1;
-    }
-  }
-  return a.weight2 - b.weight2;
-}
-var KeybindingsRegistryImpl, KeybindingsRegistry, Extensions;
-var init_keybindingsRegistry = __esm({
-  "../node_modules/monaco-editor/esm/vs/platform/keybinding/common/keybindingsRegistry.js"() {
-    init_keybindings();
-    init_platform();
-    init_commands();
-    init_platform2();
-    init_lifecycle();
-    init_linkedList();
-    KeybindingsRegistryImpl = class _KeybindingsRegistryImpl {
-      constructor() {
-        this._coreKeybindings = new LinkedList();
-        this._extensionKeybindings = [];
-        this._cachedMergedKeybindings = null;
-      }
-      /**
-       * Take current platform into account and reduce to primary & secondary.
-       */
-      static bindToCurrentPlatform(kb) {
-        if (OS === 1) {
-          if (kb && kb.win) {
-            return kb.win;
-          }
-        } else if (OS === 2) {
-          if (kb && kb.mac) {
-            return kb.mac;
-          }
-        } else {
-          if (kb && kb.linux) {
-            return kb.linux;
-          }
-        }
-        return kb;
-      }
-      registerKeybindingRule(rule) {
-        const actualKb = _KeybindingsRegistryImpl.bindToCurrentPlatform(rule);
-        const result = new DisposableStore();
-        if (actualKb && actualKb.primary) {
-          const kk = decodeKeybinding(actualKb.primary, OS);
-          if (kk) {
-            result.add(this._registerDefaultKeybinding(kk, rule.id, rule.args, rule.weight, 0, rule.when));
-          }
-        }
-        if (actualKb && Array.isArray(actualKb.secondary)) {
-          for (let i2 = 0, len = actualKb.secondary.length; i2 < len; i2++) {
-            const k = actualKb.secondary[i2];
-            const kk = decodeKeybinding(k, OS);
-            if (kk) {
-              result.add(this._registerDefaultKeybinding(kk, rule.id, rule.args, rule.weight, -i2 - 1, rule.when));
-            }
-          }
-        }
-        return result;
-      }
-      registerCommandAndKeybindingRule(desc) {
-        return combinedDisposable(this.registerKeybindingRule(desc), CommandsRegistry.registerCommand(desc));
-      }
-      _registerDefaultKeybinding(keybinding, commandId, commandArgs, weight1, weight22, when) {
-        const remove = this._coreKeybindings.push({
-          keybinding,
-          command: commandId,
-          commandArgs,
-          when,
-          weight1,
-          weight2: weight22,
-          extensionId: null,
-          isBuiltinExtension: false
-        });
-        this._cachedMergedKeybindings = null;
-        return toDisposable(() => {
-          remove();
-          this._cachedMergedKeybindings = null;
-        });
-      }
-      getDefaultKeybindings() {
-        if (!this._cachedMergedKeybindings) {
-          this._cachedMergedKeybindings = Array.from(this._coreKeybindings).concat(this._extensionKeybindings);
-          this._cachedMergedKeybindings.sort(sorter);
-        }
-        return this._cachedMergedKeybindings.slice(0);
-      }
-    };
-    KeybindingsRegistry = new KeybindingsRegistryImpl();
-    Extensions = {
-      EditorModes: "platform.keybindingsRegistry"
-    };
-    Registry.add(Extensions.EditorModes, KeybindingsRegistry);
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/platform/actions/common/actions.js
-function isIMenuItem(item) {
-  return item.command !== void 0;
-}
-function isISubmenuItem(item) {
-  return item.submenu !== void 0;
-}
-function registerAction2(ctor) {
-  const disposables = [];
-  const action = new ctor();
-  const { f1, menu, keybinding, ...command } = action.desc;
-  if (CommandsRegistry.getCommand(command.id)) {
-    throw new Error(`Cannot register two commands with the same id: ${command.id}`);
-  }
-  disposables.push(CommandsRegistry.registerCommand({
-    id: command.id,
-    handler: (accessor, ...args) => action.run(accessor, ...args),
-    metadata: command.metadata ?? { description: action.desc.title }
-  }));
-  if (Array.isArray(menu)) {
-    for (const item of menu) {
-      disposables.push(MenuRegistry.appendMenuItem(item.id, { command: { ...command, precondition: item.precondition === null ? void 0 : command.precondition }, ...item }));
-    }
-  } else if (menu) {
-    disposables.push(MenuRegistry.appendMenuItem(menu.id, { command: { ...command, precondition: menu.precondition === null ? void 0 : command.precondition }, ...menu }));
-  }
-  if (f1) {
-    disposables.push(MenuRegistry.appendMenuItem(MenuId.CommandPalette, { command, when: command.precondition }));
-    disposables.push(MenuRegistry.addCommand(command));
-  }
-  if (Array.isArray(keybinding)) {
-    for (const item of keybinding) {
-      disposables.push(KeybindingsRegistry.registerKeybindingRule({
-        ...item,
-        id: command.id,
-        when: command.precondition ? ContextKeyExpr.and(command.precondition, item.when) : item.when
-      }));
-    }
-  } else if (keybinding) {
-    disposables.push(KeybindingsRegistry.registerKeybindingRule({
-      ...keybinding,
-      id: command.id,
-      when: command.precondition ? ContextKeyExpr.and(command.precondition, keybinding.when) : keybinding.when
-    }));
-  }
-  return {
-    dispose() {
-      dispose(disposables);
-    }
-  };
-}
-var __decorate, __param, MenuItemAction_1, MenuId, IMenuService, MenuRegistryChangeEvent, MenuRegistry, SubmenuItemAction, MenuItemAction, Action2;
-var init_actions2 = __esm({
-  "../node_modules/monaco-editor/esm/vs/platform/actions/common/actions.js"() {
-    init_actions();
-    init_event();
-    init_lifecycle();
-    init_linkedList();
-    init_themables();
-    init_commands();
-    init_contextkey();
-    init_instantiation();
-    init_keybindingsRegistry();
-    __decorate = function(decorators, target, key, desc) {
-      var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-      if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-      else for (var i2 = decorators.length - 1; i2 >= 0; i2--) if (d = decorators[i2]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-      return c > 3 && r && Object.defineProperty(target, key, r), r;
-    };
-    __param = function(paramIndex, decorator) {
-      return function(target, key) {
-        decorator(target, key, paramIndex);
-      };
-    };
-    MenuId = class _MenuId {
-      static {
-        this._instances = /* @__PURE__ */ new Map();
-      }
-      static {
-        this.CommandPalette = new _MenuId("CommandPalette");
-      }
-      static {
-        this.DebugBreakpointsContext = new _MenuId("DebugBreakpointsContext");
-      }
-      static {
-        this.DebugCallStackContext = new _MenuId("DebugCallStackContext");
-      }
-      static {
-        this.DebugConsoleContext = new _MenuId("DebugConsoleContext");
-      }
-      static {
-        this.DebugVariablesContext = new _MenuId("DebugVariablesContext");
-      }
-      static {
-        this.NotebookVariablesContext = new _MenuId("NotebookVariablesContext");
-      }
-      static {
-        this.DebugHoverContext = new _MenuId("DebugHoverContext");
-      }
-      static {
-        this.DebugWatchContext = new _MenuId("DebugWatchContext");
-      }
-      static {
-        this.DebugToolBar = new _MenuId("DebugToolBar");
-      }
-      static {
-        this.DebugToolBarStop = new _MenuId("DebugToolBarStop");
-      }
-      static {
-        this.DebugDisassemblyContext = new _MenuId("DebugDisassemblyContext");
-      }
-      static {
-        this.DebugCallStackToolbar = new _MenuId("DebugCallStackToolbar");
-      }
-      static {
-        this.DebugCreateConfiguration = new _MenuId("DebugCreateConfiguration");
-      }
-      static {
-        this.EditorContext = new _MenuId("EditorContext");
-      }
-      static {
-        this.SimpleEditorContext = new _MenuId("SimpleEditorContext");
-      }
-      static {
-        this.EditorContent = new _MenuId("EditorContent");
-      }
-      static {
-        this.EditorLineNumberContext = new _MenuId("EditorLineNumberContext");
-      }
-      static {
-        this.EditorContextCopy = new _MenuId("EditorContextCopy");
-      }
-      static {
-        this.EditorContextPeek = new _MenuId("EditorContextPeek");
-      }
-      static {
-        this.EditorContextShare = new _MenuId("EditorContextShare");
-      }
-      static {
-        this.EditorTitle = new _MenuId("EditorTitle");
-      }
-      static {
-        this.CompactWindowEditorTitle = new _MenuId("CompactWindowEditorTitle");
-      }
-      static {
-        this.EditorTitleRun = new _MenuId("EditorTitleRun");
-      }
-      static {
-        this.EditorTitleContext = new _MenuId("EditorTitleContext");
-      }
-      static {
-        this.EditorTitleContextShare = new _MenuId("EditorTitleContextShare");
-      }
-      static {
-        this.EmptyEditorGroup = new _MenuId("EmptyEditorGroup");
-      }
-      static {
-        this.EmptyEditorGroupContext = new _MenuId("EmptyEditorGroupContext");
-      }
-      static {
-        this.EditorTabsBarContext = new _MenuId("EditorTabsBarContext");
-      }
-      static {
-        this.EditorTabsBarShowTabsSubmenu = new _MenuId("EditorTabsBarShowTabsSubmenu");
-      }
-      static {
-        this.EditorTabsBarShowTabsZenModeSubmenu = new _MenuId("EditorTabsBarShowTabsZenModeSubmenu");
-      }
-      static {
-        this.EditorActionsPositionSubmenu = new _MenuId("EditorActionsPositionSubmenu");
-      }
-      static {
-        this.EditorSplitMoveSubmenu = new _MenuId("EditorSplitMoveSubmenu");
-      }
-      static {
-        this.ExplorerContext = new _MenuId("ExplorerContext");
-      }
-      static {
-        this.ExplorerContextShare = new _MenuId("ExplorerContextShare");
-      }
-      static {
-        this.ExtensionContext = new _MenuId("ExtensionContext");
-      }
-      static {
-        this.ExtensionEditorContextMenu = new _MenuId("ExtensionEditorContextMenu");
-      }
-      static {
-        this.GlobalActivity = new _MenuId("GlobalActivity");
-      }
-      static {
-        this.CommandCenter = new _MenuId("CommandCenter");
-      }
-      static {
-        this.CommandCenterCenter = new _MenuId("CommandCenterCenter");
-      }
-      static {
-        this.LayoutControlMenuSubmenu = new _MenuId("LayoutControlMenuSubmenu");
-      }
-      static {
-        this.LayoutControlMenu = new _MenuId("LayoutControlMenu");
-      }
-      static {
-        this.MenubarMainMenu = new _MenuId("MenubarMainMenu");
-      }
-      static {
-        this.MenubarAppearanceMenu = new _MenuId("MenubarAppearanceMenu");
-      }
-      static {
-        this.MenubarDebugMenu = new _MenuId("MenubarDebugMenu");
-      }
-      static {
-        this.MenubarEditMenu = new _MenuId("MenubarEditMenu");
-      }
-      static {
-        this.MenubarCopy = new _MenuId("MenubarCopy");
-      }
-      static {
-        this.MenubarFileMenu = new _MenuId("MenubarFileMenu");
-      }
-      static {
-        this.MenubarGoMenu = new _MenuId("MenubarGoMenu");
-      }
-      static {
-        this.MenubarHelpMenu = new _MenuId("MenubarHelpMenu");
-      }
-      static {
-        this.MenubarLayoutMenu = new _MenuId("MenubarLayoutMenu");
-      }
-      static {
-        this.MenubarNewBreakpointMenu = new _MenuId("MenubarNewBreakpointMenu");
-      }
-      static {
-        this.PanelAlignmentMenu = new _MenuId("PanelAlignmentMenu");
-      }
-      static {
-        this.PanelPositionMenu = new _MenuId("PanelPositionMenu");
-      }
-      static {
-        this.ActivityBarPositionMenu = new _MenuId("ActivityBarPositionMenu");
-      }
-      static {
-        this.MenubarPreferencesMenu = new _MenuId("MenubarPreferencesMenu");
-      }
-      static {
-        this.MenubarRecentMenu = new _MenuId("MenubarRecentMenu");
-      }
-      static {
-        this.MenubarSelectionMenu = new _MenuId("MenubarSelectionMenu");
-      }
-      static {
-        this.MenubarShare = new _MenuId("MenubarShare");
-      }
-      static {
-        this.MenubarSwitchEditorMenu = new _MenuId("MenubarSwitchEditorMenu");
-      }
-      static {
-        this.MenubarSwitchGroupMenu = new _MenuId("MenubarSwitchGroupMenu");
-      }
-      static {
-        this.MenubarTerminalMenu = new _MenuId("MenubarTerminalMenu");
-      }
-      static {
-        this.MenubarTerminalSuggestStatusMenu = new _MenuId("MenubarTerminalSuggestStatusMenu");
-      }
-      static {
-        this.MenubarViewMenu = new _MenuId("MenubarViewMenu");
-      }
-      static {
-        this.MenubarHomeMenu = new _MenuId("MenubarHomeMenu");
-      }
-      static {
-        this.OpenEditorsContext = new _MenuId("OpenEditorsContext");
-      }
-      static {
-        this.OpenEditorsContextShare = new _MenuId("OpenEditorsContextShare");
-      }
-      static {
-        this.ProblemsPanelContext = new _MenuId("ProblemsPanelContext");
-      }
-      static {
-        this.SCMInputBox = new _MenuId("SCMInputBox");
-      }
-      static {
-        this.SCMChangeContext = new _MenuId("SCMChangeContext");
-      }
-      static {
-        this.SCMResourceContext = new _MenuId("SCMResourceContext");
-      }
-      static {
-        this.SCMResourceContextShare = new _MenuId("SCMResourceContextShare");
-      }
-      static {
-        this.SCMResourceFolderContext = new _MenuId("SCMResourceFolderContext");
-      }
-      static {
-        this.SCMResourceGroupContext = new _MenuId("SCMResourceGroupContext");
-      }
-      static {
-        this.SCMSourceControl = new _MenuId("SCMSourceControl");
-      }
-      static {
-        this.SCMSourceControlInline = new _MenuId("SCMSourceControlInline");
-      }
-      static {
-        this.SCMSourceControlTitle = new _MenuId("SCMSourceControlTitle");
-      }
-      static {
-        this.SCMHistoryTitle = new _MenuId("SCMHistoryTitle");
-      }
-      static {
-        this.SCMHistoryItemContext = new _MenuId("SCMHistoryItemContext");
-      }
-      static {
-        this.SCMHistoryItemChangeContext = new _MenuId("SCMHistoryItemChangeContext");
-      }
-      static {
-        this.SCMHistoryItemRefContext = new _MenuId("SCMHistoryItemRefContext");
-      }
-      static {
-        this.SCMArtifactGroupContext = new _MenuId("SCMArtifactGroupContext");
-      }
-      static {
-        this.SCMArtifactContext = new _MenuId("SCMArtifactContext");
-      }
-      static {
-        this.SCMQuickDiffDecorations = new _MenuId("SCMQuickDiffDecorations");
-      }
-      static {
-        this.SCMTitle = new _MenuId("SCMTitle");
-      }
-      static {
-        this.SearchContext = new _MenuId("SearchContext");
-      }
-      static {
-        this.SearchActionMenu = new _MenuId("SearchActionContext");
-      }
-      static {
-        this.StatusBarWindowIndicatorMenu = new _MenuId("StatusBarWindowIndicatorMenu");
-      }
-      static {
-        this.StatusBarRemoteIndicatorMenu = new _MenuId("StatusBarRemoteIndicatorMenu");
-      }
-      static {
-        this.StickyScrollContext = new _MenuId("StickyScrollContext");
-      }
-      static {
-        this.TestItem = new _MenuId("TestItem");
-      }
-      static {
-        this.TestItemGutter = new _MenuId("TestItemGutter");
-      }
-      static {
-        this.TestProfilesContext = new _MenuId("TestProfilesContext");
-      }
-      static {
-        this.TestMessageContext = new _MenuId("TestMessageContext");
-      }
-      static {
-        this.TestMessageContent = new _MenuId("TestMessageContent");
-      }
-      static {
-        this.TestPeekElement = new _MenuId("TestPeekElement");
-      }
-      static {
-        this.TestPeekTitle = new _MenuId("TestPeekTitle");
-      }
-      static {
-        this.TestCallStack = new _MenuId("TestCallStack");
-      }
-      static {
-        this.TestCoverageFilterItem = new _MenuId("TestCoverageFilterItem");
-      }
-      static {
-        this.TouchBarContext = new _MenuId("TouchBarContext");
-      }
-      static {
-        this.TitleBar = new _MenuId("TitleBar");
-      }
-      static {
-        this.TitleBarContext = new _MenuId("TitleBarContext");
-      }
-      static {
-        this.TitleBarTitleContext = new _MenuId("TitleBarTitleContext");
-      }
-      static {
-        this.TunnelContext = new _MenuId("TunnelContext");
-      }
-      static {
-        this.TunnelPrivacy = new _MenuId("TunnelPrivacy");
-      }
-      static {
-        this.TunnelProtocol = new _MenuId("TunnelProtocol");
-      }
-      static {
-        this.TunnelPortInline = new _MenuId("TunnelInline");
-      }
-      static {
-        this.TunnelTitle = new _MenuId("TunnelTitle");
-      }
-      static {
-        this.TunnelLocalAddressInline = new _MenuId("TunnelLocalAddressInline");
-      }
-      static {
-        this.TunnelOriginInline = new _MenuId("TunnelOriginInline");
-      }
-      static {
-        this.ViewItemContext = new _MenuId("ViewItemContext");
-      }
-      static {
-        this.ViewContainerTitle = new _MenuId("ViewContainerTitle");
-      }
-      static {
-        this.ViewContainerTitleContext = new _MenuId("ViewContainerTitleContext");
-      }
-      static {
-        this.ViewTitle = new _MenuId("ViewTitle");
-      }
-      static {
-        this.ViewTitleContext = new _MenuId("ViewTitleContext");
-      }
-      static {
-        this.CommentEditorActions = new _MenuId("CommentEditorActions");
-      }
-      static {
-        this.CommentThreadTitle = new _MenuId("CommentThreadTitle");
-      }
-      static {
-        this.CommentThreadActions = new _MenuId("CommentThreadActions");
-      }
-      static {
-        this.CommentThreadAdditionalActions = new _MenuId("CommentThreadAdditionalActions");
-      }
-      static {
-        this.CommentThreadTitleContext = new _MenuId("CommentThreadTitleContext");
-      }
-      static {
-        this.CommentThreadCommentContext = new _MenuId("CommentThreadCommentContext");
-      }
-      static {
-        this.CommentTitle = new _MenuId("CommentTitle");
-      }
-      static {
-        this.CommentActions = new _MenuId("CommentActions");
-      }
-      static {
-        this.CommentsViewThreadActions = new _MenuId("CommentsViewThreadActions");
-      }
-      static {
-        this.InteractiveToolbar = new _MenuId("InteractiveToolbar");
-      }
-      static {
-        this.InteractiveCellTitle = new _MenuId("InteractiveCellTitle");
-      }
-      static {
-        this.InteractiveCellDelete = new _MenuId("InteractiveCellDelete");
-      }
-      static {
-        this.InteractiveCellExecute = new _MenuId("InteractiveCellExecute");
-      }
-      static {
-        this.InteractiveInputExecute = new _MenuId("InteractiveInputExecute");
-      }
-      static {
-        this.InteractiveInputConfig = new _MenuId("InteractiveInputConfig");
-      }
-      static {
-        this.ReplInputExecute = new _MenuId("ReplInputExecute");
-      }
-      static {
-        this.IssueReporter = new _MenuId("IssueReporter");
-      }
-      static {
-        this.NotebookToolbar = new _MenuId("NotebookToolbar");
-      }
-      static {
-        this.NotebookToolbarContext = new _MenuId("NotebookToolbarContext");
-      }
-      static {
-        this.NotebookStickyScrollContext = new _MenuId("NotebookStickyScrollContext");
-      }
-      static {
-        this.NotebookCellTitle = new _MenuId("NotebookCellTitle");
-      }
-      static {
-        this.NotebookCellDelete = new _MenuId("NotebookCellDelete");
-      }
-      static {
-        this.NotebookCellInsert = new _MenuId("NotebookCellInsert");
-      }
-      static {
-        this.NotebookCellBetween = new _MenuId("NotebookCellBetween");
-      }
-      static {
-        this.NotebookCellListTop = new _MenuId("NotebookCellTop");
-      }
-      static {
-        this.NotebookCellExecute = new _MenuId("NotebookCellExecute");
-      }
-      static {
-        this.NotebookCellExecuteGoTo = new _MenuId("NotebookCellExecuteGoTo");
-      }
-      static {
-        this.NotebookCellExecutePrimary = new _MenuId("NotebookCellExecutePrimary");
-      }
-      static {
-        this.NotebookDiffCellInputTitle = new _MenuId("NotebookDiffCellInputTitle");
-      }
-      static {
-        this.NotebookDiffDocumentMetadata = new _MenuId("NotebookDiffDocumentMetadata");
-      }
-      static {
-        this.NotebookDiffCellMetadataTitle = new _MenuId("NotebookDiffCellMetadataTitle");
-      }
-      static {
-        this.NotebookDiffCellOutputsTitle = new _MenuId("NotebookDiffCellOutputsTitle");
-      }
-      static {
-        this.NotebookOutputToolbar = new _MenuId("NotebookOutputToolbar");
-      }
-      static {
-        this.NotebookOutlineFilter = new _MenuId("NotebookOutlineFilter");
-      }
-      static {
-        this.NotebookOutlineActionMenu = new _MenuId("NotebookOutlineActionMenu");
-      }
-      static {
-        this.NotebookEditorLayoutConfigure = new _MenuId("NotebookEditorLayoutConfigure");
-      }
-      static {
-        this.NotebookKernelSource = new _MenuId("NotebookKernelSource");
-      }
-      static {
-        this.BulkEditTitle = new _MenuId("BulkEditTitle");
-      }
-      static {
-        this.BulkEditContext = new _MenuId("BulkEditContext");
-      }
-      static {
-        this.TimelineItemContext = new _MenuId("TimelineItemContext");
-      }
-      static {
-        this.TimelineTitle = new _MenuId("TimelineTitle");
-      }
-      static {
-        this.TimelineTitleContext = new _MenuId("TimelineTitleContext");
-      }
-      static {
-        this.TimelineFilterSubMenu = new _MenuId("TimelineFilterSubMenu");
-      }
-      static {
-        this.AccountsContext = new _MenuId("AccountsContext");
-      }
-      static {
-        this.SidebarTitle = new _MenuId("SidebarTitle");
-      }
-      static {
-        this.PanelTitle = new _MenuId("PanelTitle");
-      }
-      static {
-        this.AuxiliaryBarTitle = new _MenuId("AuxiliaryBarTitle");
-      }
-      static {
-        this.TerminalInstanceContext = new _MenuId("TerminalInstanceContext");
-      }
-      static {
-        this.TerminalEditorInstanceContext = new _MenuId("TerminalEditorInstanceContext");
-      }
-      static {
-        this.TerminalNewDropdownContext = new _MenuId("TerminalNewDropdownContext");
-      }
-      static {
-        this.TerminalTabContext = new _MenuId("TerminalTabContext");
-      }
-      static {
-        this.TerminalTabEmptyAreaContext = new _MenuId("TerminalTabEmptyAreaContext");
-      }
-      static {
-        this.TerminalStickyScrollContext = new _MenuId("TerminalStickyScrollContext");
-      }
-      static {
-        this.WebviewContext = new _MenuId("WebviewContext");
-      }
-      static {
-        this.InlineCompletionsActions = new _MenuId("InlineCompletionsActions");
-      }
-      static {
-        this.InlineEditsActions = new _MenuId("InlineEditsActions");
-      }
-      static {
-        this.NewFile = new _MenuId("NewFile");
-      }
-      static {
-        this.MergeInput1Toolbar = new _MenuId("MergeToolbar1Toolbar");
-      }
-      static {
-        this.MergeInput2Toolbar = new _MenuId("MergeToolbar2Toolbar");
-      }
-      static {
-        this.MergeBaseToolbar = new _MenuId("MergeBaseToolbar");
-      }
-      static {
-        this.MergeInputResultToolbar = new _MenuId("MergeToolbarResultToolbar");
-      }
-      static {
-        this.InlineSuggestionToolbar = new _MenuId("InlineSuggestionToolbar");
-      }
-      static {
-        this.InlineEditToolbar = new _MenuId("InlineEditToolbar");
-      }
-      static {
-        this.ChatContext = new _MenuId("ChatContext");
-      }
-      static {
-        this.ChatCodeBlock = new _MenuId("ChatCodeblock");
-      }
-      static {
-        this.ChatCompareBlock = new _MenuId("ChatCompareBlock");
-      }
-      static {
-        this.ChatMessageTitle = new _MenuId("ChatMessageTitle");
-      }
-      static {
-        this.ChatHistory = new _MenuId("ChatHistory");
-      }
-      static {
-        this.ChatWelcomeContext = new _MenuId("ChatWelcomeContext");
-      }
-      static {
-        this.ChatMessageFooter = new _MenuId("ChatMessageFooter");
-      }
-      static {
-        this.ChatExecute = new _MenuId("ChatExecute");
-      }
-      static {
-        this.ChatInput = new _MenuId("ChatInput");
-      }
-      static {
-        this.ChatInputSide = new _MenuId("ChatInputSide");
-      }
-      static {
-        this.ChatModePicker = new _MenuId("ChatModePicker");
-      }
-      static {
-        this.ChatEditingWidgetToolbar = new _MenuId("ChatEditingWidgetToolbar");
-      }
-      static {
-        this.ChatEditingEditorContent = new _MenuId("ChatEditingEditorContent");
-      }
-      static {
-        this.ChatEditingEditorHunk = new _MenuId("ChatEditingEditorHunk");
-      }
-      static {
-        this.ChatEditingDeletedNotebookCell = new _MenuId("ChatEditingDeletedNotebookCell");
-      }
-      static {
-        this.ChatInputAttachmentToolbar = new _MenuId("ChatInputAttachmentToolbar");
-      }
-      static {
-        this.ChatEditingWidgetModifiedFilesToolbar = new _MenuId("ChatEditingWidgetModifiedFilesToolbar");
-      }
-      static {
-        this.ChatInputResourceAttachmentContext = new _MenuId("ChatInputResourceAttachmentContext");
-      }
-      static {
-        this.ChatInputSymbolAttachmentContext = new _MenuId("ChatInputSymbolAttachmentContext");
-      }
-      static {
-        this.ChatInlineResourceAnchorContext = new _MenuId("ChatInlineResourceAnchorContext");
-      }
-      static {
-        this.ChatInlineSymbolAnchorContext = new _MenuId("ChatInlineSymbolAnchorContext");
-      }
-      static {
-        this.ChatMessageCheckpoint = new _MenuId("ChatMessageCheckpoint");
-      }
-      static {
-        this.ChatMessageRestoreCheckpoint = new _MenuId("ChatMessageRestoreCheckpoint");
-      }
-      static {
-        this.ChatNewMenu = new _MenuId("ChatNewMenu");
-      }
-      static {
-        this.ChatEditingCodeBlockContext = new _MenuId("ChatEditingCodeBlockContext");
-      }
-      static {
-        this.ChatTitleBarMenu = new _MenuId("ChatTitleBarMenu");
-      }
-      static {
-        this.ChatAttachmentsContext = new _MenuId("ChatAttachmentsContext");
-      }
-      static {
-        this.ChatToolOutputResourceToolbar = new _MenuId("ChatToolOutputResourceToolbar");
-      }
-      static {
-        this.ChatTextEditorMenu = new _MenuId("ChatTextEditorMenu");
-      }
-      static {
-        this.ChatToolOutputResourceContext = new _MenuId("ChatToolOutputResourceContext");
-      }
-      static {
-        this.ChatMultiDiffContext = new _MenuId("ChatMultiDiffContext");
-      }
-      static {
-        this.ChatSessionsMenu = new _MenuId("ChatSessionsMenu");
-      }
-      static {
-        this.ChatSessionsCreateSubMenu = new _MenuId("ChatSessionsCreateSubMenu");
-      }
-      static {
-        this.ChatConfirmationMenu = new _MenuId("ChatConfirmationMenu");
-      }
-      static {
-        this.ChatEditorInlineExecute = new _MenuId("ChatEditorInputExecute");
-      }
-      static {
-        this.ChatEditorInlineInputSide = new _MenuId("ChatEditorInputSide");
-      }
-      static {
-        this.AccessibleView = new _MenuId("AccessibleView");
-      }
-      static {
-        this.MultiDiffEditorFileToolbar = new _MenuId("MultiDiffEditorFileToolbar");
-      }
-      static {
-        this.DiffEditorHunkToolbar = new _MenuId("DiffEditorHunkToolbar");
-      }
-      static {
-        this.DiffEditorSelectionToolbar = new _MenuId("DiffEditorSelectionToolbar");
-      }
-      /**
-       * Create a new `MenuId` with the unique identifier. Will throw if a menu
-       * with the identifier already exists, use `MenuId.for(ident)` or a unique
-       * identifier
-       */
-      constructor(identifier3) {
-        if (_MenuId._instances.has(identifier3)) {
-          throw new TypeError(`MenuId with identifier '${identifier3}' already exists. Use MenuId.for(ident) or a unique identifier`);
-        }
-        _MenuId._instances.set(identifier3, this);
-        this.id = identifier3;
-      }
-    };
-    IMenuService = createDecorator("menuService");
-    MenuRegistryChangeEvent = class _MenuRegistryChangeEvent {
-      static {
-        this._all = /* @__PURE__ */ new Map();
-      }
-      static for(id) {
-        let value = this._all.get(id);
-        if (!value) {
-          value = new _MenuRegistryChangeEvent(id);
-          this._all.set(id, value);
-        }
-        return value;
-      }
-      static merge(events) {
-        const ids = /* @__PURE__ */ new Set();
-        for (const item of events) {
-          if (item instanceof _MenuRegistryChangeEvent) {
-            ids.add(item.id);
-          }
-        }
-        return ids;
-      }
-      constructor(id) {
-        this.id = id;
-        this.has = (candidate) => candidate === id;
-      }
-    };
-    MenuRegistry = new class {
-      constructor() {
-        this._commands = /* @__PURE__ */ new Map();
-        this._menuItems = /* @__PURE__ */ new Map();
-        this._onDidChangeMenu = new MicrotaskEmitter({
-          merge: MenuRegistryChangeEvent.merge
-        });
-        this.onDidChangeMenu = this._onDidChangeMenu.event;
-      }
-      addCommand(command) {
-        this._commands.set(command.id, command);
-        this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette));
-        return markAsSingleton(toDisposable(() => {
-          if (this._commands.delete(command.id)) {
-            this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette));
-          }
-        }));
-      }
-      getCommand(id) {
-        return this._commands.get(id);
-      }
-      getCommands() {
-        const map = /* @__PURE__ */ new Map();
-        this._commands.forEach((value, key) => map.set(key, value));
-        return map;
-      }
-      appendMenuItem(id, item) {
-        let list2 = this._menuItems.get(id);
-        if (!list2) {
-          list2 = new LinkedList();
-          this._menuItems.set(id, list2);
-        }
-        const rm = list2.push(item);
-        this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(id));
-        return markAsSingleton(toDisposable(() => {
-          rm();
-          this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(id));
-        }));
-      }
-      appendMenuItems(items) {
-        const result = new DisposableStore();
-        for (const { id, item } of items) {
-          result.add(this.appendMenuItem(id, item));
-        }
-        return result;
-      }
-      getMenuItems(id) {
-        let result;
-        if (this._menuItems.has(id)) {
-          result = [...this._menuItems.get(id)];
-        } else {
-          result = [];
-        }
-        if (id === MenuId.CommandPalette) {
-          this._appendImplicitItems(result);
-        }
-        return result;
-      }
-      _appendImplicitItems(result) {
-        const set = /* @__PURE__ */ new Set();
-        for (const item of result) {
-          if (isIMenuItem(item)) {
-            set.add(item.command.id);
-            if (item.alt) {
-              set.add(item.alt.id);
-            }
-          }
-        }
-        this._commands.forEach((command, id) => {
-          if (!set.has(id)) {
-            result.push({ command });
-          }
-        });
-      }
-    }();
-    SubmenuItemAction = class extends SubmenuAction {
-      constructor(item, hideActions, actions) {
-        super(`submenuitem.${item.submenu.id}`, typeof item.title === "string" ? item.title : item.title.value, actions, "submenu");
-        this.item = item;
-        this.hideActions = hideActions;
-      }
-    };
-    MenuItemAction = MenuItemAction_1 = class MenuItemAction2 {
-      static label(action, options) {
-        return options?.renderShortTitle && action.shortTitle ? typeof action.shortTitle === "string" ? action.shortTitle : action.shortTitle.value : typeof action.title === "string" ? action.title : action.title.value;
-      }
-      constructor(item, alt, options, hideActions, menuKeybinding, contextKeyService, _commandService) {
-        this.hideActions = hideActions;
-        this.menuKeybinding = menuKeybinding;
-        this._commandService = _commandService;
-        this.id = item.id;
-        this.label = MenuItemAction_1.label(item, options);
-        this.tooltip = (typeof item.tooltip === "string" ? item.tooltip : item.tooltip?.value) ?? "";
-        this.enabled = !item.precondition || contextKeyService.contextMatchesRules(item.precondition);
-        this.checked = void 0;
-        let icon;
-        if (item.toggled) {
-          const toggled = item.toggled.condition ? item.toggled : { condition: item.toggled };
-          this.checked = contextKeyService.contextMatchesRules(toggled.condition);
-          if (this.checked && toggled.tooltip) {
-            this.tooltip = typeof toggled.tooltip === "string" ? toggled.tooltip : toggled.tooltip.value;
-          }
-          if (this.checked && ThemeIcon.isThemeIcon(toggled.icon)) {
-            icon = toggled.icon;
-          }
-          if (this.checked && toggled.title) {
-            this.label = typeof toggled.title === "string" ? toggled.title : toggled.title.value;
-          }
-        }
-        if (!icon) {
-          icon = ThemeIcon.isThemeIcon(item.icon) ? item.icon : void 0;
-        }
-        this.item = item;
-        this.alt = alt ? new MenuItemAction_1(alt, void 0, options, hideActions, void 0, contextKeyService, _commandService) : void 0;
-        this._options = options;
-        this.class = icon && ThemeIcon.asClassName(icon);
-      }
-      run(...args) {
-        let runArgs = [];
-        if (this._options?.arg) {
-          runArgs = [...runArgs, this._options.arg];
-        }
-        if (this._options?.shouldForwardArgs) {
-          runArgs = [...runArgs, ...args];
-        }
-        return this._commandService.executeCommand(this.id, ...runArgs);
-      }
-    };
-    MenuItemAction = MenuItemAction_1 = __decorate([
-      __param(5, IContextKeyService),
-      __param(6, ICommandService)
-    ], MenuItemAction);
-    Action2 = class {
-      constructor(desc) {
-        this.desc = desc;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/platform/telemetry/common/telemetry.js
-var ITelemetryService;
-var init_telemetry = __esm({
-  "../node_modules/monaco-editor/esm/vs/platform/telemetry/common/telemetry.js"() {
-    init_instantiation();
-    ITelemetryService = createDecorator("telemetryService");
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/map.js
-function isEntries(arg) {
-  return Array.isArray(arg);
-}
-var _a, _b, _c, ResourceMapEntry, ResourceMap, ResourceSet, LinkedMap, Cache, LRUCache, BidirectionalMap, SetMap, NKeyMap;
-var init_map = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/map.js"() {
-    ResourceMapEntry = class {
-      constructor(uri, value) {
-        this.uri = uri;
-        this.value = value;
-      }
-    };
-    ResourceMap = class _ResourceMap {
-      static {
-        this.defaultToKey = (resource) => resource.toString();
-      }
-      constructor(arg, toKey) {
-        this[_a] = "ResourceMap";
-        if (arg instanceof _ResourceMap) {
-          this.map = new Map(arg.map);
-          this.toKey = toKey ?? _ResourceMap.defaultToKey;
-        } else if (isEntries(arg)) {
-          this.map = /* @__PURE__ */ new Map();
-          this.toKey = toKey ?? _ResourceMap.defaultToKey;
-          for (const [resource, value] of arg) {
-            this.set(resource, value);
-          }
-        } else {
-          this.map = /* @__PURE__ */ new Map();
-          this.toKey = arg ?? _ResourceMap.defaultToKey;
-        }
-      }
-      set(resource, value) {
-        this.map.set(this.toKey(resource), new ResourceMapEntry(resource, value));
-        return this;
-      }
-      get(resource) {
-        return this.map.get(this.toKey(resource))?.value;
-      }
-      has(resource) {
-        return this.map.has(this.toKey(resource));
-      }
-      get size() {
-        return this.map.size;
-      }
-      clear() {
-        this.map.clear();
-      }
-      delete(resource) {
-        return this.map.delete(this.toKey(resource));
-      }
-      forEach(clb, thisArg) {
-        if (typeof thisArg !== "undefined") {
-          clb = clb.bind(thisArg);
-        }
-        for (const [_, entry] of this.map) {
-          clb(entry.value, entry.uri, this);
-        }
-      }
-      *values() {
-        for (const entry of this.map.values()) {
-          yield entry.value;
-        }
-      }
-      *keys() {
-        for (const entry of this.map.values()) {
-          yield entry.uri;
-        }
-      }
-      *entries() {
-        for (const entry of this.map.values()) {
-          yield [entry.uri, entry.value];
-        }
-      }
-      *[(_a = Symbol.toStringTag, Symbol.iterator)]() {
-        for (const [, entry] of this.map) {
-          yield [entry.uri, entry.value];
-        }
-      }
-    };
-    ResourceSet = class {
-      constructor(entriesOrKey, toKey) {
-        this[_b] = "ResourceSet";
-        if (!entriesOrKey || typeof entriesOrKey === "function") {
-          this._map = new ResourceMap(entriesOrKey);
-        } else {
-          this._map = new ResourceMap(toKey);
-          entriesOrKey.forEach(this.add, this);
-        }
-      }
-      get size() {
-        return this._map.size;
-      }
-      add(value) {
-        this._map.set(value, value);
-        return this;
-      }
-      clear() {
-        this._map.clear();
-      }
-      delete(value) {
-        return this._map.delete(value);
-      }
-      forEach(callbackfn, thisArg) {
-        this._map.forEach((_value, key) => callbackfn.call(thisArg, key, key, this));
-      }
-      has(value) {
-        return this._map.has(value);
-      }
-      entries() {
-        return this._map.entries();
-      }
-      keys() {
-        return this._map.keys();
-      }
-      values() {
-        return this._map.keys();
-      }
-      [(_b = Symbol.toStringTag, Symbol.iterator)]() {
-        return this.keys();
-      }
-    };
-    LinkedMap = class {
-      constructor() {
-        this[_c] = "LinkedMap";
-        this._map = /* @__PURE__ */ new Map();
-        this._head = void 0;
-        this._tail = void 0;
-        this._size = 0;
-        this._state = 0;
-      }
-      clear() {
-        this._map.clear();
-        this._head = void 0;
-        this._tail = void 0;
-        this._size = 0;
-        this._state++;
-      }
-      isEmpty() {
-        return !this._head && !this._tail;
-      }
-      get size() {
-        return this._size;
-      }
-      get first() {
-        return this._head?.value;
-      }
-      get last() {
-        return this._tail?.value;
-      }
-      has(key) {
-        return this._map.has(key);
-      }
-      get(key, touch = 0) {
-        const item = this._map.get(key);
-        if (!item) {
-          return void 0;
-        }
-        if (touch !== 0) {
-          this.touch(item, touch);
-        }
-        return item.value;
-      }
-      set(key, value, touch = 0) {
-        let item = this._map.get(key);
-        if (item) {
-          item.value = value;
-          if (touch !== 0) {
-            this.touch(item, touch);
-          }
-        } else {
-          item = { key, value, next: void 0, previous: void 0 };
-          switch (touch) {
-            case 0:
-              this.addItemLast(item);
-              break;
-            case 1:
-              this.addItemFirst(item);
-              break;
-            case 2:
-              this.addItemLast(item);
-              break;
-            default:
-              this.addItemLast(item);
-              break;
-          }
-          this._map.set(key, item);
-          this._size++;
-        }
-        return this;
-      }
-      delete(key) {
-        return !!this.remove(key);
-      }
-      remove(key) {
-        const item = this._map.get(key);
-        if (!item) {
-          return void 0;
-        }
-        this._map.delete(key);
-        this.removeItem(item);
-        this._size--;
-        return item.value;
-      }
-      shift() {
-        if (!this._head && !this._tail) {
-          return void 0;
-        }
-        if (!this._head || !this._tail) {
-          throw new Error("Invalid list");
-        }
-        const item = this._head;
-        this._map.delete(item.key);
-        this.removeItem(item);
-        this._size--;
-        return item.value;
-      }
-      forEach(callbackfn, thisArg) {
-        const state = this._state;
-        let current = this._head;
-        while (current) {
-          if (thisArg) {
-            callbackfn.bind(thisArg)(current.value, current.key, this);
-          } else {
-            callbackfn(current.value, current.key, this);
-          }
-          if (this._state !== state) {
-            throw new Error(`LinkedMap got modified during iteration.`);
-          }
-          current = current.next;
-        }
-      }
-      keys() {
-        const map = this;
-        const state = this._state;
-        let current = this._head;
-        const iterator = {
-          [Symbol.iterator]() {
-            return iterator;
-          },
-          next() {
-            if (map._state !== state) {
-              throw new Error(`LinkedMap got modified during iteration.`);
-            }
-            if (current) {
-              const result = { value: current.key, done: false };
-              current = current.next;
-              return result;
-            } else {
-              return { value: void 0, done: true };
-            }
-          }
-        };
-        return iterator;
-      }
-      values() {
-        const map = this;
-        const state = this._state;
-        let current = this._head;
-        const iterator = {
-          [Symbol.iterator]() {
-            return iterator;
-          },
-          next() {
-            if (map._state !== state) {
-              throw new Error(`LinkedMap got modified during iteration.`);
-            }
-            if (current) {
-              const result = { value: current.value, done: false };
-              current = current.next;
-              return result;
-            } else {
-              return { value: void 0, done: true };
-            }
-          }
-        };
-        return iterator;
-      }
-      entries() {
-        const map = this;
-        const state = this._state;
-        let current = this._head;
-        const iterator = {
-          [Symbol.iterator]() {
-            return iterator;
-          },
-          next() {
-            if (map._state !== state) {
-              throw new Error(`LinkedMap got modified during iteration.`);
-            }
-            if (current) {
-              const result = { value: [current.key, current.value], done: false };
-              current = current.next;
-              return result;
-            } else {
-              return { value: void 0, done: true };
-            }
-          }
-        };
-        return iterator;
-      }
-      [(_c = Symbol.toStringTag, Symbol.iterator)]() {
-        return this.entries();
-      }
-      trimOld(newSize) {
-        if (newSize >= this.size) {
-          return;
-        }
-        if (newSize === 0) {
-          this.clear();
-          return;
-        }
-        let current = this._head;
-        let currentSize = this.size;
-        while (current && currentSize > newSize) {
-          this._map.delete(current.key);
-          current = current.next;
-          currentSize--;
-        }
-        this._head = current;
-        this._size = currentSize;
-        if (current) {
-          current.previous = void 0;
-        }
-        this._state++;
-      }
-      trimNew(newSize) {
-        if (newSize >= this.size) {
-          return;
-        }
-        if (newSize === 0) {
-          this.clear();
-          return;
-        }
-        let current = this._tail;
-        let currentSize = this.size;
-        while (current && currentSize > newSize) {
-          this._map.delete(current.key);
-          current = current.previous;
-          currentSize--;
-        }
-        this._tail = current;
-        this._size = currentSize;
-        if (current) {
-          current.next = void 0;
-        }
-        this._state++;
-      }
-      addItemFirst(item) {
-        if (!this._head && !this._tail) {
-          this._tail = item;
-        } else if (!this._head) {
-          throw new Error("Invalid list");
-        } else {
-          item.next = this._head;
-          this._head.previous = item;
-        }
-        this._head = item;
-        this._state++;
-      }
-      addItemLast(item) {
-        if (!this._head && !this._tail) {
-          this._head = item;
-        } else if (!this._tail) {
-          throw new Error("Invalid list");
-        } else {
-          item.previous = this._tail;
-          this._tail.next = item;
-        }
-        this._tail = item;
-        this._state++;
-      }
-      removeItem(item) {
-        if (item === this._head && item === this._tail) {
-          this._head = void 0;
-          this._tail = void 0;
-        } else if (item === this._head) {
-          if (!item.next) {
-            throw new Error("Invalid list");
-          }
-          item.next.previous = void 0;
-          this._head = item.next;
-        } else if (item === this._tail) {
-          if (!item.previous) {
-            throw new Error("Invalid list");
-          }
-          item.previous.next = void 0;
-          this._tail = item.previous;
-        } else {
-          const next = item.next;
-          const previous = item.previous;
-          if (!next || !previous) {
-            throw new Error("Invalid list");
-          }
-          next.previous = previous;
-          previous.next = next;
-        }
-        item.next = void 0;
-        item.previous = void 0;
-        this._state++;
-      }
-      touch(item, touch) {
-        if (!this._head || !this._tail) {
-          throw new Error("Invalid list");
-        }
-        if (touch !== 1 && touch !== 2) {
-          return;
-        }
-        if (touch === 1) {
-          if (item === this._head) {
-            return;
-          }
-          const next = item.next;
-          const previous = item.previous;
-          if (item === this._tail) {
-            previous.next = void 0;
-            this._tail = previous;
-          } else {
-            next.previous = previous;
-            previous.next = next;
-          }
-          item.previous = void 0;
-          item.next = this._head;
-          this._head.previous = item;
-          this._head = item;
-          this._state++;
-        } else if (touch === 2) {
-          if (item === this._tail) {
-            return;
-          }
-          const next = item.next;
-          const previous = item.previous;
-          if (item === this._head) {
-            next.previous = void 0;
-            this._head = next;
-          } else {
-            next.previous = previous;
-            previous.next = next;
-          }
-          item.next = void 0;
-          item.previous = this._tail;
-          this._tail.next = item;
-          this._tail = item;
-          this._state++;
-        }
-      }
-      toJSON() {
-        const data = [];
-        this.forEach((value, key) => {
-          data.push([key, value]);
-        });
-        return data;
-      }
-      fromJSON(data) {
-        this.clear();
-        for (const [key, value] of data) {
-          this.set(key, value);
-        }
-      }
-    };
-    Cache = class extends LinkedMap {
-      constructor(limit, ratio = 1) {
-        super();
-        this._limit = limit;
-        this._ratio = Math.min(Math.max(0, ratio), 1);
-      }
-      get limit() {
-        return this._limit;
-      }
-      set limit(limit) {
-        this._limit = limit;
-        this.checkTrim();
-      }
-      get(key, touch = 2) {
-        return super.get(key, touch);
-      }
-      peek(key) {
-        return super.get(
-          key,
-          0
-          /* Touch.None */
-        );
-      }
-      set(key, value) {
-        super.set(
-          key,
-          value,
-          2
-          /* Touch.AsNew */
-        );
-        return this;
-      }
-      checkTrim() {
-        if (this.size > this._limit) {
-          this.trim(Math.round(this._limit * this._ratio));
-        }
-      }
-    };
-    LRUCache = class extends Cache {
-      constructor(limit, ratio = 1) {
-        super(limit, ratio);
-      }
-      trim(newSize) {
-        this.trimOld(newSize);
-      }
-      set(key, value) {
-        super.set(key, value);
-        this.checkTrim();
-        return this;
-      }
-    };
-    BidirectionalMap = class {
-      constructor(entries2) {
-        this._m1 = /* @__PURE__ */ new Map();
-        this._m2 = /* @__PURE__ */ new Map();
-        if (entries2) {
-          for (const [key, value] of entries2) {
-            this.set(key, value);
-          }
-        }
-      }
-      clear() {
-        this._m1.clear();
-        this._m2.clear();
-      }
-      set(key, value) {
-        this._m1.set(key, value);
-        this._m2.set(value, key);
-      }
-      get(key) {
-        return this._m1.get(key);
-      }
-      getKey(value) {
-        return this._m2.get(value);
-      }
-      delete(key) {
-        const value = this._m1.get(key);
-        if (value === void 0) {
-          return false;
-        }
-        this._m1.delete(key);
-        this._m2.delete(value);
-        return true;
-      }
-      keys() {
-        return this._m1.keys();
-      }
-      values() {
-        return this._m1.values();
-      }
-    };
-    SetMap = class {
-      constructor() {
-        this.map = /* @__PURE__ */ new Map();
-      }
-      add(key, value) {
-        let values = this.map.get(key);
-        if (!values) {
-          values = /* @__PURE__ */ new Set();
-          this.map.set(key, values);
-        }
-        values.add(value);
-      }
-      delete(key, value) {
-        const values = this.map.get(key);
-        if (!values) {
-          return;
-        }
-        values.delete(value);
-        if (values.size === 0) {
-          this.map.delete(key);
-        }
-      }
-      forEach(key, fn) {
-        const values = this.map.get(key);
-        if (!values) {
-          return;
-        }
-        values.forEach(fn);
-      }
-    };
-    NKeyMap = class {
-      constructor() {
-        this._data = /* @__PURE__ */ new Map();
-      }
-      /**
-       * Sets a value on the map. Note that unlike a standard `Map`, the first argument is the value.
-       * This is because the spread operator is used for the keys and must be last..
-       * @param value The value to set.
-       * @param keys The keys for the value.
-       */
-      set(value, ...keys) {
-        let currentMap = this._data;
-        for (let i2 = 0; i2 < keys.length - 1; i2++) {
-          if (!currentMap.has(keys[i2])) {
-            currentMap.set(keys[i2], /* @__PURE__ */ new Map());
-          }
-          currentMap = currentMap.get(keys[i2]);
-        }
-        currentMap.set(keys[keys.length - 1], value);
-      }
-      get(...keys) {
-        let currentMap = this._data;
-        for (let i2 = 0; i2 < keys.length - 1; i2++) {
-          if (!currentMap.has(keys[i2])) {
-            return void 0;
-          }
-          currentMap = currentMap.get(keys[i2]);
-        }
-        return currentMap.get(keys[keys.length - 1]);
-      }
-      clear() {
-        this._data.clear();
-      }
-      /**
-       * Get a textual representation of the map for debugging purposes.
-       */
-      toString() {
-        const printMap = (map, depth) => {
-          let result = "";
-          for (const [key, value] of map) {
-            result += `${"  ".repeat(depth)}${key}: `;
-            if (value instanceof Map) {
-              result += "\n" + printMap(value, depth + 1);
-            } else {
-              result += `${value}
-`;
-            }
-          }
-          return result;
-        };
-        return printMap(this._data, 0);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/extpath.js
-function isPathSeparator2(code) {
-  return code === 47 || code === 92;
-}
-function toSlashes(osPath) {
-  return osPath.replace(/[\\/]/g, posix.sep);
-}
-function toPosixPath(osPath) {
-  if (osPath.indexOf("/") === -1) {
-    osPath = toSlashes(osPath);
-  }
-  if (/^[a-zA-Z]:(\/|$)/.test(osPath)) {
-    osPath = "/" + osPath;
-  }
-  return osPath;
-}
-function getRoot(path, sep2 = posix.sep) {
-  if (!path) {
-    return "";
-  }
-  const len = path.length;
-  const firstLetter = path.charCodeAt(0);
-  if (isPathSeparator2(firstLetter)) {
-    if (isPathSeparator2(path.charCodeAt(1))) {
-      if (!isPathSeparator2(path.charCodeAt(2))) {
-        let pos2 = 3;
-        const start = pos2;
-        for (; pos2 < len; pos2++) {
-          if (isPathSeparator2(path.charCodeAt(pos2))) {
-            break;
-          }
-        }
-        if (start !== pos2 && !isPathSeparator2(path.charCodeAt(pos2 + 1))) {
-          pos2 += 1;
-          for (; pos2 < len; pos2++) {
-            if (isPathSeparator2(path.charCodeAt(pos2))) {
-              return path.slice(0, pos2 + 1).replace(/[\\/]/g, sep2);
-            }
-          }
-        }
-      }
-    }
-    return sep2;
-  } else if (isWindowsDriveLetter(firstLetter)) {
-    if (path.charCodeAt(1) === 58) {
-      if (isPathSeparator2(path.charCodeAt(2))) {
-        return path.slice(0, 2) + sep2;
-      } else {
-        return path.slice(0, 2);
-      }
-    }
-  }
-  let pos = path.indexOf("://");
-  if (pos !== -1) {
-    pos += 3;
-    for (; pos < len; pos++) {
-      if (isPathSeparator2(path.charCodeAt(pos))) {
-        return path.slice(0, pos + 1);
-      }
-    }
-  }
-  return "";
-}
-function isEqualOrParent(base, parentCandidate, ignoreCase, separator2 = sep) {
-  if (base === parentCandidate) {
-    return true;
-  }
-  if (!base || !parentCandidate) {
-    return false;
-  }
-  if (parentCandidate.length > base.length) {
-    return false;
-  }
-  if (ignoreCase) {
-    const beginsWith = startsWithIgnoreCase(base, parentCandidate);
-    if (!beginsWith) {
-      return false;
-    }
-    if (parentCandidate.length === base.length) {
-      return true;
-    }
-    let sepOffset = parentCandidate.length;
-    if (parentCandidate.charAt(parentCandidate.length - 1) === separator2) {
-      sepOffset--;
-    }
-    return base.charAt(sepOffset) === separator2;
-  }
-  if (parentCandidate.charAt(parentCandidate.length - 1) !== separator2) {
-    parentCandidate += separator2;
-  }
-  return base.indexOf(parentCandidate) === 0;
-}
-function isWindowsDriveLetter(char0) {
-  return char0 >= 65 && char0 <= 90 || char0 >= 97 && char0 <= 122;
-}
-function hasDriveLetter(path, isWindowsOS = isWindows) {
-  if (isWindowsOS) {
-    return isWindowsDriveLetter(path.charCodeAt(0)) && path.charCodeAt(1) === 58;
-  }
-  return false;
-}
-var init_extpath = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/extpath.js"() {
-    init_path();
-    init_platform();
-    init_strings();
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/resources.js
-function originalFSPath(uri) {
-  return uriToFsPath(uri, true);
-}
-var ExtUri, extUri, isEqual, basenameOrAuthority, basename2, extname2, dirname2, joinPath, normalizePath, relativePath, resolvePath, isEqualAuthority, hasTrailingPathSeparator, DataUri;
-var init_resources = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/resources.js"() {
-    init_extpath();
-    init_network();
-    init_path();
-    init_platform();
-    init_strings();
-    init_uri();
-    ExtUri = class {
-      constructor(_ignorePathCasing) {
-        this._ignorePathCasing = _ignorePathCasing;
-      }
-      compare(uri1, uri2, ignoreFragment = false) {
-        if (uri1 === uri2) {
-          return 0;
-        }
-        return compare(this.getComparisonKey(uri1, ignoreFragment), this.getComparisonKey(uri2, ignoreFragment));
-      }
-      isEqual(uri1, uri2, ignoreFragment = false) {
-        if (uri1 === uri2) {
-          return true;
-        }
-        if (!uri1 || !uri2) {
-          return false;
-        }
-        return this.getComparisonKey(uri1, ignoreFragment) === this.getComparisonKey(uri2, ignoreFragment);
-      }
-      getComparisonKey(uri, ignoreFragment = false) {
-        return uri.with({
-          path: this._ignorePathCasing(uri) ? uri.path.toLowerCase() : void 0,
-          fragment: ignoreFragment ? null : void 0
-        }).toString();
-      }
-      isEqualOrParent(base, parentCandidate, ignoreFragment = false) {
-        if (base.scheme === parentCandidate.scheme) {
-          if (base.scheme === Schemas.file) {
-            return isEqualOrParent(originalFSPath(base), originalFSPath(parentCandidate), this._ignorePathCasing(base)) && base.query === parentCandidate.query && (ignoreFragment || base.fragment === parentCandidate.fragment);
-          }
-          if (isEqualAuthority(base.authority, parentCandidate.authority)) {
-            return isEqualOrParent(base.path, parentCandidate.path, this._ignorePathCasing(base), "/") && base.query === parentCandidate.query && (ignoreFragment || base.fragment === parentCandidate.fragment);
-          }
-        }
-        return false;
-      }
-      // --- path math
-      joinPath(resource, ...pathFragment) {
-        return URI.joinPath(resource, ...pathFragment);
-      }
-      basenameOrAuthority(resource) {
-        return basename2(resource) || resource.authority;
-      }
-      basename(resource) {
-        return posix.basename(resource.path);
-      }
-      extname(resource) {
-        return posix.extname(resource.path);
-      }
-      dirname(resource) {
-        if (resource.path.length === 0) {
-          return resource;
-        }
-        let dirname3;
-        if (resource.scheme === Schemas.file) {
-          dirname3 = URI.file(dirname(originalFSPath(resource))).path;
-        } else {
-          dirname3 = posix.dirname(resource.path);
-          if (resource.authority && dirname3.length && dirname3.charCodeAt(0) !== 47) {
-            console.error(`dirname("${resource.toString})) resulted in a relative path`);
-            dirname3 = "/";
-          }
-        }
-        return resource.with({
-          path: dirname3
-        });
-      }
-      normalizePath(resource) {
-        if (!resource.path.length) {
-          return resource;
-        }
-        let normalizedPath;
-        if (resource.scheme === Schemas.file) {
-          normalizedPath = URI.file(normalize(originalFSPath(resource))).path;
-        } else {
-          normalizedPath = posix.normalize(resource.path);
-        }
-        return resource.with({
-          path: normalizedPath
-        });
-      }
-      relativePath(from, to) {
-        if (from.scheme !== to.scheme || !isEqualAuthority(from.authority, to.authority)) {
-          return void 0;
-        }
-        if (from.scheme === Schemas.file) {
-          const relativePath2 = relative(originalFSPath(from), originalFSPath(to));
-          return isWindows ? toSlashes(relativePath2) : relativePath2;
-        }
-        let fromPath = from.path || "/";
-        const toPath = to.path || "/";
-        if (this._ignorePathCasing(from)) {
-          let i2 = 0;
-          for (const len = Math.min(fromPath.length, toPath.length); i2 < len; i2++) {
-            if (fromPath.charCodeAt(i2) !== toPath.charCodeAt(i2)) {
-              if (fromPath.charAt(i2).toLowerCase() !== toPath.charAt(i2).toLowerCase()) {
-                break;
-              }
-            }
-          }
-          fromPath = toPath.substr(0, i2) + fromPath.substr(i2);
-        }
-        return posix.relative(fromPath, toPath);
-      }
-      resolvePath(base, path) {
-        if (base.scheme === Schemas.file) {
-          const newURI = URI.file(resolve(originalFSPath(base), path));
-          return base.with({
-            authority: newURI.authority,
-            path: newURI.path
-          });
-        }
-        path = toPosixPath(path);
-        return base.with({
-          path: posix.resolve(base.path, path)
-        });
-      }
-      // --- misc
-      isAbsolutePath(resource) {
-        return !!resource.path && resource.path[0] === "/";
-      }
-      isEqualAuthority(a1, a2) {
-        return a1 === a2 || a1 !== void 0 && a2 !== void 0 && equalsIgnoreCase(a1, a2);
-      }
-      hasTrailingPathSeparator(resource, sep$1 = sep) {
-        if (resource.scheme === Schemas.file) {
-          const fsp = originalFSPath(resource);
-          return fsp.length > getRoot(fsp).length && fsp[fsp.length - 1] === sep$1;
-        } else {
-          const p = resource.path;
-          return p.length > 1 && p.charCodeAt(p.length - 1) === 47 && !/^[a-zA-Z]:(\/$|\\$)/.test(resource.fsPath);
-        }
-      }
-      removeTrailingPathSeparator(resource, sep$1 = sep) {
-        if (hasTrailingPathSeparator(resource, sep$1)) {
-          return resource.with({ path: resource.path.substr(0, resource.path.length - 1) });
-        }
-        return resource;
-      }
-      addTrailingPathSeparator(resource, sep$1 = sep) {
-        let isRootSep = false;
-        if (resource.scheme === Schemas.file) {
-          const fsp = originalFSPath(resource);
-          isRootSep = fsp !== void 0 && fsp.length === getRoot(fsp).length && fsp[fsp.length - 1] === sep$1;
-        } else {
-          sep$1 = "/";
-          const p = resource.path;
-          isRootSep = p.length === 1 && p.charCodeAt(p.length - 1) === 47;
-        }
-        if (!isRootSep && !hasTrailingPathSeparator(resource, sep$1)) {
-          return resource.with({ path: resource.path + "/" });
-        }
-        return resource;
-      }
-    };
-    extUri = new ExtUri(() => false);
-    isEqual = extUri.isEqual.bind(extUri);
-    extUri.isEqualOrParent.bind(extUri);
-    extUri.getComparisonKey.bind(extUri);
-    basenameOrAuthority = extUri.basenameOrAuthority.bind(extUri);
-    basename2 = extUri.basename.bind(extUri);
-    extname2 = extUri.extname.bind(extUri);
-    dirname2 = extUri.dirname.bind(extUri);
-    joinPath = extUri.joinPath.bind(extUri);
-    normalizePath = extUri.normalizePath.bind(extUri);
-    relativePath = extUri.relativePath.bind(extUri);
-    resolvePath = extUri.resolvePath.bind(extUri);
-    extUri.isAbsolutePath.bind(extUri);
-    isEqualAuthority = extUri.isEqualAuthority.bind(extUri);
-    hasTrailingPathSeparator = extUri.hasTrailingPathSeparator.bind(extUri);
-    extUri.removeTrailingPathSeparator.bind(extUri);
-    extUri.addTrailingPathSeparator.bind(extUri);
-    (function(DataUri2) {
-      DataUri2.META_DATA_LABEL = "label";
-      DataUri2.META_DATA_DESCRIPTION = "description";
-      DataUri2.META_DATA_SIZE = "size";
-      DataUri2.META_DATA_MIME = "mime";
-      function parseMetaData(dataUri) {
-        const metadata = /* @__PURE__ */ new Map();
-        const meta = dataUri.path.substring(dataUri.path.indexOf(";") + 1, dataUri.path.lastIndexOf(";"));
-        meta.split(";").forEach((property) => {
-          const [key, value] = property.split(":");
-          if (key && value) {
-            metadata.set(key, value);
-          }
-        });
-        const mime = dataUri.path.substring(0, dataUri.path.indexOf(";"));
-        if (mime) {
-          metadata.set(DataUri2.META_DATA_MIME, mime);
-        }
-        return metadata;
-      }
-      DataUri2.parseMetaData = parseMetaData;
-    })(DataUri || (DataUri = {}));
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/platform/log/common/log.js
-function canLog(loggerLevel, messageLevel) {
-  return loggerLevel !== LogLevel.Off && loggerLevel <= messageLevel;
-}
-function LogLevelToString(logLevel) {
-  switch (logLevel) {
-    case LogLevel.Trace:
-      return "trace";
-    case LogLevel.Debug:
-      return "debug";
-    case LogLevel.Info:
-      return "info";
-    case LogLevel.Warning:
-      return "warn";
-    case LogLevel.Error:
-      return "error";
-    case LogLevel.Off:
-      return "off";
-  }
-}
-var ILogService, ILoggerService, LogLevel, DEFAULT_LOG_LEVEL, AbstractLogger, ConsoleLogger, MultiplexLogger, AbstractLoggerService, NullLogger, NullLoggerService;
-var init_log = __esm({
-  "../node_modules/monaco-editor/esm/vs/platform/log/common/log.js"() {
-    init_event();
-    init_hash();
-    init_lifecycle();
-    init_map();
-    init_resources();
-    init_types();
-    init_uri();
-    init_contextkey();
-    init_instantiation();
-    ILogService = createDecorator("logService");
-    ILoggerService = createDecorator("loggerService");
-    (function(LogLevel2) {
-      LogLevel2[LogLevel2["Off"] = 0] = "Off";
-      LogLevel2[LogLevel2["Trace"] = 1] = "Trace";
-      LogLevel2[LogLevel2["Debug"] = 2] = "Debug";
-      LogLevel2[LogLevel2["Info"] = 3] = "Info";
-      LogLevel2[LogLevel2["Warning"] = 4] = "Warning";
-      LogLevel2[LogLevel2["Error"] = 5] = "Error";
-    })(LogLevel || (LogLevel = {}));
-    DEFAULT_LOG_LEVEL = LogLevel.Info;
-    AbstractLogger = class extends Disposable {
-      constructor() {
-        super(...arguments);
-        this.level = DEFAULT_LOG_LEVEL;
-        this._onDidChangeLogLevel = this._register(new Emitter());
-      }
-      get onDidChangeLogLevel() {
-        return this._onDidChangeLogLevel.event;
-      }
-      setLevel(level) {
-        if (this.level !== level) {
-          this.level = level;
-          this._onDidChangeLogLevel.fire(this.level);
-        }
-      }
-      getLevel() {
-        return this.level;
-      }
-      checkLogLevel(level) {
-        return canLog(this.level, level);
-      }
-      canLog(level) {
-        if (this._store.isDisposed) {
-          return false;
-        }
-        return this.checkLogLevel(level);
-      }
-    };
-    ConsoleLogger = class extends AbstractLogger {
-      constructor(logLevel = DEFAULT_LOG_LEVEL, useColors = true) {
-        super();
-        this.useColors = useColors;
-        this.setLevel(logLevel);
-      }
-      trace(message, ...args) {
-        if (this.canLog(LogLevel.Trace)) {
-          if (this.useColors) {
-            console.log("%cTRACE", "color: #888", message, ...args);
-          } else {
-            console.log(message, ...args);
-          }
-        }
-      }
-      debug(message, ...args) {
-        if (this.canLog(LogLevel.Debug)) {
-          if (this.useColors) {
-            console.log("%cDEBUG", "background: #eee; color: #888", message, ...args);
-          } else {
-            console.log(message, ...args);
-          }
-        }
-      }
-      info(message, ...args) {
-        if (this.canLog(LogLevel.Info)) {
-          if (this.useColors) {
-            console.log("%c INFO", "color: #33f", message, ...args);
-          } else {
-            console.log(message, ...args);
-          }
-        }
-      }
-      warn(message, ...args) {
-        if (this.canLog(LogLevel.Warning)) {
-          if (this.useColors) {
-            console.warn("%c WARN", "color: #993", message, ...args);
-          } else {
-            console.log(message, ...args);
-          }
-        }
-      }
-      error(message, ...args) {
-        if (this.canLog(LogLevel.Error)) {
-          if (this.useColors) {
-            console.error("%c  ERR", "color: #f33", message, ...args);
-          } else {
-            console.error(message, ...args);
-          }
-        }
-      }
-    };
-    MultiplexLogger = class extends AbstractLogger {
-      constructor(loggers) {
-        super();
-        this.loggers = loggers;
-        if (loggers.length) {
-          this.setLevel(loggers[0].getLevel());
-        }
-      }
-      setLevel(level) {
-        for (const logger of this.loggers) {
-          logger.setLevel(level);
-        }
-        super.setLevel(level);
-      }
-      trace(message, ...args) {
-        for (const logger of this.loggers) {
-          logger.trace(message, ...args);
-        }
-      }
-      debug(message, ...args) {
-        for (const logger of this.loggers) {
-          logger.debug(message, ...args);
-        }
-      }
-      info(message, ...args) {
-        for (const logger of this.loggers) {
-          logger.info(message, ...args);
-        }
-      }
-      warn(message, ...args) {
-        for (const logger of this.loggers) {
-          logger.warn(message, ...args);
-        }
-      }
-      error(message, ...args) {
-        for (const logger of this.loggers) {
-          logger.error(message, ...args);
-        }
-      }
-      dispose() {
-        for (const logger of this.loggers) {
-          logger.dispose();
-        }
-        super.dispose();
-      }
-    };
-    AbstractLoggerService = class extends Disposable {
-      constructor(logLevel, logsHome, loggerResources) {
-        super();
-        this.logLevel = logLevel;
-        this.logsHome = logsHome;
-        this._loggers = new ResourceMap();
-        this._onDidChangeLoggers = this._register(new Emitter());
-        this._onDidChangeVisibility = this._register(new Emitter());
-        if (loggerResources) {
-          for (const loggerResource of loggerResources) {
-            this._loggers.set(loggerResource.resource, { logger: void 0, info: loggerResource });
-          }
-        }
-      }
-      getLoggerEntry(resourceOrId) {
-        if (isString(resourceOrId)) {
-          return [...this._loggers.values()].find((logger) => logger.info.id === resourceOrId);
-        }
-        return this._loggers.get(resourceOrId);
-      }
-      createLogger(idOrResource, options) {
-        const resource = this.toResource(idOrResource);
-        const id = isString(idOrResource) ? idOrResource : options?.id ?? hash(resource.toString()).toString(16);
-        let logger = this._loggers.get(resource)?.logger;
-        const logLevel = options?.logLevel === "always" ? LogLevel.Trace : options?.logLevel;
-        if (!logger) {
-          logger = this.doCreateLogger(resource, logLevel ?? this.getLogLevel(resource) ?? this.logLevel, { ...options, id });
-        }
-        const loggerEntry = {
-          logger,
-          info: {
-            resource,
-            id,
-            logLevel,
-            name: options?.name,
-            hidden: options?.hidden,
-            group: options?.group,
-            extensionId: options?.extensionId,
-            when: options?.when
-          }
-        };
-        this.registerLogger(loggerEntry.info);
-        this._loggers.set(resource, loggerEntry);
-        return logger;
-      }
-      toResource(idOrResource) {
-        return isString(idOrResource) ? joinPath(this.logsHome, `${idOrResource}.log`) : idOrResource;
-      }
-      setVisibility(resourceOrId, visibility) {
-        const logger = this.getLoggerEntry(resourceOrId);
-        if (logger && visibility !== !logger.info.hidden) {
-          logger.info.hidden = !visibility;
-          this._loggers.set(logger.info.resource, logger);
-          this._onDidChangeVisibility.fire([logger.info.resource, visibility]);
-        }
-      }
-      getLogLevel(resource) {
-        let logLevel;
-        if (resource) {
-          logLevel = this._loggers.get(resource)?.info.logLevel;
-        }
-        return logLevel ?? this.logLevel;
-      }
-      registerLogger(resource) {
-        const existing = this._loggers.get(resource.resource);
-        if (existing) {
-          if (existing.info.hidden !== resource.hidden) {
-            this.setVisibility(resource.resource, !resource.hidden);
-          }
-        } else {
-          this._loggers.set(resource.resource, { info: resource, logger: void 0 });
-          this._onDidChangeLoggers.fire({ added: [resource], removed: [] });
-        }
-      }
-      dispose() {
-        this._loggers.forEach((logger) => logger.logger?.dispose());
-        this._loggers.clear();
-        super.dispose();
-      }
-    };
-    NullLogger = class {
-      constructor() {
-        this.onDidChangeLogLevel = new Emitter().event;
-      }
-      setLevel(level) {
-      }
-      getLevel() {
-        return LogLevel.Info;
-      }
-      trace(message, ...args) {
-      }
-      debug(message, ...args) {
-      }
-      info(message, ...args) {
-      }
-      warn(message, ...args) {
-      }
-      error(message, ...args) {
-      }
-      dispose() {
-      }
-    };
-    NullLoggerService = class extends AbstractLoggerService {
-      constructor() {
-        super(LogLevel.Off, URI.parse("log:///log"));
-      }
-      doCreateLogger(resource, logLevel, options) {
-        return new NullLogger();
-      }
-    };
-    new RawContextKey("logLevel", LogLevelToString(LogLevel.Info));
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/browser/triggerInlineEditCommandsRegistry.js
-var TriggerInlineEditCommandsRegistry;
-var init_triggerInlineEditCommandsRegistry = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/browser/triggerInlineEditCommandsRegistry.js"() {
-    TriggerInlineEditCommandsRegistry = class _TriggerInlineEditCommandsRegistry {
-      static {
-        this.REGISTERED_COMMANDS = /* @__PURE__ */ new Set();
-      }
-      static getRegisteredCommands() {
-        return [..._TriggerInlineEditCommandsRegistry.REGISTERED_COMMANDS];
-      }
-      static registerCommand(commandId) {
-        _TriggerInlineEditCommandsRegistry.REGISTERED_COMMANDS.add(commandId);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/browser/editorExtensions.js
-function registerModelAndPositionCommand(id, handler) {
-  CommandsRegistry.registerCommand(id, function(accessor, ...args) {
-    const instaService = accessor.get(IInstantiationService);
-    const [resource, position] = args;
-    assertType(URI.isUri(resource));
-    assertType(Position.isIPosition(position));
-    const model = accessor.get(IModelService).getModel(resource);
-    if (model) {
-      const editorPosition = Position.lift(position);
-      return instaService.invokeFunction(handler, model, editorPosition, ...args.slice(2));
-    }
-    return accessor.get(ITextModelService).createModelReference(resource).then((reference) => {
-      return new Promise((resolve3, reject) => {
-        try {
-          const result = instaService.invokeFunction(handler, reference.object.textEditorModel, Position.lift(position), args.slice(2));
-          resolve3(result);
-        } catch (err) {
-          reject(err);
-        }
-      }).finally(() => {
-        reference.dispose();
-      });
-    });
-  });
-}
-function registerEditorCommand(editorCommand) {
-  EditorContributionRegistry.INSTANCE.registerEditorCommand(editorCommand);
-  return editorCommand;
-}
-function registerEditorAction(ctor) {
-  const action = new ctor();
-  EditorContributionRegistry.INSTANCE.registerEditorAction(action);
-  return action;
-}
-function registerMultiEditorAction(action) {
-  EditorContributionRegistry.INSTANCE.registerEditorAction(action);
-  return action;
-}
-function registerInstantiatedEditorAction(editorAction) {
-  EditorContributionRegistry.INSTANCE.registerEditorAction(editorAction);
-}
-function registerEditorContribution(id, ctor, instantiation) {
-  EditorContributionRegistry.INSTANCE.registerEditorContribution(id, ctor, instantiation);
-}
-function registerCommand(command) {
-  command.register();
-  return command;
-}
-var Command, MultiCommand, ProxyCommand, EditorCommand, EditorAction, MultiEditorAction, EditorAction2, EditorExtensionsRegistry, Extensions2, EditorContributionRegistry, UndoCommand, RedoCommand, SelectAllCommand;
-var init_editorExtensions = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/browser/editorExtensions.js"() {
-    init_nls();
-    init_uri();
-    init_codeEditorService();
-    init_position();
-    init_model();
-    init_resolverService();
-    init_actions2();
-    init_commands();
-    init_contextkey();
-    init_instantiation();
-    init_keybindingsRegistry();
-    init_platform2();
-    init_telemetry();
-    init_types();
-    init_log();
-    init_dom();
-    init_triggerInlineEditCommandsRegistry();
-    Command = class {
-      constructor(opts) {
-        this.id = opts.id;
-        this.precondition = opts.precondition;
-        this._kbOpts = opts.kbOpts;
-        this._menuOpts = opts.menuOpts;
-        this.metadata = opts.metadata;
-        this.canTriggerInlineEdits = opts.canTriggerInlineEdits;
-      }
-      register() {
-        if (Array.isArray(this._menuOpts)) {
-          this._menuOpts.forEach(this._registerMenuItem, this);
-        } else if (this._menuOpts) {
-          this._registerMenuItem(this._menuOpts);
-        }
-        if (this._kbOpts) {
-          const kbOptsArr = Array.isArray(this._kbOpts) ? this._kbOpts : [this._kbOpts];
-          for (const kbOpts of kbOptsArr) {
-            let kbWhen = kbOpts.kbExpr;
-            if (this.precondition) {
-              if (kbWhen) {
-                kbWhen = ContextKeyExpr.and(kbWhen, this.precondition);
-              } else {
-                kbWhen = this.precondition;
-              }
-            }
-            const desc = {
-              id: this.id,
-              weight: kbOpts.weight,
-              args: kbOpts.args,
-              when: kbWhen,
-              primary: kbOpts.primary,
-              secondary: kbOpts.secondary,
-              win: kbOpts.win,
-              linux: kbOpts.linux,
-              mac: kbOpts.mac
-            };
-            KeybindingsRegistry.registerKeybindingRule(desc);
-          }
-        }
-        CommandsRegistry.registerCommand({
-          id: this.id,
-          handler: (accessor, args) => this.runCommand(accessor, args),
-          metadata: this.metadata
-        });
-        if (this.canTriggerInlineEdits) {
-          TriggerInlineEditCommandsRegistry.registerCommand(this.id);
-        }
-      }
-      _registerMenuItem(item) {
-        MenuRegistry.appendMenuItem(item.menuId, {
-          group: item.group,
-          command: {
-            id: this.id,
-            title: item.title,
-            icon: item.icon,
-            precondition: this.precondition
-          },
-          when: item.when,
-          order: item.order
-        });
-      }
-    };
-    MultiCommand = class extends Command {
-      constructor() {
-        super(...arguments);
-        this._implementations = [];
-      }
-      /**
-       * A higher priority gets to be looked at first
-       */
-      addImplementation(priority, name, implementation, when) {
-        this._implementations.push({ priority, name, implementation, when });
-        this._implementations.sort((a, b) => b.priority - a.priority);
-        return {
-          dispose: () => {
-            for (let i2 = 0; i2 < this._implementations.length; i2++) {
-              if (this._implementations[i2].implementation === implementation) {
-                this._implementations.splice(i2, 1);
-                return;
-              }
-            }
-          }
-        };
-      }
-      runCommand(accessor, args) {
-        const logService = accessor.get(ILogService);
-        const contextKeyService = accessor.get(IContextKeyService);
-        logService.trace(`Executing Command '${this.id}' which has ${this._implementations.length} bound.`);
-        for (const impl of this._implementations) {
-          if (impl.when) {
-            const context = contextKeyService.getContext(getActiveElement());
-            const value = impl.when.evaluate(context);
-            if (!value) {
-              continue;
-            }
-          }
-          const result = impl.implementation(accessor, args);
-          if (result) {
-            logService.trace(`Command '${this.id}' was handled by '${impl.name}'.`);
-            if (typeof result === "boolean") {
-              return;
-            }
-            return result;
-          }
-        }
-        logService.trace(`The Command '${this.id}' was not handled by any implementation.`);
-      }
-    };
-    ProxyCommand = class extends Command {
-      constructor(command, opts) {
-        super(opts);
-        this.command = command;
-      }
-      runCommand(accessor, args) {
-        return this.command.runCommand(accessor, args);
-      }
-    };
-    EditorCommand = class _EditorCommand extends Command {
-      /**
-       * Create a command class that is bound to a certain editor contribution.
-       */
-      static bindToContribution(controllerGetter) {
-        return class EditorControllerCommandImpl extends _EditorCommand {
-          constructor(opts) {
-            super(opts);
-            this._callback = opts.handler;
-          }
-          runEditorCommand(accessor, editor2, args) {
-            const controller = controllerGetter(editor2);
-            if (controller) {
-              this._callback(controller, args);
-            }
-          }
-        };
-      }
-      static runEditorCommand(accessor, args, precondition, runner) {
-        const codeEditorService = accessor.get(ICodeEditorService);
-        const editor2 = codeEditorService.getFocusedCodeEditor() || codeEditorService.getActiveCodeEditor();
-        if (!editor2) {
-          return;
-        }
-        return editor2.invokeWithinContext((editorAccessor) => {
-          const kbService = editorAccessor.get(IContextKeyService);
-          if (!kbService.contextMatchesRules(precondition ?? void 0)) {
-            return;
-          }
-          return runner(editorAccessor, editor2, args);
-        });
-      }
-      runCommand(accessor, args) {
-        return _EditorCommand.runEditorCommand(accessor, args, this.precondition, (accessor2, editor2, args2) => this.runEditorCommand(accessor2, editor2, args2));
-      }
-    };
-    EditorAction = class _EditorAction extends EditorCommand {
-      static convertOptions(opts) {
-        let menuOpts;
-        if (Array.isArray(opts.menuOpts)) {
-          menuOpts = opts.menuOpts;
-        } else if (opts.menuOpts) {
-          menuOpts = [opts.menuOpts];
-        } else {
-          menuOpts = [];
-        }
-        function withDefaults(item) {
-          if (!item.menuId) {
-            item.menuId = MenuId.EditorContext;
-          }
-          if (!item.title) {
-            item.title = typeof opts.label === "string" ? opts.label : opts.label.value;
-          }
-          item.when = ContextKeyExpr.and(opts.precondition, item.when);
-          return item;
-        }
-        if (Array.isArray(opts.contextMenuOpts)) {
-          menuOpts.push(...opts.contextMenuOpts.map(withDefaults));
-        } else if (opts.contextMenuOpts) {
-          menuOpts.push(withDefaults(opts.contextMenuOpts));
-        }
-        opts.menuOpts = menuOpts;
-        return opts;
-      }
-      constructor(opts) {
-        super(_EditorAction.convertOptions(opts));
-        if (typeof opts.label === "string") {
-          this.label = opts.label;
-          this.alias = opts.alias ?? opts.label;
-        } else {
-          this.label = opts.label.value;
-          this.alias = opts.alias ?? opts.label.original;
-        }
-      }
-      runEditorCommand(accessor, editor2, args) {
-        this.reportTelemetry(accessor, editor2);
-        return this.run(accessor, editor2, args || {});
-      }
-      reportTelemetry(accessor, editor2) {
-        accessor.get(ITelemetryService).publicLog2("editorActionInvoked", { name: this.label, id: this.id });
-      }
-    };
-    MultiEditorAction = class extends EditorAction {
-      constructor() {
-        super(...arguments);
-        this._implementations = [];
-      }
-      /**
-       * A higher priority gets to be looked at first
-       */
-      addImplementation(priority, implementation) {
-        this._implementations.push([priority, implementation]);
-        this._implementations.sort((a, b) => b[0] - a[0]);
-        return {
-          dispose: () => {
-            for (let i2 = 0; i2 < this._implementations.length; i2++) {
-              if (this._implementations[i2][1] === implementation) {
-                this._implementations.splice(i2, 1);
-                return;
-              }
-            }
-          }
-        };
-      }
-      run(accessor, editor2, args) {
-        for (const impl of this._implementations) {
-          const result = impl[1](accessor, editor2, args);
-          if (result) {
-            if (typeof result === "boolean") {
-              return;
-            }
-            return result;
-          }
-        }
-      }
-    };
-    EditorAction2 = class extends Action2 {
-      run(accessor, ...args) {
-        const codeEditorService = accessor.get(ICodeEditorService);
-        const editor2 = codeEditorService.getFocusedCodeEditor() || codeEditorService.getActiveCodeEditor();
-        if (!editor2) {
-          return;
-        }
-        return editor2.invokeWithinContext((editorAccessor) => {
-          const kbService = editorAccessor.get(IContextKeyService);
-          const logService = editorAccessor.get(ILogService);
-          const enabled = kbService.contextMatchesRules(this.desc.precondition ?? void 0);
-          if (!enabled) {
-            logService.debug(`[EditorAction2] NOT running command because its precondition is FALSE`, this.desc.id, this.desc.precondition?.serialize());
-            return;
-          }
-          return this.runEditorCommand(editorAccessor, editor2, ...args);
-        });
-      }
-    };
-    (function(EditorExtensionsRegistry2) {
-      function getEditorCommand(commandId) {
-        return EditorContributionRegistry.INSTANCE.getEditorCommand(commandId);
-      }
-      EditorExtensionsRegistry2.getEditorCommand = getEditorCommand;
-      function getEditorActions() {
-        return EditorContributionRegistry.INSTANCE.getEditorActions();
-      }
-      EditorExtensionsRegistry2.getEditorActions = getEditorActions;
-      function getEditorContributions() {
-        return EditorContributionRegistry.INSTANCE.getEditorContributions();
-      }
-      EditorExtensionsRegistry2.getEditorContributions = getEditorContributions;
-      function getSomeEditorContributions(ids) {
-        return EditorContributionRegistry.INSTANCE.getEditorContributions().filter((c) => ids.indexOf(c.id) >= 0);
-      }
-      EditorExtensionsRegistry2.getSomeEditorContributions = getSomeEditorContributions;
-      function getDiffEditorContributions() {
-        return EditorContributionRegistry.INSTANCE.getDiffEditorContributions();
-      }
-      EditorExtensionsRegistry2.getDiffEditorContributions = getDiffEditorContributions;
-    })(EditorExtensionsRegistry || (EditorExtensionsRegistry = {}));
-    Extensions2 = {
-      EditorCommonContributions: "editor.contributions"
-    };
-    EditorContributionRegistry = class _EditorContributionRegistry {
-      static {
-        this.INSTANCE = new _EditorContributionRegistry();
-      }
-      constructor() {
-        this.editorContributions = [];
-        this.diffEditorContributions = [];
-        this.editorActions = [];
-        this.editorCommands = /* @__PURE__ */ Object.create(null);
-      }
-      registerEditorContribution(id, ctor, instantiation) {
-        this.editorContributions.push({ id, ctor, instantiation });
-      }
-      getEditorContributions() {
-        return this.editorContributions.slice(0);
-      }
-      getDiffEditorContributions() {
-        return this.diffEditorContributions.slice(0);
-      }
-      registerEditorAction(action) {
-        action.register();
-        this.editorActions.push(action);
-      }
-      getEditorActions() {
-        return this.editorActions;
-      }
-      registerEditorCommand(editorCommand) {
-        editorCommand.register();
-        this.editorCommands[editorCommand.id] = editorCommand;
-      }
-      getEditorCommand(commandId) {
-        return this.editorCommands[commandId] || null;
-      }
-    };
-    Registry.add(Extensions2.EditorCommonContributions, EditorContributionRegistry.INSTANCE);
-    UndoCommand = registerCommand(new MultiCommand({
-      id: "undo",
-      precondition: void 0,
-      kbOpts: {
-        weight: 0,
-        primary: 2048 | 56
-        /* KeyCode.KeyZ */
-      },
-      menuOpts: [{
-        menuId: MenuId.MenubarEditMenu,
-        group: "1_do",
-        title: localize(69, "&&Undo"),
-        order: 1
-      }, {
-        menuId: MenuId.CommandPalette,
-        group: "",
-        title: localize(70, "Undo"),
-        order: 1
-      }, {
-        menuId: MenuId.SimpleEditorContext,
-        group: "1_do",
-        title: localize(71, "Undo"),
-        order: 1
-      }]
-    }));
-    registerCommand(new ProxyCommand(UndoCommand, { id: "default:undo", precondition: void 0 }));
-    RedoCommand = registerCommand(new MultiCommand({
-      id: "redo",
-      precondition: void 0,
-      kbOpts: {
-        weight: 0,
-        primary: 2048 | 55,
-        secondary: [
-          2048 | 1024 | 56
-          /* KeyCode.KeyZ */
-        ],
-        mac: {
-          primary: 2048 | 1024 | 56
-          /* KeyCode.KeyZ */
-        }
-      },
-      menuOpts: [{
-        menuId: MenuId.MenubarEditMenu,
-        group: "1_do",
-        title: localize(72, "&&Redo"),
-        order: 2
-      }, {
-        menuId: MenuId.CommandPalette,
-        group: "",
-        title: localize(73, "Redo"),
-        order: 1
-      }, {
-        menuId: MenuId.SimpleEditorContext,
-        group: "1_do",
-        title: localize(74, "Redo"),
-        order: 2
-      }]
-    }));
-    registerCommand(new ProxyCommand(RedoCommand, { id: "default:redo", precondition: void 0 }));
-    SelectAllCommand = registerCommand(new MultiCommand({
-      id: "editor.action.selectAll",
-      precondition: void 0,
-      kbOpts: {
-        weight: 0,
-        kbExpr: null,
-        primary: 2048 | 31
-        /* KeyCode.KeyA */
-      },
-      menuOpts: [{
-        menuId: MenuId.MenubarSelectionMenu,
-        group: "1_basic",
-        title: localize(75, "&&Select All"),
-        order: 1
-      }, {
-        menuId: MenuId.CommandPalette,
-        group: "",
-        title: localize(76, "Select All"),
-        order: 1
-      }, {
-        menuId: MenuId.SimpleEditorContext,
-        group: "9_select",
-        title: localize(77, "Select All"),
-        order: 1
-      }]
-    }));
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/core/range.js
-var Range;
-var init_range = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/core/range.js"() {
-    init_position();
-    Range = class _Range {
-      constructor(startLineNumber, startColumn, endLineNumber, endColumn) {
-        if (startLineNumber > endLineNumber || startLineNumber === endLineNumber && startColumn > endColumn) {
-          this.startLineNumber = endLineNumber;
-          this.startColumn = endColumn;
-          this.endLineNumber = startLineNumber;
-          this.endColumn = startColumn;
-        } else {
-          this.startLineNumber = startLineNumber;
-          this.startColumn = startColumn;
-          this.endLineNumber = endLineNumber;
-          this.endColumn = endColumn;
-        }
-      }
-      /**
-       * Test if this range is empty.
-       */
-      isEmpty() {
-        return _Range.isEmpty(this);
-      }
-      /**
-       * Test if `range` is empty.
-       */
-      static isEmpty(range2) {
-        return range2.startLineNumber === range2.endLineNumber && range2.startColumn === range2.endColumn;
-      }
-      /**
-       * Test if position is in this range. If the position is at the edges, will return true.
-       */
-      containsPosition(position) {
-        return _Range.containsPosition(this, position);
-      }
-      /**
-       * Test if `position` is in `range`. If the position is at the edges, will return true.
-       */
-      static containsPosition(range2, position) {
-        if (position.lineNumber < range2.startLineNumber || position.lineNumber > range2.endLineNumber) {
-          return false;
-        }
-        if (position.lineNumber === range2.startLineNumber && position.column < range2.startColumn) {
-          return false;
-        }
-        if (position.lineNumber === range2.endLineNumber && position.column > range2.endColumn) {
-          return false;
-        }
-        return true;
-      }
-      /**
-       * Test if `position` is in `range`. If the position is at the edges, will return false.
-       * @internal
-       */
-      static strictContainsPosition(range2, position) {
-        if (position.lineNumber < range2.startLineNumber || position.lineNumber > range2.endLineNumber) {
-          return false;
-        }
-        if (position.lineNumber === range2.startLineNumber && position.column <= range2.startColumn) {
-          return false;
-        }
-        if (position.lineNumber === range2.endLineNumber && position.column >= range2.endColumn) {
-          return false;
-        }
-        return true;
-      }
-      /**
-       * Test if range is in this range. If the range is equal to this range, will return true.
-       */
-      containsRange(range2) {
-        return _Range.containsRange(this, range2);
-      }
-      /**
-       * Test if `otherRange` is in `range`. If the ranges are equal, will return true.
-       */
-      static containsRange(range2, otherRange) {
-        if (otherRange.startLineNumber < range2.startLineNumber || otherRange.endLineNumber < range2.startLineNumber) {
-          return false;
-        }
-        if (otherRange.startLineNumber > range2.endLineNumber || otherRange.endLineNumber > range2.endLineNumber) {
-          return false;
-        }
-        if (otherRange.startLineNumber === range2.startLineNumber && otherRange.startColumn < range2.startColumn) {
-          return false;
-        }
-        if (otherRange.endLineNumber === range2.endLineNumber && otherRange.endColumn > range2.endColumn) {
-          return false;
-        }
-        return true;
-      }
-      /**
-       * Test if `range` is strictly in this range. `range` must start after and end before this range for the result to be true.
-       */
-      strictContainsRange(range2) {
-        return _Range.strictContainsRange(this, range2);
-      }
-      /**
-       * Test if `otherRange` is strictly in `range` (must start after, and end before). If the ranges are equal, will return false.
-       */
-      static strictContainsRange(range2, otherRange) {
-        if (otherRange.startLineNumber < range2.startLineNumber || otherRange.endLineNumber < range2.startLineNumber) {
-          return false;
-        }
-        if (otherRange.startLineNumber > range2.endLineNumber || otherRange.endLineNumber > range2.endLineNumber) {
-          return false;
-        }
-        if (otherRange.startLineNumber === range2.startLineNumber && otherRange.startColumn <= range2.startColumn) {
-          return false;
-        }
-        if (otherRange.endLineNumber === range2.endLineNumber && otherRange.endColumn >= range2.endColumn) {
-          return false;
-        }
-        return true;
-      }
-      /**
-       * A reunion of the two ranges.
-       * The smallest position will be used as the start point, and the largest one as the end point.
-       */
-      plusRange(range2) {
-        return _Range.plusRange(this, range2);
-      }
-      /**
-       * A reunion of the two ranges.
-       * The smallest position will be used as the start point, and the largest one as the end point.
-       */
-      static plusRange(a, b) {
-        let startLineNumber;
-        let startColumn;
-        let endLineNumber;
-        let endColumn;
-        if (b.startLineNumber < a.startLineNumber) {
-          startLineNumber = b.startLineNumber;
-          startColumn = b.startColumn;
-        } else if (b.startLineNumber === a.startLineNumber) {
-          startLineNumber = b.startLineNumber;
-          startColumn = Math.min(b.startColumn, a.startColumn);
-        } else {
-          startLineNumber = a.startLineNumber;
-          startColumn = a.startColumn;
-        }
-        if (b.endLineNumber > a.endLineNumber) {
-          endLineNumber = b.endLineNumber;
-          endColumn = b.endColumn;
-        } else if (b.endLineNumber === a.endLineNumber) {
-          endLineNumber = b.endLineNumber;
-          endColumn = Math.max(b.endColumn, a.endColumn);
-        } else {
-          endLineNumber = a.endLineNumber;
-          endColumn = a.endColumn;
-        }
-        return new _Range(startLineNumber, startColumn, endLineNumber, endColumn);
-      }
-      /**
-       * A intersection of the two ranges.
-       */
-      intersectRanges(range2) {
-        return _Range.intersectRanges(this, range2);
-      }
-      /**
-       * A intersection of the two ranges.
-       */
-      static intersectRanges(a, b) {
-        let resultStartLineNumber = a.startLineNumber;
-        let resultStartColumn = a.startColumn;
-        let resultEndLineNumber = a.endLineNumber;
-        let resultEndColumn = a.endColumn;
-        const otherStartLineNumber = b.startLineNumber;
-        const otherStartColumn = b.startColumn;
-        const otherEndLineNumber = b.endLineNumber;
-        const otherEndColumn = b.endColumn;
-        if (resultStartLineNumber < otherStartLineNumber) {
-          resultStartLineNumber = otherStartLineNumber;
-          resultStartColumn = otherStartColumn;
-        } else if (resultStartLineNumber === otherStartLineNumber) {
-          resultStartColumn = Math.max(resultStartColumn, otherStartColumn);
-        }
-        if (resultEndLineNumber > otherEndLineNumber) {
-          resultEndLineNumber = otherEndLineNumber;
-          resultEndColumn = otherEndColumn;
-        } else if (resultEndLineNumber === otherEndLineNumber) {
-          resultEndColumn = Math.min(resultEndColumn, otherEndColumn);
-        }
-        if (resultStartLineNumber > resultEndLineNumber) {
-          return null;
-        }
-        if (resultStartLineNumber === resultEndLineNumber && resultStartColumn > resultEndColumn) {
-          return null;
-        }
-        return new _Range(resultStartLineNumber, resultStartColumn, resultEndLineNumber, resultEndColumn);
-      }
-      /**
-       * Test if this range equals other.
-       */
-      equalsRange(other) {
-        return _Range.equalsRange(this, other);
-      }
-      /**
-       * Test if range `a` equals `b`.
-       */
-      static equalsRange(a, b) {
-        if (!a && !b) {
-          return true;
-        }
-        return !!a && !!b && a.startLineNumber === b.startLineNumber && a.startColumn === b.startColumn && a.endLineNumber === b.endLineNumber && a.endColumn === b.endColumn;
-      }
-      /**
-       * Return the end position (which will be after or equal to the start position)
-       */
-      getEndPosition() {
-        return _Range.getEndPosition(this);
-      }
-      /**
-       * Return the end position (which will be after or equal to the start position)
-       */
-      static getEndPosition(range2) {
-        return new Position(range2.endLineNumber, range2.endColumn);
-      }
-      /**
-       * Return the start position (which will be before or equal to the end position)
-       */
-      getStartPosition() {
-        return _Range.getStartPosition(this);
-      }
-      /**
-       * Return the start position (which will be before or equal to the end position)
-       */
-      static getStartPosition(range2) {
-        return new Position(range2.startLineNumber, range2.startColumn);
-      }
-      /**
-       * Transform to a user presentable string representation.
-       */
-      toString() {
-        return "[" + this.startLineNumber + "," + this.startColumn + " -> " + this.endLineNumber + "," + this.endColumn + "]";
-      }
-      /**
-       * Create a new range using this range's start position, and using endLineNumber and endColumn as the end position.
-       */
-      setEndPosition(endLineNumber, endColumn) {
-        return new _Range(this.startLineNumber, this.startColumn, endLineNumber, endColumn);
-      }
-      /**
-       * Create a new range using this range's end position, and using startLineNumber and startColumn as the start position.
-       */
-      setStartPosition(startLineNumber, startColumn) {
-        return new _Range(startLineNumber, startColumn, this.endLineNumber, this.endColumn);
-      }
-      /**
-       * Create a new empty range using this range's start position.
-       */
-      collapseToStart() {
-        return _Range.collapseToStart(this);
-      }
-      /**
-       * Create a new empty range using this range's start position.
-       */
-      static collapseToStart(range2) {
-        return new _Range(range2.startLineNumber, range2.startColumn, range2.startLineNumber, range2.startColumn);
-      }
-      /**
-       * Create a new empty range using this range's end position.
-       */
-      collapseToEnd() {
-        return _Range.collapseToEnd(this);
-      }
-      /**
-       * Create a new empty range using this range's end position.
-       */
-      static collapseToEnd(range2) {
-        return new _Range(range2.endLineNumber, range2.endColumn, range2.endLineNumber, range2.endColumn);
-      }
-      /**
-       * Moves the range by the given amount of lines.
-       */
-      delta(lineCount) {
-        return new _Range(this.startLineNumber + lineCount, this.startColumn, this.endLineNumber + lineCount, this.endColumn);
-      }
-      isSingleLine() {
-        return this.startLineNumber === this.endLineNumber;
-      }
-      // ---
-      static fromPositions(start, end = start) {
-        return new _Range(start.lineNumber, start.column, end.lineNumber, end.column);
-      }
-      static lift(range2) {
-        if (!range2) {
-          return null;
-        }
-        return new _Range(range2.startLineNumber, range2.startColumn, range2.endLineNumber, range2.endColumn);
-      }
-      /**
-       * Test if `obj` is an `IRange`.
-       */
-      static isIRange(obj) {
-        return !!obj && typeof obj.startLineNumber === "number" && typeof obj.startColumn === "number" && typeof obj.endLineNumber === "number" && typeof obj.endColumn === "number";
-      }
-      /**
-       * Test if the two ranges are touching in any way.
-       */
-      static areIntersectingOrTouching(a, b) {
-        if (a.endLineNumber < b.startLineNumber || a.endLineNumber === b.startLineNumber && a.endColumn < b.startColumn) {
-          return false;
-        }
-        if (b.endLineNumber < a.startLineNumber || b.endLineNumber === a.startLineNumber && b.endColumn < a.startColumn) {
-          return false;
-        }
-        return true;
-      }
-      /**
-       * Test if the two ranges are intersecting. If the ranges are touching it returns true.
-       */
-      static areIntersecting(a, b) {
-        if (a.endLineNumber < b.startLineNumber || a.endLineNumber === b.startLineNumber && a.endColumn <= b.startColumn) {
-          return false;
-        }
-        if (b.endLineNumber < a.startLineNumber || b.endLineNumber === a.startLineNumber && b.endColumn <= a.startColumn) {
-          return false;
-        }
-        return true;
-      }
-      /**
-       * Test if the two ranges are intersecting, but not touching at all.
-       */
-      static areOnlyIntersecting(a, b) {
-        if (a.endLineNumber < b.startLineNumber - 1 || a.endLineNumber === b.startLineNumber && a.endColumn < b.startColumn - 1) {
-          return false;
-        }
-        if (b.endLineNumber < a.startLineNumber - 1 || b.endLineNumber === a.startLineNumber && b.endColumn < a.startColumn - 1) {
-          return false;
-        }
-        return true;
-      }
-      /**
-       * A function that compares ranges, useful for sorting ranges
-       * It will first compare ranges on the startPosition and then on the endPosition
-       */
-      static compareRangesUsingStarts(a, b) {
-        if (a && b) {
-          const aStartLineNumber = a.startLineNumber | 0;
-          const bStartLineNumber = b.startLineNumber | 0;
-          if (aStartLineNumber === bStartLineNumber) {
-            const aStartColumn = a.startColumn | 0;
-            const bStartColumn = b.startColumn | 0;
-            if (aStartColumn === bStartColumn) {
-              const aEndLineNumber = a.endLineNumber | 0;
-              const bEndLineNumber = b.endLineNumber | 0;
-              if (aEndLineNumber === bEndLineNumber) {
-                const aEndColumn = a.endColumn | 0;
-                const bEndColumn = b.endColumn | 0;
-                return aEndColumn - bEndColumn;
-              }
-              return aEndLineNumber - bEndLineNumber;
-            }
-            return aStartColumn - bStartColumn;
-          }
-          return aStartLineNumber - bStartLineNumber;
-        }
-        const aExists = a ? 1 : 0;
-        const bExists = b ? 1 : 0;
-        return aExists - bExists;
-      }
-      /**
-       * A function that compares ranges, useful for sorting ranges
-       * It will first compare ranges on the endPosition and then on the startPosition
-       */
-      static compareRangesUsingEnds(a, b) {
-        if (a.endLineNumber === b.endLineNumber) {
-          if (a.endColumn === b.endColumn) {
-            if (a.startLineNumber === b.startLineNumber) {
-              return a.startColumn - b.startColumn;
-            }
-            return a.startLineNumber - b.startLineNumber;
-          }
-          return a.endColumn - b.endColumn;
-        }
-        return a.endLineNumber - b.endLineNumber;
-      }
-      /**
-       * Test if the range spans multiple lines.
-       */
-      static spansMultipleLines(range2) {
-        return range2.endLineNumber > range2.startLineNumber;
-      }
-      toJSON() {
-        return this;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/core/selection.js
-var Selection;
-var init_selection = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/core/selection.js"() {
-    init_position();
-    init_range();
-    Selection = class _Selection extends Range {
-      constructor(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn) {
-        super(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn);
-        this.selectionStartLineNumber = selectionStartLineNumber;
-        this.selectionStartColumn = selectionStartColumn;
-        this.positionLineNumber = positionLineNumber;
-        this.positionColumn = positionColumn;
-      }
-      /**
-       * Transform to a human-readable representation.
-       */
-      toString() {
-        return "[" + this.selectionStartLineNumber + "," + this.selectionStartColumn + " -> " + this.positionLineNumber + "," + this.positionColumn + "]";
-      }
-      /**
-       * Test if equals other selection.
-       */
-      equalsSelection(other) {
-        return _Selection.selectionsEqual(this, other);
-      }
-      /**
-       * Test if the two selections are equal.
-       */
-      static selectionsEqual(a, b) {
-        return a.selectionStartLineNumber === b.selectionStartLineNumber && a.selectionStartColumn === b.selectionStartColumn && a.positionLineNumber === b.positionLineNumber && a.positionColumn === b.positionColumn;
-      }
-      /**
-       * Get directions (LTR or RTL).
-       */
-      getDirection() {
-        if (this.selectionStartLineNumber === this.startLineNumber && this.selectionStartColumn === this.startColumn) {
-          return 0;
-        }
-        return 1;
-      }
-      /**
-       * Create a new selection with a different `positionLineNumber` and `positionColumn`.
-       */
-      setEndPosition(endLineNumber, endColumn) {
-        if (this.getDirection() === 0) {
-          return new _Selection(this.startLineNumber, this.startColumn, endLineNumber, endColumn);
-        }
-        return new _Selection(endLineNumber, endColumn, this.startLineNumber, this.startColumn);
-      }
-      /**
-       * Get the position at `positionLineNumber` and `positionColumn`.
-       */
-      getPosition() {
-        return new Position(this.positionLineNumber, this.positionColumn);
-      }
-      /**
-       * Get the position at the start of the selection.
-      */
-      getSelectionStart() {
-        return new Position(this.selectionStartLineNumber, this.selectionStartColumn);
-      }
-      /**
-       * Create a new selection with a different `selectionStartLineNumber` and `selectionStartColumn`.
-       */
-      setStartPosition(startLineNumber, startColumn) {
-        if (this.getDirection() === 0) {
-          return new _Selection(startLineNumber, startColumn, this.endLineNumber, this.endColumn);
-        }
-        return new _Selection(this.endLineNumber, this.endColumn, startLineNumber, startColumn);
-      }
-      // ----
-      /**
-       * Create a `Selection` from one or two positions
-       */
-      static fromPositions(start, end = start) {
-        return new _Selection(start.lineNumber, start.column, end.lineNumber, end.column);
-      }
-      /**
-       * Creates a `Selection` from a range, given a direction.
-       */
-      static fromRange(range2, direction) {
-        if (direction === 0) {
-          return new _Selection(range2.startLineNumber, range2.startColumn, range2.endLineNumber, range2.endColumn);
-        } else {
-          return new _Selection(range2.endLineNumber, range2.endColumn, range2.startLineNumber, range2.startColumn);
-        }
-      }
-      /**
-       * Create a `Selection` from an `ISelection`.
-       */
-      static liftSelection(sel) {
-        return new _Selection(sel.selectionStartLineNumber, sel.selectionStartColumn, sel.positionLineNumber, sel.positionColumn);
-      }
-      /**
-       * `a` equals `b`.
-       */
-      static selectionsArrEqual(a, b) {
-        if (a && !b || !a && b) {
-          return false;
-        }
-        if (!a && !b) {
-          return true;
-        }
-        if (a.length !== b.length) {
-          return false;
-        }
-        for (let i2 = 0, len = a.length; i2 < len; i2++) {
-          if (!this.selectionsEqual(a[i2], b[i2])) {
-            return false;
-          }
-        }
-        return true;
-      }
-      /**
-       * Test if `obj` is an `ISelection`.
-       */
-      static isISelection(obj) {
-        return !!obj && typeof obj.selectionStartLineNumber === "number" && typeof obj.selectionStartColumn === "number" && typeof obj.positionLineNumber === "number" && typeof obj.positionColumn === "number";
-      }
-      /**
-       * Create with a direction.
-       */
-      static createWithDirection(startLineNumber, startColumn, endLineNumber, endColumn, direction) {
-        if (direction === 0) {
-          return new _Selection(startLineNumber, startColumn, endLineNumber, endColumn);
-        }
-        return new _Selection(endLineNumber, endColumn, startLineNumber, startColumn);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/languages/supports.js
-function createScopedLineTokens(context, offset) {
-  const tokenCount = context.getCount();
-  const tokenIndex = context.findTokenIndexAtOffset(offset);
-  const desiredLanguageId = context.getLanguageId(tokenIndex);
-  let lastTokenIndex = tokenIndex;
-  while (lastTokenIndex + 1 < tokenCount && context.getLanguageId(lastTokenIndex + 1) === desiredLanguageId) {
-    lastTokenIndex++;
-  }
-  let firstTokenIndex = tokenIndex;
-  while (firstTokenIndex > 0 && context.getLanguageId(firstTokenIndex - 1) === desiredLanguageId) {
-    firstTokenIndex--;
-  }
-  return new ScopedLineTokens(context, desiredLanguageId, firstTokenIndex, lastTokenIndex + 1, context.getStartOffset(firstTokenIndex), context.getEndOffset(lastTokenIndex));
-}
-function ignoreBracketsInToken(standardTokenType) {
-  return (standardTokenType & 3) !== 0;
-}
-var ScopedLineTokens;
-var init_supports = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/languages/supports.js"() {
-    ScopedLineTokens = class {
-      constructor(actual, languageId, firstTokenIndex, lastTokenIndex, firstCharOffset, lastCharOffset) {
-        this._scopedLineTokensBrand = void 0;
-        this._actual = actual;
-        this.languageId = languageId;
-        this._firstTokenIndex = firstTokenIndex;
-        this._lastTokenIndex = lastTokenIndex;
-        this.firstCharOffset = firstCharOffset;
-        this._lastCharOffset = lastCharOffset;
-        this.languageIdCodec = actual.languageIdCodec;
-      }
-      getLineContent() {
-        const actualLineContent = this._actual.getLineContent();
-        return actualLineContent.substring(this.firstCharOffset, this._lastCharOffset);
-      }
-      getLineLength() {
-        return this._lastCharOffset - this.firstCharOffset;
-      }
-      getActualLineContentBefore(offset) {
-        const actualLineContent = this._actual.getLineContent();
-        return actualLineContent.substring(0, this.firstCharOffset + offset);
-      }
-      getTokenCount() {
-        return this._lastTokenIndex - this._firstTokenIndex;
-      }
-      findTokenIndexAtOffset(offset) {
-        return this._actual.findTokenIndexAtOffset(offset + this.firstCharOffset) - this._firstTokenIndex;
-      }
-      getStandardTokenType(tokenIndex) {
-        return this._actual.getStandardTokenType(tokenIndex + this._firstTokenIndex);
-      }
-      toIViewLineTokens() {
-        return this._actual.sliceAndInflate(this.firstCharOffset, this._lastCharOffset, 0);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/core/cursorColumns.js
-var CursorColumns;
-var init_cursorColumns = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/core/cursorColumns.js"() {
-    init_strings();
-    CursorColumns = class _CursorColumns {
-      static _nextVisibleColumn(codePoint, visibleColumn, tabSize) {
-        if (codePoint === 9) {
-          return _CursorColumns.nextRenderTabStop(visibleColumn, tabSize);
-        }
-        if (isFullWidthCharacter(codePoint) || isEmojiImprecise(codePoint)) {
-          return visibleColumn + 2;
-        }
-        return visibleColumn + 1;
-      }
-      /**
-       * Returns a visible column from a column.
-       * @see {@link CursorColumns}
-       */
-      static visibleColumnFromColumn(lineContent, column, tabSize) {
-        const textLen = Math.min(column - 1, lineContent.length);
-        const text2 = lineContent.substring(0, textLen);
-        const iterator = new GraphemeIterator(text2);
-        let result = 0;
-        while (!iterator.eol()) {
-          const codePoint = getNextCodePoint(text2, textLen, iterator.offset);
-          iterator.nextGraphemeLength();
-          result = this._nextVisibleColumn(codePoint, result, tabSize);
-        }
-        return result;
-      }
-      /**
-       * Returns a column from a visible column.
-       * @see {@link CursorColumns}
-       */
-      static columnFromVisibleColumn(lineContent, visibleColumn, tabSize) {
-        if (visibleColumn <= 0) {
-          return 1;
-        }
-        const lineContentLength = lineContent.length;
-        const iterator = new GraphemeIterator(lineContent);
-        let beforeVisibleColumn = 0;
-        let beforeColumn = 1;
-        while (!iterator.eol()) {
-          const codePoint = getNextCodePoint(lineContent, lineContentLength, iterator.offset);
-          iterator.nextGraphemeLength();
-          const afterVisibleColumn = this._nextVisibleColumn(codePoint, beforeVisibleColumn, tabSize);
-          const afterColumn = iterator.offset + 1;
-          if (afterVisibleColumn >= visibleColumn) {
-            const beforeDelta = visibleColumn - beforeVisibleColumn;
-            const afterDelta = afterVisibleColumn - visibleColumn;
-            if (afterDelta < beforeDelta) {
-              return afterColumn;
-            } else {
-              return beforeColumn;
-            }
-          }
-          beforeVisibleColumn = afterVisibleColumn;
-          beforeColumn = afterColumn;
-        }
-        return lineContentLength + 1;
-      }
-      /**
-       * ATTENTION: This works with 0-based columns (as opposed to the regular 1-based columns)
-       * @see {@link CursorColumns}
-       */
-      static nextRenderTabStop(visibleColumn, tabSize) {
-        return visibleColumn + tabSize - visibleColumn % tabSize;
-      }
-      /**
-       * ATTENTION: This works with 0-based columns (as opposed to the regular 1-based columns)
-       * @see {@link CursorColumns}
-       */
-      static nextIndentTabStop(visibleColumn, indentSize) {
-        return _CursorColumns.nextRenderTabStop(visibleColumn, indentSize);
-      }
-      /**
-       * ATTENTION: This works with 0-based columns (as opposed to the regular 1-based columns)
-       * @see {@link CursorColumns}
-       */
-      static prevRenderTabStop(column, tabSize) {
-        return Math.max(0, column - 1 - (column - 1) % tabSize);
-      }
-      /**
-       * ATTENTION: This works with 0-based columns (as opposed to the regular 1-based columns)
-       * @see {@link CursorColumns}
-       */
-      static prevIndentTabStop(column, indentSize) {
-        return _CursorColumns.prevRenderTabStop(column, indentSize);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/core/misc/indentation.js
-function _normalizeIndentationFromWhitespace(str, indentSize, insertSpaces) {
-  let spacesCnt = 0;
-  for (let i2 = 0; i2 < str.length; i2++) {
-    if (str.charAt(i2) === "	") {
-      spacesCnt = CursorColumns.nextIndentTabStop(spacesCnt, indentSize);
-    } else {
-      spacesCnt++;
-    }
-  }
-  let result = "";
-  if (!insertSpaces) {
-    const tabsCnt = Math.floor(spacesCnt / indentSize);
-    spacesCnt = spacesCnt % indentSize;
-    for (let i2 = 0; i2 < tabsCnt; i2++) {
-      result += "	";
-    }
-  }
-  for (let i2 = 0; i2 < spacesCnt; i2++) {
-    result += " ";
-  }
-  return result;
-}
-function normalizeIndentation(str, indentSize, insertSpaces) {
-  let firstNonWhitespaceIndex$1 = firstNonWhitespaceIndex(str);
-  if (firstNonWhitespaceIndex$1 === -1) {
-    firstNonWhitespaceIndex$1 = str.length;
-  }
-  return _normalizeIndentationFromWhitespace(str.substring(0, firstNonWhitespaceIndex$1), indentSize, insertSpaces) + str.substring(firstNonWhitespaceIndex$1);
-}
-var init_indentation = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/core/misc/indentation.js"() {
-    init_strings();
-    init_cursorColumns();
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/inputMode.js
-var InputModeImpl, InputMode;
-var init_inputMode = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/inputMode.js"() {
-    init_event();
-    InputModeImpl = class {
-      constructor() {
-        this._inputMode = "insert";
-        this._onDidChangeInputMode = new Emitter();
-        this.onDidChangeInputMode = this._onDidChangeInputMode.event;
-      }
-      getInputMode() {
-        return this._inputMode;
-      }
-    };
-    InputMode = new InputModeImpl();
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/cursorCommon.js
-function isQuote(ch) {
-  return ch === "'" || ch === '"' || ch === "`";
-}
-var autoCloseAlways, autoCloseNever, autoCloseBeforeWhitespace, CursorConfiguration, CursorState, PartialModelCursorState, PartialViewCursorState, SingleCursorState, EditOperationResult;
-var init_cursorCommon = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/cursorCommon.js"() {
-    init_position();
-    init_range();
-    init_selection();
-    init_supports();
-    init_cursorColumns();
-    init_indentation();
-    init_inputMode();
-    autoCloseAlways = () => true;
-    autoCloseNever = () => false;
-    autoCloseBeforeWhitespace = (chr) => chr === " " || chr === "	";
-    CursorConfiguration = class {
-      static shouldRecreate(e) {
-        return e.hasChanged(
-          165
-          /* EditorOption.layoutInfo */
-        ) || e.hasChanged(
-          148
-          /* EditorOption.wordSeparators */
-        ) || e.hasChanged(
-          45
-          /* EditorOption.emptySelectionClipboard */
-        ) || e.hasChanged(
-          85
-          /* EditorOption.multiCursorMergeOverlapping */
-        ) || e.hasChanged(
-          88
-          /* EditorOption.multiCursorPaste */
-        ) || e.hasChanged(
-          89
-          /* EditorOption.multiCursorLimit */
-        ) || e.hasChanged(
-          10
-          /* EditorOption.autoClosingBrackets */
-        ) || e.hasChanged(
-          11
-          /* EditorOption.autoClosingComments */
-        ) || e.hasChanged(
-          15
-          /* EditorOption.autoClosingQuotes */
-        ) || e.hasChanged(
-          13
-          /* EditorOption.autoClosingDelete */
-        ) || e.hasChanged(
-          14
-          /* EditorOption.autoClosingOvertype */
-        ) || e.hasChanged(
-          20
-          /* EditorOption.autoSurround */
-        ) || e.hasChanged(
-          145
-          /* EditorOption.useTabStops */
-        ) || e.hasChanged(
-          141
-          /* EditorOption.trimWhitespaceOnDelete */
-        ) || e.hasChanged(
-          59
-          /* EditorOption.fontInfo */
-        ) || e.hasChanged(
-          104
-          /* EditorOption.readOnly */
-        ) || e.hasChanged(
-          147
-          /* EditorOption.wordSegmenterLocales */
-        ) || e.hasChanged(
-          93
-          /* EditorOption.overtypeOnPaste */
-        );
-      }
-      constructor(languageId, modelOptions, configuration, languageConfigurationService) {
-        this.languageConfigurationService = languageConfigurationService;
-        this._cursorMoveConfigurationBrand = void 0;
-        this._languageId = languageId;
-        const options = configuration.options;
-        const layoutInfo = options.get(
-          165
-          /* EditorOption.layoutInfo */
-        );
-        const fontInfo = options.get(
-          59
-          /* EditorOption.fontInfo */
-        );
-        this.readOnly = options.get(
-          104
-          /* EditorOption.readOnly */
-        );
-        this.tabSize = modelOptions.tabSize;
-        this.indentSize = modelOptions.indentSize;
-        this.insertSpaces = modelOptions.insertSpaces;
-        this.stickyTabStops = options.get(
-          132
-          /* EditorOption.stickyTabStops */
-        );
-        this.lineHeight = fontInfo.lineHeight;
-        this.typicalHalfwidthCharacterWidth = fontInfo.typicalHalfwidthCharacterWidth;
-        this.pageSize = Math.max(1, Math.floor(layoutInfo.height / this.lineHeight) - 2);
-        this.useTabStops = options.get(
-          145
-          /* EditorOption.useTabStops */
-        );
-        this.trimWhitespaceOnDelete = options.get(
-          141
-          /* EditorOption.trimWhitespaceOnDelete */
-        );
-        this.wordSeparators = options.get(
-          148
-          /* EditorOption.wordSeparators */
-        );
-        this.emptySelectionClipboard = options.get(
-          45
-          /* EditorOption.emptySelectionClipboard */
-        );
-        this.copyWithSyntaxHighlighting = options.get(
-          31
-          /* EditorOption.copyWithSyntaxHighlighting */
-        );
-        this.multiCursorMergeOverlapping = options.get(
-          85
-          /* EditorOption.multiCursorMergeOverlapping */
-        );
-        this.multiCursorPaste = options.get(
-          88
-          /* EditorOption.multiCursorPaste */
-        );
-        this.multiCursorLimit = options.get(
-          89
-          /* EditorOption.multiCursorLimit */
-        );
-        this.autoClosingBrackets = options.get(
-          10
-          /* EditorOption.autoClosingBrackets */
-        );
-        this.autoClosingComments = options.get(
-          11
-          /* EditorOption.autoClosingComments */
-        );
-        this.autoClosingQuotes = options.get(
-          15
-          /* EditorOption.autoClosingQuotes */
-        );
-        this.autoClosingDelete = options.get(
-          13
-          /* EditorOption.autoClosingDelete */
-        );
-        this.autoClosingOvertype = options.get(
-          14
-          /* EditorOption.autoClosingOvertype */
-        );
-        this.autoSurround = options.get(
-          20
-          /* EditorOption.autoSurround */
-        );
-        this.autoIndent = options.get(
-          16
-          /* EditorOption.autoIndent */
-        );
-        this.wordSegmenterLocales = options.get(
-          147
-          /* EditorOption.wordSegmenterLocales */
-        );
-        this.overtypeOnPaste = options.get(
-          93
-          /* EditorOption.overtypeOnPaste */
-        );
-        this.surroundingPairs = {};
-        this._electricChars = null;
-        this.shouldAutoCloseBefore = {
-          quote: this._getShouldAutoClose(languageId, this.autoClosingQuotes, true),
-          comment: this._getShouldAutoClose(languageId, this.autoClosingComments, false),
-          bracket: this._getShouldAutoClose(languageId, this.autoClosingBrackets, false)
-        };
-        this.autoClosingPairs = this.languageConfigurationService.getLanguageConfiguration(languageId).getAutoClosingPairs();
-        const surroundingPairs = this.languageConfigurationService.getLanguageConfiguration(languageId).getSurroundingPairs();
-        if (surroundingPairs) {
-          for (const pair of surroundingPairs) {
-            this.surroundingPairs[pair.open] = pair.close;
-          }
-        }
-        const commentsConfiguration = this.languageConfigurationService.getLanguageConfiguration(languageId).comments;
-        this.blockCommentStartToken = commentsConfiguration?.blockCommentStartToken ?? null;
-      }
-      get electricChars() {
-        if (!this._electricChars) {
-          this._electricChars = {};
-          const electricChars = this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter?.getElectricCharacters();
-          if (electricChars) {
-            for (const char of electricChars) {
-              this._electricChars[char] = true;
-            }
-          }
-        }
-        return this._electricChars;
-      }
-      get inputMode() {
-        return InputMode.getInputMode();
-      }
-      /**
-       * Should return opening bracket type to match indentation with
-       */
-      onElectricCharacter(character, context, column) {
-        const scopedLineTokens = createScopedLineTokens(context, column - 1);
-        const electricCharacterSupport = this.languageConfigurationService.getLanguageConfiguration(scopedLineTokens.languageId).electricCharacter;
-        if (!electricCharacterSupport) {
-          return null;
-        }
-        return electricCharacterSupport.onElectricCharacter(character, scopedLineTokens, column - scopedLineTokens.firstCharOffset);
-      }
-      normalizeIndentation(str) {
-        return normalizeIndentation(str, this.indentSize, this.insertSpaces);
-      }
-      _getShouldAutoClose(languageId, autoCloseConfig, forQuotes) {
-        switch (autoCloseConfig) {
-          case "beforeWhitespace":
-            return autoCloseBeforeWhitespace;
-          case "languageDefined":
-            return this._getLanguageDefinedShouldAutoClose(languageId, forQuotes);
-          case "always":
-            return autoCloseAlways;
-          case "never":
-            return autoCloseNever;
-        }
-      }
-      _getLanguageDefinedShouldAutoClose(languageId, forQuotes) {
-        const autoCloseBeforeSet = this.languageConfigurationService.getLanguageConfiguration(languageId).getAutoCloseBeforeSet(forQuotes);
-        return (c) => autoCloseBeforeSet.indexOf(c) !== -1;
-      }
-      /**
-       * Returns a visible column from a column.
-       * @see {@link CursorColumns}
-       */
-      visibleColumnFromColumn(model, position) {
-        return CursorColumns.visibleColumnFromColumn(model.getLineContent(position.lineNumber), position.column, this.tabSize);
-      }
-      /**
-       * Returns a visible column from a column.
-       * @see {@link CursorColumns}
-       */
-      columnFromVisibleColumn(model, lineNumber, visibleColumn) {
-        const result = CursorColumns.columnFromVisibleColumn(model.getLineContent(lineNumber), visibleColumn, this.tabSize);
-        const minColumn = model.getLineMinColumn(lineNumber);
-        if (result < minColumn) {
-          return minColumn;
-        }
-        const maxColumn = model.getLineMaxColumn(lineNumber);
-        if (result > maxColumn) {
-          return maxColumn;
-        }
-        return result;
-      }
-    };
-    CursorState = class _CursorState {
-      static fromModelState(modelState) {
-        return new PartialModelCursorState(modelState);
-      }
-      static fromViewState(viewState) {
-        return new PartialViewCursorState(viewState);
-      }
-      static fromModelSelection(modelSelection) {
-        const selection = Selection.liftSelection(modelSelection);
-        const modelState = new SingleCursorState(Range.fromPositions(selection.getSelectionStart()), 0, 0, selection.getPosition(), 0);
-        return _CursorState.fromModelState(modelState);
-      }
-      static fromModelSelections(modelSelections) {
-        const states = [];
-        for (let i2 = 0, len = modelSelections.length; i2 < len; i2++) {
-          states[i2] = this.fromModelSelection(modelSelections[i2]);
-        }
-        return states;
-      }
-      constructor(modelState, viewState) {
-        this._cursorStateBrand = void 0;
-        this.modelState = modelState;
-        this.viewState = viewState;
-      }
-      equals(other) {
-        return this.viewState.equals(other.viewState) && this.modelState.equals(other.modelState);
-      }
-    };
-    PartialModelCursorState = class {
-      constructor(modelState) {
-        this.modelState = modelState;
-        this.viewState = null;
-      }
-    };
-    PartialViewCursorState = class {
-      constructor(viewState) {
-        this.modelState = null;
-        this.viewState = viewState;
-      }
-    };
-    SingleCursorState = class _SingleCursorState {
-      constructor(selectionStart, selectionStartKind, selectionStartLeftoverVisibleColumns, position, leftoverVisibleColumns) {
-        this.selectionStart = selectionStart;
-        this.selectionStartKind = selectionStartKind;
-        this.selectionStartLeftoverVisibleColumns = selectionStartLeftoverVisibleColumns;
-        this.position = position;
-        this.leftoverVisibleColumns = leftoverVisibleColumns;
-        this._singleCursorStateBrand = void 0;
-        this.selection = _SingleCursorState._computeSelection(this.selectionStart, this.position);
-      }
-      equals(other) {
-        return this.selectionStartLeftoverVisibleColumns === other.selectionStartLeftoverVisibleColumns && this.leftoverVisibleColumns === other.leftoverVisibleColumns && this.selectionStartKind === other.selectionStartKind && this.position.equals(other.position) && this.selectionStart.equalsRange(other.selectionStart);
-      }
-      hasSelection() {
-        return !this.selection.isEmpty() || !this.selectionStart.isEmpty();
-      }
-      move(inSelectionMode, lineNumber, column, leftoverVisibleColumns) {
-        if (inSelectionMode) {
-          return new _SingleCursorState(this.selectionStart, this.selectionStartKind, this.selectionStartLeftoverVisibleColumns, new Position(lineNumber, column), leftoverVisibleColumns);
-        } else {
-          return new _SingleCursorState(new Range(lineNumber, column, lineNumber, column), 0, leftoverVisibleColumns, new Position(lineNumber, column), leftoverVisibleColumns);
-        }
-      }
-      static _computeSelection(selectionStart, position) {
-        if (selectionStart.isEmpty() || !position.isBeforeOrEqual(selectionStart.getStartPosition())) {
-          return Selection.fromPositions(selectionStart.getStartPosition(), position);
-        } else {
-          return Selection.fromPositions(selectionStart.getEndPosition(), position);
-        }
-      }
-    };
-    EditOperationResult = class {
-      constructor(type, commands, opts) {
-        this._editOperationResultBrand = void 0;
-        this.type = type;
-        this.commands = commands;
-        this.shouldPushStackElementBefore = opts.shouldPushStackElementBefore;
-        this.shouldPushStackElementAfter = opts.shouldPushStackElementAfter;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorColumnSelection.js
-var ColumnSelection;
-var init_cursorColumnSelection = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorColumnSelection.js"() {
-    init_cursorCommon();
-    init_position();
-    init_range();
-    ColumnSelection = class _ColumnSelection {
-      static columnSelect(config, model, fromLineNumber, fromVisibleColumn, toLineNumber, toVisibleColumn) {
-        const lineCount = Math.abs(toLineNumber - fromLineNumber) + 1;
-        const reversed = fromLineNumber > toLineNumber;
-        const isRTL = fromVisibleColumn > toVisibleColumn;
-        const isLTR = fromVisibleColumn < toVisibleColumn;
-        const result = [];
-        for (let i2 = 0; i2 < lineCount; i2++) {
-          const lineNumber = fromLineNumber + (reversed ? -i2 : i2);
-          const startColumn = config.columnFromVisibleColumn(model, lineNumber, fromVisibleColumn);
-          const endColumn = config.columnFromVisibleColumn(model, lineNumber, toVisibleColumn);
-          const visibleStartColumn = config.visibleColumnFromColumn(model, new Position(lineNumber, startColumn));
-          const visibleEndColumn = config.visibleColumnFromColumn(model, new Position(lineNumber, endColumn));
-          if (isLTR) {
-            if (visibleStartColumn > toVisibleColumn) {
-              continue;
-            }
-            if (visibleEndColumn < fromVisibleColumn) {
-              continue;
-            }
-          }
-          if (isRTL) {
-            if (visibleEndColumn > fromVisibleColumn) {
-              continue;
-            }
-            if (visibleStartColumn < toVisibleColumn) {
-              continue;
-            }
-          }
-          result.push(new SingleCursorState(new Range(lineNumber, startColumn, lineNumber, startColumn), 0, 0, new Position(lineNumber, endColumn), 0));
-        }
-        if (result.length === 0) {
-          for (let i2 = 0; i2 < lineCount; i2++) {
-            const lineNumber = fromLineNumber + (reversed ? -i2 : i2);
-            const maxColumn = model.getLineMaxColumn(lineNumber);
-            result.push(new SingleCursorState(new Range(lineNumber, maxColumn, lineNumber, maxColumn), 0, 0, new Position(lineNumber, maxColumn), 0));
-          }
-        }
-        return {
-          viewStates: result,
-          reversed,
-          fromLineNumber,
-          fromVisualColumn: fromVisibleColumn,
-          toLineNumber,
-          toVisualColumn: toVisibleColumn
-        };
-      }
-      static columnSelectLeft(config, model, prevColumnSelectData) {
-        let toViewVisualColumn = prevColumnSelectData.toViewVisualColumn;
-        if (toViewVisualColumn > 0) {
-          toViewVisualColumn--;
-        }
-        return _ColumnSelection.columnSelect(config, model, prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.fromViewVisualColumn, prevColumnSelectData.toViewLineNumber, toViewVisualColumn);
-      }
-      static columnSelectRight(config, model, prevColumnSelectData) {
-        let maxVisualViewColumn = 0;
-        const minViewLineNumber = Math.min(prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.toViewLineNumber);
-        const maxViewLineNumber = Math.max(prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.toViewLineNumber);
-        for (let lineNumber = minViewLineNumber; lineNumber <= maxViewLineNumber; lineNumber++) {
-          const lineMaxViewColumn = model.getLineMaxColumn(lineNumber);
-          const lineMaxVisualViewColumn = config.visibleColumnFromColumn(model, new Position(lineNumber, lineMaxViewColumn));
-          maxVisualViewColumn = Math.max(maxVisualViewColumn, lineMaxVisualViewColumn);
-        }
-        let toViewVisualColumn = prevColumnSelectData.toViewVisualColumn;
-        if (toViewVisualColumn < maxVisualViewColumn) {
-          toViewVisualColumn++;
-        }
-        return this.columnSelect(config, model, prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.fromViewVisualColumn, prevColumnSelectData.toViewLineNumber, toViewVisualColumn);
-      }
-      static columnSelectUp(config, model, prevColumnSelectData, isPaged) {
-        const linesCount = isPaged ? config.pageSize : 1;
-        const toViewLineNumber = Math.max(1, prevColumnSelectData.toViewLineNumber - linesCount);
-        return this.columnSelect(config, model, prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.fromViewVisualColumn, toViewLineNumber, prevColumnSelectData.toViewVisualColumn);
-      }
-      static columnSelectDown(config, model, prevColumnSelectData, isPaged) {
-        const linesCount = isPaged ? config.pageSize : 1;
-        const toViewLineNumber = Math.min(model.getLineCount(), prevColumnSelectData.toViewLineNumber + linesCount);
-        return this.columnSelect(config, model, prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.fromViewVisualColumn, toViewLineNumber, prevColumnSelectData.toViewVisualColumn);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/commands/replaceCommand.js
-function addPositiveOffsetToModelPosition(model, position, offset) {
-  if (offset < 0) {
-    throw new Error("Unexpected negative delta");
-  }
-  const lineCount = model.getLineCount();
-  let endPosition = new Position(lineCount, model.getLineMaxColumn(lineCount));
-  for (let lineNumber = position.lineNumber; lineNumber <= lineCount; lineNumber++) {
-    if (lineNumber === position.lineNumber) {
-      const futureOffset = offset - model.getLineMaxColumn(position.lineNumber) + position.column;
-      if (futureOffset <= 0) {
-        endPosition = new Position(position.lineNumber, position.column + offset);
-        break;
-      }
-      offset = futureOffset;
-    } else {
-      const futureOffset = offset - model.getLineMaxColumn(lineNumber);
-      if (futureOffset <= 0) {
-        endPosition = new Position(lineNumber, offset);
-        break;
-      }
-      offset = futureOffset;
-    }
-  }
-  return endPosition;
-}
-var ReplaceCommand, ReplaceOvertypeCommand, ReplaceCommandThatSelectsText, ReplaceCommandWithoutChangingPosition, ReplaceCommandWithOffsetCursorState, ReplaceOvertypeCommandOnCompositionEnd, ReplaceCommandThatPreservesSelection;
-var init_replaceCommand = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/commands/replaceCommand.js"() {
-    init_position();
-    init_range();
-    init_selection();
-    ReplaceCommand = class {
-      constructor(range2, text2, insertsAutoWhitespace = false) {
-        this._range = range2;
-        this._text = text2;
-        this.insertsAutoWhitespace = insertsAutoWhitespace;
-      }
-      getEditOperations(model, builder) {
-        builder.addTrackedEditOperation(this._range, this._text);
-      }
-      computeCursorState(model, helper) {
-        const inverseEditOperations = helper.getInverseEditOperations();
-        const srcRange = inverseEditOperations[0].range;
-        return Selection.fromPositions(srcRange.getEndPosition());
-      }
-    };
-    ReplaceOvertypeCommand = class {
-      constructor(range2, text2, insertsAutoWhitespace = false) {
-        this._range = range2;
-        this._text = text2;
-        this.insertsAutoWhitespace = insertsAutoWhitespace;
-      }
-      getEditOperations(model, builder) {
-        const intialStartPosition = this._range.getStartPosition();
-        const initialEndPosition = this._range.getEndPosition();
-        const initialEndLineNumber = initialEndPosition.lineNumber;
-        const offsetDelta = this._text.length + (this._range.isEmpty() ? 0 : -1);
-        let endPosition = addPositiveOffsetToModelPosition(model, initialEndPosition, offsetDelta);
-        if (endPosition.lineNumber > initialEndLineNumber) {
-          endPosition = new Position(initialEndLineNumber, model.getLineMaxColumn(initialEndLineNumber));
-        }
-        const replaceRange = Range.fromPositions(intialStartPosition, endPosition);
-        builder.addTrackedEditOperation(replaceRange, this._text);
-      }
-      computeCursorState(model, helper) {
-        const inverseEditOperations = helper.getInverseEditOperations();
-        const srcRange = inverseEditOperations[0].range;
-        return Selection.fromPositions(srcRange.getEndPosition());
-      }
-    };
-    ReplaceCommandThatSelectsText = class {
-      constructor(range2, text2) {
-        this._range = range2;
-        this._text = text2;
-      }
-      getEditOperations(model, builder) {
-        builder.addTrackedEditOperation(this._range, this._text);
-      }
-      computeCursorState(model, helper) {
-        const inverseEditOperations = helper.getInverseEditOperations();
-        const srcRange = inverseEditOperations[0].range;
-        return Selection.fromRange(
-          srcRange,
-          0
-          /* SelectionDirection.LTR */
-        );
-      }
-    };
-    ReplaceCommandWithoutChangingPosition = class {
-      constructor(range2, text2, insertsAutoWhitespace = false) {
-        this._range = range2;
-        this._text = text2;
-        this.insertsAutoWhitespace = insertsAutoWhitespace;
-      }
-      getEditOperations(model, builder) {
-        builder.addTrackedEditOperation(this._range, this._text);
-      }
-      computeCursorState(model, helper) {
-        const inverseEditOperations = helper.getInverseEditOperations();
-        const srcRange = inverseEditOperations[0].range;
-        return Selection.fromPositions(srcRange.getStartPosition());
-      }
-    };
-    ReplaceCommandWithOffsetCursorState = class {
-      constructor(range2, text2, lineNumberDeltaOffset, columnDeltaOffset, insertsAutoWhitespace = false) {
-        this._range = range2;
-        this._text = text2;
-        this._columnDeltaOffset = columnDeltaOffset;
-        this._lineNumberDeltaOffset = lineNumberDeltaOffset;
-        this.insertsAutoWhitespace = insertsAutoWhitespace;
-      }
-      getEditOperations(model, builder) {
-        builder.addTrackedEditOperation(this._range, this._text);
-      }
-      computeCursorState(model, helper) {
-        const inverseEditOperations = helper.getInverseEditOperations();
-        const srcRange = inverseEditOperations[0].range;
-        return Selection.fromPositions(srcRange.getEndPosition().delta(this._lineNumberDeltaOffset, this._columnDeltaOffset));
-      }
-    };
-    ReplaceOvertypeCommandOnCompositionEnd = class {
-      constructor(range2) {
-        this._range = range2;
-      }
-      getEditOperations(model, builder) {
-        const text2 = model.getValueInRange(this._range);
-        const initialEndPosition = this._range.getEndPosition();
-        const initialEndLineNumber = initialEndPosition.lineNumber;
-        let endPosition = addPositiveOffsetToModelPosition(model, initialEndPosition, text2.length);
-        if (endPosition.lineNumber > initialEndLineNumber) {
-          endPosition = new Position(initialEndLineNumber, model.getLineMaxColumn(initialEndLineNumber));
-        }
-        const replaceRange = Range.fromPositions(initialEndPosition, endPosition);
-        builder.addTrackedEditOperation(replaceRange, "");
-      }
-      computeCursorState(model, helper) {
-        const inverseEditOperations = helper.getInverseEditOperations();
-        const srcRange = inverseEditOperations[0].range;
-        return Selection.fromPositions(srcRange.getEndPosition());
-      }
-    };
-    ReplaceCommandThatPreservesSelection = class {
-      constructor(editRange, text2, initialSelection, forceMoveMarkers = false) {
-        this._range = editRange;
-        this._text = text2;
-        this._initialSelection = initialSelection;
-        this._forceMoveMarkers = forceMoveMarkers;
-        this._selectionId = null;
-      }
-      getEditOperations(model, builder) {
-        builder.addTrackedEditOperation(this._range, this._text, this._forceMoveMarkers);
-        this._selectionId = builder.trackSelection(this._initialSelection);
-      }
-      computeCursorState(model, helper) {
-        return helper.getTrackedSelection(this._selectionId);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorAtomicMoveOperations.js
-var AtomicTabMoveOperations;
-var init_cursorAtomicMoveOperations = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorAtomicMoveOperations.js"() {
-    init_cursorColumns();
-    AtomicTabMoveOperations = class _AtomicTabMoveOperations {
-      /**
-       * Get the visible column at the position. If we get to a non-whitespace character first
-       * or past the end of string then return -1.
-       *
-       * **Note** `position` and the return value are 0-based.
-       */
-      static whitespaceVisibleColumn(lineContent, position, tabSize) {
-        const lineLength = lineContent.length;
-        let visibleColumn = 0;
-        let prevTabStopPosition = -1;
-        let prevTabStopVisibleColumn = -1;
-        for (let i2 = 0; i2 < lineLength; i2++) {
-          if (i2 === position) {
-            return [prevTabStopPosition, prevTabStopVisibleColumn, visibleColumn];
-          }
-          if (visibleColumn % tabSize === 0) {
-            prevTabStopPosition = i2;
-            prevTabStopVisibleColumn = visibleColumn;
-          }
-          const chCode = lineContent.charCodeAt(i2);
-          switch (chCode) {
-            case 32:
-              visibleColumn += 1;
-              break;
-            case 9:
-              visibleColumn = CursorColumns.nextRenderTabStop(visibleColumn, tabSize);
-              break;
-            default:
-              return [-1, -1, -1];
-          }
-        }
-        if (position === lineLength) {
-          return [prevTabStopPosition, prevTabStopVisibleColumn, visibleColumn];
-        }
-        return [-1, -1, -1];
-      }
-      /**
-       * Return the position that should result from a move left, right or to the
-       * nearest tab, if atomic tabs are enabled. Left and right are used for the
-       * arrow key movements, nearest is used for mouse selection. It returns
-       * -1 if atomic tabs are not relevant and you should fall back to normal
-       * behaviour.
-       *
-       * **Note**: `position` and the return value are 0-based.
-       */
-      static atomicPosition(lineContent, position, tabSize, direction) {
-        const lineLength = lineContent.length;
-        const [prevTabStopPosition, prevTabStopVisibleColumn, visibleColumn] = _AtomicTabMoveOperations.whitespaceVisibleColumn(lineContent, position, tabSize);
-        if (visibleColumn === -1) {
-          return -1;
-        }
-        let left;
-        switch (direction) {
-          case 0:
-            left = true;
-            break;
-          case 1:
-            left = false;
-            break;
-          case 2:
-            if (visibleColumn % tabSize === 0) {
-              return position;
-            }
-            left = visibleColumn % tabSize <= tabSize / 2;
-            break;
-        }
-        if (left) {
-          if (prevTabStopPosition === -1) {
-            return -1;
-          }
-          let currentVisibleColumn2 = prevTabStopVisibleColumn;
-          for (let i2 = prevTabStopPosition; i2 < lineLength; ++i2) {
-            if (currentVisibleColumn2 === prevTabStopVisibleColumn + tabSize) {
-              return prevTabStopPosition;
-            }
-            const chCode = lineContent.charCodeAt(i2);
-            switch (chCode) {
-              case 32:
-                currentVisibleColumn2 += 1;
-                break;
-              case 9:
-                currentVisibleColumn2 = CursorColumns.nextRenderTabStop(currentVisibleColumn2, tabSize);
-                break;
-              default:
-                return -1;
-            }
-          }
-          if (currentVisibleColumn2 === prevTabStopVisibleColumn + tabSize) {
-            return prevTabStopPosition;
-          }
-          return -1;
-        }
-        const targetVisibleColumn = CursorColumns.nextRenderTabStop(visibleColumn, tabSize);
-        let currentVisibleColumn = visibleColumn;
-        for (let i2 = position; i2 < lineLength; i2++) {
-          if (currentVisibleColumn === targetVisibleColumn) {
-            return i2;
-          }
-          const chCode = lineContent.charCodeAt(i2);
-          switch (chCode) {
-            case 32:
-              currentVisibleColumn += 1;
-              break;
-            case 9:
-              currentVisibleColumn = CursorColumns.nextRenderTabStop(currentVisibleColumn, tabSize);
-              break;
-            default:
-              return -1;
-          }
-        }
-        if (currentVisibleColumn === targetVisibleColumn) {
-          return lineLength;
-        }
-        return -1;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorMoveOperations.js
-var CursorPosition, MoveOperations;
-var init_cursorMoveOperations = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorMoveOperations.js"() {
-    init_strings();
-    init_cursorColumns();
-    init_position();
-    init_range();
-    init_cursorAtomicMoveOperations();
-    init_cursorCommon();
-    CursorPosition = class {
-      constructor(lineNumber, column, leftoverVisibleColumns) {
-        this._cursorPositionBrand = void 0;
-        this.lineNumber = lineNumber;
-        this.column = column;
-        this.leftoverVisibleColumns = leftoverVisibleColumns;
-      }
-    };
-    MoveOperations = class _MoveOperations {
-      static leftPosition(model, position) {
-        if (position.column > model.getLineMinColumn(position.lineNumber)) {
-          return position.delta(void 0, -prevCharLength(model.getLineContent(position.lineNumber), position.column - 1));
-        } else if (position.lineNumber > 1) {
-          const newLineNumber = position.lineNumber - 1;
-          return new Position(newLineNumber, model.getLineMaxColumn(newLineNumber));
-        } else {
-          return position;
-        }
-      }
-      static leftPositionAtomicSoftTabs(model, position, tabSize) {
-        if (position.column <= model.getLineIndentColumn(position.lineNumber)) {
-          const minColumn = model.getLineMinColumn(position.lineNumber);
-          const lineContent = model.getLineContent(position.lineNumber);
-          const newPosition = AtomicTabMoveOperations.atomicPosition(
-            lineContent,
-            position.column - 1,
-            tabSize,
-            0
-            /* Direction.Left */
-          );
-          if (newPosition !== -1 && newPosition + 1 >= minColumn) {
-            return new Position(position.lineNumber, newPosition + 1);
-          }
-        }
-        return this.leftPosition(model, position);
-      }
-      static left(config, model, position) {
-        const pos = config.stickyTabStops ? _MoveOperations.leftPositionAtomicSoftTabs(model, position, config.tabSize) : _MoveOperations.leftPosition(model, position);
-        return new CursorPosition(pos.lineNumber, pos.column, 0);
-      }
-      /**
-       * @param noOfColumns Must be either `1`
-       * or `Math.round(viewModel.getLineContent(viewLineNumber).length / 2)` (for half lines).
-      */
-      static moveLeft(config, model, cursor, inSelectionMode, noOfColumns) {
-        let lineNumber, column;
-        if (cursor.hasSelection() && !inSelectionMode) {
-          lineNumber = cursor.selection.startLineNumber;
-          column = cursor.selection.startColumn;
-        } else {
-          const pos = cursor.position.delta(void 0, -(noOfColumns - 1));
-          const normalizedPos = model.normalizePosition(
-            _MoveOperations.clipPositionColumn(pos, model),
-            0
-            /* PositionAffinity.Left */
-          );
-          const p = _MoveOperations.left(config, model, normalizedPos);
-          lineNumber = p.lineNumber;
-          column = p.column;
-        }
-        return cursor.move(inSelectionMode, lineNumber, column, 0);
-      }
-      /**
-       * Adjusts the column so that it is within min/max of the line.
-      */
-      static clipPositionColumn(position, model) {
-        return new Position(position.lineNumber, _MoveOperations.clipRange(position.column, model.getLineMinColumn(position.lineNumber), model.getLineMaxColumn(position.lineNumber)));
-      }
-      static clipRange(value, min, max) {
-        if (value < min) {
-          return min;
-        }
-        if (value > max) {
-          return max;
-        }
-        return value;
-      }
-      static rightPosition(model, lineNumber, column) {
-        if (column < model.getLineMaxColumn(lineNumber)) {
-          column = column + nextCharLength(model.getLineContent(lineNumber), column - 1);
-        } else if (lineNumber < model.getLineCount()) {
-          lineNumber = lineNumber + 1;
-          column = model.getLineMinColumn(lineNumber);
-        }
-        return new Position(lineNumber, column);
-      }
-      static rightPositionAtomicSoftTabs(model, lineNumber, column, tabSize, indentSize) {
-        if (column < model.getLineIndentColumn(lineNumber)) {
-          const lineContent = model.getLineContent(lineNumber);
-          const newPosition = AtomicTabMoveOperations.atomicPosition(
-            lineContent,
-            column - 1,
-            tabSize,
-            1
-            /* Direction.Right */
-          );
-          if (newPosition !== -1) {
-            return new Position(lineNumber, newPosition + 1);
-          }
-        }
-        return this.rightPosition(model, lineNumber, column);
-      }
-      static right(config, model, position) {
-        const pos = config.stickyTabStops ? _MoveOperations.rightPositionAtomicSoftTabs(model, position.lineNumber, position.column, config.tabSize, config.indentSize) : _MoveOperations.rightPosition(model, position.lineNumber, position.column);
-        return new CursorPosition(pos.lineNumber, pos.column, 0);
-      }
-      static moveRight(config, model, cursor, inSelectionMode, noOfColumns) {
-        let lineNumber, column;
-        if (cursor.hasSelection() && !inSelectionMode) {
-          lineNumber = cursor.selection.endLineNumber;
-          column = cursor.selection.endColumn;
-        } else {
-          const pos = cursor.position.delta(void 0, noOfColumns - 1);
-          const normalizedPos = model.normalizePosition(
-            _MoveOperations.clipPositionColumn(pos, model),
-            1
-            /* PositionAffinity.Right */
-          );
-          const r = _MoveOperations.right(config, model, normalizedPos);
-          lineNumber = r.lineNumber;
-          column = r.column;
-        }
-        return cursor.move(inSelectionMode, lineNumber, column, 0);
-      }
-      static vertical(config, model, lineNumber, column, leftoverVisibleColumns, newLineNumber, allowMoveOnEdgeLine, normalizationAffinity) {
-        const currentVisibleColumn = CursorColumns.visibleColumnFromColumn(model.getLineContent(lineNumber), column, config.tabSize) + leftoverVisibleColumns;
-        const lineCount = model.getLineCount();
-        const wasOnFirstPosition = lineNumber === 1 && column === 1;
-        const wasOnLastPosition = lineNumber === lineCount && column === model.getLineMaxColumn(lineNumber);
-        const wasAtEdgePosition = newLineNumber < lineNumber ? wasOnFirstPosition : wasOnLastPosition;
-        lineNumber = newLineNumber;
-        if (lineNumber < 1) {
-          lineNumber = 1;
-          if (allowMoveOnEdgeLine) {
-            column = model.getLineMinColumn(lineNumber);
-          } else {
-            column = Math.min(model.getLineMaxColumn(lineNumber), column);
-          }
-        } else if (lineNumber > lineCount) {
-          lineNumber = lineCount;
-          if (allowMoveOnEdgeLine) {
-            column = model.getLineMaxColumn(lineNumber);
-          } else {
-            column = Math.min(model.getLineMaxColumn(lineNumber), column);
-          }
-        } else {
-          column = config.columnFromVisibleColumn(model, lineNumber, currentVisibleColumn);
-        }
-        if (wasAtEdgePosition) {
-          leftoverVisibleColumns = 0;
-        } else {
-          leftoverVisibleColumns = currentVisibleColumn - CursorColumns.visibleColumnFromColumn(model.getLineContent(lineNumber), column, config.tabSize);
-        }
-        if (normalizationAffinity !== void 0) {
-          const position = new Position(lineNumber, column);
-          const newPosition = model.normalizePosition(position, normalizationAffinity);
-          leftoverVisibleColumns = leftoverVisibleColumns + (column - newPosition.column);
-          lineNumber = newPosition.lineNumber;
-          column = newPosition.column;
-        }
-        return new CursorPosition(lineNumber, column, leftoverVisibleColumns);
-      }
-      static down(config, model, lineNumber, column, leftoverVisibleColumns, count, allowMoveOnLastLine) {
-        return this.vertical(
-          config,
-          model,
-          lineNumber,
-          column,
-          leftoverVisibleColumns,
-          lineNumber + count,
-          allowMoveOnLastLine,
-          4
-          /* PositionAffinity.RightOfInjectedText */
-        );
-      }
-      static moveDown(config, model, cursor, inSelectionMode, linesCount) {
-        let lineNumber, column;
-        if (cursor.hasSelection() && !inSelectionMode) {
-          lineNumber = cursor.selection.endLineNumber;
-          column = cursor.selection.endColumn;
-        } else {
-          lineNumber = cursor.position.lineNumber;
-          column = cursor.position.column;
-        }
-        let i2 = 0;
-        let r;
-        do {
-          r = _MoveOperations.down(config, model, lineNumber + i2, column, cursor.leftoverVisibleColumns, linesCount, true);
-          const np = model.normalizePosition(
-            new Position(r.lineNumber, r.column),
-            2
-            /* PositionAffinity.None */
-          );
-          if (np.lineNumber > lineNumber) {
-            break;
-          }
-        } while (i2++ < 10 && lineNumber + i2 < model.getLineCount());
-        return cursor.move(inSelectionMode, r.lineNumber, r.column, r.leftoverVisibleColumns);
-      }
-      static translateDown(config, model, cursor) {
-        const selection = cursor.selection;
-        const selectionStart = _MoveOperations.down(config, model, selection.selectionStartLineNumber, selection.selectionStartColumn, cursor.selectionStartLeftoverVisibleColumns, 1, false);
-        const position = _MoveOperations.down(config, model, selection.positionLineNumber, selection.positionColumn, cursor.leftoverVisibleColumns, 1, false);
-        return new SingleCursorState(new Range(selectionStart.lineNumber, selectionStart.column, selectionStart.lineNumber, selectionStart.column), 0, selectionStart.leftoverVisibleColumns, new Position(position.lineNumber, position.column), position.leftoverVisibleColumns);
-      }
-      static up(config, model, lineNumber, column, leftoverVisibleColumns, count, allowMoveOnFirstLine) {
-        return this.vertical(
-          config,
-          model,
-          lineNumber,
-          column,
-          leftoverVisibleColumns,
-          lineNumber - count,
-          allowMoveOnFirstLine,
-          3
-          /* PositionAffinity.LeftOfInjectedText */
-        );
-      }
-      static moveUp(config, model, cursor, inSelectionMode, linesCount) {
-        let lineNumber, column;
-        if (cursor.hasSelection() && !inSelectionMode) {
-          lineNumber = cursor.selection.startLineNumber;
-          column = cursor.selection.startColumn;
-        } else {
-          lineNumber = cursor.position.lineNumber;
-          column = cursor.position.column;
-        }
-        const r = _MoveOperations.up(config, model, lineNumber, column, cursor.leftoverVisibleColumns, linesCount, true);
-        return cursor.move(inSelectionMode, r.lineNumber, r.column, r.leftoverVisibleColumns);
-      }
-      static translateUp(config, model, cursor) {
-        const selection = cursor.selection;
-        const selectionStart = _MoveOperations.up(config, model, selection.selectionStartLineNumber, selection.selectionStartColumn, cursor.selectionStartLeftoverVisibleColumns, 1, false);
-        const position = _MoveOperations.up(config, model, selection.positionLineNumber, selection.positionColumn, cursor.leftoverVisibleColumns, 1, false);
-        return new SingleCursorState(new Range(selectionStart.lineNumber, selectionStart.column, selectionStart.lineNumber, selectionStart.column), 0, selectionStart.leftoverVisibleColumns, new Position(position.lineNumber, position.column), position.leftoverVisibleColumns);
-      }
-      static _isBlankLine(model, lineNumber) {
-        if (model.getLineFirstNonWhitespaceColumn(lineNumber) === 0) {
-          return true;
-        }
-        return false;
-      }
-      static moveToPrevBlankLine(config, model, cursor, inSelectionMode) {
-        let lineNumber = cursor.position.lineNumber;
-        while (lineNumber > 1 && this._isBlankLine(model, lineNumber)) {
-          lineNumber--;
-        }
-        while (lineNumber > 1 && !this._isBlankLine(model, lineNumber)) {
-          lineNumber--;
-        }
-        return cursor.move(inSelectionMode, lineNumber, model.getLineMinColumn(lineNumber), 0);
-      }
-      static moveToNextBlankLine(config, model, cursor, inSelectionMode) {
-        const lineCount = model.getLineCount();
-        let lineNumber = cursor.position.lineNumber;
-        while (lineNumber < lineCount && this._isBlankLine(model, lineNumber)) {
-          lineNumber++;
-        }
-        while (lineNumber < lineCount && !this._isBlankLine(model, lineNumber)) {
-          lineNumber++;
-        }
-        return cursor.move(inSelectionMode, lineNumber, model.getLineMinColumn(lineNumber), 0);
-      }
-      static moveToBeginningOfLine(config, model, cursor, inSelectionMode) {
-        const lineNumber = cursor.position.lineNumber;
-        const minColumn = model.getLineMinColumn(lineNumber);
-        const firstNonBlankColumn = model.getLineFirstNonWhitespaceColumn(lineNumber) || minColumn;
-        let column;
-        const relevantColumnNumber = cursor.position.column;
-        if (relevantColumnNumber === firstNonBlankColumn) {
-          column = minColumn;
-        } else {
-          column = firstNonBlankColumn;
-        }
-        return cursor.move(inSelectionMode, lineNumber, column, 0);
-      }
-      static moveToEndOfLine(config, model, cursor, inSelectionMode, sticky) {
-        const lineNumber = cursor.position.lineNumber;
-        const maxColumn = model.getLineMaxColumn(lineNumber);
-        return cursor.move(inSelectionMode, lineNumber, maxColumn, sticky ? 1073741824 - maxColumn : 0);
-      }
-      static moveToBeginningOfBuffer(config, model, cursor, inSelectionMode) {
-        return cursor.move(inSelectionMode, 1, 1, 0);
-      }
-      static moveToEndOfBuffer(config, model, cursor, inSelectionMode) {
-        const lastLineNumber = model.getLineCount();
-        const lastColumn = model.getLineMaxColumn(lastLineNumber);
-        return cursor.move(inSelectionMode, lastLineNumber, lastColumn, 0);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorDeleteOperations.js
-var DeleteOperations;
-var init_cursorDeleteOperations = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorDeleteOperations.js"() {
-    init_strings();
-    init_replaceCommand();
-    init_cursorCommon();
-    init_cursorColumns();
-    init_cursorMoveOperations();
-    init_range();
-    init_position();
-    DeleteOperations = class _DeleteOperations {
-      static deleteRight(prevEditOperationType, config, model, selections) {
-        const commands = [];
-        let shouldPushStackElementBefore = prevEditOperationType !== 3;
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          const selection = selections[i2];
-          const deleteSelection = this.getDeleteRightRange(selection, model, config);
-          if (deleteSelection.isEmpty()) {
-            commands[i2] = null;
-            continue;
-          }
-          if (deleteSelection.startLineNumber !== deleteSelection.endLineNumber) {
-            shouldPushStackElementBefore = true;
-          }
-          commands[i2] = new ReplaceCommand(deleteSelection, "");
-        }
-        return [shouldPushStackElementBefore, commands];
-      }
-      static getDeleteRightRange(selection, model, config) {
-        if (!selection.isEmpty()) {
-          return selection;
-        }
-        const position = selection.getPosition();
-        const rightOfPosition = MoveOperations.right(config, model, position);
-        if (config.trimWhitespaceOnDelete && rightOfPosition.lineNumber !== position.lineNumber) {
-          const currentLineHasContent = model.getLineFirstNonWhitespaceColumn(position.lineNumber) > 0;
-          const firstNonWhitespaceColumn = model.getLineFirstNonWhitespaceColumn(rightOfPosition.lineNumber);
-          if (currentLineHasContent && firstNonWhitespaceColumn > 0) {
-            return new Range(rightOfPosition.lineNumber, firstNonWhitespaceColumn, position.lineNumber, position.column);
-          }
-        }
-        return new Range(rightOfPosition.lineNumber, rightOfPosition.column, position.lineNumber, position.column);
-      }
-      static isAutoClosingPairDelete(autoClosingDelete, autoClosingBrackets, autoClosingQuotes, autoClosingPairsOpen, model, selections, autoClosedCharacters) {
-        if (autoClosingBrackets === "never" && autoClosingQuotes === "never") {
-          return false;
-        }
-        if (autoClosingDelete === "never") {
-          return false;
-        }
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          const selection = selections[i2];
-          const position = selection.getPosition();
-          if (!selection.isEmpty()) {
-            return false;
-          }
-          const lineText = model.getLineContent(position.lineNumber);
-          if (position.column < 2 || position.column >= lineText.length + 1) {
-            return false;
-          }
-          const character = lineText.charAt(position.column - 2);
-          const autoClosingPairCandidates = autoClosingPairsOpen.get(character);
-          if (!autoClosingPairCandidates) {
-            return false;
-          }
-          if (isQuote(character)) {
-            if (autoClosingQuotes === "never") {
-              return false;
-            }
-          } else {
-            if (autoClosingBrackets === "never") {
-              return false;
-            }
-          }
-          const afterCharacter = lineText.charAt(position.column - 1);
-          let foundAutoClosingPair = false;
-          for (const autoClosingPairCandidate of autoClosingPairCandidates) {
-            if (autoClosingPairCandidate.open === character && autoClosingPairCandidate.close === afterCharacter) {
-              foundAutoClosingPair = true;
-            }
-          }
-          if (!foundAutoClosingPair) {
-            return false;
-          }
-          if (autoClosingDelete === "auto") {
-            let found = false;
-            for (let j = 0, lenJ = autoClosedCharacters.length; j < lenJ; j++) {
-              const autoClosedCharacter = autoClosedCharacters[j];
-              if (position.lineNumber === autoClosedCharacter.startLineNumber && position.column === autoClosedCharacter.startColumn) {
-                found = true;
-                break;
-              }
-            }
-            if (!found) {
-              return false;
-            }
-          }
-        }
-        return true;
-      }
-      static _runAutoClosingPairDelete(config, model, selections) {
-        const commands = [];
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          const position = selections[i2].getPosition();
-          const deleteSelection = new Range(position.lineNumber, position.column - 1, position.lineNumber, position.column + 1);
-          commands[i2] = new ReplaceCommand(deleteSelection, "");
-        }
-        return [true, commands];
-      }
-      static deleteLeft(prevEditOperationType, config, model, selections, autoClosedCharacters) {
-        if (this.isAutoClosingPairDelete(config.autoClosingDelete, config.autoClosingBrackets, config.autoClosingQuotes, config.autoClosingPairs.autoClosingPairsOpenByEnd, model, selections, autoClosedCharacters)) {
-          return this._runAutoClosingPairDelete(config, model, selections);
-        }
-        const commands = [];
-        let shouldPushStackElementBefore = prevEditOperationType !== 2;
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          const deleteRange = _DeleteOperations.getDeleteLeftRange(selections[i2], model, config);
-          if (deleteRange.isEmpty()) {
-            commands[i2] = null;
-            continue;
-          }
-          if (deleteRange.startLineNumber !== deleteRange.endLineNumber) {
-            shouldPushStackElementBefore = true;
-          }
-          commands[i2] = new ReplaceCommand(deleteRange, "");
-        }
-        return [shouldPushStackElementBefore, commands];
-      }
-      static getDeleteLeftRange(selection, model, config) {
-        if (!selection.isEmpty()) {
-          return selection;
-        }
-        const position = selection.getPosition();
-        if (config.useTabStops && position.column > 1) {
-          const lineContent = model.getLineContent(position.lineNumber);
-          const firstNonWhitespaceIndex$1 = firstNonWhitespaceIndex(lineContent);
-          const lastIndentationColumn = firstNonWhitespaceIndex$1 === -1 ? (
-            /* entire string is whitespace */
-            lineContent.length + 1
-          ) : firstNonWhitespaceIndex$1 + 1;
-          if (position.column <= lastIndentationColumn) {
-            const fromVisibleColumn = config.visibleColumnFromColumn(model, position);
-            const toVisibleColumn = CursorColumns.prevIndentTabStop(fromVisibleColumn, config.indentSize);
-            const toColumn = config.columnFromVisibleColumn(model, position.lineNumber, toVisibleColumn);
-            return new Range(position.lineNumber, toColumn, position.lineNumber, position.column);
-          }
-        }
-        return Range.fromPositions(_DeleteOperations.getPositionAfterDeleteLeft(position, model), position);
-      }
-      static getPositionAfterDeleteLeft(position, model) {
-        if (position.column > 1) {
-          const idx = getLeftDeleteOffset(position.column - 1, model.getLineContent(position.lineNumber));
-          return position.with(void 0, idx + 1);
-        } else if (position.lineNumber > 1) {
-          const newLine = position.lineNumber - 1;
-          return new Position(newLine, model.getLineMaxColumn(newLine));
-        } else {
-          return position;
-        }
-      }
-      static cut(config, model, selections) {
-        const commands = [];
-        let lastCutRange = null;
-        selections.sort((a, b) => Position.compare(a.getStartPosition(), b.getEndPosition()));
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          const selection = selections[i2];
-          if (selection.isEmpty()) {
-            if (config.emptySelectionClipboard) {
-              const position = selection.getPosition();
-              let startLineNumber, startColumn, endLineNumber, endColumn;
-              if (position.lineNumber < model.getLineCount()) {
-                startLineNumber = position.lineNumber;
-                startColumn = 1;
-                endLineNumber = position.lineNumber + 1;
-                endColumn = 1;
-              } else if (position.lineNumber > 1 && lastCutRange?.endLineNumber !== position.lineNumber) {
-                startLineNumber = position.lineNumber - 1;
-                startColumn = model.getLineMaxColumn(position.lineNumber - 1);
-                endLineNumber = position.lineNumber;
-                endColumn = model.getLineMaxColumn(position.lineNumber);
-              } else {
-                startLineNumber = position.lineNumber;
-                startColumn = 1;
-                endLineNumber = position.lineNumber;
-                endColumn = model.getLineMaxColumn(position.lineNumber);
-              }
-              const deleteSelection = new Range(startLineNumber, startColumn, endLineNumber, endColumn);
-              lastCutRange = deleteSelection;
-              if (!deleteSelection.isEmpty()) {
-                commands[i2] = new ReplaceCommand(deleteSelection, "");
-              } else {
-                commands[i2] = null;
-              }
-            } else {
-              commands[i2] = null;
-            }
-          } else {
-            commands[i2] = new ReplaceCommand(selection, "");
-          }
-        }
-        return new EditOperationResult(0, commands, {
-          shouldPushStackElementBefore: true,
-          shouldPushStackElementAfter: true
-        });
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/date.js
-var safeIntl;
-var init_date = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/date.js"() {
-    init_lazy();
-    init_platform();
-    safeIntl = {
-      DateTimeFormat(locales, options) {
-        return new Lazy(() => {
-          try {
-            return new Intl.DateTimeFormat(locales, options);
-          } catch {
-            return new Intl.DateTimeFormat(void 0, options);
-          }
-        });
-      },
-      Collator(locales, options) {
-        return new Lazy(() => {
-          try {
-            return new Intl.Collator(locales, options);
-          } catch {
-            return new Intl.Collator(void 0, options);
-          }
-        });
-      },
-      Segmenter(locales, options) {
-        return new Lazy(() => {
-          try {
-            return new Intl.Segmenter(locales, options);
-          } catch {
-            return new Intl.Segmenter(void 0, options);
-          }
-        });
-      },
-      Locale(tag2, options) {
-        return new Lazy(() => {
-          try {
-            return new Intl.Locale(tag2, options);
-          } catch {
-            return new Intl.Locale(LANGUAGE_DEFAULT, options);
-          }
-        });
-      },
-      NumberFormat(locales, options) {
-        return new Lazy(() => {
-          try {
-            return new Intl.NumberFormat(locales, options);
-          } catch {
-            return new Intl.NumberFormat(void 0, options);
-          }
-        });
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/uint.js
-function toUint8(v) {
-  if (v < 0) {
-    return 0;
-  }
-  if (v > 255) {
-    return 255;
-  }
-  return v | 0;
-}
-function toUint32(v) {
-  if (v < 0) {
-    return 0;
-  }
-  if (v > 4294967295) {
-    return 4294967295;
-  }
-  return v | 0;
-}
-var init_uint = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/uint.js"() {
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/core/characterClassifier.js
-var CharacterClassifier, CharacterSet;
-var init_characterClassifier = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/core/characterClassifier.js"() {
-    init_uint();
-    CharacterClassifier = class _CharacterClassifier {
-      constructor(_defaultValue) {
-        const defaultValue = toUint8(_defaultValue);
-        this._defaultValue = defaultValue;
-        this._asciiMap = _CharacterClassifier._createAsciiMap(defaultValue);
-        this._map = /* @__PURE__ */ new Map();
-      }
-      static _createAsciiMap(defaultValue) {
-        const asciiMap = new Uint8Array(256);
-        asciiMap.fill(defaultValue);
-        return asciiMap;
-      }
-      set(charCode, _value) {
-        const value = toUint8(_value);
-        if (charCode >= 0 && charCode < 256) {
-          this._asciiMap[charCode] = value;
-        } else {
-          this._map.set(charCode, value);
-        }
-      }
-      get(charCode) {
-        if (charCode >= 0 && charCode < 256) {
-          return this._asciiMap[charCode];
-        } else {
-          return this._map.get(charCode) || this._defaultValue;
-        }
-      }
-      clear() {
-        this._asciiMap.fill(this._defaultValue);
-        this._map.clear();
-      }
-    };
-    CharacterSet = class {
-      constructor() {
-        this._actual = new CharacterClassifier(
-          0
-          /* Boolean.False */
-        );
-      }
-      add(charCode) {
-        this._actual.set(
-          charCode,
-          1
-          /* Boolean.True */
-        );
-      }
-      has(charCode) {
-        return this._actual.get(charCode) === 1;
-      }
-      clear() {
-        return this._actual.clear();
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/core/wordCharacterClassifier.js
-function getMapForWordSeparators(wordSeparators2, intlSegmenterLocales) {
-  const key = `${wordSeparators2}/${intlSegmenterLocales.join(",")}`;
-  let result = wordClassifierCache.get(key);
-  if (!result) {
-    result = new WordCharacterClassifier(wordSeparators2, intlSegmenterLocales);
-    wordClassifierCache.set(key, result);
-  }
-  return result;
-}
-var WordCharacterClassifier, wordClassifierCache;
-var init_wordCharacterClassifier = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/core/wordCharacterClassifier.js"() {
-    init_date();
-    init_map();
-    init_characterClassifier();
-    WordCharacterClassifier = class extends CharacterClassifier {
-      constructor(wordSeparators2, intlSegmenterLocales) {
-        super(
-          0
-          /* WordCharacterClass.Regular */
-        );
-        this._segmenter = null;
-        this._cachedLine = null;
-        this._cachedSegments = [];
-        this.intlSegmenterLocales = intlSegmenterLocales;
-        if (this.intlSegmenterLocales.length > 0) {
-          this._segmenter = safeIntl.Segmenter(this.intlSegmenterLocales, { granularity: "word" });
-        } else {
-          this._segmenter = null;
-        }
-        for (let i2 = 0, len = wordSeparators2.length; i2 < len; i2++) {
-          this.set(
-            wordSeparators2.charCodeAt(i2),
-            2
-            /* WordCharacterClass.WordSeparator */
-          );
-        }
-        this.set(
-          32,
-          1
-          /* WordCharacterClass.Whitespace */
-        );
-        this.set(
-          9,
-          1
-          /* WordCharacterClass.Whitespace */
-        );
-      }
-      findPrevIntlWordBeforeOrAtOffset(line, offset) {
-        let candidate = null;
-        for (const segment of this._getIntlSegmenterWordsOnLine(line)) {
-          if (segment.index > offset) {
-            break;
-          }
-          candidate = segment;
-        }
-        return candidate;
-      }
-      findNextIntlWordAtOrAfterOffset(lineContent, offset) {
-        for (const segment of this._getIntlSegmenterWordsOnLine(lineContent)) {
-          if (segment.index < offset) {
-            continue;
-          }
-          return segment;
-        }
-        return null;
-      }
-      _getIntlSegmenterWordsOnLine(line) {
-        if (!this._segmenter) {
-          return [];
-        }
-        if (this._cachedLine === line) {
-          return this._cachedSegments;
-        }
-        this._cachedLine = line;
-        this._cachedSegments = this._filterWordSegments(this._segmenter.value.segment(line));
-        return this._cachedSegments;
-      }
-      _filterWordSegments(segments) {
-        const result = [];
-        for (const segment of segments) {
-          if (this._isWordLike(segment)) {
-            result.push(segment);
-          }
-        }
-        return result;
-      }
-      _isWordLike(segment) {
-        if (segment.isWordLike) {
-          return true;
-        }
-        return false;
-      }
-    };
-    wordClassifierCache = new LRUCache(10);
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorWordOperations.js
-function enforceDefined(arr) {
-  return arr.filter((el) => Boolean(el));
-}
-var WordOperations, WordPartOperations;
-var init_cursorWordOperations = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorWordOperations.js"() {
-    init_strings();
-    init_cursorCommon();
-    init_cursorDeleteOperations();
-    init_wordCharacterClassifier();
-    init_position();
-    init_range();
-    WordOperations = class _WordOperations {
-      static _createWord(lineContent, wordType, nextCharClass, start, end) {
-        return { start, end, wordType, nextCharClass };
-      }
-      static _createIntlWord(intlWord, nextCharClass) {
-        return { start: intlWord.index, end: intlWord.index + intlWord.segment.length, wordType: 1, nextCharClass };
-      }
-      static _findPreviousWordOnLine(wordSeparators2, model, position) {
-        const lineContent = model.getLineContent(position.lineNumber);
-        return this._doFindPreviousWordOnLine(lineContent, wordSeparators2, position);
-      }
-      static _doFindPreviousWordOnLine(lineContent, wordSeparators2, position) {
-        let wordType = 0;
-        const previousIntlWord = wordSeparators2.findPrevIntlWordBeforeOrAtOffset(lineContent, position.column - 2);
-        for (let chIndex = position.column - 2; chIndex >= 0; chIndex--) {
-          const chCode = lineContent.charCodeAt(chIndex);
-          const chClass = wordSeparators2.get(chCode);
-          if (previousIntlWord && chIndex === previousIntlWord.index) {
-            return this._createIntlWord(previousIntlWord, chClass);
-          }
-          if (chClass === 0) {
-            if (wordType === 2) {
-              return this._createWord(lineContent, wordType, chClass, chIndex + 1, this._findEndOfWord(lineContent, wordSeparators2, wordType, chIndex + 1));
-            }
-            wordType = 1;
-          } else if (chClass === 2) {
-            if (wordType === 1) {
-              return this._createWord(lineContent, wordType, chClass, chIndex + 1, this._findEndOfWord(lineContent, wordSeparators2, wordType, chIndex + 1));
-            }
-            wordType = 2;
-          } else if (chClass === 1) {
-            if (wordType !== 0) {
-              return this._createWord(lineContent, wordType, chClass, chIndex + 1, this._findEndOfWord(lineContent, wordSeparators2, wordType, chIndex + 1));
-            }
-          }
-        }
-        if (wordType !== 0) {
-          return this._createWord(lineContent, wordType, 1, 0, this._findEndOfWord(lineContent, wordSeparators2, wordType, 0));
-        }
-        return null;
-      }
-      static _findEndOfWord(lineContent, wordSeparators2, wordType, startIndex) {
-        const nextIntlWord = wordSeparators2.findNextIntlWordAtOrAfterOffset(lineContent, startIndex);
-        const len = lineContent.length;
-        for (let chIndex = startIndex; chIndex < len; chIndex++) {
-          const chCode = lineContent.charCodeAt(chIndex);
-          const chClass = wordSeparators2.get(chCode);
-          if (nextIntlWord && chIndex === nextIntlWord.index + nextIntlWord.segment.length) {
-            return chIndex;
-          }
-          if (chClass === 1) {
-            return chIndex;
-          }
-          if (wordType === 1 && chClass === 2) {
-            return chIndex;
-          }
-          if (wordType === 2 && chClass === 0) {
-            return chIndex;
-          }
-        }
-        return len;
-      }
-      static _findNextWordOnLine(wordSeparators2, model, position) {
-        const lineContent = model.getLineContent(position.lineNumber);
-        return this._doFindNextWordOnLine(lineContent, wordSeparators2, position);
-      }
-      static _doFindNextWordOnLine(lineContent, wordSeparators2, position) {
-        let wordType = 0;
-        const len = lineContent.length;
-        const nextIntlWord = wordSeparators2.findNextIntlWordAtOrAfterOffset(lineContent, position.column - 1);
-        for (let chIndex = position.column - 1; chIndex < len; chIndex++) {
-          const chCode = lineContent.charCodeAt(chIndex);
-          const chClass = wordSeparators2.get(chCode);
-          if (nextIntlWord && chIndex === nextIntlWord.index) {
-            return this._createIntlWord(nextIntlWord, chClass);
-          }
-          if (chClass === 0) {
-            if (wordType === 2) {
-              return this._createWord(lineContent, wordType, chClass, this._findStartOfWord(lineContent, wordSeparators2, wordType, chIndex - 1), chIndex);
-            }
-            wordType = 1;
-          } else if (chClass === 2) {
-            if (wordType === 1) {
-              return this._createWord(lineContent, wordType, chClass, this._findStartOfWord(lineContent, wordSeparators2, wordType, chIndex - 1), chIndex);
-            }
-            wordType = 2;
-          } else if (chClass === 1) {
-            if (wordType !== 0) {
-              return this._createWord(lineContent, wordType, chClass, this._findStartOfWord(lineContent, wordSeparators2, wordType, chIndex - 1), chIndex);
-            }
-          }
-        }
-        if (wordType !== 0) {
-          return this._createWord(lineContent, wordType, 1, this._findStartOfWord(lineContent, wordSeparators2, wordType, len - 1), len);
-        }
-        return null;
-      }
-      static _findStartOfWord(lineContent, wordSeparators2, wordType, startIndex) {
-        const previousIntlWord = wordSeparators2.findPrevIntlWordBeforeOrAtOffset(lineContent, startIndex);
-        for (let chIndex = startIndex; chIndex >= 0; chIndex--) {
-          const chCode = lineContent.charCodeAt(chIndex);
-          const chClass = wordSeparators2.get(chCode);
-          if (previousIntlWord && chIndex === previousIntlWord.index) {
-            return chIndex;
-          }
-          if (chClass === 1) {
-            return chIndex + 1;
-          }
-          if (wordType === 1 && chClass === 2) {
-            return chIndex + 1;
-          }
-          if (wordType === 2 && chClass === 0) {
-            return chIndex + 1;
-          }
-        }
-        return 0;
-      }
-      static moveWordLeft(wordSeparators2, model, position, wordNavigationType, hasMulticursor) {
-        let lineNumber = position.lineNumber;
-        let column = position.column;
-        if (column === 1) {
-          if (lineNumber > 1) {
-            lineNumber = lineNumber - 1;
-            column = model.getLineMaxColumn(lineNumber);
-          }
-        }
-        let prevWordOnLine = _WordOperations._findPreviousWordOnLine(wordSeparators2, model, new Position(lineNumber, column));
-        if (wordNavigationType === 0) {
-          return new Position(lineNumber, prevWordOnLine ? prevWordOnLine.start + 1 : 1);
-        }
-        if (wordNavigationType === 1) {
-          if (!hasMulticursor && prevWordOnLine && prevWordOnLine.wordType === 2 && prevWordOnLine.end - prevWordOnLine.start === 1 && prevWordOnLine.nextCharClass === 0) {
-            prevWordOnLine = _WordOperations._findPreviousWordOnLine(wordSeparators2, model, new Position(lineNumber, prevWordOnLine.start + 1));
-          }
-          return new Position(lineNumber, prevWordOnLine ? prevWordOnLine.start + 1 : 1);
-        }
-        if (wordNavigationType === 3) {
-          while (prevWordOnLine && prevWordOnLine.wordType === 2) {
-            prevWordOnLine = _WordOperations._findPreviousWordOnLine(wordSeparators2, model, new Position(lineNumber, prevWordOnLine.start + 1));
-          }
-          return new Position(lineNumber, prevWordOnLine ? prevWordOnLine.start + 1 : 1);
-        }
-        if (prevWordOnLine && column <= prevWordOnLine.end + 1) {
-          prevWordOnLine = _WordOperations._findPreviousWordOnLine(wordSeparators2, model, new Position(lineNumber, prevWordOnLine.start + 1));
-        }
-        return new Position(lineNumber, prevWordOnLine ? prevWordOnLine.end + 1 : 1);
-      }
-      static _moveWordPartLeft(model, position) {
-        const lineNumber = position.lineNumber;
-        const maxColumn = model.getLineMaxColumn(lineNumber);
-        if (position.column === 1) {
-          return lineNumber > 1 ? new Position(lineNumber - 1, model.getLineMaxColumn(lineNumber - 1)) : position;
-        }
-        const lineContent = model.getLineContent(lineNumber);
-        for (let column = position.column - 1; column > 1; column--) {
-          const left = lineContent.charCodeAt(column - 2);
-          const right = lineContent.charCodeAt(column - 1);
-          if (left === 95 && right !== 95) {
-            return new Position(lineNumber, column);
-          }
-          if (left === 45 && right !== 45) {
-            return new Position(lineNumber, column);
-          }
-          if ((isLowerAsciiLetter(left) || isAsciiDigit(left)) && isUpperAsciiLetter(right)) {
-            return new Position(lineNumber, column);
-          }
-          if (isUpperAsciiLetter(left) && isUpperAsciiLetter(right)) {
-            if (column + 1 < maxColumn) {
-              const rightRight = lineContent.charCodeAt(column);
-              if (isLowerAsciiLetter(rightRight) || isAsciiDigit(rightRight)) {
-                return new Position(lineNumber, column);
-              }
-            }
-          }
-        }
-        return new Position(lineNumber, 1);
-      }
-      static moveWordRight(wordSeparators2, model, position, wordNavigationType) {
-        let lineNumber = position.lineNumber;
-        let column = position.column;
-        let movedDown = false;
-        if (column === model.getLineMaxColumn(lineNumber)) {
-          if (lineNumber < model.getLineCount()) {
-            movedDown = true;
-            lineNumber = lineNumber + 1;
-            column = 1;
-          }
-        }
-        let nextWordOnLine = _WordOperations._findNextWordOnLine(wordSeparators2, model, new Position(lineNumber, column));
-        if (wordNavigationType === 2) {
-          if (nextWordOnLine && nextWordOnLine.wordType === 2) {
-            if (nextWordOnLine.end - nextWordOnLine.start === 1 && nextWordOnLine.nextCharClass === 0) {
-              nextWordOnLine = _WordOperations._findNextWordOnLine(wordSeparators2, model, new Position(lineNumber, nextWordOnLine.end + 1));
-            }
-          }
-          if (nextWordOnLine) {
-            column = nextWordOnLine.end + 1;
-          } else {
-            column = model.getLineMaxColumn(lineNumber);
-          }
-        } else if (wordNavigationType === 3) {
-          if (movedDown) {
-            column = 0;
-          }
-          while (nextWordOnLine && (nextWordOnLine.wordType === 2 || nextWordOnLine.start + 1 <= column)) {
-            nextWordOnLine = _WordOperations._findNextWordOnLine(wordSeparators2, model, new Position(lineNumber, nextWordOnLine.end + 1));
-          }
-          if (nextWordOnLine) {
-            column = nextWordOnLine.start + 1;
-          } else {
-            column = model.getLineMaxColumn(lineNumber);
-          }
-        } else {
-          if (nextWordOnLine && !movedDown && column >= nextWordOnLine.start + 1) {
-            nextWordOnLine = _WordOperations._findNextWordOnLine(wordSeparators2, model, new Position(lineNumber, nextWordOnLine.end + 1));
-          }
-          if (nextWordOnLine) {
-            column = nextWordOnLine.start + 1;
-          } else {
-            column = model.getLineMaxColumn(lineNumber);
-          }
-        }
-        return new Position(lineNumber, column);
-      }
-      static _moveWordPartRight(model, position) {
-        const lineNumber = position.lineNumber;
-        const maxColumn = model.getLineMaxColumn(lineNumber);
-        if (position.column === maxColumn) {
-          return lineNumber < model.getLineCount() ? new Position(lineNumber + 1, 1) : position;
-        }
-        const lineContent = model.getLineContent(lineNumber);
-        for (let column = position.column + 1; column < maxColumn; column++) {
-          const left = lineContent.charCodeAt(column - 2);
-          const right = lineContent.charCodeAt(column - 1);
-          if (left !== 95 && right === 95) {
-            return new Position(lineNumber, column);
-          }
-          if (left !== 45 && right === 45) {
-            return new Position(lineNumber, column);
-          }
-          if ((isLowerAsciiLetter(left) || isAsciiDigit(left)) && isUpperAsciiLetter(right)) {
-            return new Position(lineNumber, column);
-          }
-          if (isUpperAsciiLetter(left) && isUpperAsciiLetter(right)) {
-            if (column + 1 < maxColumn) {
-              const rightRight = lineContent.charCodeAt(column);
-              if (isLowerAsciiLetter(rightRight) || isAsciiDigit(rightRight)) {
-                return new Position(lineNumber, column);
-              }
-            }
-          }
-        }
-        return new Position(lineNumber, maxColumn);
-      }
-      static _deleteWordLeftWhitespace(model, position) {
-        const lineContent = model.getLineContent(position.lineNumber);
-        const startIndex = position.column - 2;
-        const lastNonWhitespace = lastNonWhitespaceIndex(lineContent, startIndex);
-        if (lastNonWhitespace + 1 < startIndex) {
-          return new Range(position.lineNumber, lastNonWhitespace + 2, position.lineNumber, position.column);
-        }
-        return null;
-      }
-      static deleteWordLeft(ctx, wordNavigationType) {
-        const wordSeparators2 = ctx.wordSeparators;
-        const model = ctx.model;
-        const selection = ctx.selection;
-        const whitespaceHeuristics = ctx.whitespaceHeuristics;
-        if (!selection.isEmpty()) {
-          return selection;
-        }
-        if (DeleteOperations.isAutoClosingPairDelete(ctx.autoClosingDelete, ctx.autoClosingBrackets, ctx.autoClosingQuotes, ctx.autoClosingPairs.autoClosingPairsOpenByEnd, ctx.model, [ctx.selection], ctx.autoClosedCharacters)) {
-          const position2 = ctx.selection.getPosition();
-          return new Range(position2.lineNumber, position2.column - 1, position2.lineNumber, position2.column + 1);
-        }
-        const position = new Position(selection.positionLineNumber, selection.positionColumn);
-        let lineNumber = position.lineNumber;
-        let column = position.column;
-        if (lineNumber === 1 && column === 1) {
-          return null;
-        }
-        if (whitespaceHeuristics) {
-          const r = this._deleteWordLeftWhitespace(model, position);
-          if (r) {
-            return r;
-          }
-        }
-        let prevWordOnLine = _WordOperations._findPreviousWordOnLine(wordSeparators2, model, position);
-        if (wordNavigationType === 0) {
-          if (prevWordOnLine) {
-            column = prevWordOnLine.start + 1;
-          } else {
-            if (column > 1) {
-              column = 1;
-            } else {
-              lineNumber--;
-              column = model.getLineMaxColumn(lineNumber);
-            }
-          }
-        } else {
-          if (prevWordOnLine && column <= prevWordOnLine.end + 1) {
-            prevWordOnLine = _WordOperations._findPreviousWordOnLine(wordSeparators2, model, new Position(lineNumber, prevWordOnLine.start + 1));
-          }
-          if (prevWordOnLine) {
-            column = prevWordOnLine.end + 1;
-          } else {
-            if (column > 1) {
-              column = 1;
-            } else {
-              lineNumber--;
-              column = model.getLineMaxColumn(lineNumber);
-            }
-          }
-        }
-        return new Range(lineNumber, column, position.lineNumber, position.column);
-      }
-      static deleteInsideWord(wordSeparators2, model, selection) {
-        if (!selection.isEmpty()) {
-          return selection;
-        }
-        const position = new Position(selection.positionLineNumber, selection.positionColumn);
-        const r = this._deleteInsideWordWhitespace(model, position);
-        if (r) {
-          return r;
-        }
-        return this._deleteInsideWordDetermineDeleteRange(wordSeparators2, model, position);
-      }
-      static _charAtIsWhitespace(str, index) {
-        const charCode = str.charCodeAt(index);
-        return charCode === 32 || charCode === 9;
-      }
-      static _deleteInsideWordWhitespace(model, position) {
-        const lineContent = model.getLineContent(position.lineNumber);
-        const lineContentLength = lineContent.length;
-        if (lineContentLength === 0) {
-          return null;
-        }
-        let leftIndex = Math.max(position.column - 2, 0);
-        if (!this._charAtIsWhitespace(lineContent, leftIndex)) {
-          return null;
-        }
-        let rightIndex = Math.min(position.column - 1, lineContentLength - 1);
-        if (!this._charAtIsWhitespace(lineContent, rightIndex)) {
-          return null;
-        }
-        while (leftIndex > 0 && this._charAtIsWhitespace(lineContent, leftIndex - 1)) {
-          leftIndex--;
-        }
-        while (rightIndex + 1 < lineContentLength && this._charAtIsWhitespace(lineContent, rightIndex + 1)) {
-          rightIndex++;
-        }
-        return new Range(position.lineNumber, leftIndex + 1, position.lineNumber, rightIndex + 2);
-      }
-      static _deleteInsideWordDetermineDeleteRange(wordSeparators2, model, position) {
-        const lineContent = model.getLineContent(position.lineNumber);
-        const lineLength = lineContent.length;
-        if (lineLength === 0) {
-          if (position.lineNumber > 1) {
-            return new Range(position.lineNumber - 1, model.getLineMaxColumn(position.lineNumber - 1), position.lineNumber, 1);
-          } else {
-            if (position.lineNumber < model.getLineCount()) {
-              return new Range(position.lineNumber, 1, position.lineNumber + 1, 1);
-            } else {
-              return new Range(position.lineNumber, 1, position.lineNumber, 1);
-            }
-          }
-        }
-        const touchesWord = (word) => {
-          return word.start + 1 <= position.column && position.column <= word.end + 1;
-        };
-        const createRangeWithPosition = (startColumn, endColumn) => {
-          startColumn = Math.min(startColumn, position.column);
-          endColumn = Math.max(endColumn, position.column);
-          return new Range(position.lineNumber, startColumn, position.lineNumber, endColumn);
-        };
-        const deleteWordAndAdjacentWhitespace = (word) => {
-          let startColumn = word.start + 1;
-          let endColumn = word.end + 1;
-          let expandedToTheRight = false;
-          while (endColumn - 1 < lineLength && this._charAtIsWhitespace(lineContent, endColumn - 1)) {
-            expandedToTheRight = true;
-            endColumn++;
-          }
-          if (!expandedToTheRight) {
-            while (startColumn > 1 && this._charAtIsWhitespace(lineContent, startColumn - 2)) {
-              startColumn--;
-            }
-          }
-          return createRangeWithPosition(startColumn, endColumn);
-        };
-        const prevWordOnLine = _WordOperations._findPreviousWordOnLine(wordSeparators2, model, position);
-        if (prevWordOnLine && touchesWord(prevWordOnLine)) {
-          return deleteWordAndAdjacentWhitespace(prevWordOnLine);
-        }
-        const nextWordOnLine = _WordOperations._findNextWordOnLine(wordSeparators2, model, position);
-        if (nextWordOnLine && touchesWord(nextWordOnLine)) {
-          return deleteWordAndAdjacentWhitespace(nextWordOnLine);
-        }
-        if (prevWordOnLine && nextWordOnLine) {
-          return createRangeWithPosition(prevWordOnLine.end + 1, nextWordOnLine.start + 1);
-        }
-        if (prevWordOnLine) {
-          return createRangeWithPosition(prevWordOnLine.start + 1, prevWordOnLine.end + 1);
-        }
-        if (nextWordOnLine) {
-          return createRangeWithPosition(nextWordOnLine.start + 1, nextWordOnLine.end + 1);
-        }
-        return createRangeWithPosition(1, lineLength + 1);
-      }
-      static _deleteWordPartLeft(model, selection) {
-        if (!selection.isEmpty()) {
-          return selection;
-        }
-        const pos = selection.getPosition();
-        const toPosition = _WordOperations._moveWordPartLeft(model, pos);
-        return new Range(pos.lineNumber, pos.column, toPosition.lineNumber, toPosition.column);
-      }
-      static _findFirstNonWhitespaceChar(str, startIndex) {
-        const len = str.length;
-        for (let chIndex = startIndex; chIndex < len; chIndex++) {
-          const ch = str.charAt(chIndex);
-          if (ch !== " " && ch !== "	") {
-            return chIndex;
-          }
-        }
-        return len;
-      }
-      static _deleteWordRightWhitespace(model, position) {
-        const lineContent = model.getLineContent(position.lineNumber);
-        const startIndex = position.column - 1;
-        const firstNonWhitespace = this._findFirstNonWhitespaceChar(lineContent, startIndex);
-        if (startIndex + 1 < firstNonWhitespace) {
-          return new Range(position.lineNumber, position.column, position.lineNumber, firstNonWhitespace + 1);
-        }
-        return null;
-      }
-      static deleteWordRight(ctx, wordNavigationType) {
-        const wordSeparators2 = ctx.wordSeparators;
-        const model = ctx.model;
-        const selection = ctx.selection;
-        const whitespaceHeuristics = ctx.whitespaceHeuristics;
-        if (!selection.isEmpty()) {
-          return selection;
-        }
-        const position = new Position(selection.positionLineNumber, selection.positionColumn);
-        let lineNumber = position.lineNumber;
-        let column = position.column;
-        const lineCount = model.getLineCount();
-        const maxColumn = model.getLineMaxColumn(lineNumber);
-        if (lineNumber === lineCount && column === maxColumn) {
-          return null;
-        }
-        if (whitespaceHeuristics) {
-          const r = this._deleteWordRightWhitespace(model, position);
-          if (r) {
-            return r;
-          }
-        }
-        let nextWordOnLine = _WordOperations._findNextWordOnLine(wordSeparators2, model, position);
-        if (wordNavigationType === 2) {
-          if (nextWordOnLine) {
-            column = nextWordOnLine.end + 1;
-          } else {
-            if (column < maxColumn || lineNumber === lineCount) {
-              column = maxColumn;
-            } else {
-              lineNumber++;
-              nextWordOnLine = _WordOperations._findNextWordOnLine(wordSeparators2, model, new Position(lineNumber, 1));
-              if (nextWordOnLine) {
-                column = nextWordOnLine.start + 1;
-              } else {
-                column = model.getLineMaxColumn(lineNumber);
-              }
-            }
-          }
-        } else {
-          if (nextWordOnLine && column >= nextWordOnLine.start + 1) {
-            nextWordOnLine = _WordOperations._findNextWordOnLine(wordSeparators2, model, new Position(lineNumber, nextWordOnLine.end + 1));
-          }
-          if (nextWordOnLine) {
-            column = nextWordOnLine.start + 1;
-          } else {
-            if (column < maxColumn || lineNumber === lineCount) {
-              column = maxColumn;
-            } else {
-              lineNumber++;
-              nextWordOnLine = _WordOperations._findNextWordOnLine(wordSeparators2, model, new Position(lineNumber, 1));
-              if (nextWordOnLine) {
-                column = nextWordOnLine.start + 1;
-              } else {
-                column = model.getLineMaxColumn(lineNumber);
-              }
-            }
-          }
-        }
-        return new Range(lineNumber, column, position.lineNumber, position.column);
-      }
-      static _deleteWordPartRight(model, selection) {
-        if (!selection.isEmpty()) {
-          return selection;
-        }
-        const pos = selection.getPosition();
-        const toPosition = _WordOperations._moveWordPartRight(model, pos);
-        return new Range(pos.lineNumber, pos.column, toPosition.lineNumber, toPosition.column);
-      }
-      static _createWordAtPosition(model, lineNumber, word) {
-        const range2 = new Range(lineNumber, word.start + 1, lineNumber, word.end + 1);
-        return {
-          word: model.getValueInRange(range2),
-          startColumn: range2.startColumn,
-          endColumn: range2.endColumn
-        };
-      }
-      static getWordAtPosition(model, _wordSeparators, _intlSegmenterLocales, position) {
-        const wordSeparators2 = getMapForWordSeparators(_wordSeparators, _intlSegmenterLocales);
-        const prevWord = _WordOperations._findPreviousWordOnLine(wordSeparators2, model, position);
-        if (prevWord && prevWord.wordType === 1 && prevWord.start <= position.column - 1 && position.column - 1 <= prevWord.end) {
-          return _WordOperations._createWordAtPosition(model, position.lineNumber, prevWord);
-        }
-        const nextWord2 = _WordOperations._findNextWordOnLine(wordSeparators2, model, position);
-        if (nextWord2 && nextWord2.wordType === 1 && nextWord2.start <= position.column - 1 && position.column - 1 <= nextWord2.end) {
-          return _WordOperations._createWordAtPosition(model, position.lineNumber, nextWord2);
-        }
-        return null;
-      }
-      static word(config, model, cursor, inSelectionMode, position) {
-        const wordSeparators2 = getMapForWordSeparators(config.wordSeparators, config.wordSegmenterLocales);
-        const prevWord = _WordOperations._findPreviousWordOnLine(wordSeparators2, model, position);
-        const nextWord2 = _WordOperations._findNextWordOnLine(wordSeparators2, model, position);
-        if (!inSelectionMode) {
-          let startColumn2;
-          let endColumn2;
-          if (prevWord && prevWord.wordType === 1 && prevWord.start <= position.column - 1 && position.column - 1 <= prevWord.end) {
-            startColumn2 = prevWord.start + 1;
-            endColumn2 = prevWord.end + 1;
-          } else if (prevWord && prevWord.wordType === 2 && prevWord.start <= position.column - 1 && position.column - 1 < prevWord.end) {
-            startColumn2 = prevWord.start + 1;
-            endColumn2 = prevWord.end + 1;
-          } else if (nextWord2 && nextWord2.wordType === 1 && nextWord2.start <= position.column - 1 && position.column - 1 <= nextWord2.end) {
-            startColumn2 = nextWord2.start + 1;
-            endColumn2 = nextWord2.end + 1;
-          } else if (nextWord2 && nextWord2.wordType === 2 && nextWord2.start <= position.column - 1 && position.column - 1 < nextWord2.end) {
-            startColumn2 = nextWord2.start + 1;
-            endColumn2 = nextWord2.end + 1;
-          } else {
-            if (prevWord) {
-              startColumn2 = prevWord.end + 1;
-            } else {
-              startColumn2 = 1;
-            }
-            if (nextWord2) {
-              endColumn2 = nextWord2.start + 1;
-            } else {
-              endColumn2 = model.getLineMaxColumn(position.lineNumber);
-            }
-          }
-          return new SingleCursorState(new Range(position.lineNumber, startColumn2, position.lineNumber, endColumn2), 1, 0, new Position(position.lineNumber, endColumn2), 0);
-        }
-        let startColumn;
-        let endColumn;
-        if (prevWord && prevWord.wordType === 1 && prevWord.start < position.column - 1 && position.column - 1 < prevWord.end) {
-          startColumn = prevWord.start + 1;
-          endColumn = prevWord.end + 1;
-        } else if (nextWord2 && nextWord2.wordType === 1 && nextWord2.start < position.column - 1 && position.column - 1 < nextWord2.end) {
-          startColumn = nextWord2.start + 1;
-          endColumn = nextWord2.end + 1;
-        } else {
-          startColumn = position.column;
-          endColumn = position.column;
-        }
-        const lineNumber = position.lineNumber;
-        let column;
-        if (cursor.selectionStart.containsPosition(position)) {
-          column = cursor.selectionStart.endColumn;
-        } else if (position.isBeforeOrEqual(cursor.selectionStart.getStartPosition())) {
-          column = startColumn;
-          const possiblePosition = new Position(lineNumber, column);
-          if (cursor.selectionStart.containsPosition(possiblePosition)) {
-            column = cursor.selectionStart.endColumn;
-          }
-        } else {
-          column = endColumn;
-          const possiblePosition = new Position(lineNumber, column);
-          if (cursor.selectionStart.containsPosition(possiblePosition)) {
-            column = cursor.selectionStart.startColumn;
-          }
-        }
-        return cursor.move(true, lineNumber, column, 0);
-      }
-    };
-    WordPartOperations = class extends WordOperations {
-      static deleteWordPartLeft(ctx) {
-        const candidates = enforceDefined([
-          WordOperations.deleteWordLeft(
-            ctx,
-            0
-            /* WordNavigationType.WordStart */
-          ),
-          WordOperations.deleteWordLeft(
-            ctx,
-            2
-            /* WordNavigationType.WordEnd */
-          ),
-          WordOperations._deleteWordPartLeft(ctx.model, ctx.selection)
-        ]);
-        candidates.sort(Range.compareRangesUsingEnds);
-        return candidates[2];
-      }
-      static deleteWordPartRight(ctx) {
-        const candidates = enforceDefined([
-          WordOperations.deleteWordRight(
-            ctx,
-            0
-            /* WordNavigationType.WordStart */
-          ),
-          WordOperations.deleteWordRight(
-            ctx,
-            2
-            /* WordNavigationType.WordEnd */
-          ),
-          WordOperations._deleteWordPartRight(ctx.model, ctx.selection)
-        ]);
-        candidates.sort(Range.compareRangesUsingStarts);
-        return candidates[0];
-      }
-      static moveWordPartLeft(wordSeparators2, model, position, hasMulticursor) {
-        const candidates = enforceDefined([
-          WordOperations.moveWordLeft(wordSeparators2, model, position, 0, hasMulticursor),
-          WordOperations.moveWordLeft(wordSeparators2, model, position, 2, hasMulticursor),
-          WordOperations._moveWordPartLeft(model, position)
-        ]);
-        candidates.sort(Position.compare);
-        return candidates[2];
-      }
-      static moveWordPartRight(wordSeparators2, model, position) {
-        const candidates = enforceDefined([
-          WordOperations.moveWordRight(
-            wordSeparators2,
-            model,
-            position,
-            0
-            /* WordNavigationType.WordStart */
-          ),
-          WordOperations.moveWordRight(
-            wordSeparators2,
-            model,
-            position,
-            2
-            /* WordNavigationType.WordEnd */
-          ),
-          WordOperations._moveWordPartRight(model, position)
-        ]);
-        candidates.sort(Position.compare);
-        return candidates[0];
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/objects.js
-function deepClone(obj) {
-  if (!obj || typeof obj !== "object") {
-    return obj;
-  }
-  if (obj instanceof RegExp) {
-    return obj;
-  }
-  const result = Array.isArray(obj) ? [] : {};
-  Object.entries(obj).forEach(([key, value]) => {
-    result[key] = value && typeof value === "object" ? deepClone(value) : value;
-  });
-  return result;
-}
-function deepFreeze(obj) {
-  if (!obj || typeof obj !== "object") {
-    return obj;
-  }
-  const stack = [obj];
-  while (stack.length > 0) {
-    const obj2 = stack.shift();
-    Object.freeze(obj2);
-    for (const key in obj2) {
-      if (_hasOwnProperty.call(obj2, key)) {
-        const prop = obj2[key];
-        if (typeof prop === "object" && !Object.isFrozen(prop) && !isTypedArray(prop)) {
-          stack.push(prop);
-        }
-      }
-    }
-  }
-  return obj;
-}
-function cloneAndChange(obj, changer) {
-  return _cloneAndChange(obj, changer, /* @__PURE__ */ new Set());
-}
-function _cloneAndChange(obj, changer, seen) {
-  if (isUndefinedOrNull(obj)) {
-    return obj;
-  }
-  const changed = changer(obj);
-  if (typeof changed !== "undefined") {
-    return changed;
-  }
-  if (Array.isArray(obj)) {
-    const r1 = [];
-    for (const e of obj) {
-      r1.push(_cloneAndChange(e, changer, seen));
-    }
-    return r1;
-  }
-  if (isObject(obj)) {
-    if (seen.has(obj)) {
-      throw new Error("Cannot clone recursive data-structure");
-    }
-    seen.add(obj);
-    const r2 = {};
-    for (const i2 in obj) {
-      if (_hasOwnProperty.call(obj, i2)) {
-        r2[i2] = _cloneAndChange(obj[i2], changer, seen);
-      }
-    }
-    seen.delete(obj);
-    return r2;
-  }
-  return obj;
-}
-function mixin(destination, source, overwrite = true) {
-  if (!isObject(destination)) {
-    return source;
-  }
-  if (isObject(source)) {
-    Object.keys(source).forEach((key) => {
-      if (key in destination) {
-        if (overwrite) {
-          if (isObject(destination[key]) && isObject(source[key])) {
-            mixin(destination[key], source[key], overwrite);
-          } else {
-            destination[key] = source[key];
-          }
-        }
-      } else {
-        destination[key] = source[key];
-      }
-    });
-  }
-  return destination;
-}
-function equals2(one, other) {
-  if (one === other) {
-    return true;
-  }
-  if (one === null || one === void 0 || other === null || other === void 0) {
-    return false;
-  }
-  if (typeof one !== typeof other) {
-    return false;
-  }
-  if (typeof one !== "object") {
-    return false;
-  }
-  if (Array.isArray(one) !== Array.isArray(other)) {
-    return false;
-  }
-  let i2;
-  let key;
-  if (Array.isArray(one)) {
-    if (one.length !== other.length) {
-      return false;
-    }
-    for (i2 = 0; i2 < one.length; i2++) {
-      if (!equals2(one[i2], other[i2])) {
-        return false;
-      }
-    }
-  } else {
-    const oneKeys = [];
-    for (key in one) {
-      oneKeys.push(key);
-    }
-    oneKeys.sort();
-    const otherKeys = [];
-    for (key in other) {
-      otherKeys.push(key);
-    }
-    otherKeys.sort();
-    if (!equals2(oneKeys, otherKeys)) {
-      return false;
-    }
-    for (i2 = 0; i2 < oneKeys.length; i2++) {
-      if (!equals2(one[oneKeys[i2]], other[oneKeys[i2]])) {
-        return false;
-      }
-    }
-  }
-  return true;
-}
-var _hasOwnProperty;
-var init_objects = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/objects.js"() {
-    init_types();
-    _hasOwnProperty = Object.prototype.hasOwnProperty;
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/model.js
-function isITextSnapshot(obj) {
-  return !!obj && typeof obj.read === "function";
-}
-function shouldSynchronizeModel(model) {
-  return !model.isTooLargeForSyncing() && !model.isForSimpleWidget;
-}
-var OverviewRulerLane, GlyphMarginLane, TextDirection, InjectedTextCursorStops, TextModelResolvedOptions, FindMatch, ValidAnnotatedEditOperation, SearchData, ApplyEditsResult;
-var init_model2 = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/model.js"() {
-    init_objects();
-    (function(OverviewRulerLane3) {
-      OverviewRulerLane3[OverviewRulerLane3["Left"] = 1] = "Left";
-      OverviewRulerLane3[OverviewRulerLane3["Center"] = 2] = "Center";
-      OverviewRulerLane3[OverviewRulerLane3["Right"] = 4] = "Right";
-      OverviewRulerLane3[OverviewRulerLane3["Full"] = 7] = "Full";
-    })(OverviewRulerLane || (OverviewRulerLane = {}));
-    (function(GlyphMarginLane3) {
-      GlyphMarginLane3[GlyphMarginLane3["Left"] = 1] = "Left";
-      GlyphMarginLane3[GlyphMarginLane3["Center"] = 2] = "Center";
-      GlyphMarginLane3[GlyphMarginLane3["Right"] = 3] = "Right";
-    })(GlyphMarginLane || (GlyphMarginLane = {}));
-    (function(TextDirection3) {
-      TextDirection3[TextDirection3["LTR"] = 0] = "LTR";
-      TextDirection3[TextDirection3["RTL"] = 1] = "RTL";
-    })(TextDirection || (TextDirection = {}));
-    (function(InjectedTextCursorStops3) {
-      InjectedTextCursorStops3[InjectedTextCursorStops3["Both"] = 0] = "Both";
-      InjectedTextCursorStops3[InjectedTextCursorStops3["Right"] = 1] = "Right";
-      InjectedTextCursorStops3[InjectedTextCursorStops3["Left"] = 2] = "Left";
-      InjectedTextCursorStops3[InjectedTextCursorStops3["None"] = 3] = "None";
-    })(InjectedTextCursorStops || (InjectedTextCursorStops = {}));
-    TextModelResolvedOptions = class {
-      get originalIndentSize() {
-        return this._indentSizeIsTabSize ? "tabSize" : this.indentSize;
-      }
-      /**
-       * @internal
-       */
-      constructor(src) {
-        this._textModelResolvedOptionsBrand = void 0;
-        this.tabSize = Math.max(1, src.tabSize | 0);
-        if (src.indentSize === "tabSize") {
-          this.indentSize = this.tabSize;
-          this._indentSizeIsTabSize = true;
-        } else {
-          this.indentSize = Math.max(1, src.indentSize | 0);
-          this._indentSizeIsTabSize = false;
-        }
-        this.insertSpaces = Boolean(src.insertSpaces);
-        this.defaultEOL = src.defaultEOL | 0;
-        this.trimAutoWhitespace = Boolean(src.trimAutoWhitespace);
-        this.bracketPairColorizationOptions = src.bracketPairColorizationOptions;
-      }
-      /**
-       * @internal
-       */
-      equals(other) {
-        return this.tabSize === other.tabSize && this._indentSizeIsTabSize === other._indentSizeIsTabSize && this.indentSize === other.indentSize && this.insertSpaces === other.insertSpaces && this.defaultEOL === other.defaultEOL && this.trimAutoWhitespace === other.trimAutoWhitespace && equals2(this.bracketPairColorizationOptions, other.bracketPairColorizationOptions);
-      }
-      /**
-       * @internal
-       */
-      createChangeEvent(newOpts) {
-        return {
-          tabSize: this.tabSize !== newOpts.tabSize,
-          indentSize: this.indentSize !== newOpts.indentSize,
-          insertSpaces: this.insertSpaces !== newOpts.insertSpaces,
-          trimAutoWhitespace: this.trimAutoWhitespace !== newOpts.trimAutoWhitespace
-        };
-      }
-    };
-    FindMatch = class {
-      /**
-       * @internal
-       */
-      constructor(range2, matches) {
-        this._findMatchBrand = void 0;
-        this.range = range2;
-        this.matches = matches;
-      }
-    };
-    ValidAnnotatedEditOperation = class {
-      constructor(identifier3, range2, text2, forceMoveMarkers, isAutoWhitespaceEdit, _isTracked) {
-        this.identifier = identifier3;
-        this.range = range2;
-        this.text = text2;
-        this.forceMoveMarkers = forceMoveMarkers;
-        this.isAutoWhitespaceEdit = isAutoWhitespaceEdit;
-        this._isTracked = _isTracked;
-      }
-    };
-    SearchData = class {
-      constructor(regex, wordSeparators2, simpleSearch) {
-        this.regex = regex;
-        this.wordSeparators = wordSeparators2;
-        this.simpleSearch = simpleSearch;
-      }
-    };
-    ApplyEditsResult = class {
-      constructor(reverseEdits, changes, trimAutoWhitespaceLineNumbers) {
-        this.reverseEdits = reverseEdits;
-        this.changes = changes;
-        this.trimAutoWhitespaceLineNumbers = trimAutoWhitespaceLineNumbers;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorMoveCommands.js
-var CursorMoveCommands, CursorMove;
-var init_cursorMoveCommands = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorMoveCommands.js"() {
-    init_types();
-    init_cursorCommon();
-    init_cursorMoveOperations();
-    init_cursorWordOperations();
-    init_position();
-    init_range();
-    init_model2();
-    CursorMoveCommands = class {
-      static addCursorDown(viewModel, cursors, useLogicalLine) {
-        const result = [];
-        let resultLen = 0;
-        for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-          const cursor = cursors[i2];
-          result[resultLen++] = new CursorState(cursor.modelState, cursor.viewState);
-          if (useLogicalLine) {
-            result[resultLen++] = CursorState.fromModelState(MoveOperations.translateDown(viewModel.cursorConfig, viewModel.model, cursor.modelState));
-          } else {
-            result[resultLen++] = CursorState.fromViewState(MoveOperations.translateDown(viewModel.cursorConfig, viewModel, cursor.viewState));
-          }
-        }
-        return result;
-      }
-      static addCursorUp(viewModel, cursors, useLogicalLine) {
-        const result = [];
-        let resultLen = 0;
-        for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-          const cursor = cursors[i2];
-          result[resultLen++] = new CursorState(cursor.modelState, cursor.viewState);
-          if (useLogicalLine) {
-            result[resultLen++] = CursorState.fromModelState(MoveOperations.translateUp(viewModel.cursorConfig, viewModel.model, cursor.modelState));
-          } else {
-            result[resultLen++] = CursorState.fromViewState(MoveOperations.translateUp(viewModel.cursorConfig, viewModel, cursor.viewState));
-          }
-        }
-        return result;
-      }
-      static moveToBeginningOfLine(viewModel, cursors, inSelectionMode) {
-        const result = [];
-        for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-          const cursor = cursors[i2];
-          result[i2] = this._moveToLineStart(viewModel, cursor, inSelectionMode);
-        }
-        return result;
-      }
-      static _moveToLineStart(viewModel, cursor, inSelectionMode) {
-        const currentViewStateColumn = cursor.viewState.position.column;
-        const currentModelStateColumn = cursor.modelState.position.column;
-        const isFirstLineOfWrappedLine = currentViewStateColumn === currentModelStateColumn;
-        const currentViewStatelineNumber = cursor.viewState.position.lineNumber;
-        const firstNonBlankColumn = viewModel.getLineFirstNonWhitespaceColumn(currentViewStatelineNumber);
-        const isBeginningOfViewLine = currentViewStateColumn === firstNonBlankColumn;
-        if (!isFirstLineOfWrappedLine && !isBeginningOfViewLine) {
-          return this._moveToLineStartByView(viewModel, cursor, inSelectionMode);
-        } else {
-          return this._moveToLineStartByModel(viewModel, cursor, inSelectionMode);
-        }
-      }
-      static _moveToLineStartByView(viewModel, cursor, inSelectionMode) {
-        return CursorState.fromViewState(MoveOperations.moveToBeginningOfLine(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode));
-      }
-      static _moveToLineStartByModel(viewModel, cursor, inSelectionMode) {
-        return CursorState.fromModelState(MoveOperations.moveToBeginningOfLine(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode));
-      }
-      static moveToEndOfLine(viewModel, cursors, inSelectionMode, sticky) {
-        const result = [];
-        for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-          const cursor = cursors[i2];
-          result[i2] = this._moveToLineEnd(viewModel, cursor, inSelectionMode, sticky);
-        }
-        return result;
-      }
-      static _moveToLineEnd(viewModel, cursor, inSelectionMode, sticky) {
-        const viewStatePosition = cursor.viewState.position;
-        const viewModelMaxColumn = viewModel.getLineMaxColumn(viewStatePosition.lineNumber);
-        const isEndOfViewLine = viewStatePosition.column === viewModelMaxColumn;
-        const modelStatePosition = cursor.modelState.position;
-        const modelMaxColumn = viewModel.model.getLineMaxColumn(modelStatePosition.lineNumber);
-        const isEndLineOfWrappedLine = viewModelMaxColumn - viewStatePosition.column === modelMaxColumn - modelStatePosition.column;
-        if (isEndOfViewLine || isEndLineOfWrappedLine) {
-          return this._moveToLineEndByModel(viewModel, cursor, inSelectionMode, sticky);
-        } else {
-          return this._moveToLineEndByView(viewModel, cursor, inSelectionMode, sticky);
-        }
-      }
-      static _moveToLineEndByView(viewModel, cursor, inSelectionMode, sticky) {
-        return CursorState.fromViewState(MoveOperations.moveToEndOfLine(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, sticky));
-      }
-      static _moveToLineEndByModel(viewModel, cursor, inSelectionMode, sticky) {
-        return CursorState.fromModelState(MoveOperations.moveToEndOfLine(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode, sticky));
-      }
-      static expandLineSelection(viewModel, cursors) {
-        const result = [];
-        for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-          const cursor = cursors[i2];
-          const startLineNumber = cursor.modelState.selection.startLineNumber;
-          const lineCount = viewModel.model.getLineCount();
-          let endLineNumber = cursor.modelState.selection.endLineNumber;
-          let endColumn;
-          if (endLineNumber === lineCount) {
-            endColumn = viewModel.model.getLineMaxColumn(lineCount);
-          } else {
-            endLineNumber++;
-            endColumn = 1;
-          }
-          result[i2] = CursorState.fromModelState(new SingleCursorState(new Range(startLineNumber, 1, startLineNumber, 1), 0, 0, new Position(endLineNumber, endColumn), 0));
-        }
-        return result;
-      }
-      static moveToBeginningOfBuffer(viewModel, cursors, inSelectionMode) {
-        const result = [];
-        for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-          const cursor = cursors[i2];
-          result[i2] = CursorState.fromModelState(MoveOperations.moveToBeginningOfBuffer(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode));
-        }
-        return result;
-      }
-      static moveToEndOfBuffer(viewModel, cursors, inSelectionMode) {
-        const result = [];
-        for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-          const cursor = cursors[i2];
-          result[i2] = CursorState.fromModelState(MoveOperations.moveToEndOfBuffer(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode));
-        }
-        return result;
-      }
-      static selectAll(viewModel, cursor) {
-        const lineCount = viewModel.model.getLineCount();
-        const maxColumn = viewModel.model.getLineMaxColumn(lineCount);
-        return CursorState.fromModelState(new SingleCursorState(new Range(1, 1, 1, 1), 0, 0, new Position(lineCount, maxColumn), 0));
-      }
-      static line(viewModel, cursor, inSelectionMode, _position, _viewPosition) {
-        const position = viewModel.model.validatePosition(_position);
-        const viewPosition = _viewPosition ? viewModel.coordinatesConverter.validateViewPosition(new Position(_viewPosition.lineNumber, _viewPosition.column), position) : viewModel.coordinatesConverter.convertModelPositionToViewPosition(position);
-        if (!inSelectionMode) {
-          const lineCount = viewModel.model.getLineCount();
-          let selectToLineNumber = position.lineNumber + 1;
-          let selectToColumn = 1;
-          if (selectToLineNumber > lineCount) {
-            selectToLineNumber = lineCount;
-            selectToColumn = viewModel.model.getLineMaxColumn(selectToLineNumber);
-          }
-          return CursorState.fromModelState(new SingleCursorState(new Range(position.lineNumber, 1, selectToLineNumber, selectToColumn), 2, 0, new Position(selectToLineNumber, selectToColumn), 0));
-        }
-        const enteringLineNumber = cursor.modelState.selectionStart.getStartPosition().lineNumber;
-        if (position.lineNumber < enteringLineNumber) {
-          return CursorState.fromViewState(cursor.viewState.move(true, viewPosition.lineNumber, 1, 0));
-        } else if (position.lineNumber > enteringLineNumber) {
-          const lineCount = viewModel.getLineCount();
-          let selectToViewLineNumber = viewPosition.lineNumber + 1;
-          let selectToViewColumn = 1;
-          if (selectToViewLineNumber > lineCount) {
-            selectToViewLineNumber = lineCount;
-            selectToViewColumn = viewModel.getLineMaxColumn(selectToViewLineNumber);
-          }
-          return CursorState.fromViewState(cursor.viewState.move(true, selectToViewLineNumber, selectToViewColumn, 0));
-        } else {
-          const endPositionOfSelectionStart = cursor.modelState.selectionStart.getEndPosition();
-          return CursorState.fromModelState(cursor.modelState.move(true, endPositionOfSelectionStart.lineNumber, endPositionOfSelectionStart.column, 0));
-        }
-      }
-      static word(viewModel, cursor, inSelectionMode, _position) {
-        const position = viewModel.model.validatePosition(_position);
-        return CursorState.fromModelState(WordOperations.word(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode, position));
-      }
-      static cancelSelection(viewModel, cursor) {
-        if (!cursor.modelState.hasSelection()) {
-          return new CursorState(cursor.modelState, cursor.viewState);
-        }
-        const lineNumber = cursor.viewState.position.lineNumber;
-        const column = cursor.viewState.position.column;
-        return CursorState.fromViewState(new SingleCursorState(new Range(lineNumber, column, lineNumber, column), 0, 0, new Position(lineNumber, column), 0));
-      }
-      static moveTo(viewModel, cursor, inSelectionMode, _position, _viewPosition) {
-        if (inSelectionMode) {
-          if (cursor.modelState.selectionStartKind === 1) {
-            return this.word(viewModel, cursor, inSelectionMode, _position);
-          }
-          if (cursor.modelState.selectionStartKind === 2) {
-            return this.line(viewModel, cursor, inSelectionMode, _position, _viewPosition);
-          }
-        }
-        const position = viewModel.model.validatePosition(_position);
-        const viewPosition = _viewPosition ? viewModel.coordinatesConverter.validateViewPosition(new Position(_viewPosition.lineNumber, _viewPosition.column), position) : viewModel.coordinatesConverter.convertModelPositionToViewPosition(position);
-        return CursorState.fromViewState(cursor.viewState.move(inSelectionMode, viewPosition.lineNumber, viewPosition.column, 0));
-      }
-      static simpleMove(viewModel, cursors, direction, inSelectionMode, value, unit) {
-        switch (direction) {
-          case 0: {
-            if (unit === 4) {
-              return this._moveHalfLineLeft(viewModel, cursors, inSelectionMode);
-            } else {
-              return this._moveLeft(viewModel, cursors, inSelectionMode, value);
-            }
-          }
-          case 1: {
-            if (unit === 4) {
-              return this._moveHalfLineRight(viewModel, cursors, inSelectionMode);
-            } else {
-              return this._moveRight(viewModel, cursors, inSelectionMode, value);
-            }
-          }
-          case 2: {
-            if (unit === 2) {
-              return this._moveUpByViewLines(viewModel, cursors, inSelectionMode, value);
-            } else {
-              return this._moveUpByModelLines(viewModel, cursors, inSelectionMode, value);
-            }
-          }
-          case 3: {
-            if (unit === 2) {
-              return this._moveDownByViewLines(viewModel, cursors, inSelectionMode, value);
-            } else {
-              return this._moveDownByModelLines(viewModel, cursors, inSelectionMode, value);
-            }
-          }
-          case 4: {
-            if (unit === 2) {
-              return cursors.map((cursor) => CursorState.fromViewState(MoveOperations.moveToPrevBlankLine(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode)));
-            } else {
-              return cursors.map((cursor) => CursorState.fromModelState(MoveOperations.moveToPrevBlankLine(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode)));
-            }
-          }
-          case 5: {
-            if (unit === 2) {
-              return cursors.map((cursor) => CursorState.fromViewState(MoveOperations.moveToNextBlankLine(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode)));
-            } else {
-              return cursors.map((cursor) => CursorState.fromModelState(MoveOperations.moveToNextBlankLine(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode)));
-            }
-          }
-          case 6: {
-            return this._moveToViewMinColumn(viewModel, cursors, inSelectionMode);
-          }
-          case 7: {
-            return this._moveToViewFirstNonWhitespaceColumn(viewModel, cursors, inSelectionMode);
-          }
-          case 8: {
-            return this._moveToViewCenterColumn(viewModel, cursors, inSelectionMode);
-          }
-          case 9: {
-            return this._moveToViewMaxColumn(viewModel, cursors, inSelectionMode);
-          }
-          case 10: {
-            return this._moveToViewLastNonWhitespaceColumn(viewModel, cursors, inSelectionMode);
-          }
-          default:
-            return null;
-        }
-      }
-      static viewportMove(viewModel, cursors, direction, inSelectionMode, value) {
-        const visibleViewRange = viewModel.getCompletelyVisibleViewRange();
-        const visibleModelRange = viewModel.coordinatesConverter.convertViewRangeToModelRange(visibleViewRange);
-        switch (direction) {
-          case 11: {
-            const modelLineNumber = this._firstLineNumberInRange(viewModel.model, visibleModelRange, value);
-            const modelColumn = viewModel.model.getLineFirstNonWhitespaceColumn(modelLineNumber);
-            return [this._moveToModelPosition(viewModel, cursors[0], inSelectionMode, modelLineNumber, modelColumn)];
-          }
-          case 13: {
-            const modelLineNumber = this._lastLineNumberInRange(viewModel.model, visibleModelRange, value);
-            const modelColumn = viewModel.model.getLineFirstNonWhitespaceColumn(modelLineNumber);
-            return [this._moveToModelPosition(viewModel, cursors[0], inSelectionMode, modelLineNumber, modelColumn)];
-          }
-          case 12: {
-            const modelLineNumber = Math.round((visibleModelRange.startLineNumber + visibleModelRange.endLineNumber) / 2);
-            const modelColumn = viewModel.model.getLineFirstNonWhitespaceColumn(modelLineNumber);
-            return [this._moveToModelPosition(viewModel, cursors[0], inSelectionMode, modelLineNumber, modelColumn)];
-          }
-          case 14: {
-            const result = [];
-            for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-              const cursor = cursors[i2];
-              result[i2] = this.findPositionInViewportIfOutside(viewModel, cursor, visibleViewRange, inSelectionMode);
-            }
-            return result;
-          }
-          default:
-            return null;
-        }
-      }
-      static findPositionInViewportIfOutside(viewModel, cursor, visibleViewRange, inSelectionMode) {
-        const viewLineNumber = cursor.viewState.position.lineNumber;
-        if (visibleViewRange.startLineNumber <= viewLineNumber && viewLineNumber <= visibleViewRange.endLineNumber - 1) {
-          return new CursorState(cursor.modelState, cursor.viewState);
-        } else {
-          let newViewLineNumber;
-          if (viewLineNumber > visibleViewRange.endLineNumber - 1) {
-            newViewLineNumber = visibleViewRange.endLineNumber - 1;
-          } else if (viewLineNumber < visibleViewRange.startLineNumber) {
-            newViewLineNumber = visibleViewRange.startLineNumber;
-          } else {
-            newViewLineNumber = viewLineNumber;
-          }
-          const position = MoveOperations.vertical(viewModel.cursorConfig, viewModel, viewLineNumber, cursor.viewState.position.column, cursor.viewState.leftoverVisibleColumns, newViewLineNumber, false);
-          return CursorState.fromViewState(cursor.viewState.move(inSelectionMode, position.lineNumber, position.column, position.leftoverVisibleColumns));
-        }
-      }
-      /**
-       * Find the nth line start included in the range (from the start).
-       */
-      static _firstLineNumberInRange(model, range2, count) {
-        let startLineNumber = range2.startLineNumber;
-        if (range2.startColumn !== model.getLineMinColumn(startLineNumber)) {
-          startLineNumber++;
-        }
-        return Math.min(range2.endLineNumber, startLineNumber + count - 1);
-      }
-      /**
-       * Find the nth line start included in the range (from the end).
-       */
-      static _lastLineNumberInRange(model, range2, count) {
-        let startLineNumber = range2.startLineNumber;
-        if (range2.startColumn !== model.getLineMinColumn(startLineNumber)) {
-          startLineNumber++;
-        }
-        return Math.max(startLineNumber, range2.endLineNumber - count + 1);
-      }
-      static _moveLeft(viewModel, cursors, inSelectionMode, noOfColumns) {
-        return cursors.map((cursor) => {
-          const direction = viewModel.getTextDirection(cursor.viewState.position.lineNumber);
-          const isRtl = direction === TextDirection.RTL;
-          return CursorState.fromViewState(isRtl ? MoveOperations.moveRight(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, noOfColumns) : MoveOperations.moveLeft(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, noOfColumns));
-        });
-      }
-      static _moveHalfLineLeft(viewModel, cursors, inSelectionMode) {
-        const result = [];
-        for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-          const cursor = cursors[i2];
-          const viewLineNumber = cursor.viewState.position.lineNumber;
-          const halfLine = Math.round(viewModel.getLineLength(viewLineNumber) / 2);
-          result[i2] = CursorState.fromViewState(MoveOperations.moveLeft(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, halfLine));
-        }
-        return result;
-      }
-      static _moveRight(viewModel, cursors, inSelectionMode, noOfColumns) {
-        return cursors.map((cursor) => {
-          const direction = viewModel.getTextDirection(cursor.viewState.position.lineNumber);
-          const isRtl = direction === TextDirection.RTL;
-          return CursorState.fromViewState(isRtl ? MoveOperations.moveLeft(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, noOfColumns) : MoveOperations.moveRight(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, noOfColumns));
-        });
-      }
-      static _moveHalfLineRight(viewModel, cursors, inSelectionMode) {
-        const result = [];
-        for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-          const cursor = cursors[i2];
-          const viewLineNumber = cursor.viewState.position.lineNumber;
-          const halfLine = Math.round(viewModel.getLineLength(viewLineNumber) / 2);
-          result[i2] = CursorState.fromViewState(MoveOperations.moveRight(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, halfLine));
-        }
-        return result;
-      }
-      static _moveDownByViewLines(viewModel, cursors, inSelectionMode, linesCount) {
-        const result = [];
-        for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-          const cursor = cursors[i2];
-          result[i2] = CursorState.fromViewState(MoveOperations.moveDown(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, linesCount));
-        }
-        return result;
-      }
-      static _moveDownByModelLines(viewModel, cursors, inSelectionMode, linesCount) {
-        const result = [];
-        for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-          const cursor = cursors[i2];
-          result[i2] = CursorState.fromModelState(MoveOperations.moveDown(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode, linesCount));
-        }
-        return result;
-      }
-      static _moveUpByViewLines(viewModel, cursors, inSelectionMode, linesCount) {
-        const result = [];
-        for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-          const cursor = cursors[i2];
-          result[i2] = CursorState.fromViewState(MoveOperations.moveUp(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, linesCount));
-        }
-        return result;
-      }
-      static _moveUpByModelLines(viewModel, cursors, inSelectionMode, linesCount) {
-        const result = [];
-        for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-          const cursor = cursors[i2];
-          result[i2] = CursorState.fromModelState(MoveOperations.moveUp(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode, linesCount));
-        }
-        return result;
-      }
-      static _moveToViewPosition(viewModel, cursor, inSelectionMode, toViewLineNumber, toViewColumn) {
-        return CursorState.fromViewState(cursor.viewState.move(inSelectionMode, toViewLineNumber, toViewColumn, 0));
-      }
-      static _moveToModelPosition(viewModel, cursor, inSelectionMode, toModelLineNumber, toModelColumn) {
-        return CursorState.fromModelState(cursor.modelState.move(inSelectionMode, toModelLineNumber, toModelColumn, 0));
-      }
-      static _moveToViewMinColumn(viewModel, cursors, inSelectionMode) {
-        const result = [];
-        for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-          const cursor = cursors[i2];
-          const viewLineNumber = cursor.viewState.position.lineNumber;
-          const viewColumn = viewModel.getLineMinColumn(viewLineNumber);
-          result[i2] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);
-        }
-        return result;
-      }
-      static _moveToViewFirstNonWhitespaceColumn(viewModel, cursors, inSelectionMode) {
-        const result = [];
-        for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-          const cursor = cursors[i2];
-          const viewLineNumber = cursor.viewState.position.lineNumber;
-          const viewColumn = viewModel.getLineFirstNonWhitespaceColumn(viewLineNumber);
-          result[i2] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);
-        }
-        return result;
-      }
-      static _moveToViewCenterColumn(viewModel, cursors, inSelectionMode) {
-        const result = [];
-        for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-          const cursor = cursors[i2];
-          const viewLineNumber = cursor.viewState.position.lineNumber;
-          const viewColumn = Math.round((viewModel.getLineMaxColumn(viewLineNumber) + viewModel.getLineMinColumn(viewLineNumber)) / 2);
-          result[i2] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);
-        }
-        return result;
-      }
-      static _moveToViewMaxColumn(viewModel, cursors, inSelectionMode) {
-        const result = [];
-        for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-          const cursor = cursors[i2];
-          const viewLineNumber = cursor.viewState.position.lineNumber;
-          const viewColumn = viewModel.getLineMaxColumn(viewLineNumber);
-          result[i2] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);
-        }
-        return result;
-      }
-      static _moveToViewLastNonWhitespaceColumn(viewModel, cursors, inSelectionMode) {
-        const result = [];
-        for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-          const cursor = cursors[i2];
-          const viewLineNumber = cursor.viewState.position.lineNumber;
-          const viewColumn = viewModel.getLineLastNonWhitespaceColumn(viewLineNumber);
-          result[i2] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);
-        }
-        return result;
-      }
-    };
-    (function(CursorMove2) {
-      const isCursorMoveArgs = function(arg) {
-        if (!isObject(arg)) {
-          return false;
-        }
-        const cursorMoveArg = arg;
-        if (!isString(cursorMoveArg.to)) {
-          return false;
-        }
-        if (!isUndefined(cursorMoveArg.select) && !isBoolean(cursorMoveArg.select)) {
-          return false;
-        }
-        if (!isUndefined(cursorMoveArg.by) && !isString(cursorMoveArg.by)) {
-          return false;
-        }
-        if (!isUndefined(cursorMoveArg.value) && !isNumber(cursorMoveArg.value)) {
-          return false;
-        }
-        if (!isUndefined(cursorMoveArg.noHistory) && !isBoolean(cursorMoveArg.noHistory)) {
-          return false;
-        }
-        return true;
-      };
-      CursorMove2.metadata = {
-        description: "Move cursor to a logical position in the view",
-        args: [
-          {
-            name: "Cursor move argument object",
-            description: `Property-value pairs that can be passed through this argument:
+	| KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value`,this._peek())}}_value(){let e=this._peek();switch(e.type){case 17:case 18:return this._advance(),e.lexeme;case 11:return this._advance(),"true";case 12:return this._advance(),"false";case 13:return this._advance(),"in";default:return""}}_removeFlagsGY(e){return e.replaceAll(this._flagsGYRe,"")}_previous(){return this._tokens[this._current-1]}_matchOne(e){return this._check(e)?(this._advance(),!0):!1}_advance(){return this._isAtEnd()||this._current++,this._previous()}_consume(e,t){if(this._check(e))return this._advance();throw this._errExpectedButGot(t,this._peek())}_errExpectedButGot(e,t,i){let o=g(1683,`Expected: {0}
+Received: '{1}'.`,e,lv.getLexeme(t)),r=t.offset,s=lv.getLexeme(t);return this._parsingErrors.push({message:o,offset:r,lexeme:s,additionalInfo:i}),n._parseError}_check(e){return this._peek().type===e}_peek(){return this._tokens[this._current]}_isAtEnd(){return this._peek().type===20}},G=class{static false(){return dc.INSTANCE}static true(){return $c.INSTANCE}static has(e){return VC.create(e)}static equals(e,t){return zC.create(e,t)}static notEquals(e,t){return VP.create(e,t)}static regex(e,t){return yD.create(e,t)}static in(e,t){return WP.create(e,t)}static notIn(e,t){return HP.create(e,t)}static not(e){return UC.create(e)}static and(...e){return jP.create(e,null,!0)}static or(...e){return kD.create(e,null,!0)}static{this._parser=new SY({regexParsingWithErrorRecovery:!1})}static deserialize(e){return e==null?void 0:this._parser.parse(e)}};dc=class n{static{this.INSTANCE=new n}constructor(){this.type=0}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}substituteConstants(){return this}evaluate(e){return!1}serialize(){return"false"}keys(){return[]}negate(){return $c.INSTANCE}},$c=class n{static{this.INSTANCE=new n}constructor(){this.type=1}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}substituteConstants(){return this}evaluate(e){return!0}serialize(){return"true"}keys(){return[]}negate(){return dc.INSTANCE}},VC=class n{static create(e,t=null){let i=Sl.get(e);return typeof i=="boolean"?i?$c.INSTANCE:dc.INSTANCE:new n(e,t)}constructor(e,t){this.key=e,this.negated=t,this.type=2}cmp(e){return e.type!==this.type?this.type-e.type:Vbe(this.key,e.key)}equals(e){return e.type===this.type?this.key===e.key:!1}substituteConstants(){let e=Sl.get(this.key);return typeof e=="boolean"?e?$c.INSTANCE:dc.INSTANCE:this}evaluate(e){return!!e.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){return this.negated||(this.negated=UC.create(this.key,this)),this.negated}},zC=class n{static create(e,t,i=null){if(typeof t=="boolean")return t?VC.create(e,i):UC.create(e,i);let o=Sl.get(e);return typeof o=="boolean"?t===(o?"true":"false")?$c.INSTANCE:dc.INSTANCE:new n(e,t,i)}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=4}cmp(e){return e.type!==this.type?this.type-e.type:$C(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){let e=Sl.get(this.key);if(typeof e=="boolean"){let t=e?"true":"false";return this.value===t?$c.INSTANCE:dc.INSTANCE}return this}evaluate(e){return e.getValue(this.key)==this.value}serialize(){return`${this.key} == '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=VP.create(this.key,this.value,this)),this.negated}},WP=class n{static create(e,t){return new n(e,t)}constructor(e,t){this.key=e,this.valueKey=t,this.type=10,this.negated=null}cmp(e){return e.type!==this.type?this.type-e.type:$C(this.key,this.valueKey,e.key,e.valueKey)}equals(e){return e.type===this.type?this.key===e.key&&this.valueKey===e.valueKey:!1}substituteConstants(){return this}evaluate(e){let t=e.getValue(this.valueKey),i=e.getValue(this.key);return Array.isArray(t)?t.includes(i):typeof i=="string"&&typeof t=="object"&&t!==null?l9e.call(t,i):!1}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}negate(){return this.negated||(this.negated=HP.create(this.key,this.valueKey)),this.negated}},HP=class n{static create(e,t){return new n(e,t)}constructor(e,t){this.key=e,this.valueKey=t,this.type=11,this._negated=WP.create(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:this._negated.cmp(e._negated)}equals(e){return e.type===this.type?this._negated.equals(e._negated):!1}substituteConstants(){return this}evaluate(e){return!this._negated.evaluate(e)}serialize(){return`${this.key} not in '${this.valueKey}'`}keys(){return this._negated.keys()}negate(){return this._negated}},VP=class n{static create(e,t,i=null){if(typeof t=="boolean")return t?UC.create(e,i):VC.create(e,i);let o=Sl.get(e);return typeof o=="boolean"?t===(o?"true":"false")?dc.INSTANCE:$c.INSTANCE:new n(e,t,i)}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=5}cmp(e){return e.type!==this.type?this.type-e.type:$C(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){let e=Sl.get(this.key);if(typeof e=="boolean"){let t=e?"true":"false";return this.value===t?dc.INSTANCE:$c.INSTANCE}return this}evaluate(e){return e.getValue(this.key)!=this.value}serialize(){return`${this.key} != '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=zC.create(this.key,this.value,this)),this.negated}},UC=class n{static create(e,t=null){let i=Sl.get(e);return typeof i=="boolean"?i?dc.INSTANCE:$c.INSTANCE:new n(e,t)}constructor(e,t){this.key=e,this.negated=t,this.type=3}cmp(e){return e.type!==this.type?this.type-e.type:Vbe(this.key,e.key)}equals(e){return e.type===this.type?this.key===e.key:!1}substituteConstants(){let e=Sl.get(this.key);return typeof e=="boolean"?e?dc.INSTANCE:$c.INSTANCE:this}evaluate(e){return!e.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=VC.create(this.key,this)),this.negated}};zP=class n{static create(e,t,i=null){return GP(t,o=>new n(e,o,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=12}cmp(e){return e.type!==this.type?this.type-e.type:$C(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=qP.create(this.key,this.value,this)),this.negated}},UP=class n{static create(e,t,i=null){return GP(t,o=>new n(e,o,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=13}cmp(e){return e.type!==this.type?this.type-e.type:$C(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=$P.create(this.key,this.value,this)),this.negated}},$P=class n{static create(e,t,i=null){return GP(t,o=>new n(e,o,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=14}cmp(e){return e.type!==this.type?this.type-e.type:$C(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))new n(e,o,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=15}cmp(e){return e.type!==this.type?this.type-e.type:$C(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=zP.create(this.key,this.value,this)),this.negated}},yD=class n{static create(e,t){return new n(e,t)}constructor(e,t){this.key=e,this.regexp=t,this.type=7,this.negated=null}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.keye.key)return 1;let t=this.regexp?this.regexp.source:"",i=e.regexp?e.regexp.source:"";return ti?1:0}equals(e){if(e.type===this.type){let t=this.regexp?this.regexp.source:"",i=e.regexp?e.regexp.source:"";return this.key===e.key&&t===i}return!1}substituteConstants(){return this}evaluate(e){let t=e.getValue(this.key);return this.regexp?this.regexp.test(t):!1}serialize(){let e=this.regexp?`/${this.regexp.source}/${this.regexp.flags}`:"/invalid/";return`${this.key} =~ ${e}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=yY.create(this)),this.negated}},yY=class n{static create(e){return new n(e)}constructor(e){this._actual=e,this.type=8}cmp(e){return e.type!==this.type?this.type-e.type:this._actual.cmp(e._actual)}equals(e){return e.type===this.type?this._actual.equals(e._actual):!1}substituteConstants(){return this}evaluate(e){return!this._actual.evaluate(e)}serialize(){return`!(${this._actual.serialize()})`}keys(){return this._actual.keys()}negate(){return this._actual}};jP=class n{static create(e,t,i){return n._normalizeArr(e,t,i)}constructor(e,t){this.expr=e,this.negated=t,this.type=6}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.lengthe.expr.length)return 1;for(let t=0,i=this.expr.length;t1;){let s=o[o.length-1];if(s.type!==9)break;o.pop();let a=o.pop(),l=o.length===0,c=kD.create(s.expr.map(d=>n.create([d,a],null,i)),null,l);c&&(o.push(c),o.sort(SD))}if(o.length===1)return o[0];if(i){for(let s=0;se.serialize()).join(" && ")}keys(){let e=[];for(let t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){let e=[];for(let t of this.expr)e.push(t.negate());this.negated=kD.create(e,this,!0)}return this.negated}},kD=class n{static create(e,t,i){return n._normalizeArr(e,t,i)}constructor(e,t){this.expr=e,this.negated=t,this.type=9}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.lengthe.expr.length)return 1;for(let t=0,i=this.expr.length;te.serialize()).join(" || ")}keys(){let e=[];for(let t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){let e=[];for(let t of this.expr)e.push(t.negate());for(;e.length>1;){let t=e.shift(),i=e.shift(),o=[];for(let r of Bbe(t))for(let s of Bbe(i))o.push(jP.create([r,s],null,!1));e.unshift(n.create(o,null,!1))}this.negated=n.create(e,this,!0)}return this.negated}},fe=class n extends VC{static{this._info=[]}static all(){return n._info.values()}constructor(e,t,i){super(e,null),this._defaultValue=t,typeof i=="object"?n._info.push({...i,key:e}):i!==!0&&n._info.push({key:e,description:i,type:t!=null?typeof t:void 0})}bindTo(e){return e.createKey(this.key,this._defaultValue)}getValue(e){return e.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(e){return zC.create(this.key,e)}},xe=Re("contextKeyService")});var kY,qt,_s=w(()=>{_l();Nt();kY=class{constructor(){this.data=new Map}add(e,t){wO(En(e)),wO(_n(t)),wO(!this.data.has(e),"There is already an extension with this id"),this.data.set(e,t)}as(e){return this.data.get(e)||null}dispose(){this.data.forEach(e=>{Bu(e.dispose)&&e.dispose()}),this.data.clear()}},qt=new kY});function b9e(n,e){if(n.weight1!==e.weight1)return n.weight1-e.weight1;if(n.command&&e.command){if(n.commande.command)return 1}return n.weight2-e.weight2}var LY,Qn,_9e,qf=w(()=>{vC();ct();Ai();_s();B();_d();LY=class n{constructor(){this._coreKeybindings=new Fn,this._extensionKeybindings=[],this._cachedMergedKeybindings=null}static bindToCurrentPlatform(e){if(Ns===1){if(e&&e.win)return e.win}else if(Ns===2){if(e&&e.mac)return e.mac}else if(e&&e.linux)return e.linux;return e}registerKeybindingRule(e){let t=n.bindToCurrentPlatform(e),i=new P;if(t&&t.primary){let o=YE(t.primary,Ns);o&&i.add(this._registerDefaultKeybinding(o,e.id,e.args,e.weight,0,e.when))}if(t&&Array.isArray(t.secondary))for(let o=0,r=t.secondary.length;o{a(),this._cachedMergedKeybindings=null})}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=Array.from(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(b9e)),this._cachedMergedKeybindings.slice(0)}},Qn=new LY,_9e={EditorModes:"platform.keybindingsRegistry"};qt.add(_9e.EditorModes,Qn)});function cv(n){return n.command!==void 0}function Ube(n){return n.submenu!==void 0}function Qt(n){let e=[],t=new n,{f1:i,menu:o,keybinding:r,...s}=t.desc;if(st.getCommand(s.id))throw new Error(`Cannot register two commands with the same id: ${s.id}`);if(e.push(st.registerCommand({id:s.id,handler:(a,...l)=>t.run(a,...l),metadata:s.metadata??{description:t.desc.title}})),Array.isArray(o))for(let a of o)e.push(ro.appendMenuItem(a.id,{command:{...s,precondition:a.precondition===null?void 0:s.precondition},...a}));else o&&e.push(ro.appendMenuItem(o.id,{command:{...s,precondition:o.precondition===null?void 0:s.precondition},...o}));if(i&&(e.push(ro.appendMenuItem(Le.CommandPalette,{command:s,when:s.precondition})),e.push(ro.addCommand(s))),Array.isArray(r))for(let a of r)e.push(Qn.registerKeybindingRule({...a,id:s.id,when:s.precondition?G.and(s.precondition,a.when):a.when}));else r&&e.push(Qn.registerKeybindingRule({...r,id:s.id,when:s.precondition?G.and(s.precondition,r.when):r.when}));return{dispose(){ut(e)}}}var v9e,zbe,YP,Le,Qs,qC,ro,eu,Na,Jn,Mi=w(()=>{pa();ae();B();_d();Ui();Ai();Ze();ye();qf();v9e=function(n,e,t,i){var o=arguments.length,r=o<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(r=(o<3?s(r):o>3?s(e,t,r):s(e,t))||r);return o>3&&r&&Object.defineProperty(e,t,r),r},zbe=function(n,e){return function(t,i){e(t,i,n)}};Le=class n{static{this._instances=new Map}static{this.CommandPalette=new n("CommandPalette")}static{this.DebugBreakpointsContext=new n("DebugBreakpointsContext")}static{this.DebugCallStackContext=new n("DebugCallStackContext")}static{this.DebugConsoleContext=new n("DebugConsoleContext")}static{this.DebugVariablesContext=new n("DebugVariablesContext")}static{this.NotebookVariablesContext=new n("NotebookVariablesContext")}static{this.DebugHoverContext=new n("DebugHoverContext")}static{this.DebugWatchContext=new n("DebugWatchContext")}static{this.DebugToolBar=new n("DebugToolBar")}static{this.DebugToolBarStop=new n("DebugToolBarStop")}static{this.DebugDisassemblyContext=new n("DebugDisassemblyContext")}static{this.DebugCallStackToolbar=new n("DebugCallStackToolbar")}static{this.DebugCreateConfiguration=new n("DebugCreateConfiguration")}static{this.EditorContext=new n("EditorContext")}static{this.SimpleEditorContext=new n("SimpleEditorContext")}static{this.EditorContent=new n("EditorContent")}static{this.EditorLineNumberContext=new n("EditorLineNumberContext")}static{this.EditorContextCopy=new n("EditorContextCopy")}static{this.EditorContextPeek=new n("EditorContextPeek")}static{this.EditorContextShare=new n("EditorContextShare")}static{this.EditorTitle=new n("EditorTitle")}static{this.CompactWindowEditorTitle=new n("CompactWindowEditorTitle")}static{this.EditorTitleRun=new n("EditorTitleRun")}static{this.EditorTitleContext=new n("EditorTitleContext")}static{this.EditorTitleContextShare=new n("EditorTitleContextShare")}static{this.EmptyEditorGroup=new n("EmptyEditorGroup")}static{this.EmptyEditorGroupContext=new n("EmptyEditorGroupContext")}static{this.EditorTabsBarContext=new n("EditorTabsBarContext")}static{this.EditorTabsBarShowTabsSubmenu=new n("EditorTabsBarShowTabsSubmenu")}static{this.EditorTabsBarShowTabsZenModeSubmenu=new n("EditorTabsBarShowTabsZenModeSubmenu")}static{this.EditorActionsPositionSubmenu=new n("EditorActionsPositionSubmenu")}static{this.EditorSplitMoveSubmenu=new n("EditorSplitMoveSubmenu")}static{this.ExplorerContext=new n("ExplorerContext")}static{this.ExplorerContextShare=new n("ExplorerContextShare")}static{this.ExtensionContext=new n("ExtensionContext")}static{this.ExtensionEditorContextMenu=new n("ExtensionEditorContextMenu")}static{this.GlobalActivity=new n("GlobalActivity")}static{this.CommandCenter=new n("CommandCenter")}static{this.CommandCenterCenter=new n("CommandCenterCenter")}static{this.LayoutControlMenuSubmenu=new n("LayoutControlMenuSubmenu")}static{this.LayoutControlMenu=new n("LayoutControlMenu")}static{this.MenubarMainMenu=new n("MenubarMainMenu")}static{this.MenubarAppearanceMenu=new n("MenubarAppearanceMenu")}static{this.MenubarDebugMenu=new n("MenubarDebugMenu")}static{this.MenubarEditMenu=new n("MenubarEditMenu")}static{this.MenubarCopy=new n("MenubarCopy")}static{this.MenubarFileMenu=new n("MenubarFileMenu")}static{this.MenubarGoMenu=new n("MenubarGoMenu")}static{this.MenubarHelpMenu=new n("MenubarHelpMenu")}static{this.MenubarLayoutMenu=new n("MenubarLayoutMenu")}static{this.MenubarNewBreakpointMenu=new n("MenubarNewBreakpointMenu")}static{this.PanelAlignmentMenu=new n("PanelAlignmentMenu")}static{this.PanelPositionMenu=new n("PanelPositionMenu")}static{this.ActivityBarPositionMenu=new n("ActivityBarPositionMenu")}static{this.MenubarPreferencesMenu=new n("MenubarPreferencesMenu")}static{this.MenubarRecentMenu=new n("MenubarRecentMenu")}static{this.MenubarSelectionMenu=new n("MenubarSelectionMenu")}static{this.MenubarShare=new n("MenubarShare")}static{this.MenubarSwitchEditorMenu=new n("MenubarSwitchEditorMenu")}static{this.MenubarSwitchGroupMenu=new n("MenubarSwitchGroupMenu")}static{this.MenubarTerminalMenu=new n("MenubarTerminalMenu")}static{this.MenubarTerminalSuggestStatusMenu=new n("MenubarTerminalSuggestStatusMenu")}static{this.MenubarViewMenu=new n("MenubarViewMenu")}static{this.MenubarHomeMenu=new n("MenubarHomeMenu")}static{this.OpenEditorsContext=new n("OpenEditorsContext")}static{this.OpenEditorsContextShare=new n("OpenEditorsContextShare")}static{this.ProblemsPanelContext=new n("ProblemsPanelContext")}static{this.SCMInputBox=new n("SCMInputBox")}static{this.SCMChangeContext=new n("SCMChangeContext")}static{this.SCMResourceContext=new n("SCMResourceContext")}static{this.SCMResourceContextShare=new n("SCMResourceContextShare")}static{this.SCMResourceFolderContext=new n("SCMResourceFolderContext")}static{this.SCMResourceGroupContext=new n("SCMResourceGroupContext")}static{this.SCMSourceControl=new n("SCMSourceControl")}static{this.SCMSourceControlInline=new n("SCMSourceControlInline")}static{this.SCMSourceControlTitle=new n("SCMSourceControlTitle")}static{this.SCMHistoryTitle=new n("SCMHistoryTitle")}static{this.SCMHistoryItemContext=new n("SCMHistoryItemContext")}static{this.SCMHistoryItemChangeContext=new n("SCMHistoryItemChangeContext")}static{this.SCMHistoryItemRefContext=new n("SCMHistoryItemRefContext")}static{this.SCMArtifactGroupContext=new n("SCMArtifactGroupContext")}static{this.SCMArtifactContext=new n("SCMArtifactContext")}static{this.SCMQuickDiffDecorations=new n("SCMQuickDiffDecorations")}static{this.SCMTitle=new n("SCMTitle")}static{this.SearchContext=new n("SearchContext")}static{this.SearchActionMenu=new n("SearchActionContext")}static{this.StatusBarWindowIndicatorMenu=new n("StatusBarWindowIndicatorMenu")}static{this.StatusBarRemoteIndicatorMenu=new n("StatusBarRemoteIndicatorMenu")}static{this.StickyScrollContext=new n("StickyScrollContext")}static{this.TestItem=new n("TestItem")}static{this.TestItemGutter=new n("TestItemGutter")}static{this.TestProfilesContext=new n("TestProfilesContext")}static{this.TestMessageContext=new n("TestMessageContext")}static{this.TestMessageContent=new n("TestMessageContent")}static{this.TestPeekElement=new n("TestPeekElement")}static{this.TestPeekTitle=new n("TestPeekTitle")}static{this.TestCallStack=new n("TestCallStack")}static{this.TestCoverageFilterItem=new n("TestCoverageFilterItem")}static{this.TouchBarContext=new n("TouchBarContext")}static{this.TitleBar=new n("TitleBar")}static{this.TitleBarContext=new n("TitleBarContext")}static{this.TitleBarTitleContext=new n("TitleBarTitleContext")}static{this.TunnelContext=new n("TunnelContext")}static{this.TunnelPrivacy=new n("TunnelPrivacy")}static{this.TunnelProtocol=new n("TunnelProtocol")}static{this.TunnelPortInline=new n("TunnelInline")}static{this.TunnelTitle=new n("TunnelTitle")}static{this.TunnelLocalAddressInline=new n("TunnelLocalAddressInline")}static{this.TunnelOriginInline=new n("TunnelOriginInline")}static{this.ViewItemContext=new n("ViewItemContext")}static{this.ViewContainerTitle=new n("ViewContainerTitle")}static{this.ViewContainerTitleContext=new n("ViewContainerTitleContext")}static{this.ViewTitle=new n("ViewTitle")}static{this.ViewTitleContext=new n("ViewTitleContext")}static{this.CommentEditorActions=new n("CommentEditorActions")}static{this.CommentThreadTitle=new n("CommentThreadTitle")}static{this.CommentThreadActions=new n("CommentThreadActions")}static{this.CommentThreadAdditionalActions=new n("CommentThreadAdditionalActions")}static{this.CommentThreadTitleContext=new n("CommentThreadTitleContext")}static{this.CommentThreadCommentContext=new n("CommentThreadCommentContext")}static{this.CommentTitle=new n("CommentTitle")}static{this.CommentActions=new n("CommentActions")}static{this.CommentsViewThreadActions=new n("CommentsViewThreadActions")}static{this.InteractiveToolbar=new n("InteractiveToolbar")}static{this.InteractiveCellTitle=new n("InteractiveCellTitle")}static{this.InteractiveCellDelete=new n("InteractiveCellDelete")}static{this.InteractiveCellExecute=new n("InteractiveCellExecute")}static{this.InteractiveInputExecute=new n("InteractiveInputExecute")}static{this.InteractiveInputConfig=new n("InteractiveInputConfig")}static{this.ReplInputExecute=new n("ReplInputExecute")}static{this.IssueReporter=new n("IssueReporter")}static{this.NotebookToolbar=new n("NotebookToolbar")}static{this.NotebookToolbarContext=new n("NotebookToolbarContext")}static{this.NotebookStickyScrollContext=new n("NotebookStickyScrollContext")}static{this.NotebookCellTitle=new n("NotebookCellTitle")}static{this.NotebookCellDelete=new n("NotebookCellDelete")}static{this.NotebookCellInsert=new n("NotebookCellInsert")}static{this.NotebookCellBetween=new n("NotebookCellBetween")}static{this.NotebookCellListTop=new n("NotebookCellTop")}static{this.NotebookCellExecute=new n("NotebookCellExecute")}static{this.NotebookCellExecuteGoTo=new n("NotebookCellExecuteGoTo")}static{this.NotebookCellExecutePrimary=new n("NotebookCellExecutePrimary")}static{this.NotebookDiffCellInputTitle=new n("NotebookDiffCellInputTitle")}static{this.NotebookDiffDocumentMetadata=new n("NotebookDiffDocumentMetadata")}static{this.NotebookDiffCellMetadataTitle=new n("NotebookDiffCellMetadataTitle")}static{this.NotebookDiffCellOutputsTitle=new n("NotebookDiffCellOutputsTitle")}static{this.NotebookOutputToolbar=new n("NotebookOutputToolbar")}static{this.NotebookOutlineFilter=new n("NotebookOutlineFilter")}static{this.NotebookOutlineActionMenu=new n("NotebookOutlineActionMenu")}static{this.NotebookEditorLayoutConfigure=new n("NotebookEditorLayoutConfigure")}static{this.NotebookKernelSource=new n("NotebookKernelSource")}static{this.BulkEditTitle=new n("BulkEditTitle")}static{this.BulkEditContext=new n("BulkEditContext")}static{this.TimelineItemContext=new n("TimelineItemContext")}static{this.TimelineTitle=new n("TimelineTitle")}static{this.TimelineTitleContext=new n("TimelineTitleContext")}static{this.TimelineFilterSubMenu=new n("TimelineFilterSubMenu")}static{this.AccountsContext=new n("AccountsContext")}static{this.SidebarTitle=new n("SidebarTitle")}static{this.PanelTitle=new n("PanelTitle")}static{this.AuxiliaryBarTitle=new n("AuxiliaryBarTitle")}static{this.TerminalInstanceContext=new n("TerminalInstanceContext")}static{this.TerminalEditorInstanceContext=new n("TerminalEditorInstanceContext")}static{this.TerminalNewDropdownContext=new n("TerminalNewDropdownContext")}static{this.TerminalTabContext=new n("TerminalTabContext")}static{this.TerminalTabEmptyAreaContext=new n("TerminalTabEmptyAreaContext")}static{this.TerminalStickyScrollContext=new n("TerminalStickyScrollContext")}static{this.WebviewContext=new n("WebviewContext")}static{this.InlineCompletionsActions=new n("InlineCompletionsActions")}static{this.InlineEditsActions=new n("InlineEditsActions")}static{this.NewFile=new n("NewFile")}static{this.MergeInput1Toolbar=new n("MergeToolbar1Toolbar")}static{this.MergeInput2Toolbar=new n("MergeToolbar2Toolbar")}static{this.MergeBaseToolbar=new n("MergeBaseToolbar")}static{this.MergeInputResultToolbar=new n("MergeToolbarResultToolbar")}static{this.InlineSuggestionToolbar=new n("InlineSuggestionToolbar")}static{this.InlineEditToolbar=new n("InlineEditToolbar")}static{this.ChatContext=new n("ChatContext")}static{this.ChatCodeBlock=new n("ChatCodeblock")}static{this.ChatCompareBlock=new n("ChatCompareBlock")}static{this.ChatMessageTitle=new n("ChatMessageTitle")}static{this.ChatHistory=new n("ChatHistory")}static{this.ChatWelcomeContext=new n("ChatWelcomeContext")}static{this.ChatMessageFooter=new n("ChatMessageFooter")}static{this.ChatExecute=new n("ChatExecute")}static{this.ChatInput=new n("ChatInput")}static{this.ChatInputSide=new n("ChatInputSide")}static{this.ChatModePicker=new n("ChatModePicker")}static{this.ChatEditingWidgetToolbar=new n("ChatEditingWidgetToolbar")}static{this.ChatEditingEditorContent=new n("ChatEditingEditorContent")}static{this.ChatEditingEditorHunk=new n("ChatEditingEditorHunk")}static{this.ChatEditingDeletedNotebookCell=new n("ChatEditingDeletedNotebookCell")}static{this.ChatInputAttachmentToolbar=new n("ChatInputAttachmentToolbar")}static{this.ChatEditingWidgetModifiedFilesToolbar=new n("ChatEditingWidgetModifiedFilesToolbar")}static{this.ChatInputResourceAttachmentContext=new n("ChatInputResourceAttachmentContext")}static{this.ChatInputSymbolAttachmentContext=new n("ChatInputSymbolAttachmentContext")}static{this.ChatInlineResourceAnchorContext=new n("ChatInlineResourceAnchorContext")}static{this.ChatInlineSymbolAnchorContext=new n("ChatInlineSymbolAnchorContext")}static{this.ChatMessageCheckpoint=new n("ChatMessageCheckpoint")}static{this.ChatMessageRestoreCheckpoint=new n("ChatMessageRestoreCheckpoint")}static{this.ChatNewMenu=new n("ChatNewMenu")}static{this.ChatEditingCodeBlockContext=new n("ChatEditingCodeBlockContext")}static{this.ChatTitleBarMenu=new n("ChatTitleBarMenu")}static{this.ChatAttachmentsContext=new n("ChatAttachmentsContext")}static{this.ChatToolOutputResourceToolbar=new n("ChatToolOutputResourceToolbar")}static{this.ChatTextEditorMenu=new n("ChatTextEditorMenu")}static{this.ChatToolOutputResourceContext=new n("ChatToolOutputResourceContext")}static{this.ChatMultiDiffContext=new n("ChatMultiDiffContext")}static{this.ChatSessionsMenu=new n("ChatSessionsMenu")}static{this.ChatSessionsCreateSubMenu=new n("ChatSessionsCreateSubMenu")}static{this.ChatConfirmationMenu=new n("ChatConfirmationMenu")}static{this.ChatEditorInlineExecute=new n("ChatEditorInputExecute")}static{this.ChatEditorInlineInputSide=new n("ChatEditorInputSide")}static{this.AccessibleView=new n("AccessibleView")}static{this.MultiDiffEditorFileToolbar=new n("MultiDiffEditorFileToolbar")}static{this.DiffEditorHunkToolbar=new n("DiffEditorHunkToolbar")}static{this.DiffEditorSelectionToolbar=new n("DiffEditorSelectionToolbar")}constructor(e){if(n._instances.has(e))throw new TypeError(`MenuId with identifier '${e}' already exists. Use MenuId.for(ident) or a unique identifier`);n._instances.set(e,this),this.id=e}},Qs=Re("menuService"),qC=class n{static{this._all=new Map}static for(e){let t=this._all.get(e);return t||(t=new n(e),this._all.set(e,t)),t}static merge(e){let t=new Set;for(let i of e)i instanceof n&&t.add(i.id);return t}constructor(e){this.id=e,this.has=t=>t===e}},ro=new class{constructor(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new BO({merge:qC.merge}),this.onDidChangeMenu=this._onDidChangeMenu.event}addCommand(n){return this._commands.set(n.id,n),this._onDidChangeMenu.fire(qC.for(Le.CommandPalette)),se(()=>{this._commands.delete(n.id)&&this._onDidChangeMenu.fire(qC.for(Le.CommandPalette))})}getCommand(n){return this._commands.get(n)}getCommands(){let n=new Map;return this._commands.forEach((e,t)=>n.set(t,e)),n}appendMenuItem(n,e){let t=this._menuItems.get(n);t||(t=new Fn,this._menuItems.set(n,t));let i=t.push(e);return this._onDidChangeMenu.fire(qC.for(n)),se(()=>{i(),this._onDidChangeMenu.fire(qC.for(n))})}appendMenuItems(n){let e=new P;for(let{id:t,item:i}of n)e.add(this.appendMenuItem(t,i));return e}getMenuItems(n){let e;return this._menuItems.has(n)?e=[...this._menuItems.get(n)]:e=[],n===Le.CommandPalette&&this._appendImplicitItems(e),e}_appendImplicitItems(n){let e=new Set;for(let t of n)cv(t)&&(e.add(t.command.id),t.alt&&e.add(t.alt.id));this._commands.forEach((t,i)=>{e.has(i)||n.push({command:t})})}},eu=class extends Jh{constructor(e,t,i){super(`submenuitem.${e.submenu.id}`,typeof e.title=="string"?e.title:e.title.value,i,"submenu"),this.item=e,this.hideActions=t}},Na=YP=class{static label(e,t){return t?.renderShortTitle&&e.shortTitle?typeof e.shortTitle=="string"?e.shortTitle:e.shortTitle.value:typeof e.title=="string"?e.title:e.title.value}constructor(e,t,i,o,r,s,a){this.hideActions=o,this.menuKeybinding=r,this._commandService=a,this.id=e.id,this.label=YP.label(e,i),this.tooltip=(typeof e.tooltip=="string"?e.tooltip:e.tooltip?.value)??"",this.enabled=!e.precondition||s.contextMatchesRules(e.precondition),this.checked=void 0;let l;if(e.toggled){let c=e.toggled.condition?e.toggled:{condition:e.toggled};this.checked=s.contextMatchesRules(c.condition),this.checked&&c.tooltip&&(this.tooltip=typeof c.tooltip=="string"?c.tooltip:c.tooltip.value),this.checked&&Ie.isThemeIcon(c.icon)&&(l=c.icon),this.checked&&c.title&&(this.label=typeof c.title=="string"?c.title:c.title.value)}l||(l=Ie.isThemeIcon(e.icon)?e.icon:void 0),this.item=e,this.alt=t?new YP(t,void 0,i,o,void 0,s,a):void 0,this._options=i,this.class=l&&Ie.asClassName(l)}run(...e){let t=[];return this._options?.arg&&(t=[...t,this._options.arg]),this._options?.shouldForwardArgs&&(t=[...t,...e]),this._commandService.executeCommand(this.id,...t)}};Na=YP=v9e([zbe(5,xe),zbe(6,Dt)],Na);Jn=class{constructor(e){this.desc=e}}});var Nn,hc=w(()=>{ye();Nn=Re("telemetryService")});function w9e(n){return Array.isArray(n)}var $be,qbe,jbe,IY,an,ZP,EY,DY,bs,XP,Dy,Xm,xo=w(()=>{IY=class{constructor(e,t){this.uri=e,this.value=t}};an=class n{static{this.defaultToKey=e=>e.toString()}constructor(e,t){if(this[$be]="ResourceMap",e instanceof n)this.map=new Map(e.map),this.toKey=t??n.defaultToKey;else if(w9e(e)){this.map=new Map,this.toKey=t??n.defaultToKey;for(let[i,o]of e)this.set(i,o)}else this.map=new Map,this.toKey=e??n.defaultToKey}set(e,t){return this.map.set(this.toKey(e),new IY(e,t)),this}get(e){return this.map.get(this.toKey(e))?.value}has(e){return this.map.has(this.toKey(e))}get size(){return this.map.size}clear(){this.map.clear()}delete(e){return this.map.delete(this.toKey(e))}forEach(e,t){typeof t<"u"&&(e=e.bind(t));for(let[i,o]of this.map)e(o.value,o.uri,this)}*values(){for(let e of this.map.values())yield e.value}*keys(){for(let e of this.map.values())yield e.uri}*entries(){for(let e of this.map.values())yield[e.uri,e.value]}*[($be=Symbol.toStringTag,Symbol.iterator)](){for(let[,e]of this.map)yield[e.uri,e.value]}},ZP=class{constructor(e,t){this[qbe]="ResourceSet",!e||typeof e=="function"?this._map=new an(e):(this._map=new an(t),e.forEach(this.add,this))}get size(){return this._map.size}add(e){return this._map.set(e,e),this}clear(){this._map.clear()}delete(e){return this._map.delete(e)}forEach(e,t){this._map.forEach((i,o)=>e.call(t,o,o,this))}has(e){return this._map.has(e)}entries(){return this._map.entries()}keys(){return this._map.keys()}values(){return this._map.keys()}[(qbe=Symbol.toStringTag,Symbol.iterator)](){return this.keys()}},EY=class{constructor(){this[jbe]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,t=0){let i=this._map.get(e);if(i)return t!==0&&this.touch(i,t),i.value}set(e,t,i=0){let o=this._map.get(e);if(o)o.value=t,i!==0&&this.touch(o,i);else{switch(o={key:e,value:t,next:void 0,previous:void 0},i){case 0:this.addItemLast(o);break;case 1:this.addItemFirst(o);break;case 2:this.addItemLast(o);break;default:this.addItemLast(o);break}this._map.set(e,o),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){let i=this._state,o=this._head;for(;o;){if(t?e.bind(t)(o.value,o.key,this):e(o.value,o.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");o=o.next}}keys(){let e=this,t=this._state,i=this._head,o={[Symbol.iterator](){return o},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){let r={value:i.key,done:!1};return i=i.next,r}else return{value:void 0,done:!0}}};return o}values(){let e=this,t=this._state,i=this._head,o={[Symbol.iterator](){return o},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){let r={value:i.value,done:!1};return i=i.next,r}else return{value:void 0,done:!0}}};return o}entries(){let e=this,t=this._state,i=this._head,o={[Symbol.iterator](){return o},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){let r={value:[i.key,i.value],done:!1};return i=i.next,r}else return{value:void 0,done:!0}}};return o}[(jbe=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._head,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.next,i--;this._head=t,this._size=i,t&&(t.previous=void 0),this._state++}trimNew(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._tail,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.previous,i--;this._tail=t,this._size=i,t&&(t.next=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let t=e.next,i=e.previous;if(!t||!i)throw new Error("Invalid list");t.previous=i,i.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(t!==1&&t!==2)){if(t===1){if(e===this._head)return;let i=e.next,o=e.previous;e===this._tail?(o.next=void 0,this._tail=o):(i.previous=o,o.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===2){if(e===this._tail)return;let i=e.next,o=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=o,o.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((t,i)=>{e.push([i,t])}),e}fromJSON(e){this.clear();for(let[t,i]of e)this.set(t,i)}},DY=class extends EY{constructor(e,t=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get(e,t=2){return super.get(e,t)}peek(e){return super.get(e,0)}set(e,t){return super.set(e,t,2),this}checkTrim(){this.size>this._limit&&this.trim(Math.round(this._limit*this._ratio))}},bs=class extends DY{constructor(e,t=1){super(e,t)}trim(e){this.trimOld(e)}set(e,t){return super.set(e,t),this.checkTrim(),this}},XP=class{constructor(e){if(this._m1=new Map,this._m2=new Map,e)for(let[t,i]of e)this.set(t,i)}clear(){this._m1.clear(),this._m2.clear()}set(e,t){this._m1.set(e,t),this._m2.set(t,e)}get(e){return this._m1.get(e)}getKey(e){return this._m2.get(e)}delete(e){let t=this._m1.get(e);return t===void 0?!1:(this._m1.delete(e),this._m2.delete(t),!0)}keys(){return this._m1.keys()}values(){return this._m1.values()}},Dy=class{constructor(){this.map=new Map}add(e,t){let i=this.map.get(e);i||(i=new Set,this.map.set(e,i)),i.add(t)}delete(e,t){let i=this.map.get(e);i&&(i.delete(t),i.size===0&&this.map.delete(e))}forEach(e,t){let i=this.map.get(e);i&&i.forEach(t)}},Xm=class{constructor(){this._data=new Map}set(e,...t){let i=this._data;for(let o=0;o{let o="";for(let[r,s]of t)o+=`${"  ".repeat(i)}${r}: `,s instanceof Map?o+=`
+`+e(s,i+1):o+=`${s}
+`;return o};return e(this._data,0)}}});function dv(n){return n===47||n===92}function TY(n){return n.replace(/[\\/]/g,Yn.sep)}function Kbe(n){return n.indexOf("/")===-1&&(n=TY(n)),/^[a-zA-Z]:(\/|$)/.test(n)&&(n="/"+n),n}function NY(n,e=Yn.sep){if(!n)return"";let t=n.length,i=n.charCodeAt(0);if(dv(i)){if(dv(n.charCodeAt(1))&&!dv(n.charCodeAt(2))){let r=3,s=r;for(;rn.length)return!1;if(t){if(!my(n,e))return!1;if(e.length===n.length)return!0;let r=e.length;return e.charAt(e.length-1)===i&&r--,n.charAt(r)===i}return e.charAt(e.length-1)!==i&&(e+=i),n.indexOf(e)===0}function Gbe(n){return n>=65&&n<=90||n>=97&&n<=122}function Ybe(n,e=Qi){return e?Gbe(n.charCodeAt(0))&&n.charCodeAt(1)===58:!1}var QP=w(()=>{Wf();ct();He()});function jf(n){return aD(n,!0)}var RY,Rn,eh,Qbe,Ra,Jbe,hv,JP,eve,tve,AY,Zbe,Xbe,Qm,Fs=w(()=>{QP();Ys();Wf();ct();He();ii();RY=class{constructor(e){this._ignorePathCasing=e}compare(e,t,i=!1){return e===t?0:Xb(this.getComparisonKey(e,i),this.getComparisonKey(t,i))}isEqual(e,t,i=!1){return e===t?!0:!e||!t?!1:this.getComparisonKey(e,i)===this.getComparisonKey(t,i)}getComparisonKey(e,t=!1){return e.with({path:this._ignorePathCasing(e)?e.path.toLowerCase():void 0,fragment:t?null:void 0}).toString()}isEqualOrParent(e,t,i=!1){if(e.scheme===t.scheme){if(e.scheme===Be.file)return LD(jf(e),jf(t),this._ignorePathCasing(e))&&e.query===t.query&&(i||e.fragment===t.fragment);if(Zbe(e.authority,t.authority))return LD(e.path,t.path,this._ignorePathCasing(e),"/")&&e.query===t.query&&(i||e.fragment===t.fragment)}return!1}joinPath(e,...t){return Se.joinPath(e,...t)}basenameOrAuthority(e){return Ra(e)||e.authority}basename(e){return Yn.basename(e.path)}extname(e){return Yn.extname(e.path)}dirname(e){if(e.path.length===0)return e;let t;return e.scheme===Be.file?t=Se.file(by(jf(e))).path:(t=Yn.dirname(e.path),e.authority&&t.length&&t.charCodeAt(0)!==47&&(console.error(`dirname("${e.toString})) resulted in a relative path`),t="/")),e.with({path:t})}normalizePath(e){if(!e.path.length)return e;let t;return e.scheme===Be.file?t=Se.file(oP(jf(e))).path:t=Yn.normalize(e.path),e.with({path:t})}relativePath(e,t){if(e.scheme!==t.scheme||!Zbe(e.authority,t.authority))return;if(e.scheme===Be.file){let r=y_e(jf(e),jf(t));return Qi?TY(r):r}let i=e.path||"/",o=t.path||"/";if(this._ignorePathCasing(e)){let r=0;for(let s=Math.min(i.length,o.length);rNY(i).length&&i[i.length-1]===t}else{let i=e.path;return i.length>1&&i.charCodeAt(i.length-1)===47&&!/^[a-zA-Z]:(\/$|\\$)/.test(e.fsPath)}}removeTrailingPathSeparator(e,t=wd){return Xbe(e,t)?e.with({path:e.path.substr(0,e.path.length-1)}):e}addTrailingPathSeparator(e,t=wd){let i=!1;if(e.scheme===Be.file){let o=jf(e);i=o!==void 0&&o.length===NY(o).length&&o[o.length-1]===t}else{t="/";let o=e.path;i=o.length===1&&o.charCodeAt(o.length-1)===47}return!i&&!Xbe(e,t)?e.with({path:e.path+"/"}):e}},Rn=new RY(()=>!1),eh=Rn.isEqual.bind(Rn);Rn.isEqualOrParent.bind(Rn);Rn.getComparisonKey.bind(Rn);Qbe=Rn.basenameOrAuthority.bind(Rn),Ra=Rn.basename.bind(Rn),Jbe=Rn.extname.bind(Rn),hv=Rn.dirname.bind(Rn),JP=Rn.joinPath.bind(Rn),eve=Rn.normalizePath.bind(Rn),tve=Rn.relativePath.bind(Rn),AY=Rn.resolvePath.bind(Rn);Rn.isAbsolutePath.bind(Rn);Zbe=Rn.isEqualAuthority.bind(Rn),Xbe=Rn.hasTrailingPathSeparator.bind(Rn);Rn.removeTrailingPathSeparator.bind(Rn);Rn.addTrailingPathSeparator.bind(Rn);(function(n){n.META_DATA_LABEL="label",n.META_DATA_DESCRIPTION="description",n.META_DATA_SIZE="size",n.META_DATA_MIME="mime";function e(t){let i=new Map;t.path.substring(t.path.indexOf(";")+1,t.path.lastIndexOf(";")).split(";").forEach(s=>{let[a,l]=s.split(":");a&&l&&i.set(a,l)});let r=t.path.substring(0,t.path.indexOf(";"));return r&&i.set(n.META_DATA_MIME,r),i}n.parseMetaData=e})(Qm||(Qm={}))});function PY(n,e){return n!==Uo.Off&&n<=e}function C9e(n){switch(n){case Uo.Trace:return"trace";case Uo.Debug:return"debug";case Uo.Info:return"info";case Uo.Warning:return"warn";case Uo.Error:return"error";case Uo.Off:return"off"}}var Tt,oF,Uo,ive,eF,tF,iF,MY,OY,nF,So=w(()=>{ae();qp();B();xo();Fs();Nt();ii();Ze();ye();Tt=Re("logService"),oF=Re("loggerService");(function(n){n[n.Off=0]="Off",n[n.Trace=1]="Trace",n[n.Debug=2]="Debug",n[n.Info=3]="Info",n[n.Warning=4]="Warning",n[n.Error=5]="Error"})(Uo||(Uo={}));ive=Uo.Info;eF=class extends E{constructor(){super(...arguments),this.level=ive,this._onDidChangeLogLevel=this._register(new N)}get onDidChangeLogLevel(){return this._onDidChangeLogLevel.event}setLevel(e){this.level!==e&&(this.level=e,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}checkLogLevel(e){return PY(this.level,e)}canLog(e){return this._store.isDisposed?!1:this.checkLogLevel(e)}},tF=class extends eF{constructor(e=ive,t=!0){super(),this.useColors=t,this.setLevel(e)}trace(e,...t){this.canLog(Uo.Trace)&&(this.useColors?console.log("%cTRACE","color: #888",e,...t):console.log(e,...t))}debug(e,...t){this.canLog(Uo.Debug)&&(this.useColors?console.log("%cDEBUG","background: #eee; color: #888",e,...t):console.log(e,...t))}info(e,...t){this.canLog(Uo.Info)&&(this.useColors?console.log("%c INFO","color: #33f",e,...t):console.log(e,...t))}warn(e,...t){this.canLog(Uo.Warning)&&(this.useColors?console.warn("%c WARN","color: #993",e,...t):console.log(e,...t))}error(e,...t){this.canLog(Uo.Error)&&(this.useColors?console.error("%c  ERR","color: #f33",e,...t):console.error(e,...t))}},iF=class extends eF{constructor(e){super(),this.loggers=e,e.length&&this.setLevel(e[0].getLevel())}setLevel(e){for(let t of this.loggers)t.setLevel(e);super.setLevel(e)}trace(e,...t){for(let i of this.loggers)i.trace(e,...t)}debug(e,...t){for(let i of this.loggers)i.debug(e,...t)}info(e,...t){for(let i of this.loggers)i.info(e,...t)}warn(e,...t){for(let i of this.loggers)i.warn(e,...t)}error(e,...t){for(let i of this.loggers)i.error(e,...t)}dispose(){for(let e of this.loggers)e.dispose();super.dispose()}},MY=class extends E{constructor(e,t,i){if(super(),this.logLevel=e,this.logsHome=t,this._loggers=new an,this._onDidChangeLoggers=this._register(new N),this._onDidChangeVisibility=this._register(new N),i)for(let o of i)this._loggers.set(o.resource,{logger:void 0,info:o})}getLoggerEntry(e){return En(e)?[...this._loggers.values()].find(t=>t.info.id===e):this._loggers.get(e)}createLogger(e,t){let i=this.toResource(e),o=En(e)?e:t?.id??Km(i.toString()).toString(16),r=this._loggers.get(i)?.logger,s=t?.logLevel==="always"?Uo.Trace:t?.logLevel;r||(r=this.doCreateLogger(i,s??this.getLogLevel(i)??this.logLevel,{...t,id:o}));let a={logger:r,info:{resource:i,id:o,logLevel:s,name:t?.name,hidden:t?.hidden,group:t?.group,extensionId:t?.extensionId,when:t?.when}};return this.registerLogger(a.info),this._loggers.set(i,a),r}toResource(e){return En(e)?JP(this.logsHome,`${e}.log`):e}setVisibility(e,t){let i=this.getLoggerEntry(e);i&&t!==!i.info.hidden&&(i.info.hidden=!t,this._loggers.set(i.info.resource,i),this._onDidChangeVisibility.fire([i.info.resource,t]))}getLogLevel(e){let t;return e&&(t=this._loggers.get(e)?.info.logLevel),t??this.logLevel}registerLogger(e){let t=this._loggers.get(e.resource);t?t.info.hidden!==e.hidden&&this.setVisibility(e.resource,!e.hidden):(this._loggers.set(e.resource,{info:e,logger:void 0}),this._onDidChangeLoggers.fire({added:[e],removed:[]}))}dispose(){this._loggers.forEach(e=>e.logger?.dispose()),this._loggers.clear(),super.dispose()}},OY=class{constructor(){this.onDidChangeLogLevel=new N().event}setLevel(e){}getLevel(){return Uo.Info}trace(e,...t){}debug(e,...t){}info(e,...t){}warn(e,...t){}error(e,...t){}dispose(){}},nF=class extends MY{constructor(){super(Uo.Off,Se.parse("log:///log"))}doCreateLogger(e,t,i){return new OY}};new fe("logLevel",C9e(Uo.Info))});var Ty,FY=w(()=>{Ty=class n{static{this.REGISTERED_COMMANDS=new Set}static getRegisteredCommands(){return[...n.REGISTERED_COMMANDS]}static registerCommand(e){n.REGISTERED_COMMANDS.add(e)}}});function Aa(n,e){st.registerCommand(n,function(t,...i){let o=t.get(ne),[r,s]=i;mt(Se.isUri(r)),mt(M.isIPosition(s));let a=t.get(mi).getModel(r);if(a){let l=M.lift(s);return o.invokeFunction(e,a,l,...i.slice(2))}return t.get(Xn).createModelReference(r).then(l=>new Promise((c,d)=>{try{let h=o.invokeFunction(e,l.object.textEditorModel,M.lift(s),i.slice(2));c(h)}catch(h){d(h)}}).finally(()=>{l.dispose()}))})}function we(n){return tu.INSTANCE.registerEditorCommand(n),n}function te(n){let e=new n;return tu.INSTANCE.registerEditorAction(e),e}function ID(n){return tu.INSTANCE.registerEditorAction(n),n}function nve(n){tu.INSTANCE.registerEditorAction(n)}function $e(n,e,t){tu.INSTANCE.registerEditorContribution(n,e,t)}function ED(n){return n.register(),n}var jC,Qp,rF,Ji,ve,KC,Wl,uv,x9e,tu,BY,WY,ove,at=w(()=>{le();ii();bo();Fe();cc();xd();Mi();Ai();Ze();ye();qf();_s();hc();Nt();So();oe();FY();jC=class{constructor(e){this.id=e.id,this.precondition=e.precondition,this._kbOpts=e.kbOpts,this._menuOpts=e.menuOpts,this.metadata=e.metadata,this.canTriggerInlineEdits=e.canTriggerInlineEdits}register(){if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){let e=Array.isArray(this._kbOpts)?this._kbOpts:[this._kbOpts];for(let t of e){let i=t.kbExpr;this.precondition&&(i?i=G.and(i,this.precondition):i=this.precondition);let o={id:this.id,weight:t.weight,args:t.args,when:i,primary:t.primary,secondary:t.secondary,win:t.win,linux:t.linux,mac:t.mac};Qn.registerKeybindingRule(o)}}st.registerCommand({id:this.id,handler:(e,t)=>this.runCommand(e,t),metadata:this.metadata}),this.canTriggerInlineEdits&&Ty.registerCommand(this.id)}_registerMenuItem(e){ro.appendMenuItem(e.menuId,{group:e.group,command:{id:this.id,title:e.title,icon:e.icon,precondition:this.precondition},when:e.when,order:e.order})}},Qp=class extends jC{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t,i,o){return this._implementations.push({priority:e,name:t,implementation:i,when:o}),this._implementations.sort((r,s)=>s.priority-r.priority),{dispose:()=>{for(let r=0;r{if(a.get(xe).contextMatchesRules(i??void 0))return o(a,s,t)})}runCommand(e,t){return n.runEditorCommand(e,t,this.precondition,(i,o,r)=>this.runEditorCommand(i,o,r))}},ve=class n extends Ji{static convertOptions(e){let t;Array.isArray(e.menuOpts)?t=e.menuOpts:e.menuOpts?t=[e.menuOpts]:t=[];function i(o){return o.menuId||(o.menuId=Le.EditorContext),o.title||(o.title=typeof e.label=="string"?e.label:e.label.value),o.when=G.and(e.precondition,o.when),o}return Array.isArray(e.contextMenuOpts)?t.push(...e.contextMenuOpts.map(i)):e.contextMenuOpts&&t.push(i(e.contextMenuOpts)),e.menuOpts=t,e}constructor(e){super(n.convertOptions(e)),typeof e.label=="string"?(this.label=e.label,this.alias=e.alias??e.label):(this.label=e.label.value,this.alias=e.alias??e.label.original)}runEditorCommand(e,t,i){return this.reportTelemetry(e,t),this.run(e,t,i||{})}reportTelemetry(e,t){e.get(Nn).publicLog2("editorActionInvoked",{name:this.label,id:this.id})}},KC=class extends ve{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t){return this._implementations.push([e,t]),this._implementations.sort((i,o)=>o[0]-i[0]),{dispose:()=>{for(let i=0;i{let s=r.get(xe),a=r.get(Tt);if(!s.contextMatchesRules(this.desc.precondition??void 0)){a.debug("[EditorAction2] NOT running command because its precondition is FALSE",this.desc.id,this.desc.precondition?.serialize());return}return this.runEditorCommand(r,o,...t)})}};(function(n){function e(s){return tu.INSTANCE.getEditorCommand(s)}n.getEditorCommand=e;function t(){return tu.INSTANCE.getEditorActions()}n.getEditorActions=t;function i(){return tu.INSTANCE.getEditorContributions()}n.getEditorContributions=i;function o(s){return tu.INSTANCE.getEditorContributions().filter(a=>s.indexOf(a.id)>=0)}n.getSomeEditorContributions=o;function r(){return tu.INSTANCE.getDiffEditorContributions()}n.getDiffEditorContributions=r})(uv||(uv={}));x9e={EditorCommonContributions:"editor.contributions"},tu=class n{static{this.INSTANCE=new n}constructor(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}registerEditorContribution(e,t,i){this.editorContributions.push({id:e,ctor:t,instantiation:i})}getEditorContributions(){return this.editorContributions.slice(0)}getDiffEditorContributions(){return this.diffEditorContributions.slice(0)}registerEditorAction(e){e.register(),this.editorActions.push(e)}getEditorActions(){return this.editorActions}registerEditorCommand(e){e.register(),this.editorCommands[e.id]=e}getEditorCommand(e){return this.editorCommands[e]||null}};qt.add(x9e.EditorCommonContributions,tu.INSTANCE);BY=ED(new Qp({id:"undo",precondition:void 0,kbOpts:{weight:0,primary:2104},menuOpts:[{menuId:Le.MenubarEditMenu,group:"1_do",title:g(69,"&&Undo"),order:1},{menuId:Le.CommandPalette,group:"",title:g(70,"Undo"),order:1},{menuId:Le.SimpleEditorContext,group:"1_do",title:g(71,"Undo"),order:1}]}));ED(new rF(BY,{id:"default:undo",precondition:void 0}));WY=ED(new Qp({id:"redo",precondition:void 0,kbOpts:{weight:0,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:[{menuId:Le.MenubarEditMenu,group:"1_do",title:g(72,"&&Redo"),order:2},{menuId:Le.CommandPalette,group:"",title:g(73,"Redo"),order:1},{menuId:Le.SimpleEditorContext,group:"1_do",title:g(74,"Redo"),order:2}]}));ED(new rF(WY,{id:"default:redo",precondition:void 0}));ove=ED(new Qp({id:"editor.action.selectAll",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2079},menuOpts:[{menuId:Le.MenubarSelectionMenu,group:"1_basic",title:g(75,"&&Select All"),order:1},{menuId:Le.CommandPalette,group:"",title:g(76,"Select All"),order:1},{menuId:Le.SimpleEditorContext,group:"9_select",title:g(77,"Select All"),order:1}]}))});var y,de=w(()=>{Fe();y=class n{constructor(e,t,i,o){e>i||e===i&&t>o?(this.startLineNumber=i,this.startColumn=o,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=i,this.endColumn=o)}isEmpty(){return n.isEmpty(this)}static isEmpty(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn}containsPosition(e){return n.containsPosition(this,e)}static containsPosition(e,t){return!(t.lineNumbere.endLineNumber||t.lineNumber===e.startLineNumber&&t.columne.endColumn)}static strictContainsPosition(e,t){return!(t.lineNumbere.endLineNumber||t.lineNumber===e.startLineNumber&&t.column<=e.startColumn||t.lineNumber===e.endLineNumber&&t.column>=e.endColumn)}containsRange(e){return n.containsRange(this,e)}static containsRange(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumne.endColumn)}strictContainsRange(e){return n.strictContainsRange(this,e)}static strictContainsRange(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn||t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)}plusRange(e){return n.plusRange(this,e)}static plusRange(e,t){let i,o,r,s;return t.startLineNumbere.endLineNumber?(r=t.endLineNumber,s=t.endColumn):t.endLineNumber===e.endLineNumber?(r=t.endLineNumber,s=Math.max(t.endColumn,e.endColumn)):(r=e.endLineNumber,s=e.endColumn),new n(i,o,r,s)}intersectRanges(e){return n.intersectRanges(this,e)}static intersectRanges(e,t){let i=e.startLineNumber,o=e.startColumn,r=e.endLineNumber,s=e.endColumn,a=t.startLineNumber,l=t.startColumn,c=t.endLineNumber,d=t.endColumn;return ic?(r=c,s=d):r===c&&(s=Math.min(s,d)),i>r||i===r&&o>s?null:new n(i,o,r,s)}equalsRange(e){return n.equalsRange(this,e)}static equalsRange(e,t){return!e&&!t?!0:!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn}getEndPosition(){return n.getEndPosition(this)}static getEndPosition(e){return new M(e.endLineNumber,e.endColumn)}getStartPosition(){return n.getStartPosition(this)}static getStartPosition(e){return new M(e.startLineNumber,e.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(e,t){return new n(this.startLineNumber,this.startColumn,e,t)}setStartPosition(e,t){return new n(e,t,this.endLineNumber,this.endColumn)}collapseToStart(){return n.collapseToStart(this)}static collapseToStart(e){return new n(e.startLineNumber,e.startColumn,e.startLineNumber,e.startColumn)}collapseToEnd(){return n.collapseToEnd(this)}static collapseToEnd(e){return new n(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn)}delta(e){return new n(this.startLineNumber+e,this.startColumn,this.endLineNumber+e,this.endColumn)}isSingleLine(){return this.startLineNumber===this.endLineNumber}static fromPositions(e,t=e){return new n(e.lineNumber,e.column,t.lineNumber,t.column)}static lift(e){return e?new n(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):null}static isIRange(e){return!!e&&typeof e.startLineNumber=="number"&&typeof e.startColumn=="number"&&typeof e.endLineNumber=="number"&&typeof e.endColumn=="number"}static areIntersectingOrTouching(e,t){return!(e.endLineNumbere.startLineNumber}toJSON(){return this}}});var ge,bi=w(()=>{Fe();de();ge=class n extends y{constructor(e,t,i,o){super(e,t,i,o),this.selectionStartLineNumber=e,this.selectionStartColumn=t,this.positionLineNumber=i,this.positionColumn=o}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(e){return n.selectionsEqual(this,e)}static selectionsEqual(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(e,t){return this.getDirection()===0?new n(this.startLineNumber,this.startColumn,e,t):new n(e,t,this.startLineNumber,this.startColumn)}getPosition(){return new M(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new M(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(e,t){return this.getDirection()===0?new n(e,t,this.endLineNumber,this.endColumn):new n(this.endLineNumber,this.endColumn,e,t)}static fromPositions(e,t=e){return new n(e.lineNumber,e.column,t.lineNumber,t.column)}static fromRange(e,t){return t===0?new n(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):new n(e.endLineNumber,e.endColumn,e.startLineNumber,e.startColumn)}static liftSelection(e){return new n(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)}static selectionsArrEqual(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(let i=0,o=e.length;i0&&n.getLanguageId(s-1)===o;)s--;return new HY(n,o,s,r+1,n.getStartOffset(s),n.getEndOffset(r))}function Yu(n){return(n&3)!==0}var HY,Ny=w(()=>{HY=class{constructor(e,t,i,o,r,s){this._scopedLineTokensBrand=void 0,this._actual=e,this.languageId=t,this._firstTokenIndex=i,this._lastTokenIndex=o,this.firstCharOffset=r,this._lastCharOffset=s,this.languageIdCodec=e.languageIdCodec}getLineContent(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}getLineLength(){return this._lastCharOffset-this.firstCharOffset}getActualLineContentBefore(e){return this._actual.getLineContent().substring(0,this.firstCharOffset+e)}getTokenCount(){return this._lastTokenIndex-this._firstTokenIndex}findTokenIndexAtOffset(e){return this._actual.findTokenIndexAtOffset(e+this.firstCharOffset)-this._firstTokenIndex}getStandardTokenType(e){return this._actual.getStandardTokenType(e+this._firstTokenIndex)}toIViewLineTokens(){return this._actual.sliceAndInflate(this.firstCharOffset,this._lastCharOffset,0)}}});var Oi,yd=w(()=>{He();Oi=class n{static _nextVisibleColumn(e,t,i){return e===9?n.nextRenderTabStop(t,i):vd(e)||rD(e)?t+2:t+1}static visibleColumnFromColumn(e,t,i){let o=Math.min(t-1,e.length),r=e.substring(0,o),s=new yC(r),a=0;for(;!s.eol();){let l=gy(r,o,s.offset);s.nextGraphemeLength(),a=this._nextVisibleColumn(l,a,i)}return a}static columnFromVisibleColumn(e,t,i){if(t<=0)return 1;let o=e.length,r=new yC(e),s=0,a=1;for(;!r.eol();){let l=gy(e,o,r.offset);r.nextGraphemeLength();let c=this._nextVisibleColumn(l,s,i),d=r.offset+1;if(c>=t){let h=t-s;return c-t{He();yd()});var VY,DD,zY=w(()=>{ae();VY=class{constructor(){this._inputMode="insert",this._onDidChangeInputMode=new N,this.onDidChangeInputMode=this._onDidChangeInputMode.event}getInputMode(){return this._inputMode}},DD=new VY});function Kf(n){return n==="'"||n==='"'||n==="`"}var y9e,k9e,L9e,Jp,Ot,UY,$Y,Bs,Js,th=w(()=>{Fe();de();bi();Ny();yd();sF();zY();y9e=()=>!0,k9e=()=>!1,L9e=n=>n===" "||n==="	",Jp=class{static shouldRecreate(e){return e.hasChanged(165)||e.hasChanged(148)||e.hasChanged(45)||e.hasChanged(85)||e.hasChanged(88)||e.hasChanged(89)||e.hasChanged(10)||e.hasChanged(11)||e.hasChanged(15)||e.hasChanged(13)||e.hasChanged(14)||e.hasChanged(20)||e.hasChanged(145)||e.hasChanged(141)||e.hasChanged(59)||e.hasChanged(104)||e.hasChanged(147)||e.hasChanged(93)}constructor(e,t,i,o){this.languageConfigurationService=o,this._cursorMoveConfigurationBrand=void 0,this._languageId=e;let r=i.options,s=r.get(165),a=r.get(59);this.readOnly=r.get(104),this.tabSize=t.tabSize,this.indentSize=t.indentSize,this.insertSpaces=t.insertSpaces,this.stickyTabStops=r.get(132),this.lineHeight=a.lineHeight,this.typicalHalfwidthCharacterWidth=a.typicalHalfwidthCharacterWidth,this.pageSize=Math.max(1,Math.floor(s.height/this.lineHeight)-2),this.useTabStops=r.get(145),this.trimWhitespaceOnDelete=r.get(141),this.wordSeparators=r.get(148),this.emptySelectionClipboard=r.get(45),this.copyWithSyntaxHighlighting=r.get(31),this.multiCursorMergeOverlapping=r.get(85),this.multiCursorPaste=r.get(88),this.multiCursorLimit=r.get(89),this.autoClosingBrackets=r.get(10),this.autoClosingComments=r.get(11),this.autoClosingQuotes=r.get(15),this.autoClosingDelete=r.get(13),this.autoClosingOvertype=r.get(14),this.autoSurround=r.get(20),this.autoIndent=r.get(16),this.wordSegmenterLocales=r.get(147),this.overtypeOnPaste=r.get(93),this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:this._getShouldAutoClose(e,this.autoClosingQuotes,!0),comment:this._getShouldAutoClose(e,this.autoClosingComments,!1),bracket:this._getShouldAutoClose(e,this.autoClosingBrackets,!1)},this.autoClosingPairs=this.languageConfigurationService.getLanguageConfiguration(e).getAutoClosingPairs();let l=this.languageConfigurationService.getLanguageConfiguration(e).getSurroundingPairs();if(l)for(let d of l)this.surroundingPairs[d.open]=d.close;let c=this.languageConfigurationService.getLanguageConfiguration(e).comments;this.blockCommentStartToken=c?.blockCommentStartToken??null}get electricChars(){if(!this._electricChars){this._electricChars={};let e=this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter?.getElectricCharacters();if(e)for(let t of e)this._electricChars[t]=!0}return this._electricChars}get inputMode(){return DD.getInputMode()}onElectricCharacter(e,t,i){let o=Jm(t,i-1),r=this.languageConfigurationService.getLanguageConfiguration(o.languageId).electricCharacter;return r?r.onElectricCharacter(e,o,i-o.firstCharOffset):null}normalizeIndentation(e){return Ry(e,this.indentSize,this.insertSpaces)}_getShouldAutoClose(e,t,i){switch(t){case"beforeWhitespace":return L9e;case"languageDefined":return this._getLanguageDefinedShouldAutoClose(e,i);case"always":return y9e;case"never":return k9e}}_getLanguageDefinedShouldAutoClose(e,t){let i=this.languageConfigurationService.getLanguageConfiguration(e).getAutoCloseBeforeSet(t);return o=>i.indexOf(o)!==-1}visibleColumnFromColumn(e,t){return Oi.visibleColumnFromColumn(e.getLineContent(t.lineNumber),t.column,this.tabSize)}columnFromVisibleColumn(e,t,i){let o=Oi.columnFromVisibleColumn(e.getLineContent(t),i,this.tabSize),r=e.getLineMinColumn(t);if(os?s:o}},Ot=class n{static fromModelState(e){return new UY(e)}static fromViewState(e){return new $Y(e)}static fromModelSelection(e){let t=ge.liftSelection(e),i=new Bs(y.fromPositions(t.getSelectionStart()),0,0,t.getPosition(),0);return n.fromModelState(i)}static fromModelSelections(e){let t=[];for(let i=0,o=e.length;i{th();Fe();de();fv=class n{static columnSelect(e,t,i,o,r,s){let a=Math.abs(r-i)+1,l=i>r,c=o>s,d=os||bo||_0&&o--,n.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,i.toViewLineNumber,o)}static columnSelectRight(e,t,i){let o=0,r=Math.min(i.fromViewLineNumber,i.toViewLineNumber),s=Math.max(i.fromViewLineNumber,i.toViewLineNumber);for(let l=r;l<=s;l++){let c=t.getLineMaxColumn(l),d=e.visibleColumnFromColumn(t,new M(l,c));o=Math.max(o,d)}let a=i.toViewVisualColumn;return a{Fe();de();bi();Ao=class{constructor(e,t,i=!1){this._range=e,this._text=t,this.insertsAutoWhitespace=i}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){let o=t.getInverseEditOperations()[0].range;return ge.fromPositions(o.getEndPosition())}},Ay=class{constructor(e,t,i=!1){this._range=e,this._text=t,this.insertsAutoWhitespace=i}getEditOperations(e,t){let i=this._range.getStartPosition(),o=this._range.getEndPosition(),r=o.lineNumber,s=this._text.length+(this._range.isEmpty()?0:-1),a=sve(e,o,s);a.lineNumber>r&&(a=new M(r,e.getLineMaxColumn(r)));let l=y.fromPositions(i,a);t.addTrackedEditOperation(l,this._text)}computeCursorState(e,t){let o=t.getInverseEditOperations()[0].range;return ge.fromPositions(o.getEndPosition())}},aF=class{constructor(e,t){this._range=e,this._text=t}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){let o=t.getInverseEditOperations()[0].range;return ge.fromRange(o,0)}},GC=class{constructor(e,t,i=!1){this._range=e,this._text=t,this.insertsAutoWhitespace=i}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){let o=t.getInverseEditOperations()[0].range;return ge.fromPositions(o.getStartPosition())}},YC=class{constructor(e,t,i,o,r=!1){this._range=e,this._text=t,this._columnDeltaOffset=o,this._lineNumberDeltaOffset=i,this.insertsAutoWhitespace=r}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){let o=t.getInverseEditOperations()[0].range;return ge.fromPositions(o.getEndPosition().delta(this._lineNumberDeltaOffset,this._columnDeltaOffset))}},lF=class{constructor(e){this._range=e}getEditOperations(e,t){let i=e.getValueInRange(this._range),o=this._range.getEndPosition(),r=o.lineNumber,s=sve(e,o,i.length);s.lineNumber>r&&(s=new M(r,e.getLineMaxColumn(r)));let a=y.fromPositions(o,s);t.addTrackedEditOperation(a,"")}computeCursorState(e,t){let o=t.getInverseEditOperations()[0].range;return ge.fromPositions(o.getEndPosition())}},mv=class{constructor(e,t,i,o=!1){this._range=e,this._text=t,this._initialSelection=i,this._forceMoveMarkers=o,this._selectionId=null}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text,this._forceMoveMarkers),this._selectionId=t.trackSelection(this._initialSelection)}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}});var XC,qY=w(()=>{yd();XC=class n{static whitespaceVisibleColumn(e,t,i){let o=e.length,r=0,s=-1,a=-1;for(let l=0;l{He();yd();Fe();de();qY();th();TD=class{constructor(e,t,i){this._cursorPositionBrand=void 0,this.lineNumber=e,this.column=t,this.leftoverVisibleColumns=i}},Wn=class n{static leftPosition(e,t){if(t.column>e.getLineMinColumn(t.lineNumber))return t.delta(void 0,-PG(e.getLineContent(t.lineNumber),t.column-1));if(t.lineNumber>1){let i=t.lineNumber-1;return new M(i,e.getLineMaxColumn(i))}else return t}static leftPositionAtomicSoftTabs(e,t,i){if(t.column<=e.getLineIndentColumn(t.lineNumber)){let o=e.getLineMinColumn(t.lineNumber),r=e.getLineContent(t.lineNumber),s=XC.atomicPosition(r,t.column-1,i,0);if(s!==-1&&s+1>=o)return new M(t.lineNumber,s+1)}return this.leftPosition(e,t)}static left(e,t,i){let o=e.stickyTabStops?n.leftPositionAtomicSoftTabs(t,i,e.tabSize):n.leftPosition(t,i);return new TD(o.lineNumber,o.column,0)}static moveLeft(e,t,i,o,r){let s,a;if(i.hasSelection()&&!o)s=i.selection.startLineNumber,a=i.selection.startColumn;else{let l=i.position.delta(void 0,-(r-1)),c=t.normalizePosition(n.clipPositionColumn(l,t),0),d=n.left(e,t,c);s=d.lineNumber,a=d.column}return i.move(o,s,a,0)}static clipPositionColumn(e,t){return new M(e.lineNumber,n.clipRange(e.column,t.getLineMinColumn(e.lineNumber),t.getLineMaxColumn(e.lineNumber)))}static clipRange(e,t,i){return ei?i:e}static rightPosition(e,t,i){return id?(i=d,a?o=t.getLineMaxColumn(i):o=Math.min(t.getLineMaxColumn(i),o)):o=e.columnFromVisibleColumn(t,i,c),f?r=0:r=c-Oi.visibleColumnFromColumn(t.getLineContent(i),o,e.tabSize),l!==void 0){let m=new M(i,o),p=t.normalizePosition(m,l);r=r+(o-p.column),i=p.lineNumber,o=p.column}return new TD(i,o,r)}static down(e,t,i,o,r,s,a){return this.vertical(e,t,i,o,r,i+s,a,4)}static moveDown(e,t,i,o,r){let s,a;i.hasSelection()&&!o?(s=i.selection.endLineNumber,a=i.selection.endColumn):(s=i.position.lineNumber,a=i.position.column);let l=0,c;do if(c=n.down(e,t,s+l,a,i.leftoverVisibleColumns,r,!0),t.normalizePosition(new M(c.lineNumber,c.column),2).lineNumber>s)break;while(l++<10&&s+l1&&this._isBlankLine(t,r);)r--;for(;r>1&&!this._isBlankLine(t,r);)r--;return i.move(o,r,t.getLineMinColumn(r),0)}static moveToNextBlankLine(e,t,i,o){let r=t.getLineCount(),s=i.position.lineNumber;for(;s{He();ZC();th();yd();cF();de();Fe();e_=class n{static deleteRight(e,t,i,o){let r=[],s=e!==3;for(let a=0,l=o.length;a0,a=t.getLineFirstNonWhitespaceColumn(r.lineNumber);if(s&&a>0)return new y(r.lineNumber,a,o.lineNumber,o.column)}return new y(r.lineNumber,r.column,o.lineNumber,o.column)}static isAutoClosingPairDelete(e,t,i,o,r,s,a){if(t==="never"&&i==="never"||e==="never")return!1;for(let l=0,c=s.length;l=u.length+1)return!1;let f=u.charAt(h.column-2),m=o.get(f);if(!m)return!1;if(Kf(f)){if(i==="never")return!1}else if(t==="never")return!1;let p=u.charAt(h.column-1),_=!1;for(let b of m)b.open===f&&b.close===p&&(_=!0);if(!_)return!1;if(e==="auto"){let b=!1;for(let v=0,x=a.length;v1){let r=t.getLineContent(o.lineNumber),s=Gn(r),a=s===-1?r.length+1:s+1;if(o.column<=a){let l=i.visibleColumnFromColumn(t,o),c=Oi.prevIndentTabStop(l,i.indentSize),d=i.columnFromVisibleColumn(t,o.lineNumber,c);return new y(o.lineNumber,d,o.lineNumber,o.column)}}return y.fromPositions(n.getPositionAfterDeleteLeft(o,t),o)}static getPositionAfterDeleteLeft(e,t){if(e.column>1){let i=w_e(e.column-1,t.getLineContent(e.lineNumber));return e.with(void 0,i+1)}else if(e.lineNumber>1){let i=e.lineNumber-1;return new M(i,t.getLineMaxColumn(i))}else return e}static cut(e,t,i){let o=[],r=null;i.sort((s,a)=>M.compare(s.getStartPosition(),a.getEndPosition()));for(let s=0,a=i.length;s1&&r?.endLineNumber!==c.lineNumber?(d=c.lineNumber-1,h=t.getLineMaxColumn(c.lineNumber-1),u=c.lineNumber,f=t.getLineMaxColumn(c.lineNumber)):(d=c.lineNumber,h=1,u=c.lineNumber,f=t.getLineMaxColumn(c.lineNumber));let m=new y(d,h,u,f);r=m,m.isEmpty()?o[s]=null:o[s]=new Ao(m,"")}else o[s]=null;else o[s]=new Ao(l,"")}return new Js(0,o,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}});var Zu,My=w(()=>{Vu();ct();Zu={DateTimeFormat(n,e){return new $n(()=>{try{return new Intl.DateTimeFormat(n,e)}catch{return new Intl.DateTimeFormat(void 0,e)}})},Collator(n,e){return new $n(()=>{try{return new Intl.Collator(n,e)}catch{return new Intl.Collator(void 0,e)}})},Segmenter(n,e){return new $n(()=>{try{return new Intl.Segmenter(n,e)}catch{return new Intl.Segmenter(void 0,e)}})},Locale(n,e){return new $n(()=>{try{return new Intl.Locale(n,e)}catch{return new Intl.Locale(Kb,e)}})},NumberFormat(n,e){return new $n(()=>{try{return new Intl.NumberFormat(n,e)}catch{return new Intl.NumberFormat(void 0,e)}})}}});function QC(n){return n<0?0:n>255?255:n|0}function JC(n){return n<0?0:n>4294967295?4294967295:n|0}var ND=w(()=>{});var t_,i_,ex=w(()=>{ND();t_=class n{constructor(e){let t=QC(e);this._defaultValue=t,this._asciiMap=n._createAsciiMap(t),this._map=new Map}static _createAsciiMap(e){let t=new Uint8Array(256);return t.fill(e),t}set(e,t){let i=QC(t);e>=0&&e<256?this._asciiMap[e]=i:this._map.set(e,i)}get(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue}clear(){this._asciiMap.fill(this._defaultValue),this._map.clear()}},i_=class{constructor(){this._actual=new t_(0)}add(e){this._actual.set(e,1)}has(e){return this._actual.get(e)===1}clear(){return this._actual.clear()}}});function Hl(n,e){let t=`${n}/${e.join(",")}`,i=ave.get(t);return i||(i=new jY(n,e),ave.set(t,i)),i}var jY,ave,Oy=w(()=>{My();xo();ex();jY=class extends t_{constructor(e,t){super(0),this._segmenter=null,this._cachedLine=null,this._cachedSegments=[],this.intlSegmenterLocales=t,this.intlSegmenterLocales.length>0?this._segmenter=Zu.Segmenter(this.intlSegmenterLocales,{granularity:"word"}):this._segmenter=null;for(let i=0,o=e.length;it)break;i=o}return i}findNextIntlWordAtOrAfterOffset(e,t){for(let i of this._getIntlSegmenterWordsOnLine(e))if(!(i.index!!e)}var vs,tx,RD=w(()=>{He();th();dF();Oy();Fe();de();vs=class n{static _createWord(e,t,i,o,r){return{start:o,end:r,wordType:t,nextCharClass:i}}static _createIntlWord(e,t){return{start:e.index,end:e.index+e.segment.length,wordType:1,nextCharClass:t}}static _findPreviousWordOnLine(e,t,i){let o=t.getLineContent(i.lineNumber);return this._doFindPreviousWordOnLine(o,e,i)}static _doFindPreviousWordOnLine(e,t,i){let o=0,r=t.findPrevIntlWordBeforeOrAtOffset(e,i.column-2);for(let s=i.column-2;s>=0;s--){let a=e.charCodeAt(s),l=t.get(a);if(r&&s===r.index)return this._createIntlWord(r,l);if(l===0){if(o===2)return this._createWord(e,o,l,s+1,this._findEndOfWord(e,t,o,s+1));o=1}else if(l===2){if(o===1)return this._createWord(e,o,l,s+1,this._findEndOfWord(e,t,o,s+1));o=2}else if(l===1&&o!==0)return this._createWord(e,o,l,s+1,this._findEndOfWord(e,t,o,s+1))}return o!==0?this._createWord(e,o,1,0,this._findEndOfWord(e,t,o,0)):null}static _findEndOfWord(e,t,i,o){let r=t.findNextIntlWordAtOrAfterOffset(e,o),s=e.length;for(let a=o;a=0;s--){let a=e.charCodeAt(s),l=t.get(a);if(r&&s===r.index)return s;if(l===1||i===1&&l===2||i===2&&l===0)return s+1}return 0}static moveWordLeft(e,t,i,o,r){let s=i.lineNumber,a=i.column;a===1&&s>1&&(s=s-1,a=t.getLineMaxColumn(s));let l=n._findPreviousWordOnLine(e,t,new M(s,a));if(o===0)return new M(s,l?l.start+1:1);if(o===1)return!r&&l&&l.wordType===2&&l.end-l.start===1&&l.nextCharClass===0&&(l=n._findPreviousWordOnLine(e,t,new M(s,l.start+1))),new M(s,l?l.start+1:1);if(o===3){for(;l&&l.wordType===2;)l=n._findPreviousWordOnLine(e,t,new M(s,l.start+1));return new M(s,l?l.start+1:1)}return l&&a<=l.end+1&&(l=n._findPreviousWordOnLine(e,t,new M(s,l.start+1))),new M(s,l?l.end+1:1)}static _moveWordPartLeft(e,t){let i=t.lineNumber,o=e.getLineMaxColumn(i);if(t.column===1)return i>1?new M(i-1,e.getLineMaxColumn(i-1)):t;let r=e.getLineContent(i);for(let s=t.column-1;s>1;s--){let a=r.charCodeAt(s-2),l=r.charCodeAt(s-1);if(a===95&&l!==95)return new M(i,s);if(a===45&&l!==45)return new M(i,s);if((qm(a)||nD(a))&&Kh(l))return new M(i,s);if(Kh(a)&&Kh(l)&&s+1=l.start+1&&(l=n._findNextWordOnLine(e,t,new M(r,l.end+1))),l?s=l.start+1:s=t.getLineMaxColumn(r);return new M(r,s)}static _moveWordPartRight(e,t){let i=t.lineNumber,o=e.getLineMaxColumn(i);if(t.column===o)return i1?c=1:(l--,c=o.getLineMaxColumn(l)):(d&&c<=d.end+1&&(d=n._findPreviousWordOnLine(i,o,new M(l,d.start+1))),d?c=d.end+1:c>1?c=1:(l--,c=o.getLineMaxColumn(l))),new y(l,c,a.lineNumber,a.column)}static deleteInsideWord(e,t,i){if(!i.isEmpty())return i;let o=new M(i.positionLineNumber,i.positionColumn),r=this._deleteInsideWordWhitespace(t,o);return r||this._deleteInsideWordDetermineDeleteRange(e,t,o)}static _charAtIsWhitespace(e,t){let i=e.charCodeAt(t);return i===32||i===9}static _deleteInsideWordWhitespace(e,t){let i=e.getLineContent(t.lineNumber),o=i.length;if(o===0)return null;let r=Math.max(t.column-2,0);if(!this._charAtIsWhitespace(i,r))return null;let s=Math.min(t.column-1,o-1);if(!this._charAtIsWhitespace(i,s))return null;for(;r>0&&this._charAtIsWhitespace(i,r-1);)r--;for(;s+11?new y(i.lineNumber-1,t.getLineMaxColumn(i.lineNumber-1),i.lineNumber,1):i.lineNumberh.start+1<=i.column&&i.column<=h.end+1,a=(h,u)=>(h=Math.min(h,i.column),u=Math.max(u,i.column),new y(i.lineNumber,h,i.lineNumber,u)),l=h=>{let u=h.start+1,f=h.end+1,m=!1;for(;f-11&&this._charAtIsWhitespace(o,u-2);)u--;return a(u,f)},c=n._findPreviousWordOnLine(e,t,i);if(c&&s(c))return l(c);let d=n._findNextWordOnLine(e,t,i);return d&&s(d)?l(d):c&&d?a(c.end+1,d.start+1):c?a(c.start+1,c.end+1):d?a(d.start+1,d.end+1):a(1,r+1)}static _deleteWordPartLeft(e,t){if(!t.isEmpty())return t;let i=t.getPosition(),o=n._moveWordPartLeft(e,i);return new y(i.lineNumber,i.column,o.lineNumber,o.column)}static _findFirstNonWhitespaceChar(e,t){let i=e.length;for(let o=t;o=u.start+1&&(u=n._findNextWordOnLine(i,o,new M(l,u.end+1))),u?c=u.start+1:c{e[t]=i&&typeof i=="object"?ih(i):i}),e}function lve(n){if(!n||typeof n!="object")return n;let e=[n];for(;e.length>0;){let t=e.shift();Object.freeze(t);for(let i in t)if(cve.call(t,i)){let o=t[i];typeof o=="object"&&!Object.isFrozen(o)&&!Kpe(o)&&e.push(o)}}return n}function uF(n,e){return KY(n,e,new Set)}function KY(n,e,t){if(Ml(n))return n;let i=e(n);if(typeof i<"u")return i;if(Array.isArray(n)){let o=[];for(let r of n)o.push(KY(r,e,t));return o}if(_n(n)){if(t.has(n))throw new Error("Cannot clone recursive data-structure");t.add(n);let o={};for(let r in n)cve.call(n,r)&&(o[r]=KY(n[r],e,t));return t.delete(n),o}return n}function ix(n,e,t=!0){return _n(n)?(_n(e)&&Object.keys(e).forEach(i=>{i in n?t&&(_n(n[i])&&_n(e[i])?ix(n[i],e[i],t):n[i]=e[i]):n[i]=e[i]}),n):e}function ea(n,e){if(n===e)return!0;if(n==null||e===null||e===void 0||typeof n!=typeof e||typeof n!="object"||Array.isArray(n)!==Array.isArray(e))return!1;let t,i;if(Array.isArray(n)){if(n.length!==e.length)return!1;for(t=0;t{Nt();cve=Object.prototype.hasOwnProperty});function dve(n){return!!n&&typeof n.read=="function"}function gF(n){return!n.isTooLargeForSyncing()&&!n.isForSimpleWidget}var Ma,Vl,Ja,uc,gv,eg,Py,fF,mF,vo=w(()=>{qc();(function(n){n[n.Left=1]="Left",n[n.Center=2]="Center",n[n.Right=4]="Right",n[n.Full=7]="Full"})(Ma||(Ma={}));(function(n){n[n.Left=1]="Left",n[n.Center=2]="Center",n[n.Right=3]="Right"})(Vl||(Vl={}));(function(n){n[n.LTR=0]="LTR",n[n.RTL=1]="RTL"})(Ja||(Ja={}));(function(n){n[n.Both=0]="Both",n[n.Right=1]="Right",n[n.Left=2]="Left",n[n.None=3]="None"})(uc||(uc={}));gv=class{get originalIndentSize(){return this._indentSizeIsTabSize?"tabSize":this.indentSize}constructor(e){this._textModelResolvedOptionsBrand=void 0,this.tabSize=Math.max(1,e.tabSize|0),e.indentSize==="tabSize"?(this.indentSize=this.tabSize,this._indentSizeIsTabSize=!0):(this.indentSize=Math.max(1,e.indentSize|0),this._indentSizeIsTabSize=!1),this.insertSpaces=!!e.insertSpaces,this.defaultEOL=e.defaultEOL|0,this.trimAutoWhitespace=!!e.trimAutoWhitespace,this.bracketPairColorizationOptions=e.bracketPairColorizationOptions}equals(e){return this.tabSize===e.tabSize&&this._indentSizeIsTabSize===e._indentSizeIsTabSize&&this.indentSize===e.indentSize&&this.insertSpaces===e.insertSpaces&&this.defaultEOL===e.defaultEOL&&this.trimAutoWhitespace===e.trimAutoWhitespace&&ea(this.bracketPairColorizationOptions,e.bracketPairColorizationOptions)}createChangeEvent(e){return{tabSize:this.tabSize!==e.tabSize,indentSize:this.indentSize!==e.indentSize,insertSpaces:this.insertSpaces!==e.insertSpaces,trimAutoWhitespace:this.trimAutoWhitespace!==e.trimAutoWhitespace}}},eg=class{constructor(e,t){this._findMatchBrand=void 0,this.range=e,this.matches=t}};Py=class{constructor(e,t,i,o,r,s){this.identifier=e,this.range=t,this.text=i,this.forceMoveMarkers=o,this.isAutoWhitespaceEdit=r,this._isTracked=s}},fF=class{constructor(e,t,i){this.regex=e,this.wordSeparators=t,this.simpleSearch=i}},mF=class{constructor(e,t,i){this.reverseEdits=e,this.changes=t,this.trimAutoWhitespaceLineNumbers=i}}});var sr,AD,pF=w(()=>{Nt();th();cF();RD();Fe();de();vo();sr=class{static addCursorDown(e,t,i){let o=[],r=0;for(let s=0,a=t.length;sc&&(d=c,h=e.model.getLineMaxColumn(d)),Ot.fromModelState(new Bs(new y(s.lineNumber,1,d,h),2,0,new M(d,h),0))}let l=t.modelState.selectionStart.getStartPosition().lineNumber;if(s.lineNumberl){let c=e.getLineCount(),d=a.lineNumber+1,h=1;return d>c&&(d=c,h=e.getLineMaxColumn(d)),Ot.fromViewState(t.viewState.move(!0,d,h,0))}else{let c=t.modelState.selectionStart.getEndPosition();return Ot.fromModelState(t.modelState.move(!0,c.lineNumber,c.column,0))}}static word(e,t,i,o){let r=e.model.validatePosition(o);return Ot.fromModelState(vs.word(e.cursorConfig,e.model,t.modelState,i,r))}static cancelSelection(e,t){if(!t.modelState.hasSelection())return new Ot(t.modelState,t.viewState);let i=t.viewState.position.lineNumber,o=t.viewState.position.column;return Ot.fromViewState(new Bs(new y(i,o,i,o),0,0,new M(i,o),0))}static moveTo(e,t,i,o,r){if(i){if(t.modelState.selectionStartKind===1)return this.word(e,t,i,o);if(t.modelState.selectionStartKind===2)return this.line(e,t,i,o,r)}let s=e.model.validatePosition(o),a=r?e.coordinatesConverter.validateViewPosition(new M(r.lineNumber,r.column),s):e.coordinatesConverter.convertModelPositionToViewPosition(s);return Ot.fromViewState(t.viewState.move(i,a.lineNumber,a.column,0))}static simpleMove(e,t,i,o,r,s){switch(i){case 0:return s===4?this._moveHalfLineLeft(e,t,o):this._moveLeft(e,t,o,r);case 1:return s===4?this._moveHalfLineRight(e,t,o):this._moveRight(e,t,o,r);case 2:return s===2?this._moveUpByViewLines(e,t,o,r):this._moveUpByModelLines(e,t,o,r);case 3:return s===2?this._moveDownByViewLines(e,t,o,r):this._moveDownByModelLines(e,t,o,r);case 4:return s===2?t.map(a=>Ot.fromViewState(Wn.moveToPrevBlankLine(e.cursorConfig,e,a.viewState,o))):t.map(a=>Ot.fromModelState(Wn.moveToPrevBlankLine(e.cursorConfig,e.model,a.modelState,o)));case 5:return s===2?t.map(a=>Ot.fromViewState(Wn.moveToNextBlankLine(e.cursorConfig,e,a.viewState,o))):t.map(a=>Ot.fromModelState(Wn.moveToNextBlankLine(e.cursorConfig,e.model,a.modelState,o)));case 6:return this._moveToViewMinColumn(e,t,o);case 7:return this._moveToViewFirstNonWhitespaceColumn(e,t,o);case 8:return this._moveToViewCenterColumn(e,t,o);case 9:return this._moveToViewMaxColumn(e,t,o);case 10:return this._moveToViewLastNonWhitespaceColumn(e,t,o);default:return null}}static viewportMove(e,t,i,o,r){let s=e.getCompletelyVisibleViewRange(),a=e.coordinatesConverter.convertViewRangeToModelRange(s);switch(i){case 11:{let l=this._firstLineNumberInRange(e.model,a,r),c=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],o,l,c)]}case 13:{let l=this._lastLineNumberInRange(e.model,a,r),c=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],o,l,c)]}case 12:{let l=Math.round((a.startLineNumber+a.endLineNumber)/2),c=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],o,l,c)]}case 14:{let l=[];for(let c=0,d=t.length;ci.endLineNumber-1?s=i.endLineNumber-1:r{let a=e.getTextDirection(r.viewState.position.lineNumber)===Ja.RTL;return Ot.fromViewState(a?Wn.moveRight(e.cursorConfig,e,r.viewState,i,o):Wn.moveLeft(e.cursorConfig,e,r.viewState,i,o))})}static _moveHalfLineLeft(e,t,i){let o=[];for(let r=0,s=t.length;r{let a=e.getTextDirection(r.viewState.position.lineNumber)===Ja.RTL;return Ot.fromViewState(a?Wn.moveLeft(e.cursorConfig,e,r.viewState,i,o):Wn.moveRight(e.cursorConfig,e,r.viewState,i,o))})}static _moveHalfLineRight(e,t,i){let o=[];for(let r=0,s=t.length;r= 0) {
-      continue;
-    }
-    source += "\\" + sep2;
-  }
-  source += "\\s]+)";
-  return new RegExp(source, "g");
-}
-function ensureValidWordDefinition(wordDefinition) {
-  let result = DEFAULT_WORD_REGEXP;
-  if (wordDefinition && wordDefinition instanceof RegExp) {
-    if (!wordDefinition.global) {
-      let flags = "g";
-      if (wordDefinition.ignoreCase) {
-        flags += "i";
-      }
-      if (wordDefinition.multiline) {
-        flags += "m";
-      }
-      if (wordDefinition.unicode) {
-        flags += "u";
-      }
-      result = new RegExp(wordDefinition.source, flags);
-    } else {
-      result = wordDefinition;
-    }
-  }
-  result.lastIndex = 0;
-  return result;
-}
-function getWordAtText(column, wordDefinition, text2, textOffset, config) {
-  wordDefinition = ensureValidWordDefinition(wordDefinition);
-  if (!config) {
-    config = Iterable.first(_defaultConfig);
-  }
-  if (text2.length > config.maxLen) {
-    let start = column - config.maxLen / 2;
-    if (start < 0) {
-      start = 0;
-    } else {
-      textOffset += start;
-    }
-    text2 = text2.substring(start, column + config.maxLen / 2);
-    return getWordAtText(column, wordDefinition, text2, textOffset, config);
-  }
-  const t1 = Date.now();
-  const pos = column - 1 - textOffset;
-  let prevRegexIndex = -1;
-  let match2 = null;
-  for (let i2 = 1; ; i2++) {
-    if (Date.now() - t1 >= config.timeBudget) {
-      break;
-    }
-    const regexIndex = pos - config.windowSize * i2;
-    wordDefinition.lastIndex = Math.max(0, regexIndex);
-    const thisMatch = _findRegexMatchEnclosingPosition(wordDefinition, text2, pos, prevRegexIndex);
-    if (!thisMatch && match2) {
-      break;
-    }
-    match2 = thisMatch;
-    if (regexIndex <= 0) {
-      break;
-    }
-    prevRegexIndex = regexIndex;
-  }
-  if (match2) {
-    const result = {
-      word: match2[0],
-      startColumn: textOffset + 1 + match2.index,
-      endColumn: textOffset + 1 + match2.index + match2[0].length
-    };
-    wordDefinition.lastIndex = 0;
-    return result;
-  }
-  return null;
-}
-function _findRegexMatchEnclosingPosition(wordDefinition, text2, pos, stopPos) {
-  let match2;
-  while (match2 = wordDefinition.exec(text2)) {
-    const matchIndex = match2.index || 0;
-    if (matchIndex <= pos && wordDefinition.lastIndex >= pos) {
-      return match2;
-    } else if (stopPos > 0 && matchIndex > stopPos) {
-      return null;
-    }
-  }
-  return null;
-}
-var USUAL_WORD_SEPARATORS, DEFAULT_WORD_REGEXP, _defaultConfig;
-var init_wordHelper = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/core/wordHelper.js"() {
-    init_iterator();
-    init_linkedList();
-    USUAL_WORD_SEPARATORS = "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";
-    DEFAULT_WORD_REGEXP = createWordRegExp();
-    _defaultConfig = new LinkedList();
-    _defaultConfig.unshift({
-      maxLen: 1e3,
-      windowSize: 15,
-      timeBudget: 150
-    });
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/languages/supports/characterPair.js
-var CharacterPairSupport;
-var init_characterPair = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/languages/supports/characterPair.js"() {
-    init_languageConfiguration();
-    CharacterPairSupport = class _CharacterPairSupport {
-      static {
-        this.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES = ";:.,=}])> \n	";
-      }
-      static {
-        this.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS = "'\"`;:.,=}])> \n	";
-      }
-      constructor(config) {
-        if (config.autoClosingPairs) {
-          this._autoClosingPairs = config.autoClosingPairs.map((el) => new StandardAutoClosingPairConditional(el));
-        } else if (config.brackets) {
-          this._autoClosingPairs = config.brackets.map((b) => new StandardAutoClosingPairConditional({ open: b[0], close: b[1] }));
-        } else {
-          this._autoClosingPairs = [];
-        }
-        if (config.__electricCharacterSupport && config.__electricCharacterSupport.docComment) {
-          const docComment = config.__electricCharacterSupport.docComment;
-          this._autoClosingPairs.push(new StandardAutoClosingPairConditional({ open: docComment.open, close: docComment.close || "" }));
-        }
-        this._autoCloseBeforeForQuotes = typeof config.autoCloseBefore === "string" ? config.autoCloseBefore : _CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES;
-        this._autoCloseBeforeForBrackets = typeof config.autoCloseBefore === "string" ? config.autoCloseBefore : _CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS;
-        this._surroundingPairs = config.surroundingPairs || this._autoClosingPairs;
-      }
-      getAutoClosingPairs() {
-        return this._autoClosingPairs;
-      }
-      getAutoCloseBeforeSet(forQuotes) {
-        return forQuotes ? this._autoCloseBeforeForQuotes : this._autoCloseBeforeForBrackets;
-      }
-      getSurroundingPairs() {
-        return this._surroundingPairs;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/core/stringBuilder.js
-function getUTF16LE_TextDecoder() {
-  if (!_utf16LE_TextDecoder) {
-    _utf16LE_TextDecoder = new TextDecoder("UTF-16LE");
-  }
-  return _utf16LE_TextDecoder;
-}
-function getUTF16BE_TextDecoder() {
-  if (!_utf16BE_TextDecoder) {
-    _utf16BE_TextDecoder = new TextDecoder("UTF-16BE");
-  }
-  return _utf16BE_TextDecoder;
-}
-function getPlatformTextDecoder() {
-  if (!_platformTextDecoder) {
-    _platformTextDecoder = isLittleEndian() ? getUTF16LE_TextDecoder() : getUTF16BE_TextDecoder();
-  }
-  return _platformTextDecoder;
-}
-function decodeUTF16LE(source, offset, len) {
-  const view = new Uint16Array(source.buffer, offset, len);
-  if (len > 0 && (view[0] === 65279 || view[0] === 65534)) {
-    return compatDecodeUTF16LE(source, offset, len);
-  }
-  return getUTF16LE_TextDecoder().decode(view);
-}
-function compatDecodeUTF16LE(source, offset, len) {
-  const result = [];
-  let resultLen = 0;
-  for (let i2 = 0; i2 < len; i2++) {
-    const charCode = readUInt16LE(source, offset);
-    offset += 2;
-    result[resultLen++] = String.fromCharCode(charCode);
-  }
-  return result.join("");
-}
-var _utf16LE_TextDecoder, _utf16BE_TextDecoder, _platformTextDecoder, StringBuilder;
-var init_stringBuilder = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/core/stringBuilder.js"() {
-    init_strings();
-    init_platform();
-    init_buffer();
-    StringBuilder = class {
-      constructor(capacity) {
-        this._capacity = capacity | 0;
-        this._buffer = new Uint16Array(this._capacity);
-        this._completedStrings = null;
-        this._bufferLength = 0;
-      }
-      reset() {
-        this._completedStrings = null;
-        this._bufferLength = 0;
-      }
-      build() {
-        if (this._completedStrings !== null) {
-          this._flushBuffer();
-          return this._completedStrings.join("");
-        }
-        return this._buildBuffer();
-      }
-      _buildBuffer() {
-        if (this._bufferLength === 0) {
-          return "";
-        }
-        const view = new Uint16Array(this._buffer.buffer, 0, this._bufferLength);
-        return getPlatformTextDecoder().decode(view);
-      }
-      _flushBuffer() {
-        const bufferString = this._buildBuffer();
-        this._bufferLength = 0;
-        if (this._completedStrings === null) {
-          this._completedStrings = [bufferString];
-        } else {
-          this._completedStrings[this._completedStrings.length] = bufferString;
-        }
-      }
-      /**
-       * Append a char code (<2^16)
-       */
-      appendCharCode(charCode) {
-        const remainingSpace = this._capacity - this._bufferLength;
-        if (remainingSpace <= 1) {
-          if (remainingSpace === 0 || isHighSurrogate(charCode)) {
-            this._flushBuffer();
-          }
-        }
-        this._buffer[this._bufferLength++] = charCode;
-      }
-      /**
-       * Append an ASCII char code (<2^8)
-       */
-      appendASCIICharCode(charCode) {
-        if (this._bufferLength === this._capacity) {
-          this._flushBuffer();
-        }
-        this._buffer[this._bufferLength++] = charCode;
-      }
-      appendString(str) {
-        const strLen = str.length;
-        if (this._bufferLength + strLen >= this._capacity) {
-          this._flushBuffer();
-          this._completedStrings[this._completedStrings.length] = str;
-          return;
-        }
-        for (let i2 = 0; i2 < strLen; i2++) {
-          this._buffer[this._bufferLength++] = str.charCodeAt(i2);
-        }
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/languages/supports/richEditBrackets.js
-function groupFuzzyBrackets(brackets) {
-  const N = brackets.length;
-  brackets = brackets.map((b) => [b[0].toLowerCase(), b[1].toLowerCase()]);
-  const group = [];
-  for (let i2 = 0; i2 < N; i2++) {
-    group[i2] = i2;
-  }
-  const areOverlapping = (a, b) => {
-    const [aOpen, aClose] = a;
-    const [bOpen, bClose] = b;
-    return aOpen === bOpen || aOpen === bClose || aClose === bOpen || aClose === bClose;
-  };
-  const mergeGroups = (g1, g2) => {
-    const newG = Math.min(g1, g2);
-    const oldG = Math.max(g1, g2);
-    for (let i2 = 0; i2 < N; i2++) {
-      if (group[i2] === oldG) {
-        group[i2] = newG;
-      }
-    }
-  };
-  for (let i2 = 0; i2 < N; i2++) {
-    const a = brackets[i2];
-    for (let j = i2 + 1; j < N; j++) {
-      const b = brackets[j];
-      if (areOverlapping(a, b)) {
-        mergeGroups(group[i2], group[j]);
-      }
-    }
-  }
-  const result = [];
-  for (let g = 0; g < N; g++) {
-    const currentOpen = [];
-    const currentClose = [];
-    for (let i2 = 0; i2 < N; i2++) {
-      if (group[i2] === g) {
-        const [open, close] = brackets[i2];
-        currentOpen.push(open);
-        currentClose.push(close);
-      }
-    }
-    if (currentOpen.length > 0) {
-      result.push({
-        open: currentOpen,
-        close: currentClose
-      });
-    }
-  }
-  return result;
-}
-function collectSuperstrings(str, brackets, currentIndex, dest) {
-  for (let i2 = 0, len = brackets.length; i2 < len; i2++) {
-    if (i2 === currentIndex) {
-      continue;
-    }
-    const bracket = brackets[i2];
-    for (const open of bracket.open) {
-      if (open.indexOf(str) >= 0) {
-        dest.push(open);
-      }
-    }
-    for (const close of bracket.close) {
-      if (close.indexOf(str) >= 0) {
-        dest.push(close);
-      }
-    }
-  }
-}
-function lengthcmp(a, b) {
-  return a.length - b.length;
-}
-function unique(arr) {
-  if (arr.length <= 1) {
-    return arr;
-  }
-  const result = [];
-  const seen = /* @__PURE__ */ new Set();
-  for (const element of arr) {
-    if (seen.has(element)) {
-      continue;
-    }
-    result.push(element);
-    seen.add(element);
-  }
-  return result;
-}
-function getRegexForBracketPair(open, close, brackets, currentIndex) {
-  let pieces = [];
-  pieces = pieces.concat(open);
-  pieces = pieces.concat(close);
-  for (let i2 = 0, len = pieces.length; i2 < len; i2++) {
-    collectSuperstrings(pieces[i2], brackets, currentIndex, pieces);
-  }
-  pieces = unique(pieces);
-  pieces.sort(lengthcmp);
-  pieces.reverse();
-  return createBracketOrRegExp(pieces);
-}
-function getReversedRegexForBracketPair(open, close, brackets, currentIndex) {
-  let pieces = [];
-  pieces = pieces.concat(open);
-  pieces = pieces.concat(close);
-  for (let i2 = 0, len = pieces.length; i2 < len; i2++) {
-    collectSuperstrings(pieces[i2], brackets, currentIndex, pieces);
-  }
-  pieces = unique(pieces);
-  pieces.sort(lengthcmp);
-  pieces.reverse();
-  return createBracketOrRegExp(pieces.map(toReversedString));
-}
-function getRegexForBrackets(brackets) {
-  let pieces = [];
-  for (const bracket of brackets) {
-    for (const open of bracket.open) {
-      pieces.push(open);
-    }
-    for (const close of bracket.close) {
-      pieces.push(close);
-    }
-  }
-  pieces = unique(pieces);
-  return createBracketOrRegExp(pieces);
-}
-function getReversedRegexForBrackets(brackets) {
-  let pieces = [];
-  for (const bracket of brackets) {
-    for (const open of bracket.open) {
-      pieces.push(open);
-    }
-    for (const close of bracket.close) {
-      pieces.push(close);
-    }
-  }
-  pieces = unique(pieces);
-  return createBracketOrRegExp(pieces.map(toReversedString));
-}
-function prepareBracketForRegExp(str) {
-  const insertWordBoundaries = /^[\w ]+$/.test(str);
-  str = escapeRegExpCharacters(str);
-  return insertWordBoundaries ? `\\b${str}\\b` : str;
-}
-function createBracketOrRegExp(pieces, options) {
-  const regexStr = `(${pieces.map(prepareBracketForRegExp).join(")|(")})`;
-  return createRegExp(regexStr, true, options);
-}
-var RichEditBracket, RichEditBrackets, toReversedString, BracketsUtils;
-var init_richEditBrackets = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/languages/supports/richEditBrackets.js"() {
-    init_strings();
-    init_stringBuilder();
-    init_range();
-    RichEditBracket = class _RichEditBracket {
-      constructor(languageId, index, open, close, forwardRegex, reversedRegex) {
-        this._richEditBracketBrand = void 0;
-        this.languageId = languageId;
-        this.index = index;
-        this.open = open;
-        this.close = close;
-        this.forwardRegex = forwardRegex;
-        this.reversedRegex = reversedRegex;
-        this._openSet = _RichEditBracket._toSet(this.open);
-        this._closeSet = _RichEditBracket._toSet(this.close);
-      }
-      /**
-       * Check if the provided `text` is an open bracket in this group.
-       */
-      isOpen(text2) {
-        return this._openSet.has(text2);
-      }
-      /**
-       * Check if the provided `text` is a close bracket in this group.
-       */
-      isClose(text2) {
-        return this._closeSet.has(text2);
-      }
-      static _toSet(arr) {
-        const result = /* @__PURE__ */ new Set();
-        for (const element of arr) {
-          result.add(element);
-        }
-        return result;
-      }
-    };
-    RichEditBrackets = class {
-      constructor(languageId, _brackets) {
-        this._richEditBracketsBrand = void 0;
-        const brackets = groupFuzzyBrackets(_brackets);
-        this.brackets = brackets.map((b, index) => {
-          return new RichEditBracket(languageId, index, b.open, b.close, getRegexForBracketPair(b.open, b.close, brackets, index), getReversedRegexForBracketPair(b.open, b.close, brackets, index));
-        });
-        this.forwardRegex = getRegexForBrackets(this.brackets);
-        this.reversedRegex = getReversedRegexForBrackets(this.brackets);
-        this.textIsBracket = {};
-        this.textIsOpenBracket = {};
-        this.maxBracketLength = 0;
-        for (const bracket of this.brackets) {
-          for (const open of bracket.open) {
-            this.textIsBracket[open] = bracket;
-            this.textIsOpenBracket[open] = true;
-            this.maxBracketLength = Math.max(this.maxBracketLength, open.length);
-          }
-          for (const close of bracket.close) {
-            this.textIsBracket[close] = bracket;
-            this.textIsOpenBracket[close] = false;
-            this.maxBracketLength = Math.max(this.maxBracketLength, close.length);
-          }
-        }
-      }
-    };
-    toReversedString = /* @__PURE__ */ function() {
-      function reverse(str) {
-        const arr = new Uint16Array(str.length);
-        let offset = 0;
-        for (let i2 = str.length - 1; i2 >= 0; i2--) {
-          arr[offset++] = str.charCodeAt(i2);
-        }
-        return getPlatformTextDecoder().decode(arr);
-      }
-      let lastInput = null;
-      let lastOutput = null;
-      return function toReversedString2(str) {
-        if (lastInput !== str) {
-          lastInput = str;
-          lastOutput = reverse(lastInput);
-        }
-        return lastOutput;
-      };
-    }();
-    BracketsUtils = class {
-      static _findPrevBracketInText(reversedBracketRegex, lineNumber, reversedText, offset) {
-        const m = reversedText.match(reversedBracketRegex);
-        if (!m) {
-          return null;
-        }
-        const matchOffset = reversedText.length - (m.index || 0);
-        const matchLength = m[0].length;
-        const absoluteMatchOffset = offset + matchOffset;
-        return new Range(lineNumber, absoluteMatchOffset - matchLength + 1, lineNumber, absoluteMatchOffset + 1);
-      }
-      static findPrevBracketInRange(reversedBracketRegex, lineNumber, lineText, startOffset, endOffset) {
-        const reversedLineText = toReversedString(lineText);
-        const reversedSubstr = reversedLineText.substring(lineText.length - endOffset, lineText.length - startOffset);
-        return this._findPrevBracketInText(reversedBracketRegex, lineNumber, reversedSubstr, startOffset);
-      }
-      static findNextBracketInText(bracketRegex, lineNumber, text2, offset) {
-        const m = text2.match(bracketRegex);
-        if (!m) {
-          return null;
-        }
-        const matchOffset = m.index || 0;
-        const matchLength = m[0].length;
-        if (matchLength === 0) {
-          return null;
-        }
-        const absoluteMatchOffset = offset + matchOffset;
-        return new Range(lineNumber, absoluteMatchOffset + 1, lineNumber, absoluteMatchOffset + 1 + matchLength);
-      }
-      static findNextBracketInRange(bracketRegex, lineNumber, lineText, startOffset, endOffset) {
-        const substr = lineText.substring(startOffset, endOffset);
-        return this.findNextBracketInText(bracketRegex, lineNumber, substr, startOffset);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/languages/supports/electricCharacter.js
-var BracketElectricCharacterSupport;
-var init_electricCharacter = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/languages/supports/electricCharacter.js"() {
-    init_arrays();
-    init_supports();
-    init_richEditBrackets();
-    BracketElectricCharacterSupport = class {
-      constructor(richEditBrackets) {
-        this._richEditBrackets = richEditBrackets;
-      }
-      getElectricCharacters() {
-        const result = [];
-        if (this._richEditBrackets) {
-          for (const bracket of this._richEditBrackets.brackets) {
-            for (const close of bracket.close) {
-              const lastChar = close.charAt(close.length - 1);
-              result.push(lastChar);
-            }
-          }
-        }
-        return distinct(result);
-      }
-      onElectricCharacter(character, context, column) {
-        if (!this._richEditBrackets || this._richEditBrackets.brackets.length === 0) {
-          return null;
-        }
-        const tokenIndex = context.findTokenIndexAtOffset(column - 1);
-        if (ignoreBracketsInToken(context.getStandardTokenType(tokenIndex))) {
-          return null;
-        }
-        const reversedBracketRegex = this._richEditBrackets.reversedRegex;
-        const text2 = context.getLineContent().substring(0, column - 1) + character;
-        const r = BracketsUtils.findPrevBracketInRange(reversedBracketRegex, 1, text2, 0, text2.length);
-        if (!r) {
-          return null;
-        }
-        const bracketText = text2.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();
-        const isOpen = this._richEditBrackets.textIsOpenBracket[bracketText];
-        if (isOpen) {
-          return null;
-        }
-        const textBeforeBracket = context.getActualLineContentBefore(r.startColumn - 1);
-        if (!/^\s*$/.test(textBeforeBracket)) {
-          return null;
-        }
-        return {
-          matchOpenBracket: bracketText
-        };
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/languages/supports/indentRules.js
-function resetGlobalRegex(reg) {
-  if (reg.global) {
-    reg.lastIndex = 0;
-  }
-  return true;
-}
-var IndentRulesSupport;
-var init_indentRules = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/languages/supports/indentRules.js"() {
-    IndentRulesSupport = class {
-      constructor(indentationRules) {
-        this._indentationRules = indentationRules;
-      }
-      shouldIncrease(text2) {
-        if (this._indentationRules) {
-          if (this._indentationRules.increaseIndentPattern && resetGlobalRegex(this._indentationRules.increaseIndentPattern) && this._indentationRules.increaseIndentPattern.test(text2)) {
-            return true;
-          }
-        }
-        return false;
-      }
-      shouldDecrease(text2) {
-        if (this._indentationRules && this._indentationRules.decreaseIndentPattern && resetGlobalRegex(this._indentationRules.decreaseIndentPattern) && this._indentationRules.decreaseIndentPattern.test(text2)) {
-          return true;
-        }
-        return false;
-      }
-      shouldIndentNextLine(text2) {
-        if (this._indentationRules && this._indentationRules.indentNextLinePattern && resetGlobalRegex(this._indentationRules.indentNextLinePattern) && this._indentationRules.indentNextLinePattern.test(text2)) {
-          return true;
-        }
-        return false;
-      }
-      shouldIgnore(text2) {
-        if (this._indentationRules && this._indentationRules.unIndentedLinePattern && resetGlobalRegex(this._indentationRules.unIndentedLinePattern) && this._indentationRules.unIndentedLinePattern.test(text2)) {
-          return true;
-        }
-        return false;
-      }
-      getIndentMetadata(text2) {
-        let ret = 0;
-        if (this.shouldIncrease(text2)) {
-          ret += 1;
-        }
-        if (this.shouldDecrease(text2)) {
-          ret += 2;
-        }
-        if (this.shouldIndentNextLine(text2)) {
-          ret += 4;
-        }
-        if (this.shouldIgnore(text2)) {
-          ret += 8;
-        }
-        return ret;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/languages/supports/onEnter.js
-var OnEnterSupport;
-var init_onEnter = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/languages/supports/onEnter.js"() {
-    init_errors();
-    init_strings();
-    init_languageConfiguration();
-    OnEnterSupport = class _OnEnterSupport {
-      constructor(opts) {
-        opts = opts || {};
-        opts.brackets = opts.brackets || [
-          ["(", ")"],
-          ["{", "}"],
-          ["[", "]"]
-        ];
-        this._brackets = [];
-        opts.brackets.forEach((bracket) => {
-          const openRegExp = _OnEnterSupport._createOpenBracketRegExp(bracket[0]);
-          const closeRegExp = _OnEnterSupport._createCloseBracketRegExp(bracket[1]);
-          if (openRegExp && closeRegExp) {
-            this._brackets.push({
-              open: bracket[0],
-              openRegExp,
-              close: bracket[1],
-              closeRegExp
-            });
-          }
-        });
-        this._regExpRules = opts.onEnterRules || [];
-      }
-      onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText) {
-        if (autoIndent >= 3) {
-          for (let i2 = 0, len = this._regExpRules.length; i2 < len; i2++) {
-            const rule = this._regExpRules[i2];
-            const regResult = [{
-              reg: rule.beforeText,
-              text: beforeEnterText
-            }, {
-              reg: rule.afterText,
-              text: afterEnterText
-            }, {
-              reg: rule.previousLineText,
-              text: previousLineText
-            }].every((obj) => {
-              if (!obj.reg) {
-                return true;
-              }
-              obj.reg.lastIndex = 0;
-              return obj.reg.test(obj.text);
-            });
-            if (regResult) {
-              return rule.action;
-            }
-          }
-        }
-        if (autoIndent >= 2) {
-          if (beforeEnterText.length > 0 && afterEnterText.length > 0) {
-            for (let i2 = 0, len = this._brackets.length; i2 < len; i2++) {
-              const bracket = this._brackets[i2];
-              if (bracket.openRegExp.test(beforeEnterText) && bracket.closeRegExp.test(afterEnterText)) {
-                return { indentAction: IndentAction.IndentOutdent };
-              }
-            }
-          }
-        }
-        if (autoIndent >= 2) {
-          if (beforeEnterText.length > 0) {
-            for (let i2 = 0, len = this._brackets.length; i2 < len; i2++) {
-              const bracket = this._brackets[i2];
-              if (bracket.openRegExp.test(beforeEnterText)) {
-                return { indentAction: IndentAction.Indent };
-              }
-            }
-          }
-        }
-        return null;
-      }
-      static _createOpenBracketRegExp(bracket) {
-        let str = escapeRegExpCharacters(bracket);
-        if (!/\B/.test(str.charAt(0))) {
-          str = "\\b" + str;
-        }
-        str += "\\s*$";
-        return _OnEnterSupport._safeRegExp(str);
-      }
-      static _createCloseBracketRegExp(bracket) {
-        let str = escapeRegExpCharacters(bracket);
-        if (!/\B/.test(str.charAt(str.length - 1))) {
-          str = str + "\\b";
-        }
-        str = "^\\s*" + str;
-        return _OnEnterSupport._safeRegExp(str);
-      }
-      static _safeRegExp(def2) {
-        try {
-          return new RegExp(def2);
-        } catch (err) {
-          onUnexpectedError(err);
-          return null;
-        }
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/platform/configuration/common/configuration.js
-function toValuesTree(properties, conflictReporter) {
-  const root = /* @__PURE__ */ Object.create(null);
-  for (const key in properties) {
-    addToValueTree(root, key, properties[key], conflictReporter);
-  }
-  return root;
-}
-function addToValueTree(settingsTreeRoot, key, value, conflictReporter) {
-  const segments = key.split(".");
-  const last = segments.pop();
-  let curr = settingsTreeRoot;
-  for (let i2 = 0; i2 < segments.length; i2++) {
-    const s = segments[i2];
-    let obj = curr[s];
-    switch (typeof obj) {
-      case "undefined":
-        obj = curr[s] = /* @__PURE__ */ Object.create(null);
-        break;
-      case "object":
-        if (obj === null) {
-          conflictReporter(`Ignoring ${key} as ${segments.slice(0, i2 + 1).join(".")} is null`);
-          return;
-        }
-        break;
-      default:
-        conflictReporter(`Ignoring ${key} as ${segments.slice(0, i2 + 1).join(".")} is ${JSON.stringify(obj)}`);
-        return;
-    }
-    curr = obj;
-  }
-  if (typeof curr === "object" && curr !== null) {
-    try {
-      curr[last] = value;
-    } catch (e) {
-      conflictReporter(`Ignoring ${key} as ${segments.join(".")} is ${JSON.stringify(curr)}`);
-    }
-  } else {
-    conflictReporter(`Ignoring ${key} as ${segments.join(".")} is ${JSON.stringify(curr)}`);
-  }
-}
-function removeFromValueTree(valueTree, key) {
-  const segments = key.split(".");
-  doRemoveFromValueTree(valueTree, segments);
-}
-function doRemoveFromValueTree(valueTree, segments) {
-  if (!valueTree) {
-    return;
-  }
-  const first2 = segments.shift();
-  if (segments.length === 0) {
-    delete valueTree[first2];
-    return;
-  }
-  if (Object.keys(valueTree).indexOf(first2) !== -1) {
-    const value = valueTree[first2];
-    if (typeof value === "object" && !Array.isArray(value)) {
-      doRemoveFromValueTree(value, segments);
-      if (Object.keys(value).length === 0) {
-        delete valueTree[first2];
-      }
-    }
-  }
-}
-function getConfigurationValue(config, settingPath, defaultValue) {
-  function accessSetting(config2, path2) {
-    let current = config2;
-    for (const component of path2) {
-      if (typeof current !== "object" || current === null) {
-        return void 0;
-      }
-      current = current[component];
-    }
-    return current;
-  }
-  const path = settingPath.split(".");
-  const result = accessSetting(config, path);
-  return typeof result === "undefined" ? defaultValue : result;
-}
-function getLanguageTagSettingPlainKey(settingKey) {
-  return settingKey.replace(/^\[/, "").replace(/]$/g, "").replace(/\]\[/g, ", ");
-}
-var IConfigurationService;
-var init_configuration = __esm({
-  "../node_modules/monaco-editor/esm/vs/platform/configuration/common/configuration.js"() {
-    init_instantiation();
-    IConfigurationService = createDecorator("configurationService");
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/languages/language.js
-var ILanguageService;
-var init_language = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/languages/language.js"() {
-    init_instantiation();
-    ILanguageService = createDecorator("languageService");
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/platform/instantiation/common/descriptors.js
-var SyncDescriptor;
-var init_descriptors = __esm({
-  "../node_modules/monaco-editor/esm/vs/platform/instantiation/common/descriptors.js"() {
-    SyncDescriptor = class {
-      constructor(ctor, staticArguments = [], supportsDelayedInstantiation = false) {
-        this.ctor = ctor;
-        this.staticArguments = staticArguments;
-        this.supportsDelayedInstantiation = supportsDelayedInstantiation;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/platform/instantiation/common/extensions.js
-function registerSingleton(id, ctorOrDescriptor, supportsDelayedInstantiation) {
-  if (!(ctorOrDescriptor instanceof SyncDescriptor)) {
-    ctorOrDescriptor = new SyncDescriptor(ctorOrDescriptor, [], Boolean(supportsDelayedInstantiation));
-  }
-  _registry.push([id, ctorOrDescriptor]);
-}
-function getSingletonServiceDescriptors() {
-  return _registry;
-}
-var _registry;
-var init_extensions = __esm({
-  "../node_modules/monaco-editor/esm/vs/platform/instantiation/common/extensions.js"() {
-    init_descriptors();
-    _registry = [];
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/common/mime.js
-var Mimes;
-var init_mime = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/common/mime.js"() {
-    Mimes = Object.freeze({
-      text: "text/plain",
-      binary: "application/octet-stream",
-      unknown: "application/unknown",
-      markdown: "text/markdown",
-      latex: "text/latex",
-      uriList: "text/uri-list",
-      html: "text/html"
-    });
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/platform/jsonschemas/common/jsonContributionRegistry.js
-function normalizeId(id) {
-  if (id.length > 0 && id.charAt(id.length - 1) === "#") {
-    return id.substring(0, id.length - 1);
-  }
-  return id;
-}
-var Extensions3, JSONContributionRegistry, jsonContributionRegistry;
-var init_jsonContributionRegistry = __esm({
-  "../node_modules/monaco-editor/esm/vs/platform/jsonschemas/common/jsonContributionRegistry.js"() {
-    init_event();
-    init_lifecycle();
-    init_platform2();
-    Extensions3 = {
-      JSONContribution: "base.contributions.json"
-    };
-    JSONContributionRegistry = class extends Disposable {
-      constructor() {
-        super(...arguments);
-        this.schemasById = {};
-        this._onDidChangeSchema = this._register(new Emitter());
-      }
-      registerSchema(uri, unresolvedSchemaContent, store) {
-        const normalizedUri = normalizeId(uri);
-        this.schemasById[normalizedUri] = unresolvedSchemaContent;
-        this._onDidChangeSchema.fire(uri);
-        if (store) {
-          store.add(toDisposable(() => {
-            delete this.schemasById[normalizedUri];
-            this._onDidChangeSchema.fire(uri);
-          }));
-        }
-      }
-      notifySchemaChanged(uri) {
-        this._onDidChangeSchema.fire(uri);
-      }
-    };
-    jsonContributionRegistry = new JSONContributionRegistry();
-    Registry.add(Extensions3.JSONContribution, jsonContributionRegistry);
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/platform/product/common/product.js
-var product, vscodeGlobal2, product$1;
-var init_product = __esm({
-  "../node_modules/monaco-editor/esm/vs/platform/product/common/product.js"() {
-    init_process();
-    vscodeGlobal2 = globalThis.vscode;
-    if (typeof vscodeGlobal2 !== "undefined" && typeof vscodeGlobal2.context !== "undefined") {
-      const configuration = vscodeGlobal2.context.configuration();
-      if (configuration) {
-        product = configuration.product;
-      } else {
-        throw new Error("Sandbox: unable to resolve product configuration from preload script.");
-      }
-    } else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
-      product = globalThis._VSCODE_PRODUCT_JSON;
-      if (env["VSCODE_DEV"]) {
-        Object.assign(product, {
-          nameShort: `${product.nameShort} Dev`,
-          nameLong: `${product.nameLong} Dev`,
-          dataFolderName: `${product.dataFolderName}-dev`,
-          serverDataFolderName: product.serverDataFolderName ? `${product.serverDataFolderName}-dev` : void 0
-        });
-      }
-      if (!product.version) {
-        const pkg = globalThis._VSCODE_PACKAGE_JSON;
-        Object.assign(product, {
-          version: pkg.version
-        });
-      }
-    } else {
-      product = {
-        /*BUILD->INSERT_PRODUCT_CONFIGURATION*/
-      };
-      if (Object.keys(product).length === 0) {
-        Object.assign(product, {
-          version: "1.104.0-dev",
-          nameShort: "Code - OSS Dev",
-          nameLong: "Code - OSS Dev",
-          applicationName: "code-oss",
-          dataFolderName: ".vscode-oss",
-          urlProtocol: "code-oss",
-          reportIssueUrl: "https://github.com/microsoft/vscode/issues/new",
-          licenseName: "MIT",
-          licenseUrl: "https://github.com/microsoft/vscode/blob/main/LICENSE.txt",
-          serverLicenseUrl: "https://github.com/microsoft/vscode/blob/main/LICENSE.txt"
-        });
-      }
-    }
-    product$1 = product;
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/platform/configuration/common/configurationRegistry.js
-function overrideIdentifiersFromKey(key) {
-  const identifiers = [];
-  if (OVERRIDE_PROPERTY_REGEX.test(key)) {
-    let matches = OVERRIDE_IDENTIFIER_REGEX.exec(key);
-    while (matches?.length) {
-      const identifier3 = matches[1].trim();
-      if (identifier3) {
-        identifiers.push(identifier3);
-      }
-      matches = OVERRIDE_IDENTIFIER_REGEX.exec(key);
-    }
-  }
-  return distinct(identifiers);
-}
-function getDefaultValue(type) {
-  const t = Array.isArray(type) ? type[0] : type;
-  switch (t) {
-    case "boolean":
-      return false;
-    case "integer":
-    case "number":
-      return 0;
-    case "string":
-      return "";
-    case "array":
-      return [];
-    case "object":
-      return {};
-    default:
-      return null;
-  }
-}
-function validateProperty(property, schema, extensionId) {
-  if (!property.trim()) {
-    return localize(1670, "Cannot register an empty property");
-  }
-  if (OVERRIDE_PROPERTY_REGEX.test(property)) {
-    return localize(1671, "Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.", property);
-  }
-  if (configurationRegistry.getConfigurationProperties()[property] !== void 0 && (!extensionId || !EXTENSION_UNIFICATION_EXTENSION_IDS.has(extensionId.toLowerCase()))) {
-    return localize(1672, "Cannot register '{0}'. This property is already registered.", property);
-  }
-  if (schema.policy?.name && configurationRegistry.getPolicyConfigurations().get(schema.policy?.name) !== void 0) {
-    return localize(1673, "Cannot register '{0}'. The associated policy {1} is already registered with {2}.", property, schema.policy?.name, configurationRegistry.getPolicyConfigurations().get(schema.policy?.name));
-  }
-  return null;
-}
-var Extensions4, resourceLanguageSettingsSchemaId, contributionRegistry, ConfigurationRegistry, OVERRIDE_IDENTIFIER_PATTERN, OVERRIDE_IDENTIFIER_REGEX, OVERRIDE_PROPERTY_PATTERN, OVERRIDE_PROPERTY_REGEX, configurationRegistry, EXTENSION_UNIFICATION_EXTENSION_IDS;
-var init_configurationRegistry = __esm({
-  "../node_modules/monaco-editor/esm/vs/platform/configuration/common/configurationRegistry.js"() {
-    init_arrays();
-    init_event();
-    init_types();
-    init_nls();
-    init_configuration();
-    init_jsonContributionRegistry();
-    init_platform2();
-    init_lifecycle();
-    init_product();
-    Extensions4 = {
-      Configuration: "base.contributions.configuration"
-    };
-    resourceLanguageSettingsSchemaId = "vscode://schemas/settings/resourceLanguage";
-    contributionRegistry = Registry.as(Extensions3.JSONContribution);
-    ConfigurationRegistry = class extends Disposable {
-      constructor() {
-        super();
-        this.registeredConfigurationDefaults = [];
-        this.overrideIdentifiers = /* @__PURE__ */ new Set();
-        this._onDidSchemaChange = this._register(new Emitter());
-        this._onDidUpdateConfiguration = this._register(new Emitter());
-        this.configurationDefaultsOverrides = /* @__PURE__ */ new Map();
-        this.defaultLanguageConfigurationOverridesNode = {
-          id: "defaultOverrides",
-          title: localize(1664, "Default Language Configuration Overrides"),
-          properties: {}
-        };
-        this.configurationContributors = [this.defaultLanguageConfigurationOverridesNode];
-        this.resourceLanguageSettingsSchema = {
-          properties: {},
-          patternProperties: {},
-          additionalProperties: true,
-          allowTrailingCommas: true,
-          allowComments: true
-        };
-        this.configurationProperties = {};
-        this.policyConfigurations = /* @__PURE__ */ new Map();
-        this.excludedConfigurationProperties = {};
-        contributionRegistry.registerSchema(resourceLanguageSettingsSchemaId, this.resourceLanguageSettingsSchema);
-        this.registerOverridePropertyPatternKey();
-      }
-      registerConfiguration(configuration, validate = true) {
-        this.registerConfigurations([configuration], validate);
-        return configuration;
-      }
-      registerConfigurations(configurations, validate = true) {
-        const properties = /* @__PURE__ */ new Set();
-        this.doRegisterConfigurations(configurations, validate, properties);
-        contributionRegistry.registerSchema(resourceLanguageSettingsSchemaId, this.resourceLanguageSettingsSchema);
-        this._onDidSchemaChange.fire();
-        this._onDidUpdateConfiguration.fire({ properties });
-      }
-      registerDefaultConfigurations(configurationDefaults) {
-        const properties = /* @__PURE__ */ new Set();
-        this.doRegisterDefaultConfigurations(configurationDefaults, properties);
-        this._onDidSchemaChange.fire();
-        this._onDidUpdateConfiguration.fire({ properties, defaultsOverrides: true });
-      }
-      doRegisterDefaultConfigurations(configurationDefaults, bucket) {
-        this.registeredConfigurationDefaults.push(...configurationDefaults);
-        const overrideIdentifiers = [];
-        for (const { overrides, source } of configurationDefaults) {
-          for (const key in overrides) {
-            bucket.add(key);
-            const configurationDefaultOverridesForKey = this.configurationDefaultsOverrides.get(key) ?? this.configurationDefaultsOverrides.set(key, { configurationDefaultOverrides: [] }).get(key);
-            const value = overrides[key];
-            configurationDefaultOverridesForKey.configurationDefaultOverrides.push({ value, source });
-            if (OVERRIDE_PROPERTY_REGEX.test(key)) {
-              const newDefaultOverride = this.mergeDefaultConfigurationsForOverrideIdentifier(key, value, source, configurationDefaultOverridesForKey.configurationDefaultOverrideValue);
-              if (!newDefaultOverride) {
-                continue;
-              }
-              configurationDefaultOverridesForKey.configurationDefaultOverrideValue = newDefaultOverride;
-              this.updateDefaultOverrideProperty(key, newDefaultOverride, source);
-              overrideIdentifiers.push(...overrideIdentifiersFromKey(key));
-            } else {
-              const newDefaultOverride = this.mergeDefaultConfigurationsForConfigurationProperty(key, value, source, configurationDefaultOverridesForKey.configurationDefaultOverrideValue);
-              if (!newDefaultOverride) {
-                continue;
-              }
-              configurationDefaultOverridesForKey.configurationDefaultOverrideValue = newDefaultOverride;
-              const property = this.configurationProperties[key];
-              if (property) {
-                this.updatePropertyDefaultValue(key, property);
-                this.updateSchema(key, property);
-              }
-            }
-          }
-        }
-        this.doRegisterOverrideIdentifiers(overrideIdentifiers);
-      }
-      updateDefaultOverrideProperty(key, newDefaultOverride, source) {
-        const property = {
-          section: {
-            id: this.defaultLanguageConfigurationOverridesNode.id,
-            title: this.defaultLanguageConfigurationOverridesNode.title,
-            order: this.defaultLanguageConfigurationOverridesNode.order,
-            extensionInfo: this.defaultLanguageConfigurationOverridesNode.extensionInfo
-          },
-          type: "object",
-          default: newDefaultOverride.value,
-          description: localize(1665, "Configure settings to be overridden for {0}.", getLanguageTagSettingPlainKey(key)),
-          $ref: resourceLanguageSettingsSchemaId,
-          defaultDefaultValue: newDefaultOverride.value,
-          source,
-          defaultValueSource: source
-        };
-        this.configurationProperties[key] = property;
-        this.defaultLanguageConfigurationOverridesNode.properties[key] = property;
-      }
-      mergeDefaultConfigurationsForOverrideIdentifier(overrideIdentifier, configurationValueObject, valueSource, existingDefaultOverride) {
-        const defaultValue = existingDefaultOverride?.value || {};
-        const source = existingDefaultOverride?.source ?? /* @__PURE__ */ new Map();
-        if (!(source instanceof Map)) {
-          console.error("objectConfigurationSources is not a Map");
-          return void 0;
-        }
-        for (const propertyKey of Object.keys(configurationValueObject)) {
-          const propertyDefaultValue = configurationValueObject[propertyKey];
-          const isObjectSetting = isObject(propertyDefaultValue) && (isUndefined(defaultValue[propertyKey]) || isObject(defaultValue[propertyKey]));
-          if (isObjectSetting) {
-            defaultValue[propertyKey] = { ...defaultValue[propertyKey] ?? {}, ...propertyDefaultValue };
-            if (valueSource) {
-              for (const objectKey in propertyDefaultValue) {
-                source.set(`${propertyKey}.${objectKey}`, valueSource);
-              }
-            }
-          } else {
-            defaultValue[propertyKey] = propertyDefaultValue;
-            if (valueSource) {
-              source.set(propertyKey, valueSource);
-            } else {
-              source.delete(propertyKey);
-            }
-          }
-        }
-        return { value: defaultValue, source };
-      }
-      mergeDefaultConfigurationsForConfigurationProperty(propertyKey, value, valuesSource, existingDefaultOverride) {
-        const property = this.configurationProperties[propertyKey];
-        const existingDefaultValue = existingDefaultOverride?.value ?? property?.defaultDefaultValue;
-        let source = valuesSource;
-        const isObjectSetting = isObject(value) && (property !== void 0 && property.type === "object" || property === void 0 && (isUndefined(existingDefaultValue) || isObject(existingDefaultValue)));
-        if (isObjectSetting) {
-          source = existingDefaultOverride?.source ?? /* @__PURE__ */ new Map();
-          if (!(source instanceof Map)) {
-            console.error("defaultValueSource is not a Map");
-            return void 0;
-          }
-          for (const objectKey in value) {
-            if (valuesSource) {
-              source.set(`${propertyKey}.${objectKey}`, valuesSource);
-            }
-          }
-          value = { ...isObject(existingDefaultValue) ? existingDefaultValue : {}, ...value };
-        }
-        return { value, source };
-      }
-      registerOverrideIdentifiers(overrideIdentifiers) {
-        this.doRegisterOverrideIdentifiers(overrideIdentifiers);
-        this._onDidSchemaChange.fire();
-      }
-      doRegisterOverrideIdentifiers(overrideIdentifiers) {
-        for (const overrideIdentifier of overrideIdentifiers) {
-          this.overrideIdentifiers.add(overrideIdentifier);
-        }
-        this.updateOverridePropertyPatternKey();
-      }
-      doRegisterConfigurations(configurations, validate, bucket) {
-        configurations.forEach((configuration) => {
-          this.validateAndRegisterProperties(configuration, validate, configuration.extensionInfo, configuration.restrictedProperties, void 0, bucket);
-          this.configurationContributors.push(configuration);
-          this.registerJSONConfiguration(configuration);
-        });
-      }
-      validateAndRegisterProperties(configuration, validate = true, extensionInfo, restrictedProperties, scope = 4, bucket) {
-        scope = isUndefinedOrNull(configuration.scope) ? scope : configuration.scope;
-        const properties = configuration.properties;
-        if (properties) {
-          for (const key in properties) {
-            const property = properties[key];
-            property.section = {
-              id: configuration.id,
-              title: configuration.title,
-              order: configuration.order,
-              extensionInfo: configuration.extensionInfo
-            };
-            if (validate && validateProperty(key, property, extensionInfo?.id)) {
-              delete properties[key];
-              continue;
-            }
-            property.source = extensionInfo;
-            property.defaultDefaultValue = properties[key].default;
-            this.updatePropertyDefaultValue(key, property);
-            if (OVERRIDE_PROPERTY_REGEX.test(key)) {
-              property.scope = void 0;
-            } else {
-              property.scope = isUndefinedOrNull(property.scope) ? scope : property.scope;
-              property.restricted = isUndefinedOrNull(property.restricted) ? !!restrictedProperties?.includes(key) : property.restricted;
-            }
-            if (property.experiment) {
-              if (!property.tags?.some((tag2) => tag2.toLowerCase() === "onexp")) {
-                property.tags = property.tags ?? [];
-                property.tags.push("onExP");
-              }
-            } else if (property.tags?.some((tag2) => tag2.toLowerCase() === "onexp")) {
-              console.error(`Invalid tag 'onExP' found for property '${key}'. Please use 'experiment' property instead.`);
-              property.experiment = { mode: "startup" };
-            }
-            const excluded = properties[key].hasOwnProperty("included") && !properties[key].included;
-            const policyName = properties[key].policy?.name;
-            if (excluded) {
-              this.excludedConfigurationProperties[key] = properties[key];
-              if (policyName) {
-                this.policyConfigurations.set(policyName, key);
-                bucket.add(key);
-              }
-              delete properties[key];
-            } else {
-              bucket.add(key);
-              if (policyName) {
-                this.policyConfigurations.set(policyName, key);
-              }
-              this.configurationProperties[key] = properties[key];
-              if (!properties[key].deprecationMessage && properties[key].markdownDeprecationMessage) {
-                properties[key].deprecationMessage = properties[key].markdownDeprecationMessage;
-              }
-            }
-          }
-        }
-        const subNodes = configuration.allOf;
-        if (subNodes) {
-          for (const node of subNodes) {
-            this.validateAndRegisterProperties(node, validate, extensionInfo, restrictedProperties, scope, bucket);
-          }
-        }
-      }
-      getConfigurationProperties() {
-        return this.configurationProperties;
-      }
-      getPolicyConfigurations() {
-        return this.policyConfigurations;
-      }
-      getExcludedConfigurationProperties() {
-        return this.excludedConfigurationProperties;
-      }
-      registerJSONConfiguration(configuration) {
-        const register4 = (configuration2) => {
-          const properties = configuration2.properties;
-          if (properties) {
-            for (const key in properties) {
-              this.updateSchema(key, properties[key]);
-            }
-          }
-          const subNodes = configuration2.allOf;
-          subNodes?.forEach(register4);
-        };
-        register4(configuration);
-      }
-      updateSchema(key, property) {
-        switch (property.scope) {
-          case 1:
-            break;
-          case 2:
-            break;
-          case 3:
-            break;
-          case 7:
-            break;
-          case 4:
-            break;
-          case 5:
-            break;
-          case 6:
-            this.resourceLanguageSettingsSchema.properties[key] = property;
-            break;
-        }
-      }
-      updateOverridePropertyPatternKey() {
-        for (const overrideIdentifier of this.overrideIdentifiers.values()) {
-          const overrideIdentifierProperty = `[${overrideIdentifier}]`;
-          const resourceLanguagePropertiesSchema = {
-            type: "object",
-            description: localize(1666, "Configure editor settings to be overridden for a language."),
-            errorMessage: localize(1667, "This setting does not support per-language configuration."),
-            $ref: resourceLanguageSettingsSchemaId
-          };
-          this.updatePropertyDefaultValue(overrideIdentifierProperty, resourceLanguagePropertiesSchema);
-        }
-      }
-      registerOverridePropertyPatternKey() {
-        ({
-          description: localize(1668, "Configure editor settings to be overridden for a language."),
-          errorMessage: localize(1669, "This setting does not support per-language configuration.")
-        });
-        this._onDidSchemaChange.fire();
-      }
-      updatePropertyDefaultValue(key, property) {
-        const configurationdefaultOverride = this.configurationDefaultsOverrides.get(key)?.configurationDefaultOverrideValue;
-        let defaultValue = void 0;
-        let defaultSource = void 0;
-        if (configurationdefaultOverride && (!property.disallowConfigurationDefault || !configurationdefaultOverride.source)) {
-          defaultValue = configurationdefaultOverride.value;
-          defaultSource = configurationdefaultOverride.source;
-        }
-        if (isUndefined(defaultValue)) {
-          defaultValue = property.defaultDefaultValue;
-          defaultSource = void 0;
-        }
-        if (isUndefined(defaultValue)) {
-          defaultValue = getDefaultValue(property.type);
-        }
-        property.default = defaultValue;
-        property.defaultValueSource = defaultSource;
-      }
-    };
-    OVERRIDE_IDENTIFIER_PATTERN = `\\[([^\\]]+)\\]`;
-    OVERRIDE_IDENTIFIER_REGEX = new RegExp(OVERRIDE_IDENTIFIER_PATTERN, "g");
-    OVERRIDE_PROPERTY_PATTERN = `^(${OVERRIDE_IDENTIFIER_PATTERN})+$`;
-    OVERRIDE_PROPERTY_REGEX = new RegExp(OVERRIDE_PROPERTY_PATTERN);
-    configurationRegistry = new ConfigurationRegistry();
-    Registry.add(Extensions4.Configuration, configurationRegistry);
-    EXTENSION_UNIFICATION_EXTENSION_IDS = new Set(product$1.defaultChatAgent ? [product$1.defaultChatAgent.extensionId, product$1.defaultChatAgent.chatExtensionId].map((id) => id.toLowerCase()) : []);
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/languages/modesRegistry.js
-var Extensions5, EditorModesRegistry, ModesRegistry, PLAINTEXT_LANGUAGE_ID, PLAINTEXT_EXTENSION;
-var init_modesRegistry = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/languages/modesRegistry.js"() {
-    init_nls();
-    init_event();
-    init_platform2();
-    init_lifecycle();
-    init_mime();
-    init_configurationRegistry();
-    Extensions5 = {
-      ModesRegistry: "editor.modesRegistry"
-    };
-    EditorModesRegistry = class extends Disposable {
-      constructor() {
-        super();
-        this._onDidChangeLanguages = this._register(new Emitter());
-        this.onDidChangeLanguages = this._onDidChangeLanguages.event;
-        this._languages = [];
-      }
-      registerLanguage(def2) {
-        this._languages.push(def2);
-        this._onDidChangeLanguages.fire(void 0);
-        return {
-          dispose: () => {
-            for (let i2 = 0, len = this._languages.length; i2 < len; i2++) {
-              if (this._languages[i2] === def2) {
-                this._languages.splice(i2, 1);
-                return;
-              }
-            }
-          }
-        };
-      }
-      getLanguages() {
-        return this._languages;
-      }
-    };
-    ModesRegistry = new EditorModesRegistry();
-    Registry.add(Extensions5.ModesRegistry, ModesRegistry);
-    PLAINTEXT_LANGUAGE_ID = "plaintext";
-    PLAINTEXT_EXTENSION = ".txt";
-    ModesRegistry.registerLanguage({
-      id: PLAINTEXT_LANGUAGE_ID,
-      extensions: [PLAINTEXT_EXTENSION],
-      aliases: [localize(784, "Plain Text"), "text"],
-      mimetypes: [Mimes.text]
-    });
-    Registry.as(Extensions4.Configuration).registerDefaultConfigurations([{
-      overrides: {
-        "[plaintext]": {
-          "editor.unicodeHighlight.ambiguousCharacters": false,
-          "editor.unicodeHighlight.invisibleCharacters": false
-        },
-        // TODO: Below is a workaround for: https://github.com/microsoft/vscode/issues/240567
-        "[go]": {
-          "editor.insertSpaces": false
-        },
-        "[makefile]": {
-          "editor.insertSpaces": false
-        },
-        "[shellscript]": {
-          "files.eol": "\n"
-        },
-        "[yaml]": {
-          "editor.insertSpaces": true,
-          "editor.tabSize": 2
-        }
-      }
-    }]);
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/languages/supports/languageBracketsConfiguration.js
-function filterValidBrackets(bracketPairs) {
-  return bracketPairs.filter(([open, close]) => open !== "" && close !== "");
-}
-var LanguageBracketsConfiguration, BracketKindBase, OpeningBracketKind, ClosingBracketKind;
-var init_languageBracketsConfiguration = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/languages/supports/languageBracketsConfiguration.js"() {
-    init_cache();
-    init_richEditBrackets();
-    LanguageBracketsConfiguration = class {
-      constructor(languageId, config) {
-        this.languageId = languageId;
-        const bracketPairs = config.brackets ? filterValidBrackets(config.brackets) : [];
-        const openingBracketInfos = new CachedFunction((bracket) => {
-          const closing = /* @__PURE__ */ new Set();
-          return {
-            info: new OpeningBracketKind(this, bracket, closing),
-            closing
-          };
-        });
-        const closingBracketInfos = new CachedFunction((bracket) => {
-          const opening = /* @__PURE__ */ new Set();
-          const openingColorized = /* @__PURE__ */ new Set();
-          return {
-            info: new ClosingBracketKind(this, bracket, opening, openingColorized),
-            opening,
-            openingColorized
-          };
-        });
-        for (const [open, close] of bracketPairs) {
-          const opening = openingBracketInfos.get(open);
-          const closing = closingBracketInfos.get(close);
-          opening.closing.add(closing.info);
-          closing.opening.add(opening.info);
-        }
-        const colorizedBracketPairs = config.colorizedBracketPairs ? filterValidBrackets(config.colorizedBracketPairs) : bracketPairs.filter((p) => !(p[0] === "<" && p[1] === ">"));
-        for (const [open, close] of colorizedBracketPairs) {
-          const opening = openingBracketInfos.get(open);
-          const closing = closingBracketInfos.get(close);
-          opening.closing.add(closing.info);
-          closing.openingColorized.add(opening.info);
-          closing.opening.add(opening.info);
-        }
-        this._openingBrackets = new Map([...openingBracketInfos.cachedValues].map(([k, v]) => [k, v.info]));
-        this._closingBrackets = new Map([...closingBracketInfos.cachedValues].map(([k, v]) => [k, v.info]));
-      }
-      /**
-       * No two brackets have the same bracket text.
-      */
-      get openingBrackets() {
-        return [...this._openingBrackets.values()];
-      }
-      /**
-       * No two brackets have the same bracket text.
-      */
-      get closingBrackets() {
-        return [...this._closingBrackets.values()];
-      }
-      getOpeningBracketInfo(bracketText) {
-        return this._openingBrackets.get(bracketText);
-      }
-      getClosingBracketInfo(bracketText) {
-        return this._closingBrackets.get(bracketText);
-      }
-      getBracketInfo(bracketText) {
-        return this.getOpeningBracketInfo(bracketText) || this.getClosingBracketInfo(bracketText);
-      }
-      getBracketRegExp(options) {
-        const brackets = Array.from([...this._openingBrackets.keys(), ...this._closingBrackets.keys()]);
-        return createBracketOrRegExp(brackets, options);
-      }
-    };
-    BracketKindBase = class {
-      constructor(config, bracketText) {
-        this.config = config;
-        this.bracketText = bracketText;
-      }
-      get languageId() {
-        return this.config.languageId;
-      }
-    };
-    OpeningBracketKind = class extends BracketKindBase {
-      constructor(config, bracketText, openedBrackets) {
-        super(config, bracketText);
-        this.openedBrackets = openedBrackets;
-        this.isOpeningBracket = true;
-      }
-    };
-    ClosingBracketKind = class extends BracketKindBase {
-      constructor(config, bracketText, openingBrackets, openingColorizedBrackets) {
-        super(config, bracketText);
-        this.openingBrackets = openingBrackets;
-        this.openingColorizedBrackets = openingColorizedBrackets;
-        this.isOpeningBracket = false;
-      }
-      /**
-       * Checks if this bracket closes the given other bracket.
-       * If the bracket infos come from different configurations, this method will return false.
-      */
-      closes(other) {
-        if (other["config"] !== this.config) {
-          return false;
-        }
-        return this.openingBrackets.has(other);
-      }
-      closesColorized(other) {
-        if (other["config"] !== this.config) {
-          return false;
-        }
-        return this.openingColorizedBrackets.has(other);
-      }
-      getOpeningBrackets() {
-        return [...this.openingBrackets];
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/languages/languageConfigurationRegistry.js
-function computeConfig(languageId, registry, configurationService, languageService) {
-  let languageConfig = registry.getLanguageConfiguration(languageId);
-  if (!languageConfig) {
-    if (!languageService.isRegisteredLanguageId(languageId)) {
-      return new ResolvedLanguageConfiguration(languageId, {});
-    }
-    languageConfig = new ResolvedLanguageConfiguration(languageId, {});
-  }
-  const customizedConfig = getCustomizedLanguageConfig(languageConfig.languageId, configurationService);
-  const data = combineLanguageConfigurations([languageConfig.underlyingConfig, customizedConfig]);
-  const config = new ResolvedLanguageConfiguration(languageConfig.languageId, data);
-  return config;
-}
-function getCustomizedLanguageConfig(languageId, configurationService) {
-  const brackets = configurationService.getValue(customizedLanguageConfigKeys.brackets, {
-    overrideIdentifier: languageId
-  });
-  const colorizedBracketPairs = configurationService.getValue(customizedLanguageConfigKeys.colorizedBracketPairs, {
-    overrideIdentifier: languageId
-  });
-  return {
-    brackets: validateBracketPairs(brackets),
-    colorizedBracketPairs: validateBracketPairs(colorizedBracketPairs)
-  };
-}
-function validateBracketPairs(data) {
-  if (!Array.isArray(data)) {
-    return void 0;
-  }
-  return data.map((pair) => {
-    if (!Array.isArray(pair) || pair.length !== 2) {
-      return void 0;
-    }
-    return [pair[0], pair[1]];
-  }).filter((p) => !!p);
-}
-function getIndentationAtPosition(model, lineNumber, column) {
-  const lineText = model.getLineContent(lineNumber);
-  let indentation = getLeadingWhitespace(lineText);
-  if (indentation.length > column - 1) {
-    indentation = indentation.substring(0, column - 1);
-  }
-  return indentation;
-}
-function combineLanguageConfigurations(configs) {
-  let result = {
-    comments: void 0,
-    brackets: void 0,
-    wordPattern: void 0,
-    indentationRules: void 0,
-    onEnterRules: void 0,
-    autoClosingPairs: void 0,
-    surroundingPairs: void 0,
-    autoCloseBefore: void 0,
-    folding: void 0,
-    colorizedBracketPairs: void 0,
-    __electricCharacterSupport: void 0
-  };
-  for (const entry of configs) {
-    result = {
-      comments: entry.comments || result.comments,
-      brackets: entry.brackets || result.brackets,
-      wordPattern: entry.wordPattern || result.wordPattern,
-      indentationRules: entry.indentationRules || result.indentationRules,
-      onEnterRules: entry.onEnterRules || result.onEnterRules,
-      autoClosingPairs: entry.autoClosingPairs || result.autoClosingPairs,
-      surroundingPairs: entry.surroundingPairs || result.surroundingPairs,
-      autoCloseBefore: entry.autoCloseBefore || result.autoCloseBefore,
-      folding: entry.folding || result.folding,
-      colorizedBracketPairs: entry.colorizedBracketPairs || result.colorizedBracketPairs,
-      __electricCharacterSupport: entry.__electricCharacterSupport || result.__electricCharacterSupport
-    };
-  }
-  return result;
-}
-var __decorate2, __param2, LanguageConfigurationServiceChangeEvent, ILanguageConfigurationService, LanguageConfigurationService, customizedLanguageConfigKeys, ComposedLanguageConfiguration, LanguageConfigurationContribution, LanguageConfigurationChangeEvent, LanguageConfigurationRegistry, ResolvedLanguageConfiguration;
-var init_languageConfigurationRegistry = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/languages/languageConfigurationRegistry.js"() {
-    init_event();
-    init_lifecycle();
-    init_strings();
-    init_wordHelper();
-    init_languageConfiguration();
-    init_characterPair();
-    init_electricCharacter();
-    init_indentRules();
-    init_onEnter();
-    init_richEditBrackets();
-    init_instantiation();
-    init_configuration();
-    init_language();
-    init_extensions();
-    init_modesRegistry();
-    init_languageBracketsConfiguration();
-    __decorate2 = function(decorators, target, key, desc) {
-      var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-      if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-      else for (var i2 = decorators.length - 1; i2 >= 0; i2--) if (d = decorators[i2]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-      return c > 3 && r && Object.defineProperty(target, key, r), r;
-    };
-    __param2 = function(paramIndex, decorator) {
-      return function(target, key) {
-        decorator(target, key, paramIndex);
-      };
-    };
-    LanguageConfigurationServiceChangeEvent = class {
-      constructor(languageId) {
-        this.languageId = languageId;
-      }
-      affects(languageId) {
-        return !this.languageId ? true : this.languageId === languageId;
-      }
-    };
-    ILanguageConfigurationService = createDecorator("languageConfigurationService");
-    LanguageConfigurationService = class LanguageConfigurationService2 extends Disposable {
-      constructor(configurationService, languageService) {
-        super();
-        this.configurationService = configurationService;
-        this.languageService = languageService;
-        this._registry = this._register(new LanguageConfigurationRegistry());
-        this.onDidChangeEmitter = this._register(new Emitter());
-        this.onDidChange = this.onDidChangeEmitter.event;
-        this.configurations = /* @__PURE__ */ new Map();
-        const languageConfigKeys = new Set(Object.values(customizedLanguageConfigKeys));
-        this._register(this.configurationService.onDidChangeConfiguration((e) => {
-          const globalConfigChanged = e.change.keys.some((k) => languageConfigKeys.has(k));
-          const localConfigChanged = e.change.overrides.filter(([overrideLangName, keys]) => keys.some((k) => languageConfigKeys.has(k))).map(([overrideLangName]) => overrideLangName);
-          if (globalConfigChanged) {
-            this.configurations.clear();
-            this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(void 0));
-          } else {
-            for (const languageId of localConfigChanged) {
-              if (this.languageService.isRegisteredLanguageId(languageId)) {
-                this.configurations.delete(languageId);
-                this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(languageId));
-              }
-            }
-          }
-        }));
-        this._register(this._registry.onDidChange((e) => {
-          this.configurations.delete(e.languageId);
-          this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(e.languageId));
-        }));
-      }
-      register(languageId, configuration, priority) {
-        return this._registry.register(languageId, configuration, priority);
-      }
-      getLanguageConfiguration(languageId) {
-        let result = this.configurations.get(languageId);
-        if (!result) {
-          result = computeConfig(languageId, this._registry, this.configurationService, this.languageService);
-          this.configurations.set(languageId, result);
-        }
-        return result;
-      }
-    };
-    LanguageConfigurationService = __decorate2([
-      __param2(0, IConfigurationService),
-      __param2(1, ILanguageService)
-    ], LanguageConfigurationService);
-    customizedLanguageConfigKeys = {
-      brackets: "editor.language.brackets",
-      colorizedBracketPairs: "editor.language.colorizedBracketPairs"
-    };
-    ComposedLanguageConfiguration = class {
-      constructor(languageId) {
-        this.languageId = languageId;
-        this._resolved = null;
-        this._entries = [];
-        this._order = 0;
-        this._resolved = null;
-      }
-      register(configuration, priority) {
-        const entry = new LanguageConfigurationContribution(configuration, priority, ++this._order);
-        this._entries.push(entry);
-        this._resolved = null;
-        return markAsSingleton(toDisposable(() => {
-          for (let i2 = 0; i2 < this._entries.length; i2++) {
-            if (this._entries[i2] === entry) {
-              this._entries.splice(i2, 1);
-              this._resolved = null;
-              break;
-            }
-          }
-        }));
-      }
-      getResolvedConfiguration() {
-        if (!this._resolved) {
-          const config = this._resolve();
-          if (config) {
-            this._resolved = new ResolvedLanguageConfiguration(this.languageId, config);
-          }
-        }
-        return this._resolved;
-      }
-      _resolve() {
-        if (this._entries.length === 0) {
-          return null;
-        }
-        this._entries.sort(LanguageConfigurationContribution.cmp);
-        return combineLanguageConfigurations(this._entries.map((e) => e.configuration));
-      }
-    };
-    LanguageConfigurationContribution = class {
-      constructor(configuration, priority, order) {
-        this.configuration = configuration;
-        this.priority = priority;
-        this.order = order;
-      }
-      static cmp(a, b) {
-        if (a.priority === b.priority) {
-          return a.order - b.order;
-        }
-        return a.priority - b.priority;
-      }
-    };
-    LanguageConfigurationChangeEvent = class {
-      constructor(languageId) {
-        this.languageId = languageId;
-      }
-    };
-    LanguageConfigurationRegistry = class extends Disposable {
-      constructor() {
-        super();
-        this._entries = /* @__PURE__ */ new Map();
-        this._onDidChange = this._register(new Emitter());
-        this.onDidChange = this._onDidChange.event;
-        this._register(this.register(PLAINTEXT_LANGUAGE_ID, {
-          brackets: [
-            ["(", ")"],
-            ["[", "]"],
-            ["{", "}"]
-          ],
-          surroundingPairs: [
-            { open: "{", close: "}" },
-            { open: "[", close: "]" },
-            { open: "(", close: ")" },
-            { open: "<", close: ">" },
-            { open: '"', close: '"' },
-            { open: "'", close: "'" },
-            { open: "`", close: "`" }
-          ],
-          colorizedBracketPairs: [],
-          folding: {
-            offSide: true
-          }
-        }, 0));
-      }
-      /**
-       * @param priority Use a higher number for higher priority
-       */
-      register(languageId, configuration, priority = 0) {
-        let entries2 = this._entries.get(languageId);
-        if (!entries2) {
-          entries2 = new ComposedLanguageConfiguration(languageId);
-          this._entries.set(languageId, entries2);
-        }
-        const disposable = entries2.register(configuration, priority);
-        this._onDidChange.fire(new LanguageConfigurationChangeEvent(languageId));
-        return markAsSingleton(toDisposable(() => {
-          disposable.dispose();
-          this._onDidChange.fire(new LanguageConfigurationChangeEvent(languageId));
-        }));
-      }
-      getLanguageConfiguration(languageId) {
-        const entries2 = this._entries.get(languageId);
-        return entries2?.getResolvedConfiguration() || null;
-      }
-    };
-    ResolvedLanguageConfiguration = class _ResolvedLanguageConfiguration {
-      constructor(languageId, underlyingConfig) {
-        this.languageId = languageId;
-        this.underlyingConfig = underlyingConfig;
-        this._brackets = null;
-        this._electricCharacter = null;
-        this._onEnterSupport = this.underlyingConfig.brackets || this.underlyingConfig.indentationRules || this.underlyingConfig.onEnterRules ? new OnEnterSupport(this.underlyingConfig) : null;
-        this.comments = _ResolvedLanguageConfiguration._handleComments(this.underlyingConfig);
-        this.characterPair = new CharacterPairSupport(this.underlyingConfig);
-        this.wordDefinition = this.underlyingConfig.wordPattern || DEFAULT_WORD_REGEXP;
-        this.indentationRules = this.underlyingConfig.indentationRules;
-        if (this.underlyingConfig.indentationRules) {
-          this.indentRulesSupport = new IndentRulesSupport(this.underlyingConfig.indentationRules);
-        } else {
-          this.indentRulesSupport = null;
-        }
-        this.foldingRules = this.underlyingConfig.folding || {};
-        this.bracketsNew = new LanguageBracketsConfiguration(languageId, this.underlyingConfig);
-      }
-      getWordDefinition() {
-        return ensureValidWordDefinition(this.wordDefinition);
-      }
-      get brackets() {
-        if (!this._brackets && this.underlyingConfig.brackets) {
-          this._brackets = new RichEditBrackets(this.languageId, this.underlyingConfig.brackets);
-        }
-        return this._brackets;
-      }
-      get electricCharacter() {
-        if (!this._electricCharacter) {
-          this._electricCharacter = new BracketElectricCharacterSupport(this.brackets);
-        }
-        return this._electricCharacter;
-      }
-      onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText) {
-        if (!this._onEnterSupport) {
-          return null;
-        }
-        return this._onEnterSupport.onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText);
-      }
-      getAutoClosingPairs() {
-        return new AutoClosingPairs(this.characterPair.getAutoClosingPairs());
-      }
-      getAutoCloseBeforeSet(forQuotes) {
-        return this.characterPair.getAutoCloseBeforeSet(forQuotes);
-      }
-      getSurroundingPairs() {
-        return this.characterPair.getSurroundingPairs();
-      }
-      static _handleComments(conf81) {
-        const commentRule = conf81.comments;
-        if (!commentRule) {
-          return null;
-        }
-        const comments = {};
-        if (commentRule.lineComment) {
-          if (typeof commentRule.lineComment === "string") {
-            comments.lineCommentToken = commentRule.lineComment;
-          } else {
-            comments.lineCommentToken = commentRule.lineComment.comment;
-            comments.lineCommentNoIndent = commentRule.lineComment.noIndent;
-          }
-        }
-        if (commentRule.blockComment) {
-          const [blockStart, blockEnd] = commentRule.blockComment;
-          comments.blockCommentStartToken = blockStart;
-          comments.blockCommentEndToken = blockEnd;
-        }
-        return comments;
-      }
-    };
-    registerSingleton(
-      ILanguageConfigurationService,
-      LanguageConfigurationService,
-      1
-      /* InstantiationType.Delayed */
-    );
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/encodedTokenAttributes.js
-var TokenMetadata;
-var init_encodedTokenAttributes = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/encodedTokenAttributes.js"() {
-    TokenMetadata = class {
-      static getLanguageId(metadata) {
-        return (metadata & 255) >>> 0;
-      }
-      static getTokenType(metadata) {
-        return (metadata & 768) >>> 8;
-      }
-      static containsBalancedBrackets(metadata) {
-        return (metadata & 1024) !== 0;
-      }
-      static getFontStyle(metadata) {
-        return (metadata & 30720) >>> 11;
-      }
-      static getForeground(metadata) {
-        return (metadata & 16744448) >>> 15;
-      }
-      static getBackground(metadata) {
-        return (metadata & 4278190080) >>> 24;
-      }
-      static getClassNameFromMetadata(metadata) {
-        const foreground2 = this.getForeground(metadata);
-        let className2 = "mtk" + foreground2;
-        const fontStyle = this.getFontStyle(metadata);
-        if (fontStyle & 1) {
-          className2 += " mtki";
-        }
-        if (fontStyle & 2) {
-          className2 += " mtkb";
-        }
-        if (fontStyle & 4) {
-          className2 += " mtku";
-        }
-        if (fontStyle & 8) {
-          className2 += " mtks";
-        }
-        return className2;
-      }
-      static getInlineStyleFromMetadata(metadata, colorMap) {
-        const foreground2 = this.getForeground(metadata);
-        const fontStyle = this.getFontStyle(metadata);
-        let result = `color: ${colorMap[foreground2]};`;
-        if (fontStyle & 1) {
-          result += "font-style: italic;";
-        }
-        if (fontStyle & 2) {
-          result += "font-weight: bold;";
-        }
-        let textDecoration = "";
-        if (fontStyle & 4) {
-          textDecoration += " underline";
-        }
-        if (fontStyle & 8) {
-          textDecoration += " line-through";
-        }
-        if (textDecoration) {
-          result += `text-decoration:${textDecoration};`;
-        }
-        return result;
-      }
-      static getPresentationFromMetadata(metadata) {
-        const foreground2 = this.getForeground(metadata);
-        const fontStyle = this.getFontStyle(metadata);
-        return {
-          foreground: foreground2,
-          italic: Boolean(
-            fontStyle & 1
-            /* FontStyle.Italic */
-          ),
-          bold: Boolean(
-            fontStyle & 2
-            /* FontStyle.Bold */
-          ),
-          underline: Boolean(
-            fontStyle & 4
-            /* FontStyle.Underline */
-          ),
-          strikethrough: Boolean(
-            fontStyle & 8
-            /* FontStyle.Strikethrough */
-          )
-        };
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/core/ranges/offsetRange.js
-var OffsetRange, OffsetRangeSet;
-var init_offsetRange = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/core/ranges/offsetRange.js"() {
-    init_errors();
-    OffsetRange = class _OffsetRange {
-      static fromTo(start, endExclusive) {
-        return new _OffsetRange(start, endExclusive);
-      }
-      static addRange(range2, sortedRanges) {
-        let i2 = 0;
-        while (i2 < sortedRanges.length && sortedRanges[i2].endExclusive < range2.start) {
-          i2++;
-        }
-        let j = i2;
-        while (j < sortedRanges.length && sortedRanges[j].start <= range2.endExclusive) {
-          j++;
-        }
-        if (i2 === j) {
-          sortedRanges.splice(i2, 0, range2);
-        } else {
-          const start = Math.min(range2.start, sortedRanges[i2].start);
-          const end = Math.max(range2.endExclusive, sortedRanges[j - 1].endExclusive);
-          sortedRanges.splice(i2, j - i2, new _OffsetRange(start, end));
-        }
-      }
-      static tryCreate(start, endExclusive) {
-        if (start > endExclusive) {
-          return void 0;
-        }
-        return new _OffsetRange(start, endExclusive);
-      }
-      static ofLength(length) {
-        return new _OffsetRange(0, length);
-      }
-      static ofStartAndLength(start, length) {
-        return new _OffsetRange(start, start + length);
-      }
-      static emptyAt(offset) {
-        return new _OffsetRange(offset, offset);
-      }
-      constructor(start, endExclusive) {
-        this.start = start;
-        this.endExclusive = endExclusive;
-        if (start > endExclusive) {
-          throw new BugIndicatingError(`Invalid range: ${this.toString()}`);
-        }
-      }
-      get isEmpty() {
-        return this.start === this.endExclusive;
-      }
-      delta(offset) {
-        return new _OffsetRange(this.start + offset, this.endExclusive + offset);
-      }
-      deltaStart(offset) {
-        return new _OffsetRange(this.start + offset, this.endExclusive);
-      }
-      deltaEnd(offset) {
-        return new _OffsetRange(this.start, this.endExclusive + offset);
-      }
-      get length() {
-        return this.endExclusive - this.start;
-      }
-      toString() {
-        return `[${this.start}, ${this.endExclusive})`;
-      }
-      equals(other) {
-        return this.start === other.start && this.endExclusive === other.endExclusive;
-      }
-      contains(offset) {
-        return this.start <= offset && offset < this.endExclusive;
-      }
-      /**
-       * for all numbers n: range1.contains(n) or range2.contains(n) => range1.join(range2).contains(n)
-       * The joined range is the smallest range that contains both ranges.
-       */
-      join(other) {
-        return new _OffsetRange(Math.min(this.start, other.start), Math.max(this.endExclusive, other.endExclusive));
-      }
-      /**
-       * for all numbers n: range1.contains(n) and range2.contains(n) <=> range1.intersect(range2).contains(n)
-       *
-       * The resulting range is empty if the ranges do not intersect, but touch.
-       * If the ranges don't even touch, the result is undefined.
-       */
-      intersect(other) {
-        const start = Math.max(this.start, other.start);
-        const end = Math.min(this.endExclusive, other.endExclusive);
-        if (start <= end) {
-          return new _OffsetRange(start, end);
-        }
-        return void 0;
-      }
-      intersectionLength(range2) {
-        const start = Math.max(this.start, range2.start);
-        const end = Math.min(this.endExclusive, range2.endExclusive);
-        return Math.max(0, end - start);
-      }
-      intersects(other) {
-        const start = Math.max(this.start, other.start);
-        const end = Math.min(this.endExclusive, other.endExclusive);
-        return start < end;
-      }
-      intersectsOrTouches(other) {
-        const start = Math.max(this.start, other.start);
-        const end = Math.min(this.endExclusive, other.endExclusive);
-        return start <= end;
-      }
-      isBefore(other) {
-        return this.endExclusive <= other.start;
-      }
-      isAfter(other) {
-        return this.start >= other.endExclusive;
-      }
-      slice(arr) {
-        return arr.slice(this.start, this.endExclusive);
-      }
-      substring(str) {
-        return str.substring(this.start, this.endExclusive);
-      }
-      /**
-       * Returns the given value if it is contained in this instance, otherwise the closest value that is contained.
-       * The range must not be empty.
-       */
-      clip(value) {
-        if (this.isEmpty) {
-          throw new BugIndicatingError(`Invalid clipping range: ${this.toString()}`);
-        }
-        return Math.max(this.start, Math.min(this.endExclusive - 1, value));
-      }
-      /**
-       * Returns `r := value + k * length` such that `r` is contained in this range.
-       * The range must not be empty.
-       *
-       * E.g. `[5, 10).clipCyclic(10) === 5`, `[5, 10).clipCyclic(11) === 6` and `[5, 10).clipCyclic(4) === 9`.
-       */
-      clipCyclic(value) {
-        if (this.isEmpty) {
-          throw new BugIndicatingError(`Invalid clipping range: ${this.toString()}`);
-        }
-        if (value < this.start) {
-          return this.endExclusive - (this.start - value) % this.length;
-        }
-        if (value >= this.endExclusive) {
-          return this.start + (value - this.start) % this.length;
-        }
-        return value;
-      }
-      forEach(f) {
-        for (let i2 = this.start; i2 < this.endExclusive; i2++) {
-          f(i2);
-        }
-      }
-      /**
-       * this: [ 5, 10), range: [10, 15) => [5, 15)]
-       * Throws if the ranges are not touching.
-      */
-      joinRightTouching(range2) {
-        if (this.endExclusive !== range2.start) {
-          throw new BugIndicatingError(`Invalid join: ${this.toString()} and ${range2.toString()}`);
-        }
-        return new _OffsetRange(this.start, range2.endExclusive);
-      }
-    };
-    OffsetRangeSet = class _OffsetRangeSet {
-      constructor() {
-        this._sortedRanges = [];
-      }
-      addRange(range2) {
-        let i2 = 0;
-        while (i2 < this._sortedRanges.length && this._sortedRanges[i2].endExclusive < range2.start) {
-          i2++;
-        }
-        let j = i2;
-        while (j < this._sortedRanges.length && this._sortedRanges[j].start <= range2.endExclusive) {
-          j++;
-        }
-        if (i2 === j) {
-          this._sortedRanges.splice(i2, 0, range2);
-        } else {
-          const start = Math.min(range2.start, this._sortedRanges[i2].start);
-          const end = Math.max(range2.endExclusive, this._sortedRanges[j - 1].endExclusive);
-          this._sortedRanges.splice(i2, j - i2, new OffsetRange(start, end));
-        }
-      }
-      toString() {
-        return this._sortedRanges.map((r) => r.toString()).join(", ");
-      }
-      /**
-       * Returns of there is a value that is contained in this instance and the given range.
-       */
-      intersectsStrict(other) {
-        let i2 = 0;
-        while (i2 < this._sortedRanges.length && this._sortedRanges[i2].endExclusive <= other.start) {
-          i2++;
-        }
-        return i2 < this._sortedRanges.length && this._sortedRanges[i2].start < other.endExclusive;
-      }
-      intersectWithRange(other) {
-        const result = new _OffsetRangeSet();
-        for (const range2 of this._sortedRanges) {
-          const intersection2 = range2.intersect(other);
-          if (intersection2) {
-            result.addRange(intersection2);
-          }
-        }
-        return result;
-      }
-      intersectWithRangeLength(other) {
-        return this.intersectWithRange(other).length;
-      }
-      get length() {
-        return this._sortedRanges.reduce((prev, cur) => prev + cur.length, 0);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/tokens/lineTokens.js
-function getStandardTokenTypeAtPosition(model, position) {
-  const lineNumber = position.lineNumber;
-  if (!model.tokenization.isCheapToTokenize(lineNumber)) {
-    return void 0;
-  }
-  model.tokenization.forceTokenization(lineNumber);
-  const lineTokens = model.tokenization.getLineTokens(lineNumber);
-  const tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);
-  const tokenType = lineTokens.getStandardTokenType(tokenIndex);
-  return tokenType;
-}
-var LineTokens, SliceLineTokens, TokenArray, TokenInfo, TokenArrayBuilder;
-var init_lineTokens = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/tokens/lineTokens.js"() {
-    init_encodedTokenAttributes();
-    init_offsetRange();
-    init_errors();
-    LineTokens = class _LineTokens {
-      static createEmpty(lineContent, decoder) {
-        const defaultMetadata = _LineTokens.defaultTokenMetadata;
-        const tokens = new Uint32Array(2);
-        tokens[0] = lineContent.length;
-        tokens[1] = defaultMetadata;
-        return new _LineTokens(tokens, lineContent, decoder);
-      }
-      static createFromTextAndMetadata(data, decoder) {
-        let offset = 0;
-        let fullText = "";
-        const tokens = new Array();
-        for (const { text: text2, metadata } of data) {
-          tokens.push(offset + text2.length, metadata);
-          offset += text2.length;
-          fullText += text2;
-        }
-        return new _LineTokens(new Uint32Array(tokens), fullText, decoder);
-      }
-      static convertToEndOffset(tokens, lineTextLength) {
-        const tokenCount = tokens.length >>> 1;
-        const lastTokenIndex = tokenCount - 1;
-        for (let tokenIndex = 0; tokenIndex < lastTokenIndex; tokenIndex++) {
-          tokens[tokenIndex << 1] = tokens[tokenIndex + 1 << 1];
-        }
-        tokens[lastTokenIndex << 1] = lineTextLength;
-      }
-      static findIndexInTokensArray(tokens, desiredIndex) {
-        if (tokens.length <= 2) {
-          return 0;
-        }
-        let low = 0;
-        let high = (tokens.length >>> 1) - 1;
-        while (low < high) {
-          const mid = low + Math.floor((high - low) / 2);
-          const endOffset = tokens[mid << 1];
-          if (endOffset === desiredIndex) {
-            return mid + 1;
-          } else if (endOffset < desiredIndex) {
-            low = mid + 1;
-          } else if (endOffset > desiredIndex) {
-            high = mid;
-          }
-        }
-        return low;
-      }
-      static {
-        this.defaultTokenMetadata = (0 << 11 | 1 << 15 | 2 << 24) >>> 0;
-      }
-      constructor(tokens, text2, decoder) {
-        this._lineTokensBrand = void 0;
-        const tokensLength = tokens.length > 1 ? tokens[tokens.length - 2] : 0;
-        if (tokensLength !== text2.length) {
-          onUnexpectedError(new Error("Token length and text length do not match!"));
-        }
-        this._tokens = tokens;
-        this._tokensCount = this._tokens.length >>> 1;
-        this._text = text2;
-        this.languageIdCodec = decoder;
-      }
-      getTextLength() {
-        return this._text.length;
-      }
-      equals(other) {
-        if (other instanceof _LineTokens) {
-          return this.slicedEquals(other, 0, this._tokensCount);
-        }
-        return false;
-      }
-      slicedEquals(other, sliceFromTokenIndex, sliceTokenCount) {
-        if (this._text !== other._text) {
-          return false;
-        }
-        if (this._tokensCount !== other._tokensCount) {
-          return false;
-        }
-        const from = sliceFromTokenIndex << 1;
-        const to = from + (sliceTokenCount << 1);
-        for (let i2 = from; i2 < to; i2++) {
-          if (this._tokens[i2] !== other._tokens[i2]) {
-            return false;
-          }
-        }
-        return true;
-      }
-      getLineContent() {
-        return this._text;
-      }
-      getCount() {
-        return this._tokensCount;
-      }
-      getStartOffset(tokenIndex) {
-        if (tokenIndex > 0) {
-          return this._tokens[tokenIndex - 1 << 1];
-        }
-        return 0;
-      }
-      getMetadata(tokenIndex) {
-        const metadata = this._tokens[(tokenIndex << 1) + 1];
-        return metadata;
-      }
-      getLanguageId(tokenIndex) {
-        const metadata = this._tokens[(tokenIndex << 1) + 1];
-        const languageId = TokenMetadata.getLanguageId(metadata);
-        return this.languageIdCodec.decodeLanguageId(languageId);
-      }
-      getStandardTokenType(tokenIndex) {
-        const metadata = this._tokens[(tokenIndex << 1) + 1];
-        return TokenMetadata.getTokenType(metadata);
-      }
-      getForeground(tokenIndex) {
-        const metadata = this._tokens[(tokenIndex << 1) + 1];
-        return TokenMetadata.getForeground(metadata);
-      }
-      getClassName(tokenIndex) {
-        const metadata = this._tokens[(tokenIndex << 1) + 1];
-        return TokenMetadata.getClassNameFromMetadata(metadata);
-      }
-      getInlineStyle(tokenIndex, colorMap) {
-        const metadata = this._tokens[(tokenIndex << 1) + 1];
-        return TokenMetadata.getInlineStyleFromMetadata(metadata, colorMap);
-      }
-      getPresentation(tokenIndex) {
-        const metadata = this._tokens[(tokenIndex << 1) + 1];
-        return TokenMetadata.getPresentationFromMetadata(metadata);
-      }
-      getEndOffset(tokenIndex) {
-        return this._tokens[tokenIndex << 1];
-      }
-      /**
-       * Find the token containing offset `offset`.
-       * @param offset The search offset
-       * @return The index of the token containing the offset.
-       */
-      findTokenIndexAtOffset(offset) {
-        return _LineTokens.findIndexInTokensArray(this._tokens, offset);
-      }
-      inflate() {
-        return this;
-      }
-      sliceAndInflate(startOffset, endOffset, deltaOffset) {
-        return new SliceLineTokens(this, startOffset, endOffset, deltaOffset);
-      }
-      sliceZeroCopy(range2) {
-        return this.sliceAndInflate(range2.start, range2.endExclusive, 0);
-      }
-      /**
-       * @pure
-       * @param insertTokens Must be sorted by offset.
-      */
-      withInserted(insertTokens) {
-        if (insertTokens.length === 0) {
-          return this;
-        }
-        let nextOriginalTokenIdx = 0;
-        let nextInsertTokenIdx = 0;
-        let text2 = "";
-        const newTokens = new Array();
-        let originalEndOffset = 0;
-        while (true) {
-          const nextOriginalTokenEndOffset = nextOriginalTokenIdx < this._tokensCount ? this._tokens[nextOriginalTokenIdx << 1] : -1;
-          const nextInsertToken = nextInsertTokenIdx < insertTokens.length ? insertTokens[nextInsertTokenIdx] : null;
-          if (nextOriginalTokenEndOffset !== -1 && (nextInsertToken === null || nextOriginalTokenEndOffset <= nextInsertToken.offset)) {
-            text2 += this._text.substring(originalEndOffset, nextOriginalTokenEndOffset);
-            const metadata = this._tokens[(nextOriginalTokenIdx << 1) + 1];
-            newTokens.push(text2.length, metadata);
-            nextOriginalTokenIdx++;
-            originalEndOffset = nextOriginalTokenEndOffset;
-          } else if (nextInsertToken) {
-            if (nextInsertToken.offset > originalEndOffset) {
-              text2 += this._text.substring(originalEndOffset, nextInsertToken.offset);
-              const metadata = this._tokens[(nextOriginalTokenIdx << 1) + 1];
-              newTokens.push(text2.length, metadata);
-              originalEndOffset = nextInsertToken.offset;
-            }
-            text2 += nextInsertToken.text;
-            newTokens.push(text2.length, nextInsertToken.tokenMetadata);
-            nextInsertTokenIdx++;
-          } else {
-            break;
-          }
-        }
-        return new _LineTokens(new Uint32Array(newTokens), text2, this.languageIdCodec);
-      }
-      getTokensInRange(range2) {
-        const builder = new TokenArrayBuilder();
-        const startTokenIndex = this.findTokenIndexAtOffset(range2.start);
-        const endTokenIndex = this.findTokenIndexAtOffset(range2.endExclusive);
-        for (let tokenIndex = startTokenIndex; tokenIndex <= endTokenIndex; tokenIndex++) {
-          const tokenRange = new OffsetRange(this.getStartOffset(tokenIndex), this.getEndOffset(tokenIndex));
-          const length = tokenRange.intersectionLength(range2);
-          if (length > 0) {
-            builder.add(length, this.getMetadata(tokenIndex));
-          }
-        }
-        return builder.build();
-      }
-      getTokenText(tokenIndex) {
-        const startOffset = this.getStartOffset(tokenIndex);
-        const endOffset = this.getEndOffset(tokenIndex);
-        const text2 = this._text.substring(startOffset, endOffset);
-        return text2;
-      }
-      forEach(callback) {
-        const tokenCount = this.getCount();
-        for (let tokenIndex = 0; tokenIndex < tokenCount; tokenIndex++) {
-          callback(tokenIndex);
-        }
-      }
-      toString() {
-        let result = "";
-        this.forEach((i2) => {
-          result += `[${this.getTokenText(i2)}]{${this.getClassName(i2)}}`;
-        });
-        return result;
-      }
-    };
-    SliceLineTokens = class _SliceLineTokens {
-      constructor(source, startOffset, endOffset, deltaOffset) {
-        this._source = source;
-        this._startOffset = startOffset;
-        this._endOffset = endOffset;
-        this._deltaOffset = deltaOffset;
-        this._firstTokenIndex = source.findTokenIndexAtOffset(startOffset);
-        this.languageIdCodec = source.languageIdCodec;
-        this._tokensCount = 0;
-        for (let i2 = this._firstTokenIndex, len = source.getCount(); i2 < len; i2++) {
-          const tokenStartOffset = source.getStartOffset(i2);
-          if (tokenStartOffset >= endOffset) {
-            break;
-          }
-          this._tokensCount++;
-        }
-      }
-      getMetadata(tokenIndex) {
-        return this._source.getMetadata(this._firstTokenIndex + tokenIndex);
-      }
-      getLanguageId(tokenIndex) {
-        return this._source.getLanguageId(this._firstTokenIndex + tokenIndex);
-      }
-      getLineContent() {
-        return this._source.getLineContent().substring(this._startOffset, this._endOffset);
-      }
-      equals(other) {
-        if (other instanceof _SliceLineTokens) {
-          return this._startOffset === other._startOffset && this._endOffset === other._endOffset && this._deltaOffset === other._deltaOffset && this._source.slicedEquals(other._source, this._firstTokenIndex, this._tokensCount);
-        }
-        return false;
-      }
-      getCount() {
-        return this._tokensCount;
-      }
-      getStandardTokenType(tokenIndex) {
-        return this._source.getStandardTokenType(this._firstTokenIndex + tokenIndex);
-      }
-      getForeground(tokenIndex) {
-        return this._source.getForeground(this._firstTokenIndex + tokenIndex);
-      }
-      getEndOffset(tokenIndex) {
-        const tokenEndOffset = this._source.getEndOffset(this._firstTokenIndex + tokenIndex);
-        return Math.min(this._endOffset, tokenEndOffset) - this._startOffset + this._deltaOffset;
-      }
-      getClassName(tokenIndex) {
-        return this._source.getClassName(this._firstTokenIndex + tokenIndex);
-      }
-      getInlineStyle(tokenIndex, colorMap) {
-        return this._source.getInlineStyle(this._firstTokenIndex + tokenIndex, colorMap);
-      }
-      getPresentation(tokenIndex) {
-        return this._source.getPresentation(this._firstTokenIndex + tokenIndex);
-      }
-      findTokenIndexAtOffset(offset) {
-        return this._source.findTokenIndexAtOffset(offset + this._startOffset - this._deltaOffset) - this._firstTokenIndex;
-      }
-      getTokenText(tokenIndex) {
-        const adjustedTokenIndex = this._firstTokenIndex + tokenIndex;
-        const tokenStartOffset = this._source.getStartOffset(adjustedTokenIndex);
-        const tokenEndOffset = this._source.getEndOffset(adjustedTokenIndex);
-        let text2 = this._source.getTokenText(adjustedTokenIndex);
-        if (tokenStartOffset < this._startOffset) {
-          text2 = text2.substring(this._startOffset - tokenStartOffset);
-        }
-        if (tokenEndOffset > this._endOffset) {
-          text2 = text2.substring(0, text2.length - (tokenEndOffset - this._endOffset));
-        }
-        return text2;
-      }
-      forEach(callback) {
-        for (let tokenIndex = 0; tokenIndex < this.getCount(); tokenIndex++) {
-          callback(tokenIndex);
-        }
-      }
-    };
-    TokenArray = class _TokenArray {
-      static fromLineTokens(lineTokens) {
-        const tokenInfo = [];
-        for (let i2 = 0; i2 < lineTokens.getCount(); i2++) {
-          tokenInfo.push(new TokenInfo(lineTokens.getEndOffset(i2) - lineTokens.getStartOffset(i2), lineTokens.getMetadata(i2)));
-        }
-        return _TokenArray.create(tokenInfo);
-      }
-      static create(tokenInfo) {
-        return new _TokenArray(tokenInfo);
-      }
-      constructor(_tokenInfo) {
-        this._tokenInfo = _tokenInfo;
-      }
-      toLineTokens(lineContent, decoder) {
-        return LineTokens.createFromTextAndMetadata(this.map((r, t) => ({ text: r.substring(lineContent), metadata: t.metadata })), decoder);
-      }
-      forEach(cb) {
-        let lengthSum = 0;
-        for (const tokenInfo of this._tokenInfo) {
-          const range2 = new OffsetRange(lengthSum, lengthSum + tokenInfo.length);
-          cb(range2, tokenInfo);
-          lengthSum += tokenInfo.length;
-        }
-      }
-      map(cb) {
-        const result = [];
-        let lengthSum = 0;
-        for (const tokenInfo of this._tokenInfo) {
-          const range2 = new OffsetRange(lengthSum, lengthSum + tokenInfo.length);
-          result.push(cb(range2, tokenInfo));
-          lengthSum += tokenInfo.length;
-        }
-        return result;
-      }
-      slice(range2) {
-        const result = [];
-        let lengthSum = 0;
-        for (const tokenInfo of this._tokenInfo) {
-          const tokenStart = lengthSum;
-          const tokenEndEx = tokenStart + tokenInfo.length;
-          if (tokenEndEx > range2.start) {
-            if (tokenStart >= range2.endExclusive) {
-              break;
-            }
-            const deltaBefore = Math.max(0, range2.start - tokenStart);
-            const deltaAfter = Math.max(0, tokenEndEx - range2.endExclusive);
-            result.push(new TokenInfo(tokenInfo.length - deltaBefore - deltaAfter, tokenInfo.metadata));
-          }
-          lengthSum += tokenInfo.length;
-        }
-        return _TokenArray.create(result);
-      }
-    };
-    TokenInfo = class {
-      constructor(length, metadata) {
-        this.length = length;
-        this.metadata = metadata;
-      }
-    };
-    TokenArrayBuilder = class {
-      constructor() {
-        this._tokens = [];
-      }
-      add(length, metadata) {
-        this._tokens.push(new TokenInfo(length, metadata));
-      }
-      build() {
-        return TokenArray.create(this._tokens);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/languages/supports/indentationLineProcessor.js
-function isLanguageDifferentFromLineStart(model, position) {
-  model.tokenization.forceTokenization(position.lineNumber);
-  const lineTokens = model.tokenization.getLineTokens(position.lineNumber);
-  const scopedLineTokens = createScopedLineTokens(lineTokens, position.column - 1);
-  const doesScopeStartAtOffsetZero = scopedLineTokens.firstCharOffset === 0;
-  const isScopedLanguageEqualToFirstLanguageOnLine = lineTokens.getLanguageId(0) === scopedLineTokens.languageId;
-  const languageIsDifferentFromLineStart = !doesScopeStartAtOffsetZero && !isScopedLanguageEqualToFirstLanguageOnLine;
-  return languageIsDifferentFromLineStart;
-}
-var ProcessedIndentRulesSupport, IndentationContextProcessor, IndentationLineProcessor;
-var init_indentationLineProcessor = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/languages/supports/indentationLineProcessor.js"() {
-    init_strings();
-    init_supports();
-    init_lineTokens();
-    ProcessedIndentRulesSupport = class {
-      constructor(model, indentRulesSupport, languageConfigurationService) {
-        this._indentRulesSupport = indentRulesSupport;
-        this._indentationLineProcessor = new IndentationLineProcessor(model, languageConfigurationService);
-      }
-      /**
-       * Apply the new indentation and return whether the indentation level should be increased after the given line number
-       */
-      shouldIncrease(lineNumber, newIndentation) {
-        const processedLine = this._indentationLineProcessor.getProcessedLine(lineNumber, newIndentation);
-        return this._indentRulesSupport.shouldIncrease(processedLine);
-      }
-      /**
-       * Apply the new indentation and return whether the indentation level should be decreased after the given line number
-       */
-      shouldDecrease(lineNumber, newIndentation) {
-        const processedLine = this._indentationLineProcessor.getProcessedLine(lineNumber, newIndentation);
-        return this._indentRulesSupport.shouldDecrease(processedLine);
-      }
-      /**
-       * Apply the new indentation and return whether the indentation level should remain unchanged at the given line number
-       */
-      shouldIgnore(lineNumber, newIndentation) {
-        const processedLine = this._indentationLineProcessor.getProcessedLine(lineNumber, newIndentation);
-        return this._indentRulesSupport.shouldIgnore(processedLine);
-      }
-      /**
-       * Apply the new indentation and return whether the indentation level should increase on the line after the given line number
-       */
-      shouldIndentNextLine(lineNumber, newIndentation) {
-        const processedLine = this._indentationLineProcessor.getProcessedLine(lineNumber, newIndentation);
-        return this._indentRulesSupport.shouldIndentNextLine(processedLine);
-      }
-    };
-    IndentationContextProcessor = class {
-      constructor(model, languageConfigurationService) {
-        this.model = model;
-        this.indentationLineProcessor = new IndentationLineProcessor(model, languageConfigurationService);
-      }
-      /**
-       * Returns the processed text, stripped from the language configuration brackets within the string, comment and regex tokens, around the given range
-       */
-      getProcessedTokenContextAroundRange(range2) {
-        const beforeRangeProcessedTokens = this._getProcessedTokensBeforeRange(range2);
-        const afterRangeProcessedTokens = this._getProcessedTokensAfterRange(range2);
-        const previousLineProcessedTokens = this._getProcessedPreviousLineTokens(range2);
-        return { beforeRangeProcessedTokens, afterRangeProcessedTokens, previousLineProcessedTokens };
-      }
-      _getProcessedTokensBeforeRange(range2) {
-        this.model.tokenization.forceTokenization(range2.startLineNumber);
-        const lineTokens = this.model.tokenization.getLineTokens(range2.startLineNumber);
-        const scopedLineTokens = createScopedLineTokens(lineTokens, range2.startColumn - 1);
-        let slicedTokens;
-        if (isLanguageDifferentFromLineStart(this.model, range2.getStartPosition())) {
-          const columnIndexWithinScope = range2.startColumn - 1 - scopedLineTokens.firstCharOffset;
-          const firstCharacterOffset = scopedLineTokens.firstCharOffset;
-          const lastCharacterOffset = firstCharacterOffset + columnIndexWithinScope;
-          slicedTokens = lineTokens.sliceAndInflate(firstCharacterOffset, lastCharacterOffset, 0);
-        } else {
-          const columnWithinLine = range2.startColumn - 1;
-          slicedTokens = lineTokens.sliceAndInflate(0, columnWithinLine, 0);
-        }
-        const processedTokens = this.indentationLineProcessor.getProcessedTokens(slicedTokens);
-        return processedTokens;
-      }
-      _getProcessedTokensAfterRange(range2) {
-        const position = range2.isEmpty() ? range2.getStartPosition() : range2.getEndPosition();
-        this.model.tokenization.forceTokenization(position.lineNumber);
-        const lineTokens = this.model.tokenization.getLineTokens(position.lineNumber);
-        const scopedLineTokens = createScopedLineTokens(lineTokens, position.column - 1);
-        const columnIndexWithinScope = position.column - 1 - scopedLineTokens.firstCharOffset;
-        const firstCharacterOffset = scopedLineTokens.firstCharOffset + columnIndexWithinScope;
-        const lastCharacterOffset = scopedLineTokens.firstCharOffset + scopedLineTokens.getLineLength();
-        const slicedTokens = lineTokens.sliceAndInflate(firstCharacterOffset, lastCharacterOffset, 0);
-        const processedTokens = this.indentationLineProcessor.getProcessedTokens(slicedTokens);
-        return processedTokens;
-      }
-      _getProcessedPreviousLineTokens(range2) {
-        const getScopedLineTokensAtEndColumnOfLine = (lineNumber) => {
-          this.model.tokenization.forceTokenization(lineNumber);
-          const lineTokens2 = this.model.tokenization.getLineTokens(lineNumber);
-          const endColumnOfLine = this.model.getLineMaxColumn(lineNumber) - 1;
-          const scopedLineTokensAtEndColumn = createScopedLineTokens(lineTokens2, endColumnOfLine);
-          return scopedLineTokensAtEndColumn;
-        };
-        this.model.tokenization.forceTokenization(range2.startLineNumber);
-        const lineTokens = this.model.tokenization.getLineTokens(range2.startLineNumber);
-        const scopedLineTokens = createScopedLineTokens(lineTokens, range2.startColumn - 1);
-        const emptyTokens = LineTokens.createEmpty("", scopedLineTokens.languageIdCodec);
-        const previousLineNumber = range2.startLineNumber - 1;
-        const isFirstLine = previousLineNumber === 0;
-        if (isFirstLine) {
-          return emptyTokens;
-        }
-        const canScopeExtendOnPreviousLine = scopedLineTokens.firstCharOffset === 0;
-        if (!canScopeExtendOnPreviousLine) {
-          return emptyTokens;
-        }
-        const scopedLineTokensAtEndColumnOfPreviousLine = getScopedLineTokensAtEndColumnOfLine(previousLineNumber);
-        const doesLanguageContinueOnPreviousLine = scopedLineTokens.languageId === scopedLineTokensAtEndColumnOfPreviousLine.languageId;
-        if (!doesLanguageContinueOnPreviousLine) {
-          return emptyTokens;
-        }
-        const previousSlicedLineTokens = scopedLineTokensAtEndColumnOfPreviousLine.toIViewLineTokens();
-        const processedTokens = this.indentationLineProcessor.getProcessedTokens(previousSlicedLineTokens);
-        return processedTokens;
-      }
-    };
-    IndentationLineProcessor = class {
-      constructor(model, languageConfigurationService) {
-        this.model = model;
-        this.languageConfigurationService = languageConfigurationService;
-      }
-      /**
-       * Get the processed line for the given line number and potentially adjust the indentation level.
-       * Remove the language configuration brackets from the regex, string and comment tokens.
-       */
-      getProcessedLine(lineNumber, newIndentation) {
-        const replaceIndentation = (line, newIndentation2) => {
-          const currentIndentation = getLeadingWhitespace(line);
-          const adjustedLine = newIndentation2 + line.substring(currentIndentation.length);
-          return adjustedLine;
-        };
-        this.model.tokenization.forceTokenization?.(lineNumber);
-        const tokens = this.model.tokenization.getLineTokens(lineNumber);
-        let processedLine = this.getProcessedTokens(tokens).getLineContent();
-        if (newIndentation !== void 0) {
-          processedLine = replaceIndentation(processedLine, newIndentation);
-        }
-        return processedLine;
-      }
-      /**
-       * Process the line with the given tokens, remove the language configuration brackets from the regex, string and comment tokens.
-       */
-      getProcessedTokens(tokens) {
-        const shouldRemoveBracketsFromTokenType = (tokenType) => {
-          return tokenType === 2 || tokenType === 3 || tokenType === 1;
-        };
-        const languageId = tokens.getLanguageId(0);
-        const bracketsConfiguration = this.languageConfigurationService.getLanguageConfiguration(languageId).bracketsNew;
-        const bracketsRegExp = bracketsConfiguration.getBracketRegExp({ global: true });
-        const textAndMetadata = [];
-        tokens.forEach((tokenIndex) => {
-          const tokenType = tokens.getStandardTokenType(tokenIndex);
-          let text2 = tokens.getTokenText(tokenIndex);
-          if (shouldRemoveBracketsFromTokenType(tokenType)) {
-            text2 = text2.replace(bracketsRegExp, "");
-          }
-          const metadata = tokens.getMetadata(tokenIndex);
-          textAndMetadata.push({ text: text2, metadata });
-        });
-        const processedLineTokens = LineTokens.createFromTextAndMetadata(textAndMetadata, tokens.languageIdCodec);
-        return processedLineTokens;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/languages/enterAction.js
-function getEnterAction(autoIndent, model, range2, languageConfigurationService) {
-  model.tokenization.forceTokenization(range2.startLineNumber);
-  const languageId = model.getLanguageIdAtPosition(range2.startLineNumber, range2.startColumn);
-  const richEditSupport = languageConfigurationService.getLanguageConfiguration(languageId);
-  if (!richEditSupport) {
-    return null;
-  }
-  const indentationContextProcessor = new IndentationContextProcessor(model, languageConfigurationService);
-  const processedContextTokens = indentationContextProcessor.getProcessedTokenContextAroundRange(range2);
-  const previousLineText = processedContextTokens.previousLineProcessedTokens.getLineContent();
-  const beforeEnterText = processedContextTokens.beforeRangeProcessedTokens.getLineContent();
-  const afterEnterText = processedContextTokens.afterRangeProcessedTokens.getLineContent();
-  const enterResult = richEditSupport.onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText);
-  if (!enterResult) {
-    return null;
-  }
-  const indentAction = enterResult.indentAction;
-  let appendText = enterResult.appendText;
-  const removeText = enterResult.removeText || 0;
-  if (!appendText) {
-    if (indentAction === IndentAction.Indent || indentAction === IndentAction.IndentOutdent) {
-      appendText = "	";
-    } else {
-      appendText = "";
-    }
-  } else if (indentAction === IndentAction.Indent) {
-    appendText = "	" + appendText;
-  }
-  let indentation = getIndentationAtPosition(model, range2.startLineNumber, range2.startColumn);
-  if (removeText) {
-    indentation = indentation.substring(0, indentation.length - removeText);
-  }
-  return {
-    indentAction,
-    appendText,
-    removeText,
-    indentation
-  };
-}
-var init_enterAction = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/languages/enterAction.js"() {
-    init_languageConfiguration();
-    init_languageConfigurationRegistry();
-    init_indentationLineProcessor();
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/commands/shiftCommand.js
-function cachedStringRepeat(str, count) {
-  if (count <= 0) {
-    return "";
-  }
-  if (!repeatCache[str]) {
-    repeatCache[str] = ["", str];
-  }
-  const cache = repeatCache[str];
-  for (let i2 = cache.length; i2 <= count; i2++) {
-    cache[i2] = cache[i2 - 1] + str;
-  }
-  return cache[count];
-}
-var __decorate3, __param3, ShiftCommand_1, repeatCache, ShiftCommand;
-var init_shiftCommand = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/commands/shiftCommand.js"() {
-    init_strings();
-    init_cursorColumns();
-    init_range();
-    init_selection();
-    init_enterAction();
-    init_languageConfigurationRegistry();
-    __decorate3 = function(decorators, target, key, desc) {
-      var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-      if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-      else for (var i2 = decorators.length - 1; i2 >= 0; i2--) if (d = decorators[i2]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-      return c > 3 && r && Object.defineProperty(target, key, r), r;
-    };
-    __param3 = function(paramIndex, decorator) {
-      return function(target, key) {
-        decorator(target, key, paramIndex);
-      };
-    };
-    repeatCache = /* @__PURE__ */ Object.create(null);
-    ShiftCommand = ShiftCommand_1 = class ShiftCommand2 {
-      static unshiftIndent(line, column, tabSize, indentSize, insertSpaces) {
-        const contentStartVisibleColumn = CursorColumns.visibleColumnFromColumn(line, column, tabSize);
-        if (insertSpaces) {
-          const indent = cachedStringRepeat(" ", indentSize);
-          const desiredTabStop = CursorColumns.prevIndentTabStop(contentStartVisibleColumn, indentSize);
-          const indentCount = desiredTabStop / indentSize;
-          return cachedStringRepeat(indent, indentCount);
-        } else {
-          const indent = "	";
-          const desiredTabStop = CursorColumns.prevRenderTabStop(contentStartVisibleColumn, tabSize);
-          const indentCount = desiredTabStop / tabSize;
-          return cachedStringRepeat(indent, indentCount);
-        }
-      }
-      static shiftIndent(line, column, tabSize, indentSize, insertSpaces) {
-        const contentStartVisibleColumn = CursorColumns.visibleColumnFromColumn(line, column, tabSize);
-        if (insertSpaces) {
-          const indent = cachedStringRepeat(" ", indentSize);
-          const desiredTabStop = CursorColumns.nextIndentTabStop(contentStartVisibleColumn, indentSize);
-          const indentCount = desiredTabStop / indentSize;
-          return cachedStringRepeat(indent, indentCount);
-        } else {
-          const indent = "	";
-          const desiredTabStop = CursorColumns.nextRenderTabStop(contentStartVisibleColumn, tabSize);
-          const indentCount = desiredTabStop / tabSize;
-          return cachedStringRepeat(indent, indentCount);
-        }
-      }
-      constructor(range2, opts, _languageConfigurationService) {
-        this._languageConfigurationService = _languageConfigurationService;
-        this._opts = opts;
-        this._selection = range2;
-        this._selectionId = null;
-        this._useLastEditRangeForCursorEndPosition = false;
-        this._selectionStartColumnStaysPut = false;
-      }
-      _addEditOperation(builder, range2, text2) {
-        if (this._useLastEditRangeForCursorEndPosition) {
-          builder.addTrackedEditOperation(range2, text2);
-        } else {
-          builder.addEditOperation(range2, text2);
-        }
-      }
-      getEditOperations(model, builder) {
-        const startLine = this._selection.startLineNumber;
-        let endLine = this._selection.endLineNumber;
-        if (this._selection.endColumn === 1 && startLine !== endLine) {
-          endLine = endLine - 1;
-        }
-        const { tabSize, indentSize, insertSpaces } = this._opts;
-        const shouldIndentEmptyLines = startLine === endLine;
-        if (this._opts.useTabStops) {
-          if (this._selection.isEmpty()) {
-            if (/^\s*$/.test(model.getLineContent(startLine))) {
-              this._useLastEditRangeForCursorEndPosition = true;
-            }
-          }
-          let previousLineExtraSpaces = 0, extraSpaces = 0;
-          for (let lineNumber = startLine; lineNumber <= endLine; lineNumber++, previousLineExtraSpaces = extraSpaces) {
-            extraSpaces = 0;
-            const lineText = model.getLineContent(lineNumber);
-            let indentationEndIndex = firstNonWhitespaceIndex(lineText);
-            if (this._opts.isUnshift && (lineText.length === 0 || indentationEndIndex === 0)) {
-              continue;
-            }
-            if (!shouldIndentEmptyLines && !this._opts.isUnshift && lineText.length === 0) {
-              continue;
-            }
-            if (indentationEndIndex === -1) {
-              indentationEndIndex = lineText.length;
-            }
-            if (lineNumber > 1) {
-              const contentStartVisibleColumn = CursorColumns.visibleColumnFromColumn(lineText, indentationEndIndex + 1, tabSize);
-              if (contentStartVisibleColumn % indentSize !== 0) {
-                if (model.tokenization.isCheapToTokenize(lineNumber - 1)) {
-                  const enterAction = getEnterAction(this._opts.autoIndent, model, new Range(lineNumber - 1, model.getLineMaxColumn(lineNumber - 1), lineNumber - 1, model.getLineMaxColumn(lineNumber - 1)), this._languageConfigurationService);
-                  if (enterAction) {
-                    extraSpaces = previousLineExtraSpaces;
-                    if (enterAction.appendText) {
-                      for (let j = 0, lenJ = enterAction.appendText.length; j < lenJ && extraSpaces < indentSize; j++) {
-                        if (enterAction.appendText.charCodeAt(j) === 32) {
-                          extraSpaces++;
-                        } else {
-                          break;
-                        }
-                      }
-                    }
-                    if (enterAction.removeText) {
-                      extraSpaces = Math.max(0, extraSpaces - enterAction.removeText);
-                    }
-                    for (let j = 0; j < extraSpaces; j++) {
-                      if (indentationEndIndex === 0 || lineText.charCodeAt(indentationEndIndex - 1) !== 32) {
-                        break;
-                      }
-                      indentationEndIndex--;
-                    }
-                  }
-                }
-              }
-            }
-            if (this._opts.isUnshift && indentationEndIndex === 0) {
-              continue;
-            }
-            let desiredIndent;
-            if (this._opts.isUnshift) {
-              desiredIndent = ShiftCommand_1.unshiftIndent(lineText, indentationEndIndex + 1, tabSize, indentSize, insertSpaces);
-            } else {
-              desiredIndent = ShiftCommand_1.shiftIndent(lineText, indentationEndIndex + 1, tabSize, indentSize, insertSpaces);
-            }
-            this._addEditOperation(builder, new Range(lineNumber, 1, lineNumber, indentationEndIndex + 1), desiredIndent);
-            if (lineNumber === startLine && !this._selection.isEmpty()) {
-              this._selectionStartColumnStaysPut = this._selection.startColumn <= indentationEndIndex + 1;
-            }
-          }
-        } else {
-          if (!this._opts.isUnshift && this._selection.isEmpty() && model.getLineLength(startLine) === 0) {
-            this._useLastEditRangeForCursorEndPosition = true;
-          }
-          const oneIndent = insertSpaces ? cachedStringRepeat(" ", indentSize) : "	";
-          for (let lineNumber = startLine; lineNumber <= endLine; lineNumber++) {
-            const lineText = model.getLineContent(lineNumber);
-            let indentationEndIndex = firstNonWhitespaceIndex(lineText);
-            if (this._opts.isUnshift && (lineText.length === 0 || indentationEndIndex === 0)) {
-              continue;
-            }
-            if (!shouldIndentEmptyLines && !this._opts.isUnshift && lineText.length === 0) {
-              continue;
-            }
-            if (indentationEndIndex === -1) {
-              indentationEndIndex = lineText.length;
-            }
-            if (this._opts.isUnshift && indentationEndIndex === 0) {
-              continue;
-            }
-            if (this._opts.isUnshift) {
-              indentationEndIndex = Math.min(indentationEndIndex, indentSize);
-              for (let i2 = 0; i2 < indentationEndIndex; i2++) {
-                const chr = lineText.charCodeAt(i2);
-                if (chr === 9) {
-                  indentationEndIndex = i2 + 1;
-                  break;
-                }
-              }
-              this._addEditOperation(builder, new Range(lineNumber, 1, lineNumber, indentationEndIndex + 1), "");
-            } else {
-              this._addEditOperation(builder, new Range(lineNumber, 1, lineNumber, 1), oneIndent);
-              if (lineNumber === startLine && !this._selection.isEmpty()) {
-                this._selectionStartColumnStaysPut = this._selection.startColumn === 1;
-              }
-            }
-          }
-        }
-        this._selectionId = builder.trackSelection(this._selection);
-      }
-      computeCursorState(model, helper) {
-        if (this._useLastEditRangeForCursorEndPosition) {
-          const lastOp = helper.getInverseEditOperations()[0];
-          return new Selection(lastOp.range.endLineNumber, lastOp.range.endColumn, lastOp.range.endLineNumber, lastOp.range.endColumn);
-        }
-        const result = helper.getTrackedSelection(this._selectionId);
-        if (this._selectionStartColumnStaysPut) {
-          const initialStartColumn = this._selection.startColumn;
-          const resultStartColumn = result.startColumn;
-          if (resultStartColumn <= initialStartColumn) {
-            return result;
-          }
-          if (result.getDirection() === 0) {
-            return new Selection(result.startLineNumber, initialStartColumn, result.endLineNumber, result.endColumn);
-          }
-          return new Selection(result.endLineNumber, result.endColumn, result.startLineNumber, initialStartColumn);
-        }
-        return result;
-      }
-    };
-    ShiftCommand = ShiftCommand_1 = __decorate3([
-      __param3(2, ILanguageConfigurationService)
-    ], ShiftCommand);
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/commands/surroundSelectionCommand.js
-var SurroundSelectionCommand, CompositionSurroundSelectionCommand;
-var init_surroundSelectionCommand = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/commands/surroundSelectionCommand.js"() {
-    init_range();
-    init_selection();
-    SurroundSelectionCommand = class {
-      constructor(range2, charBeforeSelection, charAfterSelection) {
-        this._range = range2;
-        this._charBeforeSelection = charBeforeSelection;
-        this._charAfterSelection = charAfterSelection;
-      }
-      getEditOperations(model, builder) {
-        builder.addTrackedEditOperation(new Range(this._range.startLineNumber, this._range.startColumn, this._range.startLineNumber, this._range.startColumn), this._charBeforeSelection);
-        builder.addTrackedEditOperation(new Range(this._range.endLineNumber, this._range.endColumn, this._range.endLineNumber, this._range.endColumn), this._charAfterSelection || null);
-      }
-      computeCursorState(model, helper) {
-        const inverseEditOperations = helper.getInverseEditOperations();
-        const firstOperationRange = inverseEditOperations[0].range;
-        const secondOperationRange = inverseEditOperations[1].range;
-        return new Selection(firstOperationRange.endLineNumber, firstOperationRange.endColumn, secondOperationRange.endLineNumber, secondOperationRange.endColumn - this._charAfterSelection.length);
-      }
-    };
-    CompositionSurroundSelectionCommand = class {
-      constructor(_position, _text, _charAfter) {
-        this._position = _position;
-        this._text = _text;
-        this._charAfter = _charAfter;
-      }
-      getEditOperations(model, builder) {
-        builder.addTrackedEditOperation(new Range(this._position.lineNumber, this._position.column, this._position.lineNumber, this._position.column), this._text + this._charAfter);
-      }
-      computeCursorState(model, helper) {
-        const inverseEditOperations = helper.getInverseEditOperations();
-        const opRange = inverseEditOperations[0].range;
-        return new Selection(opRange.endLineNumber, opRange.startColumn, opRange.endLineNumber, opRange.endColumn - this._charAfter.length);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/languages/autoIndent.js
-function getPrecedingValidLine(model, lineNumber, processedIndentRulesSupport) {
-  const languageId = model.tokenization.getLanguageIdAtPosition(lineNumber, 0);
-  if (lineNumber > 1) {
-    let lastLineNumber;
-    let resultLineNumber = -1;
-    for (lastLineNumber = lineNumber - 1; lastLineNumber >= 1; lastLineNumber--) {
-      if (model.tokenization.getLanguageIdAtPosition(lastLineNumber, 0) !== languageId) {
-        return resultLineNumber;
-      }
-      const text2 = model.getLineContent(lastLineNumber);
-      if (processedIndentRulesSupport.shouldIgnore(lastLineNumber) || /^\s+$/.test(text2) || text2 === "") {
-        resultLineNumber = lastLineNumber;
-        continue;
-      }
-      return lastLineNumber;
-    }
-  }
-  return -1;
-}
-function getInheritIndentForLine(autoIndent, model, lineNumber, honorIntentialIndent = true, languageConfigurationService) {
-  if (autoIndent < 4) {
-    return null;
-  }
-  const indentRulesSupport = languageConfigurationService.getLanguageConfiguration(model.tokenization.getLanguageId()).indentRulesSupport;
-  if (!indentRulesSupport) {
-    return null;
-  }
-  const processedIndentRulesSupport = new ProcessedIndentRulesSupport(model, indentRulesSupport, languageConfigurationService);
-  if (lineNumber <= 1) {
-    return {
-      indentation: "",
-      action: null
-    };
-  }
-  for (let priorLineNumber = lineNumber - 1; priorLineNumber > 0; priorLineNumber--) {
-    if (model.getLineContent(priorLineNumber) !== "") {
-      break;
-    }
-    if (priorLineNumber === 1) {
-      return {
-        indentation: "",
-        action: null
-      };
-    }
-  }
-  const precedingUnIgnoredLine = getPrecedingValidLine(model, lineNumber, processedIndentRulesSupport);
-  if (precedingUnIgnoredLine < 0) {
-    return null;
-  } else if (precedingUnIgnoredLine < 1) {
-    return {
-      indentation: "",
-      action: null
-    };
-  }
-  if (processedIndentRulesSupport.shouldIncrease(precedingUnIgnoredLine) || processedIndentRulesSupport.shouldIndentNextLine(precedingUnIgnoredLine)) {
-    const precedingUnIgnoredLineContent = model.getLineContent(precedingUnIgnoredLine);
-    return {
-      indentation: getLeadingWhitespace(precedingUnIgnoredLineContent),
-      action: IndentAction.Indent,
-      line: precedingUnIgnoredLine
-    };
-  } else if (processedIndentRulesSupport.shouldDecrease(precedingUnIgnoredLine)) {
-    const precedingUnIgnoredLineContent = model.getLineContent(precedingUnIgnoredLine);
-    return {
-      indentation: getLeadingWhitespace(precedingUnIgnoredLineContent),
-      action: null,
-      line: precedingUnIgnoredLine
-    };
-  } else {
-    if (precedingUnIgnoredLine === 1) {
-      return {
-        indentation: getLeadingWhitespace(model.getLineContent(precedingUnIgnoredLine)),
-        action: null,
-        line: precedingUnIgnoredLine
-      };
-    }
-    const previousLine = precedingUnIgnoredLine - 1;
-    const previousLineIndentMetadata = indentRulesSupport.getIndentMetadata(model.getLineContent(previousLine));
-    if (!(previousLineIndentMetadata & (1 | 2)) && previousLineIndentMetadata & 4) {
-      let stopLine = 0;
-      for (let i2 = previousLine - 1; i2 > 0; i2--) {
-        if (processedIndentRulesSupport.shouldIndentNextLine(i2)) {
-          continue;
-        }
-        stopLine = i2;
-        break;
-      }
-      return {
-        indentation: getLeadingWhitespace(model.getLineContent(stopLine + 1)),
-        action: null,
-        line: stopLine + 1
-      };
-    }
-    if (honorIntentialIndent) {
-      return {
-        indentation: getLeadingWhitespace(model.getLineContent(precedingUnIgnoredLine)),
-        action: null,
-        line: precedingUnIgnoredLine
-      };
-    } else {
-      for (let i2 = precedingUnIgnoredLine; i2 > 0; i2--) {
-        if (processedIndentRulesSupport.shouldIncrease(i2)) {
-          return {
-            indentation: getLeadingWhitespace(model.getLineContent(i2)),
-            action: IndentAction.Indent,
-            line: i2
-          };
-        } else if (processedIndentRulesSupport.shouldIndentNextLine(i2)) {
-          let stopLine = 0;
-          for (let j = i2 - 1; j > 0; j--) {
-            if (processedIndentRulesSupport.shouldIndentNextLine(i2)) {
-              continue;
-            }
-            stopLine = j;
-            break;
-          }
-          return {
-            indentation: getLeadingWhitespace(model.getLineContent(stopLine + 1)),
-            action: null,
-            line: stopLine + 1
-          };
-        } else if (processedIndentRulesSupport.shouldDecrease(i2)) {
-          return {
-            indentation: getLeadingWhitespace(model.getLineContent(i2)),
-            action: null,
-            line: i2
-          };
-        }
-      }
-      return {
-        indentation: getLeadingWhitespace(model.getLineContent(1)),
-        action: null,
-        line: 1
-      };
-    }
-  }
-}
-function getGoodIndentForLine(autoIndent, virtualModel, languageId, lineNumber, indentConverter, languageConfigurationService) {
-  if (autoIndent < 4) {
-    return null;
-  }
-  const richEditSupport = languageConfigurationService.getLanguageConfiguration(languageId);
-  if (!richEditSupport) {
-    return null;
-  }
-  const indentRulesSupport = languageConfigurationService.getLanguageConfiguration(languageId).indentRulesSupport;
-  if (!indentRulesSupport) {
-    return null;
-  }
-  const processedIndentRulesSupport = new ProcessedIndentRulesSupport(virtualModel, indentRulesSupport, languageConfigurationService);
-  const indent = getInheritIndentForLine(autoIndent, virtualModel, lineNumber, void 0, languageConfigurationService);
-  if (indent) {
-    const inheritLine = indent.line;
-    if (inheritLine !== void 0) {
-      let shouldApplyEnterRules = true;
-      for (let inBetweenLine = inheritLine; inBetweenLine < lineNumber - 1; inBetweenLine++) {
-        if (!/^\s*$/.test(virtualModel.getLineContent(inBetweenLine))) {
-          shouldApplyEnterRules = false;
-          break;
-        }
-      }
-      if (shouldApplyEnterRules) {
-        const enterResult = richEditSupport.onEnter(autoIndent, "", virtualModel.getLineContent(inheritLine), "");
-        if (enterResult) {
-          let indentation = getLeadingWhitespace(virtualModel.getLineContent(inheritLine));
-          if (enterResult.removeText) {
-            indentation = indentation.substring(0, indentation.length - enterResult.removeText);
-          }
-          if (enterResult.indentAction === IndentAction.Indent || enterResult.indentAction === IndentAction.IndentOutdent) {
-            indentation = indentConverter.shiftIndent(indentation);
-          } else if (enterResult.indentAction === IndentAction.Outdent) {
-            indentation = indentConverter.unshiftIndent(indentation);
-          }
-          if (processedIndentRulesSupport.shouldDecrease(lineNumber)) {
-            indentation = indentConverter.unshiftIndent(indentation);
-          }
-          if (enterResult.appendText) {
-            indentation += enterResult.appendText;
-          }
-          return getLeadingWhitespace(indentation);
-        }
-      }
-    }
-    if (processedIndentRulesSupport.shouldDecrease(lineNumber)) {
-      if (indent.action === IndentAction.Indent) {
-        return indent.indentation;
-      } else {
-        return indentConverter.unshiftIndent(indent.indentation);
-      }
-    } else {
-      if (indent.action === IndentAction.Indent) {
-        return indentConverter.shiftIndent(indent.indentation);
-      } else {
-        return indent.indentation;
-      }
-    }
-  }
-  return null;
-}
-function getIndentForEnter(autoIndent, model, range2, indentConverter, languageConfigurationService) {
-  if (autoIndent < 4) {
-    return null;
-  }
-  const languageId = model.getLanguageIdAtPosition(range2.startLineNumber, range2.startColumn);
-  const indentRulesSupport = languageConfigurationService.getLanguageConfiguration(languageId).indentRulesSupport;
-  if (!indentRulesSupport) {
-    return null;
-  }
-  model.tokenization.forceTokenization(range2.startLineNumber);
-  const indentationContextProcessor = new IndentationContextProcessor(model, languageConfigurationService);
-  const processedContextTokens = indentationContextProcessor.getProcessedTokenContextAroundRange(range2);
-  const afterEnterProcessedTokens = processedContextTokens.afterRangeProcessedTokens;
-  const beforeEnterProcessedTokens = processedContextTokens.beforeRangeProcessedTokens;
-  const beforeEnterIndent = getLeadingWhitespace(beforeEnterProcessedTokens.getLineContent());
-  const virtualModel = createVirtualModelWithModifiedTokensAtLine(model, range2.startLineNumber, beforeEnterProcessedTokens);
-  const languageIsDifferentFromLineStart = isLanguageDifferentFromLineStart(model, range2.getStartPosition());
-  const currentLine = model.getLineContent(range2.startLineNumber);
-  const currentLineIndent = getLeadingWhitespace(currentLine);
-  const afterEnterAction = getInheritIndentForLine(autoIndent, virtualModel, range2.startLineNumber + 1, void 0, languageConfigurationService);
-  if (!afterEnterAction) {
-    const beforeEnter = languageIsDifferentFromLineStart ? currentLineIndent : beforeEnterIndent;
-    return {
-      beforeEnter,
-      afterEnter: beforeEnter
-    };
-  }
-  let afterEnterIndent = languageIsDifferentFromLineStart ? currentLineIndent : afterEnterAction.indentation;
-  if (afterEnterAction.action === IndentAction.Indent) {
-    afterEnterIndent = indentConverter.shiftIndent(afterEnterIndent);
-  }
-  if (indentRulesSupport.shouldDecrease(afterEnterProcessedTokens.getLineContent())) {
-    afterEnterIndent = indentConverter.unshiftIndent(afterEnterIndent);
-  }
-  return {
-    beforeEnter: languageIsDifferentFromLineStart ? currentLineIndent : beforeEnterIndent,
-    afterEnter: afterEnterIndent
-  };
-}
-function getIndentActionForType(cursorConfig, model, range2, ch, indentConverter, languageConfigurationService) {
-  const autoIndent = cursorConfig.autoIndent;
-  if (autoIndent < 4) {
-    return null;
-  }
-  const languageIsDifferentFromLineStart = isLanguageDifferentFromLineStart(model, range2.getStartPosition());
-  if (languageIsDifferentFromLineStart) {
-    return null;
-  }
-  const languageId = model.getLanguageIdAtPosition(range2.startLineNumber, range2.startColumn);
-  const indentRulesSupport = languageConfigurationService.getLanguageConfiguration(languageId).indentRulesSupport;
-  if (!indentRulesSupport) {
-    return null;
-  }
-  const indentationContextProcessor = new IndentationContextProcessor(model, languageConfigurationService);
-  const processedContextTokens = indentationContextProcessor.getProcessedTokenContextAroundRange(range2);
-  const beforeRangeText = processedContextTokens.beforeRangeProcessedTokens.getLineContent();
-  const afterRangeText = processedContextTokens.afterRangeProcessedTokens.getLineContent();
-  const textAroundRange = beforeRangeText + afterRangeText;
-  const textAroundRangeWithCharacter = beforeRangeText + ch + afterRangeText;
-  if (!indentRulesSupport.shouldDecrease(textAroundRange) && indentRulesSupport.shouldDecrease(textAroundRangeWithCharacter)) {
-    const r = getInheritIndentForLine(autoIndent, model, range2.startLineNumber, false, languageConfigurationService);
-    if (!r) {
-      return null;
-    }
-    let indentation = r.indentation;
-    if (r.action !== IndentAction.Indent) {
-      indentation = indentConverter.unshiftIndent(indentation);
-    }
-    return indentation;
-  }
-  const previousLineNumber = range2.startLineNumber - 1;
-  if (previousLineNumber > 0) {
-    const previousLine = model.getLineContent(previousLineNumber);
-    if (indentRulesSupport.shouldIndentNextLine(previousLine) && indentRulesSupport.shouldIncrease(textAroundRangeWithCharacter)) {
-      const inheritedIndentationData = getInheritIndentForLine(autoIndent, model, range2.startLineNumber, false, languageConfigurationService);
-      const inheritedIndentation = inheritedIndentationData?.indentation;
-      if (inheritedIndentation !== void 0) {
-        const currentLine = model.getLineContent(range2.startLineNumber);
-        const actualCurrentIndentation = getLeadingWhitespace(currentLine);
-        const inferredCurrentIndentation = indentConverter.shiftIndent(inheritedIndentation);
-        const inferredIndentationEqualsActual = inferredCurrentIndentation === actualCurrentIndentation;
-        const textAroundRangeContainsOnlyWhitespace = /^\s*$/.test(textAroundRange);
-        const autoClosingPairs = cursorConfig.autoClosingPairs.autoClosingPairsOpenByEnd.get(ch);
-        const autoClosingPairExists = autoClosingPairs && autoClosingPairs.length > 0;
-        const isChFirstNonWhitespaceCharacterAndInAutoClosingPair = autoClosingPairExists && textAroundRangeContainsOnlyWhitespace;
-        if (inferredIndentationEqualsActual && isChFirstNonWhitespaceCharacterAndInAutoClosingPair) {
-          return inheritedIndentation;
-        }
-      }
-    }
-  }
-  return null;
-}
-function getIndentMetadata(model, lineNumber, languageConfigurationService) {
-  const indentRulesSupport = languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).indentRulesSupport;
-  if (!indentRulesSupport) {
-    return null;
-  }
-  if (lineNumber < 1 || lineNumber > model.getLineCount()) {
-    return null;
-  }
-  return indentRulesSupport.getIndentMetadata(model.getLineContent(lineNumber));
-}
-function createVirtualModelWithModifiedTokensAtLine(model, modifiedLineNumber, modifiedTokens) {
-  const virtualModel = {
-    tokenization: {
-      getLineTokens: (lineNumber) => {
-        if (lineNumber === modifiedLineNumber) {
-          return modifiedTokens;
-        } else {
-          return model.tokenization.getLineTokens(lineNumber);
-        }
-      },
-      getLanguageId: () => {
-        return model.getLanguageId();
-      },
-      getLanguageIdAtPosition: (lineNumber, column) => {
-        return model.getLanguageIdAtPosition(lineNumber, column);
-      }
-    },
-    getLineContent: (lineNumber) => {
-      if (lineNumber === modifiedLineNumber) {
-        return modifiedTokens.getLineContent();
-      } else {
-        return model.getLineContent(lineNumber);
-      }
-    }
-  };
-  return virtualModel;
-}
-var init_autoIndent = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/languages/autoIndent.js"() {
-    init_strings();
-    init_languageConfiguration();
-    init_indentationLineProcessor();
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorTypeEditOperations.js
-function getTypingOperation(typedText, previousTypingOperation) {
-  if (typedText === " ") {
-    return previousTypingOperation === 5 || previousTypingOperation === 6 ? 6 : 5;
-  }
-  return 4;
-}
-function shouldPushStackElementBetween(previousTypingOperation, typingOperation) {
-  if (isTypingOperation(previousTypingOperation) && !isTypingOperation(typingOperation)) {
-    return true;
-  }
-  if (previousTypingOperation === 5) {
-    return false;
-  }
-  return normalizeOperationType(previousTypingOperation) !== normalizeOperationType(typingOperation);
-}
-function normalizeOperationType(type) {
-  return type === 6 || type === 5 ? "space" : type;
-}
-function isTypingOperation(type) {
-  return type === 4 || type === 5 || type === 6;
-}
-function isAutoClosingOvertype(config, model, selections, autoClosedCharacters, ch) {
-  if (config.autoClosingOvertype === "never") {
-    return false;
-  }
-  if (!config.autoClosingPairs.autoClosingPairsCloseSingleChar.has(ch)) {
-    return false;
-  }
-  for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-    const selection = selections[i2];
-    if (!selection.isEmpty()) {
-      return false;
-    }
-    const position = selection.getPosition();
-    const lineText = model.getLineContent(position.lineNumber);
-    const afterCharacter = lineText.charAt(position.column - 1);
-    if (afterCharacter !== ch) {
-      return false;
-    }
-    const chIsQuote = isQuote(ch);
-    const beforeCharacter = position.column > 2 ? lineText.charCodeAt(position.column - 2) : 0;
-    if (beforeCharacter === 92 && chIsQuote) {
-      return false;
-    }
-    if (config.autoClosingOvertype === "auto") {
-      let found = false;
-      for (let j = 0, lenJ = autoClosedCharacters.length; j < lenJ; j++) {
-        const autoClosedCharacter = autoClosedCharacters[j];
-        if (position.lineNumber === autoClosedCharacter.startLineNumber && position.column === autoClosedCharacter.startColumn) {
-          found = true;
-          break;
-        }
-      }
-      if (!found) {
-        return false;
-      }
-    }
-  }
-  return true;
-}
-function typeCommand(range2, text2, keepPosition) {
-  if (keepPosition) {
-    return new ReplaceCommandWithoutChangingPosition(range2, text2, true);
-  } else {
-    return new ReplaceCommand(range2, text2, true);
-  }
-}
-function shiftIndent(config, indentation, count) {
-  count = count || 1;
-  return ShiftCommand.shiftIndent(indentation, indentation.length + count, config.tabSize, config.indentSize, config.insertSpaces);
-}
-function unshiftIndent(config, indentation, count) {
-  count = count || 1;
-  return ShiftCommand.unshiftIndent(indentation, indentation.length + count, config.tabSize, config.indentSize, config.insertSpaces);
-}
-function shouldSurroundChar(config, ch) {
-  if (isQuote(ch)) {
-    return config.autoSurround === "quotes" || config.autoSurround === "languageDefined";
-  } else {
-    return config.autoSurround === "brackets" || config.autoSurround === "languageDefined";
-  }
-}
-var AutoIndentOperation, AutoClosingOvertypeOperation, AutoClosingOvertypeWithInterceptorsOperation, AutoClosingOpenCharTypeOperation, CompositionEndOvertypeOperation, SurroundSelectionOperation, InterceptorElectricCharOperation, SimpleCharacterTypeOperation, EnterOperation, PasteOperation, CompositionOperation, TypeWithoutInterceptorsOperation, TabOperation, BaseTypeWithAutoClosingCommand, TypeWithAutoClosingCommand, TypeWithIndentationAndAutoClosingCommand;
-var init_cursorTypeEditOperations = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorTypeEditOperations.js"() {
-    init_errors();
-    init_strings();
-    init_replaceCommand();
-    init_shiftCommand();
-    init_surroundSelectionCommand();
-    init_cursorCommon();
-    init_wordCharacterClassifier();
-    init_range();
-    init_position();
-    init_languageConfiguration();
-    init_languageConfigurationRegistry();
-    init_supports();
-    init_autoIndent();
-    init_enterAction();
-    AutoIndentOperation = class {
-      static getEdits(config, model, selections, ch, isDoingComposition) {
-        if (!isDoingComposition && this._isAutoIndentType(config, model, selections)) {
-          const indentationForSelections = [];
-          for (const selection of selections) {
-            const indentation = this._findActualIndentationForSelection(config, model, selection, ch);
-            if (indentation === null) {
-              return;
-            }
-            indentationForSelections.push({ selection, indentation });
-          }
-          const autoClosingPairClose = AutoClosingOpenCharTypeOperation.getAutoClosingPairClose(config, model, selections, ch, false);
-          return this._getIndentationAndAutoClosingPairEdits(config, model, indentationForSelections, ch, autoClosingPairClose);
-        }
-        return;
-      }
-      static _isAutoIndentType(config, model, selections) {
-        if (config.autoIndent < 4) {
-          return false;
-        }
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          if (!model.tokenization.isCheapToTokenize(selections[i2].getEndPosition().lineNumber)) {
-            return false;
-          }
-        }
-        return true;
-      }
-      static _findActualIndentationForSelection(config, model, selection, ch) {
-        const actualIndentation = getIndentActionForType(config, model, selection, ch, {
-          shiftIndent: (indentation) => {
-            return shiftIndent(config, indentation);
-          },
-          unshiftIndent: (indentation) => {
-            return unshiftIndent(config, indentation);
-          }
-        }, config.languageConfigurationService);
-        if (actualIndentation === null) {
-          return null;
-        }
-        const currentIndentation = getIndentationAtPosition(model, selection.startLineNumber, selection.startColumn);
-        if (actualIndentation === config.normalizeIndentation(currentIndentation)) {
-          return null;
-        }
-        return actualIndentation;
-      }
-      static _getIndentationAndAutoClosingPairEdits(config, model, indentationForSelections, ch, autoClosingPairClose) {
-        const commands = indentationForSelections.map(({ selection, indentation }) => {
-          if (autoClosingPairClose !== null) {
-            const indentationEdit = this._getEditFromIndentationAndSelection(config, model, indentation, selection, ch, false);
-            return new TypeWithIndentationAndAutoClosingCommand(indentationEdit, selection, ch, autoClosingPairClose);
-          } else {
-            const indentationEdit = this._getEditFromIndentationAndSelection(config, model, indentation, selection, ch, true);
-            return typeCommand(indentationEdit.range, indentationEdit.text, false);
-          }
-        });
-        const editOptions = { shouldPushStackElementBefore: true, shouldPushStackElementAfter: false };
-        return new EditOperationResult(4, commands, editOptions);
-      }
-      static _getEditFromIndentationAndSelection(config, model, indentation, selection, ch, includeChInEdit = true) {
-        const startLineNumber = selection.startLineNumber;
-        const firstNonWhitespaceColumn = model.getLineFirstNonWhitespaceColumn(startLineNumber);
-        let text2 = config.normalizeIndentation(indentation);
-        if (firstNonWhitespaceColumn !== 0) {
-          const startLine = model.getLineContent(startLineNumber);
-          text2 += startLine.substring(firstNonWhitespaceColumn - 1, selection.startColumn - 1);
-        }
-        text2 += includeChInEdit ? ch : "";
-        const range2 = new Range(startLineNumber, 1, selection.endLineNumber, selection.endColumn);
-        return { range: range2, text: text2 };
-      }
-    };
-    AutoClosingOvertypeOperation = class {
-      static getEdits(prevEditOperationType, config, model, selections, autoClosedCharacters, ch) {
-        if (isAutoClosingOvertype(config, model, selections, autoClosedCharacters, ch)) {
-          return this._runAutoClosingOvertype(prevEditOperationType, selections, ch);
-        }
-        return;
-      }
-      static _runAutoClosingOvertype(prevEditOperationType, selections, ch) {
-        const commands = [];
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          const selection = selections[i2];
-          const position = selection.getPosition();
-          const typeSelection = new Range(position.lineNumber, position.column, position.lineNumber, position.column + 1);
-          commands[i2] = new ReplaceCommand(typeSelection, ch);
-        }
-        return new EditOperationResult(4, commands, {
-          shouldPushStackElementBefore: shouldPushStackElementBetween(
-            prevEditOperationType,
-            4
-            /* EditOperationType.TypingOther */
-          ),
-          shouldPushStackElementAfter: false
-        });
-      }
-    };
-    AutoClosingOvertypeWithInterceptorsOperation = class {
-      static getEdits(config, model, selections, autoClosedCharacters, ch) {
-        if (isAutoClosingOvertype(config, model, selections, autoClosedCharacters, ch)) {
-          const commands = selections.map((s) => new ReplaceCommand(new Range(s.positionLineNumber, s.positionColumn, s.positionLineNumber, s.positionColumn + 1), "", false));
-          return new EditOperationResult(4, commands, {
-            shouldPushStackElementBefore: true,
-            shouldPushStackElementAfter: false
-          });
-        }
-        return;
-      }
-    };
-    AutoClosingOpenCharTypeOperation = class {
-      static getEdits(config, model, selections, ch, chIsAlreadyTyped, isDoingComposition) {
-        if (!isDoingComposition) {
-          const autoClosingPairClose = this.getAutoClosingPairClose(config, model, selections, ch, chIsAlreadyTyped);
-          if (autoClosingPairClose !== null) {
-            return this._runAutoClosingOpenCharType(selections, ch, chIsAlreadyTyped, autoClosingPairClose);
-          }
-        }
-        return;
-      }
-      static _runAutoClosingOpenCharType(selections, ch, chIsAlreadyTyped, autoClosingPairClose) {
-        const commands = [];
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          const selection = selections[i2];
-          commands[i2] = new TypeWithAutoClosingCommand(selection, ch, !chIsAlreadyTyped, autoClosingPairClose);
-        }
-        return new EditOperationResult(4, commands, {
-          shouldPushStackElementBefore: true,
-          shouldPushStackElementAfter: false
-        });
-      }
-      static getAutoClosingPairClose(config, model, selections, ch, chIsAlreadyTyped) {
-        for (const selection of selections) {
-          if (!selection.isEmpty()) {
-            return null;
-          }
-        }
-        const positions = selections.map((s) => {
-          const position = s.getPosition();
-          if (chIsAlreadyTyped) {
-            return { lineNumber: position.lineNumber, beforeColumn: position.column - ch.length, afterColumn: position.column };
-          } else {
-            return { lineNumber: position.lineNumber, beforeColumn: position.column, afterColumn: position.column };
-          }
-        });
-        const pair = this._findAutoClosingPairOpen(config, model, positions.map((p) => new Position(p.lineNumber, p.beforeColumn)), ch);
-        if (!pair) {
-          return null;
-        }
-        let autoCloseConfig;
-        let shouldAutoCloseBefore;
-        const chIsQuote = isQuote(ch);
-        if (chIsQuote) {
-          autoCloseConfig = config.autoClosingQuotes;
-          shouldAutoCloseBefore = config.shouldAutoCloseBefore.quote;
-        } else {
-          const pairIsForComments = config.blockCommentStartToken ? pair.open.includes(config.blockCommentStartToken) : false;
-          if (pairIsForComments) {
-            autoCloseConfig = config.autoClosingComments;
-            shouldAutoCloseBefore = config.shouldAutoCloseBefore.comment;
-          } else {
-            autoCloseConfig = config.autoClosingBrackets;
-            shouldAutoCloseBefore = config.shouldAutoCloseBefore.bracket;
-          }
-        }
-        if (autoCloseConfig === "never") {
-          return null;
-        }
-        const containedPair = this._findContainedAutoClosingPair(config, pair);
-        const containedPairClose = containedPair ? containedPair.close : "";
-        let isContainedPairPresent = true;
-        for (const position of positions) {
-          const { lineNumber, beforeColumn, afterColumn } = position;
-          const lineText = model.getLineContent(lineNumber);
-          const lineBefore = lineText.substring(0, beforeColumn - 1);
-          const lineAfter = lineText.substring(afterColumn - 1);
-          if (!lineAfter.startsWith(containedPairClose)) {
-            isContainedPairPresent = false;
-          }
-          if (lineAfter.length > 0) {
-            const characterAfter = lineAfter.charAt(0);
-            const isBeforeCloseBrace = this._isBeforeClosingBrace(config, lineAfter);
-            if (!isBeforeCloseBrace && !shouldAutoCloseBefore(characterAfter)) {
-              return null;
-            }
-          }
-          if (pair.open.length === 1 && (ch === "'" || ch === '"') && autoCloseConfig !== "always") {
-            const wordSeparators2 = getMapForWordSeparators(config.wordSeparators, []);
-            if (lineBefore.length > 0) {
-              const characterBefore = lineBefore.charCodeAt(lineBefore.length - 1);
-              if (wordSeparators2.get(characterBefore) === 0) {
-                return null;
-              }
-            }
-          }
-          if (!model.tokenization.isCheapToTokenize(lineNumber)) {
-            return null;
-          }
-          model.tokenization.forceTokenization(lineNumber);
-          const lineTokens = model.tokenization.getLineTokens(lineNumber);
-          const scopedLineTokens = createScopedLineTokens(lineTokens, beforeColumn - 1);
-          if (!pair.shouldAutoClose(scopedLineTokens, beforeColumn - scopedLineTokens.firstCharOffset)) {
-            return null;
-          }
-          const neutralCharacter = pair.findNeutralCharacter();
-          if (neutralCharacter) {
-            const tokenType = model.tokenization.getTokenTypeIfInsertingCharacter(lineNumber, beforeColumn, neutralCharacter);
-            if (!pair.isOK(tokenType)) {
-              return null;
-            }
-          }
-        }
-        if (isContainedPairPresent) {
-          return pair.close.substring(0, pair.close.length - containedPairClose.length);
-        } else {
-          return pair.close;
-        }
-      }
-      /**
-       * Find another auto-closing pair that is contained by the one passed in.
-       *
-       * e.g. when having [(,)] and [(*,*)] as auto-closing pairs
-       * this method will find [(,)] as a containment pair for [(*,*)]
-       */
-      static _findContainedAutoClosingPair(config, pair) {
-        if (pair.open.length <= 1) {
-          return null;
-        }
-        const lastChar = pair.close.charAt(pair.close.length - 1);
-        const candidates = config.autoClosingPairs.autoClosingPairsCloseByEnd.get(lastChar) || [];
-        let result = null;
-        for (const candidate of candidates) {
-          if (candidate.open !== pair.open && pair.open.includes(candidate.open) && pair.close.endsWith(candidate.close)) {
-            if (!result || candidate.open.length > result.open.length) {
-              result = candidate;
-            }
-          }
-        }
-        return result;
-      }
-      /**
-       * Determine if typing `ch` at all `positions` in the `model` results in an
-       * auto closing open sequence being typed.
-       *
-       * Auto closing open sequences can consist of multiple characters, which
-       * can lead to ambiguities. In such a case, the longest auto-closing open
-       * sequence is returned.
-       */
-      static _findAutoClosingPairOpen(config, model, positions, ch) {
-        const candidates = config.autoClosingPairs.autoClosingPairsOpenByEnd.get(ch);
-        if (!candidates) {
-          return null;
-        }
-        let result = null;
-        for (const candidate of candidates) {
-          if (result === null || candidate.open.length > result.open.length) {
-            let candidateIsMatch = true;
-            for (const position of positions) {
-              const relevantText = model.getValueInRange(new Range(position.lineNumber, position.column - candidate.open.length + 1, position.lineNumber, position.column));
-              if (relevantText + ch !== candidate.open) {
-                candidateIsMatch = false;
-                break;
-              }
-            }
-            if (candidateIsMatch) {
-              result = candidate;
-            }
-          }
-        }
-        return result;
-      }
-      static _isBeforeClosingBrace(config, lineAfter) {
-        const nextChar = lineAfter.charAt(0);
-        const potentialStartingBraces = config.autoClosingPairs.autoClosingPairsOpenByStart.get(nextChar) || [];
-        const potentialClosingBraces = config.autoClosingPairs.autoClosingPairsCloseByStart.get(nextChar) || [];
-        const isBeforeStartingBrace = potentialStartingBraces.some((x) => lineAfter.startsWith(x.open));
-        const isBeforeClosingBrace = potentialClosingBraces.some((x) => lineAfter.startsWith(x.close));
-        return !isBeforeStartingBrace && isBeforeClosingBrace;
-      }
-    };
-    CompositionEndOvertypeOperation = class {
-      static getEdits(config, compositions) {
-        const isOvertypeMode = config.inputMode === "overtype";
-        if (!isOvertypeMode) {
-          return null;
-        }
-        const commands = compositions.map((composition) => new ReplaceOvertypeCommandOnCompositionEnd(composition.insertedTextRange));
-        return new EditOperationResult(4, commands, {
-          shouldPushStackElementBefore: true,
-          shouldPushStackElementAfter: false
-        });
-      }
-    };
-    SurroundSelectionOperation = class {
-      static getEdits(config, model, selections, ch, isDoingComposition) {
-        if (!isDoingComposition && this._isSurroundSelectionType(config, model, selections, ch)) {
-          return this._runSurroundSelectionType(config, selections, ch);
-        }
-        return;
-      }
-      static _runSurroundSelectionType(config, selections, ch) {
-        const commands = [];
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          const selection = selections[i2];
-          const closeCharacter = config.surroundingPairs[ch];
-          commands[i2] = new SurroundSelectionCommand(selection, ch, closeCharacter);
-        }
-        return new EditOperationResult(0, commands, {
-          shouldPushStackElementBefore: true,
-          shouldPushStackElementAfter: true
-        });
-      }
-      static _isSurroundSelectionType(config, model, selections, ch) {
-        if (!shouldSurroundChar(config, ch) || !config.surroundingPairs.hasOwnProperty(ch)) {
-          return false;
-        }
-        const isTypingAQuoteCharacter = isQuote(ch);
-        for (const selection of selections) {
-          if (selection.isEmpty()) {
-            return false;
-          }
-          let selectionContainsOnlyWhitespace = true;
-          for (let lineNumber = selection.startLineNumber; lineNumber <= selection.endLineNumber; lineNumber++) {
-            const lineText = model.getLineContent(lineNumber);
-            const startIndex = lineNumber === selection.startLineNumber ? selection.startColumn - 1 : 0;
-            const endIndex = lineNumber === selection.endLineNumber ? selection.endColumn - 1 : lineText.length;
-            const selectedText = lineText.substring(startIndex, endIndex);
-            if (/[^ \t]/.test(selectedText)) {
-              selectionContainsOnlyWhitespace = false;
-              break;
-            }
-          }
-          if (selectionContainsOnlyWhitespace) {
-            return false;
-          }
-          if (isTypingAQuoteCharacter && selection.startLineNumber === selection.endLineNumber && selection.startColumn + 1 === selection.endColumn) {
-            const selectionText = model.getValueInRange(selection);
-            if (isQuote(selectionText)) {
-              return false;
-            }
-          }
-        }
-        return true;
-      }
-    };
-    InterceptorElectricCharOperation = class {
-      static getEdits(prevEditOperationType, config, model, selections, ch, isDoingComposition) {
-        if (!isDoingComposition && this._isTypeInterceptorElectricChar(config, model, selections)) {
-          const r = this._typeInterceptorElectricChar(prevEditOperationType, config, model, selections[0], ch);
-          if (r) {
-            return r;
-          }
-        }
-        return;
-      }
-      static _isTypeInterceptorElectricChar(config, model, selections) {
-        if (selections.length === 1 && model.tokenization.isCheapToTokenize(selections[0].getEndPosition().lineNumber)) {
-          return true;
-        }
-        return false;
-      }
-      static _typeInterceptorElectricChar(prevEditOperationType, config, model, selection, ch) {
-        if (!config.electricChars.hasOwnProperty(ch) || !selection.isEmpty()) {
-          return null;
-        }
-        const position = selection.getPosition();
-        model.tokenization.forceTokenization(position.lineNumber);
-        const lineTokens = model.tokenization.getLineTokens(position.lineNumber);
-        let electricAction;
-        try {
-          electricAction = config.onElectricCharacter(ch, lineTokens, position.column);
-        } catch (e) {
-          onUnexpectedError(e);
-          return null;
-        }
-        if (!electricAction) {
-          return null;
-        }
-        if (electricAction.matchOpenBracket) {
-          const endColumn = (lineTokens.getLineContent() + ch).lastIndexOf(electricAction.matchOpenBracket) + 1;
-          const match2 = model.bracketPairs.findMatchingBracketUp(
-            electricAction.matchOpenBracket,
-            {
-              lineNumber: position.lineNumber,
-              column: endColumn
-            },
-            500
-            /* give at most 500ms to compute */
-          );
-          if (match2) {
-            if (match2.startLineNumber === position.lineNumber) {
-              return null;
-            }
-            const matchLine = model.getLineContent(match2.startLineNumber);
-            const matchLineIndentation = getLeadingWhitespace(matchLine);
-            const newIndentation = config.normalizeIndentation(matchLineIndentation);
-            const lineText = model.getLineContent(position.lineNumber);
-            const lineFirstNonBlankColumn = model.getLineFirstNonWhitespaceColumn(position.lineNumber) || position.column;
-            const prefix = lineText.substring(lineFirstNonBlankColumn - 1, position.column - 1);
-            const typeText = newIndentation + prefix + ch;
-            const typeSelection = new Range(position.lineNumber, 1, position.lineNumber, position.column);
-            const command = new ReplaceCommand(typeSelection, typeText);
-            return new EditOperationResult(getTypingOperation(typeText, prevEditOperationType), [command], {
-              shouldPushStackElementBefore: false,
-              shouldPushStackElementAfter: true
-            });
-          }
-        }
-        return null;
-      }
-    };
-    SimpleCharacterTypeOperation = class {
-      static getEdits(config, prevEditOperationType, selections, ch, isDoingComposition) {
-        const commands = [];
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          const ChosenReplaceCommand = config.inputMode === "overtype" && !isDoingComposition ? ReplaceOvertypeCommand : ReplaceCommand;
-          commands[i2] = new ChosenReplaceCommand(selections[i2], ch);
-        }
-        const opType = getTypingOperation(ch, prevEditOperationType);
-        return new EditOperationResult(opType, commands, {
-          shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, opType),
-          shouldPushStackElementAfter: false
-        });
-      }
-    };
-    EnterOperation = class {
-      static getEdits(config, model, selections, ch, isDoingComposition) {
-        if (!isDoingComposition && ch === "\n") {
-          const commands = [];
-          for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-            commands[i2] = this._enter(config, model, false, selections[i2]);
-          }
-          return new EditOperationResult(4, commands, {
-            shouldPushStackElementBefore: true,
-            shouldPushStackElementAfter: false
-          });
-        }
-        return;
-      }
-      static _enter(config, model, keepPosition, range2) {
-        if (config.autoIndent === 0) {
-          return typeCommand(range2, "\n", keepPosition);
-        }
-        if (!model.tokenization.isCheapToTokenize(range2.getStartPosition().lineNumber) || config.autoIndent === 1) {
-          const lineText2 = model.getLineContent(range2.startLineNumber);
-          const indentation2 = getLeadingWhitespace(lineText2).substring(0, range2.startColumn - 1);
-          return typeCommand(range2, "\n" + config.normalizeIndentation(indentation2), keepPosition);
-        }
-        const r = getEnterAction(config.autoIndent, model, range2, config.languageConfigurationService);
-        if (r) {
-          if (r.indentAction === IndentAction.None) {
-            return typeCommand(range2, "\n" + config.normalizeIndentation(r.indentation + r.appendText), keepPosition);
-          } else if (r.indentAction === IndentAction.Indent) {
-            return typeCommand(range2, "\n" + config.normalizeIndentation(r.indentation + r.appendText), keepPosition);
-          } else if (r.indentAction === IndentAction.IndentOutdent) {
-            const normalIndent = config.normalizeIndentation(r.indentation);
-            const increasedIndent = config.normalizeIndentation(r.indentation + r.appendText);
-            const typeText = "\n" + increasedIndent + "\n" + normalIndent;
-            if (keepPosition) {
-              return new ReplaceCommandWithoutChangingPosition(range2, typeText, true);
-            } else {
-              return new ReplaceCommandWithOffsetCursorState(range2, typeText, -1, increasedIndent.length - normalIndent.length, true);
-            }
-          } else if (r.indentAction === IndentAction.Outdent) {
-            const actualIndentation = unshiftIndent(config, r.indentation);
-            return typeCommand(range2, "\n" + config.normalizeIndentation(actualIndentation + r.appendText), keepPosition);
-          }
-        }
-        const lineText = model.getLineContent(range2.startLineNumber);
-        const indentation = getLeadingWhitespace(lineText).substring(0, range2.startColumn - 1);
-        if (config.autoIndent >= 4) {
-          const ir = getIndentForEnter(config.autoIndent, model, range2, {
-            unshiftIndent: (indent) => {
-              return unshiftIndent(config, indent);
-            },
-            shiftIndent: (indent) => {
-              return shiftIndent(config, indent);
-            },
-            normalizeIndentation: (indent) => {
-              return config.normalizeIndentation(indent);
-            }
-          }, config.languageConfigurationService);
-          if (ir) {
-            let oldEndViewColumn = config.visibleColumnFromColumn(model, range2.getEndPosition());
-            const oldEndColumn = range2.endColumn;
-            const newLineContent = model.getLineContent(range2.endLineNumber);
-            const firstNonWhitespace = firstNonWhitespaceIndex(newLineContent);
-            if (firstNonWhitespace >= 0) {
-              range2 = range2.setEndPosition(range2.endLineNumber, Math.max(range2.endColumn, firstNonWhitespace + 1));
-            } else {
-              range2 = range2.setEndPosition(range2.endLineNumber, model.getLineMaxColumn(range2.endLineNumber));
-            }
-            if (keepPosition) {
-              return new ReplaceCommandWithoutChangingPosition(range2, "\n" + config.normalizeIndentation(ir.afterEnter), true);
-            } else {
-              let offset = 0;
-              if (oldEndColumn <= firstNonWhitespace + 1) {
-                if (!config.insertSpaces) {
-                  oldEndViewColumn = Math.ceil(oldEndViewColumn / config.indentSize);
-                }
-                offset = Math.min(oldEndViewColumn + 1 - config.normalizeIndentation(ir.afterEnter).length - 1, 0);
-              }
-              return new ReplaceCommandWithOffsetCursorState(range2, "\n" + config.normalizeIndentation(ir.afterEnter), 0, offset, true);
-            }
-          }
-        }
-        return typeCommand(range2, "\n" + config.normalizeIndentation(indentation), keepPosition);
-      }
-      static lineInsertBefore(config, model, selections) {
-        if (model === null || selections === null) {
-          return [];
-        }
-        const commands = [];
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          let lineNumber = selections[i2].positionLineNumber;
-          if (lineNumber === 1) {
-            commands[i2] = new ReplaceCommandWithoutChangingPosition(new Range(1, 1, 1, 1), "\n");
-          } else {
-            lineNumber--;
-            const column = model.getLineMaxColumn(lineNumber);
-            commands[i2] = this._enter(config, model, false, new Range(lineNumber, column, lineNumber, column));
-          }
-        }
-        return commands;
-      }
-      static lineInsertAfter(config, model, selections) {
-        if (model === null || selections === null) {
-          return [];
-        }
-        const commands = [];
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          const lineNumber = selections[i2].positionLineNumber;
-          const column = model.getLineMaxColumn(lineNumber);
-          commands[i2] = this._enter(config, model, false, new Range(lineNumber, column, lineNumber, column));
-        }
-        return commands;
-      }
-      static lineBreakInsert(config, model, selections) {
-        const commands = [];
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          commands[i2] = this._enter(config, model, true, selections[i2]);
-        }
-        return commands;
-      }
-    };
-    PasteOperation = class {
-      static getEdits(config, model, selections, text2, pasteOnNewLine, multicursorText) {
-        const distributedPaste = this._distributePasteToCursors(config, selections, text2, pasteOnNewLine, multicursorText);
-        if (distributedPaste) {
-          selections = selections.sort(Range.compareRangesUsingStarts);
-          return this._distributedPaste(config, model, selections, distributedPaste);
-        } else {
-          return this._simplePaste(config, model, selections, text2, pasteOnNewLine);
-        }
-      }
-      static _distributePasteToCursors(config, selections, text2, pasteOnNewLine, multicursorText) {
-        if (pasteOnNewLine) {
-          return null;
-        }
-        if (selections.length === 1) {
-          return null;
-        }
-        if (multicursorText && multicursorText.length === selections.length) {
-          return multicursorText;
-        }
-        if (config.multiCursorPaste === "spread") {
-          if (text2.charCodeAt(text2.length - 1) === 10) {
-            text2 = text2.substring(0, text2.length - 1);
-          }
-          if (text2.charCodeAt(text2.length - 1) === 13) {
-            text2 = text2.substring(0, text2.length - 1);
-          }
-          const lines = splitLines(text2);
-          if (lines.length === selections.length) {
-            return lines;
-          }
-        }
-        return null;
-      }
-      static _distributedPaste(config, model, selections, text2) {
-        const commands = [];
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          const shouldOvertypeOnPaste = config.overtypeOnPaste && config.inputMode === "overtype";
-          const ChosenReplaceCommand = shouldOvertypeOnPaste ? ReplaceOvertypeCommand : ReplaceCommand;
-          commands[i2] = new ChosenReplaceCommand(selections[i2], text2[i2]);
-        }
-        return new EditOperationResult(0, commands, {
-          shouldPushStackElementBefore: true,
-          shouldPushStackElementAfter: true
-        });
-      }
-      static _simplePaste(config, model, selections, text2, pasteOnNewLine) {
-        const commands = [];
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          const selection = selections[i2];
-          const position = selection.getPosition();
-          if (pasteOnNewLine && !selection.isEmpty()) {
-            pasteOnNewLine = false;
-          }
-          if (pasteOnNewLine && text2.indexOf("\n") !== text2.length - 1) {
-            pasteOnNewLine = false;
-          }
-          if (pasteOnNewLine) {
-            const typeSelection = new Range(position.lineNumber, 1, position.lineNumber, 1);
-            commands[i2] = new ReplaceCommandThatPreservesSelection(typeSelection, text2, selection, true);
-          } else {
-            const shouldOvertypeOnPaste = config.overtypeOnPaste && config.inputMode === "overtype";
-            const ChosenReplaceCommand = shouldOvertypeOnPaste ? ReplaceOvertypeCommand : ReplaceCommand;
-            commands[i2] = new ChosenReplaceCommand(selection, text2);
-          }
-        }
-        return new EditOperationResult(0, commands, {
-          shouldPushStackElementBefore: true,
-          shouldPushStackElementAfter: true
-        });
-      }
-    };
-    CompositionOperation = class {
-      static getEdits(prevEditOperationType, config, model, selections, text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta) {
-        const commands = selections.map((selection) => this._compositionType(model, selection, text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta));
-        return new EditOperationResult(4, commands, {
-          shouldPushStackElementBefore: shouldPushStackElementBetween(
-            prevEditOperationType,
-            4
-            /* EditOperationType.TypingOther */
-          ),
-          shouldPushStackElementAfter: false
-        });
-      }
-      static _compositionType(model, selection, text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta) {
-        if (!selection.isEmpty()) {
-          return null;
-        }
-        const pos = selection.getPosition();
-        const startColumn = Math.max(1, pos.column - replacePrevCharCnt);
-        const endColumn = Math.min(model.getLineMaxColumn(pos.lineNumber), pos.column + replaceNextCharCnt);
-        const range2 = new Range(pos.lineNumber, startColumn, pos.lineNumber, endColumn);
-        return new ReplaceCommandWithOffsetCursorState(range2, text2, 0, positionDelta);
-      }
-    };
-    TypeWithoutInterceptorsOperation = class {
-      static getEdits(prevEditOperationType, selections, str) {
-        const commands = [];
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          commands[i2] = new ReplaceCommand(selections[i2], str);
-        }
-        const opType = getTypingOperation(str, prevEditOperationType);
-        return new EditOperationResult(opType, commands, {
-          shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, opType),
-          shouldPushStackElementAfter: false
-        });
-      }
-    };
-    TabOperation = class {
-      static getCommands(config, model, selections) {
-        const commands = [];
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          const selection = selections[i2];
-          if (selection.isEmpty()) {
-            const lineText = model.getLineContent(selection.startLineNumber);
-            if (/^\s*$/.test(lineText) && model.tokenization.isCheapToTokenize(selection.startLineNumber)) {
-              let goodIndent = this._goodIndentForLine(config, model, selection.startLineNumber);
-              goodIndent = goodIndent || "	";
-              const possibleTypeText = config.normalizeIndentation(goodIndent);
-              if (!lineText.startsWith(possibleTypeText)) {
-                commands[i2] = new ReplaceCommand(new Range(selection.startLineNumber, 1, selection.startLineNumber, lineText.length + 1), possibleTypeText, true);
-                continue;
-              }
-            }
-            commands[i2] = this._replaceJumpToNextIndent(config, model, selection, true);
-          } else {
-            if (selection.startLineNumber === selection.endLineNumber) {
-              const lineMaxColumn = model.getLineMaxColumn(selection.startLineNumber);
-              if (selection.startColumn !== 1 || selection.endColumn !== lineMaxColumn) {
-                commands[i2] = this._replaceJumpToNextIndent(config, model, selection, false);
-                continue;
-              }
-            }
-            commands[i2] = new ShiftCommand(selection, {
-              isUnshift: false,
-              tabSize: config.tabSize,
-              indentSize: config.indentSize,
-              insertSpaces: config.insertSpaces,
-              useTabStops: config.useTabStops,
-              autoIndent: config.autoIndent
-            }, config.languageConfigurationService);
-          }
-        }
-        return commands;
-      }
-      static _goodIndentForLine(config, model, lineNumber) {
-        let action = null;
-        let indentation = "";
-        const expectedIndentAction = getInheritIndentForLine(config.autoIndent, model, lineNumber, false, config.languageConfigurationService);
-        if (expectedIndentAction) {
-          action = expectedIndentAction.action;
-          indentation = expectedIndentAction.indentation;
-        } else if (lineNumber > 1) {
-          let lastLineNumber;
-          for (lastLineNumber = lineNumber - 1; lastLineNumber >= 1; lastLineNumber--) {
-            const lineText = model.getLineContent(lastLineNumber);
-            const nonWhitespaceIdx = lastNonWhitespaceIndex(lineText);
-            if (nonWhitespaceIdx >= 0) {
-              break;
-            }
-          }
-          if (lastLineNumber < 1) {
-            return null;
-          }
-          const maxColumn = model.getLineMaxColumn(lastLineNumber);
-          const expectedEnterAction = getEnterAction(config.autoIndent, model, new Range(lastLineNumber, maxColumn, lastLineNumber, maxColumn), config.languageConfigurationService);
-          if (expectedEnterAction) {
-            indentation = expectedEnterAction.indentation + expectedEnterAction.appendText;
-          }
-        }
-        if (action) {
-          if (action === IndentAction.Indent) {
-            indentation = shiftIndent(config, indentation);
-          }
-          if (action === IndentAction.Outdent) {
-            indentation = unshiftIndent(config, indentation);
-          }
-          indentation = config.normalizeIndentation(indentation);
-        }
-        if (!indentation) {
-          return null;
-        }
-        return indentation;
-      }
-      static _replaceJumpToNextIndent(config, model, selection, insertsAutoWhitespace) {
-        let typeText = "";
-        const position = selection.getStartPosition();
-        if (config.insertSpaces) {
-          const visibleColumnFromColumn = config.visibleColumnFromColumn(model, position);
-          const indentSize = config.indentSize;
-          const spacesCnt = indentSize - visibleColumnFromColumn % indentSize;
-          for (let i2 = 0; i2 < spacesCnt; i2++) {
-            typeText += " ";
-          }
-        } else {
-          typeText = "	";
-        }
-        return new ReplaceCommand(selection, typeText, insertsAutoWhitespace);
-      }
-    };
-    BaseTypeWithAutoClosingCommand = class extends ReplaceCommandWithOffsetCursorState {
-      constructor(selection, text2, lineNumberDeltaOffset, columnDeltaOffset, openCharacter, closeCharacter) {
-        super(selection, text2, lineNumberDeltaOffset, columnDeltaOffset);
-        this._openCharacter = openCharacter;
-        this._closeCharacter = closeCharacter;
-        this.closeCharacterRange = null;
-        this.enclosingRange = null;
-      }
-      _computeCursorStateWithRange(model, range2, helper) {
-        this.closeCharacterRange = new Range(range2.startLineNumber, range2.endColumn - this._closeCharacter.length, range2.endLineNumber, range2.endColumn);
-        this.enclosingRange = new Range(range2.startLineNumber, range2.endColumn - this._openCharacter.length - this._closeCharacter.length, range2.endLineNumber, range2.endColumn);
-        return super.computeCursorState(model, helper);
-      }
-    };
-    TypeWithAutoClosingCommand = class extends BaseTypeWithAutoClosingCommand {
-      constructor(selection, openCharacter, insertOpenCharacter, closeCharacter) {
-        const text2 = (insertOpenCharacter ? openCharacter : "") + closeCharacter;
-        const lineNumberDeltaOffset = 0;
-        const columnDeltaOffset = -closeCharacter.length;
-        super(selection, text2, lineNumberDeltaOffset, columnDeltaOffset, openCharacter, closeCharacter);
-      }
-      computeCursorState(model, helper) {
-        const inverseEditOperations = helper.getInverseEditOperations();
-        const range2 = inverseEditOperations[0].range;
-        return this._computeCursorStateWithRange(model, range2, helper);
-      }
-    };
-    TypeWithIndentationAndAutoClosingCommand = class extends BaseTypeWithAutoClosingCommand {
-      constructor(autoIndentationEdit, selection, openCharacter, closeCharacter) {
-        const text2 = openCharacter + closeCharacter;
-        const lineNumberDeltaOffset = 0;
-        const columnDeltaOffset = openCharacter.length;
-        super(selection, text2, lineNumberDeltaOffset, columnDeltaOffset, openCharacter, closeCharacter);
-        this._autoIndentationEdit = autoIndentationEdit;
-        this._autoClosingEdit = { range: selection, text: text2 };
-      }
-      getEditOperations(model, builder) {
-        builder.addTrackedEditOperation(this._autoIndentationEdit.range, this._autoIndentationEdit.text);
-        builder.addTrackedEditOperation(this._autoClosingEdit.range, this._autoClosingEdit.text);
-      }
-      computeCursorState(model, helper) {
-        const inverseEditOperations = helper.getInverseEditOperations();
-        if (inverseEditOperations.length !== 2) {
-          throw new Error("There should be two inverse edit operations!");
-        }
-        const range1 = inverseEditOperations[0].range;
-        const range2 = inverseEditOperations[1].range;
-        const range3 = range1.plusRange(range2);
-        return this._computeCursorStateWithRange(model, range3, helper);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorTypeOperations.js
-var TypeOperations, CompositionOutcome;
-var init_cursorTypeOperations = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorTypeOperations.js"() {
-    init_shiftCommand();
-    init_surroundSelectionCommand();
-    init_cursorCommon();
-    init_cursorTypeEditOperations();
-    TypeOperations = class {
-      static indent(config, model, selections) {
-        if (model === null || selections === null) {
-          return [];
-        }
-        const commands = [];
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          commands[i2] = new ShiftCommand(selections[i2], {
-            isUnshift: false,
-            tabSize: config.tabSize,
-            indentSize: config.indentSize,
-            insertSpaces: config.insertSpaces,
-            useTabStops: config.useTabStops,
-            autoIndent: config.autoIndent
-          }, config.languageConfigurationService);
-        }
-        return commands;
-      }
-      static outdent(config, model, selections) {
-        const commands = [];
-        for (let i2 = 0, len = selections.length; i2 < len; i2++) {
-          commands[i2] = new ShiftCommand(selections[i2], {
-            isUnshift: true,
-            tabSize: config.tabSize,
-            indentSize: config.indentSize,
-            insertSpaces: config.insertSpaces,
-            useTabStops: config.useTabStops,
-            autoIndent: config.autoIndent
-          }, config.languageConfigurationService);
-        }
-        return commands;
-      }
-      static paste(config, model, selections, text2, pasteOnNewLine, multicursorText) {
-        return PasteOperation.getEdits(config, model, selections, text2, pasteOnNewLine, multicursorText);
-      }
-      static tab(config, model, selections) {
-        return TabOperation.getCommands(config, model, selections);
-      }
-      static compositionType(prevEditOperationType, config, model, selections, text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta) {
-        return CompositionOperation.getEdits(prevEditOperationType, config, model, selections, text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta);
-      }
-      /**
-       * This is very similar with typing, but the character is already in the text buffer!
-       */
-      static compositionEndWithInterceptors(prevEditOperationType, config, model, compositions, selections, autoClosedCharacters) {
-        if (!compositions) {
-          return null;
-        }
-        let insertedText = null;
-        for (const composition of compositions) {
-          if (insertedText === null) {
-            insertedText = composition.insertedText;
-          } else if (insertedText !== composition.insertedText) {
-            return null;
-          }
-        }
-        if (!insertedText || insertedText.length !== 1) {
-          return CompositionEndOvertypeOperation.getEdits(config, compositions);
-        }
-        const ch = insertedText;
-        let hasDeletion = false;
-        for (const composition of compositions) {
-          if (composition.deletedText.length !== 0) {
-            hasDeletion = true;
-            break;
-          }
-        }
-        if (hasDeletion) {
-          if (!shouldSurroundChar(config, ch) || !config.surroundingPairs.hasOwnProperty(ch)) {
-            return null;
-          }
-          const isTypingAQuoteCharacter = isQuote(ch);
-          for (const composition of compositions) {
-            if (composition.deletedSelectionStart !== 0 || composition.deletedSelectionEnd !== composition.deletedText.length) {
-              return null;
-            }
-            if (/^[ \t]+$/.test(composition.deletedText)) {
-              return null;
-            }
-            if (isTypingAQuoteCharacter && isQuote(composition.deletedText)) {
-              return null;
-            }
-          }
-          const positions = [];
-          for (const selection of selections) {
-            if (!selection.isEmpty()) {
-              return null;
-            }
-            positions.push(selection.getPosition());
-          }
-          if (positions.length !== compositions.length) {
-            return null;
-          }
-          const commands = [];
-          for (let i2 = 0, len = positions.length; i2 < len; i2++) {
-            commands.push(new CompositionSurroundSelectionCommand(positions[i2], compositions[i2].deletedText, config.surroundingPairs[ch]));
-          }
-          return new EditOperationResult(4, commands, {
-            shouldPushStackElementBefore: true,
-            shouldPushStackElementAfter: false
-          });
-        }
-        const autoClosingOvertypeEdits = AutoClosingOvertypeWithInterceptorsOperation.getEdits(config, model, selections, autoClosedCharacters, ch);
-        if (autoClosingOvertypeEdits !== void 0) {
-          return autoClosingOvertypeEdits;
-        }
-        const autoClosingOpenCharEdits = AutoClosingOpenCharTypeOperation.getEdits(config, model, selections, ch, true, false);
-        if (autoClosingOpenCharEdits !== void 0) {
-          return autoClosingOpenCharEdits;
-        }
-        return CompositionEndOvertypeOperation.getEdits(config, compositions);
-      }
-      static typeWithInterceptors(isDoingComposition, prevEditOperationType, config, model, selections, autoClosedCharacters, ch) {
-        const enterEdits = EnterOperation.getEdits(config, model, selections, ch, isDoingComposition);
-        if (enterEdits !== void 0) {
-          return enterEdits;
-        }
-        const autoIndentEdits = AutoIndentOperation.getEdits(config, model, selections, ch, isDoingComposition);
-        if (autoIndentEdits !== void 0) {
-          return autoIndentEdits;
-        }
-        const autoClosingOverTypeEdits = AutoClosingOvertypeOperation.getEdits(prevEditOperationType, config, model, selections, autoClosedCharacters, ch);
-        if (autoClosingOverTypeEdits !== void 0) {
-          return autoClosingOverTypeEdits;
-        }
-        const autoClosingOpenCharEdits = AutoClosingOpenCharTypeOperation.getEdits(config, model, selections, ch, false, isDoingComposition);
-        if (autoClosingOpenCharEdits !== void 0) {
-          return autoClosingOpenCharEdits;
-        }
-        const surroundSelectionEdits = SurroundSelectionOperation.getEdits(config, model, selections, ch, isDoingComposition);
-        if (surroundSelectionEdits !== void 0) {
-          return surroundSelectionEdits;
-        }
-        const interceptorElectricCharOperation = InterceptorElectricCharOperation.getEdits(prevEditOperationType, config, model, selections, ch, isDoingComposition);
-        if (interceptorElectricCharOperation !== void 0) {
-          return interceptorElectricCharOperation;
-        }
-        return SimpleCharacterTypeOperation.getEdits(config, prevEditOperationType, selections, ch, isDoingComposition);
-      }
-      static typeWithoutInterceptors(prevEditOperationType, config, model, selections, str) {
-        return TypeWithoutInterceptorsOperation.getEdits(prevEditOperationType, selections, str);
-      }
-    };
-    CompositionOutcome = class {
-      constructor(deletedText, deletedSelectionStart, deletedSelectionEnd, insertedText, insertedSelectionStart, insertedSelectionEnd, insertedTextRange) {
-        this.deletedText = deletedText;
-        this.deletedSelectionStart = deletedSelectionStart;
-        this.deletedSelectionEnd = deletedSelectionEnd;
-        this.insertedText = insertedText;
-        this.insertedSelectionStart = insertedSelectionStart;
-        this.insertedSelectionEnd = insertedSelectionEnd;
-        this.insertedTextRange = insertedTextRange;
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/editorContextKeys.js
-var EditorContextKeys;
-var init_editorContextKeys = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/editorContextKeys.js"() {
-    init_nls();
-    init_contextkey();
-    (function(EditorContextKeys2) {
-      EditorContextKeys2.editorSimpleInput = new RawContextKey("editorSimpleInput", false, true);
-      EditorContextKeys2.editorTextFocus = new RawContextKey("editorTextFocus", false, localize(681, "Whether the editor text has focus (cursor is blinking)"));
-      EditorContextKeys2.focus = new RawContextKey("editorFocus", false, localize(682, "Whether the editor or an editor widget has focus (e.g. focus is in the find widget)"));
-      EditorContextKeys2.textInputFocus = new RawContextKey("textInputFocus", false, localize(683, "Whether an editor or a rich text input has focus (cursor is blinking)"));
-      EditorContextKeys2.readOnly = new RawContextKey("editorReadonly", false, localize(684, "Whether the editor is read-only"));
-      EditorContextKeys2.inDiffEditor = new RawContextKey("inDiffEditor", false, localize(685, "Whether the context is a diff editor"));
-      EditorContextKeys2.isEmbeddedDiffEditor = new RawContextKey("isEmbeddedDiffEditor", false, localize(686, "Whether the context is an embedded diff editor"));
-      EditorContextKeys2.inMultiDiffEditor = new RawContextKey("inMultiDiffEditor", false, localize(687, "Whether the context is a multi diff editor"));
-      EditorContextKeys2.multiDiffEditorAllCollapsed = new RawContextKey("multiDiffEditorAllCollapsed", void 0, localize(688, "Whether all files in multi diff editor are collapsed"));
-      EditorContextKeys2.hasChanges = new RawContextKey("diffEditorHasChanges", false, localize(689, "Whether the diff editor has changes"));
-      EditorContextKeys2.comparingMovedCode = new RawContextKey("comparingMovedCode", false, localize(690, "Whether a moved code block is selected for comparison"));
-      EditorContextKeys2.accessibleDiffViewerVisible = new RawContextKey("accessibleDiffViewerVisible", false, localize(691, "Whether the accessible diff viewer is visible"));
-      EditorContextKeys2.diffEditorRenderSideBySideInlineBreakpointReached = new RawContextKey("diffEditorRenderSideBySideInlineBreakpointReached", false, localize(692, "Whether the diff editor render side by side inline breakpoint is reached"));
-      EditorContextKeys2.diffEditorInlineMode = new RawContextKey("diffEditorInlineMode", false, localize(693, "Whether inline mode is active"));
-      EditorContextKeys2.diffEditorOriginalWritable = new RawContextKey("diffEditorOriginalWritable", false, localize(694, "Whether modified is writable in the diff editor"));
-      EditorContextKeys2.diffEditorModifiedWritable = new RawContextKey("diffEditorModifiedWritable", false, localize(695, "Whether modified is writable in the diff editor"));
-      EditorContextKeys2.diffEditorOriginalUri = new RawContextKey("diffEditorOriginalUri", "", localize(696, "The uri of the original document"));
-      EditorContextKeys2.diffEditorModifiedUri = new RawContextKey("diffEditorModifiedUri", "", localize(697, "The uri of the modified document"));
-      EditorContextKeys2.columnSelection = new RawContextKey("editorColumnSelection", false, localize(698, "Whether `editor.columnSelection` is enabled"));
-      EditorContextKeys2.writable = EditorContextKeys2.readOnly.toNegated();
-      EditorContextKeys2.hasNonEmptySelection = new RawContextKey("editorHasSelection", false, localize(699, "Whether the editor has text selected"));
-      EditorContextKeys2.hasOnlyEmptySelection = EditorContextKeys2.hasNonEmptySelection.toNegated();
-      EditorContextKeys2.hasMultipleSelections = new RawContextKey("editorHasMultipleSelections", false, localize(700, "Whether the editor has multiple selections"));
-      EditorContextKeys2.hasSingleSelection = EditorContextKeys2.hasMultipleSelections.toNegated();
-      EditorContextKeys2.tabMovesFocus = new RawContextKey("editorTabMovesFocus", false, localize(701, "Whether `Tab` will move focus out of the editor"));
-      EditorContextKeys2.tabDoesNotMoveFocus = EditorContextKeys2.tabMovesFocus.toNegated();
-      EditorContextKeys2.isInEmbeddedEditor = new RawContextKey("isInEmbeddedEditor", false, true);
-      EditorContextKeys2.canUndo = new RawContextKey("canUndo", false, true);
-      EditorContextKeys2.canRedo = new RawContextKey("canRedo", false, true);
-      EditorContextKeys2.hoverVisible = new RawContextKey("editorHoverVisible", false, localize(702, "Whether the editor hover is visible"));
-      EditorContextKeys2.hoverFocused = new RawContextKey("editorHoverFocused", false, localize(703, "Whether the editor hover is focused"));
-      EditorContextKeys2.stickyScrollFocused = new RawContextKey("stickyScrollFocused", false, localize(704, "Whether the sticky scroll is focused"));
-      EditorContextKeys2.stickyScrollVisible = new RawContextKey("stickyScrollVisible", false, localize(705, "Whether the sticky scroll is visible"));
-      EditorContextKeys2.standaloneColorPickerVisible = new RawContextKey("standaloneColorPickerVisible", false, localize(706, "Whether the standalone color picker is visible"));
-      EditorContextKeys2.standaloneColorPickerFocused = new RawContextKey("standaloneColorPickerFocused", false, localize(707, "Whether the standalone color picker is focused"));
-      EditorContextKeys2.inCompositeEditor = new RawContextKey("inCompositeEditor", void 0, localize(708, "Whether the editor is part of a larger editor (e.g. notebooks)"));
-      EditorContextKeys2.notInCompositeEditor = EditorContextKeys2.inCompositeEditor.toNegated();
-      EditorContextKeys2.languageId = new RawContextKey("editorLangId", "", localize(709, "The language identifier of the editor"));
-      EditorContextKeys2.hasCompletionItemProvider = new RawContextKey("editorHasCompletionItemProvider", false, localize(710, "Whether the editor has a completion item provider"));
-      EditorContextKeys2.hasCodeActionsProvider = new RawContextKey("editorHasCodeActionsProvider", false, localize(711, "Whether the editor has a code actions provider"));
-      EditorContextKeys2.hasCodeLensProvider = new RawContextKey("editorHasCodeLensProvider", false, localize(712, "Whether the editor has a code lens provider"));
-      EditorContextKeys2.hasDefinitionProvider = new RawContextKey("editorHasDefinitionProvider", false, localize(713, "Whether the editor has a definition provider"));
-      EditorContextKeys2.hasDeclarationProvider = new RawContextKey("editorHasDeclarationProvider", false, localize(714, "Whether the editor has a declaration provider"));
-      EditorContextKeys2.hasImplementationProvider = new RawContextKey("editorHasImplementationProvider", false, localize(715, "Whether the editor has an implementation provider"));
-      EditorContextKeys2.hasTypeDefinitionProvider = new RawContextKey("editorHasTypeDefinitionProvider", false, localize(716, "Whether the editor has a type definition provider"));
-      EditorContextKeys2.hasHoverProvider = new RawContextKey("editorHasHoverProvider", false, localize(717, "Whether the editor has a hover provider"));
-      EditorContextKeys2.hasDocumentHighlightProvider = new RawContextKey("editorHasDocumentHighlightProvider", false, localize(718, "Whether the editor has a document highlight provider"));
-      EditorContextKeys2.hasDocumentSymbolProvider = new RawContextKey("editorHasDocumentSymbolProvider", false, localize(719, "Whether the editor has a document symbol provider"));
-      EditorContextKeys2.hasReferenceProvider = new RawContextKey("editorHasReferenceProvider", false, localize(720, "Whether the editor has a reference provider"));
-      EditorContextKeys2.hasRenameProvider = new RawContextKey("editorHasRenameProvider", false, localize(721, "Whether the editor has a rename provider"));
-      EditorContextKeys2.hasSignatureHelpProvider = new RawContextKey("editorHasSignatureHelpProvider", false, localize(722, "Whether the editor has a signature help provider"));
-      EditorContextKeys2.hasInlayHintsProvider = new RawContextKey("editorHasInlayHintsProvider", false, localize(723, "Whether the editor has an inline hints provider"));
-      EditorContextKeys2.hasDocumentFormattingProvider = new RawContextKey("editorHasDocumentFormattingProvider", false, localize(724, "Whether the editor has a document formatting provider"));
-      EditorContextKeys2.hasDocumentSelectionFormattingProvider = new RawContextKey("editorHasDocumentSelectionFormattingProvider", false, localize(725, "Whether the editor has a document selection formatting provider"));
-      EditorContextKeys2.hasMultipleDocumentFormattingProvider = new RawContextKey("editorHasMultipleDocumentFormattingProvider", false, localize(726, "Whether the editor has multiple document formatting providers"));
-      EditorContextKeys2.hasMultipleDocumentSelectionFormattingProvider = new RawContextKey("editorHasMultipleDocumentSelectionFormattingProvider", false, localize(727, "Whether the editor has multiple document selection formatting providers"));
-    })(EditorContextKeys || (EditorContextKeys = {}));
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/browser/coreCommands.js
-function registerColumnSelection(id, keybinding) {
-  KeybindingsRegistry.registerKeybindingRule({
-    id,
-    primary: keybinding,
-    when: columnSelectionCondition,
-    weight: CORE_WEIGHT + 1
-  });
-}
-function registerCommand2(command) {
-  command.register();
-  return command;
-}
-function registerOverwritableCommand(handlerId, metadata) {
-  registerCommand2(new EditorHandlerCommand("default:" + handlerId, handlerId));
-  registerCommand2(new EditorHandlerCommand(handlerId, handlerId, metadata));
-}
-var CORE_WEIGHT, CoreEditorCommand, EditorScroll_, RevealLine_, EditorOrNativeTextInputCommand, CoreNavigationCommands, columnSelectionCondition, CoreEditingCommands, EditorHandlerCommand;
-var init_coreCommands = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/browser/coreCommands.js"() {
-    init_nls();
-    init_browser();
-    init_types();
-    init_aria2();
-    init_editorExtensions();
-    init_codeEditorService();
-    init_cursorColumnSelection();
-    init_cursorCommon();
-    init_cursorDeleteOperations();
-    init_cursorMoveCommands();
-    init_cursorTypeOperations();
-    init_position();
-    init_range();
-    init_editorContextKeys();
-    init_contextkey();
-    init_keybindingsRegistry();
-    init_dom();
-    init_cursorTypeEditOperations();
-    CORE_WEIGHT = 0;
-    CoreEditorCommand = class extends EditorCommand {
-      runEditorCommand(accessor, editor2, args) {
-        const viewModel = editor2._getViewModel();
-        if (!viewModel) {
-          return;
-        }
-        this.runCoreEditorCommand(viewModel, args || {});
-      }
-    };
-    (function(EditorScroll_2) {
-      const isEditorScrollArgs = function(arg) {
-        if (!isObject(arg)) {
-          return false;
-        }
-        const scrollArg = arg;
-        if (!isString(scrollArg.to)) {
-          return false;
-        }
-        if (!isUndefined(scrollArg.by) && !isString(scrollArg.by)) {
-          return false;
-        }
-        if (!isUndefined(scrollArg.value) && !isNumber(scrollArg.value)) {
-          return false;
-        }
-        if (!isUndefined(scrollArg.revealCursor) && !isBoolean(scrollArg.revealCursor)) {
-          return false;
-        }
-        return true;
-      };
-      EditorScroll_2.metadata = {
-        description: "Scroll editor in the given direction",
-        args: [
-          {
-            name: "Editor scroll argument object",
-            description: `Property-value pairs that can be passed through this argument:
-					* 'to': A mandatory direction value.
-						\`\`\`
-						'up', 'down'
-						\`\`\`
-					* 'by': Unit to move. Default is computed based on 'to' value.
-						\`\`\`
-						'line', 'wrappedLine', 'page', 'halfPage', 'editor'
-						\`\`\`
-					* 'value': Number of units to move. Default is '1'.
-					* 'revealCursor': If 'true' reveals the cursor if it is outside view port.
-				`,
-            constraint: isEditorScrollArgs,
-            schema: {
-              "type": "object",
-              "required": ["to"],
-              "properties": {
-                "to": {
-                  "type": "string",
-                  "enum": ["up", "down"]
-                },
-                "by": {
-                  "type": "string",
-                  "enum": ["line", "wrappedLine", "page", "halfPage", "editor"]
-                },
-                "value": {
-                  "type": "number",
-                  "default": 1
-                },
-                "revealCursor": {
-                  "type": "boolean"
-                }
-              }
-            }
-          }
-        ]
-      };
-      EditorScroll_2.RawDirection = {
-        Up: "up",
-        Right: "right",
-        Down: "down",
-        Left: "left"
-      };
-      EditorScroll_2.RawUnit = {
-        Line: "line",
-        WrappedLine: "wrappedLine",
-        Page: "page",
-        HalfPage: "halfPage",
-        Editor: "editor",
-        Column: "column"
-      };
-      function parse5(args) {
-        let direction;
-        switch (args.to) {
-          case EditorScroll_2.RawDirection.Up:
-            direction = 1;
-            break;
-          case EditorScroll_2.RawDirection.Right:
-            direction = 2;
-            break;
-          case EditorScroll_2.RawDirection.Down:
-            direction = 3;
-            break;
-          case EditorScroll_2.RawDirection.Left:
-            direction = 4;
-            break;
-          default:
-            return null;
-        }
-        let unit;
-        switch (args.by) {
-          case EditorScroll_2.RawUnit.Line:
-            unit = 1;
-            break;
-          case EditorScroll_2.RawUnit.WrappedLine:
-            unit = 2;
-            break;
-          case EditorScroll_2.RawUnit.Page:
-            unit = 3;
-            break;
-          case EditorScroll_2.RawUnit.HalfPage:
-            unit = 4;
-            break;
-          case EditorScroll_2.RawUnit.Editor:
-            unit = 5;
-            break;
-          case EditorScroll_2.RawUnit.Column:
-            unit = 6;
-            break;
-          default:
-            unit = 2;
-        }
-        const value = Math.floor(args.value || 1);
-        const revealCursor = !!args.revealCursor;
-        return {
-          direction,
-          unit,
-          value,
-          revealCursor,
-          select: !!args.select
-        };
-      }
-      EditorScroll_2.parse = parse5;
-    })(EditorScroll_ || (EditorScroll_ = {}));
-    (function(RevealLine_2) {
-      const isRevealLineArgs = function(arg) {
-        if (!isObject(arg)) {
-          return false;
-        }
-        const reveaLineArg = arg;
-        if (!isNumber(reveaLineArg.lineNumber) && !isString(reveaLineArg.lineNumber)) {
-          return false;
-        }
-        if (!isUndefined(reveaLineArg.at) && !isString(reveaLineArg.at)) {
-          return false;
-        }
-        return true;
-      };
-      RevealLine_2.metadata = {
-        description: "Reveal the given line at the given logical position",
-        args: [
-          {
-            name: "Reveal line argument object",
-            description: `Property-value pairs that can be passed through this argument:
-					* 'lineNumber': A mandatory line number value.
-					* 'at': Logical position at which line has to be revealed.
-						\`\`\`
-						'top', 'center', 'bottom'
-						\`\`\`
-				`,
-            constraint: isRevealLineArgs,
-            schema: {
-              "type": "object",
-              "required": ["lineNumber"],
-              "properties": {
-                "lineNumber": {
-                  "type": ["number", "string"]
-                },
-                "at": {
-                  "type": "string",
-                  "enum": ["top", "center", "bottom"]
-                }
-              }
-            }
-          }
-        ]
-      };
-      RevealLine_2.RawAtArgument = {
-        Top: "top",
-        Center: "center",
-        Bottom: "bottom"
-      };
-    })(RevealLine_ || (RevealLine_ = {}));
-    EditorOrNativeTextInputCommand = class {
-      constructor(target) {
-        target.addImplementation(1e4, "code-editor", (accessor, args) => {
-          const focusedEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();
-          if (focusedEditor && focusedEditor.hasTextFocus()) {
-            return this._runEditorCommand(accessor, focusedEditor, args);
-          }
-          return false;
-        });
-        target.addImplementation(1e3, "generic-dom-input-textarea", (accessor, args) => {
-          const activeElement = getActiveElement();
-          if (activeElement && isEditableElement(activeElement)) {
-            this.runDOMCommand(activeElement);
-            return true;
-          }
-          return false;
-        });
-        target.addImplementation(0, "generic-dom", (accessor, args) => {
-          const activeEditor = accessor.get(ICodeEditorService).getActiveCodeEditor();
-          if (activeEditor) {
-            activeEditor.focus();
-            return this._runEditorCommand(accessor, activeEditor, args);
-          }
-          return false;
-        });
-      }
-      _runEditorCommand(accessor, editor2, args) {
-        const result = this.runEditorCommand(accessor, editor2, args);
-        if (result) {
-          return result;
-        }
-        return true;
-      }
-    };
-    (function(CoreNavigationCommands2) {
-      class BaseMoveToCommand extends CoreEditorCommand {
-        constructor(opts) {
-          super(opts);
-          this._inSelectionMode = opts.inSelectionMode;
-        }
-        runCoreEditorCommand(viewModel, args) {
-          if (!args.position) {
-            return;
-          }
-          viewModel.model.pushStackElement();
-          const cursorStateChanged = viewModel.setCursorStates(args.source, 3, [
-            CursorMoveCommands.moveTo(viewModel, viewModel.getPrimaryCursorState(), this._inSelectionMode, args.position, args.viewPosition)
-          ]);
-          if (cursorStateChanged && args.revealType !== 2) {
-            viewModel.revealAllCursors(args.source, true, true);
-          }
-        }
-      }
-      CoreNavigationCommands2.MoveTo = registerEditorCommand(new BaseMoveToCommand({
-        id: "_moveTo",
-        inSelectionMode: false,
-        precondition: void 0
-      }));
-      CoreNavigationCommands2.MoveToSelect = registerEditorCommand(new BaseMoveToCommand({
-        id: "_moveToSelect",
-        inSelectionMode: true,
-        precondition: void 0
-      }));
-      class ColumnSelectCommand extends CoreEditorCommand {
-        runCoreEditorCommand(viewModel, args) {
-          viewModel.model.pushStackElement();
-          const result = this._getColumnSelectResult(viewModel, viewModel.getPrimaryCursorState(), viewModel.getCursorColumnSelectData(), args);
-          if (result === null) {
-            return;
-          }
-          viewModel.setCursorStates(args.source, 3, result.viewStates.map((viewState) => CursorState.fromViewState(viewState)));
-          viewModel.setCursorColumnSelectData({
-            isReal: true,
-            fromViewLineNumber: result.fromLineNumber,
-            fromViewVisualColumn: result.fromVisualColumn,
-            toViewLineNumber: result.toLineNumber,
-            toViewVisualColumn: result.toVisualColumn
-          });
-          if (result.reversed) {
-            viewModel.revealTopMostCursor(args.source);
-          } else {
-            viewModel.revealBottomMostCursor(args.source);
-          }
-        }
-      }
-      CoreNavigationCommands2.ColumnSelect = registerEditorCommand(new class extends ColumnSelectCommand {
-        constructor() {
-          super({
-            id: "columnSelect",
-            precondition: void 0
-          });
-        }
-        _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {
-          if (typeof args.position === "undefined" || typeof args.viewPosition === "undefined" || typeof args.mouseColumn === "undefined") {
-            return null;
-          }
-          const validatedPosition = viewModel.model.validatePosition(args.position);
-          const validatedViewPosition = viewModel.coordinatesConverter.validateViewPosition(new Position(args.viewPosition.lineNumber, args.viewPosition.column), validatedPosition);
-          const fromViewLineNumber = args.doColumnSelect ? prevColumnSelectData.fromViewLineNumber : validatedViewPosition.lineNumber;
-          const fromViewVisualColumn = args.doColumnSelect ? prevColumnSelectData.fromViewVisualColumn : args.mouseColumn - 1;
-          return ColumnSelection.columnSelect(viewModel.cursorConfig, viewModel, fromViewLineNumber, fromViewVisualColumn, validatedViewPosition.lineNumber, args.mouseColumn - 1);
-        }
-      }());
-      CoreNavigationCommands2.CursorColumnSelectLeft = registerEditorCommand(new class extends ColumnSelectCommand {
-        constructor() {
-          super({
-            id: "cursorColumnSelectLeft",
-            precondition: void 0,
-            kbOpts: {
-              weight: CORE_WEIGHT,
-              kbExpr: EditorContextKeys.textInputFocus,
-              primary: 2048 | 1024 | 512 | 15,
-              linux: { primary: 0 }
-            }
-          });
-        }
-        _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {
-          return ColumnSelection.columnSelectLeft(viewModel.cursorConfig, viewModel, prevColumnSelectData);
-        }
-      }());
-      CoreNavigationCommands2.CursorColumnSelectRight = registerEditorCommand(new class extends ColumnSelectCommand {
-        constructor() {
-          super({
-            id: "cursorColumnSelectRight",
-            precondition: void 0,
-            kbOpts: {
-              weight: CORE_WEIGHT,
-              kbExpr: EditorContextKeys.textInputFocus,
-              primary: 2048 | 1024 | 512 | 17,
-              linux: { primary: 0 }
-            }
-          });
-        }
-        _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {
-          return ColumnSelection.columnSelectRight(viewModel.cursorConfig, viewModel, prevColumnSelectData);
-        }
-      }());
-      class ColumnSelectUpCommand extends ColumnSelectCommand {
-        constructor(opts) {
-          super(opts);
-          this._isPaged = opts.isPaged;
-        }
-        _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {
-          return ColumnSelection.columnSelectUp(viewModel.cursorConfig, viewModel, prevColumnSelectData, this._isPaged);
-        }
-      }
-      CoreNavigationCommands2.CursorColumnSelectUp = registerEditorCommand(new ColumnSelectUpCommand({
-        isPaged: false,
-        id: "cursorColumnSelectUp",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 2048 | 1024 | 512 | 16,
-          linux: { primary: 0 }
-        }
-      }));
-      CoreNavigationCommands2.CursorColumnSelectPageUp = registerEditorCommand(new ColumnSelectUpCommand({
-        isPaged: true,
-        id: "cursorColumnSelectPageUp",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 2048 | 1024 | 512 | 11,
-          linux: { primary: 0 }
-        }
-      }));
-      class ColumnSelectDownCommand extends ColumnSelectCommand {
-        constructor(opts) {
-          super(opts);
-          this._isPaged = opts.isPaged;
-        }
-        _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {
-          return ColumnSelection.columnSelectDown(viewModel.cursorConfig, viewModel, prevColumnSelectData, this._isPaged);
-        }
-      }
-      CoreNavigationCommands2.CursorColumnSelectDown = registerEditorCommand(new ColumnSelectDownCommand({
-        isPaged: false,
-        id: "cursorColumnSelectDown",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 2048 | 1024 | 512 | 18,
-          linux: { primary: 0 }
-        }
-      }));
-      CoreNavigationCommands2.CursorColumnSelectPageDown = registerEditorCommand(new ColumnSelectDownCommand({
-        isPaged: true,
-        id: "cursorColumnSelectPageDown",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 2048 | 1024 | 512 | 12,
-          linux: { primary: 0 }
-        }
-      }));
-      class CursorMoveImpl extends CoreEditorCommand {
-        constructor() {
-          super({
-            id: "cursorMove",
-            precondition: void 0,
-            metadata: CursorMove.metadata
-          });
-        }
-        runCoreEditorCommand(viewModel, args) {
-          const parsed = CursorMove.parse(args);
-          if (!parsed) {
-            return;
-          }
-          this._runCursorMove(viewModel, args.source, parsed);
-        }
-        _runCursorMove(viewModel, source, args) {
-          const effectiveSource = args.noHistory ? "api" : source;
-          viewModel.model.pushStackElement();
-          viewModel.setCursorStates(effectiveSource, 3, CursorMoveImpl._move(viewModel, viewModel.getCursorStates(), args));
-          viewModel.revealAllCursors(effectiveSource, true);
-        }
-        static _move(viewModel, cursors, args) {
-          const inSelectionMode = args.select;
-          const value = args.value;
-          switch (args.direction) {
-            case 0:
-            case 1:
-            case 2:
-            case 3:
-            case 4:
-            case 5:
-            case 6:
-            case 7:
-            case 8:
-            case 9:
-            case 10:
-              return CursorMoveCommands.simpleMove(viewModel, cursors, args.direction, inSelectionMode, value, args.unit);
-            case 11:
-            case 13:
-            case 12:
-            case 14:
-              return CursorMoveCommands.viewportMove(viewModel, cursors, args.direction, inSelectionMode, value);
-            default:
-              return null;
-          }
-        }
-      }
-      CoreNavigationCommands2.CursorMoveImpl = CursorMoveImpl;
-      CoreNavigationCommands2.CursorMove = registerEditorCommand(new CursorMoveImpl());
-      class CursorMoveBasedCommand extends CoreEditorCommand {
-        constructor(opts) {
-          super(opts);
-          this._staticArgs = opts.args;
-        }
-        runCoreEditorCommand(viewModel, dynamicArgs) {
-          let args = this._staticArgs;
-          if (this._staticArgs.value === -1) {
-            args = {
-              direction: this._staticArgs.direction,
-              unit: this._staticArgs.unit,
-              select: this._staticArgs.select,
-              value: dynamicArgs.pageSize || viewModel.cursorConfig.pageSize
-            };
-          }
-          viewModel.model.pushStackElement();
-          viewModel.setCursorStates(dynamicArgs.source, 3, CursorMoveCommands.simpleMove(viewModel, viewModel.getCursorStates(), args.direction, args.select, args.value, args.unit));
-          viewModel.revealAllCursors(dynamicArgs.source, true);
-        }
-      }
-      CoreNavigationCommands2.CursorLeft = registerEditorCommand(new CursorMoveBasedCommand({
-        args: {
-          direction: 0,
-          unit: 0,
-          select: false,
-          value: 1
-        },
-        id: "cursorLeft",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 15,
-          mac: { primary: 15, secondary: [
-            256 | 32
-            /* KeyCode.KeyB */
-          ] }
-        }
-      }));
-      CoreNavigationCommands2.CursorLeftSelect = registerEditorCommand(new CursorMoveBasedCommand({
-        args: {
-          direction: 0,
-          unit: 0,
-          select: true,
-          value: 1
-        },
-        id: "cursorLeftSelect",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 1024 | 15
-          /* KeyCode.LeftArrow */
-        }
-      }));
-      CoreNavigationCommands2.CursorRight = registerEditorCommand(new CursorMoveBasedCommand({
-        args: {
-          direction: 1,
-          unit: 0,
-          select: false,
-          value: 1
-        },
-        id: "cursorRight",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 17,
-          mac: { primary: 17, secondary: [
-            256 | 36
-            /* KeyCode.KeyF */
-          ] }
-        }
-      }));
-      CoreNavigationCommands2.CursorRightSelect = registerEditorCommand(new CursorMoveBasedCommand({
-        args: {
-          direction: 1,
-          unit: 0,
-          select: true,
-          value: 1
-        },
-        id: "cursorRightSelect",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 1024 | 17
-          /* KeyCode.RightArrow */
-        }
-      }));
-      CoreNavigationCommands2.CursorUp = registerEditorCommand(new CursorMoveBasedCommand({
-        args: {
-          direction: 2,
-          unit: 2,
-          select: false,
-          value: 1
-        },
-        id: "cursorUp",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 16,
-          mac: { primary: 16, secondary: [
-            256 | 46
-            /* KeyCode.KeyP */
-          ] }
-        }
-      }));
-      CoreNavigationCommands2.CursorUpSelect = registerEditorCommand(new CursorMoveBasedCommand({
-        args: {
-          direction: 2,
-          unit: 2,
-          select: true,
-          value: 1
-        },
-        id: "cursorUpSelect",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 1024 | 16,
-          secondary: [
-            2048 | 1024 | 16
-            /* KeyCode.UpArrow */
-          ],
-          mac: {
-            primary: 1024 | 16
-            /* KeyCode.UpArrow */
-          },
-          linux: {
-            primary: 1024 | 16
-            /* KeyCode.UpArrow */
-          }
-        }
-      }));
-      CoreNavigationCommands2.CursorPageUp = registerEditorCommand(new CursorMoveBasedCommand({
-        args: {
-          direction: 2,
-          unit: 2,
-          select: false,
-          value: -1
-          /* Constants.PAGE_SIZE_MARKER */
-        },
-        id: "cursorPageUp",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 11
-          /* KeyCode.PageUp */
-        }
-      }));
-      CoreNavigationCommands2.CursorPageUpSelect = registerEditorCommand(new CursorMoveBasedCommand({
-        args: {
-          direction: 2,
-          unit: 2,
-          select: true,
-          value: -1
-          /* Constants.PAGE_SIZE_MARKER */
-        },
-        id: "cursorPageUpSelect",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 1024 | 11
-          /* KeyCode.PageUp */
-        }
-      }));
-      CoreNavigationCommands2.CursorDown = registerEditorCommand(new CursorMoveBasedCommand({
-        args: {
-          direction: 3,
-          unit: 2,
-          select: false,
-          value: 1
-        },
-        id: "cursorDown",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 18,
-          mac: { primary: 18, secondary: [
-            256 | 44
-            /* KeyCode.KeyN */
-          ] }
-        }
-      }));
-      CoreNavigationCommands2.CursorDownSelect = registerEditorCommand(new CursorMoveBasedCommand({
-        args: {
-          direction: 3,
-          unit: 2,
-          select: true,
-          value: 1
-        },
-        id: "cursorDownSelect",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 1024 | 18,
-          secondary: [
-            2048 | 1024 | 18
-            /* KeyCode.DownArrow */
-          ],
-          mac: {
-            primary: 1024 | 18
-            /* KeyCode.DownArrow */
-          },
-          linux: {
-            primary: 1024 | 18
-            /* KeyCode.DownArrow */
-          }
-        }
-      }));
-      CoreNavigationCommands2.CursorPageDown = registerEditorCommand(new CursorMoveBasedCommand({
-        args: {
-          direction: 3,
-          unit: 2,
-          select: false,
-          value: -1
-          /* Constants.PAGE_SIZE_MARKER */
-        },
-        id: "cursorPageDown",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 12
-          /* KeyCode.PageDown */
-        }
-      }));
-      CoreNavigationCommands2.CursorPageDownSelect = registerEditorCommand(new CursorMoveBasedCommand({
-        args: {
-          direction: 3,
-          unit: 2,
-          select: true,
-          value: -1
-          /* Constants.PAGE_SIZE_MARKER */
-        },
-        id: "cursorPageDownSelect",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 1024 | 12
-          /* KeyCode.PageDown */
-        }
-      }));
-      CoreNavigationCommands2.CreateCursor = registerEditorCommand(new class extends CoreEditorCommand {
-        constructor() {
-          super({
-            id: "createCursor",
-            precondition: void 0
-          });
-        }
-        runCoreEditorCommand(viewModel, args) {
-          if (!args.position) {
-            return;
-          }
-          let newState;
-          if (args.wholeLine) {
-            newState = CursorMoveCommands.line(viewModel, viewModel.getPrimaryCursorState(), false, args.position, args.viewPosition);
-          } else {
-            newState = CursorMoveCommands.moveTo(viewModel, viewModel.getPrimaryCursorState(), false, args.position, args.viewPosition);
-          }
-          const states = viewModel.getCursorStates();
-          if (states.length > 1) {
-            const newModelPosition = newState.modelState ? newState.modelState.position : null;
-            const newViewPosition = newState.viewState ? newState.viewState.position : null;
-            for (let i2 = 0, len = states.length; i2 < len; i2++) {
-              const state = states[i2];
-              if (newModelPosition && !state.modelState.selection.containsPosition(newModelPosition)) {
-                continue;
-              }
-              if (newViewPosition && !state.viewState.selection.containsPosition(newViewPosition)) {
-                continue;
-              }
-              states.splice(i2, 1);
-              viewModel.model.pushStackElement();
-              viewModel.setCursorStates(args.source, 3, states);
-              return;
-            }
-          }
-          states.push(newState);
-          viewModel.model.pushStackElement();
-          viewModel.setCursorStates(args.source, 3, states);
-        }
-      }());
-      CoreNavigationCommands2.LastCursorMoveToSelect = registerEditorCommand(new class extends CoreEditorCommand {
-        constructor() {
-          super({
-            id: "_lastCursorMoveToSelect",
-            precondition: void 0
-          });
-        }
-        runCoreEditorCommand(viewModel, args) {
-          if (!args.position) {
-            return;
-          }
-          const lastAddedCursorIndex = viewModel.getLastAddedCursorIndex();
-          const states = viewModel.getCursorStates();
-          const newStates = states.slice(0);
-          newStates[lastAddedCursorIndex] = CursorMoveCommands.moveTo(viewModel, states[lastAddedCursorIndex], true, args.position, args.viewPosition);
-          viewModel.model.pushStackElement();
-          viewModel.setCursorStates(args.source, 3, newStates);
-        }
-      }());
-      class HomeCommand extends CoreEditorCommand {
-        constructor(opts) {
-          super(opts);
-          this._inSelectionMode = opts.inSelectionMode;
-        }
-        runCoreEditorCommand(viewModel, args) {
-          viewModel.model.pushStackElement();
-          viewModel.setCursorStates(args.source, 3, CursorMoveCommands.moveToBeginningOfLine(viewModel, viewModel.getCursorStates(), this._inSelectionMode));
-          viewModel.revealAllCursors(args.source, true);
-        }
-      }
-      CoreNavigationCommands2.CursorHome = registerEditorCommand(new HomeCommand({
-        inSelectionMode: false,
-        id: "cursorHome",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 14,
-          mac: { primary: 14, secondary: [
-            2048 | 15
-            /* KeyCode.LeftArrow */
-          ] }
-        }
-      }));
-      CoreNavigationCommands2.CursorHomeSelect = registerEditorCommand(new HomeCommand({
-        inSelectionMode: true,
-        id: "cursorHomeSelect",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 1024 | 14,
-          mac: { primary: 1024 | 14, secondary: [
-            2048 | 1024 | 15
-            /* KeyCode.LeftArrow */
-          ] }
-        }
-      }));
-      class LineStartCommand extends CoreEditorCommand {
-        constructor(opts) {
-          super(opts);
-          this._inSelectionMode = opts.inSelectionMode;
-        }
-        runCoreEditorCommand(viewModel, args) {
-          viewModel.model.pushStackElement();
-          viewModel.setCursorStates(args.source, 3, this._exec(viewModel.getCursorStates()));
-          viewModel.revealAllCursors(args.source, true);
-        }
-        _exec(cursors) {
-          const result = [];
-          for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-            const cursor = cursors[i2];
-            const lineNumber = cursor.modelState.position.lineNumber;
-            result[i2] = CursorState.fromModelState(cursor.modelState.move(this._inSelectionMode, lineNumber, 1, 0));
-          }
-          return result;
-        }
-      }
-      CoreNavigationCommands2.CursorLineStart = registerEditorCommand(new LineStartCommand({
-        inSelectionMode: false,
-        id: "cursorLineStart",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 0,
-          mac: {
-            primary: 256 | 31
-            /* KeyCode.KeyA */
-          }
-        }
-      }));
-      CoreNavigationCommands2.CursorLineStartSelect = registerEditorCommand(new LineStartCommand({
-        inSelectionMode: true,
-        id: "cursorLineStartSelect",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 0,
-          mac: {
-            primary: 256 | 1024 | 31
-            /* KeyCode.KeyA */
-          }
-        }
-      }));
-      class EndCommand extends CoreEditorCommand {
-        constructor(opts) {
-          super(opts);
-          this._inSelectionMode = opts.inSelectionMode;
-        }
-        runCoreEditorCommand(viewModel, args) {
-          viewModel.model.pushStackElement();
-          viewModel.setCursorStates(args.source, 3, CursorMoveCommands.moveToEndOfLine(viewModel, viewModel.getCursorStates(), this._inSelectionMode, args.sticky || false));
-          viewModel.revealAllCursors(args.source, true);
-        }
-      }
-      CoreNavigationCommands2.CursorEnd = registerEditorCommand(new EndCommand({
-        inSelectionMode: false,
-        id: "cursorEnd",
-        precondition: void 0,
-        kbOpts: {
-          args: { sticky: false },
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 13,
-          mac: { primary: 13, secondary: [
-            2048 | 17
-            /* KeyCode.RightArrow */
-          ] }
-        },
-        metadata: {
-          description: `Go to End`,
-          args: [{
-            name: "args",
-            schema: {
-              type: "object",
-              properties: {
-                "sticky": {
-                  description: localize(66, "Stick to the end even when going to longer lines"),
-                  type: "boolean",
-                  default: false
-                }
-              }
-            }
-          }]
-        }
-      }));
-      CoreNavigationCommands2.CursorEndSelect = registerEditorCommand(new EndCommand({
-        inSelectionMode: true,
-        id: "cursorEndSelect",
-        precondition: void 0,
-        kbOpts: {
-          args: { sticky: false },
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 1024 | 13,
-          mac: { primary: 1024 | 13, secondary: [
-            2048 | 1024 | 17
-            /* KeyCode.RightArrow */
-          ] }
-        },
-        metadata: {
-          description: `Select to End`,
-          args: [{
-            name: "args",
-            schema: {
-              type: "object",
-              properties: {
-                "sticky": {
-                  description: localize(67, "Stick to the end even when going to longer lines"),
-                  type: "boolean",
-                  default: false
-                }
-              }
-            }
-          }]
-        }
-      }));
-      class LineEndCommand extends CoreEditorCommand {
-        constructor(opts) {
-          super(opts);
-          this._inSelectionMode = opts.inSelectionMode;
-        }
-        runCoreEditorCommand(viewModel, args) {
-          viewModel.model.pushStackElement();
-          viewModel.setCursorStates(args.source, 3, this._exec(viewModel, viewModel.getCursorStates()));
-          viewModel.revealAllCursors(args.source, true);
-        }
-        _exec(viewModel, cursors) {
-          const result = [];
-          for (let i2 = 0, len = cursors.length; i2 < len; i2++) {
-            const cursor = cursors[i2];
-            const lineNumber = cursor.modelState.position.lineNumber;
-            const maxColumn = viewModel.model.getLineMaxColumn(lineNumber);
-            result[i2] = CursorState.fromModelState(cursor.modelState.move(this._inSelectionMode, lineNumber, maxColumn, 0));
-          }
-          return result;
-        }
-      }
-      CoreNavigationCommands2.CursorLineEnd = registerEditorCommand(new LineEndCommand({
-        inSelectionMode: false,
-        id: "cursorLineEnd",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 0,
-          mac: {
-            primary: 256 | 35
-            /* KeyCode.KeyE */
-          }
-        }
-      }));
-      CoreNavigationCommands2.CursorLineEndSelect = registerEditorCommand(new LineEndCommand({
-        inSelectionMode: true,
-        id: "cursorLineEndSelect",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 0,
-          mac: {
-            primary: 256 | 1024 | 35
-            /* KeyCode.KeyE */
-          }
-        }
-      }));
-      class TopCommand extends CoreEditorCommand {
-        constructor(opts) {
-          super(opts);
-          this._inSelectionMode = opts.inSelectionMode;
-        }
-        runCoreEditorCommand(viewModel, args) {
-          viewModel.model.pushStackElement();
-          viewModel.setCursorStates(args.source, 3, CursorMoveCommands.moveToBeginningOfBuffer(viewModel, viewModel.getCursorStates(), this._inSelectionMode));
-          viewModel.revealAllCursors(args.source, true);
-        }
-      }
-      CoreNavigationCommands2.CursorTop = registerEditorCommand(new TopCommand({
-        inSelectionMode: false,
-        id: "cursorTop",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 2048 | 14,
-          mac: {
-            primary: 2048 | 16
-            /* KeyCode.UpArrow */
-          }
-        }
-      }));
-      CoreNavigationCommands2.CursorTopSelect = registerEditorCommand(new TopCommand({
-        inSelectionMode: true,
-        id: "cursorTopSelect",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 2048 | 1024 | 14,
-          mac: {
-            primary: 2048 | 1024 | 16
-            /* KeyCode.UpArrow */
-          }
-        }
-      }));
-      class BottomCommand extends CoreEditorCommand {
-        constructor(opts) {
-          super(opts);
-          this._inSelectionMode = opts.inSelectionMode;
-        }
-        runCoreEditorCommand(viewModel, args) {
-          viewModel.model.pushStackElement();
-          viewModel.setCursorStates(args.source, 3, CursorMoveCommands.moveToEndOfBuffer(viewModel, viewModel.getCursorStates(), this._inSelectionMode));
-          viewModel.revealAllCursors(args.source, true);
-        }
-      }
-      CoreNavigationCommands2.CursorBottom = registerEditorCommand(new BottomCommand({
-        inSelectionMode: false,
-        id: "cursorBottom",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 2048 | 13,
-          mac: {
-            primary: 2048 | 18
-            /* KeyCode.DownArrow */
-          }
-        }
-      }));
-      CoreNavigationCommands2.CursorBottomSelect = registerEditorCommand(new BottomCommand({
-        inSelectionMode: true,
-        id: "cursorBottomSelect",
-        precondition: void 0,
-        kbOpts: {
-          weight: CORE_WEIGHT,
-          kbExpr: EditorContextKeys.textInputFocus,
-          primary: 2048 | 1024 | 13,
-          mac: {
-            primary: 2048 | 1024 | 18
-            /* KeyCode.DownArrow */
-          }
-        }
-      }));
-      class EditorScrollImpl extends CoreEditorCommand {
-        constructor() {
-          super({
-            id: "editorScroll",
-            precondition: void 0,
-            metadata: EditorScroll_.metadata
-          });
-        }
-        determineScrollMethod(args) {
-          const horizontalUnits = [
-            6
-            /* EditorScroll_.Unit.Column */
-          ];
-          const verticalUnits = [
-            1,
-            2,
-            3,
-            4,
-            5,
-            6
-            /* EditorScroll_.Unit.Column */
-          ];
-          const horizontalDirections = [
-            4,
-            2
-            /* EditorScroll_.Direction.Right */
-          ];
-          const verticalDirections = [
-            1,
-            3
-            /* EditorScroll_.Direction.Down */
-          ];
-          if (horizontalUnits.includes(args.unit) && horizontalDirections.includes(args.direction)) {
-            return this._runHorizontalEditorScroll.bind(this);
-          }
-          if (verticalUnits.includes(args.unit) && verticalDirections.includes(args.direction)) {
-            return this._runVerticalEditorScroll.bind(this);
-          }
-          return null;
-        }
-        runCoreEditorCommand(viewModel, args) {
-          const parsed = EditorScroll_.parse(args);
-          if (!parsed) {
-            return;
-          }
-          const runEditorScroll = this.determineScrollMethod(parsed);
-          if (!runEditorScroll) {
-            return;
-          }
-          runEditorScroll(viewModel, args.source, parsed);
-        }
-        _runVerticalEditorScroll(viewModel, source, args) {
-          const desiredScrollTop = this._computeDesiredScrollTop(viewModel, args);
-          if (args.revealCursor) {
-            const desiredVisibleViewRange = viewModel.getCompletelyVisibleViewRangeAtScrollTop(desiredScrollTop);
-            viewModel.setCursorStates(source, 3, [
-              CursorMoveCommands.findPositionInViewportIfOutside(viewModel, viewModel.getPrimaryCursorState(), desiredVisibleViewRange, args.select)
-            ]);
-          }
-          viewModel.viewLayout.setScrollPosition(
-            { scrollTop: desiredScrollTop },
-            0
-            /* ScrollType.Smooth */
-          );
-        }
-        _computeDesiredScrollTop(viewModel, args) {
-          if (args.unit === 1) {
-            const futureViewport = viewModel.viewLayout.getFutureViewport();
-            const visibleViewRange = viewModel.getCompletelyVisibleViewRangeAtScrollTop(futureViewport.top);
-            const visibleModelRange = viewModel.coordinatesConverter.convertViewRangeToModelRange(visibleViewRange);
-            let desiredTopModelLineNumber;
-            if (args.direction === 1) {
-              desiredTopModelLineNumber = Math.max(1, visibleModelRange.startLineNumber - args.value);
-            } else {
-              desiredTopModelLineNumber = Math.min(viewModel.model.getLineCount(), visibleModelRange.startLineNumber + args.value);
-            }
-            const viewPosition = viewModel.coordinatesConverter.convertModelPositionToViewPosition(new Position(desiredTopModelLineNumber, 1));
-            return viewModel.viewLayout.getVerticalOffsetForLineNumber(viewPosition.lineNumber);
-          }
-          if (args.unit === 5) {
-            let desiredTopModelLineNumber = 0;
-            if (args.direction === 3) {
-              desiredTopModelLineNumber = viewModel.model.getLineCount() - viewModel.cursorConfig.pageSize;
-            }
-            return viewModel.viewLayout.getVerticalOffsetForLineNumber(desiredTopModelLineNumber);
-          }
-          let noOfLines;
-          if (args.unit === 3) {
-            noOfLines = viewModel.cursorConfig.pageSize * args.value;
-          } else if (args.unit === 4) {
-            noOfLines = Math.round(viewModel.cursorConfig.pageSize / 2) * args.value;
-          } else {
-            noOfLines = args.value;
-          }
-          const deltaLines = (args.direction === 1 ? -1 : 1) * noOfLines;
-          return viewModel.viewLayout.getCurrentScrollTop() + deltaLines * viewModel.cursorConfig.lineHeight;
-        }
-        _runHorizontalEditorScroll(viewModel, source, args) {
-          const desiredScrollLeft = this._computeDesiredScrollLeft(viewModel, args);
-          viewModel.viewLayout.setScrollPosition(
-            { scrollLeft: desiredScrollLeft },
-            0
-            /* ScrollType.Smooth */
-          );
-        }
-        _computeDesiredScrollLeft(viewModel, args) {
-          const deltaColumns = (args.direction === 4 ? -1 : 1) * args.value;
-          return viewModel.viewLayout.getCurrentScrollLeft() + deltaColumns * viewModel.cursorConfig.typicalHalfwidthCharacterWidth;
-        }
-      }
-      CoreNavigationCommands2.EditorScrollImpl = EditorScrollImpl;
-      CoreNavigationCommands2.EditorScroll = registerEditorCommand(new EditorScrollImpl());
-      CoreNavigationCommands2.ScrollLineUp = registerEditorCommand(new class extends CoreEditorCommand {
-        constructor() {
-          super({
-            id: "scrollLineUp",
-            precondition: void 0,
-            kbOpts: {
-              weight: CORE_WEIGHT,
-              kbExpr: EditorContextKeys.textInputFocus,
-              primary: 2048 | 16,
-              mac: {
-                primary: 256 | 11
-                /* KeyCode.PageUp */
-              }
-            }
-          });
-        }
-        runCoreEditorCommand(viewModel, args) {
-          CoreNavigationCommands2.EditorScroll.runCoreEditorCommand(viewModel, {
-            to: EditorScroll_.RawDirection.Up,
-            by: EditorScroll_.RawUnit.WrappedLine,
-            value: 1,
-            revealCursor: false,
-            select: false,
-            source: args.source
-          });
-        }
-      }());
-      CoreNavigationCommands2.ScrollPageUp = registerEditorCommand(new class extends CoreEditorCommand {
-        constructor() {
-          super({
-            id: "scrollPageUp",
-            precondition: void 0,
-            kbOpts: {
-              weight: CORE_WEIGHT,
-              kbExpr: EditorContextKeys.textInputFocus,
-              primary: 2048 | 11,
-              win: {
-                primary: 512 | 11
-                /* KeyCode.PageUp */
-              },
-              linux: {
-                primary: 512 | 11
-                /* KeyCode.PageUp */
-              }
-            }
-          });
-        }
-        runCoreEditorCommand(viewModel, args) {
-          CoreNavigationCommands2.EditorScroll.runCoreEditorCommand(viewModel, {
-            to: EditorScroll_.RawDirection.Up,
-            by: EditorScroll_.RawUnit.Page,
-            value: 1,
-            revealCursor: false,
-            select: false,
-            source: args.source
-          });
-        }
-      }());
-      CoreNavigationCommands2.ScrollEditorTop = registerEditorCommand(new class extends CoreEditorCommand {
-        constructor() {
-          super({
-            id: "scrollEditorTop",
-            precondition: void 0,
-            kbOpts: {
-              weight: CORE_WEIGHT,
-              kbExpr: EditorContextKeys.textInputFocus
-            }
-          });
-        }
-        runCoreEditorCommand(viewModel, args) {
-          CoreNavigationCommands2.EditorScroll.runCoreEditorCommand(viewModel, {
-            to: EditorScroll_.RawDirection.Up,
-            by: EditorScroll_.RawUnit.Editor,
-            value: 1,
-            revealCursor: false,
-            select: false,
-            source: args.source
-          });
-        }
-      }());
-      CoreNavigationCommands2.ScrollLineDown = registerEditorCommand(new class extends CoreEditorCommand {
-        constructor() {
-          super({
-            id: "scrollLineDown",
-            precondition: void 0,
-            kbOpts: {
-              weight: CORE_WEIGHT,
-              kbExpr: EditorContextKeys.textInputFocus,
-              primary: 2048 | 18,
-              mac: {
-                primary: 256 | 12
-                /* KeyCode.PageDown */
-              }
-            }
-          });
-        }
-        runCoreEditorCommand(viewModel, args) {
-          CoreNavigationCommands2.EditorScroll.runCoreEditorCommand(viewModel, {
-            to: EditorScroll_.RawDirection.Down,
-            by: EditorScroll_.RawUnit.WrappedLine,
-            value: 1,
-            revealCursor: false,
-            select: false,
-            source: args.source
-          });
-        }
-      }());
-      CoreNavigationCommands2.ScrollPageDown = registerEditorCommand(new class extends CoreEditorCommand {
-        constructor() {
-          super({
-            id: "scrollPageDown",
-            precondition: void 0,
-            kbOpts: {
-              weight: CORE_WEIGHT,
-              kbExpr: EditorContextKeys.textInputFocus,
-              primary: 2048 | 12,
-              win: {
-                primary: 512 | 12
-                /* KeyCode.PageDown */
-              },
-              linux: {
-                primary: 512 | 12
-                /* KeyCode.PageDown */
-              }
-            }
-          });
-        }
-        runCoreEditorCommand(viewModel, args) {
-          CoreNavigationCommands2.EditorScroll.runCoreEditorCommand(viewModel, {
-            to: EditorScroll_.RawDirection.Down,
-            by: EditorScroll_.RawUnit.Page,
-            value: 1,
-            revealCursor: false,
-            select: false,
-            source: args.source
-          });
-        }
-      }());
-      CoreNavigationCommands2.ScrollEditorBottom = registerEditorCommand(new class extends CoreEditorCommand {
-        constructor() {
-          super({
-            id: "scrollEditorBottom",
-            precondition: void 0,
-            kbOpts: {
-              weight: CORE_WEIGHT,
-              kbExpr: EditorContextKeys.textInputFocus
-            }
-          });
-        }
-        runCoreEditorCommand(viewModel, args) {
-          CoreNavigationCommands2.EditorScroll.runCoreEditorCommand(viewModel, {
-            to: EditorScroll_.RawDirection.Down,
-            by: EditorScroll_.RawUnit.Editor,
-            value: 1,
-            revealCursor: false,
-            select: false,
-            source: args.source
-          });
-        }
-      }());
-      CoreNavigationCommands2.ScrollLeft = registerEditorCommand(new class extends CoreEditorCommand {
-        constructor() {
-          super({
-            id: "scrollLeft",
-            precondition: void 0,
-            kbOpts: {
-              weight: CORE_WEIGHT,
-              kbExpr: EditorContextKeys.textInputFocus
-            }
-          });
-        }
-        runCoreEditorCommand(viewModel, args) {
-          CoreNavigationCommands2.EditorScroll.runCoreEditorCommand(viewModel, {
-            to: EditorScroll_.RawDirection.Left,
-            by: EditorScroll_.RawUnit.Column,
-            value: 2,
-            revealCursor: false,
-            select: false,
-            source: args.source
-          });
-        }
-      }());
-      CoreNavigationCommands2.ScrollRight = registerEditorCommand(new class extends CoreEditorCommand {
-        constructor() {
-          super({
-            id: "scrollRight",
-            precondition: void 0,
-            kbOpts: {
-              weight: CORE_WEIGHT,
-              kbExpr: EditorContextKeys.textInputFocus
-            }
-          });
-        }
-        runCoreEditorCommand(viewModel, args) {
-          CoreNavigationCommands2.EditorScroll.runCoreEditorCommand(viewModel, {
-            to: EditorScroll_.RawDirection.Right,
-            by: EditorScroll_.RawUnit.Column,
-            value: 2,
-            revealCursor: false,
-            select: false,
-            source: args.source
-          });
-        }
-      }());
-      class WordCommand extends CoreEditorCommand {
-        constructor(opts) {
-          super(opts);
-          this._inSelectionMode = opts.inSelectionMode;
-        }
-        runCoreEditorCommand(viewModel, args) {
-          if (!args.position) {
-            return;
-          }
-          viewModel.model.pushStackElement();
-          viewModel.setCursorStates(args.source, 3, [
-            CursorMoveCommands.word(viewModel, viewModel.getPrimaryCursorState(), this._inSelectionMode, args.position)
-          ]);
-          if (args.revealType !== 2) {
-            viewModel.revealAllCursors(args.source, true, true);
-          }
-        }
-      }
-      CoreNavigationCommands2.WordSelect = registerEditorCommand(new WordCommand({
-        inSelectionMode: false,
-        id: "_wordSelect",
-        precondition: void 0
-      }));
-      CoreNavigationCommands2.WordSelectDrag = registerEditorCommand(new WordCommand({
-        inSelectionMode: true,
-        id: "_wordSelectDrag",
-        precondition: void 0
-      }));
-      CoreNavigationCommands2.LastCursorWordSelect = registerEditorCommand(new class extends CoreEditorCommand {
-        constructor() {
-          super({
-            id: "lastCursorWordSelect",
-            precondition: void 0
-          });
-        }
-        runCoreEditorCommand(viewModel, args) {
-          if (!args.position) {
-            return;
-          }
-          const lastAddedCursorIndex = viewModel.getLastAddedCursorIndex();
-          const states = viewModel.getCursorStates();
-          const newStates = states.slice(0);
-          const lastAddedState = states[lastAddedCursorIndex];
-          newStates[lastAddedCursorIndex] = CursorMoveCommands.word(viewModel, lastAddedState, lastAddedState.modelState.hasSelection(), args.position);
-          viewModel.model.pushStackElement();
-          viewModel.setCursorStates(args.source, 3, newStates);
-        }
-      }());
-      class LineCommand extends CoreEditorCommand {
-        constructor(opts) {
-          super(opts);
-          this._inSelectionMode = opts.inSelectionMode;
-        }
-        runCoreEditorCommand(viewModel, args) {
-          if (!args.position) {
-            return;
-          }
-          viewModel.model.pushStackElement();
-          viewModel.setCursorStates(args.source, 3, [
-            CursorMoveCommands.line(viewModel, viewModel.getPrimaryCursorState(), this._inSelectionMode, args.position, args.viewPosition)
-          ]);
-          if (args.revealType !== 2) {
-            viewModel.revealAllCursors(args.source, false, true);
-          }
-        }
-      }
-      CoreNavigationCommands2.LineSelect = registerEditorCommand(new LineCommand({
-        inSelectionMode: false,
-        id: "_lineSelect",
-        precondition: void 0
-      }));
-      CoreNavigationCommands2.LineSelectDrag = registerEditorCommand(new LineCommand({
-        inSelectionMode: true,
-        id: "_lineSelectDrag",
-        precondition: void 0
-      }));
-      class LastCursorLineCommand extends CoreEditorCommand {
-        constructor(opts) {
-          super(opts);
-          this._inSelectionMode = opts.inSelectionMode;
-        }
-        runCoreEditorCommand(viewModel, args) {
-          if (!args.position) {
-            return;
-          }
-          const lastAddedCursorIndex = viewModel.getLastAddedCursorIndex();
-          const states = viewModel.getCursorStates();
-          const newStates = states.slice(0);
-          newStates[lastAddedCursorIndex] = CursorMoveCommands.line(viewModel, states[lastAddedCursorIndex], this._inSelectionMode, args.position, args.viewPosition);
-          viewModel.model.pushStackElement();
-          viewModel.setCursorStates(args.source, 3, newStates);
-        }
-      }
-      CoreNavigationCommands2.LastCursorLineSelect = registerEditorCommand(new LastCursorLineCommand({
-        inSelectionMode: false,
-        id: "lastCursorLineSelect",
-        precondition: void 0
-      }));
-      CoreNavigationCommands2.LastCursorLineSelectDrag = registerEditorCommand(new LastCursorLineCommand({
-        inSelectionMode: true,
-        id: "lastCursorLineSelectDrag",
-        precondition: void 0
-      }));
-      CoreNavigationCommands2.CancelSelection = registerEditorCommand(new class extends CoreEditorCommand {
-        constructor() {
-          super({
-            id: "cancelSelection",
-            precondition: EditorContextKeys.hasNonEmptySelection,
-            kbOpts: {
-              weight: CORE_WEIGHT,
-              kbExpr: EditorContextKeys.textInputFocus,
-              primary: 9,
-              secondary: [
-                1024 | 9
-                /* KeyCode.Escape */
-              ]
-            }
-          });
-        }
-        runCoreEditorCommand(viewModel, args) {
-          viewModel.model.pushStackElement();
-          viewModel.setCursorStates(args.source, 3, [
-            CursorMoveCommands.cancelSelection(viewModel, viewModel.getPrimaryCursorState())
-          ]);
-          viewModel.revealAllCursors(args.source, true);
-        }
-      }());
-      CoreNavigationCommands2.RemoveSecondaryCursors = registerEditorCommand(new class extends CoreEditorCommand {
-        constructor() {
-          super({
-            id: "removeSecondaryCursors",
-            precondition: EditorContextKeys.hasMultipleSelections,
-            kbOpts: {
-              weight: CORE_WEIGHT + 1,
-              kbExpr: EditorContextKeys.textInputFocus,
-              primary: 9,
-              secondary: [
-                1024 | 9
-                /* KeyCode.Escape */
-              ]
-            }
-          });
-        }
-        runCoreEditorCommand(viewModel, args) {
-          viewModel.model.pushStackElement();
-          viewModel.setCursorStates(args.source, 3, [
-            viewModel.getPrimaryCursorState()
-          ]);
-          viewModel.revealAllCursors(args.source, true);
-          status(localize(68, "Removed secondary cursors"));
-        }
-      }());
-      CoreNavigationCommands2.RevealLine = registerEditorCommand(new class extends CoreEditorCommand {
-        constructor() {
-          super({
-            id: "revealLine",
-            precondition: void 0,
-            metadata: RevealLine_.metadata
-          });
-        }
-        runCoreEditorCommand(viewModel, args) {
-          const revealLineArg = args;
-          const lineNumberArg = revealLineArg.lineNumber || 0;
-          let lineNumber = typeof lineNumberArg === "number" ? lineNumberArg + 1 : parseInt(lineNumberArg) + 1;
-          if (lineNumber < 1) {
-            lineNumber = 1;
-          }
-          const lineCount = viewModel.model.getLineCount();
-          if (lineNumber > lineCount) {
-            lineNumber = lineCount;
-          }
-          const range2 = new Range(lineNumber, 1, lineNumber, viewModel.model.getLineMaxColumn(lineNumber));
-          let revealAt = 0;
-          if (revealLineArg.at) {
-            switch (revealLineArg.at) {
-              case RevealLine_.RawAtArgument.Top:
-                revealAt = 3;
-                break;
-              case RevealLine_.RawAtArgument.Center:
-                revealAt = 1;
-                break;
-              case RevealLine_.RawAtArgument.Bottom:
-                revealAt = 4;
-                break;
-            }
-          }
-          const viewRange = viewModel.coordinatesConverter.convertModelRangeToViewRange(range2);
-          viewModel.revealRange(
-            args.source,
-            false,
-            viewRange,
-            revealAt,
-            0
-            /* ScrollType.Smooth */
-          );
-        }
-      }());
-      CoreNavigationCommands2.SelectAll = new class extends EditorOrNativeTextInputCommand {
-        constructor() {
-          super(SelectAllCommand);
-        }
-        runDOMCommand(activeElement) {
-          if (isFirefox) {
-            activeElement.focus();
-            activeElement.select();
-          }
-          activeElement.ownerDocument.execCommand("selectAll");
-        }
-        runEditorCommand(accessor, editor2, args) {
-          const viewModel = editor2._getViewModel();
-          if (!viewModel) {
-            return;
-          }
-          this.runCoreEditorCommand(viewModel, args);
-        }
-        runCoreEditorCommand(viewModel, args) {
-          viewModel.model.pushStackElement();
-          viewModel.setCursorStates("keyboard", 3, [
-            CursorMoveCommands.selectAll(viewModel, viewModel.getPrimaryCursorState())
-          ]);
-        }
-      }();
-      CoreNavigationCommands2.SetSelection = registerEditorCommand(new class extends CoreEditorCommand {
-        constructor() {
-          super({
-            id: "setSelection",
-            precondition: void 0
-          });
-        }
-        runCoreEditorCommand(viewModel, args) {
-          if (!args.selection) {
-            return;
-          }
-          viewModel.model.pushStackElement();
-          viewModel.setCursorStates(args.source, 3, [
-            CursorState.fromModelSelection(args.selection)
-          ]);
-        }
-      }());
-    })(CoreNavigationCommands || (CoreNavigationCommands = {}));
-    columnSelectionCondition = ContextKeyExpr.and(EditorContextKeys.textInputFocus, EditorContextKeys.columnSelection);
-    registerColumnSelection(
-      CoreNavigationCommands.CursorColumnSelectLeft.id,
-      1024 | 15
-      /* KeyCode.LeftArrow */
-    );
-    registerColumnSelection(
-      CoreNavigationCommands.CursorColumnSelectRight.id,
-      1024 | 17
-      /* KeyCode.RightArrow */
-    );
-    registerColumnSelection(
-      CoreNavigationCommands.CursorColumnSelectUp.id,
-      1024 | 16
-      /* KeyCode.UpArrow */
-    );
-    registerColumnSelection(
-      CoreNavigationCommands.CursorColumnSelectPageUp.id,
-      1024 | 11
-      /* KeyCode.PageUp */
-    );
-    registerColumnSelection(
-      CoreNavigationCommands.CursorColumnSelectDown.id,
-      1024 | 18
-      /* KeyCode.DownArrow */
-    );
-    registerColumnSelection(
-      CoreNavigationCommands.CursorColumnSelectPageDown.id,
-      1024 | 12
-      /* KeyCode.PageDown */
-    );
-    (function(CoreEditingCommands2) {
-      class CoreEditingCommand extends EditorCommand {
-        runEditorCommand(accessor, editor2, args) {
-          const viewModel = editor2._getViewModel();
-          if (!viewModel) {
-            return;
-          }
-          this.runCoreEditingCommand(editor2, viewModel, args || {});
-        }
-      }
-      CoreEditingCommands2.CoreEditingCommand = CoreEditingCommand;
-      CoreEditingCommands2.LineBreakInsert = registerEditorCommand(new class extends CoreEditingCommand {
-        constructor() {
-          super({
-            id: "lineBreakInsert",
-            precondition: EditorContextKeys.writable,
-            kbOpts: {
-              weight: CORE_WEIGHT,
-              kbExpr: EditorContextKeys.textInputFocus,
-              primary: 0,
-              mac: {
-                primary: 256 | 45
-                /* KeyCode.KeyO */
-              }
-            }
-          });
-        }
-        runCoreEditingCommand(editor2, viewModel, args) {
-          editor2.pushUndoStop();
-          editor2.executeCommands(this.id, EnterOperation.lineBreakInsert(viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map((s) => s.modelState.selection)));
-        }
-      }());
-      CoreEditingCommands2.Outdent = registerEditorCommand(new class extends CoreEditingCommand {
-        constructor() {
-          super({
-            id: "outdent",
-            precondition: EditorContextKeys.writable,
-            kbOpts: {
-              weight: CORE_WEIGHT,
-              kbExpr: ContextKeyExpr.and(EditorContextKeys.editorTextFocus, EditorContextKeys.tabDoesNotMoveFocus),
-              primary: 1024 | 2
-              /* KeyCode.Tab */
-            }
-          });
-        }
-        runCoreEditingCommand(editor2, viewModel, args) {
-          editor2.pushUndoStop();
-          editor2.executeCommands(this.id, TypeOperations.outdent(viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map((s) => s.modelState.selection)));
-          editor2.pushUndoStop();
-        }
-      }());
-      CoreEditingCommands2.Tab = registerEditorCommand(new class extends CoreEditingCommand {
-        constructor() {
-          super({
-            id: "tab",
-            precondition: EditorContextKeys.writable,
-            kbOpts: {
-              weight: CORE_WEIGHT,
-              kbExpr: ContextKeyExpr.and(EditorContextKeys.editorTextFocus, EditorContextKeys.tabDoesNotMoveFocus),
-              primary: 2
-              /* KeyCode.Tab */
-            }
-          });
-        }
-        runCoreEditingCommand(editor2, viewModel, args) {
-          editor2.pushUndoStop();
-          editor2.executeCommands(this.id, TypeOperations.tab(viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map((s) => s.modelState.selection)));
-          editor2.pushUndoStop();
-        }
-      }());
-      CoreEditingCommands2.DeleteLeft = registerEditorCommand(new class extends CoreEditingCommand {
-        constructor() {
-          super({
-            id: "deleteLeft",
-            precondition: void 0,
-            kbOpts: {
-              weight: CORE_WEIGHT,
-              kbExpr: EditorContextKeys.textInputFocus,
-              primary: 1,
-              secondary: [
-                1024 | 1
-                /* KeyCode.Backspace */
-              ],
-              mac: { primary: 1, secondary: [
-                1024 | 1,
-                256 | 38,
-                256 | 1
-                /* KeyCode.Backspace */
-              ] }
-            }
-          });
-        }
-        runCoreEditingCommand(editor2, viewModel, args) {
-          const [shouldPushStackElementBefore, commands] = DeleteOperations.deleteLeft(viewModel.getPrevEditOperationType(), viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map((s) => s.modelState.selection), viewModel.getCursorAutoClosedCharacters());
-          if (shouldPushStackElementBefore) {
-            editor2.pushUndoStop();
-          }
-          editor2.executeCommands(this.id, commands);
-          viewModel.setPrevEditOperationType(
-            2
-            /* EditOperationType.DeletingLeft */
-          );
-        }
-      }());
-      CoreEditingCommands2.DeleteRight = registerEditorCommand(new class extends CoreEditingCommand {
-        constructor() {
-          super({
-            id: "deleteRight",
-            precondition: void 0,
-            kbOpts: {
-              weight: CORE_WEIGHT,
-              kbExpr: EditorContextKeys.textInputFocus,
-              primary: 20,
-              mac: { primary: 20, secondary: [
-                256 | 34,
-                256 | 20
-                /* KeyCode.Delete */
-              ] }
-            }
-          });
-        }
-        runCoreEditingCommand(editor2, viewModel, args) {
-          const [shouldPushStackElementBefore, commands] = DeleteOperations.deleteRight(viewModel.getPrevEditOperationType(), viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map((s) => s.modelState.selection));
-          if (shouldPushStackElementBefore) {
-            editor2.pushUndoStop();
-          }
-          editor2.executeCommands(this.id, commands);
-          viewModel.setPrevEditOperationType(
-            3
-            /* EditOperationType.DeletingRight */
-          );
-        }
-      }());
-      CoreEditingCommands2.Undo = new class extends EditorOrNativeTextInputCommand {
-        constructor() {
-          super(UndoCommand);
-        }
-        runDOMCommand(activeElement) {
-          activeElement.ownerDocument.execCommand("undo");
-        }
-        runEditorCommand(accessor, editor2, args) {
-          if (!editor2.hasModel() || editor2.getOption(
-            104
-            /* EditorOption.readOnly */
-          ) === true) {
-            return;
-          }
-          return editor2.getModel().undo();
-        }
-      }();
-      CoreEditingCommands2.Redo = new class extends EditorOrNativeTextInputCommand {
-        constructor() {
-          super(RedoCommand);
-        }
-        runDOMCommand(activeElement) {
-          activeElement.ownerDocument.execCommand("redo");
-        }
-        runEditorCommand(accessor, editor2, args) {
-          if (!editor2.hasModel() || editor2.getOption(
-            104
-            /* EditorOption.readOnly */
-          ) === true) {
-            return;
-          }
-          return editor2.getModel().redo();
-        }
-      }();
-    })(CoreEditingCommands || (CoreEditingCommands = {}));
-    EditorHandlerCommand = class extends Command {
-      constructor(id, handlerId, metadata) {
-        super({
-          id,
-          precondition: void 0,
-          metadata
-        });
-        this._handlerId = handlerId;
-      }
-      runCommand(accessor, args) {
-        const editor2 = accessor.get(ICodeEditorService).getFocusedCodeEditor();
-        if (!editor2) {
-          return;
-        }
-        editor2.trigger("keyboard", this._handlerId, args);
-      }
-    };
-    registerOverwritableCommand("type", {
-      description: `Type`,
-      args: [{
-        name: "args",
-        schema: {
-          "type": "object",
-          "required": ["text"],
-          "properties": {
-            "text": {
-              "type": "string"
-            }
-          }
-        }
-      }]
-    });
-    registerOverwritableCommand(
-      "replacePreviousChar"
-      /* Handler.ReplacePreviousChar */
-    );
-    registerOverwritableCommand(
-      "compositionType"
-      /* Handler.CompositionType */
-    );
-    registerOverwritableCommand(
-      "compositionStart"
-      /* Handler.CompositionStart */
-    );
-    registerOverwritableCommand(
-      "compositionEnd"
-      /* Handler.CompositionEnd */
-    );
-    registerOverwritableCommand(
-      "paste"
-      /* Handler.Paste */
-    );
-    registerOverwritableCommand(
-      "cut"
-      /* Handler.Cut */
-    );
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/services/markerDecorations.js
-var IMarkerDecorationsService;
-var init_markerDecorations = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/services/markerDecorations.js"() {
-    init_instantiation();
-    IMarkerDecorationsService = createDecorator("markerDecorationsService");
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/browser/services/markerDecorations.js
-var __decorate4, __param4, MarkerDecorationsContribution;
-var init_markerDecorations2 = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/browser/services/markerDecorations.js"() {
-    init_markerDecorations();
-    init_editorExtensions();
-    __decorate4 = function(decorators, target, key, desc) {
-      var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-      if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-      else for (var i2 = decorators.length - 1; i2 >= 0; i2--) if (d = decorators[i2]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-      return c > 3 && r && Object.defineProperty(target, key, r), r;
-    };
-    __param4 = function(paramIndex, decorator) {
-      return function(target, key) {
-        decorator(target, key, paramIndex);
-      };
-    };
-    MarkerDecorationsContribution = class MarkerDecorationsContribution2 {
-      static {
-        this.ID = "editor.contrib.markerDecorations";
-      }
-      constructor(_editor, _markerDecorationsService) {
-      }
-      dispose() {
-      }
-    };
-    MarkerDecorationsContribution = __decorate4([
-      __param4(1, IMarkerDecorationsService)
-    ], MarkerDecorationsContribution);
-    registerEditorContribution(
-      MarkerDecorationsContribution.ID,
-      MarkerDecorationsContribution,
-      0
-      /* EditorContributionInstantiation.Eager */
-    );
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/browser/widget/codeEditor/editor.css
-var init_editor = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/browser/widget/codeEditor/editor.css"() {
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/browser/fastDomNode.js
-function numberAsPixels(value) {
-  return typeof value === "number" ? `${value}px` : value;
-}
-function createFastDomNode(domNode) {
-  return new FastDomNode(domNode);
-}
-var FastDomNode;
-var init_fastDomNode = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/browser/fastDomNode.js"() {
-    FastDomNode = class {
-      constructor(domNode) {
-        this.domNode = domNode;
-        this._maxWidth = "";
-        this._width = "";
-        this._height = "";
-        this._top = "";
-        this._left = "";
-        this._bottom = "";
-        this._right = "";
-        this._paddingLeft = "";
-        this._fontFamily = "";
-        this._fontWeight = "";
-        this._fontSize = "";
-        this._fontStyle = "";
-        this._fontFeatureSettings = "";
-        this._fontVariationSettings = "";
-        this._textDecoration = "";
-        this._lineHeight = "";
-        this._letterSpacing = "";
-        this._className = "";
-        this._display = "";
-        this._position = "";
-        this._visibility = "";
-        this._color = "";
-        this._backgroundColor = "";
-        this._layerHint = false;
-        this._contain = "none";
-        this._boxShadow = "";
-      }
-      focus() {
-        this.domNode.focus();
-      }
-      setMaxWidth(_maxWidth) {
-        const maxWidth = numberAsPixels(_maxWidth);
-        if (this._maxWidth === maxWidth) {
-          return;
-        }
-        this._maxWidth = maxWidth;
-        this.domNode.style.maxWidth = this._maxWidth;
-      }
-      setWidth(_width) {
-        const width2 = numberAsPixels(_width);
-        if (this._width === width2) {
-          return;
-        }
-        this._width = width2;
-        this.domNode.style.width = this._width;
-      }
-      setHeight(_height) {
-        const height = numberAsPixels(_height);
-        if (this._height === height) {
-          return;
-        }
-        this._height = height;
-        this.domNode.style.height = this._height;
-      }
-      setTop(_top) {
-        const top = numberAsPixels(_top);
-        if (this._top === top) {
-          return;
-        }
-        this._top = top;
-        this.domNode.style.top = this._top;
-      }
-      setLeft(_left) {
-        const left = numberAsPixels(_left);
-        if (this._left === left) {
-          return;
-        }
-        this._left = left;
-        this.domNode.style.left = this._left;
-      }
-      setBottom(_bottom) {
-        const bottom = numberAsPixels(_bottom);
-        if (this._bottom === bottom) {
-          return;
-        }
-        this._bottom = bottom;
-        this.domNode.style.bottom = this._bottom;
-      }
-      setRight(_right) {
-        const right = numberAsPixels(_right);
-        if (this._right === right) {
-          return;
-        }
-        this._right = right;
-        this.domNode.style.right = this._right;
-      }
-      setPaddingLeft(_paddingLeft) {
-        const paddingLeft = numberAsPixels(_paddingLeft);
-        if (this._paddingLeft === paddingLeft) {
-          return;
-        }
-        this._paddingLeft = paddingLeft;
-        this.domNode.style.paddingLeft = this._paddingLeft;
-      }
-      setFontFamily(fontFamily) {
-        if (this._fontFamily === fontFamily) {
-          return;
-        }
-        this._fontFamily = fontFamily;
-        this.domNode.style.fontFamily = this._fontFamily;
-      }
-      setFontWeight(fontWeight) {
-        if (this._fontWeight === fontWeight) {
-          return;
-        }
-        this._fontWeight = fontWeight;
-        this.domNode.style.fontWeight = this._fontWeight;
-      }
-      setFontSize(_fontSize) {
-        const fontSize = numberAsPixels(_fontSize);
-        if (this._fontSize === fontSize) {
-          return;
-        }
-        this._fontSize = fontSize;
-        this.domNode.style.fontSize = this._fontSize;
-      }
-      setFontStyle(fontStyle) {
-        if (this._fontStyle === fontStyle) {
-          return;
-        }
-        this._fontStyle = fontStyle;
-        this.domNode.style.fontStyle = this._fontStyle;
-      }
-      setFontFeatureSettings(fontFeatureSettings) {
-        if (this._fontFeatureSettings === fontFeatureSettings) {
-          return;
-        }
-        this._fontFeatureSettings = fontFeatureSettings;
-        this.domNode.style.fontFeatureSettings = this._fontFeatureSettings;
-      }
-      setFontVariationSettings(fontVariationSettings) {
-        if (this._fontVariationSettings === fontVariationSettings) {
-          return;
-        }
-        this._fontVariationSettings = fontVariationSettings;
-        this.domNode.style.fontVariationSettings = this._fontVariationSettings;
-      }
-      setTextDecoration(textDecoration) {
-        if (this._textDecoration === textDecoration) {
-          return;
-        }
-        this._textDecoration = textDecoration;
-        this.domNode.style.textDecoration = this._textDecoration;
-      }
-      setLineHeight(_lineHeight) {
-        const lineHeight = numberAsPixels(_lineHeight);
-        if (this._lineHeight === lineHeight) {
-          return;
-        }
-        this._lineHeight = lineHeight;
-        this.domNode.style.lineHeight = this._lineHeight;
-      }
-      setLetterSpacing(_letterSpacing) {
-        const letterSpacing = numberAsPixels(_letterSpacing);
-        if (this._letterSpacing === letterSpacing) {
-          return;
-        }
-        this._letterSpacing = letterSpacing;
-        this.domNode.style.letterSpacing = this._letterSpacing;
-      }
-      setClassName(className2) {
-        if (this._className === className2) {
-          return;
-        }
-        this._className = className2;
-        this.domNode.className = this._className;
-      }
-      toggleClassName(className2, shouldHaveIt) {
-        this.domNode.classList.toggle(className2, shouldHaveIt);
-        this._className = this.domNode.className;
-      }
-      setDisplay(display) {
-        if (this._display === display) {
-          return;
-        }
-        this._display = display;
-        this.domNode.style.display = this._display;
-      }
-      setPosition(position) {
-        if (this._position === position) {
-          return;
-        }
-        this._position = position;
-        this.domNode.style.position = this._position;
-      }
-      setVisibility(visibility) {
-        if (this._visibility === visibility) {
-          return;
-        }
-        this._visibility = visibility;
-        this.domNode.style.visibility = this._visibility;
-      }
-      setColor(color) {
-        if (this._color === color) {
-          return;
-        }
-        this._color = color;
-        this.domNode.style.color = this._color;
-      }
-      setBackgroundColor(backgroundColor) {
-        if (this._backgroundColor === backgroundColor) {
-          return;
-        }
-        this._backgroundColor = backgroundColor;
-        this.domNode.style.backgroundColor = this._backgroundColor;
-      }
-      setLayerHinting(layerHint) {
-        if (this._layerHint === layerHint) {
-          return;
-        }
-        this._layerHint = layerHint;
-        this.domNode.style.transform = this._layerHint ? "translate3d(0px, 0px, 0px)" : "";
-      }
-      setBoxShadow(boxShadow) {
-        if (this._boxShadow === boxShadow) {
-          return;
-        }
-        this._boxShadow = boxShadow;
-        this.domNode.style.boxShadow = boxShadow;
-      }
-      setContain(contain) {
-        if (this._contain === contain) {
-          return;
-        }
-        this._contain = contain;
-        this.domNode.style.contain = this._contain;
-      }
-      setAttribute(name, value) {
-        this.domNode.setAttribute(name, value);
-      }
-      removeAttribute(name) {
-        this.domNode.removeAttribute(name);
-      }
-      appendChild(child) {
-        this.domNode.appendChild(child.domNode);
-      }
-      removeChild(child) {
-        this.domNode.removeChild(child.domNode);
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/browser/config/domFontInfo.js
-function applyFontInfo(domNode, fontInfo) {
-  if (domNode instanceof FastDomNode) {
-    domNode.setFontFamily(fontInfo.getMassagedFontFamily());
-    domNode.setFontWeight(fontInfo.fontWeight);
-    domNode.setFontSize(fontInfo.fontSize);
-    domNode.setFontFeatureSettings(fontInfo.fontFeatureSettings);
-    domNode.setFontVariationSettings(fontInfo.fontVariationSettings);
-    domNode.setLineHeight(fontInfo.lineHeight);
-    domNode.setLetterSpacing(fontInfo.letterSpacing);
-  } else {
-    domNode.style.fontFamily = fontInfo.getMassagedFontFamily();
-    domNode.style.fontWeight = fontInfo.fontWeight;
-    domNode.style.fontSize = fontInfo.fontSize + "px";
-    domNode.style.fontFeatureSettings = fontInfo.fontFeatureSettings;
-    domNode.style.fontVariationSettings = fontInfo.fontVariationSettings;
-    domNode.style.lineHeight = fontInfo.lineHeight + "px";
-    domNode.style.letterSpacing = fontInfo.letterSpacing + "px";
-  }
-}
-var init_domFontInfo = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/browser/config/domFontInfo.js"() {
-    init_fastDomNode();
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/browser/config/elementSizeObserver.js
-var ElementSizeObserver;
-var init_elementSizeObserver = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/browser/config/elementSizeObserver.js"() {
-    init_lifecycle();
-    init_event();
-    init_dom();
-    ElementSizeObserver = class extends Disposable {
-      constructor(referenceDomElement, dimension) {
-        super();
-        this._onDidChange = this._register(new Emitter());
-        this.onDidChange = this._onDidChange.event;
-        this._referenceDomElement = referenceDomElement;
-        this._width = -1;
-        this._height = -1;
-        this._resizeObserver = null;
-        this.measureReferenceDomElement(false, dimension);
-      }
-      dispose() {
-        this.stopObserving();
-        super.dispose();
-      }
-      getWidth() {
-        return this._width;
-      }
-      getHeight() {
-        return this._height;
-      }
-      startObserving() {
-        if (!this._resizeObserver && this._referenceDomElement) {
-          let observedDimenstion = null;
-          const observeNow = () => {
-            if (observedDimenstion) {
-              this.observe({ width: observedDimenstion.width, height: observedDimenstion.height });
-            } else {
-              this.observe();
-            }
-          };
-          let shouldObserve = false;
-          let alreadyObservedThisAnimationFrame = false;
-          const update = () => {
-            if (shouldObserve && !alreadyObservedThisAnimationFrame) {
-              try {
-                shouldObserve = false;
-                alreadyObservedThisAnimationFrame = true;
-                observeNow();
-              } finally {
-                scheduleAtNextAnimationFrame(getWindow(this._referenceDomElement), () => {
-                  alreadyObservedThisAnimationFrame = false;
-                  update();
-                });
-              }
-            }
-          };
-          this._resizeObserver = new ResizeObserver((entries2) => {
-            if (entries2 && entries2[0] && entries2[0].contentRect) {
-              observedDimenstion = { width: entries2[0].contentRect.width, height: entries2[0].contentRect.height };
-            } else {
-              observedDimenstion = null;
-            }
-            shouldObserve = true;
-            update();
-          });
-          this._resizeObserver.observe(this._referenceDomElement);
-        }
-      }
-      stopObserving() {
-        if (this._resizeObserver) {
-          this._resizeObserver.disconnect();
-          this._resizeObserver = null;
-        }
-      }
-      observe(dimension) {
-        this.measureReferenceDomElement(true, dimension);
-      }
-      measureReferenceDomElement(emitEvent, dimension) {
-        let observedWidth = 0;
-        let observedHeight = 0;
-        if (dimension) {
-          observedWidth = dimension.width;
-          observedHeight = dimension.height;
-        } else if (this._referenceDomElement) {
-          observedWidth = this._referenceDomElement.clientWidth;
-          observedHeight = this._referenceDomElement.clientHeight;
-        }
-        observedWidth = Math.max(5, observedWidth);
-        observedHeight = Math.max(5, observedHeight);
-        if (this._width !== observedWidth || this._height !== observedHeight) {
-          this._width = observedWidth;
-          this._height = observedHeight;
-          if (emitEvent) {
-            this._onDidChange.fire();
-          }
-        }
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/base/browser/pixelRatio.js
-var DevicePixelRatioMonitor, PixelRatioMonitorImpl, PixelRatioMonitorFacade, PixelRatio;
-var init_pixelRatio = __esm({
-  "../node_modules/monaco-editor/esm/vs/base/browser/pixelRatio.js"() {
-    init_dom();
-    init_event();
-    init_lifecycle();
-    DevicePixelRatioMonitor = class extends Disposable {
-      constructor(targetWindow) {
-        super();
-        this._onDidChange = this._register(new Emitter());
-        this.onDidChange = this._onDidChange.event;
-        this._listener = () => this._handleChange(targetWindow, true);
-        this._mediaQueryList = null;
-        this._handleChange(targetWindow, false);
-      }
-      _handleChange(targetWindow, fireEvent) {
-        this._mediaQueryList?.removeEventListener("change", this._listener);
-        this._mediaQueryList = targetWindow.matchMedia(`(resolution: ${targetWindow.devicePixelRatio}dppx)`);
-        this._mediaQueryList.addEventListener("change", this._listener);
-        if (fireEvent) {
-          this._onDidChange.fire();
-        }
-      }
-    };
-    PixelRatioMonitorImpl = class extends Disposable {
-      get value() {
-        return this._value;
-      }
-      constructor(targetWindow) {
-        super();
-        this._onDidChange = this._register(new Emitter());
-        this.onDidChange = this._onDidChange.event;
-        this._value = this._getPixelRatio(targetWindow);
-        const dprMonitor = this._register(new DevicePixelRatioMonitor(targetWindow));
-        this._register(dprMonitor.onDidChange(() => {
-          this._value = this._getPixelRatio(targetWindow);
-          this._onDidChange.fire(this._value);
-        }));
-      }
-      _getPixelRatio(targetWindow) {
-        const ctx = document.createElement("canvas").getContext("2d");
-        const dpr = targetWindow.devicePixelRatio || 1;
-        const bsr = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;
-        return dpr / bsr;
-      }
-    };
-    PixelRatioMonitorFacade = class {
-      constructor() {
-        this.mapWindowIdToPixelRatioMonitor = /* @__PURE__ */ new Map();
-      }
-      _getOrCreatePixelRatioMonitor(targetWindow) {
-        const targetWindowId = getWindowId(targetWindow);
-        let pixelRatioMonitor = this.mapWindowIdToPixelRatioMonitor.get(targetWindowId);
-        if (!pixelRatioMonitor) {
-          pixelRatioMonitor = markAsSingleton(new PixelRatioMonitorImpl(targetWindow));
-          this.mapWindowIdToPixelRatioMonitor.set(targetWindowId, pixelRatioMonitor);
-          markAsSingleton(Event.once(onDidUnregisterWindow)(({ vscodeWindowId }) => {
-            if (vscodeWindowId === targetWindowId) {
-              pixelRatioMonitor?.dispose();
-              this.mapWindowIdToPixelRatioMonitor.delete(targetWindowId);
-            }
-          }));
-        }
-        return pixelRatioMonitor;
-      }
-      getInstance(targetWindow) {
-        return this._getOrCreatePixelRatioMonitor(targetWindow);
-      }
-    };
-    PixelRatio = new PixelRatioMonitorFacade();
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/browser/config/charWidthReader.js
-function readCharWidths(targetWindow, bareFontInfo, requests) {
-  const reader = new DomCharWidthReader(bareFontInfo, requests);
-  reader.read(targetWindow);
-}
-var CharWidthRequest, DomCharWidthReader;
-var init_charWidthReader = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/browser/config/charWidthReader.js"() {
-    init_domFontInfo();
-    CharWidthRequest = class {
-      constructor(chr, type) {
-        this.chr = chr;
-        this.type = type;
-        this.width = 0;
-      }
-      fulfill(width2) {
-        this.width = width2;
-      }
-    };
-    DomCharWidthReader = class _DomCharWidthReader {
-      constructor(bareFontInfo, requests) {
-        this._bareFontInfo = bareFontInfo;
-        this._requests = requests;
-        this._container = null;
-        this._testElements = null;
-      }
-      read(targetWindow) {
-        this._createDomElements();
-        targetWindow.document.body.appendChild(this._container);
-        this._readFromDomElements();
-        this._container?.remove();
-        this._container = null;
-        this._testElements = null;
-      }
-      _createDomElements() {
-        const container = document.createElement("div");
-        container.style.position = "absolute";
-        container.style.top = "-50000px";
-        container.style.width = "50000px";
-        const regularDomNode = document.createElement("div");
-        applyFontInfo(regularDomNode, this._bareFontInfo);
-        container.appendChild(regularDomNode);
-        const boldDomNode = document.createElement("div");
-        applyFontInfo(boldDomNode, this._bareFontInfo);
-        boldDomNode.style.fontWeight = "bold";
-        container.appendChild(boldDomNode);
-        const italicDomNode = document.createElement("div");
-        applyFontInfo(italicDomNode, this._bareFontInfo);
-        italicDomNode.style.fontStyle = "italic";
-        container.appendChild(italicDomNode);
-        const testElements = [];
-        for (const request of this._requests) {
-          let parent;
-          if (request.type === 0) {
-            parent = regularDomNode;
-          }
-          if (request.type === 2) {
-            parent = boldDomNode;
-          }
-          if (request.type === 1) {
-            parent = italicDomNode;
-          }
-          parent.appendChild(document.createElement("br"));
-          const testElement = document.createElement("span");
-          _DomCharWidthReader._render(testElement, request);
-          parent.appendChild(testElement);
-          testElements.push(testElement);
-        }
-        this._container = container;
-        this._testElements = testElements;
-      }
-      static _render(testElement, request) {
-        if (request.chr === " ") {
-          let htmlString = "\xA0";
-          for (let i2 = 0; i2 < 8; i2++) {
-            htmlString += htmlString;
-          }
-          testElement.innerText = htmlString;
-        } else {
-          let testString = request.chr;
-          for (let i2 = 0; i2 < 8; i2++) {
-            testString += testString;
-          }
-          testElement.textContent = testString;
-        }
-      }
-      _readFromDomElements() {
-        for (let i2 = 0, len = this._requests.length; i2 < len; i2++) {
-          const request = this._requests[i2];
-          const testElement = this._testElements[i2];
-          request.fulfill(testElement.offsetWidth / 256);
-        }
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/config/editorZoom.js
-var EditorZoom;
-var init_editorZoom = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/config/editorZoom.js"() {
-    init_event();
-    EditorZoom = new class {
-      constructor() {
-        this._zoomLevel = 0;
-        this._onDidChangeZoomLevel = new Emitter();
-        this.onDidChangeZoomLevel = this._onDidChangeZoomLevel.event;
-      }
-      getZoomLevel() {
-        return this._zoomLevel;
-      }
-      setZoomLevel(zoomLevel) {
-        zoomLevel = Math.min(Math.max(-5, zoomLevel), 20);
-        if (this._zoomLevel === zoomLevel) {
-          return;
-        }
-        this._zoomLevel = zoomLevel;
-        this._onDidChangeZoomLevel.fire(this._zoomLevel);
-      }
-    }();
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/config/fontInfo.js
-var GOLDEN_LINE_HEIGHT_RATIO, MINIMUM_LINE_HEIGHT, BareFontInfo, SERIALIZED_FONT_INFO_VERSION, FontInfo, FONT_VARIATION_OFF, FONT_VARIATION_TRANSLATE, DEFAULT_WINDOWS_FONT_FAMILY, DEFAULT_MAC_FONT_FAMILY, DEFAULT_LINUX_FONT_FAMILY, EDITOR_FONT_DEFAULTS;
-var init_fontInfo = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/config/fontInfo.js"() {
-    init_platform();
-    init_editorZoom();
-    GOLDEN_LINE_HEIGHT_RATIO = isMacintosh ? 1.5 : 1.35;
-    MINIMUM_LINE_HEIGHT = 8;
-    BareFontInfo = class _BareFontInfo {
-      /**
-       * @internal
-       */
-      static _create(fontFamily, fontWeight, fontSize, fontFeatureSettings, fontVariationSettings, lineHeight, letterSpacing, pixelRatio, ignoreEditorZoom) {
-        if (lineHeight === 0) {
-          lineHeight = GOLDEN_LINE_HEIGHT_RATIO * fontSize;
-        } else if (lineHeight < MINIMUM_LINE_HEIGHT) {
-          lineHeight = lineHeight * fontSize;
-        }
-        lineHeight = Math.round(lineHeight);
-        if (lineHeight < MINIMUM_LINE_HEIGHT) {
-          lineHeight = MINIMUM_LINE_HEIGHT;
-        }
-        const editorZoomLevelMultiplier = 1 + (ignoreEditorZoom ? 0 : EditorZoom.getZoomLevel() * 0.1);
-        fontSize *= editorZoomLevelMultiplier;
-        lineHeight *= editorZoomLevelMultiplier;
-        if (fontVariationSettings === FONT_VARIATION_TRANSLATE) {
-          if (fontWeight === "normal" || fontWeight === "bold") {
-            fontVariationSettings = FONT_VARIATION_OFF;
-          } else {
-            const fontWeightAsNumber = parseInt(fontWeight, 10);
-            fontVariationSettings = `'wght' ${fontWeightAsNumber}`;
-            fontWeight = "normal";
-          }
-        }
-        return new _BareFontInfo({
-          pixelRatio,
-          fontFamily,
-          fontWeight,
-          fontSize,
-          fontFeatureSettings,
-          fontVariationSettings,
-          lineHeight,
-          letterSpacing
-        });
-      }
-      /**
-       * @internal
-       */
-      constructor(opts) {
-        this._bareFontInfoBrand = void 0;
-        this.pixelRatio = opts.pixelRatio;
-        this.fontFamily = String(opts.fontFamily);
-        this.fontWeight = String(opts.fontWeight);
-        this.fontSize = opts.fontSize;
-        this.fontFeatureSettings = opts.fontFeatureSettings;
-        this.fontVariationSettings = opts.fontVariationSettings;
-        this.lineHeight = opts.lineHeight | 0;
-        this.letterSpacing = opts.letterSpacing;
-      }
-      /**
-       * @internal
-       */
-      getId() {
-        return `${this.pixelRatio}-${this.fontFamily}-${this.fontWeight}-${this.fontSize}-${this.fontFeatureSettings}-${this.fontVariationSettings}-${this.lineHeight}-${this.letterSpacing}`;
-      }
-      /**
-       * @internal
-       */
-      getMassagedFontFamily() {
-        const fallbackFontFamily = EDITOR_FONT_DEFAULTS.fontFamily;
-        const fontFamily = _BareFontInfo._wrapInQuotes(this.fontFamily);
-        if (this.fontFamily !== fallbackFontFamily) {
-          return `${fontFamily}, ${fallbackFontFamily}`;
-        }
-        return fontFamily;
-      }
-      static _wrapInQuotes(fontFamily) {
-        if (/[,"']/.test(fontFamily)) {
-          return fontFamily;
-        }
-        if (/[+ ]/.test(fontFamily)) {
-          return `"${fontFamily}"`;
-        }
-        return fontFamily;
-      }
-    };
-    SERIALIZED_FONT_INFO_VERSION = 2;
-    FontInfo = class extends BareFontInfo {
-      /**
-       * @internal
-       */
-      constructor(opts, isTrusted) {
-        super(opts);
-        this._editorStylingBrand = void 0;
-        this.version = SERIALIZED_FONT_INFO_VERSION;
-        this.isTrusted = isTrusted;
-        this.isMonospace = opts.isMonospace;
-        this.typicalHalfwidthCharacterWidth = opts.typicalHalfwidthCharacterWidth;
-        this.typicalFullwidthCharacterWidth = opts.typicalFullwidthCharacterWidth;
-        this.canUseHalfwidthRightwardsArrow = opts.canUseHalfwidthRightwardsArrow;
-        this.spaceWidth = opts.spaceWidth;
-        this.middotWidth = opts.middotWidth;
-        this.wsmiddotWidth = opts.wsmiddotWidth;
-        this.maxDigitWidth = opts.maxDigitWidth;
-      }
-      /**
-       * @internal
-       */
-      equals(other) {
-        return this.fontFamily === other.fontFamily && this.fontWeight === other.fontWeight && this.fontSize === other.fontSize && this.fontFeatureSettings === other.fontFeatureSettings && this.fontVariationSettings === other.fontVariationSettings && this.lineHeight === other.lineHeight && this.letterSpacing === other.letterSpacing && this.typicalHalfwidthCharacterWidth === other.typicalHalfwidthCharacterWidth && this.typicalFullwidthCharacterWidth === other.typicalFullwidthCharacterWidth && this.canUseHalfwidthRightwardsArrow === other.canUseHalfwidthRightwardsArrow && this.spaceWidth === other.spaceWidth && this.middotWidth === other.middotWidth && this.wsmiddotWidth === other.wsmiddotWidth && this.maxDigitWidth === other.maxDigitWidth;
-      }
-    };
-    FONT_VARIATION_OFF = "normal";
-    FONT_VARIATION_TRANSLATE = "translate";
-    DEFAULT_WINDOWS_FONT_FAMILY = "Consolas, 'Courier New', monospace";
-    DEFAULT_MAC_FONT_FAMILY = "Menlo, Monaco, 'Courier New', monospace";
-    DEFAULT_LINUX_FONT_FAMILY = "'Droid Sans Mono', 'monospace', monospace";
-    EDITOR_FONT_DEFAULTS = {
-      fontFamily: isMacintosh ? DEFAULT_MAC_FONT_FAMILY : isWindows ? DEFAULT_WINDOWS_FONT_FAMILY : DEFAULT_LINUX_FONT_FAMILY,
-      fontWeight: "normal",
-      fontSize: isMacintosh ? 12 : 14,
-      lineHeight: 0,
-      letterSpacing: 0
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/core/misc/textModelDefaults.js
-var EDITOR_MODEL_DEFAULTS;
-var init_textModelDefaults = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/core/misc/textModelDefaults.js"() {
-    EDITOR_MODEL_DEFAULTS = {
-      tabSize: 4,
-      indentSize: 4,
-      insertSpaces: true,
-      detectIndentation: true,
-      trimAutoWhitespace: true,
-      largeFileOptimizations: true,
-      bracketPairColorizationOptions: {
-        enabled: true,
-        independentColorPoolPerBracketType: false
-      }
-    };
-  }
-});
-
-// ../node_modules/monaco-editor/esm/vs/editor/common/config/editorOptions.js
-function applyUpdate(value, update) {
-  if (typeof value !== "object" || typeof update !== "object" || !value || !update) {
-    return new ApplyUpdateResult(update, value !== update);
-  }
-  if (Array.isArray(value) || Array.isArray(update)) {
-    const arrayEquals = Array.isArray(value) && Array.isArray(update) && equals(value, update);
-    return new ApplyUpdateResult(update, !arrayEquals);
-  }
-  let didChange = false;
-  for (const key in update) {
-    if (update.hasOwnProperty(key)) {
-      const result = applyUpdate(value[key], update[key]);
-      if (result.didChange) {
-        value[key] = result.newValue;
-        didChange = true;
-      }
-    }
-  }
-  return new ApplyUpdateResult(value, didChange);
-}
-function boolean(value, defaultValue) {
-  if (typeof value === "undefined") {
-    return defaultValue;
-  }
-  if (value === "false") {
-    return false;
-  }
-  return Boolean(value);
-}
-function clampedInt(value, defaultValue, minimum, maximum) {
-  if (typeof value === "string") {
-    value = parseInt(value, 10);
-  }
-  if (typeof value !== "number" || isNaN(value)) {
-    return defaultValue;
-  }
-  let r = value;
-  r = Math.max(minimum, r);
-  r = Math.min(maximum, r);
-  return r | 0;
-}
-function clampedFloat(value, defaultValue, minimum, maximum) {
-  if (typeof value === "undefined") {
-    return defaultValue;
-  }
-  const r = EditorFloatOption.float(value, defaultValue);
-  return EditorFloatOption.clamp(r, minimum, maximum);
-}
-function stringSet(value, defaultValue, allowedValues, renamedValues) {
-  if (typeof value !== "string") {
-    return defaultValue;
-  }
-  if (renamedValues && value in renamedValues) {
-    return renamedValues[value];
-  }
-  if (allowedValues.indexOf(value) === -1) {
-    return defaultValue;
-  }
-  return value;
-}
-function _autoIndentFromString(autoIndent) {
-  switch (autoIndent) {
-    case "none":
-      return 0;
-    case "keep":
-      return 1;
-    case "brackets":
-      return 2;
-    case "advanced":
-      return 3;
-    case "full":
-      return 4;
-  }
-}
-function cursorBlinkingStyleFromString(cursorBlinkingStyle) {
-  switch (cursorBlinkingStyle) {
-    case "blink":
-      return 1;
-    case "smooth":
-      return 2;
-    case "phase":
-      return 3;
-    case "expand":
-      return 4;
-    case "solid":
-      return 5;
-  }
-}
-function cursorStyleFromString(cursorStyle) {
-  switch (cursorStyle) {
-    case "line":
-      return TextEditorCursorStyle.Line;
-    case "block":
-      return TextEditorCursorStyle.Block;
-    case "underline":
-      return TextEditorCursorStyle.Underline;
-    case "line-thin":
-      return TextEditorCursorStyle.LineThin;
-    case "block-outline":
-      return TextEditorCursorStyle.BlockOutline;
-    case "underline-thin":
-      return TextEditorCursorStyle.UnderlineThin;
-  }
-}
-function _multiCursorModifierFromString(multiCursorModifier) {
-  if (multiCursorModifier === "ctrlCmd") {
-    return isMacintosh ? "metaKey" : "ctrlKey";
-  }
-  return "altKey";
-}
-function filterValidationDecorations(options) {
-  const renderValidationDecorations = options.get(
-    112
-    /* EditorOption.renderValidationDecorations */
-  );
-  if (renderValidationDecorations === "editable") {
-    return options.get(
-      104
-      /* EditorOption.readOnly */
-    );
-  }
-  return renderValidationDecorations === "on" ? false : true;
-}
-function filterFontDecorations(options) {
-  return !options.get(
-    172
-    /* EditorOption.effectiveAllowVariableFonts */
-  );
-}
-function _scrollbarVisibilityFromString(visibility, defaultValue) {
-  if (typeof visibility !== "string") {
-    return defaultValue;
-  }
-  switch (visibility) {
-    case "hidden":
-      return 2;
-    case "visible":
-      return 3;
-    default:
-      return 1;
-  }
-}
-function primitiveSet(value, defaultValue, allowedValues) {
-  const idx = allowedValues.indexOf(value);
-  if (idx === -1) {
-    return defaultValue;
-  }
-  return allowedValues[idx];
-}
-function register2(option2) {
-  editorOptionsRegistry[option2.id] = option2;
-  return option2;
-}
-var MINIMAP_GUTTER_WIDTH, ConfigurationChangedEvent, ComputeOptionsMemory, BaseEditorOption, ApplyUpdateResult, ComputedEditorOption, SimpleEditorOption, EditorBooleanOption, EditorIntOption, EditorFloatOption, EditorStringOption, EditorStringEnumOption, EditorEnumOption, EditorAccessibilitySupport, EditorComments, TextEditorCursorStyle, EditorClassName, EditorEmptySelectionClipboard, EditorFind, EditorFontLigatures, EditorFontVariations, EditorFontInfo, EffectiveCursorStyle, EffectiveEditContextEnabled, EffectiveAllowVariableFonts, EditorFontSize, EditorFontWeight, EditorGoToLocation, EditorHover, EditorLayoutInfoComputer, WrappingStrategy, ShowLightbulbIconMode, EditorLightbulb, EditorStickyScroll, EditorInlayHints, EditorLineDecorationsWidth, EditorLineHeight, EditorMinimap, EditorPadding, EditorParameterHints, EditorPixelRatio, PlaceholderOption, EditorQuickSuggestions, EditorRenderLineNumbersOption, EditorRulers, ReadonlyMessage, EditorScrollbar, inUntrustedWorkspace, unicodeHighlightConfigKeys, UnicodeHighlight, InlineEditorSuggest, BracketPairColorization, GuideOptions, EditorSuggest, SmartSelect, WordSegmenterLocales, WrappingIndentOption, EditorWrappingInfoComputer, EditorDropIntoEditor, EditorPasteAs, editorOptionsRegistry, EditorOptions;
-var init_editorOptions = __esm({
-  "../node_modules/monaco-editor/esm/vs/editor/common/config/editorOptions.js"() {
-    init_arrays();
-    init_objects();
-    init_platform();
-    init_fontInfo();
-    init_textModelDefaults();
-    init_wordHelper();
-    init_nls();
-    MINIMAP_GUTTER_WIDTH = 8;
-    ConfigurationChangedEvent = class {
-      /**
-       * @internal
-       */
-      constructor(values) {
-        this._values = values;
-      }
-      hasChanged(id) {
-        return this._values[id];
-      }
-    };
-    ComputeOptionsMemory = class {
-      constructor() {
-        this.stableMinimapLayoutInput = null;
-        this.stableFitMaxMinimapScale = 0;
-        this.stableFitRemainingWidth = 0;
-      }
-    };
-    BaseEditorOption = class {
-      constructor(id, name, defaultValue, schema) {
-        this.id = id;
-        this.name = name;
-        this.defaultValue = defaultValue;
-        this.schema = schema;
-      }
-      applyUpdate(value, update) {
-        return applyUpdate(value, update);
-      }
-      compute(env2, options, value) {
-        return value;
-      }
-    };
-    ApplyUpdateResult = class {
-      constructor(newValue, didChange) {
-        this.newValue = newValue;
-        this.didChange = didChange;
-      }
-    };
-    ComputedEditorOption = class {
-      constructor(id, defaultValue) {
-        this.schema = void 0;
-        this.id = id;
-        this.name = "_never_";
-        this.defaultValue = defaultValue;
-      }
-      applyUpdate(value, update) {
-        return applyUpdate(value, update);
-      }
-      validate(input) {
-        return this.defaultValue;
-      }
-    };
-    SimpleEditorOption = class {
-      constructor(id, name, defaultValue, schema) {
-        this.id = id;
-        this.name = name;
-        this.defaultValue = defaultValue;
-        this.schema = schema;
-      }
-      applyUpdate(value, update) {
-        return applyUpdate(value, update);
-      }
-      compute(env2, options, value) {
-        return value;
-      }
-    };
-    EditorBooleanOption = class extends SimpleEditorOption {
-      constructor(id, name, defaultValue, schema = void 0) {
-        if (typeof schema !== "undefined") {
-          schema.type = "boolean";
-          schema.default = defaultValue;
-        }
-        super(id, name, defaultValue, schema);
-      }
-      validate(input) {
-        return boolean(input, this.defaultValue);
-      }
-    };
-    EditorIntOption = class _EditorIntOption extends SimpleEditorOption {
-      static clampedInt(value, defaultValue, minimum, maximum) {
-        return clampedInt(value, defaultValue, minimum, maximum);
-      }
-      constructor(id, name, defaultValue, minimum, maximum, schema = void 0) {
-        if (typeof schema !== "undefined") {
-          schema.type = "integer";
-          schema.default = defaultValue;
-          schema.minimum = minimum;
-          schema.maximum = maximum;
-        }
-        super(id, name, defaultValue, schema);
-        this.minimum = minimum;
-        this.maximum = maximum;
-      }
-      validate(input) {
-        return _EditorIntOption.clampedInt(input, this.defaultValue, this.minimum, this.maximum);
-      }
-    };
-    EditorFloatOption = class _EditorFloatOption extends SimpleEditorOption {
-      static clamp(n2, min, max) {
-        if (n2 < min) {
-          return min;
-        }
-        if (n2 > max) {
-          return max;
-        }
-        return n2;
-      }
-      static float(value, defaultValue) {
-        if (typeof value === "string") {
-          value = parseFloat(value);
-        }
-        if (typeof value !== "number" || isNaN(value)) {
-          return defaultValue;
-        }
-        return value;
-      }
-      constructor(id, name, defaultValue, validationFn, schema, minimum, maximum) {
-        if (typeof schema !== "undefined") {
-          schema.type = "number";
-          schema.default = defaultValue;
-          schema.minimum = minimum;
-          schema.maximum = maximum;
-        }
-        super(id, name, defaultValue, schema);
-        this.validationFn = validationFn;
-        this.minimum = minimum;
-        this.maximum = maximum;
-      }
-      validate(input) {
-        return this.validationFn(_EditorFloatOption.float(input, this.defaultValue));
-      }
-    };
-    EditorStringOption = class _EditorStringOption extends SimpleEditorOption {
-      static string(value, defaultValue) {
-        if (typeof value !== "string") {
-          return defaultValue;
-        }
-        return value;
-      }
-      constructor(id, name, defaultValue, schema = void 0) {
-        if (typeof schema !== "undefined") {
-          schema.type = "string";
-          schema.default = defaultValue;
-        }
-        super(id, name, defaultValue, schema);
-      }
-      validate(input) {
-        return _EditorStringOption.string(input, this.defaultValue);
-      }
-    };
-    EditorStringEnumOption = class extends SimpleEditorOption {
-      constructor(id, name, defaultValue, allowedValues, schema = void 0) {
-        if (typeof schema !== "undefined") {
-          schema.type = "string";
-          schema.enum = allowedValues.slice(0);
-          schema.default = defaultValue;
-        }
-        super(id, name, defaultValue, schema);
-        this._allowedValues = allowedValues;
-      }
-      validate(input) {
-        return stringSet(input, this.defaultValue, this._allowedValues);
-      }
-    };
-    EditorEnumOption = class extends BaseEditorOption {
-      constructor(id, name, defaultValue, defaultStringValue, allowedValues, convert, schema = void 0) {
-        if (typeof schema !== "undefined") {
-          schema.type = "string";
-          schema.enum = allowedValues;
-          schema.default = defaultStringValue;
-        }
-        super(id, name, defaultValue, schema);
-        this._allowedValues = allowedValues;
-        this._convert = convert;
-      }
-      validate(input) {
-        if (typeof input !== "string") {
-          return this.defaultValue;
-        }
-        if (this._allowedValues.indexOf(input) === -1) {
-          return this.defaultValue;
-        }
-        return this._convert(input);
-      }
-    };
-    EditorAccessibilitySupport = class extends BaseEditorOption {
-      constructor() {
-        super(2, "accessibilitySupport", 0, {
-          type: "string",
-          enum: ["auto", "on", "off"],
-          enumDescriptions: [
-            localize(201, "Use platform APIs to detect when a Screen Reader is attached."),
-            localize(202, "Optimize for usage with a Screen Reader."),
-            localize(203, "Assume a screen reader is not attached.")
-          ],
-          default: "auto",
-          tags: ["accessibility"],
-          description: localize(204, "Controls if the UI should run in a mode where it is optimized for screen readers.")
-        });
-      }
-      validate(input) {
-        switch (input) {
-          case "auto":
-            return 0;
-          case "off":
-            return 1;
-          case "on":
-            return 2;
-        }
-        return this.defaultValue;
-      }
-      compute(env2, options, value) {
-        if (value === 0) {
-          return env2.accessibilitySupport;
-        }
-        return value;
-      }
-    };
-    EditorComments = class extends BaseEditorOption {
-      constructor() {
-        const defaults = {
-          insertSpace: true,
-          ignoreEmptyLines: true
-        };
-        super(29, "comments", defaults, {
-          "editor.comments.insertSpace": {
-            type: "boolean",
-            default: defaults.insertSpace,
-            description: localize(205, "Controls whether a space character is inserted when commenting.")
-          },
-          "editor.comments.ignoreEmptyLines": {
-            type: "boolean",
-            default: defaults.ignoreEmptyLines,
-            description: localize(206, "Controls if empty lines should be ignored with toggle, add or remove actions for line comments.")
-          }
-        });
-      }
-      validate(_input) {
-        if (!_input || typeof _input !== "object") {
-          return this.defaultValue;
-        }
-        const input = _input;
-        return {
-          insertSpace: boolean(input.insertSpace, this.defaultValue.insertSpace),
-          ignoreEmptyLines: boolean(input.ignoreEmptyLines, this.defaultValue.ignoreEmptyLines)
-        };
-      }
-    };
-    (function(TextEditorCursorStyle3) {
-      TextEditorCursorStyle3[TextEditorCursorStyle3["Line"] = 1] = "Line";
-      TextEditorCursorStyle3[TextEditorCursorStyle3["Block"] = 2] = "Block";
-      TextEditorCursorStyle3[TextEditorCursorStyle3["Underline"] = 3] = "Underline";
-      TextEditorCursorStyle3[TextEditorCursorStyle3["LineThin"] = 4] = "LineThin";
-      TextEditorCursorStyle3[TextEditorCursorStyle3["BlockOutline"] = 5] = "BlockOutline";
-      TextEditorCursorStyle3[TextEditorCursorStyle3["UnderlineThin"] = 6] = "UnderlineThin";
-    })(TextEditorCursorStyle || (TextEditorCursorStyle = {}));
-    EditorClassName = class extends ComputedEditorOption {
-      constructor() {
-        super(162, "");
-      }
-      compute(env2, options, _) {
-        const classNames2 = ["monaco-editor"];
-        if (options.get(
-          48
-          /* EditorOption.extraEditorClassName */
-        )) {
-          classNames2.push(options.get(
-            48
-            /* EditorOption.extraEditorClassName */
-          ));
-        }
-        if (env2.extraEditorClassName) {
-          classNames2.push(env2.extraEditorClassName);
-        }
-        if (options.get(
-          82
-          /* EditorOption.mouseStyle */
-        ) === "default") {
-          classNames2.push("mouse-default");
-        } else if (options.get(
-          82
-          /* EditorOption.mouseStyle */
-        ) === "copy") {
-          classNames2.push("mouse-copy");
-        }
-        if (options.get(
-          127
-          /* EditorOption.showUnused */
-        )) {
-          classNames2.push("showUnused");
-        }
-        if (options.get(
-          157
-          /* EditorOption.showDeprecated */
-        )) {
-          classNames2.push("showDeprecated");
-        }
-        return classNames2.join(" ");
-      }
-    };
-    EditorEmptySelectionClipboard = class extends EditorBooleanOption {
-      constructor() {
-        super(45, "emptySelectionClipboard", true, { description: localize(207, "Controls whether copying without a selection copies the current line.") });
-      }
-      compute(env2, options, value) {
-        return value && env2.emptySelectionClipboard;
-      }
-    };
-    EditorFind = class extends BaseEditorOption {
-      constructor() {
-        const defaults = {
-          cursorMoveOnType: true,
-          findOnType: true,
-          seedSearchStringFromSelection: "always",
-          autoFindInSelection: "never",
-          globalFindClipboard: false,
-          addExtraSpaceOnTop: true,
-          loop: true,
-          history: "workspace",
-          replaceHistory: "workspace"
-        };
-        super(50, "find", defaults, {
-          "editor.find.cursorMoveOnType": {
-            type: "boolean",
-            default: defaults.cursorMoveOnType,
-            description: localize(208, "Controls whether the cursor should jump to find matches while typing.")
-          },
-          "editor.find.seedSearchStringFromSelection": {
-            type: "string",
-            enum: ["never", "always", "selection"],
-            default: defaults.seedSearchStringFromSelection,
-            enumDescriptions: [
-              localize(209, "Never seed search string from the editor selection."),
-              localize(210, "Always seed search string from the editor selection, including word at cursor position."),
-              localize(211, "Only seed search string from the editor selection.")
-            ],
-            description: localize(212, "Controls whether the search string in the Find Widget is seeded from the editor selection.")
-          },
-          "editor.find.autoFindInSelection": {
-            type: "string",
-            enum: ["never", "always", "multiline"],
-            default: defaults.autoFindInSelection,
-            enumDescriptions: [
-              localize(213, "Never turn on Find in Selection automatically (default)."),
-              localize(214, "Always turn on Find in Selection automatically."),
-              localize(215, "Turn on Find in Selection automatically when multiple lines of content are selected.")
-            ],
-            description: localize(216, "Controls the condition for turning on Find in Selection automatically.")
-          },
-          "editor.find.globalFindClipboard": {
-            type: "boolean",
-            default: defaults.globalFindClipboard,
-            description: localize(217, "Controls whether the Find Widget should read or modify the shared find clipboard on macOS."),
-            included: isMacintosh
-          },
-          "editor.find.addExtraSpaceOnTop": {
-            type: "boolean",
-            default: defaults.addExtraSpaceOnTop,
-            description: localize(218, "Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.")
-          },
-          "editor.find.loop": {
-            type: "boolean",
-            default: defaults.loop,
-            description: localize(219, "Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.")
-          },
-          "editor.find.history": {
-            type: "string",
-            enum: ["never", "workspace"],
-            default: "workspace",
-            enumDescriptions: [
-              localize(220, "Do not store search history from the find widget."),
-              localize(221, "Store search history across the active workspace")
-            ],
-            description: localize(222, "Controls how the find widget history should be stored")
-          },
-          "editor.find.replaceHistory": {
-            type: "string",
-            enum: ["never", "workspace"],
-            default: "workspace",
-            enumDescriptions: [
-              localize(223, "Do not store history from the replace widget."),
-              localize(224, "Store replace history across the active workspace")
-            ],
-            description: localize(225, "Controls how the replace widget history should be stored")
-          },
-          "editor.find.findOnType": {
-            type: "boolean",
-            default: defaults.findOnType,
-            description: localize(226, "Controls whether the Find Widget should search as you type.")
-          }
-        });
-      }
-      validate(_input) {
-        if (!_input || typeof _input !== "object") {
-          return this.defaultValue;
-        }
-        const input = _input;
-        return {
-          cursorMoveOnType: boolean(input.cursorMoveOnType, this.defaultValue.cursorMoveOnType),
-          findOnType: boolean(input.findOnType, this.defaultValue.findOnType),
-          seedSearchStringFromSelection: typeof input.seedSearchStringFromSelection === "boolean" ? input.seedSearchStringFromSelection ? "always" : "never" : stringSet(input.seedSearchStringFromSelection, this.defaultValue.seedSearchStringFromSelection, ["never", "always", "selection"]),
-          autoFindInSelection: typeof input.autoFindInSelection === "boolean" ? input.autoFindInSelection ? "always" : "never" : stringSet(input.autoFindInSelection, this.defaultValue.autoFindInSelection, ["never", "always", "multiline"]),
-          globalFindClipboard: boolean(input.globalFindClipboard, this.defaultValue.globalFindClipboard),
-          addExtraSpaceOnTop: boolean(input.addExtraSpaceOnTop, this.defaultValue.addExtraSpaceOnTop),
-          loop: boolean(input.loop, this.defaultValue.loop),
-          history: stringSet(input.history, this.defaultValue.history, ["never", "workspace"]),
-          replaceHistory: stringSet(input.replaceHistory, this.defaultValue.replaceHistory, ["never", "workspace"])
-        };
-      }
-    };
-    EditorFontLigatures = class _EditorFontLigatures extends BaseEditorOption {
-      static {
-        this.OFF = '"liga" off, "calt" off';
-      }
-      static {
-        this.ON = '"liga" on, "calt" on';
-      }
-      constructor() {
-        super(60, "fontLigatures", _EditorFontLigatures.OFF, {
-          anyOf: [
-            {
-              type: "boolean",
-              description: localize(227, "Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.")
-            },
-            {
-              type: "string",
-              description: localize(228, "Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.")
-            }
-          ],
-          description: localize(229, "Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property."),
-          default: false
-        });
-      }
-      validate(input) {
-        if (typeof input === "undefined") {
-          return this.defaultValue;
-        }
-        if (typeof input === "string") {
-          if (input === "false" || input.length === 0) {
-            return _EditorFontLigatures.OFF;
-          }
-          if (input === "true") {
-            return _EditorFontLigatures.ON;
-          }
-          return input;
-        }
-        if (Boolean(input)) {
-          return _EditorFontLigatures.ON;
-        }
-        return _EditorFontLigatures.OFF;
-      }
-    };
-    EditorFontVariations = class _EditorFontVariations extends BaseEditorOption {
-      static {
-        this.OFF = FONT_VARIATION_OFF;
-      }
-      static {
-        this.TRANSLATE = FONT_VARIATION_TRANSLATE;
-      }
-      constructor() {
-        super(63, "fontVariations", _EditorFontVariations.OFF, {
-          anyOf: [
-            {
-              type: "boolean",
-              description: localize(230, "Enables/Disables the translation from font-weight to font-variation-settings. Change this to a string for fine-grained control of the 'font-variation-settings' CSS property.")
-            },
-            {
-              type: "string",
-              description: localize(231, "Explicit 'font-variation-settings' CSS property. A boolean can be passed instead if one only needs to translate font-weight to font-variation-settings.")
-            }
-          ],
-          description: localize(232, "Configures font variations. Can be either a boolean to enable/disable the translation from font-weight to font-variation-settings or a string for the value of the CSS 'font-variation-settings' property."),
-          default: false
-        });
-      }
-      validate(input) {
-        if (typeof input === "undefined") {
-          return this.defaultValue;
-        }
-        if (typeof input === "string") {
-          if (input === "false") {
-            return _EditorFontVariations.OFF;
-          }
-          if (input === "true") {
-            return _EditorFontVariations.TRANSLATE;
-          }
-          return input;
-        }
-        if (Boolean(input)) {
-          return _EditorFontVariations.TRANSLATE;
-        }
-        return _EditorFontVariations.OFF;
-      }
-      compute(env2, options, value) {
-        return env2.fontInfo.fontVariationSettings;
-      }
-    };
-    EditorFontInfo = class extends ComputedEditorOption {
-      constructor() {
-        super(59, new FontInfo({
-          pixelRatio: 0,
-          fontFamily: "",
-          fontWeight: "",
-          fontSize: 0,
-          fontFeatureSettings: "",
-          fontVariationSettings: "",
-          lineHeight: 0,
-          letterSpacing: 0,
-          isMonospace: false,
-          typicalHalfwidthCharacterWidth: 0,
-          typicalFullwidthCharacterWidth: 0,
-          canUseHalfwidthRightwardsArrow: false,
-          spaceWidth: 0,
-          middotWidth: 0,
-          wsmiddotWidth: 0,
-          maxDigitWidth: 0
-        }, false));
-      }
-      compute(env2, options, _) {
-        return env2.fontInfo;
-      }
-    };
-    EffectiveCursorStyle = class extends ComputedEditorOption {
-      constructor() {
-        super(161, TextEditorCursorStyle.Line);
-      }
-      compute(env2, options, _) {
-        return env2.inputMode === "overtype" ? options.get(
-          92
-          /* EditorOption.overtypeCursorStyle */
-        ) : options.get(
-          34
-          /* EditorOption.cursorStyle */
-        );
-      }
-    };
-    EffectiveEditContextEnabled = class extends ComputedEditorOption {
-      constructor() {
-        super(170, false);
-      }
-      compute(env2, options) {
-        return env2.editContextSupported && options.get(
-          44
-          /* EditorOption.editContext */
-        );
-      }
-    };
-    EffectiveAllowVariableFonts = class extends ComputedEditorOption {
-      constructor() {
-        super(172, false);
-      }
-      compute(env2, options) {
-        const accessibilitySupport = env2.accessibilitySupport;
-        if (accessibilitySupport === 2) {
-          return options.get(
-            7
-            /* EditorOption.allowVariableFontsInAccessibilityMode */
-          );
-        } else {
-          return options.get(
-            6
-            /* EditorOption.allowVariableFonts */
-          );
-        }
-      }
-    };
-    EditorFontSize = class extends SimpleEditorOption {
-      constructor() {
-        super(61, "fontSize", EDITOR_FONT_DEFAULTS.fontSize, {
-          type: "number",
-          minimum: 6,
-          maximum: 100,
-          default: EDITOR_FONT_DEFAULTS.fontSize,
-          description: localize(233, "Controls the font size in pixels.")
-        });
-      }
-      validate(input) {
-        const r = EditorFloatOption.float(input, this.defaultValue);
-        if (r === 0) {
-          return EDITOR_FONT_DEFAULTS.fontSize;
-        }
-        return EditorFloatOption.clamp(r, 6, 100);
-      }
-      compute(env2, options, value) {
-        return env2.fontInfo.fontSize;
-      }
-    };
-    EditorFontWeight = class _EditorFontWeight extends BaseEditorOption {
-      static {
-        this.SUGGESTION_VALUES = ["normal", "bold", "100", "200", "300", "400", "500", "600", "700", "800", "900"];
-      }
-      static {
-        this.MINIMUM_VALUE = 1;
-      }
-      static {
-        this.MAXIMUM_VALUE = 1e3;
-      }
-      constructor() {
-        super(62, "fontWeight", EDITOR_FONT_DEFAULTS.fontWeight, {
-          anyOf: [
-            {
-              type: "number",
-              minimum: _EditorFontWeight.MINIMUM_VALUE,
-              maximum: _EditorFontWeight.MAXIMUM_VALUE,
-              errorMessage: localize(234, 'Only "normal" and "bold" keywords or numbers between 1 and 1000 are allowed.')
-            },
-            {
-              type: "string",
-              pattern: "^(normal|bold|1000|[1-9][0-9]{0,2})$"
-            },
-            {
-              enum: _EditorFontWeight.SUGGESTION_VALUES
-            }
-          ],
-          default: EDITOR_FONT_DEFAULTS.fontWeight,
-          description: localize(235, 'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.')
-        });
-      }
-      validate(input) {
-        if (input === "normal" || input === "bold") {
-          return input;
-        }
-        return String(EditorIntOption.clampedInt(input, EDITOR_FONT_DEFAULTS.fontWeight, _EditorFontWeight.MINIMUM_VALUE, _EditorFontWeight.MAXIMUM_VALUE));
-      }
-    };
-    EditorGoToLocation = class extends BaseEditorOption {
-      constructor() {
-        const defaults = {
-          multiple: "peek",
-          multipleDefinitions: "peek",
-          multipleTypeDefinitions: "peek",
-          multipleDeclarations: "peek",
-          multipleImplementations: "peek",
-          multipleReferences: "peek",
-          multipleTests: "peek",
-          alternativeDefinitionCommand: "editor.action.goToReferences",
-          alternativeTypeDefinitionCommand: "editor.action.goToReferences",
-          alternativeDeclarationCommand: "editor.action.goToReferences",
-          alternativeImplementationCommand: "",
-          alternativeReferenceCommand: "",
-          alternativeTestsCommand: ""
-        };
-        const jsonSubset = {
-          type: "string",
-          enum: ["peek", "gotoAndPeek", "goto"],
-          default: defaults.multiple,
-          enumDescriptions: [
-            localize(236, "Show Peek view of the results (default)"),
-            localize(237, "Go to the primary result and show a Peek view"),
-            localize(238, "Go to the primary result and enable Peek-less navigation to others")
-          ]
-        };
-        const alternativeCommandOptions = ["", "editor.action.referenceSearch.trigger", "editor.action.goToReferences", "editor.action.peekImplementation", "editor.action.goToImplementation", "editor.action.peekTypeDefinition", "editor.action.goToTypeDefinition", "editor.action.peekDeclaration", "editor.action.revealDeclaration", "editor.action.peekDefinition", "editor.action.revealDefinitionAside", "editor.action.revealDefinition"];
-        super(67, "gotoLocation", defaults, {
-          "editor.gotoLocation.multiple": {
-            deprecationMessage: localize(239, "This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.")
-          },
-          "editor.gotoLocation.multipleDefinitions": {
-            description: localize(240, "Controls the behavior the 'Go to Definition'-command when multiple target locations exist."),
-            ...jsonSubset
-          },
-          "editor.gotoLocation.multipleTypeDefinitions": {
-            description: localize(241, "Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist."),
-            ...jsonSubset
-          },
-          "editor.gotoLocation.multipleDeclarations": {
-            description: localize(242, "Controls the behavior the 'Go to Declaration'-command when multiple target locations exist."),
-            ...jsonSubset
-          },
-          "editor.gotoLocation.multipleImplementations": {
-            description: localize(243, "Controls the behavior the 'Go to Implementations'-command when multiple target locations exist."),
-            ...jsonSubset
-          },
-          "editor.gotoLocation.multipleReferences": {
-            description: localize(244, "Controls the behavior the 'Go to References'-command when multiple target locations exist."),
-            ...jsonSubset
-          },
-          "editor.gotoLocation.alternativeDefinitionCommand": {
-            type: "string",
-            default: defaults.alternativeDefinitionCommand,
-            enum: alternativeCommandOptions,
-            description: localize(245, "Alternative command id that is being executed when the result of 'Go to Definition' is the current location.")
-          },
-          "editor.gotoLocation.alternativeTypeDefinitionCommand": {
-            type: "string",
-            default: defaults.alternativeTypeDefinitionCommand,
-            enum: alternativeCommandOptions,
-            description: localize(246, "Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.")
-          },
-          "editor.gotoLocation.alternativeDeclarationCommand": {
-            type: "string",
-            default: defaults.alternativeDeclarationCommand,
-            enum: alternativeCommandOptions,
-            description: localize(247, "Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.")
-          },
-          "editor.gotoLocation.alternativeImplementationCommand": {
-            type: "string",
-            default: defaults.alternativeImplementationCommand,
-            enum: alternativeCommandOptions,
-            description: localize(248, "Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.")
-          },
-          "editor.gotoLocation.alternativeReferenceCommand": {
-            type: "string",
-            default: defaults.alternativeReferenceCommand,
-            enum: alternativeCommandOptions,
-            description: localize(249, "Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")
-          }
-        });
-      }
-      validate(_input) {
-        if (!_input || typeof _input !== "object") {
-          return this.defaultValue;
-        }
-        const input = _input;
-        return {
-          multiple: stringSet(input.multiple, this.defaultValue.multiple, ["peek", "gotoAndPeek", "goto"]),
-          multipleDefinitions: stringSet(input.multipleDefinitions, "peek", ["peek", "gotoAndPeek", "goto"]),
-          multipleTypeDefinitions: stringSet(input.multipleTypeDefinitions, "peek", ["peek", "gotoAndPeek", "goto"]),
-          multipleDeclarations: stringSet(input.multipleDeclarations, "peek", ["peek", "gotoAndPeek", "goto"]),
-          multipleImplementations: stringSet(input.multipleImplementations, "peek", ["peek", "gotoAndPeek", "goto"]),
-          multipleReferences: stringSet(input.multipleReferences, "peek", ["peek", "gotoAndPeek", "goto"]),
-          multipleTests: stringSet(input.multipleTests, "peek", ["peek", "gotoAndPeek", "goto"]),
-          alternativeDefinitionCommand: EditorStringOption.string(input.alternativeDefinitionCommand, this.defaultValue.alternativeDefinitionCommand),
-          alternativeTypeDefinitionCommand: EditorStringOption.string(input.alternativeTypeDefinitionCommand, this.defaultValue.alternativeTypeDefinitionCommand),
-          alternativeDeclarationCommand: EditorStringOption.string(input.alternativeDeclarationCommand, this.defaultValue.alternativeDeclarationCommand),
-          alternativeImplementationCommand: EditorStringOption.string(input.alternativeImplementationCommand, this.defaultValue.alternativeImplementationCommand),
-          alternativeReferenceCommand: EditorStringOption.string(input.alternativeReferenceCommand, this.defaultValue.alternativeReferenceCommand),
-          alternativeTestsCommand: EditorStringOption.string(input.alternativeTestsCommand, this.defaultValue.alternativeTestsCommand)
-        };
-      }
-    };
-    EditorHover = class extends BaseEditorOption {
-      constructor() {
-        const defaults = {
-          enabled: true,
-          delay: 300,
-          hidingDelay: 300,
-          sticky: true,
-          above: true
-        };
-        super(69, "hover", defaults, {
-          "editor.hover.enabled": {
-            type: "boolean",
-            default: defaults.enabled,
-            description: localize(250, "Controls whether the hover is shown.")
-          },
-          "editor.hover.delay": {
-            type: "number",
-            default: defaults.delay,
-            minimum: 0,
-            maximum: 1e4,
-            description: localize(251, "Controls the delay in milliseconds after which the hover is shown.")
-          },
-          "editor.hover.sticky": {
-            type: "boolean",
-            default: defaults.sticky,
-            description: localize(252, "Controls whether the hover should remain visible when mouse is moved over it.")
-          },
-          "editor.hover.hidingDelay": {
-            type: "integer",
-            minimum: 0,
-            default: defaults.hidingDelay,
-            markdownDescription: localize(253, "Controls the delay in milliseconds after which the hover is hidden. Requires `#editor.hover.sticky#` to be enabled.")
-          },
-          "editor.hover.above": {
-            type: "boolean",
-            default: defaults.above,
-            description: localize(254, "Prefer showing hovers above the line, if there's space.")
-          }
-        });
-      }
-      validate(_input) {
-        if (!_input || typeof _input !== "object") {
-          return this.defaultValue;
-        }
-        const input = _input;
-        return {
-          enabled: boolean(input.enabled, this.defaultValue.enabled),
-          delay: EditorIntOption.clampedInt(input.delay, this.defaultValue.delay, 0, 1e4),
-          sticky: boolean(input.sticky, this.defaultValue.sticky),
-          hidingDelay: EditorIntOption.clampedInt(input.hidingDelay, this.defaultValue.hidingDelay, 0, 6e5),
-          above: boolean(input.above, this.defaultValue.above)
-        };
-      }
-    };
-    EditorLayoutInfoComputer = class _EditorLayoutInfoComputer extends ComputedEditorOption {
-      constructor() {
-        super(165, {
-          width: 0,
-          height: 0,
-          glyphMarginLeft: 0,
-          glyphMarginWidth: 0,
-          glyphMarginDecorationLaneCount: 0,
-          lineNumbersLeft: 0,
-          lineNumbersWidth: 0,
-          decorationsLeft: 0,
-          decorationsWidth: 0,
-          contentLeft: 0,
-          contentWidth: 0,
-          minimap: {
-            renderMinimap: 0,
-            minimapLeft: 0,
-            minimapWidth: 0,
-            minimapHeightIsEditorHeight: false,
-            minimapIsSampling: false,
-            minimapScale: 1,
-            minimapLineHeight: 1,
-            minimapCanvasInnerWidth: 0,
-            minimapCanvasInnerHeight: 0,
-            minimapCanvasOuterWidth: 0,
-            minimapCanvasOuterHeight: 0
-          },
-          viewportColumn: 0,
-          isWordWrapMinified: false,
-          isViewportWrapping: false,
-          wrappingColumn: -1,
-          verticalScrollbarWidth: 0,
-          horizontalScrollbarHeight: 0,
-          overviewRuler: {
-            top: 0,
-            width: 0,
-            height: 0,
-            right: 0
-          }
-        });
-      }
-      compute(env2, options, _) {
-        return _EditorLayoutInfoComputer.computeLayout(options, {
-          memory: env2.memory,
-          outerWidth: env2.outerWidth,
-          outerHeight: env2.outerHeight,
-          isDominatedByLongLines: env2.isDominatedByLongLines,
-          lineHeight: env2.fontInfo.lineHeight,
-          viewLineCount: env2.viewLineCount,
-          lineNumbersDigitCount: env2.lineNumbersDigitCount,
-          typicalHalfwidthCharacterWidth: env2.fontInfo.typicalHalfwidthCharacterWidth,
-          maxDigitWidth: env2.fontInfo.maxDigitWidth,
-          pixelRatio: env2.pixelRatio,
-          glyphMarginDecorationLaneCount: env2.glyphMarginDecorationLaneCount
-        });
-      }
-      static computeContainedMinimapLineCount(input) {
-        const typicalViewportLineCount = input.height / input.lineHeight;
-        const extraLinesBeforeFirstLine = Math.floor(input.paddingTop / input.lineHeight);
-        let extraLinesBeyondLastLine = Math.floor(input.paddingBottom / input.lineHeight);
-        if (input.scrollBeyondLastLine) {
-          extraLinesBeyondLastLine = Math.max(extraLinesBeyondLastLine, typicalViewportLineCount - 1);
-        }
-        const desiredRatio = (extraLinesBeforeFirstLine + input.viewLineCount + extraLinesBeyondLastLine) / (input.pixelRatio * input.height);
-        const minimapLineCount = Math.floor(input.viewLineCount / desiredRatio);
-        return { typicalViewportLineCount, extraLinesBeforeFirstLine, extraLinesBeyondLastLine, desiredRatio, minimapLineCount };
-      }
-      static _computeMinimapLayout(input, memory) {
-        const outerWidth = input.outerWidth;
-        const outerHeight = input.outerHeight;
-        const pixelRatio = input.pixelRatio;
-        if (!input.minimap.enabled) {
-          return {
-            renderMinimap: 0,
-            minimapLeft: 0,
-            minimapWidth: 0,
-            minimapHeightIsEditorHeight: false,
-            minimapIsSampling: false,
-            minimapScale: 1,
-            minimapLineHeight: 1,
-            minimapCanvasInnerWidth: 0,
-            minimapCanvasInnerHeight: Math.floor(pixelRatio * outerHeight),
-            minimapCanvasOuterWidth: 0,
-            minimapCanvasOuterHeight: outerHeight
-          };
-        }
-        const stableMinimapLayoutInput = memory.stableMinimapLayoutInput;
-        const couldUseMemory = stableMinimapLayoutInput && input.outerHeight === stableMinimapLayoutInput.outerHeight && input.lineHeight === stableMinimapLayoutInput.lineHeight && input.typicalHalfwidthCharacterWidth === stableMinimapLayoutInput.typicalHalfwidthCharacterWidth && input.pixelRatio === stableMinimapLayoutInput.pixelRatio && input.scrollBeyondLastLine === stableMinimapLayoutInput.scrollBeyondLastLine && input.paddingTop === stableMinimapLayoutInput.paddingTop && input.paddingBottom === stableMinimapLayoutInput.paddingBottom && input.minimap.enabled === stableMinimapLayoutInput.minimap.enabled && input.minimap.side === stableMinimapLayoutInput.minimap.side && input.minimap.size === stableMinimapLayoutInput.minimap.size && input.minimap.showSlider === stableMinimapLayoutInput.minimap.showSlider && input.minimap.renderCharacters === stableMinimapLayoutInput.minimap.renderCharacters && input.minimap.maxColumn === stableMinimapLayoutInput.minimap.maxColumn && input.minimap.scale === stableMinimapLayoutInput.minimap.scale && input.verticalScrollbarWidth === stableMinimapLayoutInput.verticalScrollbarWidth && input.isViewportWrapping === stableMinimapLayoutInput.isViewportWrapping;
-        const lineHeight = input.lineHeight;
-        const typicalHalfwidthCharacterWidth = input.typicalHalfwidthCharacterWidth;
-        const scrollBeyondLastLine = input.scrollBeyondLastLine;
-        const minimapRenderCharacters = input.minimap.renderCharacters;
-        let minimapScale = pixelRatio >= 2 ? Math.round(input.minimap.scale * 2) : input.minimap.scale;
-        const minimapMaxColumn = input.minimap.maxColumn;
-        const minimapSize = input.minimap.size;
-        const minimapSide = input.minimap.side;
-        const verticalScrollbarWidth = input.verticalScrollbarWidth;
-        const viewLineCount = input.viewLineCount;
-        const remainingWidth = input.remainingWidth;
-        const isViewportWrapping = input.isViewportWrapping;
-        const baseCharHeight = minimapRenderCharacters ? 2 : 3;
-        let minimapCanvasInnerHeight = Math.floor(pixelRatio * outerHeight);
-        const minimapCanvasOuterHeight = minimapCanvasInnerHeight / pixelRatio;
-        let minimapHeightIsEditorHeight = false;
-        let minimapIsSampling = false;
-        let minimapLineHeight = baseCharHeight * minimapScale;
-        let minimapCharWidth = minimapScale / pixelRatio;
-        let minimapWidthMultiplier = 1;
-        if (minimapSize === "fill" || minimapSize === "fit") {
-          const { typicalViewportLineCount, extraLinesBeforeFirstLine, extraLinesBeyondLastLine, desiredRatio, minimapLineCount } = _EditorLayoutInfoComputer.computeContainedMinimapLineCount({
-            viewLineCount,
-            scrollBeyondLastLine,
-            paddingTop: input.paddingTop,
-            paddingBottom: input.paddingBottom,
-            height: outerHeight,
-            lineHeight,
-            pixelRatio
-          });
-          const ratio = viewLineCount / minimapLineCount;
-          if (ratio > 1) {
-            minimapHeightIsEditorHeight = true;
-            minimapIsSampling = true;
-            minimapScale = 1;
-            minimapLineHeight = 1;
-            minimapCharWidth = minimapScale / pixelRatio;
-          } else {
-            let fitBecomesFill = false;
-            let maxMinimapScale = minimapScale + 1;
-            if (minimapSize === "fit") {
-              const effectiveMinimapHeight = Math.ceil((extraLinesBeforeFirstLine + viewLineCount + extraLinesBeyondLastLine) * minimapLineHeight);
-              if (isViewportWrapping && couldUseMemory && remainingWidth <= memory.stableFitRemainingWidth) {
-                fitBecomesFill = true;
-                maxMinimapScale = memory.stableFitMaxMinimapScale;
-              } else {
-                fitBecomesFill = effectiveMinimapHeight > minimapCanvasInnerHeight;
-              }
-            }
-            if (minimapSize === "fill" || fitBecomesFill) {
-              minimapHeightIsEditorHeight = true;
-              const configuredMinimapScale = minimapScale;
-              minimapLineHeight = Math.min(lineHeight * pixelRatio, Math.max(1, Math.floor(1 / desiredRatio)));
-              if (isViewportWrapping && couldUseMemory && remainingWidth <= memory.stableFitRemainingWidth) {
-                maxMinimapScale = memory.stableFitMaxMinimapScale;
-              }
-              minimapScale = Math.min(maxMinimapScale, Math.max(1, Math.floor(minimapLineHeight / baseCharHeight)));
-              if (minimapScale > configuredMinimapScale) {
-                minimapWidthMultiplier = Math.min(2, minimapScale / configuredMinimapScale);
-              }
-              minimapCharWidth = minimapScale / pixelRatio / minimapWidthMultiplier;
-              minimapCanvasInnerHeight = Math.ceil(Math.max(typicalViewportLineCount, extraLinesBeforeFirstLine + viewLineCount + extraLinesBeyondLastLine) * minimapLineHeight);
-              if (isViewportWrapping) {
-                memory.stableMinimapLayoutInput = input;
-                memory.stableFitRemainingWidth = remainingWidth;
-                memory.stableFitMaxMinimapScale = minimapScale;
-              } else {
-                memory.stableMinimapLayoutInput = null;
-                memory.stableFitRemainingWidth = 0;
-              }
-            }
-          }
-        }
-        const minimapMaxWidth = Math.floor(minimapMaxColumn * minimapCharWidth);
-        const minimapWidth = Math.min(minimapMaxWidth, Math.max(0, Math.floor((remainingWidth - verticalScrollbarWidth - 2) * minimapCharWidth / (typicalHalfwidthCharacterWidth + minimapCharWidth))) + MINIMAP_GUTTER_WIDTH);
-        let minimapCanvasInnerWidth = Math.floor(pixelRatio * minimapWidth);
-        const minimapCanvasOuterWidth = minimapCanvasInnerWidth / pixelRatio;
-        minimapCanvasInnerWidth = Math.floor(minimapCanvasInnerWidth * minimapWidthMultiplier);
-        const renderMinimap = minimapRenderCharacters ? 1 : 2;
-        const minimapLeft = minimapSide === "left" ? 0 : outerWidth - minimapWidth - verticalScrollbarWidth;
-        return {
-          renderMinimap,
-          minimapLeft,
-          minimapWidth,
-          minimapHeightIsEditorHeight,
-          minimapIsSampling,
-          minimapScale,
-          minimapLineHeight,
-          minimapCanvasInnerWidth,
-          minimapCanvasInnerHeight,
-          minimapCanvasOuterWidth,
-          minimapCanvasOuterHeight
-        };
-      }
-      static computeLayout(options, env2) {
-        const outerWidth = env2.outerWidth | 0;
-        const outerHeight = env2.outerHeight | 0;
-        const lineHeight = env2.lineHeight | 0;
-        const lineNumbersDigitCount = env2.lineNumbersDigitCount | 0;
-        const typicalHalfwidthCharacterWidth = env2.typicalHalfwidthCharacterWidth;
-        const maxDigitWidth = env2.maxDigitWidth;
-        const pixelRatio = env2.pixelRatio;
-        const viewLineCount = env2.viewLineCount;
-        const wordWrapOverride2 = options.get(
-          154
-          /* EditorOption.wordWrapOverride2 */
-        );
-        const wordWrapOverride1 = wordWrapOverride2 === "inherit" ? options.get(
-          153
-          /* EditorOption.wordWrapOverride1 */
-        ) : wordWrapOverride2;
-        const wordWrap = wordWrapOverride1 === "inherit" ? options.get(
-          149
-          /* EditorOption.wordWrap */
-        ) : wordWrapOverride1;
-        const wordWrapColumn = options.get(
-          152
-          /* EditorOption.wordWrapColumn */
-        );
-        const isDominatedByLongLines = env2.isDominatedByLongLines;
-        const showGlyphMargin = options.get(
-          66
-          /* EditorOption.glyphMargin */
-        );
-        const showLineNumbers = options.get(
-          76
-          /* EditorOption.lineNumbers */
-        ).renderType !== 0;
-        const lineNumbersMinChars = options.get(
-          77
-          /* EditorOption.lineNumbersMinChars */
-        );
-        const scrollBeyondLastLine = options.get(
-          119
-          /* EditorOption.scrollBeyondLastLine */
-        );
-        const padding = options.get(
-          96
-          /* EditorOption.padding */
-        );
-        const minimap = options.get(
-          81
-          /* EditorOption.minimap */
-        );
-        const scrollbar = options.get(
-          117
-          /* EditorOption.scrollbar */
-        );
-        const verticalScrollbarWidth = scrollbar.verticalScrollbarSize;
-        const verticalScrollbarHasArrows = scrollbar.verticalHasArrows;
-        const scrollbarArrowSize = scrollbar.arrowSize;
-        const horizontalScrollbarHeight = scrollbar.horizontalScrollbarSize;
-        const folding = options.get(
-          52
-          /* EditorOption.folding */
-        );
-        const showFoldingDecoration = options.get(
-          126
-          /* EditorOption.showFoldingControls */
-        ) !== "never";
-        let lineDecorationsWidth = options.get(
-          74
-          /* EditorOption.lineDecorationsWidth */
-        );
-        if (folding && showFoldingDecoration) {
-          lineDecorationsWidth += 16;
-        }
-        let lineNumbersWidth = 0;
-        if (showLineNumbers) {
-          const digitCount2 = Math.max(lineNumbersDigitCount, lineNumbersMinChars);
-          lineNumbersWidth = Math.round(digitCount2 * maxDigitWidth);
-        }
-        let glyphMarginWidth = 0;
-        if (showGlyphMargin) {
-          glyphMarginWidth = lineHeight * env2.glyphMarginDecorationLaneCount;
-        }
-        let glyphMarginLeft = 0;
-        let lineNumbersLeft = glyphMarginLeft + glyphMarginWidth;
-        let decorationsLeft = lineNumbersLeft + lineNumbersWidth;
-        let contentLeft = decorationsLeft + lineDecorationsWidth;
-        const remainingWidth = outerWidth - glyphMarginWidth - lineNumbersWidth - lineDecorationsWidth;
-        let isWordWrapMinified = false;
-        let isViewportWrapping = false;
-        let wrappingColumn = -1;
-        if (options.get(
-          2
-          /* EditorOption.accessibilitySupport */
-        ) === 2 && wordWrapOverride1 === "inherit" && isDominatedByLongLines) {
-          isWordWrapMinified = true;
-          isViewportWrapping = true;
-        } else if (wordWrap === "on" || wordWrap === "bounded") {
-          isViewportWrapping = true;
-        } else if (wordWrap === "wordWrapColumn") {
-          wrappingColumn = wordWrapColumn;
-        }
-        const minimapLayout = _EditorLayoutInfoComputer._computeMinimapLayout({
-          outerWidth,
-          outerHeight,
-          lineHeight,
-          typicalHalfwidthCharacterWidth,
-          pixelRatio,
-          scrollBeyondLastLine,
-          paddingTop: padding.top,
-          paddingBottom: padding.bottom,
-          minimap,
-          verticalScrollbarWidth,
-          viewLineCount,
-          remainingWidth,
-          isViewportWrapping
-        }, env2.memory || new ComputeOptionsMemory());
-        if (minimapLayout.renderMinimap !== 0 && minimapLayout.minimapLeft === 0) {
-          glyphMarginLeft += minimapLayout.minimapWidth;
-          lineNumbersLeft += minimapLayout.minimapWidth;
-          decorationsLeft += minimapLayout.minimapWidth;
-          contentLeft += minimapLayout.minimapWidth;
-        }
-        const contentWidth = remainingWidth - minimapLayout.minimapWidth;
-        const viewportColumn = Math.max(1, Math.floor((contentWidth - verticalScrollbarWidth - 2) / typicalHalfwidthCharacterWidth));
-        const verticalArrowSize = verticalScrollbarHasArrows ? scrollbarArrowSize : 0;
-        if (isViewportWrapping) {
-          wrappingColumn = Math.max(1, viewportColumn);
-          if (wordWrap === "bounded") {
-            wrappingColumn = Math.min(wrappingColumn, wordWrapColumn);
-          }
-        }
-        return {
-          width: outerWidth,
-          height: outerHeight,
-          glyphMarginLeft,
-          glyphMarginWidth,
-          glyphMarginDecorationLaneCount: env2.glyphMarginDecorationLaneCount,
-          lineNumbersLeft,
-          lineNumbersWidth,
-          decorationsLeft,
-          decorationsWidth: lineDecorationsWidth,
-          contentLeft,
-          contentWidth,
-          minimap: minimapLayout,
-          viewportColumn,
-          isWordWrapMinified,
-          isViewportWrapping,
-          wrappingColumn,
-          verticalScrollbarWidth,
-          horizontalScrollbarHeight,
-          overviewRuler: {
-            top: verticalArrowSize,
-            width: verticalScrollbarWidth,
-            height: outerHeight - 2 * verticalArrowSize,
-            right: 0
-          }
-        };
-      }
-    };
-    WrappingStrategy = class extends BaseEditorOption {
-      constructor() {
-        super(156, "wrappingStrategy", "simple", {
-          "editor.wrappingStrategy": {
-            enumDescriptions: [
-              localize(255, "Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width."),
-              localize(256, "Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.")
-            ],
-            type: "string",
-            enum: ["simple", "advanced"],
-            default: "simple",
-            description: localize(257, "Controls the algorithm that computes wrapping points. Note that when in accessibility mode, advanced will be used for the best experience.")
-          }
-        });
-      }
-      validate(input) {
-        return stringSet(input, "simple", ["simple", "advanced"]);
-      }
-      compute(env2, options, value) {
-        const accessibilitySupport = options.get(
-          2
-          /* EditorOption.accessibilitySupport */
-        );
-        if (accessibilitySupport === 2) {
-          return "advanced";
-        }
-        return value;
-      }
-    };
-    (function(ShowLightbulbIconMode3) {
-      ShowLightbulbIconMode3["Off"] = "off";
-      ShowLightbulbIconMode3["OnCode"] = "onCode";
-      ShowLightbulbIconMode3["On"] = "on";
-    })(ShowLightbulbIconMode || (ShowLightbulbIconMode = {}));
-    EditorLightbulb = class extends BaseEditorOption {
-      constructor() {
-        const defaults = { enabled: ShowLightbulbIconMode.OnCode };
-        super(73, "lightbulb", defaults, {
-          "editor.lightbulb.enabled": {
-            type: "string",
-            enum: [ShowLightbulbIconMode.Off, ShowLightbulbIconMode.OnCode, ShowLightbulbIconMode.On],
-            default: defaults.enabled,
-            enumDescriptions: [
-              localize(258, "Disable the code action menu."),
-              localize(259, "Show the code action menu when the cursor is on lines with code."),
-              localize(260, "Show the code action menu when the cursor is on lines with code or on empty lines.")
-            ],
-            description: localize(261, "Enables the Code Action lightbulb in the editor.")
-          }
-        });
-      }
-      validate(_input) {
-        if (!_input || typeof _input !== "object") {
-          return this.defaultValue;
-        }
-        const input = _input;
-        return {
-          enabled: stringSet(input.enabled, this.defaultValue.enabled, [ShowLightbulbIconMode.Off, ShowLightbulbIconMode.OnCode, ShowLightbulbIconMode.On])
-        };
-      }
-    };
-    EditorStickyScroll = class extends BaseEditorOption {
-      constructor() {
-        const defaults = { enabled: true, maxLineCount: 5, defaultModel: "outlineModel", scrollWithEditor: true };
-        super(131, "stickyScroll", defaults, {
-          "editor.stickyScroll.enabled": {
-            type: "boolean",
-            default: defaults.enabled,
-            description: localize(262, "Shows the nested current scopes during the scroll at the top of the editor.")
-          },
-          "editor.stickyScroll.maxLineCount": {
-            type: "number",
-            default: defaults.maxLineCount,
-            minimum: 1,
-            maximum: 20,
-            description: localize(263, "Defines the maximum number of sticky lines to show.")
-          },
-          "editor.stickyScroll.defaultModel": {
-            type: "string",
-            enum: ["outlineModel", "foldingProviderModel", "indentationModel"],
-            default: defaults.defaultModel,
-            description: localize(264, "Defines the model to use for determining which lines to stick. If the outline model does not exist, it will fall back on the folding provider model which falls back on the indentation model. This order is respected in all three cases.")
-          },
-          "editor.stickyScroll.scrollWithEditor": {
-            type: "boolean",
-            default: defaults.scrollWithEditor,
-            description: localize(265, "Enable scrolling of Sticky Scroll with the editor's horizontal scrollbar.")
-          }
-        });
-      }
-      validate(_input) {
-        if (!_input || typeof _input !== "object") {
-          return this.defaultValue;
-        }
-        const input = _input;
-        return {
-          enabled: boolean(input.enabled, this.defaultValue.enabled),
-          maxLineCount: EditorIntOption.clampedInt(input.maxLineCount, this.defaultValue.maxLineCount, 1, 20),
-          defaultModel: stringSet(input.defaultModel, this.defaultValue.defaultModel, ["outlineModel", "foldingProviderModel", "indentationModel"]),
-          scrollWithEditor: boolean(input.scrollWithEditor, this.defaultValue.scrollWithEditor)
-        };
-      }
-    };
-    EditorInlayHints = class extends BaseEditorOption {
-      constructor() {
-        const defaults = { enabled: "on", fontSize: 0, fontFamily: "", padding: false, maximumLength: 43 };
-        super(159, "inlayHints", defaults, {
-          "editor.inlayHints.enabled": {
-            type: "string",
-            default: defaults.enabled,
-            description: localize(266, "Enables the inlay hints in the editor."),
-            enum: ["on", "onUnlessPressed", "offUnlessPressed", "off"],
-            markdownEnumDescriptions: [
-              localize(267, "Inlay hints are enabled"),
-              localize(268, "Inlay hints are showing by default and hide when holding {0}", isMacintosh ? `Ctrl+Option` : `Ctrl+Alt`),
-              localize(269, "Inlay hints are hidden by default and show when holding {0}", isMacintosh ? `Ctrl+Option` : `Ctrl+Alt`),
-              localize(270, "Inlay hints are disabled")
-            ]
-          },
-          "editor.inlayHints.fontSize": {
-            type: "number",
-            default: defaults.fontSize,
-            markdownDescription: localize(271, "Controls font size of inlay hints in the editor. As default the {0} is used when the configured value is less than {1} or greater than the editor font size.", "`#editor.fontSize#`", "`5`")
-          },
-          "editor.inlayHints.fontFamily": {
-            type: "string",
-            default: defaults.fontFamily,
-            markdownDescription: localize(272, "Controls font family of inlay hints in the editor. When set to empty, the {0} is used.", "`#editor.fontFamily#`")
-          },
-          "editor.inlayHints.padding": {
-            type: "boolean",
-            default: defaults.padding,
-            description: localize(273, "Enables the padding around the inlay hints in the editor.")
-          },
-          "editor.inlayHints.maximumLength": {
-            type: "number",
-            default: defaults.maximumLength,
-            markdownDescription: localize(274, "Maximum overall length of inlay hints, for a single line, before they get truncated by the editor. Set to `0` to never truncate")
-          }
-        });
-      }
-      validate(_input) {
-        if (!_input || typeof _input !== "object") {
-          return this.defaultValue;
-        }
-        const input = _input;
-        if (typeof input.enabled === "boolean") {
-          input.enabled = input.enabled ? "on" : "off";
-        }
-        return {
-          enabled: stringSet(input.enabled, this.defaultValue.enabled, ["on", "off", "offUnlessPressed", "onUnlessPressed"]),
-          fontSize: EditorIntOption.clampedInt(input.fontSize, this.defaultValue.fontSize, 0, 100),
-          fontFamily: EditorStringOption.string(input.fontFamily, this.defaultValue.fontFamily),
-          padding: boolean(input.padding, this.defaultValue.padding),
-          maximumLength: EditorIntOption.clampedInt(input.maximumLength, this.defaultValue.maximumLength, 0, Number.MAX_SAFE_INTEGER)
-        };
-      }
-    };
-    EditorLineDecorationsWidth = class extends BaseEditorOption {
-      constructor() {
-        super(74, "lineDecorationsWidth", 10);
-      }
-      validate(input) {
-        if (typeof input === "string" && /^\d+(\.\d+)?ch$/.test(input)) {
-          const multiple = parseFloat(input.substring(0, input.length - 2));
-          return -multiple;
-        } else {
-          return EditorIntOption.clampedInt(input, this.defaultValue, 0, 1e3);
-        }
-      }
-      compute(env2, options, value) {
-        if (value < 0) {
-          return EditorIntOption.clampedInt(-value * env2.fontInfo.typicalHalfwidthCharacterWidth, this.defaultValue, 0, 1e3);
-        } else {
-          return value;
-        }
-      }
-    };
-    EditorLineHeight = class extends EditorFloatOption {
-      constructor() {
-        super(75, "lineHeight", EDITOR_FONT_DEFAULTS.lineHeight, (x) => EditorFloatOption.clamp(x, 0, 150), { markdownDescription: localize(275, "Controls the line height. \n - Use 0 to automatically compute the line height from the font size.\n - Values between 0 and 8 will be used as a multiplier with the font size.\n - Values greater than or equal to 8 will be used as effective values.") }, 0, 150);
-      }
-      compute(env2, options, value) {
-        return env2.fontInfo.lineHeight;
-      }
-    };
-    EditorMinimap = class extends BaseEditorOption {
-      constructor() {
-        const defaults = {
-          enabled: true,
-          size: "proportional",
-          side: "right",
-          showSlider: "mouseover",
-          autohide: "none",
-          renderCharacters: true,
-          maxColumn: 120,
-          scale: 1,
-          showRegionSectionHeaders: true,
-          showMarkSectionHeaders: true,
-          markSectionHeaderRegex: "\\bMARK:\\s*(?-?)\\s*(?