@smoothdeploy/playwright-core 1.57.1 → 1.58.1-beta-1770383926000
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.
Potentially problematic release.
This version of @smoothdeploy/playwright-core might be problematic. Click here for more details.
- package/ThirdPartyNotices.txt +3223 -308
- package/browsers.json +21 -22
- package/lib/cli/program.js +4 -5
- package/lib/client/api.js +3 -0
- package/lib/client/browser.js +3 -5
- package/lib/client/browserContext.js +35 -0
- package/lib/client/browserType.js +4 -3
- package/lib/client/channelOwner.js +4 -3
- package/lib/client/clientInstrumentation.js +10 -0
- package/lib/client/connection.js +4 -0
- package/lib/client/elementHandle.js +3 -0
- package/lib/client/events.js +3 -0
- package/lib/client/fetch.js +3 -4
- package/lib/client/frame.js +1 -0
- package/lib/client/page.js +28 -1
- package/lib/client/pageAgent.js +64 -0
- package/lib/client/platform.js +3 -0
- package/lib/generated/injectedScriptSource.js +1 -1
- package/lib/generated/pollingRecorderSource.js +1 -1
- package/lib/mcpBundle.js +84 -0
- package/lib/mcpBundleImpl/index.js +147 -0
- package/lib/protocol/serializers.js +5 -0
- package/lib/protocol/validator.js +92 -3
- package/lib/remote/playwrightServer.js +1 -2
- package/lib/server/agent/actionRunner.js +335 -0
- package/lib/server/agent/actions.js +128 -0
- package/lib/server/agent/codegen.js +111 -0
- package/lib/server/agent/context.js +150 -0
- package/lib/server/agent/expectTools.js +156 -0
- package/lib/server/agent/pageAgent.js +204 -0
- package/lib/server/agent/performTools.js +262 -0
- package/lib/server/agent/tool.js +109 -0
- package/lib/server/artifact.js +1 -1
- package/lib/server/bidi/bidiBrowser.js +56 -12
- package/lib/server/bidi/bidiChromium.js +6 -11
- package/lib/server/bidi/bidiConnection.js +1 -0
- package/lib/server/bidi/bidiDeserializer.js +116 -0
- package/lib/server/bidi/bidiExecutionContext.js +75 -29
- package/lib/server/bidi/bidiFirefox.js +6 -8
- package/lib/server/bidi/bidiNetworkManager.js +1 -1
- package/lib/server/bidi/bidiPage.js +39 -28
- package/lib/server/bidi/third_party/bidiProtocolCore.js +1 -0
- package/lib/server/browserContext.js +32 -25
- package/lib/server/browserType.js +12 -4
- package/lib/server/chromium/chromium.js +14 -21
- package/lib/server/chromium/chromiumSwitches.js +2 -2
- package/lib/server/chromium/crBrowser.js +22 -12
- package/lib/server/chromium/crConnection.js +0 -5
- package/lib/server/chromium/crDevTools.js +0 -2
- package/lib/server/chromium/crNetworkManager.js +43 -2
- package/lib/server/chromium/crPage.js +19 -87
- package/lib/server/codegen/javascript.js +6 -29
- package/lib/server/deviceDescriptorsSource.json +56 -56
- package/lib/server/dispatchers/browserContextDispatcher.js +3 -0
- package/lib/server/dispatchers/dispatcher.js +6 -13
- package/lib/server/dispatchers/frameDispatcher.js +1 -1
- package/lib/server/dispatchers/pageAgentDispatcher.js +96 -0
- package/lib/server/dispatchers/pageDispatcher.js +4 -0
- package/lib/server/dom.js +12 -3
- package/lib/server/electron/electron.js +5 -2
- package/lib/server/firefox/ffBrowser.js +10 -20
- package/lib/server/firefox/ffConnection.js +0 -5
- package/lib/server/firefox/ffNetworkManager.js +2 -2
- package/lib/server/firefox/ffPage.js +15 -18
- package/lib/server/firefox/firefox.js +6 -8
- package/lib/server/frameSelectors.js +9 -3
- package/lib/server/frames.js +49 -33
- package/lib/server/instrumentation.js +3 -0
- package/lib/server/network.js +50 -12
- package/lib/server/page.js +33 -89
- package/lib/server/progress.js +26 -6
- package/lib/server/recorder/recorderApp.js +79 -100
- package/lib/server/recorder.js +55 -0
- package/lib/server/registry/browserFetcher.js +6 -4
- package/lib/server/registry/index.js +172 -149
- package/lib/server/registry/oopDownloadBrowserMain.js +3 -0
- package/lib/server/screencast.js +190 -0
- package/lib/server/screenshotCompositor.js +127 -0
- package/lib/server/trace/recorder/snapshotterInjected.js +21 -1
- package/lib/server/trace/recorder/tracing.js +21 -21
- package/lib/server/trace/viewer/traceParser.js +72 -0
- package/lib/server/trace/viewer/traceViewer.js +17 -13
- package/lib/server/utils/expectUtils.js +87 -2
- package/lib/server/utils/httpServer.js +4 -19
- package/lib/server/utils/network.js +37 -28
- package/lib/server/utils/nodePlatform.js +6 -0
- package/lib/server/videoRecorder.js +124 -0
- package/lib/server/webkit/webkit.js +4 -6
- package/lib/server/webkit/wkBrowser.js +2 -6
- package/lib/server/webkit/wkConnection.js +1 -6
- package/lib/server/webkit/wkInterceptableRequest.js +29 -1
- package/lib/server/webkit/wkPage.js +75 -46
- package/lib/utils/isomorphic/ariaSnapshot.js +60 -2
- package/lib/utils/isomorphic/lruCache.js +51 -0
- package/lib/utils/isomorphic/protocolMetainfo.js +9 -1
- package/lib/utils/isomorphic/stringUtils.js +49 -0
- package/lib/utils/isomorphic/trace/entries.js +16 -0
- package/lib/utils/isomorphic/trace/snapshotRenderer.js +499 -0
- package/lib/utils/isomorphic/trace/snapshotServer.js +120 -0
- package/lib/utils/isomorphic/trace/snapshotStorage.js +89 -0
- package/lib/utils/isomorphic/trace/traceLoader.js +131 -0
- package/lib/utils/isomorphic/trace/traceModel.js +365 -0
- package/lib/utils/isomorphic/trace/traceModernizer.js +400 -0
- package/lib/utils/isomorphic/trace/versions/traceV3.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV4.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV5.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV6.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV7.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV8.js +16 -0
- package/lib/utils/isomorphic/yaml.js +84 -0
- package/lib/utils.js +2 -0
- package/lib/utilsBundle.js +2 -5
- package/lib/utilsBundleImpl/index.js +165 -165
- package/lib/vite/htmlReport/index.html +20 -20
- package/lib/vite/recorder/assets/{codeMirrorModule-C3UTv-Ge.css → codeMirrorModule-DYBRYzYX.css} +1 -1
- package/lib/vite/recorder/assets/codeMirrorModule-J9qzxMdF.js +32 -0
- package/lib/vite/recorder/assets/index-B-bWMErY.js +193 -0
- package/lib/vite/recorder/assets/{index-Ri0uHF7I.css → index-BSjZa4pk.css} +1 -1
- package/lib/vite/recorder/index.html +2 -2
- package/lib/vite/traceViewer/assets/codeMirrorModule-8UJPCtp4.js +16884 -0
- package/lib/vite/{recorder/assets/codeMirrorModule-BoWUGj0J.js → traceViewer/assets/codeMirrorModule-BNr6yhVP.js} +1 -1
- package/lib/vite/traceViewer/assets/codeMirrorModule-DkmsYcws.js +32 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-DySgctgr.js +16884 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-CtEsdeVH.js +266 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-D4fm31R-.js +34087 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-JtyB0yzL.js +34087 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-tEZf-LNj.js +266 -0
- package/lib/vite/traceViewer/assets/xtermModule-DDw6eROI.js +6168 -0
- package/lib/vite/traceViewer/codeMirrorModule.DYBRYzYX.css +1 -0
- package/lib/vite/traceViewer/codeMirrorModule.DuST8d_k.css +344 -0
- package/lib/vite/traceViewer/defaultSettingsView.5FCqBwKs.css +3986 -0
- package/lib/vite/traceViewer/defaultSettingsView.7ch9cixO.css +1 -0
- package/lib/vite/traceViewer/index.BQs8gGhY.js +249 -0
- package/lib/vite/traceViewer/index.BVu7tZDe.css +1 -0
- package/lib/vite/traceViewer/index.BoLn624r.js +2 -0
- package/lib/vite/traceViewer/index.Bq_EaK8x.js +249 -0
- package/lib/vite/traceViewer/index.C8YVh4B5.js +2 -0
- package/lib/vite/traceViewer/index.G-7UhDxt.css +164 -0
- package/lib/vite/traceViewer/index.html +4 -4
- package/lib/vite/traceViewer/sw.bundle.js +5 -3
- package/lib/vite/traceViewer/uiMode.-Kflt2XM.css +1440 -0
- package/lib/vite/traceViewer/uiMode.BTRKnokb.js +5 -0
- package/lib/vite/traceViewer/uiMode.CIWF23si.js +1829 -0
- package/lib/vite/traceViewer/uiMode.Wi-DvIEY.js +1829 -0
- package/lib/vite/traceViewer/uiMode.html +3 -3
- package/lib/vite/traceViewer/uiMode.zEH1ejvz.js +5 -0
- package/lib/vite/traceViewer/xtermModule.BKlWQB97.css +218 -0
- package/package.json +3 -1
- package/types/protocol.d.ts +738 -159
- package/types/types.d.ts +25 -38
- package/lib/vite/recorder/assets/index-DJqDAOZp.js +0 -193
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{color-scheme:light dark}body{--transparent-blue: #2196F355;--light-pink: #ff69b460;--gray: #888888;--sidebar-width: 250px;--box-shadow: rgba(0, 0, 0, .133) 0px 1.6px 3.6px 0px, rgba(0, 0, 0, .11) 0px .3px .9px 0px}html,body{width:100%;height:100%;padding:0;margin:0;overflow:hidden;display:flex;overscroll-behavior-x:none}#root{width:100%;height:100%;display:flex}body,dialog{background-color:var(--vscode-panel-background);color:var(--vscode-foreground);font-family:var(--vscode-font-family);font-weight:var(--vscode-font-weight);font-size:var(--vscode-font-size);-webkit-font-smoothing:antialiased}a{color:var(--vscode-textLink-foreground)}dialog{border:none;padding:0;box-shadow:var(--box-shadow);line-height:28px;max-width:400px}dialog .title{display:flex;align-items:center;margin:0;padding:0 5px;height:32px;background-color:var(--vscode-sideBar-background);max-width:400px}dialog .title .codicon{margin-right:3px}dialog .body{padding:10px;text-align:center}.button{color:var(--vscode-button-foreground);background:var(--vscode-button-background);margin:10px;border:none;height:28px;min-width:40px;cursor:pointer;-webkit-user-select:none;user-select:none}.button:focus{outline:1px solid var(--vscode-focusBorder)}.button:hover{background:var(--vscode-button-hoverBackground)}.button.secondary{color:var(--vscode-button-secondaryForeground);background:var(--vscode-button-secondaryBackground)}.button.secondary:hover{background:var(--vscode-button-secondaryHoverBackground)}*{box-sizing:border-box;min-width:0;min-height:0}*[hidden],.hidden{display:none!important}.invisible{visibility:hidden!important}svg{fill:currentColor}.vbox{display:flex;flex-direction:column;flex:auto;position:relative}.fill{position:absolute;top:0;right:0;bottom:0;left:0}.hbox{display:flex;flex:auto;position:relative}.spacer{flex:auto}.codicon-check{color:var(--vscode-charts-green)}.codicon-error{color:var(--vscode-errorForeground)}.codicon-warning{color:var(--vscode-list-warningForeground)}.codicon-circle-outline{color:var(--vscode-disabledForeground)}input[type=text],input[type=search]{color:var(--vscode-input-foreground);background-color:var(--vscode-input-background);border:none;outline:none}.codicon-loading{animation:spin 1s infinite linear}::placeholder{color:var(--vscode-input-placeholderForeground)}@keyframes spin{to{transform:rotate(360deg)}}@font-face{font-family:codicon;src:url(./codicon.DCmgc-ay.ttf) format("truetype")}.codicon{font: 16px/1 codicon;flex:none;display:inline-block;text-decoration:none;text-rendering:auto;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.codicon-add:before{content:""}.codicon-plus:before{content:""}.codicon-gist-new:before{content:""}.codicon-repo-create:before{content:""}.codicon-lightbulb:before{content:""}.codicon-light-bulb:before{content:""}.codicon-repo:before{content:""}.codicon-repo-delete:before{content:""}.codicon-gist-fork:before{content:""}.codicon-repo-forked:before{content:""}.codicon-git-pull-request:before{content:""}.codicon-git-pull-request-abandoned:before{content:""}.codicon-record-keys:before{content:""}.codicon-keyboard:before{content:""}.codicon-tag:before{content:""}.codicon-git-pull-request-label:before{content:""}.codicon-tag-add:before{content:""}.codicon-tag-remove:before{content:""}.codicon-person:before{content:""}.codicon-person-follow:before{content:""}.codicon-person-outline:before{content:""}.codicon-person-filled:before{content:""}.codicon-git-branch:before{content:""}.codicon-git-branch-create:before{content:""}.codicon-git-branch-delete:before{content:""}.codicon-source-control:before{content:""}.codicon-mirror:before{content:""}.codicon-mirror-public:before{content:""}.codicon-star:before{content:""}.codicon-star-add:before{content:""}.codicon-star-delete:before{content:""}.codicon-star-empty:before{content:""}.codicon-comment:before{content:""}.codicon-comment-add:before{content:""}.codicon-alert:before{content:""}.codicon-warning:before{content:""}.codicon-search:before{content:""}.codicon-search-save:before{content:""}.codicon-log-out:before{content:""}.codicon-sign-out:before{content:""}.codicon-log-in:before{content:""}.codicon-sign-in:before{content:""}.codicon-eye:before{content:""}.codicon-eye-unwatch:before{content:""}.codicon-eye-watch:before{content:""}.codicon-circle-filled:before{content:""}.codicon-primitive-dot:before{content:""}.codicon-close-dirty:before{content:""}.codicon-debug-breakpoint:before{content:""}.codicon-debug-breakpoint-disabled:before{content:""}.codicon-debug-hint:before{content:""}.codicon-terminal-decoration-success:before{content:""}.codicon-primitive-square:before{content:""}.codicon-edit:before{content:""}.codicon-pencil:before{content:""}.codicon-info:before{content:""}.codicon-issue-opened:before{content:""}.codicon-gist-private:before{content:""}.codicon-git-fork-private:before{content:""}.codicon-lock:before{content:""}.codicon-mirror-private:before{content:""}.codicon-close:before{content:""}.codicon-remove-close:before{content:""}.codicon-x:before{content:""}.codicon-repo-sync:before{content:""}.codicon-sync:before{content:""}.codicon-clone:before{content:""}.codicon-desktop-download:before{content:""}.codicon-beaker:before{content:""}.codicon-microscope:before{content:""}.codicon-vm:before{content:""}.codicon-device-desktop:before{content:""}.codicon-file:before{content:""}.codicon-file-text:before{content:""}.codicon-more:before{content:""}.codicon-ellipsis:before{content:""}.codicon-kebab-horizontal:before{content:""}.codicon-mail-reply:before{content:""}.codicon-reply:before{content:""}.codicon-organization:before{content:""}.codicon-organization-filled:before{content:""}.codicon-organization-outline:before{content:""}.codicon-new-file:before{content:""}.codicon-file-add:before{content:""}.codicon-new-folder:before{content:""}.codicon-file-directory-create:before{content:""}.codicon-trash:before{content:""}.codicon-trashcan:before{content:""}.codicon-history:before{content:""}.codicon-clock:before{content:""}.codicon-folder:before{content:""}.codicon-file-directory:before{content:""}.codicon-symbol-folder:before{content:""}.codicon-logo-github:before{content:""}.codicon-mark-github:before{content:""}.codicon-github:before{content:""}.codicon-terminal:before{content:""}.codicon-console:before{content:""}.codicon-repl:before{content:""}.codicon-zap:before{content:""}.codicon-symbol-event:before{content:""}.codicon-error:before{content:""}.codicon-stop:before{content:""}.codicon-variable:before{content:""}.codicon-symbol-variable:before{content:""}.codicon-array:before{content:""}.codicon-symbol-array:before{content:""}.codicon-symbol-module:before{content:""}.codicon-symbol-package:before{content:""}.codicon-symbol-namespace:before{content:""}.codicon-symbol-object:before{content:""}.codicon-symbol-method:before{content:""}.codicon-symbol-function:before{content:""}.codicon-symbol-constructor:before{content:""}.codicon-symbol-boolean:before{content:""}.codicon-symbol-null:before{content:""}.codicon-symbol-numeric:before{content:""}.codicon-symbol-number:before{content:""}.codicon-symbol-structure:before{content:""}.codicon-symbol-struct:before{content:""}.codicon-symbol-parameter:before{content:""}.codicon-symbol-type-parameter:before{content:""}.codicon-symbol-key:before{content:""}.codicon-symbol-text:before{content:""}.codicon-symbol-reference:before{content:""}.codicon-go-to-file:before{content:""}.codicon-symbol-enum:before{content:""}.codicon-symbol-value:before{content:""}.codicon-symbol-ruler:before{content:""}.codicon-symbol-unit:before{content:""}.codicon-activate-breakpoints:before{content:""}.codicon-archive:before{content:""}.codicon-arrow-both:before{content:""}.codicon-arrow-down:before{content:""}.codicon-arrow-left:before{content:""}.codicon-arrow-right:before{content:""}.codicon-arrow-small-down:before{content:""}.codicon-arrow-small-left:before{content:""}.codicon-arrow-small-right:before{content:""}.codicon-arrow-small-up:before{content:""}.codicon-arrow-up:before{content:""}.codicon-bell:before{content:""}.codicon-bold:before{content:""}.codicon-book:before{content:""}.codicon-bookmark:before{content:""}.codicon-debug-breakpoint-conditional-unverified:before{content:""}.codicon-debug-breakpoint-conditional:before{content:""}.codicon-debug-breakpoint-conditional-disabled:before{content:""}.codicon-debug-breakpoint-data-unverified:before{content:""}.codicon-debug-breakpoint-data:before{content:""}.codicon-debug-breakpoint-data-disabled:before{content:""}.codicon-debug-breakpoint-log-unverified:before{content:""}.codicon-debug-breakpoint-log:before{content:""}.codicon-debug-breakpoint-log-disabled:before{content:""}.codicon-briefcase:before{content:""}.codicon-broadcast:before{content:""}.codicon-browser:before{content:""}.codicon-bug:before{content:""}.codicon-calendar:before{content:""}.codicon-case-sensitive:before{content:""}.codicon-check:before{content:""}.codicon-checklist:before{content:""}.codicon-chevron-down:before{content:""}.codicon-chevron-left:before{content:""}.codicon-chevron-right:before{content:""}.codicon-chevron-up:before{content:""}.codicon-chrome-close:before{content:""}.codicon-chrome-maximize:before{content:""}.codicon-chrome-minimize:before{content:""}.codicon-chrome-restore:before{content:""}.codicon-circle-outline:before{content:""}.codicon-circle:before{content:""}.codicon-debug-breakpoint-unverified:before{content:""}.codicon-terminal-decoration-incomplete:before{content:""}.codicon-circle-slash:before{content:""}.codicon-circuit-board:before{content:""}.codicon-clear-all:before{content:""}.codicon-clippy:before{content:""}.codicon-close-all:before{content:""}.codicon-cloud-download:before{content:""}.codicon-cloud-upload:before{content:""}.codicon-code:before{content:""}.codicon-collapse-all:before{content:""}.codicon-color-mode:before{content:""}.codicon-comment-discussion:before{content:""}.codicon-credit-card:before{content:""}.codicon-dash:before{content:""}.codicon-dashboard:before{content:""}.codicon-database:before{content:""}.codicon-debug-continue:before{content:""}.codicon-debug-disconnect:before{content:""}.codicon-debug-pause:before{content:""}.codicon-debug-restart:before{content:""}.codicon-debug-start:before{content:""}.codicon-debug-step-into:before{content:""}.codicon-debug-step-out:before{content:""}.codicon-debug-step-over:before{content:""}.codicon-debug-stop:before{content:""}.codicon-debug:before{content:""}.codicon-device-camera-video:before{content:""}.codicon-device-camera:before{content:""}.codicon-device-mobile:before{content:""}.codicon-diff-added:before{content:""}.codicon-diff-ignored:before{content:""}.codicon-diff-modified:before{content:""}.codicon-diff-removed:before{content:""}.codicon-diff-renamed:before{content:""}.codicon-diff:before{content:""}.codicon-diff-sidebyside:before{content:""}.codicon-discard:before{content:""}.codicon-editor-layout:before{content:""}.codicon-empty-window:before{content:""}.codicon-exclude:before{content:""}.codicon-extensions:before{content:""}.codicon-eye-closed:before{content:""}.codicon-file-binary:before{content:""}.codicon-file-code:before{content:""}.codicon-file-media:before{content:""}.codicon-file-pdf:before{content:""}.codicon-file-submodule:before{content:""}.codicon-file-symlink-directory:before{content:""}.codicon-file-symlink-file:before{content:""}.codicon-file-zip:before{content:""}.codicon-files:before{content:""}.codicon-filter:before{content:""}.codicon-flame:before{content:""}.codicon-fold-down:before{content:""}.codicon-fold-up:before{content:""}.codicon-fold:before{content:""}.codicon-folder-active:before{content:""}.codicon-folder-opened:before{content:""}.codicon-gear:before{content:""}.codicon-gift:before{content:""}.codicon-gist-secret:before{content:""}.codicon-gist:before{content:""}.codicon-git-commit:before{content:""}.codicon-git-compare:before{content:""}.codicon-compare-changes:before{content:""}.codicon-git-merge:before{content:""}.codicon-github-action:before{content:""}.codicon-github-alt:before{content:""}.codicon-globe:before{content:""}.codicon-grabber:before{content:""}.codicon-graph:before{content:""}.codicon-gripper:before{content:""}.codicon-heart:before{content:""}.codicon-home:before{content:""}.codicon-horizontal-rule:before{content:""}.codicon-hubot:before{content:""}.codicon-inbox:before{content:""}.codicon-issue-reopened:before{content:""}.codicon-issues:before{content:""}.codicon-italic:before{content:""}.codicon-jersey:before{content:""}.codicon-json:before{content:""}.codicon-kebab-vertical:before{content:""}.codicon-key:before{content:""}.codicon-law:before{content:""}.codicon-lightbulb-autofix:before{content:""}.codicon-link-external:before{content:""}.codicon-link:before{content:""}.codicon-list-ordered:before{content:""}.codicon-list-unordered:before{content:""}.codicon-live-share:before{content:""}.codicon-loading:before{content:""}.codicon-location:before{content:""}.codicon-mail-read:before{content:""}.codicon-mail:before{content:""}.codicon-markdown:before{content:""}.codicon-megaphone:before{content:""}.codicon-mention:before{content:""}.codicon-milestone:before{content:""}.codicon-git-pull-request-milestone:before{content:""}.codicon-mortar-board:before{content:""}.codicon-move:before{content:""}.codicon-multiple-windows:before{content:""}.codicon-mute:before{content:""}.codicon-no-newline:before{content:""}.codicon-note:before{content:""}.codicon-octoface:before{content:""}.codicon-open-preview:before{content:""}.codicon-package:before{content:""}.codicon-paintcan:before{content:""}.codicon-pin:before{content:""}.codicon-play:before{content:""}.codicon-run:before{content:""}.codicon-plug:before{content:""}.codicon-preserve-case:before{content:""}.codicon-preview:before{content:""}.codicon-project:before{content:""}.codicon-pulse:before{content:""}.codicon-question:before{content:""}.codicon-quote:before{content:""}.codicon-radio-tower:before{content:""}.codicon-reactions:before{content:""}.codicon-references:before{content:""}.codicon-refresh:before{content:""}.codicon-regex:before{content:""}.codicon-remote-explorer:before{content:""}.codicon-remote:before{content:""}.codicon-remove:before{content:""}.codicon-replace-all:before{content:""}.codicon-replace:before{content:""}.codicon-repo-clone:before{content:""}.codicon-repo-force-push:before{content:""}.codicon-repo-pull:before{content:""}.codicon-repo-push:before{content:""}.codicon-report:before{content:""}.codicon-request-changes:before{content:""}.codicon-rocket:before{content:""}.codicon-root-folder-opened:before{content:""}.codicon-root-folder:before{content:""}.codicon-rss:before{content:""}.codicon-ruby:before{content:""}.codicon-save-all:before{content:""}.codicon-save-as:before{content:""}.codicon-save:before{content:""}.codicon-screen-full:before{content:""}.codicon-screen-normal:before{content:""}.codicon-search-stop:before{content:""}.codicon-server:before{content:""}.codicon-settings-gear:before{content:""}.codicon-settings:before{content:""}.codicon-shield:before{content:""}.codicon-smiley:before{content:""}.codicon-sort-precedence:before{content:""}.codicon-split-horizontal:before{content:""}.codicon-split-vertical:before{content:""}.codicon-squirrel:before{content:""}.codicon-star-full:before{content:""}.codicon-star-half:before{content:""}.codicon-symbol-class:before{content:""}.codicon-symbol-color:before{content:""}.codicon-symbol-constant:before{content:""}.codicon-symbol-enum-member:before{content:""}.codicon-symbol-field:before{content:""}.codicon-symbol-file:before{content:""}.codicon-symbol-interface:before{content:""}.codicon-symbol-keyword:before{content:""}.codicon-symbol-misc:before{content:""}.codicon-symbol-operator:before{content:""}.codicon-symbol-property:before{content:""}.codicon-wrench:before{content:""}.codicon-wrench-subaction:before{content:""}.codicon-symbol-snippet:before{content:""}.codicon-tasklist:before{content:""}.codicon-telescope:before{content:""}.codicon-text-size:before{content:""}.codicon-three-bars:before{content:""}.codicon-thumbsdown:before{content:""}.codicon-thumbsup:before{content:""}.codicon-tools:before{content:""}.codicon-triangle-down:before{content:""}.codicon-triangle-left:before{content:""}.codicon-triangle-right:before{content:""}.codicon-triangle-up:before{content:""}.codicon-twitter:before{content:""}.codicon-unfold:before{content:""}.codicon-unlock:before{content:""}.codicon-unmute:before{content:""}.codicon-unverified:before{content:""}.codicon-verified:before{content:""}.codicon-versions:before{content:""}.codicon-vm-active:before{content:""}.codicon-vm-outline:before{content:""}.codicon-vm-running:before{content:""}.codicon-watch:before{content:""}.codicon-whitespace:before{content:""}.codicon-whole-word:before{content:""}.codicon-window:before{content:""}.codicon-word-wrap:before{content:""}.codicon-zoom-in:before{content:""}.codicon-zoom-out:before{content:""}.codicon-list-filter:before{content:""}.codicon-list-flat:before{content:""}.codicon-list-selection:before{content:""}.codicon-selection:before{content:""}.codicon-list-tree:before{content:""}.codicon-debug-breakpoint-function-unverified:before{content:""}.codicon-debug-breakpoint-function:before{content:""}.codicon-debug-breakpoint-function-disabled:before{content:""}.codicon-debug-stackframe-active:before{content:""}.codicon-circle-small-filled:before{content:""}.codicon-debug-stackframe-dot:before{content:""}.codicon-terminal-decoration-mark:before{content:""}.codicon-debug-stackframe:before{content:""}.codicon-debug-stackframe-focused:before{content:""}.codicon-debug-breakpoint-unsupported:before{content:""}.codicon-symbol-string:before{content:""}.codicon-debug-reverse-continue:before{content:""}.codicon-debug-step-back:before{content:""}.codicon-debug-restart-frame:before{content:""}.codicon-debug-alt:before{content:""}.codicon-call-incoming:before{content:""}.codicon-call-outgoing:before{content:""}.codicon-menu:before{content:""}.codicon-expand-all:before{content:""}.codicon-feedback:before{content:""}.codicon-git-pull-request-reviewer:before{content:""}.codicon-group-by-ref-type:before{content:""}.codicon-ungroup-by-ref-type:before{content:""}.codicon-account:before{content:""}.codicon-git-pull-request-assignee:before{content:""}.codicon-bell-dot:before{content:""}.codicon-debug-console:before{content:""}.codicon-library:before{content:""}.codicon-output:before{content:""}.codicon-run-all:before{content:""}.codicon-sync-ignored:before{content:""}.codicon-pinned:before{content:""}.codicon-github-inverted:before{content:""}.codicon-server-process:before{content:""}.codicon-server-environment:before{content:""}.codicon-pass:before{content:""}.codicon-issue-closed:before{content:""}.codicon-stop-circle:before{content:""}.codicon-play-circle:before{content:""}.codicon-record:before{content:""}.codicon-debug-alt-small:before{content:""}.codicon-vm-connect:before{content:""}.codicon-cloud:before{content:""}.codicon-merge:before{content:""}.codicon-export:before{content:""}.codicon-graph-left:before{content:""}.codicon-magnet:before{content:""}.codicon-notebook:before{content:""}.codicon-redo:before{content:""}.codicon-check-all:before{content:""}.codicon-pinned-dirty:before{content:""}.codicon-pass-filled:before{content:""}.codicon-circle-large-filled:before{content:""}.codicon-circle-large:before{content:""}.codicon-circle-large-outline:before{content:""}.codicon-combine:before{content:""}.codicon-gather:before{content:""}.codicon-table:before{content:""}.codicon-variable-group:before{content:""}.codicon-type-hierarchy:before{content:""}.codicon-type-hierarchy-sub:before{content:""}.codicon-type-hierarchy-super:before{content:""}.codicon-git-pull-request-create:before{content:""}.codicon-run-above:before{content:""}.codicon-run-below:before{content:""}.codicon-notebook-template:before{content:""}.codicon-debug-rerun:before{content:""}.codicon-workspace-trusted:before{content:""}.codicon-workspace-untrusted:before{content:""}.codicon-workspace-unknown:before{content:""}.codicon-terminal-cmd:before{content:""}.codicon-terminal-debian:before{content:""}.codicon-terminal-linux:before{content:""}.codicon-terminal-powershell:before{content:""}.codicon-terminal-tmux:before{content:""}.codicon-terminal-ubuntu:before{content:""}.codicon-terminal-bash:before{content:""}.codicon-arrow-swap:before{content:""}.codicon-copy:before{content:""}.codicon-person-add:before{content:""}.codicon-filter-filled:before{content:""}.codicon-wand:before{content:""}.codicon-debug-line-by-line:before{content:""}.codicon-inspect:before{content:""}.codicon-layers:before{content:""}.codicon-layers-dot:before{content:""}.codicon-layers-active:before{content:""}.codicon-compass:before{content:""}.codicon-compass-dot:before{content:""}.codicon-compass-active:before{content:""}.codicon-azure:before{content:""}.codicon-issue-draft:before{content:""}.codicon-git-pull-request-closed:before{content:""}.codicon-git-pull-request-draft:before{content:""}.codicon-debug-all:before{content:""}.codicon-debug-coverage:before{content:""}.codicon-run-errors:before{content:""}.codicon-folder-library:before{content:""}.codicon-debug-continue-small:before{content:""}.codicon-beaker-stop:before{content:""}.codicon-graph-line:before{content:""}.codicon-graph-scatter:before{content:""}.codicon-pie-chart:before{content:""}.codicon-bracket:before{content:""}.codicon-bracket-dot:before{content:""}.codicon-bracket-error:before{content:""}.codicon-lock-small:before{content:""}.codicon-azure-devops:before{content:""}.codicon-verified-filled:before{content:""}.codicon-newline:before{content:""}.codicon-layout:before{content:""}.codicon-layout-activitybar-left:before{content:""}.codicon-layout-activitybar-right:before{content:""}.codicon-layout-panel-left:before{content:""}.codicon-layout-panel-center:before{content:""}.codicon-layout-panel-justify:before{content:""}.codicon-layout-panel-right:before{content:""}.codicon-layout-panel:before{content:""}.codicon-layout-sidebar-left:before{content:""}.codicon-layout-sidebar-right:before{content:""}.codicon-layout-statusbar:before{content:""}.codicon-layout-menubar:before{content:""}.codicon-layout-centered:before{content:""}.codicon-target:before{content:""}.codicon-indent:before{content:""}.codicon-record-small:before{content:""}.codicon-error-small:before{content:""}.codicon-terminal-decoration-error:before{content:""}.codicon-arrow-circle-down:before{content:""}.codicon-arrow-circle-left:before{content:""}.codicon-arrow-circle-right:before{content:""}.codicon-arrow-circle-up:before{content:""}.codicon-layout-sidebar-right-off:before{content:""}.codicon-layout-panel-off:before{content:""}.codicon-layout-sidebar-left-off:before{content:""}.codicon-blank:before{content:""}.codicon-heart-filled:before{content:""}.codicon-map:before{content:""}.codicon-map-horizontal:before{content:""}.codicon-fold-horizontal:before{content:""}.codicon-map-filled:before{content:""}.codicon-map-horizontal-filled:before{content:""}.codicon-fold-horizontal-filled:before{content:""}.codicon-circle-small:before{content:""}.codicon-bell-slash:before{content:""}.codicon-bell-slash-dot:before{content:""}.codicon-comment-unresolved:before{content:""}.codicon-git-pull-request-go-to-changes:before{content:""}.codicon-git-pull-request-new-changes:before{content:""}.codicon-search-fuzzy:before{content:""}.codicon-comment-draft:before{content:""}.codicon-send:before{content:""}.codicon-sparkle:before{content:""}.codicon-insert:before{content:""}.codicon-mic:before{content:""}.codicon-thumbsdown-filled:before{content:""}.codicon-thumbsup-filled:before{content:""}.codicon-coffee:before{content:""}.codicon-snake:before{content:""}.codicon-game:before{content:""}.codicon-vr:before{content:""}.codicon-chip:before{content:""}.codicon-piano:before{content:""}.codicon-music:before{content:""}.codicon-mic-filled:before{content:""}.codicon-repo-fetch:before{content:""}.codicon-copilot:before{content:""}.codicon-lightbulb-sparkle:before{content:""}.codicon-robot:before{content:""}.codicon-sparkle-filled:before{content:""}.codicon-diff-single:before{content:""}.codicon-diff-multiple:before{content:""}.codicon-surround-with:before{content:""}.codicon-share:before{content:""}.codicon-git-stash:before{content:""}.codicon-git-stash-apply:before{content:""}.codicon-git-stash-pop:before{content:""}.codicon-vscode:before{content:""}.codicon-vscode-insiders:before{content:""}.codicon-code-oss:before{content:""}.codicon-run-coverage:before{content:""}.codicon-run-all-coverage:before{content:""}.codicon-coverage:before{content:""}.codicon-github-project:before{content:""}.codicon-map-vertical:before{content:""}.codicon-fold-vertical:before{content:""}.codicon-map-vertical-filled:before{content:""}.codicon-fold-vertical-filled:before{content:""}.codicon-go-to-search:before{content:""}.codicon-percentage:before{content:""}.codicon-sort-percentage:before{content:""}.codicon-attach:before{content:""}.codicon-git-fetch:before{content:""}.split-view{display:flex;flex:auto;position:relative}.split-view.vertical{flex-direction:column}.split-view.vertical.sidebar-first{flex-direction:column-reverse}.split-view.horizontal{flex-direction:row}.split-view.horizontal.sidebar-first{flex-direction:row-reverse}.split-view-main{display:flex;flex:auto}.split-view-sidebar{display:flex;flex:none}.split-view.vertical:not(.sidebar-first)>.split-view-sidebar{border-top:1px solid var(--vscode-panel-border)}.split-view.horizontal:not(.sidebar-first)>.split-view-sidebar{border-left:1px solid var(--vscode-panel-border)}.split-view.vertical.sidebar-first>.split-view-sidebar{border-bottom:1px solid var(--vscode-panel-border)}.split-view.horizontal.sidebar-first>.split-view-sidebar{border-right:1px solid var(--vscode-panel-border)}.split-view-resizer{position:absolute;z-index:100}.split-view.vertical>.split-view-resizer{left:0;right:0;height:12px;cursor:ns-resize}.split-view.horizontal>.split-view-resizer{top:0;bottom:0;width:12px;cursor:ew-resize}.action-title>.hbox{align-items:center}.action-title-line{display:block;overflow:hidden;text-overflow:ellipsis}.action-title-selector{text-overflow:ellipsis;overflow:hidden;color:var(--vscode-tab-inactiveForeground);margin-top:-8px}.action-title-method{white-space:pre;overflow:hidden;text-overflow:ellipsis;font-weight:500}.action-title-param{color:var(--vscode-editorBracketHighlight-foreground1)}.action-location{display:flex;flex:none;margin:0 4px;color:var(--vscode-foreground)}.action-location>span{margin:0 4px;cursor:pointer;text-decoration:underline}.action-duration{display:flex;flex:none;align-items:center;margin:0 4px;color:var(--vscode-editorCodeLens-foreground)}.action-skipped{margin-right:4px}.action-icon{flex:none;display:flex;align-items:center;padding-right:3px}.action-icons{flex:none;display:flex;flex-direction:row;cursor:pointer;height:20px;position:relative;top:1px;border-bottom:1px solid transparent}.action-icons:hover{border-bottom:1px solid var(--vscode-sideBarTitle-foreground)}.action-error{color:var(--vscode-errorForeground);position:relative;margin-right:2px;flex:none}.action-parameter{display:inline;flex:none;padding-left:5px}.action-locator-parameter{color:var(--vscode-charts-orange)}.action-generic-parameter{color:var(--vscode-charts-purple)}.action-url{display:inline;flex:none;padding-left:5px;color:var(--vscode-charts-blue)}.action-list-show-all{display:flex;cursor:pointer;height:28px;align-items:center}.tree-view-content{display:flex;flex-direction:column;flex:auto;position:relative;-webkit-user-select:none;user-select:none;overflow:hidden auto;outline:1px solid transparent}.tree-view-entry{display:flex;flex:none;cursor:pointer;align-items:center;white-space:nowrap;line-height:28px;padding-left:5px}.tree-view-content.not-selectable>.tree-view-entry{cursor:inherit}.tree-view-entry.highlighted:not(.selected){background-color:var(--vscode-list-inactiveSelectionBackground)!important}.tree-view-entry.selected{z-index:10}.tree-view-indent{min-width:16px}.tree-view-content:focus .tree-view-entry.selected{background-color:var(--vscode-list-activeSelectionBackground);color:var(--vscode-list-activeSelectionForeground);outline:1px solid var(--vscode-focusBorder)}.tree-view-content .tree-view-entry.selected{background-color:var(--vscode-list-inactiveSelectionBackground)}.tree-view-content:focus .tree-view-entry.selected *{color:var(--vscode-list-activeSelectionForeground)!important;background-color:transparent!important}.tree-view-content:focus .tree-view-entry.selected .codicon{color:var(--vscode-list-activeSelectionForeground)!important}.tree-view-content:focus .tree-view-entry.selected button.eye.toggled{border-radius:6px;outline:1px solid var(--vscode-button-foreground)}.tree-view-empty{flex:auto;display:flex;align-items:center;justify-content:center}.tree-view-entry.error{color:var(--vscode-list-errorForeground);background-color:var(--vscode-inputValidation-errorBackground)}.tree-view-entry.warning{color:var(--vscode-list-warningForeground);background-color:var(--vscode-inputValidation-warningBackground)}.tree-view-entry.info{background-color:var(--vscode-inputValidation-infoBackground)}.toolbar-button{flex:none;border:none;outline:none;color:var(--vscode-sideBarTitle-foreground);background:transparent;padding:4px;cursor:pointer;display:inline-flex;align-items:center}.toolbar-button:disabled{color:var(--vscode-disabledForeground)!important;cursor:default}.toolbar-button:not(:disabled):hover{background-color:var(--vscode-toolbar-hoverBackground)}.toolbar-button:not(:disabled):active{background-color:var(--vscode-toolbar-activeBackground)}.toolbar-button.toggled{color:var(--vscode-notificationLink-foreground)}.toolbar-separator{flex:none;background-color:var(--vscode-menu-separatorBackground);width:1px;padding:0;margin:5px 4px;height:16px}.call-tab{flex:auto;line-height:24px;white-space:pre;overflow:auto;-webkit-user-select:text;user-select:text}.call-error{border-bottom:1px solid var(--vscode-panel-border);padding:3px 0 3px 12px}.call-error .codicon{color:var(--vscode-errorForeground);position:relative;top:2px;margin-right:2px}.call-section{padding-left:6px;padding-top:2px;margin-top:2px;font-weight:700;text-transform:uppercase;font-size:10px;color:var(--vscode-sideBarTitle-foreground);line-height:24px}.call-section:not(:first-child){border-top:1px solid var(--vscode-panel-border)}.call-line{padding:4px 0 4px 6px;display:flex;align-items:center;text-overflow:ellipsis;overflow:hidden;line-height:20px;white-space:nowrap}.call-line:not(:hover) .toolbar-button.copy{display:none}.call-line .toolbar-button.copy,.call-line .toolbar-button.check{margin-left:5px;margin-top:-2px;margin-bottom:-2px}.call-value{margin-left:2px;text-overflow:ellipsis;overflow:hidden}a.call-value{text-decoration:none}a.call-value:hover{text-decoration:underline}.call-value:before{content:" "}.call-value.datetime,.call-value.string,.call-value.literal,.call-value.locator{color:var(--vscode-charts-orange)}.call-value.number,.call-value.bigint,.call-value.boolean,.call-value.symbol,.call-value.undefined,.call-value.function,.call-value.object{color:var(--vscode-charts-blue)}.call-tab .error-message{padding:5px;line-height:17px}.copy-to-clipboard-text-button{background-color:var(--vscode-editor-inactiveSelectionBackground);border:none;padding:4px 12px;cursor:pointer}.list-view-content{display:flex;flex-direction:column;flex:auto;position:relative;-webkit-user-select:none;user-select:none;overflow:hidden auto;outline:1px solid transparent}.list-view-entry{display:flex;flex:none;cursor:pointer;align-items:center;white-space:nowrap;line-height:28px;padding-left:5px}.list-view-content.not-selectable>.list-view-entry{cursor:inherit}.list-view-entry.highlighted:not(.selected){background-color:var(--vscode-list-inactiveSelectionBackground)!important}.list-view-entry.selected{z-index:10}.list-view-indent{min-width:16px}.list-view-content:focus .list-view-entry.selected{background-color:var(--vscode-list-activeSelectionBackground);color:var(--vscode-list-activeSelectionForeground);outline:1px solid var(--vscode-focusBorder)}.list-view-content .list-view-entry.selected{background-color:var(--vscode-list-inactiveSelectionBackground)}.list-view-content:focus .list-view-entry.selected *{color:var(--vscode-list-activeSelectionForeground)!important;background-color:transparent!important}.list-view-content:focus .list-view-entry.selected .codicon{color:var(--vscode-list-activeSelectionForeground)!important}.list-view-empty{flex:auto;display:flex;align-items:center;justify-content:center}.list-view-entry.error{color:var(--vscode-list-errorForeground);background-color:var(--vscode-inputValidation-errorBackground)}.list-view-entry.warning{color:var(--vscode-list-warningForeground);background-color:var(--vscode-inputValidation-warningBackground)}.list-view-entry.info{background-color:var(--vscode-inputValidation-infoBackground)}.log-list-duration{display:flex;flex:none;align-items:center;color:var(--vscode-editorCodeLens-foreground);float:right;margin-right:5px;-webkit-user-select:none;user-select:none}.log-list-item{text-wrap:wrap;-webkit-user-select:text;user-select:text;width:100%}.error-message{font-family:var(--vscode-editor-font-family);font-weight:var(--vscode-editor-font-weight);font-size:var(--vscode-editor-font-size);white-space:pre-wrap;word-break:break-word;padding:10px}.attachments-tab{flex:auto;line-height:24px;white-space:pre;overflow:auto;-webkit-user-select:text;user-select:text}.attachments-section{padding-left:6px;font-weight:700;text-transform:uppercase;font-size:12px;color:var(--vscode-sideBarTitle-foreground);line-height:24px}.attachments-section:not(:first-child){border-top:1px solid var(--vscode-panel-border);margin-top:10px}.attachment-item{margin:4px 8px}.attachment-title-highlight{text-decoration:underline var(--vscode-terminal-findMatchBackground);text-decoration-thickness:1.5px}.attachment-item img{flex:none;min-width:200px;max-width:80%;box-shadow:0 12px 28px #0003,0 2px 4px #0000001a}a.codicon-cloud-download:hover{background-color:var(--vscode-list-inactiveSelectionBackground)}.yellow-flash{animation:yellowflash-bg 2s}@keyframes yellowflash-bg{0%{background:var(--vscode-peekViewEditor-matchHighlightBackground)}to{background:transparent}}:root{--vscode-font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif;--vscode-font-weight: normal;--vscode-font-size: 13px;--vscode-editor-font-family: "Droid Sans Mono", "monospace", monospace;--vscode-editor-font-weight: normal;--vscode-editor-font-size: 14px;--vscode-foreground: #616161;--vscode-disabledForeground: rgba(97, 97, 97, .5);--vscode-errorForeground: #a1260d;--vscode-descriptionForeground: #717171;--vscode-icon-foreground: #424242;--vscode-focusBorder: #0090f1;--vscode-textSeparator-foreground: rgba(0, 0, 0, .18);--vscode-textLink-foreground: #006ab1;--vscode-textLink-activeForeground: #006ab1;--vscode-textPreformat-foreground: #a31515;--vscode-textBlockQuote-background: rgba(127, 127, 127, .1);--vscode-textBlockQuote-border: rgba(0, 122, 204, .5);--vscode-textCodeBlock-background: rgba(220, 220, 220, .4);--vscode-widget-shadow: rgba(0, 0, 0, .16);--vscode-input-background: #ffffff;--vscode-input-foreground: #616161;--vscode-inputOption-activeBorder: #007acc;--vscode-inputOption-hoverBackground: rgba(184, 184, 184, .31);--vscode-inputOption-activeBackground: rgba(0, 144, 241, .2);--vscode-inputOption-activeForeground: #000000;--vscode-input-placeholderForeground: #767676;--vscode-inputValidation-infoBackground: #d6ecf2;--vscode-inputValidation-infoBorder: #007acc;--vscode-inputValidation-warningBackground: #f6f5d2;--vscode-inputValidation-warningBorder: #b89500;--vscode-inputValidation-errorBackground: #f2dede;--vscode-inputValidation-errorBorder: #be1100;--vscode-dropdown-background: #ffffff;--vscode-dropdown-border: #cecece;--vscode-checkbox-background: #ffffff;--vscode-checkbox-border: #cecece;--vscode-button-foreground: #ffffff;--vscode-button-separator: rgba(255, 255, 255, .4);--vscode-button-background: #007acc;--vscode-button-hoverBackground: #0062a3;--vscode-button-secondaryForeground: #ffffff;--vscode-button-secondaryBackground: #5f6a79;--vscode-button-secondaryHoverBackground: #4c5561;--vscode-badge-background: #c4c4c4;--vscode-badge-foreground: #333333;--vscode-scrollbar-shadow: #dddddd;--vscode-scrollbarSlider-background: rgba(100, 100, 100, .4);--vscode-scrollbarSlider-hoverBackground: rgba(100, 100, 100, .7);--vscode-scrollbarSlider-activeBackground: rgba(0, 0, 0, .6);--vscode-progressBar-background: #0e70c0;--vscode-editorError-foreground: #e51400;--vscode-editorWarning-foreground: #bf8803;--vscode-editorInfo-foreground: #1a85ff;--vscode-editorHint-foreground: #6c6c6c;--vscode-sash-hoverBorder: #0090f1;--vscode-editor-background: #ffffff;--vscode-editor-foreground: #000000;--vscode-editorStickyScroll-background: #ffffff;--vscode-editorStickyScrollHover-background: #f0f0f0;--vscode-editorWidget-background: #f3f3f3;--vscode-editorWidget-foreground: #616161;--vscode-editorWidget-border: #c8c8c8;--vscode-quickInput-background: #f3f3f3;--vscode-quickInput-foreground: #616161;--vscode-quickInputTitle-background: rgba(0, 0, 0, .06);--vscode-pickerGroup-foreground: #0066bf;--vscode-pickerGroup-border: #cccedb;--vscode-keybindingLabel-background: rgba(221, 221, 221, .4);--vscode-keybindingLabel-foreground: #555555;--vscode-keybindingLabel-border: rgba(204, 204, 204, .4);--vscode-keybindingLabel-bottomBorder: rgba(187, 187, 187, .4);--vscode-editor-selectionBackground: #add6ff;--vscode-editor-inactiveSelectionBackground: #e5ebf1;--vscode-editor-selectionHighlightBackground: rgba(173, 214, 255, .5);--vscode-editor-findMatchBackground: #a8ac94;--vscode-editor-findMatchHighlightBackground: rgba(234, 92, 0, .33);--vscode-editor-findRangeHighlightBackground: rgba(180, 180, 180, .3);--vscode-searchEditor-findMatchBackground: rgba(234, 92, 0, .22);--vscode-editor-hoverHighlightBackground: rgba(173, 214, 255, .15);--vscode-editorHoverWidget-background: #f3f3f3;--vscode-editorHoverWidget-foreground: #616161;--vscode-editorHoverWidget-border: #c8c8c8;--vscode-editorHoverWidget-statusBarBackground: #e7e7e7;--vscode-editorLink-activeForeground: #0000ff;--vscode-editorInlayHint-foreground: rgba(51, 51, 51, .8);--vscode-editorInlayHint-background: rgba(196, 196, 196, .3);--vscode-editorInlayHint-typeForeground: rgba(51, 51, 51, .8);--vscode-editorInlayHint-typeBackground: rgba(196, 196, 196, .3);--vscode-editorInlayHint-parameterForeground: rgba(51, 51, 51, .8);--vscode-editorInlayHint-parameterBackground: rgba(196, 196, 196, .3);--vscode-editorLightBulb-foreground: #ddb100;--vscode-editorLightBulbAutoFix-foreground: #007acc;--vscode-diffEditor-insertedTextBackground: rgba(156, 204, 44, .4);--vscode-diffEditor-removedTextBackground: rgba(255, 0, 0, .3);--vscode-diffEditor-insertedLineBackground: rgba(155, 185, 85, .2);--vscode-diffEditor-removedLineBackground: rgba(255, 0, 0, .2);--vscode-diffEditor-diagonalFill: rgba(34, 34, 34, .2);--vscode-list-focusOutline: #0090f1;--vscode-list-focusAndSelectionOutline: #90c2f9;--vscode-list-activeSelectionBackground: #0060c0;--vscode-list-activeSelectionForeground: #ffffff;--vscode-list-activeSelectionIconForeground: #ffffff;--vscode-list-inactiveSelectionBackground: #e4e6f1;--vscode-list-hoverBackground: #e8e8e8;--vscode-list-dropBackground: #d6ebff;--vscode-list-highlightForeground: #0066bf;--vscode-list-focusHighlightForeground: #bbe7ff;--vscode-list-invalidItemForeground: #b89500;--vscode-list-errorForeground: #b01011;--vscode-list-warningForeground: #855f00;--vscode-listFilterWidget-background: #f3f3f3;--vscode-listFilterWidget-outline: rgba(0, 0, 0, 0);--vscode-listFilterWidget-noMatchesOutline: #be1100;--vscode-listFilterWidget-shadow: rgba(0, 0, 0, .16);--vscode-list-filterMatchBackground: rgba(234, 92, 0, .33);--vscode-tree-indentGuidesStroke: #a9a9a9;--vscode-tree-tableColumnsBorder: rgba(97, 97, 97, .13);--vscode-tree-tableOddRowsBackground: rgba(97, 97, 97, .04);--vscode-list-deemphasizedForeground: #8e8e90;--vscode-quickInputList-focusForeground: #ffffff;--vscode-quickInputList-focusIconForeground: #ffffff;--vscode-quickInputList-focusBackground: #0060c0;--vscode-menu-foreground: #616161;--vscode-menu-background: #ffffff;--vscode-menu-selectionForeground: #ffffff;--vscode-menu-selectionBackground: #0060c0;--vscode-menu-separatorBackground: #d4d4d4;--vscode-toolbar-hoverBackground: rgba(184, 184, 184, .31);--vscode-toolbar-activeBackground: rgba(166, 166, 166, .31);--vscode-editor-snippetTabstopHighlightBackground: rgba(10, 50, 100, .2);--vscode-editor-snippetFinalTabstopHighlightBorder: rgba(10, 50, 100, .5);--vscode-breadcrumb-foreground: rgba(97, 97, 97, .8);--vscode-breadcrumb-background: #ffffff;--vscode-breadcrumb-focusForeground: #4e4e4e;--vscode-breadcrumb-activeSelectionForeground: #4e4e4e;--vscode-breadcrumbPicker-background: #f3f3f3;--vscode-merge-currentHeaderBackground: rgba(64, 200, 174, .5);--vscode-merge-currentContentBackground: rgba(64, 200, 174, .2);--vscode-merge-incomingHeaderBackground: rgba(64, 166, 255, .5);--vscode-merge-incomingContentBackground: rgba(64, 166, 255, .2);--vscode-merge-commonHeaderBackground: rgba(96, 96, 96, .4);--vscode-merge-commonContentBackground: rgba(96, 96, 96, .16);--vscode-editorOverviewRuler-currentContentForeground: rgba(64, 200, 174, .5);--vscode-editorOverviewRuler-incomingContentForeground: rgba(64, 166, 255, .5);--vscode-editorOverviewRuler-commonContentForeground: rgba(96, 96, 96, .4);--vscode-editorOverviewRuler-findMatchForeground: rgba(209, 134, 22, .49);--vscode-editorOverviewRuler-selectionHighlightForeground: rgba(160, 160, 160, .8);--vscode-minimap-findMatchHighlight: #d18616;--vscode-minimap-selectionOccurrenceHighlight: #c9c9c9;--vscode-minimap-selectionHighlight: #add6ff;--vscode-minimap-errorHighlight: rgba(255, 18, 18, .7);--vscode-minimap-warningHighlight: #bf8803;--vscode-minimap-foregroundOpacity: #000000;--vscode-minimapSlider-background: rgba(100, 100, 100, .2);--vscode-minimapSlider-hoverBackground: rgba(100, 100, 100, .35);--vscode-minimapSlider-activeBackground: rgba(0, 0, 0, .3);--vscode-problemsErrorIcon-foreground: #e51400;--vscode-problemsWarningIcon-foreground: #bf8803;--vscode-problemsInfoIcon-foreground: #1a85ff;--vscode-charts-foreground: #616161;--vscode-charts-lines: rgba(97, 97, 97, .5);--vscode-charts-red: #e51400;--vscode-charts-blue: #1a85ff;--vscode-charts-yellow: #bf8803;--vscode-charts-orange: #d18616;--vscode-charts-green: #388a34;--vscode-charts-purple: #652d90;--vscode-editor-lineHighlightBorder: #eeeeee;--vscode-editor-rangeHighlightBackground: rgba(253, 255, 0, .2);--vscode-editor-symbolHighlightBackground: rgba(234, 92, 0, .33);--vscode-editorCursor-foreground: #000000;--vscode-editorWhitespace-foreground: rgba(51, 51, 51, .2);--vscode-editorIndentGuide-background: #d3d3d3;--vscode-editorIndentGuide-activeBackground: #939393;--vscode-editorLineNumber-foreground: #237893;--vscode-editorActiveLineNumber-foreground: #0b216f;--vscode-editorLineNumber-activeForeground: #0b216f;--vscode-editorRuler-foreground: #d3d3d3;--vscode-editorCodeLens-foreground: #919191;--vscode-editorBracketMatch-background: rgba(0, 100, 0, .1);--vscode-editorBracketMatch-border: #b9b9b9;--vscode-editorOverviewRuler-border: rgba(127, 127, 127, .3);--vscode-editorGutter-background: #ffffff;--vscode-editorUnnecessaryCode-opacity: rgba(0, 0, 0, .47);--vscode-editorGhostText-foreground: rgba(0, 0, 0, .47);--vscode-editorOverviewRuler-rangeHighlightForeground: rgba(0, 122, 204, .6);--vscode-editorOverviewRuler-errorForeground: rgba(255, 18, 18, .7);--vscode-editorOverviewRuler-warningForeground: #bf8803;--vscode-editorOverviewRuler-infoForeground: #1a85ff;--vscode-editorBracketHighlight-foreground1: #0431fa;--vscode-editorBracketHighlight-foreground2: #319331;--vscode-editorBracketHighlight-foreground3: #7b3814;--vscode-editorBracketHighlight-foreground4: rgba(0, 0, 0, 0);--vscode-editorBracketHighlight-foreground5: rgba(0, 0, 0, 0);--vscode-editorBracketHighlight-foreground6: rgba(0, 0, 0, 0);--vscode-editorBracketHighlight-unexpectedBracket\.foreground: rgba(255, 18, 18, .8);--vscode-editorBracketPairGuide-background1: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background2: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background3: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background4: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background5: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background6: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground1: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground2: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground3: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground4: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground5: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground6: rgba(0, 0, 0, 0);--vscode-editorUnicodeHighlight-border: #cea33d;--vscode-editorUnicodeHighlight-background: rgba(206, 163, 61, .08);--vscode-symbolIcon-arrayForeground: #616161;--vscode-symbolIcon-booleanForeground: #616161;--vscode-symbolIcon-classForeground: #d67e00;--vscode-symbolIcon-colorForeground: #616161;--vscode-symbolIcon-constantForeground: #616161;--vscode-symbolIcon-constructorForeground: #652d90;--vscode-symbolIcon-enumeratorForeground: #d67e00;--vscode-symbolIcon-enumeratorMemberForeground: #007acc;--vscode-symbolIcon-eventForeground: #d67e00;--vscode-symbolIcon-fieldForeground: #007acc;--vscode-symbolIcon-fileForeground: #616161;--vscode-symbolIcon-folderForeground: #616161;--vscode-symbolIcon-functionForeground: #652d90;--vscode-symbolIcon-interfaceForeground: #007acc;--vscode-symbolIcon-keyForeground: #616161;--vscode-symbolIcon-keywordForeground: #616161;--vscode-symbolIcon-methodForeground: #652d90;--vscode-symbolIcon-moduleForeground: #616161;--vscode-symbolIcon-namespaceForeground: #616161;--vscode-symbolIcon-nullForeground: #616161;--vscode-symbolIcon-numberForeground: #616161;--vscode-symbolIcon-objectForeground: #616161;--vscode-symbolIcon-operatorForeground: #616161;--vscode-symbolIcon-packageForeground: #616161;--vscode-symbolIcon-propertyForeground: #616161;--vscode-symbolIcon-referenceForeground: #616161;--vscode-symbolIcon-snippetForeground: #616161;--vscode-symbolIcon-stringForeground: #616161;--vscode-symbolIcon-structForeground: #616161;--vscode-symbolIcon-textForeground: #616161;--vscode-symbolIcon-typeParameterForeground: #616161;--vscode-symbolIcon-unitForeground: #616161;--vscode-symbolIcon-variableForeground: #007acc;--vscode-editorHoverWidget-highlightForeground: #0066bf;--vscode-editorOverviewRuler-bracketMatchForeground: #a0a0a0;--vscode-editor-foldBackground: rgba(173, 214, 255, .3);--vscode-editorGutter-foldingControlForeground: #424242;--vscode-editor-linkedEditingBackground: rgba(255, 0, 0, .3);--vscode-editor-wordHighlightBackground: rgba(87, 87, 87, .25);--vscode-editor-wordHighlightStrongBackground: rgba(14, 99, 156, .25);--vscode-editorOverviewRuler-wordHighlightForeground: rgba(160, 160, 160, .8);--vscode-editorOverviewRuler-wordHighlightStrongForeground: rgba(192, 160, 192, .8);--vscode-peekViewTitle-background: rgba(26, 133, 255, .1);--vscode-peekViewTitleLabel-foreground: #000000;--vscode-peekViewTitleDescription-foreground: #616161;--vscode-peekView-border: #1a85ff;--vscode-peekViewResult-background: #f3f3f3;--vscode-peekViewResult-lineForeground: #646465;--vscode-peekViewResult-fileForeground: #1e1e1e;--vscode-peekViewResult-selectionBackground: rgba(51, 153, 255, .2);--vscode-peekViewResult-selectionForeground: #6c6c6c;--vscode-peekViewEditor-background: #f2f8fc;--vscode-peekViewEditorGutter-background: #f2f8fc;--vscode-peekViewResult-matchHighlightBackground: rgba(234, 92, 0, .3);--vscode-peekViewEditor-matchHighlightBackground: rgba(245, 216, 2, .87);--vscode-editorMarkerNavigationError-background: #e51400;--vscode-editorMarkerNavigationError-headerBackground: rgba(229, 20, 0, .1);--vscode-editorMarkerNavigationWarning-background: #bf8803;--vscode-editorMarkerNavigationWarning-headerBackground: rgba(191, 136, 3, .1);--vscode-editorMarkerNavigationInfo-background: #1a85ff;--vscode-editorMarkerNavigationInfo-headerBackground: rgba(26, 133, 255, .1);--vscode-editorMarkerNavigation-background: #ffffff;--vscode-editorSuggestWidget-background: #f3f3f3;--vscode-editorSuggestWidget-border: #c8c8c8;--vscode-editorSuggestWidget-foreground: #000000;--vscode-editorSuggestWidget-selectedForeground: #ffffff;--vscode-editorSuggestWidget-selectedIconForeground: #ffffff;--vscode-editorSuggestWidget-selectedBackground: #0060c0;--vscode-editorSuggestWidget-highlightForeground: #0066bf;--vscode-editorSuggestWidget-focusHighlightForeground: #bbe7ff;--vscode-editorSuggestWidgetStatus-foreground: rgba(0, 0, 0, .5);--vscode-tab-activeBackground: #ffffff;--vscode-tab-unfocusedActiveBackground: #ffffff;--vscode-tab-inactiveBackground: #ececec;--vscode-tab-unfocusedInactiveBackground: #ececec;--vscode-tab-activeForeground: #333333;--vscode-tab-inactiveForeground: rgba(51, 51, 51, .7);--vscode-tab-unfocusedActiveForeground: rgba(51, 51, 51, .7);--vscode-tab-unfocusedInactiveForeground: rgba(51, 51, 51, .35);--vscode-tab-border: #f3f3f3;--vscode-tab-lastPinnedBorder: rgba(97, 97, 97, .19);--vscode-tab-activeModifiedBorder: #33aaee;--vscode-tab-inactiveModifiedBorder: rgba(51, 170, 238, .5);--vscode-tab-unfocusedActiveModifiedBorder: rgba(51, 170, 238, .7);--vscode-tab-unfocusedInactiveModifiedBorder: rgba(51, 170, 238, .25);--vscode-editorPane-background: #ffffff;--vscode-editorGroupHeader-tabsBackground: #f3f3f3;--vscode-editorGroupHeader-noTabsBackground: #ffffff;--vscode-editorGroup-border: #e7e7e7;--vscode-editorGroup-dropBackground: rgba(38, 119, 203, .18);--vscode-editorGroup-dropIntoPromptForeground: #616161;--vscode-editorGroup-dropIntoPromptBackground: #f3f3f3;--vscode-sideBySideEditor-horizontalBorder: #e7e7e7;--vscode-sideBySideEditor-verticalBorder: #e7e7e7;--vscode-panel-background: #ffffff;--vscode-panel-border: rgba(128, 128, 128, .35);--vscode-panelTitle-activeForeground: #424242;--vscode-panelTitle-inactiveForeground: rgba(66, 66, 66, .75);--vscode-panelTitle-activeBorder: #424242;--vscode-panelInput-border: #dddddd;--vscode-panel-dropBorder: #424242;--vscode-panelSection-dropBackground: rgba(38, 119, 203, .18);--vscode-panelSectionHeader-background: rgba(128, 128, 128, .2);--vscode-panelSection-border: rgba(128, 128, 128, .35);--vscode-banner-background: #004386;--vscode-banner-foreground: #ffffff;--vscode-banner-iconForeground: #1a85ff;--vscode-statusBar-foreground: #ffffff;--vscode-statusBar-noFolderForeground: #ffffff;--vscode-statusBar-background: #007acc;--vscode-statusBar-noFolderBackground: #68217a;--vscode-statusBar-focusBorder: #ffffff;--vscode-statusBarItem-activeBackground: rgba(255, 255, 255, .18);--vscode-statusBarItem-focusBorder: #ffffff;--vscode-statusBarItem-hoverBackground: rgba(255, 255, 255, .12);--vscode-statusBarItem-compactHoverBackground: rgba(255, 255, 255, .2);--vscode-statusBarItem-prominentForeground: #ffffff;--vscode-statusBarItem-prominentBackground: rgba(0, 0, 0, .5);--vscode-statusBarItem-prominentHoverBackground: rgba(0, 0, 0, .3);--vscode-statusBarItem-errorBackground: #c72e0f;--vscode-statusBarItem-errorForeground: #ffffff;--vscode-statusBarItem-warningBackground: #725102;--vscode-statusBarItem-warningForeground: #ffffff;--vscode-activityBar-background: #2c2c2c;--vscode-activityBar-foreground: #ffffff;--vscode-activityBar-inactiveForeground: rgba(255, 255, 255, .4);--vscode-activityBar-activeBorder: #ffffff;--vscode-activityBar-dropBorder: #ffffff;--vscode-activityBarBadge-background: #007acc;--vscode-activityBarBadge-foreground: #ffffff;--vscode-statusBarItem-remoteBackground: #16825d;--vscode-statusBarItem-remoteForeground: #ffffff;--vscode-extensionBadge-remoteBackground: #007acc;--vscode-extensionBadge-remoteForeground: #ffffff;--vscode-sideBar-background: #f3f3f3;--vscode-sideBarTitle-foreground: #6f6f6f;--vscode-sideBar-dropBackground: rgba(38, 119, 203, .18);--vscode-sideBarSectionHeader-background: rgba(0, 0, 0, 0);--vscode-sideBarSectionHeader-border: rgba(97, 97, 97, .19);--vscode-titleBar-activeForeground: #333333;--vscode-titleBar-inactiveForeground: rgba(51, 51, 51, .6);--vscode-titleBar-activeBackground: #dddddd;--vscode-titleBar-inactiveBackground: rgba(221, 221, 221, .6);--vscode-menubar-selectionForeground: #333333;--vscode-menubar-selectionBackground: rgba(184, 184, 184, .31);--vscode-notifications-foreground: #616161;--vscode-notifications-background: #f3f3f3;--vscode-notificationLink-foreground: #006ab1;--vscode-notificationCenterHeader-background: #e7e7e7;--vscode-notifications-border: #e7e7e7;--vscode-notificationsErrorIcon-foreground: #e51400;--vscode-notificationsWarningIcon-foreground: #bf8803;--vscode-notificationsInfoIcon-foreground: #1a85ff;--vscode-commandCenter-foreground: #333333;--vscode-commandCenter-activeForeground: #333333;--vscode-commandCenter-activeBackground: rgba(184, 184, 184, .31);--vscode-commandCenter-border: rgba(128, 128, 128, .35);--vscode-editorCommentsWidget-resolvedBorder: rgba(97, 97, 97, .5);--vscode-editorCommentsWidget-unresolvedBorder: #1a85ff;--vscode-editorCommentsWidget-rangeBackground: rgba(26, 133, 255, .1);--vscode-editorCommentsWidget-rangeBorder: rgba(26, 133, 255, .4);--vscode-editorCommentsWidget-rangeActiveBackground: rgba(26, 133, 255, .1);--vscode-editorCommentsWidget-rangeActiveBorder: rgba(26, 133, 255, .4);--vscode-editorGutter-commentRangeForeground: #d5d8e9;--vscode-debugToolBar-background: #f3f3f3;--vscode-debugIcon-startForeground: #388a34;--vscode-editor-stackFrameHighlightBackground: rgba(255, 255, 102, .45);--vscode-editor-focusedStackFrameHighlightBackground: rgba(206, 231, 206, .45);--vscode-mergeEditor-change\.background: rgba(155, 185, 85, .2);--vscode-mergeEditor-change\.word\.background: rgba(156, 204, 44, .4);--vscode-mergeEditor-conflict\.unhandledUnfocused\.border: rgba(255, 166, 0, .48);--vscode-mergeEditor-conflict\.unhandledFocused\.border: #ffa600;--vscode-mergeEditor-conflict\.handledUnfocused\.border: rgba(134, 134, 134, .29);--vscode-mergeEditor-conflict\.handledFocused\.border: rgba(193, 193, 193, .8);--vscode-mergeEditor-conflict\.handled\.minimapOverViewRuler: rgba(173, 172, 168, .93);--vscode-mergeEditor-conflict\.unhandled\.minimapOverViewRuler: #fcba03;--vscode-mergeEditor-conflictingLines\.background: rgba(255, 234, 0, .28);--vscode-settings-headerForeground: #444444;--vscode-settings-modifiedItemIndicator: #66afe0;--vscode-settings-headerBorder: rgba(128, 128, 128, .35);--vscode-settings-sashBorder: rgba(128, 128, 128, .35);--vscode-settings-dropdownBackground: #ffffff;--vscode-settings-dropdownBorder: #cecece;--vscode-settings-dropdownListBorder: #c8c8c8;--vscode-settings-checkboxBackground: #ffffff;--vscode-settings-checkboxBorder: #cecece;--vscode-settings-textInputBackground: #ffffff;--vscode-settings-textInputForeground: #616161;--vscode-settings-textInputBorder: #cecece;--vscode-settings-numberInputBackground: #ffffff;--vscode-settings-numberInputForeground: #616161;--vscode-settings-numberInputBorder: #cecece;--vscode-settings-focusedRowBackground: rgba(232, 232, 232, .6);--vscode-settings-rowHoverBackground: rgba(232, 232, 232, .3);--vscode-settings-focusedRowBorder: rgba(0, 0, 0, .12);--vscode-terminal-foreground: #333333;--vscode-terminal-selectionBackground: #add6ff;--vscode-terminal-inactiveSelectionBackground: #e5ebf1;--vscode-terminalCommandDecoration-defaultBackground: rgba(0, 0, 0, .25);--vscode-terminalCommandDecoration-successBackground: #2090d3;--vscode-terminalCommandDecoration-errorBackground: #e51400;--vscode-terminalOverviewRuler-cursorForeground: rgba(160, 160, 160, .8);--vscode-terminal-border: rgba(128, 128, 128, .35);--vscode-terminal-findMatchBackground: #a8ac94;--vscode-terminal-findMatchHighlightBackground: rgba(234, 92, 0, .33);--vscode-terminalOverviewRuler-findMatchForeground: rgba(209, 134, 22, .49);--vscode-terminal-dropBackground: rgba(38, 119, 203, .18);--vscode-testing-iconFailed: #f14c4c;--vscode-testing-iconErrored: #f14c4c;--vscode-testing-iconPassed: #73c991;--vscode-testing-runAction: #73c991;--vscode-testing-iconQueued: #cca700;--vscode-testing-iconUnset: #848484;--vscode-testing-iconSkipped: #848484;--vscode-testing-peekBorder: #e51400;--vscode-testing-peekHeaderBackground: rgba(229, 20, 0, .1);--vscode-testing-message\.error\.decorationForeground: #e51400;--vscode-testing-message\.error\.lineBackground: rgba(255, 0, 0, .2);--vscode-testing-message\.info\.decorationForeground: rgba(0, 0, 0, .5);--vscode-welcomePage-tileBackground: #f3f3f3;--vscode-welcomePage-tileHoverBackground: #dbdbdb;--vscode-welcomePage-tileShadow: rgba(0, 0, 0, .16);--vscode-welcomePage-progress\.background: #ffffff;--vscode-welcomePage-progress\.foreground: #006ab1;--vscode-debugExceptionWidget-border: #a31515;--vscode-debugExceptionWidget-background: #f1dfde;--vscode-ports-iconRunningProcessForeground: #369432;--vscode-statusBar-debuggingBackground: #cc6633;--vscode-statusBar-debuggingForeground: #ffffff;--vscode-editor-inlineValuesForeground: rgba(0, 0, 0, .5);--vscode-editor-inlineValuesBackground: rgba(255, 200, 0, .2);--vscode-editorGutter-modifiedBackground: #2090d3;--vscode-editorGutter-addedBackground: #48985d;--vscode-editorGutter-deletedBackground: #e51400;--vscode-minimapGutter-modifiedBackground: #2090d3;--vscode-minimapGutter-addedBackground: #48985d;--vscode-minimapGutter-deletedBackground: #e51400;--vscode-editorOverviewRuler-modifiedForeground: rgba(32, 144, 211, .6);--vscode-editorOverviewRuler-addedForeground: rgba(72, 152, 93, .6);--vscode-editorOverviewRuler-deletedForeground: rgba(229, 20, 0, .6);--vscode-debugIcon-breakpointForeground: #e51400;--vscode-debugIcon-breakpointDisabledForeground: #848484;--vscode-debugIcon-breakpointUnverifiedForeground: #848484;--vscode-debugIcon-breakpointCurrentStackframeForeground: #be8700;--vscode-debugIcon-breakpointStackframeForeground: #89d185;--vscode-notebook-cellBorderColor: #e8e8e8;--vscode-notebook-focusedEditorBorder: #0090f1;--vscode-notebookStatusSuccessIcon-foreground: #388a34;--vscode-notebookStatusErrorIcon-foreground: #a1260d;--vscode-notebookStatusRunningIcon-foreground: #616161;--vscode-notebook-cellToolbarSeparator: rgba(128, 128, 128, .35);--vscode-notebook-selectedCellBackground: rgba(200, 221, 241, .31);--vscode-notebook-selectedCellBorder: #e8e8e8;--vscode-notebook-focusedCellBorder: #0090f1;--vscode-notebook-inactiveFocusedCellBorder: #e8e8e8;--vscode-notebook-cellStatusBarItemHoverBackground: rgba(0, 0, 0, .08);--vscode-notebook-cellInsertionIndicator: #0090f1;--vscode-notebookScrollbarSlider-background: rgba(100, 100, 100, .4);--vscode-notebookScrollbarSlider-hoverBackground: rgba(100, 100, 100, .7);--vscode-notebookScrollbarSlider-activeBackground: rgba(0, 0, 0, .6);--vscode-notebook-symbolHighlightBackground: rgba(253, 255, 0, .2);--vscode-notebook-cellEditorBackground: #f3f3f3;--vscode-notebook-editorBackground: #ffffff;--vscode-keybindingTable-headerBackground: rgba(97, 97, 97, .04);--vscode-keybindingTable-rowsBackground: rgba(97, 97, 97, .04);--vscode-scm-providerBorder: #c8c8c8;--vscode-searchEditor-textInputBorder: #cecece;--vscode-debugTokenExpression-name: #9b46b0;--vscode-debugTokenExpression-value: rgba(108, 108, 108, .8);--vscode-debugTokenExpression-string: #a31515;--vscode-debugTokenExpression-boolean: #0000ff;--vscode-debugTokenExpression-number: #098658;--vscode-debugTokenExpression-error: #e51400;--vscode-debugView-exceptionLabelForeground: #ffffff;--vscode-debugView-exceptionLabelBackground: #a31515;--vscode-debugView-stateLabelForeground: #616161;--vscode-debugView-stateLabelBackground: rgba(136, 136, 136, .27);--vscode-debugView-valueChangedHighlight: #569cd6;--vscode-debugConsole-infoForeground: #1a85ff;--vscode-debugConsole-warningForeground: #bf8803;--vscode-debugConsole-errorForeground: #a1260d;--vscode-debugConsole-sourceForeground: #616161;--vscode-debugConsoleInputIcon-foreground: #616161;--vscode-debugIcon-pauseForeground: #007acc;--vscode-debugIcon-stopForeground: #a1260d;--vscode-debugIcon-disconnectForeground: #a1260d;--vscode-debugIcon-restartForeground: #388a34;--vscode-debugIcon-stepOverForeground: #007acc;--vscode-debugIcon-stepIntoForeground: #007acc;--vscode-debugIcon-stepOutForeground: #007acc;--vscode-debugIcon-continueForeground: #007acc;--vscode-debugIcon-stepBackForeground: #007acc;--vscode-extensionButton-prominentBackground: #007acc;--vscode-extensionButton-prominentForeground: #ffffff;--vscode-extensionButton-prominentHoverBackground: #0062a3;--vscode-extensionIcon-starForeground: #df6100;--vscode-extensionIcon-verifiedForeground: #006ab1;--vscode-extensionIcon-preReleaseForeground: #1d9271;--vscode-extensionIcon-sponsorForeground: #b51e78;--vscode-terminal-ansiBlack: #000000;--vscode-terminal-ansiRed: #cd3131;--vscode-terminal-ansiGreen: #00bc00;--vscode-terminal-ansiYellow: #949800;--vscode-terminal-ansiBlue: #0451a5;--vscode-terminal-ansiMagenta: #bc05bc;--vscode-terminal-ansiCyan: #0598bc;--vscode-terminal-ansiWhite: #555555;--vscode-terminal-ansiBrightBlack: #666666;--vscode-terminal-ansiBrightRed: #cd3131;--vscode-terminal-ansiBrightGreen: #14ce14;--vscode-terminal-ansiBrightYellow: #b5ba00;--vscode-terminal-ansiBrightBlue: #0451a5;--vscode-terminal-ansiBrightMagenta: #bc05bc;--vscode-terminal-ansiBrightCyan: #0598bc;--vscode-terminal-ansiBrightWhite: #a5a5a5;--vscode-interactive-activeCodeBorder: #1a85ff;--vscode-interactive-inactiveCodeBorder: #e4e6f1;--vscode-gitDecoration-addedResourceForeground: #587c0c;--vscode-gitDecoration-modifiedResourceForeground: #895503;--vscode-gitDecoration-deletedResourceForeground: #ad0707;--vscode-gitDecoration-renamedResourceForeground: #007100;--vscode-gitDecoration-untrackedResourceForeground: #007100;--vscode-gitDecoration-ignoredResourceForeground: #8e8e90;--vscode-gitDecoration-stageModifiedResourceForeground: #895503;--vscode-gitDecoration-stageDeletedResourceForeground: #ad0707;--vscode-gitDecoration-conflictingResourceForeground: #ad0707;--vscode-gitDecoration-submoduleResourceForeground: #1258a7}:root.light-mode{color-scheme:light}:root.dark-mode{color-scheme:dark;--vscode-font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif;--vscode-font-weight: normal;--vscode-font-size: 13px;--vscode-editor-font-family: "Droid Sans Mono", "monospace", monospace;--vscode-editor-font-weight: normal;--vscode-editor-font-size: 14px;--vscode-foreground: #cccccc;--vscode-disabledForeground: rgba(204, 204, 204, .5);--vscode-errorForeground: #f48771;--vscode-descriptionForeground: rgba(204, 204, 204, .7);--vscode-icon-foreground: #c5c5c5;--vscode-focusBorder: #007fd4;--vscode-textSeparator-foreground: rgba(255, 255, 255, .18);--vscode-textLink-foreground: #3794ff;--vscode-textLink-activeForeground: #3794ff;--vscode-textPreformat-foreground: #d7ba7d;--vscode-textBlockQuote-background: rgba(127, 127, 127, .1);--vscode-textBlockQuote-border: rgba(0, 122, 204, .5);--vscode-textCodeBlock-background: rgba(10, 10, 10, .4);--vscode-widget-shadow: rgba(0, 0, 0, .36);--vscode-input-background: #3c3c3c;--vscode-input-foreground: #cccccc;--vscode-inputOption-activeBorder: #007acc;--vscode-inputOption-hoverBackground: rgba(90, 93, 94, .5);--vscode-inputOption-activeBackground: rgba(0, 127, 212, .4);--vscode-inputOption-activeForeground: #ffffff;--vscode-input-placeholderForeground: #a6a6a6;--vscode-inputValidation-infoBackground: #063b49;--vscode-inputValidation-infoBorder: #007acc;--vscode-inputValidation-warningBackground: #352a05;--vscode-inputValidation-warningBorder: #b89500;--vscode-inputValidation-errorBackground: #5a1d1d;--vscode-inputValidation-errorBorder: #be1100;--vscode-dropdown-background: #3c3c3c;--vscode-dropdown-foreground: #f0f0f0;--vscode-dropdown-border: #3c3c3c;--vscode-checkbox-background: #3c3c3c;--vscode-checkbox-foreground: #f0f0f0;--vscode-checkbox-border: #3c3c3c;--vscode-button-foreground: #ffffff;--vscode-button-separator: rgba(255, 255, 255, .4);--vscode-button-background: #0e639c;--vscode-button-hoverBackground: #1177bb;--vscode-button-secondaryForeground: #ffffff;--vscode-button-secondaryBackground: #3a3d41;--vscode-button-secondaryHoverBackground: #45494e;--vscode-badge-background: #4d4d4d;--vscode-badge-foreground: #ffffff;--vscode-scrollbar-shadow: #000000;--vscode-scrollbarSlider-background: rgba(121, 121, 121, .4);--vscode-scrollbarSlider-hoverBackground: rgba(100, 100, 100, .7);--vscode-scrollbarSlider-activeBackground: rgba(191, 191, 191, .4);--vscode-progressBar-background: #0e70c0;--vscode-editorError-foreground: #f14c4c;--vscode-editorWarning-foreground: #cca700;--vscode-editorInfo-foreground: #3794ff;--vscode-editorHint-foreground: rgba(238, 238, 238, .7);--vscode-sash-hoverBorder: #007fd4;--vscode-editor-background: #1e1e1e;--vscode-editor-foreground: #d4d4d4;--vscode-editorStickyScroll-background: #1e1e1e;--vscode-editorStickyScrollHover-background: #2a2d2e;--vscode-editorWidget-background: #252526;--vscode-editorWidget-foreground: #cccccc;--vscode-editorWidget-border: #454545;--vscode-quickInput-background: #252526;--vscode-quickInput-foreground: #cccccc;--vscode-quickInputTitle-background: rgba(255, 255, 255, .1);--vscode-pickerGroup-foreground: #3794ff;--vscode-pickerGroup-border: #3f3f46;--vscode-keybindingLabel-background: rgba(128, 128, 128, .17);--vscode-keybindingLabel-foreground: #cccccc;--vscode-keybindingLabel-border: rgba(51, 51, 51, .6);--vscode-keybindingLabel-bottomBorder: rgba(68, 68, 68, .6);--vscode-editor-selectionBackground: #264f78;--vscode-editor-inactiveSelectionBackground: #3a3d41;--vscode-editor-selectionHighlightBackground: rgba(173, 214, 255, .15);--vscode-editor-findMatchBackground: #515c6a;--vscode-editor-findMatchHighlightBackground: rgba(234, 92, 0, .33);--vscode-editor-findRangeHighlightBackground: rgba(58, 61, 65, .4);--vscode-searchEditor-findMatchBackground: rgba(234, 92, 0, .22);--vscode-editor-hoverHighlightBackground: rgba(38, 79, 120, .25);--vscode-editorHoverWidget-background: #252526;--vscode-editorHoverWidget-foreground: #cccccc;--vscode-editorHoverWidget-border: #454545;--vscode-editorHoverWidget-statusBarBackground: #2c2c2d;--vscode-editorLink-activeForeground: #4e94ce;--vscode-editorInlayHint-foreground: rgba(255, 255, 255, .8);--vscode-editorInlayHint-background: rgba(77, 77, 77, .6);--vscode-editorInlayHint-typeForeground: rgba(255, 255, 255, .8);--vscode-editorInlayHint-typeBackground: rgba(77, 77, 77, .6);--vscode-editorInlayHint-parameterForeground: rgba(255, 255, 255, .8);--vscode-editorInlayHint-parameterBackground: rgba(77, 77, 77, .6);--vscode-editorLightBulb-foreground: #ffcc00;--vscode-editorLightBulbAutoFix-foreground: #75beff;--vscode-diffEditor-insertedTextBackground: rgba(156, 204, 44, .2);--vscode-diffEditor-removedTextBackground: rgba(255, 0, 0, .4);--vscode-diffEditor-insertedLineBackground: rgba(155, 185, 85, .2);--vscode-diffEditor-removedLineBackground: rgba(255, 0, 0, .2);--vscode-diffEditor-diagonalFill: rgba(204, 204, 204, .2);--vscode-list-focusOutline: #007fd4;--vscode-list-activeSelectionBackground: #04395e;--vscode-list-activeSelectionForeground: #ffffff;--vscode-list-activeSelectionIconForeground: #ffffff;--vscode-list-inactiveSelectionBackground: #37373d;--vscode-list-hoverBackground: #2a2d2e;--vscode-list-dropBackground: #383b3d;--vscode-list-highlightForeground: #2aaaff;--vscode-list-focusHighlightForeground: #2aaaff;--vscode-list-invalidItemForeground: #b89500;--vscode-list-errorForeground: #f88070;--vscode-list-warningForeground: #cca700;--vscode-listFilterWidget-background: #252526;--vscode-listFilterWidget-outline: rgba(0, 0, 0, 0);--vscode-listFilterWidget-noMatchesOutline: #be1100;--vscode-listFilterWidget-shadow: rgba(0, 0, 0, .36);--vscode-list-filterMatchBackground: rgba(234, 92, 0, .33);--vscode-tree-indentGuidesStroke: #585858;--vscode-tree-tableColumnsBorder: rgba(204, 204, 204, .13);--vscode-tree-tableOddRowsBackground: rgba(204, 204, 204, .04);--vscode-list-deemphasizedForeground: #8c8c8c;--vscode-quickInputList-focusForeground: #ffffff;--vscode-quickInputList-focusIconForeground: #ffffff;--vscode-quickInputList-focusBackground: #04395e;--vscode-menu-foreground: #cccccc;--vscode-menu-background: #303031;--vscode-menu-selectionForeground: #ffffff;--vscode-menu-selectionBackground: #04395e;--vscode-menu-separatorBackground: #606060;--vscode-toolbar-hoverBackground: rgba(90, 93, 94, .31);--vscode-toolbar-activeBackground: rgba(99, 102, 103, .31);--vscode-editor-snippetTabstopHighlightBackground: rgba(124, 124, 124, .3);--vscode-editor-snippetFinalTabstopHighlightBorder: #525252;--vscode-breadcrumb-foreground: rgba(204, 204, 204, .8);--vscode-breadcrumb-background: #1e1e1e;--vscode-breadcrumb-focusForeground: #e0e0e0;--vscode-breadcrumb-activeSelectionForeground: #e0e0e0;--vscode-breadcrumbPicker-background: #252526;--vscode-merge-currentHeaderBackground: rgba(64, 200, 174, .5);--vscode-merge-currentContentBackground: rgba(64, 200, 174, .2);--vscode-merge-incomingHeaderBackground: rgba(64, 166, 255, .5);--vscode-merge-incomingContentBackground: rgba(64, 166, 255, .2);--vscode-merge-commonHeaderBackground: rgba(96, 96, 96, .4);--vscode-merge-commonContentBackground: rgba(96, 96, 96, .16);--vscode-editorOverviewRuler-currentContentForeground: rgba(64, 200, 174, .5);--vscode-editorOverviewRuler-incomingContentForeground: rgba(64, 166, 255, .5);--vscode-editorOverviewRuler-commonContentForeground: rgba(96, 96, 96, .4);--vscode-editorOverviewRuler-findMatchForeground: rgba(209, 134, 22, .49);--vscode-editorOverviewRuler-selectionHighlightForeground: rgba(160, 160, 160, .8);--vscode-minimap-findMatchHighlight: #d18616;--vscode-minimap-selectionOccurrenceHighlight: #676767;--vscode-minimap-selectionHighlight: #264f78;--vscode-minimap-errorHighlight: rgba(255, 18, 18, .7);--vscode-minimap-warningHighlight: #cca700;--vscode-minimap-foregroundOpacity: #000000;--vscode-minimapSlider-background: rgba(121, 121, 121, .2);--vscode-minimapSlider-hoverBackground: rgba(100, 100, 100, .35);--vscode-minimapSlider-activeBackground: rgba(191, 191, 191, .2);--vscode-problemsErrorIcon-foreground: #f14c4c;--vscode-problemsWarningIcon-foreground: #cca700;--vscode-problemsInfoIcon-foreground: #3794ff;--vscode-charts-foreground: #cccccc;--vscode-charts-lines: rgba(204, 204, 204, .5);--vscode-charts-red: #f14c4c;--vscode-charts-blue: #3794ff;--vscode-charts-yellow: #cca700;--vscode-charts-orange: #d18616;--vscode-charts-green: #89d185;--vscode-charts-purple: #b180d7;--vscode-editor-lineHighlightBorder: #282828;--vscode-editor-rangeHighlightBackground: rgba(255, 255, 255, .04);--vscode-editor-symbolHighlightBackground: rgba(234, 92, 0, .33);--vscode-editorCursor-foreground: #aeafad;--vscode-editorWhitespace-foreground: rgba(227, 228, 226, .16);--vscode-editorIndentGuide-background: #404040;--vscode-editorIndentGuide-activeBackground: #707070;--vscode-editorLineNumber-foreground: #858585;--vscode-editorActiveLineNumber-foreground: #c6c6c6;--vscode-editorLineNumber-activeForeground: #c6c6c6;--vscode-editorRuler-foreground: #5a5a5a;--vscode-editorCodeLens-foreground: #999999;--vscode-editorBracketMatch-background: rgba(0, 100, 0, .1);--vscode-editorBracketMatch-border: #888888;--vscode-editorOverviewRuler-border: rgba(127, 127, 127, .3);--vscode-editorGutter-background: #1e1e1e;--vscode-editorUnnecessaryCode-opacity: rgba(0, 0, 0, .67);--vscode-editorGhostText-foreground: rgba(255, 255, 255, .34);--vscode-editorOverviewRuler-rangeHighlightForeground: rgba(0, 122, 204, .6);--vscode-editorOverviewRuler-errorForeground: rgba(255, 18, 18, .7);--vscode-editorOverviewRuler-warningForeground: #cca700;--vscode-editorOverviewRuler-infoForeground: #3794ff;--vscode-editorBracketHighlight-foreground1: #ffd700;--vscode-editorBracketHighlight-foreground2: #da70d6;--vscode-editorBracketHighlight-foreground3: #179fff;--vscode-editorBracketHighlight-foreground4: rgba(0, 0, 0, 0);--vscode-editorBracketHighlight-foreground5: rgba(0, 0, 0, 0);--vscode-editorBracketHighlight-foreground6: rgba(0, 0, 0, 0);--vscode-editorBracketHighlight-unexpectedBracket\.foreground: rgba(255, 18, 18, .8);--vscode-editorBracketPairGuide-background1: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background2: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background3: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background4: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background5: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background6: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground1: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground2: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground3: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground4: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground5: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground6: rgba(0, 0, 0, 0);--vscode-editorUnicodeHighlight-border: #bd9b03;--vscode-editorUnicodeHighlight-background: rgba(189, 155, 3, .15);--vscode-symbolIcon-arrayForeground: #cccccc;--vscode-symbolIcon-booleanForeground: #cccccc;--vscode-symbolIcon-classForeground: #ee9d28;--vscode-symbolIcon-colorForeground: #cccccc;--vscode-symbolIcon-constantForeground: #cccccc;--vscode-symbolIcon-constructorForeground: #b180d7;--vscode-symbolIcon-enumeratorForeground: #ee9d28;--vscode-symbolIcon-enumeratorMemberForeground: #75beff;--vscode-symbolIcon-eventForeground: #ee9d28;--vscode-symbolIcon-fieldForeground: #75beff;--vscode-symbolIcon-fileForeground: #cccccc;--vscode-symbolIcon-folderForeground: #cccccc;--vscode-symbolIcon-functionForeground: #b180d7;--vscode-symbolIcon-interfaceForeground: #75beff;--vscode-symbolIcon-keyForeground: #cccccc;--vscode-symbolIcon-keywordForeground: #cccccc;--vscode-symbolIcon-methodForeground: #b180d7;--vscode-symbolIcon-moduleForeground: #cccccc;--vscode-symbolIcon-namespaceForeground: #cccccc;--vscode-symbolIcon-nullForeground: #cccccc;--vscode-symbolIcon-numberForeground: #cccccc;--vscode-symbolIcon-objectForeground: #cccccc;--vscode-symbolIcon-operatorForeground: #cccccc;--vscode-symbolIcon-packageForeground: #cccccc;--vscode-symbolIcon-propertyForeground: #cccccc;--vscode-symbolIcon-referenceForeground: #cccccc;--vscode-symbolIcon-snippetForeground: #cccccc;--vscode-symbolIcon-stringForeground: #cccccc;--vscode-symbolIcon-structForeground: #cccccc;--vscode-symbolIcon-textForeground: #cccccc;--vscode-symbolIcon-typeParameterForeground: #cccccc;--vscode-symbolIcon-unitForeground: #cccccc;--vscode-symbolIcon-variableForeground: #75beff;--vscode-editorHoverWidget-highlightForeground: #2aaaff;--vscode-editorOverviewRuler-bracketMatchForeground: #a0a0a0;--vscode-editor-foldBackground: rgba(38, 79, 120, .3);--vscode-editorGutter-foldingControlForeground: #c5c5c5;--vscode-editor-linkedEditingBackground: rgba(255, 0, 0, .3);--vscode-editor-wordHighlightBackground: rgba(87, 87, 87, .72);--vscode-editor-wordHighlightStrongBackground: rgba(0, 73, 114, .72);--vscode-editorOverviewRuler-wordHighlightForeground: rgba(160, 160, 160, .8);--vscode-editorOverviewRuler-wordHighlightStrongForeground: rgba(192, 160, 192, .8);--vscode-peekViewTitle-background: rgba(55, 148, 255, .1);--vscode-peekViewTitleLabel-foreground: #ffffff;--vscode-peekViewTitleDescription-foreground: rgba(204, 204, 204, .7);--vscode-peekView-border: #3794ff;--vscode-peekViewResult-background: #252526;--vscode-peekViewResult-lineForeground: #bbbbbb;--vscode-peekViewResult-fileForeground: #ffffff;--vscode-peekViewResult-selectionBackground: rgba(51, 153, 255, .2);--vscode-peekViewResult-selectionForeground: #ffffff;--vscode-peekViewEditor-background: #001f33;--vscode-peekViewEditorGutter-background: #001f33;--vscode-peekViewResult-matchHighlightBackground: rgba(234, 92, 0, .3);--vscode-peekViewEditor-matchHighlightBackground: rgba(255, 143, 0, .6);--vscode-editorMarkerNavigationError-background: #f14c4c;--vscode-editorMarkerNavigationError-headerBackground: rgba(241, 76, 76, .1);--vscode-editorMarkerNavigationWarning-background: #cca700;--vscode-editorMarkerNavigationWarning-headerBackground: rgba(204, 167, 0, .1);--vscode-editorMarkerNavigationInfo-background: #3794ff;--vscode-editorMarkerNavigationInfo-headerBackground: rgba(55, 148, 255, .1);--vscode-editorMarkerNavigation-background: #1e1e1e;--vscode-editorSuggestWidget-background: #252526;--vscode-editorSuggestWidget-border: #454545;--vscode-editorSuggestWidget-foreground: #d4d4d4;--vscode-editorSuggestWidget-selectedForeground: #ffffff;--vscode-editorSuggestWidget-selectedIconForeground: #ffffff;--vscode-editorSuggestWidget-selectedBackground: #04395e;--vscode-editorSuggestWidget-highlightForeground: #2aaaff;--vscode-editorSuggestWidget-focusHighlightForeground: #2aaaff;--vscode-editorSuggestWidgetStatus-foreground: rgba(212, 212, 212, .5);--vscode-tab-activeBackground: #1e1e1e;--vscode-tab-unfocusedActiveBackground: #1e1e1e;--vscode-tab-inactiveBackground: #2d2d2d;--vscode-tab-unfocusedInactiveBackground: #2d2d2d;--vscode-tab-activeForeground: #ffffff;--vscode-tab-inactiveForeground: rgba(255, 255, 255, .5);--vscode-tab-unfocusedActiveForeground: rgba(255, 255, 255, .5);--vscode-tab-unfocusedInactiveForeground: rgba(255, 255, 255, .25);--vscode-tab-border: #252526;--vscode-tab-lastPinnedBorder: rgba(204, 204, 204, .2);--vscode-tab-activeModifiedBorder: #3399cc;--vscode-tab-inactiveModifiedBorder: rgba(51, 153, 204, .5);--vscode-tab-unfocusedActiveModifiedBorder: rgba(51, 153, 204, .5);--vscode-tab-unfocusedInactiveModifiedBorder: rgba(51, 153, 204, .25);--vscode-editorPane-background: #1e1e1e;--vscode-editorGroupHeader-tabsBackground: #252526;--vscode-editorGroupHeader-noTabsBackground: #1e1e1e;--vscode-editorGroup-border: #444444;--vscode-editorGroup-dropBackground: rgba(83, 89, 93, .5);--vscode-editorGroup-dropIntoPromptForeground: #cccccc;--vscode-editorGroup-dropIntoPromptBackground: #252526;--vscode-sideBySideEditor-horizontalBorder: #444444;--vscode-sideBySideEditor-verticalBorder: #444444;--vscode-panel-background: #1e1e1e;--vscode-panel-border: rgba(128, 128, 128, .35);--vscode-panelTitle-activeForeground: #e7e7e7;--vscode-panelTitle-inactiveForeground: rgba(231, 231, 231, .6);--vscode-panelTitle-activeBorder: #e7e7e7;--vscode-panel-dropBorder: #e7e7e7;--vscode-panelSection-dropBackground: rgba(83, 89, 93, .5);--vscode-panelSectionHeader-background: rgba(128, 128, 128, .2);--vscode-panelSection-border: rgba(128, 128, 128, .35);--vscode-banner-background: #04395e;--vscode-banner-foreground: #ffffff;--vscode-banner-iconForeground: #3794ff;--vscode-statusBar-foreground: #ffffff;--vscode-statusBar-noFolderForeground: #ffffff;--vscode-statusBar-background: #007acc;--vscode-statusBar-noFolderBackground: #68217a;--vscode-statusBar-focusBorder: #ffffff;--vscode-statusBarItem-activeBackground: rgba(255, 255, 255, .18);--vscode-statusBarItem-focusBorder: #ffffff;--vscode-statusBarItem-hoverBackground: rgba(255, 255, 255, .12);--vscode-statusBarItem-compactHoverBackground: rgba(255, 255, 255, .2);--vscode-statusBarItem-prominentForeground: #ffffff;--vscode-statusBarItem-prominentBackground: rgba(0, 0, 0, .5);--vscode-statusBarItem-prominentHoverBackground: rgba(0, 0, 0, .3);--vscode-statusBarItem-errorBackground: #c72e0f;--vscode-statusBarItem-errorForeground: #ffffff;--vscode-statusBarItem-warningBackground: #7a6400;--vscode-statusBarItem-warningForeground: #ffffff;--vscode-activityBar-background: #333333;--vscode-activityBar-foreground: #ffffff;--vscode-activityBar-inactiveForeground: rgba(255, 255, 255, .4);--vscode-activityBar-activeBorder: #ffffff;--vscode-activityBar-dropBorder: #ffffff;--vscode-activityBarBadge-background: #007acc;--vscode-activityBarBadge-foreground: #ffffff;--vscode-statusBarItem-remoteBackground: #16825d;--vscode-statusBarItem-remoteForeground: #ffffff;--vscode-extensionBadge-remoteBackground: #007acc;--vscode-extensionBadge-remoteForeground: #ffffff;--vscode-sideBar-background: #252526;--vscode-sideBarTitle-foreground: #bbbbbb;--vscode-sideBar-dropBackground: rgba(83, 89, 93, .5);--vscode-sideBarSectionHeader-background: rgba(0, 0, 0, 0);--vscode-sideBarSectionHeader-border: rgba(204, 204, 204, .2);--vscode-titleBar-activeForeground: #cccccc;--vscode-titleBar-inactiveForeground: rgba(204, 204, 204, .6);--vscode-titleBar-activeBackground: #3c3c3c;--vscode-titleBar-inactiveBackground: rgba(60, 60, 60, .6);--vscode-menubar-selectionForeground: #cccccc;--vscode-menubar-selectionBackground: rgba(90, 93, 94, .31);--vscode-notifications-foreground: #cccccc;--vscode-notifications-background: #252526;--vscode-notificationLink-foreground: #3794ff;--vscode-notificationCenterHeader-background: #303031;--vscode-notifications-border: #303031;--vscode-notificationsErrorIcon-foreground: #f14c4c;--vscode-notificationsWarningIcon-foreground: #cca700;--vscode-notificationsInfoIcon-foreground: #3794ff;--vscode-commandCenter-foreground: #cccccc;--vscode-commandCenter-activeForeground: #cccccc;--vscode-commandCenter-activeBackground: rgba(90, 93, 94, .31);--vscode-commandCenter-border: rgba(128, 128, 128, .35);--vscode-editorCommentsWidget-resolvedBorder: rgba(204, 204, 204, .5);--vscode-editorCommentsWidget-unresolvedBorder: #3794ff;--vscode-editorCommentsWidget-rangeBackground: rgba(55, 148, 255, .1);--vscode-editorCommentsWidget-rangeBorder: rgba(55, 148, 255, .4);--vscode-editorCommentsWidget-rangeActiveBackground: rgba(55, 148, 255, .1);--vscode-editorCommentsWidget-rangeActiveBorder: rgba(55, 148, 255, .4);--vscode-editorGutter-commentRangeForeground: #37373d;--vscode-debugToolBar-background: #333333;--vscode-debugIcon-startForeground: #89d185;--vscode-editor-stackFrameHighlightBackground: rgba(255, 255, 0, .2);--vscode-editor-focusedStackFrameHighlightBackground: rgba(122, 189, 122, .3);--vscode-mergeEditor-change\.background: rgba(155, 185, 85, .2);--vscode-mergeEditor-change\.word\.background: rgba(156, 204, 44, .2);--vscode-mergeEditor-conflict\.unhandledUnfocused\.border: rgba(255, 166, 0, .48);--vscode-mergeEditor-conflict\.unhandledFocused\.border: #ffa600;--vscode-mergeEditor-conflict\.handledUnfocused\.border: rgba(134, 134, 134, .29);--vscode-mergeEditor-conflict\.handledFocused\.border: rgba(193, 193, 193, .8);--vscode-mergeEditor-conflict\.handled\.minimapOverViewRuler: rgba(173, 172, 168, .93);--vscode-mergeEditor-conflict\.unhandled\.minimapOverViewRuler: #fcba03;--vscode-mergeEditor-conflictingLines\.background: rgba(255, 234, 0, .28);--vscode-settings-headerForeground: #e7e7e7;--vscode-settings-modifiedItemIndicator: #0c7d9d;--vscode-settings-headerBorder: rgba(128, 128, 128, .35);--vscode-settings-sashBorder: rgba(128, 128, 128, .35);--vscode-settings-dropdownBackground: #3c3c3c;--vscode-settings-dropdownForeground: #f0f0f0;--vscode-settings-dropdownBorder: #3c3c3c;--vscode-settings-dropdownListBorder: #454545;--vscode-settings-checkboxBackground: #3c3c3c;--vscode-settings-checkboxForeground: #f0f0f0;--vscode-settings-checkboxBorder: #3c3c3c;--vscode-settings-textInputBackground: #3c3c3c;--vscode-settings-textInputForeground: #cccccc;--vscode-settings-numberInputBackground: #3c3c3c;--vscode-settings-numberInputForeground: #cccccc;--vscode-settings-focusedRowBackground: rgba(42, 45, 46, .6);--vscode-settings-rowHoverBackground: rgba(42, 45, 46, .3);--vscode-settings-focusedRowBorder: rgba(255, 255, 255, .12);--vscode-terminal-foreground: #cccccc;--vscode-terminal-selectionBackground: #264f78;--vscode-terminal-inactiveSelectionBackground: #3a3d41;--vscode-terminalCommandDecoration-defaultBackground: rgba(255, 255, 255, .25);--vscode-terminalCommandDecoration-successBackground: #1b81a8;--vscode-terminalCommandDecoration-errorBackground: #f14c4c;--vscode-terminalOverviewRuler-cursorForeground: rgba(160, 160, 160, .8);--vscode-terminal-border: rgba(128, 128, 128, .35);--vscode-terminal-findMatchBackground: #515c6a;--vscode-terminal-findMatchHighlightBackground: rgba(234, 92, 0, .33);--vscode-terminalOverviewRuler-findMatchForeground: rgba(209, 134, 22, .49);--vscode-terminal-dropBackground: rgba(83, 89, 93, .5);--vscode-testing-iconFailed: #f14c4c;--vscode-testing-iconErrored: #f14c4c;--vscode-testing-iconPassed: #73c991;--vscode-testing-runAction: #73c991;--vscode-testing-iconQueued: #cca700;--vscode-testing-iconUnset: #848484;--vscode-testing-iconSkipped: #848484;--vscode-testing-peekBorder: #f14c4c;--vscode-testing-peekHeaderBackground: rgba(241, 76, 76, .1);--vscode-testing-message\.error\.decorationForeground: #f14c4c;--vscode-testing-message\.error\.lineBackground: rgba(255, 0, 0, .2);--vscode-testing-message\.info\.decorationForeground: rgba(212, 212, 212, .5);--vscode-welcomePage-tileBackground: #252526;--vscode-welcomePage-tileHoverBackground: #2c2c2d;--vscode-welcomePage-tileShadow: rgba(0, 0, 0, .36);--vscode-welcomePage-progress\.background: #3c3c3c;--vscode-welcomePage-progress\.foreground: #3794ff;--vscode-debugExceptionWidget-border: #a31515;--vscode-debugExceptionWidget-background: #420b0d;--vscode-ports-iconRunningProcessForeground: #369432;--vscode-statusBar-debuggingBackground: #cc6633;--vscode-statusBar-debuggingForeground: #ffffff;--vscode-editor-inlineValuesForeground: rgba(255, 255, 255, .5);--vscode-editor-inlineValuesBackground: rgba(255, 200, 0, .2);--vscode-editorGutter-modifiedBackground: #1b81a8;--vscode-editorGutter-addedBackground: #487e02;--vscode-editorGutter-deletedBackground: #f14c4c;--vscode-minimapGutter-modifiedBackground: #1b81a8;--vscode-minimapGutter-addedBackground: #487e02;--vscode-minimapGutter-deletedBackground: #f14c4c;--vscode-editorOverviewRuler-modifiedForeground: rgba(27, 129, 168, .6);--vscode-editorOverviewRuler-addedForeground: rgba(72, 126, 2, .6);--vscode-editorOverviewRuler-deletedForeground: rgba(241, 76, 76, .6);--vscode-debugIcon-breakpointForeground: #e51400;--vscode-debugIcon-breakpointDisabledForeground: #848484;--vscode-debugIcon-breakpointUnverifiedForeground: #848484;--vscode-debugIcon-breakpointCurrentStackframeForeground: #ffcc00;--vscode-debugIcon-breakpointStackframeForeground: #89d185;--vscode-notebook-cellBorderColor: #37373d;--vscode-notebook-focusedEditorBorder: #007fd4;--vscode-notebookStatusSuccessIcon-foreground: #89d185;--vscode-notebookStatusErrorIcon-foreground: #f48771;--vscode-notebookStatusRunningIcon-foreground: #cccccc;--vscode-notebook-cellToolbarSeparator: rgba(128, 128, 128, .35);--vscode-notebook-selectedCellBackground: #37373d;--vscode-notebook-selectedCellBorder: #37373d;--vscode-notebook-focusedCellBorder: #007fd4;--vscode-notebook-inactiveFocusedCellBorder: #37373d;--vscode-notebook-cellStatusBarItemHoverBackground: rgba(255, 255, 255, .15);--vscode-notebook-cellInsertionIndicator: #007fd4;--vscode-notebookScrollbarSlider-background: rgba(121, 121, 121, .4);--vscode-notebookScrollbarSlider-hoverBackground: rgba(100, 100, 100, .7);--vscode-notebookScrollbarSlider-activeBackground: rgba(191, 191, 191, .4);--vscode-notebook-symbolHighlightBackground: rgba(255, 255, 255, .04);--vscode-notebook-cellEditorBackground: #252526;--vscode-notebook-editorBackground: #1e1e1e;--vscode-keybindingTable-headerBackground: rgba(204, 204, 204, .04);--vscode-keybindingTable-rowsBackground: rgba(204, 204, 204, .04);--vscode-scm-providerBorder: #454545;--vscode-debugTokenExpression-name: #c586c0;--vscode-debugTokenExpression-value: rgba(204, 204, 204, .6);--vscode-debugTokenExpression-string: #ce9178;--vscode-debugTokenExpression-boolean: #4e94ce;--vscode-debugTokenExpression-number: #b5cea8;--vscode-debugTokenExpression-error: #f48771;--vscode-debugView-exceptionLabelForeground: #cccccc;--vscode-debugView-exceptionLabelBackground: #6c2022;--vscode-debugView-stateLabelForeground: #cccccc;--vscode-debugView-stateLabelBackground: rgba(136, 136, 136, .27);--vscode-debugView-valueChangedHighlight: #569cd6;--vscode-debugConsole-infoForeground: #3794ff;--vscode-debugConsole-warningForeground: #cca700;--vscode-debugConsole-errorForeground: #f48771;--vscode-debugConsole-sourceForeground: #cccccc;--vscode-debugConsoleInputIcon-foreground: #cccccc;--vscode-debugIcon-pauseForeground: #75beff;--vscode-debugIcon-stopForeground: #f48771;--vscode-debugIcon-disconnectForeground: #f48771;--vscode-debugIcon-restartForeground: #89d185;--vscode-debugIcon-stepOverForeground: #75beff;--vscode-debugIcon-stepIntoForeground: #75beff;--vscode-debugIcon-stepOutForeground: #75beff;--vscode-debugIcon-continueForeground: #75beff;--vscode-debugIcon-stepBackForeground: #75beff;--vscode-extensionButton-prominentBackground: #0e639c;--vscode-extensionButton-prominentForeground: #ffffff;--vscode-extensionButton-prominentHoverBackground: #1177bb;--vscode-extensionIcon-starForeground: #ff8e00;--vscode-extensionIcon-verifiedForeground: #3794ff;--vscode-extensionIcon-preReleaseForeground: #1d9271;--vscode-extensionIcon-sponsorForeground: #d758b3;--vscode-terminal-ansiBlack: #000000;--vscode-terminal-ansiRed: #cd3131;--vscode-terminal-ansiGreen: #0dbc79;--vscode-terminal-ansiYellow: #e5e510;--vscode-terminal-ansiBlue: #2472c8;--vscode-terminal-ansiMagenta: #bc3fbc;--vscode-terminal-ansiCyan: #11a8cd;--vscode-terminal-ansiWhite: #e5e5e5;--vscode-terminal-ansiBrightBlack: #666666;--vscode-terminal-ansiBrightRed: #f14c4c;--vscode-terminal-ansiBrightGreen: #23d18b;--vscode-terminal-ansiBrightYellow: #f5f543;--vscode-terminal-ansiBrightBlue: #3b8eea;--vscode-terminal-ansiBrightMagenta: #d670d6;--vscode-terminal-ansiBrightCyan: #29b8db;--vscode-terminal-ansiBrightWhite: #e5e5e5;--vscode-interactive-activeCodeBorder: #3794ff;--vscode-interactive-inactiveCodeBorder: #37373d;--vscode-gitDecoration-addedResourceForeground: #81b88b;--vscode-gitDecoration-modifiedResourceForeground: #e2c08d;--vscode-gitDecoration-deletedResourceForeground: #c74e39;--vscode-gitDecoration-renamedResourceForeground: #73c991;--vscode-gitDecoration-untrackedResourceForeground: #73c991;--vscode-gitDecoration-ignoredResourceForeground: #8c8c8c;--vscode-gitDecoration-stageModifiedResourceForeground: #e2c08d;--vscode-gitDecoration-stageDeletedResourceForeground: #c74e39;--vscode-gitDecoration-conflictingResourceForeground: #e4676b;--vscode-gitDecoration-submoduleResourceForeground: #8db9e2}.cm-wrapper{line-height:18px}.cm-wrapper,.cm-wrapper>div{width:100%;height:100%}.CodeMirror span.cm-meta{color:var(--vscode-editor-foreground)}.CodeMirror span.cm-number{color:var(--vscode-debugTokenExpression-number)}.CodeMirror span.cm-keyword,.CodeMirror span.cm-builtin{color:var(--vscode-debugTokenExpression-name)}.CodeMirror span.cm-operator{color:var(--vscode-editor-foreground)}.CodeMirror span.cm-string,.CodeMirror span.cm-string-2{color:var(--vscode-debugTokenExpression-string)}.CodeMirror span.cm-error{color:var(--vscode-errorForeground)}.CodeMirror span.cm-def,.CodeMirror span.cm-tag{color:#0070c1}.CodeMirror span.cm-comment,.CodeMirror span.cm-link{color:green}.CodeMirror span.cm-variable,.CodeMirror span.cm-variable-2,.CodeMirror span.cm-atom{color:#0070c1}.CodeMirror span.cm-property{color:#795e26}.CodeMirror span.cm-qualifier,.CodeMirror span.cm-attribute{color:#001080}.CodeMirror span.cm-variable-3,.CodeMirror span.cm-type{color:#267f99}:root.dark-mode .CodeMirror span.cm-def,:root.dark-mode .CodeMirror span.cm-tag{color:var(--vscode-debugView-valueChangedHighlight)}:root.dark-mode .CodeMirror span.cm-comment,:root.dark-mode .CodeMirror span.cm-link{color:#6a9955}:root.dark-mode .CodeMirror span.cm-variable,:root.dark-mode .CodeMirror span.cm-variable-2,:root.dark-mode .CodeMirror span.cm-atom{color:#4fc1ff}:root.dark-mode .CodeMirror span.cm-property{color:#dcdcaa}:root.dark-mode .CodeMirror span.cm-qualifier,:root.dark-mode .CodeMirror span.cm-attribute{color:#9cdcfe}:root.dark-mode .CodeMirror span.cm-variable-3,:root.dark-mode .CodeMirror span.cm-type{color:#4ec9b0}.CodeMirror span.cm-bracket{color:var(--vscode-editorBracketHighlight-foreground3)}.CodeMirror-cursor{border-left:1px solid var(--vscode-editor-foreground)!important}.CodeMirror div.CodeMirror-selected{background:var(--vscode-terminal-inactiveSelectionBackground)}.CodeMirror .CodeMirror-gutters{z-index:0;background:1px solid var(--vscode-editorGroup-border);border-right:none}.CodeMirror .CodeMirror-gutter-elt{background-color:var(--vscode-editorGutter-background)}.CodeMirror .CodeMirror-gutterwrapper{border-right:1px solid var(--vscode-editorGroup-border);color:var(--vscode-editorLineNumber-foreground)}.CodeMirror .CodeMirror-matchingbracket{background-color:var(--vscode-editorBracketPairGuide-background1);color:var(--vscode-editorBracketHighlight-foreground1)!important}.CodeMirror{font-family:var(--vscode-editor-font-family)!important;color:var(--vscode-editor-foreground)!important;background-color:var(--vscode-editor-background)!important;font-weight:var(--vscode-editor-font-weight)!important;font-size:var(--vscode-editor-font-size)!important}.CodeMirror .source-line-running{background-color:var(--vscode-editor-selectionBackground);z-index:2}.CodeMirror .source-line-paused{background-color:var(--vscode-editor-selectionHighlightBackground);z-index:2}.CodeMirror .source-line-error-widget{background-color:var(--vscode-inputValidation-errorBackground);white-space:pre-wrap;margin:3px 10px;padding:5px}.CodeMirror span.cm-link,span.cm-linkified{color:var(--vscode-textLink-foreground);text-decoration:underline;cursor:pointer}.CodeMirror .source-line-error-underline{text-decoration:underline;text-decoration-color:var(--vscode-errorForeground);text-decoration-style:wavy}.CodeMirror-placeholder{color:var(--vscode-input-placeholderForeground)!important}.CodeMirror-dialog-top{padding-top:8px!important}.expandable{flex:none;flex-direction:column;line-height:28px}.expandable-title{flex:none;display:flex;flex-direction:row;align-items:center;white-space:nowrap;-webkit-user-select:none;user-select:none;cursor:pointer}.expandable-content{margin-left:25px}.source-tab{flex:auto;position:relative;overflow:hidden;display:flex;flex-direction:row}.source-tab-file-name{padding-left:8px;height:100%;display:flex;align-items:center;flex:1 1 auto}.source-tab-file-name div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stack-trace-frame-function{flex:1 1 100px;overflow:hidden;text-overflow:ellipsis}.stack-trace-frame-location{flex:1 1 100px;overflow:hidden;text-overflow:ellipsis;text-align:end}.stack-trace-frame-line{flex:none}.toolbar{position:relative;display:flex;color:var(--vscode-sideBarTitle-foreground);min-height:30px;align-items:center;flex:none;padding-right:4px}.toolbar.toolbar-sidebar-background{background-color:var(--vscode-sideBar-background)}.toolbar:after{content:"";display:block;position:absolute;pointer-events:none;top:0;bottom:0;left:-2px;right:-2px;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px;z-index:100}.toolbar.no-shadow:after{box-shadow:none}.toolbar.no-min-height{min-height:0}.toolbar input{padding:0 5px;line-height:24px;outline:none;margin:0 4px}.toolbar select{background:none;outline:none;padding:3px;margin:2px}.toolbar option{background-color:var(--vscode-tab-activeBackground)}.toolbar input,.toolbar select{border:none;color:var(--vscode-input-foreground);background-color:var(--vscode-input-background)}.console-tab{display:flex;flex:auto;white-space:pre}.console-line{width:100%;-webkit-user-select:text;user-select:text}.console-line .codicon{padding:0 2px 0 3px;position:relative;flex:none;top:3px}.console-line.warning .codicon{color:#ff8c00}.console-line-message{word-break:break-word;white-space:pre-wrap;position:relative}.console-location{padding-right:3px;float:right;color:var(--vscode-editorCodeLens-foreground);-webkit-user-select:none;user-select:none}.console-time{float:left;min-width:50px;color:var(--vscode-editorCodeLens-foreground);-webkit-user-select:none;user-select:none}.console-stack{white-space:pre-wrap;margin-left:50px}.console-line .codicon.status-none:after,.console-line .codicon.status-error:after,.console-line .codicon.status-warning:after{display:inline-block;content:"a";color:transparent;border-radius:4px;width:8px;height:8px;position:relative;top:8px;left:-7px}.console-line .codicon.status-error:after{background-color:var(--vscode-errorForeground)}.console-line .codicon.status-warning:after{background-color:var(--vscode-list-warningForeground)}.console-repeat{display:inline-block;padding:0 2px;font-size:12px;line-height:18px;border-radius:6px;background-color:#8c959f;color:#fff;margin-right:10px;flex:none;font-weight:600}.network-request-status-route{color:var(--vscode-statusBar-foreground);background-color:var(--vscode-statusBar-background)}.network-request-status-route.api{color:var(--vscode-statusBar-foreground);background-color:var(--vscode-statusBarItem-remoteBackground)}.network-grid-view .grid-view-column-method,.network-grid-view .grid-view-column-status{text-align:center}.network-grid-view .grid-view-column-duration,.network-grid-view .grid-view-column-size,.network-grid-view .grid-view-column-start{text-align:end}.network-request-details-tab{-webkit-user-select:text;user-select:text;overflow:auto}.network-request-details-tab>*{flex:none}.network-request-no-payload{margin-left:14px}.network-request-details-tab .expandable-title{padding-left:3px;background-color:var(--vscode-sideBar-background)}.network-request-details-tab .expandable-content{margin-left:0;padding-left:28px;line-height:24px}.network-request-details-header{margin:3px 0 3px 14px;font-weight:700}.network-request-details-header-count{color:var(--vscode-editorCodeLens-foreground);font-weight:400}.network-request-details-table{width:100%;line-height:18px;padding:8px 0 8px 8px;white-space:pre-wrap}.network-request-details-table td:first-of-type{width:30%;min-width:160px;vertical-align:top}.network-request-details-table td:nth-of-type(2){word-break:break-all;vertical-align:center}.network-request-details-tab .cm-wrapper{overflow:hidden}.network-request-request-body{max-height:100%}.network-request-request-body .expandable-content{height:100%}.network-font-preview{font-family:font-preview;font-size:30px;line-height:40px;padding:16px 16px 16px 6px;overflow:hidden;text-overflow:ellipsis;text-align:center}.network-font-preview-error{margin-top:8px;text-align:center}.tab-network .toolbar{min-height:30px!important;background-color:initial!important;border-bottom:1px solid var(--vscode-panel-border)}.tab-network .toolbar:after{box-shadow:none!important}.tab-network .tabbed-pane-tab.selected{font-weight:700}.copy-request-dropdown .copy-request-dropdown-toggle{margin-right:14px;width:135px}.copy-request-dropdown:not(:hover) .copy-request-dropdown-menu{display:none}.copy-request-dropdown .copy-request-dropdown-menu{position:absolute;display:flex;flex-direction:column;width:135px;z-index:10;background-color:var(--vscode-list-dropBackground)}.copy-request-dropdown .copy-request-dropdown-menu button{padding:8px;text-align:left}.green-circle:before,.red-circle:before,.yellow-circle:before{content:"";display:inline-block;width:12px;height:12px;border-radius:6px;margin-right:2px;align-self:center}.green-circle:before{background-color:var(--vscode-charts-green)}.red-circle:before{background-color:var(--vscode-charts-red)}.yellow-circle:before{background-color:var(--vscode-charts-yellow)}.tabbed-pane{display:flex;flex:auto;overflow:hidden}.tabbed-pane .toolbar{background-color:var(--vscode-sideBar-background)}.tabbed-pane .tab-content{display:flex;flex:auto;overflow:hidden;position:relative;flex-direction:column}.tabbed-pane-tab{padding:2px 6px 0;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;border-bottom:2px solid transparent;outline:none;height:100%}.tabbed-pane-tab-label{max-width:250px;white-space:pre;overflow:hidden;text-overflow:ellipsis;display:inline-block}.tabbed-pane-tab.selected{background-color:var(--vscode-tab-activeBackground)}.tabbed-pane-tab-counter{padding:0 4px;background:var(--vscode-menu-separatorBackground);border-radius:8px;height:16px;margin-left:4px;line-height:16px;min-width:18px;display:flex;align-items:center;justify-content:center}.tabbed-pane-tab-counter.error{background:var(--vscode-list-errorForeground);color:var(--vscode-button-foreground)}.grid-view{display:flex;position:relative;flex:auto}.grid-view .list-view-entry{padding-left:0}.grid-view-cell{overflow:hidden;text-overflow:ellipsis;padding:0 5px;flex:none}.grid-view-header{-webkit-user-select:none;user-select:none;display:flex;flex:0 0 30px;align-items:center;flex-direction:row;border-bottom:1px solid var(--vscode-panel-border)}.grid-view-header .codicon-triangle-up,.grid-view-header .codicon-triangle-down{display:none}.grid-view-header>.filter-positive .codicon-triangle-down{display:initial!important}.grid-view-header>.filter-negative .codicon-triangle-up{display:initial!important}.grid-view-header-cell{flex:none;align-items:center;overflow:hidden;text-overflow:ellipsis;padding-left:10px;cursor:pointer;display:flex;white-space:nowrap}.grid-view-header-cell-title{overflow:hidden;text-overflow:ellipsis;flex:auto}.network-filters{display:flex;gap:16px;background-color:var(--vscode-sideBar-background);padding:4px 8px;min-height:32px}.network-filters input[type=search]{padding:0 5px}.network-filters-resource-types{display:flex;gap:8px;align-items:center}.network-filters-resource-type{cursor:pointer;border-radius:2px;padding:3px 8px;text-align:center;overflow:hidden;text-overflow:ellipsis}.network-filters-resource-type.selected{background-color:var(--vscode-list-inactiveSelectionBackground)}.snapshot-tab{align-items:stretch;outline:none;overflow:hidden}.snapshot-tab .toolbar{background-color:var(--vscode-sideBar-background)}.snapshot-tab .toolbar .pick-locator{margin:0 4px}.snapshot-controls{flex:none;background-color:var(--vscode-sideBar-background);color:var(--vscode-sideBarTitle-foreground);display:flex;box-shadow:var(--box-shadow);height:32px;align-items:center;justify-content:center}.snapshot-toggle{margin-top:4px;padding:4px 8px;cursor:pointer;border-radius:20px;margin-left:4px;width:60px;display:flex;align-items:center;justify-content:center}.snapshot-toggle:hover{background-color:#ededed}.snapshot-toggle.toggled{background:var(--gray);color:#fff}.snapshot-tab:focus .snapshot-toggle.toggled{background:var(--vscode-charts-blue)}.snapshot-wrapper{flex:auto;margin:1px;padding:10px;position:relative;--browser-frame-header-height: 40px}.snapshot-container{display:block;box-shadow:0 12px 28px #0003,0 2px 4px #0000001a}.snapshot-browser-body{height:calc(100% - var(--browser-frame-header-height));background:conic-gradient(#eee 25%,#ddd 0,#ddd 50%,#eee 0,#eee 75%,#ddd 0) 0 0 / 40px 40px}.snapshot-switcher{width:100%;height:100%;position:relative}iframe[name=snapshot]{position:absolute;top:0;left:0;width:100%;height:100%;border:none;background:#fff;visibility:hidden}iframe.snapshot-visible[name=snapshot]{visibility:visible}.no-snapshot{text-align:center;padding:50px}.snapshot-tab .cm-wrapper{line-height:23px;margin-right:4px}.browser-frame-dot{border-radius:50%;display:inline-block;height:12px;width:12px}.browser-frame-address-bar{background-color:var(--vscode-input-background);border-radius:12.5px;color:var(--vscode-input-foreground);flex:1 0;font:400 16px Arial,sans-serif;margin:0 16px 0 8px;padding:5px 15px;display:flex;align-items:center;height:28px}.browser-frame-address{flex:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.browser-frame-menu-bar{background-color:#aaa;display:block;height:3px;margin:3px 0;width:17px}.browser-frame-header{align-items:center;background:#ebedf0;display:flex;padding:8px 16px;border-top-left-radius:6px;border-top-right-radius:6px;height:var(--browser-frame-header-height)}:root.dark-mode .browser-frame-header{background:#444950}.browser-traffic-lights{display:grid;white-space:nowrap;grid-template-columns:auto auto auto;column-gap:6px;margin-right:8px}.film-strip{flex:none;display:flex;flex-direction:column;position:relative}.film-strip-lanes{flex:none;display:flex;flex-direction:column;position:relative;min-height:50px;max-height:200px;overflow-x:hidden;overflow-y:auto}.film-strip-lane{flex:none;display:flex}.film-strip-frame{flex:none;pointer-events:none;box-shadow:var(--box-shadow)}.film-strip-hover{position:absolute;top:0;left:0;background-color:var(--vscode-panel-background);box-shadow:#0002 0 1.6px 10px,#0000001c 0 .3px 10px;z-index:200;pointer-events:none}.film-strip-hover-title{padding:2px 4px;display:flex;align-items:center;overflow:hidden}.timeline-view-container{flex:none;border-bottom:1px solid var(--vscode-panel-border)}.timeline-view{flex:none;position:relative;display:flex;flex-direction:column;padding:20px 0 4px;cursor:text;-webkit-user-select:none;user-select:none;margin-left:10px;overflow-x:clip}.timeline-divider{position:absolute;width:1px;top:0;bottom:0;background-color:var(--vscode-panel-border)}.timeline-time{position:absolute;top:4px;right:3px;font-size:80%;white-space:nowrap;pointer-events:none}.timeline-time-input{cursor:pointer}.timeline-lane{pointer-events:none;overflow:hidden;flex:none;height:20px;position:relative}.timeline-grid{position:absolute;top:0;right:0;bottom:0;left:0}.timeline-bars{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none}.timeline-bar{position:absolute;--action-color: gray;--action-background-color: #88888802;border-top:2px solid var(--action-color)}.timeline-bar.active{background-color:var(--action-background-color)}.timeline-bar.action{--action-color: var(--vscode-charts-orange);--action-background-color: #d1861666}.timeline-bar.action.error{--action-color: var(--vscode-charts-red);--action-background-color: #e5140066}.timeline-bar.network{--action-color: var(--vscode-charts-blue);--action-background-color: #1a85ff66}.timeline-bar.console-message{--action-color: var(--vscode-charts-purple);--action-background-color: #1a85ff66}:root.dark-mode .timeline-bar.action.error{--action-color: var(--vscode-errorForeground);--action-background-color: #f4877166}.timeline-label{position:absolute;top:0;bottom:0;margin-left:2px;background-color:var(--vscode-panel-background);justify-content:center;display:none;white-space:nowrap}.timeline-label.selected{display:flex}.timeline-marker{display:none;position:absolute;top:0;bottom:0;pointer-events:none;border-left:3px solid var(--light-pink)}.timeline-window{display:flex;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none}.timeline-window-center{flex:auto}.timeline-window-drag{height:20px;cursor:grab;pointer-events:all}.timeline-window-curtain{flex:none;background-color:#3879d91a}:root.dark-mode .timeline-window-curtain{background-color:#161718bf}.timeline-window-resizer{flex:none;width:10px;cursor:ew-resize;pointer-events:all;position:relative;background-color:var(--vscode-panel-border);border-left:1px solid var(--vscode-panel-border);border-right:1px solid var(--vscode-panel-border)}.annotations-tab{flex:auto;line-height:24px;white-space:pre;overflow:auto;-webkit-user-select:text;user-select:text}.annotation-item{margin:4px 8px;text-wrap:wrap}.workbench-run-status{height:30px;padding:4px 4px 4px 5px;flex:none;display:flex;flex-direction:row;align-items:center;border-bottom:1px solid var(--vscode-panel-border)}.workbench-run-status.failed{color:var(--vscode-errorForeground)}.workbench-run-status .codicon{margin-right:4px}.workbench-run-duration{display:flex;flex:none;align-items:center;color:var(--vscode-editorCodeLens-foreground)}.workbench-actions-hidden-count{padding-right:4px;-webkit-user-select:none;user-select:none;color:var(--vscode-editorCodeLens-foreground)}.settings-view{display:flex;flex:none;padding:4px 0;row-gap:8px;-webkit-user-select:none;user-select:none}.settings-view .setting{display:flex;align-items:center}.settings-view .setting label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;cursor:pointer}.settings-view .setting input{margin-right:5px;flex-shrink:0}.settings-view .setting-select{display:grid;grid-template-rows:auto auto;row-gap:8px;margin:0 16px 0 22px;line-height:initial}.settings-view .setting-select:not(:first-child){margin-top:4px}.settings-view .setting-counter{padding:0 4px;background:var(--vscode-menu-separatorBackground);border-radius:9px;height:18px;margin-left:4px;line-height:18px;min-width:18px;display:inline-flex;align-items:center;justify-content:center}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import { M as MultiTraceModel, r as reactExports, T as TestServerConnection, W as WebSocketTestServerTransport, j as jsxRuntimeExports, D as DialogToolbarButton, a as DefaultSettingsView, b as Workbench, c as Dialog, d as applyTheme, e as clientExports } from "./assets/defaultSettingsView-D4fm31R-.js";
|
|
2
|
+
const WorkbenchLoader = () => {
|
|
3
|
+
const [isServer, setIsServer] = reactExports.useState(false);
|
|
4
|
+
const [traceURL, setTraceURL] = reactExports.useState();
|
|
5
|
+
const [uploadedTraceName, setUploadedTraceName] = reactExports.useState();
|
|
6
|
+
const [model, setModel] = reactExports.useState(emptyModel);
|
|
7
|
+
const [progress, setProgress] = reactExports.useState({ done: 0, total: 0 });
|
|
8
|
+
const [dragOver, setDragOver] = reactExports.useState(false);
|
|
9
|
+
const [processingErrorMessage, setProcessingErrorMessage] = reactExports.useState(null);
|
|
10
|
+
const [fileForLocalModeError, setFileForLocalModeError] = reactExports.useState(null);
|
|
11
|
+
const [showProgressDialog, setShowProgressDialog] = reactExports.useState(false);
|
|
12
|
+
const processTraceFiles = reactExports.useCallback((files) => {
|
|
13
|
+
const url = new URL(window.location.href);
|
|
14
|
+
if (!files.length)
|
|
15
|
+
return;
|
|
16
|
+
const file = files.item(0);
|
|
17
|
+
const blobTraceURL = URL.createObjectURL(file);
|
|
18
|
+
url.searchParams.append("trace", blobTraceURL);
|
|
19
|
+
const href = url.toString();
|
|
20
|
+
window.history.pushState({}, "", href);
|
|
21
|
+
setTraceURL(blobTraceURL);
|
|
22
|
+
setUploadedTraceName(file.name);
|
|
23
|
+
setDragOver(false);
|
|
24
|
+
setProcessingErrorMessage(null);
|
|
25
|
+
}, []);
|
|
26
|
+
reactExports.useEffect(() => {
|
|
27
|
+
const listener = async (e) => {
|
|
28
|
+
var _a;
|
|
29
|
+
if (!((_a = e.clipboardData) == null ? void 0 : _a.files.length))
|
|
30
|
+
return;
|
|
31
|
+
for (const file of e.clipboardData.files) {
|
|
32
|
+
if (file.type !== "application/zip")
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
e.preventDefault();
|
|
36
|
+
processTraceFiles(e.clipboardData.files);
|
|
37
|
+
};
|
|
38
|
+
document.addEventListener("paste", listener);
|
|
39
|
+
return () => document.removeEventListener("paste", listener);
|
|
40
|
+
});
|
|
41
|
+
reactExports.useEffect(() => {
|
|
42
|
+
const listener = (e) => {
|
|
43
|
+
const { method, params } = e.data;
|
|
44
|
+
if (method !== "load" || !((params == null ? void 0 : params.trace) instanceof Blob))
|
|
45
|
+
return;
|
|
46
|
+
const traceFile = new File([params.trace], "trace.zip", { type: "application/zip" });
|
|
47
|
+
const dataTransfer = new DataTransfer();
|
|
48
|
+
dataTransfer.items.add(traceFile);
|
|
49
|
+
processTraceFiles(dataTransfer.files);
|
|
50
|
+
};
|
|
51
|
+
window.addEventListener("message", listener);
|
|
52
|
+
return () => window.removeEventListener("message", listener);
|
|
53
|
+
});
|
|
54
|
+
const handleDropEvent = reactExports.useCallback((event) => {
|
|
55
|
+
event.preventDefault();
|
|
56
|
+
processTraceFiles(event.dataTransfer.files);
|
|
57
|
+
}, [processTraceFiles]);
|
|
58
|
+
const handleFileInputChange = reactExports.useCallback((event) => {
|
|
59
|
+
event.preventDefault();
|
|
60
|
+
if (!event.target.files)
|
|
61
|
+
return;
|
|
62
|
+
processTraceFiles(event.target.files);
|
|
63
|
+
}, [processTraceFiles]);
|
|
64
|
+
reactExports.useEffect(() => {
|
|
65
|
+
const params = new URL(window.location.href).searchParams;
|
|
66
|
+
const url = params.get("trace");
|
|
67
|
+
setIsServer(params.has("isServer"));
|
|
68
|
+
if (url == null ? void 0 : url.startsWith("file:")) {
|
|
69
|
+
setFileForLocalModeError(url || null);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (params.has("isServer")) {
|
|
73
|
+
const guid = new URLSearchParams(window.location.search).get("ws");
|
|
74
|
+
const wsURL = new URL(`../${guid}`, window.location.toString());
|
|
75
|
+
wsURL.protocol = window.location.protocol === "https:" ? "wss:" : "ws:";
|
|
76
|
+
const testServerConnection = new TestServerConnection(new WebSocketTestServerTransport(wsURL));
|
|
77
|
+
testServerConnection.onLoadTraceRequested(async (params2) => {
|
|
78
|
+
setTraceURL(params2.traceUrl);
|
|
79
|
+
setDragOver(false);
|
|
80
|
+
setProcessingErrorMessage(null);
|
|
81
|
+
});
|
|
82
|
+
testServerConnection.initialize({}).catch(() => {
|
|
83
|
+
});
|
|
84
|
+
} else if (url && !url.startsWith("blob:")) {
|
|
85
|
+
setTraceURL(url);
|
|
86
|
+
}
|
|
87
|
+
}, []);
|
|
88
|
+
reactExports.useEffect(() => {
|
|
89
|
+
(async () => {
|
|
90
|
+
if (!traceURL) {
|
|
91
|
+
setModel(emptyModel);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const swListener = (event) => {
|
|
95
|
+
if (event.data.method === "progress")
|
|
96
|
+
setProgress(event.data.params);
|
|
97
|
+
};
|
|
98
|
+
try {
|
|
99
|
+
navigator.serviceWorker.addEventListener("message", swListener);
|
|
100
|
+
setProgress({ done: 0, total: 1 });
|
|
101
|
+
const params = new URLSearchParams();
|
|
102
|
+
params.set("trace", traceURL);
|
|
103
|
+
const response = await fetch(`contexts?${params.toString()}`);
|
|
104
|
+
if (!response.ok) {
|
|
105
|
+
if (!isServer)
|
|
106
|
+
setTraceURL(void 0);
|
|
107
|
+
setProcessingErrorMessage((await response.json()).error);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const contextEntries = await response.json();
|
|
111
|
+
const model2 = new MultiTraceModel(traceURL, contextEntries);
|
|
112
|
+
setProgress({ done: 0, total: 0 });
|
|
113
|
+
setModel(model2);
|
|
114
|
+
} finally {
|
|
115
|
+
navigator.serviceWorker.removeEventListener("message", swListener);
|
|
116
|
+
}
|
|
117
|
+
})();
|
|
118
|
+
}, [isServer, traceURL, uploadedTraceName]);
|
|
119
|
+
const showLoading = progress.done !== progress.total && progress.total !== 0 && !processingErrorMessage;
|
|
120
|
+
reactExports.useEffect(() => {
|
|
121
|
+
if (showLoading) {
|
|
122
|
+
const timeout = setTimeout(() => {
|
|
123
|
+
setShowProgressDialog(true);
|
|
124
|
+
}, 200);
|
|
125
|
+
return () => clearTimeout(timeout);
|
|
126
|
+
} else {
|
|
127
|
+
setShowProgressDialog(false);
|
|
128
|
+
}
|
|
129
|
+
}, [showLoading]);
|
|
130
|
+
const showFileUploadDropArea = !!(!isServer && !dragOver && !fileForLocalModeError && (!traceURL || processingErrorMessage));
|
|
131
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "vbox workbench-loader", onDragOver: (event) => {
|
|
132
|
+
event.preventDefault();
|
|
133
|
+
setDragOver(true);
|
|
134
|
+
}, children: [
|
|
135
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hbox header", ...showFileUploadDropArea ? { inert: true } : {}, children: [
|
|
136
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "logo", children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: "playwright-logo.svg", alt: "Playwright logo" }) }),
|
|
137
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "product", children: "Playwright" }),
|
|
138
|
+
model.title && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "title", children: model.title }),
|
|
139
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "spacer" }),
|
|
140
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogToolbarButton, { icon: "settings-gear", title: "Settings", dialogDataTestId: "settings-toolbar-dialog", children: /* @__PURE__ */ jsxRuntimeExports.jsx(DefaultSettingsView, { location: "trace-viewer" }) })
|
|
141
|
+
] }),
|
|
142
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Workbench, { model, inert: showFileUploadDropArea }),
|
|
143
|
+
fileForLocalModeError && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "drop-target", children: [
|
|
144
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "Trace Viewer uses Service Workers to show traces. To view trace:" }),
|
|
145
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { paddingTop: 20 }, children: [
|
|
146
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
147
|
+
"1. Click ",
|
|
148
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: fileForLocalModeError, children: "here" }),
|
|
149
|
+
" to put your trace into the download shelf"
|
|
150
|
+
] }),
|
|
151
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
152
|
+
"2. Go to ",
|
|
153
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: "https://trace.playwright.dev", children: "trace.playwright.dev" })
|
|
154
|
+
] }),
|
|
155
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "3. Drop the trace from the download shelf into the page" })
|
|
156
|
+
] })
|
|
157
|
+
] }),
|
|
158
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: showProgressDialog, isModal: true, className: "progress-dialog", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "progress-content", children: [
|
|
159
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "title", role: "heading", "aria-level": 1, children: "Loading Playwright Trace..." }),
|
|
160
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "progress-wrapper", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "inner-progress", style: { width: progress.total ? 100 * progress.done / progress.total + "%" : 0 } }) })
|
|
161
|
+
] }) }),
|
|
162
|
+
showFileUploadDropArea && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "drop-target", children: [
|
|
163
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "processing-error", role: "alert", children: processingErrorMessage }),
|
|
164
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "title", role: "heading", "aria-level": 1, children: "Drop Playwright Trace to load" }),
|
|
165
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "or" }),
|
|
166
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("button", { onClick: () => {
|
|
167
|
+
const input = document.createElement("input");
|
|
168
|
+
input.type = "file";
|
|
169
|
+
input.click();
|
|
170
|
+
input.addEventListener("change", (e) => handleFileInputChange(e));
|
|
171
|
+
}, type: "button", children: "Select file" }),
|
|
172
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "info", children: "Playwright Trace Viewer is a Progressive Web App, it does not send your trace anywhere, it opens it locally." }),
|
|
173
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "version", children: [
|
|
174
|
+
"Playwright v",
|
|
175
|
+
"1.57.1"
|
|
176
|
+
] })
|
|
177
|
+
] }),
|
|
178
|
+
isServer && !traceURL && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "drop-target", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "title", children: "Select test to see the trace" }) }),
|
|
179
|
+
dragOver && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
180
|
+
"div",
|
|
181
|
+
{
|
|
182
|
+
className: "drop-target",
|
|
183
|
+
onDragLeave: () => {
|
|
184
|
+
setDragOver(false);
|
|
185
|
+
},
|
|
186
|
+
onDrop: (event) => handleDropEvent(event),
|
|
187
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "title", children: "Release to analyse the Playwright Trace" })
|
|
188
|
+
}
|
|
189
|
+
)
|
|
190
|
+
] });
|
|
191
|
+
};
|
|
192
|
+
const emptyModel = new MultiTraceModel("", []);
|
|
193
|
+
const LiveWorkbenchLoader = ({ traceJson }) => {
|
|
194
|
+
const [model, setModel] = reactExports.useState(void 0);
|
|
195
|
+
const [counter, setCounter] = reactExports.useState(0);
|
|
196
|
+
const pollTimer = reactExports.useRef(null);
|
|
197
|
+
reactExports.useEffect(() => {
|
|
198
|
+
if (pollTimer.current)
|
|
199
|
+
clearTimeout(pollTimer.current);
|
|
200
|
+
pollTimer.current = setTimeout(async () => {
|
|
201
|
+
try {
|
|
202
|
+
const model2 = await loadSingleTraceFile(traceJson);
|
|
203
|
+
setModel(model2);
|
|
204
|
+
} catch {
|
|
205
|
+
const model2 = new MultiTraceModel("", []);
|
|
206
|
+
setModel(model2);
|
|
207
|
+
} finally {
|
|
208
|
+
setCounter(counter + 1);
|
|
209
|
+
}
|
|
210
|
+
}, 500);
|
|
211
|
+
return () => {
|
|
212
|
+
if (pollTimer.current)
|
|
213
|
+
clearTimeout(pollTimer.current);
|
|
214
|
+
};
|
|
215
|
+
}, [traceJson, counter]);
|
|
216
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(Workbench, { isLive: true, model });
|
|
217
|
+
};
|
|
218
|
+
async function loadSingleTraceFile(traceJson) {
|
|
219
|
+
const params = new URLSearchParams();
|
|
220
|
+
params.set("trace", traceJson);
|
|
221
|
+
const response = await fetch(`contexts?${params.toString()}`);
|
|
222
|
+
const contextEntries = await response.json();
|
|
223
|
+
return new MultiTraceModel(traceJson, contextEntries);
|
|
224
|
+
}
|
|
225
|
+
(async () => {
|
|
226
|
+
const queryParams = new URLSearchParams(window.location.search);
|
|
227
|
+
applyTheme();
|
|
228
|
+
if (window.location.protocol !== "file:") {
|
|
229
|
+
if (queryParams.get("isUnderTest") === "true")
|
|
230
|
+
await new Promise((f) => setTimeout(f, 1e3));
|
|
231
|
+
if (!navigator.serviceWorker)
|
|
232
|
+
throw new Error(`Service workers are not supported.
|
|
233
|
+
Make sure to serve the Trace Viewer (${window.location}) via HTTPS or localhost.`);
|
|
234
|
+
navigator.serviceWorker.register("sw.bundle.js");
|
|
235
|
+
if (!navigator.serviceWorker.controller) {
|
|
236
|
+
await new Promise((f) => {
|
|
237
|
+
navigator.serviceWorker.oncontrollerchange = () => f();
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
setInterval(function() {
|
|
241
|
+
fetch("ping");
|
|
242
|
+
}, 1e4);
|
|
243
|
+
}
|
|
244
|
+
const trace = queryParams.get("trace");
|
|
245
|
+
const traceIsLive = trace == null ? void 0 : trace.endsWith(".json");
|
|
246
|
+
const workbench = traceIsLive ? /* @__PURE__ */ jsxRuntimeExports.jsx(LiveWorkbenchLoader, { traceJson: trace }) : /* @__PURE__ */ jsxRuntimeExports.jsx(WorkbenchLoader, {});
|
|
247
|
+
clientExports.createRoot(document.querySelector("#root")).render(workbench);
|
|
248
|
+
})();
|
|
249
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguQlFzOGdHaFkuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RyYWNlLXZpZXdlci9zcmMvdWkvd29ya2JlbmNoTG9hZGVyLnRzeCIsIi4uLy4uLy4uLy4uL3RyYWNlLXZpZXdlci9zcmMvdWkvbGl2ZVdvcmtiZW5jaExvYWRlci50c3giLCIuLi8uLi8uLi8uLi90cmFjZS12aWV3ZXIvc3JjL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cblxuICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBNdWx0aVRyYWNlTW9kZWwgfSBmcm9tICcuL21vZGVsVXRpbCc7XG5pbXBvcnQgJy4vd29ya2JlbmNoTG9hZGVyLmNzcyc7XG5pbXBvcnQgeyBXb3JrYmVuY2ggfSBmcm9tICcuL3dvcmtiZW5jaCc7XG5pbXBvcnQgeyBUZXN0U2VydmVyQ29ubmVjdGlvbiwgV2ViU29ja2V0VGVzdFNlcnZlclRyYW5zcG9ydCB9IGZyb20gJ0B0ZXN0SXNvbW9ycGhpYy90ZXN0U2VydmVyQ29ubmVjdGlvbic7XG5pbXBvcnQgeyBEaWFsb2dUb29sYmFyQnV0dG9uIH0gZnJvbSAnQHdlYi9jb21wb25lbnRzL2RpYWxvZ1Rvb2xiYXJCdXR0b24nO1xuaW1wb3J0IHsgRGlhbG9nIH0gZnJvbSAnQHdlYi9zaGFyZWQvZGlhbG9nJztcbmltcG9ydCB7IERlZmF1bHRTZXR0aW5nc1ZpZXcgfSBmcm9tICcuL2RlZmF1bHRTZXR0aW5nc1ZpZXcnO1xuXG5leHBvcnQgY29uc3QgV29ya2JlbmNoTG9hZGVyOiBSZWFjdC5GdW5jdGlvbkNvbXBvbmVudDx7XG59PiA9ICgpID0+IHtcbiAgY29uc3QgW2lzU2VydmVyLCBzZXRJc1NlcnZlcl0gPSBSZWFjdC51c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFt0cmFjZVVSTCwgc2V0VHJhY2VVUkxdID0gUmVhY3QudXNlU3RhdGU8c3RyaW5nPigpO1xuICBjb25zdCBbdXBsb2FkZWRUcmFjZU5hbWUsIHNldFVwbG9hZGVkVHJhY2VOYW1lXSA9IFJlYWN0LnVzZVN0YXRlPHN0cmluZz4oKTtcbiAgY29uc3QgW21vZGVsLCBzZXRNb2RlbF0gPSBSZWFjdC51c2VTdGF0ZTxNdWx0aVRyYWNlTW9kZWw+KGVtcHR5TW9kZWwpO1xuICBjb25zdCBbcHJvZ3Jlc3MsIHNldFByb2dyZXNzXSA9IFJlYWN0LnVzZVN0YXRlPHsgZG9uZTogbnVtYmVyLCB0b3RhbDogbnVtYmVyIH0+KHsgZG9uZTogMCwgdG90YWw6IDAgfSk7XG4gIGNvbnN0IFtkcmFnT3Zlciwgc2V0RHJhZ092ZXJdID0gUmVhY3QudXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCBbcHJvY2Vzc2luZ0Vycm9yTWVzc2FnZSwgc2V0UHJvY2Vzc2luZ0Vycm9yTWVzc2FnZV0gPSBSZWFjdC51c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2ZpbGVGb3JMb2NhbE1vZGVFcnJvciwgc2V0RmlsZUZvckxvY2FsTW9kZUVycm9yXSA9IFJlYWN0LnVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbc2hvd1Byb2dyZXNzRGlhbG9nLCBzZXRTaG93UHJvZ3Jlc3NEaWFsb2ddID0gUmVhY3QudXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0IHByb2Nlc3NUcmFjZUZpbGVzID0gUmVhY3QudXNlQ2FsbGJhY2soKGZpbGVzOiBGaWxlTGlzdCkgPT4ge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICAgIGlmICghZmlsZXMubGVuZ3RoKVxuICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IGZpbGUgPSBmaWxlcy5pdGVtKDApITtcbiAgICBjb25zdCBibG9iVHJhY2VVUkwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpO1xuICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCd0cmFjZScsIGJsb2JUcmFjZVVSTCk7XG4gICAgY29uc3QgaHJlZiA9IHVybC50b1N0cmluZygpO1xuICAgIC8vIFNuYXBzaG90IGxvYWRlcnMgd2lsbCBpbmhlcml0IHRoZSB0cmFjZSB1cmwgZnJvbSB0aGUgcXVlcnkgcGFyYW1ldGVycyxcbiAgICAvLyBzbyBzZXQgaXQgaGVyZS5cbiAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoe30sICcnLCBocmVmKTtcbiAgICBzZXRUcmFjZVVSTChibG9iVHJhY2VVUkwpO1xuICAgIHNldFVwbG9hZGVkVHJhY2VOYW1lKGZpbGUubmFtZSk7XG4gICAgc2V0RHJhZ092ZXIoZmFsc2UpO1xuICAgIHNldFByb2Nlc3NpbmdFcnJvck1lc3NhZ2UobnVsbCk7XG4gIH0sIFtdKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGxpc3RlbmVyID0gYXN5bmMgKGU6IENsaXBib2FyZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoIWUuY2xpcGJvYXJkRGF0YT8uZmlsZXMubGVuZ3RoKVxuICAgICAgICByZXR1cm47XG4gICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZS5jbGlwYm9hcmREYXRhLmZpbGVzKSB7XG4gICAgICAgIGlmIChmaWxlLnR5cGUgIT09ICdhcHBsaWNhdGlvbi96aXAnKVxuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHByb2Nlc3NUcmFjZUZpbGVzKGUuY2xpcGJvYXJkRGF0YS5maWxlcyk7XG4gICAgfTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwYXN0ZScsIGxpc3RlbmVyKTtcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncGFzdGUnLCBsaXN0ZW5lcik7XG4gIH0pO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGxpc3RlbmVyID0gKGU6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgY29uc3QgeyBtZXRob2QsIHBhcmFtcyB9ID0gZS5kYXRhO1xuXG4gICAgICBpZiAobWV0aG9kICE9PSAnbG9hZCcgfHwgIShwYXJhbXM/LnRyYWNlIGluc3RhbmNlb2YgQmxvYikpXG4gICAgICAgIHJldHVybjtcblxuICAgICAgY29uc3QgdHJhY2VGaWxlID0gbmV3IEZpbGUoW3BhcmFtcy50cmFjZV0sICd0cmFjZS56aXAnLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi96aXAnIH0pO1xuICAgICAgY29uc3QgZGF0YVRyYW5zZmVyID0gbmV3IERhdGFUcmFuc2ZlcigpO1xuXG4gICAgICBkYXRhVHJhbnNmZXIuaXRlbXMuYWRkKHRyYWNlRmlsZSk7XG5cbiAgICAgIHByb2Nlc3NUcmFjZUZpbGVzKGRhdGFUcmFuc2Zlci5maWxlcyk7XG4gICAgfTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGxpc3RlbmVyKTtcbiAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBsaXN0ZW5lcik7XG4gIH0pO1xuXG4gIGNvbnN0IGhhbmRsZURyb3BFdmVudCA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudDogUmVhY3QuRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgcHJvY2Vzc1RyYWNlRmlsZXMoZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcbiAgfSwgW3Byb2Nlc3NUcmFjZUZpbGVzXSk7XG5cbiAgY29uc3QgaGFuZGxlRmlsZUlucHV0Q2hhbmdlID0gUmVhY3QudXNlQ2FsbGJhY2soKGV2ZW50OiBhbnkpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghZXZlbnQudGFyZ2V0LmZpbGVzKVxuICAgICAgcmV0dXJuO1xuICAgIHByb2Nlc3NUcmFjZUZpbGVzKGV2ZW50LnRhcmdldC5maWxlcyk7XG4gIH0sIFtwcm9jZXNzVHJhY2VGaWxlc10pO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZikuc2VhcmNoUGFyYW1zO1xuICAgIGNvbnN0IHVybCA9IHBhcmFtcy5nZXQoJ3RyYWNlJyk7XG4gICAgc2V0SXNTZXJ2ZXIocGFyYW1zLmhhcygnaXNTZXJ2ZXInKSk7XG5cbiAgICAvLyBEb24ndCBhY2NlcHQgZmlsZTovLyBVUkxzIC0gdGhpcyBtZWFucyB3ZSByZSBvcGVuZWQgbG9jYWxseS5cbiAgICBpZiAodXJsPy5zdGFydHNXaXRoKCdmaWxlOicpKSB7XG4gICAgICBzZXRGaWxlRm9yTG9jYWxNb2RlRXJyb3IodXJsIHx8IG51bGwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMuaGFzKCdpc1NlcnZlcicpKSB7XG4gICAgICBjb25zdCBndWlkID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5nZXQoJ3dzJyk7XG4gICAgICBjb25zdCB3c1VSTCA9IG5ldyBVUkwoYC4uLyR7Z3VpZH1gLCB3aW5kb3cubG9jYXRpb24udG9TdHJpbmcoKSk7XG4gICAgICB3c1VSTC5wcm90b2NvbCA9ICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgPT09ICdodHRwczonID8gJ3dzczonIDogJ3dzOicpO1xuICAgICAgY29uc3QgdGVzdFNlcnZlckNvbm5lY3Rpb24gPSBuZXcgVGVzdFNlcnZlckNvbm5lY3Rpb24obmV3IFdlYlNvY2tldFRlc3RTZXJ2ZXJUcmFuc3BvcnQod3NVUkwpKTtcbiAgICAgIHRlc3RTZXJ2ZXJDb25uZWN0aW9uLm9uTG9hZFRyYWNlUmVxdWVzdGVkKGFzeW5jIHBhcmFtcyA9PiB7XG4gICAgICAgIHNldFRyYWNlVVJMKHBhcmFtcy50cmFjZVVybCk7XG4gICAgICAgIHNldERyYWdPdmVyKGZhbHNlKTtcbiAgICAgICAgc2V0UHJvY2Vzc2luZ0Vycm9yTWVzc2FnZShudWxsKTtcbiAgICAgIH0pO1xuICAgICAgdGVzdFNlcnZlckNvbm5lY3Rpb24uaW5pdGlhbGl6ZSh7fSkuY2F0Y2goKCkgPT4ge30pO1xuICAgIH0gZWxzZSBpZiAodXJsICYmICF1cmwuc3RhcnRzV2l0aCgnYmxvYjonKSkge1xuICAgICAgLy8gRG9uJ3QgcmUtdXNlIGJsb2IgZmlsZSBVUkxzIG9uIHBhZ2UgbG9hZCAocmVzdWx0cyBpbiBGZXRjaCBlcnJvcilcbiAgICAgIHNldFRyYWNlVVJMKHVybCk7XG4gICAgfVxuICB9LCBbXSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAoYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKCF0cmFjZVVSTCkge1xuICAgICAgICBzZXRNb2RlbChlbXB0eU1vZGVsKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzd0xpc3RlbmVyID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmRhdGEubWV0aG9kID09PSAncHJvZ3Jlc3MnKVxuICAgICAgICAgIHNldFByb2dyZXNzKGV2ZW50LmRhdGEucGFyYW1zKTtcbiAgICAgIH07XG4gICAgICB0cnkge1xuICAgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgc3dMaXN0ZW5lcik7XG4gICAgICAgIHNldFByb2dyZXNzKHsgZG9uZTogMCwgdG90YWw6IDEgfSk7XG5cbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgICAgICBwYXJhbXMuc2V0KCd0cmFjZScsIHRyYWNlVVJMKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgY29udGV4dHM/JHtwYXJhbXMudG9TdHJpbmcoKX1gKTtcbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgIGlmICghaXNTZXJ2ZXIpXG4gICAgICAgICAgICBzZXRUcmFjZVVSTCh1bmRlZmluZWQpO1xuICAgICAgICAgIHNldFByb2Nlc3NpbmdFcnJvck1lc3NhZ2UoKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkuZXJyb3IpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250ZXh0RW50cmllcyA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgICAgY29uc3QgbW9kZWwgPSBuZXcgTXVsdGlUcmFjZU1vZGVsKHRyYWNlVVJMLCBjb250ZXh0RW50cmllcyk7XG4gICAgICAgIHNldFByb2dyZXNzKHsgZG9uZTogMCwgdG90YWw6IDAgfSk7XG4gICAgICAgIHNldE1vZGVsKG1vZGVsKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBzd0xpc3RlbmVyKTtcbiAgICAgIH1cbiAgICB9KSgpO1xuICB9LCBbaXNTZXJ2ZXIsIHRyYWNlVVJMLCB1cGxvYWRlZFRyYWNlTmFtZV0pO1xuXG4gIGNvbnN0IHNob3dMb2FkaW5nID0gcHJvZ3Jlc3MuZG9uZSAhPT0gcHJvZ3Jlc3MudG90YWwgJiYgcHJvZ3Jlc3MudG90YWwgIT09IDAgJiYgIXByb2Nlc3NpbmdFcnJvck1lc3NhZ2U7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc2hvd0xvYWRpbmcpIHtcbiAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0U2hvd1Byb2dyZXNzRGlhbG9nKHRydWUpO1xuICAgICAgfSwgMjAwKTtcblxuICAgICAgcmV0dXJuICgpID0+IGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0U2hvd1Byb2dyZXNzRGlhbG9nKGZhbHNlKTtcbiAgICB9XG4gIH0sIFtzaG93TG9hZGluZ10pO1xuXG4gIGNvbnN0IHNob3dGaWxlVXBsb2FkRHJvcEFyZWEgPSAhISghaXNTZXJ2ZXIgJiYgIWRyYWdPdmVyICYmICFmaWxlRm9yTG9jYWxNb2RlRXJyb3IgJiYgKCF0cmFjZVVSTCB8fCBwcm9jZXNzaW5nRXJyb3JNZXNzYWdlKSk7XG5cbiAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPSd2Ym94IHdvcmtiZW5jaC1sb2FkZXInIG9uRHJhZ092ZXI9e2V2ZW50ID0+IHsgZXZlbnQucHJldmVudERlZmF1bHQoKTsgc2V0RHJhZ092ZXIodHJ1ZSk7IH19PlxuICAgIDxkaXYgY2xhc3NOYW1lPSdoYm94IGhlYWRlcicgey4uLihzaG93RmlsZVVwbG9hZERyb3BBcmVhID8geyBpbmVydDogdHJ1ZSB9IDoge30pfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPSdsb2dvJz5cbiAgICAgICAgPGltZyBzcmM9J3BsYXl3cmlnaHQtbG9nby5zdmcnIGFsdD0nUGxheXdyaWdodCBsb2dvJyAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT0ncHJvZHVjdCc+UGxheXdyaWdodDwvZGl2PlxuICAgICAge21vZGVsLnRpdGxlICYmIDxkaXYgY2xhc3NOYW1lPSd0aXRsZSc+e21vZGVsLnRpdGxlfTwvZGl2Pn1cbiAgICAgIDxkaXYgY2xhc3NOYW1lPSdzcGFjZXInPjwvZGl2PlxuICAgICAgPERpYWxvZ1Rvb2xiYXJCdXR0b24gaWNvbj0nc2V0dGluZ3MtZ2VhcicgdGl0bGU9J1NldHRpbmdzJyBkaWFsb2dEYXRhVGVzdElkPSdzZXR0aW5ncy10b29sYmFyLWRpYWxvZyc+XG4gICAgICAgIDxEZWZhdWx0U2V0dGluZ3NWaWV3IGxvY2F0aW9uPSd0cmFjZS12aWV3ZXInIC8+XG4gICAgICA8L0RpYWxvZ1Rvb2xiYXJCdXR0b24+XG4gICAgPC9kaXY+XG4gICAgPFdvcmtiZW5jaCBtb2RlbD17bW9kZWx9IGluZXJ0PXtzaG93RmlsZVVwbG9hZERyb3BBcmVhfSAvPlxuICAgIHtmaWxlRm9yTG9jYWxNb2RlRXJyb3IgJiYgPGRpdiBjbGFzc05hbWU9J2Ryb3AtdGFyZ2V0Jz5cbiAgICAgIDxkaXY+VHJhY2UgVmlld2VyIHVzZXMgU2VydmljZSBXb3JrZXJzIHRvIHNob3cgdHJhY2VzLiBUbyB2aWV3IHRyYWNlOjwvZGl2PlxuICAgICAgPGRpdiBzdHlsZT17eyBwYWRkaW5nVG9wOiAyMCB9fT5cbiAgICAgICAgPGRpdj4xLiBDbGljayA8YSBocmVmPXtmaWxlRm9yTG9jYWxNb2RlRXJyb3J9PmhlcmU8L2E+IHRvIHB1dCB5b3VyIHRyYWNlIGludG8gdGhlIGRvd25sb2FkIHNoZWxmPC9kaXY+XG4gICAgICAgIDxkaXY+Mi4gR28gdG8gPGEgaHJlZj0naHR0cHM6Ly90cmFjZS5wbGF5d3JpZ2h0LmRldic+dHJhY2UucGxheXdyaWdodC5kZXY8L2E+PC9kaXY+XG4gICAgICAgIDxkaXY+My4gRHJvcCB0aGUgdHJhY2UgZnJvbSB0aGUgZG93bmxvYWQgc2hlbGYgaW50byB0aGUgcGFnZTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+fVxuICAgIDxEaWFsb2cgb3Blbj17c2hvd1Byb2dyZXNzRGlhbG9nfSBpc01vZGFsPXt0cnVlfSBjbGFzc05hbWU9J3Byb2dyZXNzLWRpYWxvZyc+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT0ncHJvZ3Jlc3MtY29udGVudCc+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPSd0aXRsZScgcm9sZT0naGVhZGluZycgYXJpYS1sZXZlbD17MX0+TG9hZGluZyBQbGF5d3JpZ2h0IFRyYWNlLi4uPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPSdwcm9ncmVzcy13cmFwcGVyJz5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naW5uZXItcHJvZ3Jlc3MnIHN0eWxlPXt7IHdpZHRoOiBwcm9ncmVzcy50b3RhbCA/ICgxMDAgKiBwcm9ncmVzcy5kb25lIC8gcHJvZ3Jlc3MudG90YWwpICsgJyUnIDogMCB9fT48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L0RpYWxvZz5cbiAgICB7c2hvd0ZpbGVVcGxvYWREcm9wQXJlYSAmJiA8ZGl2IGNsYXNzTmFtZT0nZHJvcC10YXJnZXQnPlxuICAgICAgPGRpdiBjbGFzc05hbWU9J3Byb2Nlc3NpbmctZXJyb3InIHJvbGU9J2FsZXJ0Jz57cHJvY2Vzc2luZ0Vycm9yTWVzc2FnZX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPSd0aXRsZScgcm9sZT0naGVhZGluZycgYXJpYS1sZXZlbD17MX0+RHJvcCBQbGF5d3JpZ2h0IFRyYWNlIHRvIGxvYWQ8L2Rpdj5cbiAgICAgIDxkaXY+b3I8L2Rpdj5cbiAgICAgIDxidXR0b24gb25DbGljaz17KCkgPT4ge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIGlucHV0LnR5cGUgPSAnZmlsZSc7XG4gICAgICAgIGlucHV0LmNsaWNrKCk7XG4gICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGUgPT4gaGFuZGxlRmlsZUlucHV0Q2hhbmdlKGUpKTtcbiAgICAgIH19IHR5cGU9J2J1dHRvbic+U2VsZWN0IGZpbGU8L2J1dHRvbj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbmZvJz5QbGF5d3JpZ2h0IFRyYWNlIFZpZXdlciBpcyBhIFByb2dyZXNzaXZlIFdlYiBBcHAsIGl0IGRvZXMgbm90IHNlbmQgeW91ciB0cmFjZSBhbnl3aGVyZSxcbiAgICAgICAgaXQgb3BlbnMgaXQgbG9jYWxseS48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPSd2ZXJzaW9uJz5QbGF5d3JpZ2h0IHZ7X19BUFBfVkVSU0lPTl9ffTwvZGl2PlxuICAgIDwvZGl2Pn1cbiAgICB7aXNTZXJ2ZXIgJiYgIXRyYWNlVVJMICYmIDxkaXYgY2xhc3NOYW1lPSdkcm9wLXRhcmdldCc+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT0ndGl0bGUnPlNlbGVjdCB0ZXN0IHRvIHNlZSB0aGUgdHJhY2U8L2Rpdj5cbiAgICA8L2Rpdj59XG4gICAge2RyYWdPdmVyICYmIDxkaXYgY2xhc3NOYW1lPSdkcm9wLXRhcmdldCdcbiAgICAgIG9uRHJhZ0xlYXZlPXsoKSA9PiB7IHNldERyYWdPdmVyKGZhbHNlKTsgfX1cbiAgICAgIG9uRHJvcD17ZXZlbnQgPT4gaGFuZGxlRHJvcEV2ZW50KGV2ZW50KX0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT0ndGl0bGUnPlJlbGVhc2UgdG8gYW5hbHlzZSB0aGUgUGxheXdyaWdodCBUcmFjZTwvZGl2PlxuICAgIDwvZGl2Pn1cbiAgPC9kaXY+O1xufTtcblxuZXhwb3J0IGNvbnN0IGVtcHR5TW9kZWwgPSBuZXcgTXVsdGlUcmFjZU1vZGVsKCcnLCBbXSk7XG4iLCIvKlxuICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cblxuICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBNdWx0aVRyYWNlTW9kZWwgfSBmcm9tICcuL21vZGVsVXRpbCc7XG5pbXBvcnQgJy4vd29ya2JlbmNoTG9hZGVyLmNzcyc7XG5pbXBvcnQgeyBXb3JrYmVuY2ggfSBmcm9tICcuL3dvcmtiZW5jaCc7XG5cbmltcG9ydCB0eXBlIHsgQ29udGV4dEVudHJ5IH0gZnJvbSAnLi4vdHlwZXMvZW50cmllcyc7XG5cbmV4cG9ydCBjb25zdCBMaXZlV29ya2JlbmNoTG9hZGVyOiBSZWFjdC5GQzx7IHRyYWNlSnNvbjogc3RyaW5nIH0+ID0gKHsgdHJhY2VKc29uIH0pID0+IHtcbiAgY29uc3QgW21vZGVsLCBzZXRNb2RlbF0gPSBSZWFjdC51c2VTdGF0ZTxNdWx0aVRyYWNlTW9kZWwgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGNvbnN0IFtjb3VudGVyLCBzZXRDb3VudGVyXSA9IFJlYWN0LnVzZVN0YXRlKDApO1xuICBjb25zdCBwb2xsVGltZXIgPSBSZWFjdC51c2VSZWY8Tm9kZUpTLlRpbWVvdXQgfCBudWxsPihudWxsKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChwb2xsVGltZXIuY3VycmVudClcbiAgICAgIGNsZWFyVGltZW91dChwb2xsVGltZXIuY3VycmVudCk7XG5cbiAgICAvLyBTdGFydCBwb2xsaW5nIHJ1bm5pbmcgdGVzdC5cbiAgICBwb2xsVGltZXIuY3VycmVudCA9IHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgbW9kZWwgPSBhd2FpdCBsb2FkU2luZ2xlVHJhY2VGaWxlKHRyYWNlSnNvbik7XG4gICAgICAgIHNldE1vZGVsKG1vZGVsKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBjb25zdCBtb2RlbCA9IG5ldyBNdWx0aVRyYWNlTW9kZWwoJycsIFtdKTtcbiAgICAgICAgc2V0TW9kZWwobW9kZWwpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2V0Q291bnRlcihjb3VudGVyICsgMSk7XG4gICAgICB9XG4gICAgfSwgNTAwKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHBvbGxUaW1lci5jdXJyZW50KVxuICAgICAgICBjbGVhclRpbWVvdXQocG9sbFRpbWVyLmN1cnJlbnQpO1xuICAgIH07XG4gIH0sIFt0cmFjZUpzb24sIGNvdW50ZXJdKTtcblxuICByZXR1cm4gPFdvcmtiZW5jaCBpc0xpdmU9e3RydWV9IG1vZGVsPXttb2RlbH0gLz47XG59O1xuXG5hc3luYyBmdW5jdGlvbiBsb2FkU2luZ2xlVHJhY2VGaWxlKHRyYWNlSnNvbjogc3RyaW5nKTogUHJvbWlzZTxNdWx0aVRyYWNlTW9kZWw+IHtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICBwYXJhbXMuc2V0KCd0cmFjZScsIHRyYWNlSnNvbik7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYGNvbnRleHRzPyR7cGFyYW1zLnRvU3RyaW5nKCl9YCk7XG4gIGNvbnN0IGNvbnRleHRFbnRyaWVzID0gYXdhaXQgcmVzcG9uc2UuanNvbigpIGFzIENvbnRleHRFbnRyeVtdO1xuICByZXR1cm4gbmV3IE11bHRpVHJhY2VNb2RlbCh0cmFjZUpzb24sIGNvbnRleHRFbnRyaWVzKTtcbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCAnQHdlYi9jb21tb24uY3NzJztcbmltcG9ydCB7IGFwcGx5VGhlbWUgfSBmcm9tICdAd2ViL3RoZW1lJztcbmltcG9ydCAnQHdlYi90aGlyZF9wYXJ0eS92c2NvZGUvY29kaWNvbi5jc3MnO1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tL2NsaWVudCc7XG5pbXBvcnQgeyBXb3JrYmVuY2hMb2FkZXIgfSBmcm9tICcuL3VpL3dvcmtiZW5jaExvYWRlcic7XG5pbXBvcnQgeyBMaXZlV29ya2JlbmNoTG9hZGVyIH0gZnJvbSAnLi91aS9saXZlV29ya2JlbmNoTG9hZGVyJztcblxuKGFzeW5jICgpID0+IHtcbiAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuXG4gIGFwcGx5VGhlbWUoKTtcbiAgaWYgKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCAhPT0gJ2ZpbGU6Jykge1xuICAgIGlmIChxdWVyeVBhcmFtcy5nZXQoJ2lzVW5kZXJUZXN0JykgPT09ICd0cnVlJylcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKGYgPT4gc2V0VGltZW91dChmLCAxMDAwKSk7XG4gICAgaWYgKCFuYXZpZ2F0b3Iuc2VydmljZVdvcmtlcilcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU2VydmljZSB3b3JrZXJzIGFyZSBub3Qgc3VwcG9ydGVkLlxcbk1ha2Ugc3VyZSB0byBzZXJ2ZSB0aGUgVHJhY2UgVmlld2VyICgke3dpbmRvdy5sb2NhdGlvbn0pIHZpYSBIVFRQUyBvciBsb2NhbGhvc3QuYCk7XG4gICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoJ3N3LmJ1bmRsZS5qcycpO1xuICAgIGlmICghbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlcikge1xuICAgICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oZiA9PiB7XG4gICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9uY29udHJvbGxlcmNoYW5nZSA9ICgpID0+IGYoKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEtlZXAgU1cgcnVubmluZy5cbiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsgZmV0Y2goJ3BpbmcnKTsgfSwgMTAwMDApO1xuICB9XG5cbiAgY29uc3QgdHJhY2UgPSBxdWVyeVBhcmFtcy5nZXQoJ3RyYWNlJyk7XG4gIGNvbnN0IHRyYWNlSXNMaXZlID0gdHJhY2U/LmVuZHNXaXRoKCcuanNvbicpO1xuICBjb25zdCB3b3JrYmVuY2ggPSB0cmFjZUlzTGl2ZSA/IDxMaXZlV29ya2JlbmNoTG9hZGVyIHRyYWNlSnNvbj17dHJhY2UhfSAvPiA6IDxXb3JrYmVuY2hMb2FkZXIvPjtcbiAgUmVhY3RET00uY3JlYXRlUm9vdChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcm9vdCcpISkucmVuZGVyKHdvcmtiZW5jaCk7XG59KSgpO1xuIl0sIm5hbWVzIjpbIlJlYWN0LnVzZVN0YXRlIiwiUmVhY3QudXNlQ2FsbGJhY2siLCJSZWFjdC51c2VFZmZlY3QiLCJwYXJhbXMiLCJtb2RlbCIsImpzeHMiLCJqc3giLCJSZWFjdC51c2VSZWYiLCJSZWFjdERPTS5jcmVhdGVSb290Il0sIm1hcHBpbmdzIjoiO0FBeUJPLE1BQU0sa0JBQ1IsTUFBTTtBQUNULFFBQU0sQ0FBQyxVQUFVLFdBQVcsSUFBSUEsYUFBQUEsU0FBd0IsS0FBSztBQUM3RCxRQUFNLENBQUMsVUFBVSxXQUFXLElBQUlBLHNCQUFNO0FBQ3RDLFFBQU0sQ0FBQyxtQkFBbUIsb0JBQW9CLElBQUlBLHNCQUFNO0FBQ3hELFFBQU0sQ0FBQyxPQUFPLFFBQVEsSUFBSUEsYUFBQUEsU0FBZ0MsVUFBVTtBQUNwRSxRQUFNLENBQUMsVUFBVSxXQUFXLElBQUlBLGFBQUFBLFNBQWdELEVBQUUsTUFBTSxHQUFHLE9BQU8sR0FBRztBQUNyRyxRQUFNLENBQUMsVUFBVSxXQUFXLElBQUlBLGFBQUFBLFNBQXdCLEtBQUs7QUFDN0QsUUFBTSxDQUFDLHdCQUF3Qix5QkFBeUIsSUFBSUEsYUFB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.drop-target{display:flex;align-items:center;justify-content:center;flex:auto;flex-direction:column;background-color:var(--vscode-editor-background);position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;line-height:24px}body .drop-target{background:#fffc}:root.dark-mode .drop-target{background:#000c}.drop-target .title{font-size:24px;font-weight:700;margin-bottom:30px}.drop-target .info{max-width:400px;text-align:center}.drop-target .processing-error{font-size:24px;color:#e74c3c;font-weight:700;text-align:center;margin:30px;white-space:pre-line}.drop-target input{margin-top:50px}.drop-target button{color:#fff;background-color:#007acc;padding:8px 12px;border:none;margin:30px 0;cursor:pointer}.drop-target .version{color:var(--vscode-disabledForeground);margin-top:8px}.progress-dialog{width:400px;top:0;right:0;bottom:0;left:0;border:none;outline:none;background-color:var(--vscode-sideBar-background)}.progress-dialog::backdrop{background-color:#0006}.progress-content{padding:16px}.progress-content .title{background-color:unset;font-size:18px;font-weight:700;padding:0}.progress-wrapper{background-color:var(--vscode-commandCenter-activeBackground);width:100%;margin-top:16px;margin-bottom:8px}.inner-progress{background-color:var(--vscode-progressBar-background);height:4px}.header{display:flex;background-color:#000;flex:none;flex-basis:48px;line-height:48px;font-size:16px;color:#ccc}.workbench-loader{contain:size}.workbench-loader .header .toolbar-button{margin:12px;padding:8px 4px}.workbench-loader .logo{margin-left:16px;display:flex;align-items:center}.workbench-loader .logo img{height:32px;width:32px;pointer-events:none;flex:none}.workbench-loader .product{font-weight:600;margin-left:16px;flex:none}.workbench-loader .header .title{margin-left:16px;overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}html,body{min-width:550px;min-height:450px;overflow:auto}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{M as m,r as s,T as M,W as C,j as e,D as F,a as I,b as k,c as z,d as O,e as V}from"./assets/defaultSettingsView-tEZf-LNj.js";const $=()=>{const[o,i]=s.useState(!1),[c,l]=s.useState(),[h,u]=s.useState(),[g,L]=s.useState(N),[p,x]=s.useState({done:0,total:0}),[b,v]=s.useState(!1),[j,S]=s.useState(null),[y,P]=s.useState(null),[R,E]=s.useState(!1),w=s.useCallback(t=>{const r=new URL(window.location.href);if(!t.length)return;const n=t.item(0),a=URL.createObjectURL(n);r.searchParams.append("trace",a);const d=r.toString();window.history.pushState({},"",d),l(a),u(n.name),v(!1),S(null)},[]);s.useEffect(()=>{const t=async r=>{var n;if((n=r.clipboardData)!=null&&n.files.length){for(const a of r.clipboardData.files)if(a.type!=="application/zip")return;r.preventDefault(),w(r.clipboardData.files)}};return document.addEventListener("paste",t),()=>document.removeEventListener("paste",t)}),s.useEffect(()=>{const t=r=>{const{method:n,params:a}=r.data;if(n!=="load"||!((a==null?void 0:a.trace)instanceof Blob))return;const d=new File([a.trace],"trace.zip",{type:"application/zip"}),f=new DataTransfer;f.items.add(d),w(f.files)};return window.addEventListener("message",t),()=>window.removeEventListener("message",t)});const U=s.useCallback(t=>{t.preventDefault(),w(t.dataTransfer.files)},[w]),W=s.useCallback(t=>{t.preventDefault(),t.target.files&&w(t.target.files)},[w]);s.useEffect(()=>{const t=new URL(window.location.href).searchParams,r=t.get("trace");if(i(t.has("isServer")),r!=null&&r.startsWith("file:")){P(r||null);return}if(t.has("isServer")){const n=new URLSearchParams(window.location.search).get("ws"),a=new URL(`../${n}`,window.location.toString());a.protocol=window.location.protocol==="https:"?"wss:":"ws:";const d=new M(new C(a));d.onLoadTraceRequested(async f=>{l(f.traceUrl),v(!1),S(null)}),d.initialize({}).catch(()=>{})}else r&&!r.startsWith("blob:")&&l(r)},[]),s.useEffect(()=>{(async()=>{if(!c){L(N);return}const t=r=>{r.data.method==="progress"&&x(r.data.params)};try{navigator.serviceWorker.addEventListener("message",t),x({done:0,total:1});const r=new URLSearchParams;r.set("trace",c);const n=await fetch(`contexts?${r.toString()}`);if(!n.ok){o||l(void 0),S((await n.json()).error);return}const a=await n.json(),d=new m(c,a);x({done:0,total:0}),L(d)}finally{navigator.serviceWorker.removeEventListener("message",t)}})()},[o,c,h]);const D=p.done!==p.total&&p.total!==0&&!j;s.useEffect(()=>{if(D){const t=setTimeout(()=>{E(!0)},200);return()=>clearTimeout(t)}else E(!1)},[D]);const T=!!(!o&&!b&&!y&&(!c||j));return e.jsxs("div",{className:"vbox workbench-loader",onDragOver:t=>{t.preventDefault(),v(!0)},children:[e.jsxs("div",{className:"hbox header",...T?{inert:!0}:{},children:[e.jsx("div",{className:"logo",children:e.jsx("img",{src:"playwright-logo.svg",alt:"Playwright logo"})}),e.jsx("div",{className:"product",children:"Playwright"}),g.title&&e.jsx("div",{className:"title",children:g.title}),e.jsx("div",{className:"spacer"}),e.jsx(F,{icon:"settings-gear",title:"Settings",dialogDataTestId:"settings-toolbar-dialog",children:e.jsx(I,{location:"trace-viewer"})})]}),e.jsx(k,{model:g,inert:T}),y&&e.jsxs("div",{className:"drop-target",children:[e.jsx("div",{children:"Trace Viewer uses Service Workers to show traces. To view trace:"}),e.jsxs("div",{style:{paddingTop:20},children:[e.jsxs("div",{children:["1. Click ",e.jsx("a",{href:y,children:"here"})," to put your trace into the download shelf"]}),e.jsxs("div",{children:["2. Go to ",e.jsx("a",{href:"https://trace.playwright.dev",children:"trace.playwright.dev"})]}),e.jsx("div",{children:"3. Drop the trace from the download shelf into the page"})]})]}),e.jsx(z,{open:R,isModal:!0,className:"progress-dialog",children:e.jsxs("div",{className:"progress-content",children:[e.jsx("div",{className:"title",role:"heading","aria-level":1,children:"Loading Playwright Trace..."}),e.jsx("div",{className:"progress-wrapper",children:e.jsx("div",{className:"inner-progress",style:{width:p.total?100*p.done/p.total+"%":0}})})]})}),T&&e.jsxs("div",{className:"drop-target",children:[e.jsx("div",{className:"processing-error",role:"alert",children:j}),e.jsx("div",{className:"title",role:"heading","aria-level":1,children:"Drop Playwright Trace to load"}),e.jsx("div",{children:"or"}),e.jsx("button",{onClick:()=>{const t=document.createElement("input");t.type="file",t.click(),t.addEventListener("change",r=>W(r))},type:"button",children:"Select file"}),e.jsx("div",{className:"info",children:"Playwright Trace Viewer is a Progressive Web App, it does not send your trace anywhere, it opens it locally."}),e.jsxs("div",{className:"version",children:["Playwright v","1.57.1"]})]}),o&&!c&&e.jsx("div",{className:"drop-target",children:e.jsx("div",{className:"title",children:"Select test to see the trace"})}),b&&e.jsx("div",{className:"drop-target",onDragLeave:()=>{v(!1)},onDrop:t=>U(t),children:e.jsx("div",{className:"title",children:"Release to analyse the Playwright Trace"})})]})},N=new m("",[]),q=({traceJson:o})=>{const[i,c]=s.useState(void 0),[l,h]=s.useState(0),u=s.useRef(null);return s.useEffect(()=>(u.current&&clearTimeout(u.current),u.current=setTimeout(async()=>{try{const g=await A(o);c(g)}catch{const g=new m("",[]);c(g)}finally{h(l+1)}},500),()=>{u.current&&clearTimeout(u.current)}),[o,l]),e.jsx(k,{isLive:!0,model:i})};async function A(o){const i=new URLSearchParams;i.set("trace",o);const l=await(await fetch(`contexts?${i.toString()}`)).json();return new m(o,l)}(async()=>{const o=new URLSearchParams(window.location.search);if(O(),window.location.protocol!=="file:"){if(o.get("isUnderTest")==="true"&&await new Promise(h=>setTimeout(h,1e3)),!navigator.serviceWorker)throw new Error(`Service workers are not supported.
|
|
2
|
+
Make sure to serve the Trace Viewer (${window.location}) via HTTPS or localhost.`);navigator.serviceWorker.register("sw.bundle.js"),navigator.serviceWorker.controller||await new Promise(h=>{navigator.serviceWorker.oncontrollerchange=()=>h()}),setInterval(function(){fetch("ping")},1e4)}const i=o.get("trace"),l=(i==null?void 0:i.endsWith(".json"))?e.jsx(q,{traceJson:i}):e.jsx($,{});V.createRoot(document.querySelector("#root")).render(l)})();
|