lean4monaco 1.0.9 → 1.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,8 +1,15 @@
1
1
  # Lean 4 Monaco
2
2
 
3
+ Provides browser support for running Lean in a Monaco editor.
4
+
5
+ This package uses the [VSCode extension
6
+ "Lean 4"](https://marketplace.visualstudio.com/items?itemName=leanprover.lean4) and the
7
+ [Lean Infoview](https://www.npmjs.com/package/@leanprover/infoview).
8
+
3
9
  ## Usage
4
10
 
5
11
  Install this package in your npm project.
12
+
6
13
  ```
7
14
  npm install lean4monaco
8
15
  ```
@@ -40,8 +47,10 @@ For some reason, the file (here `test.lean`) cannot be at the root of the file s
40
47
  The package uses the Lean 4 VSCode extension, which is intended to run in a nodejs runtime. Therefore, we need to install node polyfills.
41
48
  Here is how this can be done if your project uses Vite:
42
49
  ```
43
- npm install vite-plugin-node-polyfills memfs
50
+ npm install vite-plugin-node-polyfills@0.17.0 --save-exact
51
+ npm install memfs
44
52
  ```
53
+ (We use version 0.17.0 due to this bug: https://github.com/davidmyersdev/vite-plugin-node-polyfills/issues/81)
45
54
 
46
55
  ```ts
47
56
  // vite.config.ts
@@ -60,7 +69,7 @@ export default {
60
69
 
61
70
  For Vite dev mode to work properly, the following plugin is necessary:
62
71
  ```
63
- npm install 'https://gitpkg.vercel.app/abentkamp/monacotest2/esbuild-import-meta-url-plugin?ec9666e' --save-dev
72
+ npm install 'https://gitpkg.vercel.app/hhu-adam/lean4monaco/esbuild-import-meta-url-plugin?ec9666e' --save-dev
64
73
  ```
65
74
  This could be replaced by `@codingame/esbuild-import-meta-url-plugin` when this PR is accepted: https://github.com/CodinGame/esbuild-import-meta-url-plugin/pull/5
66
75
 
@@ -90,7 +99,10 @@ export default {
90
99
  viteStaticCopy({
91
100
  targets: [
92
101
  {
93
- src: normalizePath(path.resolve(__dirname, './node_modules/@leanprover/infoview/dist/*.production.min.js')),
102
+ src: [
103
+ normalizePath(path.resolve(__dirname, './node_modules/@leanprover/infoview/dist/*')),
104
+ normalizePath(path.resolve(__dirname, './node_modules/lean4monaco/webview/webview.js')),
105
+ ],
94
106
  dest: 'infoview'
95
107
  }
96
108
  ]
@@ -105,4 +117,4 @@ export default {
105
117
  The error I typically got is:
106
118
  ```
107
119
  this._configurationService.onDidChangeConfiguration is not a function
108
- ```
120
+ ```
@@ -2,6 +2,7 @@ import { EditorApi, InfoviewApi } from "@leanprover/infoview-api";
2
2
  import { InfoWebviewFactory, InfoWebview } from "./vscode-lean4/vscode-lean4/src/infoview";
3
3
  import { Rpc } from "./vscode-lean4/vscode-lean4/src/rpc";
4
4
  import { ViewColumn } from "vscode";
5
+ import { IConfigurationService, IThemeService } from "vscode/services";
5
6
  export declare class IFrameInfoWebview implements InfoWebview {
6
7
  private iframe;
7
8
  rpc: Rpc;
@@ -14,8 +15,15 @@ export declare class IFrameInfoWebview implements InfoWebview {
14
15
  reveal(viewColumn?: ViewColumn, preserveFocus?: boolean): void;
15
16
  }
16
17
  export declare class IFrameInfoWebviewFactory implements InfoWebviewFactory {
18
+ private themeService;
19
+ private configurationService;
20
+ private fontFile;
17
21
  private infoviewElement;
22
+ private iframe;
23
+ constructor(themeService: IThemeService, configurationService: IConfigurationService, fontFile: FontFace);
18
24
  setInfoviewElement(infoviewElement: HTMLElement): void;
19
25
  make(editorApi: EditorApi, stylesheet: string, column: number): IFrameInfoWebview;
26
+ private updateCssVars;
27
+ private apiThemeClassName;
20
28
  private initialHtml;
21
29
  }
@@ -1,5 +1,8 @@
1
1
  import { Rpc } from "./vscode-lean4/vscode-lean4/src/rpc";
2
2
  import { EventEmitter } from "vscode";
3
+ import * as colorUtils from 'vscode/vscode/vs/platform/theme/common/colorUtils';
4
+ import { ColorScheme } from 'vscode/vscode/vs/platform/theme/common/theme';
5
+ import * as editorOptions from 'vscode/vscode/vs/editor/common/config/editorOptions';
3
6
  export class IFrameInfoWebview {
4
7
  iframe;
5
8
  rpc;
@@ -20,16 +23,27 @@ export class IFrameInfoWebview {
20
23
  }
21
24
  }
22
25
  export class IFrameInfoWebviewFactory {
26
+ themeService;
27
+ configurationService;
28
+ fontFile;
23
29
  infoviewElement;
30
+ iframe;
31
+ constructor(themeService, configurationService, fontFile) {
32
+ this.themeService = themeService;
33
+ this.configurationService = configurationService;
34
+ this.fontFile = fontFile;
35
+ }
24
36
  setInfoviewElement(infoviewElement) {
25
37
  this.infoviewElement = infoviewElement;
26
38
  }
27
39
  make(editorApi, stylesheet, column) {
28
- const iframe = document.createElement("iframe");
29
- this.infoviewElement.append(iframe);
30
- iframe.contentWindow.document.open();
31
- iframe.contentWindow.document.write(this.initialHtml(stylesheet));
32
- iframe.contentWindow.document.close();
40
+ this.iframe = document.createElement("iframe");
41
+ this.infoviewElement.append(this.iframe);
42
+ this.iframe.contentWindow.document.open();
43
+ this.iframe.contentWindow.document.write(this.initialHtml(stylesheet));
44
+ this.iframe.contentWindow.document.close();
45
+ this.updateCssVars();
46
+ this.themeService.onDidColorThemeChange(() => { this.updateCssVars(); });
33
47
  // Note that an extension can send data to its webviews using webview.postMessage().
34
48
  // This method sends any JSON serializable data to the webview. The message is received
35
49
  // inside the webview through the standard message event.
@@ -38,7 +52,7 @@ export class IFrameInfoWebviewFactory {
38
52
  const rpc = new Rpc(m => {
39
53
  try {
40
54
  // JSON.stringify is needed here to serialize getters such as `Position.line` and `Position.character`
41
- void iframe.contentWindow.postMessage(JSON.stringify(m));
55
+ void this.iframe.contentWindow.postMessage(JSON.stringify(m));
42
56
  }
43
57
  catch (e) {
44
58
  // ignore any disposed object exceptions
@@ -47,7 +61,7 @@ export class IFrameInfoWebviewFactory {
47
61
  rpc.register(editorApi);
48
62
  // Similarly, we can received data from the webview by listening to onDidReceiveMessage.
49
63
  document.defaultView.addEventListener('message', m => {
50
- if (m.source != iframe.contentWindow) {
64
+ if (m.source != this.iframe.contentWindow) {
51
65
  return;
52
66
  }
53
67
  try {
@@ -57,7 +71,50 @@ export class IFrameInfoWebviewFactory {
57
71
  // ignore any disposed object exceptions
58
72
  }
59
73
  });
60
- return new IFrameInfoWebview(iframe, rpc);
74
+ return new IFrameInfoWebview(this.iframe, rpc);
75
+ }
76
+ updateCssVars() {
77
+ const theme = this.themeService.getColorTheme();
78
+ const documentStyle = this.iframe.contentDocument?.documentElement.style;
79
+ const colors = colorUtils.getColorRegistry().getColors();
80
+ const exportedColors = colors.reduce((colors, entry) => {
81
+ const color = theme.getColor(entry.id);
82
+ if (color) {
83
+ colors['vscode-' + entry.id.replace('.', '-')] = color.toString();
84
+ }
85
+ return colors;
86
+ }, {});
87
+ const EDITOR_FONT_DEFAULTS = editorOptions.EDITOR_FONT_DEFAULTS;
88
+ const configuration = this.configurationService.getValue('editor');
89
+ const editorFontFamily = configuration.fontFamily || EDITOR_FONT_DEFAULTS.fontFamily;
90
+ const editorFontWeight = configuration.fontWeight || EDITOR_FONT_DEFAULTS.fontWeight;
91
+ const editorFontSize = configuration.fontSize || EDITOR_FONT_DEFAULTS.fontSize;
92
+ const linkUnderlines = this.configurationService.getValue('accessibility.underlineLinks');
93
+ const styles = {
94
+ 'vscode-font-family': '\'Droid Sans Mono\', Consolas, Menlo, Monaco, \'Courier New\', monospace',
95
+ 'vscode-font-weight': 'normal',
96
+ 'vscode-font-size': '13px',
97
+ 'vscode-editor-font-family': editorFontFamily,
98
+ 'vscode-editor-font-weight': editorFontWeight,
99
+ 'vscode-editor-font-size': editorFontSize + 'px',
100
+ 'text-link-decoration': linkUnderlines ? 'underline' : 'none',
101
+ ...exportedColors
102
+ };
103
+ console.log(styles);
104
+ for (const id in styles) {
105
+ documentStyle?.setProperty(`--${id}`, styles[id]);
106
+ }
107
+ documentStyle?.setProperty('font-family', '-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif');
108
+ this.iframe.contentDocument?.documentElement.setAttribute('class', `${this.apiThemeClassName(theme)}`);
109
+ this.iframe.contentDocument?.fonts.add(this.fontFile);
110
+ }
111
+ apiThemeClassName(theme) {
112
+ switch (theme.type) {
113
+ case ColorScheme.LIGHT: return 'vscode-light';
114
+ case ColorScheme.DARK: return 'vscode-dark';
115
+ case ColorScheme.HIGH_CONTRAST_DARK: return 'vscode-high-contrast';
116
+ case ColorScheme.HIGH_CONTRAST_LIGHT: return 'vscode-high-contrast-light';
117
+ }
61
118
  }
62
119
  initialHtml(stylesheet) {
63
120
  return `
@@ -68,12 +125,17 @@ export class IFrameInfoWebviewFactory {
68
125
  <meta http-equiv="Content-type" content="text/html;charset=utf-8">
69
126
  <title>Infoview</title>
70
127
  <style>${stylesheet}</style>
71
- <link rel="stylesheet" href="${new URL('./vscode.css', import.meta.url)}">
72
- <link rel="stylesheet" href="${new URL('./vscode-lean4/lean4-infoview/src/infoview/index.css', import.meta.url)}">
128
+ <style>
129
+ body {
130
+ background-color: var(--vscode-editor-background);
131
+ color: var(--vscode-editor-foreground);
132
+ }
133
+ </style>
134
+ <link rel="stylesheet" href="${new URL('../node_modules/@leanprover/infoview/dist/index.css', import.meta.url)}">
73
135
  </head>
74
136
  <body>
75
137
  <div id="react_root"></div>
76
- <script type="module" src="${new URL('./webview.js', import.meta.url)}"></script>
138
+ <script type="module" src="/infoview/webview.js"></script>
77
139
  </body>
78
140
  </html>`;
79
141
  }
@@ -16,7 +16,7 @@ export type LeanMonacoOptions = {
16
16
  };
17
17
  };
18
18
  export declare class LeanMonaco {
19
- ready: (value: void | PromiseLike<void>) => void;
19
+ private ready;
20
20
  whenReady: Promise<void>;
21
21
  static activeInstance: LeanMonaco | null;
22
22
  registerFileUrlResults: DisposableStore;
@@ -26,11 +26,15 @@ export declare class LeanMonaco {
26
26
  iframeWebviewFactory: IFrameInfoWebviewFactory | undefined;
27
27
  abbreviationFeature: AbbreviationFeature | undefined;
28
28
  taskGutter: LeanTaskGutter | undefined;
29
+ infoviewEl: HTMLElement | undefined;
29
30
  disposed: boolean;
30
31
  start(options: LeanMonacoOptions): Promise<void>;
32
+ updateVSCodeOptions(vsCodeOptions: {
33
+ [id: string]: any;
34
+ }): void;
31
35
  setInfoviewElement(infoviewEl: HTMLElement): void;
32
36
  protected getExtensionFiles(): Map<string, URL>;
33
- protected getExtensionManifest(options: LeanMonacoOptions): IExtensionManifest;
37
+ protected getExtensionManifest(): IExtensionManifest;
34
38
  protected getWebSocketOptions(options: LeanMonacoOptions): WebSocketConfigOptionsUrl;
35
39
  dispose(): void;
36
40
  }
@@ -1,13 +1,13 @@
1
1
  import 'vscode/localExtensionHost';
2
2
  import { LeanClientProvider } from './vscode-lean4/vscode-lean4/src/utils/clientProvider';
3
- import { Uri } from 'vscode';
3
+ import { Uri, workspace } from 'vscode';
4
4
  import { InfoProvider } from './vscode-lean4/vscode-lean4/src/infoview';
5
5
  import { AbbreviationFeature } from './vscode-lean4/vscode-lean4/src/abbreviation/AbbreviationFeature';
6
6
  import { LeanTaskGutter } from './vscode-lean4/vscode-lean4/src/taskgutter';
7
7
  import { IFrameInfoWebviewFactory } from './infowebview';
8
8
  import { setupMonacoClient } from './monacoleanclient';
9
9
  import { checkLean4ProjectPreconditions } from './preconditions';
10
- import { initialize } from 'vscode/services';
10
+ import { initialize, getService, IThemeService, IConfigurationService } from 'vscode/services';
11
11
  import getConfigurationServiceOverride from '@codingame/monaco-vscode-configuration-service-override';
12
12
  import getTextmateServiceOverride from '@codingame/monaco-vscode-textmate-service-override';
13
13
  import getThemeServiceOverride from '@codingame/monaco-vscode-theme-service-override';
@@ -29,6 +29,7 @@ export class LeanMonaco {
29
29
  iframeWebviewFactory;
30
30
  abbreviationFeature;
31
31
  taskGutter;
32
+ infoviewEl;
32
33
  disposed = false;
33
34
  async start(options) {
34
35
  if (LeanMonaco.activeInstance == this) {
@@ -75,7 +76,7 @@ export class LeanMonaco {
75
76
  await (await import('@codingame/monaco-vscode-theme-defaults-default-extension')).whenReady;
76
77
  if (this.disposed)
77
78
  return;
78
- this.extensionRegisterResult = registerExtension(this.getExtensionManifest(options), 1 /* ExtensionHostKind.LocalProcess */);
79
+ this.extensionRegisterResult = registerExtension(this.getExtensionManifest(), 1 /* ExtensionHostKind.LocalProcess */);
79
80
  for (const entry of this.getExtensionFiles()) {
80
81
  const registerFileUrlResult = this.extensionRegisterResult.registerFileUrl(entry[0], entry[1].href);
81
82
  this.registerFileUrlResults.add(registerFileUrlResult);
@@ -83,6 +84,11 @@ export class LeanMonaco {
83
84
  await this.extensionRegisterResult.whenReady();
84
85
  if (this.disposed)
85
86
  return;
87
+ const themeService = await getService(IThemeService);
88
+ const configurationService = await getService(IConfigurationService);
89
+ if (this.disposed)
90
+ return;
91
+ this.updateVSCodeOptions(options.vscode ?? {});
86
92
  this.abbreviationFeature = new AbbreviationFeature({}, { kind: 'MoveAllSelections' });
87
93
  this.clientProvider = new LeanClientProvider({
88
94
  installChanged: () => { return { dispose: () => { } }; },
@@ -91,20 +97,27 @@ export class LeanMonaco {
91
97
  }, { appendLine: () => { }
92
98
  }, setupMonacoClient(this.getWebSocketOptions(options)), checkLean4ProjectPreconditions);
93
99
  this.taskGutter = new LeanTaskGutter(this.clientProvider, { asAbsolutePath: (path) => Uri.parse(`${new URL('vscode-lean4/vscode-lean4/' + path, import.meta.url)}`), });
94
- if (!this.iframeWebviewFactory)
95
- this.iframeWebviewFactory = new IFrameInfoWebviewFactory();
96
- this.infoProvider = new InfoProvider(this.clientProvider, { language: 'lean4' }, {}, this.iframeWebviewFactory);
97
100
  const fontFile = new FontFace("JuliaMono", `url(${new URL("./JuliaMono-Regular.ttf", import.meta.url)})`);
98
101
  document.fonts.add(fontFile);
102
+ this.iframeWebviewFactory = new IFrameInfoWebviewFactory(themeService, configurationService, fontFile);
103
+ if (this.infoviewEl)
104
+ this.iframeWebviewFactory.setInfoviewElement(this.infoviewEl);
105
+ this.infoProvider = new InfoProvider(this.clientProvider, { language: 'lean4' }, {}, this.iframeWebviewFactory);
99
106
  await fontFile.load();
107
+ this.updateVSCodeOptions(options.vscode ?? {});
100
108
  if (this.disposed)
101
109
  return;
102
110
  this.ready();
103
111
  }
112
+ updateVSCodeOptions(vsCodeOptions) {
113
+ for (const key in vsCodeOptions) {
114
+ workspace.getConfiguration().update(key, vsCodeOptions[key]);
115
+ }
116
+ }
104
117
  setInfoviewElement(infoviewEl) {
105
- if (!this.iframeWebviewFactory)
106
- this.iframeWebviewFactory = new IFrameInfoWebviewFactory();
107
- this.iframeWebviewFactory.setInfoviewElement(infoviewEl);
118
+ if (this.iframeWebviewFactory)
119
+ this.iframeWebviewFactory.setInfoviewElement(infoviewEl);
120
+ this.infoviewEl = infoviewEl;
108
121
  }
109
122
  getExtensionFiles() {
110
123
  const extensionFiles = new Map();
@@ -115,12 +128,7 @@ export class LeanMonaco {
115
128
  extensionFiles.set('/themes/cobalt2.json', new URL('./themes/cobalt2.json', import.meta.url));
116
129
  return extensionFiles;
117
130
  }
118
- getExtensionManifest(options) {
119
- for (let o in options.vscode) {
120
- if (packageJson.contributes.configuration.properties[o]) {
121
- packageJson.contributes.configuration.properties[o].default = options.vscode[o];
122
- }
123
- }
131
+ getExtensionManifest() {
124
132
  return {
125
133
  name: 'lean4web',
126
134
  publisher: 'leanprover-community',
@@ -147,6 +155,7 @@ export class LeanMonaco {
147
155
  "configuration": "./language-configuration.json"
148
156
  }
149
157
  ],
158
+ colors: packageJson.contributes.colors,
150
159
  "grammars": [
151
160
  {
152
161
  "language": "lean4",
@@ -171,26 +180,22 @@ export class LeanMonaco {
171
180
  }
172
181
  ],
173
182
  "configurationDefaults": {
174
- "[lean4]": {
175
- "editor.folding": false,
176
- "editor.wordSeparators": "`~@$%^&*()-=+[{]}⟨⟩⦃⦄⟦⟧⟮⟯‹›\\|;:\",.<>/",
177
- "editor.lineNumbers": 'on',
178
- "editor.lineNumbersMinChars": 1,
179
- "editor.glyphMargin": true,
180
- "editor.lineDecorationsWidth": 5,
181
- "editor.tabSize": 2,
182
- "editor.detectIndentation": false,
183
- "editor.lightbulb.enabled": "on",
184
- "editor.unicodeHighlight.ambiguousCharacters": false,
185
- "editor.minimap.enabled": false,
186
- "editor.semanticHighlighting.enabled": true,
187
- "editor.wordWrap": "off",
188
- "editor.acceptSuggestionOnEnter": "off",
189
- "editor.fontFamily": "JuliaMono",
190
- "editor.wrappingStrategy": "advanced",
191
- "editor.theme": "Visual Studio Light", //"Cobalt" // "Visual Studio Light" //"Visual Studio Dark" //"Default Light Modern" //"Default Light+" //"Default Dark+" //"Default High Contrast"
192
- ...options.vscode
193
- }
183
+ "editor.folding": false,
184
+ "editor.wordSeparators": "`~@$%^&*()-=+[{]}⟨⟩⦃⦄⟦⟧⟮⟯‹›\\|;:\",.<>/",
185
+ "editor.lineNumbers": 'on',
186
+ "editor.lineNumbersMinChars": 1,
187
+ "editor.glyphMargin": true,
188
+ "editor.lineDecorationsWidth": 5,
189
+ "editor.tabSize": 2,
190
+ "editor.detectIndentation": false,
191
+ "editor.lightbulb.enabled": "on",
192
+ "editor.unicodeHighlight.ambiguousCharacters": false,
193
+ "editor.minimap.enabled": false,
194
+ "editor.semanticHighlighting.enabled": true,
195
+ "editor.wordWrap": "off",
196
+ "editor.acceptSuggestionOnEnter": "off",
197
+ "editor.fontFamily": "JuliaMono",
198
+ "editor.wrappingStrategy": "advanced",
194
199
  },
195
200
  "themes": [
196
201
  {
@@ -393,6 +393,7 @@ export class InfoProvider {
393
393
  // active client is changing.
394
394
  this.clearNotificationHandlers();
395
395
  this.clearRpcSessions(null);
396
+ this.webviewPanel?.dispose();
396
397
  for (const s of this.clientSubscriptions) {
397
398
  s.dispose();
398
399
  }
package/dist/vscode.css CHANGED
@@ -1,408 +1,7 @@
1
- /* From https://www.eliostruyf.com/code-driven-approach-theme-vscode-webview/, adapted */
2
-
3
1
  :root {
4
2
  --vscode-font-weight:normal;
5
3
  --vscode-font-size:13px;
6
4
  --vscode-editor-font-family: 'JuliaMono', 'Source Code Pro', 'STIX Two Math', monospace;
7
5
  --vscode-editor-font-weight:normal;
8
6
  --vscode-editor-font-size:15px;
9
- --vscode-foreground: #616161;
10
- --vscode-errorForeground: #a1260d;
11
- --vscode-descriptionForeground: #717171;
12
- --vscode-icon-foreground: #424242;
13
- --vscode-focusBorder: #0090f1;
14
- --vscode-textSeparator-foreground: rgba(0, 0, 0, 0.18);
15
- --vscode-textLink-foreground: #006ab1;
16
- --vscode-textLink-activeForeground: #006ab1;
17
- --vscode-textPreformat-foreground: #a31515;
18
- --vscode-textBlockQuote-background: rgba(127, 127, 127, 0.1);
19
- --vscode-textBlockQuote-border: rgba(0, 122, 204, 0.5);
20
- --vscode-textCodeBlock-background: rgba(220, 220, 220, 0.4);
21
- --vscode-widget-shadow: #a8a8a8;
22
- --vscode-input-background: #ffffff;
23
- --vscode-input-foreground: #616161;
24
- --vscode-inputOption-activeBorder: rgba(0, 122, 204, 0);
25
- --vscode-inputOption-activeBackground: rgba(0, 144, 241, 0.2);
26
- --vscode-inputOption-activeForeground: #000000;
27
- --vscode-input-placeholderForeground: #767676;
28
- --vscode-inputValidation-infoBackground: #d6ecf2;
29
- --vscode-inputValidation-infoBorder: #007acc;
30
- --vscode-inputValidation-warningBackground: #f6f5d2;
31
- --vscode-inputValidation-warningBorder:
32
- --vscode-inputValidation-errorBackground: #f2dede;
33
- --vscode-inputValidation-errorBorder: #be1100;
34
- --vscode-dropdown-background: #ffffff;
35
- --vscode-dropdown-foreground:
36
- --vscode-dropdown-border: #cecece;
37
- --vscode-checkbox-background: #ffffff;
38
- --vscode-checkbox-border: #cecece;
39
- /* --vscode-checkbox-foreground: */
40
- --vscode-button-foreground: #ffffff;
41
- --vscode-button-background: #007acc;
42
- --vscode-button-hoverBackground: #0062a3;
43
- --vscode-button-secondaryForeground: #ffffff;
44
- --vscode-button-secondaryBackground: #5f6a79;
45
- --vscode-button-secondaryHoverBackground: #4c5561;
46
- --vscode-badge-background: #c4c4c4;
47
- --vscode-badge-foreground: #333333;
48
- --vscode-scrollbar-shadow: #dddddd;
49
- --vscode-scrollbarSlider-background: rgba(100, 100, 100, 0.4);
50
- --vscode-scrollbarSlider-hoverBackground: rgba(100, 100, 100, 0.7);
51
- --vscode-scrollbarSlider-activeBackground: rgba(0, 0, 0, 0.6);
52
- --vscode-progressBar-background: #0e70c0;
53
- --vscode-editorError-foreground: #e51400;
54
- --vscode-editorWarning-foreground: #e9a700;
55
- --vscode-editorInfo-foreground: #75beff;
56
- --vscode-editorHint-foreground: #6c6c6c;
57
- --vscode-editor-background: #ffffff;
58
- --vscode-editor-foreground: #000000;
59
- --vscode-editorWidget-background: #f3f3f3;
60
- --vscode-editorWidget-foreground: #616161;
61
- --vscode-editorWidget-border: #c8c8c8;
62
- --vscode-quickInput-background: #f3f3f3;
63
- --vscode-quickInput-foreground: #616161;
64
- --vscode-quickInputTitle-background: rgba(0, 0, 0, 0.06);
65
- --vscode-pickerGroup-foreground: #0066bf;
66
- --vscode-pickerGroup-border: #cccedb;
67
- --vscode-editor-selectionBackground: #add6ff;
68
- --vscode-editor-inactiveSelectionBackground: #e5ebf1;
69
- --vscode-editor-selectionHighlightBackground: rgba(173, 214, 255, 0.5);
70
- --vscode-editor-findMatchBackground: #a8ac94;
71
- --vscode-editor-findMatchHighlightBackground: rgba(234, 92, 0, 0.33);
72
- --vscode-editor-findRangeHighlightBackground: rgba(180, 180, 180, 0.3);
73
- --vscode-searchEditor-findMatchBackground: rgba(234, 92, 0, 0.22);
74
- --vscode-editor-hoverHighlightBackground: rgba(173, 214, 255, 0.15);
75
- --vscode-editorHoverWidget-background: #f3f3f3;
76
- --vscode-editorHoverWidget-foreground: #616161;
77
- --vscode-editorHoverWidget-border: #c8c8c8;
78
- --vscode-editorHoverWidget-statusBarBackground: #e7e7e7;
79
- --vscode-editorLink-activeForeground: #0000ff;
80
- --vscode-editorLightBulb-foreground: #ddb100;
81
- --vscode-editorLightBulbAutoFix-foreground: #007acc;
82
- --vscode-diffEditor-insertedTextBackground: rgba(155, 185, 85, 0.2);
83
- --vscode-diffEditor-removedTextBackground: rgba(255, 0, 0, 0.2);
84
- --vscode-diffEditor-diagonalFill: rgba(34, 34, 34, 0.2);
85
- --vscode-list-focusBackground: (NO LONGER AVAILABLE)
86
- --vscode-list-activeSelectionBackground: #0074e8;
87
- --vscode-list-activeSelectionForeground: #ffffff;
88
- --vscode-list-inactiveSelectionBackground: #e4e6f1;
89
- --vscode-list-hoverBackground: #e8e8e8;
90
- --vscode-list-dropBackground: #d6ebff;
91
- --vscode-list-highlightForeground: #0066bf;
92
- --vscode-list-invalidItemForeground: #b89500;
93
- --vscode-list-errorForeground: #b01011;
94
- --vscode-list-warningForeground: #855f00;
95
- --vscode-listFilterWidget-background: #efc1ad;
96
- --vscode-listFilterWidget-outline: rgba(0, 0, 0, 0);
97
- --vscode-listFilterWidget-noMatchesOutline: #be1100;
98
- --vscode-list-filterMatchBackground: rgba(234, 92, 0, 0.33);
99
- --vscode-tree-indentGuidesStroke: #a9a9a9;
100
- --vscode-list-deemphasizedForeground: #8e8e90;
101
- --vscode-menu-foreground: #616161;
102
- --vscode-menu-background: #ffffff;
103
- --vscode-menu-selectionForeground: #ffffff;
104
- --vscode-menu-selectionBackground: #0074e8;
105
- --vscode-menu-separatorBackground: #888888;
106
- --vscode-editor-snippetTabstopHighlightBackground: rgba(10, 50, 100, 0.2);
107
- --vscode-editor-snippetFinalTabstopHighlightBorder: rgba(10, 50, 100, 0.5);
108
- --vscode-breadcrumb-foreground: rgba(97, 97, 97, 0.8);
109
- --vscode-breadcrumb-background: #ffffff;
110
- --vscode-breadcrumb-focusForeground: #4e4e4e;
111
- --vscode-breadcrumb-activeSelectionForeground: #4e4e4e;
112
- --vscode-breadcrumbPicker-background: #f3f3f3;
113
- --vscode-merge-currentHeaderBackground: rgba(64, 200, 174, 0.5);
114
- --vscode-merge-currentContentBackground: rgba(64, 200, 174, 0.2);
115
- --vscode-merge-incomingHeaderBackground: rgba(64, 166, 255, 0.5);
116
- --vscode-merge-incomingContentBackground: rgba(64, 166, 255, 0.2);
117
- --vscode-merge-commonHeaderBackground: rgba(96, 96, 96, 0.4);
118
- --vscode-merge-commonContentBackground: rgba(96, 96, 96, 0.16);
119
- --vscode-editorOverviewRuler-currentContentForeground: rgba(64, 200, 174, 0.5);
120
- --vscode-editorOverviewRuler-incomingContentForeground: rgba(64, 166, 255, 0.5);
121
- --vscode-editorOverviewRuler-commonContentForeground: rgba(96, 96, 96, 0.4);
122
- --vscode-editorOverviewRuler-findMatchForeground: rgba(209, 134, 22, 0.49);
123
- --vscode-editorOverviewRuler-selectionHighlightForeground: rgba(160, 160, 160, 0.8);
124
- --vscode-minimap-findMatchHighlight: #d18616;
125
- --vscode-minimap-selectionHighlight: #add6ff;
126
- --vscode-minimap-errorHighlight: rgba(255, 18, 18, 0.7);
127
- --vscode-minimap-warningHighlight: #e9a700;
128
- --vscode-minimapSlider-background: rgba(100, 100, 100, 0.2);
129
- --vscode-minimapSlider-hoverBackground: rgba(100, 100, 100, 0.35);
130
- --vscode-minimapSlider-activeBackground: rgba(0, 0, 0, 0.3);
131
- --vscode-problemsErrorIcon-foreground: #e51400;
132
- --vscode-problemsWarningIcon-foreground: #e9a700;
133
- --vscode-problemsInfoIcon-foreground: #75beff;
134
- --vscode-charts-foreground: #616161;
135
- --vscode-charts-lines: rgba(97, 97, 97, 0.5);
136
- --vscode-charts-red: #e51400;
137
- --vscode-charts-blue: #75beff;
138
- --vscode-charts-yellow: #e9a700;
139
- --vscode-charts-orange: #d18616;
140
- --vscode-charts-green: #388a34;
141
- --vscode-charts-purple: #652d90;
142
- --vscode-editor-lineHighlightBorder: #eeeeee;
143
- --vscode-editor-rangeHighlightBackground: rgba(253, 255, 0, 0.2);
144
- --vscode-editor-symbolHighlightBackground: rgba(234, 92, 0, 0.33);
145
- --vscode-editorCursor-foreground: #000000;
146
- --vscode-editorWhitespace-foreground: rgba(51, 51, 51, 0.2);
147
- --vscode-editorIndentGuide-background: #d3d3d3;
148
- --vscode-editorIndentGuide-activeBackground: #939393;
149
- --vscode-editorLineNumber-foreground: #237893;
150
- --vscode-editorActiveLineNumber-foreground: #0b216f;
151
- --vscode-editorLineNumber-activeForeground: #0b216f;
152
- --vscode-editorRuler-foreground: #d3d3d3;
153
- --vscode-editorCodeLens-foreground: #999999;
154
- --vscode-editorBracketMatch-background: rgba(0, 100, 0, 0.1);
155
- --vscode-editorBracketMatch-border: #b9b9b9;
156
- --vscode-editorOverviewRuler-border: rgba(127, 127, 127, 0.3);
157
- --vscode-editorGutter-background: #ffffff;
158
- --vscode-editorUnnecessaryCode-opacity: rgba(0, 0, 0, 0.47);
159
- --vscode-editorOverviewRuler-rangeHighlightForeground: rgba(0, 122, 204, 0.6);
160
- --vscode-editorOverviewRuler-errorForeground: rgba(255, 18, 18, 0.7);
161
- --vscode-editorOverviewRuler-warningForeground: #e9a700;
162
- --vscode-editorOverviewRuler-infoForeground: #75beff;
163
- --vscode-editorOverviewRuler-bracketMatchForeground: #a0a0a0;
164
- --vscode-symbolIcon-arrayForeground: #616161;
165
- --vscode-symbolIcon-booleanForeground: #616161;
166
- --vscode-symbolIcon-classForeground: #d67e00;
167
- --vscode-symbolIcon-colorForeground: #616161;
168
- --vscode-symbolIcon-constantForeground: #616161;
169
- --vscode-symbolIcon-constructorForeground: #652d90;
170
- --vscode-symbolIcon-enumeratorForeground: #d67e00;
171
- --vscode-symbolIcon-enumeratorMemberForeground: #007acc;
172
- --vscode-symbolIcon-eventForeground: #d67e00;
173
- --vscode-symbolIcon-fieldForeground: #007acc;
174
- --vscode-symbolIcon-fileForeground: #616161;
175
- --vscode-symbolIcon-folderForeground: #616161;
176
- --vscode-symbolIcon-functionForeground: #652d90;
177
- --vscode-symbolIcon-interfaceForeground: #007acc;
178
- --vscode-symbolIcon-keyForeground: #616161;
179
- --vscode-symbolIcon-keywordForeground: #616161;
180
- --vscode-symbolIcon-methodForeground: #652d90;
181
- --vscode-symbolIcon-moduleForeground: #616161;
182
- --vscode-symbolIcon-numberForeground: #616161;
183
- --vscode-symbolIcon-objectForeground: #616161;
184
- --vscode-symbolIcon-operatorForeground: #616161;
185
- --vscode-symbolIcon-packageForeground: #616161;
186
- --vscode-symbolIcon-propertyForeground: #616161;
187
- --vscode-symbolIcon-referenceForeground: #616161;
188
- --vscode-symbolIcon-snippetForeground: #616161;
189
- --vscode-symbolIcon-stringForeground: #616161;
190
- --vscode-symbolIcon-structForeground: #616161;
191
- --vscode-symbolIcon-textForeground: #616161;
192
- --vscode-symbolIcon-typeParameterForeground: #616161;
193
- --vscode-symbolIcon-unitForeground: #616161;
194
- --vscode-symbolIcon-variableForeground: #007acc;
195
- --vscode-editor-foldBackground: rgba(173, 214, 255, 0.3);
196
- --vscode-editorGutter-foldingControlForeground: #424242;
197
- --vscode-editor-onTypeRenameBackground: rgba(255, 0, 0, 0.3);
198
- --vscode-editor-wordHighlightBackground: rgba(87, 87, 87, 0.25);
199
- --vscode-editor-wordHighlightStrongBackground: rgba(14, 99, 156, 0.25);
200
- --vscode-editorOverviewRuler-wordHighlightForeground: rgba(160, 160, 160, 0.8);
201
- --vscode-editorOverviewRuler-wordHighlightStrongForeground: rgba(192, 160, 192, 0.8);
202
- --vscode-peekViewTitle-background: #ffffff;
203
- --vscode-peekViewTitleLabel-foreground: #333333;
204
- --vscode-peekViewTitleDescription-foreground: rgba(97, 97, 97, 0.9);
205
- --vscode-peekView-border: #007acc;
206
- --vscode-peekViewResult-background: #f3f3f3;
207
- --vscode-peekViewResult-lineForeground: #646465;
208
- --vscode-peekViewResult-fileForeground: #1e1e1e;
209
- --vscode-peekViewResult-selectionBackground: rgba(51, 153, 255, 0.2);
210
- --vscode-peekViewResult-selectionForeground: #6c6c6c;
211
- --vscode-peekViewEditor-background: #f2f8fc;
212
- --vscode-peekViewEditorGutter-background: #f2f8fc;
213
- --vscode-peekViewResult-matchHighlightBackground: rgba(234, 92, 0, 0.3);
214
- --vscode-peekViewEditor-matchHighlightBackground: rgba(245, 216, 2, 0.87);
215
- --vscode-editorSuggestWidget-background: #f3f3f3;
216
- --vscode-editorSuggestWidget-border: #c8c8c8;
217
- --vscode-editorSuggestWidget-foreground: #000000;
218
- --vscode-editorSuggestWidget-selectedBackground: #d6ebff;
219
- --vscode-editorSuggestWidget-highlightForeground: #0066bf;
220
- --vscode-editorMarkerNavigationError-background: #e51400;
221
- --vscode-editorMarkerNavigationWarning-background: #e9a700;
222
- --vscode-editorMarkerNavigationInfo-background: #75beff;
223
- --vscode-editorMarkerNavigation-background: #ffffff;
224
- --vscode-tab-activeBackground: #ffffff;
225
- --vscode-tab-unfocusedActiveBackground: #ffffff;
226
- --vscode-tab-inactiveBackground: #ececec;
227
- --vscode-tab-unfocusedInactiveBackground: #ececec;
228
- --vscode-tab-activeForeground: #333333;
229
- --vscode-tab-inactiveForeground: rgba(51, 51, 51, 0.7);
230
- --vscode-tab-unfocusedActiveForeground: rgba(51, 51, 51, 0.7);
231
- --vscode-tab-unfocusedInactiveForeground: rgba(51, 51, 51, 0.35);
232
- --vscode-tab-border: #f3f3f3;
233
- --vscode-tab-lastPinnedBorder: rgba(97, 97, 97, 0.19);
234
- --vscode-tab-activeModifiedBorder: #33aaee;
235
- --vscode-tab-inactiveModifiedBorder: rgba(51, 170, 238, 0.5);
236
- --vscode-tab-unfocusedActiveModifiedBorder: rgba(51, 170, 238, 0.7);
237
- --vscode-tab-unfocusedInactiveModifiedBorder: rgba(51, 170, 238, 0.25);
238
- --vscode-editorPane-background: #ffffff;
239
- --vscode-editorGroupHeader-tabsBackground: #f3f3f3;
240
- --vscode-editorGroupHeader-noTabsBackground: #ffffff;
241
- --vscode-editorGroup-border: #e7e7e7;
242
- --vscode-editorGroup-dropBackground: rgba(38, 119, 203, 0.18);
243
- --vscode-imagePreview-border: rgba(128, 128, 128, 0.35);
244
- --vscode-panel-background: #ffffff;
245
- --vscode-panel-border: rgba(128, 128, 128, 0.35);
246
- --vscode-panelTitle-activeForeground: #424242;
247
- --vscode-panelTitle-inactiveForeground: rgba(66, 66, 66, 0.75);
248
- --vscode-panelTitle-activeBorder: #424242;
249
- --vscode-panelInput-border: #dddddd;
250
- --vscode-panel-dropBorder: #424242;
251
- --vscode-panelSection-dropBackground: rgba(38, 119, 203, 0.18);
252
- --vscode-panelSectionHeader-background: rgba(128, 128, 128, 0.2);
253
- --vscode-panelSection-border: rgba(128, 128, 128, 0.35);
254
- --vscode-statusBar-foreground: #ffffff;
255
- --vscode-statusBar-noFolderForeground: #ffffff;
256
- --vscode-statusBar-background: #007acc;
257
- --vscode-statusBar-noFolderBackground: #68217a;
258
- --vscode-statusBarItem-activeBackground: rgba(255, 255, 255, 0.18);
259
- --vscode-statusBarItem-hoverBackground: rgba(255, 255, 255, 0.12);
260
- --vscode-statusBarItem-prominentForeground: #ffffff;
261
- --vscode-statusBarItem-prominentBackground: rgba(0, 0, 0, 0.5);
262
- --vscode-statusBarItem-prominentHoverBackground: rgba(0, 0, 0, 0.3);
263
- --vscode-activityBar-background: #2c2c2c;
264
- --vscode-activityBar-foreground: #ffffff;
265
- --vscode-activityBar-inactiveForeground: rgba(255, 255, 255, 0.4);
266
- --vscode-activityBar-activeBorder: #ffffff;
267
- --vscode-activityBar-dropBorder: #ffffff;
268
- --vscode-activityBarBadge-background: #007acc;
269
- --vscode-activityBarBadge-foreground: #ffffff;
270
- --vscode-statusBarItem-remoteBackground: #16825d;
271
- --vscode-statusBarItem-remoteForeground: #ffffff;
272
- --vscode-extensionBadge-remoteBackground: #007acc;
273
- --vscode-extensionBadge-remoteForeground: #ffffff;
274
- --vscode-sideBar-background: #f3f3f3;
275
- --vscode-sideBarTitle-foreground: #6f6f6f;
276
- --vscode-sideBar-dropBackground: rgba(38, 119, 203, 0.18);
277
- --vscode-sideBarSectionHeader-background: rgba(0, 0, 0, 0);
278
- --vscode-sideBarSectionHeader-border: rgba(97, 97, 97, 0.19);
279
- --vscode-titleBar-activeForeground: #333333;
280
- --vscode-titleBar-inactiveForeground: rgba(51, 51, 51, 0.6);
281
- --vscode-titleBar-activeBackground: #dddddd;
282
- --vscode-titleBar-inactiveBackground: rgba(221, 221, 221, 0.6);
283
- --vscode-menubar-selectionForeground: #333333;
284
- --vscode-menubar-selectionBackground: rgba(0, 0, 0, 0.1);
285
- --vscode-notifications-foreground: #616161;
286
- --vscode-notifications-background: #f3f3f3;
287
- --vscode-notificationLink-foreground: #006ab1;
288
- --vscode-notificationCenterHeader-background: #e7e7e7;
289
- --vscode-notifications-border: #e7e7e7;
290
- --vscode-notificationsErrorIcon-foreground: #e51400;
291
- --vscode-notificationsWarningIcon-foreground: #e9a700;
292
- --vscode-notificationsInfoIcon-foreground: #75beff;
293
- --vscode-editorGutter-commentRangeForeground: #c5c5c5;
294
- --vscode-terminal-foreground: #333333;
295
- --vscode-terminal-selectionBackground: rgba(0, 0, 0, 0.25);
296
- --vscode-terminal-border: rgba(128, 128, 128, 0.35);
297
- --vscode-statusBar-debuggingBackground: #cc6633;
298
- --vscode-statusBar-debuggingForeground: #ffffff;
299
- --vscode-settings-headerForeground: #444444;
300
- --vscode-settings-modifiedItemIndicator: #66afe0;
301
- --vscode-settings-dropdownBackground: #ffffff;
302
- --vscode-settings-dropdownForeground:
303
- --vscode-settings-dropdownBorder: #cecece;
304
- --vscode-settings-dropdownListBorder: #c8c8c8;
305
- --vscode-settings-checkboxBackground: #ffffff;
306
- --vscode-settings-checkboxForeground:
307
- --vscode-settings-checkboxBorder: #cecece;
308
- --vscode-settings-textInputBackground: #ffffff;
309
- --vscode-settings-textInputForeground: #616161;
310
- --vscode-settings-textInputBorder: #cecece;
311
- --vscode-settings-numberInputBackground: #ffffff;
312
- --vscode-settings-numberInputForeground: #616161;
313
- --vscode-settings-numberInputBorder: #cecece;
314
- --vscode-settings-focusedRowBackground: rgba(214, 235, 255, 0.4);
315
- --vscode-notebook-rowHoverBackground: rgba(214, 235, 255, 0.28);
316
- --vscode-notebook-focusedRowBorder: rgba(0, 0, 0, 0.12);
317
- --vscode-debugExceptionWidget-border: #a31515;
318
- --vscode-debugExceptionWidget-background: #f1dfde;
319
- --vscode-editorGutter-modifiedBackground: #66afe0;
320
- --vscode-editorGutter-addedBackground: #81b88b;
321
- --vscode-editorGutter-deletedBackground: #ca4b51;
322
- --vscode-minimapGutter-modifiedBackground: #66afe0;
323
- --vscode-minimapGutter-addedBackground: #81b88b;
324
- --vscode-minimapGutter-deletedBackground: #ca4b51;
325
- --vscode-editorOverviewRuler-modifiedForeground: rgba(102, 175, 224, 0.6);
326
- --vscode-editorOverviewRuler-addedForeground: rgba(129, 184, 139, 0.6);
327
- --vscode-editorOverviewRuler-deletedForeground: rgba(202, 75, 81, 0.6);
328
- --vscode-editor-stackFrameHighlightBackground: rgba(255, 255, 102, 0.45);
329
- --vscode-editor-focusedStackFrameHighlightBackground: rgba(206, 231, 206, 0.45);
330
- --vscode-searchEditor-textInputBorder: #cecece;
331
- --vscode-debugIcon-breakpointForeground: #e51400;
332
- --vscode-debugIcon-breakpointDisabledForeground: #848484;
333
- --vscode-debugIcon-breakpointUnverifiedForeground: #848484;
334
- --vscode-debugIcon-breakpointCurrentStackframeForeground: #ffcc00;
335
- --vscode-debugIcon-breakpointStackframeForeground: #89d185;
336
- --vscode-debugToolBar-background: #f3f3f3;
337
- --vscode-debugIcon-startForeground: #388a34;
338
- --vscode-debugIcon-pauseForeground: #007acc;
339
- --vscode-debugIcon-stopForeground: #a1260d;
340
- --vscode-debugIcon-disconnectForeground: #a1260d;
341
- --vscode-debugIcon-restartForeground: #388a34;
342
- --vscode-debugIcon-stepOverForeground: #007acc;
343
- --vscode-debugIcon-stepIntoForeground: #007acc;
344
- --vscode-debugIcon-stepOutForeground: #007acc;
345
- --vscode-debugIcon-continueForeground: #007acc;
346
- --vscode-debugIcon-stepBackForeground: #007acc;
347
- --vscode-debugTokenExpression-name: #9b46b0;
348
- --vscode-debugTokenExpression-value: rgba(108, 108, 108, 0.8);
349
- --vscode-debugTokenExpression-string: #a31515;
350
- --vscode-debugTokenExpression-boolean: #0000ff;
351
- --vscode-debugTokenExpression-number: #098658;
352
- --vscode-debugTokenExpression-error: #e51400;
353
- --vscode-debugView-exceptionLabelForeground: #ffffff;
354
- --vscode-debugView-exceptionLabelBackground: #a31515;
355
- --vscode-debugView-stateLabelForeground: #616161;
356
- --vscode-debugView-stateLabelBackground: rgba(136, 136, 136, 0.27);
357
- --vscode-debugView-valueChangedHighlight: #569cd6;
358
- --vscode-debugConsole-infoForeground: #75beff;
359
- --vscode-debugConsole-warningForeground: #e9a700;
360
- --vscode-debugConsole-errorForeground: #a1260d;
361
- --vscode-debugConsole-sourceForeground: #616161;
362
- --vscode-debugConsoleInputIcon-foreground: #616161;
363
- --vscode-extensionButton-prominentBackground: #327e36;
364
- --vscode-extensionButton-prominentForeground: #ffffff;
365
- --vscode-extensionButton-prominentHoverBackground: #28632b;
366
- --vscode-notebook-cellBorderColor: #dae3e9;
367
- --vscode-notebook-focusedEditorBorder: #0090f1;
368
- --vscode-notebookStatusSuccessIcon-foreground: #388a34;
369
- --vscode-notebookStatusErrorIcon-foreground: #a1260d;
370
- --vscode-notebookStatusRunningIcon-foreground: #616161;
371
- --vscode-notebook-outputContainerBackgroundColor: rgba(200, 221, 241, 0.31);
372
- --vscode-notebook-cellToolbarSeparator: rgba(128, 128, 128, 0.35);
373
- --vscode-notebook-focusedCellBackground: rgba(200, 221, 241, 0.31);
374
- --vscode-notebook-cellHoverBackground: rgba(200, 221, 241, 0.22);
375
- --vscode-notebook-focusedCellBorder: rgba(0, 0, 0, 0.12);
376
- --vscode-notebook-cellStatusBarItemHoverBackground: rgba(0, 0, 0, 0.08);
377
- --vscode-notebook-cellInsertionIndicator: #0090f1;
378
- --vscode-notebookScrollbarSlider-background: rgba(100, 100, 100, 0.4);
379
- --vscode-notebookScrollbarSlider-hoverBackground: rgba(100, 100, 100, 0.7);
380
- --vscode-notebookScrollbarSlider-activeBackground: rgba(0, 0, 0, 0.6);
381
- --vscode-notebook-symbolHighlightBackground: rgba(253, 255, 0, 0.2);
382
- --vscode-scm-providerBorder: #c8c8c8;
383
- --vscode-terminal-ansiBlack: #000000;
384
- --vscode-terminal-ansiRed: #cd3131;
385
- --vscode-terminal-ansiGreen: #00bc00;
386
- --vscode-terminal-ansiYellow: #949800;
387
- --vscode-terminal-ansiBlue: #0451a5;
388
- --vscode-terminal-ansiMagenta: #bc05bc;
389
- --vscode-terminal-ansiCyan: #0598bc;
390
- --vscode-terminal-ansiWhite: #555555;
391
- --vscode-terminal-ansiBrightBlack: #666666;
392
- --vscode-terminal-ansiBrightRed: #cd3131;
393
- --vscode-terminal-ansiBrightGreen: #14ce14;
394
- --vscode-terminal-ansiBrightYellow: #b5ba00;
395
- --vscode-terminal-ansiBrightBlue: #0451a5;
396
- --vscode-terminal-ansiBrightMagenta: #bc05bc;
397
- --vscode-terminal-ansiBrightCyan: #0598bc;
398
- --vscode-terminal-ansiBrightWhite: #a5a5a5;
399
- --vscode-gitDecoration-addedResourceForeground: #587c0c;
400
- --vscode-gitDecoration-modifiedResourceForeground: #895503;
401
- --vscode-gitDecoration-deletedResourceForeground: #ad0707;
402
- --vscode-gitDecoration-untrackedResourceForeground: #007100;
403
- --vscode-gitDecoration-ignoredResourceForeground: #8e8e90;
404
- --vscode-gitDecoration-stageModifiedResourceForeground: #895503;
405
- --vscode-gitDecoration-stageDeletedResourceForeground: #ad0707;
406
- --vscode-gitDecoration-conflictingResourceForeground: #6c6cc4;
407
- --vscode-gitDecoration-submoduleResourceForeground: #1258a7;
408
7
  }
@@ -0,0 +1 @@
1
+ (()=>{"use strict";window.esmsInitOptions={shimMode:!0};var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function t(e){if(void 0===e)return"error";if("object"!=typeof e||e instanceof Array)return e;{const t={};for(const r of Object.getOwnPropertyNames(e))t[r]=e[r];return t}}!function(){const t="undefined"!=typeof window,r="undefined"!=typeof document,i=()=>{},n=r?document.querySelector("script[type=esms-options]"):void 0,s=n?JSON.parse(n.innerHTML):{};Object.assign(s,self.esmsInitOptions||{});let a=!r||!!s.shimMode;const o=w(a&&s.onimport),c=w(a&&s.resolve);let l=s.fetch?w(s.fetch):fetch;const f=s.meta?w(a&&s.meta):i,u=s.mapOverrides;let d=s.nonce;if(!d&&r){const e=document.querySelector("script[nonce]");e&&(d=e.nonce||e.getAttribute("nonce"))}const p=w(s.onerror||i),h=s.onpolyfill?w(s.onpolyfill):()=>{console.log("%c^^ Module TypeError above is polyfilled and can be ignored ^^","font-weight:900;color:#391")},{revokeBlobURLs:m,noLoadEventRetriggers:b,enforceIntegrity:k}=s;function w(e){return"string"==typeof e?self[e]:e}const g=Array.isArray(s.polyfillEnable)?s.polyfillEnable:[],y=g.includes("css-modules"),v=g.includes("json-modules"),$=g.includes("wasm-modules"),x=!navigator.userAgentData&&!!navigator.userAgent.match(/Edge\/\d+\.\d+/),E=r?document.baseURI:`${location.protocol}//${location.host}${location.pathname.includes("/")?location.pathname.slice(0,location.pathname.lastIndexOf("/")+1):location.pathname}`,A=(e,t="text/javascript")=>URL.createObjectURL(new Blob([e],{type:t}));let{skip:S}=s;if(Array.isArray(S)){const e=S.map((e=>new URL(e,E).href));S=t=>e.some((e=>"/"===e[e.length-1]&&t.startsWith(e)||t===e))}else if("string"==typeof S){const e=new RegExp(S);S=t=>e.test(t)}else S instanceof RegExp&&(S=e=>S.test(e));const O=e=>setTimeout((()=>{throw e})),j=e=>{(self.reportError||t&&window.safari&&console.error||O)(e),p(e)};function L(e){return e?` imported from ${e}`:""}let C=!1;if(!a)if(document.querySelectorAll("script[type=module-shim],script[type=importmap-shim],link[rel=modulepreload-shim]").length)a=!0;else{let e=!1;for(const t of document.querySelectorAll("script[type=module],script[type=importmap]"))if(e){if("importmap"===t.type&&e){C=!0;break}}else"module"!==t.type||t.ep||(e=!0)}const I=/\\/g;function M(e){try{if(-1!==e.indexOf(":"))return new URL(e).href}catch(e){}}function U(e,t){return P(e,t)||M(e)||P("./"+e,t)}function P(e,t){const r=t.indexOf("#"),i=t.indexOf("?");if(r+i>-2&&(t=t.slice(0,-1===r?i:-1===i||i>r?r:i)),-1!==e.indexOf("\\")&&(e=e.replace(I,"/")),"/"===e[0]&&"/"===e[1])return t.slice(0,t.indexOf(":")+1)+e;if("."===e[0]&&("/"===e[1]||"."===e[1]&&("/"===e[2]||2===e.length&&(e+="/"))||1===e.length&&(e+="/"))||"/"===e[0]){const r=t.slice(0,t.indexOf(":")+1);if("blob:"===r)throw new TypeError(`Failed to resolve module specifier "${e}". Invalid relative url or base scheme isn't hierarchical.`);let i;if("/"===t[r.length+1]?"file:"!==r?(i=t.slice(r.length+2),i=i.slice(i.indexOf("/")+1)):i=t.slice(8):i=t.slice(r.length+("/"===t[r.length])),"/"===e[0])return t.slice(0,t.length-i.length-1)+e;const n=i.slice(0,i.lastIndexOf("/")+1)+e,s=[];let a=-1;for(let e=0;e<n.length;e++)if(-1===a){if("."===n[e]){if("."===n[e+1]&&("/"===n[e+2]||e+2===n.length)){s.pop(),e+=2;continue}if("/"===n[e+1]||e+1===n.length){e+=1;continue}}for(;"/"===n[e];)e++;a=e}else"/"===n[e]&&(s.push(n.slice(a,e+1)),a=-1);return-1!==a&&s.push(n.slice(a)),t.slice(0,t.length-i.length)+s.join("")}}function _(e,t,r){const i={imports:Object.assign({},r.imports),scopes:Object.assign({},r.scopes)};if(e.imports&&T(e.imports,i.imports,t,r),e.scopes)for(let n in e.scopes){const s=U(n,t);T(e.scopes[n],i.scopes[s]||(i.scopes[s]={}),t,r)}return i}function N(e,t){if(t[e])return e;let r=e.length;do{const i=e.slice(0,r+1);if(i in t)return i}while(-1!==(r=e.lastIndexOf("/",r-1)))}function R(e,t){const r=N(e,t);if(r){const i=t[r];if(null===i)return;return i+e.slice(r.length)}}function q(e,t,r){let i=r&&N(r,e.scopes);for(;i;){const r=R(t,e.scopes[i]);if(r)return r;i=N(i.slice(0,i.lastIndexOf("/")),e.scopes)}return R(t,e.imports)||-1!==t.indexOf(":")&&t}function T(e,t,r,i){for(let n in e){const s=P(n,r)||n;if((!a||!u)&&t[s]&&t[s]!==e[s])throw Error(`Rejected map override "${s}" from ${t[s]} to ${e[s]}.`);let o=e[n];if("string"!=typeof o)continue;const c=q(i,P(o,r)||o,r);c?t[s]=c:console.warn(`Mapping "${n}" -> "${e[n]}" does not resolve`)}}let H,z=!r&&(0,eval)("u=>import(u)");const J=r&&new Promise((e=>{const t=Object.assign(document.createElement("script"),{src:A("self._d=u=>import(u)"),ep:!0});t.setAttribute("nonce",d),t.addEventListener("load",(()=>{if(!(H=!!(z=self._d))){let e;window.addEventListener("error",(t=>e=t)),z=(t,r)=>new Promise(((i,n)=>{const s=Object.assign(document.createElement("script"),{type:"module",src:A(`import*as m from'${t}';self._esmsi=m`)});function a(a){document.head.removeChild(s),self._esmsi?(i(self._esmsi,E),self._esmsi=void 0):(n(!(a instanceof Event)&&a||e&&e.error||new Error(`Error loading ${r&&r.errUrl||t} (${s.src}).`)),e=void 0)}e=void 0,s.ep=!0,d&&s.setAttribute("nonce",d),s.addEventListener("error",a),s.addEventListener("load",a),document.head.appendChild(s)}))}document.head.removeChild(t),delete self._d,e()})),document.head.appendChild(t)}));let D=!1,W=!1;const B=r&&HTMLScriptElement.supports;let F=B&&"supports"===B.name&&B("importmap"),K=H,G=!1;const Q="import.meta",V='import"x"',X='assert{type:"css"}',Y='assert{type:"json"}';let Z,ee,te,re=Promise.resolve(J).then((()=>{if(H)return r?new Promise((e=>{const t=document.createElement("iframe");t.style.display="none",t.setAttribute("nonce",d),window.addEventListener("message",(function r({data:i}){Array.isArray(i)&&"esms"===i[0]&&(F=i[1],K=i[2],W=i[3],D=i[4],e(),document.head.removeChild(t),window.removeEventListener("message",r,!1))}),!1);const r=`<script nonce=${d||""}>b=(s,type='text/javascript')=>URL.createObjectURL(new Blob([s],{type}));document.head.appendChild(Object.assign(document.createElement('script'),{type:'importmap',nonce:"${d}",innerText:\`{"imports":{"x":"\${b('')}"}}\`}));Promise.all([${F?"true,true":`'x',b('${Q}')`}, ${y?`b('${X}'.replace('x',b('','text/css')))`:"false"}, ${v?`b('${Y}'.replace('x',b('{}','text/json')))`:"false"}].map(x =>typeof x==='string'?import(x).then(x =>!!x,()=>false):x)).then(a=>parent.postMessage(['esms'].concat(a),'*'))<\/script>`;let i=!1,n=!1;function s(){if(!i)return void(n=!0);const e=t.contentDocument;if(e&&0===e.head.childNodes.length){const t=e.createElement("script");d&&t.setAttribute("nonce",d),t.innerHTML=r.slice(15+(d?d.length:0),-9),e.head.appendChild(t)}}t.onload=s,document.head.appendChild(t),i=!0,"srcdoc"in t?t.srcdoc=r:t.contentDocument.write(r),n&&s()})):Promise.all([F||z(A(Q)).then((()=>K=!0),i),y&&z(A(V.replace("x",A("","text/css"))+X)).then((()=>W=!0),i),v&&z(A(V.replace("x",A("{}","text/json"))+Y)).then((()=>D=!0),i),$&&z(A(V.replace("x",A(new Uint8Array([0,97,115,109,1,0,0,0]),"application/wasm")))).then((()=>G=!0),i)])})),ie=2<<19;const ne=1===new Uint8Array(new Uint16Array([1]).buffer)[0]?function(e,t){const r=e.length;let i=0;for(;i<r;)t[i]=e.charCodeAt(i++)}:function(e,t){const r=e.length;let i=0;for(;i<r;){const r=e.charCodeAt(i);t[i++]=(255&r)<<8|r>>>8}},se="xportmportlassetaromsyncunctionssertvoyiedelecontininstantybreareturdebuggeawaithrwhileforifcatcfinallels";let ae,oe,ce;function le(e,t){ce=e;let r="",i=ce;for(;;){ce>=ae.length&&pe();const e=ae.charCodeAt(ce);if(e===t)break;92===e?(r+=ae.slice(i,ce),r+=fe(),i=ce):(8232===e||8233===e||de(e)&&pe(),++ce)}return r+=ae.slice(i,ce++),r}function fe(){let e=ae.charCodeAt(++ce);switch(++ce,e){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(ue(2));case 117:return function(){let e;return 123===ae.charCodeAt(ce)?(++ce,e=ue(ae.indexOf("}",ce)-ce),++ce,e>1114111&&pe()):e=ue(4),e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}();case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===ae.charCodeAt(ce)&&++ce;case 10:return"";case 56:case 57:pe();default:if(e>=48&&e<=55){let t=ae.substr(ce-1,3).match(/^[0-7]+/)[0],r=parseInt(t,8);return r>255&&(t=t.slice(0,-1),r=parseInt(t,8)),ce+=t.length-1,e=ae.charCodeAt(ce),"0"===t&&56!==e&&57!==e||pe(),String.fromCharCode(r)}return de(e)?"":String.fromCharCode(e)}}function ue(e){const t=ce;let r=0,i=0;for(let t=0;t<e;++t,++ce){let e,n=ae.charCodeAt(ce);if(95!==n){if(n>=97)e=n-97+10;else if(n>=65)e=n-65+10;else{if(!(n>=48&&n<=57))break;e=n-48}if(e>=16)break;i=n,r=16*r+e}else 95!==i&&0!==t||pe(),i=n}return 95!==i&&ce-t===e||pe(),r}function de(e){return 13===e||10===e}function pe(){throw Object.assign(Error(`Parse error ${oe}:${ae.slice(0,ce).split("\n").length}:${ce-ae.lastIndexOf("\n",ce-1)}`),{idx:ce})}async function he(e,t){const r=P(e,t)||M(e);return{r:q(Ee,r||e,t)||we(e,t),b:!r&&!M(e)}}const me=c?async(e,t)=>{let r=c(e,t,ke);return r&&r.then&&(r=await r),r?{r,b:!P(e,t)&&!M(e)}:he(e,t)}:he;async function be(e,...t){let i=t[t.length-1];return"string"!=typeof i&&(i=E),await Ae,o&&await o(e,"string"!=typeof t[1]?t[1]:{},i),(Le||a||!xe)&&(r&&Fe(!0),a||(Le=!1)),await Oe,Ce((await me(e,i)).r,{credentials:"same-origin"})}function ke(e,t){return q(Ee,P(e,t)||e,t)||we(e,t)}function we(e,t){throw Error(`Unable to resolve specifier '${e}'${L(t)}`)}self.importShim=be;const ge=(e,t=E)=>{t=`${t}`;const r=c&&c(e,t,ke);return r&&!r.then?r:ke(e,t)};function ye(e,t=this.url){return ge(e,t)}be.resolve=ge,be.getImportMap=()=>JSON.parse(JSON.stringify(Ee)),be.addImportMap=e=>{if(!a)throw new Error("Unsupported in polyfill mode.");Ee=_(e,E,Ee)};const ve=be._r={};async function $e(e,t){e.b||t[e.u]||(t[e.u]=1,await e.L,await Promise.all(e.d.map((e=>$e(e,t)))),e.n||(e.n=e.d.some((e=>e.n))))}be._w={};let xe,Ee={imports:{},scopes:{}};const Ae=re.then((()=>{if(xe=!0!==s.polyfillEnable&&H&&K&&F&&(!v||D)&&(!y||W)&&(!$||G)&&!C,r){if(!F){const e=HTMLScriptElement.supports||(e=>"classic"===e||"module"===e);HTMLScriptElement.supports=t=>"importmap"===t||e(t)}if(a||!xe)if(new MutationObserver((e=>{for(const t of e)if("childList"===t.type)for(const e of t.addedNodes)"SCRIPT"===e.tagName?(e.type===(a?"module-shim":"module")&&rt(e,!0),e.type===(a?"importmap-shim":"importmap")&&tt(e,!0)):"LINK"===e.tagName&&e.rel===(a?"modulepreload-shim":"modulepreload")&&nt(e)})).observe(document,{childList:!0,subtree:!0}),Fe(),"complete"===document.readyState)Ye();else{async function t(){await Ae,Fe(),"complete"===document.readyState&&(Ye(),document.removeEventListener("readystatechange",t))}document.addEventListener("readystatechange",t)}}}));let Se,Oe=Ae,je=!0,Le=!0;async function Ce(e,t,r,i,n){if(a||(Le=!1),await Ae,await Oe,o&&await o(e,"string"!=typeof t?t:{},""),!a&&xe)return i?null:(await n,z(r?A(r):e,{errUrl:e||r}));const s=Be(e,t,null,r),c={};if(await $e(s,c),Se=void 0,Ue(s,c),await n,r&&!a&&!s.n){if(i)return;return m&&Ie(Object.keys(c)),await z(A(r),{errUrl:r})}je&&!a&&s.n&&i&&(h(),je=!1);const l=await z(a||s.n||!i?s.b:s.u,{errUrl:s.u});return s.s&&(await z(s.s)).u$_(l),m&&Ie(Object.keys(c)),l}function Ie(e){let t=0;const r=e.length,i=self.requestIdleCallback?self.requestIdleCallback:self.requestAnimationFrame;i((function n(){const s=100*t;if(!(s>r)){for(const t of e.slice(s,s+100)){const e=ve[t];e&&URL.revokeObjectURL(e.b)}t++,i(n)}}))}function Me(e){return`'${e.replace(/'/g,"\\'")}'`}function Ue(e,t){if(e.b||!t[e.u])return;t[e.u]=0;for(const r of e.d)Ue(r,t);const[r,i]=e.a,n=e.S;let s=x&&Se?`import '${Se}';`:"",a=0,o=0,c=[];function l(t){for(;c[c.length-1]<t;){const t=c.pop();s+=`${n.slice(a,t)}, ${Me(e.r)}`,a=t}s+=n.slice(a,t),a=t}for(const{s:t,ss:i,se:u,d}of r)if(-1===d){let r=e.d[o++],i=r.b,c=!i;c&&((i=r.s)||(i=r.s=A(`export function u$_(m){${r.a[1].map((({s:e,e:t},i)=>{const n='"'===r.S[e]||"'"===r.S[e];return`e$_${i}=m${n?"[":"."}${r.S.slice(e,t)}${n?"]":""}`})).join(",")}}${r.a[1].length?`let ${r.a[1].map(((e,t)=>`e$_${t}`)).join(",")};`:""}export {${r.a[1].map((({s:e,e:t},i)=>`e$_${i} as ${r.S.slice(e,t)}`)).join(",")}}\n//# sourceURL=${r.r}?cycle`))),l(t-1),s+=`/*${n.slice(t-1,u)}*/${Me(i)}`,!c&&r.s&&(s+=`;import*as m$_${o} from'${r.b}';import{u$_ as u$_${o}}from'${r.s}';u$_${o}(m$_${o})`,r.s=void 0),a=u}else-2===d?(e.m={url:e.r,resolve:ye},f(e.m,e.u),l(t),s+=`importShim._r[${Me(e.u)}].m`,a=u):(l(i+6),s+="Shim(",c.push(u-1),a=t);function u(t,r){const i=r+t.length,o=n.indexOf("\n",i),c=-1!==o?o:n.length;l(i),s+=new URL(n.slice(i,c),e.r).href,a=c}e.s&&(s+=`\n;import{u$_}from'${e.s}';try{u$_({${i.filter((e=>e.ln)).map((({s:e,e:t,ln:r})=>`${n.slice(e,t)}:${r}`)).join(",")}})}catch(_){};\n`);let d=n.lastIndexOf(Pe),p=n.lastIndexOf(_e);d<a&&(d=-1),p<a&&(p=-1),-1!==d&&(-1===p||p>d)&&u(Pe,d),-1!==p&&(u(_e,p),-1!==d&&d>p&&u(Pe,d)),l(n.length),-1===d&&(s+=Pe+e.r),e.b=Se=A(s),e.S=void 0}const Pe="\n//# sourceURL=",_e="\n//# sourceMappingURL=",Ne=/^(text|application)\/(x-)?javascript(;|$)/,Re=/^(application)\/wasm(;|$)/,qe=/^(text|application)\/json(;|$)/,Te=/^(text|application)\/css(;|$)/,He=/url\(\s*(?:(["'])((?:\\.|[^\n\\"'])+)\1|((?:\\.|[^\s,"'()\\])+))\s*\)/g;let ze=[],Je=0;async function De(e,t,r){if(k&&!t.integrity)throw Error(`No integrity for ${e}${L(r)}.`);const i=function(){if(++Je>100)return new Promise((e=>ze.push(e)))}();i&&await i;try{var n=await l(e,t)}catch(t){throw t.message=`Unable to fetch ${e}${L(r)} - see network log for details.\n`+t.message,t}finally{Je--,ze.length&&ze.shift()()}if(!n.ok){const e=new TypeError(`${n.status} ${n.statusText} ${n.url}${L(r)}`);throw e.response=n,e}return n}async function We(e,t,r){const i=await De(e,t,r),n=i.headers.get("content-type");if(Ne.test(n))return{r:i.url,s:await i.text(),t:"js"};if(Re.test(n)){const t=be._w[e]=await WebAssembly.compileStreaming(i);let r="",n=0,s="";for(const e of WebAssembly.Module.imports(t))r+=`import * as impt${n} from '${e.module}';\n`,s+=`'${e.module}':impt${n++},`;n=0,r+=`const instance = await WebAssembly.instantiate(importShim._w['${e}'], {${s}});\n`;for(const e of WebAssembly.Module.exports(t))r+=`export const ${e.name} = instance.exports['${e.name}'];\n`;return{r:i.url,s:r,t:"wasm"}}if(qe.test(n))return{r:i.url,s:`export default ${await i.text()}`,t:"json"};if(Te.test(n))return{r:i.url,s:`var s=new CSSStyleSheet();s.replaceSync(${JSON.stringify((await i.text()).replace(He,((t,r="",i,n)=>`url(${r}${U(i||n,e)}${r})`)))});export default s;`,t:"css"};throw Error(`Unsupported Content-Type "${n}" loading ${e}${L(r)}. Modules must be served with a valid MIME type like application/javascript.`)}function Be(t,r,i,n){let s=ve[t];if(s&&!n)return s;if(s={u:t,r:n?t:void 0,f:void 0,S:void 0,L:void 0,a:void 0,d:void 0,b:void 0,s:void 0,n:!1,t:null,m:null},ve[t]){let e=0;for(;ve[s.u+ ++e];);s.u+=e}return ve[s.u]=s,s.f=(async()=>{if(!n){let e;if(({r:s.r,s:n,t:e}=await(it[t]||We(t,r,i))),e&&!a){if("css"===e&&!y||"json"===e&&!v||"wasm"===e&&!$)throw Error(`${e}-modules require <script type="esms-options">{ "polyfillEnable": ["${e}-modules"] }<\/script>`);("css"===e&&!W||"json"===e&&!D||"wasm"===e&&!G)&&(s.n=!0)}}try{s.a=function(t,r="@"){ae=t,oe=r;const i=2*ae.length+(2<<18);if(i>ie||!Z){for(;i>ie;)ie*=2;ee=new ArrayBuffer(ie),ne(se,new Uint16Array(ee,16,105)),Z=function(e,t,r){"use asm";var i=new e.Int8Array(r),n=new e.Int16Array(r),s=new e.Int32Array(r),a=new e.Uint8Array(r),o=new e.Uint16Array(r),c=1024;function l(){var e=0,t=0,r=0,a=0,l=0,d=0;d=c;c=c+10240|0;i[796]=1;i[795]=0;n[395]=0;n[396]=0;s[67]=s[2];i[797]=0;s[66]=0;i[794]=0;s[68]=d+2048;s[69]=d;i[798]=0;e=(s[3]|0)+-2|0;s[70]=e;t=e+(s[64]<<1)|0;s[71]=t;e:while(1){r=e+2|0;s[70]=r;if(e>>>0>=t>>>0){l=18;break}t:do{switch(n[r>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if((((n[396]|0)==0?T(r)|0:0)?(x(e+4|0,16,10)|0)==0:0)?(f(),(i[796]|0)==0):0){l=9;break e}else l=17;break}case 105:{if(T(r)|0?(x(e+4|0,26,10)|0)==0:0){u();l=17}else l=17;break}case 59:{l=17;break}case 47:switch(n[e+4>>1]|0){case 47:{U();break t}case 42:{$(1);break t}default:{l=16;break e}}default:{l=16;break e}}}while(0);if((l|0)==17){l=0;s[67]=s[70]}e=s[70]|0;t=s[71]|0}if((l|0)==9){e=s[70]|0;s[67]=e;l=19}else if((l|0)==16){i[796]=0;s[70]=e;l=19}else if((l|0)==18)if(!(i[794]|0)){e=r;l=19}else e=0;do{if((l|0)==19){e:while(1){t=e+2|0;s[70]=t;if(e>>>0>=(s[71]|0)>>>0){l=82;break}t:do{switch(n[t>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if(((n[396]|0)==0?T(t)|0:0)?(x(e+4|0,16,10)|0)==0:0){f();l=81}else l=81;break}case 105:{if(T(t)|0?(x(e+4|0,26,10)|0)==0:0){u();l=81}else l=81;break}case 99:{if((T(t)|0?(x(e+4|0,36,8)|0)==0:0)?G(n[e+12>>1]|0)|0:0){i[798]=1;l=81}else l=81;break}case 40:{a=s[68]|0;t=n[396]|0;l=t&65535;s[a+(l<<3)>>2]=1;r=s[67]|0;n[396]=t+1<<16>>16;s[a+(l<<3)+4>>2]=r;l=81;break}case 41:{t=n[396]|0;if(!(t<<16>>16)){l=36;break e}l=t+-1<<16>>16;n[396]=l;a=n[395]|0;t=a&65535;if(a<<16>>16!=0?(s[(s[68]|0)+((l&65535)<<3)>>2]|0)==5:0){t=s[(s[69]|0)+(t+-1<<2)>>2]|0;r=t+4|0;if(!(s[r>>2]|0))s[r>>2]=(s[67]|0)+2;s[t+12>>2]=e+4;n[395]=a+-1<<16>>16;l=81}else l=81;break}case 123:{l=s[67]|0;a=s[61]|0;e=l;do{if((n[l>>1]|0)==41&(a|0)!=0?(s[a+4>>2]|0)==(l|0):0){t=s[62]|0;s[61]=t;if(!t){s[57]=0;break}else{s[t+28>>2]=0;break}}}while(0);a=s[68]|0;r=n[396]|0;l=r&65535;s[a+(l<<3)>>2]=(i[798]|0)==0?2:6;n[396]=r+1<<16>>16;s[a+(l<<3)+4>>2]=e;i[798]=0;l=81;break}case 125:{e=n[396]|0;if(!(e<<16>>16)){l=49;break e}a=s[68]|0;l=e+-1<<16>>16;n[396]=l;if((s[a+((l&65535)<<3)>>2]|0)==4){h();l=81}else l=81;break}case 39:{b(39);l=81;break}case 34:{b(34);l=81;break}case 47:switch(n[e+4>>1]|0){case 47:{U();break t}case 42:{$(1);break t}default:{e=s[67]|0;a=n[e>>1]|0;r:do{if(!(A(a)|0)){switch(a<<16>>16){case 41:if(N(s[(s[68]|0)+(o[396]<<3)+4>>2]|0)|0){l=69;break r}else{l=66;break r}case 125:break;default:{l=66;break r}}t=s[68]|0;r=o[396]|0;if(!(v(s[t+(r<<3)+4>>2]|0)|0)?(s[t+(r<<3)>>2]|0)!=6:0)l=66;else l=69}else switch(a<<16>>16){case 46:if(((n[e+-2>>1]|0)+-48&65535)<10){l=66;break r}else{l=69;break r}case 43:if((n[e+-2>>1]|0)==43){l=66;break r}else{l=69;break r}case 45:if((n[e+-2>>1]|0)==45){l=66;break r}else{l=69;break r}default:{l=69;break r}}}while(0);r:do{if((l|0)==66){l=0;if(!(p(e)|0)){switch(a<<16>>16){case 0:{l=69;break r}case 47:{if(i[797]|0){l=69;break r}break}default:{}}r=s[3]|0;t=a;do{if(e>>>0<=r>>>0)break;e=e+-2|0;s[67]=e;t=n[e>>1]|0}while(!(M(t)|0));if(R(t)|0){do{if(e>>>0<=r>>>0)break;e=e+-2|0;s[67]=e}while(R(n[e>>1]|0)|0);if(C(e)|0){y();i[797]=0;l=81;break t}else e=1}else e=1}else l=69}}while(0);if((l|0)==69){y();e=0}i[797]=e;l=81;break t}}case 96:{a=s[68]|0;r=n[396]|0;l=r&65535;s[a+(l<<3)+4>>2]=s[67];n[396]=r+1<<16>>16;s[a+(l<<3)>>2]=3;h();l=81;break}default:l=81}}while(0);if((l|0)==81){l=0;s[67]=s[70]}e=s[70]|0}if((l|0)==36){K();e=0;break}else if((l|0)==49){K();e=0;break}else if((l|0)==82){e=(i[794]|0)==0?(n[395]|n[396])<<16>>16==0:0;break}}}while(0);c=d;return e|0}function f(){var e=0,t=0,r=0,a=0,o=0,c=0,l=0,f=0,u=0,p=0,h=0,k=0,g=0,y=0;f=s[70]|0;u=s[63]|0;y=f+12|0;s[70]=y;r=m(1)|0;e=s[70]|0;if(!((e|0)==(y|0)?!(E(r)|0):0))g=3;e:do{if((g|0)==3){t:do{switch(r<<16>>16){case 123:{s[70]=e+2;e=m(1)|0;t=s[70]|0;while(1){if(Q(e)|0){b(e);e=(s[70]|0)+2|0;s[70]=e}else{P(e)|0;e=s[70]|0}m(1)|0;e=w(t,e)|0;if(e<<16>>16==44){s[70]=(s[70]|0)+2;e=m(1)|0}if(e<<16>>16==125){g=15;break}y=t;t=s[70]|0;if((t|0)==(y|0)){g=12;break}if(t>>>0>(s[71]|0)>>>0){g=14;break}}if((g|0)==12){K();break e}else if((g|0)==14){K();break e}else if((g|0)==15){i[795]=1;s[70]=(s[70]|0)+2;break t}break}case 42:{s[70]=e+2;m(1)|0;y=s[70]|0;w(y,y)|0;break}default:{i[796]=0;switch(r<<16>>16){case 100:{f=e+14|0;s[70]=f;switch((m(1)|0)<<16>>16){case 97:{t=s[70]|0;if((x(t+2|0,56,8)|0)==0?(o=t+10|0,R(n[o>>1]|0)|0):0){s[70]=o;m(0)|0;g=22}break}case 102:{g=22;break}case 99:{t=s[70]|0;if(((x(t+2|0,36,8)|0)==0?(a=t+10|0,y=n[a>>1]|0,G(y)|0|y<<16>>16==123):0)?(s[70]=a,c=m(1)|0,c<<16>>16!=123):0){k=c;g=31}break}default:{}}r:do{if((g|0)==22?(l=s[70]|0,(x(l+2|0,64,14)|0)==0):0){r=l+16|0;t=n[r>>1]|0;if(!(G(t)|0))switch(t<<16>>16){case 40:case 42:break;default:break r}s[70]=r;t=m(1)|0;if(t<<16>>16==42){s[70]=(s[70]|0)+2;t=m(1)|0}if(t<<16>>16!=40){k=t;g=31}}}while(0);if((g|0)==31?(p=s[70]|0,P(k)|0,h=s[70]|0,h>>>0>p>>>0):0){j(e,f,p,h);s[70]=(s[70]|0)+-2;break e}j(e,f,0,0);s[70]=e+12;break e}case 97:{s[70]=e+10;m(0)|0;e=s[70]|0;g=35;break}case 102:{g=35;break}case 99:{if((x(e+2|0,36,8)|0)==0?(t=e+10|0,M(n[t>>1]|0)|0):0){s[70]=t;y=m(1)|0;g=s[70]|0;P(y)|0;y=s[70]|0;j(g,y,g,y);s[70]=(s[70]|0)+-2;break e}e=e+4|0;s[70]=e;break}case 108:case 118:break;default:break e}if((g|0)==35){s[70]=e+16;e=m(1)|0;if(e<<16>>16==42){s[70]=(s[70]|0)+2;e=m(1)|0}g=s[70]|0;P(e)|0;y=s[70]|0;j(g,y,g,y);s[70]=(s[70]|0)+-2;break e}s[70]=e+6;i[796]=0;r=m(1)|0;e=s[70]|0;r=(P(r)|0|32)<<16>>16==123;a=s[70]|0;if(r){s[70]=a+2;y=m(1)|0;e=s[70]|0;P(y)|0}r:while(1){t=s[70]|0;if((t|0)==(e|0))break;j(e,t,e,t);t=m(1)|0;if(r)switch(t<<16>>16){case 93:case 125:break e;default:{}}e=s[70]|0;if(t<<16>>16!=44){g=51;break}s[70]=e+2;t=m(1)|0;e=s[70]|0;switch(t<<16>>16){case 91:case 123:{g=51;break r}default:{}}P(t)|0}if((g|0)==51)s[70]=e+-2;if(!r)break e;s[70]=a+-2;break e}}}while(0);y=(m(1)|0)<<16>>16==102;e=s[70]|0;if(y?(x(e+2|0,50,6)|0)==0:0){s[70]=e+8;d(f,m(1)|0);e=(u|0)==0?232:u+16|0;while(1){e=s[e>>2]|0;if(!e)break e;s[e+12>>2]=0;s[e+8>>2]=0;e=e+16|0}}s[70]=e+-2}}while(0);return}function u(){var e=0,t=0,r=0,a=0,o=0,c=0;o=s[70]|0;e=o+12|0;s[70]=e;e:do{switch((m(1)|0)<<16>>16){case 40:{t=s[68]|0;c=n[396]|0;r=c&65535;s[t+(r<<3)>>2]=5;e=s[70]|0;n[396]=c+1<<16>>16;s[t+(r<<3)+4>>2]=e;if((n[s[67]>>1]|0)!=46){s[70]=e+2;c=m(1)|0;k(o,s[70]|0,0,e);t=s[61]|0;r=s[69]|0;o=n[395]|0;n[395]=o+1<<16>>16;s[r+((o&65535)<<2)>>2]=t;switch(c<<16>>16){case 39:{b(39);break}case 34:{b(34);break}default:{s[70]=(s[70]|0)+-2;break e}}e=(s[70]|0)+2|0;s[70]=e;switch((m(1)|0)<<16>>16){case 44:{s[70]=(s[70]|0)+2;m(1)|0;o=s[61]|0;s[o+4>>2]=e;c=s[70]|0;s[o+16>>2]=c;i[o+24>>0]=1;s[70]=c+-2;break e}case 41:{n[396]=(n[396]|0)+-1<<16>>16;c=s[61]|0;s[c+4>>2]=e;s[c+12>>2]=(s[70]|0)+2;i[c+24>>0]=1;n[395]=(n[395]|0)+-1<<16>>16;break e}default:{s[70]=(s[70]|0)+-2;break e}}}break}case 46:{s[70]=(s[70]|0)+2;if((m(1)|0)<<16>>16==109?(t=s[70]|0,(x(t+2|0,44,6)|0)==0):0){e=s[67]|0;if(!(q(e)|0)?(n[e>>1]|0)==46:0)break e;k(o,o,t+8|0,2)}break}case 42:case 39:case 34:{a=18;break}case 123:{e=s[70]|0;if(n[396]|0){s[70]=e+-2;break e}while(1){if(e>>>0>=(s[71]|0)>>>0)break;e=m(1)|0;if(!(Q(e)|0)){if(e<<16>>16==125){a=33;break}}else b(e);e=(s[70]|0)+2|0;s[70]=e}if((a|0)==33)s[70]=(s[70]|0)+2;c=(m(1)|0)<<16>>16==102;e=s[70]|0;if(c?x(e+2|0,50,6)|0:0){K();break e}s[70]=e+8;e=m(1)|0;if(Q(e)|0){d(o,e);break e}else{K();break e}}default:if((s[70]|0)==(e|0))s[70]=o+10;else a=18}}while(0);do{if((a|0)==18){if(n[396]|0){s[70]=(s[70]|0)+-2;break}e=s[71]|0;t=s[70]|0;while(1){if(t>>>0>=e>>>0){a=25;break}r=n[t>>1]|0;if(Q(r)|0){a=23;break}c=t+2|0;s[70]=c;t=c}if((a|0)==23){d(o,r);break}else if((a|0)==25){K();break}}}while(0);return}function d(e,t){e=e|0;t=t|0;var r=0,i=0;r=(s[70]|0)+2|0;switch(t<<16>>16){case 39:{b(39);i=5;break}case 34:{b(34);i=5;break}default:K()}do{if((i|0)==5){k(e,r,s[70]|0,1);s[70]=(s[70]|0)+2;t=m(0)|0;e=t<<16>>16==97;if(e){r=s[70]|0;if(x(r+2|0,78,10)|0)i=11}else{r=s[70]|0;if(!(((t<<16>>16==119?(n[r+2>>1]|0)==105:0)?(n[r+4>>1]|0)==116:0)?(n[r+6>>1]|0)==104:0))i=11}if((i|0)==11){s[70]=r+-2;break}s[70]=r+((e?6:4)<<1);if((m(1)|0)<<16>>16!=123){s[70]=r;break}e=s[70]|0;t=e;e:while(1){s[70]=t+2;t=m(1)|0;switch(t<<16>>16){case 39:{b(39);s[70]=(s[70]|0)+2;t=m(1)|0;break}case 34:{b(34);s[70]=(s[70]|0)+2;t=m(1)|0;break}default:t=P(t)|0}if(t<<16>>16!=58){i=20;break}s[70]=(s[70]|0)+2;switch((m(1)|0)<<16>>16){case 39:{b(39);break}case 34:{b(34);break}default:{i=24;break e}}s[70]=(s[70]|0)+2;switch((m(1)|0)<<16>>16){case 125:{i=29;break e}case 44:break;default:{i=28;break e}}s[70]=(s[70]|0)+2;if((m(1)|0)<<16>>16==125){i=29;break}t=s[70]|0}if((i|0)==20){s[70]=r;break}else if((i|0)==24){s[70]=r;break}else if((i|0)==28){s[70]=r;break}else if((i|0)==29){i=s[61]|0;s[i+16>>2]=e;s[i+12>>2]=(s[70]|0)+2;break}}}while(0);return}function p(e){e=e|0;e:do{switch(n[e>>1]|0){case 100:switch(n[e+-2>>1]|0){case 105:{e=L(e+-4|0,88,2)|0;break e}case 108:{e=L(e+-4|0,92,3)|0;break e}default:{e=0;break e}}case 101:switch(n[e+-2>>1]|0){case 115:switch(n[e+-4>>1]|0){case 108:{e=I(e+-6|0,101)|0;break e}case 97:{e=I(e+-6|0,99)|0;break e}default:{e=0;break e}}case 116:{e=L(e+-4|0,98,4)|0;break e}case 117:{e=L(e+-4|0,106,6)|0;break e}default:{e=0;break e}}case 102:{if((n[e+-2>>1]|0)==111?(n[e+-4>>1]|0)==101:0)switch(n[e+-6>>1]|0){case 99:{e=L(e+-8|0,118,6)|0;break e}case 112:{e=L(e+-8|0,130,2)|0;break e}default:{e=0;break e}}else e=0;break}case 107:{e=L(e+-2|0,134,4)|0;break}case 110:{e=e+-2|0;if(I(e,105)|0)e=1;else e=L(e,142,5)|0;break}case 111:{e=I(e+-2|0,100)|0;break}case 114:{e=L(e+-2|0,152,7)|0;break}case 116:{e=L(e+-2|0,166,4)|0;break}case 119:switch(n[e+-2>>1]|0){case 101:{e=I(e+-4|0,110)|0;break e}case 111:{e=L(e+-4|0,174,3)|0;break e}default:{e=0;break e}}default:e=0}}while(0);return e|0}function h(){var e=0,t=0,r=0,i=0;t=s[71]|0;r=s[70]|0;e:while(1){e=r+2|0;if(r>>>0>=t>>>0){t=10;break}switch(n[e>>1]|0){case 96:{t=7;break e}case 36:{if((n[r+4>>1]|0)==123){t=6;break e}break}case 92:{e=r+4|0;break}default:{}}r=e}if((t|0)==6){e=r+4|0;s[70]=e;t=s[68]|0;i=n[396]|0;r=i&65535;s[t+(r<<3)>>2]=4;n[396]=i+1<<16>>16;s[t+(r<<3)+4>>2]=e}else if((t|0)==7){s[70]=e;r=s[68]|0;i=(n[396]|0)+-1<<16>>16;n[396]=i;if((s[r+((i&65535)<<3)>>2]|0)!=3)K()}else if((t|0)==10){s[70]=e;K()}return}function m(e){e=e|0;var t=0,r=0,i=0;r=s[70]|0;e:do{t=n[r>>1]|0;t:do{if(t<<16>>16!=47)if(e)if(G(t)|0)break;else break e;else if(R(t)|0)break;else break e;else switch(n[r+2>>1]|0){case 47:{U();break t}case 42:{$(e);break t}default:{t=47;break e}}}while(0);i=s[70]|0;r=i+2|0;s[70]=r}while(i>>>0<(s[71]|0)>>>0);return t|0}function b(e){e=e|0;var t=0,r=0,i=0,a=0;a=s[71]|0;t=s[70]|0;while(1){i=t+2|0;if(t>>>0>=a>>>0){t=9;break}r=n[i>>1]|0;if(r<<16>>16==e<<16>>16){t=10;break}if(r<<16>>16==92){r=t+4|0;if((n[r>>1]|0)==13){t=t+6|0;t=(n[t>>1]|0)==10?t:r}else t=r}else if(Y(r)|0){t=9;break}else t=i}if((t|0)==9){s[70]=i;K()}else if((t|0)==10)s[70]=i;return}function k(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var a=0,o=0;a=s[65]|0;s[65]=a+32;o=s[61]|0;s[((o|0)==0?228:o+28|0)>>2]=a;s[62]=o;s[61]=a;s[a+8>>2]=e;if(2==(n|0))e=r;else e=1==(n|0)?r+2|0:0;s[a+12>>2]=e;s[a>>2]=t;s[a+4>>2]=r;s[a+16>>2]=0;s[a+20>>2]=n;o=1==(n|0);i[a+24>>0]=o&1;s[a+28>>2]=0;if(o|2==(n|0))i[795]=1;return}function w(e,t){e=e|0;t=t|0;var r=0,i=0,a=0,o=0;r=s[70]|0;i=n[r>>1]|0;o=(e|0)==(t|0);a=o?0:e;o=o?0:t;if(i<<16>>16==97){s[70]=r+4;r=m(1)|0;e=s[70]|0;if(Q(r)|0){b(r);t=(s[70]|0)+2|0;s[70]=t}else{P(r)|0;t=s[70]|0}i=m(1)|0;r=s[70]|0}if((r|0)!=(e|0))j(e,t,a,o);return i|0}function g(){var e=0,t=0,r=0;r=s[71]|0;t=s[70]|0;e:while(1){e=t+2|0;if(t>>>0>=r>>>0){t=6;break}switch(n[e>>1]|0){case 13:case 10:{t=6;break e}case 93:{t=7;break e}case 92:{e=t+4|0;break}default:{}}t=e}if((t|0)==6){s[70]=e;K();e=0}else if((t|0)==7){s[70]=e;e=93}return e|0}function y(){var e=0,t=0,r=0;e:while(1){e=s[70]|0;t=e+2|0;s[70]=t;if(e>>>0>=(s[71]|0)>>>0){r=7;break}switch(n[t>>1]|0){case 13:case 10:{r=7;break e}case 47:break e;case 91:{g()|0;break}case 92:{s[70]=e+4;break}default:{}}}if((r|0)==7)K();return}function v(e){e=e|0;switch(n[e>>1]|0){case 62:{e=(n[e+-2>>1]|0)==61;break}case 41:case 59:{e=1;break}case 104:{e=L(e+-2|0,200,4)|0;break}case 121:{e=L(e+-2|0,208,6)|0;break}case 101:{e=L(e+-2|0,220,3)|0;break}default:e=0}return e|0}function $(e){e=e|0;var t=0,r=0,i=0,a=0,o=0;a=(s[70]|0)+2|0;s[70]=a;r=s[71]|0;while(1){t=a+2|0;if(a>>>0>=r>>>0)break;i=n[t>>1]|0;if(!e?Y(i)|0:0)break;if(i<<16>>16==42?(n[a+4>>1]|0)==47:0){o=8;break}a=t}if((o|0)==8){s[70]=t;t=a+4|0}s[70]=t;return}function x(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,s=0;e:do{if(!r)e=0;else{while(1){n=i[e>>0]|0;s=i[t>>0]|0;if(n<<24>>24!=s<<24>>24)break;r=r+-1|0;if(!r){e=0;break e}else{e=e+1|0;t=t+1|0}}e=(n&255)-(s&255)|0}}while(0);return e|0}function E(e){e=e|0;e:do{switch(e<<16>>16){case 38:case 37:case 33:{e=1;break}default:if((e&-8)<<16>>16==40|(e+-58&65535)<6)e=1;else{switch(e<<16>>16){case 91:case 93:case 94:{e=1;break e}default:{}}e=(e+-123&65535)<4}}}while(0);return e|0}function A(e){e=e|0;e:do{switch(e<<16>>16){case 38:case 37:case 33:break;default:if(!((e+-58&65535)<6|(e+-40&65535)<7&e<<16>>16!=41)){switch(e<<16>>16){case 91:case 94:break e;default:{}}return e<<16>>16!=125&(e+-123&65535)<4|0}}}while(0);return 1}function S(e){e=e|0;var t=0;t=n[e>>1]|0;e:do{if((t+-9&65535)>=5){switch(t<<16>>16){case 160:case 32:{t=1;break e}default:{}}if(E(t)|0)return t<<16>>16!=46|(q(e)|0)|0;else t=0}else t=1}while(0);return t|0}function O(e){e=e|0;var t=0,r=0,i=0,a=0;r=c;c=c+16|0;i=r;s[i>>2]=0;s[64]=e;t=s[3]|0;a=t+(e<<1)|0;e=a+2|0;n[a>>1]=0;s[i>>2]=e;s[65]=e;s[57]=0;s[61]=0;s[59]=0;s[58]=0;s[63]=0;s[60]=0;c=r;return t|0}function j(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var a=0,o=0;a=s[65]|0;s[65]=a+20;o=s[63]|0;s[((o|0)==0?232:o+16|0)>>2]=a;s[63]=a;s[a>>2]=e;s[a+4>>2]=t;s[a+8>>2]=r;s[a+12>>2]=n;s[a+16>>2]=0;i[795]=1;return}function L(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,n=0;i=e+(0-r<<1)|0;n=i+2|0;e=s[3]|0;if(n>>>0>=e>>>0?(x(n,t,r<<1)|0)==0:0)if((n|0)==(e|0))e=1;else e=S(i)|0;else e=0;return e|0}function C(e){e=e|0;switch(n[e>>1]|0){case 107:{e=L(e+-2|0,134,4)|0;break}case 101:{if((n[e+-2>>1]|0)==117)e=L(e+-4|0,106,6)|0;else e=0;break}default:e=0}return e|0}function I(e,t){e=e|0;t=t|0;var r=0;r=s[3]|0;if(r>>>0<=e>>>0?(n[e>>1]|0)==t<<16>>16:0)if((r|0)==(e|0))r=1;else r=M(n[e+-2>>1]|0)|0;else r=0;return r|0}function M(e){e=e|0;e:do{if((e+-9&65535)<5)e=1;else{switch(e<<16>>16){case 32:case 160:{e=1;break e}default:{}}e=e<<16>>16!=46&(E(e)|0)}}while(0);return e|0}function U(){var e=0,t=0,r=0;e=s[71]|0;r=s[70]|0;e:while(1){t=r+2|0;if(r>>>0>=e>>>0)break;switch(n[t>>1]|0){case 13:case 10:break e;default:r=t}}s[70]=t;return}function P(e){e=e|0;while(1){if(G(e)|0)break;if(E(e)|0)break;e=(s[70]|0)+2|0;s[70]=e;e=n[e>>1]|0;if(!(e<<16>>16)){e=0;break}}return e|0}function _(){var e=0;e=s[(s[59]|0)+20>>2]|0;switch(e|0){case 1:{e=-1;break}case 2:{e=-2;break}default:e=e-(s[3]|0)>>1}return e|0}function N(e){e=e|0;if(!(L(e,180,5)|0)?!(L(e,190,3)|0):0)e=L(e,196,2)|0;else e=1;return e|0}function R(e){e=e|0;switch(e<<16>>16){case 160:case 32:case 12:case 11:case 9:{e=1;break}default:e=0}return e|0}function q(e){e=e|0;if((n[e>>1]|0)==46?(n[e+-2>>1]|0)==46:0)e=(n[e+-4>>1]|0)==46;else e=0;return e|0}function T(e){e=e|0;if((s[3]|0)==(e|0))e=1;else e=S(e+-2|0)|0;return e|0}function H(){var e=0;e=s[(s[60]|0)+12>>2]|0;if(!e)e=-1;else e=e-(s[3]|0)>>1;return e|0}function z(){var e=0;e=s[(s[59]|0)+12>>2]|0;if(!e)e=-1;else e=e-(s[3]|0)>>1;return e|0}function J(){var e=0;e=s[(s[60]|0)+8>>2]|0;if(!e)e=-1;else e=e-(s[3]|0)>>1;return e|0}function D(){var e=0;e=s[(s[59]|0)+16>>2]|0;if(!e)e=-1;else e=e-(s[3]|0)>>1;return e|0}function W(){var e=0;e=s[(s[59]|0)+4>>2]|0;if(!e)e=-1;else e=e-(s[3]|0)>>1;return e|0}function B(){var e=0;e=s[59]|0;e=s[((e|0)==0?228:e+28|0)>>2]|0;s[59]=e;return(e|0)!=0|0}function F(){var e=0;e=s[60]|0;e=s[((e|0)==0?232:e+16|0)>>2]|0;s[60]=e;return(e|0)!=0|0}function K(){i[794]=1;s[66]=(s[70]|0)-(s[3]|0)>>1;s[70]=(s[71]|0)+2;return}function G(e){e=e|0;return(e|128)<<16>>16==160|(e+-9&65535)<5|0}function Q(e){e=e|0;return e<<16>>16==39|e<<16>>16==34|0}function V(){return(s[(s[59]|0)+8>>2]|0)-(s[3]|0)>>1|0}function X(){return(s[(s[60]|0)+4>>2]|0)-(s[3]|0)>>1|0}function Y(e){e=e|0;return e<<16>>16==13|e<<16>>16==10|0}function Z(){return(s[s[59]>>2]|0)-(s[3]|0)>>1|0}function ee(){return(s[s[60]>>2]|0)-(s[3]|0)>>1|0}function te(){return a[(s[59]|0)+24>>0]|0|0}function re(e){e=e|0;s[3]=e;return}function ie(){return(i[795]|0)!=0|0}function ne(){return(i[796]|0)!=0|0}function se(){return s[66]|0}function ae(e){e=e|0;c=e+992+15&-16;return 992}return{su:ae,ai:D,e:se,ee:X,ele:H,els:J,es:ee,f:ne,id:_,ie:W,ip:te,is:Z,ms:ie,p:l,re:F,ri:B,sa:O,se:z,ses:re,ss:V}}("undefined"!=typeof self?self:e,0,ee),te=Z.su(ie-(2<<17))}const n=ae.length+1;Z.ses(te),Z.sa(n-1),ne(ae,new Uint16Array(ee,te,n)),Z.p()||(ce=Z.e(),pe());const s=[],a=[];for(;Z.ri();){const e=Z.is(),t=Z.ie(),r=Z.ai(),i=Z.id(),n=Z.ss(),a=Z.se();let o;Z.ip()&&(o=le(-1===i?e:e+1,ae.charCodeAt(-1===i?e-1:e))),s.push({n:o,s:e,e:t,ss:n,se:a,d:i,a:r})}for(;Z.re();){const e=Z.es(),t=Z.ee(),r=Z.els(),i=Z.ele(),n=ae.charCodeAt(e),s=r>=0?ae.charCodeAt(r):-1;a.push({s:e,e:t,ls:r,le:i,n:34===n||39===n?le(e+1,n):ae.slice(e,t),ln:r<0?void 0:34===s||39===s?le(r+1,s):ae.slice(r,i)})}return[s,a,!!Z.f(),!!Z.ms()]}(n,s.u)}catch(e){j(e),s.a=[[],[],!1]}return s.S=n,s})(),s.L=s.f.then((async()=>{let e=r;s.d=(await Promise.all(s.a[0].map((async({n:t,d:r})=>{if((r>=0&&!H||-2===r&&!K)&&(s.n=!0),-1!==r||!t)return;const{r:i,b:n}=await me(t,s.r||s.u);return!n||F&&!C||(s.n=!0),-1===r?S&&S(i)?{b:i}:(e.integrity&&(e=Object.assign({},e,{integrity:void 0})),Be(i,e,s.r).f):void 0})))).filter((e=>e))})),s}function Fe(e=!1){if(!e)for(const e of document.querySelectorAll(a?"link[rel=modulepreload-shim]":"link[rel=modulepreload]"))nt(e);for(const e of document.querySelectorAll(a?"script[type=importmap-shim]":"script[type=importmap]"))tt(e);if(!e)for(const e of document.querySelectorAll(a?"script[type=module-shim]":"script[type=module]"))rt(e)}function Ke(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.fetchPriority&&(t.priority=e.fetchPriority),"use-credentials"===e.crossOrigin?t.credentials="include":"anonymous"===e.crossOrigin?t.credentials="omit":t.credentials="same-origin",t}let Ge=Promise.resolve(),Qe=1;function Ve(){0!=--Qe||b||!a&&xe||document.dispatchEvent(new Event("DOMContentLoaded"))}r&&document.addEventListener("DOMContentLoaded",(async()=>{await Ae,Ve()}));let Xe=1;function Ye(){0!=--Xe||b||!a&&xe||document.dispatchEvent(new Event("readystatechange"))}const Ze=e=>e.nextSibling||e.parentNode&&Ze(e.parentNode),et=(e,t)=>e.ep||!t&&(!e.src&&!e.innerHTML||!Ze(e))||null!==e.getAttribute("noshim")||!(e.ep=!0);function tt(e,t=Xe>0){if(!et(e,t)){if(e.src){if(!a)return;C=!0}Le&&(Oe=Oe.then((async()=>{Ee=_(e.src?await(await De(e.src,Ke(e))).json():JSON.parse(e.innerHTML),e.src||E,Ee)})).catch((t=>{console.log(t),t instanceof SyntaxError&&(t=new Error(`Unable to parse import map ${t.message} in: ${e.src||e.innerHTML}`)),j(t)})),a||(Le=!1))}}function rt(e,t=Xe>0){if(et(e,t))return;const r=null===e.getAttribute("async")&&Xe>0,i=Qe>0;r&&Xe++,i&&Qe++;const n=Ce(e.src||E,Ke(e),!e.src&&e.innerHTML,!a,r&&Ge).then((()=>{a&&e.dispatchEvent(new Event("load"))})).catch(j);r&&(Ge=n.then(Ye)),i&&n.then(Ve)}const it={};function nt(e){e.ep||(e.ep=!0,it[e.href]||(it[e.href]=We(e.href,Ke(e))))}}();const r=window.parent,i=new class{sendMessage;seqNum=0;methods={};pending={};initPromise;resolveInit;initialized=!1;constructor(e){this.sendMessage=e,this.resolveInit=()=>{},this.initPromise=new Promise((e=>{this.resolveInit=e}))}register(e){if(this.initialized)throw new Error("RPC methods already registered");this.methods={...e};const t=setInterval((()=>{this.sendMessage({kind:"initialize"})}),50),r=this.resolveInit;this.resolveInit=()=>{clearInterval(t),r()},this.initialized=!0}messageReceived(e){if(e.kind)return void("initialize"===e.kind?this.sendMessage({kind:"initialized"}):"initialized"===e.kind&&this.initialized&&this.resolveInit());const{seqNum:r,name:i,args:n,result:s,exception:a}=e;void 0!==r&&(void 0===i?(void 0!==a?this.pending[r].reject(a):this.pending[r].resolve(s),delete this.pending[r]):this.initPromise.then((async()=>{try{const e=this.methods[i];if(void 0===e)throw new Error(`unknown RPC method ${i}`);this.sendMessage({seqNum:r,result:await e(...n)})}catch(e){this.sendMessage({seqNum:r,exception:t(e)})}})))}async invoke(e,t){await this.initPromise,this.seqNum+=1;const r=this.seqNum;return new Promise(((i,n)=>{this.pending[r]={resolve:i,reject:n},this.sendMessage({seqNum:r,name:e,args:t})}))}getApi(){return new Proxy({},{get:(e,t)=>(...e)=>this.invoke(t,e)})}}((e=>r.postMessage(JSON.stringify(e))));window.addEventListener("message",(e=>{i.messageReceived(JSON.parse(e.data))}));const n=i.getApi(),s=document.querySelector("#react_root");if(s){const e={"@leanprover/infoview":"/infoview/index.production.min.js",react:"/infoview/react.production.min.js","react/jsx-runtime":"/infoview/react-jsx-runtime.production.min.js","react-dom":"/infoview/react-dom.production.min.js"};console.log(e),function(e,t){importShim.addImportMap({imports:e}),importShim("@leanprover/infoview").then((e=>{return r=e.renderInfoview(...t),i.register(r);var r})).catch((e=>console.error(`Error importing '@leanprover/infoview': ${JSON.stringify(e)}`)))}(e,[n,s])}})();
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "lean4monaco",
3
- "version": "1.0.9",
3
+ "version": "1.0.11",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "files": [
7
7
  "dist"
8
8
  ],
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/hhu-adam/lean4monaco"
12
+ },
9
13
  "scripts": {
10
- "postinstall": "if [ -d \"server\" ]; then cd server && npm install; fi",
11
- "start_client": "vite serve dev",
12
- "build_server": "cd server/LeanProject && lake build",
13
- "start_server": "cd server && npm start",
14
- "start": "concurrently \"npm run start_client\" \"npm run start_server\" -n client,server -c \"bgBlue.bold,bgMagenta.bold\"",
15
- "build": "tsc && cd src && copyfiles \"**/*.json\" \"**/*.css\" \"**/*.ttf\" ../dist/",
16
- "test": "concurrently --kill-others \"cd demo && npm install && npm start\" \"wait-on http://localhost:5173 && cypress run\" -n server,cypress -s command-cypress"
14
+ "start": "concurrently \"tsc -w\" \"webpack --watch\" \"cd demo && npm run start_client\" \"cd demo && npm run start_server\" -n tsc,webpack,vite,server -c \"bgGreen.bold,bgBlue.bold,bgYellow.bold,bgMagenta.bold\"",
15
+ "build": "tsc && webpack && cd src && copyfiles \"**/*.json\" \"**/*.css\" \"**/*.ttf\" ../dist/",
16
+ "test": "(cd demo && npm install && npm run build_server) && concurrently --kill-others \"npm start 1> /dev/null\" \"wait-on http://localhost:5173 && cypress run\" -n server,cypress -s command-cypress"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@chialab/esbuild-plugin-meta-url": "^0.18.2",
@@ -24,11 +24,11 @@
24
24
  "copyfiles": "^2.4.1",
25
25
  "cypress": "^13.13.0",
26
26
  "cypress-iframe": "^1.0.1",
27
+ "ts-loader": "^9.5.1",
27
28
  "typescript": "^5.4.5",
28
- "vite": "^5.2.0",
29
- "vite-plugin-node-polyfills": "^0.22.0",
30
- "vite-plugin-static-copy": "^1.0.6",
31
- "wait-on": "^7.2.0"
29
+ "wait-on": "^7.2.0",
30
+ "webpack": "^5.93.0",
31
+ "webpack-cli": "^5.1.4"
32
32
  },
33
33
  "dependencies": {
34
34
  "@leanprover/infoview": "=0.7.0",