From ae1c8703e704347d7e342b9a0b827fee493a6aa2 Mon Sep 17 00:00:00 2001 From: Chili Palmer Date: Sun, 5 Jul 2026 17:40:46 +0200 Subject: [PATCH] fix: issue #16 broken diff visualisation --- assets/css/misc_editor.css | 5 + priv/static/assets/app.css | 11 + priv/static/assets/monaco.css | 5787 +- priv/static/assets/monaco.js | 239893 ++++++++++++++- priv/static/assets/monaco/css.worker.js | 54324 +++- priv/static/assets/monaco/editor.worker.js | 14331 +- priv/static/assets/monaco/html.worker.js | 30735 +- priv/static/assets/monaco/json.worker.js | 22144 +- priv/static/assets/monaco/ts.worker.js | 291030 ++++++++++++++---- 9 files changed, 590967 insertions(+), 67293 deletions(-) diff --git a/assets/css/misc_editor.css b/assets/css/misc_editor.css index db4803b..618ce5f 100644 --- a/assets/css/misc_editor.css +++ b/assets/css/misc_editor.css @@ -537,3 +537,8 @@ border: 1px solid var(--vscode-panel-border); border-radius: 4px; } + +.monaco-diff-editor-instance { + width: 100%; + height: 100%; +} diff --git a/priv/static/assets/app.css b/priv/static/assets/app.css index 1833053..8461ec9 100644 --- a/priv/static/assets/app.css +++ b/priv/static/assets/app.css @@ -3009,6 +3009,13 @@ button svg, button svg * { text-overflow: ellipsis; white-space: nowrap; } +.post-editor .tag-suggestion-section-label { + padding: 4px 12px; + font-size: 0.75rem; + text-transform: uppercase; + letter-spacing: 0.04em; + color: var(--vscode-descriptionForeground, #a6a6a6); +} .post-editor .tag-suggestion.create-new { border-top: 1px solid var(--vscode-widget-border, #454545); margin-top: 4px; @@ -6234,6 +6241,10 @@ button.import-taxonomy-pill { border: 1px solid var(--vscode-panel-border); border-radius: 4px; } +.monaco-diff-editor-instance { + width: 100%; + height: 100%; +} @layer components { .ui-button { display: inline-flex; diff --git a/priv/static/assets/monaco.css b/priv/static/assets/monaco.css index b06b3e9..9f479d1 100644 --- a/priv/static/assets/monaco.css +++ b/priv/static/assets/monaco.css @@ -1 +1,5786 @@ -.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}}} +/* ../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; + } + } +} diff --git a/priv/static/assets/monaco.js b/priv/static/assets/monaco.js index cb2da23..d70960b 100644 --- a/priv/static/assets/monaco.js +++ b/priv/static/assets/monaco.js @@ -1,16 +1,20151 @@ -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+` +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 }); +}; -`+e.stack):new Error(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):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 +// ../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 | KEY '=~' REGEX - | 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' | '>=' | '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: * 'to': A mandatory logical position value providing where to move the cursor. \`\`\` 'left', 'right', 'up', 'down', 'prevBlankLine', 'nextBlankLine', @@ -25,36 +20160,32013 @@ Received: '{1}'.`,e,lv.getLexeme(t)),r=t.offset,s=lv.getLexeme(t);return this._p * 'value': Number of units to move. Default is '1'. * 'select': If 'true' makes the selection. Default is 'false'. * 'noHistory': If 'true' does not add the movement to navigation history. Default is 'false'. - `,constraint:e,schema:{type:"object",required:["to"],properties:{to:{type:"string",enum:["left","right","up","down","prevBlankLine","nextBlankLine","wrappedLineStart","wrappedLineEnd","wrappedLineColumnCenter","wrappedLineFirstNonWhitespaceCharacter","wrappedLineLastNonWhitespaceCharacter","viewPortTop","viewPortCenter","viewPortBottom","viewPortIfOutside"]},by:{type:"string",enum:["line","wrappedLine","character","halfLine"]},value:{type:"number",default:1},select:{type:"boolean",default:!1},noHistory:{type:"boolean",default:!1}}}}]},n.RawDirection={Left:"left",Right:"right",Up:"up",Down:"down",PrevBlankLine:"prevBlankLine",NextBlankLine:"nextBlankLine",WrappedLineStart:"wrappedLineStart",WrappedLineFirstNonWhitespaceCharacter:"wrappedLineFirstNonWhitespaceCharacter",WrappedLineColumnCenter:"wrappedLineColumnCenter",WrappedLineEnd:"wrappedLineEnd",WrappedLineLastNonWhitespaceCharacter:"wrappedLineLastNonWhitespaceCharacter",ViewPortTop:"viewPortTop",ViewPortCenter:"viewPortCenter",ViewPortBottom:"viewPortBottom",ViewPortIfOutside:"viewPortIfOutside"},n.RawUnit={Line:"line",WrappedLine:"wrappedLine",Character:"character",HalfLine:"halfLine"};function t(i){if(!i.to)return null;let o;switch(i.to){case n.RawDirection.Left:o=0;break;case n.RawDirection.Right:o=1;break;case n.RawDirection.Up:o=2;break;case n.RawDirection.Down:o=3;break;case n.RawDirection.PrevBlankLine:o=4;break;case n.RawDirection.NextBlankLine:o=5;break;case n.RawDirection.WrappedLineStart:o=6;break;case n.RawDirection.WrappedLineFirstNonWhitespaceCharacter:o=7;break;case n.RawDirection.WrappedLineColumnCenter:o=8;break;case n.RawDirection.WrappedLineEnd:o=9;break;case n.RawDirection.WrappedLineLastNonWhitespaceCharacter:o=10;break;case n.RawDirection.ViewPortTop:o=11;break;case n.RawDirection.ViewPortBottom:o=13;break;case n.RawDirection.ViewPortCenter:o=12;break;case n.RawDirection.ViewPortIfOutside:o=14;break;default:return null}let r=0;switch(i.by){case n.RawUnit.Line:r=1;break;case n.RawUnit.WrappedLine:r=2;break;case n.RawUnit.Character:r=3;break;case n.RawUnit.HalfLine:r=4;break}return{direction:o,unit:r,select:!!i.select,value:i.value||1,noHistory:!!i.noHistory}}n.parse=t})(AD||(AD={}))});function MD(n,e,t){n.has(e)?n.get(e).push(t):n.set(e,[t])}var so,Fy,_F,pv=w(()=>{(function(n){n[n.None=0]="None",n[n.Indent=1]="Indent",n[n.IndentOutdent=2]="IndentOutdent",n[n.Outdent=3]="Outdent"})(so||(so={}));Fy=class{constructor(e){if(this._neutralCharacter=null,this._neutralCharacterSearched=!1,this.open=e.open,this.close=e.close,this._inString=!0,this._inComment=!0,this._inRegEx=!0,Array.isArray(e.notIn))for(let t=0,i=e.notIn.length;t=0||(e+="\\"+t);return e+="\\s]+)",new RegExp(e,"g")}function PD(n){let e=OD;if(n&&n instanceof RegExp)if(n.global)e=n;else{let t="g";n.ignoreCase&&(t+="i"),n.multiline&&(t+="m"),n.unicode&&(t+="u"),e=new RegExp(n.source,t)}return e.lastIndex=0,e}function _v(n,e,t,i,o){if(e=PD(e),o||(o=ht.first(hve)),t.length>o.maxLen){let c=n-o.maxLen/2;return c<0?c=0:i+=c,t=t.substring(c,n+o.maxLen/2),_v(n,e,t,i,o)}let r=Date.now(),s=n-1-i,a=-1,l=null;for(let c=1;!(Date.now()-r>=o.timeBudget);c++){let d=s-o.windowSize*c;e.lastIndex=Math.max(0,d);let h=E9e(e,t,s,a);if(!h&&l||(l=h,d<=0))break;a=d}if(l){let c={word:l[0],startColumn:i+1+l.index,endColumn:i+1+l.index+l[0].length};return e.lastIndex=0,c}return null}function E9e(n,e,t,i){let o;for(;o=n.exec(e);){let r=o.index||0;if(r<=t&&n.lastIndex>=t)return o;if(i>0&&r>i)return null}return null}var By,OD,hve,nx=w(()=>{bl();_d();By="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";OD=I9e();hve=new Fn;hve.unshift({maxLen:1e3,windowSize:15,timeBudget:150})});var bF,uve=w(()=>{pv();bF=class n{static{this.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES=`;:.,=}])> - `}static{this.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS=`'"\`;:.,=}])> - `}constructor(e){if(e.autoClosingPairs?this._autoClosingPairs=e.autoClosingPairs.map(t=>new Fy(t)):e.brackets?this._autoClosingPairs=e.brackets.map(t=>new Fy({open:t[0],close:t[1]})):this._autoClosingPairs=[],e.__electricCharacterSupport&&e.__electricCharacterSupport.docComment){let t=e.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new Fy({open:t.open,close:t.close||""}))}this._autoCloseBeforeForQuotes=typeof e.autoCloseBefore=="string"?e.autoCloseBefore:n.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES,this._autoCloseBeforeForBrackets=typeof e.autoCloseBefore=="string"?e.autoCloseBefore:n.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS,this._surroundingPairs=e.surroundingPairs||this._autoClosingPairs}getAutoClosingPairs(){return this._autoClosingPairs}getAutoCloseBeforeSet(e){return e?this._autoCloseBeforeForQuotes:this._autoCloseBeforeForBrackets}getSurroundingPairs(){return this._surroundingPairs}}});function fve(){return GY||(GY=new TextDecoder("UTF-16LE")),GY}function D9e(){return YY||(YY=new TextDecoder("UTF-16BE")),YY}function XY(){return ZY||(ZY=LO()?fve():D9e()),ZY}function mve(n,e,t){let i=new Uint16Array(n.buffer,e,t);return t>0&&(i[0]===65279||i[0]===65534)?T9e(n,e,t):fve().decode(i)}function T9e(n,e,t){let i=[],o=0;for(let r=0;r{He();ct();ev();zl=class{constructor(e){this._capacity=e|0,this._buffer=new Uint16Array(this._capacity),this._completedStrings=null,this._bufferLength=0}reset(){this._completedStrings=null,this._bufferLength=0}build(){return this._completedStrings!==null?(this._flushBuffer(),this._completedStrings.join("")):this._buildBuffer()}_buildBuffer(){if(this._bufferLength===0)return"";let e=new Uint16Array(this._buffer.buffer,0,this._bufferLength);return XY().decode(e)}_flushBuffer(){let e=this._buildBuffer();this._bufferLength=0,this._completedStrings===null?this._completedStrings=[e]:this._completedStrings[this._completedStrings.length]=e}appendCharCode(e){let t=this._capacity-this._bufferLength;t<=1&&(t===0||Dn(e))&&this._flushBuffer(),this._buffer[this._bufferLength++]=e}appendASCIICharCode(e){this._bufferLength===this._capacity&&this._flushBuffer(),this._buffer[this._bufferLength++]=e}appendString(e){let t=e.length;if(this._bufferLength+t>=this._capacity){this._flushBuffer(),this._completedStrings[this._completedStrings.length]=e;return}for(let i=0;i[s[0].toLowerCase(),s[1].toLowerCase()]);let t=[];for(let s=0;s{let[l,c]=s,[d,h]=a;return l===d||l===h||c===d||c===h},o=(s,a)=>{let l=Math.min(s,a),c=Math.max(s,a);for(let d=0;d0&&r.push({open:a,close:l})}return r}function gve(n,e,t,i){for(let o=0,r=e.length;o=0&&i.push(a);for(let a of s.close)a.indexOf(n)>=0&&i.push(a)}}function pve(n,e){return n.length-e.length}function wF(n){if(n.length<=1)return n;let e=[],t=new Set;for(let i of n)t.has(i)||(e.push(i),t.add(i));return e}function R9e(n,e,t,i){let o=[];o=o.concat(n),o=o.concat(e);for(let r=0,s=o.length;r{He();Gf();de();QY=class n{constructor(e,t,i,o,r,s){this._richEditBracketBrand=void 0,this.languageId=e,this.index=t,this.open=i,this.close=o,this.forwardRegex=r,this.reversedRegex=s,this._openSet=n._toSet(this.open),this._closeSet=n._toSet(this.close)}isOpen(e){return this._openSet.has(e)}isClose(e){return this._closeSet.has(e)}static _toSet(e){let t=new Set;for(let i of e)t.add(i);return t}};vF=class{constructor(e,t){this._richEditBracketsBrand=void 0;let i=N9e(t);this.brackets=i.map((o,r)=>new QY(e,r,o.open,o.close,R9e(o.open,o.close,i,r),A9e(o.open,o.close,i,r))),this.forwardRegex=M9e(this.brackets),this.reversedRegex=O9e(this.brackets),this.textIsBracket={},this.textIsOpenBracket={},this.maxBracketLength=0;for(let o of this.brackets){for(let r of o.open)this.textIsBracket[r]=o,this.textIsOpenBracket[r]=!0,this.maxBracketLength=Math.max(this.maxBracketLength,r.length);for(let r of o.close)this.textIsBracket[r]=o,this.textIsOpenBracket[r]=!1,this.maxBracketLength=Math.max(this.maxBracketLength,r.length)}}};JY=function(){function n(i){let o=new Uint16Array(i.length),r=0;for(let s=i.length-1;s>=0;s--)o[r++]=i.charCodeAt(s);return XY().decode(o)}let e=null,t=null;return function(o){return e!==o&&(e=o,t=n(e)),t}}(),jc=class{static _findPrevBracketInText(e,t,i,o){let r=i.match(e);if(!r)return null;let s=i.length-(r.index||0),a=r[0].length,l=o+s;return new y(t,l-a+1,t,l+1)}static findPrevBracketInRange(e,t,i,o,r){let a=JY(i).substring(i.length-r,i.length-o);return this._findPrevBracketInText(e,t,a,o)}static findNextBracketInText(e,t,i,o){let r=i.match(e);if(!r)return null;let s=r.index||0,a=r[0].length;if(a===0)return null;let l=o+s;return new y(t,l+1,t,l+1+a)}static findNextBracketInRange(e,t,i,o,r){let s=i.substring(o,r);return this.findNextBracketInText(e,t,s,o)}}});var CF,_ve=w(()=>{We();Ny();FD();CF=class{constructor(e){this._richEditBrackets=e}getElectricCharacters(){let e=[];if(this._richEditBrackets)for(let t of this._richEditBrackets.brackets)for(let i of t.close){let o=i.charAt(i.length-1);e.push(o)}return Vc(e)}onElectricCharacter(e,t,i){if(!this._richEditBrackets||this._richEditBrackets.brackets.length===0)return null;let o=t.findTokenIndexAtOffset(i-1);if(Yu(t.getStandardTokenType(o)))return null;let r=this._richEditBrackets.reversedRegex,s=t.getLineContent().substring(0,i-1)+e,a=jc.findPrevBracketInRange(r,1,s,0,s.length);if(!a)return null;let l=s.substring(a.startColumn-1,a.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[l])return null;let d=t.getActualLineContentBefore(a.startColumn-1);return/^\s*$/.test(d)?{matchOpenBracket:l}:null}}});function xF(n){return n.global&&(n.lastIndex=0),!0}var SF,bve=w(()=>{SF=class{constructor(e){this._indentationRules=e}shouldIncrease(e){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&xF(this._indentationRules.increaseIndentPattern)&&this._indentationRules.increaseIndentPattern.test(e))}shouldDecrease(e){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&xF(this._indentationRules.decreaseIndentPattern)&&this._indentationRules.decreaseIndentPattern.test(e))}shouldIndentNextLine(e){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&xF(this._indentationRules.indentNextLinePattern)&&this._indentationRules.indentNextLinePattern.test(e))}shouldIgnore(e){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&xF(this._indentationRules.unIndentedLinePattern)&&this._indentationRules.unIndentedLinePattern.test(e))}getIndentMetadata(e){let t=0;return this.shouldIncrease(e)&&(t+=1),this.shouldDecrease(e)&&(t+=2),this.shouldIndentNextLine(e)&&(t+=4),this.shouldIgnore(e)&&(t+=8),t}}});var yF,vve=w(()=>{Ae();He();pv();yF=class n{constructor(e){e=e||{},e.brackets=e.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=[],e.brackets.forEach(t=>{let i=n._createOpenBracketRegExp(t[0]),o=n._createCloseBracketRegExp(t[1]);i&&o&&this._brackets.push({open:t[0],openRegExp:i,close:t[1],closeRegExp:o})}),this._regExpRules=e.onEnterRules||[]}onEnter(e,t,i,o){if(e>=3)for(let r=0,s=this._regExpRules.length;rc.reg?(c.reg.lastIndex=0,c.reg.test(c.text)):!0))return a.action}if(e>=2&&i.length>0&&o.length>0)for(let r=0,s=this._brackets.length;r=2&&i.length>0){for(let r=0,s=this._brackets.length;r"u"?t:r}function xve(n){return n.replace(/^\[/,"").replace(/]$/g,"").replace(/\]\[/g,", ")}var Me,oi=w(()=>{ye();Me=Re("configurationService")});var ci,el=w(()=>{ye();ci=Re("languageService")});var kd,LF=w(()=>{kd=class{constructor(e,t=[],i=!1){this.ctor=e,this.staticArguments=t,this.supportsDelayedInstantiation=i}}});function it(n,e,t){e instanceof kd||(e=new kd(e,[],!!t)),Sve.push([n,e])}function iZ(){return Sve}var Sve,Ws=w(()=>{LF();Sve=[]});var wn,bv=w(()=>{wn=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"})});function F9e(n){return n.length>0&&n.charAt(n.length-1)==="#"?n.substring(0,n.length-1):n}var ox,nZ,B9e,IF=w(()=>{ae();B();_s();ox={JSONContribution:"base.contributions.json"};nZ=class extends E{constructor(){super(...arguments),this.schemasById={},this._onDidChangeSchema=this._register(new N)}registerSchema(e,t,i){let o=F9e(e);this.schemasById[o]=t,this._onDidChangeSchema.fire(e),i&&i.add(se(()=>{delete this.schemasById[o],this._onDidChangeSchema.fire(e)}))}notifySchemaChanged(e){this._onDidChangeSchema.fire(e)}},B9e=new nZ;qt.add(ox.JSONContribution,B9e)});var nh,oZ,Hy,rZ=w(()=>{tP();oZ=globalThis.vscode;if(typeof oZ<"u"&&typeof oZ.context<"u"){let n=oZ.context.configuration();if(n)nh=n.product;else throw new Error("Sandbox: unable to resolve product configuration from preload script.")}else if(globalThis._VSCODE_PRODUCT_JSON&&globalThis._VSCODE_PACKAGE_JSON){if(nh=globalThis._VSCODE_PRODUCT_JSON,LC.VSCODE_DEV&&Object.assign(nh,{nameShort:`${nh.nameShort} Dev`,nameLong:`${nh.nameLong} Dev`,dataFolderName:`${nh.dataFolderName}-dev`,serverDataFolderName:nh.serverDataFolderName?`${nh.serverDataFolderName}-dev`:void 0}),!nh.version){let n=globalThis._VSCODE_PACKAGE_JSON;Object.assign(nh,{version:n.version})}}else nh={},Object.keys(nh).length===0&&Object.assign(nh,{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"});Hy=nh});function BD(n){let e=[];if(n_.test(n)){let t=kve.exec(n);for(;t?.length;){let i=t[1].trim();i&&e.push(i),t=kve.exec(n)}}return Vc(e)}function H9e(n){switch(Array.isArray(n)?n[0]:n){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}function V9e(n,e,t){return n.trim()?n_.test(n)?g(1671,"Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.",n):DF.getConfigurationProperties()[n]!==void 0&&(!t||!z9e.has(t.toLowerCase()))?g(1672,"Cannot register '{0}'. This property is already registered.",n):e.policy?.name&&DF.getPolicyConfigurations().get(e.policy?.name)!==void 0?g(1673,"Cannot register '{0}'. The associated policy {1} is already registered with {2}.",n,e.policy?.name,DF.getPolicyConfigurations().get(e.policy?.name)):null:g(1670,"Cannot register an empty property")}var yl,EF,yve,sZ,Lve,kve,W9e,n_,DF,z9e,o_=w(()=>{We();ae();Nt();le();oi();IF();_s();B();rZ();yl={Configuration:"base.contributions.configuration"},EF="vscode://schemas/settings/resourceLanguage",yve=qt.as(ox.JSONContribution),sZ=class extends E{constructor(){super(),this.registeredConfigurationDefaults=[],this.overrideIdentifiers=new Set,this._onDidSchemaChange=this._register(new N),this._onDidUpdateConfiguration=this._register(new N),this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:g(1664,"Default Language Configuration Overrides"),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.excludedConfigurationProperties={},yve.registerSchema(EF,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(e,t=!0){return this.registerConfigurations([e],t),e}registerConfigurations(e,t=!0){let i=new Set;this.doRegisterConfigurations(e,t,i),yve.registerSchema(EF,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:i})}registerDefaultConfigurations(e){let t=new Set;this.doRegisterDefaultConfigurations(e,t),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:t,defaultsOverrides:!0})}doRegisterDefaultConfigurations(e,t){this.registeredConfigurationDefaults.push(...e);let i=[];for(let{overrides:o,source:r}of e)for(let s in o){t.add(s);let a=this.configurationDefaultsOverrides.get(s)??this.configurationDefaultsOverrides.set(s,{configurationDefaultOverrides:[]}).get(s),l=o[s];if(a.configurationDefaultOverrides.push({value:l,source:r}),n_.test(s)){let c=this.mergeDefaultConfigurationsForOverrideIdentifier(s,l,r,a.configurationDefaultOverrideValue);if(!c)continue;a.configurationDefaultOverrideValue=c,this.updateDefaultOverrideProperty(s,c,r),i.push(...BD(s))}else{let c=this.mergeDefaultConfigurationsForConfigurationProperty(s,l,r,a.configurationDefaultOverrideValue);if(!c)continue;a.configurationDefaultOverrideValue=c;let d=this.configurationProperties[s];d&&(this.updatePropertyDefaultValue(s,d),this.updateSchema(s,d))}}this.doRegisterOverrideIdentifiers(i)}updateDefaultOverrideProperty(e,t,i){let o={section:{id:this.defaultLanguageConfigurationOverridesNode.id,title:this.defaultLanguageConfigurationOverridesNode.title,order:this.defaultLanguageConfigurationOverridesNode.order,extensionInfo:this.defaultLanguageConfigurationOverridesNode.extensionInfo},type:"object",default:t.value,description:g(1665,"Configure settings to be overridden for {0}.",xve(e)),$ref:EF,defaultDefaultValue:t.value,source:i,defaultValueSource:i};this.configurationProperties[e]=o,this.defaultLanguageConfigurationOverridesNode.properties[e]=o}mergeDefaultConfigurationsForOverrideIdentifier(e,t,i,o){let r=o?.value||{},s=o?.source??new Map;if(!(s instanceof Map)){console.error("objectConfigurationSources is not a Map");return}for(let a of Object.keys(t)){let l=t[a];if(_n(l)&&(gs(r[a])||_n(r[a]))){if(r[a]={...r[a]??{},...l},i)for(let d in l)s.set(`${a}.${d}`,i)}else r[a]=l,i?s.set(a,i):s.delete(a)}return{value:r,source:s}}mergeDefaultConfigurationsForConfigurationProperty(e,t,i,o){let r=this.configurationProperties[e],s=o?.value??r?.defaultDefaultValue,a=i;if(_n(t)&&(r!==void 0&&r.type==="object"||r===void 0&&(gs(s)||_n(s)))){if(a=o?.source??new Map,!(a instanceof Map)){console.error("defaultValueSource is not a Map");return}for(let c in t)i&&a.set(`${e}.${c}`,i);t={..._n(s)?s:{},...t}}return{value:t,source:a}}registerOverrideIdentifiers(e){this.doRegisterOverrideIdentifiers(e),this._onDidSchemaChange.fire()}doRegisterOverrideIdentifiers(e){for(let t of e)this.overrideIdentifiers.add(t);this.updateOverridePropertyPatternKey()}doRegisterConfigurations(e,t,i){e.forEach(o=>{this.validateAndRegisterProperties(o,t,o.extensionInfo,o.restrictedProperties,void 0,i),this.configurationContributors.push(o),this.registerJSONConfiguration(o)})}validateAndRegisterProperties(e,t=!0,i,o,r=4,s){r=Ml(e.scope)?r:e.scope;let a=e.properties;if(a)for(let c in a){let d=a[c];if(d.section={id:e.id,title:e.title,order:e.order,extensionInfo:e.extensionInfo},t&&V9e(c,d,i?.id)){delete a[c];continue}d.source=i,d.defaultDefaultValue=a[c].default,this.updatePropertyDefaultValue(c,d),n_.test(c)?d.scope=void 0:(d.scope=Ml(d.scope)?r:d.scope,d.restricted=Ml(d.restricted)?!!o?.includes(c):d.restricted),d.experiment?d.tags?.some(f=>f.toLowerCase()==="onexp")||(d.tags=d.tags??[],d.tags.push("onExP")):d.tags?.some(f=>f.toLowerCase()==="onexp")&&(console.error(`Invalid tag 'onExP' found for property '${c}'. Please use 'experiment' property instead.`),d.experiment={mode:"startup"});let h=a[c].hasOwnProperty("included")&&!a[c].included,u=a[c].policy?.name;h?(this.excludedConfigurationProperties[c]=a[c],u&&(this.policyConfigurations.set(u,c),s.add(c)),delete a[c]):(s.add(c),u&&this.policyConfigurations.set(u,c),this.configurationProperties[c]=a[c],!a[c].deprecationMessage&&a[c].markdownDeprecationMessage&&(a[c].deprecationMessage=a[c].markdownDeprecationMessage))}let l=e.allOf;if(l)for(let c of l)this.validateAndRegisterProperties(c,t,i,o,r,s)}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}getExcludedConfigurationProperties(){return this.excludedConfigurationProperties}registerJSONConfiguration(e){let t=i=>{let o=i.properties;if(o)for(let s in o)this.updateSchema(s,o[s]);i.allOf?.forEach(t)};t(e)}updateSchema(e,t){switch(t.scope){case 1:break;case 2:break;case 3:break;case 7:break;case 4:break;case 5:break;case 6:this.resourceLanguageSettingsSchema.properties[e]=t;break}}updateOverridePropertyPatternKey(){for(let e of this.overrideIdentifiers.values()){let t=`[${e}]`,i={type:"object",description:g(1666,"Configure editor settings to be overridden for a language."),errorMessage:g(1667,"This setting does not support per-language configuration."),$ref:EF};this.updatePropertyDefaultValue(t,i)}}registerOverridePropertyPatternKey(){g(1668,"Configure editor settings to be overridden for a language."),g(1669,"This setting does not support per-language configuration."),this._onDidSchemaChange.fire()}updatePropertyDefaultValue(e,t){let i=this.configurationDefaultsOverrides.get(e)?.configurationDefaultOverrideValue,o,r;i&&(!t.disallowConfigurationDefault||!i.source)&&(o=i.value,r=i.source),gs(o)&&(o=t.defaultDefaultValue,r=void 0),gs(o)&&(o=H9e(t.type)),t.default=o,t.defaultValueSource=r}},Lve="\\[([^\\]]+)\\]",kve=new RegExp(Lve,"g"),W9e=`^(${Lve})+$`,n_=new RegExp(W9e);DF=new sZ;qt.add(yl.Configuration,DF);z9e=new Set(Hy.defaultChatAgent?[Hy.defaultChatAgent.extensionId,Hy.defaultChatAgent.chatExtensionId].map(n=>n.toLowerCase()):[])});var U9e,aZ,vv,ws,$9e,iu=w(()=>{le();ae();_s();B();bv();o_();U9e={ModesRegistry:"editor.modesRegistry"},aZ=class extends E{constructor(){super(),this._onDidChangeLanguages=this._register(new N),this.onDidChangeLanguages=this._onDidChangeLanguages.event,this._languages=[]}registerLanguage(e){return this._languages.push(e),this._onDidChangeLanguages.fire(void 0),{dispose:()=>{for(let t=0,i=this._languages.length;te!==""&&t!=="")}var TF,NF,lZ,cZ,Eve=w(()=>{qO();FD();TF=class{constructor(e,t){this.languageId=e;let i=t.brackets?Ive(t.brackets):[],o=new xC(a=>{let l=new Set;return{info:new lZ(this,a,l),closing:l}}),r=new xC(a=>{let l=new Set,c=new Set;return{info:new cZ(this,a,l,c),opening:l,openingColorized:c}});for(let[a,l]of i){let c=o.get(a),d=r.get(l);c.closing.add(d.info),d.opening.add(c.info)}let s=t.colorizedBracketPairs?Ive(t.colorizedBracketPairs):i.filter(a=>!(a[0]==="<"&&a[1]===">"));for(let[a,l]of s){let c=o.get(a),d=r.get(l);c.closing.add(d.info),d.openingColorized.add(c.info),d.opening.add(c.info)}this._openingBrackets=new Map([...o.cachedValues].map(([a,l])=>[a,l.info])),this._closingBrackets=new Map([...r.cachedValues].map(([a,l])=>[a,l.info]))}get openingBrackets(){return[...this._openingBrackets.values()]}get closingBrackets(){return[...this._closingBrackets.values()]}getOpeningBracketInfo(e){return this._openingBrackets.get(e)}getClosingBracketInfo(e){return this._closingBrackets.get(e)}getBracketInfo(e){return this.getOpeningBracketInfo(e)||this.getClosingBracketInfo(e)}getBracketRegExp(e){let t=Array.from([...this._openingBrackets.keys(),...this._closingBrackets.keys()]);return Wy(t,e)}};NF=class{constructor(e,t){this.config=e,this.bracketText=t}get languageId(){return this.config.languageId}},lZ=class extends NF{constructor(e,t,i){super(e,t),this.openedBrackets=i,this.isOpeningBracket=!0}},cZ=class extends NF{constructor(e,t,i,o){super(e,t),this.openingBrackets=i,this.openingColorizedBrackets=o,this.isOpeningBracket=!1}closes(e){return e.config!==this.config?!1:this.openingBrackets.has(e)}closesColorized(e){return e.config!==this.config?!1:this.openingColorizedBrackets.has(e)}getOpeningBrackets(){return[...this.openingBrackets]}}});function j9e(n,e,t,i){let o=e.getLanguageConfiguration(n);if(!o){if(!i.isRegisteredLanguageId(n))return new Vy(n,{});o=new Vy(n,{})}let r=K9e(o.languageId,t),s=Nve([o.underlyingConfig,r]);return new Vy(o.languageId,s)}function K9e(n,e){let t=e.getValue(hZ.brackets,{overrideIdentifier:n}),i=e.getValue(hZ.colorizedBracketPairs,{overrideIdentifier:n});return{brackets:Tve(t),colorizedBracketPairs:Tve(i)}}function Tve(n){if(Array.isArray(n))return n.map(e=>{if(!(!Array.isArray(e)||e.length!==2))return[e[0],e[1]]}).filter(e=>!!e)}function MF(n,e,t){let i=n.getLineContent(e),o=ai(i);return o.length>t-1&&(o=o.substring(0,t-1)),o}function Nve(n){let e={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(let t of n)e={comments:t.comments||e.comments,brackets:t.brackets||e.brackets,wordPattern:t.wordPattern||e.wordPattern,indentationRules:t.indentationRules||e.indentationRules,onEnterRules:t.onEnterRules||e.onEnterRules,autoClosingPairs:t.autoClosingPairs||e.autoClosingPairs,surroundingPairs:t.surroundingPairs||e.surroundingPairs,autoCloseBefore:t.autoCloseBefore||e.autoCloseBefore,folding:t.folding||e.folding,colorizedBracketPairs:t.colorizedBracketPairs||e.colorizedBracketPairs,__electricCharacterSupport:t.__electricCharacterSupport||e.__electricCharacterSupport};return e}var q9e,Dve,WD,Ft,dZ,hZ,uZ,RF,AF,fZ,Vy,Mo=w(()=>{ae();B();He();nx();pv();uve();_ve();bve();vve();FD();ye();oi();el();Ws();iu();Eve();q9e=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},Dve=function(n,e){return function(t,i){e(t,i,n)}},WD=class{constructor(e){this.languageId=e}affects(e){return this.languageId?this.languageId===e:!0}},Ft=Re("languageConfigurationService"),dZ=class extends E{constructor(e,t){super(),this.configurationService=e,this.languageService=t,this._registry=this._register(new fZ),this.onDidChangeEmitter=this._register(new N),this.onDidChange=this.onDidChangeEmitter.event,this.configurations=new Map;let i=new Set(Object.values(hZ));this._register(this.configurationService.onDidChangeConfiguration(o=>{let r=o.change.keys.some(a=>i.has(a)),s=o.change.overrides.filter(([a,l])=>l.some(c=>i.has(c))).map(([a])=>a);if(r)this.configurations.clear(),this.onDidChangeEmitter.fire(new WD(void 0));else for(let a of s)this.languageService.isRegisteredLanguageId(a)&&(this.configurations.delete(a),this.onDidChangeEmitter.fire(new WD(a)))})),this._register(this._registry.onDidChange(o=>{this.configurations.delete(o.languageId),this.onDidChangeEmitter.fire(new WD(o.languageId))}))}register(e,t,i){return this._registry.register(e,t,i)}getLanguageConfiguration(e){let t=this.configurations.get(e);return t||(t=j9e(e,this._registry,this.configurationService,this.languageService),this.configurations.set(e,t)),t}};dZ=q9e([Dve(0,Me),Dve(1,ci)],dZ);hZ={brackets:"editor.language.brackets",colorizedBracketPairs:"editor.language.colorizedBracketPairs"};uZ=class{constructor(e){this.languageId=e,this._resolved=null,this._entries=[],this._order=0,this._resolved=null}register(e,t){let i=new RF(e,t,++this._order);return this._entries.push(i),this._resolved=null,se(()=>{for(let o=0;oe.configuration)))}};RF=class{constructor(e,t,i){this.configuration=e,this.priority=t,this.order=i}static cmp(e,t){return e.priority===t.priority?e.order-t.order:e.priority-t.priority}},AF=class{constructor(e){this.languageId=e}},fZ=class extends E{constructor(){super(),this._entries=new Map,this._onDidChange=this._register(new N),this.onDidChange=this._onDidChange.event,this._register(this.register(ws,{brackets:[["(",")"],["[","]"],["{","}"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],colorizedBracketPairs:[],folding:{offSide:!0}},0))}register(e,t,i=0){let o=this._entries.get(e);o||(o=new uZ(e),this._entries.set(e,o));let r=o.register(t,i);return this._onDidChange.fire(new AF(e)),se(()=>{r.dispose(),this._onDidChange.fire(new AF(e))})}getLanguageConfiguration(e){return this._entries.get(e)?.getResolvedConfiguration()||null}},Vy=class n{constructor(e,t){this.languageId=e,this.underlyingConfig=t,this._brackets=null,this._electricCharacter=null,this._onEnterSupport=this.underlyingConfig.brackets||this.underlyingConfig.indentationRules||this.underlyingConfig.onEnterRules?new yF(this.underlyingConfig):null,this.comments=n._handleComments(this.underlyingConfig),this.characterPair=new bF(this.underlyingConfig),this.wordDefinition=this.underlyingConfig.wordPattern||OD,this.indentationRules=this.underlyingConfig.indentationRules,this.underlyingConfig.indentationRules?this.indentRulesSupport=new SF(this.underlyingConfig.indentationRules):this.indentRulesSupport=null,this.foldingRules=this.underlyingConfig.folding||{},this.bracketsNew=new TF(e,this.underlyingConfig)}getWordDefinition(){return PD(this.wordDefinition)}get brackets(){return!this._brackets&&this.underlyingConfig.brackets&&(this._brackets=new vF(this.languageId,this.underlyingConfig.brackets)),this._brackets}get electricCharacter(){return this._electricCharacter||(this._electricCharacter=new CF(this.brackets)),this._electricCharacter}onEnter(e,t,i,o){return this._onEnterSupport?this._onEnterSupport.onEnter(e,t,i,o):null}getAutoClosingPairs(){return new _F(this.characterPair.getAutoClosingPairs())}getAutoCloseBeforeSet(e){return this.characterPair.getAutoCloseBeforeSet(e)}getSurroundingPairs(){return this.characterPair.getSurroundingPairs()}static _handleComments(e){let t=e.comments;if(!t)return null;let i={};if(t.lineComment&&(typeof t.lineComment=="string"?i.lineCommentToken=t.lineComment:(i.lineCommentToken=t.lineComment.comment,i.lineCommentNoIndent=t.lineComment.noIndent)),t.blockComment){let[o,r]=t.blockComment;i.blockCommentStartToken=o,i.blockCommentEndToken=r}return i}};it(Ft,dZ,1)});var $o,rx=w(()=>{$o=class{static getLanguageId(e){return(e&255)>>>0}static getTokenType(e){return(e&768)>>>8}static containsBalancedBrackets(e){return(e&1024)!==0}static getFontStyle(e){return(e&30720)>>>11}static getForeground(e){return(e&16744448)>>>15}static getBackground(e){return(e&4278190080)>>>24}static getClassNameFromMetadata(e){let i="mtk"+this.getForeground(e),o=this.getFontStyle(e);return o&1&&(i+=" mtki"),o&2&&(i+=" mtkb"),o&4&&(i+=" mtku"),o&8&&(i+=" mtks"),i}static getInlineStyleFromMetadata(e,t){let i=this.getForeground(e),o=this.getFontStyle(e),r=`color: ${t[i]};`;o&1&&(r+="font-style: italic;"),o&2&&(r+="font-weight: bold;");let s="";return o&4&&(s+=" underline"),o&8&&(s+=" line-through"),s&&(r+=`text-decoration:${s};`),r}static getPresentationFromMetadata(e){let t=this.getForeground(e),i=this.getFontStyle(e);return{foreground:t,italic:!!(i&1),bold:!!(i&2),underline:!!(i&4),strikethrough:!!(i&8)}}}});var Ee,OF,Cn=w(()=>{Ae();Ee=class n{static fromTo(e,t){return new n(e,t)}static addRange(e,t){let i=0;for(;it))return new n(e,t)}static ofLength(e){return new n(0,e)}static ofStartAndLength(e,t){return new n(e,e+t)}static emptyAt(e){return new n(e,e)}constructor(e,t){if(this.start=e,this.endExclusive=t,e>t)throw new ke(`Invalid range: ${this.toString()}`)}get isEmpty(){return this.start===this.endExclusive}delta(e){return new n(this.start+e,this.endExclusive+e)}deltaStart(e){return new n(this.start+e,this.endExclusive)}deltaEnd(e){return new n(this.start,this.endExclusive+e)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}equals(e){return this.start===e.start&&this.endExclusive===e.endExclusive}contains(e){return this.start<=e&&e=e.endExclusive}slice(e){return e.slice(this.start,this.endExclusive)}substring(e){return e.substring(this.start,this.endExclusive)}clip(e){if(this.isEmpty)throw new ke(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,e))}clipCyclic(e){if(this.isEmpty)throw new ke(`Invalid clipping range: ${this.toString()}`);return e=this.endExclusive?this.start+(e-this.start)%this.length:e}forEach(e){for(let t=this.start;te.toString()).join(", ")}intersectsStrict(e){let t=0;for(;te+t.length,0)}}});function Rve(n,e){let t=e.lineNumber;if(!n.tokenization.isCheapToTokenize(t))return;n.tokenization.forceTokenization(t);let i=n.tokenization.getLineTokens(t),o=i.findTokenIndexAtOffset(e.column-1);return i.getStandardTokenType(o)}var Ci,mZ,Yf,HD,gZ,kl=w(()=>{rx();Cn();Ae();Ci=class n{static createEmpty(e,t){let i=n.defaultTokenMetadata,o=new Uint32Array(2);return o[0]=e.length,o[1]=i,new n(o,e,t)}static createFromTextAndMetadata(e,t){let i=0,o="",r=new Array;for(let{text:s,metadata:a}of e)r.push(i+s.length,a),i+=s.length,o+=s;return new n(new Uint32Array(r),o,t)}static convertToEndOffset(e,t){let o=(e.length>>>1)-1;for(let r=0;r>>1)-1;for(;it&&(o=r)}return i}static{this.defaultTokenMetadata=(32768|2<<24)>>>0}constructor(e,t,i){this._lineTokensBrand=void 0,(e.length>1?e[e.length-2]:0)!==t.length&&De(new Error("Token length and text length do not match!")),this._tokens=e,this._tokensCount=this._tokens.length>>>1,this._text=t,this.languageIdCodec=i}getTextLength(){return this._text.length}equals(e){return e instanceof n?this.slicedEquals(e,0,this._tokensCount):!1}slicedEquals(e,t,i){if(this._text!==e._text||this._tokensCount!==e._tokensCount)return!1;let o=t<<1,r=o+(i<<1);for(let s=o;s0?this._tokens[e-1<<1]:0}getMetadata(e){return this._tokens[(e<<1)+1]}getLanguageId(e){let t=this._tokens[(e<<1)+1],i=$o.getLanguageId(t);return this.languageIdCodec.decodeLanguageId(i)}getStandardTokenType(e){let t=this._tokens[(e<<1)+1];return $o.getTokenType(t)}getForeground(e){let t=this._tokens[(e<<1)+1];return $o.getForeground(t)}getClassName(e){let t=this._tokens[(e<<1)+1];return $o.getClassNameFromMetadata(t)}getInlineStyle(e,t){let i=this._tokens[(e<<1)+1];return $o.getInlineStyleFromMetadata(i,t)}getPresentation(e){let t=this._tokens[(e<<1)+1];return $o.getPresentationFromMetadata(t)}getEndOffset(e){return this._tokens[e<<1]}findTokenIndexAtOffset(e){return n.findIndexInTokensArray(this._tokens,e)}inflate(){return this}sliceAndInflate(e,t,i){return new mZ(this,e,t,i)}sliceZeroCopy(e){return this.sliceAndInflate(e.start,e.endExclusive,0)}withInserted(e){if(e.length===0)return this;let t=0,i=0,o="",r=new Array,s=0;for(;;){let a=ts){o+=this._text.substring(s,l.offset);let c=this._tokens[(t<<1)+1];r.push(o.length,c),s=l.offset}o+=l.text,r.push(o.length,l.tokenMetadata),i++}else break}return new n(new Uint32Array(r),o,this.languageIdCodec)}getTokensInRange(e){let t=new gZ,i=this.findTokenIndexAtOffset(e.start),o=this.findTokenIndexAtOffset(e.endExclusive);for(let r=i;r<=o;r++){let a=new Ee(this.getStartOffset(r),this.getEndOffset(r)).intersectionLength(e);a>0&&t.add(a,this.getMetadata(r))}return t.build()}getTokenText(e){let t=this.getStartOffset(e),i=this.getEndOffset(e);return this._text.substring(t,i)}forEach(e){let t=this.getCount();for(let i=0;i{e+=`[${this.getTokenText(t)}]{${this.getClassName(t)}}`}),e}},mZ=class n{constructor(e,t,i,o){this._source=e,this._startOffset=t,this._endOffset=i,this._deltaOffset=o,this._firstTokenIndex=e.findTokenIndexAtOffset(t),this.languageIdCodec=e.languageIdCodec,this._tokensCount=0;for(let r=this._firstTokenIndex,s=e.getCount();r=i);r++)this._tokensCount++}getMetadata(e){return this._source.getMetadata(this._firstTokenIndex+e)}getLanguageId(e){return this._source.getLanguageId(this._firstTokenIndex+e)}getLineContent(){return this._source.getLineContent().substring(this._startOffset,this._endOffset)}equals(e){return e instanceof n?this._startOffset===e._startOffset&&this._endOffset===e._endOffset&&this._deltaOffset===e._deltaOffset&&this._source.slicedEquals(e._source,this._firstTokenIndex,this._tokensCount):!1}getCount(){return this._tokensCount}getStandardTokenType(e){return this._source.getStandardTokenType(this._firstTokenIndex+e)}getForeground(e){return this._source.getForeground(this._firstTokenIndex+e)}getEndOffset(e){let t=this._source.getEndOffset(this._firstTokenIndex+e);return Math.min(this._endOffset,t)-this._startOffset+this._deltaOffset}getClassName(e){return this._source.getClassName(this._firstTokenIndex+e)}getInlineStyle(e,t){return this._source.getInlineStyle(this._firstTokenIndex+e,t)}getPresentation(e){return this._source.getPresentation(this._firstTokenIndex+e)}findTokenIndexAtOffset(e){return this._source.findTokenIndexAtOffset(e+this._startOffset-this._deltaOffset)-this._firstTokenIndex}getTokenText(e){let t=this._firstTokenIndex+e,i=this._source.getStartOffset(t),o=this._source.getEndOffset(t),r=this._source.getTokenText(t);return ithis._endOffset&&(r=r.substring(0,r.length-(o-this._endOffset))),r}forEach(e){for(let t=0;t({text:i.substring(e),metadata:o.metadata})),t)}forEach(e){let t=0;for(let i of this._tokenInfo){let o=new Ee(t,t+i.length);e(o,i),t+=i.length}}map(e){let t=[],i=0;for(let o of this._tokenInfo){let r=new Ee(i,i+o.length);t.push(e(r,o)),i+=o.length}return t}slice(e){let t=[],i=0;for(let o of this._tokenInfo){let r=i,s=r+o.length;if(s>e.start){if(r>=e.endExclusive)break;let a=Math.max(0,e.start-r),l=Math.max(0,s-e.endExclusive);t.push(new HD(o.length-a-l,o.metadata))}i+=o.length}return n.create(t)}},HD=class{constructor(e,t){this.length=e,this.metadata=t}},gZ=class{constructor(){this._tokens=[]}add(e,t){this._tokens.push(new HD(e,t))}build(){return Yf.create(this._tokens)}}});function FF(n,e){n.tokenization.forceTokenization(e.lineNumber);let t=n.tokenization.getLineTokens(e.lineNumber),i=Jm(t,e.column-1),o=i.firstCharOffset===0,r=t.getLanguageId(0)===i.languageId;return!o&&!r}var sx,ax,PF,BF=w(()=>{He();Ny();kl();sx=class{constructor(e,t,i){this._indentRulesSupport=t,this._indentationLineProcessor=new PF(e,i)}shouldIncrease(e,t){let i=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldIncrease(i)}shouldDecrease(e,t){let i=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldDecrease(i)}shouldIgnore(e,t){let i=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldIgnore(i)}shouldIndentNextLine(e,t){let i=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldIndentNextLine(i)}},ax=class{constructor(e,t){this.model=e,this.indentationLineProcessor=new PF(e,t)}getProcessedTokenContextAroundRange(e){let t=this._getProcessedTokensBeforeRange(e),i=this._getProcessedTokensAfterRange(e),o=this._getProcessedPreviousLineTokens(e);return{beforeRangeProcessedTokens:t,afterRangeProcessedTokens:i,previousLineProcessedTokens:o}}_getProcessedTokensBeforeRange(e){this.model.tokenization.forceTokenization(e.startLineNumber);let t=this.model.tokenization.getLineTokens(e.startLineNumber),i=Jm(t,e.startColumn-1),o;if(FF(this.model,e.getStartPosition())){let s=e.startColumn-1-i.firstCharOffset,a=i.firstCharOffset,l=a+s;o=t.sliceAndInflate(a,l,0)}else{let s=e.startColumn-1;o=t.sliceAndInflate(0,s,0)}return this.indentationLineProcessor.getProcessedTokens(o)}_getProcessedTokensAfterRange(e){let t=e.isEmpty()?e.getStartPosition():e.getEndPosition();this.model.tokenization.forceTokenization(t.lineNumber);let i=this.model.tokenization.getLineTokens(t.lineNumber),o=Jm(i,t.column-1),r=t.column-1-o.firstCharOffset,s=o.firstCharOffset+r,a=o.firstCharOffset+o.getLineLength(),l=i.sliceAndInflate(s,a,0);return this.indentationLineProcessor.getProcessedTokens(l)}_getProcessedPreviousLineTokens(e){let t=f=>{this.model.tokenization.forceTokenization(f);let m=this.model.tokenization.getLineTokens(f),p=this.model.getLineMaxColumn(f)-1;return Jm(m,p)};this.model.tokenization.forceTokenization(e.startLineNumber);let i=this.model.tokenization.getLineTokens(e.startLineNumber),o=Jm(i,e.startColumn-1),r=Ci.createEmpty("",o.languageIdCodec),s=e.startLineNumber-1;if(s===0||!(o.firstCharOffset===0))return r;let c=t(s);if(!(o.languageId===c.languageId))return r;let h=c.toIViewLineTokens();return this.indentationLineProcessor.getProcessedTokens(h)}},PF=class{constructor(e,t){this.model=e,this.languageConfigurationService=t}getProcessedLine(e,t){let i=(s,a)=>{let l=ai(s);return a+s.substring(l.length)};this.model.tokenization.forceTokenization?.(e);let o=this.model.tokenization.getLineTokens(e),r=this.getProcessedTokens(o).getLineContent();return t!==void 0&&(r=i(r,t)),r}getProcessedTokens(e){let t=l=>l===2||l===3||l===1,i=e.getLanguageId(0),r=this.languageConfigurationService.getLanguageConfiguration(i).bracketsNew.getBracketRegExp({global:!0}),s=[];return e.forEach(l=>{let c=e.getStandardTokenType(l),d=e.getTokenText(l);t(c)&&(d=d.replace(r,""));let h=e.getMetadata(l);s.push({text:d,metadata:h})}),Ci.createFromTextAndMetadata(s,e.languageIdCodec)}}});function r_(n,e,t,i){e.tokenization.forceTokenization(t.startLineNumber);let o=e.getLanguageIdAtPosition(t.startLineNumber,t.startColumn),r=i.getLanguageConfiguration(o);if(!r)return null;let a=new ax(e,i).getProcessedTokenContextAroundRange(t),l=a.previousLineProcessedTokens.getLineContent(),c=a.beforeRangeProcessedTokens.getLineContent(),d=a.afterRangeProcessedTokens.getLineContent(),h=r.onEnter(n,l,c,d);if(!h)return null;let u=h.indentAction,f=h.appendText,m=h.removeText||0;f?u===so.Indent&&(f=" "+f):u===so.Indent||u===so.IndentOutdent?f=" ":f="";let p=MF(e,t.startLineNumber,t.startColumn);return m&&(p=p.substring(0,p.length-m)),{indentAction:u,appendText:f,removeText:m,indentation:p}}var WF=w(()=>{pv();Mo();BF()});function lx(n,e){if(e<=0)return"";pZ[n]||(pZ[n]=["",n]);let t=pZ[n];for(let i=t.length;i<=e;i++)t[i]=t[i-1]+n;return t[e]}var G9e,Y9e,HF,pZ,Ul,zy=w(()=>{He();yd();de();bi();WF();Mo();G9e=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},Y9e=function(n,e){return function(t,i){e(t,i,n)}},pZ=Object.create(null);Ul=HF=class{static unshiftIndent(e,t,i,o,r){let s=Oi.visibleColumnFromColumn(e,t,i);if(r){let a=lx(" ",o),c=Oi.prevIndentTabStop(s,o)/o;return lx(a,c)}else{let a=" ",c=Oi.prevRenderTabStop(s,i)/i;return lx(a,c)}}static shiftIndent(e,t,i,o,r){let s=Oi.visibleColumnFromColumn(e,t,i);if(r){let a=lx(" ",o),c=Oi.nextIndentTabStop(s,o)/o;return lx(a,c)}else{let a=" ",c=Oi.nextRenderTabStop(s,i)/i;return lx(a,c)}}constructor(e,t,i){this._languageConfigurationService=i,this._opts=t,this._selection=e,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}_addEditOperation(e,t,i){this._useLastEditRangeForCursorEndPosition?e.addTrackedEditOperation(t,i):e.addEditOperation(t,i)}getEditOperations(e,t){let i=this._selection.startLineNumber,o=this._selection.endLineNumber;this._selection.endColumn===1&&i!==o&&(o=o-1);let{tabSize:r,indentSize:s,insertSpaces:a}=this._opts,l=i===o;if(this._opts.useTabStops){this._selection.isEmpty()&&/^\s*$/.test(e.getLineContent(i))&&(this._useLastEditRangeForCursorEndPosition=!0);let c=0,d=0;for(let h=i;h<=o;h++,c=d){d=0;let u=e.getLineContent(h),f=Gn(u);if(this._opts.isUnshift&&(u.length===0||f===0)||!l&&!this._opts.isUnshift&&u.length===0)continue;if(f===-1&&(f=u.length),h>1&&Oi.visibleColumnFromColumn(u,f+1,r)%s!==0&&e.tokenization.isCheapToTokenize(h-1)){let _=r_(this._opts.autoIndent,e,new y(h-1,e.getLineMaxColumn(h-1),h-1,e.getLineMaxColumn(h-1)),this._languageConfigurationService);if(_){if(d=c,_.appendText)for(let b=0,v=_.appendText.length;b{de();bi();VF=class{constructor(e,t,i){this._range=e,this._charBeforeSelection=t,this._charAfterSelection=i}getEditOperations(e,t){t.addTrackedEditOperation(new y(this._range.startLineNumber,this._range.startColumn,this._range.startLineNumber,this._range.startColumn),this._charBeforeSelection),t.addTrackedEditOperation(new y(this._range.endLineNumber,this._range.endColumn,this._range.endLineNumber,this._range.endColumn),this._charAfterSelection||null)}computeCursorState(e,t){let i=t.getInverseEditOperations(),o=i[0].range,r=i[1].range;return new ge(o.endLineNumber,o.endColumn,r.endLineNumber,r.endColumn-this._charAfterSelection.length)}},zF=class{constructor(e,t,i){this._position=e,this._text=t,this._charAfter=i}getEditOperations(e,t){t.addTrackedEditOperation(new y(this._position.lineNumber,this._position.column,this._position.lineNumber,this._position.column),this._text+this._charAfter)}computeCursorState(e,t){let o=t.getInverseEditOperations()[0].range;return new ge(o.endLineNumber,o.startColumn,o.endLineNumber,o.endColumn-this._charAfter.length)}}});function Z9e(n,e,t){let i=n.tokenization.getLanguageIdAtPosition(e,0);if(e>1){let o,r=-1;for(o=e-1;o>=1;o--){if(n.tokenization.getLanguageIdAtPosition(o,0)!==i)return r;let s=n.getLineContent(o);if(t.shouldIgnore(o)||/^\s+$/.test(s)||s===""){r=o;continue}return o}}return-1}function Uy(n,e,t,i=!0,o){if(n<4)return null;let r=o.getLanguageConfiguration(e.tokenization.getLanguageId()).indentRulesSupport;if(!r)return null;let s=new sx(e,r,o);if(t<=1)return{indentation:"",action:null};for(let l=t-1;l>0&&e.getLineContent(l)==="";l--)if(l===1)return{indentation:"",action:null};let a=Z9e(e,t,s);if(a<0)return null;if(a<1)return{indentation:"",action:null};if(s.shouldIncrease(a)||s.shouldIndentNextLine(a)){let l=e.getLineContent(a);return{indentation:ai(l),action:so.Indent,line:a}}else if(s.shouldDecrease(a)){let l=e.getLineContent(a);return{indentation:ai(l),action:null,line:a}}else{if(a===1)return{indentation:ai(e.getLineContent(a)),action:null,line:a};let l=a-1,c=r.getIndentMetadata(e.getLineContent(l));if(!(c&3)&&c&4){let d=0;for(let h=l-1;h>0;h--)if(!s.shouldIndentNextLine(h)){d=h;break}return{indentation:ai(e.getLineContent(d+1)),action:null,line:d+1}}if(i)return{indentation:ai(e.getLineContent(a)),action:null,line:a};for(let d=a;d>0;d--){if(s.shouldIncrease(d))return{indentation:ai(e.getLineContent(d)),action:so.Indent,line:d};if(s.shouldIndentNextLine(d)){let h=0;for(let u=d-1;u>0;u--)if(!s.shouldIndentNextLine(d)){h=u;break}return{indentation:ai(e.getLineContent(h+1)),action:null,line:h+1}}else if(s.shouldDecrease(d))return{indentation:ai(e.getLineContent(d)),action:null,line:d}}return{indentation:ai(e.getLineContent(1)),action:null,line:1}}}function cx(n,e,t,i,o,r){if(n<4)return null;let s=r.getLanguageConfiguration(t);if(!s)return null;let a=r.getLanguageConfiguration(t).indentRulesSupport;if(!a)return null;let l=new sx(e,a,r),c=Uy(n,e,i,void 0,r);if(c){let d=c.line;if(d!==void 0){let h=!0;for(let u=d;u0){let b=e.getLineContent(_);if(c.shouldIndentNextLine(b)&&c.shouldIncrease(p)){let x=Uy(s,e,t.startLineNumber,!1,r)?.indentation;if(x!==void 0){let C=e.getLineContent(t.startLineNumber),S=ai(C),I=o.shiftIndent(x)===S,D=/^\s*$/.test(m),T=n.autoClosingPairs.autoClosingPairsOpenByEnd.get(i),W=T&&T.length>0&&D;if(I&&W)return x}}}return null}function UF(n,e,t){let i=t.getLanguageConfiguration(n.getLanguageId()).indentRulesSupport;return!i||e<1||e>n.getLineCount()?null:i.getIndentMetadata(n.getLineContent(e))}function X9e(n,e,t){return{tokenization:{getLineTokens:o=>o===e?t:n.tokenization.getLineTokens(o),getLanguageId:()=>n.getLanguageId(),getLanguageIdAtPosition:(o,r)=>n.getLanguageIdAtPosition(o,r)},getLineContent:o=>o===e?t.getLineContent():n.getLineContent(o)}}var $F=w(()=>{He();pv();BF()});function wZ(n,e){return n===" "?e===5||e===6?6:5:4}function i4(n,e){return Pve(n)&&!Pve(e)?!0:n===5?!1:Ove(n)!==Ove(e)}function Ove(n){return n===6||n===5?"space":n}function Pve(n){return n===4||n===5||n===6}function Fve(n,e,t,i,o){if(n.autoClosingOvertype==="never"||!n.autoClosingPairs.autoClosingPairsCloseSingleChar.has(o))return!1;for(let r=0,s=t.length;r2?c.charCodeAt(l.column-2):0)===92&&h)return!1;if(n.autoClosingOvertype==="auto"){let f=!1;for(let m=0,p=i.length;m{Ae();He();ZC();zy();_Z();th();Oy();de();Fe();pv();Mo();Ny();$F();WF();qF=class{static getEdits(e,t,i,o,r){if(!r&&this._isAutoIndentType(e,t,i)){let s=[];for(let l of i){let c=this._findActualIndentationForSelection(e,t,l,o);if(c===null)return;s.push({selection:l,indentation:c})}let a=$y.getAutoClosingPairClose(e,t,i,o,!1);return this._getIndentationAndAutoClosingPairEdits(e,t,s,o,a)}}static _isAutoIndentType(e,t,i){if(e.autoIndent<4)return!1;for(let o=0,r=i.length;oCZ(e,a),unshiftIndent:a=>t4(e,a)},e.languageConfigurationService);if(r===null)return null;let s=MF(t,i.startLineNumber,i.startColumn);return r===e.normalizeIndentation(s)?null:r}static _getIndentationAndAutoClosingPairEdits(e,t,i,o,r){let s=i.map(({selection:l,indentation:c})=>{if(r!==null){let d=this._getEditFromIndentationAndSelection(e,t,c,l,o,!1);return new vZ(d,l,o,r)}else{let d=this._getEditFromIndentationAndSelection(e,t,c,l,o,!0);return dx(d.range,d.text,!1)}}),a={shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1};return new Js(4,s,a)}static _getEditFromIndentationAndSelection(e,t,i,o,r,s=!0){let a=o.startLineNumber,l=t.getLineFirstNonWhitespaceColumn(a),c=e.normalizeIndentation(i);if(l!==0){let h=t.getLineContent(a);c+=h.substring(l-1,o.startColumn-1)}return c+=s?r:"",{range:new y(a,1,o.endLineNumber,o.endColumn),text:c}}},jF=class{static getEdits(e,t,i,o,r,s){if(Fve(t,i,o,r,s))return this._runAutoClosingOvertype(e,o,s)}static _runAutoClosingOvertype(e,t,i){let o=[];for(let r=0,s=t.length;rnew Ao(new y(a.positionLineNumber,a.positionColumn,a.positionLineNumber,a.positionColumn+1),"",!1));return new Js(4,s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}}},$y=class{static getEdits(e,t,i,o,r,s){if(!s){let a=this.getAutoClosingPairClose(e,t,i,o,r);if(a!==null)return this._runAutoClosingOpenCharType(i,o,r,a)}}static _runAutoClosingOpenCharType(e,t,i,o){let r=[];for(let s=0,a=e.length;s{let p=m.getPosition();return r?{lineNumber:p.lineNumber,beforeColumn:p.column-o.length,afterColumn:p.column}:{lineNumber:p.lineNumber,beforeColumn:p.column,afterColumn:p.column}}),a=this._findAutoClosingPairOpen(e,t,s.map(m=>new M(m.lineNumber,m.beforeColumn)),o);if(!a)return null;let l,c;if(Kf(o)?(l=e.autoClosingQuotes,c=e.shouldAutoCloseBefore.quote):(e.blockCommentStartToken?a.open.includes(e.blockCommentStartToken):!1)?(l=e.autoClosingComments,c=e.shouldAutoCloseBefore.comment):(l=e.autoClosingBrackets,c=e.shouldAutoCloseBefore.bracket),l==="never")return null;let h=this._findContainedAutoClosingPair(e,a),u=h?h.close:"",f=!0;for(let m of s){let{lineNumber:p,beforeColumn:_,afterColumn:b}=m,v=t.getLineContent(p),x=v.substring(0,_-1),C=v.substring(b-1);if(C.startsWith(u)||(f=!1),C.length>0){let D=C.charAt(0);if(!this._isBeforeClosingBrace(e,C)&&!c(D))return null}if(a.open.length===1&&(o==="'"||o==='"')&&l!=="always"){let D=Hl(e.wordSeparators,[]);if(x.length>0){let T=x.charCodeAt(x.length-1);if(D.get(T)===0)return null}}if(!t.tokenization.isCheapToTokenize(p))return null;t.tokenization.forceTokenization(p);let S=t.tokenization.getLineTokens(p),L=Jm(S,_-1);if(!a.shouldAutoClose(L,_-L.firstCharOffset))return null;let I=a.findNeutralCharacter();if(I){let D=t.tokenization.getTokenTypeIfInsertingCharacter(p,_,I);if(!a.isOK(D))return null}}return f?a.close.substring(0,a.close.length-u.length):a.close}static _findContainedAutoClosingPair(e,t){if(t.open.length<=1)return null;let i=t.close.charAt(t.close.length-1),o=e.autoClosingPairs.autoClosingPairsCloseByEnd.get(i)||[],r=null;for(let s of o)s.open!==t.open&&t.open.includes(s.open)&&t.close.endsWith(s.close)&&(!r||s.open.length>r.open.length)&&(r=s);return r}static _findAutoClosingPairOpen(e,t,i,o){let r=e.autoClosingPairs.autoClosingPairsOpenByEnd.get(o);if(!r)return null;let s=null;for(let a of r)if(s===null||a.open.length>s.open.length){let l=!0;for(let c of i)if(t.getValueInRange(new y(c.lineNumber,c.column-a.open.length+1,c.lineNumber,c.column))+o!==a.open){l=!1;break}l&&(s=a)}return s}static _isBeforeClosingBrace(e,t){let i=t.charAt(0),o=e.autoClosingPairs.autoClosingPairsOpenByStart.get(i)||[],r=e.autoClosingPairs.autoClosingPairsCloseByStart.get(i)||[],s=o.some(l=>t.startsWith(l.open)),a=r.some(l=>t.startsWith(l.close));return!s&&a}},VD=class{static getEdits(e,t){if(!(e.inputMode==="overtype"))return null;let o=t.map(r=>new lF(r.insertedTextRange));return new Js(4,o,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}},GF=class{static getEdits(e,t,i,o,r){if(!r&&this._isSurroundSelectionType(e,t,i,o))return this._runSurroundSelectionType(e,i,o)}static _runSurroundSelectionType(e,t,i){let o=[];for(let r=0,s=t.length;r=4){let l=Ave(e.autoIndent,t,o,{unshiftIndent:c=>t4(e,c),shiftIndent:c=>CZ(e,c),normalizeIndentation:c=>e.normalizeIndentation(c)},e.languageConfigurationService);if(l){let c=e.visibleColumnFromColumn(t,o.getEndPosition()),d=o.endColumn,h=t.getLineContent(o.endLineNumber),u=Gn(h);if(u>=0?o=o.setEndPosition(o.endLineNumber,Math.max(o.endColumn,u+1)):o=o.setEndPosition(o.endLineNumber,t.getLineMaxColumn(o.endLineNumber)),i)return new GC(o,` -`+e.normalizeIndentation(l.afterEnter),!0);{let f=0;return d<=u+1&&(e.insertSpaces||(c=Math.ceil(c/e.indentSize)),f=Math.min(c+1-e.normalizeIndentation(l.afterEnter).length-1,0)),new YC(o,` -`+e.normalizeIndentation(l.afterEnter),0,f,!0)}}}return dx(o,` -`+e.normalizeIndentation(a),i)}static lineInsertBefore(e,t,i){if(t===null||i===null)return[];let o=[];for(let r=0,s=i.length;rthis._compositionType(i,d,r,s,a,l));return new Js(4,c,{shouldPushStackElementBefore:i4(e,4),shouldPushStackElementAfter:!1})}static _compositionType(e,t,i,o,r,s){if(!t.isEmpty())return null;let a=t.getPosition(),l=Math.max(1,a.column-o),c=Math.min(e.getLineMaxColumn(a.lineNumber),a.column+r),d=new y(a.lineNumber,l,a.lineNumber,c);return new YC(d,i,0,s)}},JF=class{static getEdits(e,t,i){let o=[];for(let s=0,a=t.length;s1){let a;for(a=i-1;a>=1;a--){let d=t.getLineContent(a);if(ua(d)>=0)break}if(a<1)return null;let l=t.getLineMaxColumn(a),c=r_(e.autoIndent,t,new y(a,l,a,l),e.languageConfigurationService);c&&(r=c.indentation+c.appendText)}return o&&(o===so.Indent&&(r=CZ(e,r)),o===so.Outdent&&(r=t4(e,r)),r=e.normalizeIndentation(r)),r||null}static _replaceJumpToNextIndent(e,t,i,o){let r="",s=i.getStartPosition();if(e.insertSpaces){let a=e.visibleColumnFromColumn(t,s),l=e.indentSize,c=l-a%l;for(let d=0;d{zy();_Z();th();zD();nu=class{static indent(e,t,i){if(t===null||i===null)return[];let o=[];for(let r=0,s=i.length;r{le();Ze();(function(n){n.editorSimpleInput=new fe("editorSimpleInput",!1,!0),n.editorTextFocus=new fe("editorTextFocus",!1,g(681,"Whether the editor text has focus (cursor is blinking)")),n.focus=new fe("editorFocus",!1,g(682,"Whether the editor or an editor widget has focus (e.g. focus is in the find widget)")),n.textInputFocus=new fe("textInputFocus",!1,g(683,"Whether an editor or a rich text input has focus (cursor is blinking)")),n.readOnly=new fe("editorReadonly",!1,g(684,"Whether the editor is read-only")),n.inDiffEditor=new fe("inDiffEditor",!1,g(685,"Whether the context is a diff editor")),n.isEmbeddedDiffEditor=new fe("isEmbeddedDiffEditor",!1,g(686,"Whether the context is an embedded diff editor")),n.inMultiDiffEditor=new fe("inMultiDiffEditor",!1,g(687,"Whether the context is a multi diff editor")),n.multiDiffEditorAllCollapsed=new fe("multiDiffEditorAllCollapsed",void 0,g(688,"Whether all files in multi diff editor are collapsed")),n.hasChanges=new fe("diffEditorHasChanges",!1,g(689,"Whether the diff editor has changes")),n.comparingMovedCode=new fe("comparingMovedCode",!1,g(690,"Whether a moved code block is selected for comparison")),n.accessibleDiffViewerVisible=new fe("accessibleDiffViewerVisible",!1,g(691,"Whether the accessible diff viewer is visible")),n.diffEditorRenderSideBySideInlineBreakpointReached=new fe("diffEditorRenderSideBySideInlineBreakpointReached",!1,g(692,"Whether the diff editor render side by side inline breakpoint is reached")),n.diffEditorInlineMode=new fe("diffEditorInlineMode",!1,g(693,"Whether inline mode is active")),n.diffEditorOriginalWritable=new fe("diffEditorOriginalWritable",!1,g(694,"Whether modified is writable in the diff editor")),n.diffEditorModifiedWritable=new fe("diffEditorModifiedWritable",!1,g(695,"Whether modified is writable in the diff editor")),n.diffEditorOriginalUri=new fe("diffEditorOriginalUri","",g(696,"The uri of the original document")),n.diffEditorModifiedUri=new fe("diffEditorModifiedUri","",g(697,"The uri of the modified document")),n.columnSelection=new fe("editorColumnSelection",!1,g(698,"Whether `editor.columnSelection` is enabled")),n.writable=n.readOnly.toNegated(),n.hasNonEmptySelection=new fe("editorHasSelection",!1,g(699,"Whether the editor has text selected")),n.hasOnlyEmptySelection=n.hasNonEmptySelection.toNegated(),n.hasMultipleSelections=new fe("editorHasMultipleSelections",!1,g(700,"Whether the editor has multiple selections")),n.hasSingleSelection=n.hasMultipleSelections.toNegated(),n.tabMovesFocus=new fe("editorTabMovesFocus",!1,g(701,"Whether `Tab` will move focus out of the editor")),n.tabDoesNotMoveFocus=n.tabMovesFocus.toNegated(),n.isInEmbeddedEditor=new fe("isInEmbeddedEditor",!1,!0),n.canUndo=new fe("canUndo",!1,!0),n.canRedo=new fe("canRedo",!1,!0),n.hoverVisible=new fe("editorHoverVisible",!1,g(702,"Whether the editor hover is visible")),n.hoverFocused=new fe("editorHoverFocused",!1,g(703,"Whether the editor hover is focused")),n.stickyScrollFocused=new fe("stickyScrollFocused",!1,g(704,"Whether the sticky scroll is focused")),n.stickyScrollVisible=new fe("stickyScrollVisible",!1,g(705,"Whether the sticky scroll is visible")),n.standaloneColorPickerVisible=new fe("standaloneColorPickerVisible",!1,g(706,"Whether the standalone color picker is visible")),n.standaloneColorPickerFocused=new fe("standaloneColorPickerFocused",!1,g(707,"Whether the standalone color picker is focused")),n.inCompositeEditor=new fe("inCompositeEditor",void 0,g(708,"Whether the editor is part of a larger editor (e.g. notebooks)")),n.notInCompositeEditor=n.inCompositeEditor.toNegated(),n.languageId=new fe("editorLangId","",g(709,"The language identifier of the editor")),n.hasCompletionItemProvider=new fe("editorHasCompletionItemProvider",!1,g(710,"Whether the editor has a completion item provider")),n.hasCodeActionsProvider=new fe("editorHasCodeActionsProvider",!1,g(711,"Whether the editor has a code actions provider")),n.hasCodeLensProvider=new fe("editorHasCodeLensProvider",!1,g(712,"Whether the editor has a code lens provider")),n.hasDefinitionProvider=new fe("editorHasDefinitionProvider",!1,g(713,"Whether the editor has a definition provider")),n.hasDeclarationProvider=new fe("editorHasDeclarationProvider",!1,g(714,"Whether the editor has a declaration provider")),n.hasImplementationProvider=new fe("editorHasImplementationProvider",!1,g(715,"Whether the editor has an implementation provider")),n.hasTypeDefinitionProvider=new fe("editorHasTypeDefinitionProvider",!1,g(716,"Whether the editor has a type definition provider")),n.hasHoverProvider=new fe("editorHasHoverProvider",!1,g(717,"Whether the editor has a hover provider")),n.hasDocumentHighlightProvider=new fe("editorHasDocumentHighlightProvider",!1,g(718,"Whether the editor has a document highlight provider")),n.hasDocumentSymbolProvider=new fe("editorHasDocumentSymbolProvider",!1,g(719,"Whether the editor has a document symbol provider")),n.hasReferenceProvider=new fe("editorHasReferenceProvider",!1,g(720,"Whether the editor has a reference provider")),n.hasRenameProvider=new fe("editorHasRenameProvider",!1,g(721,"Whether the editor has a rename provider")),n.hasSignatureHelpProvider=new fe("editorHasSignatureHelpProvider",!1,g(722,"Whether the editor has a signature help provider")),n.hasInlayHintsProvider=new fe("editorHasInlayHintsProvider",!1,g(723,"Whether the editor has an inline hints provider")),n.hasDocumentFormattingProvider=new fe("editorHasDocumentFormattingProvider",!1,g(724,"Whether the editor has a document formatting provider")),n.hasDocumentSelectionFormattingProvider=new fe("editorHasDocumentSelectionFormattingProvider",!1,g(725,"Whether the editor has a document selection formatting provider")),n.hasMultipleDocumentFormattingProvider=new fe("editorHasMultipleDocumentFormattingProvider",!1,g(726,"Whether the editor has multiple document formatting providers")),n.hasMultipleDocumentSelectionFormattingProvider=new fe("editorHasMultipleDocumentSelectionFormattingProvider",!1,g(727,"Whether the editor has multiple document selection formatting providers"))})(R||(R={}))});function Ky(n,e){Qn.registerKeybindingRule({id:n,primary:e,when:Q9e,weight:xi+1})}function Bve(n){return n.register(),n}function hx(n,e){Bve(new r4("default:"+n,n)),Bve(new r4(n,n,e))}var xi,ao,tl,jy,UD,ta,Q9e,wv,r4,yo=w(()=>{le();Gs();Nt();Xs();at();bo();rve();th();dF();pF();o4();Fe();de();di();Ze();qf();oe();zD();xi=0,ao=class extends Ji{runEditorCommand(e,t,i){let o=t._getViewModel();o&&this.runCoreEditorCommand(o,i||{})}};(function(n){let e=function(i){if(!_n(i))return!1;let o=i;return!(!En(o.to)||!gs(o.by)&&!En(o.by)||!gs(o.value)&&!Fc(o.value)||!gs(o.revealCursor)&&!zE(o.revealCursor))};n.metadata={description:"Scroll editor in the given direction",args:[{name:"Editor scroll argument object",description:"Property-value pairs that can be passed through this argument:\n * 'to': A mandatory direction value.\n ```\n 'up', 'down'\n ```\n * 'by': Unit to move. Default is computed based on 'to' value.\n ```\n 'line', 'wrappedLine', 'page', 'halfPage', 'editor'\n ```\n * 'value': Number of units to move. Default is '1'.\n * 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n ",constraint:e,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"}}}}]},n.RawDirection={Up:"up",Right:"right",Down:"down",Left:"left"},n.RawUnit={Line:"line",WrappedLine:"wrappedLine",Page:"page",HalfPage:"halfPage",Editor:"editor",Column:"column"};function t(i){let o;switch(i.to){case n.RawDirection.Up:o=1;break;case n.RawDirection.Right:o=2;break;case n.RawDirection.Down:o=3;break;case n.RawDirection.Left:o=4;break;default:return null}let r;switch(i.by){case n.RawUnit.Line:r=1;break;case n.RawUnit.WrappedLine:r=2;break;case n.RawUnit.Page:r=3;break;case n.RawUnit.HalfPage:r=4;break;case n.RawUnit.Editor:r=5;break;case n.RawUnit.Column:r=6;break;default:r=2}let s=Math.floor(i.value||1),a=!!i.revealCursor;return{direction:o,unit:r,value:s,revealCursor:a,select:!!i.select}}n.parse=t})(tl||(tl={}));(function(n){let e=function(t){if(!_n(t))return!1;let i=t;return!(!Fc(i.lineNumber)&&!En(i.lineNumber)||!gs(i.at)&&!En(i.at))};n.metadata={description:"Reveal the given line at the given logical position",args:[{name:"Reveal line argument object",description:"Property-value pairs that can be passed through this argument:\n * 'lineNumber': A mandatory line number value.\n * 'at': Logical position at which line has to be revealed.\n ```\n 'top', 'center', 'bottom'\n ```\n ",constraint:e,schema:{type:"object",required:["lineNumber"],properties:{lineNumber:{type:["number","string"]},at:{type:"string",enum:["top","center","bottom"]}}}}]},n.RawAtArgument={Top:"top",Center:"center",Bottom:"bottom"}})(jy||(jy={}));UD=class{constructor(e){e.addImplementation(1e4,"code-editor",(t,i)=>{let o=t.get(ot).getFocusedCodeEditor();return o&&o.hasTextFocus()?this._runEditorCommand(t,o,i):!1}),e.addImplementation(1e3,"generic-dom-input-textarea",(t,i)=>{let o=hn();return o&&Uc(o)?(this.runDOMCommand(o),!0):!1}),e.addImplementation(0,"generic-dom",(t,i)=>{let o=t.get(ot).getActiveCodeEditor();return o?(o.focus(),this._runEditorCommand(t,o,i)):!1})}_runEditorCommand(e,t,i){let o=this.runEditorCommand(e,t,i);return o||!0}};(function(n){class e extends ao{constructor(v){super(v),this._inSelectionMode=v.inSelectionMode}runCoreEditorCommand(v,x){if(!x.position)return;v.model.pushStackElement(),v.setCursorStates(x.source,3,[sr.moveTo(v,v.getPrimaryCursorState(),this._inSelectionMode,x.position,x.viewPosition)])&&x.revealType!==2&&v.revealAllCursors(x.source,!0,!0)}}n.MoveTo=we(new e({id:"_moveTo",inSelectionMode:!1,precondition:void 0})),n.MoveToSelect=we(new e({id:"_moveToSelect",inSelectionMode:!0,precondition:void 0}));class t extends ao{runCoreEditorCommand(v,x){v.model.pushStackElement();let C=this._getColumnSelectResult(v,v.getPrimaryCursorState(),v.getCursorColumnSelectData(),x);C!==null&&(v.setCursorStates(x.source,3,C.viewStates.map(S=>Ot.fromViewState(S))),v.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:C.fromLineNumber,fromViewVisualColumn:C.fromVisualColumn,toViewLineNumber:C.toLineNumber,toViewVisualColumn:C.toVisualColumn}),C.reversed?v.revealTopMostCursor(x.source):v.revealBottomMostCursor(x.source))}}n.ColumnSelect=we(new class extends t{constructor(){super({id:"columnSelect",precondition:void 0})}_getColumnSelectResult(b,v,x,C){if(typeof C.position>"u"||typeof C.viewPosition>"u"||typeof C.mouseColumn>"u")return null;let S=b.model.validatePosition(C.position),L=b.coordinatesConverter.validateViewPosition(new M(C.viewPosition.lineNumber,C.viewPosition.column),S),I=C.doColumnSelect?x.fromViewLineNumber:L.lineNumber,D=C.doColumnSelect?x.fromViewVisualColumn:C.mouseColumn-1;return fv.columnSelect(b.cursorConfig,b,I,D,L.lineNumber,C.mouseColumn-1)}}),n.CursorColumnSelectLeft=we(new class extends t{constructor(){super({id:"cursorColumnSelectLeft",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:3599,linux:{primary:0}}})}_getColumnSelectResult(b,v,x,C){return fv.columnSelectLeft(b.cursorConfig,b,x)}}),n.CursorColumnSelectRight=we(new class extends t{constructor(){super({id:"cursorColumnSelectRight",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:3601,linux:{primary:0}}})}_getColumnSelectResult(b,v,x,C){return fv.columnSelectRight(b.cursorConfig,b,x)}});class i extends t{constructor(v){super(v),this._isPaged=v.isPaged}_getColumnSelectResult(v,x,C,S){return fv.columnSelectUp(v.cursorConfig,v,C,this._isPaged)}}n.CursorColumnSelectUp=we(new i({isPaged:!1,id:"cursorColumnSelectUp",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:3600,linux:{primary:0}}})),n.CursorColumnSelectPageUp=we(new i({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:3595,linux:{primary:0}}}));class o extends t{constructor(v){super(v),this._isPaged=v.isPaged}_getColumnSelectResult(v,x,C,S){return fv.columnSelectDown(v.cursorConfig,v,C,this._isPaged)}}n.CursorColumnSelectDown=we(new o({isPaged:!1,id:"cursorColumnSelectDown",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:3602,linux:{primary:0}}})),n.CursorColumnSelectPageDown=we(new o({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:3596,linux:{primary:0}}}));class r extends ao{constructor(){super({id:"cursorMove",precondition:void 0,metadata:AD.metadata})}runCoreEditorCommand(v,x){let C=AD.parse(x);C&&this._runCursorMove(v,x.source,C)}_runCursorMove(v,x,C){let S=C.noHistory?"api":x;v.model.pushStackElement(),v.setCursorStates(S,3,r._move(v,v.getCursorStates(),C)),v.revealAllCursors(S,!0)}static _move(v,x,C){let S=C.select,L=C.value;switch(C.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return sr.simpleMove(v,x,C.direction,S,L,C.unit);case 11:case 13:case 12:case 14:return sr.viewportMove(v,x,C.direction,S,L);default:return null}}}n.CursorMoveImpl=r,n.CursorMove=we(new r);class s extends ao{constructor(v){super(v),this._staticArgs=v.args}runCoreEditorCommand(v,x){let C=this._staticArgs;this._staticArgs.value===-1&&(C={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:x.pageSize||v.cursorConfig.pageSize}),v.model.pushStackElement(),v.setCursorStates(x.source,3,sr.simpleMove(v,v.getCursorStates(),C.direction,C.select,C.value,C.unit)),v.revealAllCursors(x.source,!0)}}n.CursorLeft=we(new s({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),n.CursorLeftSelect=we(new s({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:1039}})),n.CursorRight=we(new s({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),n.CursorRightSelect=we(new s({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:1041}})),n.CursorUp=we(new s({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),n.CursorUpSelect=we(new s({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),n.CursorPageUp=we(new s({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:11}})),n.CursorPageUpSelect=we(new s({args:{direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:1035}})),n.CursorDown=we(new s({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),n.CursorDownSelect=we(new s({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),n.CursorPageDown=we(new s({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:12}})),n.CursorPageDownSelect=we(new s({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:1036}})),n.CreateCursor=we(new class extends ao{constructor(){super({id:"createCursor",precondition:void 0})}runCoreEditorCommand(b,v){if(!v.position)return;let x;v.wholeLine?x=sr.line(b,b.getPrimaryCursorState(),!1,v.position,v.viewPosition):x=sr.moveTo(b,b.getPrimaryCursorState(),!1,v.position,v.viewPosition);let C=b.getCursorStates();if(C.length>1){let S=x.modelState?x.modelState.position:null,L=x.viewState?x.viewState.position:null;for(let I=0,D=C.length;IL&&(S=L);let I=new y(S,1,S,b.model.getLineMaxColumn(S)),D=0;if(x.at)switch(x.at){case jy.RawAtArgument.Top:D=3;break;case jy.RawAtArgument.Center:D=1;break;case jy.RawAtArgument.Bottom:D=4;break}let T=b.coordinatesConverter.convertModelRangeToViewRange(I);b.revealRange(v.source,!1,T,D,0)}}),n.SelectAll=new class extends UD{constructor(){super(ove)}runDOMCommand(b){To&&(b.focus(),b.select()),b.ownerDocument.execCommand("selectAll")}runEditorCommand(b,v,x){let C=v._getViewModel();C&&this.runCoreEditorCommand(C,x)}runCoreEditorCommand(b,v){b.model.pushStackElement(),b.setCursorStates("keyboard",3,[sr.selectAll(b,b.getPrimaryCursorState())])}},n.SetSelection=we(new class extends ao{constructor(){super({id:"setSelection",precondition:void 0})}runCoreEditorCommand(b,v){v.selection&&(b.model.pushStackElement(),b.setCursorStates(v.source,3,[Ot.fromModelSelection(v.selection)]))}})})(ta||(ta={}));Q9e=G.and(R.textInputFocus,R.columnSelection);Ky(ta.CursorColumnSelectLeft.id,1039);Ky(ta.CursorColumnSelectRight.id,1041);Ky(ta.CursorColumnSelectUp.id,1040);Ky(ta.CursorColumnSelectPageUp.id,1035);Ky(ta.CursorColumnSelectDown.id,1042);Ky(ta.CursorColumnSelectPageDown.id,1036);(function(n){class e extends Ji{runEditorCommand(i,o,r){let s=o._getViewModel();s&&this.runCoreEditingCommand(o,s,r||{})}}n.CoreEditingCommand=e,n.LineBreakInsert=we(new class extends e{constructor(){super({id:"lineBreakInsert",precondition:R.writable,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:0,mac:{primary:301}}})}runCoreEditingCommand(t,i,o){t.pushUndoStop(),t.executeCommands(this.id,s_.lineBreakInsert(i.cursorConfig,i.model,i.getCursorStates().map(r=>r.modelState.selection)))}}),n.Outdent=we(new class extends e{constructor(){super({id:"outdent",precondition:R.writable,kbOpts:{weight:xi,kbExpr:G.and(R.editorTextFocus,R.tabDoesNotMoveFocus),primary:1026}})}runCoreEditingCommand(t,i,o){t.pushUndoStop(),t.executeCommands(this.id,nu.outdent(i.cursorConfig,i.model,i.getCursorStates().map(r=>r.modelState.selection))),t.pushUndoStop()}}),n.Tab=we(new class extends e{constructor(){super({id:"tab",precondition:R.writable,kbOpts:{weight:xi,kbExpr:G.and(R.editorTextFocus,R.tabDoesNotMoveFocus),primary:2}})}runCoreEditingCommand(t,i,o){t.pushUndoStop(),t.executeCommands(this.id,nu.tab(i.cursorConfig,i.model,i.getCursorStates().map(r=>r.modelState.selection))),t.pushUndoStop()}}),n.DeleteLeft=we(new class extends e{constructor(){super({id:"deleteLeft",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}runCoreEditingCommand(t,i,o){let[r,s]=e_.deleteLeft(i.getPrevEditOperationType(),i.cursorConfig,i.model,i.getCursorStates().map(a=>a.modelState.selection),i.getCursorAutoClosedCharacters());r&&t.pushUndoStop(),t.executeCommands(this.id,s),i.setPrevEditOperationType(2)}}),n.DeleteRight=we(new class extends e{constructor(){super({id:"deleteRight",precondition:void 0,kbOpts:{weight:xi,kbExpr:R.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}runCoreEditingCommand(t,i,o){let[r,s]=e_.deleteRight(i.getPrevEditOperationType(),i.cursorConfig,i.model,i.getCursorStates().map(a=>a.modelState.selection));r&&t.pushUndoStop(),t.executeCommands(this.id,s),i.setPrevEditOperationType(3)}}),n.Undo=new class extends UD{constructor(){super(BY)}runDOMCommand(t){t.ownerDocument.execCommand("undo")}runEditorCommand(t,i,o){if(!(!i.hasModel()||i.getOption(104)===!0))return i.getModel().undo()}},n.Redo=new class extends UD{constructor(){super(WY)}runDOMCommand(t){t.ownerDocument.execCommand("redo")}runEditorCommand(t,i,o){if(!(!i.hasModel()||i.getOption(104)===!0))return i.getModel().redo()}}})(wv||(wv={}));r4=class extends jC{constructor(e,t,i){super({id:e,precondition:void 0,metadata:i}),this._handlerId=t}runCommand(e,t){let i=e.get(ot).getFocusedCodeEditor();i&&i.trigger("keyboard",this._handlerId,t)}};hx("type",{description:"Type",args:[{name:"args",schema:{type:"object",required:["text"],properties:{text:{type:"string"}}}}]});hx("replacePreviousChar");hx("compositionType");hx("compositionStart");hx("compositionEnd");hx("paste");hx("cut")});var Gy,s4=w(()=>{ye();Gy=Re("markerDecorationsService")});var J9e,eHe,a4,Wve=w(()=>{s4();at();J9e=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},eHe=function(n,e){return function(t,i){e(t,i,n)}},a4=class{static{this.ID="editor.contrib.markerDecorations"}constructor(e,t){}dispose(){}};a4=J9e([eHe(1,Gy)],a4);$e(a4.ID,a4,0)});var Hve=w(()=>{});function Zf(n){return typeof n=="number"?`${n}px`:n}function gt(n){return new Cv(n)}var Cv,ar=w(()=>{Cv=class{constructor(e){this.domNode=e,this._maxWidth="",this._width="",this._height="",this._top="",this._left="",this._bottom="",this._right="",this._paddingLeft="",this._fontFamily="",this._fontWeight="",this._fontSize="",this._fontStyle="",this._fontFeatureSettings="",this._fontVariationSettings="",this._textDecoration="",this._lineHeight="",this._letterSpacing="",this._className="",this._display="",this._position="",this._visibility="",this._color="",this._backgroundColor="",this._layerHint=!1,this._contain="none",this._boxShadow=""}focus(){this.domNode.focus()}setMaxWidth(e){let t=Zf(e);this._maxWidth!==t&&(this._maxWidth=t,this.domNode.style.maxWidth=this._maxWidth)}setWidth(e){let t=Zf(e);this._width!==t&&(this._width=t,this.domNode.style.width=this._width)}setHeight(e){let t=Zf(e);this._height!==t&&(this._height=t,this.domNode.style.height=this._height)}setTop(e){let t=Zf(e);this._top!==t&&(this._top=t,this.domNode.style.top=this._top)}setLeft(e){let t=Zf(e);this._left!==t&&(this._left=t,this.domNode.style.left=this._left)}setBottom(e){let t=Zf(e);this._bottom!==t&&(this._bottom=t,this.domNode.style.bottom=this._bottom)}setRight(e){let t=Zf(e);this._right!==t&&(this._right=t,this.domNode.style.right=this._right)}setPaddingLeft(e){let t=Zf(e);this._paddingLeft!==t&&(this._paddingLeft=t,this.domNode.style.paddingLeft=this._paddingLeft)}setFontFamily(e){this._fontFamily!==e&&(this._fontFamily=e,this.domNode.style.fontFamily=this._fontFamily)}setFontWeight(e){this._fontWeight!==e&&(this._fontWeight=e,this.domNode.style.fontWeight=this._fontWeight)}setFontSize(e){let t=Zf(e);this._fontSize!==t&&(this._fontSize=t,this.domNode.style.fontSize=this._fontSize)}setFontStyle(e){this._fontStyle!==e&&(this._fontStyle=e,this.domNode.style.fontStyle=this._fontStyle)}setFontFeatureSettings(e){this._fontFeatureSettings!==e&&(this._fontFeatureSettings=e,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setFontVariationSettings(e){this._fontVariationSettings!==e&&(this._fontVariationSettings=e,this.domNode.style.fontVariationSettings=this._fontVariationSettings)}setTextDecoration(e){this._textDecoration!==e&&(this._textDecoration=e,this.domNode.style.textDecoration=this._textDecoration)}setLineHeight(e){let t=Zf(e);this._lineHeight!==t&&(this._lineHeight=t,this.domNode.style.lineHeight=this._lineHeight)}setLetterSpacing(e){let t=Zf(e);this._letterSpacing!==t&&(this._letterSpacing=t,this.domNode.style.letterSpacing=this._letterSpacing)}setClassName(e){this._className!==e&&(this._className=e,this.domNode.className=this._className)}toggleClassName(e,t){this.domNode.classList.toggle(e,t),this._className=this.domNode.className}setDisplay(e){this._display!==e&&(this._display=e,this.domNode.style.display=this._display)}setPosition(e){this._position!==e&&(this._position=e,this.domNode.style.position=this._position)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this.domNode.style.visibility=this._visibility)}setColor(e){this._color!==e&&(this._color=e,this.domNode.style.color=this._color)}setBackgroundColor(e){this._backgroundColor!==e&&(this._backgroundColor=e,this.domNode.style.backgroundColor=this._backgroundColor)}setLayerHinting(e){this._layerHint!==e&&(this._layerHint=e,this.domNode.style.transform=this._layerHint?"translate3d(0px, 0px, 0px)":"")}setBoxShadow(e){this._boxShadow!==e&&(this._boxShadow=e,this.domNode.style.boxShadow=e)}setContain(e){this._contain!==e&&(this._contain=e,this.domNode.style.contain=this._contain)}setAttribute(e,t){this.domNode.setAttribute(e,t)}removeAttribute(e){this.domNode.removeAttribute(e)}appendChild(e){this.domNode.appendChild(e.domNode)}removeChild(e){this.domNode.removeChild(e.domNode)}}});function xn(n,e){n instanceof Cv?(n.setFontFamily(e.getMassagedFontFamily()),n.setFontWeight(e.fontWeight),n.setFontSize(e.fontSize),n.setFontFeatureSettings(e.fontFeatureSettings),n.setFontVariationSettings(e.fontVariationSettings),n.setLineHeight(e.lineHeight),n.setLetterSpacing(e.letterSpacing)):(n.style.fontFamily=e.getMassagedFontFamily(),n.style.fontWeight=e.fontWeight,n.style.fontSize=e.fontSize+"px",n.style.fontFeatureSettings=e.fontFeatureSettings,n.style.fontVariationSettings=e.fontVariationSettings,n.style.lineHeight=e.lineHeight+"px",n.style.letterSpacing=e.letterSpacing+"px")}var Ld=w(()=>{ar()});var Yy,SZ=w(()=>{B();ae();oe();Yy=class extends E{constructor(e,t){super(),this._onDidChange=this._register(new N),this.onDidChange=this._onDidChange.event,this._referenceDomElement=e,this._width=-1,this._height=-1,this._resizeObserver=null,this.measureReferenceDomElement(!1,t)}dispose(){this.stopObserving(),super.dispose()}getWidth(){return this._width}getHeight(){return this._height}startObserving(){if(!this._resizeObserver&&this._referenceDomElement){let e=null,t=()=>{e?this.observe({width:e.width,height:e.height}):this.observe()},i=!1,o=!1,r=()=>{if(i&&!o)try{i=!1,o=!0,t()}finally{Ms(Ce(this._referenceDomElement),()=>{o=!1,r()})}};this._resizeObserver=new ResizeObserver(s=>{s&&s[0]&&s[0].contentRect?e={width:s[0].contentRect.width,height:s[0].contentRect.height}:e=null,i=!0,r()}),this._resizeObserver.observe(this._referenceDomElement)}}stopObserving(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null)}observe(e){this.measureReferenceDomElement(!0,e)}measureReferenceDomElement(e,t){let i=0,o=0;t?(i=t.width,o=t.height):this._referenceDomElement&&(i=this._referenceDomElement.clientWidth,o=this._referenceDomElement.clientHeight),i=Math.max(5,i),o=Math.max(5,o),(this._width!==i||this._height!==o)&&(this._width=i,this._height=o,e&&this._onDidChange.fire())}}});var yZ,kZ,LZ,xv,l4=w(()=>{oe();ae();B();yZ=class extends E{constructor(e){super(),this._onDidChange=this._register(new N),this.onDidChange=this._onDidChange.event,this._listener=()=>this._handleChange(e,!0),this._mediaQueryList=null,this._handleChange(e,!1)}_handleChange(e,t){this._mediaQueryList?.removeEventListener("change",this._listener),this._mediaQueryList=e.matchMedia(`(resolution: ${e.devicePixelRatio}dppx)`),this._mediaQueryList.addEventListener("change",this._listener),t&&this._onDidChange.fire()}},kZ=class extends E{get value(){return this._value}constructor(e){super(),this._onDidChange=this._register(new N),this.onDidChange=this._onDidChange.event,this._value=this._getPixelRatio(e);let t=this._register(new yZ(e));this._register(t.onDidChange(()=>{this._value=this._getPixelRatio(e),this._onDidChange.fire(this._value)}))}_getPixelRatio(e){let t=document.createElement("canvas").getContext("2d"),i=e.devicePixelRatio||1,o=t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return i/o}},LZ=class{constructor(){this.mapWindowIdToPixelRatioMonitor=new Map}_getOrCreatePixelRatioMonitor(e){let t=ov(e),i=this.mapWindowIdToPixelRatioMonitor.get(t);return i||(i=new kZ(e),this.mapWindowIdToPixelRatioMonitor.set(t,i),X.once(ube)(({vscodeWindowId:o})=>{o===t&&(i?.dispose(),this.mapWindowIdToPixelRatioMonitor.delete(t))})),i}getInstance(e){return this._getOrCreatePixelRatioMonitor(e)}},xv=new LZ});function Vve(n,e,t){new IZ(e,t).read(n)}var c4,IZ,zve=w(()=>{Ld();c4=class{constructor(e,t){this.chr=e,this.type=t,this.width=0}fulfill(e){this.width=e}},IZ=class n{constructor(e,t){this._bareFontInfo=e,this._requests=t,this._container=null,this._testElements=null}read(e){this._createDomElements(),e.document.body.appendChild(this._container),this._readFromDomElements(),this._container?.remove(),this._container=null,this._testElements=null}_createDomElements(){let e=document.createElement("div");e.style.position="absolute",e.style.top="-50000px",e.style.width="50000px";let t=document.createElement("div");xn(t,this._bareFontInfo),e.appendChild(t);let i=document.createElement("div");xn(i,this._bareFontInfo),i.style.fontWeight="bold",e.appendChild(i);let o=document.createElement("div");xn(o,this._bareFontInfo),o.style.fontStyle="italic",e.appendChild(o);let r=[];for(let s of this._requests){let a;s.type===0&&(a=t),s.type===2&&(a=i),s.type===1&&(a=o),a.appendChild(document.createElement("br"));let l=document.createElement("span");n._render(l,s),a.appendChild(l),r.push(l)}this._container=e,this._testElements=r}static _render(e,t){if(t.chr===" "){let i="\xA0";for(let o=0;o<8;o++)i+=i;e.innerText=i}else{let i=t.chr;for(let o=0;o<8;o++)i+=i;e.textContent=i}}_readFromDomElements(){for(let e=0,t=this._requests.length;e{ae();$l=new class{constructor(){this._zoomLevel=0,this._onDidChangeZoomLevel=new N,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}getZoomLevel(){return this._zoomLevel}setZoomLevel(n){n=Math.min(Math.max(-5,n),20),this._zoomLevel!==n&&(this._zoomLevel=n,this._onDidChangeZoomLevel.fire(this._zoomLevel))}}});var tHe,EZ,Sv,iHe,a_,DZ,TZ,nHe,oHe,rHe,Oa,l_=w(()=>{ct();Zy();tHe=qe?1.5:1.35,EZ=8,Sv=class n{static _create(e,t,i,o,r,s,a,l,c){s===0?s=tHe*i:s{Hs={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}}});function d4(n,e){if(typeof n!="object"||typeof e!="object"||!n||!e)return new yv(e,n!==e);if(Array.isArray(n)||Array.isArray(e)){let i=Array.isArray(n)&&Array.isArray(e)&&Pt(n,e);return new yv(e,!i)}let t=!1;for(let i in e)if(e.hasOwnProperty(i)){let o=d4(n[i],e[i]);o.didChange&&(n[i]=o.newValue,t=!0)}return new yv(n,t)}function Ve(n,e){return typeof n>"u"?e:n==="false"?!1:!!n}function Qf(n,e,t,i){if(typeof n=="string"&&(n=parseInt(n,10)),typeof n!="number"||isNaN(n))return e;let o=n;return o=Math.max(t,o),o=Math.min(i,o),o|0}function qve(n,e,t,i){if(typeof n>"u")return e;let o=Kc.float(n,e);return Kc.clamp(o,t,i)}function Sn(n,e,t,i){return typeof n!="string"?e:i&&n in i?i[n]:t.indexOf(n)===-1?e:n}function sHe(n){switch(n){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}function aHe(n){switch(n){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}function Uve(n){switch(n){case"line":return Cs.Line;case"block":return Cs.Block;case"underline":return Cs.Underline;case"line-thin":return Cs.LineThin;case"block-outline":return Cs.BlockOutline;case"underline-thin":return Cs.UnderlineThin}}function lHe(n){return n==="ctrlCmd"?qe?"metaKey":"ctrlKey":"altKey"}function fx(n){let e=n.get(112);return e==="editable"?n.get(104):e!=="on"}function mx(n){return!n.get(172)}function $ve(n,e){if(typeof n!="string")return e;switch(n){case"hidden":return 2;case"visible":return 3;default:return 1}}function Xy(n,e,t){let i=t.indexOf(n);return i===-1?e:t[i]}function ce(n){return Lv[n.id]=n,n}var Xf,Qy,qD,Mn,yv,tg,kv,Ct,$i,Kc,ql,An,ux,NZ,RZ,Cs,AZ,MZ,OZ,Ed,PZ,FZ,BZ,WZ,HZ,VZ,zZ,UZ,$Z,jD,qZ,ou,jZ,KZ,GZ,YZ,ZZ,XZ,QZ,JZ,eX,tX,iX,nX,oX,rX,sX,Id,fc,aX,lX,cX,dX,hX,uX,fX,mX,gX,pX,_X,Lv,Vs,xs=w(()=>{We();qc();ct();l_();$D();nx();le();Xf=8,Qy=class{constructor(e){this._values=e}hasChanged(e){return this._values[e]}},qD=class{constructor(){this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0}},Mn=class{constructor(e,t,i,o){this.id=e,this.name=t,this.defaultValue=i,this.schema=o}applyUpdate(e,t){return d4(e,t)}compute(e,t,i){return i}},yv=class{constructor(e,t){this.newValue=e,this.didChange=t}};tg=class{constructor(e,t){this.schema=void 0,this.id=e,this.name="_never_",this.defaultValue=t}applyUpdate(e,t){return d4(e,t)}validate(e){return this.defaultValue}},kv=class{constructor(e,t,i,o){this.id=e,this.name=t,this.defaultValue=i,this.schema=o}applyUpdate(e,t){return d4(e,t)}compute(e,t,i){return i}};Ct=class extends kv{constructor(e,t,i,o=void 0){typeof o<"u"&&(o.type="boolean",o.default=i),super(e,t,i,o)}validate(e){return Ve(e,this.defaultValue)}};$i=class n extends kv{static clampedInt(e,t,i,o){return Qf(e,t,i,o)}constructor(e,t,i,o,r,s=void 0){typeof s<"u"&&(s.type="integer",s.default=i,s.minimum=o,s.maximum=r),super(e,t,i,s),this.minimum=o,this.maximum=r}validate(e){return n.clampedInt(e,this.defaultValue,this.minimum,this.maximum)}};Kc=class n extends kv{static clamp(e,t,i){return ei?i:e}static float(e,t){return typeof e=="string"&&(e=parseFloat(e)),typeof e!="number"||isNaN(e)?t:e}constructor(e,t,i,o,r,s,a){typeof r<"u"&&(r.type="number",r.default=i,r.minimum=s,r.maximum=a),super(e,t,i,r),this.validationFn=o,this.minimum=s,this.maximum=a}validate(e){return this.validationFn(n.float(e,this.defaultValue))}},ql=class n extends kv{static string(e,t){return typeof e!="string"?t:e}constructor(e,t,i,o=void 0){typeof o<"u"&&(o.type="string",o.default=i),super(e,t,i,o)}validate(e){return n.string(e,this.defaultValue)}};An=class extends kv{constructor(e,t,i,o,r=void 0){typeof r<"u"&&(r.type="string",r.enum=o.slice(0),r.default=i),super(e,t,i,r),this._allowedValues=o}validate(e){return Sn(e,this.defaultValue,this._allowedValues)}},ux=class extends Mn{constructor(e,t,i,o,r,s,a=void 0){typeof a<"u"&&(a.type="string",a.enum=r,a.default=o),super(e,t,i,a),this._allowedValues=r,this._convert=s}validate(e){return typeof e!="string"?this.defaultValue:this._allowedValues.indexOf(e)===-1?this.defaultValue:this._convert(e)}};NZ=class extends Mn{constructor(){super(2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[g(201,"Use platform APIs to detect when a Screen Reader is attached."),g(202,"Optimize for usage with a Screen Reader."),g(203,"Assume a screen reader is not attached.")],default:"auto",tags:["accessibility"],description:g(204,"Controls if the UI should run in a mode where it is optimized for screen readers.")})}validate(e){switch(e){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}compute(e,t,i){return i===0?e.accessibilitySupport:i}},RZ=class extends Mn{constructor(){let e={insertSpace:!0,ignoreEmptyLines:!0};super(29,"comments",e,{"editor.comments.insertSpace":{type:"boolean",default:e.insertSpace,description:g(205,"Controls whether a space character is inserted when commenting.")},"editor.comments.ignoreEmptyLines":{type:"boolean",default:e.ignoreEmptyLines,description:g(206,"Controls if empty lines should be ignored with toggle, add or remove actions for line comments.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;let t=e;return{insertSpace:Ve(t.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:Ve(t.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}};(function(n){n[n.Line=1]="Line",n[n.Block=2]="Block",n[n.Underline=3]="Underline",n[n.LineThin=4]="LineThin",n[n.BlockOutline=5]="BlockOutline",n[n.UnderlineThin=6]="UnderlineThin"})(Cs||(Cs={}));AZ=class extends tg{constructor(){super(162,"")}compute(e,t,i){let o=["monaco-editor"];return t.get(48)&&o.push(t.get(48)),e.extraEditorClassName&&o.push(e.extraEditorClassName),t.get(82)==="default"?o.push("mouse-default"):t.get(82)==="copy"&&o.push("mouse-copy"),t.get(127)&&o.push("showUnused"),t.get(157)&&o.push("showDeprecated"),o.join(" ")}},MZ=class extends Ct{constructor(){super(45,"emptySelectionClipboard",!0,{description:g(207,"Controls whether copying without a selection copies the current line.")})}compute(e,t,i){return i&&e.emptySelectionClipboard}},OZ=class extends Mn{constructor(){let e={cursorMoveOnType:!0,findOnType:!0,seedSearchStringFromSelection:"always",autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0,history:"workspace",replaceHistory:"workspace"};super(50,"find",e,{"editor.find.cursorMoveOnType":{type:"boolean",default:e.cursorMoveOnType,description:g(208,"Controls whether the cursor should jump to find matches while typing.")},"editor.find.seedSearchStringFromSelection":{type:"string",enum:["never","always","selection"],default:e.seedSearchStringFromSelection,enumDescriptions:[g(209,"Never seed search string from the editor selection."),g(210,"Always seed search string from the editor selection, including word at cursor position."),g(211,"Only seed search string from the editor selection.")],description:g(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:e.autoFindInSelection,enumDescriptions:[g(213,"Never turn on Find in Selection automatically (default)."),g(214,"Always turn on Find in Selection automatically."),g(215,"Turn on Find in Selection automatically when multiple lines of content are selected.")],description:g(216,"Controls the condition for turning on Find in Selection automatically.")},"editor.find.globalFindClipboard":{type:"boolean",default:e.globalFindClipboard,description:g(217,"Controls whether the Find Widget should read or modify the shared find clipboard on macOS."),included:qe},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:e.addExtraSpaceOnTop,description:g(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:e.loop,description:g(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:[g(220,"Do not store search history from the find widget."),g(221,"Store search history across the active workspace")],description:g(222,"Controls how the find widget history should be stored")},"editor.find.replaceHistory":{type:"string",enum:["never","workspace"],default:"workspace",enumDescriptions:[g(223,"Do not store history from the replace widget."),g(224,"Store replace history across the active workspace")],description:g(225,"Controls how the replace widget history should be stored")},"editor.find.findOnType":{type:"boolean",default:e.findOnType,description:g(226,"Controls whether the Find Widget should search as you type.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;let t=e;return{cursorMoveOnType:Ve(t.cursorMoveOnType,this.defaultValue.cursorMoveOnType),findOnType:Ve(t.findOnType,this.defaultValue.findOnType),seedSearchStringFromSelection:typeof t.seedSearchStringFromSelection=="boolean"?t.seedSearchStringFromSelection?"always":"never":Sn(t.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:typeof t.autoFindInSelection=="boolean"?t.autoFindInSelection?"always":"never":Sn(t.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:Ve(t.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:Ve(t.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:Ve(t.loop,this.defaultValue.loop),history:Sn(t.history,this.defaultValue.history,["never","workspace"]),replaceHistory:Sn(t.replaceHistory,this.defaultValue.replaceHistory,["never","workspace"])}}},Ed=class n extends Mn{static{this.OFF='"liga" off, "calt" off'}static{this.ON='"liga" on, "calt" on'}constructor(){super(60,"fontLigatures",n.OFF,{anyOf:[{type:"boolean",description:g(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:g(228,"Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.")}],description:g(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:!1})}validate(e){return typeof e>"u"?this.defaultValue:typeof e=="string"?e==="false"||e.length===0?n.OFF:e==="true"?n.ON:e:e?n.ON:n.OFF}},PZ=class n extends Mn{static{this.OFF=DZ}static{this.TRANSLATE=TZ}constructor(){super(63,"fontVariations",n.OFF,{anyOf:[{type:"boolean",description:g(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:g(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:g(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:!1})}validate(e){return typeof e>"u"?this.defaultValue:typeof e=="string"?e==="false"?n.OFF:e==="true"?n.TRANSLATE:e:e?n.TRANSLATE:n.OFF}compute(e,t,i){return e.fontInfo.fontVariationSettings}},FZ=class extends tg{constructor(){super(59,new a_({pixelRatio:0,fontFamily:"",fontWeight:"",fontSize:0,fontFeatureSettings:"",fontVariationSettings:"",lineHeight:0,letterSpacing:0,isMonospace:!1,typicalHalfwidthCharacterWidth:0,typicalFullwidthCharacterWidth:0,canUseHalfwidthRightwardsArrow:!1,spaceWidth:0,middotWidth:0,wsmiddotWidth:0,maxDigitWidth:0},!1))}compute(e,t,i){return e.fontInfo}},BZ=class extends tg{constructor(){super(161,Cs.Line)}compute(e,t,i){return e.inputMode==="overtype"?t.get(92):t.get(34)}},WZ=class extends tg{constructor(){super(170,!1)}compute(e,t){return e.editContextSupported&&t.get(44)}},HZ=class extends tg{constructor(){super(172,!1)}compute(e,t){return e.accessibilitySupport===2?t.get(7):t.get(6)}},VZ=class extends kv{constructor(){super(61,"fontSize",Oa.fontSize,{type:"number",minimum:6,maximum:100,default:Oa.fontSize,description:g(233,"Controls the font size in pixels.")})}validate(e){let t=Kc.float(e,this.defaultValue);return t===0?Oa.fontSize:Kc.clamp(t,6,100)}compute(e,t,i){return e.fontInfo.fontSize}},zZ=class n extends Mn{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",Oa.fontWeight,{anyOf:[{type:"number",minimum:n.MINIMUM_VALUE,maximum:n.MAXIMUM_VALUE,errorMessage:g(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:n.SUGGESTION_VALUES}],default:Oa.fontWeight,description:g(235,'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.')})}validate(e){return e==="normal"||e==="bold"?e:String($i.clampedInt(e,Oa.fontWeight,n.MINIMUM_VALUE,n.MAXIMUM_VALUE))}},UZ=class extends Mn{constructor(){let e={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:""},t={type:"string",enum:["peek","gotoAndPeek","goto"],default:e.multiple,enumDescriptions:[g(236,"Show Peek view of the results (default)"),g(237,"Go to the primary result and show a Peek view"),g(238,"Go to the primary result and enable Peek-less navigation to others")]},i=["","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",e,{"editor.gotoLocation.multiple":{deprecationMessage:g(239,"This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.")},"editor.gotoLocation.multipleDefinitions":{description:g(240,"Controls the behavior the 'Go to Definition'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleTypeDefinitions":{description:g(241,"Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleDeclarations":{description:g(242,"Controls the behavior the 'Go to Declaration'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleImplementations":{description:g(243,"Controls the behavior the 'Go to Implementations'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleReferences":{description:g(244,"Controls the behavior the 'Go to References'-command when multiple target locations exist."),...t},"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:e.alternativeDefinitionCommand,enum:i,description:g(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:e.alternativeTypeDefinitionCommand,enum:i,description:g(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:e.alternativeDeclarationCommand,enum:i,description:g(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:e.alternativeImplementationCommand,enum:i,description:g(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:e.alternativeReferenceCommand,enum:i,description:g(249,"Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;let t=e;return{multiple:Sn(t.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:Sn(t.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:Sn(t.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:Sn(t.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:Sn(t.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:Sn(t.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),multipleTests:Sn(t.multipleTests,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:ql.string(t.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:ql.string(t.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:ql.string(t.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:ql.string(t.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:ql.string(t.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand),alternativeTestsCommand:ql.string(t.alternativeTestsCommand,this.defaultValue.alternativeTestsCommand)}}},$Z=class extends Mn{constructor(){let e={enabled:!0,delay:300,hidingDelay:300,sticky:!0,above:!0};super(69,"hover",e,{"editor.hover.enabled":{type:"boolean",default:e.enabled,description:g(250,"Controls whether the hover is shown.")},"editor.hover.delay":{type:"number",default:e.delay,minimum:0,maximum:1e4,description:g(251,"Controls the delay in milliseconds after which the hover is shown.")},"editor.hover.sticky":{type:"boolean",default:e.sticky,description:g(252,"Controls whether the hover should remain visible when mouse is moved over it.")},"editor.hover.hidingDelay":{type:"integer",minimum:0,default:e.hidingDelay,markdownDescription:g(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:e.above,description:g(254,"Prefer showing hovers above the line, if there's space.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;let t=e;return{enabled:Ve(t.enabled,this.defaultValue.enabled),delay:$i.clampedInt(t.delay,this.defaultValue.delay,0,1e4),sticky:Ve(t.sticky,this.defaultValue.sticky),hidingDelay:$i.clampedInt(t.hidingDelay,this.defaultValue.hidingDelay,0,6e5),above:Ve(t.above,this.defaultValue.above)}}},jD=class n extends tg{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:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:0,minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:0},viewportColumn:0,isWordWrapMinified:!1,isViewportWrapping:!1,wrappingColumn:-1,verticalScrollbarWidth:0,horizontalScrollbarHeight:0,overviewRuler:{top:0,width:0,height:0,right:0}})}compute(e,t,i){return n.computeLayout(t,{memory:e.memory,outerWidth:e.outerWidth,outerHeight:e.outerHeight,isDominatedByLongLines:e.isDominatedByLongLines,lineHeight:e.fontInfo.lineHeight,viewLineCount:e.viewLineCount,lineNumbersDigitCount:e.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:e.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:e.fontInfo.maxDigitWidth,pixelRatio:e.pixelRatio,glyphMarginDecorationLaneCount:e.glyphMarginDecorationLaneCount})}static computeContainedMinimapLineCount(e){let t=e.height/e.lineHeight,i=Math.floor(e.paddingTop/e.lineHeight),o=Math.floor(e.paddingBottom/e.lineHeight);e.scrollBeyondLastLine&&(o=Math.max(o,t-1));let r=(i+e.viewLineCount+o)/(e.pixelRatio*e.height),s=Math.floor(e.viewLineCount/r);return{typicalViewportLineCount:t,extraLinesBeforeFirstLine:i,extraLinesBeyondLastLine:o,desiredRatio:r,minimapLineCount:s}}static _computeMinimapLayout(e,t){let i=e.outerWidth,o=e.outerHeight,r=e.pixelRatio;if(!e.minimap.enabled)return{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(r*o),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:o};let s=t.stableMinimapLayoutInput,a=s&&e.outerHeight===s.outerHeight&&e.lineHeight===s.lineHeight&&e.typicalHalfwidthCharacterWidth===s.typicalHalfwidthCharacterWidth&&e.pixelRatio===s.pixelRatio&&e.scrollBeyondLastLine===s.scrollBeyondLastLine&&e.paddingTop===s.paddingTop&&e.paddingBottom===s.paddingBottom&&e.minimap.enabled===s.minimap.enabled&&e.minimap.side===s.minimap.side&&e.minimap.size===s.minimap.size&&e.minimap.showSlider===s.minimap.showSlider&&e.minimap.renderCharacters===s.minimap.renderCharacters&&e.minimap.maxColumn===s.minimap.maxColumn&&e.minimap.scale===s.minimap.scale&&e.verticalScrollbarWidth===s.verticalScrollbarWidth&&e.isViewportWrapping===s.isViewportWrapping,l=e.lineHeight,c=e.typicalHalfwidthCharacterWidth,d=e.scrollBeyondLastLine,h=e.minimap.renderCharacters,u=r>=2?Math.round(e.minimap.scale*2):e.minimap.scale,f=e.minimap.maxColumn,m=e.minimap.size,p=e.minimap.side,_=e.verticalScrollbarWidth,b=e.viewLineCount,v=e.remainingWidth,x=e.isViewportWrapping,C=h?2:3,S=Math.floor(r*o),L=S/r,I=!1,D=!1,T=C*u,O=u/r,W=1;if(m==="fill"||m==="fit"){let{typicalViewportLineCount:_e,extraLinesBeforeFirstLine:Oe,extraLinesBeyondLastLine:Qe,desiredRatio:pt,minimapLineCount:ti}=n.computeContainedMinimapLineCount({viewLineCount:b,scrollBeyondLastLine:d,paddingTop:e.paddingTop,paddingBottom:e.paddingBottom,height:o,lineHeight:l,pixelRatio:r});if(b/ti>1)I=!0,D=!0,u=1,T=1,O=u/r;else{let pn=!1,Ni=u+1;if(m==="fit"){let Ks=Math.ceil((Oe+b+Qe)*T);x&&a&&v<=t.stableFitRemainingWidth?(pn=!0,Ni=t.stableFitMaxMinimapScale):pn=Ks>S}if(m==="fill"||pn){I=!0;let Ks=u;T=Math.min(l*r,Math.max(1,Math.floor(1/pt))),x&&a&&v<=t.stableFitRemainingWidth&&(Ni=t.stableFitMaxMinimapScale),u=Math.min(Ni,Math.max(1,Math.floor(T/C))),u>Ks&&(W=Math.min(2,u/Ks)),O=u/r/W,S=Math.ceil(Math.max(_e,Oe+b+Qe)*T),x?(t.stableMinimapLayoutInput=e,t.stableFitRemainingWidth=v,t.stableFitMaxMinimapScale=u):(t.stableMinimapLayoutInput=null,t.stableFitRemainingWidth=0)}}}let H=Math.floor(f*O),z=Math.min(H,Math.max(0,Math.floor((v-_-2)*O/(c+O)))+Xf),Q=Math.floor(r*z),ee=Q/r;Q=Math.floor(Q*W);let pe=h?1:2,he=p==="left"?0:i-z-_;return{renderMinimap:pe,minimapLeft:he,minimapWidth:z,minimapHeightIsEditorHeight:I,minimapIsSampling:D,minimapScale:u,minimapLineHeight:T,minimapCanvasInnerWidth:Q,minimapCanvasInnerHeight:S,minimapCanvasOuterWidth:ee,minimapCanvasOuterHeight:L}}static computeLayout(e,t){let i=t.outerWidth|0,o=t.outerHeight|0,r=t.lineHeight|0,s=t.lineNumbersDigitCount|0,a=t.typicalHalfwidthCharacterWidth,l=t.maxDigitWidth,c=t.pixelRatio,d=t.viewLineCount,h=e.get(154),u=h==="inherit"?e.get(153):h,f=u==="inherit"?e.get(149):u,m=e.get(152),p=t.isDominatedByLongLines,_=e.get(66),b=e.get(76).renderType!==0,v=e.get(77),x=e.get(119),C=e.get(96),S=e.get(81),L=e.get(117),I=L.verticalScrollbarSize,D=L.verticalHasArrows,T=L.arrowSize,O=L.horizontalScrollbarSize,W=e.get(52),H=e.get(126)!=="never",z=e.get(74);W&&H&&(z+=16);let Q=0;if(b){let ic=Math.max(s,v);Q=Math.round(ic*l)}let ee=0;_&&(ee=r*t.glyphMarginDecorationLaneCount);let pe=0,he=pe+ee,_e=he+Q,Oe=_e+z,Qe=i-ee-Q-z,pt=!1,ti=!1,Vt=-1;e.get(2)===2&&u==="inherit"&&p?(pt=!0,ti=!0):f==="on"||f==="bounded"?ti=!0:f==="wordWrapColumn"&&(Vt=m);let pn=n._computeMinimapLayout({outerWidth:i,outerHeight:o,lineHeight:r,typicalHalfwidthCharacterWidth:a,pixelRatio:c,scrollBeyondLastLine:x,paddingTop:C.top,paddingBottom:C.bottom,minimap:S,verticalScrollbarWidth:I,viewLineCount:d,remainingWidth:Qe,isViewportWrapping:ti},t.memory||new qD);pn.renderMinimap!==0&&pn.minimapLeft===0&&(pe+=pn.minimapWidth,he+=pn.minimapWidth,_e+=pn.minimapWidth,Oe+=pn.minimapWidth);let Ni=Qe-pn.minimapWidth,Ks=Math.max(1,Math.floor((Ni-I-2)/a)),Vo=D?T:0;return ti&&(Vt=Math.max(1,Ks),f==="bounded"&&(Vt=Math.min(Vt,m))),{width:i,height:o,glyphMarginLeft:pe,glyphMarginWidth:ee,glyphMarginDecorationLaneCount:t.glyphMarginDecorationLaneCount,lineNumbersLeft:he,lineNumbersWidth:Q,decorationsLeft:_e,decorationsWidth:z,contentLeft:Oe,contentWidth:Ni,minimap:pn,viewportColumn:Ks,isWordWrapMinified:pt,isViewportWrapping:ti,wrappingColumn:Vt,verticalScrollbarWidth:I,horizontalScrollbarHeight:O,overviewRuler:{top:Vo,width:I,height:o-2*Vo,right:0}}}},qZ=class extends Mn{constructor(){super(156,"wrappingStrategy","simple",{"editor.wrappingStrategy":{enumDescriptions:[g(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."),g(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:g(257,"Controls the algorithm that computes wrapping points. Note that when in accessibility mode, advanced will be used for the best experience.")}})}validate(e){return Sn(e,"simple",["simple","advanced"])}compute(e,t,i){return t.get(2)===2?"advanced":i}};(function(n){n.Off="off",n.OnCode="onCode",n.On="on"})(ou||(ou={}));jZ=class extends Mn{constructor(){let e={enabled:ou.OnCode};super(73,"lightbulb",e,{"editor.lightbulb.enabled":{type:"string",enum:[ou.Off,ou.OnCode,ou.On],default:e.enabled,enumDescriptions:[g(258,"Disable the code action menu."),g(259,"Show the code action menu when the cursor is on lines with code."),g(260,"Show the code action menu when the cursor is on lines with code or on empty lines.")],description:g(261,"Enables the Code Action lightbulb in the editor.")}})}validate(e){return!e||typeof e!="object"?this.defaultValue:{enabled:Sn(e.enabled,this.defaultValue.enabled,[ou.Off,ou.OnCode,ou.On])}}},KZ=class extends Mn{constructor(){let e={enabled:!0,maxLineCount:5,defaultModel:"outlineModel",scrollWithEditor:!0};super(131,"stickyScroll",e,{"editor.stickyScroll.enabled":{type:"boolean",default:e.enabled,description:g(262,"Shows the nested current scopes during the scroll at the top of the editor.")},"editor.stickyScroll.maxLineCount":{type:"number",default:e.maxLineCount,minimum:1,maximum:20,description:g(263,"Defines the maximum number of sticky lines to show.")},"editor.stickyScroll.defaultModel":{type:"string",enum:["outlineModel","foldingProviderModel","indentationModel"],default:e.defaultModel,description:g(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:e.scrollWithEditor,description:g(265,"Enable scrolling of Sticky Scroll with the editor's horizontal scrollbar.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;let t=e;return{enabled:Ve(t.enabled,this.defaultValue.enabled),maxLineCount:$i.clampedInt(t.maxLineCount,this.defaultValue.maxLineCount,1,20),defaultModel:Sn(t.defaultModel,this.defaultValue.defaultModel,["outlineModel","foldingProviderModel","indentationModel"]),scrollWithEditor:Ve(t.scrollWithEditor,this.defaultValue.scrollWithEditor)}}},GZ=class extends Mn{constructor(){let e={enabled:"on",fontSize:0,fontFamily:"",padding:!1,maximumLength:43};super(159,"inlayHints",e,{"editor.inlayHints.enabled":{type:"string",default:e.enabled,description:g(266,"Enables the inlay hints in the editor."),enum:["on","onUnlessPressed","offUnlessPressed","off"],markdownEnumDescriptions:[g(267,"Inlay hints are enabled"),g(268,"Inlay hints are showing by default and hide when holding {0}",qe?"Ctrl+Option":"Ctrl+Alt"),g(269,"Inlay hints are hidden by default and show when holding {0}",qe?"Ctrl+Option":"Ctrl+Alt"),g(270,"Inlay hints are disabled")]},"editor.inlayHints.fontSize":{type:"number",default:e.fontSize,markdownDescription:g(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:e.fontFamily,markdownDescription:g(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:e.padding,description:g(273,"Enables the padding around the inlay hints in the editor.")},"editor.inlayHints.maximumLength":{type:"number",default:e.maximumLength,markdownDescription:g(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(e){if(!e||typeof e!="object")return this.defaultValue;let t=e;return typeof t.enabled=="boolean"&&(t.enabled=t.enabled?"on":"off"),{enabled:Sn(t.enabled,this.defaultValue.enabled,["on","off","offUnlessPressed","onUnlessPressed"]),fontSize:$i.clampedInt(t.fontSize,this.defaultValue.fontSize,0,100),fontFamily:ql.string(t.fontFamily,this.defaultValue.fontFamily),padding:Ve(t.padding,this.defaultValue.padding),maximumLength:$i.clampedInt(t.maximumLength,this.defaultValue.maximumLength,0,Number.MAX_SAFE_INTEGER)}}},YZ=class extends Mn{constructor(){super(74,"lineDecorationsWidth",10)}validate(e){return typeof e=="string"&&/^\d+(\.\d+)?ch$/.test(e)?-parseFloat(e.substring(0,e.length-2)):$i.clampedInt(e,this.defaultValue,0,1e3)}compute(e,t,i){return i<0?$i.clampedInt(-i*e.fontInfo.typicalHalfwidthCharacterWidth,this.defaultValue,0,1e3):i}},ZZ=class extends Kc{constructor(){super(75,"lineHeight",Oa.lineHeight,e=>Kc.clamp(e,0,150),{markdownDescription:g(275,`Controls the line height. - - Use 0 to automatically compute the line height from the font size. - - Values between 0 and 8 will be used as a multiplier with the font size. - - Values greater than or equal to 8 will be used as effective values.`)},0,150)}compute(e,t,i){return e.fontInfo.lineHeight}},XZ=class extends Mn{constructor(){let e={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",autohide:"none",renderCharacters:!0,maxColumn:120,scale:1,showRegionSectionHeaders:!0,showMarkSectionHeaders:!0,markSectionHeaderRegex:"\\bMARK:\\s*(?-?)\\s*(?