diff --git a/desktop/frontend/src/App.test.ts b/desktop/frontend/src/App.test.ts index 43e86048..a6c6300c 100644 --- a/desktop/frontend/src/App.test.ts +++ b/desktop/frontend/src/App.test.ts @@ -2,7 +2,7 @@ import { describe, expect, test, it, beforeEach, afterEach, vi } from "vitest"; import { mount, flushPromises } from "@vue/test-utils"; import { createPinia, setActivePinia } from "pinia"; import { __setPlatformForTests } from "./platform"; -import { createFakePlatform } from "./platform/__tests__/_fakePlatform"; +import { createFakePlatform, fakeEventBus } from "./platform/__tests__/_fakePlatform"; import { __setBindingsForTest } from "./lib/api"; import { TYPE, NIL_SID, encodeFrame, encodeText } from "./lib/proto"; import type { SessionInfo } from "./lib/connection"; @@ -81,10 +81,12 @@ describe("web capability gates", () => { expect(source).toContain(' { + test("relay config changes refresh both desktop connection state and identity", () => { expect(source).toContain("function refreshDesktopRelayConfig()"); + expect(source).toContain("function onRelayConfigChanged()"); expect(source).toContain("if (caps.wailsBindings)"); - expect(source).toContain('@relay-config-changed="refreshDesktopRelayConfig"'); + expect(source).toContain("void refreshRelayIdentity()"); + expect(source).toContain('@relay-config-changed="onRelayConfigChanged"'); expect(source).toContain('@close="onSettingsClose"'); expect(source).not.toContain('@close="showSettings = false; settingsInitialTab = undefined; refreshRelayConfig()"'); }); @@ -1573,6 +1575,49 @@ describe("admin view (main-area swap)", () => { expect(wrapper.find('[data-testid="admin-panel-stub"]').exists()).toBe(false); }); + + it("refreshes admin identity when the desktop uplink authenticates after boot", async () => { + const platform = createFakePlatform(); + platform.events = fakeEventBus(); + platform.relay.fetchMe = vi.fn() + .mockRejectedValueOnce(new Error("relay unavailable during boot")) + .mockResolvedValueOnce({ user_id: "u1", email: "a@b.com", is_admin: true }); + __setPlatformForTests(platform); + + const wrapper = mountAdminApp(); + await flushPromises(); + expect(wrapper.find('[data-testid="toggle-admin"]').exists()).toBe(false); + + platform.events.emit("relay:auth-info", { user_id: "u1" }); + await flushPromises(); + + expect(platform.relay.fetchMe).toHaveBeenCalledTimes(2); + expect(wrapper.find('[data-testid="toggle-admin"]').exists()).toBe(true); + }); + + it("ignores an older identity request that completes after a new relay user", async () => { + const platform = createFakePlatform(); + platform.events = fakeEventBus(); + let resolveBootIdentity!: (value: { user_id: string; email: string; is_admin: boolean }) => void; + const bootIdentity = new Promise<{ user_id: string; email: string; is_admin: boolean }>((resolve) => { + resolveBootIdentity = resolve; + }); + platform.relay.fetchMe = vi.fn() + .mockReturnValueOnce(bootIdentity) + .mockResolvedValueOnce({ user_id: "u2", email: "user@b.com", is_admin: false }); + __setPlatformForTests(platform); + + const wrapper = mountAdminApp(); + await vi.waitFor(() => expect(platform.relay.fetchMe).toHaveBeenCalledTimes(1)); + + platform.events.emit("relay:auth-info", { user_id: "u2" }); + await flushPromises(); + resolveBootIdentity({ user_id: "u1", email: "admin@b.com", is_admin: true }); + await flushPromises(); + + expect(platform.relay.fetchMe).toHaveBeenCalledTimes(2); + expect(wrapper.find('[data-testid="toggle-admin"]').exists()).toBe(false); + }); }); describe("recovery snapshot gated on caps.wailsBindings (web)", () => { diff --git a/desktop/frontend/src/App.vue b/desktop/frontend/src/App.vue index 26b56d50..40e2d1df 100644 --- a/desktop/frontend/src/App.vue +++ b/desktop/frontend/src/App.vue @@ -341,11 +341,39 @@ const starting = ref(false); const showSettings = ref(false); const toast = ref(""); -// Current relay identity, fetched once at boot (see onMounted). Exposed via -// defineExpose so tests can drive the isAdmin-transition watcher below -// without a second live fetchMe() call. +// Current relay identity, refreshed at boot and whenever relay authentication +// changes. Exposed via defineExpose so tests can drive the isAdmin-transition +// watcher below without a second live fetchMe() call. const me = ref(null); const isAdmin = computed(() => me.value?.is_admin === true); +let relayIdentityRequestSeq = 0; + +function clearRelayIdentity() { + relayIdentityRequestSeq++; + me.value = null; +} + +async function refreshRelayIdentity(expectedUserID = "", reportFailure = false) { + const requestSeq = ++relayIdentityRequestSeq; + try { + const next = await $platform.relay.fetchMe(); + if (requestSeq !== relayIdentityRequestSeq) return; + // relay:auth-info identifies the connection that triggered this refresh. + // A mismatch means the relay config changed while /api/me was in flight. + if (expectedUserID && next.user_id !== expectedUserID) { + me.value = null; + logWarn("app", "discarded relay identity from a different authenticated user"); + return; + } + me.value = next; + } catch (e) { + if (requestSeq !== relayIdentityRequestSeq) return; + me.value = null; + if (reportFailure) { + logWarn("app", "failed to refresh relay identity", { error: errText(e) }); + } + } +} // Whether the main area shows AdminPanel instead of the pane-grid tabs. // Not persisted (see spec §4.10) — always starts closed. const adminViewOpen = ref(false); @@ -361,6 +389,9 @@ const showSshHosts = ref(false); let quitListenerOff: (() => void) | null = null; let notificationClickListenerOff: (() => void) | null = null; let widgetActivateListenerOff: (() => void) | null = null; +let relayAuthInfoListenerOff: (() => void) | null = null; +let relayAuthRestoredListenerOff: (() => void) | null = null; +let relayAuthErrorListenerOff: (() => void) | null = null; function handleBeforeClose() { // Best-effort final persist so a clean quit always lands the latest state. @@ -902,6 +933,11 @@ function refreshDesktopRelayConfig() { } } +function onRelayConfigChanged() { + refreshDesktopRelayConfig(); + void refreshRelayIdentity(); +} + function onSettingsClose() { showSettings.value = false; settingsInitialTab.value = undefined; @@ -1571,9 +1607,19 @@ onMounted(async () => { } catch { /* keep default empty; .is-maximized stays off on darwin-bug-side */ } - $platform.events.on('relay:auth-error', (data) => { + relayAuthErrorListenerOff = $platform.events.on('relay:auth-error', (data) => { const d = data as { reason: string }; authError.value = d?.reason ?? null; + clearRelayIdentity(); + }); + relayAuthInfoListenerOff = $platform.events.on('relay:auth-info', (data) => { + const d = data as { user_id?: unknown }; + const userID = typeof d?.user_id === "string" ? d.user_id : ""; + if (!userID) { + clearRelayIdentity(); + return; + } + void refreshRelayIdentity(userID, true); }); $platform.events.on('relay:viewers', (data) => { const d = data as { session_id: string; count: number }; @@ -1602,7 +1648,8 @@ onMounted(async () => { void refreshShortcutBindings(); void refreshProfiles(); }); - $platform.events.on('relay:auth-restored', () => { + relayAuthRestoredListenerOff = $platform.events.on('relay:auth-restored', () => { + void refreshRelayIdentity("", true); if (caps.wailsBindings) return; void (async () => { try { @@ -1617,15 +1664,9 @@ onMounted(async () => { })(); }); // Fire-and-forget: drives TabBar's admin button + AdminPanel gating only. - // Not on the critical boot path — an unconfigured/unauthenticated relay - // rejects immediately and just leaves isAdmin false. - void (async () => { - try { - me.value = await $platform.relay.fetchMe(); - } catch { - me.value = null; - } - })(); + // Not on the critical boot path; auth lifecycle events retry this request + // after a transient startup failure or relay configuration change. + void refreshRelayIdentity(); syncRoute(); window.addEventListener("hashchange", syncRoute); if (caps.wailsBindings) { @@ -1796,6 +1837,13 @@ onUnmounted(() => { notificationClickListenerOff = null; widgetActivateListenerOff?.(); widgetActivateListenerOff = null; + relayAuthInfoListenerOff?.(); + relayAuthInfoListenerOff = null; + relayAuthRestoredListenerOff?.(); + relayAuthRestoredListenerOff = null; + relayAuthErrorListenerOff?.(); + relayAuthErrorListenerOff = null; + clearRelayIdentity(); window.removeEventListener("hashchange", syncRoute); sessionListStreams.detachAll(); if (toastHandle !== null) window.clearTimeout(toastHandle); @@ -1941,7 +1989,7 @@ defineExpose({ me }); @appearance-changed="onAppearanceChanged" @bindings-changed="onBindingsChanged" @profiles-changed="onProfilesChanged" - @relay-config-changed="refreshDesktopRelayConfig" + @relay-config-changed="onRelayConfigChanged" @session-created="onMobileSessionCreated" @close="onSettingsClose" /> diff --git a/internal/relay/web-dist/assets/FileExplorer-BsSESYjF.js b/internal/relay/web-dist/assets/FileExplorer-BGCt84ef.js similarity index 99% rename from internal/relay/web-dist/assets/FileExplorer-BsSESYjF.js rename to internal/relay/web-dist/assets/FileExplorer-BGCt84ef.js index c7294803..dc3196db 100644 --- a/internal/relay/web-dist/assets/FileExplorer-BsSESYjF.js +++ b/internal/relay/web-dist/assets/FileExplorer-BGCt84ef.js @@ -1,5 +1,5 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-Dchib396.js","assets/index-CPhFc1xe.js","assets/index-CMJgXADN.js","assets/useI18n-CnvN0FfF.js","assets/index-C93ksU7R.js","assets/prefsSync-D8z1rJ8H.js","assets/client-2UEf7AK8.js","assets/Switch-CpxGRRqY.js","assets/auth-Dhl8fEWW.js","assets/index-B6q5BPkU.css","assets/index-BtHosg8n.js","assets/index-MXpsJk3L.js","assets/index-BJe4IiST.js","assets/index-p_CjDrxf.js","assets/index-BPHRQyFA.js","assets/index-D73k4NcO.js","assets/index-BlhWulu2.js","assets/index-BgaS_Avq.js","assets/index-ZyB5w4NU.js","assets/index-BCkxFa-u.js","assets/index-CripwhQ-.js","assets/index-qv8oCKM7.js","assets/index-8VzpCkPZ.js","assets/index-Bj0r02vw.js","assets/index-nQPb1k27.js"])))=>i.map(i=>d[i]); -import{aq as Qe,bI as j,bu as En,bk as us,bx as O,ae as V,bm as mn,ab as J,ac as ke,bQ as hn,cb as q,cz as ds,cs as Oa,v as rt,a8 as me,bP as Pf,bl as Gi,ad as Ie,c4 as Q,al as vi,F as Xt,bK as mi,bs as qt,cB as Bi,cw as ft,aj as ps,_ as le,ct as If,bZ as Nf,cr as _f}from"./useI18n-CnvN0FfF.js";import{c as vt,a as it,e as Se,o as Ji,f as Ff,X as Wf,p as La,b as Hf,k as Vf,m as $f,h as zf,s as qf,n as Uf,j as Kf,d as jf,g as Gf,t as _s,q as Jf,u as Yf,i as Xf,U as Qf,r as Zf,l as eu}from"./index-C93ksU7R.js";/** +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CZ0p1U99.js","assets/index-q_Op_mkr.js","assets/index-Bc7PlSwi.js","assets/useI18n-CnvN0FfF.js","assets/index-BH9vIdLD.js","assets/prefsSync-D8z1rJ8H.js","assets/client-2UEf7AK8.js","assets/Switch-CpxGRRqY.js","assets/auth-Dhl8fEWW.js","assets/index-arVCiUK9.css","assets/index-sMVa0oql.js","assets/index-Ak5-vsum.js","assets/index-CsH7OxDu.js","assets/index-BSlQSXjR.js","assets/index-DW5ZYIIZ.js","assets/index-LsOWRKMa.js","assets/index-vv_fn0WP.js","assets/index-CH6joGJR.js","assets/index-Y0PF_oBA.js","assets/index-BEPhTiWa.js","assets/index-hbreRbwz.js","assets/index-hP5cCp4S.js","assets/index-CrP2n_El.js","assets/index-D9YFpvOI.js","assets/index-BfmBkV0O.js"])))=>i.map(i=>d[i]); +import{aq as Qe,bI as j,bu as En,bk as us,bx as O,ae as V,bm as mn,ab as J,ac as ke,bQ as hn,cb as q,cz as ds,cs as Oa,v as rt,a8 as me,bP as Pf,bl as Gi,ad as Ie,c4 as Q,al as vi,F as Xt,bK as mi,bs as qt,cB as Bi,cw as ft,aj as ps,_ as le,ct as If,bZ as Nf,cr as _f}from"./useI18n-CnvN0FfF.js";import{c as vt,a as it,e as Se,o as Ji,f as Ff,X as Wf,p as La,b as Hf,k as Vf,m as $f,h as zf,s as qf,n as Uf,j as Kf,d as jf,g as Gf,t as _s,q as Jf,u as Yf,i as Xf,U as Qf,r as Zf,l as eu}from"./index-BH9vIdLD.js";/** * @license lucide-vue-next v1.0.0 - ISC * * This source code is licensed under the ISC license. @@ -66,4 +66,4 @@ import{aq as Qe,bI as j,bu as En,bk as us,bx as O,ae as V,bm as mn,ab as J,ac as `))};if((_.mac||_.android)&&f.from==o-1&&/^\. ?$/.test(i.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(f={from:l,to:a,insert:ne.of([i.text.replace("."," ")])}),this.pendingContextChange=f,!e.state.readOnly){let u=this.to-this.from+(f.to-f.from+f.insert.length);Mo(e,f,S.single(this.toEditorPos(i.selectionStart,u),this.toEditorPos(i.selectionEnd,u)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),f.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,i.updateRangeStart-1),Math.min(t.text.length,i.updateRangeStart+1)))&&this.handlers.compositionend(i)},this.handlers.characterboundsupdate=i=>{let n=[],r=null;for(let o=this.toEditorPos(i.rangeStart),l=this.toEditorPos(i.rangeEnd);o{let n=[];for(let r of i.getTextFormats()){let o=r.underlineStyle,l=r.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(l)){let a=this.toEditorPos(r.rangeStart),h=this.toEditorPos(r.rangeEnd);if(a{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:i}=this.composing;this.composing=null,i&&this.reset(e.state)}};for(let i in this.handlers)t.addEventListener(i,this.handlers[i]);this.measureReq={read:i=>{this.editContext.updateControlBounds(i.contentDOM.getBoundingClientRect());let n=xn(i.root);n&&n.rangeCount&&this.editContext.updateSelectionBounds(n.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,i=!1,n=this.pendingContextChange;return e.changes.iterChanges((r,o,l,a,h)=>{if(i)return;let c=h.length-(o-r);if(n&&o>=n.to)if(n.from==r&&n.to==o&&n.insert.eq(h)){n=this.pendingContextChange=null,t+=c,this.to+=c;return}else n=null,this.revertPending(e.state);if(r+=t,o+=t,o<=this.from)this.from+=c,this.to+=c;else if(rthis.to||this.to-this.from+h.length>3e4){i=!0;return}this.editContext.updateText(this.toContextPos(r),this.toContextPos(o),h.toString()),this.to+=c}t+=c}),n&&!i&&this.revertPending(e.state),!i}update(e){let t=this.pendingContextChange,i=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(i.from,i.to)&&e.transactions.some(n=>!n.isUserEvent("input.type")&&n.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,i=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),n=this.toContextPos(t.head);(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=n)&&this.editContext.updateSelection(i,n)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let i=this.composing;return i&&i.drifted?i.editorBase+(e-i.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class H{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:i}=e;this.dispatchTransactions=e.dispatchTransactions||i&&(n=>n.forEach(r=>i(r,this)))||(n=>this.update(n)),this.dispatch=this.dispatch.bind(this),this._root=e.root||zd(e.parent)||document,this.viewState=new Bl(this,e.state||se.create(e)),e.scrollTo&&e.scrollTo.is(zn)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(Ri).map(n=>new nr(n));for(let n of this.plugins)n.update(this);this.observer=new pg(this),this.inputState=new _p(this),this.inputState.ensureHandlers(this.plugins),this.docView=new bl(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let t=e.length==1&&e[0]instanceof Ae?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,i=!1,n,r=this.state;for(let u of e){if(u.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=u.state}if(this.destroyed){this.viewState.state=r;return}let o=this.hasFocus,l=0,a=null;e.some(u=>u.annotation(Vh))?(this.inputState.notifiedFocused=o,l=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,a=$h(r,o),a||(l=1));let h=this.observer.delayedAndroidKey,c=null;if(h?(this.observer.clearDelayedAndroidKey(),c=this.observer.readChange(),(c&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(c=null)):this.observer.clear(),r.facet(se.phrases)!=this.state.facet(se.phrases))return this.setState(r);n=ws.create(this,r,e),n.flags|=l;let f=this.viewState.scrollTarget;try{this.updateState=2;for(let u of e){if(f&&(f=f.map(u.changes)),u.scrollIntoView){let{main:d}=u.state.selection,{x:p,y:g}=this.state.facet(H.cursorScrollMargin);f=new Fi(d.empty?d:S.cursor(d.head,d.head>d.anchor?-1:1),"nearest","nearest",g,p)}for(let d of u.effects)d.is(zn)&&(f=d.value.clip(this.state))}this.viewState.update(n,f),this.bidiCache=As.update(this.bidiCache,n.changes),n.empty||(this.updatePlugins(n),this.inputState.update(n)),t=this.docView.update(n),this.state.facet(ln)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(u=>u.isUserEvent("select.pointer")))}finally{this.updateState=0}if(n.startState.facet(Jn)!=n.state.facet(Jn)&&(this.viewState.mustMeasureContent=!0),(t||i||f||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!n.empty)for(let u of this.state.facet(Ur))try{u(n)}catch(d){Lt(this.state,d,"update listener")}(a||c)&&Promise.resolve().then(()=>{a&&this.state==a.startState&&this.dispatch(a),c&&!Ph(this,c)&&h.force&&_i(this.contentDOM,h.key,h.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let i of this.plugins)i.destroy(this);this.viewState=new Bl(this,e),this.plugins=e.facet(Ri).map(i=>new nr(i)),this.pluginMap.clear();for(let i of this.plugins)i.update(this);this.docView.destroy(),this.docView=new bl(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(Ri),i=e.state.facet(Ri);if(t!=i){let n=[];for(let r of i){let o=t.indexOf(r);if(o<0)n.push(new nr(r));else{let l=this.plugins[o];l.mustUpdate=e,n.push(l)}}for(let r of this.plugins)r.mustUpdate!=e&&r.destroy(this);this.plugins=n,this.pluginMap.clear()}else for(let n of this.plugins)n.mustUpdate=e;for(let n=0;n-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,i=this.viewState.scrollParent,n=this.viewState.getScrollOffset(),{scrollAnchorPos:r,scrollAnchorHeight:o}=this.viewState;Math.abs(n-this.viewState.scrollOffset)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let l=0;;l++){if(o<0)if(ah(i||this.win))r=-1,o=this.viewState.heightMap.height;else{let d=this.viewState.scrollAnchorAt(n);r=d.from,o=d.top}this.updateState=1;let a=this.viewState.measure();if(!a&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let h=[];a&4||([this.measureRequests,h]=[h,this.measureRequests]);let c=h.map(d=>{try{return d.read(this)}catch(p){return Lt(this.state,p),_l}}),f=ws.create(this,this.state,[]),u=!1;f.flags|=a,t?t.flags|=a:t=f,this.updateState=2,f.empty||(this.updatePlugins(f),this.inputState.update(f),this.updateAttrs(),u=this.docView.update(f),u&&this.docViewUpdate());for(let d=0;d1||p<-1)&&(i==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){n=n+p,i?i.scrollTop+=p:this.win.scrollBy(0,p),o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let l of this.state.facet(Ur))l(t)}get themeClasses(){return Yr+" "+(this.state.facet(Jr)?Kh:Uh)+" "+this.state.facet(Jn)}updateAttrs(){let e=Fl(this,Ah,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(Ft)?"true":"false",class:"cm-content",style:`${_.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),Fl(this,Co,t);let i=this.observer.ignore(()=>{let n=dl(this.contentDOM,this.contentAttrs,t),r=dl(this.dom,this.editorAttrs,e);return n||r});return this.editorAttrs=e,this.contentAttrs=t,i}showAnnouncements(e){let t=!0;for(let i of e)for(let n of i.effects)if(n.is(H.announce)){t&&(this.announceDOM.textContent=""),t=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=n.value}}mountStyles(){this.styleModules=this.state.facet(ln);let e=this.state.facet(H.cspNonce);ii.mount(this.root,this.styleModules.concat(ug).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;ti.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,i){return lr(this,e,wl(this,e,t,i))}moveByGroup(e,t){return lr(this,e,wl(this,e,t,i=>Tp(this,e.head,i)))}visualLineSide(e,t){let i=this.bidiSpans(e),n=this.textDirectionAt(e.from),r=i[t?i.length-1:0];return S.cursor(r.side(t,n)+e.from,r.forward(!t,n)?1:-1)}moveToLineBoundary(e,t,i=!0){return Mp(this,e,t,i)}moveVertically(e,t,i){return lr(this,e,Dp(this,e,t,i))}domAtPos(e,t=1){return this.docView.domAtPos(e,t)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){this.readMeasured();let i=jr(this,e,t);return i&&i.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),jr(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let i=this.docView.coordsAt(e,t);if(!i||i.left==i.right)return i;let n=this.state.doc.lineAt(e),r=this.bidiSpans(n),o=r[Ot.find(r,e-n.from,-1,t)];return bs(i,o.dir==pe.LTR==t>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(kh)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>yg)return ph(e.length);let t=this.textDirectionAt(e.from),i;for(let r of this.bidiCache)if(r.from==e.from&&r.dir==t&&(r.fresh||dh(r.isolates,i=ml(this,e))))return r.order;i||(i=ml(this,e));let n=Xd(e.text,t,i);return this.bidiCache.push(new As(e.from,e.to,t,i,!0,n)),n}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||_.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{lh(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){var i,n,r,o;return zn.of(new Fi(typeof e=="number"?S.cursor(e):e,(i=t.y)!==null&&i!==void 0?i:"nearest",(n=t.x)!==null&&n!==void 0?n:"nearest",(r=t.yMargin)!==null&&r!==void 0?r:5,(o=t.xMargin)!==null&&o!==void 0?o:5))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,i=this.viewState.scrollAnchorAt(e);return zn.of(new Fi(S.cursor(i.from),"start","start",i.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return st.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return st.define(()=>({}),{eventObservers:e})}static theme(e,t){let i=ii.newName(),n=[Jn.of(i),ln.of(Xr(`.${i}`,e))];return t&&t.dark&&n.push(Jr.of(!0)),n}static baseTheme(e){return On.lowest(ln.of(Xr("."+Yr,e,jh)))}static findFromDOM(e){var t;let i=e.querySelector(".cm-content"),n=i&&ye.get(i)||ye.get(e);return((t=n==null?void 0:n.root)===null||t===void 0?void 0:t.view)||null}}H.styleModule=ln;H.inputHandler=wh;H.clipboardInputFilter=ko;H.clipboardOutputFilter=So;H.scrollHandler=Sh;H.focusChangeEffect=xh;H.perLineTextDirection=kh;H.exceptionSink=bh;H.updateListener=Ur;H.editable=Ft;H.mouseSelectionStyle=vh;H.dragMovesSelection=yh;H.clickAddsSelectionRange=mh;H.decorations=Vs;H.blockWrappers=Mh;H.outerDecorations=Ao;H.atomicRanges=Pn;H.bidiIsolatedRanges=Th;H.cursorScrollMargin=F.define({combine:s=>{let e=5,t=5;for(let i of s)typeof i=="number"?e=t=i:{x:e,y:t}=i;return{x:e,y:t}}});H.scrollMargins=Dh;H.darkTheme=Jr;H.cspNonce=F.define({combine:s=>s.length?s[0]:""});H.contentAttributes=Co;H.editorAttributes=Ah;H.lineWrapping=H.contentAttributes.of({class:"cm-lineWrapping"});H.announce=oe.define();const yg=4096,_l={};class As{constructor(e,t,i,n,r,o){this.from=e,this.to=t,this.dir=i,this.isolates=n,this.fresh=r,this.order=o}static update(e,t){if(t.empty&&!e.some(r=>r.fresh))return e;let i=[],n=e.length?e[e.length-1].dir:pe.LTR;for(let r=Math.max(0,e.length-10);r=0;n--){let r=i[n],o=typeof r=="function"?r(s):r;o&&bo(o,t)}return t}const vg=_.mac?"mac":_.windows?"win":_.linux?"linux":"key";function bg(s,e){const t=s.split(/-(?!$)/);let i=t[t.length-1];i=="Space"&&(i=" ");let n,r,o,l;for(let a=0;ai.concat(n),[]))),t}function xg(s,e,t){return Jh(Gh(s.state),e,s,t)}let Yt=null;const kg=4e3;function Sg(s,e=vg){let t=Object.create(null),i=Object.create(null),n=(o,l)=>{let a=i[o];if(a==null)i[o]=l;else if(a!=l)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},r=(o,l,a,h,c)=>{var f,u;let d=t[o]||(t[o]=Object.create(null)),p=l.split(/ (?!$)/).map(b=>bg(b,e));for(let b=1;b{let D=Yt={view:T,prefix:x,scope:o};return setTimeout(()=>{Yt==D&&(Yt=null)},kg),!0}]})}let g=p.join(" ");n(g,!1);let y=d[g]||(d[g]={preventDefault:!1,stopPropagation:!1,run:((u=(f=d._any)===null||f===void 0?void 0:f.run)===null||u===void 0?void 0:u.slice())||[]});a&&y.run.push(a),h&&(y.preventDefault=!0),c&&(y.stopPropagation=!0)};for(let o of s){let l=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let h of l){let c=t[h]||(t[h]=Object.create(null));c._any||(c._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:f}=o;for(let u in c)c[u].run.push(d=>f(d,Zr))}let a=o[e]||o.key;if(a)for(let h of l)r(h,a,o.run,o.preventDefault,o.stopPropagation),o.shift&&r(h,"Shift-"+a,o.shift,o.preventDefault,o.stopPropagation)}return t}let Zr=null;function Jh(s,e,t,i){Zr=e;let n=Id(e),r=Va(n,0),o=$a(r)==n.length&&n!=" ",l="",a=!1,h=!1,c=!1;Yt&&Yt.view==t&&Yt.scope==i&&(l=Yt.prefix+" ",_h.indexOf(e.keyCode)<0&&(h=!0,Yt=null));let f=new Set,u=y=>{if(y){for(let b of y.run)if(!f.has(b)&&(f.add(b),b(t)))return y.stopPropagation&&(c=!0),!0;y.preventDefault&&(y.stopPropagation&&(c=!0),h=!0)}return!1},d=s[i],p,g;return d&&(u(d[l+Yn(n,e,!o)])?a=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(_.windows&&e.ctrlKey&&e.altKey)&&!(_.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(p=ni[e.keyCode])&&p!=n?(u(d[l+Yn(p,e,!0)])||e.shiftKey&&(g=bn[e.keyCode])!=n&&g!=p&&u(d[l+Yn(g,e,!1)]))&&(a=!0):o&&e.shiftKey&&u(d[l+Yn(n,e,!0)])&&(a=!0),!a&&u(d._any)&&(a=!0)),h&&(a=!0),a&&c&&e.stopPropagation(),Zr=null,a}const Hl=F.define({combine(s){let e,t;for(let i of s)e=e||i.topContainer,t=t||i.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Yh(s,e){let t=s.plugin(Xh),i=t?t.specs.indexOf(e):-1;return i>-1?t.panels[i]:null}const Xh=st.fromClass(class{constructor(s){this.input=s.state.facet(Ms),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(s));let e=s.state.facet(Hl);this.top=new Xn(s,!0,e.topContainer),this.bottom=new Xn(s,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(s){let e=s.state.facet(Hl);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new Xn(s.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new Xn(s.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=s.state.facet(Ms);if(t!=this.input){let i=t.filter(a=>a),n=[],r=[],o=[],l=[];for(let a of i){let h=this.specs.indexOf(a),c;h<0?(c=a(s.view),l.push(c)):(c=this.panels[h],c.update&&c.update(s)),n.push(c),(c.top?r:o).push(c)}this.specs=i,this.panels=n,this.top.sync(r),this.bottom.sync(o);for(let a of l)a.dom.classList.add("cm-panel"),a.mount&&a.mount()}else for(let i of this.panels)i.update&&i.update(s)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:s=>H.scrollMargins.of(e=>{let t=e.plugin(s);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})});class Xn{constructor(e,t,i){this.view=e,this.top=t,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=Vl(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=Vl(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function Vl(s){let e=s.nextSibling;return s.remove(),e}const Ms=F.define({enables:Xh});function Cg(s,e){let t,i=new Promise(o=>t=o),n=o=>Ag(o,e,t);s.state.field(cr,!1)?s.dispatch({effects:Qh.of(n)}):s.dispatch({effects:oe.appendConfig.of(cr.init(()=>[n]))});let r=Zh.of(n);return{close:r,result:i.then(o=>((s.win.queueMicrotask||(a=>s.win.setTimeout(a,10)))(()=>{s.state.field(cr).indexOf(n)>-1&&s.dispatch({effects:r})}),o))}}const cr=bt.define({create(){return[]},update(s,e){for(let t of e.effects)t.is(Qh)?s=[t.value].concat(s):t.is(Zh)&&(s=s.filter(i=>i!=t.value));return s},provide:s=>Ms.computeN([s],e=>e.field(s))}),Qh=oe.define(),Zh=oe.define();function Ag(s,e,t){let i=e.content?e.content(s,()=>o(null)):null;if(!i){if(i=Ee("form"),e.input){let l=Ee("input",e.input);/^(text|password|number|email|tel|url)$/.test(l.type)&&l.classList.add("cm-textfield"),l.name||(l.name="input"),i.appendChild(Ee("label",(e.label||"")+": ",l))}else i.appendChild(document.createTextNode(e.label||""));i.appendChild(document.createTextNode(" ")),i.appendChild(Ee("button",{class:"cm-button",type:"submit"},e.submitLabel||"OK"))}let n=i.nodeName=="FORM"?[i]:i.querySelectorAll("form");for(let l=0;l{h.keyCode==27?(h.preventDefault(),o(null)):h.keyCode==13&&(h.preventDefault(),o(a))}),a.addEventListener("submit",h=>{h.preventDefault(),o(a)})}let r=Ee("div",i,Ee("button",{onclick:()=>o(null),"aria-label":s.state.phrase("close"),class:"cm-dialog-close",type:"button"},["×"]));e.class&&(r.className=e.class),r.classList.add("cm-dialog");function o(l){r.contains(r.ownerDocument.activeElement)&&s.focus(),t(l)}return{dom:r,top:e.top,mount:()=>{if(e.focus){let l;typeof e.focus=="string"?l=i.querySelector(e.focus):l=i.querySelector("input")||i.querySelector("button"),l&&"select"in l?l.select():l&&"focus"in l&&l.focus()}}}}class ri extends bi{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}ri.prototype.elementClass="";ri.prototype.toDOM=void 0;ri.prototype.mapMode=nt.TrackBefore;ri.prototype.startSide=ri.prototype.endSide=-1;ri.prototype.point=!0;const fr=F.define(),Mg=F.define(),Tg={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>ie.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},gn=F.define();function Dg(s){return[ec(),gn.of({...Tg,...s})]}const $l=F.define({combine:s=>s.some(e=>e)});function ec(s){return[Eg]}const Eg=st.fromClass(class{constructor(s){this.view=s,this.domAfter=null,this.prevViewport=s.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=s.state.facet(gn).map(e=>new ql(s,e)),this.fixed=!s.state.facet($l);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),s.scrollDOM.insertBefore(this.dom,s.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(s){if(this.updateGutters(s)){let e=this.prevViewport,t=s.view.viewport,i=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(i<(t.to-t.from)*.8)}if(s.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet($l)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=s.view.viewport}syncGutters(s){let e=this.dom.nextSibling;s&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let t=ie.iter(this.view.state.facet(fr),this.view.viewport.from),i=[],n=this.gutters.map(r=>new Og(r,this.view.viewport,-this.view.documentPadding.top));for(let r of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(r.type)){let o=!0;for(let l of r.type)if(l.type==Ye.Text&&o){eo(t,i,l.from);for(let a of n)a.line(this.view,l,i);o=!1}else if(l.widget)for(let a of n)a.widget(this.view,l)}else if(r.type==Ye.Text){eo(t,i,r.from);for(let o of n)o.line(this.view,r,i)}else if(r.widget)for(let o of n)o.widget(this.view,r);for(let r of n)r.finish();s&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(s){let e=s.startState.facet(gn),t=s.state.facet(gn),i=s.docChanged||s.heightChanged||s.viewportChanged||!ie.eq(s.startState.facet(fr),s.state.facet(fr),s.view.viewport.from,s.view.viewport.to);if(e==t)for(let n of this.gutters)n.update(s)&&(i=!0);else{i=!0;let n=[];for(let r of t){let o=e.indexOf(r);o<0?n.push(new ql(this.view,r)):(this.gutters[o].update(s),n.push(this.gutters[o]))}for(let r of this.gutters)r.dom.remove(),n.indexOf(r)<0&&r.destroy();for(let r of n)r.config.side=="after"?this.getDOMAfter().appendChild(r.dom):this.dom.appendChild(r.dom);this.gutters=n}return i}destroy(){for(let s of this.gutters)s.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:s=>H.scrollMargins.of(e=>{let t=e.plugin(s);if(!t||t.gutters.length==0||!t.fixed)return null;let i=t.dom.offsetWidth*e.scaleX,n=t.domAfter?t.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==pe.LTR?{left:i,right:n}:{right:i,left:n}})});function zl(s){return Array.isArray(s)?s:[s]}function eo(s,e,t){for(;s.value&&s.from<=t;)s.from==t&&e.push(s.value),s.next()}class Og{constructor(e,t,i){this.gutter=e,this.height=i,this.i=0,this.cursor=ie.iter(e.markers,t.from)}addElement(e,t,i){let{gutter:n}=this,r=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==n.elements.length){let l=new tc(e,o,r,i);n.elements.push(l),n.dom.appendChild(l.dom)}else n.elements[this.i].update(e,o,r,i);this.height=t.bottom,this.i++}line(e,t,i){let n=[];eo(this.cursor,n,t.from),i.length&&(n=n.concat(i));let r=this.gutter.config.lineMarker(e,t,n);r&&n.unshift(r);let o=this.gutter;n.length==0&&!o.config.renderEmptyElements||this.addElement(e,t,n)}widget(e,t){let i=this.gutter.config.widgetMarker(e,t.widget,t),n=i?[i]:null;for(let r of e.state.facet(Mg)){let o=r(e,t.widget,t);o&&(n||(n=[])).push(o)}n&&this.addElement(e,t,n)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}}class ql{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in t.domEventHandlers)this.dom.addEventListener(i,n=>{let r=n.target,o;if(r!=this.dom&&this.dom.contains(r)){for(;r.parentNode!=this.dom;)r=r.parentNode;let a=r.getBoundingClientRect();o=(a.top+a.bottom)/2}else o=n.clientY;let l=e.lineBlockAtHeight(o-e.documentTop);t.domEventHandlers[i](e,l,n)&&n.preventDefault()});this.markers=zl(t.markers(e)),t.initialSpacer&&(this.spacer=new tc(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=zl(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let n=this.config.updateSpacer(this.spacer.markers[0],e);n!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[n])}let i=e.view.viewport;return!ie.eq(this.markers,t,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class tc{constructor(e,t,i,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,i,n)}update(e,t,i,n){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),Lg(this.markers,n)||this.setMarkers(e,n)}setMarkers(e,t){let i="cm-gutterElement",n=this.dom.firstChild;for(let r=0,o=0;;){let l=o,a=rr(l,a,h)||o(l,a,h):o}return i}})}});class ur extends ri{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function dr(s,e){return s.state.facet(Pi).formatNumber(e,s.state)}const Pg=gn.compute([Pi],s=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(Bg)},lineMarker(e,t,i){return i.some(n=>n.toDOM)?null:new ur(dr(e,e.state.doc.lineAt(t.from).number))},widgetMarker:(e,t,i)=>{for(let n of e.state.facet(Rg)){let r=n(e,t,i);if(r)return r}return null},lineMarkerChange:e=>e.startState.facet(Pi)!=e.state.facet(Pi),initialSpacer(e){return new ur(dr(e,Ul(e.state.doc.lines)))},updateSpacer(e,t){let i=dr(t.view,Ul(t.view.state.doc.lines));return i==e.number?e:new ur(i)},domEventHandlers:s.facet(Pi).domEventHandlers,side:"before"}));function Ig(s={}){return[Pi.of(s),ec(),Pg]}function Ul(s){let e=9;for(;e{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=Ke.match(e)),t=>{let i=e(t);return i===void 0?null:[this,i]}}}ee.closedBy=new ee({deserialize:s=>s.split(" ")});ee.openedBy=new ee({deserialize:s=>s.split(" ")});ee.group=new ee({deserialize:s=>s.split(" ")});ee.isolate=new ee({deserialize:s=>{if(s&&s!="rtl"&&s!="ltr"&&s!="auto")throw new RangeError("Invalid value for isolate: "+s);return s||"auto"}});ee.contextHash=new ee({perNode:!0});ee.lookAhead=new ee({perNode:!0});ee.mounted=new ee({perNode:!0});class Wi{constructor(e,t,i,n=!1){this.tree=e,this.overlay=t,this.parser=i,this.bracketed=n}static get(e){return e&&e.props&&e.props[ee.mounted.id]}}const Fg=Object.create(null);class Ke{constructor(e,t,i,n=0){this.name=e,this.props=t,this.id=i,this.flags=n}static define(e){let t=e.props&&e.props.length?Object.create(null):Fg,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),n=new Ke(e.name||"",t,e.id,i);if(e.props){for(let r of e.props)if(Array.isArray(r)||(r=r(n)),r){if(r[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[r[0].id]=r[1]}}return n}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(ee.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let i in e)for(let n of i.split(" "))t[n]=e[i];return i=>{for(let n=i.prop(ee.group),r=-1;r<(n?n.length:0);r++){let o=t[r<0?i.name:n[r]];if(o)return o}}}}Ke.none=new Ke("",Object.create(null),0,8);class Eo{constructor(e){this.types=e;for(let t=0;t0;for(let a=this.cursor(o|he.IncludeAnonymous);;){let h=!1;if(a.from<=r&&a.to>=n&&(!l&&a.type.isAnonymous||t(a)!==!1)){if(a.firstChild())continue;h=!0}for(;h&&i&&(l||!a.type.isAnonymous)&&i(a),!a.nextSibling();){if(!a.parent())return;h=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:Bo(Ke.none,this.children,this.positions,0,this.children.length,0,this.length,(t,i,n)=>new ce(this.type,t,i,n,this.propValues),e.makeTree||((t,i,n)=>new ce(Ke.none,t,i,n)))}static build(e){return $g(e)}}ce.empty=new ce(Ke.none,[],[],0);class Oo{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new Oo(this.buffer,this.index)}}class oi{constructor(e,t,i){this.buffer=e,this.length=t,this.set=i}get type(){return Ke.none}toString(){let e=[];for(let t=0;t0));a=o[a+3]);return l}slice(e,t,i){let n=this.buffer,r=new Uint16Array(t-e),o=0;for(let l=e,a=0;l=e&&te;case 1:return t<=e&&i>e;case 2:return i>e;case 4:return!0}}function Sn(s,e,t,i){for(var n;s.from==s.to||(t<1?s.from>=e:s.from>e)||(t>-1?s.to<=e:s.to0?l.length:-1;e!=h;e+=t){let c=l[e],f=a[e]+o.from,u;if(!(!(r&he.EnterBracketed&&c instanceof ce&&(u=Wi.get(c))&&!u.overlay&&u.bracketed&&i>=f&&i<=f+c.length)&&!ic(n,i,f,f+c.length))){if(c instanceof oi){if(r&he.ExcludeBuffers)continue;let d=c.findChild(0,c.buffer.length,t,i-f,n);if(d>-1)return new Bt(new Wg(o,c,e,f),null,d)}else if(r&he.IncludeAnonymous||!c.type.isAnonymous||Lo(c)){let d;if(!(r&he.IgnoreMounts)&&(d=Wi.get(c))&&!d.overlay)return new He(d.tree,f,e,o);let p=new He(c,f,e,o);return r&he.IncludeAnonymous||!p.type.isAnonymous?p:p.nextChild(t<0?c.children.length-1:0,t,i,n,r)}}}if(r&he.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,t,i=0){let n;if(!(i&he.IgnoreOverlays)&&(n=Wi.get(this._tree))&&n.overlay){let r=e-this.from,o=i&he.EnterBracketed&&n.bracketed;for(let{from:l,to:a}of n.overlay)if((t>0||o?l<=r:l=r:a>r))return new He(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function jl(s,e,t,i){let n=s.cursor(),r=[];if(!n.firstChild())return r;if(t!=null){for(let o=!1;!o;)if(o=n.type.is(t),!n.nextSibling())return r}for(;;){if(i!=null&&n.type.is(i))return r;if(n.type.is(e)&&r.push(n.node),!n.nextSibling())return i==null?r:[]}}function to(s,e,t=e.length-1){for(let i=s;t>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[t]&&e[t]!=i.name)return!1;t--}}return!0}class Wg{constructor(e,t,i,n){this.parent=e,this.buffer=t,this.index=i,this.start=n}}class Bt extends nc{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,i){super(),this.context=e,this._parent=t,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,t,i){let{buffer:n}=this.context,r=n.findChild(this.index+4,n.buffer[this.index+3],e,t-this.context.start,i);return r<0?null:new Bt(this.context,this,r)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,t,i=0){if(i&he.ExcludeBuffers)return null;let{buffer:n}=this.context,r=n.findChild(this.index+4,n.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return r<0?null:new Bt(this.context,this,r)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new Bt(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new Bt(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:i}=this.context,n=this.index+4,r=i.buffer[this.index+3];if(r>n){let o=i.buffer[this.index+1];e.push(i.slice(n,r,o)),t.push(0)}return new ce(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function sc(s){if(!s.length)return null;let e=0,t=s[0];for(let r=1;rt.from||o.to=e){let l=new He(o.tree,o.overlay[0].from+r.from,-1,r);(n||(n=[i])).push(Sn(l,e,t,!1))}}return n?sc(n):i}class Ts{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~he.EnterBracketed,e instanceof He)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:i,buffer:n}=this.buffer;return this.type=t||n.set.types[n.buffer[e]],this.from=i+n.buffer[e+1],this.to=i+n.buffer[e+2],!0}yield(e){return e?e instanceof He?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,i,this.mode));let{buffer:n}=this.buffer,r=n.findChild(this.index+4,n.buffer[this.index+3],e,t-this.buffer.start,i);return r<0?!1:(this.stack.push(this.index),this.yieldBuf(r))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,i=this.mode){return this.buffer?i&he.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&he.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&he.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,i=this.stack.length-1;if(e<0){let n=i<0?0:this.stack[i]+4;if(this.index!=n)return this.yieldBuf(t.findChild(n,this.index,-1,0,4))}else{let n=t.buffer[this.index+3];if(n<(i<0?t.buffer.length:t.buffer[this.stack[i]+3]))return this.yieldBuf(n)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,i,{buffer:n}=this;if(n){if(e>0){if(this.index-1)for(let r=t+e,o=e<0?-1:i._tree.children.length;r!=o;r+=e){let l=i._tree.children[r];if(this.mode&he.IncludeAnonymous||l instanceof oi||!l.type.isAnonymous||Lo(l))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==n){if(n==this.index)return o;t=o,i=r+1;break e}n=this.stack[--r]}for(let n=i;n=0;r--){if(r<0)return to(this._tree,e,n);let o=i[t.buffer[this.stack[r]]];if(!o.isAnonymous){if(e[n]&&e[n]!=o.name)return!1;n--}}return!0}}function Lo(s){return s.children.some(e=>e instanceof oi||!e.type.isAnonymous||Lo(e))}function $g(s){var e;let{buffer:t,nodeSet:i,maxBufferLength:n=Ng,reused:r=[],minRepeatType:o=i.types.length}=s,l=Array.isArray(t)?new Oo(t,t.length):t,a=i.types,h=0,c=0;function f(A,P,C,U,M,$){let{id:N,start:I,end:G,size:L}=l,R=c,Z=h;if(L<0)if(l.next(),L==-1){let de=r[N];C.push(de),U.push(I-A);return}else if(L==-3){h=N;return}else if(L==-4){c=N;return}else throw new RangeError(`Unrecognized record size: ${L}`);let X=a[N],ue,Me,ot=I-A;if(G-I<=n&&(Me=y(l.pos-P,M))){let de=new Uint16Array(Me.size-Me.skip),Te=l.pos-Me.size,De=de.length;for(;l.pos>Te;)De=b(Me.start,de,De);ue=new oi(de,G-Me.start,i),ot=Me.start-A}else{let de=l.pos-L;l.next();let Te=[],De=[],Fe=N>=o?N:-1,Le=0,je=G;for(;l.pos>de;)Fe>=0&&l.id==Fe&&l.size>=0?(l.end<=je-n&&(p(Te,De,I,Le,l.end,je,Fe,R,Z),Le=Te.length,je=l.end),l.next()):$>2500?u(I,de,Te,De):f(I,de,Te,De,Fe,$+1);if(Fe>=0&&Le>0&&Le-1&&Le>0){let $e=d(X,Z);ue=Bo(X,Te,De,0,Te.length,0,G-I,$e,$e)}else ue=g(X,Te,De,G-I,R-G,Z)}C.push(ue),U.push(ot)}function u(A,P,C,U){let M=[],$=0,N=-1;for(;l.pos>P;){let{id:I,start:G,end:L,size:R}=l;if(R>4)l.next();else{if(N>-1&&G=0;L-=3)I[R++]=M[L],I[R++]=M[L+1]-G,I[R++]=M[L+2]-G,I[R++]=R;C.push(new oi(I,M[2]-G,i)),U.push(G-A)}}function d(A,P){return(C,U,M)=>{let $=0,N=C.length-1,I,G;if(N>=0&&(I=C[N])instanceof ce){if(!N&&I.type==A&&I.length==M)return I;(G=I.prop(ee.lookAhead))&&($=U[N]+I.length+G)}return g(A,C,U,M,$,P)}}function p(A,P,C,U,M,$,N,I,G){let L=[],R=[];for(;A.length>U;)L.push(A.pop()),R.push(P.pop()+C-M);A.push(g(i.types[N],L,R,$-M,I-$,G)),P.push(M-C)}function g(A,P,C,U,M,$,N){if($){let I=[ee.contextHash,$];N=N?[I].concat(N):[I]}if(M>25){let I=[ee.lookAhead,M];N=N?[I].concat(N):[I]}return new ce(A,P,C,U,N)}function y(A,P){let C=l.fork(),U=0,M=0,$=0,N=C.end-n,I={size:0,start:0,skip:0};e:for(let G=C.pos-A;C.pos>G;){let L=C.size;if(C.id==P&&L>=0){I.size=U,I.start=M,I.skip=$,$+=4,U+=4,C.next();continue}let R=C.pos-L;if(L<0||R=o?4:0,X=C.start;for(C.next();C.pos>R;){if(C.size<0)if(C.size==-3||C.size==-4)Z+=4;else break e;else C.id>=o&&(Z+=4);C.next()}M=X,U+=L,$+=Z}return(P<0||U==A)&&(I.size=U,I.start=M,I.skip=$),I.size>4?I:void 0}function b(A,P,C){let{id:U,start:M,end:$,size:N}=l;if(l.next(),N>=0&&U4){let G=l.pos-(N-4);for(;l.pos>G;)C=b(A,P,C)}P[--C]=I,P[--C]=$-A,P[--C]=M-A,P[--C]=U}else N==-3?h=U:N==-4&&(c=U);return C}let x=[],T=[];for(;l.pos>0;)f(s.start||0,s.bufferStart||0,x,T,-1,0);let D=(e=s.length)!==null&&e!==void 0?e:x.length?T[0]+x[0].length:0;return new ce(a[s.topID],x.reverse(),T.reverse(),D)}const Gl=new WeakMap;function cs(s,e){if(!s.isAnonymous||e instanceof oi||e.type!=s)return 1;let t=Gl.get(e);if(t==null){t=1;for(let i of e.children){if(i.type!=s||!(i instanceof ce)){t=1;break}t+=cs(s,i)}Gl.set(e,t)}return t}function Bo(s,e,t,i,n,r,o,l,a){let h=0;for(let p=i;p=c)break;P+=C}if(T==D+1){if(P>c){let C=p[D];d(C.children,C.positions,0,C.children.length,g[D]+x);continue}f.push(p[D])}else{let C=g[T-1]+p[T-1].length-A;f.push(Bo(s,p,g,D,T,A,C,null,a))}u.push(A+x-r)}}return d(e,t,i,n,0),(l||a)(f,u,o)}class uv{constructor(){this.map=new WeakMap}setBuffer(e,t,i){let n=this.map.get(e);n||this.map.set(e,n=new Map),n.set(t,i)}getBuffer(e,t){let i=this.map.get(e);return i&&i.get(t)}set(e,t){e instanceof Bt?this.setBuffer(e.context.buffer,e.index,t):e instanceof He&&this.map.set(e.tree,t)}get(e){return e instanceof Bt?this.getBuffer(e.context.buffer,e.index):e instanceof He?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class Ht{constructor(e,t,i,n,r=!1,o=!1){this.from=e,this.to=t,this.tree=i,this.offset=n,this.open=(r?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],i=!1){let n=[new Ht(0,e.length,e,0,!1,i)];for(let r of t)r.to>e.length&&n.push(r);return n}static applyChanges(e,t,i=128){if(!t.length)return e;let n=[],r=1,o=e.length?e[0]:null;for(let l=0,a=0,h=0;;l++){let c=l=i)for(;o&&o.from=u.from||f<=u.to||h){let d=Math.max(u.from,a)-h,p=Math.min(u.to,f)-h;u=d>=p?null:new Ht(d,p,u.tree,u.offset+h,l>0,!!c)}if(u&&n.push(u),o.to>f)break;o=rnew ht(n.from,n.to)):[new ht(0,0)]:[new ht(0,e.length)],this.createParse(e,t||[],i)}parse(e,t,i){let n=this.startParse(e,t,i);for(;;){let r=n.advance();if(r)return r}}}class zg{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}}function dv(s){return(e,t,i,n)=>new Ug(e,s,t,i,n)}class Jl{constructor(e,t,i,n,r,o){this.parser=e,this.parse=t,this.overlay=i,this.bracketed=n,this.target=r,this.from=o}}function Yl(s){if(!s.length||s.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(s))}class qg{constructor(e,t,i,n,r,o,l,a){this.parser=e,this.predicate=t,this.mounts=i,this.index=n,this.start=r,this.bracketed=o,this.target=l,this.prev=a,this.depth=0,this.ranges=[]}}const io=new ee({perNode:!0});class Ug{constructor(e,t,i,n,r){this.nest=t,this.input=i,this.fragments=n,this.ranges=r,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let i=this.baseParse.advance();if(!i)return null;if(this.baseParse=null,this.baseTree=i,this.startInner(),this.stoppedAt!=null)for(let n of this.inner)n.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let i=this.baseTree;return this.stoppedAt!=null&&(i=new ce(i.type,i.children,i.positions,i.length,i.propValues.concat([[io,this.stoppedAt]]))),i}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let i=Object.assign(Object.create(null),e.target.props);i[ee.mounted.id]=new Wi(t,e.overlay,e.parser,e.bracketed),e.target.props=i}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;t=this.stoppedAt)l=!1;else if(e.hasNode(n)){if(t){let h=t.mounts.find(c=>c.frag.from<=n.from&&c.frag.to>=n.to&&c.mount.overlay);if(h)for(let c of h.mount.overlay){let f=c.from+h.pos,u=c.to+h.pos;f>=n.from&&u<=n.to&&!t.ranges.some(d=>d.fromf)&&t.ranges.push({from:f,to:u})}}l=!1}else if(i&&(o=Kg(i.ranges,n.from,n.to)))l=o!=2;else if(!n.type.isAnonymous&&(r=this.nest(n,this.input))&&(n.fromnew ht(f.from-n.from,f.to-n.from)):null,!!r.bracketed,n.tree,c.length?c[0].from:n.from)),r.overlay?c.length&&(i={ranges:c,depth:0,prev:i}):l=!1}}else if(t&&(a=t.predicate(n))&&(a===!0&&(a=new ht(n.from,n.to)),a.from=0&&t.ranges[h].to==a.from?t.ranges[h]={from:t.ranges[h].from,to:a.to}:t.ranges.push(a)}if(l&&n.firstChild())t&&t.depth++,i&&i.depth++;else for(;!n.nextSibling();){if(!n.parent())break e;if(t&&!--t.depth){let h=Zl(this.ranges,t.ranges);h.length&&(Yl(h),this.inner.splice(t.index,0,new Jl(t.parser,t.parser.startParse(this.input,ea(t.mounts,h),h),t.ranges.map(c=>new ht(c.from-t.start,c.to-t.start)),t.bracketed,t.target,h[0].from))),t=t.prev}i&&!--i.depth&&(i=i.prev)}}}}function Kg(s,e,t){for(let i of s){if(i.from>=t)break;if(i.to>e)return i.from<=e&&i.to>=t?2:1}return 0}function Xl(s,e,t,i,n,r){if(e=e&&t.enter(i,1,he.IgnoreOverlays|he.ExcludeBuffers)))if(t.to<=e)t.next(!1)||(this.done=!0);else break}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof ce)t=t.children[0];else break}return!1}}class Gg{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let i=this.curFrag=e[0];this.curTo=(t=i.tree.prop(io))!==null&&t!==void 0?t:i.to,this.inner=new Ql(i.tree,-i.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(io))!==null&&e!==void 0?e:t.to,this.inner=new Ql(t.tree,-t.offset)}}findMounts(e,t){var i;let n=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let r=this.inner.cursor.node;r;r=r.parent){let o=(i=r.tree)===null||i===void 0?void 0:i.prop(ee.mounted);if(o&&o.parser==t)for(let l=this.fragI;l=r.to)break;a.tree==this.curFrag.tree&&n.push({frag:a,pos:r.from-a.offset,mount:o})}}}return n}}function Zl(s,e){let t=null,i=e;for(let n=1,r=0;n=l)break;a.to<=o||(t||(i=t=e.slice()),a.froml&&t.splice(r+1,0,new ht(l,a.to))):a.to>l?t[r--]=new ht(l,a.to):t.splice(r--,1))}}return i}function Jg(s,e,t,i){let n=0,r=0,o=!1,l=!1,a=-1e9,h=[];for(;;){let c=n==s.length?1e9:o?s[n].to:s[n].from,f=r==e.length?1e9:l?e[r].to:e[r].from;if(o!=l){let u=Math.max(a,t),d=Math.min(c,f,i);unew ht(u.from+i,u.to+i)),f=Jg(e,c,a,h);for(let u=0,d=a;;u++){let p=u==f.length,g=p?h:f[u].from;if(g>d&&t.push(new Ht(d,g,n.tree,-o,r.from>=d||r.openStart,r.to<=g||r.openEnd)),p)break;d=f[u].to}}else t.push(new Ht(a,h,n.tree,-o,r.from>=o||r.openStart,r.to<=l||r.openEnd))}return t}let Yg=0;class lt{constructor(e,t,i,n){this.name=e,this.set=t,this.base=i,this.modified=n,this.id=Yg++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let i=typeof e=="string"?e:"?";if(e instanceof lt&&(t=e),t!=null&&t.base)throw new Error("Can not derive from a modified tag");let n=new lt(i,[],null,[]);if(n.set.push(n),t)for(let r of t.set)n.set.push(r);return n}static defineModifier(e){let t=new Ds(e);return i=>i.modified.indexOf(t)>-1?i:Ds.get(i.base||i,i.modified.concat(t).sort((n,r)=>n.id-r.id))}}let Xg=0;class Ds{constructor(e){this.name=e,this.instances=[],this.id=Xg++}static get(e,t){if(!t.length)return e;let i=t[0].instances.find(l=>l.base==e&&Qg(t,l.modified));if(i)return i;let n=[],r=new lt(e.name,n,e,t);for(let l of t)l.instances.push(r);let o=Zg(t);for(let l of e.set)if(!l.modified.length)for(let a of o)n.push(Ds.get(l,a));return r}}function Qg(s,e){return s.length==e.length&&s.every((t,i)=>t==e[i])}function Zg(s){let e=[[]];for(let t=0;ti.length-t.length)}function em(s){let e=Object.create(null);for(let t in s){let i=s[t];Array.isArray(i)||(i=[i]);for(let n of t.split(" "))if(n){let r=[],o=2,l=n;for(let f=0;;){if(l=="..."&&f>0&&f+3==n.length){o=1;break}let u=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(l);if(!u)throw new RangeError("Invalid path: "+n);if(r.push(u[0]=="*"?"":u[0][0]=='"'?JSON.parse(u[0]):u[0]),f+=u[0].length,f==n.length)break;let d=n[f++];if(f==n.length&&d=="!"){o=0;break}if(d!="/")throw new RangeError("Invalid path: "+n);l=n.slice(f)}let a=r.length-1,h=r[a];if(!h)throw new RangeError("Invalid path: "+n);let c=new Cn(i,o,a>0?r.slice(0,a):null);e[h]=c.sort(e[h])}}return oc.add(e)}const oc=new ee({combine(s,e){let t,i,n;for(;s||e;){if(!s||e&&s.depth>=e.depth?(n=e,e=e.next):(n=s,s=s.next),t&&t.mode==n.mode&&!n.context&&!t.context)continue;let r=new Cn(n.tags,n.mode,n.context);t?t.next=r:i=r,t=r}return i}});class Cn{constructor(e,t,i,n){this.tags=e,this.mode=t,this.context=i,this.next=n}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=n;for(let l of r)for(let a of l.set){let h=t[a.id];if(h){o=o?o+" "+h:h;break}}return o},scope:i}}function tm(s,e){let t=null;for(let i of s){let n=i.style(e);n&&(t=t?t+" "+n:n)}return t}function im(s,e,t,i=0,n=s.length){let r=new nm(i,Array.isArray(e)?e:[e],t);r.highlightRange(s.cursor(),i,n,"",r.highlighters),r.flush(n)}class nm{constructor(e,t,i){this.at=e,this.highlighters=t,this.span=i,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,i,n,r){let{type:o,from:l,to:a}=e;if(l>=i||a<=t)return;o.isTop&&(r=this.highlighters.filter(d=>!d.scope||d.scope(o)));let h=n,c=sm(e)||Cn.empty,f=tm(r,c.tags);if(f&&(h&&(h+=" "),h+=f,c.mode==1&&(n+=(n?" ":"")+f)),this.startSpan(Math.max(t,l),h),c.opaque)return;let u=e.tree&&e.tree.prop(ee.mounted);if(u&&u.overlay){let d=e.node.enter(u.overlay[0].from+l,1),p=this.highlighters.filter(y=>!y.scope||y.scope(u.tree.type)),g=e.firstChild();for(let y=0,b=l;;y++){let x=y=T||!e.nextSibling())););if(!x||T>i)break;b=x.to+l,b>t&&(this.highlightRange(d.cursor(),Math.max(t,x.from+l),Math.min(i,b),"",p),this.startSpan(Math.min(i,b),h))}g&&e.parent()}else if(e.firstChild()){u&&(n="");do if(!(e.to<=t)){if(e.from>=i)break;this.highlightRange(e,t,i,n,r),this.startSpan(Math.min(i,e.to),h)}while(e.nextSibling());e.parent()}}}function sm(s){let e=s.type.prop(oc);for(;e&&e.context&&!s.matchContext(e.context);)e=e.next;return e||null}const E=lt.define,Zn=E(),jt=E(),ta=E(jt),ia=E(jt),Gt=E(),es=E(Gt),pr=E(Gt),Tt=E(),ui=E(Tt),At=E(),Mt=E(),no=E(),sn=E(no),ts=E(),v={comment:Zn,lineComment:E(Zn),blockComment:E(Zn),docComment:E(Zn),name:jt,variableName:E(jt),typeName:ta,tagName:E(ta),propertyName:ia,attributeName:E(ia),className:E(jt),labelName:E(jt),namespace:E(jt),macroName:E(jt),literal:Gt,string:es,docString:E(es),character:E(es),attributeValue:E(es),number:pr,integer:E(pr),float:E(pr),bool:E(Gt),regexp:E(Gt),escape:E(Gt),color:E(Gt),url:E(Gt),keyword:At,self:E(At),null:E(At),atom:E(At),unit:E(At),modifier:E(At),operatorKeyword:E(At),controlKeyword:E(At),definitionKeyword:E(At),moduleKeyword:E(At),operator:Mt,derefOperator:E(Mt),arithmeticOperator:E(Mt),logicOperator:E(Mt),bitwiseOperator:E(Mt),compareOperator:E(Mt),updateOperator:E(Mt),definitionOperator:E(Mt),typeOperator:E(Mt),controlOperator:E(Mt),punctuation:no,separator:E(no),bracket:sn,angleBracket:E(sn),squareBracket:E(sn),paren:E(sn),brace:E(sn),content:Tt,heading:ui,heading1:E(ui),heading2:E(ui),heading3:E(ui),heading4:E(ui),heading5:E(ui),heading6:E(ui),contentSeparator:E(Tt),list:E(Tt),quote:E(Tt),emphasis:E(Tt),strong:E(Tt),link:E(Tt),monospace:E(Tt),strikethrough:E(Tt),inserted:E(),deleted:E(),changed:E(),invalid:E(),meta:ts,documentMeta:E(ts),annotation:E(ts),processingInstruction:E(ts),definition:lt.defineModifier("definition"),constant:lt.defineModifier("constant"),function:lt.defineModifier("function"),standard:lt.defineModifier("standard"),local:lt.defineModifier("local"),special:lt.defineModifier("special")};for(let s in v){let e=v[s];e instanceof lt&&(e.name=s)}lc([{tag:v.link,class:"tok-link"},{tag:v.heading,class:"tok-heading"},{tag:v.emphasis,class:"tok-emphasis"},{tag:v.strong,class:"tok-strong"},{tag:v.keyword,class:"tok-keyword"},{tag:v.atom,class:"tok-atom"},{tag:v.bool,class:"tok-bool"},{tag:v.url,class:"tok-url"},{tag:v.labelName,class:"tok-labelName"},{tag:v.inserted,class:"tok-inserted"},{tag:v.deleted,class:"tok-deleted"},{tag:v.literal,class:"tok-literal"},{tag:v.string,class:"tok-string"},{tag:v.number,class:"tok-number"},{tag:[v.regexp,v.escape,v.special(v.string)],class:"tok-string2"},{tag:v.variableName,class:"tok-variableName"},{tag:v.local(v.variableName),class:"tok-variableName tok-local"},{tag:v.definition(v.variableName),class:"tok-variableName tok-definition"},{tag:v.special(v.variableName),class:"tok-variableName2"},{tag:v.definition(v.propertyName),class:"tok-propertyName tok-definition"},{tag:v.typeName,class:"tok-typeName"},{tag:v.namespace,class:"tok-namespace"},{tag:v.className,class:"tok-className"},{tag:v.macroName,class:"tok-macroName"},{tag:v.propertyName,class:"tok-propertyName"},{tag:v.operator,class:"tok-operator"},{tag:v.comment,class:"tok-comment"},{tag:v.meta,class:"tok-meta"},{tag:v.invalid,class:"tok-invalid"},{tag:v.punctuation,class:"tok-punctuation"}]);var gr;const Zt=new ee;function Ro(s){return F.define({combine:s?e=>e.concat(s):void 0})}const ac=new ee;class qe{constructor(e,t,i=[],n=""){this.data=e,this.name=n,se.prototype.hasOwnProperty("tree")||Object.defineProperty(se.prototype,"tree",{get(){return _e(this)}}),this.parser=t,this.extension=[$t.of(this),se.languageData.of((r,o,l)=>{let a=na(r,o,l),h=a.type.prop(Zt);if(!h)return[];let c=r.facet(h),f=a.type.prop(ac);if(f){let u=a.resolve(o-a.from,l);for(let d of f)if(d.test(u,r)){let p=r.facet(d.facet);return d.type=="replace"?p:p.concat(c)}}return c})].concat(i)}isActiveAt(e,t,i=-1){return na(e,t,i).type.prop(Zt)==this.data}findRegions(e){let t=e.facet($t);if((t==null?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let i=[],n=(r,o)=>{if(r.prop(Zt)==this.data){i.push({from:o,to:o+r.length});return}let l=r.prop(ee.mounted);if(l){if(l.tree.prop(Zt)==this.data){if(l.overlay)for(let a of l.overlay)i.push({from:a.from+o,to:a.to+o});else i.push({from:o,to:o+r.length});return}else if(l.overlay){let a=i.length;if(n(l.tree,l.overlay[0].from+o),i.length>a)return}}for(let a=0;ai.isTop?t:void 0)]}),e.name)}configure(e,t){return new Es(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function _e(s){let e=s.field(qe.state,!1);return e?e.tree:ce.empty}function hc(s,e,t=50){var i;let n=(i=s.field(qe.state,!1))===null||i===void 0?void 0:i.context;if(!n)return null;let r=n.viewport;n.updateViewport({from:0,to:e});let o=n.isDone(e)||n.work(t,e)?n.tree:null;return n.updateViewport(r),o}function rm(s,e=s.doc.length){var t;return((t=s.field(qe.state,!1))===null||t===void 0?void 0:t.context.isDone(e))||!1}function om(s,e=s.viewport.to,t=100){let i=hc(s.state,e,t);return i!=_e(s.state)&&s.dispatch({}),!!i}function lm(s){var e;return((e=s.plugin(uc))===null||e===void 0?void 0:e.isWorking())||!1}class cc{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let i=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-i,t-i)}}let rn=null;class Si{constructor(e,t,i=[],n,r,o,l,a){this.parser=e,this.state=t,this.fragments=i,this.tree=n,this.treeLen=r,this.viewport=o,this.skipped=l,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,i){return new Si(e,t,[],ce.empty,0,i,[],null)}startParse(){return this.parser.startParse(new cc(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=ce.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let n=Date.now()+e;e=()=>Date.now()>n}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(Ht.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=rn;rn=this;try{return e()}finally{rn=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=sa(e,t.from,t.to);return e}changes(e,t){let{fragments:i,tree:n,treeLen:r,viewport:o,skipped:l}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((h,c,f,u)=>a.push({fromA:h,toA:c,fromB:f,toB:u})),i=Ht.applyChanges(i,a),n=ce.empty,r=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){l=[];for(let h of this.skipped){let c=e.mapPos(h.from,1),f=e.mapPos(h.to,-1);ce.from&&(this.fragments=sa(this.fragments,n,r),this.skipped.splice(i--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends rc{createParse(t,i,n){let r=n[0].from,o=n[n.length-1].to;return{parsedPos:r,advance(){let a=rn;if(a){for(let h of n)a.tempSkipped.push(h);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=o,new ce(Ke.none,[],[],o-r)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return rn}}function sa(s,e,t){return Ht.applyChanges(s,[{fromA:e,toA:t,fromB:e,toB:t}])}class Ui{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,i)||t.takeTree(),new Ui(t)}static init(e){let t=Math.min(3e3,e.doc.length),i=Si.create(e.facet($t).parser,e,{from:0,to:t});return i.work(20,t)||i.takeTree(),new Ui(i)}}qe.state=bt.define({create:Ui.init,update(s,e){for(let t of e.effects)if(t.is(qe.setState))return t.value;return e.startState.facet($t)!=e.state.facet($t)?Ui.init(e.state):s.apply(e)}});let fc=s=>{let e=setTimeout(()=>s(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(fc=s=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(s,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});const mr=typeof navigator<"u"&&(!((gr=navigator.scheduling)===null||gr===void 0)&&gr.isInputPending)?()=>navigator.scheduling.isInputPending():null,uc=st.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(qe.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(qe.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=fc(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndn+1e3,a=r.context.work(()=>mr&&mr()||Date.now()>o,n+(l?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:qe.setState.of(new Ui(r.context))})),this.chunkBudget>0&&!(a&&!l)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>Lt(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),$t=F.define({combine(s){return s.length?s[0]:null},enables:s=>[qe.state,uc,H.contentAttributes.compute([s],e=>{let t=e.facet(s);return t&&t.name?{"data-language":t.name}:{}})]});class am{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}}class Po{constructor(e,t,i,n,r,o=void 0){this.name=e,this.alias=t,this.extensions=i,this.filename=n,this.loadFunc=r,this.support=o,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){let{load:t,support:i}=e;if(!t){if(!i)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(i)}return new Po(e.name,(e.alias||[]).concat(e.name).map(n=>n.toLowerCase()),e.extensions||[],e.filename,t,i)}static matchFilename(e,t){for(let n of e)if(n.filename&&n.filename.test(t))return n;let i=/\.([^.]+)$/.exec(t);if(i){for(let n of e)if(n.extensions.indexOf(i[1])>-1)return n}return null}static matchLanguageName(e,t,i=!0){t=t.toLowerCase();for(let n of e)if(n.alias.some(r=>r==t))return n;if(i)for(let n of e)for(let r of n.alias){let o=t.indexOf(r);if(o>-1&&(r.length>2||!/\w/.test(t[o-1])&&!/\w/.test(t[o+r.length])))return n}return null}}const dc=F.define(),Us=F.define({combine:s=>{if(!s.length)return" ";let e=s[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(s[0]));return e}});function li(s){let e=s.facet(Us);return e.charCodeAt(0)==9?s.tabSize*e.length:e.length}function Ci(s,e){let t="",i=s.tabSize,n=s.facet(Us)[0];if(n==" "){for(;e>=i;)t+=" ",e-=i;n=" "}for(let r=0;r=e?cm(s,t,e):null}function hm(s,e,t){let i=Object.create(null),n=new Xi(s,{overrideIndentation:o=>{var l;return(l=i[o])!==null&&l!==void 0?l:-1}}),r=[];for(let o=e;o<=t;){let l=s.doc.lineAt(o);o=l.to+1;let a=In(n,l.from);if(a==null)continue;/\S/.test(l.text)||(a=0);let h=/^\s*/.exec(l.text)[0],c=Ci(s,a);h!=c&&(i[l.from]=a,r.push({from:l.from,to:l.from+h.length,insert:c}))}return s.changes(r)}class Xi{constructor(e,t={}){this.state=e,this.options=t,this.unit=li(e)}lineAt(e,t=1){let i=this.state.doc.lineAt(e),{simulateBreak:n,simulateDoubleBreak:r}=this.options;return n!=null&&n>=i.from&&n<=i.to?r&&n==e?{text:"",from:e}:(t<0?n-1&&(r+=o-this.countColumn(i,i.search(/\S|$/))),r}countColumn(e,t=e.length){return Ws(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:i,from:n}=this.lineAt(e,t),r=this.options.overrideIndentation;if(r){let o=r(n);if(o>-1)return o}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const Io=new ee;function cm(s,e,t){let i=e.resolveStack(t),n=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(n!=i.node){let r=[];for(let o=n;o&&!(o.fromi.node.to||o.from==i.node.from&&o.type==i.node.type);o=o.parent)r.push(o);for(let o=r.length-1;o>=0;o--)i={node:r[o],next:i}}return pc(i,s,t)}function pc(s,e,t){for(let i=s;i;i=i.next){let n=um(i.node);if(n)return n(Ks.create(e,t,i))}return 0}function fm(s){return s.pos==s.options.simulateBreak&&s.options.simulateDoubleBreak}function um(s){let e=s.type.prop(Io);if(e)return e;let t=s.firstChild,i;if(t&&(i=t.type.prop(ee.closedBy))){let n=s.lastChild,r=n&&i.indexOf(n.name)>-1;return o=>gc(o,!0,1,void 0,r&&!fm(o)?n.from:void 0)}return s.parent==null?dm:null}function dm(){return 0}class Ks extends Xi{constructor(e,t,i){super(e.state,e.options),this.base=e,this.pos=t,this.context=i}get node(){return this.context.node}static create(e,t,i){return new Ks(e,t,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let i=e.resolve(t.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(pm(i,e))break;t=this.state.doc.lineAt(i.from)}return this.lineIndent(t.from)}continue(){return pc(this.context.next,this.base,this.pos)}}function pm(s,e){for(let t=e;t;t=t.parent)if(s==t)return!0;return!1}function gm(s){let e=s.node,t=e.childAfter(e.from),i=e.lastChild;if(!t)return null;let n=s.options.simulateBreak,r=s.state.doc.lineAt(t.from),o=n==null||n<=r.from?r.to:Math.min(r.to,n);for(let l=t.to;;){let a=e.childAfter(l);if(!a||a==i)return null;if(!a.type.isSkipped){if(a.from>=o)return null;let h=/^ */.exec(r.text.slice(t.to-r.from))[0].length;return{from:t.from,to:t.to+h}}l=a.to}}function mm({closing:s,align:e=!0,units:t=1}){return i=>gc(i,e,t,s)}function gc(s,e,t,i,n){let r=s.textAfter,o=r.match(/^\s*/)[0].length,l=i&&r.slice(o,o+i.length)==i||n==s.pos+o,a=e?gm(s):null;return a?l?s.column(a.from):s.column(a.to):s.baseIndent+(l?0:s.unit*t)}const ym=s=>s.baseIndent;function vm({except:s,units:e=1}={}){return t=>{let i=s&&s.test(t.textAfter);return t.baseIndent+(i?0:e*t.unit)}}const bm=200;function wm(){return se.transactionFilter.of(s=>{if(!s.docChanged||!s.isUserEvent("input.type")&&!s.isUserEvent("input.complete"))return s;let e=s.startState.languageDataAt("indentOnInput",s.startState.selection.main.head);if(!e.length)return s;let t=s.newDoc,{head:i}=s.newSelection.main,n=t.lineAt(i);if(i>n.from+bm)return s;let r=t.sliceString(n.from,i);if(!e.some(h=>h.test(r)))return s;let{state:o}=s,l=-1,a=[];for(let{head:h}of o.selection.ranges){let c=o.doc.lineAt(h);if(c.from==l)continue;l=c.from;let f=In(o,c.from);if(f==null)continue;let u=/^\s*/.exec(c.text)[0],d=Ci(o,f);u!=d&&a.push({from:c.from,to:c.from+u.length,insert:d})}return a.length?[s,{changes:a,sequential:!0}]:s})}const mc=F.define(),yc=new ee;function xm(s){let e=s.firstChild,t=s.lastChild;return e&&e.tot)continue;if(r&&l.from=e&&h.to>t&&(r=h)}}return r}function Sm(s){let e=s.lastChild;return e&&e.to==s.to&&e.type.isError}function Ki(s,e,t){for(let i of s.facet(mc)){let n=i(s,e,t);if(n)return n}return km(s,e,t)}function vc(s,e){let t=e.mapPos(s.from,1),i=e.mapPos(s.to,-1);return t>=i?void 0:{from:t,to:i}}const Qi=oe.define({map:vc}),Ai=oe.define({map:vc});function No(s){let e=[];for(let{head:t}of s.state.selection.ranges)e.some(i=>i.from<=t&&i.to>=t)||e.push(s.lineBlockAt(t));return e}const zt=bt.define({create(){return re.none},update(s,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((t,i)=>s=ra(s,t,i)),s=s.map(e.changes);for(let t of e.effects)if(t.is(Qi)&&!Am(s,t.value.from,t.value.to)){let{preparePlaceholder:i}=e.state.facet(Fo),n=i?re.replace({widget:new Om(i(e.state,t.value))}):oa;s=s.update({add:[n.range(t.value.from,t.value.to)]})}else t.is(Ai)&&(s=s.update({filter:(i,n)=>t.value.from!=i||t.value.to!=n,filterFrom:t.value.from,filterTo:t.value.to}));return e.selection&&(s=ra(s,e.selection.main.head)),s},provide:s=>H.decorations.from(s),toJSON(s,e){let t=[];return s.between(0,e.doc.length,(i,n)=>{t.push(i,n)}),t},fromJSON(s){if(!Array.isArray(s)||s.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t{ne&&(i=!0)}),i?s.update({filterFrom:e,filterTo:t,filter:(n,r)=>n>=t||r<=e}):s}function Cm(s){return s.field(zt,!1)||ie.empty}function An(s,e,t){var i;let n=null;return(i=s.field(zt,!1))===null||i===void 0||i.between(e,t,(r,o)=>{(!n||n.from>r)&&(n={from:r,to:o})}),n}function Am(s,e,t){let i=!1;return s.between(e,e,(n,r)=>{n==e&&r==t&&(i=!0)}),i}function _o(s,e){return s.field(zt,!1)?e:e.concat(oe.appendConfig.of(Wo()))}const bc=s=>{for(let e of No(s)){let t=Ki(s.state,e.from,e.to);if(t)return s.dispatch({effects:_o(s.state,[Qi.of(t),Os(s,t)])}),!0}return!1},wc=s=>{if(!s.state.field(zt,!1))return!1;let e=[];for(let t of No(s)){let i=An(s.state,t.from,t.to);i&&e.push(Ai.of(i),Os(s,i,!1))}return e.length&&s.dispatch({effects:e}),e.length>0};function Os(s,e,t=!0){let i=s.state.doc.lineAt(e.from).number,n=s.state.doc.lineAt(e.to).number;return H.announce.of(`${s.state.phrase(t?"Folded lines":"Unfolded lines")} ${i} ${s.state.phrase("to")} ${n}.`)}const xc=s=>{let{state:e}=s,t=[];for(let i=0;i{let e=s.state.field(zt,!1);if(!e||!e.size)return!1;let t=[];return e.between(0,s.state.doc.length,(i,n)=>{t.push(Ai.of({from:i,to:n}))}),s.dispatch({effects:t}),!0};function Mm(s,e){for(let t=e;;){let i=Ki(s.state,t.from,t.to);if(i&&i.to>e.from)return i;if(!t.from)return null;t=s.lineBlockAt(t.from-1)}}const Tm=s=>{let e=[];for(let t of No(s)){let i=An(s.state,t.from,t.to);if(i)e.push(Ai.of(i),Os(s,i,!1));else{let n=Mm(s,t);n&&e.push(Qi.of(n),Os(s,n))}}return e.length>0&&s.dispatch({effects:_o(s.state,e)}),!!e.length},Dm=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:bc},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:wc},{key:"Ctrl-Alt-[",run:xc},{key:"Ctrl-Alt-]",run:kc}],Em={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},Fo=F.define({combine(s){return Ln(s,Em)}});function Wo(s){let e=[zt,Rm];return s&&e.push(Fo.of(s)),e}function Sc(s,e){let{state:t}=s,i=t.facet(Fo),n=o=>{let l=s.lineBlockAt(s.posAtDOM(o.target)),a=An(s.state,l.from,l.to);a&&s.dispatch({effects:Ai.of(a)}),o.preventDefault()};if(i.placeholderDOM)return i.placeholderDOM(s,n,e);let r=document.createElement("span");return r.textContent=i.placeholderText,r.setAttribute("aria-label",t.phrase("folded code")),r.title=t.phrase("unfold"),r.className="cm-foldPlaceholder",r.onclick=n,r}const oa=re.replace({widget:new class extends Yi{toDOM(s){return Sc(s,null)}}});class Om extends Yi{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return Sc(e,this.value)}}const Lm={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class yr extends ri{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}}function Bm(s={}){let e={...Lm,...s},t=new yr(e,!0),i=new yr(e,!1),n=st.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet($t)!=o.state.facet($t)||o.startState.field(zt,!1)!=o.state.field(zt,!1)||_e(o.startState)!=_e(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let l=new ti;for(let a of o.viewportLineBlocks){let h=An(o.state,a.from,a.to)?i:Ki(o.state,a.from,a.to)?t:null;h&&l.add(a.from,a.from,h)}return l.finish()}}),{domEventHandlers:r}=e;return[n,Dg({class:"cm-foldGutter",markers(o){var l;return((l=o.plugin(n))===null||l===void 0?void 0:l.markers)||ie.empty},initialSpacer(){return new yr(e,!1)},domEventHandlers:{...r,click:(o,l,a)=>{if(r.click&&r.click(o,l,a))return!0;let h=An(o.state,l.from,l.to);if(h)return o.dispatch({effects:Ai.of(h)}),!0;let c=Ki(o.state,l.from,l.to);return c?(o.dispatch({effects:Qi.of(c)}),!0):!1}}}),Wo()]}const Rm=H.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class Mi{constructor(e,t){this.specs=e;let i;function n(l){let a=ii.newName();return(i||(i=Object.create(null)))["."+a]=l,a}const r=typeof t.all=="string"?t.all:t.all?n(t.all):void 0,o=t.scope;this.scope=o instanceof qe?l=>l.prop(Zt)==o.data:o?l=>l==o:void 0,this.style=lc(e.map(l=>({tag:l.tag,class:l.class||n(Object.assign({},l,{tag:null}))})),{all:r}).style,this.module=i?new ii(i):null,this.themeType=t.themeType}static define(e,t){return new Mi(e,t||{})}}const so=F.define(),Cc=F.define({combine(s){return s.length?[s[0]]:null}});function fs(s){let e=s.facet(so);return e.length?e:s.facet(Cc)}function Ac(s,e){let t=[Nm],i;return s instanceof Mi&&(s.module&&t.push(H.styleModule.of(s.module)),i=s.themeType),e!=null&&e.fallback?t.push(Cc.of(s)):i?t.push(so.computeN([H.darkTheme],n=>n.facet(H.darkTheme)==(i=="dark")?[s]:[])):t.push(so.of(s)),t}function Pm(s,e,t){let i=fs(s),n=null;if(i){for(let r of i)if(!r.scope||t&&r.scope(t)){let o=r.style(e);o&&(n=n?n+" "+o:o)}}return n}class Im{constructor(e){this.markCache=Object.create(null),this.tree=_e(e.state),this.decorations=this.buildDeco(e,fs(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=_e(e.state),i=fs(e.state),n=i!=fs(e.startState),{viewport:r}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length=r.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||n)&&(this.tree=t,this.decorations=this.buildDeco(e.view,i),this.decoratedTo=r.to)}buildDeco(e,t){if(!t||!this.tree.length)return re.none;let i=new ti;for(let{from:n,to:r}of e.visibleRanges)im(this.tree,t,(o,l,a)=>{i.add(o,l,this.markCache[a]||(this.markCache[a]=re.mark({class:a})))},n,r);return i.finish()}}const Nm=On.high(st.fromClass(Im,{decorations:s=>s.decorations})),_m=Mi.define([{tag:v.meta,color:"#404740"},{tag:v.link,textDecoration:"underline"},{tag:v.heading,textDecoration:"underline",fontWeight:"bold"},{tag:v.emphasis,fontStyle:"italic"},{tag:v.strong,fontWeight:"bold"},{tag:v.strikethrough,textDecoration:"line-through"},{tag:v.keyword,color:"#708"},{tag:[v.atom,v.bool,v.url,v.contentSeparator,v.labelName],color:"#219"},{tag:[v.literal,v.inserted],color:"#164"},{tag:[v.string,v.deleted],color:"#a11"},{tag:[v.regexp,v.escape,v.special(v.string)],color:"#e40"},{tag:v.definition(v.variableName),color:"#00f"},{tag:v.local(v.variableName),color:"#30a"},{tag:[v.typeName,v.namespace],color:"#085"},{tag:v.className,color:"#167"},{tag:[v.special(v.variableName),v.macroName],color:"#256"},{tag:v.definition(v.propertyName),color:"#00c"},{tag:v.comment,color:"#940"},{tag:v.invalid,color:"#f00"}]),Fm=H.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Mc=1e4,Tc="()[]{}",Dc=F.define({combine(s){return Ln(s,{afterCursor:!0,brackets:Tc,maxScanDistance:Mc,renderMatch:Vm})}}),Wm=re.mark({class:"cm-matchingBracket"}),Hm=re.mark({class:"cm-nonmatchingBracket"});function Vm(s){let e=[],t=s.matched?Wm:Hm;return e.push(t.range(s.start.from,s.start.to)),s.end&&e.push(t.range(s.end.from,s.end.to)),e}function la(s){let e=[],t=s.facet(Dc);for(let i of s.selection.ranges){if(!i.empty)continue;let n=mt(s,i.head,-1,t)||i.head>0&&mt(s,i.head-1,1,t)||t.afterCursor&&(mt(s,i.head,1,t)||i.heads.decorations}),zm=[$m,Fm];function qm(s={}){return[Dc.of(s),zm]}const Ec=new ee;function ro(s,e,t){let i=s.prop(e<0?ee.openedBy:ee.closedBy);if(i)return i;if(s.name.length==1){let n=t.indexOf(s.name);if(n>-1&&n%2==(e<0?1:0))return[t[n+e]]}return null}function oo(s){let e=s.type.prop(Ec);return e?e(s.node):s}function mt(s,e,t,i={}){let n=i.maxScanDistance||Mc,r=i.brackets||Tc,o=_e(s),l=o.resolveInner(e,t);for(let a=l;a;a=a.parent){let h=ro(a.type,t,r);if(h&&a.from0?e>=c.from&&ec.from&&e<=c.to))return Um(s,e,t,a,c,h,r)}}return Km(s,e,t,o,l.type,n,r)}function Um(s,e,t,i,n,r,o){let l=i.parent,a={from:n.from,to:n.to},h=0,c=l==null?void 0:l.cursor();if(c&&(t<0?c.childBefore(i.from):c.childAfter(i.to)))do if(t<0?c.to<=i.from:c.from>=i.to){if(h==0&&r.indexOf(c.type.name)>-1&&c.from0)return null;let h={from:t<0?e-1:e,to:t>0?e+1:e},c=s.doc.iterRange(e,t>0?s.doc.length:0),f=0;for(let u=0;!c.next().done&&u<=r;){let d=c.value;t<0&&(u+=d.length);let p=e+u*t;for(let g=t>0?0:d.length-1,y=t>0?d.length:-1;g!=y;g+=t){let b=o.indexOf(d[g]);if(!(b<0||i.resolveInner(p+g,1).type!=n))if(b%2==0==t>0)f++;else{if(f==1)return{start:h,end:{from:p+g,to:p+g+1},matched:b>>1==a>>1};f--}}t>0&&(u+=d.length)}return c.done?{start:h,matched:!1}:null}function aa(s,e,t,i=0,n=0){e==null&&(e=s.search(/[^\s\u00a0]/),e==-1&&(e=s.length));let r=n;for(let o=i;o=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.post}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPosi?o.toLowerCase():o,r=this.string.substr(this.pos,e.length);return n(r)==n(e)?(t!==!1&&(this.pos+=e.length),!0):null}else{let n=this.string.slice(this.pos).match(e);return n&&n.index>0?null:(n&&t!==!1&&(this.pos+=n[0].length),n)}}current(){return this.string.slice(this.start,this.pos)}}function jm(s){return{name:s.name||"",token:s.token,blankLine:s.blankLine||(()=>{}),startState:s.startState||(()=>!0),copyState:s.copyState||Gm,indent:s.indent||(()=>null),languageData:s.languageData||{},tokenTable:s.tokenTable||zo,mergeTokens:s.mergeTokens!==!1}}function Gm(s){if(typeof s!="object")return s;let e={};for(let t in s){let i=s[t];e[t]=i instanceof Array?i.slice():i}return e}const ha=new WeakMap;class Vo extends qe{constructor(e){let t=Ro(e.languageData),i=jm(e),n,r=new class extends rc{createParse(o,l,a){return new Ym(n,o,l,a)}};super(t,r,[],e.name),this.topNode=Zm(t,this),n=this,this.streamParser=i,this.stateAfter=new ee({perNode:!0}),this.tokenTable=e.tokenTable?new Rc(i.tokenTable):Qm}static define(e){return new Vo(e)}getIndent(e){let t,{overrideIndentation:i}=e.options;i&&(t=ha.get(e.state),t!=null&&t1e4)return null;for(;r=i&&t+e.length<=n&&e.prop(s.stateAfter);if(r)return{state:s.streamParser.copyState(r),pos:t+e.length};for(let o=e.children.length-1;o>=0;o--){let l=e.children[o],a=t+e.positions[o],h=l instanceof ce&&a=e.length)return e;!n&&t==0&&e.type==s.topNode&&(n=!0);for(let r=e.children.length-1;r>=0;r--){let o=e.positions[r],l=e.children[r],a;if(ot&&$o(s,r.tree,0-r.offset,t,l),h;if(a&&a.pos<=i&&(h=Oc(s,r.tree,t+r.offset,a.pos+r.offset,!1)))return{state:a.state,tree:h}}return{state:s.streamParser.startState(n?li(n):4),tree:ce.empty}}class Ym{constructor(e,t,i,n){this.lang=e,this.input=t,this.fragments=i,this.ranges=n,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=n[n.length-1].to;let r=Si.get(),o=n[0].from,{state:l,tree:a}=Jm(e,i,o,this.to,r==null?void 0:r.state);this.state=l,this.parsedPos=this.chunkStart=o+a.length;for(let h=0;hh.from<=r.viewport.from&&h.to>=r.viewport.from)&&(this.state=this.lang.streamParser.startState(li(r.state)),r.skipUntilInView(this.parsedPos,r.viewport.from),this.parsedPos=r.viewport.from),this.moveRangeIndex()}advance(){let e=Si.get(),t=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),i=Math.min(t,this.chunkStart+512);for(e&&(i=Math.min(i,e.viewport.to));this.parsedPos=t?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,t),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let t=this.input.chunk(e);if(this.input.lineChunks)t==` `&&(t="");else{let i=t.indexOf(` `);i>-1&&(t=t.slice(0,i))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),i=e+t.length;for(let n=this.rangeIndex;;){let r=this.ranges[n].to;if(r>=i||(t=t.slice(0,r-(i-t.length)),n++,n==this.ranges.length))break;let o=this.ranges[n].from,l=this.lineAfter(o);t+=l,i=o+l.length}return{line:t,end:i}}skipGapsTo(e,t,i){for(;;){let n=this.ranges[this.rangeIndex].to,r=e+t;if(i>0?n>r:n>=r)break;let o=this.ranges[++this.rangeIndex].from;t+=o-n}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){n=this.skipGapsTo(t,n,1),t+=n;let l=this.chunk.length;n=this.skipGapsTo(i,n,-1),i+=n,r+=this.chunk.length-l}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&r==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==t?this.chunk[o+2]=i:this.chunk.push(e,t,i,r),n}parseLine(e){let{line:t,end:i}=this.nextLine(),n=0,{streamParser:r}=this.lang,o=new Ho(t,e?e.state.tabSize:4,e?li(e.state):2);if(o.eol())r.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let l=Lc(r.token,o,this.state);if(l&&(n=this.emitToken(this.lang.tokenTable.resolve(l),this.parsedPos+o.start,this.parsedPos+o.pos,n)),o.start>1e4)break}this.parsedPos=i,this.moveRangeIndex(),this.parsedPose.start)return n}throw new Error("Stream parser failed to advance stream.")}const zo=Object.create(null),Mn=[Ke.none],Xm=new Eo(Mn),ca=[],fa=Object.create(null),Bc=Object.create(null);for(let[s,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Bc[s]=Pc(zo,e);class Rc{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),Bc)}resolve(e){return e?this.table[e]||(this.table[e]=Pc(this.extra,e)):0}}const Qm=new Rc(zo);function vr(s,e){ca.indexOf(s)>-1||(ca.push(s),console.warn(e))}function Pc(s,e){let t=[];for(let l of e.split(" ")){let a=[];for(let h of l.split(".")){let c=s[h]||v[h];c?typeof c=="function"?a.length?a=a.map(c):vr(h,`Modifier ${h} used at start of tag`):a.length?vr(h,`Tag ${h} used as modifier`):a=Array.isArray(c)?c:[c]:vr(h,`Unknown highlighting tag ${h}`)}for(let h of a)t.push(h)}if(!t.length)return 0;let i=e.replace(/ /g,"_"),n=i+" "+t.map(l=>l.id),r=fa[n];if(r)return r.id;let o=fa[n]=Ke.define({id:Mn.length,name:i,props:[em({[i]:t})]});return Mn.push(o),o.id}function Zm(s,e){let t=Ke.define({id:Mn.length,name:"Document",props:[Zt.add(()=>s),Io.add(()=>i=>e.getIndent(i))],top:!0});return Mn.push(t),t}function Ic(s){return s.length<=4096&&/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/.test(s)}function Nc(s){for(let e=s.iter();!e.next().done;)if(Ic(e.value))return!0;return!1}function e0(s){let e=!1;return s.iterChanges((t,i,n,r,o)=>{!e&&Nc(o)&&(e=!0)}),e}const lo=F.define({combine:s=>s.some(e=>e)});function t0(s={}){let e=[i0];return s.alwaysIsolate&&e.push(lo.of(!0)),e}const i0=st.fromClass(class{constructor(s){this.always=s.state.facet(lo)||s.textDirection!=pe.LTR||s.state.facet(H.perLineTextDirection),this.hasRTL=!this.always&&Nc(s.state.doc),this.tree=_e(s.state),this.decorations=this.always||this.hasRTL?ua(s,this.tree,this.always):re.none}update(s){let e=s.state.facet(lo)||s.view.textDirection!=pe.LTR||s.state.facet(H.perLineTextDirection);if(!e&&!this.hasRTL&&e0(s.changes)&&(this.hasRTL=!0),!e&&!this.hasRTL)return;let t=_e(s.state);(e!=this.always||t!=this.tree||s.docChanged||s.viewportChanged)&&(this.tree=t,this.always=e,this.decorations=ua(s.view,t,e))}},{provide:s=>{function e(t){var i,n;return(n=(i=t.plugin(s))===null||i===void 0?void 0:i.decorations)!==null&&n!==void 0?n:re.none}return[H.outerDecorations.of(e),On.lowest(H.bidiIsolatedRanges.of(e))]}});function ua(s,e,t){let i=new ti,n=s.visibleRanges;t||(n=n0(n,s.state.doc));for(let{from:r,to:o}of n)e.iterate({enter:l=>{let a=l.type.prop(ee.isolate);a&&i.add(l.from,l.to,s0[a])},from:r,to:o});return i.finish()}function n0(s,e){let t=e.iter(),i=0,n=[],r=null;for(let{from:o,to:l}of s)if(!(r&&r.to>o&&(o=r.to,o>=l)))for(i+t.value.lengtha-10?r.to=Math.min(l,h):n.push(r={from:a,to:Math.min(l,h)})),h>=l)break;i=h,t.next()}return n}const s0={rtl:re.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:pe.RTL}),ltr:re.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:pe.LTR}),auto:re.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})},r0=Object.freeze(Object.defineProperty({__proto__:null,DocInput:cc,HighlightStyle:Mi,IndentContext:Xi,LRLanguage:Es,Language:qe,LanguageDescription:Po,LanguageSupport:am,ParseContext:Si,StreamLanguage:Vo,StringStream:Ho,TreeIndentContext:Ks,bidiIsolates:t0,bracketMatching:qm,bracketMatchingHandle:Ec,codeFolding:Wo,continuedIndent:vm,defaultHighlightStyle:_m,defineLanguageFacet:Ro,delimitedIndent:mm,ensureSyntaxTree:hc,flatIndent:ym,foldAll:xc,foldCode:bc,foldEffect:Qi,foldGutter:Bm,foldInside:xm,foldKeymap:Dm,foldNodeProp:yc,foldService:mc,foldState:zt,foldable:Ki,foldedRanges:Cm,forceParsing:om,getIndentUnit:li,getIndentation:In,highlightingFor:Pm,indentNodeProp:Io,indentOnInput:wm,indentRange:hm,indentService:dc,indentString:Ci,indentUnit:Us,language:$t,languageDataProp:Zt,matchBrackets:mt,sublanguageProp:ac,syntaxHighlighting:Ac,syntaxParserRunning:lm,syntaxTree:_e,syntaxTreeAvailable:rm,toggleFold:Tm,unfoldAll:kc,unfoldCode:wc,unfoldEffect:Ai},Symbol.toStringTag,{value:"Module"})),o0=s=>{let{state:e}=s,t=e.doc.lineAt(e.selection.main.from),i=Uo(s.state,t.from);return i.line?l0(s):i.block?h0(s):!1};function qo(s,e){return({state:t,dispatch:i})=>{if(t.readOnly)return!1;let n=s(e,t);return n?(i(t.update(n)),!0):!1}}const l0=qo(u0,0),a0=qo(_c,0),h0=qo((s,e)=>_c(s,e,f0(e)),0);function Uo(s,e){let t=s.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}const on=50;function c0(s,{open:e,close:t},i,n){let r=s.sliceDoc(i-on,i),o=s.sliceDoc(n,n+on),l=/\s*$/.exec(r)[0].length,a=/^\s*/.exec(o)[0].length,h=r.length-l;if(r.slice(h-e.length,h)==e&&o.slice(a,a+t.length)==t)return{open:{pos:i-l,margin:l&&1},close:{pos:n+a,margin:a&&1}};let c,f;n-i<=2*on?c=f=s.sliceDoc(i,n):(c=s.sliceDoc(i,i+on),f=s.sliceDoc(n-on,n));let u=/^\s*/.exec(c)[0].length,d=/\s*$/.exec(f)[0].length,p=f.length-d-t.length;return c.slice(u,u+e.length)==e&&f.slice(p,p+t.length)==t?{open:{pos:i+u+e.length,margin:/\s/.test(c.charAt(u+e.length))?1:0},close:{pos:n-d-t.length,margin:/\s/.test(f.charAt(p-1))?1:0}}:null}function f0(s){let e=[];for(let t of s.selection.ranges){let i=s.doc.lineAt(t.from),n=t.to<=i.to?i:s.doc.lineAt(t.to);n.from>i.from&&n.from==t.to&&(n=t.to==i.to+1?i:s.doc.lineAt(t.to-1));let r=e.length-1;r>=0&&e[r].to>i.from?e[r].to=n.to:e.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:n.to})}return e}function _c(s,e,t=e.selection.ranges){let i=t.map(r=>Uo(e,r.from).block);if(!i.every(r=>r))return null;let n=t.map((r,o)=>c0(e,i[o],r.from,r.to));if(s!=2&&!n.every(r=>r))return{changes:e.changes(t.map((r,o)=>n[o]?[]:[{from:r.from,insert:i[o].open+" "},{from:r.to,insert:" "+i[o].close}]))};if(s!=1&&n.some(r=>r)){let r=[];for(let o=0,l;on&&(r==o||o>f.from)){n=f.from;let u=/^\s*/.exec(f.text)[0].length,d=u==f.length,p=f.text.slice(u,u+h.length)==h?u:-1;ur.comment<0&&(!r.empty||r.single))){let r=[];for(let{line:l,token:a,indent:h,empty:c,single:f}of i)(f||!c)&&r.push({from:l.from+h,insert:a+" "});let o=e.changes(r);return{changes:o,selection:e.selection.map(o,1)}}else if(s!=1&&i.some(r=>r.comment>=0)){let r=[];for(let{line:o,comment:l,token:a}of i)if(l>=0){let h=o.from+l,c=h+a.length;o.text[c-o.from]==" "&&c++,r.push({from:h,to:c})}return{changes:r}}return null}const ao=ai.define(),d0=ai.define(),p0=F.define(),Fc=F.define({combine(s){return Ln(s,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(i,n)=>e(i,n)||t(i,n)})}}),Wc=bt.define({create(){return Rt.empty},update(s,e){let t=e.state.facet(Fc),i=e.annotation(ao);if(i){let a=Je.fromTransaction(e,i.selection),h=i.side,c=h==0?s.undone:s.done;return a?c=Ls(c,c.length,t.minDepth,a):c=$c(c,e.startState.selection),new Rt(h==0?i.rest:c,h==0?c:i.rest)}let n=e.annotation(d0);if((n=="full"||n=="before")&&(s=s.isolate()),e.annotation(Ae.addToHistory)===!1)return e.changes.empty?s:s.addMapping(e.changes.desc);let r=Je.fromTransaction(e),o=e.annotation(Ae.time),l=e.annotation(Ae.userEvent);return r?s=s.addChanges(r,o,l,t,e):e.selection&&(s=s.addSelection(e.startState.selection,o,l,t.newGroupDelay)),(n=="full"||n=="after")&&(s=s.isolate()),s},toJSON(s){return{done:s.done.map(e=>e.toJSON()),undone:s.undone.map(e=>e.toJSON())}},fromJSON(s){return new Rt(s.done.map(Je.fromJSON),s.undone.map(Je.fromJSON))}});function g0(s={}){return[Wc,Fc.of(s),H.domEventHandlers({beforeinput(e,t){let i=e.inputType=="historyUndo"?Hc:e.inputType=="historyRedo"?ho:null;return i?(e.preventDefault(),i(t)):!1}})]}function js(s,e){return function({state:t,dispatch:i}){if(!e&&t.readOnly)return!1;let n=t.field(Wc,!1);if(!n)return!1;let r=n.pop(s,t,e);return r?(i(r),!0):!1}}const Hc=js(0,!1),ho=js(1,!1),m0=js(0,!0),y0=js(1,!0);class Je{constructor(e,t,i,n,r){this.changes=e,this.effects=t,this.mapped=i,this.startSelection=n,this.selectionsAfter=r}setSelAfter(e){return new Je(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,i;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(i=this.startSelection)===null||i===void 0?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map(n=>n.toJSON())}}static fromJSON(e){return new Je(e.changes&&Ce.fromJSON(e.changes),[],e.mapped&&Pt.fromJSON(e.mapped),e.startSelection&&S.fromJSON(e.startSelection),e.selectionsAfter.map(S.fromJSON))}static fromTransaction(e,t){let i=ct;for(let n of e.startState.facet(p0)){let r=n(e);r.length&&(i=i.concat(r))}return!i.length&&e.changes.empty?null:new Je(e.changes.invert(e.startState.doc),i,void 0,t||e.startState.selection,ct)}static selection(e){return new Je(void 0,ct,void 0,void 0,e)}}function Ls(s,e,t,i){let n=e+1>t+20?e-t-1:0,r=s.slice(n,e);return r.push(i),r}function v0(s,e){let t=[],i=!1;return s.iterChangedRanges((n,r)=>t.push(n,r)),e.iterChangedRanges((n,r,o,l)=>{for(let a=0;a=h&&o<=c&&(i=!0)}}),i}function b0(s,e){return s.ranges.length==e.ranges.length&&s.ranges.filter((t,i)=>t.empty!=e.ranges[i].empty).length===0}function Vc(s,e){return s.length?e.length?s.concat(e):s:e}const ct=[],w0=200;function $c(s,e){if(s.length){let t=s[s.length-1],i=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-w0));return i.length&&i[i.length-1].eq(e)?s:(i.push(e),Ls(s,s.length-1,1e9,t.setSelAfter(i)))}else return[Je.selection([e])]}function x0(s){let e=s[s.length-1],t=s.slice();return t[s.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function br(s,e){if(!s.length)return s;let t=s.length,i=ct;for(;t;){let n=k0(s[t-1],e,i);if(n.changes&&!n.changes.empty||n.effects.length){let r=s.slice(0,t);return r[t-1]=n,r}else e=n.mapped,t--,i=n.selectionsAfter}return i.length?[Je.selection(i)]:ct}function k0(s,e,t){let i=Vc(s.selectionsAfter.length?s.selectionsAfter.map(l=>l.map(e)):ct,t);if(!s.changes)return Je.selection(i);let n=s.changes.map(e),r=e.mapDesc(s.changes,!0),o=s.mapped?s.mapped.composeDesc(r):r;return new Je(n,oe.mapEffects(s.effects,e),o,s.startSelection.map(r),i)}const S0=/^(input\.type|delete)($|\.)/;class Rt{constructor(e,t,i=0,n=void 0){this.done=e,this.undone=t,this.prevTime=i,this.prevUserEvent=n}isolate(){return this.prevTime?new Rt(this.done,this.undone):this}addChanges(e,t,i,n,r){let o=this.done,l=o[o.length-1];return l&&l.changes&&!l.changes.empty&&e.changes&&(!i||S0.test(i))&&(!l.selectionsAfter.length&&t-this.prevTime0&&t-this.prevTimet.empty?s.moveByChar(t,e):Gs(t,e))}function Ve(s){return s.textDirectionAt(s.state.selection.main.head)==pe.LTR}const qc=s=>zc(s,!Ve(s)),Uc=s=>zc(s,Ve(s));function Kc(s,e){return xt(s,t=>t.empty?s.moveByGroup(t,e):Gs(t,e))}const A0=s=>Kc(s,!Ve(s)),M0=s=>Kc(s,Ve(s));function T0(s,e,t){if(e.type.prop(t))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(s.sliceDoc(e.from,e.to)))||e.firstChild}function Js(s,e,t){let i=_e(s).resolveInner(e.head),n=t?ee.closedBy:ee.openedBy;for(let a=e.head;;){let h=t?i.childAfter(a):i.childBefore(a);if(!h)break;T0(s,h,n)?i=h:a=t?h.to:h.from}let r=i.type.prop(n),o,l;return r&&(o=t?mt(s,i.from,1):mt(s,i.to,-1))&&o.matched?l=t?o.end.to:o.end.from:l=t?i.to:i.from,S.cursor(l,t?-1:1)}const D0=s=>xt(s,e=>Js(s.state,e,!Ve(s))),E0=s=>xt(s,e=>Js(s.state,e,Ve(s)));function jc(s,e){return xt(s,t=>{if(!t.empty)return Gs(t,e);let i=s.moveVertically(t,e);return i.head!=t.head?i:s.moveToLineBoundary(t,e)})}const Gc=s=>jc(s,!1),Jc=s=>jc(s,!0);function Yc(s){let e=s.scrollDOM.clientHeighto.empty?s.moveVertically(o,e,t.height):Gs(o,e));if(n.eq(i.selection))return!1;let r;if(t.selfScroll){let o=s.coordsAtPos(i.selection.main.head),l=s.scrollDOM.getBoundingClientRect(),a=l.top+t.marginTop,h=l.bottom-t.marginBottom;o&&o.top>a&&o.bottomXc(s,!1),co=s=>Xc(s,!0);function hi(s,e,t){let i=s.lineBlockAt(e.head),n=s.moveToLineBoundary(e,t);if(n.head==e.head&&n.head!=(t?i.to:i.from)&&(n=s.moveToLineBoundary(e,t,!1)),!t&&n.head==i.from&&i.length){let r=/^\s*/.exec(s.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;r&&e.head!=i.from+r&&(n=S.cursor(i.from+r))}return n}const O0=s=>xt(s,e=>hi(s,e,!0)),L0=s=>xt(s,e=>hi(s,e,!1)),B0=s=>xt(s,e=>hi(s,e,!Ve(s))),R0=s=>xt(s,e=>hi(s,e,Ve(s))),P0=s=>xt(s,e=>S.cursor(s.lineBlockAt(e.head).from,1)),I0=s=>xt(s,e=>S.cursor(s.lineBlockAt(e.head).to,-1));function N0(s,e,t){let i=!1,n=Zi(s.selection,r=>{let o=mt(s,r.head,-1)||mt(s,r.head,1)||r.head>0&&mt(s,r.head-1,1)||r.headN0(s,e);function ut(s,e,t){let i=Zi(s.state.selection,n=>{n.undirectional&&n.head>=n.anchor!=e&&(n=S.range(n.head,n.anchor));let r=t(n);return S.range(n.anchor,r.head,r.goalColumn,r.bidiLevel||void 0,r.assoc)});return i.eq(s.state.selection)?!1:(s.dispatch(wt(s.state,i)),!0)}function Qc(s,e){return ut(s,e,t=>s.moveByChar(t,e))}const Zc=s=>Qc(s,!Ve(s)),ef=s=>Qc(s,Ve(s));function tf(s,e){return ut(s,e,t=>s.moveByGroup(t,e))}const F0=s=>tf(s,!Ve(s)),W0=s=>tf(s,Ve(s)),H0=s=>{let e=!Ve(s);return ut(s,e,t=>Js(s.state,t,e))},V0=s=>{let e=Ve(s);return ut(s,e,t=>Js(s.state,t,e))};function nf(s,e){return ut(s,e,t=>s.moveVertically(t,e))}const sf=s=>nf(s,!1),rf=s=>nf(s,!0);function of(s,e){return ut(s,e,t=>s.moveVertically(t,e,Yc(s).height))}const pa=s=>of(s,!1),ga=s=>of(s,!0),$0=s=>ut(s,!0,e=>hi(s,e,!0)),z0=s=>ut(s,!1,e=>hi(s,e,!1)),q0=s=>{let e=!Ve(s);return ut(s,e,t=>hi(s,t,e))},U0=s=>{let e=Ve(s);return ut(s,e,t=>hi(s,t,e))},K0=s=>ut(s,!1,e=>S.cursor(s.lineBlockAt(e.head).from)),j0=s=>ut(s,!0,e=>S.cursor(s.lineBlockAt(e.head).to)),ma=({state:s,dispatch:e})=>(e(wt(s,{anchor:0})),!0),ya=({state:s,dispatch:e})=>(e(wt(s,{anchor:s.doc.length})),!0),va=({state:s,dispatch:e})=>(e(wt(s,{anchor:s.selection.main.anchor,head:0})),!0),ba=({state:s,dispatch:e})=>(e(wt(s,{anchor:s.selection.main.anchor,head:s.doc.length})),!0),G0=({state:s,dispatch:e})=>(e(s.update({selection:{anchor:0,head:s.doc.length},userEvent:"select"})),!0),J0=({state:s,dispatch:e})=>{let t=Ys(s).map(({from:i,to:n})=>S.range(i,Math.min(n+1,s.doc.length)));return e(s.update({selection:S.create(t),userEvent:"select"})),!0},Y0=({state:s,dispatch:e})=>{let t=Zi(s.selection,i=>{let n=_e(s),r=n.resolveStack(i.from,1);if(i.empty){let o=n.resolveStack(i.from,-1);o.node.from>=r.node.from&&o.node.to<=r.node.to&&(r=o)}for(let o=r;o;o=o.next){let{node:l}=o;if((l.from=i.to||l.to>i.to&&l.from<=i.from)&&o.next)return S.range(l.to,l.from)}return i});return t.eq(s.selection)?!1:(e(wt(s,t)),!0)};function lf(s,e){let{state:t}=s,i=t.selection,n=t.selection.ranges.slice();for(let r of t.selection.ranges){let o=t.doc.lineAt(r.head);if(e?o.to0)for(let l=r;;){let a=s.moveVertically(l,e);if(a.heado.to){n.some(h=>h.head==a.head)||n.push(a);break}else{if(a.head==l.head)break;l=a}}}return n.length==i.ranges.length?!1:(s.dispatch(wt(t,S.create(n,n.length-1))),!0)}const X0=s=>lf(s,!1),Q0=s=>lf(s,!0),Z0=({state:s,dispatch:e})=>{let t=s.selection,i=null;return t.ranges.length>1?i=S.create([t.main]):t.main.empty||(i=S.create([S.cursor(t.main.head)])),i?(e(wt(s,i)),!0):!1};function Nn(s,e){if(s.state.readOnly)return!1;let t="delete.selection",{state:i}=s,n=i.changeByRange(r=>{let{from:o,to:l}=r;if(o==l){let a=e(r);ao&&(t="delete.forward",a=is(s,a,!0)),o=Math.min(o,a),l=Math.max(l,a)}else o=is(s,o,!1),l=is(s,l,!0);return o==l?{range:r}:{changes:{from:o,to:l},range:S.cursor(o,on(s)))i.between(e,e,(n,r)=>{ne&&(e=t?r:n)});return e}const af=(s,e,t)=>Nn(s,i=>{let n=i.from,{state:r}=s,o=r.doc.lineAt(n),l,a;if(t&&!e&&n>o.from&&naf(s,!1,!0),hf=s=>af(s,!0,!1),cf=(s,e)=>Nn(s,t=>{let i=t.head,{state:n}=s,r=n.doc.lineAt(i),o=n.charCategorizer(i);for(let l=null;;){if(i==(e?r.to:r.from)){i==t.head&&r.number!=(e?n.doc.lines:1)&&(i+=e?1:-1);break}let a=Oe(r.text,i-r.from,e)+r.from,h=r.text.slice(Math.min(i,a)-r.from,Math.max(i,a)-r.from),c=o(h);if(l!=null&&c!=l)break;(h!=" "||i!=t.head)&&(l=c),i=a}return i}),ff=s=>cf(s,!1),ey=s=>cf(s,!0),ty=s=>Nn(s,e=>{let t=s.lineBlockAt(e.head).to;return e.headNn(s,e=>{let t=s.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),ny=s=>Nn(s,e=>{let t=s.moveToLineBoundary(e,!0).head;return e.head{if(s.readOnly)return!1;let t=s.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:ne.of(["",""])},range:S.cursor(i.from)}));return e(s.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},ry=({state:s,dispatch:e})=>{if(s.readOnly)return!1;let t=s.changeByRange(i=>{if(!i.empty||i.from==0||i.from==s.doc.length)return{range:i};let n=i.from,r=s.doc.lineAt(n),o=n==r.from?n-1:Oe(r.text,n-r.from,!1)+r.from,l=n==r.to?n+1:Oe(r.text,n-r.from,!0)+r.from;return{changes:{from:o,to:l,insert:s.doc.slice(n,l).append(s.doc.slice(o,n))},range:S.cursor(l)}});return t.changes.empty?!1:(e(s.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function Ys(s){let e=[],t=-1;for(let i of s.selection.ranges){let n=s.doc.lineAt(i.from),r=s.doc.lineAt(i.to);if(!i.empty&&i.to==r.from&&(r=s.doc.lineAt(i.to-1)),t>=n.number){let o=e[e.length-1];o.to=r.to,o.ranges.push(i)}else e.push({from:n.from,to:r.to,ranges:[i]});t=r.number+1}return e}function uf(s,e,t){if(s.readOnly)return!1;let i=[],n=[];for(let r of Ys(s)){if(t?r.to==s.doc.length:r.from==0)continue;let o=s.doc.lineAt(t?r.to+1:r.from-1),l=o.length+1;if(t){i.push({from:r.to,to:o.to},{from:r.from,insert:o.text+s.lineBreak});for(let a of r.ranges)n.push(S.range(Math.min(s.doc.length,a.anchor+l),Math.min(s.doc.length,a.head+l)))}else{i.push({from:o.from,to:r.from},{from:r.to,insert:s.lineBreak+o.text});for(let a of r.ranges)n.push(S.range(a.anchor-l,a.head-l))}}return i.length?(e(s.update({changes:i,scrollIntoView:!0,selection:S.create(n,s.selection.mainIndex),userEvent:"move.line"})),!0):!1}const oy=({state:s,dispatch:e})=>uf(s,e,!1),ly=({state:s,dispatch:e})=>uf(s,e,!0);function df(s,e,t){if(s.readOnly)return!1;let i=[];for(let r of Ys(s))t?i.push({from:r.from,insert:s.doc.slice(r.from,r.to)+s.lineBreak}):i.push({from:r.to,insert:s.lineBreak+s.doc.slice(r.from,r.to)});let n=s.changes(i);return e(s.update({changes:n,selection:s.selection.map(n,t?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}const ay=({state:s,dispatch:e})=>df(s,e,!1),hy=({state:s,dispatch:e})=>df(s,e,!0),cy=s=>{if(s.state.readOnly)return!1;let{state:e}=s,t=e.changes(Ys(e).map(({from:n,to:r})=>(n>0?n--:r{let r;if(s.lineWrapping){let o=s.lineBlockAt(n.head),l=s.coordsAtPos(n.head,n.assoc||1);l&&(r=o.bottom+s.documentTop-l.bottom+s.defaultLineHeight/2)}return s.moveVertically(n,!0,r)}).map(t);return s.dispatch({changes:t,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function fy(s,e){if(/\(\)|\[\]|\{\}/.test(s.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=_e(s).resolveInner(e),i=t.childBefore(e),n=t.childAfter(e),r;return i&&n&&i.to<=e&&n.from>=e&&(r=i.type.prop(ee.closedBy))&&r.indexOf(n.name)>-1&&s.doc.lineAt(i.to).from==s.doc.lineAt(n.from).from&&!/\S/.test(s.sliceDoc(i.to,n.from))?{from:i.to,to:n.from}:null}const wa=pf(!1),uy=pf(!0);function pf(s){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=e.changeByRange(n=>{let{from:r,to:o}=n,l=e.doc.lineAt(r),a=!s&&r==o&&fy(e,r);s&&(r=o=(o<=l.to?l:e.doc.lineAt(o)).to);let h=new Xi(e,{simulateBreak:r,simulateDoubleBreak:!!a}),c=In(h,r);for(c==null&&(c=Ws(/^\s*/.exec(e.doc.lineAt(r).text)[0],e.tabSize));ol.from&&r{let n=[];for(let o=i.from;o<=i.to;){let l=s.doc.lineAt(o);l.number>t&&(i.empty||i.to>l.from)&&(e(l,n,i),t=l.number),o=l.to+1}let r=s.changes(n);return{changes:n,range:S.range(r.mapPos(i.anchor,1),r.mapPos(i.head,1))}})}const dy=({state:s,dispatch:e})=>{if(s.readOnly)return!1;let t=Object.create(null),i=new Xi(s,{overrideIndentation:r=>{let o=t[r];return o??-1}}),n=Ko(s,(r,o,l)=>{let a=In(i,r.from);if(a==null)return;/\S/.test(r.text)||(a=0);let h=/^\s*/.exec(r.text)[0],c=Ci(s,a);(h!=c||l.froms.readOnly?!1:(e(s.update(Ko(s,(t,i)=>{i.push({from:t.from,insert:s.facet(Us)})}),{userEvent:"input.indent"})),!0),gy=({state:s,dispatch:e})=>s.readOnly?!1:(e(s.update(Ko(s,(t,i)=>{let n=/^\s*/.exec(t.text)[0];if(!n)return;let r=Ws(n,s.tabSize),o=0,l=Ci(s,Math.max(0,r-li(s)));for(;o(s.setTabFocusMode(),!0),yy=[{key:"Ctrl-b",run:qc,shift:Zc,preventDefault:!0},{key:"Ctrl-f",run:Uc,shift:ef},{key:"Ctrl-p",run:Gc,shift:sf},{key:"Ctrl-n",run:Jc,shift:rf},{key:"Ctrl-a",run:P0,shift:K0},{key:"Ctrl-e",run:I0,shift:j0},{key:"Ctrl-d",run:hf},{key:"Ctrl-h",run:fo},{key:"Ctrl-k",run:ty},{key:"Ctrl-Alt-h",run:ff},{key:"Ctrl-o",run:sy},{key:"Ctrl-t",run:ry},{key:"Ctrl-v",run:co}],vy=[{key:"ArrowLeft",run:qc,shift:Zc,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:A0,shift:F0,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:B0,shift:q0,preventDefault:!0},{key:"ArrowRight",run:Uc,shift:ef,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:M0,shift:W0,preventDefault:!0},{mac:"Cmd-ArrowRight",run:R0,shift:U0,preventDefault:!0},{key:"ArrowUp",run:Gc,shift:sf,preventDefault:!0},{mac:"Cmd-ArrowUp",run:ma,shift:va},{mac:"Ctrl-ArrowUp",run:da,shift:pa},{key:"ArrowDown",run:Jc,shift:rf,preventDefault:!0},{mac:"Cmd-ArrowDown",run:ya,shift:ba},{mac:"Ctrl-ArrowDown",run:co,shift:ga},{key:"PageUp",run:da,shift:pa},{key:"PageDown",run:co,shift:ga},{key:"Home",run:L0,shift:z0,preventDefault:!0},{key:"Mod-Home",run:ma,shift:va},{key:"End",run:O0,shift:$0,preventDefault:!0},{key:"Mod-End",run:ya,shift:ba},{key:"Enter",run:wa,shift:wa},{key:"Mod-a",run:G0},{key:"Backspace",run:fo,shift:fo,preventDefault:!0},{key:"Delete",run:hf,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:ff,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:ey,preventDefault:!0},{mac:"Mod-Backspace",run:iy,preventDefault:!0},{mac:"Mod-Delete",run:ny,preventDefault:!0}].concat(yy.map(s=>({mac:s.key,run:s.run,shift:s.shift}))),by=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:D0,shift:H0},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:E0,shift:V0},{key:"Alt-ArrowUp",run:oy},{key:"Shift-Alt-ArrowUp",run:ay},{key:"Alt-ArrowDown",run:ly},{key:"Shift-Alt-ArrowDown",run:hy},{key:"Mod-Alt-ArrowUp",run:X0},{key:"Mod-Alt-ArrowDown",run:Q0},{key:"Escape",run:Z0},{key:"Mod-Enter",run:uy},{key:"Alt-l",mac:"Ctrl-l",run:J0},{key:"Mod-i",run:Y0,preventDefault:!0},{key:"Mod-[",run:gy},{key:"Mod-]",run:py},{key:"Mod-Alt-\\",run:dy},{key:"Shift-Mod-k",run:cy},{key:"Shift-Mod-\\",run:_0},{key:"Mod-/",run:o0},{key:"Alt-A",run:a0},{key:"Ctrl-m",mac:"Shift-Alt-m",run:my}].concat(vy),xa=typeof String.prototype.normalize=="function"?s=>s.normalize("NFKD"):s=>s;class Tn{constructor(e,t,i=0,n=e.length,r,o){this.test=o,this.value={from:0,to:0,precise:!1},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,n),this.bufferStart=i,this.normalize=r?l=>r(xa(l)):xa,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Va(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=vd(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=$a(e);let n=this.normalize(t);if(n.length)for(let r=0,o=i,l=!0;;r++){let a=n.charCodeAt(r),h=this.match(a,o,l,this.bufferPos+this.bufferStart,r==n.length-1);if(h)return this.value=h,this;if(r==n.length-1)break;l&&rthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let i=this.curLineStart+t.index,n=i+t[0].length;if(this.matchPos=Bs(this.text,n+(i==n?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,n,t)))return this.value={from:i,to:n,precise:!0,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=i||n.to<=t){let l=new Hi(t,e.sliceString(t,i));return wr.set(e,l),l}if(n.from==t&&n.to==i)return n;let{text:r,from:o}=n;return o>t&&(r=e.sliceString(t,o)+r,o=t),n.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let i=this.flat.from+t.index,n=i+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(i,n,t)))return this.value={from:i,to:n,precise:!0,match:t},this.matchPos=Bs(this.text,n+(i==n?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Hi.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(mf.prototype[Symbol.iterator]=yf.prototype[Symbol.iterator]=function(){return this});function wy(s){try{return new RegExp(s,jo),!0}catch{return!1}}function Bs(s,e){if(e>=s.length)return e;let t=s.lineAt(e),i;for(;e=56320&&i<57344;)e++;return e}const xy=s=>{let{state:e}=s,t=String(e.doc.lineAt(s.state.selection.main.head).number),{close:i,result:n}=Cg(s,{label:e.phrase("Go to line"),input:{type:"text",name:"line",value:t},focus:!0,submitLabel:e.phrase("go")});return n.then(r=>{let o=r&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(r.elements.line.value);if(!o){s.dispatch({effects:i});return}let l=e.doc.lineAt(e.selection.main.head),[,a,h,c,f]=o,u=c?+c.slice(1):0,d=h?+h:l.number;if(h&&f){let y=d/100;a&&(y=y*(a=="-"?-1:1)+l.number/e.doc.lines),d=Math.round(e.doc.lines*y)}else h&&a&&(d=d*(a=="-"?-1:1)+l.number);let p=e.doc.line(Math.max(1,Math.min(e.doc.lines,d))),g=S.cursor(p.from+Math.max(0,Math.min(u,p.length)));s.dispatch({effects:[i,H.scrollIntoView(g.from,{y:"center"})],selection:g})}),!0},ky=({state:s,dispatch:e})=>{let{selection:t}=s,i=S.create(t.ranges.map(n=>s.wordAt(n.head)||S.cursor(n.head)),t.mainIndex);return i.eq(t)?!1:(e(s.update({selection:i})),!0)};function Sy(s,e){let{main:t,ranges:i}=s.selection,n=s.wordAt(t.head),r=n&&n.from==t.from&&n.to==t.to;for(let o=!1,l=new Tn(s.doc,e,i[i.length-1].to);;)if(l.next(),l.done){if(o)return null;l=new Tn(s.doc,e,0,Math.max(0,i[i.length-1].from-1)),o=!0}else{if(o&&i.some(a=>a.from==l.value.from))continue;if(r){let a=s.wordAt(l.value.from);if(!a||a.from!=l.value.from||a.to!=l.value.to)continue}return l.value}}const Cy=({state:s,dispatch:e})=>{let{ranges:t}=s.selection;if(t.some(r=>r.from===r.to))return ky({state:s,dispatch:e});let i=s.sliceDoc(t[0].from,t[0].to);if(s.selection.ranges.some(r=>s.sliceDoc(r.from,r.to)!=i))return!1;let n=Sy(s,i);return n?(e(s.update({selection:s.selection.addRange(S.range(n.from,n.to),!1),effects:H.scrollIntoView(n.to)})),!0):!1},Ti=F.define({combine(s){return Ln(s,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new Wy(e),scrollToMatch:e=>H.scrollIntoView(e)})}});function Ay(s){return s?[Ti.of(s),po]:po}class vf{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||wy(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(t,i)=>i=="n"?` -`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new Ly(this):new Dy(this)}getCursor(e,t=0,i){let n=e.doc?e:se.create({doc:e});return i==null&&(i=n.doc.length),this.regexp?Li(this,n,t,i):Oi(this,n,t,i)}}class bf{constructor(e){this.spec=e}}function My(s,e,t){return(i,n,r,o)=>{if(t&&!t(i,n,r,o))return!1;let l=i>=o&&n<=o+r.length?r.slice(i-o,n-o):e.doc.sliceString(i,n);return s(l,e,i,n)}}function Oi(s,e,t,i){let n;return s.wholeWord&&(n=Ty(e.doc,e.charCategorizer(e.selection.main.head))),s.test&&(n=My(s.test,e,n)),new Tn(e.doc,s.unquoted,t,i,s.caseSensitive?void 0:r=>r.toLowerCase(),n)}function Ty(s,e){return(t,i,n,r)=>((r>t||r+n.length=t)return null;n.push(i.value)}return n}highlight(e,t,i,n){let r=Oi(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!r.next().done;)n(r.value.from,r.value.to)}}function Ey(s,e,t){return(i,n,r)=>(!t||t(i,n,r))&&s(r[0],e,i,n)}function Li(s,e,t,i){let n;return s.wholeWord&&(n=Oy(e.charCategorizer(e.selection.main.head))),s.test&&(n=Ey(s.test,e,n)),new mf(e.doc,s.search,{ignoreCase:!s.caseSensitive,test:n},t,i)}function Rs(s,e){return s.slice(Oe(s,e,!1),e)}function Ps(s,e){return s.slice(e,Oe(s,e))}function Oy(s){return(e,t,i)=>!i[0].length||(s(Rs(i.input,i.index))!=Ne.Word||s(Ps(i.input,i.index))!=Ne.Word)&&(s(Ps(i.input,i.index+i[0].length))!=Ne.Word||s(Rs(i.input,i.index+i[0].length))!=Ne.Word)}class Ly extends bf{nextMatch(e,t,i){let n=Li(this.spec,e,i,e.doc.length).next();return n.done&&(n=Li(this.spec,e,0,t).next()),n.done?null:n.value}prevMatchInRange(e,t,i){for(let n=1;;n++){let r=Math.max(t,i-n*1e4),o=Li(this.spec,e,r,i),l=null;for(;!o.next().done;)l=o.value;if(l&&(r==t||l.from>r+10))return l;if(r==t)return null}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,i)=>{if(i=="&")return e.match[0];if(i=="$")return"$";for(let n=i.length;n>0;n--){let r=+i.slice(0,n);if(r>0&&r=t)return null;n.push(i.value)}return n}highlight(e,t,i,n){let r=Li(this.spec,e,Math.max(0,t-250),Math.min(i+250,e.doc.length));for(;!r.next().done;)n(r.value.from,r.value.to)}}const Dn=oe.define(),Go=oe.define(),ei=bt.define({create(s){return new xr(uo(s).create(),null)},update(s,e){for(let t of e.effects)t.is(Dn)?s=new xr(t.value.create(),s.panel):t.is(Go)&&(s=new xr(s.query,t.value?Jo:null));return s},provide:s=>Ms.from(s,e=>e.panel)});class xr{constructor(e,t){this.query=e,this.panel=t}}const By=re.mark({class:"cm-searchMatch"}),Ry=re.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Py=st.fromClass(class{constructor(s){this.view=s,this.decorations=this.highlight(s.state.field(ei))}update(s){let e=s.state.field(ei);(e!=s.startState.field(ei)||s.docChanged||s.selectionSet||s.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:s,panel:e}){if(!e||!s.spec.valid)return re.none;let{view:t}=this,i=new ti;for(let n=0,r=t.visibleRanges,o=r.length;nr[n+1].from-2*250;)a=r[++n].to;s.highlight(t.state,l,a,(h,c)=>{let f=t.state.selection.ranges.some(u=>u.from==h&&u.to==c);i.add(h,c,f?Ry:By)})}return i.finish()}},{decorations:s=>s.decorations});function _n(s){return e=>{let t=e.state.field(ei,!1);return t&&t.query.spec.valid?s(e,t):kf(e)}}const Is=_n((s,{query:e})=>{let{to:t}=s.state.selection.main,i=e.nextMatch(s.state,t,t);if(!i)return!1;let n=S.single(i.from,i.to),r=s.state.facet(Ti);return s.dispatch({selection:n,effects:[Yo(s,i),r.scrollToMatch(n.main,s)],userEvent:"select.search"}),xf(s),!0}),Ns=_n((s,{query:e})=>{let{state:t}=s,{from:i}=t.selection.main,n=e.prevMatch(t,i,i);if(!n)return!1;let r=S.single(n.from,n.to),o=s.state.facet(Ti);return s.dispatch({selection:r,effects:[Yo(s,n),o.scrollToMatch(r.main,s)],userEvent:"select.search"}),xf(s),!0}),Iy=_n((s,{query:e})=>{let t=e.matchAll(s.state,1e3);return!t||!t.length?!1:(s.dispatch({selection:S.create(t.map(i=>S.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),Ny=({state:s,dispatch:e})=>{let t=s.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:i,to:n}=t.main,r=[],o=0;for(let l=new Tn(s.doc,s.sliceDoc(i,n));!l.next().done;){if(r.length>1e3)return!1;l.value.from==i&&(o=r.length),r.push(S.range(l.value.from,l.value.to))}return e(s.update({selection:S.create(r,o),userEvent:"select.search.matches"})),!0},ka=_n((s,{query:e})=>{let{state:t}=s,{from:i,to:n}=t.selection.main;if(t.readOnly)return!1;let r=e.nextMatch(t,i,i);if(!r)return!1;let o=r,l=[],a,h,c=[];o.precise?o.from==i&&o.to==n&&(h=t.toText(e.getReplacement(o)),l.push({from:o.from,to:o.to,insert:h}),o=e.nextMatch(t,o.from,o.to),c.push(H.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(i).number)+"."))):o=e.nextMatch(t,o.from,o.to);let f=s.state.changes(l);return o&&(a=S.single(o.from,o.to).map(f),c.push(Yo(s,o)),c.push(t.facet(Ti).scrollToMatch(a.main,s))),s.dispatch({changes:f,selection:a,effects:c,userEvent:"input.replace"}),!0}),_y=_n((s,{query:e})=>{if(s.state.readOnly)return!1;let t=[];for(let n of e.matchAll(s.state,1e9)){let{from:r,to:o,precise:l}=n;l&&t.push({from:r,to:o,insert:e.getReplacement(n)})}if(!t.length)return!1;let i=s.state.phrase("replaced $ matches",t.length)+".";return s.dispatch({changes:t,effects:H.announce.of(i),userEvent:"input.replace.all"}),!0});function Jo(s){return s.state.facet(Ti).createPanel(s)}function uo(s,e){var t,i,n,r,o;let l=s.selection.main,a=l.empty||l.to>l.from+100?"":s.sliceDoc(l.from,l.to);if(e&&!a)return e;let h=s.facet(Ti);return new vf({search:((t=e==null?void 0:e.literal)!==null&&t!==void 0?t:h.literal)?a:a.replace(/\n/g,"\\n"),caseSensitive:(i=e==null?void 0:e.caseSensitive)!==null&&i!==void 0?i:h.caseSensitive,literal:(n=e==null?void 0:e.literal)!==null&&n!==void 0?n:h.literal,regexp:(r=e==null?void 0:e.regexp)!==null&&r!==void 0?r:h.regexp,wholeWord:(o=e==null?void 0:e.wholeWord)!==null&&o!==void 0?o:h.wholeWord})}function wf(s){let e=Yh(s,Jo);return e&&e.dom.querySelector("[main-field]")}function xf(s){let e=wf(s);e&&e==s.root.activeElement&&e.select()}const kf=s=>{let e=s.state.field(ei,!1);if(e&&e.panel){let t=wf(s);if(t&&t!=s.root.activeElement){let i=uo(s.state,e.query.spec);i.valid&&s.dispatch({effects:Dn.of(i)}),t.focus(),t.select()}}else s.dispatch({effects:[Go.of(!0),e?Dn.of(uo(s.state,e.query.spec)):oe.appendConfig.of(po)]});return!0},Sf=s=>{let e=s.state.field(ei,!1);if(!e||!e.panel)return!1;let t=Yh(s,Jo);return t&&t.dom.contains(s.root.activeElement)&&s.focus(),s.dispatch({effects:Go.of(!1)}),!0},Fy=[{key:"Mod-f",run:kf,scope:"editor search-panel"},{key:"F3",run:Is,shift:Ns,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:Is,shift:Ns,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Sf,scope:"editor search-panel"},{key:"Mod-Shift-l",run:Ny},{key:"Mod-Alt-g",run:xy},{key:"Mod-d",run:Cy,preventDefault:!0}];class Wy{constructor(e){this.view=e;let t=this.query=e.state.field(ei).query.spec;this.commit=this.commit.bind(this),this.searchField=Ee("input",{value:t.search,placeholder:Ze(e,"Find"),"aria-label":Ze(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Ee("input",{value:t.replace,placeholder:Ze(e,"Replace"),"aria-label":Ze(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Ee("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=Ee("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=Ee("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function i(n,r,o){return Ee("button",{class:"cm-button",name:n,onclick:r,type:"button"},o)}this.dom=Ee("div",{onkeydown:n=>this.keydown(n),class:"cm-search"},[this.searchField,i("next",()=>Is(e),[Ze(e,"next")]),i("prev",()=>Ns(e),[Ze(e,"previous")]),i("select",()=>Iy(e),[Ze(e,"all")]),Ee("label",null,[this.caseField,Ze(e,"match case")]),Ee("label",null,[this.reField,Ze(e,"regexp")]),Ee("label",null,[this.wordField,Ze(e,"by word")]),...e.state.readOnly?[]:[Ee("br"),this.replaceField,i("replace",()=>ka(e),[Ze(e,"replace")]),i("replaceAll",()=>_y(e),[Ze(e,"replace all")])],Ee("button",{name:"close",onclick:()=>Sf(e),"aria-label":Ze(e,"close"),type:"button"},["×"])])}commit(){let e=new vf({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:Dn.of(e)}))}keydown(e){xg(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?Ns:Is)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),ka(this.view))}update(e){for(let t of e.transactions)for(let i of t.effects)i.is(Dn)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(Ti).top}}function Ze(s,e){return s.state.phrase(e)}const ns=30,ss=/[\s\.,:;?!]/;function Yo(s,{from:e,to:t}){let i=s.state.doc.lineAt(e),n=s.state.doc.lineAt(t).to,r=Math.max(i.from,e-ns),o=Math.min(n,t+ns),l=s.state.sliceDoc(r,o);if(r!=i.from){for(let a=0;al.length-ns;a--)if(!ss.test(l[a-1])&&ss.test(l[a])){l=l.slice(0,a);break}}return H.announce.of(`${s.state.phrase("current match")}. ${l} ${s.state.phrase("on line")} ${i.number}.`)}const Hy=H.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),po=[ei,On.low(Py),Hy];function Vy(s){const e=s.lastIndexOf("/");return e>=0?s.slice(e+1):s}async function dt(s,e){const[{StreamLanguage:t},i]=await Promise.all([le(()=>Promise.resolve().then(()=>r0),void 0),s]),n=i[e];return t.define(n)}async function $y(s){const e=Vy(s);switch(e){case"Dockerfile":return dt(le(()=>import("./dockerfile-ZL4hHokT.js"),[]),"dockerFile");case"Gemfile":case"Rakefile":return dt(le(()=>import("./ruby-B2Rjki9n.js"),[]),"ruby");case"Makefile":case"GNUmakefile":return dt(le(()=>import("./clike-B9uivgTg.js"),[]),"c")}const t=/\.([A-Za-z0-9]+)$/.exec(e),i=t?t[1].toLowerCase():null;if(!i)return null;switch(i){case"js":case"jsx":case"ts":case"tsx":{const{javascript:n}=await le(async()=>{const{javascript:r}=await import("./index-Dchib396.js");return{javascript:r}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));return n({typescript:i==="ts"||i==="tsx",jsx:i==="jsx"||i==="tsx"})}case"json":{const{json:n}=await le(async()=>{const{json:r}=await import("./index-BtHosg8n.js");return{json:r}},__vite__mapDeps([10,1,3,4,5,6,7,8,9]));return n()}case"md":case"markdown":{const{markdown:n}=await le(async()=>{const{markdown:r}=await import("./index-MXpsJk3L.js");return{markdown:r}},__vite__mapDeps([11,2,12,1,13,3,4,5,6,7,8,9,0]));return n()}case"css":case"scss":{const{css:n}=await le(async()=>{const{css:r}=await import("./index-p_CjDrxf.js");return{css:r}},__vite__mapDeps([13,1,3,4,5,6,7,8,9]));return n()}case"html":case"htm":{const{html:n}=await le(async()=>{const{html:r}=await import("./index-BJe4IiST.js");return{html:r}},__vite__mapDeps([12,1,13,3,4,5,6,7,8,9,0,2]));return n()}case"py":{const{python:n}=await le(async()=>{const{python:r}=await import("./index-BPHRQyFA.js");return{python:r}},__vite__mapDeps([14,1,2,3,4,5,6,7,8,9]));return n()}case"go":{const{go:n}=await le(async()=>{const{go:r}=await import("./index-D73k4NcO.js");return{go:r}},__vite__mapDeps([15,1,2,3,4,5,6,7,8,9]));return n()}case"rs":{const{rust:n}=await le(async()=>{const{rust:r}=await import("./index-BlhWulu2.js");return{rust:r}},__vite__mapDeps([16,1,3,4,5,6,7,8,9]));return n()}case"c":case"cc":case"cpp":case"cxx":case"h":case"hpp":case"hh":case"m":case"mm":{const{cpp:n}=await le(async()=>{const{cpp:r}=await import("./index-BgaS_Avq.js");return{cpp:r}},__vite__mapDeps([17,1,3,4,5,6,7,8,9]));return n()}case"java":{const{java:n}=await le(async()=>{const{java:r}=await import("./index-ZyB5w4NU.js");return{java:r}},__vite__mapDeps([18,1,3,4,5,6,7,8,9]));return n()}case"php":{const{php:n}=await le(async()=>{const{php:r}=await import("./index-BCkxFa-u.js");return{php:r}},__vite__mapDeps([19,1,12,13,3,4,5,6,7,8,9,0,2]));return n()}case"sql":{const{sql:n}=await le(async()=>{const{sql:r}=await import("./index-CripwhQ-.js");return{sql:r}},__vite__mapDeps([20,1,2,3,4,5,6,7,8,9]));return n()}case"xml":case"xsd":case"xsl":case"plist":case"svg":{const{xml:n}=await le(async()=>{const{xml:r}=await import("./index-qv8oCKM7.js");return{xml:r}},__vite__mapDeps([21,1,3,4,5,6,7,8,9]));return n()}case"yml":case"yaml":{const{yaml:n}=await le(async()=>{const{yaml:r}=await import("./index-8VzpCkPZ.js");return{yaml:r}},__vite__mapDeps([22,1,3,4,5,6,7,8,9]));return n()}case"vue":{const{vue:n}=await le(async()=>{const{vue:r}=await import("./index-Bj0r02vw.js");return{vue:r}},__vite__mapDeps([23,12,1,13,3,4,5,6,7,8,9,0,2]));return n()}case"sass":{const{sass:n}=await le(async()=>{const{sass:r}=await import("./index-nQPb1k27.js");return{sass:r}},__vite__mapDeps([24,1,13,3,4,5,6,7,8,9]));return n()}case"sh":case"bash":case"zsh":case"fish":case"ksh":return dt(le(()=>import("./shell-CjFT_Tl9.js"),[]),"shell");case"toml":return dt(le(()=>import("./toml-Bm5Em-hy.js"),[]),"toml");case"rb":return dt(le(()=>import("./ruby-B2Rjki9n.js"),[]),"ruby");case"lua":return dt(le(()=>import("./lua-VAEuO923.js"),[]),"lua");case"ini":case"properties":case"conf":return dt(le(()=>import("./properties-C78fOPTZ.js"),[]),"properties");case"diff":case"patch":return dt(le(()=>import("./diff-DbItnlRl.js"),[]),"diff");case"swift":return dt(le(()=>import("./swift-BzpIVaGY.js"),[]),"swift");case"kt":case"kts":case"scala":return dt(le(()=>import("./clike-B9uivgTg.js"),[]),"kotlin");default:return null}}const zy=Mi.define([{tag:v.keyword,color:"#f47067"},{tag:v.controlKeyword,color:"#f47067"},{tag:v.operatorKeyword,color:"#f47067"},{tag:v.definitionKeyword,color:"#f47067"},{tag:v.modifier,color:"#f47067"},{tag:v.string,color:"#96d0ff"},{tag:v.special(v.string),color:"#96d0ff"},{tag:v.regexp,color:"#96d0ff"},{tag:v.escape,color:"#96d0ff"},{tag:[v.comment,v.lineComment,v.blockComment,v.docComment],color:"#768390",fontStyle:"italic"},{tag:v.number,color:"#6cb6ff"},{tag:v.bool,color:"#6cb6ff"},{tag:v.atom,color:"#6cb6ff"},{tag:v.function(v.variableName),color:"#dcbdfb"},{tag:v.function(v.propertyName),color:"#dcbdfb"},{tag:v.macroName,color:"#dcbdfb"},{tag:v.variableName,color:"#adbac7"},{tag:v.propertyName,color:"#adbac7"},{tag:v.typeName,color:"#ffaf6f"},{tag:v.className,color:"#ffaf6f"},{tag:v.namespace,color:"#ffaf6f"},{tag:v.operator,color:"#f47067"},{tag:v.punctuation,color:"#adbac7"},{tag:v.bracket,color:"#adbac7"},{tag:v.derefOperator,color:"#adbac7"},{tag:v.tagName,color:"#8ddb8c"},{tag:v.attributeName,color:"#dcbdfb"},{tag:v.attributeValue,color:"#96d0ff"},{tag:v.heading,color:"#6cb6ff",fontWeight:"bold"},{tag:v.strong,fontWeight:"bold"},{tag:v.emphasis,fontStyle:"italic"},{tag:v.link,color:"#6cb6ff",textDecoration:"underline"},{tag:v.url,color:"#6cb6ff"},{tag:v.quote,color:"#768390"},{tag:v.monospace,color:"#96d0ff"},{tag:v.invalid,color:"#ff938a"},{tag:v.deleted,color:"#ff938a",backgroundColor:"rgba(244,112,103,0.15)"},{tag:v.inserted,color:"#8ddb8c",backgroundColor:"rgba(141,219,140,0.15)"}]),qy=Mi.define([{tag:v.keyword,color:"#cf222e"},{tag:v.controlKeyword,color:"#cf222e"},{tag:v.operatorKeyword,color:"#cf222e"},{tag:v.definitionKeyword,color:"#cf222e"},{tag:v.modifier,color:"#cf222e"},{tag:v.string,color:"#0a3069"},{tag:v.special(v.string),color:"#0a3069"},{tag:v.regexp,color:"#0a3069"},{tag:v.escape,color:"#0a3069"},{tag:[v.comment,v.lineComment,v.blockComment,v.docComment],color:"#6e7781",fontStyle:"italic"},{tag:v.number,color:"#0550ae"},{tag:v.bool,color:"#0550ae"},{tag:v.atom,color:"#0550ae"},{tag:v.function(v.variableName),color:"#8250df"},{tag:v.function(v.propertyName),color:"#8250df"},{tag:v.macroName,color:"#8250df"},{tag:v.variableName,color:"#24292f"},{tag:v.propertyName,color:"#24292f"},{tag:v.typeName,color:"#953800"},{tag:v.className,color:"#953800"},{tag:v.namespace,color:"#953800"},{tag:v.operator,color:"#cf222e"},{tag:v.punctuation,color:"#24292f"},{tag:v.bracket,color:"#24292f"},{tag:v.derefOperator,color:"#24292f"},{tag:v.tagName,color:"#116329"},{tag:v.attributeName,color:"#8250df"},{tag:v.attributeValue,color:"#0a3069"},{tag:v.heading,color:"#0550ae",fontWeight:"bold"},{tag:v.strong,fontWeight:"bold"},{tag:v.emphasis,fontStyle:"italic"},{tag:v.link,color:"#0969da",textDecoration:"underline"},{tag:v.url,color:"#0969da"},{tag:v.quote,color:"#6e7781"},{tag:v.monospace,color:"#0a3069"},{tag:v.invalid,color:"#82071e"},{tag:v.deleted,color:"#82071e",backgroundColor:"rgba(255,129,130,0.2)"},{tag:v.inserted,color:"#116329",backgroundColor:"rgba(74,194,107,0.2)"}]);function Uy(s){return Ac(s==="light"?qy:zy)}const Ky={class:"file-editor"},jy={key:0,class:"banner err conflict","data-test":"conflict-banner"},Gy={class:"msg"},Jy={key:1,class:"banner err","data-test":"save-error"},Yy={key:2,class:"reload-badge"},Xy={key:3,class:"banner muted"},Qy={key:4,class:"banner muted"},Zy={key:5,class:"banner err"},e1={key:6,class:"banner muted"},Sa=2*1024*1024,t1=Qe({__name:"CodeEditor",props:{fs:{},path:{},showLineNumbers:{type:Boolean},theme:{}},emits:["dirty-change"],setup(s,{expose:e,emit:t}){const{t:i}=Ji(),n=s,r=t,o=j(null),l=j("loading"),a=j(""),h=j(!1),c=j(null),f=j(!1),u=j(null),d=j("");let p=null,g=null,y=!1,b=0,x="";function T(L,R,Z,X,ue){return!y&&b===ue&&n.fs===L&&n.path===R&&n.showLineNumbers===Z&&n.theme===X}function D(L,R){return typeof window>"u"||!o.value?R:getComputedStyle(o.value).getPropertyValue(L).trim()||R}function A(L){let R;if(typeof L=="string"){const Z=atob(L);R=new Uint8Array(Z.length);for(let X=0;XSa){l.value="tooLarge",C(!1);return}const ot=await L.readFile(R,Sa);if(!T(L,R,Z,X,ue))return;const de=A(ot.data);x=de,C(!1),u.value=null,d.value="";const Te=H.updateListener.of($e=>{$e.docChanged&&C($e.state.doc.toString()!==x)}),De=Qr.of([{key:"Mod-s",preventDefault:!0,run:()=>(M(),!0)}]),Fe=[P(X),Uy(X),g0(),Ay({top:!0}),Qr.of([...by,...C0,...Fy]),De,Te];Z&&Fe.push(Ig());const Le=await $y(R);if(Le&&Fe.push(Le),!T(L,R,Z,X,ue)||!o.value)return;const je=new H({state:se.create({doc:de,extensions:Fe}),parent:o.value});if(!T(L,R,Z,X,ue)){je.destroy();return}p=je,l.value="ok"}catch(Me){if(!T(L,R,Z,X,ue))return;l.value="error",a.value=Me.message}}}async function M(){if(!p||l.value!=="ok")return!1;const L=p.state.doc.toString(),R=new TextEncoder().encode(L);d.value="";try{const Z=await n.fs.writeFile(n.path,R,c.value);return x=L,c.value=Z.modTime,h.value=!1,u.value=null,C(!1),!0}catch(Z){const X=Z.message??"",ue=/stale_modtime: current=(\d+)/.exec(X);return ue?u.value={currentModTime:Number(ue[1])}:d.value=X,!1}}async function $(){u.value&&(c.value=u.value.currentModTime,u.value=null,await M())}function N(){u.value=null,U()}async function I(L,R){const Z=n.path,X=b;if(!(!Z.startsWith(R+"/")&&Z!==R))try{const ue=await L.fileMeta(Z);if(y||n.fs!==L||n.path!==Z||b!==X)return;c.value&&ue.modTime>c.value&&(h.value=!0)}catch{}}function G(L){g==null||g(),g=L.onDirChanged(R=>{I(L,R)})}return En(()=>{y=!1,U(),G(n.fs)}),ft(()=>[n.path,n.fs,n.showLineNumbers,n.theme],()=>{U()}),ft(()=>n.fs,L=>G(L)),qt(()=>{y=!0,b++,p==null||p.destroy(),p=null,g&&g()}),e({save:M,testAppend:L=>{p&&p.dispatch({changes:{from:p.state.doc.length,insert:L}})}}),(L,R)=>(O(),V("div",Ky,[u.value?(O(),V("div",jy,[J("span",Gy,Q(q(i)("plugins.fileExplorer.staleModTime")),1),J("button",{"data-test":"conflict-overwrite",onClick:$},Q(q(i)("plugins.fileExplorer.overwrite")),1),J("button",{"data-test":"conflict-reload",onClick:N},Q(q(i)("plugins.fileExplorer.reloadDiscard")),1),J("button",{"data-test":"conflict-cancel",onClick:R[0]||(R[0]=Z=>u.value=null)},Q(q(i)("plugins.fileExplorer.cancel")),1)])):Ie("",!0),d.value?(O(),V("div",Jy,Q(q(i)("plugins.fileExplorer.saveFailed",{message:d.value})),1)):Ie("",!0),h.value?(O(),V("div",Yy,[ps(Q(q(i)("plugins.fileExplorer.fileChanged"))+" ",1),J("button",{onClick:U},Q(f.value?q(i)("plugins.fileExplorer.reloadDiscard"):q(i)("plugins.fileExplorer.reload")),1)])):Ie("",!0),l.value==="tooLarge"?(O(),V("div",Xy,Q(q(i)("plugins.fileExplorer.tooLarge")),1)):l.value==="binary"?(O(),V("div",Qy,Q(q(i)("plugins.fileExplorer.binary")),1)):l.value==="error"?(O(),V("div",Zy,Q(q(i)("plugins.fileExplorer.errorPrefix",{message:a.value})),1)):l.value==="loading"?(O(),V("div",e1,Q(q(i)("common.loading")),1)):Ie("",!0),ds(J("div",{ref_key:"host",ref:o,class:"cm-host"},null,512),[[If,l.value==="ok"]])]))}}),i1=rt(t1,[["__scopeId","data-v-25358a6a"]]),n1={class:"binary-banner"},s1={class:"msg"},r1=Qe({__name:"BinaryBanner",props:{fs:{},path:{},message:{}},setup(s){const e=s,{t}=Ji();async function i(){try{await e.fs.openExternal(e.path)}catch{}}return(n,r)=>(O(),V("div",n1,[J("span",s1,Q(n.message??q(t)("plugins.fileExplorer.unsupportedPreview")),1),J("button",{class:"open-btn",onClick:i},Q(q(t)("plugins.fileExplorer.openInSystem")),1)]))}}),ji=rt(r1,[["__scopeId","data-v-780ce2ee"]]),o1=["data-asset-request","src"],l1=Qe({__name:"ImagePreview",props:{fs:{},path:{},theme:{}},setup(s){const e=s,t=j(""),i=j(0),n=j("fit"),r=j(!1);let o=!0,l=0,a=null;function h(){var d,p;a&&((p=(d=a.fs).revokeAssetUrl)==null||p.call(d,a.path),a=null)}async function c(){var y;const d=e.fs,p=e.path,g=++l;i.value=g,h(),a={fs:d,path:p},t.value="",r.value=!1;try{const b=await d.assetUrlFor(p);if(!o||g!==l||e.fs!==d||e.path!==p){(y=d.revokeAssetUrl)==null||y.call(d,p);return}t.value=b}catch{o&&g===l&&e.fs===d&&e.path===p&&(r.value=!0)}}ft(()=>[e.path,e.fs.identity],()=>{c()},{immediate:!0}),qt(()=>{o=!1,l++,h()});function f(){n.value=n.value==="fit"?"native":"fit"}function u(d){const p=d.currentTarget;!t.value||!p||p.dataset.assetRequest!==String(i.value)||(h(),r.value=!0)}return(d,p)=>r.value?(O(),ke(ji,{key:0,fs:d.fs,path:d.path},null,8,["fs","path"])):(O(),V("div",{key:1,class:Gi(["img-host",n.value])},[(O(),V("img",{key:i.value,"data-asset-request":i.value,src:t.value,alt:"",onClick:f,onError:u},null,40,o1))],2))}}),a1=rt(l1,[["__scopeId","data-v-06adca93"]]),h1={key:1,class:"media-host"},c1=["data-asset-request","src"],f1=["data-asset-request","src"],u1=Qe({__name:"MediaPreview",props:{fs:{},path:{},kind:{}},setup(s){const e=s,t=j(""),i=j(0),n=j(!1);let r=!0,o=0,l=null;function a(){var f,u;l&&((u=(f=l.fs).revokeAssetUrl)==null||u.call(f,l.path),l=null)}async function h(){var p;const f=e.fs,u=e.path,d=++o;i.value=d,a(),l={fs:f,path:u},t.value="",n.value=!1;try{const g=await f.assetUrlFor(u);if(!r||d!==o||e.fs!==f||e.path!==u){(p=f.revokeAssetUrl)==null||p.call(f,u);return}t.value=g}catch{r&&d===o&&e.fs===f&&e.path===u&&(n.value=!0)}}ft(()=>[e.path,e.fs.identity],()=>{h()},{immediate:!0}),qt(()=>{r=!1,o++,a()});function c(f){const u=f.currentTarget;!t.value||!u||u.dataset.assetRequest!==String(i.value)||(a(),n.value=!0)}return(f,u)=>n.value?(O(),ke(ji,{key:0,fs:f.fs,path:f.path},null,8,["fs","path"])):(O(),V("div",h1,[f.kind==="video"?(O(),V("video",{key:i.value,"data-asset-request":i.value,src:t.value,controls:"",preload:"metadata",onError:c},null,40,c1)):(O(),V("audio",{key:i.value,"data-asset-request":i.value,src:t.value,controls:"",preload:"metadata",onError:c},null,40,f1))]))}}),d1=rt(u1,[["__scopeId","data-v-71c6a6ef"]]),p1={key:1,class:"pdf-host"},g1=["data"],m1=Qe({__name:"PdfPreview",props:{fs:{},path:{}},setup(s){const e=s,t=j(""),i=j(!1);let n=!0,r=0,o=null;function l(){var h,c;o&&((c=(h=o.fs).revokeAssetUrl)==null||c.call(h,o.path),o=null)}async function a(){var u;const h=e.fs,c=e.path,f=++r;l(),o={fs:h,path:c},t.value="",i.value=!1;try{const d=await h.assetUrlFor(c);if(!n||f!==r||e.fs!==h||e.path!==c){(u=h.revokeAssetUrl)==null||u.call(h,c);return}t.value=d}catch{n&&f===r&&e.fs===h&&e.path===c&&(i.value=!0)}}return ft(()=>[e.path,e.fs.identity],()=>{a()},{immediate:!0}),qt(()=>{n=!1,r++,l()}),(h,c)=>i.value?(O(),ke(ji,{key:0,fs:h.fs,path:h.path},null,8,["fs","path"])):(O(),V("div",p1,[J("object",{data:t.value,type:"application/pdf"},[vi(ji,{fs:h.fs,path:h.path},null,8,["fs","path"])],8,g1)]))}}),y1=rt(m1,[["__scopeId","data-v-160ee5d7"]]),v1=["innerHTML"],b1={key:2,class:"md-host placeholder"},Ca=2*1024*1024,w1=Qe({__name:"MarkdownPreview",props:{fs:{},path:{},theme:{}},setup(s){const e=s,t=La(),i=j(""),n=j("loading");let r=!1,o=0;function l(f,u,d){return!r&&o===d&&e.fs===f&&e.path===u}function a(f){let u;if(typeof f=="string"){const d=atob(f);u=new Uint8Array(d.length);for(let p=0;pCa){n.value="error";return}const g=await f.readFile(u,Ca);if(!l(f,u,d))return;const y=a(g.data),b=(await le(async()=>{const{default:D}=await import("./index-D8AWWFft.js");return{default:D}},[])).default,T=new b({html:!1,linkify:!0,breaks:!1}).render(y);if(!l(f,u,d))return;i.value=T,n.value="ok"}catch{if(!l(f,u,d))return;n.value="error"}}}function c(f){const u=f.target;if(!u)return;const d=u.closest("a");if(!d)return;const p=d.getAttribute("href")??"";f.preventDefault(),/^(https?|mailto):/i.test(p)&&t.system.openExternalURL(p)}return En(()=>{r=!1,h()}),ft(()=>[e.path,e.fs],()=>{h()}),qt(()=>{r=!0,o++}),(f,u)=>n.value==="error"?(O(),ke(ji,{key:0,fs:f.fs,path:f.path},null,8,["fs","path"])):n.value==="ok"?(O(),V("div",{key:1,class:Gi(["md-host",f.theme]),innerHTML:i.value,onClick:c},null,10,v1)):(O(),V("div",b1,"…"))}}),x1=rt(w1,[["__scopeId","data-v-b84f1c1b"]]),k1={class:"file-editor-host"},S1={key:0,class:"banner err"},C1={key:7,class:"banner muted","data-test":"kind-pending"},A1=Qe({__name:"FileEditor",props:{fs:{},path:{},showLineNumbers:{type:Boolean},theme:{},viewMode:{}},emits:["dirty-change"],setup(s,{expose:e,emit:t}){const i=s,n=t,r=j(null);async function o(){var p,g;return((g=(p=r.value)==null?void 0:p.save)==null?void 0:g.call(p))??Promise.resolve(!1)}e({save:o});const{t:l}=Ji(),a=j(null),h=j("");let c=!1,f=0;function u(p,g,y){return!c&&f===y&&i.fs===p&&i.path===g}async function d(){const p=i.fs,g=i.path,y=++f;a.value=null,h.value="";try{const b=await p.fileMeta(g);if(!u(p,g,y))return;a.value=cd(g,b.isBinary)}catch(b){if(!u(p,g,y))return;h.value=(b==null?void 0:b.message)||String(b)||l("plugins.fileExplorer.unknownError")}}return ft(()=>[i.path,i.fs],()=>{d()},{immediate:!0}),qt(()=>{c=!0,f++}),(p,g)=>(O(),V("div",k1,[h.value?(O(),V("div",S1,Q(q(l)("plugins.fileExplorer.errorPrefix",{message:h.value})),1)):a.value==="code"||(a.value==="svg"||a.value==="markdown")&&p.viewMode==="code"?(O(),ke(i1,{key:1,ref_key:"codeEditorRef",ref:r,fs:p.fs,path:p.path,"show-line-numbers":p.showLineNumbers,theme:p.theme,onDirtyChange:g[0]||(g[0]=y=>n("dirty-change",y))},null,8,["fs","path","show-line-numbers","theme"])):a.value==="image"||a.value==="svg"&&p.viewMode==="render"?(O(),ke(a1,{key:2,fs:p.fs,path:p.path,theme:p.theme},null,8,["fs","path","theme"])):a.value==="markdown"&&p.viewMode==="render"?(O(),ke(x1,{key:3,fs:p.fs,path:p.path,theme:p.theme},null,8,["fs","path","theme"])):a.value==="video"||a.value==="audio"?(O(),ke(d1,{key:4,fs:p.fs,path:p.path,kind:a.value},null,8,["fs","path","kind"])):a.value==="pdf"?(O(),ke(y1,{key:5,fs:p.fs,path:p.path},null,8,["fs","path"])):a.value==="binary-unknown"?(O(),ke(ji,{key:6,fs:p.fs,path:p.path},null,8,["fs","path"])):(O(),V("div",C1,Q(q(l)("common.loading")),1))]))}}),M1=rt(A1,[["__scopeId","data-v-db7692c8"]]);function Aa(s){return/\.(md|markdown)$/i.test(s)?"render":"code"}const T1=8;function kr(s,e,t){const i=Date.now(),n=s.tabs.findIndex(o=>o.path===e);if(n>=0){const o=yi(s);return o.tabs[n].lastActiveAt=i,t==="persistent"&&(o.tabs[n].persistent=!0),o.activeIdx=n,o}if(t==="preview"){const o=s.tabs.findIndex(l=>!l.persistent);if(o>=0){const l=yi(s);return l.tabs[o]={path:e,persistent:!1,lastActiveAt:i,viewMode:Aa(e),dirty:!1},l.activeIdx=o,l}}let r=yi(s);return r.tabs.push({path:e,persistent:t==="persistent",lastActiveAt:i,viewMode:Aa(e),dirty:!1}),r.activeIdx=r.tabs.length-1,r.tabs.length>T1&&(r=E1(r)),r}function D1(s,e){if(e<0||e>=s.tabs.length)return s;const t=yi(s);return t.tabs.splice(e,1),t.tabs.length===0?(t.activeIdx=-1,t):(t.activeIdx=Math.min(e,t.tabs.length-1),t)}function E1(s){const e=s.activeIdx>=0?s.tabs[s.activeIdx].path:null,t=a=>!a.persistent&&a.path!==e,i=s.tabs.filter(t),n=i.length>0?i:s.tabs;let r=n[0];for(const a of n)a.lastActiveAtr.path===e);if(i<0||s.tabs[i].dirty===t)return s;const n=yi(s);return n.tabs[i].dirty=t,n}function yi(s){return{tabs:s.tabs.map(e=>({...e})),activeIdx:s.activeIdx}}function B1(s,e){return{identity:"local",listDir:t=>s.fs.listDir(t),watchDir:t=>s.fs.watchDir(t),unwatchDir:async t=>{if(typeof t!="number")throw new Error("local filesystem watch ID must be a number");await s.fs.unwatchDir(t)},readFile:(t,i)=>s.fs.readFile(t,i),fileMeta:t=>s.fs.fileMeta(t),openExternal:t=>s.fs.openExternal(t),assetUrlFor:t=>Promise.resolve(s.fs.assetUrlFor(t)),onDirChanged:t=>(e==null?void 0:e.on("plugin-fs:dir-changed",i=>{typeof i=="string"&&t(i)}))??(()=>{}),dispose:()=>{},writeFile:(t,i,n)=>s.fs.writeFile(t,Array.from(i),n??0,n===null),createFile:t=>s.fs.createFile(t),rename:(t,i)=>s.fs.rename(t,i),remove:(t,i)=>s.fs.remove(t,i),mkdir:t=>s.fs.mkdir(t),trash:t=>s.fs.trash(t)}}const R1=2*1024*1024,P1=256*1024,Ma=50*1024*1024,Ta="application/octet-stream";function et(s){if(!s.ok)throw new Error(s.error||"remote filesystem request failed");return s}function Cf(s){try{const e=atob(s),t=new Uint8Array(e.length);for(let i=0;iMa)throw new Error("remote asset exceeds the 50 MiB size limit");const X=_1(R);if(I+X.byteLength>Ma)throw new Error("remote asset exceeds the 50 MiB size limit");if(G&&(N=R.contentType||Ta,G=!1),$.push(F1(X)),I+=X.byteLength,R.eof)break;if(X.byteLength===0)throw new Error("remote filesystem response returned an empty non-final chunk")}return URL.createObjectURL(new Blob($,{type:N}))}function A(M){if(l)return Promise.reject(new Error("remote filesystem bridge is disposed"));const $=t.get(M);if($)return Promise.resolve($);const N=n.get(M)??0,I=i.get(M);if((I==null?void 0:I.generation)===N)return I.promise;const G=D(M).then(R=>{if(l)throw URL.revokeObjectURL(R),new Error("remote filesystem bridge is disposed");if((n.get(M)??0)!==N)throw URL.revokeObjectURL(R),new Error("remote filesystem asset request was invalidated");return t.set(M,R),R});i.set(M,{generation:N,promise:G});const L=()=>{var R;((R=i.get(M))==null?void 0:R.promise)===G&&i.delete(M)};return G.then(L,L),G}function P(M){n.set(M,(n.get(M)??0)+1);const $=t.get(M);$&&(URL.revokeObjectURL($),t.delete(M))}function C(M){if(l)return()=>{};const $={handler:M};return r.add($),o||(o=s.onFSEvent(N=>{if(!(l||N.event!=="changed"||!N.path))for(const{handler:I}of Array.from(r))try{I(N.path)}catch(G){it("file-explorer","dir-changed subscriber threw",{path:N.path,error:Se(G)})}})),()=>{r.delete($),r.size===0&&o&&(o(),o=null)}}function U(){if(!l){l=!0;for(const M of t.values())URL.revokeObjectURL(M);t.clear(),i.clear(),n.clear(),r.clear(),o&&(o(),o=null)}}return{identity:e,listDir:a,watchDir:h,unwatchDir:c,readFile:f,fileMeta:u,openExternal:d,assetUrlFor:A,onDirChanged:C,revokeAssetUrl:P,dispose:U,writeFile:p,createFile:g,rename:y,remove:b,mkdir:x,trash:T}}function _1(s){if(typeof s.data!="string")throw new Error("remote filesystem response chunk missing data");if(!Number.isSafeInteger(s.length)||s.length<0)throw new Error("remote filesystem response chunk has invalid length");const e=Cf(s.data);if(s.length!==e.byteLength)throw new Error("remote filesystem response chunk length does not match data");return e}function F1(s){const e=new Uint8Array(s.byteLength);return e.set(s),e.buffer}const W1=2*1024*1024,H1="/",V1="already_exists",$1="no platform trash command available",z1=200;function Da(s){return _s("plugins.fileExplorer.sshNoRecursiveDelete",{path:s})}function Ea(s){return Promise.reject(new Error(_s(`plugins.fileExplorer.${s}`)))}function rs(s,e){const t=Se(e);return t.includes(V1)?new Error(_s("plugins.fileExplorer.sshUploadExists",{path:s})):new Error(t)}function q1(s){let e=!1;function t(){if(e)throw new Error(_s("plugins.fileExplorer.sshBridgeDisposed"))}async function i(d){t();const p=await Gf(s,d);return{entries:p.entries??[],truncated:!!p.truncated,total:p.total??(p.entries??[]).length}}async function n(d){return(await i(d)).entries}async function r(d){return t(),await jf(s,d)}async function o(d,p=W1){return t(),await Kf(s,d,p)}async function l(d,p,g){t();try{return await Uf(s,d,p,g??0,g===null)}catch(y){throw rs(d,y)}}async function a(d){t();try{return await qf(s,d)}catch(p){throw rs(d,p)}}async function h(d){t();try{return await zf(s,d)}catch(p){throw rs(d,p)}}async function c(d,p){t();try{return await $f(s,d,p)}catch(g){throw rs(p,g)}}async function f(d,p){if(t(),p)throw new Error(Da(d));await Vf(s,d,!1)}function u(){if(!e){e=!0;try{Hf(s).catch(d=>{it("file-explorer","releasing the ssh file source failed",{hostID:s,error:Se(d)})})}catch(d){it("file-explorer","releasing the ssh file source failed",{hostID:s,error:Se(d)})}}}return{identity:`ssh:${s}`,searchMaxDirs:z1,dirRemovalRefusal:Da,listDir:n,listDirDetailed:i,fileMeta:r,readFile:o,writeFile:l,createFile:a,mkdir:h,rename:c,remove:f,watchDir:()=>Promise.resolve(`ssh:${s}`),unwatchDir:()=>Promise.resolve(),onDirChanged:()=>()=>{},openExternal:()=>Ea("sshNoOpenExternal"),assetUrlFor:()=>Ea("sshNoInlineAsset"),trash:()=>Promise.reject(new Error($1)),dispose:u}}const U1={class:"file-explorer"},K1={class:"fe-header"},j1=["title"],G1=["disabled","title"],J1=["title"],Y1={key:0,class:"source-picker"},X1=["aria-label"],Q1={value:""},Z1=["value"],ev={class:"tree-search"},tv=["placeholder","aria-label"],iv={class:"tree-scroll"},nv={key:1,class:"placeholder"},sv={class:"editor-pane"},rv={class:"editor-area"},ov={key:1,class:"placeholder"},lv=Qe({__name:"FileExplorer",props:{context:{}},setup(s){const e=s,t=La(),i=Jf(),{t:n}=Ji(),r=j(null),o=me(()=>{var B;return((B=i.cfg)==null?void 0:B.fileExplorer.innerTreeRatio)??.3}),l=j(null),a=me(()=>l.value??o.value),h=j(null),{onMouseDown:c}=Zf({onDrag:B=>{if(!h.value)return;const K=h.value.clientWidth;if(K<=0)return;const te=l.value??o.value,ge=Math.max(.15,Math.min(te-B/K,.5));l.value=ge},onEnd:()=>{if(l.value===null||!i.cfg){l.value=null;return}const B=JSON.parse(JSON.stringify(i.cfg));B.fileExplorer.innerTreeRatio=l.value,i.save(B),l.value=null}}),f=j([]),u=j("");async function d(){if(t.pluginHost)try{f.value=await eu()??[]}catch(B){it("file-explorer","ssh sources unavailable",{error:Se(B)}),f.value=[]}}d();function p(B){return B.alias||`${B.user}@${B.host}`}const g=me(()=>{if(u.value)return{identity:`ssh:${u.value}`,connection:null,sshHostID:u.value};if(!e.context.activeIsRemote.value)return{identity:t.pluginHost?"local":null,connection:null,sshHostID:""};const B=e.context.activeSessionId.value,K=e.context.activeSessionConnection.value;return{identity:B&&K?`remote:${B}`:null,connection:K,sshHostID:""}}),y=j({});ft(()=>[e.context.activeCwd.value,g.value.identity,g.value.sshHostID],([B,K,te])=>{B&&K&&!te&&(y.value={...y.value,[K]:B})},{immediate:!0});const b=me(()=>{if(g.value.sshHostID)return H1;if(r.value)return r.value;const B=e.context.activeCwd.value;if(B)return B;const K=g.value.identity;return K?y.value[K]??null:null}),x=j({tabs:[],activeIdx:-1}),T=Nf(null),D=j(0),A=j("");ft(()=>[g.value.identity,g.value.connection,g.value.sshHostID],async([B,K,te])=>{var St;const ge=te?q1(te):B==="local"?t.pluginHost?B1(t.pluginHost,t.events):null:B&&K?N1(K,B):null,ve=T.value,kt=(ve==null?void 0:ve.identity)!==(ge==null?void 0:ge.identity);T.value=ge,D.value++,kt&&(r.value=null,x.value={tabs:[],activeIdx:-1},A.value=""),await us(),(St=ve==null?void 0:ve.dispose)==null||St.call(ve)},{immediate:!0}),qt(()=>{var B,K;(K=(B=T.value)==null?void 0:B.dispose)==null||K.call(B),T.value=null});const P=Yf(),C=j(null),U=j(null),M=j(!1),$=me(()=>{var B;return((B=C.value)==null?void 0:B.selectedDir)??b.value});function N(){var B;(B=U.value)==null||B.click()}async function I(B){var kt,St,en;const K=B.target,te=((kt=K.files)==null?void 0:kt[0])??null;K.value="";const ge=T.value,ve=$.value;if(!(!te||!ge||!ve)){M.value=!0;try{const It=new Uint8Array(await te.arrayBuffer()),Wn=ve.endsWith("/")?ve+te.name:`${ve}/${te.name}`;await ge.writeFile(Wn,It,null),e.context.showToast(n("plugins.fileExplorer.sshUploadDone",{name:te.name,dir:ve})),(en=(St=C.value)==null?void 0:St.refreshDir)==null||en.call(St,ve)}catch(It){e.context.showToast(Se(It)),it("file-explorer","ssh upload failed",{error:Se(It)})}finally{M.value=!1}}}ft(()=>P.pending,async B=>{var te;if(!B||!T.value)return;await us(),(await((te=C.value)==null?void 0:te.revealPath(B))??!1)&&(x.value=kr(x.value,B,"preview")),P.consume()},{immediate:!0});function G(B){x.value=kr(x.value,B,"preview")}function L(B){x.value=kr(x.value,B,"persistent")}function R(B){x.value={...x.value,activeIdx:B}}function Z(B){x.value=D1(x.value,B)}const X=j(null),ue=j(null);function Me(B){const K=Le.value;K&&(x.value=L1(x.value,K,B))}async function ot(B){const K=x.value.tabs[B];if(!(K!=null&&K.dirty)){Z(B);return}X.value={idx:B,name:K.path.split("/").pop()??K.path,buttons:[{id:"save",label:n("plugins.fileExplorer.save"),kind:"primary"},{id:"dontSave",label:n("plugins.fileExplorer.dontSave"),kind:"danger"},{id:"cancel",label:n("plugins.fileExplorer.cancel"),kind:"secondary"}]}}async function de(B){var ge,ve;const K=X.value;if(X.value=null,!K||B==="cancel")return;if(B==="dontSave"){Z(K.idx);return}(await((ve=(ge=ue.value)==null?void 0:ge.save)==null?void 0:ve.call(ge))??!1)&&Z(K.idx)}function Te(){r.value=r.value===null?e.context.activeCwd.value:null}const De=me(()=>{const B=x.value.activeIdx;return B>=0?x.value.tabs[B].viewMode:"code"});function Fe(){x.value=O1(x.value,De.value==="code"?"render":"code")}const Le=me(()=>x.value.activeIdx>=0?x.value.tabs[x.value.activeIdx].path:null),je=me(()=>{var B;return((B=i.cfg)==null?void 0:B.fileExplorer.showHidden)??!1}),$e=me(()=>{var B;return((B=i.cfg)==null?void 0:B.fileExplorer.showLineNumbers)??!1});async function Fn(B,K){if(!i.cfg)return;const te=JSON.parse(JSON.stringify(i.cfg));te.fileExplorer[B]=K;try{await i.save(te)}catch(ge){it("file-explorer","saving view option failed",{error:Se(ge)})}}const ci=me(()=>Xf(e.context.terminalThemeId.value)?"light":"dimmed");return(B,K)=>(O(),V("div",U1,[J("div",{class:"fe-body",ref_key:"bodyRef",ref:h},[J("div",{class:"tree-pane",style:mn({width:a.value*100+"%"})},[J("header",K1,[J("span",{class:"root-path",title:b.value??""},Q(b.value??q(n)("plugins.fileExplorer.noActivePaneShort")),9,j1),g.value.sshHostID?(O(),V("button",{key:0,class:"pin","data-test":"ssh-upload",disabled:M.value||!$.value,title:q(n)("plugins.fileExplorer.sshUpload",{dir:$.value??""}),onClick:N},[vi(q(Qf),{size:14,"stroke-width":1.5})],8,G1)):(O(),V("button",{key:1,class:Gi(["pin",{pinned:r.value!==null}]),title:r.value!==null?q(n)("plugins.fileExplorer.unpinFollow"):q(n)("plugins.fileExplorer.pinCurrentCwd"),onClick:Te},[(O(),ke(hn(r.value!==null?q(ou):q(ru)),{size:14,"stroke-width":1.5}))],10,J1))]),f.value.length>0?(O(),V("div",Y1,[ds(J("select",{"onUpdate:modelValue":K[0]||(K[0]=te=>u.value=te),"data-test":"fs-source","aria-label":q(n)("plugins.fileExplorer.sourceLabel")},[J("option",Q1,Q(q(n)("plugins.fileExplorer.sourceActivePane")),1),(O(!0),V(Xt,null,mi(f.value,te=>(O(),V("option",{key:te.id,value:te.id},Q(p(te)),9,Z1))),128))],8,X1),[[_f,u.value]])])):Ie("",!0),J("input",{ref_key:"uploadInput",ref:U,class:"upload-input","data-test":"ssh-upload-input",type:"file",onChange:I},null,544),J("div",ev,[ds(J("input",{"onUpdate:modelValue":K[1]||(K[1]=te=>A.value=te),"data-test":"file-name-search",type:"search",placeholder:q(n)("plugins.fileExplorer.searchFiles"),"aria-label":q(n)("plugins.fileExplorer.searchFiles")},null,8,tv),[[Oa,A.value]])]),J("div",iv,[b.value&&T.value?(O(),ke(Yu,{ref_key:"fileTreeRef",ref:C,key:D.value,fs:T.value,root:b.value,"show-hidden":je.value,"show-line-numbers":$e.value,"search-query":A.value,context:B.context,onFileClicked:G,onFileDoubleClicked:L,onToggleShowHidden:K[2]||(K[2]=te=>Fn("showHidden",te)),onToggleShowLineNumbers:K[3]||(K[3]=te=>Fn("showLineNumbers",te))},null,8,["fs","root","show-hidden","show-line-numbers","search-query","context"])):(O(),V("div",nv,Q(q(n)("plugins.fileExplorer.noActivePane")),1))])],4),J("div",{class:"divider",onMousedown:K[4]||(K[4]=(...te)=>q(c)&&q(c)(...te))},null,32),J("div",sv,[vi(sd,{tabs:x.value.tabs,"active-idx":x.value.activeIdx,"view-mode":De.value,onSelect:R,onCloseRequest:ot,onToggleViewMode:Fe},null,8,["tabs","active-idx","view-mode"]),J("div",rv,[Le.value&&T.value?(O(),ke(M1,{ref_key:"codeEditorRef",ref:ue,key:D.value,fs:T.value,path:Le.value,"show-line-numbers":$e.value,theme:ci.value,"view-mode":De.value,onDirtyChange:Me},null,8,["fs","path","show-line-numbers","theme","view-mode"])):(O(),V("div",ov,Q(q(n)("plugins.fileExplorer.selectFile")),1))])])],512),X.value?(O(),ke(Pa,{key:0,title:q(n)("plugins.fileExplorer.confirmCloseTitle",{name:X.value.name}),buttons:X.value.buttons,onResolve:de},null,8,["title","buttons"])):Ie("",!0)]))}}),av=rt(lv,[["__scopeId","data-v-098631c4"]]),gv=Object.freeze(Object.defineProperty({__proto__:null,default:av},Symbol.toStringTag,{value:"Module"}));export{ai as A,Us as B,Qr as C,re as D,S as E,F,Zt as G,dv as H,he as I,em as J,ac as K,Es as L,nt as M,ee as N,_e as O,Si as P,v as Q,bi as R,oe as S,lt as T,Yi as W,Ng as a,se as b,H as c,gv as d,qe as e,Po as f,am as g,Eo as h,Ke as i,uv as j,rc as k,On as l,bt as m,ne as n,Ae as o,ce as p,Ec as q,vm as r,Ws as s,Ro as t,mm as u,ym as v,xm as w,yc as x,mc as y,Io as z}; +`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new Ly(this):new Dy(this)}getCursor(e,t=0,i){let n=e.doc?e:se.create({doc:e});return i==null&&(i=n.doc.length),this.regexp?Li(this,n,t,i):Oi(this,n,t,i)}}class bf{constructor(e){this.spec=e}}function My(s,e,t){return(i,n,r,o)=>{if(t&&!t(i,n,r,o))return!1;let l=i>=o&&n<=o+r.length?r.slice(i-o,n-o):e.doc.sliceString(i,n);return s(l,e,i,n)}}function Oi(s,e,t,i){let n;return s.wholeWord&&(n=Ty(e.doc,e.charCategorizer(e.selection.main.head))),s.test&&(n=My(s.test,e,n)),new Tn(e.doc,s.unquoted,t,i,s.caseSensitive?void 0:r=>r.toLowerCase(),n)}function Ty(s,e){return(t,i,n,r)=>((r>t||r+n.length=t)return null;n.push(i.value)}return n}highlight(e,t,i,n){let r=Oi(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!r.next().done;)n(r.value.from,r.value.to)}}function Ey(s,e,t){return(i,n,r)=>(!t||t(i,n,r))&&s(r[0],e,i,n)}function Li(s,e,t,i){let n;return s.wholeWord&&(n=Oy(e.charCategorizer(e.selection.main.head))),s.test&&(n=Ey(s.test,e,n)),new mf(e.doc,s.search,{ignoreCase:!s.caseSensitive,test:n},t,i)}function Rs(s,e){return s.slice(Oe(s,e,!1),e)}function Ps(s,e){return s.slice(e,Oe(s,e))}function Oy(s){return(e,t,i)=>!i[0].length||(s(Rs(i.input,i.index))!=Ne.Word||s(Ps(i.input,i.index))!=Ne.Word)&&(s(Ps(i.input,i.index+i[0].length))!=Ne.Word||s(Rs(i.input,i.index+i[0].length))!=Ne.Word)}class Ly extends bf{nextMatch(e,t,i){let n=Li(this.spec,e,i,e.doc.length).next();return n.done&&(n=Li(this.spec,e,0,t).next()),n.done?null:n.value}prevMatchInRange(e,t,i){for(let n=1;;n++){let r=Math.max(t,i-n*1e4),o=Li(this.spec,e,r,i),l=null;for(;!o.next().done;)l=o.value;if(l&&(r==t||l.from>r+10))return l;if(r==t)return null}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,i)=>{if(i=="&")return e.match[0];if(i=="$")return"$";for(let n=i.length;n>0;n--){let r=+i.slice(0,n);if(r>0&&r=t)return null;n.push(i.value)}return n}highlight(e,t,i,n){let r=Li(this.spec,e,Math.max(0,t-250),Math.min(i+250,e.doc.length));for(;!r.next().done;)n(r.value.from,r.value.to)}}const Dn=oe.define(),Go=oe.define(),ei=bt.define({create(s){return new xr(uo(s).create(),null)},update(s,e){for(let t of e.effects)t.is(Dn)?s=new xr(t.value.create(),s.panel):t.is(Go)&&(s=new xr(s.query,t.value?Jo:null));return s},provide:s=>Ms.from(s,e=>e.panel)});class xr{constructor(e,t){this.query=e,this.panel=t}}const By=re.mark({class:"cm-searchMatch"}),Ry=re.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Py=st.fromClass(class{constructor(s){this.view=s,this.decorations=this.highlight(s.state.field(ei))}update(s){let e=s.state.field(ei);(e!=s.startState.field(ei)||s.docChanged||s.selectionSet||s.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:s,panel:e}){if(!e||!s.spec.valid)return re.none;let{view:t}=this,i=new ti;for(let n=0,r=t.visibleRanges,o=r.length;nr[n+1].from-2*250;)a=r[++n].to;s.highlight(t.state,l,a,(h,c)=>{let f=t.state.selection.ranges.some(u=>u.from==h&&u.to==c);i.add(h,c,f?Ry:By)})}return i.finish()}},{decorations:s=>s.decorations});function _n(s){return e=>{let t=e.state.field(ei,!1);return t&&t.query.spec.valid?s(e,t):kf(e)}}const Is=_n((s,{query:e})=>{let{to:t}=s.state.selection.main,i=e.nextMatch(s.state,t,t);if(!i)return!1;let n=S.single(i.from,i.to),r=s.state.facet(Ti);return s.dispatch({selection:n,effects:[Yo(s,i),r.scrollToMatch(n.main,s)],userEvent:"select.search"}),xf(s),!0}),Ns=_n((s,{query:e})=>{let{state:t}=s,{from:i}=t.selection.main,n=e.prevMatch(t,i,i);if(!n)return!1;let r=S.single(n.from,n.to),o=s.state.facet(Ti);return s.dispatch({selection:r,effects:[Yo(s,n),o.scrollToMatch(r.main,s)],userEvent:"select.search"}),xf(s),!0}),Iy=_n((s,{query:e})=>{let t=e.matchAll(s.state,1e3);return!t||!t.length?!1:(s.dispatch({selection:S.create(t.map(i=>S.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),Ny=({state:s,dispatch:e})=>{let t=s.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:i,to:n}=t.main,r=[],o=0;for(let l=new Tn(s.doc,s.sliceDoc(i,n));!l.next().done;){if(r.length>1e3)return!1;l.value.from==i&&(o=r.length),r.push(S.range(l.value.from,l.value.to))}return e(s.update({selection:S.create(r,o),userEvent:"select.search.matches"})),!0},ka=_n((s,{query:e})=>{let{state:t}=s,{from:i,to:n}=t.selection.main;if(t.readOnly)return!1;let r=e.nextMatch(t,i,i);if(!r)return!1;let o=r,l=[],a,h,c=[];o.precise?o.from==i&&o.to==n&&(h=t.toText(e.getReplacement(o)),l.push({from:o.from,to:o.to,insert:h}),o=e.nextMatch(t,o.from,o.to),c.push(H.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(i).number)+"."))):o=e.nextMatch(t,o.from,o.to);let f=s.state.changes(l);return o&&(a=S.single(o.from,o.to).map(f),c.push(Yo(s,o)),c.push(t.facet(Ti).scrollToMatch(a.main,s))),s.dispatch({changes:f,selection:a,effects:c,userEvent:"input.replace"}),!0}),_y=_n((s,{query:e})=>{if(s.state.readOnly)return!1;let t=[];for(let n of e.matchAll(s.state,1e9)){let{from:r,to:o,precise:l}=n;l&&t.push({from:r,to:o,insert:e.getReplacement(n)})}if(!t.length)return!1;let i=s.state.phrase("replaced $ matches",t.length)+".";return s.dispatch({changes:t,effects:H.announce.of(i),userEvent:"input.replace.all"}),!0});function Jo(s){return s.state.facet(Ti).createPanel(s)}function uo(s,e){var t,i,n,r,o;let l=s.selection.main,a=l.empty||l.to>l.from+100?"":s.sliceDoc(l.from,l.to);if(e&&!a)return e;let h=s.facet(Ti);return new vf({search:((t=e==null?void 0:e.literal)!==null&&t!==void 0?t:h.literal)?a:a.replace(/\n/g,"\\n"),caseSensitive:(i=e==null?void 0:e.caseSensitive)!==null&&i!==void 0?i:h.caseSensitive,literal:(n=e==null?void 0:e.literal)!==null&&n!==void 0?n:h.literal,regexp:(r=e==null?void 0:e.regexp)!==null&&r!==void 0?r:h.regexp,wholeWord:(o=e==null?void 0:e.wholeWord)!==null&&o!==void 0?o:h.wholeWord})}function wf(s){let e=Yh(s,Jo);return e&&e.dom.querySelector("[main-field]")}function xf(s){let e=wf(s);e&&e==s.root.activeElement&&e.select()}const kf=s=>{let e=s.state.field(ei,!1);if(e&&e.panel){let t=wf(s);if(t&&t!=s.root.activeElement){let i=uo(s.state,e.query.spec);i.valid&&s.dispatch({effects:Dn.of(i)}),t.focus(),t.select()}}else s.dispatch({effects:[Go.of(!0),e?Dn.of(uo(s.state,e.query.spec)):oe.appendConfig.of(po)]});return!0},Sf=s=>{let e=s.state.field(ei,!1);if(!e||!e.panel)return!1;let t=Yh(s,Jo);return t&&t.dom.contains(s.root.activeElement)&&s.focus(),s.dispatch({effects:Go.of(!1)}),!0},Fy=[{key:"Mod-f",run:kf,scope:"editor search-panel"},{key:"F3",run:Is,shift:Ns,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:Is,shift:Ns,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Sf,scope:"editor search-panel"},{key:"Mod-Shift-l",run:Ny},{key:"Mod-Alt-g",run:xy},{key:"Mod-d",run:Cy,preventDefault:!0}];class Wy{constructor(e){this.view=e;let t=this.query=e.state.field(ei).query.spec;this.commit=this.commit.bind(this),this.searchField=Ee("input",{value:t.search,placeholder:Ze(e,"Find"),"aria-label":Ze(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Ee("input",{value:t.replace,placeholder:Ze(e,"Replace"),"aria-label":Ze(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Ee("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=Ee("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=Ee("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function i(n,r,o){return Ee("button",{class:"cm-button",name:n,onclick:r,type:"button"},o)}this.dom=Ee("div",{onkeydown:n=>this.keydown(n),class:"cm-search"},[this.searchField,i("next",()=>Is(e),[Ze(e,"next")]),i("prev",()=>Ns(e),[Ze(e,"previous")]),i("select",()=>Iy(e),[Ze(e,"all")]),Ee("label",null,[this.caseField,Ze(e,"match case")]),Ee("label",null,[this.reField,Ze(e,"regexp")]),Ee("label",null,[this.wordField,Ze(e,"by word")]),...e.state.readOnly?[]:[Ee("br"),this.replaceField,i("replace",()=>ka(e),[Ze(e,"replace")]),i("replaceAll",()=>_y(e),[Ze(e,"replace all")])],Ee("button",{name:"close",onclick:()=>Sf(e),"aria-label":Ze(e,"close"),type:"button"},["×"])])}commit(){let e=new vf({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:Dn.of(e)}))}keydown(e){xg(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?Ns:Is)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),ka(this.view))}update(e){for(let t of e.transactions)for(let i of t.effects)i.is(Dn)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(Ti).top}}function Ze(s,e){return s.state.phrase(e)}const ns=30,ss=/[\s\.,:;?!]/;function Yo(s,{from:e,to:t}){let i=s.state.doc.lineAt(e),n=s.state.doc.lineAt(t).to,r=Math.max(i.from,e-ns),o=Math.min(n,t+ns),l=s.state.sliceDoc(r,o);if(r!=i.from){for(let a=0;al.length-ns;a--)if(!ss.test(l[a-1])&&ss.test(l[a])){l=l.slice(0,a);break}}return H.announce.of(`${s.state.phrase("current match")}. ${l} ${s.state.phrase("on line")} ${i.number}.`)}const Hy=H.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),po=[ei,On.low(Py),Hy];function Vy(s){const e=s.lastIndexOf("/");return e>=0?s.slice(e+1):s}async function dt(s,e){const[{StreamLanguage:t},i]=await Promise.all([le(()=>Promise.resolve().then(()=>r0),void 0),s]),n=i[e];return t.define(n)}async function $y(s){const e=Vy(s);switch(e){case"Dockerfile":return dt(le(()=>import("./dockerfile-ZL4hHokT.js"),[]),"dockerFile");case"Gemfile":case"Rakefile":return dt(le(()=>import("./ruby-B2Rjki9n.js"),[]),"ruby");case"Makefile":case"GNUmakefile":return dt(le(()=>import("./clike-B9uivgTg.js"),[]),"c")}const t=/\.([A-Za-z0-9]+)$/.exec(e),i=t?t[1].toLowerCase():null;if(!i)return null;switch(i){case"js":case"jsx":case"ts":case"tsx":{const{javascript:n}=await le(async()=>{const{javascript:r}=await import("./index-CZ0p1U99.js");return{javascript:r}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));return n({typescript:i==="ts"||i==="tsx",jsx:i==="jsx"||i==="tsx"})}case"json":{const{json:n}=await le(async()=>{const{json:r}=await import("./index-sMVa0oql.js");return{json:r}},__vite__mapDeps([10,1,3,4,5,6,7,8,9]));return n()}case"md":case"markdown":{const{markdown:n}=await le(async()=>{const{markdown:r}=await import("./index-Ak5-vsum.js");return{markdown:r}},__vite__mapDeps([11,2,12,1,13,3,4,5,6,7,8,9,0]));return n()}case"css":case"scss":{const{css:n}=await le(async()=>{const{css:r}=await import("./index-BSlQSXjR.js");return{css:r}},__vite__mapDeps([13,1,3,4,5,6,7,8,9]));return n()}case"html":case"htm":{const{html:n}=await le(async()=>{const{html:r}=await import("./index-CsH7OxDu.js");return{html:r}},__vite__mapDeps([12,1,13,3,4,5,6,7,8,9,0,2]));return n()}case"py":{const{python:n}=await le(async()=>{const{python:r}=await import("./index-DW5ZYIIZ.js");return{python:r}},__vite__mapDeps([14,1,2,3,4,5,6,7,8,9]));return n()}case"go":{const{go:n}=await le(async()=>{const{go:r}=await import("./index-LsOWRKMa.js");return{go:r}},__vite__mapDeps([15,1,2,3,4,5,6,7,8,9]));return n()}case"rs":{const{rust:n}=await le(async()=>{const{rust:r}=await import("./index-vv_fn0WP.js");return{rust:r}},__vite__mapDeps([16,1,3,4,5,6,7,8,9]));return n()}case"c":case"cc":case"cpp":case"cxx":case"h":case"hpp":case"hh":case"m":case"mm":{const{cpp:n}=await le(async()=>{const{cpp:r}=await import("./index-CH6joGJR.js");return{cpp:r}},__vite__mapDeps([17,1,3,4,5,6,7,8,9]));return n()}case"java":{const{java:n}=await le(async()=>{const{java:r}=await import("./index-Y0PF_oBA.js");return{java:r}},__vite__mapDeps([18,1,3,4,5,6,7,8,9]));return n()}case"php":{const{php:n}=await le(async()=>{const{php:r}=await import("./index-BEPhTiWa.js");return{php:r}},__vite__mapDeps([19,1,12,13,3,4,5,6,7,8,9,0,2]));return n()}case"sql":{const{sql:n}=await le(async()=>{const{sql:r}=await import("./index-hbreRbwz.js");return{sql:r}},__vite__mapDeps([20,1,2,3,4,5,6,7,8,9]));return n()}case"xml":case"xsd":case"xsl":case"plist":case"svg":{const{xml:n}=await le(async()=>{const{xml:r}=await import("./index-hP5cCp4S.js");return{xml:r}},__vite__mapDeps([21,1,3,4,5,6,7,8,9]));return n()}case"yml":case"yaml":{const{yaml:n}=await le(async()=>{const{yaml:r}=await import("./index-CrP2n_El.js");return{yaml:r}},__vite__mapDeps([22,1,3,4,5,6,7,8,9]));return n()}case"vue":{const{vue:n}=await le(async()=>{const{vue:r}=await import("./index-D9YFpvOI.js");return{vue:r}},__vite__mapDeps([23,12,1,13,3,4,5,6,7,8,9,0,2]));return n()}case"sass":{const{sass:n}=await le(async()=>{const{sass:r}=await import("./index-BfmBkV0O.js");return{sass:r}},__vite__mapDeps([24,1,13,3,4,5,6,7,8,9]));return n()}case"sh":case"bash":case"zsh":case"fish":case"ksh":return dt(le(()=>import("./shell-CjFT_Tl9.js"),[]),"shell");case"toml":return dt(le(()=>import("./toml-Bm5Em-hy.js"),[]),"toml");case"rb":return dt(le(()=>import("./ruby-B2Rjki9n.js"),[]),"ruby");case"lua":return dt(le(()=>import("./lua-VAEuO923.js"),[]),"lua");case"ini":case"properties":case"conf":return dt(le(()=>import("./properties-C78fOPTZ.js"),[]),"properties");case"diff":case"patch":return dt(le(()=>import("./diff-DbItnlRl.js"),[]),"diff");case"swift":return dt(le(()=>import("./swift-BzpIVaGY.js"),[]),"swift");case"kt":case"kts":case"scala":return dt(le(()=>import("./clike-B9uivgTg.js"),[]),"kotlin");default:return null}}const zy=Mi.define([{tag:v.keyword,color:"#f47067"},{tag:v.controlKeyword,color:"#f47067"},{tag:v.operatorKeyword,color:"#f47067"},{tag:v.definitionKeyword,color:"#f47067"},{tag:v.modifier,color:"#f47067"},{tag:v.string,color:"#96d0ff"},{tag:v.special(v.string),color:"#96d0ff"},{tag:v.regexp,color:"#96d0ff"},{tag:v.escape,color:"#96d0ff"},{tag:[v.comment,v.lineComment,v.blockComment,v.docComment],color:"#768390",fontStyle:"italic"},{tag:v.number,color:"#6cb6ff"},{tag:v.bool,color:"#6cb6ff"},{tag:v.atom,color:"#6cb6ff"},{tag:v.function(v.variableName),color:"#dcbdfb"},{tag:v.function(v.propertyName),color:"#dcbdfb"},{tag:v.macroName,color:"#dcbdfb"},{tag:v.variableName,color:"#adbac7"},{tag:v.propertyName,color:"#adbac7"},{tag:v.typeName,color:"#ffaf6f"},{tag:v.className,color:"#ffaf6f"},{tag:v.namespace,color:"#ffaf6f"},{tag:v.operator,color:"#f47067"},{tag:v.punctuation,color:"#adbac7"},{tag:v.bracket,color:"#adbac7"},{tag:v.derefOperator,color:"#adbac7"},{tag:v.tagName,color:"#8ddb8c"},{tag:v.attributeName,color:"#dcbdfb"},{tag:v.attributeValue,color:"#96d0ff"},{tag:v.heading,color:"#6cb6ff",fontWeight:"bold"},{tag:v.strong,fontWeight:"bold"},{tag:v.emphasis,fontStyle:"italic"},{tag:v.link,color:"#6cb6ff",textDecoration:"underline"},{tag:v.url,color:"#6cb6ff"},{tag:v.quote,color:"#768390"},{tag:v.monospace,color:"#96d0ff"},{tag:v.invalid,color:"#ff938a"},{tag:v.deleted,color:"#ff938a",backgroundColor:"rgba(244,112,103,0.15)"},{tag:v.inserted,color:"#8ddb8c",backgroundColor:"rgba(141,219,140,0.15)"}]),qy=Mi.define([{tag:v.keyword,color:"#cf222e"},{tag:v.controlKeyword,color:"#cf222e"},{tag:v.operatorKeyword,color:"#cf222e"},{tag:v.definitionKeyword,color:"#cf222e"},{tag:v.modifier,color:"#cf222e"},{tag:v.string,color:"#0a3069"},{tag:v.special(v.string),color:"#0a3069"},{tag:v.regexp,color:"#0a3069"},{tag:v.escape,color:"#0a3069"},{tag:[v.comment,v.lineComment,v.blockComment,v.docComment],color:"#6e7781",fontStyle:"italic"},{tag:v.number,color:"#0550ae"},{tag:v.bool,color:"#0550ae"},{tag:v.atom,color:"#0550ae"},{tag:v.function(v.variableName),color:"#8250df"},{tag:v.function(v.propertyName),color:"#8250df"},{tag:v.macroName,color:"#8250df"},{tag:v.variableName,color:"#24292f"},{tag:v.propertyName,color:"#24292f"},{tag:v.typeName,color:"#953800"},{tag:v.className,color:"#953800"},{tag:v.namespace,color:"#953800"},{tag:v.operator,color:"#cf222e"},{tag:v.punctuation,color:"#24292f"},{tag:v.bracket,color:"#24292f"},{tag:v.derefOperator,color:"#24292f"},{tag:v.tagName,color:"#116329"},{tag:v.attributeName,color:"#8250df"},{tag:v.attributeValue,color:"#0a3069"},{tag:v.heading,color:"#0550ae",fontWeight:"bold"},{tag:v.strong,fontWeight:"bold"},{tag:v.emphasis,fontStyle:"italic"},{tag:v.link,color:"#0969da",textDecoration:"underline"},{tag:v.url,color:"#0969da"},{tag:v.quote,color:"#6e7781"},{tag:v.monospace,color:"#0a3069"},{tag:v.invalid,color:"#82071e"},{tag:v.deleted,color:"#82071e",backgroundColor:"rgba(255,129,130,0.2)"},{tag:v.inserted,color:"#116329",backgroundColor:"rgba(74,194,107,0.2)"}]);function Uy(s){return Ac(s==="light"?qy:zy)}const Ky={class:"file-editor"},jy={key:0,class:"banner err conflict","data-test":"conflict-banner"},Gy={class:"msg"},Jy={key:1,class:"banner err","data-test":"save-error"},Yy={key:2,class:"reload-badge"},Xy={key:3,class:"banner muted"},Qy={key:4,class:"banner muted"},Zy={key:5,class:"banner err"},e1={key:6,class:"banner muted"},Sa=2*1024*1024,t1=Qe({__name:"CodeEditor",props:{fs:{},path:{},showLineNumbers:{type:Boolean},theme:{}},emits:["dirty-change"],setup(s,{expose:e,emit:t}){const{t:i}=Ji(),n=s,r=t,o=j(null),l=j("loading"),a=j(""),h=j(!1),c=j(null),f=j(!1),u=j(null),d=j("");let p=null,g=null,y=!1,b=0,x="";function T(L,R,Z,X,ue){return!y&&b===ue&&n.fs===L&&n.path===R&&n.showLineNumbers===Z&&n.theme===X}function D(L,R){return typeof window>"u"||!o.value?R:getComputedStyle(o.value).getPropertyValue(L).trim()||R}function A(L){let R;if(typeof L=="string"){const Z=atob(L);R=new Uint8Array(Z.length);for(let X=0;XSa){l.value="tooLarge",C(!1);return}const ot=await L.readFile(R,Sa);if(!T(L,R,Z,X,ue))return;const de=A(ot.data);x=de,C(!1),u.value=null,d.value="";const Te=H.updateListener.of($e=>{$e.docChanged&&C($e.state.doc.toString()!==x)}),De=Qr.of([{key:"Mod-s",preventDefault:!0,run:()=>(M(),!0)}]),Fe=[P(X),Uy(X),g0(),Ay({top:!0}),Qr.of([...by,...C0,...Fy]),De,Te];Z&&Fe.push(Ig());const Le=await $y(R);if(Le&&Fe.push(Le),!T(L,R,Z,X,ue)||!o.value)return;const je=new H({state:se.create({doc:de,extensions:Fe}),parent:o.value});if(!T(L,R,Z,X,ue)){je.destroy();return}p=je,l.value="ok"}catch(Me){if(!T(L,R,Z,X,ue))return;l.value="error",a.value=Me.message}}}async function M(){if(!p||l.value!=="ok")return!1;const L=p.state.doc.toString(),R=new TextEncoder().encode(L);d.value="";try{const Z=await n.fs.writeFile(n.path,R,c.value);return x=L,c.value=Z.modTime,h.value=!1,u.value=null,C(!1),!0}catch(Z){const X=Z.message??"",ue=/stale_modtime: current=(\d+)/.exec(X);return ue?u.value={currentModTime:Number(ue[1])}:d.value=X,!1}}async function $(){u.value&&(c.value=u.value.currentModTime,u.value=null,await M())}function N(){u.value=null,U()}async function I(L,R){const Z=n.path,X=b;if(!(!Z.startsWith(R+"/")&&Z!==R))try{const ue=await L.fileMeta(Z);if(y||n.fs!==L||n.path!==Z||b!==X)return;c.value&&ue.modTime>c.value&&(h.value=!0)}catch{}}function G(L){g==null||g(),g=L.onDirChanged(R=>{I(L,R)})}return En(()=>{y=!1,U(),G(n.fs)}),ft(()=>[n.path,n.fs,n.showLineNumbers,n.theme],()=>{U()}),ft(()=>n.fs,L=>G(L)),qt(()=>{y=!0,b++,p==null||p.destroy(),p=null,g&&g()}),e({save:M,testAppend:L=>{p&&p.dispatch({changes:{from:p.state.doc.length,insert:L}})}}),(L,R)=>(O(),V("div",Ky,[u.value?(O(),V("div",jy,[J("span",Gy,Q(q(i)("plugins.fileExplorer.staleModTime")),1),J("button",{"data-test":"conflict-overwrite",onClick:$},Q(q(i)("plugins.fileExplorer.overwrite")),1),J("button",{"data-test":"conflict-reload",onClick:N},Q(q(i)("plugins.fileExplorer.reloadDiscard")),1),J("button",{"data-test":"conflict-cancel",onClick:R[0]||(R[0]=Z=>u.value=null)},Q(q(i)("plugins.fileExplorer.cancel")),1)])):Ie("",!0),d.value?(O(),V("div",Jy,Q(q(i)("plugins.fileExplorer.saveFailed",{message:d.value})),1)):Ie("",!0),h.value?(O(),V("div",Yy,[ps(Q(q(i)("plugins.fileExplorer.fileChanged"))+" ",1),J("button",{onClick:U},Q(f.value?q(i)("plugins.fileExplorer.reloadDiscard"):q(i)("plugins.fileExplorer.reload")),1)])):Ie("",!0),l.value==="tooLarge"?(O(),V("div",Xy,Q(q(i)("plugins.fileExplorer.tooLarge")),1)):l.value==="binary"?(O(),V("div",Qy,Q(q(i)("plugins.fileExplorer.binary")),1)):l.value==="error"?(O(),V("div",Zy,Q(q(i)("plugins.fileExplorer.errorPrefix",{message:a.value})),1)):l.value==="loading"?(O(),V("div",e1,Q(q(i)("common.loading")),1)):Ie("",!0),ds(J("div",{ref_key:"host",ref:o,class:"cm-host"},null,512),[[If,l.value==="ok"]])]))}}),i1=rt(t1,[["__scopeId","data-v-25358a6a"]]),n1={class:"binary-banner"},s1={class:"msg"},r1=Qe({__name:"BinaryBanner",props:{fs:{},path:{},message:{}},setup(s){const e=s,{t}=Ji();async function i(){try{await e.fs.openExternal(e.path)}catch{}}return(n,r)=>(O(),V("div",n1,[J("span",s1,Q(n.message??q(t)("plugins.fileExplorer.unsupportedPreview")),1),J("button",{class:"open-btn",onClick:i},Q(q(t)("plugins.fileExplorer.openInSystem")),1)]))}}),ji=rt(r1,[["__scopeId","data-v-780ce2ee"]]),o1=["data-asset-request","src"],l1=Qe({__name:"ImagePreview",props:{fs:{},path:{},theme:{}},setup(s){const e=s,t=j(""),i=j(0),n=j("fit"),r=j(!1);let o=!0,l=0,a=null;function h(){var d,p;a&&((p=(d=a.fs).revokeAssetUrl)==null||p.call(d,a.path),a=null)}async function c(){var y;const d=e.fs,p=e.path,g=++l;i.value=g,h(),a={fs:d,path:p},t.value="",r.value=!1;try{const b=await d.assetUrlFor(p);if(!o||g!==l||e.fs!==d||e.path!==p){(y=d.revokeAssetUrl)==null||y.call(d,p);return}t.value=b}catch{o&&g===l&&e.fs===d&&e.path===p&&(r.value=!0)}}ft(()=>[e.path,e.fs.identity],()=>{c()},{immediate:!0}),qt(()=>{o=!1,l++,h()});function f(){n.value=n.value==="fit"?"native":"fit"}function u(d){const p=d.currentTarget;!t.value||!p||p.dataset.assetRequest!==String(i.value)||(h(),r.value=!0)}return(d,p)=>r.value?(O(),ke(ji,{key:0,fs:d.fs,path:d.path},null,8,["fs","path"])):(O(),V("div",{key:1,class:Gi(["img-host",n.value])},[(O(),V("img",{key:i.value,"data-asset-request":i.value,src:t.value,alt:"",onClick:f,onError:u},null,40,o1))],2))}}),a1=rt(l1,[["__scopeId","data-v-06adca93"]]),h1={key:1,class:"media-host"},c1=["data-asset-request","src"],f1=["data-asset-request","src"],u1=Qe({__name:"MediaPreview",props:{fs:{},path:{},kind:{}},setup(s){const e=s,t=j(""),i=j(0),n=j(!1);let r=!0,o=0,l=null;function a(){var f,u;l&&((u=(f=l.fs).revokeAssetUrl)==null||u.call(f,l.path),l=null)}async function h(){var p;const f=e.fs,u=e.path,d=++o;i.value=d,a(),l={fs:f,path:u},t.value="",n.value=!1;try{const g=await f.assetUrlFor(u);if(!r||d!==o||e.fs!==f||e.path!==u){(p=f.revokeAssetUrl)==null||p.call(f,u);return}t.value=g}catch{r&&d===o&&e.fs===f&&e.path===u&&(n.value=!0)}}ft(()=>[e.path,e.fs.identity],()=>{h()},{immediate:!0}),qt(()=>{r=!1,o++,a()});function c(f){const u=f.currentTarget;!t.value||!u||u.dataset.assetRequest!==String(i.value)||(a(),n.value=!0)}return(f,u)=>n.value?(O(),ke(ji,{key:0,fs:f.fs,path:f.path},null,8,["fs","path"])):(O(),V("div",h1,[f.kind==="video"?(O(),V("video",{key:i.value,"data-asset-request":i.value,src:t.value,controls:"",preload:"metadata",onError:c},null,40,c1)):(O(),V("audio",{key:i.value,"data-asset-request":i.value,src:t.value,controls:"",preload:"metadata",onError:c},null,40,f1))]))}}),d1=rt(u1,[["__scopeId","data-v-71c6a6ef"]]),p1={key:1,class:"pdf-host"},g1=["data"],m1=Qe({__name:"PdfPreview",props:{fs:{},path:{}},setup(s){const e=s,t=j(""),i=j(!1);let n=!0,r=0,o=null;function l(){var h,c;o&&((c=(h=o.fs).revokeAssetUrl)==null||c.call(h,o.path),o=null)}async function a(){var u;const h=e.fs,c=e.path,f=++r;l(),o={fs:h,path:c},t.value="",i.value=!1;try{const d=await h.assetUrlFor(c);if(!n||f!==r||e.fs!==h||e.path!==c){(u=h.revokeAssetUrl)==null||u.call(h,c);return}t.value=d}catch{n&&f===r&&e.fs===h&&e.path===c&&(i.value=!0)}}return ft(()=>[e.path,e.fs.identity],()=>{a()},{immediate:!0}),qt(()=>{n=!1,r++,l()}),(h,c)=>i.value?(O(),ke(ji,{key:0,fs:h.fs,path:h.path},null,8,["fs","path"])):(O(),V("div",p1,[J("object",{data:t.value,type:"application/pdf"},[vi(ji,{fs:h.fs,path:h.path},null,8,["fs","path"])],8,g1)]))}}),y1=rt(m1,[["__scopeId","data-v-160ee5d7"]]),v1=["innerHTML"],b1={key:2,class:"md-host placeholder"},Ca=2*1024*1024,w1=Qe({__name:"MarkdownPreview",props:{fs:{},path:{},theme:{}},setup(s){const e=s,t=La(),i=j(""),n=j("loading");let r=!1,o=0;function l(f,u,d){return!r&&o===d&&e.fs===f&&e.path===u}function a(f){let u;if(typeof f=="string"){const d=atob(f);u=new Uint8Array(d.length);for(let p=0;pCa){n.value="error";return}const g=await f.readFile(u,Ca);if(!l(f,u,d))return;const y=a(g.data),b=(await le(async()=>{const{default:D}=await import("./index-D8AWWFft.js");return{default:D}},[])).default,T=new b({html:!1,linkify:!0,breaks:!1}).render(y);if(!l(f,u,d))return;i.value=T,n.value="ok"}catch{if(!l(f,u,d))return;n.value="error"}}}function c(f){const u=f.target;if(!u)return;const d=u.closest("a");if(!d)return;const p=d.getAttribute("href")??"";f.preventDefault(),/^(https?|mailto):/i.test(p)&&t.system.openExternalURL(p)}return En(()=>{r=!1,h()}),ft(()=>[e.path,e.fs],()=>{h()}),qt(()=>{r=!0,o++}),(f,u)=>n.value==="error"?(O(),ke(ji,{key:0,fs:f.fs,path:f.path},null,8,["fs","path"])):n.value==="ok"?(O(),V("div",{key:1,class:Gi(["md-host",f.theme]),innerHTML:i.value,onClick:c},null,10,v1)):(O(),V("div",b1,"…"))}}),x1=rt(w1,[["__scopeId","data-v-b84f1c1b"]]),k1={class:"file-editor-host"},S1={key:0,class:"banner err"},C1={key:7,class:"banner muted","data-test":"kind-pending"},A1=Qe({__name:"FileEditor",props:{fs:{},path:{},showLineNumbers:{type:Boolean},theme:{},viewMode:{}},emits:["dirty-change"],setup(s,{expose:e,emit:t}){const i=s,n=t,r=j(null);async function o(){var p,g;return((g=(p=r.value)==null?void 0:p.save)==null?void 0:g.call(p))??Promise.resolve(!1)}e({save:o});const{t:l}=Ji(),a=j(null),h=j("");let c=!1,f=0;function u(p,g,y){return!c&&f===y&&i.fs===p&&i.path===g}async function d(){const p=i.fs,g=i.path,y=++f;a.value=null,h.value="";try{const b=await p.fileMeta(g);if(!u(p,g,y))return;a.value=cd(g,b.isBinary)}catch(b){if(!u(p,g,y))return;h.value=(b==null?void 0:b.message)||String(b)||l("plugins.fileExplorer.unknownError")}}return ft(()=>[i.path,i.fs],()=>{d()},{immediate:!0}),qt(()=>{c=!0,f++}),(p,g)=>(O(),V("div",k1,[h.value?(O(),V("div",S1,Q(q(l)("plugins.fileExplorer.errorPrefix",{message:h.value})),1)):a.value==="code"||(a.value==="svg"||a.value==="markdown")&&p.viewMode==="code"?(O(),ke(i1,{key:1,ref_key:"codeEditorRef",ref:r,fs:p.fs,path:p.path,"show-line-numbers":p.showLineNumbers,theme:p.theme,onDirtyChange:g[0]||(g[0]=y=>n("dirty-change",y))},null,8,["fs","path","show-line-numbers","theme"])):a.value==="image"||a.value==="svg"&&p.viewMode==="render"?(O(),ke(a1,{key:2,fs:p.fs,path:p.path,theme:p.theme},null,8,["fs","path","theme"])):a.value==="markdown"&&p.viewMode==="render"?(O(),ke(x1,{key:3,fs:p.fs,path:p.path,theme:p.theme},null,8,["fs","path","theme"])):a.value==="video"||a.value==="audio"?(O(),ke(d1,{key:4,fs:p.fs,path:p.path,kind:a.value},null,8,["fs","path","kind"])):a.value==="pdf"?(O(),ke(y1,{key:5,fs:p.fs,path:p.path},null,8,["fs","path"])):a.value==="binary-unknown"?(O(),ke(ji,{key:6,fs:p.fs,path:p.path},null,8,["fs","path"])):(O(),V("div",C1,Q(q(l)("common.loading")),1))]))}}),M1=rt(A1,[["__scopeId","data-v-db7692c8"]]);function Aa(s){return/\.(md|markdown)$/i.test(s)?"render":"code"}const T1=8;function kr(s,e,t){const i=Date.now(),n=s.tabs.findIndex(o=>o.path===e);if(n>=0){const o=yi(s);return o.tabs[n].lastActiveAt=i,t==="persistent"&&(o.tabs[n].persistent=!0),o.activeIdx=n,o}if(t==="preview"){const o=s.tabs.findIndex(l=>!l.persistent);if(o>=0){const l=yi(s);return l.tabs[o]={path:e,persistent:!1,lastActiveAt:i,viewMode:Aa(e),dirty:!1},l.activeIdx=o,l}}let r=yi(s);return r.tabs.push({path:e,persistent:t==="persistent",lastActiveAt:i,viewMode:Aa(e),dirty:!1}),r.activeIdx=r.tabs.length-1,r.tabs.length>T1&&(r=E1(r)),r}function D1(s,e){if(e<0||e>=s.tabs.length)return s;const t=yi(s);return t.tabs.splice(e,1),t.tabs.length===0?(t.activeIdx=-1,t):(t.activeIdx=Math.min(e,t.tabs.length-1),t)}function E1(s){const e=s.activeIdx>=0?s.tabs[s.activeIdx].path:null,t=a=>!a.persistent&&a.path!==e,i=s.tabs.filter(t),n=i.length>0?i:s.tabs;let r=n[0];for(const a of n)a.lastActiveAtr.path===e);if(i<0||s.tabs[i].dirty===t)return s;const n=yi(s);return n.tabs[i].dirty=t,n}function yi(s){return{tabs:s.tabs.map(e=>({...e})),activeIdx:s.activeIdx}}function B1(s,e){return{identity:"local",listDir:t=>s.fs.listDir(t),watchDir:t=>s.fs.watchDir(t),unwatchDir:async t=>{if(typeof t!="number")throw new Error("local filesystem watch ID must be a number");await s.fs.unwatchDir(t)},readFile:(t,i)=>s.fs.readFile(t,i),fileMeta:t=>s.fs.fileMeta(t),openExternal:t=>s.fs.openExternal(t),assetUrlFor:t=>Promise.resolve(s.fs.assetUrlFor(t)),onDirChanged:t=>(e==null?void 0:e.on("plugin-fs:dir-changed",i=>{typeof i=="string"&&t(i)}))??(()=>{}),dispose:()=>{},writeFile:(t,i,n)=>s.fs.writeFile(t,Array.from(i),n??0,n===null),createFile:t=>s.fs.createFile(t),rename:(t,i)=>s.fs.rename(t,i),remove:(t,i)=>s.fs.remove(t,i),mkdir:t=>s.fs.mkdir(t),trash:t=>s.fs.trash(t)}}const R1=2*1024*1024,P1=256*1024,Ma=50*1024*1024,Ta="application/octet-stream";function et(s){if(!s.ok)throw new Error(s.error||"remote filesystem request failed");return s}function Cf(s){try{const e=atob(s),t=new Uint8Array(e.length);for(let i=0;iMa)throw new Error("remote asset exceeds the 50 MiB size limit");const X=_1(R);if(I+X.byteLength>Ma)throw new Error("remote asset exceeds the 50 MiB size limit");if(G&&(N=R.contentType||Ta,G=!1),$.push(F1(X)),I+=X.byteLength,R.eof)break;if(X.byteLength===0)throw new Error("remote filesystem response returned an empty non-final chunk")}return URL.createObjectURL(new Blob($,{type:N}))}function A(M){if(l)return Promise.reject(new Error("remote filesystem bridge is disposed"));const $=t.get(M);if($)return Promise.resolve($);const N=n.get(M)??0,I=i.get(M);if((I==null?void 0:I.generation)===N)return I.promise;const G=D(M).then(R=>{if(l)throw URL.revokeObjectURL(R),new Error("remote filesystem bridge is disposed");if((n.get(M)??0)!==N)throw URL.revokeObjectURL(R),new Error("remote filesystem asset request was invalidated");return t.set(M,R),R});i.set(M,{generation:N,promise:G});const L=()=>{var R;((R=i.get(M))==null?void 0:R.promise)===G&&i.delete(M)};return G.then(L,L),G}function P(M){n.set(M,(n.get(M)??0)+1);const $=t.get(M);$&&(URL.revokeObjectURL($),t.delete(M))}function C(M){if(l)return()=>{};const $={handler:M};return r.add($),o||(o=s.onFSEvent(N=>{if(!(l||N.event!=="changed"||!N.path))for(const{handler:I}of Array.from(r))try{I(N.path)}catch(G){it("file-explorer","dir-changed subscriber threw",{path:N.path,error:Se(G)})}})),()=>{r.delete($),r.size===0&&o&&(o(),o=null)}}function U(){if(!l){l=!0;for(const M of t.values())URL.revokeObjectURL(M);t.clear(),i.clear(),n.clear(),r.clear(),o&&(o(),o=null)}}return{identity:e,listDir:a,watchDir:h,unwatchDir:c,readFile:f,fileMeta:u,openExternal:d,assetUrlFor:A,onDirChanged:C,revokeAssetUrl:P,dispose:U,writeFile:p,createFile:g,rename:y,remove:b,mkdir:x,trash:T}}function _1(s){if(typeof s.data!="string")throw new Error("remote filesystem response chunk missing data");if(!Number.isSafeInteger(s.length)||s.length<0)throw new Error("remote filesystem response chunk has invalid length");const e=Cf(s.data);if(s.length!==e.byteLength)throw new Error("remote filesystem response chunk length does not match data");return e}function F1(s){const e=new Uint8Array(s.byteLength);return e.set(s),e.buffer}const W1=2*1024*1024,H1="/",V1="already_exists",$1="no platform trash command available",z1=200;function Da(s){return _s("plugins.fileExplorer.sshNoRecursiveDelete",{path:s})}function Ea(s){return Promise.reject(new Error(_s(`plugins.fileExplorer.${s}`)))}function rs(s,e){const t=Se(e);return t.includes(V1)?new Error(_s("plugins.fileExplorer.sshUploadExists",{path:s})):new Error(t)}function q1(s){let e=!1;function t(){if(e)throw new Error(_s("plugins.fileExplorer.sshBridgeDisposed"))}async function i(d){t();const p=await Gf(s,d);return{entries:p.entries??[],truncated:!!p.truncated,total:p.total??(p.entries??[]).length}}async function n(d){return(await i(d)).entries}async function r(d){return t(),await jf(s,d)}async function o(d,p=W1){return t(),await Kf(s,d,p)}async function l(d,p,g){t();try{return await Uf(s,d,p,g??0,g===null)}catch(y){throw rs(d,y)}}async function a(d){t();try{return await qf(s,d)}catch(p){throw rs(d,p)}}async function h(d){t();try{return await zf(s,d)}catch(p){throw rs(d,p)}}async function c(d,p){t();try{return await $f(s,d,p)}catch(g){throw rs(p,g)}}async function f(d,p){if(t(),p)throw new Error(Da(d));await Vf(s,d,!1)}function u(){if(!e){e=!0;try{Hf(s).catch(d=>{it("file-explorer","releasing the ssh file source failed",{hostID:s,error:Se(d)})})}catch(d){it("file-explorer","releasing the ssh file source failed",{hostID:s,error:Se(d)})}}}return{identity:`ssh:${s}`,searchMaxDirs:z1,dirRemovalRefusal:Da,listDir:n,listDirDetailed:i,fileMeta:r,readFile:o,writeFile:l,createFile:a,mkdir:h,rename:c,remove:f,watchDir:()=>Promise.resolve(`ssh:${s}`),unwatchDir:()=>Promise.resolve(),onDirChanged:()=>()=>{},openExternal:()=>Ea("sshNoOpenExternal"),assetUrlFor:()=>Ea("sshNoInlineAsset"),trash:()=>Promise.reject(new Error($1)),dispose:u}}const U1={class:"file-explorer"},K1={class:"fe-header"},j1=["title"],G1=["disabled","title"],J1=["title"],Y1={key:0,class:"source-picker"},X1=["aria-label"],Q1={value:""},Z1=["value"],ev={class:"tree-search"},tv=["placeholder","aria-label"],iv={class:"tree-scroll"},nv={key:1,class:"placeholder"},sv={class:"editor-pane"},rv={class:"editor-area"},ov={key:1,class:"placeholder"},lv=Qe({__name:"FileExplorer",props:{context:{}},setup(s){const e=s,t=La(),i=Jf(),{t:n}=Ji(),r=j(null),o=me(()=>{var B;return((B=i.cfg)==null?void 0:B.fileExplorer.innerTreeRatio)??.3}),l=j(null),a=me(()=>l.value??o.value),h=j(null),{onMouseDown:c}=Zf({onDrag:B=>{if(!h.value)return;const K=h.value.clientWidth;if(K<=0)return;const te=l.value??o.value,ge=Math.max(.15,Math.min(te-B/K,.5));l.value=ge},onEnd:()=>{if(l.value===null||!i.cfg){l.value=null;return}const B=JSON.parse(JSON.stringify(i.cfg));B.fileExplorer.innerTreeRatio=l.value,i.save(B),l.value=null}}),f=j([]),u=j("");async function d(){if(t.pluginHost)try{f.value=await eu()??[]}catch(B){it("file-explorer","ssh sources unavailable",{error:Se(B)}),f.value=[]}}d();function p(B){return B.alias||`${B.user}@${B.host}`}const g=me(()=>{if(u.value)return{identity:`ssh:${u.value}`,connection:null,sshHostID:u.value};if(!e.context.activeIsRemote.value)return{identity:t.pluginHost?"local":null,connection:null,sshHostID:""};const B=e.context.activeSessionId.value,K=e.context.activeSessionConnection.value;return{identity:B&&K?`remote:${B}`:null,connection:K,sshHostID:""}}),y=j({});ft(()=>[e.context.activeCwd.value,g.value.identity,g.value.sshHostID],([B,K,te])=>{B&&K&&!te&&(y.value={...y.value,[K]:B})},{immediate:!0});const b=me(()=>{if(g.value.sshHostID)return H1;if(r.value)return r.value;const B=e.context.activeCwd.value;if(B)return B;const K=g.value.identity;return K?y.value[K]??null:null}),x=j({tabs:[],activeIdx:-1}),T=Nf(null),D=j(0),A=j("");ft(()=>[g.value.identity,g.value.connection,g.value.sshHostID],async([B,K,te])=>{var St;const ge=te?q1(te):B==="local"?t.pluginHost?B1(t.pluginHost,t.events):null:B&&K?N1(K,B):null,ve=T.value,kt=(ve==null?void 0:ve.identity)!==(ge==null?void 0:ge.identity);T.value=ge,D.value++,kt&&(r.value=null,x.value={tabs:[],activeIdx:-1},A.value=""),await us(),(St=ve==null?void 0:ve.dispose)==null||St.call(ve)},{immediate:!0}),qt(()=>{var B,K;(K=(B=T.value)==null?void 0:B.dispose)==null||K.call(B),T.value=null});const P=Yf(),C=j(null),U=j(null),M=j(!1),$=me(()=>{var B;return((B=C.value)==null?void 0:B.selectedDir)??b.value});function N(){var B;(B=U.value)==null||B.click()}async function I(B){var kt,St,en;const K=B.target,te=((kt=K.files)==null?void 0:kt[0])??null;K.value="";const ge=T.value,ve=$.value;if(!(!te||!ge||!ve)){M.value=!0;try{const It=new Uint8Array(await te.arrayBuffer()),Wn=ve.endsWith("/")?ve+te.name:`${ve}/${te.name}`;await ge.writeFile(Wn,It,null),e.context.showToast(n("plugins.fileExplorer.sshUploadDone",{name:te.name,dir:ve})),(en=(St=C.value)==null?void 0:St.refreshDir)==null||en.call(St,ve)}catch(It){e.context.showToast(Se(It)),it("file-explorer","ssh upload failed",{error:Se(It)})}finally{M.value=!1}}}ft(()=>P.pending,async B=>{var te;if(!B||!T.value)return;await us(),(await((te=C.value)==null?void 0:te.revealPath(B))??!1)&&(x.value=kr(x.value,B,"preview")),P.consume()},{immediate:!0});function G(B){x.value=kr(x.value,B,"preview")}function L(B){x.value=kr(x.value,B,"persistent")}function R(B){x.value={...x.value,activeIdx:B}}function Z(B){x.value=D1(x.value,B)}const X=j(null),ue=j(null);function Me(B){const K=Le.value;K&&(x.value=L1(x.value,K,B))}async function ot(B){const K=x.value.tabs[B];if(!(K!=null&&K.dirty)){Z(B);return}X.value={idx:B,name:K.path.split("/").pop()??K.path,buttons:[{id:"save",label:n("plugins.fileExplorer.save"),kind:"primary"},{id:"dontSave",label:n("plugins.fileExplorer.dontSave"),kind:"danger"},{id:"cancel",label:n("plugins.fileExplorer.cancel"),kind:"secondary"}]}}async function de(B){var ge,ve;const K=X.value;if(X.value=null,!K||B==="cancel")return;if(B==="dontSave"){Z(K.idx);return}(await((ve=(ge=ue.value)==null?void 0:ge.save)==null?void 0:ve.call(ge))??!1)&&Z(K.idx)}function Te(){r.value=r.value===null?e.context.activeCwd.value:null}const De=me(()=>{const B=x.value.activeIdx;return B>=0?x.value.tabs[B].viewMode:"code"});function Fe(){x.value=O1(x.value,De.value==="code"?"render":"code")}const Le=me(()=>x.value.activeIdx>=0?x.value.tabs[x.value.activeIdx].path:null),je=me(()=>{var B;return((B=i.cfg)==null?void 0:B.fileExplorer.showHidden)??!1}),$e=me(()=>{var B;return((B=i.cfg)==null?void 0:B.fileExplorer.showLineNumbers)??!1});async function Fn(B,K){if(!i.cfg)return;const te=JSON.parse(JSON.stringify(i.cfg));te.fileExplorer[B]=K;try{await i.save(te)}catch(ge){it("file-explorer","saving view option failed",{error:Se(ge)})}}const ci=me(()=>Xf(e.context.terminalThemeId.value)?"light":"dimmed");return(B,K)=>(O(),V("div",U1,[J("div",{class:"fe-body",ref_key:"bodyRef",ref:h},[J("div",{class:"tree-pane",style:mn({width:a.value*100+"%"})},[J("header",K1,[J("span",{class:"root-path",title:b.value??""},Q(b.value??q(n)("plugins.fileExplorer.noActivePaneShort")),9,j1),g.value.sshHostID?(O(),V("button",{key:0,class:"pin","data-test":"ssh-upload",disabled:M.value||!$.value,title:q(n)("plugins.fileExplorer.sshUpload",{dir:$.value??""}),onClick:N},[vi(q(Qf),{size:14,"stroke-width":1.5})],8,G1)):(O(),V("button",{key:1,class:Gi(["pin",{pinned:r.value!==null}]),title:r.value!==null?q(n)("plugins.fileExplorer.unpinFollow"):q(n)("plugins.fileExplorer.pinCurrentCwd"),onClick:Te},[(O(),ke(hn(r.value!==null?q(ou):q(ru)),{size:14,"stroke-width":1.5}))],10,J1))]),f.value.length>0?(O(),V("div",Y1,[ds(J("select",{"onUpdate:modelValue":K[0]||(K[0]=te=>u.value=te),"data-test":"fs-source","aria-label":q(n)("plugins.fileExplorer.sourceLabel")},[J("option",Q1,Q(q(n)("plugins.fileExplorer.sourceActivePane")),1),(O(!0),V(Xt,null,mi(f.value,te=>(O(),V("option",{key:te.id,value:te.id},Q(p(te)),9,Z1))),128))],8,X1),[[_f,u.value]])])):Ie("",!0),J("input",{ref_key:"uploadInput",ref:U,class:"upload-input","data-test":"ssh-upload-input",type:"file",onChange:I},null,544),J("div",ev,[ds(J("input",{"onUpdate:modelValue":K[1]||(K[1]=te=>A.value=te),"data-test":"file-name-search",type:"search",placeholder:q(n)("plugins.fileExplorer.searchFiles"),"aria-label":q(n)("plugins.fileExplorer.searchFiles")},null,8,tv),[[Oa,A.value]])]),J("div",iv,[b.value&&T.value?(O(),ke(Yu,{ref_key:"fileTreeRef",ref:C,key:D.value,fs:T.value,root:b.value,"show-hidden":je.value,"show-line-numbers":$e.value,"search-query":A.value,context:B.context,onFileClicked:G,onFileDoubleClicked:L,onToggleShowHidden:K[2]||(K[2]=te=>Fn("showHidden",te)),onToggleShowLineNumbers:K[3]||(K[3]=te=>Fn("showLineNumbers",te))},null,8,["fs","root","show-hidden","show-line-numbers","search-query","context"])):(O(),V("div",nv,Q(q(n)("plugins.fileExplorer.noActivePane")),1))])],4),J("div",{class:"divider",onMousedown:K[4]||(K[4]=(...te)=>q(c)&&q(c)(...te))},null,32),J("div",sv,[vi(sd,{tabs:x.value.tabs,"active-idx":x.value.activeIdx,"view-mode":De.value,onSelect:R,onCloseRequest:ot,onToggleViewMode:Fe},null,8,["tabs","active-idx","view-mode"]),J("div",rv,[Le.value&&T.value?(O(),ke(M1,{ref_key:"codeEditorRef",ref:ue,key:D.value,fs:T.value,path:Le.value,"show-line-numbers":$e.value,theme:ci.value,"view-mode":De.value,onDirtyChange:Me},null,8,["fs","path","show-line-numbers","theme","view-mode"])):(O(),V("div",ov,Q(q(n)("plugins.fileExplorer.selectFile")),1))])])],512),X.value?(O(),ke(Pa,{key:0,title:q(n)("plugins.fileExplorer.confirmCloseTitle",{name:X.value.name}),buttons:X.value.buttons,onResolve:de},null,8,["title","buttons"])):Ie("",!0)]))}}),av=rt(lv,[["__scopeId","data-v-098631c4"]]),gv=Object.freeze(Object.defineProperty({__proto__:null,default:av},Symbol.toStringTag,{value:"Module"}));export{ai as A,Us as B,Qr as C,re as D,S as E,F,Zt as G,dv as H,he as I,em as J,ac as K,Es as L,nt as M,ee as N,_e as O,Si as P,v as Q,bi as R,oe as S,lt as T,Yi as W,Ng as a,se as b,H as c,gv as d,qe as e,Po as f,am as g,Eo as h,Ke as i,uv as j,rc as k,On as l,bt as m,ne as n,Ae as o,ce as p,Ec as q,vm as r,Ws as s,Ro as t,mm as u,ym as v,xm as w,yc as x,mc as y,Io as z}; diff --git a/internal/relay/web-dist/assets/index-MXpsJk3L.js b/internal/relay/web-dist/assets/index-Ak5-vsum.js similarity index 99% rename from internal/relay/web-dist/assets/index-MXpsJk3L.js rename to internal/relay/web-dist/assets/index-Ak5-vsum.js index 5a7a37d4..5eb102d9 100644 --- a/internal/relay/web-dist/assets/index-MXpsJk3L.js +++ b/internal/relay/web-dist/assets/index-Ak5-vsum.js @@ -1,4 +1,4 @@ -import{k as st,i as Q,N as v,T as it,h as Ee,J as Ie,p as H,H as ot,Q as m,g as fe,l as at,C as lt,y as ht,O as X,E as P,s as z,e as ft,B as ut,t as dt,b as pt,x as Me,z as ct,G as mt,c as gt,f as ue,P as kt}from"./FileExplorer-BsSESYjF.js";import{C as Lt}from"./index-CMJgXADN.js";import{html as bt,htmlCompletionSource as wt}from"./index-BJe4IiST.js";import"./useI18n-CnvN0FfF.js";import"./index-C93ksU7R.js";import"./prefsSync-D8z1rJ8H.js";import"./client-2UEf7AK8.js";import"./Switch-CpxGRRqY.js";import"./auth-Dhl8fEWW.js";import"./index-CPhFc1xe.js";import"./index-p_CjDrxf.js";import"./index-Dchib396.js";class _{static create(e,r,n,s,i){let o=s+(s<<8)+e+(r<<4)|0;return new _(e,r,n,o,i,[],[])}constructor(e,r,n,s,i,o,a){this.type=e,this.value=r,this.from=n,this.hash=s,this.end=i,this.children=o,this.positions=a,this.hashProp=[[v.contextHash,s]]}addChild(e,r){e.prop(v.contextHash)!=this.hash&&(e=new H(e.type,e.children,e.positions,e.length,this.hashProp)),this.children.push(e),this.positions.push(r)}toTree(e,r=this.end){let n=this.children.length-1;return n>=0&&(r=Math.max(r,this.positions[n]+this.children[n].length+this.from)),new H(e.types[this.type],this.children,this.positions,r-this.from).balance({makeTree:(s,i,o)=>new H(Q.none,s,i,o,this.hashProp)})}}var u;(function(t){t[t.Document=1]="Document",t[t.CodeBlock=2]="CodeBlock",t[t.FencedCode=3]="FencedCode",t[t.Blockquote=4]="Blockquote",t[t.HorizontalRule=5]="HorizontalRule",t[t.BulletList=6]="BulletList",t[t.OrderedList=7]="OrderedList",t[t.ListItem=8]="ListItem",t[t.ATXHeading1=9]="ATXHeading1",t[t.ATXHeading2=10]="ATXHeading2",t[t.ATXHeading3=11]="ATXHeading3",t[t.ATXHeading4=12]="ATXHeading4",t[t.ATXHeading5=13]="ATXHeading5",t[t.ATXHeading6=14]="ATXHeading6",t[t.SetextHeading1=15]="SetextHeading1",t[t.SetextHeading2=16]="SetextHeading2",t[t.HTMLBlock=17]="HTMLBlock",t[t.LinkReference=18]="LinkReference",t[t.Paragraph=19]="Paragraph",t[t.CommentBlock=20]="CommentBlock",t[t.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",t[t.Escape=22]="Escape",t[t.Entity=23]="Entity",t[t.HardBreak=24]="HardBreak",t[t.Emphasis=25]="Emphasis",t[t.StrongEmphasis=26]="StrongEmphasis",t[t.Link=27]="Link",t[t.Image=28]="Image",t[t.InlineCode=29]="InlineCode",t[t.HTMLTag=30]="HTMLTag",t[t.Comment=31]="Comment",t[t.ProcessingInstruction=32]="ProcessingInstruction",t[t.Autolink=33]="Autolink",t[t.HeaderMark=34]="HeaderMark",t[t.QuoteMark=35]="QuoteMark",t[t.ListMark=36]="ListMark",t[t.LinkMark=37]="LinkMark",t[t.EmphasisMark=38]="EmphasisMark",t[t.CodeMark=39]="CodeMark",t[t.CodeText=40]="CodeText",t[t.CodeInfo=41]="CodeInfo",t[t.LinkTitle=42]="LinkTitle",t[t.LinkLabel=43]="LinkLabel",t[t.URL=44]="URL"})(u||(u={}));class St{constructor(e,r){this.start=e,this.content=r,this.marks=[],this.parsers=[]}}class Ct{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return R(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(e,r=0,n=0){for(let s=r;s=e.stack[r.depth+1].value+r.baseIndent)return!0;if(r.indent>=r.baseIndent+4)return!1;let n=(t.type==u.OrderedList?oe:ie)(r,e,!1);return n>0&&(t.type!=u.BulletList||se(r,e,!1)<0)&&r.text.charCodeAt(r.pos+n-1)==t.value}const He={[u.Blockquote](t,e,r){return r.next!=62?!1:(r.markers.push(k(u.QuoteMark,e.lineStart+r.pos,e.lineStart+r.pos+1)),r.moveBase(r.pos+(A(r.text.charCodeAt(r.pos+1))?2:1)),t.end=e.lineStart+r.text.length,!0)},[u.ListItem](t,e,r){return r.indent-1?!1:(r.moveBaseColumn(r.baseIndent+t.value),!0)},[u.OrderedList]:de,[u.BulletList]:de,[u.Document](){return!0}};function A(t){return t==32||t==9||t==10||t==13}function R(t,e=0){for(;er&&A(t.charCodeAt(e-1));)e--;return e}function Pe(t){if(t.next!=96&&t.next!=126)return-1;let e=t.pos+1;for(;e-1&&t.depth==e.stack.length&&e.parser.leafBlockParsers.indexOf(De.SetextHeading)>-1||n<3?-1:1}function Ne(t,e){for(let r=t.stack.length-1;r>=0;r--)if(t.stack[r].type==e)return!0;return!1}function ie(t,e,r){return(t.next==45||t.next==43||t.next==42)&&(t.pos==t.text.length-1||A(t.text.charCodeAt(t.pos+1)))&&(!r||Ne(e,u.BulletList)||t.skipSpace(t.pos+2)=48&&s<=57;){n++;if(n==t.text.length)return-1;s=t.text.charCodeAt(n)}return n==t.pos||n>t.pos+9||s!=46&&s!=41||nt.pos+1||t.next!=49)?-1:n+1-t.pos}function ye(t){if(t.next!=35)return-1;let e=t.pos+1;for(;e6?-1:r}function Oe(t){if(t.next!=45&&t.next!=61||t.indent>=t.baseIndent+4)return-1;let e=t.pos+1;for(;e/,Te=/\?>/,ee=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/,Te=/\?>/,ee=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),v=Se.configure({wrap:ue(fe,ge)});function Rt(e={}){let a="",r;e.matchClosingTags===!1&&(a="noMatch"),e.selfClosingTags===!0&&(a=(a?a+" ":"")+"selfClosing"),(e.nestedLanguages&&e.nestedLanguages.length||e.nestedAttributes&&e.nestedAttributes.length)&&(r=ue((e.nestedLanguages||[]).concat(fe),(e.nestedAttributes||[]).concat(ge)));let l=r?Se.configure({wrap:r,dialect:a}):a?v.configure({dialect:a}):v;return new xe(l,[v.data.of({autocomplete:xt(e)}),e.autoCloseTags!==!1?yt:[],Qe().support,qe().support])}const H=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),yt=Xe.inputHandler.of((e,a,r,l,t)=>{if(e.composing||e.state.readOnly||a!=r||l!=">"&&l!="/"||!v.isActiveAt(e.state,a,-1))return!1;let s=t(),{state:o}=s,i=o.changeByRange(u=>{var f,p,d;let m=o.doc.sliceString(u.from-1,u.to)==l,{head:O}=u,c=K(o).resolveInner(O,-1),S;if(m&&l==">"&&c.name=="EndTag"){let h=c.parent;if(((p=(f=h.parent)===null||f===void 0?void 0:f.lastChild)===null||p===void 0?void 0:p.name)!="CloseTag"&&(S=P(o.doc,h.parent,O))&&!H.has(S)){let T=O+(o.doc.sliceString(O,O+1)===">"?1:0),w=``;return{range:u,changes:{from:O,to:T,insert:w}}}}else if(m&&l=="/"&&c.name=="IncompleteCloseTag"){let h=c.parent;if(c.from==O-2&&((d=h.lastChild)===null||d===void 0?void 0:d.name)!="CloseTag"&&(S=P(o.doc,h,O))&&!H.has(S)){let T=O+(o.doc.sliceString(O,O+1)===">"?1:0),w=`${S}>`;return{range:$e.cursor(O+w.length,-1),changes:{from:O,to:T,insert:w}}}}return{range:u}});return i.changes.empty?!1:(e.dispatch([s,o.update(i,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});export{yt as autoCloseTags,Rt as html,Mt as htmlCompletionSource,xt as htmlCompletionSourceWith,v as htmlLanguage}; +import{L as be,E as $,C as he}from"./index-q_Op_mkr.js";import{H as Te,J as Pe,Q as b,g as xe,L as Ve,z as ye,x as we,q as ve,c as Xe,O as K,E as $e}from"./FileExplorer-BGCt84ef.js";import{cssLanguage as J,css as qe}from"./index-BSlQSXjR.js";import{typescriptLanguage as _e,jsxLanguage as Ce,tsxLanguage as ke,javascriptLanguage as M,javascript as Qe}from"./index-CZ0p1U99.js";import"./useI18n-CnvN0FfF.js";import"./index-BH9vIdLD.js";import"./prefsSync-D8z1rJ8H.js";import"./client-2UEf7AK8.js";import"./Switch-CpxGRRqY.js";import"./auth-Dhl8fEWW.js";import"./index-Bc7PlSwi.js";const Ae=55,Ye=1,Me=56,Re=2,Ee=57,Ze=3,z=4,Be=5,R=6,ee=7,te=8,ae=9,le=10,ze=11,De=12,We=13,q=58,Ne=14,Ge=15,D=59,re=21,Ie=23,ne=24,je=25,A=27,se=28,Ue=29,Le=32,Fe=35,He=37,Ke=38,Je=0,et=1,tt={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},at={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},W={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function lt(e){return e==45||e==46||e==58||e>=65&&e<=90||e==95||e>=97&&e<=122||e>=161}let N=null,G=null,I=0;function Y(e,a){let r=e.pos+a;if(I==r&&G==e)return N;let l=e.peek(a),t="";for(;lt(l);)t+=String.fromCharCode(l),l=e.peek(++a);return G=e,I=r,N=t?t.toLowerCase():l==rt||l==nt?void 0:null}const oe=60,X=62,E=47,rt=63,nt=33,st=45;function j(e,a){this.name=e,this.parent=a}const ot=[R,le,ee,te,ae],it=new he({start:null,shift(e,a,r,l){return ot.indexOf(a)>-1?new j(Y(l,1)||"",e):e},reduce(e,a){return a==re&&e?e.parent:e},reuse(e,a,r,l){let t=a.type.id;return t==R||t==He?new j(Y(l,1)||"",e):e},strict:!1}),ut=new $((e,a)=>{if(e.next!=oe){e.next<0&&a.context&&e.acceptToken(q);return}e.advance();let r=e.next==E;r&&e.advance();let l=Y(e,0);if(l===void 0)return;if(!l)return e.acceptToken(r?Ge:Ne);let t=a.context?a.context.name:null;if(r){if(l==t)return e.acceptToken(ze);if(t&&at[t])return e.acceptToken(q,-2);if(a.dialectEnabled(Je))return e.acceptToken(De);for(let s=a.context;s;s=s.parent)if(s.name==l)return;e.acceptToken(We)}else{if(l=="script")return e.acceptToken(ee);if(l=="style")return e.acceptToken(te);if(l=="textarea")return e.acceptToken(ae);if(tt.hasOwnProperty(l))return e.acceptToken(le);t&&W[t]&&W[t][l]?e.acceptToken(q,-1):e.acceptToken(R)}},{contextual:!0}),Ot=new $(e=>{for(let a=0,r=0;;r++){if(e.next<0){r&&e.acceptToken(D);break}if(e.next==st)a++;else if(e.next==X&&a>=2){r>=3&&e.acceptToken(D,-2);break}else a=0;e.advance()}});function dt(e){for(;e;e=e.parent)if(e.name=="svg"||e.name=="math")return!0;return!1}const ct=new $((e,a)=>{if(e.next==E&&e.peek(1)==X){let r=a.dialectEnabled(et)||dt(a.context);e.acceptToken(r?Be:z,2)}else e.next==X&&e.acceptToken(z,1)});function Z(e,a,r){let l=2+e.length;return new $(t=>{for(let s=0,o=0,i=0;;i++){if(t.next<0){i&&t.acceptToken(a);break}if(s==0&&t.next==oe||s==1&&t.next==E||s>=2&&so?t.acceptToken(a,-o):t.acceptToken(r,-(o-2));break}else if((t.next==10||t.next==13)&&i){t.acceptToken(a,1);break}else s=o=0;t.advance()}})}const pt=Z("script",Ae,Ye),mt=Z("style",Me,Re),ft=Z("textarea",Ee,Ze),gt=Pe({"Text RawText IncompleteTag IncompleteCloseTag":b.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":b.angleBracket,TagName:b.tagName,"MismatchedCloseTag/TagName":[b.tagName,b.invalid],AttributeName:b.attributeName,"AttributeValue UnquotedAttributeValue":b.attributeValue,Is:b.definitionOperator,"EntityReference CharacterReference":b.character,Comment:b.blockComment,ProcessingInst:b.processingInstruction,DoctypeDecl:b.documentMeta}),St=be.deserialize({version:14,states:",xOVO!rOOO!ZQ#tO'#CrO!`Q#tO'#C{O!eQ#tO'#DOO!jQ#tO'#DRO!oQ#tO'#DTO!tOaO'#CqO#PObO'#CqO#[OdO'#CqO$kO!rO'#CqOOO`'#Cq'#CqO$rO$fO'#DUO$zQ#tO'#DWO%PQ#tO'#DXOOO`'#Dl'#DlOOO`'#DZ'#DZQVO!rOOO%UQ&rO,59^O%aQ&rO,59gO%lQ&rO,59jO%wQ&rO,59mO&SQ&rO,59oOOOa'#D_'#D_O&_OaO'#CyO&jOaO,59]OOOb'#D`'#D`O&rObO'#C|O&}ObO,59]OOOd'#Da'#DaO'VOdO'#DPO'bOdO,59]OOO`'#Db'#DbO'jO!rO,59]O'qQ#tO'#DSOOO`,59],59]OOOp'#Dc'#DcO'vO$fO,59pOOO`,59p,59pO(OQ#|O,59rO(TQ#|O,59sOOO`-E7X-E7XO(YQ&rO'#CtOOQW'#D['#D[O(hQ&rO1G.xOOOa1G.x1G.xOOO`1G/Z1G/ZO(sQ&rO1G/ROOOb1G/R1G/RO)OQ&rO1G/UOOOd1G/U1G/UO)ZQ&rO1G/XOOO`1G/X1G/XO)fQ&rO1G/ZOOOa-E7]-E7]O)qQ#tO'#CzOOO`1G.w1G.wOOOb-E7^-E7^O)vQ#tO'#C}OOOd-E7_-E7_O){Q#tO'#DQOOO`-E7`-E7`O*QQ#|O,59nOOOp-E7a-E7aOOO`1G/[1G/[OOO`1G/^1G/^OOO`1G/_1G/_O*VQ,UO,59`OOQW-E7Y-E7YOOOa7+$d7+$dOOO`7+$u7+$uOOOb7+$m7+$mOOOd7+$p7+$pOOO`7+$s7+$sO*bQ#|O,59fO*gQ#|O,59iO*lQ#|O,59lOOO`1G/Y1G/YO*qO7[O'#CwO+SOMhO'#CwOOQW1G.z1G.zOOO`1G/Q1G/QOOO`1G/T1G/TOOO`1G/W1G/WOOOO'#D]'#D]O+eO7[O,59cOOQW,59c,59cOOOO'#D^'#D^O+vOMhO,59cOOOO-E7Z-E7ZOOQW1G.}1G.}OOOO-E7[-E7[",stateData:",c~O!_OS~OUSOVPOWQOXROYTO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O|_O!eZO~OgaO~OgbO~OgcO~OgdO~OgeO~O!XfOPmP![mP~O!YiOQpP![pP~O!ZlORsP![sP~OUSOVPOWQOXROYTOZqO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O!eZO~O![rO~P#gO!]sO!fuO~OgvO~OgwO~OS|OT}OiyO~OS!POT}OiyO~OS!ROT}OiyO~OS!TOT}OiyO~OS}OT}OiyO~O!XfOPmX![mX~OP!WO![!XO~O!YiOQpX![pX~OQ!ZO![!XO~O!ZlORsX![sX~OR!]O![!XO~O![!XO~P#gOg!_O~O!]sO!f!aO~OS!bO~OS!cO~Oj!dOShXThXihX~OS!fOT!gOiyO~OS!hOT!gOiyO~OS!iOT!gOiyO~OS!jOT!gOiyO~OS!gOT!gOiyO~Og!kO~Og!lO~Og!mO~OS!nO~Ol!qO!a!oO!c!pO~OS!rO~OS!sO~OS!tO~Ob!uOc!uOd!uO!a!wO!b!uO~Ob!xOc!xOd!xO!c!wO!d!xO~Ob!uOc!uOd!uO!a!{O!b!uO~Ob!xOc!xOd!xO!c!{O!d!xO~OT~cbd!ey|!e~",goto:"%q!aPPPPPPPPPPPPPPPPPPPPP!b!hP!nPP!zP!}#Q#T#Z#^#a#g#j#m#s#y!bP!b!bP$P$V$m$s$y%P%V%]%cPPPPPPPP%iX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:68,context:it,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,22,31,34,37,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,30,33,36,38,"OpenTag"],["group",-10,14,15,18,19,20,21,40,41,42,43,"Entity",17,"Entity TextContent",-3,29,32,35,"TextContent Entity"],["isolate",-11,22,30,31,33,34,36,37,38,39,42,43,"ltr",-3,27,28,40,""]],propSources:[gt],skippedNodes:[0],repeatNodeCount:9,tokenData:"!]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zblWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOb!R!R7tP;=`<%l7S!Z8OYlWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{iiSlWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbiSlWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VP<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXiSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TalWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOc!R!RAwP;=`<%lAY!ZBRYlWc!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbiSlWc!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbiSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXiSc!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!cxaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYliSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_kiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_XaP!b`!dp!fQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZiSgQaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!b`!dpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!b`!dp!ePOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!b`!dpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!b`!dpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!b`!dpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!b`!dpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!b`!dpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!b`!dpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!b`!dpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!dpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO|PP!-nP;=`<%l!-Sq!-xS!dp|POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!b`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!b`|POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!b`!dp|POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!b`!dpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!b`!dpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!b`!dpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!b`!dpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!b`!dpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!b`!dpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!dpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOyPP!7TP;=`<%l!6Vq!7]V!dpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!dpyPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!b`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!b`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!b`yPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!b`!dpyPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!{let f=i.type.id;if(f==Ue)return _(i,u,r);if(f==Le)return _(i,u,l);if(f==Fe)return _(i,u,t);if(f==re&&s.length){let p=i.node,d=p.firstChild,m=d&&U(d,u),O;if(m){for(let c of s)if(c.tag==m&&(!c.attrs||c.attrs(O||(O=ie(d,u))))){let S=p.lastChild,h=S.type.id==Ke?S.from:p.to;if(h>d.to)return{parser:c.parser,overlay:[{from:d.to,to:h}]}}}}if(o&&f==ne){let p=i.node,d;if(d=p.firstChild){let m=o[u.read(d.from,d.to)];if(m)for(let O of m){if(O.tagName&&O.tagName!=U(p.parent,u))continue;let c=p.lastChild;if(c.type.id==A){let S=c.from+1,h=c.lastChild,T=c.to-(h&&h.isError?0:1);if(T>S)return{parser:O.parser,overlay:[{from:S,to:T}],bracketed:!0}}else if(c.type.id==se)return{parser:O.parser,overlay:[{from:c.from,to:c.to}]}}}}return null})}const V=["_blank","_self","_top","_parent"],C=["ascii","utf-8","utf-16","latin1","latin1"],k=["get","post","put","delete"],Q=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],g=["true","false"],n={},bt={a:{attrs:{href:null,ping:null,type:null,media:null,target:V,hreflang:null}},abbr:n,address:n,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:n,aside:n,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:n,base:{attrs:{href:null,target:V}},bdi:n,bdo:n,blockquote:{attrs:{cite:null}},body:n,br:n,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:Q,formmethod:k,formnovalidate:["novalidate"],formtarget:V,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:n,center:n,cite:n,code:n,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:n,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:n,div:n,dl:n,dt:n,em:n,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:n,figure:n,footer:n,form:{attrs:{action:null,name:null,"accept-charset":C,autocomplete:["on","off"],enctype:Q,method:k,novalidate:["novalidate"],target:V}},h1:n,h2:n,h3:n,h4:n,h5:n,h6:n,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:n,hgroup:n,hr:n,html:{attrs:{manifest:null}},i:n,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:Q,formmethod:k,formnovalidate:["novalidate"],formtarget:V,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:n,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:n,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:n,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:C,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:n,noscript:n,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:n,param:{attrs:{name:null,value:null}},pre:n,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:n,rt:n,ruby:n,samp:n,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:C}},section:n,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:n,source:{attrs:{src:null,type:null,media:null}},span:n,strong:n,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:n,summary:n,sup:n,table:n,tbody:n,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:n,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:n,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:n,time:{attrs:{datetime:null}},title:n,tr:n,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:n,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:n},Oe={accesskey:null,class:null,contenteditable:g,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:g,autocorrect:g,autocapitalize:g,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":g,"aria-autocomplete":["inline","list","both","none"],"aria-busy":g,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":g,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":g,"aria-hidden":g,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":g,"aria-multiselectable":g,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":g,"aria-relevant":null,"aria-required":g,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},de="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(e=>"on"+e);for(let e of de)Oe[e]=null;class y{constructor(a,r){this.tags={...bt,...a},this.globalAttrs={...Oe,...r},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}y.default=new y;function P(e,a,r=e.length){if(!a)return"";let l=a.firstChild,t=l&&l.getChild("TagName");return t?e.sliceString(t.from,Math.min(t.to,r)):""}function x(e,a=!1){for(;e;e=e.parent)if(e.name=="Element")if(a)a=!1;else return e;return null}function ce(e,a,r){let l=r.tags[P(e,x(a))];return(l==null?void 0:l.children)||r.allTags}function B(e,a){let r=[];for(let l=x(a);l&&!l.type.isTop;l=x(l.parent)){let t=P(e,l);if(t&&l.lastChild.name=="CloseTag")break;t&&r.indexOf(t)<0&&(a.name=="EndTag"||a.from>=l.firstChild.to)&&r.push(t)}return r}const pe=/^[:\-\.\w\u00b7-\uffff]*$/;function L(e,a,r,l,t){let s=/\s*>/.test(e.sliceDoc(t,t+5))?"":">",o=x(r,r.name=="StartTag"||r.name=="TagName");return{from:l,to:t,options:ce(e.doc,o,a).map(i=>({label:i,type:"type"})).concat(B(e.doc,r).map((i,u)=>({label:"/"+i,apply:"/"+i+s,type:"type",boost:99-u}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function F(e,a,r,l){let t=/\s*>/.test(e.sliceDoc(l,l+5))?"":">";return{from:r,to:l,options:B(e.doc,a).map((s,o)=>({label:s,apply:s+t,type:"type",boost:99-o})),validFor:pe}}function ht(e,a,r,l){let t=[],s=0;for(let o of ce(e.doc,r,a))t.push({label:"<"+o,type:"type"});for(let o of B(e.doc,r))t.push({label:"",type:"type",boost:99-s++});return{from:l,to:l,options:t,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function Tt(e,a,r,l,t){let s=x(r),o=s?a.tags[P(e.doc,s)]:null,i=o&&o.attrs?Object.keys(o.attrs):[],u=o&&o.globalAttrs===!1?i:i.length?i.concat(a.globalAttrNames):a.globalAttrNames;return{from:l,to:t,options:u.map(f=>({label:f,type:"property"})),validFor:pe}}function Pt(e,a,r,l,t){var s;let o=(s=r.parent)===null||s===void 0?void 0:s.getChild("AttributeName"),i=[],u;if(o){let f=e.sliceDoc(o.from,o.to),p=a.globalAttrs[f];if(!p){let d=x(r),m=d?a.tags[P(e.doc,d)]:null;p=(m==null?void 0:m.attrs)&&m.attrs[f]}if(p){let d=e.sliceDoc(l,t).toLowerCase(),m='"',O='"';/^['"]/.test(d)?(u=d[0]=='"'?/^[^"]*$/:/^[^']*$/,m="",O=e.sliceDoc(t,t+1)==d[0]?"":d[0],d=d.slice(1),l++):u=/^[^\s<>='"]*$/;for(let c of p)i.push({label:c,apply:m+c+O,type:"constant"})}}return{from:l,to:t,options:i,validFor:u}}function me(e,a){let{state:r,pos:l}=a,t=K(r).resolveInner(l,-1),s=t.resolve(l);for(let o=l,i;s==t&&(i=t.childBefore(o));){let u=i.lastChild;if(!u||!u.type.isError||u.fromme(l,t)}const Vt=M.parser.configure({top:"SingleExpression"}),fe=[{tag:"script",attrs:e=>e.type=="text/typescript"||e.lang=="ts",parser:_e.parser},{tag:"script",attrs:e=>e.type=="text/babel"||e.type=="text/jsx",parser:Ce.parser},{tag:"script",attrs:e=>e.type=="text/typescript-jsx",parser:ke.parser},{tag:"script",attrs(e){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(e.type)},parser:Vt},{tag:"script",attrs(e){return!e.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(e.type)},parser:M.parser},{tag:"style",attrs(e){return(!e.lang||e.lang=="css")&&(!e.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(e.type))},parser:J.parser}],ge=[{name:"style",parser:J.parser.configure({top:"Styles"})}].concat(de.map(e=>({name:e,parser:M.parser}))),Se=Ve.define({name:"html",parser:St.configure({props:[ye.add({Element(e){let a=/^(\s*)(<\/)?/.exec(e.textAfter);return e.node.to<=e.pos+a[0].length?e.continue():e.lineIndent(e.node.from)+(a[2]?0:e.unit)},"OpenTag CloseTag SelfClosingTag"(e){return e.column(e.node.from)+e.unit},Document(e){if(e.pos+/\s*/.exec(e.textAfter)[0].lengthe.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),v=Se.configure({wrap:ue(fe,ge)});function Rt(e={}){let a="",r;e.matchClosingTags===!1&&(a="noMatch"),e.selfClosingTags===!0&&(a=(a?a+" ":"")+"selfClosing"),(e.nestedLanguages&&e.nestedLanguages.length||e.nestedAttributes&&e.nestedAttributes.length)&&(r=ue((e.nestedLanguages||[]).concat(fe),(e.nestedAttributes||[]).concat(ge)));let l=r?Se.configure({wrap:r,dialect:a}):a?v.configure({dialect:a}):v;return new xe(l,[v.data.of({autocomplete:xt(e)}),e.autoCloseTags!==!1?yt:[],Qe().support,qe().support])}const H=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),yt=Xe.inputHandler.of((e,a,r,l,t)=>{if(e.composing||e.state.readOnly||a!=r||l!=">"&&l!="/"||!v.isActiveAt(e.state,a,-1))return!1;let s=t(),{state:o}=s,i=o.changeByRange(u=>{var f,p,d;let m=o.doc.sliceString(u.from-1,u.to)==l,{head:O}=u,c=K(o).resolveInner(O,-1),S;if(m&&l==">"&&c.name=="EndTag"){let h=c.parent;if(((p=(f=h.parent)===null||f===void 0?void 0:f.lastChild)===null||p===void 0?void 0:p.name)!="CloseTag"&&(S=P(o.doc,h.parent,O))&&!H.has(S)){let T=O+(o.doc.sliceString(O,O+1)===">"?1:0),w=``;return{range:u,changes:{from:O,to:T,insert:w}}}}else if(m&&l=="/"&&c.name=="IncompleteCloseTag"){let h=c.parent;if(c.from==O-2&&((d=h.lastChild)===null||d===void 0?void 0:d.name)!="CloseTag"&&(S=P(o.doc,h,O))&&!H.has(S)){let T=O+(o.doc.sliceString(O,O+1)===">"?1:0),w=`${S}>`;return{range:$e.cursor(O+w.length,-1),changes:{from:O,to:T,insert:w}}}}return{range:u}});return i.changes.empty?!1:(e.dispatch([s,o.update(i,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});export{yt as autoCloseTags,Rt as html,Mt as htmlCompletionSource,xt as htmlCompletionSourceWith,v as htmlLanguage}; diff --git a/internal/relay/web-dist/assets/index-Bj0r02vw.js b/internal/relay/web-dist/assets/index-D9YFpvOI.js similarity index 89% rename from internal/relay/web-dist/assets/index-Bj0r02vw.js rename to internal/relay/web-dist/assets/index-D9YFpvOI.js index 14b4898a..5d8d7ad7 100644 --- a/internal/relay/web-dist/assets/index-Bj0r02vw.js +++ b/internal/relay/web-dist/assets/index-D9YFpvOI.js @@ -1 +1 @@ -import{L as p,g as u,H as n,J as m,Q as e}from"./FileExplorer-BsSESYjF.js";import{html as l}from"./index-BJe4IiST.js";import{javascriptLanguage as b}from"./index-Dchib396.js";import{L as S,a as r}from"./index-CPhFc1xe.js";import"./useI18n-CnvN0FfF.js";import"./index-C93ksU7R.js";import"./prefsSync-D8z1rJ8H.js";import"./client-2UEf7AK8.js";import"./Switch-CpxGRRqY.js";import"./auth-Dhl8fEWW.js";import"./index-p_CjDrxf.js";import"./index-CMJgXADN.js";const c=S.deserialize({version:14,states:"%pOVOWOOObQPOOOpOSO'#C_OOOO'#Cp'#CpQVOWOOQxQPOOO!TQQOOQ!YQPOOOOOO,58y,58yO!_OSO,58yOOOO-E6n-E6nO!dQQO'#CqQ{QPOOO!iQPOOQ{QPOOO!qQPOOOOOO1G.e1G.eOOQO,59],59]OOQO-E6o-E6oO!yOpO'#CiO#RO`O'#CiQOQPOOO#ZO#tO'#CmO#fO!bO'#CmOOQO,59T,59TO#qOpO,59TO#vO`O,59TOOOO'#Cr'#CrO#{O#tO,59XOOQO,59X,59XOOOO'#Cs'#CsO$WO!bO,59XOOQO1G.o1G.oOOOO-E6p-E6pOOQO1G.s1G.sOOOO-E6q-E6q",stateData:"$g~OjOS~OQROUROkQO~OWTOXUOZUO`VO~OSXOTWO~OXUO[]OlZO~OY^O~O[_O~OT`O~OYaO~OmcOodO~OmfOogO~O^iOnhO~O_jOphO~ObkOqkOrmO~OcnOsnOtmO~OnpO~OppO~ObkOqkOrrO~OcnOsnOtrO~OWX`~",goto:"!^hPPPiPPPPPPPPPmPPPpPPsy!Q!WTROSRe]Re_QSORYSS[T^Rb[QlfRqlQogRso",nodeNames:"⚠ Content Text Interpolation InterpolationContent }} Entity Attribute VueAttributeName : Identifier @ Is ScriptAttributeValue AttributeScript AttributeScript AttributeName AttributeValue Entity Entity",maxTerm:36,nodeProps:[["isolate",-3,3,13,17,""]],skippedNodes:[0],repeatNodeCount:4,tokenData:"'y~RdXY!aYZ!a]^!apq!ars!rwx!w}!O!|!O!P#t!Q![#y![!]$s!_!`%g!b!c%l!c!}#y#R#S#y#T#j#y#j#k%q#k#o#y%W;'S#y;'S;:j$m<%lO#y~!fSj~XY!aYZ!a]^!apq!a~!wOm~~!|Oo~!b#RX`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|!b#qP;=`<%l!|~#yOl~%W$QXY#t`!b}!O!|!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y%W$pP;=`<%l#y~$zXX~`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|~%lO[~~%qOZ~%W%xXY#t`!b}!O&e!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y!b&jX`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|!b'^XW!b`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|",tokenizers:[6,7,new r("b~RP#q#rU~XP#q#r[~aOT~~",17,4),new r("!k~RQvwX#o#p!_~^TU~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOU~~![P;=`<%lm~!bP#o#p!e~!jOk~~",72,2),new r("[~RPwxU~ZOp~~",11,15),new r("[~RPrsU~ZOn~~",11,14),new r("!e~RQvwXwx!_~^Tc~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOc~~![P;=`<%lm~!dOt~~",66,35),new r("!e~RQrsXvw^~^Or~~cTb~Oprq!]r!^;'Sr;'S;=`!^<%lOr~uUOprq!]r!]!^!X!^;'Sr;'S;=`!^<%lOr~!^Ob~~!aP;=`<%lr~",66,33)],topRules:{Content:[0,1],Attribute:[1,7]},tokenPrec:157}),P=b.parser.configure({top:"SingleExpression"}),o=c.configure({props:[m({Text:e.content,Is:e.definitionOperator,AttributeName:e.attributeName,VueAttributeName:e.keyword,Identifier:e.variableName,"AttributeValue ScriptAttributeValue":e.attributeValue,Entity:e.character,"{{ }}":e.brace,"@ :":e.punctuation})]}),i={parser:P},Q=o.configure({wrap:n((O,t)=>O.name=="InterpolationContent"?i:null)}),g=o.configure({wrap:n((O,t)=>O.name=="AttributeScript"?i:null),top:"Attribute"}),y={parser:Q},R={parser:g},a=l();function s(O){return O.configure({dialect:"selfClosing",wrap:n(X)},"vue")}const T=s(a.language);function X(O,t){switch(O.name){case"Attribute":return/^(@|:|v-)/.test(t.read(O.from,O.from+2))?R:null;case"Text":return y}return null}function U(O={}){let t=a;if(O.base){if(O.base.language.name!="html"||!(O.base.language instanceof p))throw new RangeError("The base option must be the result of calling html(...)");t=O.base}return new u(t.language==a.language?T:s(t.language),[t.support,t.language.data.of({closeBrackets:{brackets:["{",'"']}})])}export{U as vue,T as vueLanguage}; +import{L as p,g as u,H as n,J as m,Q as e}from"./FileExplorer-BGCt84ef.js";import{html as l}from"./index-CsH7OxDu.js";import{javascriptLanguage as b}from"./index-CZ0p1U99.js";import{L as S,a as r}from"./index-q_Op_mkr.js";import"./useI18n-CnvN0FfF.js";import"./index-BH9vIdLD.js";import"./prefsSync-D8z1rJ8H.js";import"./client-2UEf7AK8.js";import"./Switch-CpxGRRqY.js";import"./auth-Dhl8fEWW.js";import"./index-BSlQSXjR.js";import"./index-Bc7PlSwi.js";const c=S.deserialize({version:14,states:"%pOVOWOOObQPOOOpOSO'#C_OOOO'#Cp'#CpQVOWOOQxQPOOO!TQQOOQ!YQPOOOOOO,58y,58yO!_OSO,58yOOOO-E6n-E6nO!dQQO'#CqQ{QPOOO!iQPOOQ{QPOOO!qQPOOOOOO1G.e1G.eOOQO,59],59]OOQO-E6o-E6oO!yOpO'#CiO#RO`O'#CiQOQPOOO#ZO#tO'#CmO#fO!bO'#CmOOQO,59T,59TO#qOpO,59TO#vO`O,59TOOOO'#Cr'#CrO#{O#tO,59XOOQO,59X,59XOOOO'#Cs'#CsO$WO!bO,59XOOQO1G.o1G.oOOOO-E6p-E6pOOQO1G.s1G.sOOOO-E6q-E6q",stateData:"$g~OjOS~OQROUROkQO~OWTOXUOZUO`VO~OSXOTWO~OXUO[]OlZO~OY^O~O[_O~OT`O~OYaO~OmcOodO~OmfOogO~O^iOnhO~O_jOphO~ObkOqkOrmO~OcnOsnOtmO~OnpO~OppO~ObkOqkOrrO~OcnOsnOtrO~OWX`~",goto:"!^hPPPiPPPPPPPPPmPPPpPPsy!Q!WTROSRe]Re_QSORYSS[T^Rb[QlfRqlQogRso",nodeNames:"⚠ Content Text Interpolation InterpolationContent }} Entity Attribute VueAttributeName : Identifier @ Is ScriptAttributeValue AttributeScript AttributeScript AttributeName AttributeValue Entity Entity",maxTerm:36,nodeProps:[["isolate",-3,3,13,17,""]],skippedNodes:[0],repeatNodeCount:4,tokenData:"'y~RdXY!aYZ!a]^!apq!ars!rwx!w}!O!|!O!P#t!Q![#y![!]$s!_!`%g!b!c%l!c!}#y#R#S#y#T#j#y#j#k%q#k#o#y%W;'S#y;'S;:j$m<%lO#y~!fSj~XY!aYZ!a]^!apq!a~!wOm~~!|Oo~!b#RX`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|!b#qP;=`<%l!|~#yOl~%W$QXY#t`!b}!O!|!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y%W$pP;=`<%l#y~$zXX~`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|~%lO[~~%qOZ~%W%xXY#t`!b}!O&e!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y!b&jX`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|!b'^XW!b`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|",tokenizers:[6,7,new r("b~RP#q#rU~XP#q#r[~aOT~~",17,4),new r("!k~RQvwX#o#p!_~^TU~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOU~~![P;=`<%lm~!bP#o#p!e~!jOk~~",72,2),new r("[~RPwxU~ZOp~~",11,15),new r("[~RPrsU~ZOn~~",11,14),new r("!e~RQvwXwx!_~^Tc~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOc~~![P;=`<%lm~!dOt~~",66,35),new r("!e~RQrsXvw^~^Or~~cTb~Oprq!]r!^;'Sr;'S;=`!^<%lOr~uUOprq!]r!]!^!X!^;'Sr;'S;=`!^<%lOr~!^Ob~~!aP;=`<%lr~",66,33)],topRules:{Content:[0,1],Attribute:[1,7]},tokenPrec:157}),P=b.parser.configure({top:"SingleExpression"}),o=c.configure({props:[m({Text:e.content,Is:e.definitionOperator,AttributeName:e.attributeName,VueAttributeName:e.keyword,Identifier:e.variableName,"AttributeValue ScriptAttributeValue":e.attributeValue,Entity:e.character,"{{ }}":e.brace,"@ :":e.punctuation})]}),i={parser:P},Q=o.configure({wrap:n((O,t)=>O.name=="InterpolationContent"?i:null)}),g=o.configure({wrap:n((O,t)=>O.name=="AttributeScript"?i:null),top:"Attribute"}),y={parser:Q},R={parser:g},a=l();function s(O){return O.configure({dialect:"selfClosing",wrap:n(X)},"vue")}const T=s(a.language);function X(O,t){switch(O.name){case"Attribute":return/^(@|:|v-)/.test(t.read(O.from,O.from+2))?R:null;case"Text":return y}return null}function U(O={}){let t=a;if(O.base){if(O.base.language.name!="html"||!(O.base.language instanceof p))throw new RangeError("The base option must be the result of calling html(...)");t=O.base}return new u(t.language==a.language?T:s(t.language),[t.support,t.language.data.of({closeBrackets:{brackets:["{",'"']}})])}export{U as vue,T as vueLanguage}; diff --git a/internal/relay/web-dist/assets/index-BPHRQyFA.js b/internal/relay/web-dist/assets/index-DW5ZYIIZ.js similarity index 99% rename from internal/relay/web-dist/assets/index-BPHRQyFA.js rename to internal/relay/web-dist/assets/index-DW5ZYIIZ.js index b77f15bf..d35964e8 100644 --- a/internal/relay/web-dist/assets/index-BPHRQyFA.js +++ b/internal/relay/web-dist/assets/index-DW5ZYIIZ.js @@ -1,3 +1,3 @@ -import{L as D,E as h,C as L}from"./index-CPhFc1xe.js";import{J as H,Q as n,g as B,L as K,z as M,u as f,x as OO,w as eO,O as iO,j as aO,I as nO}from"./FileExplorer-BsSESYjF.js";import{i as rO,c as QO,s as d}from"./index-CMJgXADN.js";import"./useI18n-CnvN0FfF.js";import"./index-C93ksU7R.js";import"./prefsSync-D8z1rJ8H.js";import"./client-2UEf7AK8.js";import"./Switch-CpxGRRqY.js";import"./auth-Dhl8fEWW.js";const tO=1,Z=194,j=195,oO=196,x=197,dO=198,sO=199,lO=200,TO=2,E=3,u=201,SO=24,pO=25,qO=49,gO=50,mO=55,PO=56,$O=57,hO=59,cO=60,fO=61,XO=62,yO=63,zO=65,WO=238,vO=71,RO=241,kO=242,_O=243,xO=244,uO=245,UO=246,bO=247,VO=248,Y=72,GO=249,wO=250,ZO=251,jO=252,EO=253,YO=254,FO=255,CO=256,JO=73,AO=77,IO=263,NO=112,DO=130,LO=151,HO=152,BO=155,p=10,q=13,k=32,c=9,_=35,KO=40,MO=46,R=123,U=125,F=39,C=34,b=92,Oe=111,ee=120,ie=78,ae=117,ne=85,re=new Set([pO,qO,gO,IO,zO,DO,PO,$O,WO,XO,yO,Y,JO,AO,cO,fO,LO,HO,BO,NO]);function X(O){return O==p||O==q}function y(O){return O>=48&&O<=57||O>=65&&O<=70||O>=97&&O<=102}const Qe=new h((O,e)=>{let i;if(O.next<0)O.acceptToken(sO);else if(e.context.flags&P)X(O.next)&&O.acceptToken(dO,1);else if(((i=O.peek(-1))<0||X(i))&&e.canShift(x)){let a=0;for(;O.next==k||O.next==c;)O.advance(),a++;(O.next==p||O.next==q||O.next==_)&&O.acceptToken(x,-a)}else X(O.next)&&O.acceptToken(oO,1)},{contextual:!0}),te=new h((O,e)=>{let i=e.context;if(i.flags)return;let a=O.peek(-1);if(a==p||a==q){let r=0,Q=0;for(;;){if(O.next==k)r++;else if(O.next==c)r+=8-r%8;else break;O.advance(),Q++}r!=i.indent&&O.next!=p&&O.next!=q&&O.next!=_&&(r[O,e|J])),se=new L({start:oe,reduce(O,e,i,a){return O.flags&P&&re.has(e)||(e==vO||e==Y)&&O.flags&J?O.parent:O},shift(O,e,i,a){return e==Z?new $(O,de(a.read(a.pos,i.pos)),0):e==j?O.parent:e==SO||e==mO||e==hO||e==E?new $(O,0,P):V.has(e)?new $(O,0,V.get(e)|O.flags&P):O},hash(O){return O.hash}}),le=new h(O=>{for(let e=0;e<5;e++){if(O.next!="print".charCodeAt(e))return;O.advance()}if(!/\w/.test(String.fromCharCode(O.next)))for(let e=0;;e++){let i=O.peek(e);if(!(i==k||i==c)){i!=KO&&i!=MO&&i!=p&&i!=q&&i!=_&&O.acceptToken(tO);return}}}),Te=new h((O,e)=>{let{flags:i}=e.context,a=i&s?C:F,r=(i&l)>0,Q=!(i&T),t=(i&S)>0,o=O.pos;for(;!(O.next<0);)if(t&&O.next==R)if(O.peek(1)==R)O.advance(2);else{if(O.pos==o){O.acceptToken(E,1);return}break}else if(Q&&O.next==b){if(O.pos==o){O.advance();let g=O.next;g>=0&&(O.advance(),Se(O,g)),O.acceptToken(TO);return}break}else if(O.next==b&&!Q&&O.peek(1)>-1)O.advance(2);else if(O.next==a&&(!r||O.peek(1)==a&&O.peek(2)==a)){if(O.pos==o){O.acceptToken(u,r?3:1);return}break}else if(O.next==p){if(r)O.advance();else if(O.pos==o){O.acceptToken(u);return}break}else O.advance();O.pos>o&&O.acceptToken(lO)});function Se(O,e){if(e==Oe)for(let i=0;i<2&&O.next>=48&&O.next<=55;i++)O.advance();else if(e==ee)for(let i=0;i<2&&y(O.next);i++)O.advance();else if(e==ae)for(let i=0;i<4&&y(O.next);i++)O.advance();else if(e==ne)for(let i=0;i<8&&y(O.next);i++)O.advance();else if(e==ie&&O.next==R){for(O.advance();O.next>=0&&O.next!=U&&O.next!=F&&O.next!=C&&O.next!=p;)O.advance();O.next==U&&O.advance()}}const pe=H({'async "*" "**" FormatConversion FormatSpec':n.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":n.controlKeyword,"in not and or is del":n.operatorKeyword,"from def class global nonlocal lambda":n.definitionKeyword,import:n.moduleKeyword,"with as print":n.keyword,Boolean:n.bool,None:n.null,VariableName:n.variableName,"CallExpression/VariableName":n.function(n.variableName),"FunctionDefinition/VariableName":n.function(n.definition(n.variableName)),"ClassDefinition/VariableName":n.definition(n.className),PropertyName:n.propertyName,"CallExpression/MemberExpression/PropertyName":n.function(n.propertyName),Comment:n.lineComment,Number:n.number,String:n.string,FormatString:n.special(n.string),Escape:n.escape,UpdateOp:n.updateOperator,"ArithOp!":n.arithmeticOperator,BitOp:n.bitwiseOperator,CompareOp:n.compareOperator,AssignOp:n.definitionOperator,Ellipsis:n.punctuation,At:n.meta,"( )":n.paren,"[ ]":n.squareBracket,"{ }":n.brace,".":n.derefOperator,", ;":n.separator}),qe={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},ge=D.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyOOOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!lO!lO!hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5nQdO,5sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<mO#BQQdO,5>mOOQS1G0v1G0vOOQS<rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<VAN>VO$ oQdO<cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<tO$4{QdO,5>tO1XQdO,5vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[le,te,Qe,Te,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:O=>qe[O]||-1}],tokenPrec:7668}),G=new aO,A=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function m(O){return(e,i,a)=>{if(a)return!1;let r=e.node.getChild("VariableName");return r&&i(r,O),!0}}const me={FunctionDefinition:m("function"),ClassDefinition:m("class"),ForStatement(O,e,i){if(i){for(let a=O.node.firstChild;a;a=a.nextSibling)if(a.name=="VariableName")e(a,"variable");else if(a.name=="in")break}},ImportStatement(O,e){var i,a;let{node:r}=O,Q=((i=r.firstChild)===null||i===void 0?void 0:i.name)=="from";for(let t=r.getChild("import");t;t=t.nextSibling)t.name=="VariableName"&&((a=t.nextSibling)===null||a===void 0?void 0:a.name)!="as"&&e(t,Q?"variable":"namespace")},AssignStatement(O,e){for(let i=O.node.firstChild;i;i=i.nextSibling)if(i.name=="VariableName")e(i,"variable");else if(i.name==":"||i.name=="AssignOp")break},ParamList(O,e){for(let i=null,a=O.node.firstChild;a;a=a.nextSibling)a.name=="VariableName"&&(!i||!/\*|AssignOp/.test(i.name))&&e(a,"variable"),i=a},CapturePattern:m("variable"),AsPattern:m("variable"),__proto__:null};function I(O,e){let i=G.get(e);if(i)return i;let a=[],r=!0;function Q(t,o){let g=O.sliceString(t.from,t.to);a.push({label:g,type:o})}return e.cursor(nO.IncludeAnonymous).iterate(t=>{if(t.name){let o=me[t.name];if(o&&o(t,Q,r)||!r&&A.has(t.name))return!1;r=!1}else if(t.to-t.from>8192){for(let o of I(O,t.node))a.push(o);return!1}}),G.set(e,a),a}const w=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,N=["String","FormatString","Comment","PropertyName"];function Pe(O){let e=iO(O.state).resolveInner(O.pos,-1);if(N.indexOf(e.name)>-1)return null;let i=e.name=="VariableName"||e.to-e.from<20&&w.test(O.state.sliceDoc(e.from,e.to));if(!i&&!O.explicit)return null;let a=[];for(let r=e;r;r=r.parent)A.has(r.name)&&(a=a.concat(I(O.state.doc,r)));return{options:a,from:i?e.from:O.pos,validFor:w}}const $e=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(O=>({label:O,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(O=>({label:O,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(O=>({label:O,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(O=>({label:O,type:"function"}))),he=[d("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),d("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),d("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),d("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),d(`if \${}: +import{L as D,E as h,C as L}from"./index-q_Op_mkr.js";import{J as H,Q as n,g as B,L as K,z as M,u as f,x as OO,w as eO,O as iO,j as aO,I as nO}from"./FileExplorer-BGCt84ef.js";import{i as rO,c as QO,s as d}from"./index-Bc7PlSwi.js";import"./useI18n-CnvN0FfF.js";import"./index-BH9vIdLD.js";import"./prefsSync-D8z1rJ8H.js";import"./client-2UEf7AK8.js";import"./Switch-CpxGRRqY.js";import"./auth-Dhl8fEWW.js";const tO=1,Z=194,j=195,oO=196,x=197,dO=198,sO=199,lO=200,TO=2,E=3,u=201,SO=24,pO=25,qO=49,gO=50,mO=55,PO=56,$O=57,hO=59,cO=60,fO=61,XO=62,yO=63,zO=65,WO=238,vO=71,RO=241,kO=242,_O=243,xO=244,uO=245,UO=246,bO=247,VO=248,Y=72,GO=249,wO=250,ZO=251,jO=252,EO=253,YO=254,FO=255,CO=256,JO=73,AO=77,IO=263,NO=112,DO=130,LO=151,HO=152,BO=155,p=10,q=13,k=32,c=9,_=35,KO=40,MO=46,R=123,U=125,F=39,C=34,b=92,Oe=111,ee=120,ie=78,ae=117,ne=85,re=new Set([pO,qO,gO,IO,zO,DO,PO,$O,WO,XO,yO,Y,JO,AO,cO,fO,LO,HO,BO,NO]);function X(O){return O==p||O==q}function y(O){return O>=48&&O<=57||O>=65&&O<=70||O>=97&&O<=102}const Qe=new h((O,e)=>{let i;if(O.next<0)O.acceptToken(sO);else if(e.context.flags&P)X(O.next)&&O.acceptToken(dO,1);else if(((i=O.peek(-1))<0||X(i))&&e.canShift(x)){let a=0;for(;O.next==k||O.next==c;)O.advance(),a++;(O.next==p||O.next==q||O.next==_)&&O.acceptToken(x,-a)}else X(O.next)&&O.acceptToken(oO,1)},{contextual:!0}),te=new h((O,e)=>{let i=e.context;if(i.flags)return;let a=O.peek(-1);if(a==p||a==q){let r=0,Q=0;for(;;){if(O.next==k)r++;else if(O.next==c)r+=8-r%8;else break;O.advance(),Q++}r!=i.indent&&O.next!=p&&O.next!=q&&O.next!=_&&(r[O,e|J])),se=new L({start:oe,reduce(O,e,i,a){return O.flags&P&&re.has(e)||(e==vO||e==Y)&&O.flags&J?O.parent:O},shift(O,e,i,a){return e==Z?new $(O,de(a.read(a.pos,i.pos)),0):e==j?O.parent:e==SO||e==mO||e==hO||e==E?new $(O,0,P):V.has(e)?new $(O,0,V.get(e)|O.flags&P):O},hash(O){return O.hash}}),le=new h(O=>{for(let e=0;e<5;e++){if(O.next!="print".charCodeAt(e))return;O.advance()}if(!/\w/.test(String.fromCharCode(O.next)))for(let e=0;;e++){let i=O.peek(e);if(!(i==k||i==c)){i!=KO&&i!=MO&&i!=p&&i!=q&&i!=_&&O.acceptToken(tO);return}}}),Te=new h((O,e)=>{let{flags:i}=e.context,a=i&s?C:F,r=(i&l)>0,Q=!(i&T),t=(i&S)>0,o=O.pos;for(;!(O.next<0);)if(t&&O.next==R)if(O.peek(1)==R)O.advance(2);else{if(O.pos==o){O.acceptToken(E,1);return}break}else if(Q&&O.next==b){if(O.pos==o){O.advance();let g=O.next;g>=0&&(O.advance(),Se(O,g)),O.acceptToken(TO);return}break}else if(O.next==b&&!Q&&O.peek(1)>-1)O.advance(2);else if(O.next==a&&(!r||O.peek(1)==a&&O.peek(2)==a)){if(O.pos==o){O.acceptToken(u,r?3:1);return}break}else if(O.next==p){if(r)O.advance();else if(O.pos==o){O.acceptToken(u);return}break}else O.advance();O.pos>o&&O.acceptToken(lO)});function Se(O,e){if(e==Oe)for(let i=0;i<2&&O.next>=48&&O.next<=55;i++)O.advance();else if(e==ee)for(let i=0;i<2&&y(O.next);i++)O.advance();else if(e==ae)for(let i=0;i<4&&y(O.next);i++)O.advance();else if(e==ne)for(let i=0;i<8&&y(O.next);i++)O.advance();else if(e==ie&&O.next==R){for(O.advance();O.next>=0&&O.next!=U&&O.next!=F&&O.next!=C&&O.next!=p;)O.advance();O.next==U&&O.advance()}}const pe=H({'async "*" "**" FormatConversion FormatSpec':n.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":n.controlKeyword,"in not and or is del":n.operatorKeyword,"from def class global nonlocal lambda":n.definitionKeyword,import:n.moduleKeyword,"with as print":n.keyword,Boolean:n.bool,None:n.null,VariableName:n.variableName,"CallExpression/VariableName":n.function(n.variableName),"FunctionDefinition/VariableName":n.function(n.definition(n.variableName)),"ClassDefinition/VariableName":n.definition(n.className),PropertyName:n.propertyName,"CallExpression/MemberExpression/PropertyName":n.function(n.propertyName),Comment:n.lineComment,Number:n.number,String:n.string,FormatString:n.special(n.string),Escape:n.escape,UpdateOp:n.updateOperator,"ArithOp!":n.arithmeticOperator,BitOp:n.bitwiseOperator,CompareOp:n.compareOperator,AssignOp:n.definitionOperator,Ellipsis:n.punctuation,At:n.meta,"( )":n.paren,"[ ]":n.squareBracket,"{ }":n.brace,".":n.derefOperator,", ;":n.separator}),qe={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},ge=D.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyOOOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!lO!lO!hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5nQdO,5sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<mO#BQQdO,5>mOOQS1G0v1G0vOOQS<rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<VAN>VO$ oQdO<cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<tO$4{QdO,5>tO1XQdO,5vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[le,te,Qe,Te,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:O=>qe[O]||-1}],tokenPrec:7668}),G=new aO,A=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function m(O){return(e,i,a)=>{if(a)return!1;let r=e.node.getChild("VariableName");return r&&i(r,O),!0}}const me={FunctionDefinition:m("function"),ClassDefinition:m("class"),ForStatement(O,e,i){if(i){for(let a=O.node.firstChild;a;a=a.nextSibling)if(a.name=="VariableName")e(a,"variable");else if(a.name=="in")break}},ImportStatement(O,e){var i,a;let{node:r}=O,Q=((i=r.firstChild)===null||i===void 0?void 0:i.name)=="from";for(let t=r.getChild("import");t;t=t.nextSibling)t.name=="VariableName"&&((a=t.nextSibling)===null||a===void 0?void 0:a.name)!="as"&&e(t,Q?"variable":"namespace")},AssignStatement(O,e){for(let i=O.node.firstChild;i;i=i.nextSibling)if(i.name=="VariableName")e(i,"variable");else if(i.name==":"||i.name=="AssignOp")break},ParamList(O,e){for(let i=null,a=O.node.firstChild;a;a=a.nextSibling)a.name=="VariableName"&&(!i||!/\*|AssignOp/.test(i.name))&&e(a,"variable"),i=a},CapturePattern:m("variable"),AsPattern:m("variable"),__proto__:null};function I(O,e){let i=G.get(e);if(i)return i;let a=[],r=!0;function Q(t,o){let g=O.sliceString(t.from,t.to);a.push({label:g,type:o})}return e.cursor(nO.IncludeAnonymous).iterate(t=>{if(t.name){let o=me[t.name];if(o&&o(t,Q,r)||!r&&A.has(t.name))return!1;r=!1}else if(t.to-t.from>8192){for(let o of I(O,t.node))a.push(o);return!1}}),G.set(e,a),a}const w=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,N=["String","FormatString","Comment","PropertyName"];function Pe(O){let e=iO(O.state).resolveInner(O.pos,-1);if(N.indexOf(e.name)>-1)return null;let i=e.name=="VariableName"||e.to-e.from<20&&w.test(O.state.sliceDoc(e.from,e.to));if(!i&&!O.explicit)return null;let a=[];for(let r=e;r;r=r.parent)A.has(r.name)&&(a=a.concat(I(O.state.doc,r)));return{options:a,from:i?e.from:O.pos,validFor:w}}const $e=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(O=>({label:O,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(O=>({label:O,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(O=>({label:O,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(O=>({label:O,type:"function"}))),he=[d("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),d("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),d("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),d("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),d(`if \${}: `,{label:"if",detail:"block",type:"keyword"}),d("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),d("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),d("import ${module}",{label:"import",detail:"statement",type:"keyword"}),d("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],ce=rO(N,QO($e.concat(he)));function z(O){let{node:e,pos:i}=O,a=O.lineIndent(i,-1),r=null;for(;;){let Q=e.childBefore(i);if(Q)if(Q.name=="Comment")i=Q.from;else if(Q.name=="Body"||Q.name=="MatchBody")O.baseIndentFor(Q)+O.unit<=a&&(r=Q),e=Q;else if(Q.name=="MatchClause")e=Q;else if(Q.type.is("Statement"))e=Q;else break;else break}return r}function W(O,e){let i=O.baseIndentFor(e),a=O.lineAt(O.pos,-1),r=a.from+a.text.length;return/^\s*($|#)/.test(a.text)&&O.node.toi?null:i+O.unit}const v=K.define({name:"python",parser:ge.configure({props:[M.add({Body:O=>{var e;let i=/^\s*(#|$)/.test(O.textAfter)&&z(O)||O.node;return(e=W(O,i))!==null&&e!==void 0?e:O.continue()},MatchBody:O=>{var e;let i=z(O);return(e=W(O,i||O.node))!==null&&e!==void 0?e:O.continue()},IfStatement:O=>/^\s*(else:|elif )/.test(O.textAfter)?O.baseIndent:O.continue(),"ForStatement WhileStatement":O=>/^\s*else:/.test(O.textAfter)?O.baseIndent:O.continue(),TryStatement:O=>/^\s*(except[ :]|finally:|else:)/.test(O.textAfter)?O.baseIndent:O.continue(),MatchStatement:O=>/^\s*case /.test(O.textAfter)?O.baseIndent+O.unit:O.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":f({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":f({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":f({closing:"]"}),MemberExpression:O=>O.baseIndent+O.unit,"String FormatString":()=>null,Script:O=>{var e;let i=z(O);return(e=i&&W(O,i))!==null&&e!==void 0?e:O.continue()}}),OO.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":eO,Body:(O,e)=>({from:O.from+1,to:O.to-(O.to==e.doc.length?0:1)}),"String FormatString":(O,e)=>({from:e.doc.lineAt(O.from).to,to:O.to})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/}});function xe(){return new B(v,[v.data.of({autocomplete:Pe}),v.data.of({autocomplete:ce})])}export{ce as globalCompletion,Pe as localCompletionSource,xe as python,v as pythonLanguage}; diff --git a/internal/relay/web-dist/assets/index-D73k4NcO.js b/internal/relay/web-dist/assets/index-LsOWRKMa.js similarity index 99% rename from internal/relay/web-dist/assets/index-D73k4NcO.js rename to internal/relay/web-dist/assets/index-LsOWRKMa.js index 56df7ed9..96c41ec3 100644 --- a/internal/relay/web-dist/assets/index-D73k4NcO.js +++ b/internal/relay/web-dist/assets/index-LsOWRKMa.js @@ -1,4 +1,4 @@ -import{L as s,E as R,a as Y,C as x}from"./index-CPhFc1xe.js";import{J as w,Q as O,g as d,L as k,z as h,v as f,r as l,u,x as y,w as g,O as j,j as U,I as G}from"./FileExplorer-BsSESYjF.js";import{i as b,c as Z,s as X}from"./index-CMJgXADN.js";import"./useI18n-CnvN0FfF.js";import"./index-C93ksU7R.js";import"./prefsSync-D8z1rJ8H.js";import"./client-2UEf7AK8.js";import"./Switch-CpxGRRqY.js";import"./auth-Dhl8fEWW.js";const _=177,q=179,E=184,v=12,C=13,D=17,z=20,F=25,B=53,N=95,I=142,L=144,A=145,J=148,M=10,H=13,K=32,OO=9,$=47,QO=41,eO=125,aO=new R((Q,e)=>{for(let n=0,a=Q.next;(e.context&&(a<0||a==M||a==H||a==$&&Q.peek(n+1)==$)||a==QO||a==eO)&&Q.acceptToken(_),!(a!=K&&a!=OO);)a=Q.peek(++n)},{contextual:!0});let tO=new Set([N,E,z,v,D,L,A,I,J,C,B,F]);const iO=new x({start:!1,shift:(Q,e)=>e==q?Q:tO.has(e)}),XO=w({"func interface struct chan map const type var":O.definitionKeyword,"import package":O.moduleKeyword,"switch for go select return break continue goto fallthrough case if else defer":O.controlKeyword,range:O.keyword,Bool:O.bool,String:O.string,Rune:O.character,Number:O.number,Nil:O.null,VariableName:O.variableName,DefName:O.definition(O.variableName),TypeName:O.typeName,LabelName:O.labelName,FieldName:O.propertyName,"FunctionDecl/DefName":O.function(O.definition(O.variableName)),"TypeSpec/DefName":O.definition(O.typeName),"CallExpr/VariableName":O.function(O.variableName),LineComment:O.lineComment,BlockComment:O.blockComment,LogicOp:O.logicOperator,ArithOp:O.arithmeticOperator,BitOp:O.bitwiseOperator,"DerefOp .":O.derefOperator,"UpdateOp IncDecOp":O.updateOperator,CompareOp:O.compareOperator,"= :=":O.definitionOperator,"<-":O.operator,'~ "*"':O.modifier,"; ,":O.separator,"... :":O.punctuation,"( )":O.paren,"[ ]":O.squareBracket,"{ }":O.brace}),nO={__proto__:null,package:10,import:18,true:380,false:380,nil:383,struct:48,func:68,interface:78,chan:94,map:118,make:157,new:159,const:204,type:212,var:224,if:236,else:238,switch:242,case:248,default:250,for:260,range:266,go:270,select:274,return:284,break:288,continue:290,goto:292,fallthrough:296,defer:300},PO=s.deserialize({version:14,states:"!=xO#{QQOOP$SOQOOO&UQTO'#CbO&]QRO'#FlO]QQOOOOQP'#Cn'#CnOOQP'#Co'#CoO&eQQO'#C|O(kQQO'#C{O)]QRO'#GiO+tQQO'#D_OOQP'#Ge'#GeO+{QQO'#GeO.aQTO'#GaO.hQQO'#D`OOQP'#Gm'#GmO.mQRO'#GdO/hQQO'#DgOOQP'#Gd'#GdO/uQQO'#DrO2bQQO'#DsO4QQTO'#GqO,^QTO'#GaO4XQQO'#DxO4^QQO'#D{OOQO'#EQ'#EQOOQO'#ER'#EROOQO'#ES'#ESOOQO'#ET'#ETO4cQQO'#EPO5}QQO'#EPOOQP'#Ga'#GaO6UQQO'#E`O6^QQO'#EcOOQP'#G`'#G`O6cQQO'#EsOOQP'#G_'#G_O&]QRO'#FnOOQO'#Fn'#FnO9QQQO'#G^QOQQOOO&]QROOO9XQQO'#C`O9^QSO'#CdO9lQQO'#C}O9tQQO'#DSO9yQQO'#D[O:kQQO'#CsO:pQQO'#DhO:uQQO'#EeO:}QQO'#EiO;VQQO'#EoO;_QQO'#EuOPQSO7+%hOOQP7+%h7+%hO4cQQO7+%hOOQP1G0Q1G0QO!>^QQO1G0QOOQP1G0U1G0UO!>fQQO1G0UOF|QQO1G0UOOQO,5nAN>nO4cQQOAN>nO!IsQSOAN>nOOQP<nQQO'#FrOOQO,5vAN>vO!LtQQOAN>vP.hQQO'#F|OOQPG25XG25XO!LyQQOG25bO!MOQQO'#FPOOQPG25bG25bO!MZQQOG25bOOQPLD)tLD)tOOQPG24bG24bO!JqQQOLD*|O!9OQQO'#GQO!McQQO,5;kOOQP,5;k,5;kO?tQQO'#FQO!MnQQO'#FQO!MsQQOLD*|OOQP!$'Nh!$'NhOOQO,5VO^!hOh!POr-TOw}O!P-_O!Q-`O!W-^O!]-eO%O!eO%Y!fO~OZ!sO~O^#uO~O!P$xO~On!lO#W%]aV%]a^%]ah%]ar%]aw%]a!P%]a!Q%]a!W%]a!]%]a#T%]a$w%]a%O%]a%Y%]au%]a~O]${O^#QO~OZ#RO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O]$|O!|,WO~PBROj!qOn%QO!QnOi%cP~P*aO!V%WO!|#`O~PBRO!V%YO~OV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oi%dX#p%dX#q%dX~PDQOi%]O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-QO!WaO!]!QO!phO!qhO%O+{O%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^%aO%O%_O~O!QnO!a%cO~P*aO!QnOn$mX#T$mX#U$mXV$mX$w$mX!a$mX~P*aOn#TO#T%ea#U%eaV%ea$w%ea!a%ea~O]%fO~PF|OV#ga$w#ga~PDTO[%sO~OZ#rO[#qO]%vO%O#oO~O^!hOh!POn%zOr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO]%[P~O^&OOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%Y!fO^%ZXj%ZX~O%O%}O~PKfOjcO^qa]qanqa!Vqa~O^#uO!W&SO~O^!hOh!POr-TOw}O{&WO!P-_O!Q-`O!W-^O!]-eO%O,xO%Y!fO~Oi&^O~PL{O^!hOh!POr!jOw}O!Q!kO!WaO!]!QO%O!eO%Y!fO~O!P#hO~PMwOi&eO%O,yO%Y!fO~O#T&gOV#ZX$w#ZX~P?tO]&kO%O#oO~O^!hOh!POr-TOw}O!P-_O!Q-`O!]-eO%O!eO%Y!fO~O!W&lO#T&mO~P! _O]&qO%O#oO~O#T&sOV#eX$w#eX~P?tO]&vO%O#oO~OjeX~P$XOjcO!|,XO~P2gOn!lO#W&yO#W%]X~O^#VOn#TO!Q#cO!W#SO!|,XO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX~OZ&zOj$`O$w`X~P!#cOi'OO#p'PO#q'QO~OZ#ROjcO~P!#cO#T'TO#U#iO~O#W'UO~OV'WO!QnO~P*aOV'XO~OjcO~O!|#`OV#za$w#za~PBROi'[O#p']O#q'^O~On#TO!|#`OV%eX$w%eX!a%eX~PBRO!|#`OV$Za$w$Za~PBRO${$rO$|$rO$}'`O~O]${O~O%O!eO]%ZXn%ZX!V%ZX~PKfO!|#`Oi!_Xn!_X!a!`X~PBROi!_Xn!_X!a!`X~O!a'aO~On'bOi%cX~Oi'dO~On'eO!V%bX!a%bX~O!V'gO~O]'jOn'kO!|,YO~PBROn'nO!V'mO!a'oO!|#`O~PBRO!QnO!V'qO!a'rO~P*aO!|#`On$ma#T$ma#U$maV$ma$w$ma!a$ma~PBRO]'sOu'tO~O%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi!|!xi#R!xi#T!xi#U!xi$w!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~O!V!xii!xi!a!xi~P!+YO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi!V!xii!xi!a!xi~O!|!xi~P!-TO!|#`O~P!-TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%q!xi~O!|#`O!V!xii!xi!a!xi~P!/VO!|#`OV#Pi$w#Pi!a#Pi~PBRO]'uOn'wOu'vO~OZ#rO[#qO]'zO%O#oO~Ou'|O~P?tOn'}O]%[X~O](PO~OZeX^mX^!TXj!TX!W!TX~OjcOV$]i$w$]i~O%`(ZOV%^X$w%^Xn%^X!V%^X~Oi(`O~PL{O[(aO!W!tOVlX$wlX~On(bO~P?tO[(aOVlX$wlX~Oi(hO%O,yO%Y!fO~O!V(iO~O#T(kO~O](nO%O#oO~O[oO^YOaoOdoOh!POr!pOu-bOw}O!P!OO!QnO!V-UO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O+zO~P!4vO](sO%O#oO~O#T(tOV#ea$w#ea~O](xO%O#oO~O#k(yOV#ii$w#ii~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O+xO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^(|O%O%_O~O#p%dP#q%dP~P/uOi)PO#p'PO#q'QO~O!a)RO~O!QnO#y)VO~P*aOV)WO!|#`O~PBROj#wa~P;_OV)WO!QnO~P*aOi)]O#p']O#q'^O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O,eO~P!:lO!a)bO~Oj!qO!QnO~P*aOj!qO!QnOi%ca~P*aOn)iOi%ca~O!V%ba!a%ba~P?tOn)lO!V%ba!a%ba~O])nO~O])oO~O!V)pO~O!QnO!V)rO!a)sO~P*aO!V)rO!a)sO!|#`O~PBRO])uOn)vO~O])wOn)xO~O^!hOh!POr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO~O]%[a~P!>nOn)|O]%[a~O]${O]tXntX~OjcOV$^q$w$^q~On*PO{&WO~P?tOn*SO!V%rX~O!V*UO~OjcOV$]q$w$]q~O%`(ZOV|a$w|an|a!V|a~O[*]OVla$wla~O[*]O!W!tOVla$wla~On*PO{&WO!W*`O^%WXj%WX~P! _OjcO#j!UO~OjcO!|,XO~PBROZ*dO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O!|#`O~P!BoO#^*eO~P?tO!a*fO~Oj$`O!|,XO~P!BoO#W*hO~Oj#wi~P;_OV*kO!|#`O~PBROn#TO!Q#cO!|#`O!a$QX#T%eX~PBRO#T*lO~O#W*lO~O!a*mO~O!|#`Oi!_in!_i~PBRO!|#`Oi!bXn!bX!a!cX~PBROi!bXn!bX!a!cX~O!a*nO~Oj!qO!QnOi%ci~P*aO!V%bi!a%bi~P?tO!V*qO!a*rO!|#`O~PBRO!V*qO!|#`O~PBRO]*tO~O]*uO~O]*uOu*vO~O]%[i~P!>nO%O!eO!V%ra~On*|O!V%ra~O[+OOVli$wli~O%O+yO~P!4vO#k+QOV#iy$w#iy~O^+RO%O%_O~O]+SO~O!|,XOj#xq~PBROj#wq~P;_O!V+ZO!|#`O~PBRO]+[On+]O~O%O!eO!V%ri~O^#QOn'eO!V%bX~O#^+`O~P?tOj+aO~O^#VO!W#SO!|#`O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~OZ+cO~P!JvO!|#`O!a$Qi~PBRO!|#`Oi!bin!bi~PBRO!V+dO!|#`O~PBRO]+eO~O]+fO~Oi+iO#p+jO#q+kO~O^+lO%O%_O~Oi+pO#p+jO#q+kO~O!a+rO~O#^+sO~P?tO!a+tO~O]+uO~OZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXVeXneX!QeX#ReX#TeX#UeX$weX~O]eX]!TX!VeXieX!aeX~P!NUOjeX~P!NUOZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXn!TX!VeX~O]eX!V!TX~P#!gOh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~P#!gOZeX^eX^!TXj!TXneX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O]eXueX~P#$xO]$mXn$mXu$mX~PF|Oj$mXn$mX~P!7`On+|O]%eau%ea~On+}Oj%ea~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-OO!WaO!]!QO!phO!qhO%O+yO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~OZeX]!TX^UXhUXnUXn!TXrUXuUXwUX!PUX!QUX!WUX!W!TX!]UX%OUX%YUX~OnUX!QeX!aeX#TeX#WUX~P#$xOn+|O!|,YO]%eXu%eX~PBROn+}O!|,XOj%eX~PBRO^&OOV%ZXj%ZX$w%ZX]%ZXn%ZX!V%ZXu%ZX%`%ZX#T%ZX[%ZX!a%ZX~P?wO!|,YO]$man$mau$ma~PBRO!|,XOj$man$ma~PBRO%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~Oj!xi~P!+YOn!xiu!xi~P#,hO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%p!xi%q!xi~O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xij!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi~O!|!xi~P#/_On!xiu!xi~P#.TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi%p!xi%q!xi~O!|,WO~P#1^O!|,XO~P#/_O!|,YOn!xiu!xi~P#1^O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OZ!xi]!xi^!xi!W!xi%q!xi~O!|,WO~P#3QO!|,XOj!xi~P!/VO!|,YOn!xiu!xi~P#3QO!|,XOj#Pi~PBROV!TXZeX^mX!W!TX$w!TX~O%`!TX~P#5RO[!TXhmXnmXrmXwmX!PmX!QmX!WmX!]mX%OmX%YmX~P#5ROn#TO!Q,aO!|,XO#R#dOj`X#T%eX#U%eX~PBRO[oO^YOaoOdoOh!POr!pOw}O!P#hO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO%O+yO~P#6{O!Q-PO%O+xO~P#6{O!Q-QO%O+{O~P#6{O#T,bO#U,bO~O#W,cO~O^!hOh!POr-TOw}O!P-_O!Q-WO!W-^O!]-eO%O!eO%Y!fO~O^!hOh!POr-TOw}O!Q-`O!W-^O!]-eO%O!eO%Y!fO~O!P-VO~P#9zO%O+wO~P!4vO!P-XO~O!V-YO!|#`O~PBRO!V-ZO~O!V-[O~O!W-dO~OP%ka%Oa~",goto:"!FW%sPP%tP%wP%zP'SP'XPPPP'`'cP'u'uP)w'u-_PPP0j0m0qP1V4b1VP7s8WP1VP8a8d8hP8p8w1VPP1V8{<`?vPPCY-_-_-_PCdCuCxPC{DQ'u'uDV'uES'u'u'u'uGUIW'uPPJR'uJUMjMjMj'u! r! r!#SP!$`!%d!&d'cP'cPP'cP!&yP!'V!'^!&yP!'a!'h!'n!'w!&yP!'z!(R!&y!(U!(fPP!&yP!(x!)UPP!&y!)Y!)c!&yP!)g!)gP!&yP!&yP!)j!)m!&v!&yP!&yPPP!&yP!&yP!)q!)q!)w!)}!*U!*[!*d!*j!*p!*w!*}!+T!+Z!.q!.x!/O!/X!/m!/s!/z!0Q!0W!0^!0d!0jPPPPPPPPP!0p!1f!1k!1{!2kPP!7P!:^P!>u!?Z!?_!@Z!@fP!@p!D_!Df!Di!DuPPPPPPPPPPPP!FSR!aPRyO!WXOScw!R!T!U!W#O#k#n#u$R$X&O&j&u&|'W'Y']'})W)|*k*w+gQ#pzU#r{#s%uQ#x|U$T!S$U&pQ$^!VQ$y!lR)U'RVROS#nQ#t{T%t#s%uR#t{qrOScw!U!V!W#O#k#n&|'W'Y)W*k+g%PoOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%O]OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^#u!iW^!O!h!t!z#e#h#u#v#y#|#}$P$Q$T$W$v$x%W%Y%a%x%y&O&S&W&]&`&b&d&m'e'|'}(S([(c(i(o(|)l)|*P*Q*S*p*w*|+R+^+j+l,h-U-V-W-X-Y-Z-[-]-_-d'cbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR$O!PT&c#}&dW%`#R&z*d+cQ&Q#vS&V#y&]S&`#}&dR*Y(b'cZOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d%fWOSWYacmnw!O!U!V!W!X!Z!_!q!z#O#Q#S#T#V#^#_#`#a#b#c#h#i#j#k#n#v#|$f$v$x%W%Y%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(i(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S&b#}&d!{-]!h!t#e#u#y$P$Q$T$W%a%x%y&O&W&]&`&m'e'|'}(S([(c(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-dQ#v|S$v!j!pU&P#v$v,hZ,h#x&Q&U&V-TS%{#u&OV){'})|*wR#z}T&[#y&]]&X#y&](S([(o*QZ&Z#y&](S(o*QT([&Y(]'s_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d'r_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!w^'bbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&a#}&dR(d&bS!u]fX!x`&_(e(oQ!r[Q%O!qQ)d'aU)f'b)i*oR+X*nR%R!qR%P!qV)h'b)i*oV)g'b)i*odtOScw#O#k#n&|'Y+gQ$h!WQ&R#wQ&w$[S'S$c$iQ(V&TQ*O(RQ*V(WQ*b(yQ*c(zR+_+Q%PfOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%PgOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^!q#Weg!o!y$[$_$c$j$m$q$}%^%b%d%m'V'p(z({)S)Y)^)c)e)q)t*i*s+T+V+W+Y,f,g,i,j,w,z-aR#fh#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z[,V%^,f,i,p,s,v`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q!Y#^e!y$j$m$q$}%b%d%i%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aY,Q!o,k,n,q,tl,R$[$_$c(z)S*i,g,j,l,o,r,u,w,z_,S%^,f,i,m,p,s,v!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z],V%^,f,i,p,s,v!S#ae!y$j$m$q$}%b%d%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aS,Z!o,tf,[$[$_$c(z)S*i,g,j,u,w,zX,]%^,f,i,v!Q#be!y$j$m$q$}%b%d%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aQ,^!od,_$[$_$c(z)S*i,g,j,w,zV,`%^,f,iprOScw!U!V!W#O#k#n&|'W'Y)W*k+gR)a']etOScw#O#k#n&|'Y+gQ$S!RT&i$R&jR$S!RQ$V!ST&o$U&pQ&U#xR&m$TS(T&S&lV*{*S*|+^R$V!SQ$Y!TT&t$X&uR$Y!TdsOScw#O#k#n&|'Y+gT$p![!]dtOScw#O#k#n&|'Y+gQ*b(yR+_+QQ$a!VQ&{$_Q)T'RR*g)ST&|$`&}Q+b+SQ+m+fR+v+uT+g+a+hR$i!WR$l!YT'Y$k'ZXuOSw#nQ$s!`R'_$sSSO#nR!dSQ%u#sR'y%uUwOS#nR#mwQ&d#}R(g&dQ(c&`R*Z(cS!mX$^R$z!mQ(O%{R)}(OQ&]#yR(_&]Q(]&YR*X(]'r^OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!v^S'f%T+PR)m'fQ'c%RR)j'cW#Oc&|'Y+gR%[#O^#Ue$[$_$c$m)^,zU%e#U,O,PQ,O,fR,P,gQ&j$RR(m&jS*Q(S(oR*y*QQ*T(TR*}*TQ&p$UR(r&pQ&u$XR(w&uQ&}$`R)O&}Q+h+aR+o+hQ'Z$kR)['ZQ!cRQ#luQ#nyQ%Z!|Q&x$]Q'R$bQ'x%tQ(^&[Q(f&cQ(l&iQ(q&oR(v&tVxOS#nWuOSw#nY!|c#O&|'Y+gR%r#kdtOScw#O#k#n&|'Y+gQ$]!UQ$b!VQ$g!WQ)X'WQ*j)WR+U*kdeOScw#O#k#n&|'Y+gQ!oYQ!ya`#gmn,{,|,}-O-P-QQ$[!UQ$_!VQ$c!WQ$j!Xd$m!Z#i#j&g&s'P'T'U(k(tQ$q!_Q$}!qQ%^#QQ%b#SQ%d#TW%h#^,Q,R,SQ%i#_Q%j#`Q%k#aQ%l#bQ%m#cQ'V$fQ'p%cQ(z&xQ({&yQ)S'RQ)Y'XQ)^']Q)c'aU)e'b)i*oQ)q'oQ)t'rQ*i)VQ*s)sQ+T*hQ+V*lQ+W*nQ+Y*rS,f#V'wS,g,b,cQ,i+|Q,j+}Q,k,TQ,l,UQ,m,VQ,n,WQ,o,XQ,p,YQ,q,ZQ,r,[Q,s,]Q,t,^Q,u,_Q,v,`Q,w,aU,z'W)W*kV-a&l*`-^#bZW!O!h!t!z#e#h#u#v#y#|$P$Q$T$W$v$x%W%Y%a%x%y&O&W&]&`&m'e'|'}(S([(c(i(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-d%P[OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^$zdOSacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S!gW-]Q!nYS#{!O-_Q$u!hS%T!t+jS%X!z-UQ%n#e[%o#h#|$x-V-W-XW%w#u'})|*wU&P#v$v,h[&X#y&](S([(o*QQ&f$PQ&h$QQ&n$TQ&r$WS'h%W-YS'i%Y-ZW'l%a(|+R+lS'{%x%yQ(Q&OQ(Y&WQ(d&`Q(p&mU)k'e)l*pQ)z'|Q*[(cS*^(i-[Q+P*`R-c-dS#w|!pS$w!j-TQ&T#xQ(R&QQ(W&UR(X&VT%|#u&OhqOScw!U!V#O#k#n&|'Y+gU$Q!R$R&jU$W!T$X&uQ$e!WY%y#u&O'})|*wQ)`']V-S'W)W*kS&[#y&]S*R(S(oR*z*QY&Y#y&](S(o*QR*W(['``OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&_#}&dW(S&S*S*|+^Q(e&bQ(o&lR*x*PS%U!t*`R+q+jR%S!qQ#PcQ(}&|Q)Z'YR+n+ghpOScw!U!V#O#k#n&|'Y+gQ$d!WQ$n!ZQ%g#VU%p#i'T,bU%q#j'U,cQ(j&gQ(u&sQ)Q'PQ)_']Q)y'wQ*_(kQ*a(tV-R'W)W*kT(U&S&l",nodeNames:"⚠ LineComment BlockComment SourceFile PackageClause package DefName ; ImportDecl import ImportSpec . String ) ( SpecList ExprStatement Number Bool Nil Rune VariableName TypedLiteral StructType struct } { StructBody FieldDecl FieldName , PointerType * FunctionType func Parameters Parameter ... InterfaceType interface InterfaceBody MethodElem UnderlyingType ~ TypeElem LogicOp ChannelType chan <- ParenthesizedType QualifiedType TypeName ParameterizedType ] [ TypeArgs ArrayType SliceType MapType map LiteralValue Element Key : Element Key ParenthesizedExpr FunctionLiteral Block Conversion SelectorExpr IndexExpr SliceExpr TypeAssertion CallExpr ParameterizedExpr Arguments CallExpr make new Arguments UnaryExp ArithOp LogicOp BitOp DerefOp BinaryExp ArithOp BitOp BitOp CompareOp LogicOp LogicOp SendStatement IncDecStatement IncDecOp Assignment = UpdateOp VarDecl := ConstDecl const ConstSpec SpecList TypeDecl type TypeSpec TypeParams TypeParam SpecList VarDecl var VarSpec SpecList LabeledStatement LabelName IfStatement if else SwitchStatement switch SwitchBlock Case case default TypeSwitchStatement SwitchBlock Case ForStatement for ForClause RangeClause range GoStatement go SelectStatement select SelectBlock Case ReceiveStatement ReturnStatement return GotoStatement break continue goto FallthroughStatement fallthrough DeferStatement defer FunctionDecl MethodDecl",maxTerm:218,context:iO,nodeProps:[["isolate",-3,2,12,20,""],["group",-18,12,17,18,19,20,21,22,66,67,69,70,71,72,73,74,77,81,86,"Expr",-20,16,68,93,94,96,99,101,105,111,115,117,120,126,129,134,136,141,143,147,149,"Statement",-12,23,31,33,38,46,49,50,51,52,56,57,58,"Type"],["openedBy",13,"(",25,"{",53,"["],["closedBy",14,")",26,"}",54,"]"]],propSources:[XO],skippedNodes:[0,1,2,153],repeatNodeCount:23,tokenData:":b~RvXY#iYZ#i]^#ipq#iqr#zrs$Xuv&Pvw&^wx&yxy(qyz(vz{({{|)T|})e}!O)j!O!P)u!P!Q+}!Q!R,y!R![-t![!]2^!]!^2k!^!_2p!_!`3]!`!a3e!c!}3x!}#O4j#P#Q4o#Q#R4t#R#S4|#S#T9X#T#o3x#o#p9q#p#q9v#q#r:W#r#s:]$g;'S3x;'S;=`4d<%lO3x~#nS$y~XY#iYZ#i]^#ipq#iU$PP%hQ!_!`$SS$XO!|S~$^W[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y<%lO$X~${O[~~%ORO;'S$X;'S;=`%X;=`O$X~%^X[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y;=`<%l$X<%lO$X~%|P;=`<%l$X~&UP%l~!_!`&X~&^O#U~~&cR%j~vw&l!_!`&X#Q#R&q~&qO%p~~&vP%o~!_!`&X~'OWd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k<%lO&y~'mOd~~'pRO;'S&y;'S;=`'y;=`O&y~(OXd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k;=`<%l&y<%lO&y~(nP;=`<%l&y~(vO^~~({O]~~)QP%Y~!_!`&X~)YQ%f~{|)`!_!`&X~)eO#R~~)jOn~~)oQ%g~}!O)`!_!`&X~)zRZS!O!P*T!Q![*`#R#S+w~*WP!O!P*Z~*`Ou~Q*eTaQ!Q![*`!g!h*t#R#S+w#X#Y*t#]#^+rQ*wS{|+T}!O+T!Q![+^#R#S+lQ+WQ!Q![+^#R#S+lQ+cRaQ!Q![+^#R#S+l#]#^+rQ+oP!Q![+^Q+wOaQQ+zP!Q![*`~,SR%k~z{,]!P!Q,b!_!`&X~,bO$z~~,gSP~OY,bZ;'S,b;'S;=`,s<%lO,b~,vP;=`<%l,bQ-O[aQ!O!P*`!Q![-t!d!e.c!g!h*t!q!r/Z!z!{/x#R#S.]#U#V.c#X#Y*t#]#^+r#c#d/Z#l#m/xQ-yUaQ!O!P*`!Q![-t!g!h*t#R#S.]#X#Y*t#]#^+rQ.`P!Q![-tQ.fR!Q!R.o!R!S.o#R#S/QQ.tSaQ!Q!R.o!R!S.o#R#S/Q#]#^+rQ/TQ!Q!R.o!R!S.oQ/^Q!Q!Y/d#R#S/rQ/iRaQ!Q!Y/d#R#S/r#]#^+rQ/uP!Q!Y/dQ/{T!O!P0[!Q![1c!c!i1c#R#S2Q#T#Z1cQ0_S!Q![0k!c!i0k#R#S1V#T#Z0kQ0pVaQ!Q![0k!c!i0k!r!s*t#R#S1V#T#Z0k#]#^+r#d#e*tQ1YR!Q![0k!c!i0k#T#Z0kQ1hWaQ!O!P0k!Q![1c!c!i1c!r!s*t#R#S2Q#T#Z1c#]#^+r#d#e*tQ2TR!Q![1c!c!i1c#T#Z1c~2cP!a~!_!`2f~2kO#W~~2pOV~~2uR!|S}!O3O!^!_3T!_!`$S~3TO!Q~~3YP%m~!_!`&X~3bP#T~!_!`$S~3jQ!|S!_!`$S!`!a3p~3uP%n~!_!`&X~3}V%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~4gP;=`<%l3x~4oO!W~~4tO!V~~4yP%i~!_!`&X~5RV%O~!Q![5h!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~5o^aQ%O~!O!P*`!Q![5h!c!g3x!g!h6k!h!}3x#R#S4|#T#X3x#X#Y6k#Y#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~6pX%O~{|+T}!O+T!Q![7]!c!}3x#R#S8P#T#o3x$g;'S3x;'S;=`4d<%lO3x~7dXaQ%O~!Q![7]!c!}3x#R#S8P#T#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~8UV%O~!Q![7]!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~8rVaQ%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~9[TO#S9X#S#T$v#T;'S9X;'S;=`9k<%lO9X~9nP;=`<%l9X~9vOj~~9{Q%`~!_!`&X#p#q:R~:WO%q~~:]Oi~~:bO{~",tokenizers:[aO,1,2,new Y("j~RQYZXz{^~^O$|~~aP!P!Qd~iO$}~~",25,181)],topRules:{SourceFile:[0,3]},dynamicPrecedences:{19:1,51:-1,55:2,69:-1,108:-1},specialized:[{term:184,get:Q=>nO[Q]||-1}],tokenPrec:5451}),oO=[X("func ${name}(${params}) ${type} {\n ${}\n}",{label:"func",detail:"declaration",type:"keyword"}),X("func (${receiver}) ${name}(${params}) ${type} {\n ${}\n}",{label:"func",detail:"method declaration",type:"keyword"}),X("var ${name} = ${value}",{label:"var",detail:"declaration",type:"keyword"}),X("type ${name} ${type}",{label:"type",detail:"declaration",type:"keyword"}),X("const ${name} = ${value}",{label:"const",detail:"declaration",type:"keyword"}),X("type ${name} = ${type}",{label:"type",detail:"alias declaration",type:"keyword"}),X("for ${init}; ${test}; ${update} {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),X("for ${i} := range ${value} {\n ${}\n}",{label:"for",detail:"range",type:"keyword"}),X(`select { +import{L as s,E as R,a as Y,C as x}from"./index-q_Op_mkr.js";import{J as w,Q as O,g as d,L as k,z as h,v as f,r as l,u,x as y,w as g,O as j,j as U,I as G}from"./FileExplorer-BGCt84ef.js";import{i as b,c as Z,s as X}from"./index-Bc7PlSwi.js";import"./useI18n-CnvN0FfF.js";import"./index-BH9vIdLD.js";import"./prefsSync-D8z1rJ8H.js";import"./client-2UEf7AK8.js";import"./Switch-CpxGRRqY.js";import"./auth-Dhl8fEWW.js";const _=177,q=179,E=184,v=12,C=13,D=17,z=20,F=25,B=53,N=95,I=142,L=144,A=145,J=148,M=10,H=13,K=32,OO=9,$=47,QO=41,eO=125,aO=new R((Q,e)=>{for(let n=0,a=Q.next;(e.context&&(a<0||a==M||a==H||a==$&&Q.peek(n+1)==$)||a==QO||a==eO)&&Q.acceptToken(_),!(a!=K&&a!=OO);)a=Q.peek(++n)},{contextual:!0});let tO=new Set([N,E,z,v,D,L,A,I,J,C,B,F]);const iO=new x({start:!1,shift:(Q,e)=>e==q?Q:tO.has(e)}),XO=w({"func interface struct chan map const type var":O.definitionKeyword,"import package":O.moduleKeyword,"switch for go select return break continue goto fallthrough case if else defer":O.controlKeyword,range:O.keyword,Bool:O.bool,String:O.string,Rune:O.character,Number:O.number,Nil:O.null,VariableName:O.variableName,DefName:O.definition(O.variableName),TypeName:O.typeName,LabelName:O.labelName,FieldName:O.propertyName,"FunctionDecl/DefName":O.function(O.definition(O.variableName)),"TypeSpec/DefName":O.definition(O.typeName),"CallExpr/VariableName":O.function(O.variableName),LineComment:O.lineComment,BlockComment:O.blockComment,LogicOp:O.logicOperator,ArithOp:O.arithmeticOperator,BitOp:O.bitwiseOperator,"DerefOp .":O.derefOperator,"UpdateOp IncDecOp":O.updateOperator,CompareOp:O.compareOperator,"= :=":O.definitionOperator,"<-":O.operator,'~ "*"':O.modifier,"; ,":O.separator,"... :":O.punctuation,"( )":O.paren,"[ ]":O.squareBracket,"{ }":O.brace}),nO={__proto__:null,package:10,import:18,true:380,false:380,nil:383,struct:48,func:68,interface:78,chan:94,map:118,make:157,new:159,const:204,type:212,var:224,if:236,else:238,switch:242,case:248,default:250,for:260,range:266,go:270,select:274,return:284,break:288,continue:290,goto:292,fallthrough:296,defer:300},PO=s.deserialize({version:14,states:"!=xO#{QQOOP$SOQOOO&UQTO'#CbO&]QRO'#FlO]QQOOOOQP'#Cn'#CnOOQP'#Co'#CoO&eQQO'#C|O(kQQO'#C{O)]QRO'#GiO+tQQO'#D_OOQP'#Ge'#GeO+{QQO'#GeO.aQTO'#GaO.hQQO'#D`OOQP'#Gm'#GmO.mQRO'#GdO/hQQO'#DgOOQP'#Gd'#GdO/uQQO'#DrO2bQQO'#DsO4QQTO'#GqO,^QTO'#GaO4XQQO'#DxO4^QQO'#D{OOQO'#EQ'#EQOOQO'#ER'#EROOQO'#ES'#ESOOQO'#ET'#ETO4cQQO'#EPO5}QQO'#EPOOQP'#Ga'#GaO6UQQO'#E`O6^QQO'#EcOOQP'#G`'#G`O6cQQO'#EsOOQP'#G_'#G_O&]QRO'#FnOOQO'#Fn'#FnO9QQQO'#G^QOQQOOO&]QROOO9XQQO'#C`O9^QSO'#CdO9lQQO'#C}O9tQQO'#DSO9yQQO'#D[O:kQQO'#CsO:pQQO'#DhO:uQQO'#EeO:}QQO'#EiO;VQQO'#EoO;_QQO'#EuOPQSO7+%hOOQP7+%h7+%hO4cQQO7+%hOOQP1G0Q1G0QO!>^QQO1G0QOOQP1G0U1G0UO!>fQQO1G0UOF|QQO1G0UOOQO,5nAN>nO4cQQOAN>nO!IsQSOAN>nOOQP<nQQO'#FrOOQO,5vAN>vO!LtQQOAN>vP.hQQO'#F|OOQPG25XG25XO!LyQQOG25bO!MOQQO'#FPOOQPG25bG25bO!MZQQOG25bOOQPLD)tLD)tOOQPG24bG24bO!JqQQOLD*|O!9OQQO'#GQO!McQQO,5;kOOQP,5;k,5;kO?tQQO'#FQO!MnQQO'#FQO!MsQQOLD*|OOQP!$'Nh!$'NhOOQO,5VO^!hOh!POr-TOw}O!P-_O!Q-`O!W-^O!]-eO%O!eO%Y!fO~OZ!sO~O^#uO~O!P$xO~On!lO#W%]aV%]a^%]ah%]ar%]aw%]a!P%]a!Q%]a!W%]a!]%]a#T%]a$w%]a%O%]a%Y%]au%]a~O]${O^#QO~OZ#RO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O]$|O!|,WO~PBROj!qOn%QO!QnOi%cP~P*aO!V%WO!|#`O~PBRO!V%YO~OV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oi%dX#p%dX#q%dX~PDQOi%]O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-QO!WaO!]!QO!phO!qhO%O+{O%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^%aO%O%_O~O!QnO!a%cO~P*aO!QnOn$mX#T$mX#U$mXV$mX$w$mX!a$mX~P*aOn#TO#T%ea#U%eaV%ea$w%ea!a%ea~O]%fO~PF|OV#ga$w#ga~PDTO[%sO~OZ#rO[#qO]%vO%O#oO~O^!hOh!POn%zOr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO]%[P~O^&OOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%Y!fO^%ZXj%ZX~O%O%}O~PKfOjcO^qa]qanqa!Vqa~O^#uO!W&SO~O^!hOh!POr-TOw}O{&WO!P-_O!Q-`O!W-^O!]-eO%O,xO%Y!fO~Oi&^O~PL{O^!hOh!POr!jOw}O!Q!kO!WaO!]!QO%O!eO%Y!fO~O!P#hO~PMwOi&eO%O,yO%Y!fO~O#T&gOV#ZX$w#ZX~P?tO]&kO%O#oO~O^!hOh!POr-TOw}O!P-_O!Q-`O!]-eO%O!eO%Y!fO~O!W&lO#T&mO~P! _O]&qO%O#oO~O#T&sOV#eX$w#eX~P?tO]&vO%O#oO~OjeX~P$XOjcO!|,XO~P2gOn!lO#W&yO#W%]X~O^#VOn#TO!Q#cO!W#SO!|,XO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX~OZ&zOj$`O$w`X~P!#cOi'OO#p'PO#q'QO~OZ#ROjcO~P!#cO#T'TO#U#iO~O#W'UO~OV'WO!QnO~P*aOV'XO~OjcO~O!|#`OV#za$w#za~PBROi'[O#p']O#q'^O~On#TO!|#`OV%eX$w%eX!a%eX~PBRO!|#`OV$Za$w$Za~PBRO${$rO$|$rO$}'`O~O]${O~O%O!eO]%ZXn%ZX!V%ZX~PKfO!|#`Oi!_Xn!_X!a!`X~PBROi!_Xn!_X!a!`X~O!a'aO~On'bOi%cX~Oi'dO~On'eO!V%bX!a%bX~O!V'gO~O]'jOn'kO!|,YO~PBROn'nO!V'mO!a'oO!|#`O~PBRO!QnO!V'qO!a'rO~P*aO!|#`On$ma#T$ma#U$maV$ma$w$ma!a$ma~PBRO]'sOu'tO~O%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi!|!xi#R!xi#T!xi#U!xi$w!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~O!V!xii!xi!a!xi~P!+YO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi!V!xii!xi!a!xi~O!|!xi~P!-TO!|#`O~P!-TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%q!xi~O!|#`O!V!xii!xi!a!xi~P!/VO!|#`OV#Pi$w#Pi!a#Pi~PBRO]'uOn'wOu'vO~OZ#rO[#qO]'zO%O#oO~Ou'|O~P?tOn'}O]%[X~O](PO~OZeX^mX^!TXj!TX!W!TX~OjcOV$]i$w$]i~O%`(ZOV%^X$w%^Xn%^X!V%^X~Oi(`O~PL{O[(aO!W!tOVlX$wlX~On(bO~P?tO[(aOVlX$wlX~Oi(hO%O,yO%Y!fO~O!V(iO~O#T(kO~O](nO%O#oO~O[oO^YOaoOdoOh!POr!pOu-bOw}O!P!OO!QnO!V-UO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O+zO~P!4vO](sO%O#oO~O#T(tOV#ea$w#ea~O](xO%O#oO~O#k(yOV#ii$w#ii~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O+xO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^(|O%O%_O~O#p%dP#q%dP~P/uOi)PO#p'PO#q'QO~O!a)RO~O!QnO#y)VO~P*aOV)WO!|#`O~PBROj#wa~P;_OV)WO!QnO~P*aOi)]O#p']O#q'^O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O,eO~P!:lO!a)bO~Oj!qO!QnO~P*aOj!qO!QnOi%ca~P*aOn)iOi%ca~O!V%ba!a%ba~P?tOn)lO!V%ba!a%ba~O])nO~O])oO~O!V)pO~O!QnO!V)rO!a)sO~P*aO!V)rO!a)sO!|#`O~PBRO])uOn)vO~O])wOn)xO~O^!hOh!POr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO~O]%[a~P!>nOn)|O]%[a~O]${O]tXntX~OjcOV$^q$w$^q~On*PO{&WO~P?tOn*SO!V%rX~O!V*UO~OjcOV$]q$w$]q~O%`(ZOV|a$w|an|a!V|a~O[*]OVla$wla~O[*]O!W!tOVla$wla~On*PO{&WO!W*`O^%WXj%WX~P! _OjcO#j!UO~OjcO!|,XO~PBROZ*dO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O!|#`O~P!BoO#^*eO~P?tO!a*fO~Oj$`O!|,XO~P!BoO#W*hO~Oj#wi~P;_OV*kO!|#`O~PBROn#TO!Q#cO!|#`O!a$QX#T%eX~PBRO#T*lO~O#W*lO~O!a*mO~O!|#`Oi!_in!_i~PBRO!|#`Oi!bXn!bX!a!cX~PBROi!bXn!bX!a!cX~O!a*nO~Oj!qO!QnOi%ci~P*aO!V%bi!a%bi~P?tO!V*qO!a*rO!|#`O~PBRO!V*qO!|#`O~PBRO]*tO~O]*uO~O]*uOu*vO~O]%[i~P!>nO%O!eO!V%ra~On*|O!V%ra~O[+OOVli$wli~O%O+yO~P!4vO#k+QOV#iy$w#iy~O^+RO%O%_O~O]+SO~O!|,XOj#xq~PBROj#wq~P;_O!V+ZO!|#`O~PBRO]+[On+]O~O%O!eO!V%ri~O^#QOn'eO!V%bX~O#^+`O~P?tOj+aO~O^#VO!W#SO!|#`O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~OZ+cO~P!JvO!|#`O!a$Qi~PBRO!|#`Oi!bin!bi~PBRO!V+dO!|#`O~PBRO]+eO~O]+fO~Oi+iO#p+jO#q+kO~O^+lO%O%_O~Oi+pO#p+jO#q+kO~O!a+rO~O#^+sO~P?tO!a+tO~O]+uO~OZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXVeXneX!QeX#ReX#TeX#UeX$weX~O]eX]!TX!VeXieX!aeX~P!NUOjeX~P!NUOZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXn!TX!VeX~O]eX!V!TX~P#!gOh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~P#!gOZeX^eX^!TXj!TXneX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O]eXueX~P#$xO]$mXn$mXu$mX~PF|Oj$mXn$mX~P!7`On+|O]%eau%ea~On+}Oj%ea~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-OO!WaO!]!QO!phO!qhO%O+yO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~OZeX]!TX^UXhUXnUXn!TXrUXuUXwUX!PUX!QUX!WUX!W!TX!]UX%OUX%YUX~OnUX!QeX!aeX#TeX#WUX~P#$xOn+|O!|,YO]%eXu%eX~PBROn+}O!|,XOj%eX~PBRO^&OOV%ZXj%ZX$w%ZX]%ZXn%ZX!V%ZXu%ZX%`%ZX#T%ZX[%ZX!a%ZX~P?wO!|,YO]$man$mau$ma~PBRO!|,XOj$man$ma~PBRO%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~Oj!xi~P!+YOn!xiu!xi~P#,hO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%p!xi%q!xi~O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xij!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi~O!|!xi~P#/_On!xiu!xi~P#.TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi%p!xi%q!xi~O!|,WO~P#1^O!|,XO~P#/_O!|,YOn!xiu!xi~P#1^O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OZ!xi]!xi^!xi!W!xi%q!xi~O!|,WO~P#3QO!|,XOj!xi~P!/VO!|,YOn!xiu!xi~P#3QO!|,XOj#Pi~PBROV!TXZeX^mX!W!TX$w!TX~O%`!TX~P#5RO[!TXhmXnmXrmXwmX!PmX!QmX!WmX!]mX%OmX%YmX~P#5ROn#TO!Q,aO!|,XO#R#dOj`X#T%eX#U%eX~PBRO[oO^YOaoOdoOh!POr!pOw}O!P#hO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO%O+yO~P#6{O!Q-PO%O+xO~P#6{O!Q-QO%O+{O~P#6{O#T,bO#U,bO~O#W,cO~O^!hOh!POr-TOw}O!P-_O!Q-WO!W-^O!]-eO%O!eO%Y!fO~O^!hOh!POr-TOw}O!Q-`O!W-^O!]-eO%O!eO%Y!fO~O!P-VO~P#9zO%O+wO~P!4vO!P-XO~O!V-YO!|#`O~PBRO!V-ZO~O!V-[O~O!W-dO~OP%ka%Oa~",goto:"!FW%sPP%tP%wP%zP'SP'XPPPP'`'cP'u'uP)w'u-_PPP0j0m0qP1V4b1VP7s8WP1VP8a8d8hP8p8w1VPP1V8{<`?vPPCY-_-_-_PCdCuCxPC{DQ'u'uDV'uES'u'u'u'uGUIW'uPPJR'uJUMjMjMj'u! r! r!#SP!$`!%d!&d'cP'cPP'cP!&yP!'V!'^!&yP!'a!'h!'n!'w!&yP!'z!(R!&y!(U!(fPP!&yP!(x!)UPP!&y!)Y!)c!&yP!)g!)gP!&yP!&yP!)j!)m!&v!&yP!&yPPP!&yP!&yP!)q!)q!)w!)}!*U!*[!*d!*j!*p!*w!*}!+T!+Z!.q!.x!/O!/X!/m!/s!/z!0Q!0W!0^!0d!0jPPPPPPPPP!0p!1f!1k!1{!2kPP!7P!:^P!>u!?Z!?_!@Z!@fP!@p!D_!Df!Di!DuPPPPPPPPPPPP!FSR!aPRyO!WXOScw!R!T!U!W#O#k#n#u$R$X&O&j&u&|'W'Y']'})W)|*k*w+gQ#pzU#r{#s%uQ#x|U$T!S$U&pQ$^!VQ$y!lR)U'RVROS#nQ#t{T%t#s%uR#t{qrOScw!U!V!W#O#k#n&|'W'Y)W*k+g%PoOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%O]OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^#u!iW^!O!h!t!z#e#h#u#v#y#|#}$P$Q$T$W$v$x%W%Y%a%x%y&O&S&W&]&`&b&d&m'e'|'}(S([(c(i(o(|)l)|*P*Q*S*p*w*|+R+^+j+l,h-U-V-W-X-Y-Z-[-]-_-d'cbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR$O!PT&c#}&dW%`#R&z*d+cQ&Q#vS&V#y&]S&`#}&dR*Y(b'cZOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d%fWOSWYacmnw!O!U!V!W!X!Z!_!q!z#O#Q#S#T#V#^#_#`#a#b#c#h#i#j#k#n#v#|$f$v$x%W%Y%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(i(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S&b#}&d!{-]!h!t#e#u#y$P$Q$T$W%a%x%y&O&W&]&`&m'e'|'}(S([(c(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-dQ#v|S$v!j!pU&P#v$v,hZ,h#x&Q&U&V-TS%{#u&OV){'})|*wR#z}T&[#y&]]&X#y&](S([(o*QZ&Z#y&](S(o*QT([&Y(]'s_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d'r_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!w^'bbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&a#}&dR(d&bS!u]fX!x`&_(e(oQ!r[Q%O!qQ)d'aU)f'b)i*oR+X*nR%R!qR%P!qV)h'b)i*oV)g'b)i*odtOScw#O#k#n&|'Y+gQ$h!WQ&R#wQ&w$[S'S$c$iQ(V&TQ*O(RQ*V(WQ*b(yQ*c(zR+_+Q%PfOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%PgOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^!q#Weg!o!y$[$_$c$j$m$q$}%^%b%d%m'V'p(z({)S)Y)^)c)e)q)t*i*s+T+V+W+Y,f,g,i,j,w,z-aR#fh#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z[,V%^,f,i,p,s,v`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q!Y#^e!y$j$m$q$}%b%d%i%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aY,Q!o,k,n,q,tl,R$[$_$c(z)S*i,g,j,l,o,r,u,w,z_,S%^,f,i,m,p,s,v!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z],V%^,f,i,p,s,v!S#ae!y$j$m$q$}%b%d%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aS,Z!o,tf,[$[$_$c(z)S*i,g,j,u,w,zX,]%^,f,i,v!Q#be!y$j$m$q$}%b%d%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aQ,^!od,_$[$_$c(z)S*i,g,j,w,zV,`%^,f,iprOScw!U!V!W#O#k#n&|'W'Y)W*k+gR)a']etOScw#O#k#n&|'Y+gQ$S!RT&i$R&jR$S!RQ$V!ST&o$U&pQ&U#xR&m$TS(T&S&lV*{*S*|+^R$V!SQ$Y!TT&t$X&uR$Y!TdsOScw#O#k#n&|'Y+gT$p![!]dtOScw#O#k#n&|'Y+gQ*b(yR+_+QQ$a!VQ&{$_Q)T'RR*g)ST&|$`&}Q+b+SQ+m+fR+v+uT+g+a+hR$i!WR$l!YT'Y$k'ZXuOSw#nQ$s!`R'_$sSSO#nR!dSQ%u#sR'y%uUwOS#nR#mwQ&d#}R(g&dQ(c&`R*Z(cS!mX$^R$z!mQ(O%{R)}(OQ&]#yR(_&]Q(]&YR*X(]'r^OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!v^S'f%T+PR)m'fQ'c%RR)j'cW#Oc&|'Y+gR%[#O^#Ue$[$_$c$m)^,zU%e#U,O,PQ,O,fR,P,gQ&j$RR(m&jS*Q(S(oR*y*QQ*T(TR*}*TQ&p$UR(r&pQ&u$XR(w&uQ&}$`R)O&}Q+h+aR+o+hQ'Z$kR)['ZQ!cRQ#luQ#nyQ%Z!|Q&x$]Q'R$bQ'x%tQ(^&[Q(f&cQ(l&iQ(q&oR(v&tVxOS#nWuOSw#nY!|c#O&|'Y+gR%r#kdtOScw#O#k#n&|'Y+gQ$]!UQ$b!VQ$g!WQ)X'WQ*j)WR+U*kdeOScw#O#k#n&|'Y+gQ!oYQ!ya`#gmn,{,|,}-O-P-QQ$[!UQ$_!VQ$c!WQ$j!Xd$m!Z#i#j&g&s'P'T'U(k(tQ$q!_Q$}!qQ%^#QQ%b#SQ%d#TW%h#^,Q,R,SQ%i#_Q%j#`Q%k#aQ%l#bQ%m#cQ'V$fQ'p%cQ(z&xQ({&yQ)S'RQ)Y'XQ)^']Q)c'aU)e'b)i*oQ)q'oQ)t'rQ*i)VQ*s)sQ+T*hQ+V*lQ+W*nQ+Y*rS,f#V'wS,g,b,cQ,i+|Q,j+}Q,k,TQ,l,UQ,m,VQ,n,WQ,o,XQ,p,YQ,q,ZQ,r,[Q,s,]Q,t,^Q,u,_Q,v,`Q,w,aU,z'W)W*kV-a&l*`-^#bZW!O!h!t!z#e#h#u#v#y#|$P$Q$T$W$v$x%W%Y%a%x%y&O&W&]&`&m'e'|'}(S([(c(i(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-d%P[OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^$zdOSacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S!gW-]Q!nYS#{!O-_Q$u!hS%T!t+jS%X!z-UQ%n#e[%o#h#|$x-V-W-XW%w#u'})|*wU&P#v$v,h[&X#y&](S([(o*QQ&f$PQ&h$QQ&n$TQ&r$WS'h%W-YS'i%Y-ZW'l%a(|+R+lS'{%x%yQ(Q&OQ(Y&WQ(d&`Q(p&mU)k'e)l*pQ)z'|Q*[(cS*^(i-[Q+P*`R-c-dS#w|!pS$w!j-TQ&T#xQ(R&QQ(W&UR(X&VT%|#u&OhqOScw!U!V#O#k#n&|'Y+gU$Q!R$R&jU$W!T$X&uQ$e!WY%y#u&O'})|*wQ)`']V-S'W)W*kS&[#y&]S*R(S(oR*z*QY&Y#y&](S(o*QR*W(['``OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&_#}&dW(S&S*S*|+^Q(e&bQ(o&lR*x*PS%U!t*`R+q+jR%S!qQ#PcQ(}&|Q)Z'YR+n+ghpOScw!U!V#O#k#n&|'Y+gQ$d!WQ$n!ZQ%g#VU%p#i'T,bU%q#j'U,cQ(j&gQ(u&sQ)Q'PQ)_']Q)y'wQ*_(kQ*a(tV-R'W)W*kT(U&S&l",nodeNames:"⚠ LineComment BlockComment SourceFile PackageClause package DefName ; ImportDecl import ImportSpec . String ) ( SpecList ExprStatement Number Bool Nil Rune VariableName TypedLiteral StructType struct } { StructBody FieldDecl FieldName , PointerType * FunctionType func Parameters Parameter ... InterfaceType interface InterfaceBody MethodElem UnderlyingType ~ TypeElem LogicOp ChannelType chan <- ParenthesizedType QualifiedType TypeName ParameterizedType ] [ TypeArgs ArrayType SliceType MapType map LiteralValue Element Key : Element Key ParenthesizedExpr FunctionLiteral Block Conversion SelectorExpr IndexExpr SliceExpr TypeAssertion CallExpr ParameterizedExpr Arguments CallExpr make new Arguments UnaryExp ArithOp LogicOp BitOp DerefOp BinaryExp ArithOp BitOp BitOp CompareOp LogicOp LogicOp SendStatement IncDecStatement IncDecOp Assignment = UpdateOp VarDecl := ConstDecl const ConstSpec SpecList TypeDecl type TypeSpec TypeParams TypeParam SpecList VarDecl var VarSpec SpecList LabeledStatement LabelName IfStatement if else SwitchStatement switch SwitchBlock Case case default TypeSwitchStatement SwitchBlock Case ForStatement for ForClause RangeClause range GoStatement go SelectStatement select SelectBlock Case ReceiveStatement ReturnStatement return GotoStatement break continue goto FallthroughStatement fallthrough DeferStatement defer FunctionDecl MethodDecl",maxTerm:218,context:iO,nodeProps:[["isolate",-3,2,12,20,""],["group",-18,12,17,18,19,20,21,22,66,67,69,70,71,72,73,74,77,81,86,"Expr",-20,16,68,93,94,96,99,101,105,111,115,117,120,126,129,134,136,141,143,147,149,"Statement",-12,23,31,33,38,46,49,50,51,52,56,57,58,"Type"],["openedBy",13,"(",25,"{",53,"["],["closedBy",14,")",26,"}",54,"]"]],propSources:[XO],skippedNodes:[0,1,2,153],repeatNodeCount:23,tokenData:":b~RvXY#iYZ#i]^#ipq#iqr#zrs$Xuv&Pvw&^wx&yxy(qyz(vz{({{|)T|})e}!O)j!O!P)u!P!Q+}!Q!R,y!R![-t![!]2^!]!^2k!^!_2p!_!`3]!`!a3e!c!}3x!}#O4j#P#Q4o#Q#R4t#R#S4|#S#T9X#T#o3x#o#p9q#p#q9v#q#r:W#r#s:]$g;'S3x;'S;=`4d<%lO3x~#nS$y~XY#iYZ#i]^#ipq#iU$PP%hQ!_!`$SS$XO!|S~$^W[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y<%lO$X~${O[~~%ORO;'S$X;'S;=`%X;=`O$X~%^X[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y;=`<%l$X<%lO$X~%|P;=`<%l$X~&UP%l~!_!`&X~&^O#U~~&cR%j~vw&l!_!`&X#Q#R&q~&qO%p~~&vP%o~!_!`&X~'OWd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k<%lO&y~'mOd~~'pRO;'S&y;'S;=`'y;=`O&y~(OXd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k;=`<%l&y<%lO&y~(nP;=`<%l&y~(vO^~~({O]~~)QP%Y~!_!`&X~)YQ%f~{|)`!_!`&X~)eO#R~~)jOn~~)oQ%g~}!O)`!_!`&X~)zRZS!O!P*T!Q![*`#R#S+w~*WP!O!P*Z~*`Ou~Q*eTaQ!Q![*`!g!h*t#R#S+w#X#Y*t#]#^+rQ*wS{|+T}!O+T!Q![+^#R#S+lQ+WQ!Q![+^#R#S+lQ+cRaQ!Q![+^#R#S+l#]#^+rQ+oP!Q![+^Q+wOaQQ+zP!Q![*`~,SR%k~z{,]!P!Q,b!_!`&X~,bO$z~~,gSP~OY,bZ;'S,b;'S;=`,s<%lO,b~,vP;=`<%l,bQ-O[aQ!O!P*`!Q![-t!d!e.c!g!h*t!q!r/Z!z!{/x#R#S.]#U#V.c#X#Y*t#]#^+r#c#d/Z#l#m/xQ-yUaQ!O!P*`!Q![-t!g!h*t#R#S.]#X#Y*t#]#^+rQ.`P!Q![-tQ.fR!Q!R.o!R!S.o#R#S/QQ.tSaQ!Q!R.o!R!S.o#R#S/Q#]#^+rQ/TQ!Q!R.o!R!S.oQ/^Q!Q!Y/d#R#S/rQ/iRaQ!Q!Y/d#R#S/r#]#^+rQ/uP!Q!Y/dQ/{T!O!P0[!Q![1c!c!i1c#R#S2Q#T#Z1cQ0_S!Q![0k!c!i0k#R#S1V#T#Z0kQ0pVaQ!Q![0k!c!i0k!r!s*t#R#S1V#T#Z0k#]#^+r#d#e*tQ1YR!Q![0k!c!i0k#T#Z0kQ1hWaQ!O!P0k!Q![1c!c!i1c!r!s*t#R#S2Q#T#Z1c#]#^+r#d#e*tQ2TR!Q![1c!c!i1c#T#Z1c~2cP!a~!_!`2f~2kO#W~~2pOV~~2uR!|S}!O3O!^!_3T!_!`$S~3TO!Q~~3YP%m~!_!`&X~3bP#T~!_!`$S~3jQ!|S!_!`$S!`!a3p~3uP%n~!_!`&X~3}V%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~4gP;=`<%l3x~4oO!W~~4tO!V~~4yP%i~!_!`&X~5RV%O~!Q![5h!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~5o^aQ%O~!O!P*`!Q![5h!c!g3x!g!h6k!h!}3x#R#S4|#T#X3x#X#Y6k#Y#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~6pX%O~{|+T}!O+T!Q![7]!c!}3x#R#S8P#T#o3x$g;'S3x;'S;=`4d<%lO3x~7dXaQ%O~!Q![7]!c!}3x#R#S8P#T#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~8UV%O~!Q![7]!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~8rVaQ%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~9[TO#S9X#S#T$v#T;'S9X;'S;=`9k<%lO9X~9nP;=`<%l9X~9vOj~~9{Q%`~!_!`&X#p#q:R~:WO%q~~:]Oi~~:bO{~",tokenizers:[aO,1,2,new Y("j~RQYZXz{^~^O$|~~aP!P!Qd~iO$}~~",25,181)],topRules:{SourceFile:[0,3]},dynamicPrecedences:{19:1,51:-1,55:2,69:-1,108:-1},specialized:[{term:184,get:Q=>nO[Q]||-1}],tokenPrec:5451}),oO=[X("func ${name}(${params}) ${type} {\n ${}\n}",{label:"func",detail:"declaration",type:"keyword"}),X("func (${receiver}) ${name}(${params}) ${type} {\n ${}\n}",{label:"func",detail:"method declaration",type:"keyword"}),X("var ${name} = ${value}",{label:"var",detail:"declaration",type:"keyword"}),X("type ${name} ${type}",{label:"type",detail:"declaration",type:"keyword"}),X("const ${name} = ${value}",{label:"const",detail:"declaration",type:"keyword"}),X("type ${name} = ${type}",{label:"type",detail:"alias declaration",type:"keyword"}),X("for ${init}; ${test}; ${update} {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),X("for ${i} := range ${value} {\n ${}\n}",{label:"for",detail:"range",type:"keyword"}),X(`select { \${} }`,{label:"select",detail:"statement",type:"keyword"}),X("case ${}:\n${}",{label:"case",type:"keyword"}),X("switch ${} {\n ${}\n}",{label:"switch",detail:"statement",type:"keyword"}),X("switch ${}.(${type}) {\n ${}\n}",{label:"switch",detail:"type statement",type:"keyword"}),X("if ${} {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),X(`if \${} { \${} diff --git a/internal/relay/web-dist/assets/index-ZyB5w4NU.js b/internal/relay/web-dist/assets/index-Y0PF_oBA.js similarity index 99% rename from internal/relay/web-dist/assets/index-ZyB5w4NU.js rename to internal/relay/web-dist/assets/index-Y0PF_oBA.js index edc31d03..99467028 100644 --- a/internal/relay/web-dist/assets/index-ZyB5w4NU.js +++ b/internal/relay/web-dist/assets/index-Y0PF_oBA.js @@ -1 +1 @@ -import{L as r}from"./index-CPhFc1xe.js";import{J as e,Q as O,g as s,L as X,z as l,v as Y,r as $,u as S,x as o,w as t}from"./FileExplorer-BsSESYjF.js";import"./useI18n-CnvN0FfF.js";import"./index-C93ksU7R.js";import"./prefsSync-D8z1rJ8H.js";import"./client-2UEf7AK8.js";import"./Switch-CpxGRRqY.js";import"./auth-Dhl8fEWW.js";const Z=e({null:O.null,instanceof:O.operatorKeyword,this:O.self,"new super assert open to with void":O.keyword,"class interface extends implements enum var":O.definitionKeyword,"module package import":O.moduleKeyword,"switch while for if else case default do break continue return try catch finally throw":O.controlKeyword,"requires exports opens uses provides public private protected static transitive abstract final strictfp synchronized native transient volatile throws":O.modifier,IntegerLiteral:O.integer,FloatingPointLiteral:O.float,"StringLiteral TextBlock":O.string,CharacterLiteral:O.character,LineComment:O.lineComment,BlockComment:O.blockComment,BooleanLiteral:O.bool,PrimitiveType:O.standard(O.typeName),TypeName:O.typeName,Identifier:O.variableName,"MethodName/Identifier":O.function(O.variableName),Definition:O.definition(O.variableName),ArithOp:O.arithmeticOperator,LogicOp:O.logicOperator,BitOp:O.bitwiseOperator,CompareOp:O.compareOperator,AssignOp:O.definitionOperator,UpdateOp:O.updateOperator,Asterisk:O.punctuation,Label:O.labelName,"( )":O.paren,"[ ]":O.squareBracket,"{ }":O.brace,".":O.derefOperator,", ;":O.separator}),n={__proto__:null,true:34,false:34,null:42,void:46,byte:48,short:48,int:48,long:48,char:48,float:48,double:48,boolean:48,extends:62,super:64,class:76,this:78,new:84,public:100,protected:102,private:104,abstract:106,static:108,final:110,strictfp:112,default:114,synchronized:116,native:118,transient:120,volatile:122,throws:150,implements:160,interface:166,enum:176,instanceof:238,open:267,module:269,requires:274,transitive:276,exports:278,to:280,opens:282,uses:284,provides:286,with:288,package:292,import:296,if:308,else:310,while:314,for:318,var:325,assert:332,switch:336,case:342,do:346,break:350,continue:354,return:358,throw:364,try:368,catch:372,finally:380},d=r.deserialize({version:14,states:"##jQ]QPOOQ$wQPOOO(bQQO'#H^O*iQQO'#CbOOQO'#Cb'#CbO*pQPO'#CaO*xOSO'#CpOOQO'#Hc'#HcOOQO'#Cu'#CuO,eQPO'#D_O-OQQO'#HmOOQO'#Hm'#HmO/gQQO'#HhO/nQQO'#HhOOQO'#Hh'#HhOOQO'#Hg'#HgO1rQPO'#DUO2PQPO'#GnO4wQPO'#D_O5OQPO'#DzO*pQPO'#E[O5qQPO'#E[OOQO'#DV'#DVO7SQQO'#HaO9^QQO'#EeO9eQPO'#EdO9jQPO'#EfOOQO'#Hb'#HbO7jQQO'#HbO:pQQO'#FhO:wQPO'#ExO:|QPO'#E}O:|QPO'#FPOOQO'#Ha'#HaOOQO'#HY'#HYOOQO'#Gh'#GhOOQO'#HX'#HXO<^QPO'#FiOOQO'#HW'#HWOOQO'#Gg'#GgQ]QPOOOOQO'#Hs'#HsOQQPO'#GSO>]QPO'#GUO=kQPO'#GWO:|QPO'#GXO>dQPO'#GZO?QQQO'#HiO?mQQO'#CuO?tQPO'#HxO@SQPO'#D_O@rQPO'#DpO?wQPO'#DqO@|QPO'#HxOA_QPO'#DpOAgQPO'#IROAlQPO'#E`OOQO'#Hr'#HrOOQO'#Gm'#GmQ$wQPOOOAtQPO'#HsOOQO'#H^'#H^OCsQQO,58{OOQO'#H['#H[OOOO'#Gi'#GiOEfOSO,59[OOQO,59[,59[OOQO'#Hi'#HiOFVQPO,59eOGXQPO,59yOOQO-E:f-E:fO*pQPO,58zOG{QPO,58zO*pQPO,5;}OHQQPO'#DQOHVQPO'#DQOOQO'#Gk'#GkOIVQQO,59jOOQO'#Dm'#DmOJqQPO'#HuOJ{QPO'#DlOKZQPO'#HtOKcQPO,5<_OKhQPO,59^OLRQPO'#CxOOQO,59c,59cOLYQPO,59bOLeQQO'#H^ONgQQO'#CbO!!iQPO'#D_O!#nQQO'#HmO!$OQQO,59pO!$VQPO'#DvO!$eQPO'#H|O!$mQPO,5:`O!$rQPO,5:`O!%YQPO,5;nO!%eQPO'#ITO!%pQPO,5;eO!%uQPO,5=YOOQO-E:l-E:lOOQO,5:f,5:fO!']QPO,5:fO!'dQPO,5:vO?tQPO,5<_O*pQPO,5:vO_,5>_O!*sQPO,5:gO!+RQPO,5:qO!+ZQPO,5:lO!+fQPO,5>[O!$VQPO,5>[O!'iQPO,59UO!+qQQO,58zO!+yQQO,5;}O!,RQQO,5gQPO,5gQPO,5<}O!2mQPO,59jO!2zQPO'#HuO!3RQPO,59xO!3WQPO,5>dO?tQPO,59xO!3cQPO,5:[OAlQPO,5:zO!3kQPO'#DrO?wQPO'#DrO!3vQPO'#HyO!4OQPO,5:]O?tQPO,5>dO!(hQPO,5>dOAgQPO,5>mOOQO,5:[,5:[O!$rQPO'#DtOOQO,5>m,5>mO!4TQPO'#EaOOQO,5:z,5:zO!7UQPO,5:zO!(hQPO'#DxOOQO-E:k-E:kOOQO,5:y,5:yO*pQPO,58}O!7ZQPO'#ChOOQO1G.k1G.kOOOO-E:g-E:gOOQO1G.v1G.vO!+qQQO1G.fO*pQPO1G.fO!7eQQO1G1iOOQO,59l,59lO!7mQPO,59lOOQO-E:i-E:iO!7rQPO,5>aO!8ZQPO,5:WO`OOQO1G1y1G1yOOQO1G.x1G.xO!8{QPO'#CyO!9kQPO'#HmO!9uQPO'#CzO!:TQPO'#HlO!:]QPO,59dOOQO1G.|1G.|OLYQPO1G.|O!:sQPO,59eO!;QQQO'#H^O!;cQQO'#CbOOQO,5:b,5:bOhOOQO1G/z1G/zO!oOOQO1G1P1G1POOQO1G0Q1G0QO!=oQPO'#E]OOQO1G0b1G0bO!>`QPO1G1yO!'dQPO1G0bO!*sQPO1G0RO!+RQPO1G0]O!+ZQPO1G0WOOQO1G/]1G/]O!>eQQO1G.pO9eQPO1G0jO*pQPO1G0jOgQPO'#GaOOQO1G2a1G2aO#2zQPO1G2iO#6xQPO,5>gOOQO1G/d1G/dOOQO1G4O1G4OO#7ZQPO1G/dOOQO1G/v1G/vOOQO1G0f1G0fO!7UQPO1G0fOOQO,5:^,5:^O!(hQPO'#DsO#7`QPO,5:^O?wQPO'#GrO#7kQPO,5>eOOQO1G/w1G/wOAgQPO'#H{O#7sQPO1G4OO?tQPO1G4OOOQO1G4X1G4XO!#YQPO'#DvO!!iQPO'#D_OOQO,5:{,5:{O#8OQPO,5:{O#8OQPO,5:{O#8VQQO'#HaO#9hQQO'#HbO#9rQQO'#EbO#9}QPO'#EbO#:VQPO'#IOOOQO,5:d,5:dOOQO1G.i1G.iO#:bQQO'#EeO#:rQQO'#H`O#;SQPO'#FTOOQO'#H`'#H`O#;^QPO'#H`O#;{QPO'#IWO#WOOQO1G/O1G/OOOQO7+$h7+$hOOQO1G/{1G/{O#=cQQO1G/{OOQO1G/}1G/}O#=hQPO1G/{OOQO1G/|1G/|OdQPO,5:wOOQO,5:w,5:wOOQO7+'e7+'eOOQO7+%|7+%|OOQO7+%m7+%mO!KqQPO7+%mO!KvQPO7+%mO!LOQPO7+%mOOQO7+%w7+%wO!LnQPO7+%wOOQO7+%r7+%rO!MmQPO7+%rO!MrQPO7+%rOOQO7+&U7+&UOOQO'#Ee'#EeO9eQPO7+&UO9eQPO,5>[O#?TQPO7+$[OOQO7+&T7+&TOOQO7+&W7+&WO:|QPO'#GlO#?cQPO,5>]OOQO1G/_1G/_O:|QPO7+&lO#?nQQO,59eO#@tQPO,59vOOQO,59v,59vOOQO,5:h,5:hOOQO'#EP'#EPOOQO,5:i,5:iO#@{QPO'#EYOgQPO,5jO#M{QPO,59TO#NSQPO'#IVO#N[QPO,5;oO*pQPO'#G{O#NaQPO,5>rOOQO1G.n1G.nOOQO<Z,5>ZOOQO,5=U,5=UOOQO-E:h-E:hO#NvQPO7+%gOOQO7+%g7+%gOOQO7+%i7+%iOOQO<kO$%tQPO'#EZOOQO1G0_1G0_O$%{QPO1G0_O?tQPO,5:pOOQO-E:s-E:sOOQO1G0Z1G0ZOOQO1G0n1G0nO$&QQQO1G0nOOQO<qOOQO1G1Z1G1ZO$+dQPO'#FUOOQO,5=g,5=gOOQO-E:y-E:yO$+iQPO'#GoO$+vQPO,5>cOOQO1G/u1G/uOOQO<sAN>sO!KqQPOAN>sOOQOAN>xAN>xOOQOAN?[AN?[O9eQPOAN?[OOQO1G0`1G0`O$,_QPO1G0`OOQO,5=b,5=bOOQO-E:t-E:tO$,mQPO,5:uOOQO7+%y7+%yOOQO7+&Y7+&YOOQO1G1`1G1`O$,tQQO1G1`OOQO-E:{-E:{O$,|QQO'#IYO$,wQPO1G1`O$&gQPO1G1`O*pQPO1G1`OOQOAN@]AN@]O$-XQQO<tO$.qQPO7+&zO$.vQQO'#IZOOQOAN@nAN@nO$/RQQOAN@nOOQOAN@jAN@jO$/YQPOAN@jO$/_QQO<uOOQOG26YG26YOOQOG26UG26UOOQO<lOWiXuiX%}iX&PiX&RiX&_iX~OZ!aX~P?XOu#OO%}TO&P#SO&R#SO~O%}TO~P3gOg^Oh^Ov#pO!u#rO!z#qO&_!hO&t#oO~O&P!cO&R!dO~P@ZOg^Oh^O%}TO&P!cO&R!dO~O}cO!P%aO~OZ%bO~O}%dO!m%gO~O}cOg&gXh&gXv&gX!S&gX!T&gX!U&gX!V&gX!W&gX!X&gX!Y&gX!Z&gX!]&gX!^&gX!_&gX!u&gX!z&gX%}&gX&P&gX&R&gX&_&gX&t&gX~OW%jOZ%kOgTahTa%}Ta&PTa&RTa~OvTa!STa!TTa!UTa!VTa!WTa!XTa!YTa!ZTa!]Ta!^Ta!_Ta!uTa!zTa#yTa#zTa$WTa$hTa&tTa&_TauTaYTaqTa|Ta!PTa~PC[O&W%nO&Y!tO~Ou#OO%}TOqma&^maYma&nma!Pma~O&vma}ma!rma~PEnO!SyO!TyO!UyO!VyO!WyO!XyO!YyO!ZzO!]yO!^yO!_yO~Og!Rah!Rav!Ra!u!Ra!z!Ra$h!Ra&P!Ra&R!Ra&t!Ra&_!Ra~PFdO#z%pO~Os%rO~Ou%sO%}TO~Ou#OO%}ra&Pra&Rra&vraYrawra&nra&qra!Pra&^raqra~OWra#_ra#ara#bra#dra#era#fra#gra#hra#ira#kra#ora#rra&_ra#prasra|ra~PH_Ou#OO%}TOq&iX!P&iX!b&iX~OY&iX#p&iX~PJ`O!b%vOq!`X!P!`XY!`X~Oq%wO!P&hX~O!P%yO~Ov%zO~Og^Oh^O%}0oO&P!wO&RWO&b%}O~O&^&`P~PKmO%}TO&P!wO&RWO~OW&QXYiXY!aXY&QXZ&QXq!aXu&QXwiX!b&QX#]&QX#_&QX#a&QX#b&QX#d&QX#e&QX#f&QX#g&QX#h&QX#i&QX#k&QX#o&QX#r&QX&^&QX&_&QX&niX&n&QX&qiX&viX&v&QX&x!aX~P?XOWUXYUXY!aXY&]XZUXq!aXuUXw&]X!bUX#]UX#_UX#aUX#bUX#dUX#eUX#fUX#gUX#hUX#iUX#kUX#oUX#rUX&^UX&_UX&nUX&n&]X&q&]X&vUX&v&]X&x!aX~P>lOg^Oh^O%}TO&P!wO&RWOg!RXh!RX&P!RX&R!RX~PFdOu#OOw&XO%}TO&P&UO&R&TO&q&WO~OW#XOY&aX&n&aX&v&aX~P!#YOY&ZO~P9oOg^Oh^O&P!wO&RWO~Oq&]OY&pX~OY&_O~Og^Oh^O%}TO&P!wO&RWOY&pP~PFdOY&dO&n&bO&v#vO~Oq&eO&x$ZOY&wX~OY&gO~O%}TOg%bah%bav%ba!S%ba!T%ba!U%ba!V%ba!W%ba!X%ba!Y%ba!Z%ba!]%ba!^%ba!_%ba!u%ba!z%ba$h%ba&P%ba&R%ba&t%ba&_%ba~O|&hO~P]O}&iO~Op&uOw&vO&PSO&R!qO&_#YO~Oz&tO~P!'iOz&xO&PSO&R!qO&_#YO~OY&eP~P:|Og^Oh^O%}TO&P!wO&RWO~O}cO~P:|OW#XOu#OO%}TO&v&aX~O#r$WO!P#sa#_#sa#a#sa#b#sa#d#sa#e#sa#f#sa#g#sa#h#sa#i#sa#k#sa#o#sa&^#sa&_#sa&n#saY#sa#p#sas#saq#sa|#sa~Oo'_O}'^O!r'`O&_!hO~O}'eO!r'`O~Oo'iO}'hO&_!hO~OZ#xOu'mO%}TO~OW%jO}'sO~OW%jO!P'uO~OW'vO!P'wO~O$h!WO&P0qO&R0pO!P&eP~P/uO!P(SO#p(TO~P9oO}(UO~O$c(WO~O!P(XO~O!P(YO~O!P(ZO~P9oO!P(]O~P9oOZ$lO_VO`VOaVObVOcVOeVOg^Oh^Op!POwkOz!OO%}TO&P(_O&R(^O&XUO~PFdO%Q(hO%U(iOZ$}a_$}a`$}aa$}ab$}ac$}ae$}ag$}ah$}ap$}av$}aw$}az$}a}$}a!P$}a!S$}a!T$}a!U$}a!V$}a!W$}a!X$}a!Y$}a!Z$}a![$}a!]$}a!^$}a!_$}a!u$}a!z$}a#f$}a#r$}a#t$}a#u$}a#y$}a#z$}a$W$}a$Y$}a$`$}a$c$}a$e$}a$h$}a$l$}a$n$}a$s$}a$u$}a$w$}a$y$}a$|$}a%O$}a%w$}a%}$}a&P$}a&R$}a&X$}a&t$}a|$}a$a$}a$q$}a~O}ra!rra'Ora~PH_OZ%bO~PJ`O!P(mO~O!m%gO}&la!P&la~O}cO!P(pO~Oo(tOq!fX&^!fX~Oq(vO&^&mX~O&^(xO~OZ`O_VO`VOaVObVOcVOeVOg^Oh^Op)UOv{Ow)TOz!OO|)PO}cO!PvO![!`O!u}O!z|O#fpO#roO#tpO#upO#y!RO#z!QO$W!SO$Y!TO$`!UO$c!VO$e!XO$h!WO$l!YO$n!ZO$s![O$u!]O$w!^O$y!_O$|!aO%O!bO%}TO&PRO&RQO&XUO&_#YO&tdO~PFdO}%dO~O})]OY&zP~P:|OW%jO!P)dO~Os)eO~Ou#OO%}TOq&ia!P&ia!b&iaY&ia#p&ia~O})fO~P:|Oq%wO!P&ha~Og^Oh^O%}0oO&P!wO&RWO~O&b)mO~P!8jOu#OO%}TOq&aX&^&aXY&aX&n&aX!P&aX~O}&aX!r&aX~P!9SOo)oOp)oOqnX&^nX~Oq)pO&^&`X~O&^)rO~Ou#OOw)tO%}TO&PSO&R!qO~OYma&nma&vma~P!:bOW&QXY!aXq!aXu!aX%}!aX~OWUXY!aXq!aXu!aX%}!aX~OW)wO~Ou#OO%}TO&P#SO&R#SO&q)yO~Og^Oh^O%}TO&P!wO&RWO~PFdOq&]OY&pa~Ou#OO%}TO&P#SO&R#SO&q&WO~OY)|O~OY*PO&n&bO~Oq&eOY&wa~Og^Oh^Ov{O|*XO!u}O%}TO&P!wO&RWO&tdO~PFdO!P*YO~OW^iZ#XXu^i!P^i!b^i#]^i#_^i#a^i#b^i#d^i#e^i#f^i#g^i#h^i#i^i#k^i#o^i#r^i&^^i&_^i&n^i&v^iY^i#p^is^iq^i|^i~OW*iO~Os*jO~P9oOz*kO&PSO&R!qO~O!P]iY]i#p]is]iq]i|]i~P9oOq*lOY&eX!P&eX~P9oOY*nO~O#f$SO#g$TO#k$YO#r$WO!P#^i#_#^i#a#^i#b#^i#d#^i#e#^i#o#^i&^#^i&_#^i&n#^iY#^i#p#^is#^iq#^i|#^i~O#h$UO#i$UO~P!AmO#_#|O#d$QO#e$RO#f$SO#g$TO#h$UO#i$UO#k$YO#r$WO&^#zO&_#zO&n#{O!P#^i#b#^i#o#^iY#^i#p#^is#^iq#^i|#^i~O#a#^i~P!CUO#a#}O~P!CUO#_#|O#f$SO#g$TO#h$UO#i$UO#k$YO#r$WO&^#zO&_#zO!P#^i#a#^i#b#^i#d#^i#e#^i#o#^iY#^i#p#^is#^iq#^i|#^i~O&n#^i~P!DtO&n#{O~P!DtO#f$SO#g$TO#k$YO#r$WO!P#^i#a#^i#b#^i#e#^i#o#^iY#^i#p#^is#^iq#^i|#^i~O#_#|O#d$QO#h$UO#i$UO&^#zO&_#zO&n#{O~P!FdO#k$YO#r$WO!P#^i#_#^i#a#^i#b#^i#d#^i#e#^i#f#^i#h#^i#i#^i#o#^i&^#^i&_#^i&n#^iY#^i#p#^is#^iq#^i|#^i~O#g$TO~P!G{O#g#^i~P!G{O#h#^i#i#^i~P!AmO#p*oO~P9oO#_&aX#a&aX#b&aX#d&aX#e&aX#f&aX#g&aX#h&aX#i&aX#k&aX#o&aX#r&aX&_&aX#p&aXs&aX|&aX~P!9SO!P#liY#li#p#lis#liq#li|#li~P9oO|*rO~P$wO}'^O~O}'^O!r'`O~Oo'_O}'^O!r'`O~O%}TO&P#SO&R#SO|&sP!P&sP~PFdO}'eO~Og^Oh^Ov{O|+PO!P*}O!u}O!z|O%}TO&P!wO&RWO&_!hO&tdO~PFdO}'hO~Oo'iO}'hO~Os+RO~P:|Ou+TO%}TO~Ou'mO})fO%}TOW#Zi!P#Zi#_#Zi#a#Zi#b#Zi#d#Zi#e#Zi#f#Zi#g#Zi#h#Zi#i#Zi#k#Zi#o#Zi#r#Zi&^#Zi&_#Zi&n#Zi&v#ZiY#Zi#p#Zis#Ziq#Zi|#Zi~O}'^OW&diu&di!P&di#_&di#a&di#b&di#d&di#e&di#f&di#g&di#h&di#i&di#k&di#o&di#r&di&^&di&_&di&n&di&v&diY&di#p&dis&diq&di|&di~O#}+]O$P+^O$R+^O$S+_O$T+`O~O|+[O~P##nO$Z+aO&PSO&R!qO~OW+bO!P+cO~O$a+dOZ$_i_$_i`$_ia$_ib$_ic$_ie$_ig$_ih$_ip$_iv$_iw$_iz$_i}$_i!P$_i!S$_i!T$_i!U$_i!V$_i!W$_i!X$_i!Y$_i!Z$_i![$_i!]$_i!^$_i!_$_i!u$_i!z$_i#f$_i#r$_i#t$_i#u$_i#y$_i#z$_i$W$_i$Y$_i$`$_i$c$_i$e$_i$h$_i$l$_i$n$_i$s$_i$u$_i$w$_i$y$_i$|$_i%O$_i%w$_i%}$_i&P$_i&R$_i&X$_i&t$_i|$_i$q$_i~Og^Oh^O$h#sO&P!wO&RWO~O!P+hO~P:|O!P+iO~OZ`O_VO`VOaVObVOcVOeVOg^Oh^Op!POv{OwkOz!OO}cO!PvO!SyO!TyO!UyO!VyO!WyO!XyO!YyO!Z+nO![!`O!]yO!^yO!_yO!u}O!z|O#fpO#roO#tpO#upO#y!RO#z!QO$W!SO$Y!TO$`!UO$c!VO$e!XO$h!WO$l!YO$n!ZO$q+oO$s![O$u!]O$w!^O$y!_O$|!aO%O!bO%}TO&PRO&RQO&XUO&tdO~O|+mO~P#)QOW&QXY&QXZ&QXu&QX!P&QX&viX&v&QX~P?XOWUXYUXZUXuUX!PUX&vUX&v&]X~P>lOW#tOu#uO&v#vO~OW&UXY%XXu&UX!P%XX&v&UX~OZ#XX~P#.VOY+uO!P+sO~O%Q(hO%U(iOZ$}i_$}i`$}ia$}ib$}ic$}ie$}ig$}ih$}ip$}iv$}iw$}iz$}i}$}i!P$}i!S$}i!T$}i!U$}i!V$}i!W$}i!X$}i!Y$}i!Z$}i![$}i!]$}i!^$}i!_$}i!u$}i!z$}i#f$}i#r$}i#t$}i#u$}i#y$}i#z$}i$W$}i$Y$}i$`$}i$c$}i$e$}i$h$}i$l$}i$n$}i$s$}i$u$}i$w$}i$y$}i$|$}i%O$}i%w$}i%}$}i&P$}i&R$}i&X$}i&t$}i|$}i$a$}i$q$}i~OZ+xO~O%Q(hO%U(iOZ%Vi_%Vi`%Via%Vib%Vic%Vie%Vig%Vih%Vip%Viv%Viw%Viz%Vi}%Vi!P%Vi!S%Vi!T%Vi!U%Vi!V%Vi!W%Vi!X%Vi!Y%Vi!Z%Vi![%Vi!]%Vi!^%Vi!_%Vi!u%Vi!z%Vi#f%Vi#r%Vi#t%Vi#u%Vi#y%Vi#z%Vi$W%Vi$Y%Vi$`%Vi$c%Vi$e%Vi$h%Vi$l%Vi$n%Vi$s%Vi$u%Vi$w%Vi$y%Vi$|%Vi%O%Vi%w%Vi%}%Vi&P%Vi&R%Vi&X%Vi&t%Vi|%Vi$a%Vi$q%Vi~Ou#OO%}TO}&oa!P&oa!m&oa~O!P,OO~Oo(tOq!fa&^!fa~Oq(vO&^&ma~O!m%gO}&li!P&li~O|,XO~P]OW,ZO~P5xOW&UXu&UX#_&UX#a&UX#b&UX#d&UX#e&UX#f&UX#g&UX#h&UX#i&UX#k&UX#o&UX#r&UX&^&UX&_&UX&n&UX&v&UX~OZ#xO!P&UX~P#8^OW$gOZ#xO&v#vO~Op,]Ow,]O~Oq,^O}&rX!P&rX~O!b,`O#]#wOY&UXZ#XX~P#8^OY&SXq&SX|&SX!P&SX~P9oO})]O|&yP~P:|OY&SXg%[Xh%[X%}%[X&P%[X&R%[Xq&SX|&SX!P&SX~Oq,cOY&zX~OY,eO~O})fO|&kP~P:|Oq&jX!P&jX|&jXY&jX~P9oO&bTa~PC[Oo)oOp)oOqna&^na~Oq)pO&^&`a~OW,mO~Ow,nO~Ou#OO%}TO&P,rO&R,qO~Og^Oh^Ov#pO!u#rO&P!wO&RWO&t#oO~Og^Oh^Ov{O|,wO!u}O%}TO&P!wO&RWO&tdO~PFdOw-SO&PSO&R!qO&_#YO~Oq*lOY&ea!P&ea~O#_ma#ama#bma#dma#ema#fma#gma#hma#ima#kma#oma#rma&_ma#pmasma|ma~PEnO|-WO~P$wOZ#xO}'^Oq!|X|!|X!P!|X~Oq-[O|&sX!P&sX~O|-_O!P-^O~O&_!hO~P5VOg^Oh^Ov{O|-cO!P*}O!u}O!z|O%}TO&P!wO&RWO&_!hO&tdO~PFdOs-dO~P9oOs-dO~P:|O}'^OW&dqu&dq!P&dq#_&dq#a&dq#b&dq#d&dq#e&dq#f&dq#g&dq#h&dq#i&dq#k&dq#o&dq#r&dq&^&dq&_&dq&n&dq&v&dqY&dq#p&dqs&dqq&dq|&dq~O|-hO~P##nO!W-lO$O-lO&PSO&R!qO~O!P-oO~O$Z-pO&PSO&R!qO~O!b%vO#p-rOq!`X!P!`X~O!P-tO~P9oO!P-tO~P:|O!P-wO~P9oO|-yO~P#)QO![$aO#p-zO~O!P-|O~O!b-}O~OY.QOZ$lO_VO`VOaVObVOcVOeVOg^Oh^Op!POwkOz!OO%}TO&P(_O&R(^O&XUO~PFdOY.QO!P.RO~O%Q(hO%U(iOZ%Vq_%Vq`%Vqa%Vqb%Vqc%Vqe%Vqg%Vqh%Vqp%Vqv%Vqw%Vqz%Vq}%Vq!P%Vq!S%Vq!T%Vq!U%Vq!V%Vq!W%Vq!X%Vq!Y%Vq!Z%Vq![%Vq!]%Vq!^%Vq!_%Vq!u%Vq!z%Vq#f%Vq#r%Vq#t%Vq#u%Vq#y%Vq#z%Vq$W%Vq$Y%Vq$`%Vq$c%Vq$e%Vq$h%Vq$l%Vq$n%Vq$s%Vq$u%Vq$w%Vq$y%Vq$|%Vq%O%Vq%w%Vq%}%Vq&P%Vq&R%Vq&X%Vq&t%Vq|%Vq$a%Vq$q%Vq~Ou#OO%}TO}&oi!P&oi!m&oi~O&n&bOq!ga&^!ga~O!m%gO}&lq!P&lq~O|.^O~P]Op.`Ow&vOz&tO&PSO&R!qO&_#YO~O!P.aO~Oq,^O}&ra!P&ra~O})]O~P:|Oq.gO|&yX~O|.iO~Oq,cOY&za~Oq.mO|&kX~O|.oO~Ow.pO~Oq!aXu!aX!P!aX!b!aX%}!aX~OZ&QX~P#N{OZUX~P#N{O!P.qO~OZ.rO~OW^yZ#XXu^y!P^y!b^y#]^y#_^y#a^y#b^y#d^y#e^y#f^y#g^y#h^y#i^y#k^y#o^y#r^y&^^y&_^y&n^y&v^yY^y#p^ys^yq^y|^y~OY%`aq%`a!P%`a~P9oO!P#nyY#ny#p#nys#nyq#ny|#ny~P9oO}'^Oq!|a|!|a!P!|a~OZ#xO}'^Oq!|a|!|a!P!|a~O%}TO&P#SO&R#SOq%jX|%jX!P%jX~PFdOq-[O|&sa!P&sa~O|!}X~P$wO|/PO~Os/QO~P9oOW%jO!P/RO~OW%jO$Q/WO&PSO&R!qO!P&|P~OW%jO$U/XO~O!P/YO~O!b%vO#p/[Oq!`X!P!`X~OY/^O~O!P/_O~P9oO#p/`O~P9oO!b/bO~OY/cOZ$lO_VO`VOaVObVOcVOeVOg^Oh^Op!POwkOz!OO%}TO&P(_O&R(^O&XUO~PFdOW#[Ou&[X%}&[X&P&[X&R&[X'O&[X~O&_#YO~P$)QOu#OO%}TO'O/eO&P%SX&R%SX~O&n&bOq!gi&^!gi~Op/iO&PSO&R!qO~OW*iOZ#xO~O!P/kO~OY&SXq&SX~P9oO})]Oq%nX|%nX~P:|Oq.gO|&ya~O!b/nO~O})fOq%cX|%cX~P:|Oq.mO|&ka~OY/qO~O!P/rO~OZ/sO~O}'^Oq!|i|!|i!P!|i~O|!}a~P$wOW%jO!P/wO~OW%jOq/xO!P&|X~OY/|O~P9oOY0OO~OY%Xq!P%Xq~P9oO'O/eO&P%Sa&R%Sa~OY0TO~O!P0WO~Ou#OO!P0YO!Z0ZO%}TO~OY0[O~Oq/xO!P&|a~O!P0_O~OW%jOq/xO!P&}X~OY0aO~P9oOY0bO~OY%Xy!P%Xy~P9oOu#OO%}TO&P%ua&R%ua'O%ua~OY0cO~O!P0dO~Ou#OO!P0eO!Z0fO%}TO~OW%jOq%ra!P%ra~Oq/xO!P&}a~O!P0jO~Ou#OO!P0jO!Z0kO%}TO~O!P0lO~O!P0nO~O#p&QXY&QXs&QXq&QX|&QX~P&bO#pUXYUXsUXqUX|UX~P(iO`Q_P#g%y&P&Xc&X~",goto:"#+S'OPPPP'P'd*x.OP'dPP.d.h0PPPPPP1nP3ZPP4v7l:[WP!?[P!Ap!BW!E]3ZPPP!F|!Jm!MaPP#!P#!SP#$`#$f#&V#&f#&n#'p#(Y#)T#)^#)a#)oP#)r#*OP#*V#*^P#*aP#*lP#*o#*r#*u#*y#+PstOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y'urOPXY`acopx!Y![!_!a!e!f!h!i!o!x#P#T#Y#[#_#`#e#i#l#n#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$]$_$e$l$m$n$o$p$q%O%S%V%Z%^%_%b%d%g%k%u%v%{%|&R&S&[&]&`&b&d&i'X'^'_'`'e'h'i'm'n'p'{'|(O(T(U(`(l(t(v({(})O)Q)R)])f)o)p*P*T*W*l*o*p*q*z*{+O+T+d+f+h+i+l+o+r+s+x+},W,Y,^,`,u-[-^-a-r-t-}.R.V.g.m/O/[/_/b/d/n/q0R0X0Z0[0f0h0k0r#xhO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0kt!sT!Q!S!T!{!}$k%p+]+^+_+`-k-m/W/X/x0oQ#mdS&Y#`(}Q&l#oU&q#t$g,ZQ&x#vW(b%O+s.R/dU)Y%j'v+bQ)Z%kS)u&S,WU*f&s-R._Q*k&yQ,t*TQ-P*iQ.j,cR.t,uu!sT!Q!S!T!{!}$k%p+]+^+_+`-k-m/W/X/x0oT%l!r)l#{qO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0k#zlO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0kX(c%O+s.R/d$TVO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0k$TkO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0k&O[OPX`ceopx!O!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$f$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i&t'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s,Y,^,`-^-r-t-}.R.g.m/O/[/_/b/d/n0Z0f0k0rQ&Q#[Q)s&RV.T+x.X/e&O[OPX`ceopx!O!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$f$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i&t'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s,Y,^,`-^-r-t-}.R.g.m/O/[/_/b/d/n0Z0f0k0rV.T+x.X/e&O]OPX`ceopx!O!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$f$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i&t'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s,Y,^,`-^-r-t-}.R.g.m/O/[/_/b/d/n0Z0f0k0rV.U+x.X/eS#Z[.TS$f!O&tS&s#t$gQ&y#vQ)V%dQ-R*iR._,Z$kZO`copx!Y![!_!a#Y#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$_$l$m$n$o$p$q%O%d%g%k%v&b&d'_'`'i'm(O(T(U(t)Q)R)])f)o)p*P*l*o+T+d+h+i+l+o+s,Y,^,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kQ&O#YR,k)p&P_OPX`ceopx!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s+x,Y,^,`-^-r-t-}.R.X.g.m/O/[/_/b/d/e/n0Z0f0k0r!o#QY!e!x#R#T#`#n$]%R%S%V%^%u%|&S&[&`'X'|(`(l({(}*T*p*z+f+r+},W,u-a.V/q0R0X0[0h$SkO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kQ$m!UQ$n!VQ$s!ZQ$|!`R+p(WQ#yiS'q$e*hQ*e&rQ+X'rS,[)T)UQ-O*gQ-Y*vQ.b,]Q.x-QQ.{-ZQ/j.`Q/u.yR0V/iQ'a$bW*[&m'b'c'dQ+W'qU,x*]*^*_Q-X*vQ-f+XS.u,y,zS.z-Y-ZQ/t.vR/v.{]!mP!o'^*q-^/OreOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!gP!o'^*q-^/OW#b`#e%b&]Q'}$oW(d%O+s.R/dS*U&i*WS*w'e-[S*|'h+OR.X+xh#VY!W!e#n#s%V'|*T*z+f,u-aQ)j%wQ)v&WR,o)y#xnOcopx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0k^!kP!g!o'^*q-^/Ov#TY!W#`#n#s%w&W&[&`'|(`(})y*T+f+r,u.W/hQ#g`Q$b{Q$c|Q$d}W%S!e%V*z-aS%Y!h(vQ%`!iQ&m#pQ&n#qQ&o#rQ(u%ZS(y%^({Q*R&eS*v'e-[R-Z*wU)h%v)f.mR+V'p[!mP!o'^*q-^/OT*}'h+O^!iP!g!o'^*q-^/OQ'd$bQ'l$dQ*_&mQ*d&oV*{'h*|+OQ%[!hR,S(vQ(s%YR,R(u#znO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0kQ%c!kS(l%S(yR(|%`T#e`%bU#c`#e%bR)z&]Q%f!lQ(n%UQ(r%XQ,U(zR.],VrvOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!mP!o'^*q-^/OQ%P!bQ%a!jQ%i!pQ'[$ZQ([$|Q(k%QQ(p%WQ+z(iR.Y+yrtOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!mP!o'^*q-^/OS*V&i*WT*}'h+OQ'c$bS*^&m'dR,z*_Q'b$bQ'g$cU*]&m'c'dQ*a&nS,y*^*_R.v,zQ*u'`R+Q'iQ'k$dS*c&o'lR,}*dQ'j$dU*b&o'k'lS,|*c*dR.w,}rtOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!mP!o'^*q-^/OT*}'h+OQ'f$cS*`&n'gR,{*aQ*x'eR.|-[R-`*yQ&j#mR*Z&lT*V&i*WQ%e!lS(q%X%fR,P(rR)R%dWk%O+s.R/d#{lO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0k$SiO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kU&r#t$g,ZS*g&s._Q-Q*iR.y-RT'o$e'p!_#|m#a$r$z$}&w&z&{'O'P'Q'R'S'W'Z)[)g+S+g+j-T-V-e-v-{.e/Z/a/}0Q!]$Pm#a$r$z$}&w&z&{'O'P'R'S'W'Z)[)g+S+g+j-T-V-e-v-{.e/Z/a/}0Q#{nO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0ka)^%k)],`.g/n0Z0f0kQ)`%kR.k,cQ't$hQ)b%oR,f)cT+Y's+ZsvOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,YruOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,YQ$w!]R$y!^R$p!XrvOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,YR(O$oR$q!XR(V$sT+k(U+lX(f%P(g(k+{R+y(hQ.W+xR/h.XQ(j%PQ+w(gQ+|(kR.Z+{R%Q!bQ(e%OV.P+s.R/dQxOQ#lcW$`x#l)Q,YQ)Q%dR,Y)RrXOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Yn!fP!o#e&]&i'^'e'h*W*q+O+x-[-^/Ol!zX!f#P#_#i$[%Z%_%{&R'n'{)O0r!j#PY!e!x#T#`#n$]%S%V%^%u%|&S&[&`'X'|(`(l({(}*T*p*z+f+r+},W,u-a.V/q0R0X0[0hQ#_`Q#ia#d$[op!Y!_!a#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$l%g%k%v&b&d'_'`'i'm(O(T(t)])f)o*P*l*o+T+h+i+o,^,`-r-t-}.g.m/[/_/b/n0Z0f0kS%Z!h(vS%_!i*{S%{#Y)pQ&R#[S'n$e'pY'{$o%O+s.R/dQ)O%bR0r$YQ!uUR%m!uQ)q&OR,l)q^#RY#`$]'X'|(`*px%R!e!x#n%V%^%|&S&[&`({(}*T*z+f+r,W,u-a.V0R[%t#R%R%u+}0X0hS%u#T%SQ+}(lQ0X/qR0h0[Q*m&{R-U*mQ!oPU%h!o*q/OQ*q'^R/O-^!pbOP`cx![!o#e#l$_$m$n$o$p$q%O%b%d&]&i'^'e'h(U)Q)R*W*q+O+d+l+s+x,Y-[-^.R/O/dY!yX!f#_'{)OT#jb!yQ.n,gR/p.nQ%x#VR)k%xQ&c#fS*O&c.[R.[,QQ(w%[R,T(wQ&^#cR){&^Q,_)WR.d,_Q+O'hR-b+OQ-]*xR.}-]Q*W&iR,v*WQ'p$eR+U'pQ&f#gR*S&fQ.h,aR/m.hQ,d)`R.l,dQ+Z'sR-g+ZQ-k+]R/T-kQ/y/US0^/y0`R0`/{Q+l(UR-x+lQ(g%PS+v(g+{R+{(kQ/f.VR0S/fQ+t(eR.S+t`wOcx#l%d)Q)R,YQ$t![Q']$_Q'y$mQ'z$nQ(Q$pQ(R$qS+k(U+lR-q+d'dsOPXY`acopx!Y![!_!a!e!f!h!i!o!x#P#T#Y#[#_#`#e#i#l#n#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$]$_$e$l$m$n$o$p$q%O%S%V%Z%^%_%b%d%g%u%v%{%|&R&S&[&]&`&b&d&i'X'^'_'`'e'h'i'm'n'p'{'|(O(T(U(`(l(t(v({(})O)Q)R)f)o)p*P*T*W*l*o*p*q*z*{+O+T+d+f+h+i+l+o+r+s+x+},W,Y,^,u-[-^-a-r-t-}.R.V.m/O/[/_/b/d/q0R0X0[0h0ra)_%k)],`.g/n0Z0f0kQ!rTQ$h!QQ$i!SQ$j!TQ%o!{Q%q!}Q'x$kQ)c%pQ)l0oS-i+]+_Q-m+^Q-n+`Q/S-kS/U-m/WQ/{/XR0]/x%uSOT`cdopx!Q!S!T!Y![!_!a!{!}#`#l#o#t#u#v#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$g$k$l$m$n$o$p$q%O%d%j%k%p%v&S&d&s&y'm'v(O(T(U(})Q)R)])f*P*T*i*l*o+T+]+^+_+`+b+d+h+i+l+o+s,W,Y,Z,`,c,u-R-k-m-r-t-}.R._.g.m/W/X/[/_/b/d/n/x0Z0f0k0oQ)a%kQ,a)]S.f,`/nQ/l.gQ0g0ZQ0i0fR0m0krmOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,YS#a`$lQ$WoQ$^pQ$r!YQ$z!_Q$}!aQ&w#uQ&z#wY&{#x$o+h-t/_Q&}#|Q'O#}Q'P$OQ'Q$PQ'R$QQ'S$RQ'T$SQ'U$TQ'V$UQ'W$VQ'Z$Z^)[%k)].g/n0Z0f0kU)g%v)f.mQ*Q&dQ+S'mQ+g(OQ+j(TQ,p*PQ-T*lQ-V*oQ-e+TQ-v+iQ-{+oQ.e,`Q/Z-rQ/a-}Q/}/[R0Q/b#xgO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0kW(a%O+s.R/dR)S%drYOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!eP!o'^*q-^/OW!xX$[%{'{Q#``Q#ne#S$]op!Y!_!a#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$l%k%v&d'm(O(T)])f*P*l*o+T+h+i+o,`-r-t-}.g.m/[/_/b/n0Z0f0kQ%V!gS%^!i*{d%|#Y%g&b'_'`'i(t)o)p,^Q&S#_Q&[#bS&`#e&]Q'X$YQ'|$oW(`%O+s.R/dQ({%_Q(}%bS*T&i*WQ*p0rS*z'h+OQ+f'}Q+r(dQ,W)OQ,u*UQ-a*|S.V+x.XR0R/e&O_OPX`ceopx!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s+x,Y,^,`-^-r-t-}.R.X.g.m/O/[/_/b/d/e/n0Z0f0k0rQ$e!OQ'r$fR*h&t&ZWOPX`ceopx!O!Y![!_!a!g!i!o#Y#[#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$f$l$m$n$o$p$q%O%_%b%d%g%k%v%{&R&]&b&d&i&t'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s+x,Y,^,`-^-r-t-}.R.X.g.m/O/[/_/b/d/e/n0Z0f0k0rR&P#Y$QjOcopx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kQ#f`Q&O#YQ'Y$YU)W%g'`'iQ)}&bQ*s'_Q,Q(tQ,j)oQ,k)pR.c,^Q)n%}R,i)m$SfO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kT&p#t,ZQ&|#xQ(P$oQ-u+hQ/]-tR0P/_]!nP!o'^*q-^/O#PaOPX`bcx![!f!o!y#_#e#l$_$m$n$o$p$q%O%b%d&]&i'^'e'h'{(U)O)Q)R*W*q+O+d+l+s+x,Y-[-^.R/O/dU#WY!W'|Q%T!eU&k#n#s+fQ(o%VS,s*T*zT.s,u-aj#UY!W!e#n#s%V%w&W)y*T*z,u-aU&V#`&`(}Q)x&[Q+e'|Q+q(`Q-s+fQ.O+rQ/g.WR0U/hQ)i%vQ,g)fR/o.mR,h)f`!jP!o'^'h*q+O-^/OT%W!g*|R%]!hW%U!e%V*z-aQ(z%^R,V({S#d`%bR&a#eQ)X%gT*t'`'iR*y'e[!lP!o'^*q-^/OR%X!gR#h`R,b)]R)a%kT-j+]-kQ/V-mR/z/WR/z/X",nodeNames:"⚠ LineComment BlockComment Program ModuleDeclaration MarkerAnnotation Identifier ScopedIdentifier . Annotation ) ( AnnotationArgumentList AssignmentExpression FieldAccess IntegerLiteral FloatingPointLiteral BooleanLiteral CharacterLiteral StringLiteral TextBlock null ClassLiteral void PrimitiveType TypeName ScopedTypeName GenericType TypeArguments AnnotatedType Wildcard extends super , ArrayType ] Dimension [ class this ParenthesizedExpression ObjectCreationExpression new ArgumentList } { ClassBody ; FieldDeclaration Modifiers public protected private abstract static final strictfp default synchronized native transient volatile VariableDeclarator Definition AssignOp ArrayInitializer MethodDeclaration TypeParameters TypeParameter TypeBound FormalParameters ReceiverParameter FormalParameter SpreadParameter Throws throws Block ClassDeclaration Superclass SuperInterfaces implements InterfaceTypeList InterfaceDeclaration interface ExtendsInterfaces InterfaceBody ConstantDeclaration EnumDeclaration enum EnumBody EnumConstant EnumBodyDeclarations AnnotationTypeDeclaration AnnotationTypeBody AnnotationTypeElementDeclaration StaticInitializer ConstructorDeclaration ConstructorBody ExplicitConstructorInvocation ArrayAccess MethodInvocation MethodName MethodReference ArrayCreationExpression Dimension AssignOp BinaryExpression CompareOp CompareOp LogicOp LogicOp BitOp BitOp BitOp ArithOp ArithOp ArithOp BitOp InstanceofExpression instanceof LambdaExpression InferredParameters TernaryExpression LogicOp : UpdateExpression UpdateOp UnaryExpression LogicOp BitOp CastExpression ElementValueArrayInitializer ElementValuePair open module ModuleBody ModuleDirective requires transitive exports to opens uses provides with PackageDeclaration package ImportDeclaration import Asterisk ExpressionStatement LabeledStatement Label IfStatement if else WhileStatement while ForStatement for ForSpec LocalVariableDeclaration var EnhancedForStatement ForSpec AssertStatement assert SwitchStatement switch SwitchBlock SwitchLabel case DoStatement do BreakStatement break ContinueStatement continue ReturnStatement return SynchronizedStatement ThrowStatement throw TryStatement try CatchClause catch CatchFormalParameter CatchType FinallyClause finally TryWithResourcesStatement ResourceSpecification Resource ClassContent",maxTerm:276,nodeProps:[["isolate",-4,1,2,18,19,""],["group",-26,4,47,76,77,82,87,92,145,147,150,151,153,156,158,161,163,165,167,172,174,176,178,180,181,183,191,"Statement",-25,6,13,14,15,16,17,18,19,20,21,22,39,40,41,99,100,102,103,106,118,120,122,125,127,130,"Expression",-7,23,24,25,26,27,29,34,"Type"],["openedBy",10,"(",44,"{"],["closedBy",11,")",45,"}"]],propSources:[Z],skippedNodes:[0,1,2],repeatNodeCount:28,tokenData:"#'f_R!_OX%QXY'fYZ)bZ^'f^p%Qpq'fqr*|rs,^st%Qtu4euv5zvw7[wx8rxyAZyzAwz{Be{|CZ|}Dq}!OE_!O!PFx!P!Q! r!Q!R!,h!R![!0`![!]!>p!]!^!@Q!^!_!@n!_!`!BX!`!a!B{!a!b!Di!b!c!EX!c!}!LT!}#O!Mj#O#P%Q#P#Q!NW#Q#R!Nt#R#S4e#S#T%Q#T#o4e#o#p# h#p#q#!U#q#r##n#r#s#$[#s#y%Q#y#z'f#z$f%Q$f$g'f$g#BY4e#BY#BZ#$x#BZ$IS4e$IS$I_#$x$I_$I|4e$I|$JO#$x$JO$JT4e$JT$JU#$x$JU$KV4e$KV$KW#$x$KW&FU4e&FU&FV#$x&FV;'S4e;'S;=`5t<%lO4eS%VV&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QS%qO&YSS%tVOY&ZYZ%lZr&Zrs&ys;'S&Z;'S;=`'`<%lO&ZS&^VOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QS&vP;=`<%l%QS&|UOY&ZYZ%lZr&Zs;'S&Z;'S;=`'`<%lO&ZS'cP;=`<%l&Z_'mk&YS%yZOX%QXY'fYZ)bZ^'f^p%Qpq'fqr%Qrs%qs#y%Q#y#z'f#z$f%Q$f$g'f$g#BY%Q#BY#BZ'f#BZ$IS%Q$IS$I_'f$I_$I|%Q$I|$JO'f$JO$JT%Q$JT$JU'f$JU$KV%Q$KV$KW'f$KW&FU%Q&FU&FV'f&FV;'S%Q;'S;=`&s<%lO%Q_)iY&YS%yZX^*Xpq*X#y#z*X$f$g*X#BY#BZ*X$IS$I_*X$I|$JO*X$JT$JU*X$KV$KW*X&FU&FV*XZ*^Y%yZX^*Xpq*X#y#z*X$f$g*X#BY#BZ*X$IS$I_*X$I|$JO*X$JT$JU*X$KV$KW*X&FU&FV*XV+TX#tP&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`;'S%Q;'S;=`&s<%lO%QU+wV#_Q&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT,aXOY,|YZ%lZr,|rs3Ys#O,|#O#P2d#P;'S,|;'S;=`3S<%lO,|T-PXOY-lYZ%lZr-lrs.^s#O-l#O#P.x#P;'S-l;'S;=`2|<%lO-lT-qX&YSOY-lYZ%lZr-lrs.^s#O-l#O#P.x#P;'S-l;'S;=`2|<%lO-lT.cVcPOY&ZYZ%lZr&Zrs&ys;'S&Z;'S;=`'`<%lO&ZT.}V&YSOY-lYZ/dZr-lrs1]s;'S-l;'S;=`2|<%lO-lT/iW&YSOY0RZr0Rrs0ns#O0R#O#P0s#P;'S0R;'S;=`1V<%lO0RP0UWOY0RZr0Rrs0ns#O0R#O#P0s#P;'S0R;'S;=`1V<%lO0RP0sOcPP0vTOY0RYZ0RZ;'S0R;'S;=`1V<%lO0RP1YP;=`<%l0RT1`XOY,|YZ%lZr,|rs1{s#O,|#O#P2d#P;'S,|;'S;=`3S<%lO,|T2QUcPOY&ZYZ%lZr&Zs;'S&Z;'S;=`'`<%lO&ZT2gVOY-lYZ/dZr-lrs1]s;'S-l;'S;=`2|<%lO-lT3PP;=`<%l-lT3VP;=`<%l,|T3_VcPOY&ZYZ%lZr&Zrs3ts;'S&Z;'S;=`'`<%lO&ZT3yR&WSXY4SYZ4`pq4SP4VRXY4SYZ4`pq4SP4eO&XP_4lb&YS&PZOY%QYZ%lZr%Qrs%qst%Qtu4eu!Q%Q!Q![4e![!c%Q!c!}4e!}#R%Q#R#S4e#S#T%Q#T#o4e#o$g%Q$g;'S4e;'S;=`5t<%lO4e_5wP;=`<%l4eU6RX#hQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%QU6uV#]Q&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV7cZ&nR&YSOY%QYZ%lZr%Qrs%qsv%Qvw8Uw!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%QU8]V#aQ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT8wZ&YSOY9jYZ%lZr9jrs:xsw9jwx%Qx#O9j#O#PhYZ%lZr>hrs?dsw>hwx;hx#O>h#O#P&Z#P;'S>h;'S;=`@}<%lO>hT>kZOYhYZ%lZr>hrs@Ysw>hwx;hx#O>h#O#P&Z#P;'S>h;'S;=`@}<%lO>hP@]VOY@YZw@Ywx@rx#O@Y#P;'S@Y;'S;=`@w<%lO@YP@wObPP@zP;=`<%l@YTAQP;=`<%l>hTAWP;=`<%l9j_AbVZZ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVBOVYR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVBnX$ZP&YS#gQOY%QYZ%lZr%Qrs%qs!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%QVCbZ#fR&YSOY%QYZ%lZr%Qrs%qs{%Q{|DT|!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%QVD[V#rR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVDxVqR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVEf[#fR&YSOY%QYZ%lZr%Qrs%qs}%Q}!ODT!O!_%Q!_!`6n!`!aF[!a;'S%Q;'S;=`&s<%lO%QVFcV&xR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_GPZWY&YSOY%QYZ%lZr%Qrs%qs!O%Q!O!PGr!P!Q%Q!Q![IQ![;'S%Q;'S;=`&s<%lO%QVGwX&YSOY%QYZ%lZr%Qrs%qs!O%Q!O!PHd!P;'S%Q;'S;=`&s<%lO%QVHkV&qR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTIXc&YS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![IQ![!f%Q!f!gJd!g!hKQ!h!iJd!i#R%Q#R#SNz#S#W%Q#W#XJd#X#YKQ#Y#ZJd#Z;'S%Q;'S;=`&s<%lO%QTJkV&YS`POY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTKV]&YSOY%QYZ%lZr%Qrs%qs{%Q{|LO|}%Q}!OLO!O!Q%Q!Q![Lp![;'S%Q;'S;=`&s<%lO%QTLTX&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![Lp![;'S%Q;'S;=`&s<%lO%QTLwc&YS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![Lp![!f%Q!f!gJd!g!h%Q!h!iJd!i#R%Q#R#SNS#S#W%Q#W#XJd#X#Y%Q#Y#ZJd#Z;'S%Q;'S;=`&s<%lO%QTNXZ&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![Lp![#R%Q#R#SNS#S;'S%Q;'S;=`&s<%lO%QT! PZ&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![IQ![#R%Q#R#SNz#S;'S%Q;'S;=`&s<%lO%Q_! y]&YS#gQOY%QYZ%lZr%Qrs%qsz%Qz{!!r{!P%Q!P!Q!)e!Q!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%Q_!!wX&YSOY!!rYZ!#dZr!!rrs!%Psz!!rz{!&_{;'S!!r;'S;=`!'s<%lO!!r_!#iT&YSOz!#xz{!$[{;'S!#x;'S;=`!$y<%lO!#xZ!#{TOz!#xz{!$[{;'S!#x;'S;=`!$y<%lO!#xZ!$_VOz!#xz{!$[{!P!#x!P!Q!$t!Q;'S!#x;'S;=`!$y<%lO!#xZ!$yOQZZ!$|P;=`<%l!#x_!%SXOY!%oYZ!#dZr!%ors!'ysz!%oz{!(i{;'S!%o;'S;=`!)_<%lO!%o_!%rXOY!!rYZ!#dZr!!rrs!%Psz!!rz{!&_{;'S!!r;'S;=`!'s<%lO!!r_!&dZ&YSOY!!rYZ!#dZr!!rrs!%Psz!!rz{!&_{!P!!r!P!Q!'V!Q;'S!!r;'S;=`!'s<%lO!!r_!'^V&YSQZOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!'vP;=`<%l!!r_!'|XOY!%oYZ!#dZr!%ors!#xsz!%oz{!(i{;'S!%o;'S;=`!)_<%lO!%o_!(lZOY!!rYZ!#dZr!!rrs!%Psz!!rz{!&_{!P!!r!P!Q!'V!Q;'S!!r;'S;=`!'s<%lO!!r_!)bP;=`<%l!%o_!)lV&YSPZOY!)eYZ%lZr!)ers!*Rs;'S!)e;'S;=`!+X<%lO!)e_!*WVPZOY!*mYZ%lZr!*mrs!+_s;'S!*m;'S;=`!,b<%lO!*m_!*rVPZOY!)eYZ%lZr!)ers!*Rs;'S!)e;'S;=`!+X<%lO!)e_!+[P;=`<%l!)e_!+dVPZOY!*mYZ%lZr!*mrs!+ys;'S!*m;'S;=`!,b<%lO!*mZ!,OSPZOY!+yZ;'S!+y;'S;=`!,[<%lO!+yZ!,_P;=`<%l!+y_!,eP;=`<%l!*mT!,ou&YS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!/S!P!Q%Q!Q![!0`![!d%Q!d!e!3j!e!f%Q!f!gJd!g!hKQ!h!iJd!i!n%Q!n!o!2U!o!q%Q!q!r!5h!r!z%Q!z!{!7`!{#R%Q#R#S!2r#S#U%Q#U#V!3j#V#W%Q#W#XJd#X#YKQ#Y#ZJd#Z#`%Q#`#a!2U#a#c%Q#c#d!5h#d#l%Q#l#m!7`#m;'S%Q;'S;=`&s<%lO%QT!/Za&YS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![IQ![!f%Q!f!gJd!g!hKQ!h!iJd!i#W%Q#W#XJd#X#YKQ#Y#ZJd#Z;'S%Q;'S;=`&s<%lO%QT!0gi&YS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!/S!P!Q%Q!Q![!0`![!f%Q!f!gJd!g!hKQ!h!iJd!i!n%Q!n!o!2U!o#R%Q#R#S!2r#S#W%Q#W#XJd#X#YKQ#Y#ZJd#Z#`%Q#`#a!2U#a;'S%Q;'S;=`&s<%lO%QT!2]V&YS_POY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT!2wZ&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!0`![#R%Q#R#S!2r#S;'S%Q;'S;=`&s<%lO%QT!3oY&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q!R!4_!R!S!4_!S;'S%Q;'S;=`&s<%lO%QT!4f`&YS_POY%QYZ%lZr%Qrs%qs!Q%Q!Q!R!4_!R!S!4_!S!n%Q!n!o!2U!o#R%Q#R#S!3j#S#`%Q#`#a!2U#a;'S%Q;'S;=`&s<%lO%QT!5mX&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q!Y!6Y!Y;'S%Q;'S;=`&s<%lO%QT!6a_&YS_POY%QYZ%lZr%Qrs%qs!Q%Q!Q!Y!6Y!Y!n%Q!n!o!2U!o#R%Q#R#S!5h#S#`%Q#`#a!2U#a;'S%Q;'S;=`&s<%lO%QT!7e_&YSOY%QYZ%lZr%Qrs%qs!O%Q!O!P!8d!P!Q%Q!Q![!:r![!c%Q!c!i!:r!i#T%Q#T#Z!:r#Z;'S%Q;'S;=`&s<%lO%QT!8i]&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!9b![!c%Q!c!i!9b!i#T%Q#T#Z!9b#Z;'S%Q;'S;=`&s<%lO%QT!9gc&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!9b![!c%Q!c!i!9b!i!r%Q!r!sKQ!s#R%Q#R#S!8d#S#T%Q#T#Z!9b#Z#d%Q#d#eKQ#e;'S%Q;'S;=`&s<%lO%QT!:yi&YS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!wX#pR&YSOY%QYZ%lZr%Qrs%qs![%Q![!]!?d!];'S%Q;'S;=`&s<%lO%QV!?kV&vR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV!@XV!PR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!@uY&_Z&YSOY%QYZ%lZr%Qrs%qs!^%Q!^!_!Ae!_!`+p!`;'S%Q;'S;=`&s<%lO%QU!AlX#iQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%QV!B`X!bR&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`;'S%Q;'S;=`&s<%lO%QV!CSY&^R&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`!a!Cr!a;'S%Q;'S;=`&s<%lO%QU!CyY#iQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6n!`!a!Ae!a;'S%Q;'S;=`&s<%lO%Q_!DrV&bX#oQ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!E`X%}Z&YSOY%QYZ%lZr%Qrs%qs#]%Q#]#^!E{#^;'S%Q;'S;=`&s<%lO%QV!FQX&YSOY%QYZ%lZr%Qrs%qs#b%Q#b#c!Fm#c;'S%Q;'S;=`&s<%lO%QV!FrX&YSOY%QYZ%lZr%Qrs%qs#h%Q#h#i!G_#i;'S%Q;'S;=`&s<%lO%QV!GdX&YSOY%QYZ%lZr%Qrs%qs#X%Q#X#Y!HP#Y;'S%Q;'S;=`&s<%lO%QV!HUX&YSOY%QYZ%lZr%Qrs%qs#f%Q#f#g!Hq#g;'S%Q;'S;=`&s<%lO%QV!HvX&YSOY%QYZ%lZr%Qrs%qs#Y%Q#Y#Z!Ic#Z;'S%Q;'S;=`&s<%lO%QV!IhX&YSOY%QYZ%lZr%Qrs%qs#T%Q#T#U!JT#U;'S%Q;'S;=`&s<%lO%QV!JYX&YSOY%QYZ%lZr%Qrs%qs#V%Q#V#W!Ju#W;'S%Q;'S;=`&s<%lO%QV!JzX&YSOY%QYZ%lZr%Qrs%qs#X%Q#X#Y!Kg#Y;'S%Q;'S;=`&s<%lO%QV!KnV&tR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!L[b&RZ&YSOY%QYZ%lZr%Qrs%qst%Qtu!LTu!Q%Q!Q![!LT![!c%Q!c!}!LT!}#R%Q#R#S!LT#S#T%Q#T#o!LT#o$g%Q$g;'S!LT;'S;=`!Md<%lO!LT_!MgP;=`<%l!LT_!MqVuZ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV!N_VsR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QU!N{X#eQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%QV# oV}R&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_#!_Z'OX#dQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6n!`#p%Q#p#q##Q#q;'S%Q;'S;=`&s<%lO%QU##XV#bQ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV##uV|R&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT#$cV#uP&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_#%Ru&YS%yZ&PZOX%QXY'fYZ)bZ^'f^p%Qpq'fqr%Qrs%qst%Qtu4eu!Q%Q!Q![4e![!c%Q!c!}4e!}#R%Q#R#S4e#S#T%Q#T#o4e#o#y%Q#y#z'f#z$f%Q$f$g'f$g#BY4e#BY#BZ#$x#BZ$IS4e$IS$I_#$x$I_$I|4e$I|$JO#$x$JO$JT4e$JT$JU#$x$JU$KV4e$KV$KW#$x$KW&FU4e&FU&FV#$x&FV;'S4e;'S;=`5t<%lO4e",tokenizers:[0,1,2,3],topRules:{Program:[0,3],ClassContent:[1,194]},dynamicPrecedences:{27:1,232:-1,243:-1},specialized:[{term:231,get:Q=>n[Q]||-1}],tokenPrec:7144}),_=X.define({name:"java",parser:d.configure({props:[l.add({IfStatement:$({except:/^\s*({|else\b)/}),TryStatement:$({except:/^\s*({|catch|finally)\b/}),LabeledStatement:Y,SwitchBlock:Q=>{let P=Q.textAfter,i=/^\s*\}/.test(P),a=/^\s*(case|default)\b/.test(P);return Q.baseIndent+(i?0:a?1:2)*Q.unit},Block:S({closing:"}"}),BlockComment:()=>null,Statement:$({except:/^{/})}),o.add({"Block SwitchBlock ClassBody ElementValueArrayInitializer ModuleBody EnumBody ConstructorBody InterfaceBody ArrayInitializer":t,BlockComment(Q){return{from:Q.from+2,to:Q.to-2}}})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/}});function c(){return new s(_)}export{c as java,_ as javaLanguage}; +import{L as r}from"./index-q_Op_mkr.js";import{J as e,Q as O,g as s,L as X,z as l,v as Y,r as $,u as S,x as o,w as t}from"./FileExplorer-BGCt84ef.js";import"./useI18n-CnvN0FfF.js";import"./index-BH9vIdLD.js";import"./prefsSync-D8z1rJ8H.js";import"./client-2UEf7AK8.js";import"./Switch-CpxGRRqY.js";import"./auth-Dhl8fEWW.js";const Z=e({null:O.null,instanceof:O.operatorKeyword,this:O.self,"new super assert open to with void":O.keyword,"class interface extends implements enum var":O.definitionKeyword,"module package import":O.moduleKeyword,"switch while for if else case default do break continue return try catch finally throw":O.controlKeyword,"requires exports opens uses provides public private protected static transitive abstract final strictfp synchronized native transient volatile throws":O.modifier,IntegerLiteral:O.integer,FloatingPointLiteral:O.float,"StringLiteral TextBlock":O.string,CharacterLiteral:O.character,LineComment:O.lineComment,BlockComment:O.blockComment,BooleanLiteral:O.bool,PrimitiveType:O.standard(O.typeName),TypeName:O.typeName,Identifier:O.variableName,"MethodName/Identifier":O.function(O.variableName),Definition:O.definition(O.variableName),ArithOp:O.arithmeticOperator,LogicOp:O.logicOperator,BitOp:O.bitwiseOperator,CompareOp:O.compareOperator,AssignOp:O.definitionOperator,UpdateOp:O.updateOperator,Asterisk:O.punctuation,Label:O.labelName,"( )":O.paren,"[ ]":O.squareBracket,"{ }":O.brace,".":O.derefOperator,", ;":O.separator}),n={__proto__:null,true:34,false:34,null:42,void:46,byte:48,short:48,int:48,long:48,char:48,float:48,double:48,boolean:48,extends:62,super:64,class:76,this:78,new:84,public:100,protected:102,private:104,abstract:106,static:108,final:110,strictfp:112,default:114,synchronized:116,native:118,transient:120,volatile:122,throws:150,implements:160,interface:166,enum:176,instanceof:238,open:267,module:269,requires:274,transitive:276,exports:278,to:280,opens:282,uses:284,provides:286,with:288,package:292,import:296,if:308,else:310,while:314,for:318,var:325,assert:332,switch:336,case:342,do:346,break:350,continue:354,return:358,throw:364,try:368,catch:372,finally:380},d=r.deserialize({version:14,states:"##jQ]QPOOQ$wQPOOO(bQQO'#H^O*iQQO'#CbOOQO'#Cb'#CbO*pQPO'#CaO*xOSO'#CpOOQO'#Hc'#HcOOQO'#Cu'#CuO,eQPO'#D_O-OQQO'#HmOOQO'#Hm'#HmO/gQQO'#HhO/nQQO'#HhOOQO'#Hh'#HhOOQO'#Hg'#HgO1rQPO'#DUO2PQPO'#GnO4wQPO'#D_O5OQPO'#DzO*pQPO'#E[O5qQPO'#E[OOQO'#DV'#DVO7SQQO'#HaO9^QQO'#EeO9eQPO'#EdO9jQPO'#EfOOQO'#Hb'#HbO7jQQO'#HbO:pQQO'#FhO:wQPO'#ExO:|QPO'#E}O:|QPO'#FPOOQO'#Ha'#HaOOQO'#HY'#HYOOQO'#Gh'#GhOOQO'#HX'#HXO<^QPO'#FiOOQO'#HW'#HWOOQO'#Gg'#GgQ]QPOOOOQO'#Hs'#HsOQQPO'#GSO>]QPO'#GUO=kQPO'#GWO:|QPO'#GXO>dQPO'#GZO?QQQO'#HiO?mQQO'#CuO?tQPO'#HxO@SQPO'#D_O@rQPO'#DpO?wQPO'#DqO@|QPO'#HxOA_QPO'#DpOAgQPO'#IROAlQPO'#E`OOQO'#Hr'#HrOOQO'#Gm'#GmQ$wQPOOOAtQPO'#HsOOQO'#H^'#H^OCsQQO,58{OOQO'#H['#H[OOOO'#Gi'#GiOEfOSO,59[OOQO,59[,59[OOQO'#Hi'#HiOFVQPO,59eOGXQPO,59yOOQO-E:f-E:fO*pQPO,58zOG{QPO,58zO*pQPO,5;}OHQQPO'#DQOHVQPO'#DQOOQO'#Gk'#GkOIVQQO,59jOOQO'#Dm'#DmOJqQPO'#HuOJ{QPO'#DlOKZQPO'#HtOKcQPO,5<_OKhQPO,59^OLRQPO'#CxOOQO,59c,59cOLYQPO,59bOLeQQO'#H^ONgQQO'#CbO!!iQPO'#D_O!#nQQO'#HmO!$OQQO,59pO!$VQPO'#DvO!$eQPO'#H|O!$mQPO,5:`O!$rQPO,5:`O!%YQPO,5;nO!%eQPO'#ITO!%pQPO,5;eO!%uQPO,5=YOOQO-E:l-E:lOOQO,5:f,5:fO!']QPO,5:fO!'dQPO,5:vO?tQPO,5<_O*pQPO,5:vO_,5>_O!*sQPO,5:gO!+RQPO,5:qO!+ZQPO,5:lO!+fQPO,5>[O!$VQPO,5>[O!'iQPO,59UO!+qQQO,58zO!+yQQO,5;}O!,RQQO,5gQPO,5gQPO,5<}O!2mQPO,59jO!2zQPO'#HuO!3RQPO,59xO!3WQPO,5>dO?tQPO,59xO!3cQPO,5:[OAlQPO,5:zO!3kQPO'#DrO?wQPO'#DrO!3vQPO'#HyO!4OQPO,5:]O?tQPO,5>dO!(hQPO,5>dOAgQPO,5>mOOQO,5:[,5:[O!$rQPO'#DtOOQO,5>m,5>mO!4TQPO'#EaOOQO,5:z,5:zO!7UQPO,5:zO!(hQPO'#DxOOQO-E:k-E:kOOQO,5:y,5:yO*pQPO,58}O!7ZQPO'#ChOOQO1G.k1G.kOOOO-E:g-E:gOOQO1G.v1G.vO!+qQQO1G.fO*pQPO1G.fO!7eQQO1G1iOOQO,59l,59lO!7mQPO,59lOOQO-E:i-E:iO!7rQPO,5>aO!8ZQPO,5:WO`OOQO1G1y1G1yOOQO1G.x1G.xO!8{QPO'#CyO!9kQPO'#HmO!9uQPO'#CzO!:TQPO'#HlO!:]QPO,59dOOQO1G.|1G.|OLYQPO1G.|O!:sQPO,59eO!;QQQO'#H^O!;cQQO'#CbOOQO,5:b,5:bOhOOQO1G/z1G/zO!oOOQO1G1P1G1POOQO1G0Q1G0QO!=oQPO'#E]OOQO1G0b1G0bO!>`QPO1G1yO!'dQPO1G0bO!*sQPO1G0RO!+RQPO1G0]O!+ZQPO1G0WOOQO1G/]1G/]O!>eQQO1G.pO9eQPO1G0jO*pQPO1G0jOgQPO'#GaOOQO1G2a1G2aO#2zQPO1G2iO#6xQPO,5>gOOQO1G/d1G/dOOQO1G4O1G4OO#7ZQPO1G/dOOQO1G/v1G/vOOQO1G0f1G0fO!7UQPO1G0fOOQO,5:^,5:^O!(hQPO'#DsO#7`QPO,5:^O?wQPO'#GrO#7kQPO,5>eOOQO1G/w1G/wOAgQPO'#H{O#7sQPO1G4OO?tQPO1G4OOOQO1G4X1G4XO!#YQPO'#DvO!!iQPO'#D_OOQO,5:{,5:{O#8OQPO,5:{O#8OQPO,5:{O#8VQQO'#HaO#9hQQO'#HbO#9rQQO'#EbO#9}QPO'#EbO#:VQPO'#IOOOQO,5:d,5:dOOQO1G.i1G.iO#:bQQO'#EeO#:rQQO'#H`O#;SQPO'#FTOOQO'#H`'#H`O#;^QPO'#H`O#;{QPO'#IWO#WOOQO1G/O1G/OOOQO7+$h7+$hOOQO1G/{1G/{O#=cQQO1G/{OOQO1G/}1G/}O#=hQPO1G/{OOQO1G/|1G/|OdQPO,5:wOOQO,5:w,5:wOOQO7+'e7+'eOOQO7+%|7+%|OOQO7+%m7+%mO!KqQPO7+%mO!KvQPO7+%mO!LOQPO7+%mOOQO7+%w7+%wO!LnQPO7+%wOOQO7+%r7+%rO!MmQPO7+%rO!MrQPO7+%rOOQO7+&U7+&UOOQO'#Ee'#EeO9eQPO7+&UO9eQPO,5>[O#?TQPO7+$[OOQO7+&T7+&TOOQO7+&W7+&WO:|QPO'#GlO#?cQPO,5>]OOQO1G/_1G/_O:|QPO7+&lO#?nQQO,59eO#@tQPO,59vOOQO,59v,59vOOQO,5:h,5:hOOQO'#EP'#EPOOQO,5:i,5:iO#@{QPO'#EYOgQPO,5jO#M{QPO,59TO#NSQPO'#IVO#N[QPO,5;oO*pQPO'#G{O#NaQPO,5>rOOQO1G.n1G.nOOQO<Z,5>ZOOQO,5=U,5=UOOQO-E:h-E:hO#NvQPO7+%gOOQO7+%g7+%gOOQO7+%i7+%iOOQO<kO$%tQPO'#EZOOQO1G0_1G0_O$%{QPO1G0_O?tQPO,5:pOOQO-E:s-E:sOOQO1G0Z1G0ZOOQO1G0n1G0nO$&QQQO1G0nOOQO<qOOQO1G1Z1G1ZO$+dQPO'#FUOOQO,5=g,5=gOOQO-E:y-E:yO$+iQPO'#GoO$+vQPO,5>cOOQO1G/u1G/uOOQO<sAN>sO!KqQPOAN>sOOQOAN>xAN>xOOQOAN?[AN?[O9eQPOAN?[OOQO1G0`1G0`O$,_QPO1G0`OOQO,5=b,5=bOOQO-E:t-E:tO$,mQPO,5:uOOQO7+%y7+%yOOQO7+&Y7+&YOOQO1G1`1G1`O$,tQQO1G1`OOQO-E:{-E:{O$,|QQO'#IYO$,wQPO1G1`O$&gQPO1G1`O*pQPO1G1`OOQOAN@]AN@]O$-XQQO<tO$.qQPO7+&zO$.vQQO'#IZOOQOAN@nAN@nO$/RQQOAN@nOOQOAN@jAN@jO$/YQPOAN@jO$/_QQO<uOOQOG26YG26YOOQOG26UG26UOOQO<lOWiXuiX%}iX&PiX&RiX&_iX~OZ!aX~P?XOu#OO%}TO&P#SO&R#SO~O%}TO~P3gOg^Oh^Ov#pO!u#rO!z#qO&_!hO&t#oO~O&P!cO&R!dO~P@ZOg^Oh^O%}TO&P!cO&R!dO~O}cO!P%aO~OZ%bO~O}%dO!m%gO~O}cOg&gXh&gXv&gX!S&gX!T&gX!U&gX!V&gX!W&gX!X&gX!Y&gX!Z&gX!]&gX!^&gX!_&gX!u&gX!z&gX%}&gX&P&gX&R&gX&_&gX&t&gX~OW%jOZ%kOgTahTa%}Ta&PTa&RTa~OvTa!STa!TTa!UTa!VTa!WTa!XTa!YTa!ZTa!]Ta!^Ta!_Ta!uTa!zTa#yTa#zTa$WTa$hTa&tTa&_TauTaYTaqTa|Ta!PTa~PC[O&W%nO&Y!tO~Ou#OO%}TOqma&^maYma&nma!Pma~O&vma}ma!rma~PEnO!SyO!TyO!UyO!VyO!WyO!XyO!YyO!ZzO!]yO!^yO!_yO~Og!Rah!Rav!Ra!u!Ra!z!Ra$h!Ra&P!Ra&R!Ra&t!Ra&_!Ra~PFdO#z%pO~Os%rO~Ou%sO%}TO~Ou#OO%}ra&Pra&Rra&vraYrawra&nra&qra!Pra&^raqra~OWra#_ra#ara#bra#dra#era#fra#gra#hra#ira#kra#ora#rra&_ra#prasra|ra~PH_Ou#OO%}TOq&iX!P&iX!b&iX~OY&iX#p&iX~PJ`O!b%vOq!`X!P!`XY!`X~Oq%wO!P&hX~O!P%yO~Ov%zO~Og^Oh^O%}0oO&P!wO&RWO&b%}O~O&^&`P~PKmO%}TO&P!wO&RWO~OW&QXYiXY!aXY&QXZ&QXq!aXu&QXwiX!b&QX#]&QX#_&QX#a&QX#b&QX#d&QX#e&QX#f&QX#g&QX#h&QX#i&QX#k&QX#o&QX#r&QX&^&QX&_&QX&niX&n&QX&qiX&viX&v&QX&x!aX~P?XOWUXYUXY!aXY&]XZUXq!aXuUXw&]X!bUX#]UX#_UX#aUX#bUX#dUX#eUX#fUX#gUX#hUX#iUX#kUX#oUX#rUX&^UX&_UX&nUX&n&]X&q&]X&vUX&v&]X&x!aX~P>lOg^Oh^O%}TO&P!wO&RWOg!RXh!RX&P!RX&R!RX~PFdOu#OOw&XO%}TO&P&UO&R&TO&q&WO~OW#XOY&aX&n&aX&v&aX~P!#YOY&ZO~P9oOg^Oh^O&P!wO&RWO~Oq&]OY&pX~OY&_O~Og^Oh^O%}TO&P!wO&RWOY&pP~PFdOY&dO&n&bO&v#vO~Oq&eO&x$ZOY&wX~OY&gO~O%}TOg%bah%bav%ba!S%ba!T%ba!U%ba!V%ba!W%ba!X%ba!Y%ba!Z%ba!]%ba!^%ba!_%ba!u%ba!z%ba$h%ba&P%ba&R%ba&t%ba&_%ba~O|&hO~P]O}&iO~Op&uOw&vO&PSO&R!qO&_#YO~Oz&tO~P!'iOz&xO&PSO&R!qO&_#YO~OY&eP~P:|Og^Oh^O%}TO&P!wO&RWO~O}cO~P:|OW#XOu#OO%}TO&v&aX~O#r$WO!P#sa#_#sa#a#sa#b#sa#d#sa#e#sa#f#sa#g#sa#h#sa#i#sa#k#sa#o#sa&^#sa&_#sa&n#saY#sa#p#sas#saq#sa|#sa~Oo'_O}'^O!r'`O&_!hO~O}'eO!r'`O~Oo'iO}'hO&_!hO~OZ#xOu'mO%}TO~OW%jO}'sO~OW%jO!P'uO~OW'vO!P'wO~O$h!WO&P0qO&R0pO!P&eP~P/uO!P(SO#p(TO~P9oO}(UO~O$c(WO~O!P(XO~O!P(YO~O!P(ZO~P9oO!P(]O~P9oOZ$lO_VO`VOaVObVOcVOeVOg^Oh^Op!POwkOz!OO%}TO&P(_O&R(^O&XUO~PFdO%Q(hO%U(iOZ$}a_$}a`$}aa$}ab$}ac$}ae$}ag$}ah$}ap$}av$}aw$}az$}a}$}a!P$}a!S$}a!T$}a!U$}a!V$}a!W$}a!X$}a!Y$}a!Z$}a![$}a!]$}a!^$}a!_$}a!u$}a!z$}a#f$}a#r$}a#t$}a#u$}a#y$}a#z$}a$W$}a$Y$}a$`$}a$c$}a$e$}a$h$}a$l$}a$n$}a$s$}a$u$}a$w$}a$y$}a$|$}a%O$}a%w$}a%}$}a&P$}a&R$}a&X$}a&t$}a|$}a$a$}a$q$}a~O}ra!rra'Ora~PH_OZ%bO~PJ`O!P(mO~O!m%gO}&la!P&la~O}cO!P(pO~Oo(tOq!fX&^!fX~Oq(vO&^&mX~O&^(xO~OZ`O_VO`VOaVObVOcVOeVOg^Oh^Op)UOv{Ow)TOz!OO|)PO}cO!PvO![!`O!u}O!z|O#fpO#roO#tpO#upO#y!RO#z!QO$W!SO$Y!TO$`!UO$c!VO$e!XO$h!WO$l!YO$n!ZO$s![O$u!]O$w!^O$y!_O$|!aO%O!bO%}TO&PRO&RQO&XUO&_#YO&tdO~PFdO}%dO~O})]OY&zP~P:|OW%jO!P)dO~Os)eO~Ou#OO%}TOq&ia!P&ia!b&iaY&ia#p&ia~O})fO~P:|Oq%wO!P&ha~Og^Oh^O%}0oO&P!wO&RWO~O&b)mO~P!8jOu#OO%}TOq&aX&^&aXY&aX&n&aX!P&aX~O}&aX!r&aX~P!9SOo)oOp)oOqnX&^nX~Oq)pO&^&`X~O&^)rO~Ou#OOw)tO%}TO&PSO&R!qO~OYma&nma&vma~P!:bOW&QXY!aXq!aXu!aX%}!aX~OWUXY!aXq!aXu!aX%}!aX~OW)wO~Ou#OO%}TO&P#SO&R#SO&q)yO~Og^Oh^O%}TO&P!wO&RWO~PFdOq&]OY&pa~Ou#OO%}TO&P#SO&R#SO&q&WO~OY)|O~OY*PO&n&bO~Oq&eOY&wa~Og^Oh^Ov{O|*XO!u}O%}TO&P!wO&RWO&tdO~PFdO!P*YO~OW^iZ#XXu^i!P^i!b^i#]^i#_^i#a^i#b^i#d^i#e^i#f^i#g^i#h^i#i^i#k^i#o^i#r^i&^^i&_^i&n^i&v^iY^i#p^is^iq^i|^i~OW*iO~Os*jO~P9oOz*kO&PSO&R!qO~O!P]iY]i#p]is]iq]i|]i~P9oOq*lOY&eX!P&eX~P9oOY*nO~O#f$SO#g$TO#k$YO#r$WO!P#^i#_#^i#a#^i#b#^i#d#^i#e#^i#o#^i&^#^i&_#^i&n#^iY#^i#p#^is#^iq#^i|#^i~O#h$UO#i$UO~P!AmO#_#|O#d$QO#e$RO#f$SO#g$TO#h$UO#i$UO#k$YO#r$WO&^#zO&_#zO&n#{O!P#^i#b#^i#o#^iY#^i#p#^is#^iq#^i|#^i~O#a#^i~P!CUO#a#}O~P!CUO#_#|O#f$SO#g$TO#h$UO#i$UO#k$YO#r$WO&^#zO&_#zO!P#^i#a#^i#b#^i#d#^i#e#^i#o#^iY#^i#p#^is#^iq#^i|#^i~O&n#^i~P!DtO&n#{O~P!DtO#f$SO#g$TO#k$YO#r$WO!P#^i#a#^i#b#^i#e#^i#o#^iY#^i#p#^is#^iq#^i|#^i~O#_#|O#d$QO#h$UO#i$UO&^#zO&_#zO&n#{O~P!FdO#k$YO#r$WO!P#^i#_#^i#a#^i#b#^i#d#^i#e#^i#f#^i#h#^i#i#^i#o#^i&^#^i&_#^i&n#^iY#^i#p#^is#^iq#^i|#^i~O#g$TO~P!G{O#g#^i~P!G{O#h#^i#i#^i~P!AmO#p*oO~P9oO#_&aX#a&aX#b&aX#d&aX#e&aX#f&aX#g&aX#h&aX#i&aX#k&aX#o&aX#r&aX&_&aX#p&aXs&aX|&aX~P!9SO!P#liY#li#p#lis#liq#li|#li~P9oO|*rO~P$wO}'^O~O}'^O!r'`O~Oo'_O}'^O!r'`O~O%}TO&P#SO&R#SO|&sP!P&sP~PFdO}'eO~Og^Oh^Ov{O|+PO!P*}O!u}O!z|O%}TO&P!wO&RWO&_!hO&tdO~PFdO}'hO~Oo'iO}'hO~Os+RO~P:|Ou+TO%}TO~Ou'mO})fO%}TOW#Zi!P#Zi#_#Zi#a#Zi#b#Zi#d#Zi#e#Zi#f#Zi#g#Zi#h#Zi#i#Zi#k#Zi#o#Zi#r#Zi&^#Zi&_#Zi&n#Zi&v#ZiY#Zi#p#Zis#Ziq#Zi|#Zi~O}'^OW&diu&di!P&di#_&di#a&di#b&di#d&di#e&di#f&di#g&di#h&di#i&di#k&di#o&di#r&di&^&di&_&di&n&di&v&diY&di#p&dis&diq&di|&di~O#}+]O$P+^O$R+^O$S+_O$T+`O~O|+[O~P##nO$Z+aO&PSO&R!qO~OW+bO!P+cO~O$a+dOZ$_i_$_i`$_ia$_ib$_ic$_ie$_ig$_ih$_ip$_iv$_iw$_iz$_i}$_i!P$_i!S$_i!T$_i!U$_i!V$_i!W$_i!X$_i!Y$_i!Z$_i![$_i!]$_i!^$_i!_$_i!u$_i!z$_i#f$_i#r$_i#t$_i#u$_i#y$_i#z$_i$W$_i$Y$_i$`$_i$c$_i$e$_i$h$_i$l$_i$n$_i$s$_i$u$_i$w$_i$y$_i$|$_i%O$_i%w$_i%}$_i&P$_i&R$_i&X$_i&t$_i|$_i$q$_i~Og^Oh^O$h#sO&P!wO&RWO~O!P+hO~P:|O!P+iO~OZ`O_VO`VOaVObVOcVOeVOg^Oh^Op!POv{OwkOz!OO}cO!PvO!SyO!TyO!UyO!VyO!WyO!XyO!YyO!Z+nO![!`O!]yO!^yO!_yO!u}O!z|O#fpO#roO#tpO#upO#y!RO#z!QO$W!SO$Y!TO$`!UO$c!VO$e!XO$h!WO$l!YO$n!ZO$q+oO$s![O$u!]O$w!^O$y!_O$|!aO%O!bO%}TO&PRO&RQO&XUO&tdO~O|+mO~P#)QOW&QXY&QXZ&QXu&QX!P&QX&viX&v&QX~P?XOWUXYUXZUXuUX!PUX&vUX&v&]X~P>lOW#tOu#uO&v#vO~OW&UXY%XXu&UX!P%XX&v&UX~OZ#XX~P#.VOY+uO!P+sO~O%Q(hO%U(iOZ$}i_$}i`$}ia$}ib$}ic$}ie$}ig$}ih$}ip$}iv$}iw$}iz$}i}$}i!P$}i!S$}i!T$}i!U$}i!V$}i!W$}i!X$}i!Y$}i!Z$}i![$}i!]$}i!^$}i!_$}i!u$}i!z$}i#f$}i#r$}i#t$}i#u$}i#y$}i#z$}i$W$}i$Y$}i$`$}i$c$}i$e$}i$h$}i$l$}i$n$}i$s$}i$u$}i$w$}i$y$}i$|$}i%O$}i%w$}i%}$}i&P$}i&R$}i&X$}i&t$}i|$}i$a$}i$q$}i~OZ+xO~O%Q(hO%U(iOZ%Vi_%Vi`%Via%Vib%Vic%Vie%Vig%Vih%Vip%Viv%Viw%Viz%Vi}%Vi!P%Vi!S%Vi!T%Vi!U%Vi!V%Vi!W%Vi!X%Vi!Y%Vi!Z%Vi![%Vi!]%Vi!^%Vi!_%Vi!u%Vi!z%Vi#f%Vi#r%Vi#t%Vi#u%Vi#y%Vi#z%Vi$W%Vi$Y%Vi$`%Vi$c%Vi$e%Vi$h%Vi$l%Vi$n%Vi$s%Vi$u%Vi$w%Vi$y%Vi$|%Vi%O%Vi%w%Vi%}%Vi&P%Vi&R%Vi&X%Vi&t%Vi|%Vi$a%Vi$q%Vi~Ou#OO%}TO}&oa!P&oa!m&oa~O!P,OO~Oo(tOq!fa&^!fa~Oq(vO&^&ma~O!m%gO}&li!P&li~O|,XO~P]OW,ZO~P5xOW&UXu&UX#_&UX#a&UX#b&UX#d&UX#e&UX#f&UX#g&UX#h&UX#i&UX#k&UX#o&UX#r&UX&^&UX&_&UX&n&UX&v&UX~OZ#xO!P&UX~P#8^OW$gOZ#xO&v#vO~Op,]Ow,]O~Oq,^O}&rX!P&rX~O!b,`O#]#wOY&UXZ#XX~P#8^OY&SXq&SX|&SX!P&SX~P9oO})]O|&yP~P:|OY&SXg%[Xh%[X%}%[X&P%[X&R%[Xq&SX|&SX!P&SX~Oq,cOY&zX~OY,eO~O})fO|&kP~P:|Oq&jX!P&jX|&jXY&jX~P9oO&bTa~PC[Oo)oOp)oOqna&^na~Oq)pO&^&`a~OW,mO~Ow,nO~Ou#OO%}TO&P,rO&R,qO~Og^Oh^Ov#pO!u#rO&P!wO&RWO&t#oO~Og^Oh^Ov{O|,wO!u}O%}TO&P!wO&RWO&tdO~PFdOw-SO&PSO&R!qO&_#YO~Oq*lOY&ea!P&ea~O#_ma#ama#bma#dma#ema#fma#gma#hma#ima#kma#oma#rma&_ma#pmasma|ma~PEnO|-WO~P$wOZ#xO}'^Oq!|X|!|X!P!|X~Oq-[O|&sX!P&sX~O|-_O!P-^O~O&_!hO~P5VOg^Oh^Ov{O|-cO!P*}O!u}O!z|O%}TO&P!wO&RWO&_!hO&tdO~PFdOs-dO~P9oOs-dO~P:|O}'^OW&dqu&dq!P&dq#_&dq#a&dq#b&dq#d&dq#e&dq#f&dq#g&dq#h&dq#i&dq#k&dq#o&dq#r&dq&^&dq&_&dq&n&dq&v&dqY&dq#p&dqs&dqq&dq|&dq~O|-hO~P##nO!W-lO$O-lO&PSO&R!qO~O!P-oO~O$Z-pO&PSO&R!qO~O!b%vO#p-rOq!`X!P!`X~O!P-tO~P9oO!P-tO~P:|O!P-wO~P9oO|-yO~P#)QO![$aO#p-zO~O!P-|O~O!b-}O~OY.QOZ$lO_VO`VOaVObVOcVOeVOg^Oh^Op!POwkOz!OO%}TO&P(_O&R(^O&XUO~PFdOY.QO!P.RO~O%Q(hO%U(iOZ%Vq_%Vq`%Vqa%Vqb%Vqc%Vqe%Vqg%Vqh%Vqp%Vqv%Vqw%Vqz%Vq}%Vq!P%Vq!S%Vq!T%Vq!U%Vq!V%Vq!W%Vq!X%Vq!Y%Vq!Z%Vq![%Vq!]%Vq!^%Vq!_%Vq!u%Vq!z%Vq#f%Vq#r%Vq#t%Vq#u%Vq#y%Vq#z%Vq$W%Vq$Y%Vq$`%Vq$c%Vq$e%Vq$h%Vq$l%Vq$n%Vq$s%Vq$u%Vq$w%Vq$y%Vq$|%Vq%O%Vq%w%Vq%}%Vq&P%Vq&R%Vq&X%Vq&t%Vq|%Vq$a%Vq$q%Vq~Ou#OO%}TO}&oi!P&oi!m&oi~O&n&bOq!ga&^!ga~O!m%gO}&lq!P&lq~O|.^O~P]Op.`Ow&vOz&tO&PSO&R!qO&_#YO~O!P.aO~Oq,^O}&ra!P&ra~O})]O~P:|Oq.gO|&yX~O|.iO~Oq,cOY&za~Oq.mO|&kX~O|.oO~Ow.pO~Oq!aXu!aX!P!aX!b!aX%}!aX~OZ&QX~P#N{OZUX~P#N{O!P.qO~OZ.rO~OW^yZ#XXu^y!P^y!b^y#]^y#_^y#a^y#b^y#d^y#e^y#f^y#g^y#h^y#i^y#k^y#o^y#r^y&^^y&_^y&n^y&v^yY^y#p^ys^yq^y|^y~OY%`aq%`a!P%`a~P9oO!P#nyY#ny#p#nys#nyq#ny|#ny~P9oO}'^Oq!|a|!|a!P!|a~OZ#xO}'^Oq!|a|!|a!P!|a~O%}TO&P#SO&R#SOq%jX|%jX!P%jX~PFdOq-[O|&sa!P&sa~O|!}X~P$wO|/PO~Os/QO~P9oOW%jO!P/RO~OW%jO$Q/WO&PSO&R!qO!P&|P~OW%jO$U/XO~O!P/YO~O!b%vO#p/[Oq!`X!P!`X~OY/^O~O!P/_O~P9oO#p/`O~P9oO!b/bO~OY/cOZ$lO_VO`VOaVObVOcVOeVOg^Oh^Op!POwkOz!OO%}TO&P(_O&R(^O&XUO~PFdOW#[Ou&[X%}&[X&P&[X&R&[X'O&[X~O&_#YO~P$)QOu#OO%}TO'O/eO&P%SX&R%SX~O&n&bOq!gi&^!gi~Op/iO&PSO&R!qO~OW*iOZ#xO~O!P/kO~OY&SXq&SX~P9oO})]Oq%nX|%nX~P:|Oq.gO|&ya~O!b/nO~O})fOq%cX|%cX~P:|Oq.mO|&ka~OY/qO~O!P/rO~OZ/sO~O}'^Oq!|i|!|i!P!|i~O|!}a~P$wOW%jO!P/wO~OW%jOq/xO!P&|X~OY/|O~P9oOY0OO~OY%Xq!P%Xq~P9oO'O/eO&P%Sa&R%Sa~OY0TO~O!P0WO~Ou#OO!P0YO!Z0ZO%}TO~OY0[O~Oq/xO!P&|a~O!P0_O~OW%jOq/xO!P&}X~OY0aO~P9oOY0bO~OY%Xy!P%Xy~P9oOu#OO%}TO&P%ua&R%ua'O%ua~OY0cO~O!P0dO~Ou#OO!P0eO!Z0fO%}TO~OW%jOq%ra!P%ra~Oq/xO!P&}a~O!P0jO~Ou#OO!P0jO!Z0kO%}TO~O!P0lO~O!P0nO~O#p&QXY&QXs&QXq&QX|&QX~P&bO#pUXYUXsUXqUX|UX~P(iO`Q_P#g%y&P&Xc&X~",goto:"#+S'OPPPP'P'd*x.OP'dPP.d.h0PPPPPP1nP3ZPP4v7l:[WP!?[P!Ap!BW!E]3ZPPP!F|!Jm!MaPP#!P#!SP#$`#$f#&V#&f#&n#'p#(Y#)T#)^#)a#)oP#)r#*OP#*V#*^P#*aP#*lP#*o#*r#*u#*y#+PstOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y'urOPXY`acopx!Y![!_!a!e!f!h!i!o!x#P#T#Y#[#_#`#e#i#l#n#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$]$_$e$l$m$n$o$p$q%O%S%V%Z%^%_%b%d%g%k%u%v%{%|&R&S&[&]&`&b&d&i'X'^'_'`'e'h'i'm'n'p'{'|(O(T(U(`(l(t(v({(})O)Q)R)])f)o)p*P*T*W*l*o*p*q*z*{+O+T+d+f+h+i+l+o+r+s+x+},W,Y,^,`,u-[-^-a-r-t-}.R.V.g.m/O/[/_/b/d/n/q0R0X0Z0[0f0h0k0r#xhO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0kt!sT!Q!S!T!{!}$k%p+]+^+_+`-k-m/W/X/x0oQ#mdS&Y#`(}Q&l#oU&q#t$g,ZQ&x#vW(b%O+s.R/dU)Y%j'v+bQ)Z%kS)u&S,WU*f&s-R._Q*k&yQ,t*TQ-P*iQ.j,cR.t,uu!sT!Q!S!T!{!}$k%p+]+^+_+`-k-m/W/X/x0oT%l!r)l#{qO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0k#zlO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0kX(c%O+s.R/d$TVO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0k$TkO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0k&O[OPX`ceopx!O!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$f$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i&t'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s,Y,^,`-^-r-t-}.R.g.m/O/[/_/b/d/n0Z0f0k0rQ&Q#[Q)s&RV.T+x.X/e&O[OPX`ceopx!O!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$f$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i&t'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s,Y,^,`-^-r-t-}.R.g.m/O/[/_/b/d/n0Z0f0k0rV.T+x.X/e&O]OPX`ceopx!O!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$f$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i&t'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s,Y,^,`-^-r-t-}.R.g.m/O/[/_/b/d/n0Z0f0k0rV.U+x.X/eS#Z[.TS$f!O&tS&s#t$gQ&y#vQ)V%dQ-R*iR._,Z$kZO`copx!Y![!_!a#Y#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$_$l$m$n$o$p$q%O%d%g%k%v&b&d'_'`'i'm(O(T(U(t)Q)R)])f)o)p*P*l*o+T+d+h+i+l+o+s,Y,^,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kQ&O#YR,k)p&P_OPX`ceopx!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s+x,Y,^,`-^-r-t-}.R.X.g.m/O/[/_/b/d/e/n0Z0f0k0r!o#QY!e!x#R#T#`#n$]%R%S%V%^%u%|&S&[&`'X'|(`(l({(}*T*p*z+f+r+},W,u-a.V/q0R0X0[0h$SkO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kQ$m!UQ$n!VQ$s!ZQ$|!`R+p(WQ#yiS'q$e*hQ*e&rQ+X'rS,[)T)UQ-O*gQ-Y*vQ.b,]Q.x-QQ.{-ZQ/j.`Q/u.yR0V/iQ'a$bW*[&m'b'c'dQ+W'qU,x*]*^*_Q-X*vQ-f+XS.u,y,zS.z-Y-ZQ/t.vR/v.{]!mP!o'^*q-^/OreOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!gP!o'^*q-^/OW#b`#e%b&]Q'}$oW(d%O+s.R/dS*U&i*WS*w'e-[S*|'h+OR.X+xh#VY!W!e#n#s%V'|*T*z+f,u-aQ)j%wQ)v&WR,o)y#xnOcopx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0k^!kP!g!o'^*q-^/Ov#TY!W#`#n#s%w&W&[&`'|(`(})y*T+f+r,u.W/hQ#g`Q$b{Q$c|Q$d}W%S!e%V*z-aS%Y!h(vQ%`!iQ&m#pQ&n#qQ&o#rQ(u%ZS(y%^({Q*R&eS*v'e-[R-Z*wU)h%v)f.mR+V'p[!mP!o'^*q-^/OT*}'h+O^!iP!g!o'^*q-^/OQ'd$bQ'l$dQ*_&mQ*d&oV*{'h*|+OQ%[!hR,S(vQ(s%YR,R(u#znO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0kQ%c!kS(l%S(yR(|%`T#e`%bU#c`#e%bR)z&]Q%f!lQ(n%UQ(r%XQ,U(zR.],VrvOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!mP!o'^*q-^/OQ%P!bQ%a!jQ%i!pQ'[$ZQ([$|Q(k%QQ(p%WQ+z(iR.Y+yrtOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!mP!o'^*q-^/OS*V&i*WT*}'h+OQ'c$bS*^&m'dR,z*_Q'b$bQ'g$cU*]&m'c'dQ*a&nS,y*^*_R.v,zQ*u'`R+Q'iQ'k$dS*c&o'lR,}*dQ'j$dU*b&o'k'lS,|*c*dR.w,}rtOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!mP!o'^*q-^/OT*}'h+OQ'f$cS*`&n'gR,{*aQ*x'eR.|-[R-`*yQ&j#mR*Z&lT*V&i*WQ%e!lS(q%X%fR,P(rR)R%dWk%O+s.R/d#{lO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0k$SiO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kU&r#t$g,ZS*g&s._Q-Q*iR.y-RT'o$e'p!_#|m#a$r$z$}&w&z&{'O'P'Q'R'S'W'Z)[)g+S+g+j-T-V-e-v-{.e/Z/a/}0Q!]$Pm#a$r$z$}&w&z&{'O'P'R'S'W'Z)[)g+S+g+j-T-V-e-v-{.e/Z/a/}0Q#{nO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0ka)^%k)],`.g/n0Z0f0kQ)`%kR.k,cQ't$hQ)b%oR,f)cT+Y's+ZsvOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,YruOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,YQ$w!]R$y!^R$p!XrvOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,YR(O$oR$q!XR(V$sT+k(U+lX(f%P(g(k+{R+y(hQ.W+xR/h.XQ(j%PQ+w(gQ+|(kR.Z+{R%Q!bQ(e%OV.P+s.R/dQxOQ#lcW$`x#l)Q,YQ)Q%dR,Y)RrXOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Yn!fP!o#e&]&i'^'e'h*W*q+O+x-[-^/Ol!zX!f#P#_#i$[%Z%_%{&R'n'{)O0r!j#PY!e!x#T#`#n$]%S%V%^%u%|&S&[&`'X'|(`(l({(}*T*p*z+f+r+},W,u-a.V/q0R0X0[0hQ#_`Q#ia#d$[op!Y!_!a#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$l%g%k%v&b&d'_'`'i'm(O(T(t)])f)o*P*l*o+T+h+i+o,^,`-r-t-}.g.m/[/_/b/n0Z0f0kS%Z!h(vS%_!i*{S%{#Y)pQ&R#[S'n$e'pY'{$o%O+s.R/dQ)O%bR0r$YQ!uUR%m!uQ)q&OR,l)q^#RY#`$]'X'|(`*px%R!e!x#n%V%^%|&S&[&`({(}*T*z+f+r,W,u-a.V0R[%t#R%R%u+}0X0hS%u#T%SQ+}(lQ0X/qR0h0[Q*m&{R-U*mQ!oPU%h!o*q/OQ*q'^R/O-^!pbOP`cx![!o#e#l$_$m$n$o$p$q%O%b%d&]&i'^'e'h(U)Q)R*W*q+O+d+l+s+x,Y-[-^.R/O/dY!yX!f#_'{)OT#jb!yQ.n,gR/p.nQ%x#VR)k%xQ&c#fS*O&c.[R.[,QQ(w%[R,T(wQ&^#cR){&^Q,_)WR.d,_Q+O'hR-b+OQ-]*xR.}-]Q*W&iR,v*WQ'p$eR+U'pQ&f#gR*S&fQ.h,aR/m.hQ,d)`R.l,dQ+Z'sR-g+ZQ-k+]R/T-kQ/y/US0^/y0`R0`/{Q+l(UR-x+lQ(g%PS+v(g+{R+{(kQ/f.VR0S/fQ+t(eR.S+t`wOcx#l%d)Q)R,YQ$t![Q']$_Q'y$mQ'z$nQ(Q$pQ(R$qS+k(U+lR-q+d'dsOPXY`acopx!Y![!_!a!e!f!h!i!o!x#P#T#Y#[#_#`#e#i#l#n#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$]$_$e$l$m$n$o$p$q%O%S%V%Z%^%_%b%d%g%u%v%{%|&R&S&[&]&`&b&d&i'X'^'_'`'e'h'i'm'n'p'{'|(O(T(U(`(l(t(v({(})O)Q)R)f)o)p*P*T*W*l*o*p*q*z*{+O+T+d+f+h+i+l+o+r+s+x+},W,Y,^,u-[-^-a-r-t-}.R.V.m/O/[/_/b/d/q0R0X0[0h0ra)_%k)],`.g/n0Z0f0kQ!rTQ$h!QQ$i!SQ$j!TQ%o!{Q%q!}Q'x$kQ)c%pQ)l0oS-i+]+_Q-m+^Q-n+`Q/S-kS/U-m/WQ/{/XR0]/x%uSOT`cdopx!Q!S!T!Y![!_!a!{!}#`#l#o#t#u#v#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$g$k$l$m$n$o$p$q%O%d%j%k%p%v&S&d&s&y'm'v(O(T(U(})Q)R)])f*P*T*i*l*o+T+]+^+_+`+b+d+h+i+l+o+s,W,Y,Z,`,c,u-R-k-m-r-t-}.R._.g.m/W/X/[/_/b/d/n/x0Z0f0k0oQ)a%kQ,a)]S.f,`/nQ/l.gQ0g0ZQ0i0fR0m0krmOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,YS#a`$lQ$WoQ$^pQ$r!YQ$z!_Q$}!aQ&w#uQ&z#wY&{#x$o+h-t/_Q&}#|Q'O#}Q'P$OQ'Q$PQ'R$QQ'S$RQ'T$SQ'U$TQ'V$UQ'W$VQ'Z$Z^)[%k)].g/n0Z0f0kU)g%v)f.mQ*Q&dQ+S'mQ+g(OQ+j(TQ,p*PQ-T*lQ-V*oQ-e+TQ-v+iQ-{+oQ.e,`Q/Z-rQ/a-}Q/}/[R0Q/b#xgO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0kW(a%O+s.R/dR)S%drYOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!eP!o'^*q-^/OW!xX$[%{'{Q#``Q#ne#S$]op!Y!_!a#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$l%k%v&d'm(O(T)])f*P*l*o+T+h+i+o,`-r-t-}.g.m/[/_/b/n0Z0f0kQ%V!gS%^!i*{d%|#Y%g&b'_'`'i(t)o)p,^Q&S#_Q&[#bS&`#e&]Q'X$YQ'|$oW(`%O+s.R/dQ({%_Q(}%bS*T&i*WQ*p0rS*z'h+OQ+f'}Q+r(dQ,W)OQ,u*UQ-a*|S.V+x.XR0R/e&O_OPX`ceopx!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s+x,Y,^,`-^-r-t-}.R.X.g.m/O/[/_/b/d/e/n0Z0f0k0rQ$e!OQ'r$fR*h&t&ZWOPX`ceopx!O!Y![!_!a!g!i!o#Y#[#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$f$l$m$n$o$p$q%O%_%b%d%g%k%v%{&R&]&b&d&i&t'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s+x,Y,^,`-^-r-t-}.R.X.g.m/O/[/_/b/d/e/n0Z0f0k0rR&P#Y$QjOcopx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kQ#f`Q&O#YQ'Y$YU)W%g'`'iQ)}&bQ*s'_Q,Q(tQ,j)oQ,k)pR.c,^Q)n%}R,i)m$SfO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kT&p#t,ZQ&|#xQ(P$oQ-u+hQ/]-tR0P/_]!nP!o'^*q-^/O#PaOPX`bcx![!f!o!y#_#e#l$_$m$n$o$p$q%O%b%d&]&i'^'e'h'{(U)O)Q)R*W*q+O+d+l+s+x,Y-[-^.R/O/dU#WY!W'|Q%T!eU&k#n#s+fQ(o%VS,s*T*zT.s,u-aj#UY!W!e#n#s%V%w&W)y*T*z,u-aU&V#`&`(}Q)x&[Q+e'|Q+q(`Q-s+fQ.O+rQ/g.WR0U/hQ)i%vQ,g)fR/o.mR,h)f`!jP!o'^'h*q+O-^/OT%W!g*|R%]!hW%U!e%V*z-aQ(z%^R,V({S#d`%bR&a#eQ)X%gT*t'`'iR*y'e[!lP!o'^*q-^/OR%X!gR#h`R,b)]R)a%kT-j+]-kQ/V-mR/z/WR/z/X",nodeNames:"⚠ LineComment BlockComment Program ModuleDeclaration MarkerAnnotation Identifier ScopedIdentifier . Annotation ) ( AnnotationArgumentList AssignmentExpression FieldAccess IntegerLiteral FloatingPointLiteral BooleanLiteral CharacterLiteral StringLiteral TextBlock null ClassLiteral void PrimitiveType TypeName ScopedTypeName GenericType TypeArguments AnnotatedType Wildcard extends super , ArrayType ] Dimension [ class this ParenthesizedExpression ObjectCreationExpression new ArgumentList } { ClassBody ; FieldDeclaration Modifiers public protected private abstract static final strictfp default synchronized native transient volatile VariableDeclarator Definition AssignOp ArrayInitializer MethodDeclaration TypeParameters TypeParameter TypeBound FormalParameters ReceiverParameter FormalParameter SpreadParameter Throws throws Block ClassDeclaration Superclass SuperInterfaces implements InterfaceTypeList InterfaceDeclaration interface ExtendsInterfaces InterfaceBody ConstantDeclaration EnumDeclaration enum EnumBody EnumConstant EnumBodyDeclarations AnnotationTypeDeclaration AnnotationTypeBody AnnotationTypeElementDeclaration StaticInitializer ConstructorDeclaration ConstructorBody ExplicitConstructorInvocation ArrayAccess MethodInvocation MethodName MethodReference ArrayCreationExpression Dimension AssignOp BinaryExpression CompareOp CompareOp LogicOp LogicOp BitOp BitOp BitOp ArithOp ArithOp ArithOp BitOp InstanceofExpression instanceof LambdaExpression InferredParameters TernaryExpression LogicOp : UpdateExpression UpdateOp UnaryExpression LogicOp BitOp CastExpression ElementValueArrayInitializer ElementValuePair open module ModuleBody ModuleDirective requires transitive exports to opens uses provides with PackageDeclaration package ImportDeclaration import Asterisk ExpressionStatement LabeledStatement Label IfStatement if else WhileStatement while ForStatement for ForSpec LocalVariableDeclaration var EnhancedForStatement ForSpec AssertStatement assert SwitchStatement switch SwitchBlock SwitchLabel case DoStatement do BreakStatement break ContinueStatement continue ReturnStatement return SynchronizedStatement ThrowStatement throw TryStatement try CatchClause catch CatchFormalParameter CatchType FinallyClause finally TryWithResourcesStatement ResourceSpecification Resource ClassContent",maxTerm:276,nodeProps:[["isolate",-4,1,2,18,19,""],["group",-26,4,47,76,77,82,87,92,145,147,150,151,153,156,158,161,163,165,167,172,174,176,178,180,181,183,191,"Statement",-25,6,13,14,15,16,17,18,19,20,21,22,39,40,41,99,100,102,103,106,118,120,122,125,127,130,"Expression",-7,23,24,25,26,27,29,34,"Type"],["openedBy",10,"(",44,"{"],["closedBy",11,")",45,"}"]],propSources:[Z],skippedNodes:[0,1,2],repeatNodeCount:28,tokenData:"#'f_R!_OX%QXY'fYZ)bZ^'f^p%Qpq'fqr*|rs,^st%Qtu4euv5zvw7[wx8rxyAZyzAwz{Be{|CZ|}Dq}!OE_!O!PFx!P!Q! r!Q!R!,h!R![!0`![!]!>p!]!^!@Q!^!_!@n!_!`!BX!`!a!B{!a!b!Di!b!c!EX!c!}!LT!}#O!Mj#O#P%Q#P#Q!NW#Q#R!Nt#R#S4e#S#T%Q#T#o4e#o#p# h#p#q#!U#q#r##n#r#s#$[#s#y%Q#y#z'f#z$f%Q$f$g'f$g#BY4e#BY#BZ#$x#BZ$IS4e$IS$I_#$x$I_$I|4e$I|$JO#$x$JO$JT4e$JT$JU#$x$JU$KV4e$KV$KW#$x$KW&FU4e&FU&FV#$x&FV;'S4e;'S;=`5t<%lO4eS%VV&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QS%qO&YSS%tVOY&ZYZ%lZr&Zrs&ys;'S&Z;'S;=`'`<%lO&ZS&^VOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QS&vP;=`<%l%QS&|UOY&ZYZ%lZr&Zs;'S&Z;'S;=`'`<%lO&ZS'cP;=`<%l&Z_'mk&YS%yZOX%QXY'fYZ)bZ^'f^p%Qpq'fqr%Qrs%qs#y%Q#y#z'f#z$f%Q$f$g'f$g#BY%Q#BY#BZ'f#BZ$IS%Q$IS$I_'f$I_$I|%Q$I|$JO'f$JO$JT%Q$JT$JU'f$JU$KV%Q$KV$KW'f$KW&FU%Q&FU&FV'f&FV;'S%Q;'S;=`&s<%lO%Q_)iY&YS%yZX^*Xpq*X#y#z*X$f$g*X#BY#BZ*X$IS$I_*X$I|$JO*X$JT$JU*X$KV$KW*X&FU&FV*XZ*^Y%yZX^*Xpq*X#y#z*X$f$g*X#BY#BZ*X$IS$I_*X$I|$JO*X$JT$JU*X$KV$KW*X&FU&FV*XV+TX#tP&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`;'S%Q;'S;=`&s<%lO%QU+wV#_Q&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT,aXOY,|YZ%lZr,|rs3Ys#O,|#O#P2d#P;'S,|;'S;=`3S<%lO,|T-PXOY-lYZ%lZr-lrs.^s#O-l#O#P.x#P;'S-l;'S;=`2|<%lO-lT-qX&YSOY-lYZ%lZr-lrs.^s#O-l#O#P.x#P;'S-l;'S;=`2|<%lO-lT.cVcPOY&ZYZ%lZr&Zrs&ys;'S&Z;'S;=`'`<%lO&ZT.}V&YSOY-lYZ/dZr-lrs1]s;'S-l;'S;=`2|<%lO-lT/iW&YSOY0RZr0Rrs0ns#O0R#O#P0s#P;'S0R;'S;=`1V<%lO0RP0UWOY0RZr0Rrs0ns#O0R#O#P0s#P;'S0R;'S;=`1V<%lO0RP0sOcPP0vTOY0RYZ0RZ;'S0R;'S;=`1V<%lO0RP1YP;=`<%l0RT1`XOY,|YZ%lZr,|rs1{s#O,|#O#P2d#P;'S,|;'S;=`3S<%lO,|T2QUcPOY&ZYZ%lZr&Zs;'S&Z;'S;=`'`<%lO&ZT2gVOY-lYZ/dZr-lrs1]s;'S-l;'S;=`2|<%lO-lT3PP;=`<%l-lT3VP;=`<%l,|T3_VcPOY&ZYZ%lZr&Zrs3ts;'S&Z;'S;=`'`<%lO&ZT3yR&WSXY4SYZ4`pq4SP4VRXY4SYZ4`pq4SP4eO&XP_4lb&YS&PZOY%QYZ%lZr%Qrs%qst%Qtu4eu!Q%Q!Q![4e![!c%Q!c!}4e!}#R%Q#R#S4e#S#T%Q#T#o4e#o$g%Q$g;'S4e;'S;=`5t<%lO4e_5wP;=`<%l4eU6RX#hQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%QU6uV#]Q&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV7cZ&nR&YSOY%QYZ%lZr%Qrs%qsv%Qvw8Uw!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%QU8]V#aQ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT8wZ&YSOY9jYZ%lZr9jrs:xsw9jwx%Qx#O9j#O#PhYZ%lZr>hrs?dsw>hwx;hx#O>h#O#P&Z#P;'S>h;'S;=`@}<%lO>hT>kZOYhYZ%lZr>hrs@Ysw>hwx;hx#O>h#O#P&Z#P;'S>h;'S;=`@}<%lO>hP@]VOY@YZw@Ywx@rx#O@Y#P;'S@Y;'S;=`@w<%lO@YP@wObPP@zP;=`<%l@YTAQP;=`<%l>hTAWP;=`<%l9j_AbVZZ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVBOVYR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVBnX$ZP&YS#gQOY%QYZ%lZr%Qrs%qs!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%QVCbZ#fR&YSOY%QYZ%lZr%Qrs%qs{%Q{|DT|!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%QVD[V#rR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVDxVqR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVEf[#fR&YSOY%QYZ%lZr%Qrs%qs}%Q}!ODT!O!_%Q!_!`6n!`!aF[!a;'S%Q;'S;=`&s<%lO%QVFcV&xR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_GPZWY&YSOY%QYZ%lZr%Qrs%qs!O%Q!O!PGr!P!Q%Q!Q![IQ![;'S%Q;'S;=`&s<%lO%QVGwX&YSOY%QYZ%lZr%Qrs%qs!O%Q!O!PHd!P;'S%Q;'S;=`&s<%lO%QVHkV&qR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTIXc&YS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![IQ![!f%Q!f!gJd!g!hKQ!h!iJd!i#R%Q#R#SNz#S#W%Q#W#XJd#X#YKQ#Y#ZJd#Z;'S%Q;'S;=`&s<%lO%QTJkV&YS`POY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTKV]&YSOY%QYZ%lZr%Qrs%qs{%Q{|LO|}%Q}!OLO!O!Q%Q!Q![Lp![;'S%Q;'S;=`&s<%lO%QTLTX&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![Lp![;'S%Q;'S;=`&s<%lO%QTLwc&YS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![Lp![!f%Q!f!gJd!g!h%Q!h!iJd!i#R%Q#R#SNS#S#W%Q#W#XJd#X#Y%Q#Y#ZJd#Z;'S%Q;'S;=`&s<%lO%QTNXZ&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![Lp![#R%Q#R#SNS#S;'S%Q;'S;=`&s<%lO%QT! PZ&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![IQ![#R%Q#R#SNz#S;'S%Q;'S;=`&s<%lO%Q_! y]&YS#gQOY%QYZ%lZr%Qrs%qsz%Qz{!!r{!P%Q!P!Q!)e!Q!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%Q_!!wX&YSOY!!rYZ!#dZr!!rrs!%Psz!!rz{!&_{;'S!!r;'S;=`!'s<%lO!!r_!#iT&YSOz!#xz{!$[{;'S!#x;'S;=`!$y<%lO!#xZ!#{TOz!#xz{!$[{;'S!#x;'S;=`!$y<%lO!#xZ!$_VOz!#xz{!$[{!P!#x!P!Q!$t!Q;'S!#x;'S;=`!$y<%lO!#xZ!$yOQZZ!$|P;=`<%l!#x_!%SXOY!%oYZ!#dZr!%ors!'ysz!%oz{!(i{;'S!%o;'S;=`!)_<%lO!%o_!%rXOY!!rYZ!#dZr!!rrs!%Psz!!rz{!&_{;'S!!r;'S;=`!'s<%lO!!r_!&dZ&YSOY!!rYZ!#dZr!!rrs!%Psz!!rz{!&_{!P!!r!P!Q!'V!Q;'S!!r;'S;=`!'s<%lO!!r_!'^V&YSQZOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!'vP;=`<%l!!r_!'|XOY!%oYZ!#dZr!%ors!#xsz!%oz{!(i{;'S!%o;'S;=`!)_<%lO!%o_!(lZOY!!rYZ!#dZr!!rrs!%Psz!!rz{!&_{!P!!r!P!Q!'V!Q;'S!!r;'S;=`!'s<%lO!!r_!)bP;=`<%l!%o_!)lV&YSPZOY!)eYZ%lZr!)ers!*Rs;'S!)e;'S;=`!+X<%lO!)e_!*WVPZOY!*mYZ%lZr!*mrs!+_s;'S!*m;'S;=`!,b<%lO!*m_!*rVPZOY!)eYZ%lZr!)ers!*Rs;'S!)e;'S;=`!+X<%lO!)e_!+[P;=`<%l!)e_!+dVPZOY!*mYZ%lZr!*mrs!+ys;'S!*m;'S;=`!,b<%lO!*mZ!,OSPZOY!+yZ;'S!+y;'S;=`!,[<%lO!+yZ!,_P;=`<%l!+y_!,eP;=`<%l!*mT!,ou&YS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!/S!P!Q%Q!Q![!0`![!d%Q!d!e!3j!e!f%Q!f!gJd!g!hKQ!h!iJd!i!n%Q!n!o!2U!o!q%Q!q!r!5h!r!z%Q!z!{!7`!{#R%Q#R#S!2r#S#U%Q#U#V!3j#V#W%Q#W#XJd#X#YKQ#Y#ZJd#Z#`%Q#`#a!2U#a#c%Q#c#d!5h#d#l%Q#l#m!7`#m;'S%Q;'S;=`&s<%lO%QT!/Za&YS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![IQ![!f%Q!f!gJd!g!hKQ!h!iJd!i#W%Q#W#XJd#X#YKQ#Y#ZJd#Z;'S%Q;'S;=`&s<%lO%QT!0gi&YS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!/S!P!Q%Q!Q![!0`![!f%Q!f!gJd!g!hKQ!h!iJd!i!n%Q!n!o!2U!o#R%Q#R#S!2r#S#W%Q#W#XJd#X#YKQ#Y#ZJd#Z#`%Q#`#a!2U#a;'S%Q;'S;=`&s<%lO%QT!2]V&YS_POY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT!2wZ&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!0`![#R%Q#R#S!2r#S;'S%Q;'S;=`&s<%lO%QT!3oY&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q!R!4_!R!S!4_!S;'S%Q;'S;=`&s<%lO%QT!4f`&YS_POY%QYZ%lZr%Qrs%qs!Q%Q!Q!R!4_!R!S!4_!S!n%Q!n!o!2U!o#R%Q#R#S!3j#S#`%Q#`#a!2U#a;'S%Q;'S;=`&s<%lO%QT!5mX&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q!Y!6Y!Y;'S%Q;'S;=`&s<%lO%QT!6a_&YS_POY%QYZ%lZr%Qrs%qs!Q%Q!Q!Y!6Y!Y!n%Q!n!o!2U!o#R%Q#R#S!5h#S#`%Q#`#a!2U#a;'S%Q;'S;=`&s<%lO%QT!7e_&YSOY%QYZ%lZr%Qrs%qs!O%Q!O!P!8d!P!Q%Q!Q![!:r![!c%Q!c!i!:r!i#T%Q#T#Z!:r#Z;'S%Q;'S;=`&s<%lO%QT!8i]&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!9b![!c%Q!c!i!9b!i#T%Q#T#Z!9b#Z;'S%Q;'S;=`&s<%lO%QT!9gc&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!9b![!c%Q!c!i!9b!i!r%Q!r!sKQ!s#R%Q#R#S!8d#S#T%Q#T#Z!9b#Z#d%Q#d#eKQ#e;'S%Q;'S;=`&s<%lO%QT!:yi&YS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!wX#pR&YSOY%QYZ%lZr%Qrs%qs![%Q![!]!?d!];'S%Q;'S;=`&s<%lO%QV!?kV&vR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV!@XV!PR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!@uY&_Z&YSOY%QYZ%lZr%Qrs%qs!^%Q!^!_!Ae!_!`+p!`;'S%Q;'S;=`&s<%lO%QU!AlX#iQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%QV!B`X!bR&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`;'S%Q;'S;=`&s<%lO%QV!CSY&^R&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`!a!Cr!a;'S%Q;'S;=`&s<%lO%QU!CyY#iQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6n!`!a!Ae!a;'S%Q;'S;=`&s<%lO%Q_!DrV&bX#oQ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!E`X%}Z&YSOY%QYZ%lZr%Qrs%qs#]%Q#]#^!E{#^;'S%Q;'S;=`&s<%lO%QV!FQX&YSOY%QYZ%lZr%Qrs%qs#b%Q#b#c!Fm#c;'S%Q;'S;=`&s<%lO%QV!FrX&YSOY%QYZ%lZr%Qrs%qs#h%Q#h#i!G_#i;'S%Q;'S;=`&s<%lO%QV!GdX&YSOY%QYZ%lZr%Qrs%qs#X%Q#X#Y!HP#Y;'S%Q;'S;=`&s<%lO%QV!HUX&YSOY%QYZ%lZr%Qrs%qs#f%Q#f#g!Hq#g;'S%Q;'S;=`&s<%lO%QV!HvX&YSOY%QYZ%lZr%Qrs%qs#Y%Q#Y#Z!Ic#Z;'S%Q;'S;=`&s<%lO%QV!IhX&YSOY%QYZ%lZr%Qrs%qs#T%Q#T#U!JT#U;'S%Q;'S;=`&s<%lO%QV!JYX&YSOY%QYZ%lZr%Qrs%qs#V%Q#V#W!Ju#W;'S%Q;'S;=`&s<%lO%QV!JzX&YSOY%QYZ%lZr%Qrs%qs#X%Q#X#Y!Kg#Y;'S%Q;'S;=`&s<%lO%QV!KnV&tR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!L[b&RZ&YSOY%QYZ%lZr%Qrs%qst%Qtu!LTu!Q%Q!Q![!LT![!c%Q!c!}!LT!}#R%Q#R#S!LT#S#T%Q#T#o!LT#o$g%Q$g;'S!LT;'S;=`!Md<%lO!LT_!MgP;=`<%l!LT_!MqVuZ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV!N_VsR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QU!N{X#eQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6n!`;'S%Q;'S;=`&s<%lO%QV# oV}R&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_#!_Z'OX#dQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6n!`#p%Q#p#q##Q#q;'S%Q;'S;=`&s<%lO%QU##XV#bQ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV##uV|R&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT#$cV#uP&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_#%Ru&YS%yZ&PZOX%QXY'fYZ)bZ^'f^p%Qpq'fqr%Qrs%qst%Qtu4eu!Q%Q!Q![4e![!c%Q!c!}4e!}#R%Q#R#S4e#S#T%Q#T#o4e#o#y%Q#y#z'f#z$f%Q$f$g'f$g#BY4e#BY#BZ#$x#BZ$IS4e$IS$I_#$x$I_$I|4e$I|$JO#$x$JO$JT4e$JT$JU#$x$JU$KV4e$KV$KW#$x$KW&FU4e&FU&FV#$x&FV;'S4e;'S;=`5t<%lO4e",tokenizers:[0,1,2,3],topRules:{Program:[0,3],ClassContent:[1,194]},dynamicPrecedences:{27:1,232:-1,243:-1},specialized:[{term:231,get:Q=>n[Q]||-1}],tokenPrec:7144}),_=X.define({name:"java",parser:d.configure({props:[l.add({IfStatement:$({except:/^\s*({|else\b)/}),TryStatement:$({except:/^\s*({|catch|finally)\b/}),LabeledStatement:Y,SwitchBlock:Q=>{let P=Q.textAfter,i=/^\s*\}/.test(P),a=/^\s*(case|default)\b/.test(P);return Q.baseIndent+(i?0:a?1:2)*Q.unit},Block:S({closing:"}"}),BlockComment:()=>null,Statement:$({except:/^{/})}),o.add({"Block SwitchBlock ClassBody ElementValueArrayInitializer ModuleBody EnumBody ConstructorBody InterfaceBody ArrayInitializer":t,BlockComment(Q){return{from:Q.from+2,to:Q.to-2}}})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/}});function c(){return new s(_)}export{c as java,_ as javaLanguage}; diff --git a/internal/relay/web-dist/assets/index-B6q5BPkU.css b/internal/relay/web-dist/assets/index-arVCiUK9.css similarity index 98% rename from internal/relay/web-dist/assets/index-B6q5BPkU.css rename to internal/relay/web-dist/assets/index-arVCiUK9.css index d541cb69..d374669d 100644 --- a/internal/relay/web-dist/assets/index-B6q5BPkU.css +++ b/internal/relay/web-dist/assets/index-arVCiUK9.css @@ -1,4 +1,4 @@ -.tabbar.drop-active[data-v-e57c51b9]{box-shadow:inset 0 -2px 0 var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.tabbar[data-v-e57c51b9]{position:sticky;top:0;z-index:12;display:flex;align-items:stretch;background:var(--panel);flex:0 0 auto;height:28px;overflow:hidden}.tabs[data-v-e57c51b9]{display:flex;flex:1 1 auto;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.tabs[data-v-e57c51b9]::-webkit-scrollbar{display:none}.tab[data-v-e57c51b9]{display:flex;align-items:center;gap:6px;padding:0 8px 0 12px;border-right:1px solid var(--border);font-size:12px;color:var(--fg-dim);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;min-width:110px;max-width:220px;transition:background .12s;touch-action:pan-y}.tab.dragging[data-v-e57c51b9]{opacity:.5}.tab[data-v-e57c51b9]:hover{background:#ffffff0a}.tab.active[data-v-e57c51b9]{background:var(--bg);color:var(--fg);box-shadow:inset 0 -2px 0 var(--accent)}.tab .num[data-v-e57c51b9]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--fg-dim)}.tab.active .num[data-v-e57c51b9]{color:var(--accent)}.tab .dot[data-v-e57c51b9]{font-size:9px;color:var(--good)}.tab .remote-dot[data-v-e57c51b9]{color:#d29922}.tab .remote-dot.disconnected[data-v-e57c51b9]{color:var(--fg-dim)}.tab.disconnected .title[data-v-e57c51b9]{color:var(--fg-dim);font-style:italic}.tab .layout-icon[data-v-e57c51b9]{font-size:11px;color:var(--fg-dim);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-1px}.tab .title[data-v-e57c51b9]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}.tab .close[data-v-e57c51b9]{border:none;background:transparent;padding:0 4px;font-size:14px;line-height:1;color:var(--fg-dim);border-radius:4px;opacity:0;transition:opacity .12s,background .12s,color .12s}.tab:hover .close[data-v-e57c51b9],.tab.active .close[data-v-e57c51b9]{opacity:1}.tab .close[data-v-e57c51b9]:hover{background:#f851492e;color:var(--bad)}.profile-picker[data-v-e57c51b9]{max-width:120px;height:100%;border:none;border-left:1px solid var(--border);background:transparent;color:var(--fg-dim);font-size:11px;padding:0 6px;cursor:pointer}.profile-picker[data-v-e57c51b9]:hover{color:var(--fg)}.plus[data-v-e57c51b9]{border:none;background:transparent;color:var(--fg-dim);font-size:18px;line-height:1;padding:0 14px;cursor:pointer;border-left:1px solid var(--border);transition:color .12s,background .12s}.plus[data-v-e57c51b9]:hover:not(:disabled){color:var(--accent);background:#58a6ff14}.plus[data-v-e57c51b9]:disabled{opacity:.4;cursor:not-allowed}.ssh-btn[data-v-e57c51b9]{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--fg-dim);padding:0 10px;cursor:pointer;border-left:1px solid var(--border);transition:color .12s,background .12s}.ssh-btn[data-v-e57c51b9]:hover{color:var(--accent);background:#58a6ff14}.ssh-btn svg[data-v-e57c51b9]{display:block}.settings-btn[data-v-e57c51b9]{position:relative;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--fg-dim);padding:0 10px;cursor:pointer;border-left:1px solid var(--border);transition:color .12s,background .12s}.settings-btn[data-v-e57c51b9]:hover{color:var(--accent);background:#58a6ff14}.settings-btn svg[data-v-e57c51b9]{display:block}.settings-btn .dot[data-v-e57c51b9]{position:absolute;top:4px;right:4px;width:6px;height:6px;background:#d29922;border-radius:50%}.admin-btn[data-v-e57c51b9]{position:relative;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--fg-dim);padding:0 10px;cursor:pointer;border-left:1px solid var(--border);transition:color .12s,background .12s}.admin-btn[data-v-e57c51b9]:hover,.admin-btn.active[data-v-e57c51b9]{color:var(--accent);background:#58a6ff14}.tab.unread[data-v-e57c51b9]{background:color-mix(in srgb,var(--unread-c) 10%,transparent)}.tab.unread .title[data-v-e57c51b9]{font-weight:600;color:#fff}.tab.unread[data-v-e57c51b9]:not(.active){box-shadow:inset 0 -2px 0 var(--unread-c)}@media (max-width: 767px){.tabbar[data-v-e57c51b9]{height:36px}.tab[data-v-e57c51b9]{min-width:86px;max-width:150px;padding:0 6px 0 10px;gap:4px}.tab .num[data-v-e57c51b9]{display:none}.tab .close[data-v-e57c51b9]{opacity:1;padding:0 2px}.settings-btn[data-v-e57c51b9],.admin-btn[data-v-e57c51b9]{min-width:40px;padding:0 12px}}.window-controls[data-v-1ccfd0fb]{display:inline-flex;align-items:stretch;height:100%;margin-left:8px}.wc-btn[data-v-1ccfd0fb]{display:inline-flex;align-items:center;justify-content:center;width:36px;border:none;background:transparent;color:var(--fg-dim);cursor:pointer;transition:background .12s,color .12s}.wc-btn[data-v-1ccfd0fb]:hover{background:#ffffff14;color:var(--fg)}.wc-close[data-v-1ccfd0fb]:hover{background:#e81123;color:#fff}.conn-health-pill[data-v-5daa187a]{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;height:20px;border-radius:999px;border:1px solid var(--border, #ccc);background:transparent;color:inherit;font-size:11px;font-variant-numeric:tabular-nums;cursor:pointer;line-height:1;white-space:nowrap}.conn-health-pill .dot[data-v-5daa187a]{font-size:8px;line-height:1}.band-green[data-v-5daa187a]{color:var(--good, #16a34a);border-color:color-mix(in srgb,var(--good, #16a34a) 35%,transparent)}.band-yellow[data-v-5daa187a]{color:var(--warn, #d97706);border-color:color-mix(in srgb,var(--warn, #d97706) 35%,transparent)}.band-red[data-v-5daa187a]{color:var(--bad, #dc2626);border-color:color-mix(in srgb,var(--bad, #dc2626) 35%,transparent)}.band-off[data-v-5daa187a]{color:var(--fg-dim, #888)}.band-reconnecting[data-v-5daa187a]{color:var(--warn, #d97706);animation:conn-health-pulse-5daa187a 1s ease-in-out infinite}@keyframes conn-health-pulse-5daa187a{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion: reduce){.band-reconnecting[data-v-5daa187a]{animation:none}}.drawer[data-v-c8bb9e85]{position:fixed;top:36px;right:8px;z-index:1100;width:280px;background:var(--bg, #fff);color:var(--fg, #111);border:1px solid var(--border, #ddd);border-radius:8px;box-shadow:0 8px 24px #0000001f;padding:10px 12px;font-size:12px;display:flex;flex-direction:column;gap:8px}.head[data-v-c8bb9e85]{display:flex;align-items:center;justify-content:space-between;font-weight:600}.close[data-v-c8bb9e85]{background:transparent;border:0;cursor:pointer;font-size:16px;line-height:1;color:inherit}.row[data-v-c8bb9e85]{display:flex;justify-content:space-between;padding:2px 0}.metric-label[data-v-c8bb9e85]{color:var(--fg-dim, #666)}.metric-value[data-v-c8bb9e85]{font-variant-numeric:tabular-nums}.spark[data-v-c8bb9e85]{color:var(--good, #16a34a);display:block}.reconn-table[data-v-c8bb9e85]{width:100%;border-collapse:collapse;font-size:11px}.reconn-table th[data-v-c8bb9e85],.reconn-table td[data-v-c8bb9e85]{text-align:left;padding:2px 4px;border-top:1px solid var(--border, #eee)}.gaps[data-v-c8bb9e85]{color:var(--warn, #d97706)}.titlebar[data-v-2cf685eb]{position:relative;display:flex;align-items:center;gap:12px;padding:6px 14px;background:var(--panel);border-bottom:1px solid var(--border);flex:0 0 auto;--wails-draggable: drag}.window-title[data-v-2cf685eb]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:50%;font-size:12px;color:var(--fg);font-weight:500;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px}.status[data-v-2cf685eb]{font-size:12px;color:var(--fg-dim);--wails-draggable: no-drag;flex:0 0 auto;margin-left:auto}.status .bad[data-v-2cf685eb]{color:var(--bad)}.status .dim[data-v-2cf685eb]{color:var(--good)}.e2ee-off-chip[data-v-2cf685eb]{--wails-draggable: no-drag;flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.4;color:#1f1300;background:#f4b740;border-radius:999px;letter-spacing:.02em;white-space:nowrap}.e2ee-off-chip .chip-icon[data-v-2cf685eb]{font-size:12px;line-height:1}.titlebar[data-v-2cf685eb]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:repeating-linear-gradient(90deg,transparent 0px,transparent 200px,rgba(74,222,128,.3) 320px,#4ade80 500px,#bbf7d0 560px,#4ade80 620px,rgba(74,222,128,.3) 800px,transparent 920px,transparent 1120px);background-size:1120px 100%;background-position:var(--sweep-offset, 0px) 0;box-shadow:0 -1px 6px #4ade8066;opacity:0;transition:opacity .25s ease;pointer-events:none}.titlebar.is-running[data-v-2cf685eb]:after{opacity:1}@media (prefers-reduced-motion: reduce){.titlebar[data-v-2cf685eb]:after{background:#4ade80}}.last-output[data-v-ea632618]{display:inline-flex;align-items:center;gap:3px;flex:none;color:var(--fg-dim, #6e7681);white-space:nowrap;font-family:var(--font-mono, ui-monospace, monospace);font-size:9px;line-height:1;font-variant-numeric:tabular-nums}.last-output-clock[data-v-ea632618]{width:10px;height:10px;flex:none}.last-output.live[data-v-ea632618]{color:var(--accent, #58a6ff)}.row-main[data-v-81d1a3d4]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}.row-top[data-v-81d1a3d4]{display:flex;align-items:center;gap:6px;min-width:0}.state-label[data-v-81d1a3d4]{font-size:11px;opacity:.85;white-space:nowrap;flex-shrink:0}.cmd-and-cwd[data-v-81d1a3d4]{flex:1 1 auto;min-width:0;display:flex;gap:6px;overflow:hidden;align-items:baseline}.cmd[data-v-81d1a3d4]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-family:var(--font-mono);flex:1 1 auto;min-width:0}.row-meta[data-v-81d1a3d4]{display:flex;align-items:center;gap:6px;min-width:0;padding-left:18px}.cwd[data-v-81d1a3d4]{color:var(--fg-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-mono);font-size:.85em;flex:1 1 auto;min-width:0}.row-tail[data-v-81d1a3d4]{flex:0 0 auto;min-width:46px;align-self:stretch;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:3px}.row-tail.time-only[data-v-81d1a3d4]{justify-content:flex-end}.row-tail[data-v-81d1a3d4] .last-output{opacity:.65}.kind[data-v-81d1a3d4]{font-size:8.5px;line-height:1.4;padding:1px 4px;border-radius:3px;border:1px solid var(--border);color:var(--fg-dim);white-space:nowrap;transition:opacity .1s}.row-close[data-v-81d1a3d4]{position:absolute;top:4px;right:6px;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:13px;line-height:1;cursor:pointer;color:var(--fg-dim);border-radius:4px}.row-close[data-v-81d1a3d4]:hover{background:#f851492e;color:var(--bad)}.session-row-menu[data-v-f6b9c7cb]{position:fixed;z-index:1000;min-width:140px;padding:4px;background:var(--menu-bg, #1f1f22);border:1px solid rgba(255,255,255,.12);border-radius:6px;box-shadow:0 8px 24px #0006}.menu-item[data-v-f6b9c7cb]{display:block;width:100%;padding:6px 10px;background:transparent;border:none;color:inherit;text-align:left;cursor:pointer;border-radius:4px;font-size:13px}.menu-item[data-v-f6b9c7cb]:hover:not(.disabled),.menu-item[data-v-f6b9c7cb]:focus:not(.disabled){background:#ffffff14;outline:none}.menu-item.disabled[data-v-f6b9c7cb]{opacity:.4;cursor:not-allowed}.menu-separator[data-v-f6b9c7cb]{height:1px;margin:4px 6px;background:#ffffff1f}.session-details-popover[data-v-9528360b]{position:fixed;z-index:1000;min-width:260px;max-width:420px;width:min(420px,calc(100vw - 16px));box-sizing:border-box;padding:8px 10px 10px;background:var(--menu-bg, #1f1f22);border:1px solid rgba(255,255,255,.14);border-radius:8px;box-shadow:0 12px 32px #00000073;font-size:12px}.popover-title[data-v-9528360b]{font-weight:600;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:6px}.rows[data-v-9528360b]{display:flex;flex-direction:column;gap:3px;max-height:380px;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.row[data-v-9528360b]{display:grid;grid-template-columns:96px 1fr auto;gap:8px;align-items:baseline;min-width:max-content}.label[data-v-9528360b]{color:var(--fg-dim);white-space:nowrap}.value[data-v-9528360b]{overflow:visible;text-overflow:clip;white-space:nowrap;font-family:var(--font-mono);min-width:0}.copy[data-v-9528360b]{border:none;background:transparent;color:var(--fg-dim);cursor:pointer;padding:0 3px;font-size:12px;border-radius:3px}.copy[data-v-9528360b]:hover{color:var(--fg);background:#ffffff14}.task-grouped-list[data-v-42b39ad3]{display:flex;flex-direction:column;gap:8px;font-size:12px}.host-header[data-v-42b39ad3]{display:flex;align-items:center;gap:6px;font-weight:500;padding:4px 6px;cursor:pointer;-webkit-user-select:none;user-select:none}.host-header[data-v-42b39ad3]:hover{background:#ffffff0a;border-radius:4px}.host-header .caret[data-v-42b39ad3]{font-size:9px;opacity:.7;width:9px;display:inline-block}.host-name[data-v-42b39ad3]{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.counts[data-v-42b39ad3]{margin-left:auto;display:inline-flex;gap:2px;align-items:center;flex-shrink:0}.unread-badge[data-v-42b39ad3]{font-size:10px;opacity:.8;background:#ffffff0f;border-radius:3px;padding:1px 4px;white-space:nowrap;flex-shrink:0}.local-chip[data-v-42b39ad3]{font-size:10px;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:3px;padding:0 4px;line-height:1.3;white-space:nowrap;flex-shrink:0}.mark-all[data-v-42b39ad3]{background:none;border:none;cursor:pointer;padding:0 4px;color:inherit}.host-group[data-v-42b39ad3]{display:flex;flex-direction:column;gap:4px}.group-header[data-v-42b39ad3]{display:flex;align-items:center;gap:6px;font-weight:500;padding:4px 6px;cursor:pointer;-webkit-user-select:none;user-select:none}.group-header[data-v-42b39ad3]:hover{background:#ffffff0a;border-radius:4px}.group-header .caret[data-v-42b39ad3]{font-size:9px;opacity:.7;width:9px;display:inline-block}.pinned-group .pin-icon[data-v-42b39ad3]{font-size:11px}.group-title[data-v-42b39ad3]{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-count[data-v-42b39ad3]{margin-left:auto;font-size:10px;opacity:.8;background:#ffffff0f;border-radius:3px;padding:1px 4px}.task-row[data-v-42b39ad3]{display:flex;flex-direction:row;align-items:stretch;gap:6px;padding:5px 8px;border:1px solid rgba(255,255,255,.08);background:#ffffff05;width:100%;text-align:left;cursor:pointer;color:inherit;border-radius:6px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:pan-y;position:relative}.task-row[data-v-42b39ad3] .row-close{opacity:0;transition:opacity .1s}.task-row[data-v-42b39ad3]:hover .row-close,.task-row[data-v-42b39ad3]:focus-within .row-close{opacity:1}.task-row[data-v-42b39ad3]:hover .kind,.task-row[data-v-42b39ad3]:focus-within .kind{opacity:0}@media (hover: none){.task-row[data-v-42b39ad3] .row-close{position:static;align-self:flex-start;opacity:1}.task-row[data-v-42b39ad3] .kind{opacity:1}}.task-row[data-v-42b39ad3]:hover{background:#ffffff0f;border-color:#ffffff29}.task-row.active[data-v-42b39ad3]{background:color-mix(in srgb,var(--accent) 10%,transparent);border-color:color-mix(in srgb,var(--accent) 28%,var(--border));box-shadow:inset 2px 0 0 var(--accent)}.task-row.active[data-v-42b39ad3]:hover{background:color-mix(in srgb,var(--accent) 14%,transparent)}.task-row.selected[data-v-42b39ad3]{outline:2px solid var(--accent);outline-offset:-2px}.task-row.unread[data-v-42b39ad3]{background:color-mix(in srgb,var(--unread-c) 7%,transparent);border-color:color-mix(in srgb,var(--unread-c) 24%,var(--border));box-shadow:inset 2px 0 0 var(--unread-c)}.task-row.unread[data-v-42b39ad3]:hover{background:color-mix(in srgb,var(--unread-c) 12%,transparent)}.task-row.unread[data-v-42b39ad3] .cmd{font-weight:600;color:#fff}.task-row.active.unread[data-v-42b39ad3]{background:color-mix(in srgb,var(--unread-c) 14%,transparent);border-color:color-mix(in srgb,var(--accent) 28%,var(--border));box-shadow:inset 2px 0 0 var(--unread-c)}.task-row.dim[data-v-42b39ad3]{opacity:.6}.task-row.dim.active[data-v-42b39ad3]{opacity:.9}.task-row.dim.unread[data-v-42b39ad3]{opacity:1}.row-main[data-v-42b39ad3]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}.row-top[data-v-42b39ad3]{display:flex;align-items:center;gap:6px;min-width:0}.state-label[data-v-42b39ad3]{font-size:11px;opacity:.85;white-space:nowrap;flex-shrink:0}.cmd-and-cwd[data-v-42b39ad3]{flex:1 1 auto;min-width:0;display:flex;gap:6px;overflow:hidden;align-items:baseline}.cmd[data-v-42b39ad3]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-family:var(--font-mono);flex:1 1 auto;min-width:0}.row-meta[data-v-42b39ad3]{display:flex;align-items:center;gap:6px;min-width:0;padding-left:18px}.cwd[data-v-42b39ad3]{color:var(--fg-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-mono);font-size:.85em;flex:1 1 auto;min-width:0}.row-tail[data-v-42b39ad3]{flex:0 0 auto;min-width:46px;align-self:stretch;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:3px}.row-tail.time-only[data-v-42b39ad3]{justify-content:flex-end}.row-tail[data-v-42b39ad3] .last-output{opacity:.65}.kind[data-v-42b39ad3]{font-size:8.5px;line-height:1.4;padding:1px 4px;border-radius:3px;border:1px solid var(--border);color:var(--fg-dim);white-space:nowrap;transition:opacity .1s}.completed-row-close[data-v-42b39ad3]{position:absolute;top:5px;right:8px;border:none;background:transparent;color:var(--fg-dim);border-radius:4px;cursor:pointer;font-size:13px;line-height:1;padding:1px 4px}.completed-row-close[data-v-42b39ad3]:hover{background:#f851492e;color:var(--bad)}.completed-fold[data-v-42b39ad3]{border-top:1px solid rgba(255,255,255,.06);margin-top:6px;padding-top:4px;display:flex;flex-direction:column;gap:4px}.fold-toggle[data-v-42b39ad3]{background:none;border:none;cursor:pointer;padding:4px 6px;width:100%;text-align:left;color:inherit;opacity:.7}.fold-mark-all[data-v-42b39ad3]{background:none;border:1px solid rgba(255,255,255,.12);cursor:pointer;padding:4px 8px;margin:4px 6px;color:inherit;border-radius:3px}.empty-hint[data-v-42b39ad3]{padding:24px 12px;text-align:center;color:var(--fg);opacity:.55;font-size:12px}.bulk-bar[data-v-c912fe83]{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 4px}.counter[data-v-c912fe83]{font-size:11px;color:var(--fg-dim);margin-right:4px;white-space:nowrap}.btn[data-v-c912fe83]{background:none;border:1px solid rgba(255,255,255,.14);color:inherit;cursor:pointer;padding:3px 8px;font-size:11px;border-radius:3px;line-height:1.4}.btn[data-v-c912fe83]:hover:not(:disabled){background:#ffffff0f}.btn[data-v-c912fe83]:disabled{opacity:.4;cursor:not-allowed}.btn.primary[data-v-c912fe83]{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));color:var(--accent)}.btn.primary[data-v-c912fe83]:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 12%,transparent)}.btn.ghost[data-v-c912fe83]{border-color:transparent;opacity:.75}.task-sidebar-shell[data-v-0741527d]{display:contents}.task-sidebar[data-v-0741527d]{position:relative;background:var(--panel);border-right:1px solid var(--border);color:var(--fg);display:flex;flex-direction:column;height:100%}.task-sidebar.collapsed[data-v-0741527d]{width:32px}.sidebar-hamburger[data-v-0741527d]{position:fixed;top:34px;left:8px;z-index:20;padding:4px 8px;background:var(--panel);border:1px solid var(--border);color:inherit;border-radius:4px;cursor:pointer;font-size:12px;line-height:1}.task-sidebar.drawer[data-v-0741527d]{position:fixed;top:0;bottom:0;left:0;z-index:15;transform:translate(-100%);transition:transform .2s ease;box-shadow:2px 0 8px #0000004d}.task-sidebar.drawer.open[data-v-0741527d]{transform:translate(0)}.expanded[data-v-0741527d]{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.resize-handle[data-v-0741527d]{position:absolute;top:0;right:-2px;width:4px;height:100%;cursor:ew-resize;-webkit-user-select:none;user-select:none;z-index:1}.resize-handle[data-v-0741527d]:hover{background:#ffffff0f}.sidebar-header[data-v-0741527d]{display:flex;align-items:center;padding:8px 10px;border-bottom:1px solid var(--border)}.title[data-v-0741527d]{flex:1 1 auto;min-width:0;font-weight:500;margin-right:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-icon-btn[data-v-0741527d]{background:none;border:none;color:inherit;cursor:pointer;padding:2px 4px;margin-right:6px;opacity:.7;display:inline-flex;align-items:center;justify-content:center;border-radius:3px}.search-icon-btn[data-v-0741527d]:hover{opacity:1;background:#ffffff0d}.collapse-button[data-v-0741527d],.expand-button[data-v-0741527d]{background:none;border:none;cursor:pointer;color:inherit;font-size:14px}.group-toggle[data-v-0741527d]{background:none;border:1px solid var(--border);color:inherit;cursor:pointer;border-radius:3px;font-size:11px;padding:1px 6px;margin-right:6px;opacity:.8}.group-toggle[data-v-0741527d]:hover{opacity:1;background:#ffffff0d}.sidebar-search[data-v-0741527d]{flex:1 1 auto;min-width:60px;background:#ffffff08;border:1px solid transparent;color:inherit;border-radius:3px;padding:1px 6px;font-size:12px;font-family:inherit;line-height:20px;margin-right:6px;outline:none}.sidebar-search[data-v-0741527d]:focus{border-color:var(--border);background:#ffffff0d}.sidebar-search[data-v-0741527d]::placeholder{opacity:.5}.list-wrap[data-v-0741527d]{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:4px;scrollbar-width:none}.list-wrap[data-v-0741527d]::-webkit-scrollbar{display:none}footer[data-v-0741527d]{padding:8px;border-top:1px solid var(--border)}.mark-all[data-v-0741527d]{background:none;border:1px solid var(--border);cursor:pointer;padding:6px 10px;color:inherit;border-radius:3px;width:100%}.rail[data-v-0741527d]{display:flex;flex-direction:column;align-items:center;padding:6px 0;gap:4px}.rail-badge[data-v-0741527d]{font-size:10px;background:#ef4444;color:#fff;border-radius:8px;padding:1px 5px}.rail-icon[data-v-0741527d]{cursor:pointer;padding:2px}@media (max-width: 767px){.sidebar-hamburger[data-v-0741527d]{top:calc(env(safe-area-inset-top) + 42px);left:calc(env(safe-area-inset-left) + 8px);min-height:32px}.task-sidebar.drawer[data-v-0741527d]{top:env(safe-area-inset-top);bottom:env(safe-area-inset-bottom);max-width:min(86vw,360px)}}.select-dropdown[data-v-65a81c06]{position:relative;width:100%}.trigger[data-v-65a81c06]{-moz-appearance:none;appearance:none;-webkit-appearance:none;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:32px;padding:6px 10px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;font-size:13px;font-family:inherit;line-height:1.3;cursor:pointer;text-align:left}.trigger[data-v-65a81c06]:after{content:"▾";color:var(--fg-dim);font-size:11px;transition:transform .15s ease;flex-shrink:0}.trigger[data-v-65a81c06]:hover:not(:disabled):after{color:var(--fg)}.trigger[data-v-65a81c06]:hover:not(:disabled){border-color:var(--fg-dim)}.trigger[data-v-65a81c06]:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent)}.trigger[data-v-65a81c06]:disabled{cursor:not-allowed;opacity:.6}.trigger-label[data-v-65a81c06]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trigger-open[data-v-65a81c06]:after{transform:rotate(180deg)}.menu[data-v-65a81c06]{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:240px;overflow-y:auto;margin:0;padding:4px 0;list-style:none;background:var(--bg);border:1px solid var(--border);border-radius:6px;box-shadow:0 6px 16px #00000059;z-index:1000}.option[data-v-65a81c06]{position:relative;display:flex;flex-direction:column;gap:2px;padding:8px 10px;cursor:pointer}.option-label[data-v-65a81c06]{color:var(--fg);font-size:13px;line-height:1.3}.option-description[data-v-65a81c06]{color:var(--fg-dim);font-size:12px;line-height:1.3}.option-highlight[data-v-65a81c06]{background:#ffffff0f}.option-selected[data-v-65a81c06]:before{content:"";position:absolute;top:4px;bottom:4px;left:0;width:2px;background:var(--accent);border-radius:2px}.option-selected .option-label[data-v-65a81c06]{color:var(--fg);font-weight:500}.sp-switcher[data-v-c9d59669]{position:relative;display:inline-flex;align-items:center;gap:6px;pointer-events:auto}.sp-seg[data-v-c9d59669]{display:inline-flex;align-items:center;gap:2px;background:var(--terminal-overlay, rgba(13, 17, 23, .92));border:1px solid var(--border);border-radius:8px;padding:2px}.sp-seg button[data-v-c9d59669]{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;flex:0 0 auto;border:0;border-radius:5px;padding:4px 8px;color:var(--fg-dim);background:transparent;font:12px var(--font-mono);cursor:pointer}.sp-seg button[data-v-c9d59669]:hover{color:var(--fg);background:#ffffff0f}.sp-seg button.active[data-v-c9d59669]{color:var(--fg);background:#ffffff1a}.sp-seg button.reconnecting[data-v-c9d59669]{color:var(--warning, #d29922)}.sp-caret[data-v-c9d59669]{color:var(--fg-dim);font-size:10px}.sp-dot[data-v-c9d59669]{width:6px;height:6px;border-radius:50%;background:var(--good, #3fb950);flex:0 0 auto}.sp-dot.reconnecting[data-v-c9d59669]{background:var(--warning, #d29922);animation:sp-pulse-c9d59669 1s infinite}@keyframes sp-pulse-c9d59669{50%{opacity:.3}}.sp-actions[data-v-c9d59669]{display:inline-flex;align-items:center;gap:2px;background:var(--terminal-overlay, rgba(13, 17, 23, .92));border:1px solid var(--border);border-radius:8px;padding:2px}.sp-actions button[data-v-c9d59669]{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:5px;color:var(--fg-dim);background:transparent;cursor:pointer}.sp-actions button[data-v-c9d59669]:hover{color:var(--fg);background:#ffffff0f}.sp-actions button.close[data-v-c9d59669]:hover{color:var(--bad);background:#f851491f}.sp-ico[data-v-c9d59669]{display:inline-flex;align-items:center;justify-content:center}.sp-actions svg[data-v-c9d59669]{width:13px;height:13px;display:block}.sp-menu[data-v-c9d59669]{position:absolute;top:32px;left:0;z-index:20;min-width:210px;background:var(--terminal-overlay, rgba(13, 17, 23, .98));border:1px solid var(--border);border-radius:8px;padding:4px;box-shadow:0 12px 30px #00000073}.sp-item[data-v-c9d59669]{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:0;border-radius:6px;background:transparent;color:var(--fg-dim);font:12px var(--font-mono);cursor:pointer;white-space:nowrap;text-align:left}.sp-item[data-v-c9d59669]:hover{color:var(--fg);background:#ffffff0f}.sp-item.active[data-v-c9d59669]{color:var(--fg);background:#ffffff1a}.sp-lbl[data-v-c9d59669]{flex:1}.sp-mini[data-v-c9d59669]{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;color:var(--fg-dim);flex:0 0 auto}.sp-mini[data-v-c9d59669]:hover{color:var(--fg);background:#ffffff1a}.sp-mini svg[data-v-c9d59669]{width:13px;height:13px;display:block}.sp-x[data-v-c9d59669]{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;color:var(--fg-dim);flex:0 0 auto}.sp-x[data-v-c9d59669]:hover{color:var(--bad);background:#f851491f}.sp-sep[data-v-c9d59669]{height:1px;background:var(--border);margin:4px 2px}.sp-add[data-v-c9d59669]{color:var(--good, #3fb950)}.popover[data-v-063a4cb7]{position:fixed;transform:translate(-50%);background:#2b2c30;color:#fff;border-radius:8px;display:flex;box-shadow:0 6px 20px #0006;font-family:-apple-system,system-ui,sans-serif;z-index:1000}.popover[data-v-063a4cb7]:after{content:"";position:absolute;left:50%;transform:translate(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent}.popover.arrow-down[data-v-063a4cb7]:after{bottom:-5px;border-top:5px solid #2b2c30}.popover.arrow-up[data-v-063a4cb7]:after{top:-5px;border-bottom:5px solid #2b2c30}.btn[data-v-063a4cb7]{position:relative;background:none;border:none;color:#fff;padding:4px 11px;font-size:11px;font-family:inherit;cursor:pointer;border-right:1px solid #3f4046}.btn[data-v-063a4cb7]:last-child{border-right:none}.btn.send[data-v-063a4cb7]{color:#60a5fa;font-weight:600}.btn.cancel[data-v-063a4cb7]{font-size:14px;line-height:1;padding:4px 8px}.btn[data-v-063a4cb7]:disabled{opacity:.5;cursor:not-allowed}.btn[data-v-063a4cb7]:before{content:"";position:absolute;top:-8px;bottom:-8px;left:0;right:0}.term-search[data-v-302a13f7]{position:absolute;top:8px;left:12px;z-index:6;display:flex;align-items:center;gap:4px;padding:4px 6px;border:1px solid var(--border);border-radius:6px;background:var(--panel);box-shadow:0 4px 12px #00000059}.term-search-input[data-v-302a13f7]{width:180px;padding:2px 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--fg);font-size:12px;outline:none}.term-search-input[data-v-302a13f7]:focus{border-color:var(--accent)}.term-search-count[data-v-302a13f7]{min-width:52px;color:var(--fg-dim);font-size:11px;text-align:center;white-space:nowrap}.term-search-btn[data-v-302a13f7]{padding:1px 6px;border:1px solid var(--border);border-radius:4px;background:#21262d;color:var(--fg);font-size:11px;line-height:16px;cursor:pointer}.term-search-btn[data-v-302a13f7]:hover:not(:disabled){background:var(--border)}.term-search-btn[data-v-302a13f7]:disabled{opacity:.4;cursor:default}.term-view[data-v-acf7d666]{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--terminal-bg);overflow:hidden}.term[data-v-acf7d666]{position:absolute;left:0;right:0;top:0;bottom:30px}.service-preview-frame[data-v-acf7d666]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;background:#fff}.service-preview-reconnecting[data-v-acf7d666]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:9;display:flex;gap:10px;align-items:center;justify-content:center;color:var(--fg);background:var(--terminal-overlay, rgba(13, 17, 23, .9));font:13px var(--font-mono)}.service-preview-reconnecting-spinner[data-v-acf7d666]{width:14px;height:14px;border:2px solid rgba(255,255,255,.25);border-top-color:var(--fg);border-radius:50%;animation:service-preview-spin-acf7d666 .8s linear infinite}@keyframes service-preview-spin-acf7d666{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.service-preview-reconnecting-spinner[data-v-acf7d666]{animation:none}}.service-preview-controls{position:relative;display:flex;align-items:center;gap:6px;padding:0;pointer-events:auto}.service-preview-port-form{position:absolute;top:34px;right:0;z-index:8;width:330px;padding:8px;display:flex;flex-direction:column;align-items:stretch;gap:6px;border:1px solid var(--border);border-radius:8px;background:var(--terminal-overlay);box-shadow:0 8px 24px #00000052}.service-preview-port-form button:not(.trigger){border:0;border-radius:5px;padding:4px 8px;color:var(--fg-dim);background:transparent;font:12px var(--font-mono);cursor:pointer}.service-preview-port-form button[type=submit]{color:var(--fg);background:#ffffff1a}.service-preview-port-form button:disabled{opacity:.55;cursor:default}.service-preview-host{width:100%}.service-preview-host .trigger{height:27px;padding:3px 7px;border-radius:5px;background:var(--bg);font:12px var(--font-mono)}.service-preview-host .menu{background:var(--terminal-overlay);font:12px var(--font-mono)}.service-preview-host .option{padding:6px 8px}.service-preview-mapping-row{display:grid;grid-template-columns:76px minmax(0,1fr) 24px;align-items:center;gap:5px}.service-preview-mapping-row input{width:auto;min-width:0}.service-preview-mapping-row input+input{width:auto}.service-preview-mapping-row.root-mapping{grid-template-columns:76px minmax(0,1fr)}.service-preview-path{color:var(--fg-dim);font:12px var(--font-mono)}.preview-add-mapping{white-space:nowrap}.service-preview-form-actions{display:flex;align-items:center;gap:4px}.service-preview-form-spacer{flex:1}.service-preview-port-form input{width:76px;border:1px solid var(--border);border-radius:5px;padding:3px 6px;color:var(--fg);background:var(--bg);font:12px var(--font-mono);outline:none}.service-preview-port-form input:focus{border-color:var(--accent)}.service-preview-port-form .service-preview-mapping-row input{width:100%}.template-bar[data-v-acf7d666]{position:absolute;left:0;right:0;bottom:0;height:30px;display:flex;align-items:center;gap:6px;overflow-x:auto;padding:2px 8px;border-top:1px solid var(--border);background:var(--panel);z-index:4;scrollbar-width:none}.template-bar[data-v-acf7d666]::-webkit-scrollbar{display:none}.aux-key-bar[data-v-acf7d666]{position:absolute;left:0;right:0;bottom:0;height:30px;display:flex;align-items:center;gap:6px;overflow:hidden;padding:2px 8px;border-top:1px solid var(--border);background:var(--panel);z-index:4}.aux-key-scroll[data-v-acf7d666]{min-width:0;flex:1 1 auto;height:100%;display:flex;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:none}.aux-key-scroll[data-v-acf7d666]::-webkit-scrollbar{display:none}.file-picker-input[data-v-acf7d666]{display:none}.template-btn[data-v-acf7d666]{flex:0 0 auto;height:22px;padding:0 10px;border-radius:6px;background:var(--bg);border:1px solid var(--border);color:var(--fg);font-size:.76rem;font-family:var(--font-mono);cursor:pointer}.template-btn[data-v-acf7d666]:hover{border-color:var(--accent);color:var(--accent)}.aux-key-btn[data-v-acf7d666]{flex:0 0 auto;min-width:34px;height:22px;padding:0 9px;border-radius:6px;background:var(--bg);border:1px solid var(--border);color:var(--fg);font-size:.76rem;font-family:var(--font-mono);cursor:pointer}.aux-key-btn[data-v-acf7d666]:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.aux-key-btn[data-v-acf7d666]:disabled{color:var(--fg-dim);cursor:default;opacity:.55}.keyboard-toggle-btn[data-v-acf7d666]{min-width:76px;font-weight:600}.template-confirm-panel[data-v-acf7d666]{position:absolute;left:8px;right:8px;bottom:calc(60px + env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;align-items:center;padding:7px;border:1px solid var(--border);border-radius:8px;background:var(--panel);z-index:6;box-shadow:0 8px 24px #0000004d}.template-confirm-copy[data-v-acf7d666]{min-width:0}.template-confirm-label[data-v-acf7d666]{color:var(--fg);font:600 .78rem var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-confirm-text[data-v-acf7d666]{margin-top:2px;color:var(--fg-dim);font:.72rem var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-confirm-btn[data-v-acf7d666]{height:30px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--fg);padding:0 10px;cursor:pointer}.template-confirm-btn.primary[data-v-acf7d666]{border-color:var(--accent);color:var(--accent)}.paste-confirm-panel[data-v-acf7d666]{position:absolute;left:8px;right:8px;bottom:calc(30px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr auto auto;gap:6px;align-items:center;padding:7px;border:1px solid var(--border);border-radius:8px;background:var(--panel);z-index:6;box-shadow:0 8px 24px #0000004d}.paste-confirm-input[data-v-acf7d666]{min-width:0;resize:vertical;border-radius:6px;border:1px solid var(--border);background:var(--terminal-bg);color:var(--fg);padding:6px 8px;font:.78rem var(--font-mono)}.paste-confirm-btn[data-v-acf7d666]{height:30px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--fg);padding:0 10px;cursor:pointer}.paste-confirm-btn.primary[data-v-acf7d666]{border-color:var(--accent);color:var(--accent)}.paste-confirm-btn[data-v-acf7d666]:disabled{color:var(--fg-dim);border-color:var(--border);cursor:default;opacity:.55}.term[data-v-acf7d666] .xterm{padding:6px 8px}.term[data-v-acf7d666] .xterm-viewport{top:6px;right:8px;bottom:6px;left:8px;z-index:5;background:transparent!important;touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.term[data-v-acf7d666] .xterm-helper-textarea{caret-color:transparent}.overlay[data-v-acf7d666]{position:absolute;top:8px;right:12px;background:var(--terminal-overlay);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:12px;color:var(--fg-dim);pointer-events:none}.overlay.avoid-top-right-badge[data-v-acf7d666]{top:34px}.viewer-overlay[data-v-acf7d666]{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:5}.viewer-overlay-card[data-v-acf7d666]{background:var(--terminal-overlay);border:1px solid var(--border);border-radius:10px;padding:14px 22px;text-align:center;pointer-events:auto;box-shadow:0 10px 30px #00000059}.viewer-overlay-title[data-v-acf7d666]{font-size:14px;font-weight:600;color:var(--fg)}.viewer-overlay-host[data-v-acf7d666]{margin-top:4px;font-size:12px;color:var(--fg);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;opacity:.85}.viewer-overlay-hint[data-v-acf7d666]{margin-top:6px;font-size:12px;color:var(--fg-dim)}.viewer-overlay-btn[data-v-acf7d666]{margin-top:8px;padding:6px 14px;border:none;border-radius:8px;background:#3b82f6;color:#fff;font-weight:600;pointer-events:auto;cursor:pointer}.overlay .warn[data-v-acf7d666]{color:#d29922}.overlay .bad[data-v-acf7d666]{color:var(--bad)}.overlay .dim[data-v-acf7d666]{color:var(--fg-dim)}.progress-track[data-v-acf7d666]{width:190px;height:4px;margin-top:6px;border-radius:999px;background:#94a3b83d;overflow:hidden}.progress-fill[data-v-acf7d666]{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#4ade80);transition:width .12s ease}.term-context-menu[data-v-acf7d666]{position:fixed;min-width:150px;padding:6px;border-radius:8px;border:1px solid var(--border);background:#0d1117f5;box-shadow:0 10px 30px #00000059;z-index:1000}.term-context-item[data-v-acf7d666]{width:100%;border:none;background:transparent;color:var(--fg);text-align:left;padding:8px 10px;border-radius:6px;cursor:pointer}.term-context-item[data-v-acf7d666]:hover:not(:disabled){background:#ffffff0f}.term-context-item[data-v-acf7d666]:disabled{color:var(--fg-dim);cursor:default}.term-view.focused[data-v-acf7d666]{box-shadow:inset 0 0 0 1px var(--accent)}.pane-splitter[data-v-442ddd17]{position:absolute;z-index:5;background:transparent;-webkit-user-select:none;user-select:none;touch-action:none}.pane-splitter.col[data-v-442ddd17]{top:0;bottom:0;width:6px;cursor:col-resize}.pane-splitter.row[data-v-442ddd17]{left:0;right:0;height:6px;cursor:row-resize}.pane-splitter[data-v-442ddd17]:hover,.pane-splitter[data-v-442ddd17]:active{background:#ffffff14}.pane-grid[data-v-76c1e407]{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;gap:2px;background:var(--terminal-grid)}.pane-grid.single[data-v-76c1e407]{grid-template:"a"}.cell[data-v-76c1e407]{position:relative;background:var(--terminal-bg);overflow:hidden}.cell.drop-target[data-v-76c1e407]{box-shadow:inset 0 0 0 2px var(--accent)}.cell.drop-target[data-v-76c1e407]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--accent) 12%,transparent);pointer-events:none}.term-host[data-v-76c1e407]{position:absolute;top:0;right:0;bottom:0;left:0}.empty[data-v-76c1e407]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--fg-dim);font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.cell-controls[data-v-76c1e407]{position:absolute;top:6px;right:8px;display:flex;align-items:center;gap:4px;z-index:6;pointer-events:none}.service-preview-controls-slot[data-v-76c1e407]{display:inline-flex;align-items:center;min-width:0;pointer-events:auto}.remote-badge[data-v-76c1e407]{display:inline-flex;align-items:center;gap:6px;background:#0d1117d9;border:1px solid var(--border);border-radius:10px;padding:2px 8px;font-size:11px;line-height:1.5;color:#d29922;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;-webkit-user-select:none;user-select:none;pointer-events:none}.remote-preview-trigger[data-v-76c1e407]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:0;border-radius:4px;color:inherit;background:transparent;cursor:pointer;pointer-events:auto}.remote-preview-trigger[data-v-76c1e407]:hover{color:var(--fg);background:#ffffff1a}.remote-preview-trigger svg[data-v-76c1e407]{display:block}.remote-badge svg[data-v-76c1e407]{display:block}.viewers-badge[data-v-76c1e407]{position:absolute;top:4px;right:4px;display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:6px;background:#0000008c;color:var(--fg);font-size:11px;pointer-events:none}.viewers-badge svg[data-v-76c1e407]{display:block}.remote-badge .who[data-v-76c1e407]{font-weight:600}.remote-badge .who.dim[data-v-76c1e407],.remote-badge .sid[data-v-76c1e407]{color:var(--fg-dim);font-weight:400}.remote-badge .sid[data-v-76c1e407]:before{content:"·";margin-right:4px}.close-pane[data-v-76c1e407]{border:none;background:#0d1117b3;color:var(--fg-dim);font-size:14px;line-height:1;padding:2px 6px;border-radius:4px;cursor:pointer;opacity:0;pointer-events:auto;transition:opacity .12s,background .12s,color .12s}.cell:hover .close-pane[data-v-76c1e407]{opacity:1}.pane-grip[data-v-76c1e407]{opacity:0;transition:opacity .1s;cursor:grab;pointer-events:auto;-webkit-user-drag:element;padding:0 3px;font-size:12px;line-height:1;color:var(--fg-dim);-webkit-user-select:none;user-select:none}.pane-grip[data-v-76c1e407]:active{cursor:grabbing}.cell:hover .pane-grip[data-v-76c1e407]{opacity:1}@media (hover: none){.pane-grip[data-v-76c1e407]{display:none}}.close-pane[data-v-76c1e407]:hover{background:#f851492e;color:var(--bad)}.create-form[data-v-b7ce3097]{margin-bottom:1rem}.field[data-v-b7ce3097]{display:flex;flex-direction:column;gap:.25rem}.field-label[data-v-b7ce3097]{font-size:.75rem;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.06em}.secret-alert[data-v-b7ce3097]{margin:.5rem 0}.secret-msg[data-v-b7ce3097]{color:var(--fg-dim);font-size:.85rem;margin-bottom:.5rem}.secret-display[data-v-b7ce3097]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;color:var(--good);word-break:break-all;display:block;padding:.25rem 0}.empty[data-v-b7ce3097]{color:var(--fg-dim);font-size:.875rem;margin:.5rem 0 0}.secret-alert[data-v-b54d534a]{margin-bottom:.5rem}.secret-msg[data-v-b54d534a]{color:var(--fg-dim);font-size:.85rem;margin-bottom:.5rem}.secret-display[data-v-b54d534a]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;color:var(--good);word-break:break-all;display:block;padding:.25rem 0}.form-error[data-v-b54d534a]{color:var(--bad);font-size:.875rem;margin:.5rem 0 0}.hint[data-v-be878b2d]{color:var(--fg-dim);font-size:.875rem;margin:0 0 1rem}.muted[data-v-be878b2d]{color:var(--fg-dim);font-size:.875rem}.warn[data-v-be878b2d]{color:var(--warn, #d89614);font-size:.8125rem}.actions[data-v-be878b2d]{margin-top:1rem}.version code[data-v-be878b2d]{color:var(--fg)}.form-error[data-v-be878b2d]{color:var(--bad);font-size:.875rem;margin:.5rem 0 0}.hint[data-v-b32379d1]{color:var(--fg-dim);font-size:.875rem;margin:0 0 1rem}.muted[data-v-b32379d1]{color:var(--fg-dim);font-size:.875rem}.warn[data-v-b32379d1]{color:var(--warn, #d89614);font-size:.8125rem}.actions[data-v-b32379d1]{margin-top:1rem}.form-error[data-v-b32379d1]{color:var(--bad);font-size:.875rem;margin:.5rem 0 0}.traffic[data-v-2ace187f]{display:flex;flex-direction:column;gap:16px}.empty[data-v-2ace187f]{color:var(--fg-dim)}.admin-panel[data-v-99471adc]{display:flex;flex-direction:column;height:100%;min-height:0}.admin-tabs[data-v-99471adc]{display:flex;gap:2px;padding:8px 12px 0;border-bottom:1px solid var(--border);flex:0 0 auto}.admin-tabs button[data-v-99471adc]{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--fg-dim);padding:8px 12px;cursor:pointer;font-size:13px}.admin-tabs button[data-v-99471adc]:hover{color:var(--fg)}.admin-tabs button.active[data-v-99471adc]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.admin-body[data-v-99471adc]{flex:1 1 auto;min-height:0;overflow-y:auto;padding:20px 24px}.terminal-appearance[data-v-e31f8f67]{display:flex;flex-direction:column;gap:14px}.field-label[data-v-e31f8f67]{font-size:12px;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em}.hint[data-v-e31f8f67]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.5}.error[data-v-e31f8f67]{color:var(--bad);font-size:12px;margin:0}.checkbox[data-v-e31f8f67]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--fg)}.number-input[data-v-e31f8f67]{width:80px;padding:4px 8px;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--fg);font:inherit}.settings-field-grid .number-input[data-v-e31f8f67]{width:100%}.cursor-blink[data-v-e31f8f67]{min-height:18px}.scrollback-field[data-v-e31f8f67]{align-items:flex-start}.tab-pane[data-v-e7440565]{display:flex;flex-direction:column;gap:14px}.field-label[data-v-e7440565]{font-size:12px;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em}.hint[data-v-e7440565]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.5}.error[data-v-e7440565]{color:var(--bad);font-size:12px;margin:0}.checkbox[data-v-e7440565]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--fg)}.number-input[data-v-e7440565]{width:80px;padding:4px 8px;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--fg);font:inherit}.text-input[data-v-e7440565]{padding:6px 8px;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--fg);font:inherit}.custom-shell-row[data-v-e7440565]{display:flex;gap:8px}.custom-shell-row .text-input[data-v-e7440565]{flex:1 1 auto}.custom-shell-row button[data-v-e7440565]{padding:6px 10px;background:var(--panel);border:1px solid var(--border);border-radius:4px;color:var(--fg);font:inherit}.push-section[data-v-e7440565]{display:flex;flex-direction:column;gap:8px;padding-top:14px;border-top:1px solid var(--border)}.section-title[data-v-e7440565]{margin:0;font-size:12px;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em}.push-test-button[data-v-e7440565]{align-self:flex-start;padding:6px 10px;background:var(--panel);border:1px solid var(--border);border-radius:4px;color:var(--fg);font:inherit;cursor:pointer}.push-test-button[data-v-e7440565]:disabled{opacity:.5;cursor:not-allowed}.pair-consume[data-v-285ce5b2]{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--border);border-radius:6px;background:#ffffff08}.pending[data-v-285ce5b2],.pair-error[data-v-285ce5b2]{display:flex;flex-direction:column;gap:6px;color:var(--fg-dim);font-size:13px}.pending p[data-v-285ce5b2],.pair-error p[data-v-285ce5b2]{margin:0}.step[data-v-285ce5b2],.elapsed[data-v-285ce5b2],.code[data-v-285ce5b2]{font-family:var(--font-mono);font-size:12px}.code[data-v-285ce5b2]{color:var(--bad)}.cancel[data-v-285ce5b2],.pair-error button[data-v-285ce5b2]{align-self:flex-start}.tab-pane[data-v-55932ce0]{display:flex;flex-direction:column;gap:12px}.account-section[data-v-55932ce0]{display:flex;flex-direction:column;gap:8px;padding-bottom:16px;border-bottom:1px solid var(--border)}.account-section[data-v-55932ce0]:last-child{border-bottom:none;padding-bottom:0}.account-section h3[data-v-55932ce0]{margin:0 0 4px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-dim)}.field-label[data-v-55932ce0]{font-size:12px;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em}.email-value[data-v-55932ce0]{margin:0;color:var(--fg);font-size:13px}.hint[data-v-55932ce0]{margin:0;color:var(--fg-dim);font-size:12px;line-height:1.5}.warning-text[data-v-55932ce0]{color:var(--bad)}.error[data-v-55932ce0]{color:var(--bad);font-size:12px;margin:0}.success[data-v-55932ce0]{color:var(--good);font-size:12px;margin:0}.relay-url-row[data-v-55932ce0]{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px}.checkbox-row[data-v-55932ce0]{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--fg-dim);font-size:12px}.checkbox-row input[data-v-55932ce0]{flex:0 0 auto}.inline-error[data-v-55932ce0]{color:var(--bad);font-size:12px;margin:0}input[type=text][data-v-55932ce0],input[type=email][data-v-55932ce0],select[data-v-55932ce0],input[type=password][data-v-55932ce0]{height:32px;padding:6px 10px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;font-size:13px}input[data-v-55932ce0]:focus{outline:none;box-shadow:0 0 0 2px var(--accent)}button.secondary[data-v-55932ce0]{align-self:flex-start;background:transparent;color:var(--fg-dim);border:1px solid var(--border);border-radius:6px;padding:6px 12px;font-size:13px;cursor:pointer}button.secondary[data-v-55932ce0]:hover:not(:disabled){color:var(--fg);background:#ffffff0a}button.secondary[data-v-55932ce0]:disabled{opacity:.5;cursor:not-allowed}button.primary-action[data-v-55932ce0]{background:var(--accent);border-color:var(--accent);color:#0d1117;font-weight:600}button.primary-action[data-v-55932ce0]:hover:not(:disabled){background:#79b8ff;color:#0d1117}.danger-btn[data-v-55932ce0]{align-self:flex-start;background:transparent;color:var(--bad);border:1px solid var(--bad);border-radius:6px;padding:6px 12px;font-size:13px;cursor:pointer}.danger-btn[data-v-55932ce0]:hover:not(:disabled){background:color-mix(in srgb,var(--bad) 8%,transparent 92%)}.danger-btn[data-v-55932ce0]:disabled{opacity:.5;cursor:not-allowed}.pairing-panel[data-v-45575575]{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--border);border-radius:10px}.title[data-v-45575575]{font-size:13px;font-weight:700;color:var(--fg)}.hint[data-v-45575575]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.45}.qr-wrap[data-v-45575575]{display:flex;flex-direction:column;align-items:center;gap:8px}.qr[data-v-45575575]{width:240px;height:240px;image-rendering:pixelated;background:#fff;padding:6px;border-radius:6px}.qr.dimmed[data-v-45575575]{opacity:.35}.countdown[data-v-45575575]{font-size:12px;color:var(--fg-dim)}.countdown.expired[data-v-45575575]{color:var(--bad)}.wrap-badge[data-v-45575575]{font-size:11px;color:var(--fg-dim);padding:2px 8px;border:1px solid var(--border);border-radius:4px}.wrap-warning[data-v-45575575]{font-size:11px;color:var(--warn);background:#ffc8000f;border-left:2px solid var(--warn);padding:6px 10px;margin:0;line-height:1.4;text-align:left;max-width:240px}.prefix[data-v-45575575]{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--fg-dim)}.error[data-v-45575575]{color:var(--bad);font-size:12px;margin:0}button[data-v-45575575]{height:30px;border:1px solid var(--accent);border-radius:7px;background:var(--accent);color:var(--bg);padding:0 12px;font-size:12px;font-weight:700;cursor:pointer}button[data-v-45575575]:disabled{opacity:.55}.url-label-row[data-v-100947b5]{display:flex;align-items:center;justify-content:space-between;gap:10px}.insecure-inline[data-v-100947b5]{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--fg-dim);text-transform:none;letter-spacing:normal;cursor:pointer;-webkit-user-select:none;user-select:none}.insecure-inline input[type=checkbox][data-v-100947b5]{margin:0}.url-input[data-v-100947b5]{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--bg)}.url-input[data-v-100947b5]:focus-within{box-shadow:0 0 0 2px var(--accent)}.url-scheme[data-v-100947b5]{display:inline-flex;align-items:center;padding:0 8px;font-size:13px;color:var(--fg-dim);background:color-mix(in srgb,var(--fg-dim) 12%,transparent 88%);border-right:1px solid var(--border);-webkit-user-select:none;user-select:none;white-space:nowrap}.url-input.insecure .url-scheme[data-v-100947b5]{color:var(--warn, #d97706)}.url-input input[data-v-100947b5]{flex:1;border:0;border-radius:0;background:transparent;min-width:0}.url-input input[data-v-100947b5]:focus{box-shadow:none}.auth-switch[data-v-100947b5]{-webkit-appearance:none;-moz-appearance:none;appearance:none;align-self:flex-start;background:transparent;border:0;padding:0;margin:-4px 0 0;font:inherit;font-size:12px;color:var(--fg-dim);cursor:pointer}.auth-switch[data-v-100947b5]:disabled{cursor:not-allowed;opacity:.5}.auth-switch-action[data-v-100947b5]{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.auth-switch:hover:not(:disabled) .auth-switch-action[data-v-100947b5]{text-decoration:none}.tab-pane[data-v-100947b5]{display:flex;flex-direction:column;gap:12px}.dim[data-v-100947b5]{color:var(--fg-dim);font-size:13px}.uplink-toggle-row[data-v-100947b5]{display:flex;align-items:center;gap:10px}.toggle-switch[data-v-100947b5]{display:inline-flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-switch.disabled[data-v-100947b5]{opacity:.5;cursor:not-allowed}.toggle-switch input[type=checkbox][data-v-100947b5]{position:absolute;opacity:0;width:0;height:0}.toggle-track[data-v-100947b5]{position:relative;display:inline-block;width:32px;height:18px;background:var(--fg-dim);border-radius:9px;transition:background .15s}.toggle-switch input:checked+.toggle-track[data-v-100947b5]{background:var(--good)}.toggle-thumb[data-v-100947b5]{position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--fg);border-radius:50%;transition:transform .15s}.toggle-switch input:checked+.toggle-track .toggle-thumb[data-v-100947b5]{transform:translate(14px)}.toggle-label[data-v-100947b5]{font-size:12px;color:var(--fg-dim);min-width:2.2em}.status-pill[data-v-100947b5]{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--border);border-radius:999px;font-size:12px;width:max-content}.status-pill .dot[data-v-100947b5]{font-size:10px;line-height:1}.status-pill.on .dot[data-v-100947b5]{color:var(--good)}.status-pill.off .dot[data-v-100947b5]{color:var(--fg-dim)}.status-pill.on[data-v-100947b5]{color:var(--good)}.status-pill.off[data-v-100947b5]{color:var(--fg-dim)}.status-pill.warn[data-v-100947b5],.status-pill.warn .dot[data-v-100947b5]{color:var(--warn, #d97706)}.status-pill.error[data-v-100947b5],.status-pill.error .dot[data-v-100947b5]{color:var(--bad)}.hint[data-v-100947b5]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.5}.field-label[data-v-100947b5]{font-size:12px;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em}.checkbox[data-v-100947b5]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--fg)}.error[data-v-100947b5]{color:var(--bad);font-size:12px;margin:0}.warning[data-v-100947b5]{color:var(--bad);font-size:12px;line-height:1.45;margin:0}input[type=text][data-v-100947b5],input[type=email][data-v-100947b5],input[type=password][data-v-100947b5]{height:32px;padding:6px 10px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;font-size:13px}input[data-v-100947b5]:focus{outline:none;box-shadow:0 0 0 2px var(--accent)}.password-field[data-v-100947b5]{position:relative;display:block}.password-field input[data-v-100947b5]{width:100%;padding-right:36px}.password-toggle[data-v-100947b5]{position:absolute;top:50%;right:8px;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;background:transparent;color:var(--fg-dim);border-radius:4px;cursor:pointer;transition:color .15s ease,background .15s ease}.password-toggle[data-v-100947b5]:hover:not(:disabled){color:var(--fg);background:color-mix(in srgb,var(--accent) 12%,transparent 88%)}.password-toggle[data-v-100947b5]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.password-toggle[data-v-100947b5]:disabled{opacity:.4;cursor:not-allowed}.danger-zone[data-v-100947b5]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:8px;padding-top:12px;border-top:1px solid var(--border)}.danger-zone-text[data-v-100947b5]{flex:1;min-width:0}.danger-btn[data-v-100947b5]{align-self:flex-start;background:transparent;color:var(--bad);border:1px solid var(--bad);border-radius:6px;padding:6px 12px;font-size:13px;cursor:pointer}.danger-btn[data-v-100947b5]:hover:not(:disabled){background:color-mix(in srgb,var(--bad) 8%,transparent 92%)}.danger-btn[data-v-100947b5]:disabled{opacity:.5;cursor:not-allowed}.log-lines[data-v-c9e8e2b4]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.log-line[data-v-c9e8e2b4]{display:block}.ts[data-v-c9e8e2b4]{color:var(--fg-dim);margin-right:6px}.lvl[data-v-c9e8e2b4]{margin-right:6px;font-weight:700}.tag[data-v-c9e8e2b4]{color:var(--accent);margin-right:6px}.msg[data-v-c9e8e2b4]{color:var(--fg)}.raw[data-v-c9e8e2b4],.lvl-DEBUG .lvl[data-v-c9e8e2b4],.lvl-DEBUG .msg[data-v-c9e8e2b4]{color:var(--fg-dim)}.lvl-INFO .lvl[data-v-c9e8e2b4]{color:var(--fg)}.lvl-WARN .lvl[data-v-c9e8e2b4],.lvl-WARN .msg[data-v-c9e8e2b4]{color:var(--warn, #d2a86a)}.lvl-ERROR .lvl[data-v-c9e8e2b4],.lvl-ERROR .msg[data-v-c9e8e2b4]{color:var(--bad)}.tab-pane[data-v-cd8d05fa]{display:flex;flex-direction:column;gap:14px}.dim[data-v-cd8d05fa]{color:var(--fg-dim);font-size:13px}.checkbox[data-v-cd8d05fa]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--fg)}.checkbox-row[data-v-cd8d05fa]{display:flex;align-items:center;gap:6px}.level-row[data-v-cd8d05fa]{display:flex;align-items:center;gap:8px}.level-label[data-v-cd8d05fa]{font-size:13px;color:var(--fg)}.level-select[data-v-cd8d05fa]{width:104px}.info-icon[data-v-cd8d05fa]{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border:1px solid var(--fg-dim);border-radius:50%;color:var(--fg-dim);font-size:10px;font-style:italic;line-height:1;cursor:help;-webkit-user-select:none;user-select:none}.info-icon[data-v-cd8d05fa]:hover{color:var(--fg);border-color:var(--fg)}.kv[data-v-cd8d05fa]{display:flex;align-items:flex-start;gap:12px;font-size:12px}.kv .k[data-v-cd8d05fa]{color:var(--fg-dim);width:130px}.kv .v[data-v-cd8d05fa]{color:var(--fg)}.kv .path[data-v-cd8d05fa]{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere}.actions[data-v-cd8d05fa]{display:flex;gap:8px}.error[data-v-cd8d05fa]{color:var(--bad);font-size:12px;margin:0}button[data-v-cd8d05fa]{height:32px;padding:6px 14px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:13px}button[data-v-cd8d05fa]:hover{background:#ffffff0a}.tail-wrap[data-v-cd8d05fa]{display:flex;flex-direction:column;gap:6px;margin-top:4px}.tail-header[data-v-cd8d05fa]{display:flex;align-items:center;gap:8px}.tail-label[data-v-cd8d05fa]{font-size:12px;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.04em;flex:1 1 auto}.tail-refresh[data-v-cd8d05fa]{height:24px;padding:2px 10px;font-size:12px}.tail-paused[data-v-cd8d05fa]{height:24px;padding:2px 10px;font-size:12px;flex:0 0 auto;color:var(--accent);border-color:var(--accent)}.tail-level[data-v-cd8d05fa]{width:104px;flex:0 0 auto}.tail-tag[data-v-cd8d05fa]{width:152px;flex:0 0 auto}.tail-empty[data-v-cd8d05fa]{color:var(--fg-dim);font-size:12px;margin:0}.tail-error[data-v-cd8d05fa]{color:var(--bad);font-size:12px;margin:0}.tail-content[data-v-cd8d05fa]{margin:0;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px;color:var(--fg);font-size:11px;line-height:1.45;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;max-height:280px;overflow:auto;white-space:pre-wrap;word-break:break-word}.tab-pane[data-v-c859d0af]{display:flex;flex-direction:column;gap:14px}.dim[data-v-c859d0af]{color:var(--fg-dim);font-size:13px}.grid[data-v-c859d0af]{display:grid;gap:6px;font-size:12px}.kv[data-v-c859d0af]{display:flex;align-items:flex-start;gap:12px}.kv .k[data-v-c859d0af]{color:var(--fg-dim);width:130px}.kv .v[data-v-c859d0af]{color:var(--fg)}.kv .path[data-v-c859d0af]{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere}.checkbox[data-v-c859d0af]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--fg)}.proxy-box[data-v-c859d0af]{display:grid;gap:6px}.field-label[data-v-c859d0af]{color:var(--fg-dim);font-size:12px}.proxy-row[data-v-c859d0af]{display:flex;gap:8px}.proxy-row input[data-v-c859d0af]{flex:1;min-width:0;height:32px;padding:6px 10px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;font:inherit;font-size:13px}.hint[data-v-c859d0af]{margin:0;color:var(--fg-dim);font-size:12px;line-height:1.4}.notes[data-v-c859d0af]{font-size:12px;color:var(--fg)}.notes summary[data-v-c859d0af]{color:var(--fg-dim);cursor:pointer}.notes pre[data-v-c859d0af]{background:var(--bg);border:1px solid var(--border);padding:8px;border-radius:6px;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;max-height:160px;overflow-y:auto;font-size:11px}.version-lines[data-v-c859d0af]{display:grid;gap:6px;font-size:13px;color:var(--fg)}.version-line label[data-v-c859d0af]{display:flex;align-items:center;gap:8px;cursor:pointer}.actions[data-v-c859d0af]{display:flex;gap:8px}.error[data-v-c859d0af]{color:var(--bad);font-size:12px;margin:0}button[data-v-c859d0af]{height:32px;padding:6px 14px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:13px}button[data-v-c859d0af]:hover:not(:disabled){background:#ffffff0a}button[data-v-c859d0af]:disabled{opacity:.5;cursor:default}button.primary[data-v-c859d0af]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}button.primary[data-v-c859d0af]:hover:not(:disabled){background:#79b8ff;border-color:#79b8ff}button.primary.danger[data-v-c859d0af]{background:var(--bad);color:#0d1117;border-color:var(--bad)}button.primary.danger[data-v-c859d0af]:hover:not(:disabled){background:#ff6f6a;border-color:#ff6f6a}button.secondary[data-v-c859d0af]{background:transparent;color:var(--fg-dim);border:1px solid var(--border)}button.secondary[data-v-c859d0af]:hover:not(:disabled){color:var(--fg);background:#ffffff0a}.translate-settings[data-v-2b2be568]{margin-top:8px;padding-top:8px;border-top:1px solid #2d333b;font-size:12px;display:flex;flex-direction:column;gap:8px}.translate-settings label[data-v-2b2be568]{display:flex;flex-direction:column;gap:3px}.translate-settings label span[data-v-2b2be568]{opacity:.7;font-size:11px}.translate-settings input[data-v-2b2be568],.translate-settings select[data-v-2b2be568]{background:#00000040;color:inherit;border:1px solid #2d333b;border-radius:3px;padding:4px 6px;font-size:12px}.extra-params[data-v-2b2be568]{background:#00000040;color:inherit;border:1px solid #2d333b;border-radius:3px;padding:4px 6px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical;min-height:56px}.extra-params-error[data-v-2b2be568]{color:#f87171;font-size:11px}.hint[data-v-2b2be568]{opacity:.55;font-size:11px}.muted[data-v-2b2be568]{opacity:.55;font-size:11px;margin:4px 0 0}.settings-plugins[data-v-a25af5cc]{padding:12px 16px;color:var(--settings-fg, #c9d1d9)}.hint[data-v-a25af5cc]{margin:0 0 12px;font-size:12px;opacity:.7}.plugin-list[data-v-a25af5cc]{list-style:none;margin:0;padding:0}.plugin-row[data-v-a25af5cc]{border:1px solid #2d333b;border-radius:6px;padding:10px 12px;margin-bottom:8px}.row-head[data-v-a25af5cc]{display:flex;align-items:center;gap:8px;font-weight:600}.desc[data-v-a25af5cc]{margin:6px 0 0 24px;font-size:12px;opacity:.7}.empty[data-v-a25af5cc]{font-size:12px;opacity:.5}.fe-settings[data-v-a25af5cc]{margin-top:8px;padding-top:8px;border-top:1px solid #2d333b;font-size:12px;display:flex;flex-direction:column;gap:6px}.fe-settings label[data-v-a25af5cc]{display:inline-flex;align-items:center;gap:6px}.fe-settings .muted[data-v-a25af5cc]{margin:6px 0 0;opacity:.6;font-size:11px}.widget-settings[data-v-a25af5cc]{margin:8px 0 0 24px;padding-top:8px;border-top:1px solid #2d333b;font-size:12px}.widget-settings label[data-v-a25af5cc]{display:inline-flex;align-items:center;gap:6px}.widget-settings .muted[data-v-a25af5cc]{margin:6px 0 0;opacity:.6;font-size:11px}.hotkey-cell[data-v-80cabc38]{font-family:SF Mono,Menlo,monospace;font-size:12px;background:#0d1117;border:1px solid #2d333b;color:#c9d1d9;padding:3px 8px;border-radius:4px;cursor:pointer;min-width:160px;text-align:left}.hotkey-cell[data-v-80cabc38]:hover{background:#161b22}.hotkey-cell.capturing[data-v-80cabc38]{background:#58a6ff1f;border-color:var(--accent);color:var(--accent)}.hotkey-cell.empty[data-v-80cabc38]{color:#6e7681;font-style:italic}.shortcut-settings[data-v-05d9d72b]{padding:8px 4px;font-size:12px;color:var(--fg)}.shortcut-group[data-v-05d9d72b]{margin-bottom:18px}.shortcut-group h3[data-v-05d9d72b]{margin:4px 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-dim)}.shortcut-row[data-v-05d9d72b]{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:4px 0}.label[data-v-05d9d72b]{color:var(--fg)}.reset-row[data-v-05d9d72b]{background:transparent;border:1px solid #2d333b;color:var(--fg-dim);padding:2px 8px;border-radius:4px;cursor:pointer}.reset-row[data-v-05d9d72b]:hover{background:#ffffff0a;color:var(--fg)}.conflict[data-v-05d9d72b]{grid-column:1 / -1;color:#f85149;font-size:11px;padding-left:4px}.actions-row[data-v-05d9d72b]{display:flex;gap:8px;margin-top:12px;align-items:center}.spacer[data-v-05d9d72b]{flex:1}.actions-row button[data-v-05d9d72b]{background:#21262d;border:1px solid #2d333b;color:#c9d1d9;padding:4px 12px;border-radius:4px;cursor:pointer}.actions-row button[data-v-05d9d72b]:disabled{opacity:.4;cursor:default}.actions-row .save[data-v-05d9d72b]{background:var(--accent);color:#0d1117;border-color:var(--accent)}.actions-row .save[data-v-05d9d72b]:disabled{background:#21262d;color:#c9d1d9;border-color:#2d333b}.error[data-v-05d9d72b]{color:#f85149;font-size:12px;margin:8px 0 0}@media (max-width: 640px){.shortcut-row[data-v-05d9d72b]{grid-template-columns:minmax(0,1fr) minmax(0,140px) auto}.shortcut-row[data-v-05d9d72b] .hotkey-cell{min-width:0;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions-row[data-v-05d9d72b]{flex-wrap:wrap}}.diag[data-v-1a4e377a]{display:flex;flex-direction:column;gap:10px}.hint[data-v-1a4e377a]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.5}.preview[data-v-1a4e377a]{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px;font-family:ui-monospace,Menlo,monospace;font-size:11px;line-height:1.4;max-height:320px;overflow:auto;white-space:pre;color:var(--fg);margin:0}.row[data-v-1a4e377a]{display:flex;gap:8px;align-items:center}button[data-v-1a4e377a]{height:30px;border:1px solid var(--accent);border-radius:7px;background:var(--accent);color:var(--bg);padding:0 12px;font-size:12px;font-weight:700;cursor:pointer}.status[data-v-1a4e377a]{font-size:12px;color:var(--fg-dim)}.configio[data-v-9ef7411c]{display:flex;flex-direction:column;gap:16px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.configio-section[data-v-9ef7411c]{display:flex;flex-direction:column;gap:8px}.section-title[data-v-9ef7411c]{margin:0;font-size:13px}.hint[data-v-9ef7411c]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.5}.checkbox[data-v-9ef7411c]{display:flex;align-items:center;gap:6px;font-size:12px}.row[data-v-9ef7411c]{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.status[data-v-9ef7411c]{font-size:12px;color:var(--fg-dim)}.status.error[data-v-9ef7411c]{color:var(--bad)}.file-input[data-v-9ef7411c]{display:none}.configio-preview[data-v-9ef7411c],.configio-report[data-v-9ef7411c]{border:1px solid var(--border);border-radius:6px;padding:10px;background:var(--bg);display:flex;flex-direction:column;gap:6px}.configio-preview h5[data-v-9ef7411c],.configio-report h5[data-v-9ef7411c]{margin:0;font-size:12px}.configio-preview h6[data-v-9ef7411c],.configio-report h6[data-v-9ef7411c]{margin:4px 0 2px;font-size:11px;color:var(--fg-dim)}.configio-preview ul[data-v-9ef7411c],.configio-report ul[data-v-9ef7411c]{margin:0;padding-left:18px;font-size:12px}button[data-v-9ef7411c]{height:30px;border:1px solid var(--accent);border-radius:7px;background:var(--accent);color:var(--bg);padding:0 12px;font-size:12px;font-weight:700;cursor:pointer}button[data-v-9ef7411c]:disabled{opacity:.5;cursor:default}.snippet-run-overlay[data-v-ca33db20]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:60}.snippet-run-panel[data-v-ca33db20]{background:#11182b;border:1px solid #1e2638;border-radius:11px;padding:16px 18px;min-width:360px;max-width:560px;max-height:80vh;overflow-y:auto;display:flex;flex-direction:column;gap:12px;color:#e6e7ea}.hint[data-v-ca33db20]{font-size:12px;color:var(--fg-dim);margin:0}.host-list[data-v-ca33db20]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:40vh;overflow-y:auto}.host-list label[data-v-ca33db20]{display:flex;align-items:center;gap:8px;font-size:.85rem}.rows[data-v-ca33db20]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.row[data-v-ca33db20]{border:1px solid var(--border);border-radius:6px;padding:8px 10px;background:var(--bg);display:flex;flex-direction:column;gap:4px}.row-head[data-v-ca33db20]{display:flex;justify-content:space-between;align-items:center;gap:8px}.row-host[data-v-ca33db20]{font-weight:600;font-family:var(--font-mono);font-size:.85rem}.row-state[data-v-ca33db20]{font-size:.78rem}.row.state-ok .row-state[data-v-ca33db20]{color:var(--good, #3fb950)}.row.state-failed .row-state[data-v-ca33db20],.row.state-error .row-state[data-v-ca33db20]{color:var(--bad)}.row.state-running .row-state[data-v-ca33db20]{color:var(--accent)}.row-exitcode[data-v-ca33db20]{font-size:.74rem;color:var(--fg-dim);font-family:var(--font-mono)}.row-output[data-v-ca33db20]{font-family:var(--font-mono);font-size:.76rem;white-space:pre-wrap;word-break:break-word;background:#ffffff08;border-radius:4px;padding:6px 8px;margin:0;max-height:30vh;overflow-y:auto}.row-truncated[data-v-ca33db20]{font-size:.72rem;color:var(--fg-dim);margin:0;font-style:italic}.error[data-v-ca33db20]{color:var(--bad);font-size:.75rem;margin:0}.footer[data-v-ca33db20]{display:flex;gap:8px;justify-content:flex-end}.footer .primary[data-v-ca33db20]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}.tab-pane[data-v-d57ad1d6]{display:flex;flex-direction:column;gap:10px}.hint[data-v-d57ad1d6]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.5}.show-toggle[data-v-d57ad1d6]{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--fg)}.list[data-v-d57ad1d6]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.row[data-v-d57ad1d6]{display:grid;grid-template-columns:7rem 1fr 5rem auto;gap:8px;align-items:center;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:6px}.label[data-v-d57ad1d6]{font-weight:600;font-family:var(--font-mono);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text[data-v-d57ad1d6]{font-family:var(--font-mono);font-size:.78rem;color:var(--fg-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hotkey[data-v-d57ad1d6]{font-family:var(--font-mono);font-size:.74rem;color:var(--fg-dim);text-align:center}.actions[data-v-d57ad1d6]{display:flex;gap:4px}.actions button[data-v-d57ad1d6]{height:24px;padding:0 8px;font-size:.74rem}.actions .del[data-v-d57ad1d6]{color:var(--bad);border-color:#f8514966}.edit-row[data-v-d57ad1d6]{display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--panel);border:1px solid var(--accent);border-radius:6px}.edit-top[data-v-d57ad1d6]{display:grid;grid-template-columns:1fr 8rem;gap:8px}.edit-row input[data-v-d57ad1d6],.edit-row textarea[data-v-d57ad1d6]{padding:6px 8px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:4px;font-size:.85rem;font-family:var(--font-mono);width:100%;box-sizing:border-box}.edit-row input[data-v-d57ad1d6]{height:28px}.edit-row textarea[data-v-d57ad1d6]{resize:vertical;min-height:60px;line-height:1.4}.edit-actions[data-v-d57ad1d6]{display:flex;gap:6px;justify-content:flex-end}.edit-actions button[data-v-d57ad1d6]{height:28px;padding:0 14px;font-size:.78rem}.edit-actions .primary[data-v-d57ad1d6]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}.footer[data-v-d57ad1d6]{display:flex;gap:8px;align-items:center}.error[data-v-d57ad1d6]{color:var(--bad);font-size:.75rem}.dialog-backdrop[data-v-d57ad1d6]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:50}.dialog[data-v-d57ad1d6]{background:#11182b;padding:14px 18px;border:1px solid #1e2638;border-radius:11px;max-width:320px;display:flex;flex-direction:column;gap:10px;color:#e6e7ea}@media (max-width: 640px){.row[data-v-d57ad1d6]{grid-template-columns:minmax(0,1fr) auto}.text[data-v-d57ad1d6]{grid-column:1 / -1;grid-row:2}.hotkey[data-v-d57ad1d6]{grid-column:2;grid-row:1}.actions[data-v-d57ad1d6]{grid-column:1 / -1;flex-wrap:wrap}.edit-top[data-v-d57ad1d6]{grid-template-columns:minmax(0,1fr)}}.tab-pane[data-v-41aa374f]{display:flex;flex-direction:column;gap:10px}.hint[data-v-41aa374f]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.5}.list[data-v-41aa374f]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.row[data-v-41aa374f]{display:grid;grid-template-columns:9rem 1fr 1fr auto;gap:8px;align-items:center;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:6px}.name[data-v-41aa374f]{font-weight:600;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:6px}.badge[data-v-41aa374f]{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);border:1px solid var(--accent);border-radius:3px;padding:1px 4px}.detail[data-v-41aa374f]{font-family:var(--font-mono);font-size:.78rem;color:var(--fg-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions[data-v-41aa374f]{display:flex;gap:4px}.actions button[data-v-41aa374f]{height:24px;padding:0 8px;font-size:.74rem}.actions .del[data-v-41aa374f]{color:var(--bad);border-color:#f8514966}.edit-row[data-v-41aa374f]{display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--panel);border:1px solid var(--accent);border-radius:6px}.edit-input[data-v-41aa374f]{padding:6px 8px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:4px;font-size:.85rem;font-family:var(--font-mono);width:100%;box-sizing:border-box;height:28px}.edit-textarea[data-v-41aa374f]{height:auto;resize:vertical;min-height:60px;line-height:1.4}.checkbox[data-v-41aa374f]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--fg)}.edit-actions[data-v-41aa374f]{display:flex;gap:6px;justify-content:flex-end}.edit-actions button[data-v-41aa374f]{height:28px;padding:0 14px;font-size:.78rem}.edit-actions .primary[data-v-41aa374f]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}.footer[data-v-41aa374f]{display:flex;gap:8px;align-items:center}.error[data-v-41aa374f]{color:var(--bad);font-size:.75rem}@media (max-width: 640px){.row[data-v-41aa374f]{grid-template-columns:repeat(2,minmax(0,1fr))}.name[data-v-41aa374f]{grid-column:1 / -1}.actions[data-v-41aa374f]{grid-column:1 / -1;flex-wrap:wrap;justify-content:flex-end}}.section-title[data-v-d7749d1b]{font-size:14px;font-weight:500;margin:0 0 12px}.preset-list[data-v-d7749d1b]{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.preset-option[data-v-d7749d1b]{display:flex;gap:10px;padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:4px;cursor:pointer}.preset-option[data-v-d7749d1b]:hover{background:#ffffff08}.preset-name[data-v-d7749d1b]{font-weight:500}.preset-desc[data-v-d7749d1b]{font-size:12px;opacity:.7;margin:4px 0}.preset-preview[data-v-d7749d1b]{display:flex;gap:10px;margin-top:6px}.expand-toggle[data-v-d7749d1b]{display:flex;align-items:center;gap:8px;padding:6px 0}.group-by-row[data-v-d7749d1b]{display:flex;align-items:center;gap:14px;margin-bottom:10px;flex-wrap:wrap}.group-by-label[data-v-d7749d1b]{font-size:13px}.group-by-option[data-v-d7749d1b]{display:flex;align-items:center;gap:4px;font-size:13px;cursor:pointer}.feishu-fieldset[data-v-2aad46af]{border:none;padding:0;margin:0}.field-label[data-v-2aad46af]{display:flex;flex-direction:column;gap:.25rem;font-size:13px;color:var(--fg-dim)}.field-input[data-v-2aad46af]{padding:6px 10px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;font-size:13px}.actions[data-v-2aad46af]{display:flex;gap:.5rem;margin-top:.25rem}.feishu-configured[data-v-2aad46af]{display:flex;flex-direction:column;gap:.75rem}.configured-line[data-v-2aad46af]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:0;font-size:13px}.configured-badge[data-v-2aad46af]{display:inline-block;padding:2px 8px;border-radius:4px;background:var(--good);color:var(--bg);font-size:12px}.configured-appid[data-v-2aad46af]{color:var(--fg-dim);font-family:var(--mono, monospace)}.callback-row[data-v-2aad46af]{display:flex;gap:.5rem;align-items:center}.callback-row .field-input[data-v-2aad46af]{flex:1;font-family:var(--mono, monospace)}.btn-secondary[data-v-2aad46af]{background:transparent;color:var(--fg-dim);border:1px solid var(--border);border-radius:6px;padding:6px 12px;font-size:13px;cursor:pointer}.error[data-v-2aad46af]{color:#f87171;font-size:13px}.test-send[data-v-2aad46af]{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:12px 0;margin:4px 0;display:flex;flex-direction:column;gap:6px}.test-send__title[data-v-2aad46af]{font-size:13px;font-weight:600;color:var(--fg);margin:0}.test-send .hint[data-v-2aad46af]{margin:0}.test-send__buttons[data-v-2aad46af]{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.test-send__buttons .btn-secondary[data-v-2aad46af]:disabled{opacity:.5;cursor:default}.test-send__ok[data-v-2aad46af]{color:var(--good);font-size:13px;margin:0}.pair-hint[data-v-2aad46af]{font-size:13px;color:var(--fg-dim);margin-top:.5rem}.hint[data-v-2aad46af]{font-size:13px;color:var(--fg-dim);margin:0 0 1rem}.feishu-status-error[data-v-2aad46af]{display:flex;align-items:center;gap:8px;color:var(--warn)}.hook-install[data-v-2aad46af]{padding:8px 0 12px;border-bottom:1px solid var(--border);margin-bottom:12px}.hook-install__row[data-v-2aad46af]{display:flex;align-items:center;gap:8px}.hook-install__dot[data-v-2aad46af]{display:inline-block;width:8px;height:8px;border-radius:50%}.hook-install__dot--green[data-v-2aad46af]{background:var(--good)}.hook-install__dot--amber[data-v-2aad46af]{background:var(--warn)}.hook-install__dot--gray[data-v-2aad46af]{background:var(--neutral)}.hook-install__label[data-v-2aad46af]{flex:1;font-size:13px}.hook-install__toggle[data-v-2aad46af]{display:flex;gap:4px;align-items:center;font-size:12px}.hook-install__retry[data-v-2aad46af]{font-size:12px;padding:2px 8px}.hook-install__error[data-v-2aad46af]{font-size:12px;color:var(--warn);margin:6px 0 0}.ai-only[data-v-2aad46af]{padding:0 0 12px;border-bottom:1px solid var(--border);margin-bottom:12px}.ai-only__toggle[data-v-2aad46af]{display:flex;gap:6px;align-items:center;font-size:13px}.remote-terminal[data-v-2aad46af]{padding:0 0 12px;border-bottom:1px solid var(--border);margin-bottom:12px;display:flex;flex-direction:column;gap:8px}.remote-terminal__toggle[data-v-2aad46af]{display:flex;gap:6px;align-items:center;font-size:13px}.remote-terminal__attach-label[data-v-2aad46af]{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--fg-dim);padding-left:22px}.remote-terminal__attach-select[data-v-2aad46af]{width:220px}.feishu-mode[data-v-2aad46af]{margin:8px 0}.feishu-mode__label[data-v-2aad46af]{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--fg-dim)}.feishu-mode__label-text[data-v-2aad46af]{flex-shrink:0}.feishu-mode__select[data-v-2aad46af]{width:240px}.feishu-mode__effective[data-v-2aad46af]{margin:4px 0 0;font-size:12px;color:var(--fg-dim, #999)}.feishu-mode__warn[data-v-2aad46af]{color:var(--warn, #d89614);margin-left:8px}.tab-pane[data-v-6015f38d]{display:flex;flex-direction:column;gap:12px}.dim[data-v-6015f38d]{color:var(--fg-dim);font-size:13px}.hint[data-v-6015f38d]{margin:0;color:var(--fg-dim);font-size:12px;line-height:1.5}.error[data-v-6015f38d]{color:var(--bad);font-size:12px;margin:0}.header-row[data-v-6015f38d]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.header-actions[data-v-6015f38d]{display:flex;align-items:center;gap:8px;flex-shrink:0}.icon-btn[data-v-6015f38d]{width:28px;height:28px;padding:0;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--fg-dim);cursor:pointer;font-size:14px}.icon-btn[data-v-6015f38d]:hover:not(:disabled){color:var(--fg);background:#ffffff0a}.icon-btn[data-v-6015f38d]:disabled{opacity:.5;cursor:not-allowed}button.secondary[data-v-6015f38d]{background:transparent;color:var(--fg-dim);border:1px solid var(--border);border-radius:6px;padding:6px 12px;font-size:13px;cursor:pointer}button.secondary[data-v-6015f38d]:hover:not(:disabled){color:var(--fg);background:#ffffff0a}button.secondary[data-v-6015f38d]:disabled{opacity:.5;cursor:not-allowed}.device-list[data-v-6015f38d]{display:flex;flex-direction:column;border-top:1px solid var(--border)}.device-row[data-v-6015f38d]{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.device-info[data-v-6015f38d]{flex:1;min-width:0}.ua[data-v-6015f38d]{color:var(--fg);font-size:13px;overflow-wrap:anywhere}.meta[data-v-6015f38d]{color:var(--fg-dim);font-size:12px;margin-top:2px}.current-tag[data-v-6015f38d]{color:var(--fg-dim);font-size:12px;padding:2px 8px;border:1px solid var(--border);border-radius:999px;flex-shrink:0}.danger-btn[data-v-6015f38d]{background:transparent;color:var(--bad);border:1px solid var(--bad);border-radius:6px;padding:6px 12px;font-size:13px;cursor:pointer;flex-shrink:0}.danger-btn[data-v-6015f38d]:hover:not(:disabled){background:color-mix(in srgb,var(--bad) 8%,transparent 92%)}.danger-btn[data-v-6015f38d]:disabled{opacity:.5;cursor:not-allowed}.received-files[data-v-4b01c574]{display:flex;flex-direction:column;gap:12px;padding:8px 4px}.header[data-v-4b01c574]{display:flex;justify-content:space-between;align-items:center}.actions[data-v-4b01c574]{display:flex;gap:8px}.actions button[data-v-4b01c574]{padding:4px 10px}.actions button.danger[data-v-4b01c574]{color:#d33}.muted[data-v-4b01c574]{color:var(--fg-dim, #999);font-size:.875rem}.error[data-v-4b01c574]{color:#d33;padding:4px 0;font-size:.875rem}.sessions[data-v-4b01c574]{list-style:none;padding:0;margin:0}.session[data-v-4b01c574]{border-bottom:1px solid var(--border, #333);padding:8px 0}.session-row[data-v-4b01c574]{display:flex;align-items:center;gap:8px;cursor:pointer}.session-name[data-v-4b01c574]{font-weight:500}.session-clear[data-v-4b01c574]{margin-left:auto;padding:2px 8px;font-size:.85rem}.session-clear.danger[data-v-4b01c574]{color:#d33}.files[data-v-4b01c574]{list-style:none;padding-left:16px;margin:4px 0 0}.files li[data-v-4b01c574]{display:flex;align-items:center;gap:8px;padding:2px 0}.file-name[data-v-4b01c574]{font-family:monospace;font-size:.875rem}.file-delete[data-v-4b01c574]{margin-left:auto;font-size:.8rem;padding:1px 6px}.file-delete.danger[data-v-4b01c574]{color:#d33}.empty[data-v-4b01c574]{color:var(--fg-dim, #999);padding:8px 0}@media (max-width: 640px){.header[data-v-4b01c574]{flex-wrap:wrap;align-items:flex-start;gap:8px}.actions[data-v-4b01c574],.session-row[data-v-4b01c574],.files li[data-v-4b01c574]{flex-wrap:wrap}.file-name[data-v-4b01c574]{min-width:0;overflow-wrap:anywhere}}.mobile-profiles[data-v-1c4c4dd0]{display:flex;flex-direction:column;gap:12px}.hint[data-v-1c4c4dd0]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.5}.status[data-v-1c4c4dd0]{font-size:13px;color:var(--fg-dim);margin:0}.status.error[data-v-1c4c4dd0]{color:var(--bad)}.profile-list[data-v-1c4c4dd0]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.profile-item[data-v-1c4c4dd0]{border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--bg)}.profile-header[data-v-1c4c4dd0]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.profile-name[data-v-1c4c4dd0]{font-weight:600;font-size:13px;color:var(--fg);flex:1}.badge[data-v-1c4c4dd0]{font-size:11px;padding:1px 6px;border-radius:4px;background:#58a6ff29;color:var(--accent)}.host-picker[data-v-1c4c4dd0]{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--fg-dim)}.host-picker select[data-v-1c4c4dd0]{font-size:12px;padding:2px 6px}.open-btn[data-v-1c4c4dd0]{font-size:12px;padding:3px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--fg);cursor:pointer}.open-btn[data-v-1c4c4dd0]:disabled{opacity:.5;cursor:default}.profile-fields[data-v-1c4c4dd0]{margin:0;display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:12px}.profile-fields dt[data-v-1c4c4dd0]{color:var(--fg-dim)}.profile-fields dd[data-v-1c4c4dd0]{margin:0;color:var(--fg);word-break:break-all}.env-list[data-v-1c4c4dd0]{list-style:none;margin:0;padding:0}.mobile-hosts[data-v-721a37c4]{display:flex;flex-direction:column;gap:12px}.hint[data-v-721a37c4]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.5}.status[data-v-721a37c4]{font-size:13px;color:var(--fg-dim);margin:0}.status.error[data-v-721a37c4]{color:var(--bad)}.host-list[data-v-721a37c4]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.host-item[data-v-721a37c4]{border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--bg)}.host-header[data-v-721a37c4]{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}.host-alias[data-v-721a37c4]{font-weight:600;font-size:13px;color:var(--fg)}.host-target[data-v-721a37c4]{font-size:12px;color:var(--fg-dim)}.badge[data-v-721a37c4]{font-size:11px;padding:1px 6px;border-radius:4px;background:#58a6ff29;color:var(--accent)}.badge-warn[data-v-721a37c4]{background:#f8514929;color:var(--bad)}.host-fields[data-v-721a37c4]{margin:0;display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:12px}.host-fields dt[data-v-721a37c4]{color:var(--fg-dim)}.host-fields dd[data-v-721a37c4]{margin:0;color:var(--fg);word-break:break-all}.sync-indicator[data-v-3da58fd3]{display:flex;flex-direction:column;gap:4px;font-size:.78rem}.sync-row[data-v-3da58fd3]{display:flex;align-items:center;gap:8px}.sync-dot[data-v-3da58fd3]{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--fg-dim)}.sync-dot.state-idle[data-v-3da58fd3]{background:var(--good, #3fb950)}.sync-dot.state-syncing[data-v-3da58fd3]{background:var(--accent)}.sync-dot.state-offline[data-v-3da58fd3]{background:var(--fg-dim)}.sync-dot.state-error[data-v-3da58fd3]{background:var(--bad)}.sync-state[data-v-3da58fd3]{color:var(--fg)}.sync-state[data-state=error][data-v-3da58fd3]{color:var(--bad)}.sync-state[data-state=offline][data-v-3da58fd3],.sync-last[data-v-3da58fd3],.sync-pending[data-v-3da58fd3]{color:var(--fg-dim)}.sync-pending[data-v-3da58fd3]{font-weight:600}.sync-now-btn[data-v-3da58fd3]{margin-left:auto;font-size:.76rem;padding:2px 8px}.sync-error[data-v-3da58fd3]{color:var(--bad);margin:0}.sync-notice[data-v-3da58fd3]{display:flex;flex-direction:column;gap:4px;border:1px solid var(--border);border-radius:6px;padding:6px 8px;background:var(--bg)}.sync-notice-adopted[data-v-3da58fd3],.sync-notice-conflict[data-v-3da58fd3]{margin:0}.sync-notice-dismiss[data-v-3da58fd3]{align-self:flex-end;font-size:.72rem;padding:2px 8px}.backdrop[data-v-3b3531ba]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:110}.dialog[data-v-3b3531ba]{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px 24px;width:460px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:12px}.dialog h2[data-v-3b3531ba]{margin:0;font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-dim)}.dialog p[data-v-3b3531ba]{margin:0;font-size:13px;color:var(--fg);line-height:1.5}.dialog ul[data-v-3b3531ba]{margin:0;padding-left:18px;font-size:13px;color:var(--fg);line-height:1.6}.dialog .dim[data-v-3b3531ba]{color:var(--fg-dim);font-size:12px}.dialog .warn[data-v-3b3531ba]{color:#d29922;font-size:12px}.row[data-v-3b3531ba]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.primary[data-v-3b3531ba]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}.primary[data-v-3b3531ba]:hover{background:#79b8ff;border-color:#79b8ff;color:#0d1117}.primary.danger[data-v-3b3531ba]{background:var(--bad);color:#0d1117;border-color:var(--bad)}.primary.danger[data-v-3b3531ba]:hover{background:#ff6f6a;border-color:#ff6f6a;color:#0d1117}.backdrop[data-v-b060bffd]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:110}.dialog[data-v-b060bffd]{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px 24px;width:min(860px,calc(100vw - 32px));max-height:calc(100vh - 32px);box-sizing:border-box;display:flex;flex-direction:column;gap:12px}.header[data-v-b060bffd]{display:flex;flex-direction:column;gap:4px}.header h2[data-v-b060bffd]{margin:0;font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-dim)}.path[data-v-b060bffd]{color:var(--fg-dim);font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere}.content-wrap[data-v-b060bffd]{min-height:0;display:flex;flex-direction:column;gap:8px}.content[data-v-b060bffd]{margin:0;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:12px;overflow:auto;min-height:200px;max-height:calc(100vh - 220px);color:var(--fg);font-size:11px;line-height:1.45;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.row[data-v-b060bffd]{display:flex;justify-content:flex-end;gap:8px}.hint[data-v-b060bffd],.empty[data-v-b060bffd]{color:var(--fg-dim);font-size:12px}.error[data-v-b060bffd]{color:var(--bad);font-size:12px}.primary[data-v-b060bffd]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}.lvl-filter[data-v-b060bffd]{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--fg-dim);margin-right:auto}.lvl-filter-select[data-v-b060bffd]{width:104px}.tag-filter-select[data-v-b060bffd]{width:168px}.backdrop[data-v-5e0ae162]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.settings-dialog[data-v-5e0ae162]{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:720px;height:540px;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.settings-header[data-v-5e0ae162]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.settings-header h2[data-v-5e0ae162]{margin:0;font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-dim)}.header-sync-indicator[data-v-5e0ae162]{flex:1;min-width:0;margin:0 16px}.close-btn[data-v-5e0ae162]{background:transparent;border:none;color:var(--fg-dim);font-size:18px;line-height:1;cursor:pointer;padding:4px 8px;border-radius:4px}.close-btn[data-v-5e0ae162]:hover:not(:disabled){background:#ffffff0f;color:var(--fg)}.settings-body[data-v-5e0ae162]{flex:1 1 auto;display:flex;min-height:0}.settings-nav[data-v-5e0ae162]{width:160px;flex:0 0 160px;border-right:1px solid var(--border);display:flex;flex-direction:column;padding:8px 6px;gap:2px}.settings-nav-item[data-v-5e0ae162]{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:transparent;border:none;color:var(--fg-dim);padding:8px 12px;border-radius:6px;cursor:pointer;font-size:13px}.settings-nav-item .nav-icon[data-v-5e0ae162]{display:inline-flex;width:16px;height:16px;flex:0 0 16px;color:var(--fg-dim)}.settings-nav-item .nav-icon[data-v-5e0ae162] svg{width:16px;height:16px}.settings-nav-item.active .nav-icon[data-v-5e0ae162]{color:var(--accent)}.settings-nav-item .nav-label[data-v-5e0ae162]{flex:1 1 auto;min-width:0}.settings-nav-item[data-v-5e0ae162]:hover{background:#ffffff0a;color:var(--fg)}.settings-nav-item.active[data-v-5e0ae162]{background:#58a6ff1f;color:var(--accent);font-weight:600}.settings-pane[data-v-5e0ae162]{flex:1 1 auto;padding:20px 24px;overflow-y:auto}.settings-pane-header[data-v-5e0ae162]{display:flex;align-items:baseline;gap:10px;margin:0 0 16px}.settings-pane-title[data-v-5e0ae162]{margin:0;font-size:20px;font-weight:600;letter-spacing:-.01em;color:var(--fg)}.settings-pane-subtitle[data-v-5e0ae162]{font-size:12px;color:var(--fg-dim)}.settings-footer[data-v-5e0ae162]{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.settings-footer button[data-v-5e0ae162]{height:32px;padding:6px 14px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:13px}.settings-footer button[data-v-5e0ae162]:hover:not(:disabled){background:#ffffff0a}.settings-footer button[data-v-5e0ae162]:disabled{opacity:.5;cursor:default}.settings-footer .primary[data-v-5e0ae162]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}.settings-footer .primary[data-v-5e0ae162]:hover:not(:disabled){background:#79b8ff;border-color:#79b8ff}.settings-footer .danger[data-v-5e0ae162]{border-color:var(--bad);color:var(--bad)}.settings-footer .danger[data-v-5e0ae162]:hover:not(:disabled){background:#f851491a}.version-footer[data-v-5e0ae162]{flex:0 0 auto;padding:4px 16px 8px;font-size:11px;color:var(--fg-dim);text-align:right}.diag-merged[data-v-5e0ae162]{display:flex;flex-direction:column;gap:20px}.merged-section[data-v-5e0ae162]{display:flex;flex-direction:column;gap:10px}.merged-section+.merged-section[data-v-5e0ae162]{border-top:1px solid var(--border);padding-top:18px}.merged-section-title[data-v-5e0ae162]{margin:0;font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-dim)}.discard-backdrop[data-v-5e0ae162]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:105}.discard-dialog[data-v-5e0ae162]{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px 24px;width:380px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:12px}.discard-dialog h3[data-v-5e0ae162]{margin:0;font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-dim)}.discard-dialog p[data-v-5e0ae162]{margin:0;font-size:13px;color:var(--fg);line-height:1.5}.discard-row[data-v-5e0ae162]{display:flex;justify-content:flex-end;gap:8px}.discard-row button[data-v-5e0ae162]{height:32px;padding:6px 14px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:13px}.discard-row button[data-v-5e0ae162]:hover{background:#ffffff0a}.discard-row .danger[data-v-5e0ae162]{border-color:var(--bad);color:var(--bad)}.discard-row .danger[data-v-5e0ae162]:hover{background:#f851491a}@media (max-width: 640px){.backdrop[data-v-5e0ae162]{align-items:stretch;justify-content:stretch;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}.settings-dialog[data-v-5e0ae162]{width:100vw;height:auto;max-width:100vw;max-height:100dvh;border-left:none;border-right:none;border-radius:0}.settings-header[data-v-5e0ae162]{padding:10px 12px}.settings-body[data-v-5e0ae162]{flex-direction:column}.settings-nav[data-v-5e0ae162]{width:100%;flex:0 0 auto;flex-direction:row;overflow-x:auto;overflow-y:hidden;border-right:none;border-bottom:1px solid var(--border);padding:6px 8px;scrollbar-width:none}.settings-nav[data-v-5e0ae162]::-webkit-scrollbar{display:none}.settings-nav-item[data-v-5e0ae162]{flex:0 0 auto;width:auto;min-height:34px;padding:6px 10px;white-space:nowrap}.settings-pane[data-v-5e0ae162]{min-height:0;padding:14px 16px 18px}.settings-pane-header[data-v-5e0ae162]{margin-bottom:12px}.settings-pane-title[data-v-5e0ae162]{font-size:18px}.settings-footer[data-v-5e0ae162]{padding:10px 12px}.version-footer[data-v-5e0ae162]{padding:4px 12px 8px}}.backdrop[data-v-c791c224]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:110}.dialog[data-v-c791c224]{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px 24px;width:460px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:10px}.dialog h2[data-v-c791c224]{margin:0;font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-dim)}.dialog label[data-v-c791c224]{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--fg-dim)}.dialog label.inline[data-v-c791c224]{flex-direction:row;align-items:center;gap:6px;color:var(--fg)}.dialog input[data-v-c791c224],.dialog textarea[data-v-c791c224]{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:6px 8px;color:var(--fg);font-size:13px}.row[data-v-c791c224]{display:flex;gap:12px}.row.end[data-v-c791c224]{justify-content:flex-end;margin-top:4px}.tofu[data-v-c791c224]{display:flex;flex-direction:column;gap:6px;border:1px solid #d29922;border-radius:6px;padding:10px}.tofu code[data-v-c791c224]{font-size:12px;word-break:break-all;color:var(--fg)}.warn[data-v-c791c224]{color:#d29922;font-size:12px;margin:0}.error[data-v-c791c224]{color:var(--bad);font-size:12px;margin:0}.primary[data-v-c791c224]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}.ssh-overlay[data-v-d1c3506a]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;background:#010409b8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center}.ssh-shell[data-v-d1c3506a]{position:relative;width:min(1040px,calc(100vw - 48px));height:min(720px,calc(100vh - 48px));background:radial-gradient(120% 80% at 100% 0%,rgba(88,166,255,.06),transparent 55%),var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 24px 64px #0000008c;overflow:hidden;display:flex;flex-direction:column}.ssh-header[data-v-d1c3506a]{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--panel)}.tabs[data-v-d1c3506a]{display:flex;gap:4px}.tab[data-v-d1c3506a]{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid transparent;color:var(--fg-dim);font-size:12px;font-weight:600;letter-spacing:.04em;padding:6px 12px;border-radius:7px;cursor:pointer;transition:all .12s}.tab[data-v-d1c3506a]:hover{color:var(--fg)}.tab.on[data-v-d1c3506a]{color:var(--fg);background:var(--bg);border-color:var(--border)}.tab-count[data-v-d1c3506a]{font-size:10px;color:var(--fg-dim);background:#8b949e29;padding:1px 6px;border-radius:999px}.search[data-v-d1c3506a]{flex:1;max-width:360px;display:flex;align-items:center;gap:7px;background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:0 10px}.search-spacer[data-v-d1c3506a]{flex:1}.search-icon[data-v-d1c3506a]{color:var(--fg-dim);flex:none}.search input[data-v-d1c3506a]{flex:1;background:transparent;border:none;outline:none;color:var(--fg);font-size:13px;padding:7px 0}.new-btn[data-v-d1c3506a]{display:inline-flex;align-items:center;gap:5px;background:var(--accent);color:#04101f;border:none;font-size:12px;font-weight:600;padding:7px 12px;border-radius:7px;cursor:pointer;transition:filter .12s}.new-btn[data-v-d1c3506a]:hover{filter:brightness(1.1)}.new-btn.ghost[data-v-d1c3506a]{background:transparent;color:var(--accent);border:1px solid var(--accent)}.close-x[data-v-d1c3506a]{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--fg-dim);cursor:pointer;padding:4px;border-radius:6px;transition:color .12s,background .12s}.close-x[data-v-d1c3506a]:hover{color:var(--fg);background:#8b949e1f}.ssh-error[data-v-d1c3506a]{margin:0;padding:8px 16px;font-size:12px;color:var(--bad);background:#f8514914;border-bottom:1px solid rgba(248,81,73,.2)}.ssh-error.inline[data-v-d1c3506a]{border-bottom:none;border-radius:6px}.ssh-tofu[data-v-d1c3506a]{margin:0;padding:10px 16px;display:flex;flex-direction:column;gap:6px;background:#d2992214;border-bottom:1px solid rgba(210,153,34,.3)}.ssh-tofu p[data-v-d1c3506a]{margin:0;font-size:12px;line-height:1.5}.ssh-tofu .tofu-title[data-v-d1c3506a]{font-weight:600;color:var(--warn, #d29922)}.ssh-tofu .tofu-msg[data-v-d1c3506a]{color:var(--fg)}.ssh-tofu .tofu-note[data-v-d1c3506a]{color:var(--fg-dim);font-size:11px}.ssh-tofu .tofu-fp[data-v-d1c3506a]{font-size:12px;word-break:break-all;color:var(--fg)}.ssh-tofu .tofu-actions[data-v-d1c3506a]{display:flex;gap:8px;justify-content:flex-end}.ssh-success[data-v-d1c3506a]{margin:0;padding:8px 16px;font-size:12px;color:var(--good, #3fb950);background:#3fb95014;border-bottom:1px solid rgba(63,185,80,.2)}.ssh-body[data-v-d1c3506a]{flex:1;overflow-y:auto;padding:18px 16px 24px}.tag-bar[data-v-d1c3506a]{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 2px 14px}.tag-pill[data-v-d1c3506a]{background:var(--panel);border:1px solid var(--border);color:var(--fg-dim);font-size:11px;padding:4px 10px;border-radius:999px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.tag-pill[data-v-d1c3506a]:hover{color:var(--fg);border-color:var(--neutral)}.tag-pill.on[data-v-d1c3506a]{color:#04101f;background:var(--accent);border-color:var(--accent);font-weight:600}.tag-clear[data-v-d1c3506a]{display:inline-flex;align-items:center;gap:3px;background:transparent;border:none;color:var(--fg-dim);font-size:11px;padding:4px 6px;cursor:pointer}.tag-clear[data-v-d1c3506a]:hover{color:var(--fg)}.card-proxy[data-v-d1c3506a]{display:flex;margin-top:5px}.card-proxy .proxy-badge[data-v-d1c3506a]{max-width:100%;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-tags[data-v-d1c3506a]{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.card-tag[data-v-d1c3506a]{font-size:10px;color:var(--fg-dim);background:#8b949e29;padding:1px 7px;border-radius:999px;white-space:nowrap}.card-grid[data-v-d1c3506a]{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(288px,1fr))}.card[data-v-d1c3506a]{position:relative;display:flex;align-items:center;gap:11px;padding:12px;background:var(--panel);border:1px solid var(--border);border-radius:10px;transition:border-color .14s,transform .14s,box-shadow .14s}.card[data-v-d1c3506a]:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 6px 18px #00000059}.card.busy[data-v-d1c3506a]{opacity:.6}.card-glyph[data-v-d1c3506a]{flex:none;width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--accent);background:#58a6ff1a;border:1px solid rgba(88,166,255,.18)}.card-main[data-v-d1c3506a]{flex:1;min-width:0}.card-label[data-v-d1c3506a]{font-size:13px;font-weight:600;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-sub[data-v-d1c3506a]{font-size:11px;color:var(--fg-dim);font-family:var(--font-mono-strict);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.card-actions[data-v-d1c3506a]{flex:none;display:flex;gap:4px;align-items:center}.act[data-v-d1c3506a]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;background:var(--bg);border:1px solid var(--border);color:var(--fg);cursor:pointer;transition:color .12s,background .12s,border-color .12s}.act svg[data-v-d1c3506a]{display:block;flex:none;width:15px;height:15px}.act[data-v-d1c3506a]:hover{color:#fff;border-color:var(--neutral);background:#8b949e2e}.act.connect[data-v-d1c3506a]{background:var(--accent);border-color:var(--accent);color:#04101f}.act.connect[data-v-d1c3506a]:hover:not(:disabled){filter:brightness(1.12)}.act.danger[data-v-d1c3506a]{color:var(--fg-dim)}.act.danger[data-v-d1c3506a]:hover{color:#fff;border-color:var(--bad);background:#f8514933}.act[data-v-d1c3506a]:disabled{opacity:.5;cursor:default}.empty[data-v-d1c3506a]{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--fg-dim)}.empty-icon[data-v-d1c3506a]{color:var(--neutral);opacity:.5;margin-bottom:6px}.empty-title[data-v-d1c3506a]{margin:0;font-size:14px;color:var(--fg);font-weight:600}.empty-sub[data-v-d1c3506a]{margin:0 0 12px;font-size:12px}.drawer[data-v-d1c3506a]{position:absolute;top:0;right:0;bottom:0;width:360px;max-width:84%;background:var(--panel);border-left:1px solid var(--border);box-shadow:-20px 0 48px #00000073;display:flex;flex-direction:column}.drawer.wide[data-v-d1c3506a]{width:480px}.drawer-head[data-v-d1c3506a]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-dim)}.drawer-body[data-v-d1c3506a]{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.field[data-v-d1c3506a]{display:flex;flex-direction:column;gap:5px}.field-row[data-v-d1c3506a]{display:flex;gap:10px}.field.grow[data-v-d1c3506a]{flex:1}.field.port[data-v-d1c3506a]{width:78px;flex:none}.fl[data-v-d1c3506a]{font-size:11px;color:var(--fg-dim)}.fl em[data-v-d1c3506a]{color:var(--neutral);font-style:normal}.field input[data-v-d1c3506a],.field textarea[data-v-d1c3506a]{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:7px 9px;color:var(--fg);font-size:13px;outline:none;transition:border-color .12s}.field input[data-v-d1c3506a]:focus,.field textarea[data-v-d1c3506a]:focus{border-color:var(--accent)}.field textarea[data-v-d1c3506a]{resize:vertical;font-family:var(--font-mono-strict);font-size:12px}.hint[data-v-d1c3506a]{font-size:12px;color:var(--fg-dim);margin:0}.tag-editor[data-v-d1c3506a]{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:4px;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:5px 6px;transition:border-color .12s}.tag-editor[data-v-d1c3506a]:focus-within{border-color:var(--accent)}.tag-editor .chip[data-v-d1c3506a]{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--fg);background:#58a6ff24;border:1px solid rgba(88,166,255,.28);padding:1px 4px 1px 8px;border-radius:999px}.chip-x[data-v-d1c3506a]{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--fg-dim);cursor:pointer;padding:1px;border-radius:999px;line-height:1}.chip-x[data-v-d1c3506a]:hover{color:#fff;background:#f8514959}.tag-input[data-v-d1c3506a]{flex:1;min-width:90px;background:transparent;border:none;outline:none;color:var(--fg);font-size:13px;padding:2px 3px}.combo[data-v-d1c3506a]{position:relative;display:flex}.combo input[data-v-d1c3506a]{flex:1;padding-right:26px;width:100%}.combo-caret[data-v-d1c3506a]{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--fg-dim);cursor:pointer;font-size:11px;padding:2px 4px;line-height:1}.combo-caret[data-v-d1c3506a]:hover{color:var(--fg)}.combo-menu[data-v-d1c3506a]{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:10;margin:0;padding:4px 0;list-style:none;max-height:180px;overflow-y:auto;background:var(--bg);border:1px solid var(--border);border-radius:6px;box-shadow:0 6px 16px #00000059}.combo-opt[data-v-d1c3506a]{padding:7px 10px;font-size:13px;color:var(--fg);cursor:pointer}.combo-opt[data-v-d1c3506a]:hover{background:#ffffff0f}.identity-hint[data-v-d1c3506a]{margin:-4px 0 0;display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--fg-dim);line-height:1.4}.identity-hint code[data-v-d1c3506a]{font-family:var(--font-mono-strict);font-size:11px;color:var(--fg);background:var(--bg);border:1px solid var(--border);border-radius:5px;padding:4px 7px;word-break:break-all}.identity-hint.proxy[data-v-d1c3506a]{color:var(--warn, #d29922)}.empty-keys-hint[data-v-d1c3506a]{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.enc-hint[data-v-d1c3506a]{margin:-4px 0 0;font-size:11px;color:var(--warn, #d29922)}.import-block[data-v-d1c3506a]{margin-top:4px;display:flex;flex-direction:column;gap:8px}.file-input[data-v-d1c3506a]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.dropzone[data-v-d1c3506a]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:18px 12px;text-align:center;border:1px dashed var(--border);border-radius:8px;color:var(--fg-dim);font-size:11px;line-height:1.4;transition:border-color .12s,background .12s,color .12s}.dropzone-icon[data-v-d1c3506a]{color:var(--neutral)}.dropzone.over[data-v-d1c3506a]{border-color:var(--accent);color:var(--fg);background:#58a6ff14}.dropzone.over .dropzone-icon[data-v-d1c3506a]{color:var(--accent)}.btn.import[data-v-d1c3506a]{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%}.btn.import svg[data-v-d1c3506a]{display:block}.btn.import[data-v-d1c3506a]:hover{background:#8b949e1a}.btn.sm[data-v-d1c3506a]{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;font-size:12px}.btn.sm svg[data-v-d1c3506a]{display:block}.seg[data-v-d1c3506a]{display:flex;background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:3px;gap:3px}.seg button[data-v-d1c3506a]{flex:1;background:transparent;border:none;color:var(--fg-dim);font-size:12px;padding:6px 0;border-radius:5px;cursor:pointer;transition:all .12s}.seg button.on[data-v-d1c3506a]{background:var(--accent);color:#04101f;font-weight:600}.drawer-foot[data-v-d1c3506a]{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.btn[data-v-d1c3506a]{font-size:12px;padding:8px 14px;border-radius:7px;cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--fg);transition:all .12s}.btn.ghost[data-v-d1c3506a]:hover{background:#8b949e1a}.btn.primary[data-v-d1c3506a]{background:var(--accent);color:#04101f;border-color:var(--accent);font-weight:600}.btn.primary[data-v-d1c3506a]:hover:not(:disabled){filter:brightness(1.1)}.btn.primary[data-v-d1c3506a]:disabled{opacity:.4;cursor:default}.drawer-enter-active[data-v-d1c3506a],.drawer-leave-active[data-v-d1c3506a]{transition:transform .18s ease,opacity .18s ease}.drawer-enter-from[data-v-d1c3506a],.drawer-leave-to[data-v-d1c3506a]{transform:translate(24px);opacity:0}.config-section-title[data-v-d1c3506a]{margin:4px 0 2px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-dim)}.config-entry-list[data-v-d1c3506a]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.config-entry[data-v-d1c3506a]{background:var(--bg);border:1px solid var(--border);border-radius:8px}.config-entry-label[data-v-d1c3506a]{display:flex;align-items:center;gap:10px;padding:9px 10px;cursor:pointer}.config-entry-main[data-v-d1c3506a]{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.config-entry-alias[data-v-d1c3506a]{font-size:13px;font-weight:600;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.config-entry-sub[data-v-d1c3506a]{font-size:11px;color:var(--fg-dim);font-family:var(--font-mono-strict);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.config-entry-badges[data-v-d1c3506a]{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.proxy-badge[data-v-d1c3506a]{flex:none;font-size:10px;color:var(--fg-dim);background:#8b949e1f;border:1px solid rgba(139,148,158,.3);padding:3px 8px;border-radius:999px;max-width:150px;line-height:1.3;text-align:right}.proxy-badge.blocked[data-v-d1c3506a]{color:var(--warn, #d29922);background:#d299221f;border-color:#d299224d}.overwrite-badge[data-v-d1c3506a]{flex:none;font-size:10px;color:var(--fg-dim);background:#8b949e29;border:1px solid var(--border);padding:3px 8px;border-radius:999px;line-height:1.3;white-space:nowrap}.config-skipped[data-v-d1c3506a]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.skip-row[data-v-d1c3506a]{display:flex;align-items:baseline;gap:8px;padding:6px 10px;background:#8b949e14;border-radius:6px}.skip-alias[data-v-d1c3506a]{font-size:12px;font-weight:600;color:var(--fg);flex:none}.skip-reason[data-v-d1c3506a]{font-size:11px;color:var(--fg-dim)}.config-note[data-v-d1c3506a]{margin:6px 0 0;font-size:11px;color:var(--fg-dim);line-height:1.5}.config-foot[data-v-d1c3506a]{flex-direction:column;align-items:stretch;gap:8px}.foot-actions[data-v-d1c3506a]{display:flex;justify-content:flex-end;gap:8px}.fwd-section[data-v-d1c3506a]{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--border)}.fwd-section-head[data-v-d1c3506a]{display:flex;align-items:center;justify-content:space-between;gap:8px}.fwd-section-head .fl[data-v-d1c3506a]{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.fwd-rule[data-v-d1c3506a]{display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--bg);border:1px solid var(--border);border-radius:8px}.fwd-rule-head[data-v-d1c3506a]{display:flex;align-items:center;gap:8px}.fwd-rule-head .seg[data-v-d1c3506a]{flex:1}.seg.sm button[data-v-d1c3506a]{font-size:11px;padding:4px 0}.fwd-warn[data-v-d1c3506a]{margin:0;padding:8px 9px;font-size:11px;line-height:1.5;color:var(--warn, #d29922);background:#d299221a;border:1px solid rgba(210,153,34,.32);border-radius:6px}.fwd-host[data-v-d1c3506a]{margin-bottom:16px}.fwd-host-head[data-v-d1c3506a]{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.fwd-host-name[data-v-d1c3506a]{font-size:13px;font-weight:600;color:var(--fg)}.fwd-host-sub[data-v-d1c3506a]{font-size:11px;color:var(--fg-dim);font-family:var(--font-mono-strict)}.fwd-proxy-reason[data-v-d1c3506a]{margin:0 0 8px;font-size:11px;line-height:1.5;color:var(--warn, #d29922)}.fwd-card[data-v-d1c3506a]{align-items:flex-start}.fwd-card-side[data-v-d1c3506a]{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:6px}.fwd-card .card-label[data-v-d1c3506a]{display:flex;align-items:baseline;gap:6px}.fwd-route[data-v-d1c3506a]{white-space:normal;overflow:visible;word-break:break-all}.fwd-kind[data-v-d1c3506a]{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.fwd-note[data-v-d1c3506a]{font-size:12px;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fwd-row-conns[data-v-d1c3506a]{margin-top:2px;font-size:10px;color:var(--fg-dim)}.fwd-row-error[data-v-d1c3506a]{margin:5px 0 0;font-size:11px;line-height:1.5;color:var(--bad)}.fwd-state[data-v-d1c3506a]{flex:none;font-size:10px;padding:3px 9px;border-radius:999px;border:1px solid var(--border);color:var(--fg-dim);background:#8b949e24}.fwd-state.running[data-v-d1c3506a]{color:var(--good, #3fb950);border-color:#3fb95059;background:#3fb9501f}.fwd-state.stopped[data-v-d1c3506a]{color:var(--bad);border-color:#f8514959;background:#f851491f}.pem-label[data-v-d1c3506a]{display:flex;align-items:center;justify-content:space-between;gap:8px}.pem-tools[data-v-d1c3506a]{display:flex;gap:4px}.backdrop[data-v-380786e4]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:110}.dialog[data-v-380786e4]{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px 24px;width:460px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:12px}.dialog h2[data-v-380786e4]{margin:0;font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-dim)}.dialog p[data-v-380786e4]{margin:0;font-size:13px;color:var(--fg);line-height:1.5}.dialog ul[data-v-380786e4]{margin:0;padding-left:18px;font-size:13px;color:var(--fg);line-height:1.6}.dialog .dim[data-v-380786e4]{color:var(--fg-dim);font-size:12px}.dialog .warn[data-v-380786e4]{color:#d29922;font-size:12px}.row[data-v-380786e4]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.primary[data-v-380786e4]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}.primary[data-v-380786e4]:hover{background:#79b8ff;border-color:#79b8ff;color:#0d1117}.primary.danger[data-v-380786e4]{background:var(--bad);color:#0d1117;border-color:var(--bad)}.primary.danger[data-v-380786e4]:hover{background:#ff6f6a;border-color:#ff6f6a;color:#0d1117}.startup-fatal[data-v-ad8304f2]{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;padding:24px;background:#0d1117}.startup-fatal-panel[data-v-ad8304f2]{width:min(680px,100%);display:flex;flex-direction:column;gap:14px;color:var(--fg)}.startup-fatal-panel h1[data-v-ad8304f2]{margin:0;font-size:20px;font-weight:650}.startup-fatal-panel p[data-v-ad8304f2]{margin:0;color:var(--fg-dim);line-height:1.5}.startup-fatal-panel pre[data-v-ad8304f2]{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;border:1px solid #30363d;border-radius:6px;background:#161b22;color:#ffb3b3;font-size:12px;line-height:1.45}.startup-fatal-log[data-v-ad8304f2]{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px;align-items:baseline;color:var(--fg-dim);font-size:12px}.startup-fatal-log code[data-v-ad8304f2]{min-width:0;overflow-wrap:anywhere;color:var(--fg)}.startup-fatal-actions[data-v-ad8304f2]{display:flex;gap:8px;flex-wrap:wrap}.startup-fatal-actions button[data-v-ad8304f2]{height:30px;padding:0 12px;border:1px solid #30363d;border-radius:6px;background:#21262d;color:var(--fg);cursor:pointer}.startup-fatal-actions button[data-v-ad8304f2]:hover{background:#30363d}.startup-fatal-actions button.danger[data-v-ad8304f2]{border-color:#8b2e2e;color:#ffb3b3}.startup-fatal-copy-status[data-v-ad8304f2]{margin:0;color:var(--fg-dim);font-size:12px}.backdrop[data-v-e95fa892]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:111}.dialog[data-v-e95fa892]{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px 24px;width:430px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:12px}.dialog h2[data-v-e95fa892]{margin:0;font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-dim)}.dialog p[data-v-e95fa892]{margin:0;font-size:13px;color:var(--fg);line-height:1.5}.dialog ul[data-v-e95fa892]{margin:0;padding-left:18px;font-size:13px;color:var(--fg);line-height:1.6}.row[data-v-e95fa892]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.primary[data-v-e95fa892]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}.primary.danger[data-v-e95fa892]{background:var(--bad);color:#0d1117;border-color:var(--bad)}.primary.danger[data-v-e95fa892]:hover{background:#ff6f6a;border-color:#ff6f6a;color:#0d1117}.recovery-dialog-backdrop[data-v-4735cb7a]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:200}.recovery-dialog[data-v-4735cb7a]{background:var(--bg, #0d1117);color:var(--fg, #d1d5db);border-radius:8px;min-width:480px;max-width:720px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.recovery-dialog header[data-v-4735cb7a]{padding:16px 20px 0}.recovery-dialog h2[data-v-4735cb7a]{font-size:1.1rem;margin:0}.subtitle[data-v-4735cb7a]{font-size:.85rem;opacity:.7;margin:4px 0 12px}.tab-list[data-v-4735cb7a]{list-style:none;padding:0 20px;margin:0;overflow:auto}.tab-row[data-v-4735cb7a]{display:flex;align-items:center;gap:8px;padding:6px 0;cursor:default}.caret[data-v-4735cb7a]{background:transparent;border:0;color:inherit;cursor:pointer;padding:0 4px}.tab-title[data-v-4735cb7a]{flex:1}.tab-meta[data-v-4735cb7a]{opacity:.6;font-size:.8rem}.pane-list[data-v-4735cb7a]{list-style:none;padding-left:36px;margin:4px 0 8px;font-size:.85rem}.pane-list li[data-v-4735cb7a]{display:flex;gap:8px;padding:2px 0}.pane-shell[data-v-4735cb7a]{font-family:monospace}.pane-cwd[data-v-4735cb7a]{opacity:.7;flex:1}.pane-badge[data-v-4735cb7a]{opacity:.85;font-size:.75rem}footer[data-v-4735cb7a]{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px 16px}.btn-primary[data-v-4735cb7a]{background:#2563eb;color:#fff;border:0;padding:6px 12px;border-radius:4px;cursor:pointer}.btn-primary[data-v-4735cb7a]:disabled{opacity:.4;cursor:not-allowed}.btn-secondary[data-v-4735cb7a]{background:transparent;color:inherit;border:1px solid #444;padding:6px 12px;border-radius:4px;cursor:pointer}.startup-update-backdrop[data-v-e5615fd1]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:210}.startup-update-dialog[data-v-e5615fd1]{background:var(--bg, #0d1117);color:var(--fg, #d1d5db);border-radius:8px;min-width:420px;max-width:640px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;padding:16px 20px;gap:12px}.startup-update-dialog header[data-v-e5615fd1]{display:flex;flex-direction:column;gap:4px}.startup-update-dialog h2[data-v-e5615fd1]{font-size:1.1rem;margin:0}.subtitle[data-v-e5615fd1]{font-size:.85rem;opacity:.7;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.status[data-v-e5615fd1]{font-size:.85rem;margin:0}.notes[data-v-e5615fd1]{font-size:12px}.notes summary[data-v-e5615fd1]{opacity:.7;cursor:pointer}.notes pre[data-v-e5615fd1]{background:var(--bg);border:1px solid var(--border, #444);padding:8px;border-radius:6px;white-space:pre-wrap;word-break:break-word;max-height:160px;overflow-y:auto;font-size:11px;margin:6px 0 0}footer[data-v-e5615fd1]{display:flex;justify-content:flex-end;gap:8px}.btn-primary[data-v-e5615fd1]{background:var(--accent, #2563eb);color:#0d1117;border:0;padding:6px 12px;border-radius:4px;cursor:pointer;font-weight:600}.btn-primary.danger[data-v-e5615fd1]{background:var(--bad, #ef4444)}.btn-primary[data-v-e5615fd1]:disabled{opacity:.5;cursor:default}.btn-secondary[data-v-e5615fd1]{background:transparent;color:inherit;border:1px solid var(--border, #444);padding:6px 12px;border-radius:4px;cursor:pointer}.hints-backdrop[data-v-f52d16ed]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;pointer-events:none}.hints-panel[data-v-f52d16ed]{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px 24px;width:480px;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);overflow-y:auto;color:var(--fg);pointer-events:auto}.hints-header[data-v-f52d16ed]{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-dim);margin-bottom:12px}.hints-group[data-v-f52d16ed]{margin-bottom:14px}.hints-group[data-v-f52d16ed]:last-child{margin-bottom:0}.hints-group h3[data-v-f52d16ed]{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-dim)}.hint-row[data-v-f52d16ed]{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:3px 0;font-size:12px}.hint-row.disabled[data-v-f52d16ed]{color:var(--fg-dim)}.chord[data-v-f52d16ed]{font-family:SF Mono,Menlo,monospace;text-align:right}.label[data-v-f52d16ed]{color:inherit}.fade-enter-active[data-v-f52d16ed],.fade-leave-active[data-v-f52d16ed]{transition:opacity .1s ease}.fade-enter-from[data-v-f52d16ed],.fade-leave-to[data-v-f52d16ed]{opacity:0}.paste-preview-host[data-v-6eda1305]{position:fixed;top:88px;right:.75rem;z-index:50;display:flex;flex-direction:column;gap:8px;pointer-events:none}.paste-toast[data-v-6eda1305]{pointer-events:auto;width:200px;padding:8px;background:var(--bg, #1f2024);color:var(--fg, #e6e6e6);border:1px solid var(--border, #3a3b40);border-radius:6px;box-shadow:0 4px 14px #00000059;display:flex;flex-direction:column;gap:4px;position:relative}.paste-toast-thumb[data-v-6eda1305]{width:100%;max-height:120px;object-fit:contain;cursor:zoom-in;border-radius:4px;background:#000}.paste-toast-name[data-v-6eda1305]{font-size:12px;opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paste-toast-close[data-v-6eda1305]{position:absolute;top:4px;right:6px;background:transparent;border:none;color:inherit;font-size:16px;line-height:1;cursor:pointer;opacity:.7}.paste-toast-close[data-v-6eda1305]:hover{opacity:1}.paste-lightbox[data-v-6eda1305]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;z-index:100;display:flex;align-items:center;justify-content:center;cursor:zoom-out;pointer-events:auto}.paste-lightbox img[data-v-6eda1305]{max-width:90vw;max-height:90vh;cursor:default}.paste-file-host[data-v-436c1298]{position:fixed;top:88px;right:.75rem;z-index:50;display:flex;flex-direction:column;gap:8px;pointer-events:none}.paste-file-toast[data-v-436c1298]{pointer-events:auto;padding:8px 12px;background:var(--bg, #1f2024);color:var(--fg, #e6e6e6);border:1px solid var(--border, #3a3b40);border-radius:6px;box-shadow:0 4px 14px #00000059;display:flex;align-items:center;gap:6px;font-size:12px;max-width:260px}.paste-file-icon[data-v-436c1298]{opacity:.7}.paste-file-name[data-v-436c1298]{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paste-file-size[data-v-436c1298]{opacity:.7}.paste-file-close[data-v-436c1298]{margin-left:auto;background:transparent;border:none;color:inherit;font-size:16px;line-height:1;cursor:pointer;opacity:.7}.paste-file-close[data-v-436c1298]:hover{opacity:1}.plugin-host[data-v-db2df210]{display:contents}.plugin-host.slot-right-panel[data-v-db2df210]{display:flex;flex-direction:column;height:100%}.plugin-host.slot-bottom-toolbar[data-v-db2df210]{display:flex;flex-direction:row;align-items:center;min-height:0}.translate-panel[data-v-be75a3d1]{position:fixed;width:480px;max-height:70vh;overflow:auto;background:var(--ed-tab-bg, #21262d);border:1px solid var(--ed-border, #2d333b);border-radius:6px;box-shadow:0 8px 24px #00000080;color:var(--ed-row-fg, #c9d1d9);z-index:9999;display:flex;flex-direction:column}.translate-panel__handle[data-v-be75a3d1]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;cursor:grab;background:var(--ed-row-hover, #30363d);border-bottom:1px solid var(--ed-border, #2d333b);-webkit-user-select:none;user-select:none}.translate-panel__title[data-v-be75a3d1]{font-weight:600;font-size:13px}.translate-panel__close[data-v-be75a3d1]{background:transparent;border:none;color:inherit;font-size:18px;cursor:pointer;padding:0 4px}.translate-panel__label[data-v-be75a3d1]{font-size:11px;opacity:.7;text-transform:uppercase;letter-spacing:.04em;padding:6px 12px 0}.translate-panel__detected[data-v-be75a3d1]{text-transform:none;opacity:.6}.translate-panel__pre[data-v-be75a3d1]{margin:4px 12px 8px;padding:6px;background:#00000040;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;max-height:200px;overflow:auto;white-space:pre-wrap}.translate-panel__target-row[data-v-be75a3d1]{display:flex;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--ed-border, #2d333b)}.translate-panel__target-select[data-v-be75a3d1]{flex:1}.translate-panel__result[data-v-be75a3d1]{padding:12px;border-top:1px solid var(--ed-border, #2d333b);min-height:60px}.translate-panel__loading[data-v-be75a3d1]{opacity:.7}.translate-panel__error[data-v-be75a3d1]{color:#f87171;font-size:12px;display:flex;flex-direction:column;gap:6px}.translate-panel__text[data-v-be75a3d1]{font-size:13px;max-height:240px;overflow:auto;white-space:pre-wrap}.translate-panel__placeholder[data-v-be75a3d1]{opacity:.5;font-size:12px}.translate-panel__history[data-v-be75a3d1]{padding:8px 12px;border-top:1px solid var(--ed-border, #2d333b);font-size:12px}.translate-panel__history summary[data-v-be75a3d1]{cursor:pointer;opacity:.8}.translate-panel__history ul[data-v-be75a3d1]{list-style:none;margin:6px 0 0;padding:0}.translate-panel__history-row[data-v-be75a3d1]{display:block;width:100%;text-align:left;background:transparent;border:none;color:inherit;cursor:pointer;padding:4px 0;font-size:11px}.translate-panel__history-row[data-v-be75a3d1]:hover{opacity:.85}.translate-panel__history-source[data-v-be75a3d1]{opacity:.7}.translate-panel__history-arrow[data-v-be75a3d1]{margin:0 6px;opacity:.5}.fe-theme-dimmed{--ed-shell-bg: #22272e;--ed-tree-bg: #2d333b;--ed-tree-header-bg: #22272e;--ed-tree-header-fg: rgba(173, 186, 199, .7);--ed-row-fg: #adbac7;--ed-row-hover: #373e47;--ed-row-selected: #444c56;--ed-folder: #d4a14a;--ed-chevron: rgba(173, 186, 199, .7);--ed-indent-guide: rgba(173, 186, 199, .1);--ed-tab-bg: #2d333b;--ed-tab-fg: #768390;--ed-tab-hover-fg: #adbac7;--ed-tab-active-bg: #22272e;--ed-tab-active-fg: #cdd9e5;--ed-tab-active-bar: #539bf5;--ed-border: #444c56;--ed-editor-bg: #22272e;--ed-editor-fg: #adbac7;--ed-gutter-bg: #22272e;--ed-gutter-fg: #545d68;--ed-muted: rgba(173, 186, 199, .6);--ed-error: #f47067}.fe-theme-light{--ed-shell-bg: #ffffff;--ed-tree-bg: #f6f8fa;--ed-tree-header-bg: #eef0f4;--ed-tree-header-fg: rgba(36, 41, 47, .7);--ed-row-fg: #24292f;--ed-row-hover: rgba(36, 41, 47, .06);--ed-row-selected: rgba(0, 92, 197, .13);--ed-folder: #54aeff;--ed-chevron: rgba(36, 41, 47, .55);--ed-indent-guide: rgba(36, 41, 47, .08);--ed-tab-bg: #eef0f4;--ed-tab-fg: #57606a;--ed-tab-hover-fg: #24292f;--ed-tab-active-bg: #ffffff;--ed-tab-active-fg: #24292f;--ed-tab-active-bar: #fd8c73;--ed-border: #d0d7de;--ed-editor-bg: #ffffff;--ed-editor-fg: #24292f;--ed-gutter-bg: #f6f8fa;--ed-gutter-fg: #6e7781;--ed-muted: rgba(36, 41, 47, .6);--ed-error: #cf222e}.app[data-v-6d0772c8]{display:flex;flex-direction:column;height:100vh}.app.is-maximized[data-v-6d0772c8]{padding:8px}.auth-error-banner[data-v-6d0772c8]{display:flex;align-items:center;gap:8px;padding:7px 16px;background:#5a1e1e;border-bottom:1px solid #8b2e2e;color:#ffb3b3;font-size:12px;flex:0 0 auto}.auth-error-msg[data-v-6d0772c8]{flex:1 1 auto}.auth-error-action[data-v-6d0772c8]{flex:0 0 auto;border:1px solid #8b2e2e;background:transparent;color:#ffb3b3;border-radius:4px;padding:2px 8px;font-size:12px;cursor:pointer}.auth-error-action[data-v-6d0772c8]:hover{background:#ffb3b31a}.auth-error-dismiss[data-v-6d0772c8]{flex:0 0 auto;border:none;background:transparent;color:#ffb3b3;font-size:16px;line-height:1;cursor:pointer;padding:0 4px}.auth-error-dismiss[data-v-6d0772c8]:hover{color:#fff}.main-row[data-v-6d0772c8]{display:flex;flex:1 1 auto;min-height:0}.main[data-v-6d0772c8]{flex:1 1 auto;display:flex;flex-direction:column;position:relative;background:#000;overflow:hidden;min-width:0}.right-resizer[data-v-6d0772c8]{width:4px;cursor:col-resize;background:transparent;flex:0 0 4px}.right-resizer[data-v-6d0772c8]:hover{background:var(--ed-border, #2d333b)}.panel-toggle[data-v-6d0772c8]{background:var(--ed-tab-bg, #21262d);border:1px solid var(--ed-border, #2d333b);color:var(--ed-row-fg, #c9d1d9);cursor:pointer;padding:0 4px;font-size:11px;align-self:stretch;flex:0 0 auto}.panel-toggle[data-v-6d0772c8]:hover{background:var(--ed-row-hover, #30363d);color:var(--ed-tab-hover-fg, #ffffff)}.right-panel[data-v-6d0772c8]:empty{display:none}.right-panel[data-v-6d0772c8]{border-left:1px solid var(--ed-border, #2d333b);overflow:hidden}.bottom-toolbar[data-v-6d0772c8]:empty{display:none}.bottom-toolbar[data-v-6d0772c8]{flex:0 0 24px;height:24px;background:var(--ed-tab-bg, var(--terminal-bg));border-top:1px solid var(--ed-border, rgba(255, 255, 255, .08))}.empty[data-v-6d0772c8]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--fg-dim);font-size:13px}.toast[data-v-6d0772c8]{position:absolute;bottom:36px;left:50%;transform:translate(-50%);background:#0d1117eb;border:1px solid var(--border);color:var(--fg);padding:6px 12px;border-radius:6px;font-size:12px;pointer-events:none}@media (max-width: 767px){.app[data-v-6d0772c8]{height:100dvh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);background:var(--bg);overflow:hidden}.main-row[data-v-6d0772c8],.main[data-v-6d0772c8]{min-width:0}.auth-error-banner[data-v-6d0772c8]{padding:7px 10px;gap:6px}.auth-error-action[data-v-6d0772c8]{padding:2px 6px}.toast[data-v-6d0772c8]{bottom:calc(12px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px);text-align:center}}/** +.tabbar.drop-active[data-v-e57c51b9]{box-shadow:inset 0 -2px 0 var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.tabbar[data-v-e57c51b9]{position:sticky;top:0;z-index:12;display:flex;align-items:stretch;background:var(--panel);flex:0 0 auto;height:28px;overflow:hidden}.tabs[data-v-e57c51b9]{display:flex;flex:1 1 auto;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.tabs[data-v-e57c51b9]::-webkit-scrollbar{display:none}.tab[data-v-e57c51b9]{display:flex;align-items:center;gap:6px;padding:0 8px 0 12px;border-right:1px solid var(--border);font-size:12px;color:var(--fg-dim);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;min-width:110px;max-width:220px;transition:background .12s;touch-action:pan-y}.tab.dragging[data-v-e57c51b9]{opacity:.5}.tab[data-v-e57c51b9]:hover{background:#ffffff0a}.tab.active[data-v-e57c51b9]{background:var(--bg);color:var(--fg);box-shadow:inset 0 -2px 0 var(--accent)}.tab .num[data-v-e57c51b9]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--fg-dim)}.tab.active .num[data-v-e57c51b9]{color:var(--accent)}.tab .dot[data-v-e57c51b9]{font-size:9px;color:var(--good)}.tab .remote-dot[data-v-e57c51b9]{color:#d29922}.tab .remote-dot.disconnected[data-v-e57c51b9]{color:var(--fg-dim)}.tab.disconnected .title[data-v-e57c51b9]{color:var(--fg-dim);font-style:italic}.tab .layout-icon[data-v-e57c51b9]{font-size:11px;color:var(--fg-dim);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-1px}.tab .title[data-v-e57c51b9]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}.tab .close[data-v-e57c51b9]{border:none;background:transparent;padding:0 4px;font-size:14px;line-height:1;color:var(--fg-dim);border-radius:4px;opacity:0;transition:opacity .12s,background .12s,color .12s}.tab:hover .close[data-v-e57c51b9],.tab.active .close[data-v-e57c51b9]{opacity:1}.tab .close[data-v-e57c51b9]:hover{background:#f851492e;color:var(--bad)}.profile-picker[data-v-e57c51b9]{max-width:120px;height:100%;border:none;border-left:1px solid var(--border);background:transparent;color:var(--fg-dim);font-size:11px;padding:0 6px;cursor:pointer}.profile-picker[data-v-e57c51b9]:hover{color:var(--fg)}.plus[data-v-e57c51b9]{border:none;background:transparent;color:var(--fg-dim);font-size:18px;line-height:1;padding:0 14px;cursor:pointer;border-left:1px solid var(--border);transition:color .12s,background .12s}.plus[data-v-e57c51b9]:hover:not(:disabled){color:var(--accent);background:#58a6ff14}.plus[data-v-e57c51b9]:disabled{opacity:.4;cursor:not-allowed}.ssh-btn[data-v-e57c51b9]{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--fg-dim);padding:0 10px;cursor:pointer;border-left:1px solid var(--border);transition:color .12s,background .12s}.ssh-btn[data-v-e57c51b9]:hover{color:var(--accent);background:#58a6ff14}.ssh-btn svg[data-v-e57c51b9]{display:block}.settings-btn[data-v-e57c51b9]{position:relative;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--fg-dim);padding:0 10px;cursor:pointer;border-left:1px solid var(--border);transition:color .12s,background .12s}.settings-btn[data-v-e57c51b9]:hover{color:var(--accent);background:#58a6ff14}.settings-btn svg[data-v-e57c51b9]{display:block}.settings-btn .dot[data-v-e57c51b9]{position:absolute;top:4px;right:4px;width:6px;height:6px;background:#d29922;border-radius:50%}.admin-btn[data-v-e57c51b9]{position:relative;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--fg-dim);padding:0 10px;cursor:pointer;border-left:1px solid var(--border);transition:color .12s,background .12s}.admin-btn[data-v-e57c51b9]:hover,.admin-btn.active[data-v-e57c51b9]{color:var(--accent);background:#58a6ff14}.tab.unread[data-v-e57c51b9]{background:color-mix(in srgb,var(--unread-c) 10%,transparent)}.tab.unread .title[data-v-e57c51b9]{font-weight:600;color:#fff}.tab.unread[data-v-e57c51b9]:not(.active){box-shadow:inset 0 -2px 0 var(--unread-c)}@media (max-width: 767px){.tabbar[data-v-e57c51b9]{height:36px}.tab[data-v-e57c51b9]{min-width:86px;max-width:150px;padding:0 6px 0 10px;gap:4px}.tab .num[data-v-e57c51b9]{display:none}.tab .close[data-v-e57c51b9]{opacity:1;padding:0 2px}.settings-btn[data-v-e57c51b9],.admin-btn[data-v-e57c51b9]{min-width:40px;padding:0 12px}}.window-controls[data-v-1ccfd0fb]{display:inline-flex;align-items:stretch;height:100%;margin-left:8px}.wc-btn[data-v-1ccfd0fb]{display:inline-flex;align-items:center;justify-content:center;width:36px;border:none;background:transparent;color:var(--fg-dim);cursor:pointer;transition:background .12s,color .12s}.wc-btn[data-v-1ccfd0fb]:hover{background:#ffffff14;color:var(--fg)}.wc-close[data-v-1ccfd0fb]:hover{background:#e81123;color:#fff}.conn-health-pill[data-v-5daa187a]{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;height:20px;border-radius:999px;border:1px solid var(--border, #ccc);background:transparent;color:inherit;font-size:11px;font-variant-numeric:tabular-nums;cursor:pointer;line-height:1;white-space:nowrap}.conn-health-pill .dot[data-v-5daa187a]{font-size:8px;line-height:1}.band-green[data-v-5daa187a]{color:var(--good, #16a34a);border-color:color-mix(in srgb,var(--good, #16a34a) 35%,transparent)}.band-yellow[data-v-5daa187a]{color:var(--warn, #d97706);border-color:color-mix(in srgb,var(--warn, #d97706) 35%,transparent)}.band-red[data-v-5daa187a]{color:var(--bad, #dc2626);border-color:color-mix(in srgb,var(--bad, #dc2626) 35%,transparent)}.band-off[data-v-5daa187a]{color:var(--fg-dim, #888)}.band-reconnecting[data-v-5daa187a]{color:var(--warn, #d97706);animation:conn-health-pulse-5daa187a 1s ease-in-out infinite}@keyframes conn-health-pulse-5daa187a{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion: reduce){.band-reconnecting[data-v-5daa187a]{animation:none}}.drawer[data-v-c8bb9e85]{position:fixed;top:36px;right:8px;z-index:1100;width:280px;background:var(--bg, #fff);color:var(--fg, #111);border:1px solid var(--border, #ddd);border-radius:8px;box-shadow:0 8px 24px #0000001f;padding:10px 12px;font-size:12px;display:flex;flex-direction:column;gap:8px}.head[data-v-c8bb9e85]{display:flex;align-items:center;justify-content:space-between;font-weight:600}.close[data-v-c8bb9e85]{background:transparent;border:0;cursor:pointer;font-size:16px;line-height:1;color:inherit}.row[data-v-c8bb9e85]{display:flex;justify-content:space-between;padding:2px 0}.metric-label[data-v-c8bb9e85]{color:var(--fg-dim, #666)}.metric-value[data-v-c8bb9e85]{font-variant-numeric:tabular-nums}.spark[data-v-c8bb9e85]{color:var(--good, #16a34a);display:block}.reconn-table[data-v-c8bb9e85]{width:100%;border-collapse:collapse;font-size:11px}.reconn-table th[data-v-c8bb9e85],.reconn-table td[data-v-c8bb9e85]{text-align:left;padding:2px 4px;border-top:1px solid var(--border, #eee)}.gaps[data-v-c8bb9e85]{color:var(--warn, #d97706)}.titlebar[data-v-2cf685eb]{position:relative;display:flex;align-items:center;gap:12px;padding:6px 14px;background:var(--panel);border-bottom:1px solid var(--border);flex:0 0 auto;--wails-draggable: drag}.window-title[data-v-2cf685eb]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:50%;font-size:12px;color:var(--fg);font-weight:500;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px}.status[data-v-2cf685eb]{font-size:12px;color:var(--fg-dim);--wails-draggable: no-drag;flex:0 0 auto;margin-left:auto}.status .bad[data-v-2cf685eb]{color:var(--bad)}.status .dim[data-v-2cf685eb]{color:var(--good)}.e2ee-off-chip[data-v-2cf685eb]{--wails-draggable: no-drag;flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.4;color:#1f1300;background:#f4b740;border-radius:999px;letter-spacing:.02em;white-space:nowrap}.e2ee-off-chip .chip-icon[data-v-2cf685eb]{font-size:12px;line-height:1}.titlebar[data-v-2cf685eb]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:repeating-linear-gradient(90deg,transparent 0px,transparent 200px,rgba(74,222,128,.3) 320px,#4ade80 500px,#bbf7d0 560px,#4ade80 620px,rgba(74,222,128,.3) 800px,transparent 920px,transparent 1120px);background-size:1120px 100%;background-position:var(--sweep-offset, 0px) 0;box-shadow:0 -1px 6px #4ade8066;opacity:0;transition:opacity .25s ease;pointer-events:none}.titlebar.is-running[data-v-2cf685eb]:after{opacity:1}@media (prefers-reduced-motion: reduce){.titlebar[data-v-2cf685eb]:after{background:#4ade80}}.last-output[data-v-ea632618]{display:inline-flex;align-items:center;gap:3px;flex:none;color:var(--fg-dim, #6e7681);white-space:nowrap;font-family:var(--font-mono, ui-monospace, monospace);font-size:9px;line-height:1;font-variant-numeric:tabular-nums}.last-output-clock[data-v-ea632618]{width:10px;height:10px;flex:none}.last-output.live[data-v-ea632618]{color:var(--accent, #58a6ff)}.row-main[data-v-81d1a3d4]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}.row-top[data-v-81d1a3d4]{display:flex;align-items:center;gap:6px;min-width:0}.state-label[data-v-81d1a3d4]{font-size:11px;opacity:.85;white-space:nowrap;flex-shrink:0}.cmd-and-cwd[data-v-81d1a3d4]{flex:1 1 auto;min-width:0;display:flex;gap:6px;overflow:hidden;align-items:baseline}.cmd[data-v-81d1a3d4]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-family:var(--font-mono);flex:1 1 auto;min-width:0}.row-meta[data-v-81d1a3d4]{display:flex;align-items:center;gap:6px;min-width:0;padding-left:18px}.cwd[data-v-81d1a3d4]{color:var(--fg-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-mono);font-size:.85em;flex:1 1 auto;min-width:0}.row-tail[data-v-81d1a3d4]{flex:0 0 auto;min-width:46px;align-self:stretch;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:3px}.row-tail.time-only[data-v-81d1a3d4]{justify-content:flex-end}.row-tail[data-v-81d1a3d4] .last-output{opacity:.65}.kind[data-v-81d1a3d4]{font-size:8.5px;line-height:1.4;padding:1px 4px;border-radius:3px;border:1px solid var(--border);color:var(--fg-dim);white-space:nowrap;transition:opacity .1s}.row-close[data-v-81d1a3d4]{position:absolute;top:4px;right:6px;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:13px;line-height:1;cursor:pointer;color:var(--fg-dim);border-radius:4px}.row-close[data-v-81d1a3d4]:hover{background:#f851492e;color:var(--bad)}.session-row-menu[data-v-f6b9c7cb]{position:fixed;z-index:1000;min-width:140px;padding:4px;background:var(--menu-bg, #1f1f22);border:1px solid rgba(255,255,255,.12);border-radius:6px;box-shadow:0 8px 24px #0006}.menu-item[data-v-f6b9c7cb]{display:block;width:100%;padding:6px 10px;background:transparent;border:none;color:inherit;text-align:left;cursor:pointer;border-radius:4px;font-size:13px}.menu-item[data-v-f6b9c7cb]:hover:not(.disabled),.menu-item[data-v-f6b9c7cb]:focus:not(.disabled){background:#ffffff14;outline:none}.menu-item.disabled[data-v-f6b9c7cb]{opacity:.4;cursor:not-allowed}.menu-separator[data-v-f6b9c7cb]{height:1px;margin:4px 6px;background:#ffffff1f}.session-details-popover[data-v-9528360b]{position:fixed;z-index:1000;min-width:260px;max-width:420px;width:min(420px,calc(100vw - 16px));box-sizing:border-box;padding:8px 10px 10px;background:var(--menu-bg, #1f1f22);border:1px solid rgba(255,255,255,.14);border-radius:8px;box-shadow:0 12px 32px #00000073;font-size:12px}.popover-title[data-v-9528360b]{font-weight:600;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:6px}.rows[data-v-9528360b]{display:flex;flex-direction:column;gap:3px;max-height:380px;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.row[data-v-9528360b]{display:grid;grid-template-columns:96px 1fr auto;gap:8px;align-items:baseline;min-width:max-content}.label[data-v-9528360b]{color:var(--fg-dim);white-space:nowrap}.value[data-v-9528360b]{overflow:visible;text-overflow:clip;white-space:nowrap;font-family:var(--font-mono);min-width:0}.copy[data-v-9528360b]{border:none;background:transparent;color:var(--fg-dim);cursor:pointer;padding:0 3px;font-size:12px;border-radius:3px}.copy[data-v-9528360b]:hover{color:var(--fg);background:#ffffff14}.task-grouped-list[data-v-42b39ad3]{display:flex;flex-direction:column;gap:8px;font-size:12px}.host-header[data-v-42b39ad3]{display:flex;align-items:center;gap:6px;font-weight:500;padding:4px 6px;cursor:pointer;-webkit-user-select:none;user-select:none}.host-header[data-v-42b39ad3]:hover{background:#ffffff0a;border-radius:4px}.host-header .caret[data-v-42b39ad3]{font-size:9px;opacity:.7;width:9px;display:inline-block}.host-name[data-v-42b39ad3]{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.counts[data-v-42b39ad3]{margin-left:auto;display:inline-flex;gap:2px;align-items:center;flex-shrink:0}.unread-badge[data-v-42b39ad3]{font-size:10px;opacity:.8;background:#ffffff0f;border-radius:3px;padding:1px 4px;white-space:nowrap;flex-shrink:0}.local-chip[data-v-42b39ad3]{font-size:10px;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:3px;padding:0 4px;line-height:1.3;white-space:nowrap;flex-shrink:0}.mark-all[data-v-42b39ad3]{background:none;border:none;cursor:pointer;padding:0 4px;color:inherit}.host-group[data-v-42b39ad3]{display:flex;flex-direction:column;gap:4px}.group-header[data-v-42b39ad3]{display:flex;align-items:center;gap:6px;font-weight:500;padding:4px 6px;cursor:pointer;-webkit-user-select:none;user-select:none}.group-header[data-v-42b39ad3]:hover{background:#ffffff0a;border-radius:4px}.group-header .caret[data-v-42b39ad3]{font-size:9px;opacity:.7;width:9px;display:inline-block}.pinned-group .pin-icon[data-v-42b39ad3]{font-size:11px}.group-title[data-v-42b39ad3]{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-count[data-v-42b39ad3]{margin-left:auto;font-size:10px;opacity:.8;background:#ffffff0f;border-radius:3px;padding:1px 4px}.task-row[data-v-42b39ad3]{display:flex;flex-direction:row;align-items:stretch;gap:6px;padding:5px 8px;border:1px solid rgba(255,255,255,.08);background:#ffffff05;width:100%;text-align:left;cursor:pointer;color:inherit;border-radius:6px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:pan-y;position:relative}.task-row[data-v-42b39ad3] .row-close{opacity:0;transition:opacity .1s}.task-row[data-v-42b39ad3]:hover .row-close,.task-row[data-v-42b39ad3]:focus-within .row-close{opacity:1}.task-row[data-v-42b39ad3]:hover .kind,.task-row[data-v-42b39ad3]:focus-within .kind{opacity:0}@media (hover: none){.task-row[data-v-42b39ad3] .row-close{position:static;align-self:flex-start;opacity:1}.task-row[data-v-42b39ad3] .kind{opacity:1}}.task-row[data-v-42b39ad3]:hover{background:#ffffff0f;border-color:#ffffff29}.task-row.active[data-v-42b39ad3]{background:color-mix(in srgb,var(--accent) 10%,transparent);border-color:color-mix(in srgb,var(--accent) 28%,var(--border));box-shadow:inset 2px 0 0 var(--accent)}.task-row.active[data-v-42b39ad3]:hover{background:color-mix(in srgb,var(--accent) 14%,transparent)}.task-row.selected[data-v-42b39ad3]{outline:2px solid var(--accent);outline-offset:-2px}.task-row.unread[data-v-42b39ad3]{background:color-mix(in srgb,var(--unread-c) 7%,transparent);border-color:color-mix(in srgb,var(--unread-c) 24%,var(--border));box-shadow:inset 2px 0 0 var(--unread-c)}.task-row.unread[data-v-42b39ad3]:hover{background:color-mix(in srgb,var(--unread-c) 12%,transparent)}.task-row.unread[data-v-42b39ad3] .cmd{font-weight:600;color:#fff}.task-row.active.unread[data-v-42b39ad3]{background:color-mix(in srgb,var(--unread-c) 14%,transparent);border-color:color-mix(in srgb,var(--accent) 28%,var(--border));box-shadow:inset 2px 0 0 var(--unread-c)}.task-row.dim[data-v-42b39ad3]{opacity:.6}.task-row.dim.active[data-v-42b39ad3]{opacity:.9}.task-row.dim.unread[data-v-42b39ad3]{opacity:1}.row-main[data-v-42b39ad3]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}.row-top[data-v-42b39ad3]{display:flex;align-items:center;gap:6px;min-width:0}.state-label[data-v-42b39ad3]{font-size:11px;opacity:.85;white-space:nowrap;flex-shrink:0}.cmd-and-cwd[data-v-42b39ad3]{flex:1 1 auto;min-width:0;display:flex;gap:6px;overflow:hidden;align-items:baseline}.cmd[data-v-42b39ad3]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-family:var(--font-mono);flex:1 1 auto;min-width:0}.row-meta[data-v-42b39ad3]{display:flex;align-items:center;gap:6px;min-width:0;padding-left:18px}.cwd[data-v-42b39ad3]{color:var(--fg-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-mono);font-size:.85em;flex:1 1 auto;min-width:0}.row-tail[data-v-42b39ad3]{flex:0 0 auto;min-width:46px;align-self:stretch;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:3px}.row-tail.time-only[data-v-42b39ad3]{justify-content:flex-end}.row-tail[data-v-42b39ad3] .last-output{opacity:.65}.kind[data-v-42b39ad3]{font-size:8.5px;line-height:1.4;padding:1px 4px;border-radius:3px;border:1px solid var(--border);color:var(--fg-dim);white-space:nowrap;transition:opacity .1s}.completed-row-close[data-v-42b39ad3]{position:absolute;top:5px;right:8px;border:none;background:transparent;color:var(--fg-dim);border-radius:4px;cursor:pointer;font-size:13px;line-height:1;padding:1px 4px}.completed-row-close[data-v-42b39ad3]:hover{background:#f851492e;color:var(--bad)}.completed-fold[data-v-42b39ad3]{border-top:1px solid rgba(255,255,255,.06);margin-top:6px;padding-top:4px;display:flex;flex-direction:column;gap:4px}.fold-toggle[data-v-42b39ad3]{background:none;border:none;cursor:pointer;padding:4px 6px;width:100%;text-align:left;color:inherit;opacity:.7}.fold-mark-all[data-v-42b39ad3]{background:none;border:1px solid rgba(255,255,255,.12);cursor:pointer;padding:4px 8px;margin:4px 6px;color:inherit;border-radius:3px}.empty-hint[data-v-42b39ad3]{padding:24px 12px;text-align:center;color:var(--fg);opacity:.55;font-size:12px}.bulk-bar[data-v-c912fe83]{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 4px}.counter[data-v-c912fe83]{font-size:11px;color:var(--fg-dim);margin-right:4px;white-space:nowrap}.btn[data-v-c912fe83]{background:none;border:1px solid rgba(255,255,255,.14);color:inherit;cursor:pointer;padding:3px 8px;font-size:11px;border-radius:3px;line-height:1.4}.btn[data-v-c912fe83]:hover:not(:disabled){background:#ffffff0f}.btn[data-v-c912fe83]:disabled{opacity:.4;cursor:not-allowed}.btn.primary[data-v-c912fe83]{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));color:var(--accent)}.btn.primary[data-v-c912fe83]:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 12%,transparent)}.btn.ghost[data-v-c912fe83]{border-color:transparent;opacity:.75}.task-sidebar-shell[data-v-0741527d]{display:contents}.task-sidebar[data-v-0741527d]{position:relative;background:var(--panel);border-right:1px solid var(--border);color:var(--fg);display:flex;flex-direction:column;height:100%}.task-sidebar.collapsed[data-v-0741527d]{width:32px}.sidebar-hamburger[data-v-0741527d]{position:fixed;top:34px;left:8px;z-index:20;padding:4px 8px;background:var(--panel);border:1px solid var(--border);color:inherit;border-radius:4px;cursor:pointer;font-size:12px;line-height:1}.task-sidebar.drawer[data-v-0741527d]{position:fixed;top:0;bottom:0;left:0;z-index:15;transform:translate(-100%);transition:transform .2s ease;box-shadow:2px 0 8px #0000004d}.task-sidebar.drawer.open[data-v-0741527d]{transform:translate(0)}.expanded[data-v-0741527d]{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.resize-handle[data-v-0741527d]{position:absolute;top:0;right:-2px;width:4px;height:100%;cursor:ew-resize;-webkit-user-select:none;user-select:none;z-index:1}.resize-handle[data-v-0741527d]:hover{background:#ffffff0f}.sidebar-header[data-v-0741527d]{display:flex;align-items:center;padding:8px 10px;border-bottom:1px solid var(--border)}.title[data-v-0741527d]{flex:1 1 auto;min-width:0;font-weight:500;margin-right:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-icon-btn[data-v-0741527d]{background:none;border:none;color:inherit;cursor:pointer;padding:2px 4px;margin-right:6px;opacity:.7;display:inline-flex;align-items:center;justify-content:center;border-radius:3px}.search-icon-btn[data-v-0741527d]:hover{opacity:1;background:#ffffff0d}.collapse-button[data-v-0741527d],.expand-button[data-v-0741527d]{background:none;border:none;cursor:pointer;color:inherit;font-size:14px}.group-toggle[data-v-0741527d]{background:none;border:1px solid var(--border);color:inherit;cursor:pointer;border-radius:3px;font-size:11px;padding:1px 6px;margin-right:6px;opacity:.8}.group-toggle[data-v-0741527d]:hover{opacity:1;background:#ffffff0d}.sidebar-search[data-v-0741527d]{flex:1 1 auto;min-width:60px;background:#ffffff08;border:1px solid transparent;color:inherit;border-radius:3px;padding:1px 6px;font-size:12px;font-family:inherit;line-height:20px;margin-right:6px;outline:none}.sidebar-search[data-v-0741527d]:focus{border-color:var(--border);background:#ffffff0d}.sidebar-search[data-v-0741527d]::placeholder{opacity:.5}.list-wrap[data-v-0741527d]{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:4px;scrollbar-width:none}.list-wrap[data-v-0741527d]::-webkit-scrollbar{display:none}footer[data-v-0741527d]{padding:8px;border-top:1px solid var(--border)}.mark-all[data-v-0741527d]{background:none;border:1px solid var(--border);cursor:pointer;padding:6px 10px;color:inherit;border-radius:3px;width:100%}.rail[data-v-0741527d]{display:flex;flex-direction:column;align-items:center;padding:6px 0;gap:4px}.rail-badge[data-v-0741527d]{font-size:10px;background:#ef4444;color:#fff;border-radius:8px;padding:1px 5px}.rail-icon[data-v-0741527d]{cursor:pointer;padding:2px}@media (max-width: 767px){.sidebar-hamburger[data-v-0741527d]{top:calc(env(safe-area-inset-top) + 42px);left:calc(env(safe-area-inset-left) + 8px);min-height:32px}.task-sidebar.drawer[data-v-0741527d]{top:env(safe-area-inset-top);bottom:env(safe-area-inset-bottom);max-width:min(86vw,360px)}}.select-dropdown[data-v-65a81c06]{position:relative;width:100%}.trigger[data-v-65a81c06]{-moz-appearance:none;appearance:none;-webkit-appearance:none;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:32px;padding:6px 10px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;font-size:13px;font-family:inherit;line-height:1.3;cursor:pointer;text-align:left}.trigger[data-v-65a81c06]:after{content:"▾";color:var(--fg-dim);font-size:11px;transition:transform .15s ease;flex-shrink:0}.trigger[data-v-65a81c06]:hover:not(:disabled):after{color:var(--fg)}.trigger[data-v-65a81c06]:hover:not(:disabled){border-color:var(--fg-dim)}.trigger[data-v-65a81c06]:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent)}.trigger[data-v-65a81c06]:disabled{cursor:not-allowed;opacity:.6}.trigger-label[data-v-65a81c06]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trigger-open[data-v-65a81c06]:after{transform:rotate(180deg)}.menu[data-v-65a81c06]{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:240px;overflow-y:auto;margin:0;padding:4px 0;list-style:none;background:var(--bg);border:1px solid var(--border);border-radius:6px;box-shadow:0 6px 16px #00000059;z-index:1000}.option[data-v-65a81c06]{position:relative;display:flex;flex-direction:column;gap:2px;padding:8px 10px;cursor:pointer}.option-label[data-v-65a81c06]{color:var(--fg);font-size:13px;line-height:1.3}.option-description[data-v-65a81c06]{color:var(--fg-dim);font-size:12px;line-height:1.3}.option-highlight[data-v-65a81c06]{background:#ffffff0f}.option-selected[data-v-65a81c06]:before{content:"";position:absolute;top:4px;bottom:4px;left:0;width:2px;background:var(--accent);border-radius:2px}.option-selected .option-label[data-v-65a81c06]{color:var(--fg);font-weight:500}.sp-switcher[data-v-c9d59669]{position:relative;display:inline-flex;align-items:center;gap:6px;pointer-events:auto}.sp-seg[data-v-c9d59669]{display:inline-flex;align-items:center;gap:2px;background:var(--terminal-overlay, rgba(13, 17, 23, .92));border:1px solid var(--border);border-radius:8px;padding:2px}.sp-seg button[data-v-c9d59669]{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;flex:0 0 auto;border:0;border-radius:5px;padding:4px 8px;color:var(--fg-dim);background:transparent;font:12px var(--font-mono);cursor:pointer}.sp-seg button[data-v-c9d59669]:hover{color:var(--fg);background:#ffffff0f}.sp-seg button.active[data-v-c9d59669]{color:var(--fg);background:#ffffff1a}.sp-seg button.reconnecting[data-v-c9d59669]{color:var(--warning, #d29922)}.sp-caret[data-v-c9d59669]{color:var(--fg-dim);font-size:10px}.sp-dot[data-v-c9d59669]{width:6px;height:6px;border-radius:50%;background:var(--good, #3fb950);flex:0 0 auto}.sp-dot.reconnecting[data-v-c9d59669]{background:var(--warning, #d29922);animation:sp-pulse-c9d59669 1s infinite}@keyframes sp-pulse-c9d59669{50%{opacity:.3}}.sp-actions[data-v-c9d59669]{display:inline-flex;align-items:center;gap:2px;background:var(--terminal-overlay, rgba(13, 17, 23, .92));border:1px solid var(--border);border-radius:8px;padding:2px}.sp-actions button[data-v-c9d59669]{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:5px;color:var(--fg-dim);background:transparent;cursor:pointer}.sp-actions button[data-v-c9d59669]:hover{color:var(--fg);background:#ffffff0f}.sp-actions button.close[data-v-c9d59669]:hover{color:var(--bad);background:#f851491f}.sp-ico[data-v-c9d59669]{display:inline-flex;align-items:center;justify-content:center}.sp-actions svg[data-v-c9d59669]{width:13px;height:13px;display:block}.sp-menu[data-v-c9d59669]{position:absolute;top:32px;left:0;z-index:20;min-width:210px;background:var(--terminal-overlay, rgba(13, 17, 23, .98));border:1px solid var(--border);border-radius:8px;padding:4px;box-shadow:0 12px 30px #00000073}.sp-item[data-v-c9d59669]{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:0;border-radius:6px;background:transparent;color:var(--fg-dim);font:12px var(--font-mono);cursor:pointer;white-space:nowrap;text-align:left}.sp-item[data-v-c9d59669]:hover{color:var(--fg);background:#ffffff0f}.sp-item.active[data-v-c9d59669]{color:var(--fg);background:#ffffff1a}.sp-lbl[data-v-c9d59669]{flex:1}.sp-mini[data-v-c9d59669]{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;color:var(--fg-dim);flex:0 0 auto}.sp-mini[data-v-c9d59669]:hover{color:var(--fg);background:#ffffff1a}.sp-mini svg[data-v-c9d59669]{width:13px;height:13px;display:block}.sp-x[data-v-c9d59669]{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;color:var(--fg-dim);flex:0 0 auto}.sp-x[data-v-c9d59669]:hover{color:var(--bad);background:#f851491f}.sp-sep[data-v-c9d59669]{height:1px;background:var(--border);margin:4px 2px}.sp-add[data-v-c9d59669]{color:var(--good, #3fb950)}.popover[data-v-063a4cb7]{position:fixed;transform:translate(-50%);background:#2b2c30;color:#fff;border-radius:8px;display:flex;box-shadow:0 6px 20px #0006;font-family:-apple-system,system-ui,sans-serif;z-index:1000}.popover[data-v-063a4cb7]:after{content:"";position:absolute;left:50%;transform:translate(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent}.popover.arrow-down[data-v-063a4cb7]:after{bottom:-5px;border-top:5px solid #2b2c30}.popover.arrow-up[data-v-063a4cb7]:after{top:-5px;border-bottom:5px solid #2b2c30}.btn[data-v-063a4cb7]{position:relative;background:none;border:none;color:#fff;padding:4px 11px;font-size:11px;font-family:inherit;cursor:pointer;border-right:1px solid #3f4046}.btn[data-v-063a4cb7]:last-child{border-right:none}.btn.send[data-v-063a4cb7]{color:#60a5fa;font-weight:600}.btn.cancel[data-v-063a4cb7]{font-size:14px;line-height:1;padding:4px 8px}.btn[data-v-063a4cb7]:disabled{opacity:.5;cursor:not-allowed}.btn[data-v-063a4cb7]:before{content:"";position:absolute;top:-8px;bottom:-8px;left:0;right:0}.term-search[data-v-302a13f7]{position:absolute;top:8px;left:12px;z-index:6;display:flex;align-items:center;gap:4px;padding:4px 6px;border:1px solid var(--border);border-radius:6px;background:var(--panel);box-shadow:0 4px 12px #00000059}.term-search-input[data-v-302a13f7]{width:180px;padding:2px 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--fg);font-size:12px;outline:none}.term-search-input[data-v-302a13f7]:focus{border-color:var(--accent)}.term-search-count[data-v-302a13f7]{min-width:52px;color:var(--fg-dim);font-size:11px;text-align:center;white-space:nowrap}.term-search-btn[data-v-302a13f7]{padding:1px 6px;border:1px solid var(--border);border-radius:4px;background:#21262d;color:var(--fg);font-size:11px;line-height:16px;cursor:pointer}.term-search-btn[data-v-302a13f7]:hover:not(:disabled){background:var(--border)}.term-search-btn[data-v-302a13f7]:disabled{opacity:.4;cursor:default}.term-view[data-v-acf7d666]{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--terminal-bg);overflow:hidden}.term[data-v-acf7d666]{position:absolute;left:0;right:0;top:0;bottom:30px}.service-preview-frame[data-v-acf7d666]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;background:#fff}.service-preview-reconnecting[data-v-acf7d666]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:9;display:flex;gap:10px;align-items:center;justify-content:center;color:var(--fg);background:var(--terminal-overlay, rgba(13, 17, 23, .9));font:13px var(--font-mono)}.service-preview-reconnecting-spinner[data-v-acf7d666]{width:14px;height:14px;border:2px solid rgba(255,255,255,.25);border-top-color:var(--fg);border-radius:50%;animation:service-preview-spin-acf7d666 .8s linear infinite}@keyframes service-preview-spin-acf7d666{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.service-preview-reconnecting-spinner[data-v-acf7d666]{animation:none}}.service-preview-controls{position:relative;display:flex;align-items:center;gap:6px;padding:0;pointer-events:auto}.service-preview-port-form{position:absolute;top:34px;right:0;z-index:8;width:330px;padding:8px;display:flex;flex-direction:column;align-items:stretch;gap:6px;border:1px solid var(--border);border-radius:8px;background:var(--terminal-overlay);box-shadow:0 8px 24px #00000052}.service-preview-port-form button:not(.trigger){border:0;border-radius:5px;padding:4px 8px;color:var(--fg-dim);background:transparent;font:12px var(--font-mono);cursor:pointer}.service-preview-port-form button[type=submit]{color:var(--fg);background:#ffffff1a}.service-preview-port-form button:disabled{opacity:.55;cursor:default}.service-preview-host{width:100%}.service-preview-host .trigger{height:27px;padding:3px 7px;border-radius:5px;background:var(--bg);font:12px var(--font-mono)}.service-preview-host .menu{background:var(--terminal-overlay);font:12px var(--font-mono)}.service-preview-host .option{padding:6px 8px}.service-preview-mapping-row{display:grid;grid-template-columns:76px minmax(0,1fr) 24px;align-items:center;gap:5px}.service-preview-mapping-row input{width:auto;min-width:0}.service-preview-mapping-row input+input{width:auto}.service-preview-mapping-row.root-mapping{grid-template-columns:76px minmax(0,1fr)}.service-preview-path{color:var(--fg-dim);font:12px var(--font-mono)}.preview-add-mapping{white-space:nowrap}.service-preview-form-actions{display:flex;align-items:center;gap:4px}.service-preview-form-spacer{flex:1}.service-preview-port-form input{width:76px;border:1px solid var(--border);border-radius:5px;padding:3px 6px;color:var(--fg);background:var(--bg);font:12px var(--font-mono);outline:none}.service-preview-port-form input:focus{border-color:var(--accent)}.service-preview-port-form .service-preview-mapping-row input{width:100%}.template-bar[data-v-acf7d666]{position:absolute;left:0;right:0;bottom:0;height:30px;display:flex;align-items:center;gap:6px;overflow-x:auto;padding:2px 8px;border-top:1px solid var(--border);background:var(--panel);z-index:4;scrollbar-width:none}.template-bar[data-v-acf7d666]::-webkit-scrollbar{display:none}.aux-key-bar[data-v-acf7d666]{position:absolute;left:0;right:0;bottom:0;height:30px;display:flex;align-items:center;gap:6px;overflow:hidden;padding:2px 8px;border-top:1px solid var(--border);background:var(--panel);z-index:4}.aux-key-scroll[data-v-acf7d666]{min-width:0;flex:1 1 auto;height:100%;display:flex;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:none}.aux-key-scroll[data-v-acf7d666]::-webkit-scrollbar{display:none}.file-picker-input[data-v-acf7d666]{display:none}.template-btn[data-v-acf7d666]{flex:0 0 auto;height:22px;padding:0 10px;border-radius:6px;background:var(--bg);border:1px solid var(--border);color:var(--fg);font-size:.76rem;font-family:var(--font-mono);cursor:pointer}.template-btn[data-v-acf7d666]:hover{border-color:var(--accent);color:var(--accent)}.aux-key-btn[data-v-acf7d666]{flex:0 0 auto;min-width:34px;height:22px;padding:0 9px;border-radius:6px;background:var(--bg);border:1px solid var(--border);color:var(--fg);font-size:.76rem;font-family:var(--font-mono);cursor:pointer}.aux-key-btn[data-v-acf7d666]:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.aux-key-btn[data-v-acf7d666]:disabled{color:var(--fg-dim);cursor:default;opacity:.55}.keyboard-toggle-btn[data-v-acf7d666]{min-width:76px;font-weight:600}.template-confirm-panel[data-v-acf7d666]{position:absolute;left:8px;right:8px;bottom:calc(60px + env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;align-items:center;padding:7px;border:1px solid var(--border);border-radius:8px;background:var(--panel);z-index:6;box-shadow:0 8px 24px #0000004d}.template-confirm-copy[data-v-acf7d666]{min-width:0}.template-confirm-label[data-v-acf7d666]{color:var(--fg);font:600 .78rem var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-confirm-text[data-v-acf7d666]{margin-top:2px;color:var(--fg-dim);font:.72rem var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-confirm-btn[data-v-acf7d666]{height:30px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--fg);padding:0 10px;cursor:pointer}.template-confirm-btn.primary[data-v-acf7d666]{border-color:var(--accent);color:var(--accent)}.paste-confirm-panel[data-v-acf7d666]{position:absolute;left:8px;right:8px;bottom:calc(30px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr auto auto;gap:6px;align-items:center;padding:7px;border:1px solid var(--border);border-radius:8px;background:var(--panel);z-index:6;box-shadow:0 8px 24px #0000004d}.paste-confirm-input[data-v-acf7d666]{min-width:0;resize:vertical;border-radius:6px;border:1px solid var(--border);background:var(--terminal-bg);color:var(--fg);padding:6px 8px;font:.78rem var(--font-mono)}.paste-confirm-btn[data-v-acf7d666]{height:30px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--fg);padding:0 10px;cursor:pointer}.paste-confirm-btn.primary[data-v-acf7d666]{border-color:var(--accent);color:var(--accent)}.paste-confirm-btn[data-v-acf7d666]:disabled{color:var(--fg-dim);border-color:var(--border);cursor:default;opacity:.55}.term[data-v-acf7d666] .xterm{padding:6px 8px}.term[data-v-acf7d666] .xterm-viewport{top:6px;right:8px;bottom:6px;left:8px;z-index:5;background:transparent!important;touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.term[data-v-acf7d666] .xterm-helper-textarea{caret-color:transparent}.overlay[data-v-acf7d666]{position:absolute;top:8px;right:12px;background:var(--terminal-overlay);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:12px;color:var(--fg-dim);pointer-events:none}.overlay.avoid-top-right-badge[data-v-acf7d666]{top:34px}.viewer-overlay[data-v-acf7d666]{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:5}.viewer-overlay-card[data-v-acf7d666]{background:var(--terminal-overlay);border:1px solid var(--border);border-radius:10px;padding:14px 22px;text-align:center;pointer-events:auto;box-shadow:0 10px 30px #00000059}.viewer-overlay-title[data-v-acf7d666]{font-size:14px;font-weight:600;color:var(--fg)}.viewer-overlay-host[data-v-acf7d666]{margin-top:4px;font-size:12px;color:var(--fg);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;opacity:.85}.viewer-overlay-hint[data-v-acf7d666]{margin-top:6px;font-size:12px;color:var(--fg-dim)}.viewer-overlay-btn[data-v-acf7d666]{margin-top:8px;padding:6px 14px;border:none;border-radius:8px;background:#3b82f6;color:#fff;font-weight:600;pointer-events:auto;cursor:pointer}.overlay .warn[data-v-acf7d666]{color:#d29922}.overlay .bad[data-v-acf7d666]{color:var(--bad)}.overlay .dim[data-v-acf7d666]{color:var(--fg-dim)}.progress-track[data-v-acf7d666]{width:190px;height:4px;margin-top:6px;border-radius:999px;background:#94a3b83d;overflow:hidden}.progress-fill[data-v-acf7d666]{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#4ade80);transition:width .12s ease}.term-context-menu[data-v-acf7d666]{position:fixed;min-width:150px;padding:6px;border-radius:8px;border:1px solid var(--border);background:#0d1117f5;box-shadow:0 10px 30px #00000059;z-index:1000}.term-context-item[data-v-acf7d666]{width:100%;border:none;background:transparent;color:var(--fg);text-align:left;padding:8px 10px;border-radius:6px;cursor:pointer}.term-context-item[data-v-acf7d666]:hover:not(:disabled){background:#ffffff0f}.term-context-item[data-v-acf7d666]:disabled{color:var(--fg-dim);cursor:default}.term-view.focused[data-v-acf7d666]{box-shadow:inset 0 0 0 1px var(--accent)}.pane-splitter[data-v-442ddd17]{position:absolute;z-index:5;background:transparent;-webkit-user-select:none;user-select:none;touch-action:none}.pane-splitter.col[data-v-442ddd17]{top:0;bottom:0;width:6px;cursor:col-resize}.pane-splitter.row[data-v-442ddd17]{left:0;right:0;height:6px;cursor:row-resize}.pane-splitter[data-v-442ddd17]:hover,.pane-splitter[data-v-442ddd17]:active{background:#ffffff14}.pane-grid[data-v-76c1e407]{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;gap:2px;background:var(--terminal-grid)}.pane-grid.single[data-v-76c1e407]{grid-template:"a"}.cell[data-v-76c1e407]{position:relative;background:var(--terminal-bg);overflow:hidden}.cell.drop-target[data-v-76c1e407]{box-shadow:inset 0 0 0 2px var(--accent)}.cell.drop-target[data-v-76c1e407]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--accent) 12%,transparent);pointer-events:none}.term-host[data-v-76c1e407]{position:absolute;top:0;right:0;bottom:0;left:0}.empty[data-v-76c1e407]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--fg-dim);font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.cell-controls[data-v-76c1e407]{position:absolute;top:6px;right:8px;display:flex;align-items:center;gap:4px;z-index:6;pointer-events:none}.service-preview-controls-slot[data-v-76c1e407]{display:inline-flex;align-items:center;min-width:0;pointer-events:auto}.remote-badge[data-v-76c1e407]{display:inline-flex;align-items:center;gap:6px;background:#0d1117d9;border:1px solid var(--border);border-radius:10px;padding:2px 8px;font-size:11px;line-height:1.5;color:#d29922;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;-webkit-user-select:none;user-select:none;pointer-events:none}.remote-preview-trigger[data-v-76c1e407]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:0;border-radius:4px;color:inherit;background:transparent;cursor:pointer;pointer-events:auto}.remote-preview-trigger[data-v-76c1e407]:hover{color:var(--fg);background:#ffffff1a}.remote-preview-trigger svg[data-v-76c1e407]{display:block}.remote-badge svg[data-v-76c1e407]{display:block}.viewers-badge[data-v-76c1e407]{position:absolute;top:4px;right:4px;display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:6px;background:#0000008c;color:var(--fg);font-size:11px;pointer-events:none}.viewers-badge svg[data-v-76c1e407]{display:block}.remote-badge .who[data-v-76c1e407]{font-weight:600}.remote-badge .who.dim[data-v-76c1e407],.remote-badge .sid[data-v-76c1e407]{color:var(--fg-dim);font-weight:400}.remote-badge .sid[data-v-76c1e407]:before{content:"·";margin-right:4px}.close-pane[data-v-76c1e407]{border:none;background:#0d1117b3;color:var(--fg-dim);font-size:14px;line-height:1;padding:2px 6px;border-radius:4px;cursor:pointer;opacity:0;pointer-events:auto;transition:opacity .12s,background .12s,color .12s}.cell:hover .close-pane[data-v-76c1e407]{opacity:1}.pane-grip[data-v-76c1e407]{opacity:0;transition:opacity .1s;cursor:grab;pointer-events:auto;-webkit-user-drag:element;padding:0 3px;font-size:12px;line-height:1;color:var(--fg-dim);-webkit-user-select:none;user-select:none}.pane-grip[data-v-76c1e407]:active{cursor:grabbing}.cell:hover .pane-grip[data-v-76c1e407]{opacity:1}@media (hover: none){.pane-grip[data-v-76c1e407]{display:none}}.close-pane[data-v-76c1e407]:hover{background:#f851492e;color:var(--bad)}.create-form[data-v-b7ce3097]{margin-bottom:1rem}.field[data-v-b7ce3097]{display:flex;flex-direction:column;gap:.25rem}.field-label[data-v-b7ce3097]{font-size:.75rem;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.06em}.secret-alert[data-v-b7ce3097]{margin:.5rem 0}.secret-msg[data-v-b7ce3097]{color:var(--fg-dim);font-size:.85rem;margin-bottom:.5rem}.secret-display[data-v-b7ce3097]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;color:var(--good);word-break:break-all;display:block;padding:.25rem 0}.empty[data-v-b7ce3097]{color:var(--fg-dim);font-size:.875rem;margin:.5rem 0 0}.secret-alert[data-v-b54d534a]{margin-bottom:.5rem}.secret-msg[data-v-b54d534a]{color:var(--fg-dim);font-size:.85rem;margin-bottom:.5rem}.secret-display[data-v-b54d534a]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;color:var(--good);word-break:break-all;display:block;padding:.25rem 0}.form-error[data-v-b54d534a]{color:var(--bad);font-size:.875rem;margin:.5rem 0 0}.hint[data-v-be878b2d]{color:var(--fg-dim);font-size:.875rem;margin:0 0 1rem}.muted[data-v-be878b2d]{color:var(--fg-dim);font-size:.875rem}.warn[data-v-be878b2d]{color:var(--warn, #d89614);font-size:.8125rem}.actions[data-v-be878b2d]{margin-top:1rem}.version code[data-v-be878b2d]{color:var(--fg)}.form-error[data-v-be878b2d]{color:var(--bad);font-size:.875rem;margin:.5rem 0 0}.hint[data-v-b32379d1]{color:var(--fg-dim);font-size:.875rem;margin:0 0 1rem}.muted[data-v-b32379d1]{color:var(--fg-dim);font-size:.875rem}.warn[data-v-b32379d1]{color:var(--warn, #d89614);font-size:.8125rem}.actions[data-v-b32379d1]{margin-top:1rem}.form-error[data-v-b32379d1]{color:var(--bad);font-size:.875rem;margin:.5rem 0 0}.traffic[data-v-2ace187f]{display:flex;flex-direction:column;gap:16px}.empty[data-v-2ace187f]{color:var(--fg-dim)}.admin-panel[data-v-99471adc]{display:flex;flex-direction:column;height:100%;min-height:0}.admin-tabs[data-v-99471adc]{display:flex;gap:2px;padding:8px 12px 0;border-bottom:1px solid var(--border);flex:0 0 auto}.admin-tabs button[data-v-99471adc]{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--fg-dim);padding:8px 12px;cursor:pointer;font-size:13px}.admin-tabs button[data-v-99471adc]:hover{color:var(--fg)}.admin-tabs button.active[data-v-99471adc]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.admin-body[data-v-99471adc]{flex:1 1 auto;min-height:0;overflow-y:auto;padding:20px 24px}.terminal-appearance[data-v-e31f8f67]{display:flex;flex-direction:column;gap:14px}.field-label[data-v-e31f8f67]{font-size:12px;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em}.hint[data-v-e31f8f67]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.5}.error[data-v-e31f8f67]{color:var(--bad);font-size:12px;margin:0}.checkbox[data-v-e31f8f67]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--fg)}.number-input[data-v-e31f8f67]{width:80px;padding:4px 8px;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--fg);font:inherit}.settings-field-grid .number-input[data-v-e31f8f67]{width:100%}.cursor-blink[data-v-e31f8f67]{min-height:18px}.scrollback-field[data-v-e31f8f67]{align-items:flex-start}.tab-pane[data-v-e7440565]{display:flex;flex-direction:column;gap:14px}.field-label[data-v-e7440565]{font-size:12px;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em}.hint[data-v-e7440565]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.5}.error[data-v-e7440565]{color:var(--bad);font-size:12px;margin:0}.checkbox[data-v-e7440565]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--fg)}.number-input[data-v-e7440565]{width:80px;padding:4px 8px;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--fg);font:inherit}.text-input[data-v-e7440565]{padding:6px 8px;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--fg);font:inherit}.custom-shell-row[data-v-e7440565]{display:flex;gap:8px}.custom-shell-row .text-input[data-v-e7440565]{flex:1 1 auto}.custom-shell-row button[data-v-e7440565]{padding:6px 10px;background:var(--panel);border:1px solid var(--border);border-radius:4px;color:var(--fg);font:inherit}.push-section[data-v-e7440565]{display:flex;flex-direction:column;gap:8px;padding-top:14px;border-top:1px solid var(--border)}.section-title[data-v-e7440565]{margin:0;font-size:12px;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em}.push-test-button[data-v-e7440565]{align-self:flex-start;padding:6px 10px;background:var(--panel);border:1px solid var(--border);border-radius:4px;color:var(--fg);font:inherit;cursor:pointer}.push-test-button[data-v-e7440565]:disabled{opacity:.5;cursor:not-allowed}.pair-consume[data-v-285ce5b2]{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--border);border-radius:6px;background:#ffffff08}.pending[data-v-285ce5b2],.pair-error[data-v-285ce5b2]{display:flex;flex-direction:column;gap:6px;color:var(--fg-dim);font-size:13px}.pending p[data-v-285ce5b2],.pair-error p[data-v-285ce5b2]{margin:0}.step[data-v-285ce5b2],.elapsed[data-v-285ce5b2],.code[data-v-285ce5b2]{font-family:var(--font-mono);font-size:12px}.code[data-v-285ce5b2]{color:var(--bad)}.cancel[data-v-285ce5b2],.pair-error button[data-v-285ce5b2]{align-self:flex-start}.tab-pane[data-v-55932ce0]{display:flex;flex-direction:column;gap:12px}.account-section[data-v-55932ce0]{display:flex;flex-direction:column;gap:8px;padding-bottom:16px;border-bottom:1px solid var(--border)}.account-section[data-v-55932ce0]:last-child{border-bottom:none;padding-bottom:0}.account-section h3[data-v-55932ce0]{margin:0 0 4px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-dim)}.field-label[data-v-55932ce0]{font-size:12px;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em}.email-value[data-v-55932ce0]{margin:0;color:var(--fg);font-size:13px}.hint[data-v-55932ce0]{margin:0;color:var(--fg-dim);font-size:12px;line-height:1.5}.warning-text[data-v-55932ce0]{color:var(--bad)}.error[data-v-55932ce0]{color:var(--bad);font-size:12px;margin:0}.success[data-v-55932ce0]{color:var(--good);font-size:12px;margin:0}.relay-url-row[data-v-55932ce0]{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px}.checkbox-row[data-v-55932ce0]{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--fg-dim);font-size:12px}.checkbox-row input[data-v-55932ce0]{flex:0 0 auto}.inline-error[data-v-55932ce0]{color:var(--bad);font-size:12px;margin:0}input[type=text][data-v-55932ce0],input[type=email][data-v-55932ce0],select[data-v-55932ce0],input[type=password][data-v-55932ce0]{height:32px;padding:6px 10px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;font-size:13px}input[data-v-55932ce0]:focus{outline:none;box-shadow:0 0 0 2px var(--accent)}button.secondary[data-v-55932ce0]{align-self:flex-start;background:transparent;color:var(--fg-dim);border:1px solid var(--border);border-radius:6px;padding:6px 12px;font-size:13px;cursor:pointer}button.secondary[data-v-55932ce0]:hover:not(:disabled){color:var(--fg);background:#ffffff0a}button.secondary[data-v-55932ce0]:disabled{opacity:.5;cursor:not-allowed}button.primary-action[data-v-55932ce0]{background:var(--accent);border-color:var(--accent);color:#0d1117;font-weight:600}button.primary-action[data-v-55932ce0]:hover:not(:disabled){background:#79b8ff;color:#0d1117}.danger-btn[data-v-55932ce0]{align-self:flex-start;background:transparent;color:var(--bad);border:1px solid var(--bad);border-radius:6px;padding:6px 12px;font-size:13px;cursor:pointer}.danger-btn[data-v-55932ce0]:hover:not(:disabled){background:color-mix(in srgb,var(--bad) 8%,transparent 92%)}.danger-btn[data-v-55932ce0]:disabled{opacity:.5;cursor:not-allowed}.pairing-panel[data-v-45575575]{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--border);border-radius:10px}.title[data-v-45575575]{font-size:13px;font-weight:700;color:var(--fg)}.hint[data-v-45575575]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.45}.qr-wrap[data-v-45575575]{display:flex;flex-direction:column;align-items:center;gap:8px}.qr[data-v-45575575]{width:240px;height:240px;image-rendering:pixelated;background:#fff;padding:6px;border-radius:6px}.qr.dimmed[data-v-45575575]{opacity:.35}.countdown[data-v-45575575]{font-size:12px;color:var(--fg-dim)}.countdown.expired[data-v-45575575]{color:var(--bad)}.wrap-badge[data-v-45575575]{font-size:11px;color:var(--fg-dim);padding:2px 8px;border:1px solid var(--border);border-radius:4px}.wrap-warning[data-v-45575575]{font-size:11px;color:var(--warn);background:#ffc8000f;border-left:2px solid var(--warn);padding:6px 10px;margin:0;line-height:1.4;text-align:left;max-width:240px}.prefix[data-v-45575575]{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--fg-dim)}.error[data-v-45575575]{color:var(--bad);font-size:12px;margin:0}button[data-v-45575575]{height:30px;border:1px solid var(--accent);border-radius:7px;background:var(--accent);color:var(--bg);padding:0 12px;font-size:12px;font-weight:700;cursor:pointer}button[data-v-45575575]:disabled{opacity:.55}.url-label-row[data-v-100947b5]{display:flex;align-items:center;justify-content:space-between;gap:10px}.insecure-inline[data-v-100947b5]{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--fg-dim);text-transform:none;letter-spacing:normal;cursor:pointer;-webkit-user-select:none;user-select:none}.insecure-inline input[type=checkbox][data-v-100947b5]{margin:0}.url-input[data-v-100947b5]{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--bg)}.url-input[data-v-100947b5]:focus-within{box-shadow:0 0 0 2px var(--accent)}.url-scheme[data-v-100947b5]{display:inline-flex;align-items:center;padding:0 8px;font-size:13px;color:var(--fg-dim);background:color-mix(in srgb,var(--fg-dim) 12%,transparent 88%);border-right:1px solid var(--border);-webkit-user-select:none;user-select:none;white-space:nowrap}.url-input.insecure .url-scheme[data-v-100947b5]{color:var(--warn, #d97706)}.url-input input[data-v-100947b5]{flex:1;border:0;border-radius:0;background:transparent;min-width:0}.url-input input[data-v-100947b5]:focus{box-shadow:none}.auth-switch[data-v-100947b5]{-webkit-appearance:none;-moz-appearance:none;appearance:none;align-self:flex-start;background:transparent;border:0;padding:0;margin:-4px 0 0;font:inherit;font-size:12px;color:var(--fg-dim);cursor:pointer}.auth-switch[data-v-100947b5]:disabled{cursor:not-allowed;opacity:.5}.auth-switch-action[data-v-100947b5]{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.auth-switch:hover:not(:disabled) .auth-switch-action[data-v-100947b5]{text-decoration:none}.tab-pane[data-v-100947b5]{display:flex;flex-direction:column;gap:12px}.dim[data-v-100947b5]{color:var(--fg-dim);font-size:13px}.uplink-toggle-row[data-v-100947b5]{display:flex;align-items:center;gap:10px}.toggle-switch[data-v-100947b5]{display:inline-flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-switch.disabled[data-v-100947b5]{opacity:.5;cursor:not-allowed}.toggle-switch input[type=checkbox][data-v-100947b5]{position:absolute;opacity:0;width:0;height:0}.toggle-track[data-v-100947b5]{position:relative;display:inline-block;width:32px;height:18px;background:var(--fg-dim);border-radius:9px;transition:background .15s}.toggle-switch input:checked+.toggle-track[data-v-100947b5]{background:var(--good)}.toggle-thumb[data-v-100947b5]{position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--fg);border-radius:50%;transition:transform .15s}.toggle-switch input:checked+.toggle-track .toggle-thumb[data-v-100947b5]{transform:translate(14px)}.toggle-label[data-v-100947b5]{font-size:12px;color:var(--fg-dim);min-width:2.2em}.status-pill[data-v-100947b5]{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--border);border-radius:999px;font-size:12px;width:max-content}.status-pill .dot[data-v-100947b5]{font-size:10px;line-height:1}.status-pill.on .dot[data-v-100947b5]{color:var(--good)}.status-pill.off .dot[data-v-100947b5]{color:var(--fg-dim)}.status-pill.on[data-v-100947b5]{color:var(--good)}.status-pill.off[data-v-100947b5]{color:var(--fg-dim)}.status-pill.warn[data-v-100947b5],.status-pill.warn .dot[data-v-100947b5]{color:var(--warn, #d97706)}.status-pill.error[data-v-100947b5],.status-pill.error .dot[data-v-100947b5]{color:var(--bad)}.hint[data-v-100947b5]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.5}.field-label[data-v-100947b5]{font-size:12px;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em}.checkbox[data-v-100947b5]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--fg)}.error[data-v-100947b5]{color:var(--bad);font-size:12px;margin:0}.warning[data-v-100947b5]{color:var(--bad);font-size:12px;line-height:1.45;margin:0}input[type=text][data-v-100947b5],input[type=email][data-v-100947b5],input[type=password][data-v-100947b5]{height:32px;padding:6px 10px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;font-size:13px}input[data-v-100947b5]:focus{outline:none;box-shadow:0 0 0 2px var(--accent)}.password-field[data-v-100947b5]{position:relative;display:block}.password-field input[data-v-100947b5]{width:100%;padding-right:36px}.password-toggle[data-v-100947b5]{position:absolute;top:50%;right:8px;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;background:transparent;color:var(--fg-dim);border-radius:4px;cursor:pointer;transition:color .15s ease,background .15s ease}.password-toggle[data-v-100947b5]:hover:not(:disabled){color:var(--fg);background:color-mix(in srgb,var(--accent) 12%,transparent 88%)}.password-toggle[data-v-100947b5]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.password-toggle[data-v-100947b5]:disabled{opacity:.4;cursor:not-allowed}.danger-zone[data-v-100947b5]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:8px;padding-top:12px;border-top:1px solid var(--border)}.danger-zone-text[data-v-100947b5]{flex:1;min-width:0}.danger-btn[data-v-100947b5]{align-self:flex-start;background:transparent;color:var(--bad);border:1px solid var(--bad);border-radius:6px;padding:6px 12px;font-size:13px;cursor:pointer}.danger-btn[data-v-100947b5]:hover:not(:disabled){background:color-mix(in srgb,var(--bad) 8%,transparent 92%)}.danger-btn[data-v-100947b5]:disabled{opacity:.5;cursor:not-allowed}.log-lines[data-v-c9e8e2b4]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.log-line[data-v-c9e8e2b4]{display:block}.ts[data-v-c9e8e2b4]{color:var(--fg-dim);margin-right:6px}.lvl[data-v-c9e8e2b4]{margin-right:6px;font-weight:700}.tag[data-v-c9e8e2b4]{color:var(--accent);margin-right:6px}.msg[data-v-c9e8e2b4]{color:var(--fg)}.raw[data-v-c9e8e2b4],.lvl-DEBUG .lvl[data-v-c9e8e2b4],.lvl-DEBUG .msg[data-v-c9e8e2b4]{color:var(--fg-dim)}.lvl-INFO .lvl[data-v-c9e8e2b4]{color:var(--fg)}.lvl-WARN .lvl[data-v-c9e8e2b4],.lvl-WARN .msg[data-v-c9e8e2b4]{color:var(--warn, #d2a86a)}.lvl-ERROR .lvl[data-v-c9e8e2b4],.lvl-ERROR .msg[data-v-c9e8e2b4]{color:var(--bad)}.tab-pane[data-v-cd8d05fa]{display:flex;flex-direction:column;gap:14px}.dim[data-v-cd8d05fa]{color:var(--fg-dim);font-size:13px}.checkbox[data-v-cd8d05fa]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--fg)}.checkbox-row[data-v-cd8d05fa]{display:flex;align-items:center;gap:6px}.level-row[data-v-cd8d05fa]{display:flex;align-items:center;gap:8px}.level-label[data-v-cd8d05fa]{font-size:13px;color:var(--fg)}.level-select[data-v-cd8d05fa]{width:104px}.info-icon[data-v-cd8d05fa]{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border:1px solid var(--fg-dim);border-radius:50%;color:var(--fg-dim);font-size:10px;font-style:italic;line-height:1;cursor:help;-webkit-user-select:none;user-select:none}.info-icon[data-v-cd8d05fa]:hover{color:var(--fg);border-color:var(--fg)}.kv[data-v-cd8d05fa]{display:flex;align-items:flex-start;gap:12px;font-size:12px}.kv .k[data-v-cd8d05fa]{color:var(--fg-dim);width:130px}.kv .v[data-v-cd8d05fa]{color:var(--fg)}.kv .path[data-v-cd8d05fa]{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere}.actions[data-v-cd8d05fa]{display:flex;gap:8px}.error[data-v-cd8d05fa]{color:var(--bad);font-size:12px;margin:0}button[data-v-cd8d05fa]{height:32px;padding:6px 14px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:13px}button[data-v-cd8d05fa]:hover{background:#ffffff0a}.tail-wrap[data-v-cd8d05fa]{display:flex;flex-direction:column;gap:6px;margin-top:4px}.tail-header[data-v-cd8d05fa]{display:flex;align-items:center;gap:8px}.tail-label[data-v-cd8d05fa]{font-size:12px;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.04em;flex:1 1 auto}.tail-refresh[data-v-cd8d05fa]{height:24px;padding:2px 10px;font-size:12px}.tail-paused[data-v-cd8d05fa]{height:24px;padding:2px 10px;font-size:12px;flex:0 0 auto;color:var(--accent);border-color:var(--accent)}.tail-level[data-v-cd8d05fa]{width:104px;flex:0 0 auto}.tail-tag[data-v-cd8d05fa]{width:152px;flex:0 0 auto}.tail-empty[data-v-cd8d05fa]{color:var(--fg-dim);font-size:12px;margin:0}.tail-error[data-v-cd8d05fa]{color:var(--bad);font-size:12px;margin:0}.tail-content[data-v-cd8d05fa]{margin:0;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px;color:var(--fg);font-size:11px;line-height:1.45;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;max-height:280px;overflow:auto;white-space:pre-wrap;word-break:break-word}.tab-pane[data-v-c859d0af]{display:flex;flex-direction:column;gap:14px}.dim[data-v-c859d0af]{color:var(--fg-dim);font-size:13px}.grid[data-v-c859d0af]{display:grid;gap:6px;font-size:12px}.kv[data-v-c859d0af]{display:flex;align-items:flex-start;gap:12px}.kv .k[data-v-c859d0af]{color:var(--fg-dim);width:130px}.kv .v[data-v-c859d0af]{color:var(--fg)}.kv .path[data-v-c859d0af]{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere}.checkbox[data-v-c859d0af]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--fg)}.proxy-box[data-v-c859d0af]{display:grid;gap:6px}.field-label[data-v-c859d0af]{color:var(--fg-dim);font-size:12px}.proxy-row[data-v-c859d0af]{display:flex;gap:8px}.proxy-row input[data-v-c859d0af]{flex:1;min-width:0;height:32px;padding:6px 10px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;font:inherit;font-size:13px}.hint[data-v-c859d0af]{margin:0;color:var(--fg-dim);font-size:12px;line-height:1.4}.notes[data-v-c859d0af]{font-size:12px;color:var(--fg)}.notes summary[data-v-c859d0af]{color:var(--fg-dim);cursor:pointer}.notes pre[data-v-c859d0af]{background:var(--bg);border:1px solid var(--border);padding:8px;border-radius:6px;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;max-height:160px;overflow-y:auto;font-size:11px}.version-lines[data-v-c859d0af]{display:grid;gap:6px;font-size:13px;color:var(--fg)}.version-line label[data-v-c859d0af]{display:flex;align-items:center;gap:8px;cursor:pointer}.actions[data-v-c859d0af]{display:flex;gap:8px}.error[data-v-c859d0af]{color:var(--bad);font-size:12px;margin:0}button[data-v-c859d0af]{height:32px;padding:6px 14px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:13px}button[data-v-c859d0af]:hover:not(:disabled){background:#ffffff0a}button[data-v-c859d0af]:disabled{opacity:.5;cursor:default}button.primary[data-v-c859d0af]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}button.primary[data-v-c859d0af]:hover:not(:disabled){background:#79b8ff;border-color:#79b8ff}button.primary.danger[data-v-c859d0af]{background:var(--bad);color:#0d1117;border-color:var(--bad)}button.primary.danger[data-v-c859d0af]:hover:not(:disabled){background:#ff6f6a;border-color:#ff6f6a}button.secondary[data-v-c859d0af]{background:transparent;color:var(--fg-dim);border:1px solid var(--border)}button.secondary[data-v-c859d0af]:hover:not(:disabled){color:var(--fg);background:#ffffff0a}.translate-settings[data-v-2b2be568]{margin-top:8px;padding-top:8px;border-top:1px solid #2d333b;font-size:12px;display:flex;flex-direction:column;gap:8px}.translate-settings label[data-v-2b2be568]{display:flex;flex-direction:column;gap:3px}.translate-settings label span[data-v-2b2be568]{opacity:.7;font-size:11px}.translate-settings input[data-v-2b2be568],.translate-settings select[data-v-2b2be568]{background:#00000040;color:inherit;border:1px solid #2d333b;border-radius:3px;padding:4px 6px;font-size:12px}.extra-params[data-v-2b2be568]{background:#00000040;color:inherit;border:1px solid #2d333b;border-radius:3px;padding:4px 6px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical;min-height:56px}.extra-params-error[data-v-2b2be568]{color:#f87171;font-size:11px}.hint[data-v-2b2be568]{opacity:.55;font-size:11px}.muted[data-v-2b2be568]{opacity:.55;font-size:11px;margin:4px 0 0}.settings-plugins[data-v-a25af5cc]{padding:12px 16px;color:var(--settings-fg, #c9d1d9)}.hint[data-v-a25af5cc]{margin:0 0 12px;font-size:12px;opacity:.7}.plugin-list[data-v-a25af5cc]{list-style:none;margin:0;padding:0}.plugin-row[data-v-a25af5cc]{border:1px solid #2d333b;border-radius:6px;padding:10px 12px;margin-bottom:8px}.row-head[data-v-a25af5cc]{display:flex;align-items:center;gap:8px;font-weight:600}.desc[data-v-a25af5cc]{margin:6px 0 0 24px;font-size:12px;opacity:.7}.empty[data-v-a25af5cc]{font-size:12px;opacity:.5}.fe-settings[data-v-a25af5cc]{margin-top:8px;padding-top:8px;border-top:1px solid #2d333b;font-size:12px;display:flex;flex-direction:column;gap:6px}.fe-settings label[data-v-a25af5cc]{display:inline-flex;align-items:center;gap:6px}.fe-settings .muted[data-v-a25af5cc]{margin:6px 0 0;opacity:.6;font-size:11px}.widget-settings[data-v-a25af5cc]{margin:8px 0 0 24px;padding-top:8px;border-top:1px solid #2d333b;font-size:12px}.widget-settings label[data-v-a25af5cc]{display:inline-flex;align-items:center;gap:6px}.widget-settings .muted[data-v-a25af5cc]{margin:6px 0 0;opacity:.6;font-size:11px}.hotkey-cell[data-v-80cabc38]{font-family:SF Mono,Menlo,monospace;font-size:12px;background:#0d1117;border:1px solid #2d333b;color:#c9d1d9;padding:3px 8px;border-radius:4px;cursor:pointer;min-width:160px;text-align:left}.hotkey-cell[data-v-80cabc38]:hover{background:#161b22}.hotkey-cell.capturing[data-v-80cabc38]{background:#58a6ff1f;border-color:var(--accent);color:var(--accent)}.hotkey-cell.empty[data-v-80cabc38]{color:#6e7681;font-style:italic}.shortcut-settings[data-v-05d9d72b]{padding:8px 4px;font-size:12px;color:var(--fg)}.shortcut-group[data-v-05d9d72b]{margin-bottom:18px}.shortcut-group h3[data-v-05d9d72b]{margin:4px 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-dim)}.shortcut-row[data-v-05d9d72b]{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:4px 0}.label[data-v-05d9d72b]{color:var(--fg)}.reset-row[data-v-05d9d72b]{background:transparent;border:1px solid #2d333b;color:var(--fg-dim);padding:2px 8px;border-radius:4px;cursor:pointer}.reset-row[data-v-05d9d72b]:hover{background:#ffffff0a;color:var(--fg)}.conflict[data-v-05d9d72b]{grid-column:1 / -1;color:#f85149;font-size:11px;padding-left:4px}.actions-row[data-v-05d9d72b]{display:flex;gap:8px;margin-top:12px;align-items:center}.spacer[data-v-05d9d72b]{flex:1}.actions-row button[data-v-05d9d72b]{background:#21262d;border:1px solid #2d333b;color:#c9d1d9;padding:4px 12px;border-radius:4px;cursor:pointer}.actions-row button[data-v-05d9d72b]:disabled{opacity:.4;cursor:default}.actions-row .save[data-v-05d9d72b]{background:var(--accent);color:#0d1117;border-color:var(--accent)}.actions-row .save[data-v-05d9d72b]:disabled{background:#21262d;color:#c9d1d9;border-color:#2d333b}.error[data-v-05d9d72b]{color:#f85149;font-size:12px;margin:8px 0 0}@media (max-width: 640px){.shortcut-row[data-v-05d9d72b]{grid-template-columns:minmax(0,1fr) minmax(0,140px) auto}.shortcut-row[data-v-05d9d72b] .hotkey-cell{min-width:0;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions-row[data-v-05d9d72b]{flex-wrap:wrap}}.diag[data-v-1a4e377a]{display:flex;flex-direction:column;gap:10px}.hint[data-v-1a4e377a]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.5}.preview[data-v-1a4e377a]{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px;font-family:ui-monospace,Menlo,monospace;font-size:11px;line-height:1.4;max-height:320px;overflow:auto;white-space:pre;color:var(--fg);margin:0}.row[data-v-1a4e377a]{display:flex;gap:8px;align-items:center}button[data-v-1a4e377a]{height:30px;border:1px solid var(--accent);border-radius:7px;background:var(--accent);color:var(--bg);padding:0 12px;font-size:12px;font-weight:700;cursor:pointer}.status[data-v-1a4e377a]{font-size:12px;color:var(--fg-dim)}.configio[data-v-9ef7411c]{display:flex;flex-direction:column;gap:16px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.configio-section[data-v-9ef7411c]{display:flex;flex-direction:column;gap:8px}.section-title[data-v-9ef7411c]{margin:0;font-size:13px}.hint[data-v-9ef7411c]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.5}.checkbox[data-v-9ef7411c]{display:flex;align-items:center;gap:6px;font-size:12px}.row[data-v-9ef7411c]{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.status[data-v-9ef7411c]{font-size:12px;color:var(--fg-dim)}.status.error[data-v-9ef7411c]{color:var(--bad)}.file-input[data-v-9ef7411c]{display:none}.configio-preview[data-v-9ef7411c],.configio-report[data-v-9ef7411c]{border:1px solid var(--border);border-radius:6px;padding:10px;background:var(--bg);display:flex;flex-direction:column;gap:6px}.configio-preview h5[data-v-9ef7411c],.configio-report h5[data-v-9ef7411c]{margin:0;font-size:12px}.configio-preview h6[data-v-9ef7411c],.configio-report h6[data-v-9ef7411c]{margin:4px 0 2px;font-size:11px;color:var(--fg-dim)}.configio-preview ul[data-v-9ef7411c],.configio-report ul[data-v-9ef7411c]{margin:0;padding-left:18px;font-size:12px}button[data-v-9ef7411c]{height:30px;border:1px solid var(--accent);border-radius:7px;background:var(--accent);color:var(--bg);padding:0 12px;font-size:12px;font-weight:700;cursor:pointer}button[data-v-9ef7411c]:disabled{opacity:.5;cursor:default}.snippet-run-overlay[data-v-ca33db20]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:60}.snippet-run-panel[data-v-ca33db20]{background:#11182b;border:1px solid #1e2638;border-radius:11px;padding:16px 18px;min-width:360px;max-width:560px;max-height:80vh;overflow-y:auto;display:flex;flex-direction:column;gap:12px;color:#e6e7ea}.hint[data-v-ca33db20]{font-size:12px;color:var(--fg-dim);margin:0}.host-list[data-v-ca33db20]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:40vh;overflow-y:auto}.host-list label[data-v-ca33db20]{display:flex;align-items:center;gap:8px;font-size:.85rem}.rows[data-v-ca33db20]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.row[data-v-ca33db20]{border:1px solid var(--border);border-radius:6px;padding:8px 10px;background:var(--bg);display:flex;flex-direction:column;gap:4px}.row-head[data-v-ca33db20]{display:flex;justify-content:space-between;align-items:center;gap:8px}.row-host[data-v-ca33db20]{font-weight:600;font-family:var(--font-mono);font-size:.85rem}.row-state[data-v-ca33db20]{font-size:.78rem}.row.state-ok .row-state[data-v-ca33db20]{color:var(--good, #3fb950)}.row.state-failed .row-state[data-v-ca33db20],.row.state-error .row-state[data-v-ca33db20]{color:var(--bad)}.row.state-running .row-state[data-v-ca33db20]{color:var(--accent)}.row-exitcode[data-v-ca33db20]{font-size:.74rem;color:var(--fg-dim);font-family:var(--font-mono)}.row-output[data-v-ca33db20]{font-family:var(--font-mono);font-size:.76rem;white-space:pre-wrap;word-break:break-word;background:#ffffff08;border-radius:4px;padding:6px 8px;margin:0;max-height:30vh;overflow-y:auto}.row-truncated[data-v-ca33db20]{font-size:.72rem;color:var(--fg-dim);margin:0;font-style:italic}.error[data-v-ca33db20]{color:var(--bad);font-size:.75rem;margin:0}.footer[data-v-ca33db20]{display:flex;gap:8px;justify-content:flex-end}.footer .primary[data-v-ca33db20]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}.tab-pane[data-v-d57ad1d6]{display:flex;flex-direction:column;gap:10px}.hint[data-v-d57ad1d6]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.5}.show-toggle[data-v-d57ad1d6]{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--fg)}.list[data-v-d57ad1d6]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.row[data-v-d57ad1d6]{display:grid;grid-template-columns:7rem 1fr 5rem auto;gap:8px;align-items:center;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:6px}.label[data-v-d57ad1d6]{font-weight:600;font-family:var(--font-mono);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text[data-v-d57ad1d6]{font-family:var(--font-mono);font-size:.78rem;color:var(--fg-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hotkey[data-v-d57ad1d6]{font-family:var(--font-mono);font-size:.74rem;color:var(--fg-dim);text-align:center}.actions[data-v-d57ad1d6]{display:flex;gap:4px}.actions button[data-v-d57ad1d6]{height:24px;padding:0 8px;font-size:.74rem}.actions .del[data-v-d57ad1d6]{color:var(--bad);border-color:#f8514966}.edit-row[data-v-d57ad1d6]{display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--panel);border:1px solid var(--accent);border-radius:6px}.edit-top[data-v-d57ad1d6]{display:grid;grid-template-columns:1fr 8rem;gap:8px}.edit-row input[data-v-d57ad1d6],.edit-row textarea[data-v-d57ad1d6]{padding:6px 8px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:4px;font-size:.85rem;font-family:var(--font-mono);width:100%;box-sizing:border-box}.edit-row input[data-v-d57ad1d6]{height:28px}.edit-row textarea[data-v-d57ad1d6]{resize:vertical;min-height:60px;line-height:1.4}.edit-actions[data-v-d57ad1d6]{display:flex;gap:6px;justify-content:flex-end}.edit-actions button[data-v-d57ad1d6]{height:28px;padding:0 14px;font-size:.78rem}.edit-actions .primary[data-v-d57ad1d6]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}.footer[data-v-d57ad1d6]{display:flex;gap:8px;align-items:center}.error[data-v-d57ad1d6]{color:var(--bad);font-size:.75rem}.dialog-backdrop[data-v-d57ad1d6]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:50}.dialog[data-v-d57ad1d6]{background:#11182b;padding:14px 18px;border:1px solid #1e2638;border-radius:11px;max-width:320px;display:flex;flex-direction:column;gap:10px;color:#e6e7ea}@media (max-width: 640px){.row[data-v-d57ad1d6]{grid-template-columns:minmax(0,1fr) auto}.text[data-v-d57ad1d6]{grid-column:1 / -1;grid-row:2}.hotkey[data-v-d57ad1d6]{grid-column:2;grid-row:1}.actions[data-v-d57ad1d6]{grid-column:1 / -1;flex-wrap:wrap}.edit-top[data-v-d57ad1d6]{grid-template-columns:minmax(0,1fr)}}.tab-pane[data-v-41aa374f]{display:flex;flex-direction:column;gap:10px}.hint[data-v-41aa374f]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.5}.list[data-v-41aa374f]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.row[data-v-41aa374f]{display:grid;grid-template-columns:9rem 1fr 1fr auto;gap:8px;align-items:center;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:6px}.name[data-v-41aa374f]{font-weight:600;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:6px}.badge[data-v-41aa374f]{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);border:1px solid var(--accent);border-radius:3px;padding:1px 4px}.detail[data-v-41aa374f]{font-family:var(--font-mono);font-size:.78rem;color:var(--fg-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions[data-v-41aa374f]{display:flex;gap:4px}.actions button[data-v-41aa374f]{height:24px;padding:0 8px;font-size:.74rem}.actions .del[data-v-41aa374f]{color:var(--bad);border-color:#f8514966}.edit-row[data-v-41aa374f]{display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--panel);border:1px solid var(--accent);border-radius:6px}.edit-input[data-v-41aa374f]{padding:6px 8px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:4px;font-size:.85rem;font-family:var(--font-mono);width:100%;box-sizing:border-box;height:28px}.edit-textarea[data-v-41aa374f]{height:auto;resize:vertical;min-height:60px;line-height:1.4}.checkbox[data-v-41aa374f]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--fg)}.edit-actions[data-v-41aa374f]{display:flex;gap:6px;justify-content:flex-end}.edit-actions button[data-v-41aa374f]{height:28px;padding:0 14px;font-size:.78rem}.edit-actions .primary[data-v-41aa374f]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}.footer[data-v-41aa374f]{display:flex;gap:8px;align-items:center}.error[data-v-41aa374f]{color:var(--bad);font-size:.75rem}@media (max-width: 640px){.row[data-v-41aa374f]{grid-template-columns:repeat(2,minmax(0,1fr))}.name[data-v-41aa374f]{grid-column:1 / -1}.actions[data-v-41aa374f]{grid-column:1 / -1;flex-wrap:wrap;justify-content:flex-end}}.section-title[data-v-d7749d1b]{font-size:14px;font-weight:500;margin:0 0 12px}.preset-list[data-v-d7749d1b]{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.preset-option[data-v-d7749d1b]{display:flex;gap:10px;padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:4px;cursor:pointer}.preset-option[data-v-d7749d1b]:hover{background:#ffffff08}.preset-name[data-v-d7749d1b]{font-weight:500}.preset-desc[data-v-d7749d1b]{font-size:12px;opacity:.7;margin:4px 0}.preset-preview[data-v-d7749d1b]{display:flex;gap:10px;margin-top:6px}.expand-toggle[data-v-d7749d1b]{display:flex;align-items:center;gap:8px;padding:6px 0}.group-by-row[data-v-d7749d1b]{display:flex;align-items:center;gap:14px;margin-bottom:10px;flex-wrap:wrap}.group-by-label[data-v-d7749d1b]{font-size:13px}.group-by-option[data-v-d7749d1b]{display:flex;align-items:center;gap:4px;font-size:13px;cursor:pointer}.feishu-fieldset[data-v-2aad46af]{border:none;padding:0;margin:0}.field-label[data-v-2aad46af]{display:flex;flex-direction:column;gap:.25rem;font-size:13px;color:var(--fg-dim)}.field-input[data-v-2aad46af]{padding:6px 10px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;font-size:13px}.actions[data-v-2aad46af]{display:flex;gap:.5rem;margin-top:.25rem}.feishu-configured[data-v-2aad46af]{display:flex;flex-direction:column;gap:.75rem}.configured-line[data-v-2aad46af]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:0;font-size:13px}.configured-badge[data-v-2aad46af]{display:inline-block;padding:2px 8px;border-radius:4px;background:var(--good);color:var(--bg);font-size:12px}.configured-appid[data-v-2aad46af]{color:var(--fg-dim);font-family:var(--mono, monospace)}.callback-row[data-v-2aad46af]{display:flex;gap:.5rem;align-items:center}.callback-row .field-input[data-v-2aad46af]{flex:1;font-family:var(--mono, monospace)}.btn-secondary[data-v-2aad46af]{background:transparent;color:var(--fg-dim);border:1px solid var(--border);border-radius:6px;padding:6px 12px;font-size:13px;cursor:pointer}.error[data-v-2aad46af]{color:#f87171;font-size:13px}.test-send[data-v-2aad46af]{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:12px 0;margin:4px 0;display:flex;flex-direction:column;gap:6px}.test-send__title[data-v-2aad46af]{font-size:13px;font-weight:600;color:var(--fg);margin:0}.test-send .hint[data-v-2aad46af]{margin:0}.test-send__buttons[data-v-2aad46af]{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.test-send__buttons .btn-secondary[data-v-2aad46af]:disabled{opacity:.5;cursor:default}.test-send__ok[data-v-2aad46af]{color:var(--good);font-size:13px;margin:0}.pair-hint[data-v-2aad46af]{font-size:13px;color:var(--fg-dim);margin-top:.5rem}.hint[data-v-2aad46af]{font-size:13px;color:var(--fg-dim);margin:0 0 1rem}.feishu-status-error[data-v-2aad46af]{display:flex;align-items:center;gap:8px;color:var(--warn)}.hook-install[data-v-2aad46af]{padding:8px 0 12px;border-bottom:1px solid var(--border);margin-bottom:12px}.hook-install__row[data-v-2aad46af]{display:flex;align-items:center;gap:8px}.hook-install__dot[data-v-2aad46af]{display:inline-block;width:8px;height:8px;border-radius:50%}.hook-install__dot--green[data-v-2aad46af]{background:var(--good)}.hook-install__dot--amber[data-v-2aad46af]{background:var(--warn)}.hook-install__dot--gray[data-v-2aad46af]{background:var(--neutral)}.hook-install__label[data-v-2aad46af]{flex:1;font-size:13px}.hook-install__toggle[data-v-2aad46af]{display:flex;gap:4px;align-items:center;font-size:12px}.hook-install__retry[data-v-2aad46af]{font-size:12px;padding:2px 8px}.hook-install__error[data-v-2aad46af]{font-size:12px;color:var(--warn);margin:6px 0 0}.ai-only[data-v-2aad46af]{padding:0 0 12px;border-bottom:1px solid var(--border);margin-bottom:12px}.ai-only__toggle[data-v-2aad46af]{display:flex;gap:6px;align-items:center;font-size:13px}.remote-terminal[data-v-2aad46af]{padding:0 0 12px;border-bottom:1px solid var(--border);margin-bottom:12px;display:flex;flex-direction:column;gap:8px}.remote-terminal__toggle[data-v-2aad46af]{display:flex;gap:6px;align-items:center;font-size:13px}.remote-terminal__attach-label[data-v-2aad46af]{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--fg-dim);padding-left:22px}.remote-terminal__attach-select[data-v-2aad46af]{width:220px}.feishu-mode[data-v-2aad46af]{margin:8px 0}.feishu-mode__label[data-v-2aad46af]{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--fg-dim)}.feishu-mode__label-text[data-v-2aad46af]{flex-shrink:0}.feishu-mode__select[data-v-2aad46af]{width:240px}.feishu-mode__effective[data-v-2aad46af]{margin:4px 0 0;font-size:12px;color:var(--fg-dim, #999)}.feishu-mode__warn[data-v-2aad46af]{color:var(--warn, #d89614);margin-left:8px}.tab-pane[data-v-6015f38d]{display:flex;flex-direction:column;gap:12px}.dim[data-v-6015f38d]{color:var(--fg-dim);font-size:13px}.hint[data-v-6015f38d]{margin:0;color:var(--fg-dim);font-size:12px;line-height:1.5}.error[data-v-6015f38d]{color:var(--bad);font-size:12px;margin:0}.header-row[data-v-6015f38d]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.header-actions[data-v-6015f38d]{display:flex;align-items:center;gap:8px;flex-shrink:0}.icon-btn[data-v-6015f38d]{width:28px;height:28px;padding:0;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--fg-dim);cursor:pointer;font-size:14px}.icon-btn[data-v-6015f38d]:hover:not(:disabled){color:var(--fg);background:#ffffff0a}.icon-btn[data-v-6015f38d]:disabled{opacity:.5;cursor:not-allowed}button.secondary[data-v-6015f38d]{background:transparent;color:var(--fg-dim);border:1px solid var(--border);border-radius:6px;padding:6px 12px;font-size:13px;cursor:pointer}button.secondary[data-v-6015f38d]:hover:not(:disabled){color:var(--fg);background:#ffffff0a}button.secondary[data-v-6015f38d]:disabled{opacity:.5;cursor:not-allowed}.device-list[data-v-6015f38d]{display:flex;flex-direction:column;border-top:1px solid var(--border)}.device-row[data-v-6015f38d]{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.device-info[data-v-6015f38d]{flex:1;min-width:0}.ua[data-v-6015f38d]{color:var(--fg);font-size:13px;overflow-wrap:anywhere}.meta[data-v-6015f38d]{color:var(--fg-dim);font-size:12px;margin-top:2px}.current-tag[data-v-6015f38d]{color:var(--fg-dim);font-size:12px;padding:2px 8px;border:1px solid var(--border);border-radius:999px;flex-shrink:0}.danger-btn[data-v-6015f38d]{background:transparent;color:var(--bad);border:1px solid var(--bad);border-radius:6px;padding:6px 12px;font-size:13px;cursor:pointer;flex-shrink:0}.danger-btn[data-v-6015f38d]:hover:not(:disabled){background:color-mix(in srgb,var(--bad) 8%,transparent 92%)}.danger-btn[data-v-6015f38d]:disabled{opacity:.5;cursor:not-allowed}.received-files[data-v-4b01c574]{display:flex;flex-direction:column;gap:12px;padding:8px 4px}.header[data-v-4b01c574]{display:flex;justify-content:space-between;align-items:center}.actions[data-v-4b01c574]{display:flex;gap:8px}.actions button[data-v-4b01c574]{padding:4px 10px}.actions button.danger[data-v-4b01c574]{color:#d33}.muted[data-v-4b01c574]{color:var(--fg-dim, #999);font-size:.875rem}.error[data-v-4b01c574]{color:#d33;padding:4px 0;font-size:.875rem}.sessions[data-v-4b01c574]{list-style:none;padding:0;margin:0}.session[data-v-4b01c574]{border-bottom:1px solid var(--border, #333);padding:8px 0}.session-row[data-v-4b01c574]{display:flex;align-items:center;gap:8px;cursor:pointer}.session-name[data-v-4b01c574]{font-weight:500}.session-clear[data-v-4b01c574]{margin-left:auto;padding:2px 8px;font-size:.85rem}.session-clear.danger[data-v-4b01c574]{color:#d33}.files[data-v-4b01c574]{list-style:none;padding-left:16px;margin:4px 0 0}.files li[data-v-4b01c574]{display:flex;align-items:center;gap:8px;padding:2px 0}.file-name[data-v-4b01c574]{font-family:monospace;font-size:.875rem}.file-delete[data-v-4b01c574]{margin-left:auto;font-size:.8rem;padding:1px 6px}.file-delete.danger[data-v-4b01c574]{color:#d33}.empty[data-v-4b01c574]{color:var(--fg-dim, #999);padding:8px 0}@media (max-width: 640px){.header[data-v-4b01c574]{flex-wrap:wrap;align-items:flex-start;gap:8px}.actions[data-v-4b01c574],.session-row[data-v-4b01c574],.files li[data-v-4b01c574]{flex-wrap:wrap}.file-name[data-v-4b01c574]{min-width:0;overflow-wrap:anywhere}}.mobile-profiles[data-v-1c4c4dd0]{display:flex;flex-direction:column;gap:12px}.hint[data-v-1c4c4dd0]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.5}.status[data-v-1c4c4dd0]{font-size:13px;color:var(--fg-dim);margin:0}.status.error[data-v-1c4c4dd0]{color:var(--bad)}.profile-list[data-v-1c4c4dd0]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.profile-item[data-v-1c4c4dd0]{border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--bg)}.profile-header[data-v-1c4c4dd0]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.profile-name[data-v-1c4c4dd0]{font-weight:600;font-size:13px;color:var(--fg);flex:1}.badge[data-v-1c4c4dd0]{font-size:11px;padding:1px 6px;border-radius:4px;background:#58a6ff29;color:var(--accent)}.host-picker[data-v-1c4c4dd0]{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--fg-dim)}.host-picker select[data-v-1c4c4dd0]{font-size:12px;padding:2px 6px}.open-btn[data-v-1c4c4dd0]{font-size:12px;padding:3px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--fg);cursor:pointer}.open-btn[data-v-1c4c4dd0]:disabled{opacity:.5;cursor:default}.profile-fields[data-v-1c4c4dd0]{margin:0;display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:12px}.profile-fields dt[data-v-1c4c4dd0]{color:var(--fg-dim)}.profile-fields dd[data-v-1c4c4dd0]{margin:0;color:var(--fg);word-break:break-all}.env-list[data-v-1c4c4dd0]{list-style:none;margin:0;padding:0}.mobile-hosts[data-v-721a37c4]{display:flex;flex-direction:column;gap:12px}.hint[data-v-721a37c4]{font-size:12px;color:var(--fg-dim);margin:0;line-height:1.5}.status[data-v-721a37c4]{font-size:13px;color:var(--fg-dim);margin:0}.status.error[data-v-721a37c4]{color:var(--bad)}.host-list[data-v-721a37c4]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.host-item[data-v-721a37c4]{border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--bg)}.host-header[data-v-721a37c4]{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}.host-alias[data-v-721a37c4]{font-weight:600;font-size:13px;color:var(--fg)}.host-target[data-v-721a37c4]{font-size:12px;color:var(--fg-dim)}.badge[data-v-721a37c4]{font-size:11px;padding:1px 6px;border-radius:4px;background:#58a6ff29;color:var(--accent)}.badge-warn[data-v-721a37c4]{background:#f8514929;color:var(--bad)}.host-fields[data-v-721a37c4]{margin:0;display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:12px}.host-fields dt[data-v-721a37c4]{color:var(--fg-dim)}.host-fields dd[data-v-721a37c4]{margin:0;color:var(--fg);word-break:break-all}.sync-indicator[data-v-3da58fd3]{display:flex;flex-direction:column;gap:4px;font-size:.78rem}.sync-row[data-v-3da58fd3]{display:flex;align-items:center;gap:8px}.sync-dot[data-v-3da58fd3]{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--fg-dim)}.sync-dot.state-idle[data-v-3da58fd3]{background:var(--good, #3fb950)}.sync-dot.state-syncing[data-v-3da58fd3]{background:var(--accent)}.sync-dot.state-offline[data-v-3da58fd3]{background:var(--fg-dim)}.sync-dot.state-error[data-v-3da58fd3]{background:var(--bad)}.sync-state[data-v-3da58fd3]{color:var(--fg)}.sync-state[data-state=error][data-v-3da58fd3]{color:var(--bad)}.sync-state[data-state=offline][data-v-3da58fd3],.sync-last[data-v-3da58fd3],.sync-pending[data-v-3da58fd3]{color:var(--fg-dim)}.sync-pending[data-v-3da58fd3]{font-weight:600}.sync-now-btn[data-v-3da58fd3]{margin-left:auto;font-size:.76rem;padding:2px 8px}.sync-error[data-v-3da58fd3]{color:var(--bad);margin:0}.sync-notice[data-v-3da58fd3]{display:flex;flex-direction:column;gap:4px;border:1px solid var(--border);border-radius:6px;padding:6px 8px;background:var(--bg)}.sync-notice-adopted[data-v-3da58fd3],.sync-notice-conflict[data-v-3da58fd3]{margin:0}.sync-notice-dismiss[data-v-3da58fd3]{align-self:flex-end;font-size:.72rem;padding:2px 8px}.backdrop[data-v-3b3531ba]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:110}.dialog[data-v-3b3531ba]{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px 24px;width:460px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:12px}.dialog h2[data-v-3b3531ba]{margin:0;font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-dim)}.dialog p[data-v-3b3531ba]{margin:0;font-size:13px;color:var(--fg);line-height:1.5}.dialog ul[data-v-3b3531ba]{margin:0;padding-left:18px;font-size:13px;color:var(--fg);line-height:1.6}.dialog .dim[data-v-3b3531ba]{color:var(--fg-dim);font-size:12px}.dialog .warn[data-v-3b3531ba]{color:#d29922;font-size:12px}.row[data-v-3b3531ba]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.primary[data-v-3b3531ba]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}.primary[data-v-3b3531ba]:hover{background:#79b8ff;border-color:#79b8ff;color:#0d1117}.primary.danger[data-v-3b3531ba]{background:var(--bad);color:#0d1117;border-color:var(--bad)}.primary.danger[data-v-3b3531ba]:hover{background:#ff6f6a;border-color:#ff6f6a;color:#0d1117}.backdrop[data-v-b060bffd]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:110}.dialog[data-v-b060bffd]{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px 24px;width:min(860px,calc(100vw - 32px));max-height:calc(100vh - 32px);box-sizing:border-box;display:flex;flex-direction:column;gap:12px}.header[data-v-b060bffd]{display:flex;flex-direction:column;gap:4px}.header h2[data-v-b060bffd]{margin:0;font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-dim)}.path[data-v-b060bffd]{color:var(--fg-dim);font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere}.content-wrap[data-v-b060bffd]{min-height:0;display:flex;flex-direction:column;gap:8px}.content[data-v-b060bffd]{margin:0;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:12px;overflow:auto;min-height:200px;max-height:calc(100vh - 220px);color:var(--fg);font-size:11px;line-height:1.45;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.row[data-v-b060bffd]{display:flex;justify-content:flex-end;gap:8px}.hint[data-v-b060bffd],.empty[data-v-b060bffd]{color:var(--fg-dim);font-size:12px}.error[data-v-b060bffd]{color:var(--bad);font-size:12px}.primary[data-v-b060bffd]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}.lvl-filter[data-v-b060bffd]{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--fg-dim);margin-right:auto}.lvl-filter-select[data-v-b060bffd]{width:104px}.tag-filter-select[data-v-b060bffd]{width:168px}.backdrop[data-v-5e0ae162]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.settings-dialog[data-v-5e0ae162]{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:720px;height:540px;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.settings-header[data-v-5e0ae162]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.settings-header h2[data-v-5e0ae162]{margin:0;font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-dim)}.header-sync-indicator[data-v-5e0ae162]{flex:1;min-width:0;margin:0 16px}.close-btn[data-v-5e0ae162]{background:transparent;border:none;color:var(--fg-dim);font-size:18px;line-height:1;cursor:pointer;padding:4px 8px;border-radius:4px}.close-btn[data-v-5e0ae162]:hover:not(:disabled){background:#ffffff0f;color:var(--fg)}.settings-body[data-v-5e0ae162]{flex:1 1 auto;display:flex;min-height:0}.settings-nav[data-v-5e0ae162]{width:160px;flex:0 0 160px;border-right:1px solid var(--border);display:flex;flex-direction:column;padding:8px 6px;gap:2px}.settings-nav-item[data-v-5e0ae162]{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:transparent;border:none;color:var(--fg-dim);padding:8px 12px;border-radius:6px;cursor:pointer;font-size:13px}.settings-nav-item .nav-icon[data-v-5e0ae162]{display:inline-flex;width:16px;height:16px;flex:0 0 16px;color:var(--fg-dim)}.settings-nav-item .nav-icon[data-v-5e0ae162] svg{width:16px;height:16px}.settings-nav-item.active .nav-icon[data-v-5e0ae162]{color:var(--accent)}.settings-nav-item .nav-label[data-v-5e0ae162]{flex:1 1 auto;min-width:0}.settings-nav-item[data-v-5e0ae162]:hover{background:#ffffff0a;color:var(--fg)}.settings-nav-item.active[data-v-5e0ae162]{background:#58a6ff1f;color:var(--accent);font-weight:600}.settings-pane[data-v-5e0ae162]{flex:1 1 auto;padding:20px 24px;overflow-y:auto}.settings-pane-header[data-v-5e0ae162]{display:flex;align-items:baseline;gap:10px;margin:0 0 16px}.settings-pane-title[data-v-5e0ae162]{margin:0;font-size:20px;font-weight:600;letter-spacing:-.01em;color:var(--fg)}.settings-pane-subtitle[data-v-5e0ae162]{font-size:12px;color:var(--fg-dim)}.settings-footer[data-v-5e0ae162]{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.settings-footer button[data-v-5e0ae162]{height:32px;padding:6px 14px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:13px}.settings-footer button[data-v-5e0ae162]:hover:not(:disabled){background:#ffffff0a}.settings-footer button[data-v-5e0ae162]:disabled{opacity:.5;cursor:default}.settings-footer .primary[data-v-5e0ae162]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}.settings-footer .primary[data-v-5e0ae162]:hover:not(:disabled){background:#79b8ff;border-color:#79b8ff}.settings-footer .danger[data-v-5e0ae162]{border-color:var(--bad);color:var(--bad)}.settings-footer .danger[data-v-5e0ae162]:hover:not(:disabled){background:#f851491a}.version-footer[data-v-5e0ae162]{flex:0 0 auto;padding:4px 16px 8px;font-size:11px;color:var(--fg-dim);text-align:right}.diag-merged[data-v-5e0ae162]{display:flex;flex-direction:column;gap:20px}.merged-section[data-v-5e0ae162]{display:flex;flex-direction:column;gap:10px}.merged-section+.merged-section[data-v-5e0ae162]{border-top:1px solid var(--border);padding-top:18px}.merged-section-title[data-v-5e0ae162]{margin:0;font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-dim)}.discard-backdrop[data-v-5e0ae162]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:105}.discard-dialog[data-v-5e0ae162]{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px 24px;width:380px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:12px}.discard-dialog h3[data-v-5e0ae162]{margin:0;font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-dim)}.discard-dialog p[data-v-5e0ae162]{margin:0;font-size:13px;color:var(--fg);line-height:1.5}.discard-row[data-v-5e0ae162]{display:flex;justify-content:flex-end;gap:8px}.discard-row button[data-v-5e0ae162]{height:32px;padding:6px 14px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:13px}.discard-row button[data-v-5e0ae162]:hover{background:#ffffff0a}.discard-row .danger[data-v-5e0ae162]{border-color:var(--bad);color:var(--bad)}.discard-row .danger[data-v-5e0ae162]:hover{background:#f851491a}@media (max-width: 640px){.backdrop[data-v-5e0ae162]{align-items:stretch;justify-content:stretch;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}.settings-dialog[data-v-5e0ae162]{width:100vw;height:auto;max-width:100vw;max-height:100dvh;border-left:none;border-right:none;border-radius:0}.settings-header[data-v-5e0ae162]{padding:10px 12px}.settings-body[data-v-5e0ae162]{flex-direction:column}.settings-nav[data-v-5e0ae162]{width:100%;flex:0 0 auto;flex-direction:row;overflow-x:auto;overflow-y:hidden;border-right:none;border-bottom:1px solid var(--border);padding:6px 8px;scrollbar-width:none}.settings-nav[data-v-5e0ae162]::-webkit-scrollbar{display:none}.settings-nav-item[data-v-5e0ae162]{flex:0 0 auto;width:auto;min-height:34px;padding:6px 10px;white-space:nowrap}.settings-pane[data-v-5e0ae162]{min-height:0;padding:14px 16px 18px}.settings-pane-header[data-v-5e0ae162]{margin-bottom:12px}.settings-pane-title[data-v-5e0ae162]{font-size:18px}.settings-footer[data-v-5e0ae162]{padding:10px 12px}.version-footer[data-v-5e0ae162]{padding:4px 12px 8px}}.backdrop[data-v-c791c224]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:110}.dialog[data-v-c791c224]{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px 24px;width:460px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:10px}.dialog h2[data-v-c791c224]{margin:0;font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-dim)}.dialog label[data-v-c791c224]{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--fg-dim)}.dialog label.inline[data-v-c791c224]{flex-direction:row;align-items:center;gap:6px;color:var(--fg)}.dialog input[data-v-c791c224],.dialog textarea[data-v-c791c224]{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:6px 8px;color:var(--fg);font-size:13px}.row[data-v-c791c224]{display:flex;gap:12px}.row.end[data-v-c791c224]{justify-content:flex-end;margin-top:4px}.tofu[data-v-c791c224]{display:flex;flex-direction:column;gap:6px;border:1px solid #d29922;border-radius:6px;padding:10px}.tofu code[data-v-c791c224]{font-size:12px;word-break:break-all;color:var(--fg)}.warn[data-v-c791c224]{color:#d29922;font-size:12px;margin:0}.error[data-v-c791c224]{color:var(--bad);font-size:12px;margin:0}.primary[data-v-c791c224]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}.ssh-overlay[data-v-d1c3506a]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;background:#010409b8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center}.ssh-shell[data-v-d1c3506a]{position:relative;width:min(1040px,calc(100vw - 48px));height:min(720px,calc(100vh - 48px));background:radial-gradient(120% 80% at 100% 0%,rgba(88,166,255,.06),transparent 55%),var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 24px 64px #0000008c;overflow:hidden;display:flex;flex-direction:column}.ssh-header[data-v-d1c3506a]{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--panel)}.tabs[data-v-d1c3506a]{display:flex;gap:4px}.tab[data-v-d1c3506a]{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid transparent;color:var(--fg-dim);font-size:12px;font-weight:600;letter-spacing:.04em;padding:6px 12px;border-radius:7px;cursor:pointer;transition:all .12s}.tab[data-v-d1c3506a]:hover{color:var(--fg)}.tab.on[data-v-d1c3506a]{color:var(--fg);background:var(--bg);border-color:var(--border)}.tab-count[data-v-d1c3506a]{font-size:10px;color:var(--fg-dim);background:#8b949e29;padding:1px 6px;border-radius:999px}.search[data-v-d1c3506a]{flex:1;max-width:360px;display:flex;align-items:center;gap:7px;background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:0 10px}.search-spacer[data-v-d1c3506a]{flex:1}.search-icon[data-v-d1c3506a]{color:var(--fg-dim);flex:none}.search input[data-v-d1c3506a]{flex:1;background:transparent;border:none;outline:none;color:var(--fg);font-size:13px;padding:7px 0}.new-btn[data-v-d1c3506a]{display:inline-flex;align-items:center;gap:5px;background:var(--accent);color:#04101f;border:none;font-size:12px;font-weight:600;padding:7px 12px;border-radius:7px;cursor:pointer;transition:filter .12s}.new-btn[data-v-d1c3506a]:hover{filter:brightness(1.1)}.new-btn.ghost[data-v-d1c3506a]{background:transparent;color:var(--accent);border:1px solid var(--accent)}.close-x[data-v-d1c3506a]{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--fg-dim);cursor:pointer;padding:4px;border-radius:6px;transition:color .12s,background .12s}.close-x[data-v-d1c3506a]:hover{color:var(--fg);background:#8b949e1f}.ssh-error[data-v-d1c3506a]{margin:0;padding:8px 16px;font-size:12px;color:var(--bad);background:#f8514914;border-bottom:1px solid rgba(248,81,73,.2)}.ssh-error.inline[data-v-d1c3506a]{border-bottom:none;border-radius:6px}.ssh-tofu[data-v-d1c3506a]{margin:0;padding:10px 16px;display:flex;flex-direction:column;gap:6px;background:#d2992214;border-bottom:1px solid rgba(210,153,34,.3)}.ssh-tofu p[data-v-d1c3506a]{margin:0;font-size:12px;line-height:1.5}.ssh-tofu .tofu-title[data-v-d1c3506a]{font-weight:600;color:var(--warn, #d29922)}.ssh-tofu .tofu-msg[data-v-d1c3506a]{color:var(--fg)}.ssh-tofu .tofu-note[data-v-d1c3506a]{color:var(--fg-dim);font-size:11px}.ssh-tofu .tofu-fp[data-v-d1c3506a]{font-size:12px;word-break:break-all;color:var(--fg)}.ssh-tofu .tofu-actions[data-v-d1c3506a]{display:flex;gap:8px;justify-content:flex-end}.ssh-success[data-v-d1c3506a]{margin:0;padding:8px 16px;font-size:12px;color:var(--good, #3fb950);background:#3fb95014;border-bottom:1px solid rgba(63,185,80,.2)}.ssh-body[data-v-d1c3506a]{flex:1;overflow-y:auto;padding:18px 16px 24px}.tag-bar[data-v-d1c3506a]{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 2px 14px}.tag-pill[data-v-d1c3506a]{background:var(--panel);border:1px solid var(--border);color:var(--fg-dim);font-size:11px;padding:4px 10px;border-radius:999px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.tag-pill[data-v-d1c3506a]:hover{color:var(--fg);border-color:var(--neutral)}.tag-pill.on[data-v-d1c3506a]{color:#04101f;background:var(--accent);border-color:var(--accent);font-weight:600}.tag-clear[data-v-d1c3506a]{display:inline-flex;align-items:center;gap:3px;background:transparent;border:none;color:var(--fg-dim);font-size:11px;padding:4px 6px;cursor:pointer}.tag-clear[data-v-d1c3506a]:hover{color:var(--fg)}.card-proxy[data-v-d1c3506a]{display:flex;margin-top:5px}.card-proxy .proxy-badge[data-v-d1c3506a]{max-width:100%;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-tags[data-v-d1c3506a]{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.card-tag[data-v-d1c3506a]{font-size:10px;color:var(--fg-dim);background:#8b949e29;padding:1px 7px;border-radius:999px;white-space:nowrap}.card-grid[data-v-d1c3506a]{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(288px,1fr))}.card[data-v-d1c3506a]{position:relative;display:flex;align-items:center;gap:11px;padding:12px;background:var(--panel);border:1px solid var(--border);border-radius:10px;transition:border-color .14s,transform .14s,box-shadow .14s}.card[data-v-d1c3506a]:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 6px 18px #00000059}.card.busy[data-v-d1c3506a]{opacity:.6}.card-glyph[data-v-d1c3506a]{flex:none;width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--accent);background:#58a6ff1a;border:1px solid rgba(88,166,255,.18)}.card-main[data-v-d1c3506a]{flex:1;min-width:0}.card-label[data-v-d1c3506a]{font-size:13px;font-weight:600;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-sub[data-v-d1c3506a]{font-size:11px;color:var(--fg-dim);font-family:var(--font-mono-strict);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.card-actions[data-v-d1c3506a]{flex:none;display:flex;gap:4px;align-items:center}.act[data-v-d1c3506a]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;background:var(--bg);border:1px solid var(--border);color:var(--fg);cursor:pointer;transition:color .12s,background .12s,border-color .12s}.act svg[data-v-d1c3506a]{display:block;flex:none;width:15px;height:15px}.act[data-v-d1c3506a]:hover{color:#fff;border-color:var(--neutral);background:#8b949e2e}.act.connect[data-v-d1c3506a]{background:var(--accent);border-color:var(--accent);color:#04101f}.act.connect[data-v-d1c3506a]:hover:not(:disabled){filter:brightness(1.12)}.act.danger[data-v-d1c3506a]{color:var(--fg-dim)}.act.danger[data-v-d1c3506a]:hover{color:#fff;border-color:var(--bad);background:#f8514933}.act[data-v-d1c3506a]:disabled{opacity:.5;cursor:default}.empty[data-v-d1c3506a]{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--fg-dim)}.empty-icon[data-v-d1c3506a]{color:var(--neutral);opacity:.5;margin-bottom:6px}.empty-title[data-v-d1c3506a]{margin:0;font-size:14px;color:var(--fg);font-weight:600}.empty-sub[data-v-d1c3506a]{margin:0 0 12px;font-size:12px}.drawer[data-v-d1c3506a]{position:absolute;top:0;right:0;bottom:0;width:360px;max-width:84%;background:var(--panel);border-left:1px solid var(--border);box-shadow:-20px 0 48px #00000073;display:flex;flex-direction:column}.drawer.wide[data-v-d1c3506a]{width:480px}.drawer-head[data-v-d1c3506a]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-dim)}.drawer-body[data-v-d1c3506a]{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.field[data-v-d1c3506a]{display:flex;flex-direction:column;gap:5px}.field-row[data-v-d1c3506a]{display:flex;gap:10px}.field.grow[data-v-d1c3506a]{flex:1}.field.port[data-v-d1c3506a]{width:78px;flex:none}.fl[data-v-d1c3506a]{font-size:11px;color:var(--fg-dim)}.fl em[data-v-d1c3506a]{color:var(--neutral);font-style:normal}.field input[data-v-d1c3506a],.field textarea[data-v-d1c3506a]{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:7px 9px;color:var(--fg);font-size:13px;outline:none;transition:border-color .12s}.field input[data-v-d1c3506a]:focus,.field textarea[data-v-d1c3506a]:focus{border-color:var(--accent)}.field textarea[data-v-d1c3506a]{resize:vertical;font-family:var(--font-mono-strict);font-size:12px}.hint[data-v-d1c3506a]{font-size:12px;color:var(--fg-dim);margin:0}.tag-editor[data-v-d1c3506a]{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:4px;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:5px 6px;transition:border-color .12s}.tag-editor[data-v-d1c3506a]:focus-within{border-color:var(--accent)}.tag-editor .chip[data-v-d1c3506a]{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--fg);background:#58a6ff24;border:1px solid rgba(88,166,255,.28);padding:1px 4px 1px 8px;border-radius:999px}.chip-x[data-v-d1c3506a]{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--fg-dim);cursor:pointer;padding:1px;border-radius:999px;line-height:1}.chip-x[data-v-d1c3506a]:hover{color:#fff;background:#f8514959}.tag-input[data-v-d1c3506a]{flex:1;min-width:90px;background:transparent;border:none;outline:none;color:var(--fg);font-size:13px;padding:2px 3px}.combo[data-v-d1c3506a]{position:relative;display:flex}.combo input[data-v-d1c3506a]{flex:1;padding-right:26px;width:100%}.combo-caret[data-v-d1c3506a]{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--fg-dim);cursor:pointer;font-size:11px;padding:2px 4px;line-height:1}.combo-caret[data-v-d1c3506a]:hover{color:var(--fg)}.combo-menu[data-v-d1c3506a]{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:10;margin:0;padding:4px 0;list-style:none;max-height:180px;overflow-y:auto;background:var(--bg);border:1px solid var(--border);border-radius:6px;box-shadow:0 6px 16px #00000059}.combo-opt[data-v-d1c3506a]{padding:7px 10px;font-size:13px;color:var(--fg);cursor:pointer}.combo-opt[data-v-d1c3506a]:hover{background:#ffffff0f}.identity-hint[data-v-d1c3506a]{margin:-4px 0 0;display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--fg-dim);line-height:1.4}.identity-hint code[data-v-d1c3506a]{font-family:var(--font-mono-strict);font-size:11px;color:var(--fg);background:var(--bg);border:1px solid var(--border);border-radius:5px;padding:4px 7px;word-break:break-all}.identity-hint.proxy[data-v-d1c3506a]{color:var(--warn, #d29922)}.empty-keys-hint[data-v-d1c3506a]{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.enc-hint[data-v-d1c3506a]{margin:-4px 0 0;font-size:11px;color:var(--warn, #d29922)}.import-block[data-v-d1c3506a]{margin-top:4px;display:flex;flex-direction:column;gap:8px}.file-input[data-v-d1c3506a]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.dropzone[data-v-d1c3506a]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:18px 12px;text-align:center;border:1px dashed var(--border);border-radius:8px;color:var(--fg-dim);font-size:11px;line-height:1.4;transition:border-color .12s,background .12s,color .12s}.dropzone-icon[data-v-d1c3506a]{color:var(--neutral)}.dropzone.over[data-v-d1c3506a]{border-color:var(--accent);color:var(--fg);background:#58a6ff14}.dropzone.over .dropzone-icon[data-v-d1c3506a]{color:var(--accent)}.btn.import[data-v-d1c3506a]{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%}.btn.import svg[data-v-d1c3506a]{display:block}.btn.import[data-v-d1c3506a]:hover{background:#8b949e1a}.btn.sm[data-v-d1c3506a]{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;font-size:12px}.btn.sm svg[data-v-d1c3506a]{display:block}.seg[data-v-d1c3506a]{display:flex;background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:3px;gap:3px}.seg button[data-v-d1c3506a]{flex:1;background:transparent;border:none;color:var(--fg-dim);font-size:12px;padding:6px 0;border-radius:5px;cursor:pointer;transition:all .12s}.seg button.on[data-v-d1c3506a]{background:var(--accent);color:#04101f;font-weight:600}.drawer-foot[data-v-d1c3506a]{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.btn[data-v-d1c3506a]{font-size:12px;padding:8px 14px;border-radius:7px;cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--fg);transition:all .12s}.btn.ghost[data-v-d1c3506a]:hover{background:#8b949e1a}.btn.primary[data-v-d1c3506a]{background:var(--accent);color:#04101f;border-color:var(--accent);font-weight:600}.btn.primary[data-v-d1c3506a]:hover:not(:disabled){filter:brightness(1.1)}.btn.primary[data-v-d1c3506a]:disabled{opacity:.4;cursor:default}.drawer-enter-active[data-v-d1c3506a],.drawer-leave-active[data-v-d1c3506a]{transition:transform .18s ease,opacity .18s ease}.drawer-enter-from[data-v-d1c3506a],.drawer-leave-to[data-v-d1c3506a]{transform:translate(24px);opacity:0}.config-section-title[data-v-d1c3506a]{margin:4px 0 2px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-dim)}.config-entry-list[data-v-d1c3506a]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.config-entry[data-v-d1c3506a]{background:var(--bg);border:1px solid var(--border);border-radius:8px}.config-entry-label[data-v-d1c3506a]{display:flex;align-items:center;gap:10px;padding:9px 10px;cursor:pointer}.config-entry-main[data-v-d1c3506a]{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.config-entry-alias[data-v-d1c3506a]{font-size:13px;font-weight:600;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.config-entry-sub[data-v-d1c3506a]{font-size:11px;color:var(--fg-dim);font-family:var(--font-mono-strict);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.config-entry-badges[data-v-d1c3506a]{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.proxy-badge[data-v-d1c3506a]{flex:none;font-size:10px;color:var(--fg-dim);background:#8b949e1f;border:1px solid rgba(139,148,158,.3);padding:3px 8px;border-radius:999px;max-width:150px;line-height:1.3;text-align:right}.proxy-badge.blocked[data-v-d1c3506a]{color:var(--warn, #d29922);background:#d299221f;border-color:#d299224d}.overwrite-badge[data-v-d1c3506a]{flex:none;font-size:10px;color:var(--fg-dim);background:#8b949e29;border:1px solid var(--border);padding:3px 8px;border-radius:999px;line-height:1.3;white-space:nowrap}.config-skipped[data-v-d1c3506a]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.skip-row[data-v-d1c3506a]{display:flex;align-items:baseline;gap:8px;padding:6px 10px;background:#8b949e14;border-radius:6px}.skip-alias[data-v-d1c3506a]{font-size:12px;font-weight:600;color:var(--fg);flex:none}.skip-reason[data-v-d1c3506a]{font-size:11px;color:var(--fg-dim)}.config-note[data-v-d1c3506a]{margin:6px 0 0;font-size:11px;color:var(--fg-dim);line-height:1.5}.config-foot[data-v-d1c3506a]{flex-direction:column;align-items:stretch;gap:8px}.foot-actions[data-v-d1c3506a]{display:flex;justify-content:flex-end;gap:8px}.fwd-section[data-v-d1c3506a]{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--border)}.fwd-section-head[data-v-d1c3506a]{display:flex;align-items:center;justify-content:space-between;gap:8px}.fwd-section-head .fl[data-v-d1c3506a]{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.fwd-rule[data-v-d1c3506a]{display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--bg);border:1px solid var(--border);border-radius:8px}.fwd-rule-head[data-v-d1c3506a]{display:flex;align-items:center;gap:8px}.fwd-rule-head .seg[data-v-d1c3506a]{flex:1}.seg.sm button[data-v-d1c3506a]{font-size:11px;padding:4px 0}.fwd-warn[data-v-d1c3506a]{margin:0;padding:8px 9px;font-size:11px;line-height:1.5;color:var(--warn, #d29922);background:#d299221a;border:1px solid rgba(210,153,34,.32);border-radius:6px}.fwd-host[data-v-d1c3506a]{margin-bottom:16px}.fwd-host-head[data-v-d1c3506a]{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.fwd-host-name[data-v-d1c3506a]{font-size:13px;font-weight:600;color:var(--fg)}.fwd-host-sub[data-v-d1c3506a]{font-size:11px;color:var(--fg-dim);font-family:var(--font-mono-strict)}.fwd-proxy-reason[data-v-d1c3506a]{margin:0 0 8px;font-size:11px;line-height:1.5;color:var(--warn, #d29922)}.fwd-card[data-v-d1c3506a]{align-items:flex-start}.fwd-card-side[data-v-d1c3506a]{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:6px}.fwd-card .card-label[data-v-d1c3506a]{display:flex;align-items:baseline;gap:6px}.fwd-route[data-v-d1c3506a]{white-space:normal;overflow:visible;word-break:break-all}.fwd-kind[data-v-d1c3506a]{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.fwd-note[data-v-d1c3506a]{font-size:12px;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fwd-row-conns[data-v-d1c3506a]{margin-top:2px;font-size:10px;color:var(--fg-dim)}.fwd-row-error[data-v-d1c3506a]{margin:5px 0 0;font-size:11px;line-height:1.5;color:var(--bad)}.fwd-state[data-v-d1c3506a]{flex:none;font-size:10px;padding:3px 9px;border-radius:999px;border:1px solid var(--border);color:var(--fg-dim);background:#8b949e24}.fwd-state.running[data-v-d1c3506a]{color:var(--good, #3fb950);border-color:#3fb95059;background:#3fb9501f}.fwd-state.stopped[data-v-d1c3506a]{color:var(--bad);border-color:#f8514959;background:#f851491f}.pem-label[data-v-d1c3506a]{display:flex;align-items:center;justify-content:space-between;gap:8px}.pem-tools[data-v-d1c3506a]{display:flex;gap:4px}.backdrop[data-v-380786e4]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:110}.dialog[data-v-380786e4]{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px 24px;width:460px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:12px}.dialog h2[data-v-380786e4]{margin:0;font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-dim)}.dialog p[data-v-380786e4]{margin:0;font-size:13px;color:var(--fg);line-height:1.5}.dialog ul[data-v-380786e4]{margin:0;padding-left:18px;font-size:13px;color:var(--fg);line-height:1.6}.dialog .dim[data-v-380786e4]{color:var(--fg-dim);font-size:12px}.dialog .warn[data-v-380786e4]{color:#d29922;font-size:12px}.row[data-v-380786e4]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.primary[data-v-380786e4]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}.primary[data-v-380786e4]:hover{background:#79b8ff;border-color:#79b8ff;color:#0d1117}.primary.danger[data-v-380786e4]{background:var(--bad);color:#0d1117;border-color:var(--bad)}.primary.danger[data-v-380786e4]:hover{background:#ff6f6a;border-color:#ff6f6a;color:#0d1117}.startup-fatal[data-v-ad8304f2]{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;padding:24px;background:#0d1117}.startup-fatal-panel[data-v-ad8304f2]{width:min(680px,100%);display:flex;flex-direction:column;gap:14px;color:var(--fg)}.startup-fatal-panel h1[data-v-ad8304f2]{margin:0;font-size:20px;font-weight:650}.startup-fatal-panel p[data-v-ad8304f2]{margin:0;color:var(--fg-dim);line-height:1.5}.startup-fatal-panel pre[data-v-ad8304f2]{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;border:1px solid #30363d;border-radius:6px;background:#161b22;color:#ffb3b3;font-size:12px;line-height:1.45}.startup-fatal-log[data-v-ad8304f2]{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px;align-items:baseline;color:var(--fg-dim);font-size:12px}.startup-fatal-log code[data-v-ad8304f2]{min-width:0;overflow-wrap:anywhere;color:var(--fg)}.startup-fatal-actions[data-v-ad8304f2]{display:flex;gap:8px;flex-wrap:wrap}.startup-fatal-actions button[data-v-ad8304f2]{height:30px;padding:0 12px;border:1px solid #30363d;border-radius:6px;background:#21262d;color:var(--fg);cursor:pointer}.startup-fatal-actions button[data-v-ad8304f2]:hover{background:#30363d}.startup-fatal-actions button.danger[data-v-ad8304f2]{border-color:#8b2e2e;color:#ffb3b3}.startup-fatal-copy-status[data-v-ad8304f2]{margin:0;color:var(--fg-dim);font-size:12px}.backdrop[data-v-e95fa892]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:111}.dialog[data-v-e95fa892]{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px 24px;width:430px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:12px}.dialog h2[data-v-e95fa892]{margin:0;font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-dim)}.dialog p[data-v-e95fa892]{margin:0;font-size:13px;color:var(--fg);line-height:1.5}.dialog ul[data-v-e95fa892]{margin:0;padding-left:18px;font-size:13px;color:var(--fg);line-height:1.6}.row[data-v-e95fa892]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.primary[data-v-e95fa892]{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:600}.primary.danger[data-v-e95fa892]{background:var(--bad);color:#0d1117;border-color:var(--bad)}.primary.danger[data-v-e95fa892]:hover{background:#ff6f6a;border-color:#ff6f6a;color:#0d1117}.recovery-dialog-backdrop[data-v-4735cb7a]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:200}.recovery-dialog[data-v-4735cb7a]{background:var(--bg, #0d1117);color:var(--fg, #d1d5db);border-radius:8px;min-width:480px;max-width:720px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.recovery-dialog header[data-v-4735cb7a]{padding:16px 20px 0}.recovery-dialog h2[data-v-4735cb7a]{font-size:1.1rem;margin:0}.subtitle[data-v-4735cb7a]{font-size:.85rem;opacity:.7;margin:4px 0 12px}.tab-list[data-v-4735cb7a]{list-style:none;padding:0 20px;margin:0;overflow:auto}.tab-row[data-v-4735cb7a]{display:flex;align-items:center;gap:8px;padding:6px 0;cursor:default}.caret[data-v-4735cb7a]{background:transparent;border:0;color:inherit;cursor:pointer;padding:0 4px}.tab-title[data-v-4735cb7a]{flex:1}.tab-meta[data-v-4735cb7a]{opacity:.6;font-size:.8rem}.pane-list[data-v-4735cb7a]{list-style:none;padding-left:36px;margin:4px 0 8px;font-size:.85rem}.pane-list li[data-v-4735cb7a]{display:flex;gap:8px;padding:2px 0}.pane-shell[data-v-4735cb7a]{font-family:monospace}.pane-cwd[data-v-4735cb7a]{opacity:.7;flex:1}.pane-badge[data-v-4735cb7a]{opacity:.85;font-size:.75rem}footer[data-v-4735cb7a]{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px 16px}.btn-primary[data-v-4735cb7a]{background:#2563eb;color:#fff;border:0;padding:6px 12px;border-radius:4px;cursor:pointer}.btn-primary[data-v-4735cb7a]:disabled{opacity:.4;cursor:not-allowed}.btn-secondary[data-v-4735cb7a]{background:transparent;color:inherit;border:1px solid #444;padding:6px 12px;border-radius:4px;cursor:pointer}.startup-update-backdrop[data-v-e5615fd1]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:210}.startup-update-dialog[data-v-e5615fd1]{background:var(--bg, #0d1117);color:var(--fg, #d1d5db);border-radius:8px;min-width:420px;max-width:640px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;padding:16px 20px;gap:12px}.startup-update-dialog header[data-v-e5615fd1]{display:flex;flex-direction:column;gap:4px}.startup-update-dialog h2[data-v-e5615fd1]{font-size:1.1rem;margin:0}.subtitle[data-v-e5615fd1]{font-size:.85rem;opacity:.7;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.status[data-v-e5615fd1]{font-size:.85rem;margin:0}.notes[data-v-e5615fd1]{font-size:12px}.notes summary[data-v-e5615fd1]{opacity:.7;cursor:pointer}.notes pre[data-v-e5615fd1]{background:var(--bg);border:1px solid var(--border, #444);padding:8px;border-radius:6px;white-space:pre-wrap;word-break:break-word;max-height:160px;overflow-y:auto;font-size:11px;margin:6px 0 0}footer[data-v-e5615fd1]{display:flex;justify-content:flex-end;gap:8px}.btn-primary[data-v-e5615fd1]{background:var(--accent, #2563eb);color:#0d1117;border:0;padding:6px 12px;border-radius:4px;cursor:pointer;font-weight:600}.btn-primary.danger[data-v-e5615fd1]{background:var(--bad, #ef4444)}.btn-primary[data-v-e5615fd1]:disabled{opacity:.5;cursor:default}.btn-secondary[data-v-e5615fd1]{background:transparent;color:inherit;border:1px solid var(--border, #444);padding:6px 12px;border-radius:4px;cursor:pointer}.hints-backdrop[data-v-f52d16ed]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;pointer-events:none}.hints-panel[data-v-f52d16ed]{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px 24px;width:480px;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);overflow-y:auto;color:var(--fg);pointer-events:auto}.hints-header[data-v-f52d16ed]{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-dim);margin-bottom:12px}.hints-group[data-v-f52d16ed]{margin-bottom:14px}.hints-group[data-v-f52d16ed]:last-child{margin-bottom:0}.hints-group h3[data-v-f52d16ed]{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-dim)}.hint-row[data-v-f52d16ed]{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:3px 0;font-size:12px}.hint-row.disabled[data-v-f52d16ed]{color:var(--fg-dim)}.chord[data-v-f52d16ed]{font-family:SF Mono,Menlo,monospace;text-align:right}.label[data-v-f52d16ed]{color:inherit}.fade-enter-active[data-v-f52d16ed],.fade-leave-active[data-v-f52d16ed]{transition:opacity .1s ease}.fade-enter-from[data-v-f52d16ed],.fade-leave-to[data-v-f52d16ed]{opacity:0}.paste-preview-host[data-v-6eda1305]{position:fixed;top:88px;right:.75rem;z-index:50;display:flex;flex-direction:column;gap:8px;pointer-events:none}.paste-toast[data-v-6eda1305]{pointer-events:auto;width:200px;padding:8px;background:var(--bg, #1f2024);color:var(--fg, #e6e6e6);border:1px solid var(--border, #3a3b40);border-radius:6px;box-shadow:0 4px 14px #00000059;display:flex;flex-direction:column;gap:4px;position:relative}.paste-toast-thumb[data-v-6eda1305]{width:100%;max-height:120px;object-fit:contain;cursor:zoom-in;border-radius:4px;background:#000}.paste-toast-name[data-v-6eda1305]{font-size:12px;opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paste-toast-close[data-v-6eda1305]{position:absolute;top:4px;right:6px;background:transparent;border:none;color:inherit;font-size:16px;line-height:1;cursor:pointer;opacity:.7}.paste-toast-close[data-v-6eda1305]:hover{opacity:1}.paste-lightbox[data-v-6eda1305]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;z-index:100;display:flex;align-items:center;justify-content:center;cursor:zoom-out;pointer-events:auto}.paste-lightbox img[data-v-6eda1305]{max-width:90vw;max-height:90vh;cursor:default}.paste-file-host[data-v-436c1298]{position:fixed;top:88px;right:.75rem;z-index:50;display:flex;flex-direction:column;gap:8px;pointer-events:none}.paste-file-toast[data-v-436c1298]{pointer-events:auto;padding:8px 12px;background:var(--bg, #1f2024);color:var(--fg, #e6e6e6);border:1px solid var(--border, #3a3b40);border-radius:6px;box-shadow:0 4px 14px #00000059;display:flex;align-items:center;gap:6px;font-size:12px;max-width:260px}.paste-file-icon[data-v-436c1298]{opacity:.7}.paste-file-name[data-v-436c1298]{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paste-file-size[data-v-436c1298]{opacity:.7}.paste-file-close[data-v-436c1298]{margin-left:auto;background:transparent;border:none;color:inherit;font-size:16px;line-height:1;cursor:pointer;opacity:.7}.paste-file-close[data-v-436c1298]:hover{opacity:1}.plugin-host[data-v-db2df210]{display:contents}.plugin-host.slot-right-panel[data-v-db2df210]{display:flex;flex-direction:column;height:100%}.plugin-host.slot-bottom-toolbar[data-v-db2df210]{display:flex;flex-direction:row;align-items:center;min-height:0}.translate-panel[data-v-be75a3d1]{position:fixed;width:480px;max-height:70vh;overflow:auto;background:var(--ed-tab-bg, #21262d);border:1px solid var(--ed-border, #2d333b);border-radius:6px;box-shadow:0 8px 24px #00000080;color:var(--ed-row-fg, #c9d1d9);z-index:9999;display:flex;flex-direction:column}.translate-panel__handle[data-v-be75a3d1]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;cursor:grab;background:var(--ed-row-hover, #30363d);border-bottom:1px solid var(--ed-border, #2d333b);-webkit-user-select:none;user-select:none}.translate-panel__title[data-v-be75a3d1]{font-weight:600;font-size:13px}.translate-panel__close[data-v-be75a3d1]{background:transparent;border:none;color:inherit;font-size:18px;cursor:pointer;padding:0 4px}.translate-panel__label[data-v-be75a3d1]{font-size:11px;opacity:.7;text-transform:uppercase;letter-spacing:.04em;padding:6px 12px 0}.translate-panel__detected[data-v-be75a3d1]{text-transform:none;opacity:.6}.translate-panel__pre[data-v-be75a3d1]{margin:4px 12px 8px;padding:6px;background:#00000040;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;max-height:200px;overflow:auto;white-space:pre-wrap}.translate-panel__target-row[data-v-be75a3d1]{display:flex;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--ed-border, #2d333b)}.translate-panel__target-select[data-v-be75a3d1]{flex:1}.translate-panel__result[data-v-be75a3d1]{padding:12px;border-top:1px solid var(--ed-border, #2d333b);min-height:60px}.translate-panel__loading[data-v-be75a3d1]{opacity:.7}.translate-panel__error[data-v-be75a3d1]{color:#f87171;font-size:12px;display:flex;flex-direction:column;gap:6px}.translate-panel__text[data-v-be75a3d1]{font-size:13px;max-height:240px;overflow:auto;white-space:pre-wrap}.translate-panel__placeholder[data-v-be75a3d1]{opacity:.5;font-size:12px}.translate-panel__history[data-v-be75a3d1]{padding:8px 12px;border-top:1px solid var(--ed-border, #2d333b);font-size:12px}.translate-panel__history summary[data-v-be75a3d1]{cursor:pointer;opacity:.8}.translate-panel__history ul[data-v-be75a3d1]{list-style:none;margin:6px 0 0;padding:0}.translate-panel__history-row[data-v-be75a3d1]{display:block;width:100%;text-align:left;background:transparent;border:none;color:inherit;cursor:pointer;padding:4px 0;font-size:11px}.translate-panel__history-row[data-v-be75a3d1]:hover{opacity:.85}.translate-panel__history-source[data-v-be75a3d1]{opacity:.7}.translate-panel__history-arrow[data-v-be75a3d1]{margin:0 6px;opacity:.5}.fe-theme-dimmed{--ed-shell-bg: #22272e;--ed-tree-bg: #2d333b;--ed-tree-header-bg: #22272e;--ed-tree-header-fg: rgba(173, 186, 199, .7);--ed-row-fg: #adbac7;--ed-row-hover: #373e47;--ed-row-selected: #444c56;--ed-folder: #d4a14a;--ed-chevron: rgba(173, 186, 199, .7);--ed-indent-guide: rgba(173, 186, 199, .1);--ed-tab-bg: #2d333b;--ed-tab-fg: #768390;--ed-tab-hover-fg: #adbac7;--ed-tab-active-bg: #22272e;--ed-tab-active-fg: #cdd9e5;--ed-tab-active-bar: #539bf5;--ed-border: #444c56;--ed-editor-bg: #22272e;--ed-editor-fg: #adbac7;--ed-gutter-bg: #22272e;--ed-gutter-fg: #545d68;--ed-muted: rgba(173, 186, 199, .6);--ed-error: #f47067}.fe-theme-light{--ed-shell-bg: #ffffff;--ed-tree-bg: #f6f8fa;--ed-tree-header-bg: #eef0f4;--ed-tree-header-fg: rgba(36, 41, 47, .7);--ed-row-fg: #24292f;--ed-row-hover: rgba(36, 41, 47, .06);--ed-row-selected: rgba(0, 92, 197, .13);--ed-folder: #54aeff;--ed-chevron: rgba(36, 41, 47, .55);--ed-indent-guide: rgba(36, 41, 47, .08);--ed-tab-bg: #eef0f4;--ed-tab-fg: #57606a;--ed-tab-hover-fg: #24292f;--ed-tab-active-bg: #ffffff;--ed-tab-active-fg: #24292f;--ed-tab-active-bar: #fd8c73;--ed-border: #d0d7de;--ed-editor-bg: #ffffff;--ed-editor-fg: #24292f;--ed-gutter-bg: #f6f8fa;--ed-gutter-fg: #6e7781;--ed-muted: rgba(36, 41, 47, .6);--ed-error: #cf222e}.app[data-v-beb2a608]{display:flex;flex-direction:column;height:100vh}.app.is-maximized[data-v-beb2a608]{padding:8px}.auth-error-banner[data-v-beb2a608]{display:flex;align-items:center;gap:8px;padding:7px 16px;background:#5a1e1e;border-bottom:1px solid #8b2e2e;color:#ffb3b3;font-size:12px;flex:0 0 auto}.auth-error-msg[data-v-beb2a608]{flex:1 1 auto}.auth-error-action[data-v-beb2a608]{flex:0 0 auto;border:1px solid #8b2e2e;background:transparent;color:#ffb3b3;border-radius:4px;padding:2px 8px;font-size:12px;cursor:pointer}.auth-error-action[data-v-beb2a608]:hover{background:#ffb3b31a}.auth-error-dismiss[data-v-beb2a608]{flex:0 0 auto;border:none;background:transparent;color:#ffb3b3;font-size:16px;line-height:1;cursor:pointer;padding:0 4px}.auth-error-dismiss[data-v-beb2a608]:hover{color:#fff}.main-row[data-v-beb2a608]{display:flex;flex:1 1 auto;min-height:0}.main[data-v-beb2a608]{flex:1 1 auto;display:flex;flex-direction:column;position:relative;background:#000;overflow:hidden;min-width:0}.right-resizer[data-v-beb2a608]{width:4px;cursor:col-resize;background:transparent;flex:0 0 4px}.right-resizer[data-v-beb2a608]:hover{background:var(--ed-border, #2d333b)}.panel-toggle[data-v-beb2a608]{background:var(--ed-tab-bg, #21262d);border:1px solid var(--ed-border, #2d333b);color:var(--ed-row-fg, #c9d1d9);cursor:pointer;padding:0 4px;font-size:11px;align-self:stretch;flex:0 0 auto}.panel-toggle[data-v-beb2a608]:hover{background:var(--ed-row-hover, #30363d);color:var(--ed-tab-hover-fg, #ffffff)}.right-panel[data-v-beb2a608]:empty{display:none}.right-panel[data-v-beb2a608]{border-left:1px solid var(--ed-border, #2d333b);overflow:hidden}.bottom-toolbar[data-v-beb2a608]:empty{display:none}.bottom-toolbar[data-v-beb2a608]{flex:0 0 24px;height:24px;background:var(--ed-tab-bg, var(--terminal-bg));border-top:1px solid var(--ed-border, rgba(255, 255, 255, .08))}.empty[data-v-beb2a608]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--fg-dim);font-size:13px}.toast[data-v-beb2a608]{position:absolute;bottom:36px;left:50%;transform:translate(-50%);background:#0d1117eb;border:1px solid var(--border);color:var(--fg);padding:6px 12px;border-radius:6px;font-size:12px;pointer-events:none}@media (max-width: 767px){.app[data-v-beb2a608]{height:100dvh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);background:var(--bg);overflow:hidden}.main-row[data-v-beb2a608],.main[data-v-beb2a608]{min-width:0}.auth-error-banner[data-v-beb2a608]{padding:7px 10px;gap:6px}.auth-error-action[data-v-beb2a608]{padding:2px 6px}.toast[data-v-beb2a608]{bottom:calc(12px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px);text-align:center}}/** * Copyright (c) 2014 The xterm.js authors. All rights reserved. * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License) * https://github.com/chjj/term.js diff --git a/internal/relay/web-dist/assets/index-qv8oCKM7.js b/internal/relay/web-dist/assets/index-hP5cCp4S.js similarity index 98% rename from internal/relay/web-dist/assets/index-qv8oCKM7.js rename to internal/relay/web-dist/assets/index-hP5cCp4S.js index 8b7065f0..f213295f 100644 --- a/internal/relay/web-dist/assets/index-qv8oCKM7.js +++ b/internal/relay/web-dist/assets/index-hP5cCp4S.js @@ -1 +1 @@ -import{L as G,E as A,C as N}from"./index-CPhFc1xe.js";import{J as I,Q as u,g as Y,L as j,z as U,x as Z,q as B,O as k,c as D,E as M}from"./FileExplorer-BsSESYjF.js";import"./useI18n-CnvN0FfF.js";import"./index-C93ksU7R.js";import"./prefsSync-D8z1rJ8H.js";import"./client-2UEf7AK8.js";import"./Switch-CpxGRRqY.js";import"./auth-Dhl8fEWW.js";const h=1,F=2,L=3,J=4,K=5,H=36,ee=37,te=38,Oe=11,oe=13;function re(e){return e==45||e==46||e==58||e>=65&&e<=90||e==95||e>=97&&e<=122||e>=161}function ne(e){return e==9||e==10||e==13||e==32}let Q=null,V=null,X=0;function W(e,t){let o=e.pos+t;if(V==e&&X==o)return Q;for(;ne(e.peek(t));)t++;let O="";for(;;){let r=e.peek(t);if(!re(r))break;O+=String.fromCharCode(r),t++}return V=e,X=o,Q=O||null}function _(e,t){this.name=e,this.parent=t}const ae=new N({start:null,shift(e,t,o,O){return t==h?new _(W(O,1)||"",e):e},reduce(e,t){return t==Oe&&e?e.parent:e},reuse(e,t,o,O){let r=t.type.id;return r==h||r==oe?new _(W(O,1)||"",e):e},strict:!1}),le=new A((e,t)=>{if(e.next==60){if(e.advance(),e.next==47){e.advance();let o=W(e,0);if(!o)return e.acceptToken(K);if(t.context&&o==t.context.name)return e.acceptToken(F);for(let O=t.context;O;O=O.parent)if(O.name==o)return e.acceptToken(L,-2);e.acceptToken(J)}else if(e.next!=33&&e.next!=63)return e.acceptToken(h)}},{contextual:!0});function y(e,t){return new A(o=>{let O=0,r=t.charCodeAt(0);e:for(;!(o.next<0);o.advance(),O++)if(o.next==r){for(let a=1;a"),ie=y(ee,"?>"),ce=y(te,"]]>"),me=I({Text:u.content,"StartTag StartCloseTag EndTag SelfCloseEndTag":u.angleBracket,TagName:u.tagName,"MismatchedCloseTag/TagName":[u.tagName,u.invalid],AttributeName:u.attributeName,AttributeValue:u.attributeValue,Is:u.definitionOperator,"EntityReference CharacterReference":u.character,Comment:u.blockComment,ProcessingInst:u.processingInstruction,DoctypeDecl:u.documentMeta,Cdata:u.special(u.string)}),$e=G.deserialize({version:14,states:",lOQOaOOOrOxO'#CfOzOpO'#CiO!tOaO'#CgOOOP'#Cg'#CgO!{OrO'#CrO#TOtO'#CsO#]OpO'#CtOOOP'#DT'#DTOOOP'#Cv'#CvQQOaOOOOOW'#Cw'#CwO#eOxO,59QOOOP,59Q,59QOOOO'#Cx'#CxO#mOpO,59TO#uO!bO,59TOOOP'#C|'#C|O$TOaO,59RO$[OpO'#CoOOOP,59R,59ROOOQ'#C}'#C}O$dOrO,59^OOOP,59^,59^OOOS'#DO'#DOO$lOtO,59_OOOP,59_,59_O$tOpO,59`O$|OpO,59`OOOP-E6t-E6tOOOW-E6u-E6uOOOP1G.l1G.lOOOO-E6v-E6vO%UO!bO1G.oO%UO!bO1G.oO%dOpO'#CkO%lO!bO'#CyO%zO!bO1G.oOOOP1G.o1G.oOOOP1G.w1G.wOOOP-E6z-E6zOOOP1G.m1G.mO&VOpO,59ZO&_OpO,59ZOOOQ-E6{-E6{OOOP1G.x1G.xOOOS-E6|-E6|OOOP1G.y1G.yO&gOpO1G.zO&gOpO1G.zOOOP1G.z1G.zO&oO!bO7+$ZO&}O!bO7+$ZOOOP7+$Z7+$ZOOOP7+$c7+$cO'YOpO,59VO'bOpO,59VO'mO!bO,59eOOOO-E6w-E6wO'{OpO1G.uO'{OpO1G.uOOOP1G.u1G.uO(TOpO7+$fOOOP7+$f7+$fO(]O!bO<c!|;'S(o;'S;=`)]<%lO(oi>jX|W!O`Or(ors&osv(owx'}x!r(o!r!s?V!s;'S(o;'S;=`)]<%lO(oi?^X|W!O`Or(ors&osv(owx'}x!g(o!g!h?y!h;'S(o;'S;=`)]<%lO(oi@QY|W!O`Or?yrs@psv?yvwA[wxBdx!`?y!`!aCr!a;'S?y;'S;=`Db<%lO?ya@uV!O`Ov@pvxA[x!`@p!`!aAy!a;'S@p;'S;=`B^<%lO@pPA_TO!`A[!`!aAn!a;'SA[;'S;=`As<%lOA[PAsOiPPAvP;=`<%lA[aBQSiP!O`Ov&ox;'S&o;'S;=`'Q<%lO&oaBaP;=`<%l@pXBiX|WOrBdrsA[svBdvwA[w!`Bd!`!aCU!a;'SBd;'S;=`Cl<%lOBdXC]TiP|WOr'}sv'}w;'S'};'S;=`(c<%lO'}XCoP;=`<%lBdiC{ViP|W!O`Or(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(oiDeP;=`<%l?yiDoZ|W!O`Or(ors&osv(owx'}x!e(o!e!fEb!f#V(o#V#WIr#W;'S(o;'S;=`)]<%lO(oiEiX|W!O`Or(ors&osv(owx'}x!f(o!f!gFU!g;'S(o;'S;=`)]<%lO(oiF]X|W!O`Or(ors&osv(owx'}x!c(o!c!dFx!d;'S(o;'S;=`)]<%lO(oiGPX|W!O`Or(ors&osv(owx'}x!v(o!v!wGl!w;'S(o;'S;=`)]<%lO(oiGsX|W!O`Or(ors&osv(owx'}x!c(o!c!dH`!d;'S(o;'S;=`)]<%lO(oiHgX|W!O`Or(ors&osv(owx'}x!}(o!}#OIS#O;'S(o;'S;=`)]<%lO(oiI]V|W!O`yPOr(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(oiIyX|W!O`Or(ors&osv(owx'}x#W(o#W#XJf#X;'S(o;'S;=`)]<%lO(oiJmX|W!O`Or(ors&osv(owx'}x#T(o#T#UKY#U;'S(o;'S;=`)]<%lO(oiKaX|W!O`Or(ors&osv(owx'}x#h(o#h#iK|#i;'S(o;'S;=`)]<%lO(oiLTX|W!O`Or(ors&osv(owx'}x#T(o#T#UH`#U;'S(o;'S;=`)]<%lO(oiLwX|W!O`Or(ors&osv(owx'}x#c(o#c#dMd#d;'S(o;'S;=`)]<%lO(oiMkX|W!O`Or(ors&osv(owx'}x#V(o#V#WNW#W;'S(o;'S;=`)]<%lO(oiN_X|W!O`Or(ors&osv(owx'}x#h(o#h#iNz#i;'S(o;'S;=`)]<%lO(oi! RX|W!O`Or(ors&osv(owx'}x#m(o#m#n! n#n;'S(o;'S;=`)]<%lO(oi! uX|W!O`Or(ors&osv(owx'}x#d(o#d#e!!b#e;'S(o;'S;=`)]<%lO(oi!!iX|W!O`Or(ors&osv(owx'}x#X(o#X#Y?y#Y;'S(o;'S;=`)]<%lO(oi!#_V!SP|W!O`Or(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(ok!$PXaQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qo!$wX[UVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qk!%mZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_!`$q!`!a!&`!a;'S$q;'S;=`)c<%lO$qk!&kX!RQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qk!'aZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_#P$q#P#Q!(S#Q;'S$q;'S;=`)c<%lO$qk!(]ZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_!`$q!`!a!)O!a;'S$q;'S;=`)c<%lO$qk!)ZXxQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$q",tokenizers:[le,se,ie,ce,0,1,2,3,4],topRules:{Document:[0,6]},tokenPrec:0});function T(e,t){let o=t&&t.getChild("TagName");return o?e.sliceString(o.from,o.to):""}function P(e,t){let o=t&&t.firstChild;return!o||o.name!="OpenTag"?"":T(e,o)}function Se(e,t,o){let O=t&&t.getChildren("Attribute").find(a=>a.from<=o&&a.to>=o),r=O&&O.getChild("AttributeName");return r?e.sliceString(r.from,r.to):""}function C(e){for(let t=e&&e.parent;t;t=t.parent)if(t.name=="Element")return t;return null}function ge(e,t){var o;let O=k(e).resolveInner(t,-1),r=null;for(let a=O;!r&&a.parent;a=a.parent)(a.name=="OpenTag"||a.name=="CloseTag"||a.name=="SelfClosingTag"||a.name=="MismatchedCloseTag")&&(r=a);if(r&&(r.to>t||r.lastChild.type.isError)){let a=r.parent;if(O.name=="TagName")return r.name=="CloseTag"||r.name=="MismatchedCloseTag"?{type:"closeTag",from:O.from,context:a}:{type:"openTag",from:O.from,context:C(a)};if(O.name=="AttributeName")return{type:"attrName",from:O.from,context:r};if(O.name=="AttributeValue")return{type:"attrValue",from:O.from,context:r};let s=O==r||O.name=="Attribute"?O.childBefore(t):O;return(s==null?void 0:s.name)=="StartTag"?{type:"openTag",from:t,context:C(a)}:(s==null?void 0:s.name)=="StartCloseTag"&&s.to<=t?{type:"closeTag",from:t,context:a}:(s==null?void 0:s.name)=="Is"?{type:"attrValue",from:t,context:r}:s?{type:"attrName",from:t,context:r}:null}else if(O.name=="StartCloseTag")return{type:"closeTag",from:t,context:O.parent};for(;O.parent&&O.to==t&&!(!((o=O.lastChild)===null||o===void 0)&&o.type.isError);)O=O.parent;return O.name=="Element"||O.name=="Text"||O.name=="Document"?{type:"tag",from:t,context:O.name=="Element"?O:C(O)}:null}class pe{constructor(t,o,O){this.attrs=o,this.attrValues=O,this.children=[],this.name=t.name,this.completion=Object.assign(Object.assign({type:"type"},t.completion||{}),{label:this.name}),this.openCompletion=Object.assign(Object.assign({},this.completion),{label:"<"+this.name}),this.closeCompletion=Object.assign(Object.assign({},this.completion),{label:"",boost:2}),this.closeNameCompletion=Object.assign(Object.assign({},this.completion),{label:this.name+">"}),this.text=t.textContent?t.textContent.map(r=>({label:r,type:"text"})):[]}}const b=/^[:\-\.\w\u00b7-\uffff]*$/;function E(e){return Object.assign(Object.assign({type:"property"},e.completion||{}),{label:e.name})}function R(e){return typeof e=="string"?{label:`"${e}"`,type:"constant"}:/^"/.test(e.label)?e:Object.assign(Object.assign({},e),{label:`"${e.label}"`})}function ue(e,t){let o=[],O=[],r=Object.create(null);for(let n of t){let $=E(n);o.push($),n.global&&O.push($),n.values&&(r[n.name]=n.values.map(R))}let a=[],s=[],f=Object.create(null);for(let n of e){let $=O,c=r;n.attributes&&($=$.concat(n.attributes.map(l=>typeof l=="string"?o.find(d=>d.label==l)||{label:l,type:"property"}:(l.values&&(c==r&&(c=Object.create(c)),c[l.name]=l.values.map(R)),E(l)))));let p=new pe(n,$,c);f[p.name]=p,a.push(p),n.top&&s.push(p)}s.length||(s=a);for(let n=0;n{var $;let{doc:c}=n.state,p=ge(n.state,n.pos);if(!p||p.type=="tag"&&!n.explicit)return null;let{type:l,from:d,context:S}=p;if(l=="openTag"){let i=s,m=P(c,S);if(m){let g=f[m];i=(g==null?void 0:g.children)||a}return{from:d,options:i.map(g=>g.completion),validFor:b}}else if(l=="closeTag"){let i=P(c,S);return i?{from:d,to:n.pos+(c.sliceString(n.pos,n.pos+1)==">"?1:0),options:[(($=f[i])===null||$===void 0?void 0:$.closeNameCompletion)||{label:i+">",type:"type"}],validFor:b}:null}else if(l=="attrName"){let i=f[T(c,S)];return{from:d,options:(i==null?void 0:i.attrs)||O,validFor:b}}else if(l=="attrValue"){let i=Se(c,S,d);if(!i)return null;let m=f[T(c,S)],g=((m==null?void 0:m.attrValues)||r)[i];return!g||!g.length?null:{from:d,to:n.pos+(c.sliceString(n.pos,n.pos+1)=='"'?1:0),options:g,validFor:/^"[^"]*"?$/}}else if(l=="tag"){let i=P(c,S),m=f[i],g=[],q=S&&S.lastChild;i&&(!q||q.name!="CloseTag"||T(c,q)!=i)&&g.push(m?m.closeCompletion:{label:"",type:"type",boost:2});let v=g.concat(((m==null?void 0:m.children)||(S?a:s)).map(x=>x.openCompletion));if(S&&(m!=null&&m.text.length)){let x=S.firstChild;x.to>n.pos-20&&!/\S/.test(n.state.sliceDoc(x.to,n.pos))&&(v=v.concat(m.text))}return{from:d,options:v,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}else return null}}const w=j.define({name:"xml",parser:$e.configure({props:[U.add({Element(e){let t=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},"OpenTag CloseTag SelfClosingTag"(e){return e.column(e.node.from)+e.unit}}),Z.add({Element(e){let t=e.firstChild,o=e.lastChild;return!t||t.name!="OpenTag"?null:{from:t.to,to:o.name=="CloseTag"?o.from:e.to}}}),B.add({"OpenTag CloseTag":e=>e.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/$/}});function he(e={}){let t=[w.data.of({autocomplete:ue(e.elements||[],e.attributes||[])})];return e.autoCloseTags!==!1&&t.push(fe),new Y(w,t)}function z(e,t,o=e.length){if(!t)return"";let O=t.firstChild,r=O&&O.getChild("TagName");return r?e.sliceString(r.from,Math.min(r.to,o)):""}const fe=D.inputHandler.of((e,t,o,O,r)=>{if(e.composing||e.state.readOnly||t!=o||O!=">"&&O!="/"||!w.isActiveAt(e.state,t,-1))return!1;let a=r(),{state:s}=a,f=s.changeByRange(n=>{var $,c,p;let{head:l}=n,d=s.doc.sliceString(l-1,l)==O,S=k(s).resolveInner(l,-1),i;if(d&&O==">"&&S.name=="EndTag"){let m=S.parent;if(((c=($=m.parent)===null||$===void 0?void 0:$.lastChild)===null||c===void 0?void 0:c.name)!="CloseTag"&&(i=z(s.doc,m.parent,l))){let g=l+(s.doc.sliceString(l,l+1)===">"?1:0),q=``;return{range:n,changes:{from:l,to:g,insert:q}}}}else if(d&&O=="/"&&S.name=="StartCloseTag"){let m=S.parent;if(S.from==l-2&&((p=m.lastChild)===null||p===void 0?void 0:p.name)!="CloseTag"&&(i=z(s.doc,m,l))){let g=l+(s.doc.sliceString(l,l+1)===">"?1:0),q=`${i}>`;return{range:M.cursor(l+q.length,-1),changes:{from:l,to:g,insert:q}}}}return{range:n}});return f.changes.empty?!1:(e.dispatch([a,s.update(f,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});export{fe as autoCloseTags,ue as completeFromSchema,he as xml,w as xmlLanguage}; +import{L as G,E as A,C as N}from"./index-q_Op_mkr.js";import{J as I,Q as u,g as Y,L as j,z as U,x as Z,q as B,O as k,c as D,E as M}from"./FileExplorer-BGCt84ef.js";import"./useI18n-CnvN0FfF.js";import"./index-BH9vIdLD.js";import"./prefsSync-D8z1rJ8H.js";import"./client-2UEf7AK8.js";import"./Switch-CpxGRRqY.js";import"./auth-Dhl8fEWW.js";const h=1,F=2,L=3,J=4,K=5,H=36,ee=37,te=38,Oe=11,oe=13;function re(e){return e==45||e==46||e==58||e>=65&&e<=90||e==95||e>=97&&e<=122||e>=161}function ne(e){return e==9||e==10||e==13||e==32}let Q=null,V=null,X=0;function W(e,t){let o=e.pos+t;if(V==e&&X==o)return Q;for(;ne(e.peek(t));)t++;let O="";for(;;){let r=e.peek(t);if(!re(r))break;O+=String.fromCharCode(r),t++}return V=e,X=o,Q=O||null}function _(e,t){this.name=e,this.parent=t}const ae=new N({start:null,shift(e,t,o,O){return t==h?new _(W(O,1)||"",e):e},reduce(e,t){return t==Oe&&e?e.parent:e},reuse(e,t,o,O){let r=t.type.id;return r==h||r==oe?new _(W(O,1)||"",e):e},strict:!1}),le=new A((e,t)=>{if(e.next==60){if(e.advance(),e.next==47){e.advance();let o=W(e,0);if(!o)return e.acceptToken(K);if(t.context&&o==t.context.name)return e.acceptToken(F);for(let O=t.context;O;O=O.parent)if(O.name==o)return e.acceptToken(L,-2);e.acceptToken(J)}else if(e.next!=33&&e.next!=63)return e.acceptToken(h)}},{contextual:!0});function y(e,t){return new A(o=>{let O=0,r=t.charCodeAt(0);e:for(;!(o.next<0);o.advance(),O++)if(o.next==r){for(let a=1;a"),ie=y(ee,"?>"),ce=y(te,"]]>"),me=I({Text:u.content,"StartTag StartCloseTag EndTag SelfCloseEndTag":u.angleBracket,TagName:u.tagName,"MismatchedCloseTag/TagName":[u.tagName,u.invalid],AttributeName:u.attributeName,AttributeValue:u.attributeValue,Is:u.definitionOperator,"EntityReference CharacterReference":u.character,Comment:u.blockComment,ProcessingInst:u.processingInstruction,DoctypeDecl:u.documentMeta,Cdata:u.special(u.string)}),$e=G.deserialize({version:14,states:",lOQOaOOOrOxO'#CfOzOpO'#CiO!tOaO'#CgOOOP'#Cg'#CgO!{OrO'#CrO#TOtO'#CsO#]OpO'#CtOOOP'#DT'#DTOOOP'#Cv'#CvQQOaOOOOOW'#Cw'#CwO#eOxO,59QOOOP,59Q,59QOOOO'#Cx'#CxO#mOpO,59TO#uO!bO,59TOOOP'#C|'#C|O$TOaO,59RO$[OpO'#CoOOOP,59R,59ROOOQ'#C}'#C}O$dOrO,59^OOOP,59^,59^OOOS'#DO'#DOO$lOtO,59_OOOP,59_,59_O$tOpO,59`O$|OpO,59`OOOP-E6t-E6tOOOW-E6u-E6uOOOP1G.l1G.lOOOO-E6v-E6vO%UO!bO1G.oO%UO!bO1G.oO%dOpO'#CkO%lO!bO'#CyO%zO!bO1G.oOOOP1G.o1G.oOOOP1G.w1G.wOOOP-E6z-E6zOOOP1G.m1G.mO&VOpO,59ZO&_OpO,59ZOOOQ-E6{-E6{OOOP1G.x1G.xOOOS-E6|-E6|OOOP1G.y1G.yO&gOpO1G.zO&gOpO1G.zOOOP1G.z1G.zO&oO!bO7+$ZO&}O!bO7+$ZOOOP7+$Z7+$ZOOOP7+$c7+$cO'YOpO,59VO'bOpO,59VO'mO!bO,59eOOOO-E6w-E6wO'{OpO1G.uO'{OpO1G.uOOOP1G.u1G.uO(TOpO7+$fOOOP7+$f7+$fO(]O!bO<c!|;'S(o;'S;=`)]<%lO(oi>jX|W!O`Or(ors&osv(owx'}x!r(o!r!s?V!s;'S(o;'S;=`)]<%lO(oi?^X|W!O`Or(ors&osv(owx'}x!g(o!g!h?y!h;'S(o;'S;=`)]<%lO(oi@QY|W!O`Or?yrs@psv?yvwA[wxBdx!`?y!`!aCr!a;'S?y;'S;=`Db<%lO?ya@uV!O`Ov@pvxA[x!`@p!`!aAy!a;'S@p;'S;=`B^<%lO@pPA_TO!`A[!`!aAn!a;'SA[;'S;=`As<%lOA[PAsOiPPAvP;=`<%lA[aBQSiP!O`Ov&ox;'S&o;'S;=`'Q<%lO&oaBaP;=`<%l@pXBiX|WOrBdrsA[svBdvwA[w!`Bd!`!aCU!a;'SBd;'S;=`Cl<%lOBdXC]TiP|WOr'}sv'}w;'S'};'S;=`(c<%lO'}XCoP;=`<%lBdiC{ViP|W!O`Or(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(oiDeP;=`<%l?yiDoZ|W!O`Or(ors&osv(owx'}x!e(o!e!fEb!f#V(o#V#WIr#W;'S(o;'S;=`)]<%lO(oiEiX|W!O`Or(ors&osv(owx'}x!f(o!f!gFU!g;'S(o;'S;=`)]<%lO(oiF]X|W!O`Or(ors&osv(owx'}x!c(o!c!dFx!d;'S(o;'S;=`)]<%lO(oiGPX|W!O`Or(ors&osv(owx'}x!v(o!v!wGl!w;'S(o;'S;=`)]<%lO(oiGsX|W!O`Or(ors&osv(owx'}x!c(o!c!dH`!d;'S(o;'S;=`)]<%lO(oiHgX|W!O`Or(ors&osv(owx'}x!}(o!}#OIS#O;'S(o;'S;=`)]<%lO(oiI]V|W!O`yPOr(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(oiIyX|W!O`Or(ors&osv(owx'}x#W(o#W#XJf#X;'S(o;'S;=`)]<%lO(oiJmX|W!O`Or(ors&osv(owx'}x#T(o#T#UKY#U;'S(o;'S;=`)]<%lO(oiKaX|W!O`Or(ors&osv(owx'}x#h(o#h#iK|#i;'S(o;'S;=`)]<%lO(oiLTX|W!O`Or(ors&osv(owx'}x#T(o#T#UH`#U;'S(o;'S;=`)]<%lO(oiLwX|W!O`Or(ors&osv(owx'}x#c(o#c#dMd#d;'S(o;'S;=`)]<%lO(oiMkX|W!O`Or(ors&osv(owx'}x#V(o#V#WNW#W;'S(o;'S;=`)]<%lO(oiN_X|W!O`Or(ors&osv(owx'}x#h(o#h#iNz#i;'S(o;'S;=`)]<%lO(oi! RX|W!O`Or(ors&osv(owx'}x#m(o#m#n! n#n;'S(o;'S;=`)]<%lO(oi! uX|W!O`Or(ors&osv(owx'}x#d(o#d#e!!b#e;'S(o;'S;=`)]<%lO(oi!!iX|W!O`Or(ors&osv(owx'}x#X(o#X#Y?y#Y;'S(o;'S;=`)]<%lO(oi!#_V!SP|W!O`Or(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(ok!$PXaQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qo!$wX[UVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qk!%mZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_!`$q!`!a!&`!a;'S$q;'S;=`)c<%lO$qk!&kX!RQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qk!'aZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_#P$q#P#Q!(S#Q;'S$q;'S;=`)c<%lO$qk!(]ZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_!`$q!`!a!)O!a;'S$q;'S;=`)c<%lO$qk!)ZXxQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$q",tokenizers:[le,se,ie,ce,0,1,2,3,4],topRules:{Document:[0,6]},tokenPrec:0});function T(e,t){let o=t&&t.getChild("TagName");return o?e.sliceString(o.from,o.to):""}function P(e,t){let o=t&&t.firstChild;return!o||o.name!="OpenTag"?"":T(e,o)}function Se(e,t,o){let O=t&&t.getChildren("Attribute").find(a=>a.from<=o&&a.to>=o),r=O&&O.getChild("AttributeName");return r?e.sliceString(r.from,r.to):""}function C(e){for(let t=e&&e.parent;t;t=t.parent)if(t.name=="Element")return t;return null}function ge(e,t){var o;let O=k(e).resolveInner(t,-1),r=null;for(let a=O;!r&&a.parent;a=a.parent)(a.name=="OpenTag"||a.name=="CloseTag"||a.name=="SelfClosingTag"||a.name=="MismatchedCloseTag")&&(r=a);if(r&&(r.to>t||r.lastChild.type.isError)){let a=r.parent;if(O.name=="TagName")return r.name=="CloseTag"||r.name=="MismatchedCloseTag"?{type:"closeTag",from:O.from,context:a}:{type:"openTag",from:O.from,context:C(a)};if(O.name=="AttributeName")return{type:"attrName",from:O.from,context:r};if(O.name=="AttributeValue")return{type:"attrValue",from:O.from,context:r};let s=O==r||O.name=="Attribute"?O.childBefore(t):O;return(s==null?void 0:s.name)=="StartTag"?{type:"openTag",from:t,context:C(a)}:(s==null?void 0:s.name)=="StartCloseTag"&&s.to<=t?{type:"closeTag",from:t,context:a}:(s==null?void 0:s.name)=="Is"?{type:"attrValue",from:t,context:r}:s?{type:"attrName",from:t,context:r}:null}else if(O.name=="StartCloseTag")return{type:"closeTag",from:t,context:O.parent};for(;O.parent&&O.to==t&&!(!((o=O.lastChild)===null||o===void 0)&&o.type.isError);)O=O.parent;return O.name=="Element"||O.name=="Text"||O.name=="Document"?{type:"tag",from:t,context:O.name=="Element"?O:C(O)}:null}class pe{constructor(t,o,O){this.attrs=o,this.attrValues=O,this.children=[],this.name=t.name,this.completion=Object.assign(Object.assign({type:"type"},t.completion||{}),{label:this.name}),this.openCompletion=Object.assign(Object.assign({},this.completion),{label:"<"+this.name}),this.closeCompletion=Object.assign(Object.assign({},this.completion),{label:"",boost:2}),this.closeNameCompletion=Object.assign(Object.assign({},this.completion),{label:this.name+">"}),this.text=t.textContent?t.textContent.map(r=>({label:r,type:"text"})):[]}}const b=/^[:\-\.\w\u00b7-\uffff]*$/;function E(e){return Object.assign(Object.assign({type:"property"},e.completion||{}),{label:e.name})}function R(e){return typeof e=="string"?{label:`"${e}"`,type:"constant"}:/^"/.test(e.label)?e:Object.assign(Object.assign({},e),{label:`"${e.label}"`})}function ue(e,t){let o=[],O=[],r=Object.create(null);for(let n of t){let $=E(n);o.push($),n.global&&O.push($),n.values&&(r[n.name]=n.values.map(R))}let a=[],s=[],f=Object.create(null);for(let n of e){let $=O,c=r;n.attributes&&($=$.concat(n.attributes.map(l=>typeof l=="string"?o.find(d=>d.label==l)||{label:l,type:"property"}:(l.values&&(c==r&&(c=Object.create(c)),c[l.name]=l.values.map(R)),E(l)))));let p=new pe(n,$,c);f[p.name]=p,a.push(p),n.top&&s.push(p)}s.length||(s=a);for(let n=0;n{var $;let{doc:c}=n.state,p=ge(n.state,n.pos);if(!p||p.type=="tag"&&!n.explicit)return null;let{type:l,from:d,context:S}=p;if(l=="openTag"){let i=s,m=P(c,S);if(m){let g=f[m];i=(g==null?void 0:g.children)||a}return{from:d,options:i.map(g=>g.completion),validFor:b}}else if(l=="closeTag"){let i=P(c,S);return i?{from:d,to:n.pos+(c.sliceString(n.pos,n.pos+1)==">"?1:0),options:[(($=f[i])===null||$===void 0?void 0:$.closeNameCompletion)||{label:i+">",type:"type"}],validFor:b}:null}else if(l=="attrName"){let i=f[T(c,S)];return{from:d,options:(i==null?void 0:i.attrs)||O,validFor:b}}else if(l=="attrValue"){let i=Se(c,S,d);if(!i)return null;let m=f[T(c,S)],g=((m==null?void 0:m.attrValues)||r)[i];return!g||!g.length?null:{from:d,to:n.pos+(c.sliceString(n.pos,n.pos+1)=='"'?1:0),options:g,validFor:/^"[^"]*"?$/}}else if(l=="tag"){let i=P(c,S),m=f[i],g=[],q=S&&S.lastChild;i&&(!q||q.name!="CloseTag"||T(c,q)!=i)&&g.push(m?m.closeCompletion:{label:"",type:"type",boost:2});let v=g.concat(((m==null?void 0:m.children)||(S?a:s)).map(x=>x.openCompletion));if(S&&(m!=null&&m.text.length)){let x=S.firstChild;x.to>n.pos-20&&!/\S/.test(n.state.sliceDoc(x.to,n.pos))&&(v=v.concat(m.text))}return{from:d,options:v,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}else return null}}const w=j.define({name:"xml",parser:$e.configure({props:[U.add({Element(e){let t=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},"OpenTag CloseTag SelfClosingTag"(e){return e.column(e.node.from)+e.unit}}),Z.add({Element(e){let t=e.firstChild,o=e.lastChild;return!t||t.name!="OpenTag"?null:{from:t.to,to:o.name=="CloseTag"?o.from:e.to}}}),B.add({"OpenTag CloseTag":e=>e.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/$/}});function he(e={}){let t=[w.data.of({autocomplete:ue(e.elements||[],e.attributes||[])})];return e.autoCloseTags!==!1&&t.push(fe),new Y(w,t)}function z(e,t,o=e.length){if(!t)return"";let O=t.firstChild,r=O&&O.getChild("TagName");return r?e.sliceString(r.from,Math.min(r.to,o)):""}const fe=D.inputHandler.of((e,t,o,O,r)=>{if(e.composing||e.state.readOnly||t!=o||O!=">"&&O!="/"||!w.isActiveAt(e.state,t,-1))return!1;let a=r(),{state:s}=a,f=s.changeByRange(n=>{var $,c,p;let{head:l}=n,d=s.doc.sliceString(l-1,l)==O,S=k(s).resolveInner(l,-1),i;if(d&&O==">"&&S.name=="EndTag"){let m=S.parent;if(((c=($=m.parent)===null||$===void 0?void 0:$.lastChild)===null||c===void 0?void 0:c.name)!="CloseTag"&&(i=z(s.doc,m.parent,l))){let g=l+(s.doc.sliceString(l,l+1)===">"?1:0),q=``;return{range:n,changes:{from:l,to:g,insert:q}}}}else if(d&&O=="/"&&S.name=="StartCloseTag"){let m=S.parent;if(S.from==l-2&&((p=m.lastChild)===null||p===void 0?void 0:p.name)!="CloseTag"&&(i=z(s.doc,m,l))){let g=l+(s.doc.sliceString(l,l+1)===">"?1:0),q=`${i}>`;return{range:M.cursor(l+q.length,-1),changes:{from:l,to:g,insert:q}}}}return{range:n}});return f.changes.empty?!1:(e.dispatch([a,s.update(f,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});export{fe as autoCloseTags,ue as completeFromSchema,he as xml,w as xmlLanguage}; diff --git a/internal/relay/web-dist/assets/index-CripwhQ-.js b/internal/relay/web-dist/assets/index-hbreRbwz.js similarity index 98% rename from internal/relay/web-dist/assets/index-CripwhQ-.js rename to internal/relay/web-dist/assets/index-hbreRbwz.js index ec5b4f70..e6820450 100644 --- a/internal/relay/web-dist/assets/index-CripwhQ-.js +++ b/internal/relay/web-dist/assets/index-hbreRbwz.js @@ -1,2 +1,2 @@ -import{g as M,L as H,z as J,r as ee,x as te,J as ae,Q as n,O as re}from"./FileExplorer-BsSESYjF.js";import{E as oe,L as ne}from"./index-CPhFc1xe.js";import{i as le,c as se}from"./index-CMJgXADN.js";import"./useI18n-CnvN0FfF.js";import"./index-C93ksU7R.js";import"./prefsSync-D8z1rJ8H.js";import"./client-2UEf7AK8.js";import"./Switch-CpxGRRqY.js";import"./auth-Dhl8fEWW.js";const ie=36,R=1,ce=2,k=3,S=4,fe=5,de=6,Oe=7,me=8,ue=9,he=10,ke=11,Qe=12,ge=13,ve=14,xe=15,be=16,pe=17,q=18,Ce=19,$=20,A=21,L=22,Se=23,Pe=24;function y(t){return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57}function ye(t){return t>=48&&t<=57||t>=97&&t<=102||t>=65&&t<=70}function h(t,e,r){for(let a=!1;;){if(t.next<0)return;if(t.next==e&&!a){t.advance();return}a=r&&!a&&t.next==92,t.advance()}}function we(t,e){e:for(;;){if(t.next<0)return;if(t.next==36){t.advance();for(let r=0;r)".charCodeAt(r);for(;;){if(t.next<0)return;if(t.next==a&&t.peek(1)==39){t.advance(2);return}t.advance()}}function w(t,e){for(;!(t.next!=95&&!y(t.next));)e!=null&&(e+=String.fromCharCode(t.next)),t.advance();return e}function Ue(t){if(t.next==39||t.next==34||t.next==96){let e=t.next;t.advance(),h(t,e,!1)}else w(t)}function Z(t,e){for(;t.next==48||t.next==49;)t.advance();e&&t.next==e&&t.advance()}function D(t,e){for(;;){if(t.next==46){if(e)break;e=!0}else if(t.next<48||t.next>57)break;t.advance()}if(t.next==69||t.next==101)for(t.advance(),(t.next==43||t.next==45)&&t.advance();t.next>=48&&t.next<=57;)t.advance()}function j(t){for(;!(t.next<0||t.next==10);)t.advance()}function u(t,e){for(let r=0;r=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57}function ye(t){return t>=48&&t<=57||t>=97&&t<=102||t>=65&&t<=70}function h(t,e,r){for(let a=!1;;){if(t.next<0)return;if(t.next==e&&!a){t.advance();return}a=r&&!a&&t.next==92,t.advance()}}function we(t,e){e:for(;;){if(t.next<0)return;if(t.next==36){t.advance();for(let r=0;r)".charCodeAt(r);for(;;){if(t.next<0)return;if(t.next==a&&t.peek(1)==39){t.advance(2);return}t.advance()}}function w(t,e){for(;!(t.next!=95&&!y(t.next));)e!=null&&(e+=String.fromCharCode(t.next)),t.advance();return e}function Ue(t){if(t.next==39||t.next==34||t.next==96){let e=t.next;t.advance(),h(t,e,!1)}else w(t)}function Z(t,e){for(;t.next==48||t.next==49;)t.advance();e&&t.next==e&&t.advance()}function D(t,e){for(;;){if(t.next==46){if(e)break;e=!0}else if(t.next<48||t.next>57)break;t.advance()}if(t.next==69||t.next==101)for(t.advance(),(t.next==43||t.next==45)&&t.advance();t.next>=48&&t.next<=57;)t.advance()}function j(t){for(;!(t.next<0||t.next==10);)t.advance()}function u(t,e){for(let r=0;r!=&|~^/",specialVar:"?",identifierQuotes:'"',caseInsensitiveIdentifiers:!1,words:V(Xe,Be)};function Ie(t,e,r,a){let o={};for(let l in T)o[l]=(t.hasOwnProperty(l)?t:T)[l];return e&&(o.words=V(e,r||"",a)),o}function W(t){return new oe(e=>{var r;let{next:a}=e;if(e.advance(),u(a,P)){for(;u(e.next,P);)e.advance();e.acceptToken(ie)}else if(a==36&&t.doubleDollarQuotedStrings){let o=w(e,"");e.next==36&&(e.advance(),we(e,o),e.acceptToken(k))}else if(a==39||a==34&&t.doubleQuotedStrings)h(e,a,t.backslashEscapes),e.acceptToken(k);else if(a==35&&t.hashComments||a==47&&e.next==47&&t.slashComments)j(e),e.acceptToken(R);else if(a==45&&e.next==45&&(!t.spaceAfterDashes||e.peek(1)==32))j(e),e.acceptToken(R);else if(a==47&&e.next==42){e.advance();for(let o=1;;){let l=e.next;if(e.next<0)break;if(e.advance(),l==42&&e.next==47){if(o--,e.advance(),!o)break}else l==47&&e.next==42&&(o++,e.advance())}e.acceptToken(ce)}else if((a==101||a==69)&&e.next==39)e.advance(),h(e,39,!0),e.acceptToken(k);else if((a==110||a==78)&&e.next==39&&t.charSetCasts)e.advance(),h(e,39,t.backslashEscapes),e.acceptToken(k);else if(a==95&&t.charSetCasts)for(let o=0;;o++){if(e.next==39&&o>1){e.advance(),h(e,39,t.backslashEscapes),e.acceptToken(k);break}if(!y(e.next))break;e.advance()}else if(t.plsqlQuotingMechanism&&(a==113||a==81)&&e.next==39&&e.peek(1)>0&&!u(e.peek(1),P)){let o=e.peek(1);e.advance(2),Te(e,o),e.acceptToken(k)}else if(u(a,t.identifierQuotes)){const o=a==91?93:a;h(e,o,!1),e.acceptToken(Ce)}else if(a==40)e.acceptToken(Oe);else if(a==41)e.acceptToken(me);else if(a==123)e.acceptToken(ue);else if(a==125)e.acceptToken(he);else if(a==91)e.acceptToken(ke);else if(a==93)e.acceptToken(Qe);else if(a==59)e.acceptToken(ge);else if(t.unquotedBitLiterals&&a==48&&e.next==98)e.advance(),Z(e),e.acceptToken(L);else if((a==98||a==66)&&(e.next==39||e.next==34)){const o=e.next;e.advance(),t.treatBitsAsBytes?(h(e,o,t.backslashEscapes),e.acceptToken(Se)):(Z(e,o),e.acceptToken(L))}else if(a==48&&(e.next==120||e.next==88)||(a==120||a==88)&&e.next==39){let o=e.next==39;for(e.advance();ye(e.next);)e.advance();o&&e.next==39&&e.advance(),e.acceptToken(S)}else if(a==46&&e.next>=48&&e.next<=57)D(e,!0),e.acceptToken(S);else if(a==46)e.acceptToken(ve);else if(a>=48&&a<=57)D(e,!1),e.acceptToken(S);else if(u(a,t.operatorChars)){for(;u(e.next,t.operatorChars);)e.advance();e.acceptToken(xe)}else if(u(a,t.specialVar))e.next==a&&e.advance(),Ue(e),e.acceptToken(pe);else if(a==58||a==44)e.acceptToken(be);else if(y(a)){let o=w(e,String.fromCharCode(a));e.acceptToken(e.next==46||e.peek(-o.length-1)==46?q:(r=t.words[o.toLowerCase()])!==null&&r!==void 0?r:q)}})}const F=W(T),_e=ne.deserialize({version:14,states:"%vQ]QQOOO#wQRO'#DSO$OQQO'#CwO%eQQO'#CxO%lQQO'#CyO%sQQO'#CzOOQQ'#DS'#DSOOQQ'#C}'#C}O'UQRO'#C{OOQQ'#Cv'#CvOOQQ'#C|'#C|Q]QQOOQOQQOOO'`QQO'#DOO(xQRO,59cO)PQQO,59cO)UQQO'#DSOOQQ,59d,59dO)cQQO,59dOOQQ,59e,59eO)jQQO,59eOOQQ,59f,59fO)qQQO,59fOOQQ-E6{-E6{OOQQ,59b,59bOOQQ-E6z-E6zOOQQ,59j,59jOOQQ-E6|-E6|O+VQRO1G.}O+^QQO,59cOOQQ1G/O1G/OOOQQ1G/P1G/POOQQ1G/Q1G/QP+kQQO'#C}O+rQQO1G.}O)PQQO,59cO,PQQO'#Cw",stateData:",[~OtOSPOSQOS~ORUOSUOTUOUUOVROXSOZTO]XO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O^]ORvXSvXTvXUvXVvXXvXZvX]vX_vX`vXavXbvXcvXdvXevXfvXgvXhvX~OsvX~P!jOa_Ob_Oc_O~ORUOSUOTUOUUOVROXSOZTO^tO_UO`UOa`Ob`Oc`OdUOeUOfUOgUOhUO~OWaO~P$ZOYcO~P$ZO[eO~P$ZORUOSUOTUOUUOVROXSOZTO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O]hOsoX~P%zOajObjOcjO~O^]ORkaSkaTkaUkaVkaXkaZka]ka_ka`kaakabkackadkaekafkagkahka~Oska~P'kO^]O~OWvXYvX[vX~P!jOWnO~P$ZOYoO~P$ZO[pO~P$ZO^]ORkiSkiTkiUkiVkiXkiZki]ki_ki`kiakibkickidkiekifkigkihki~Oski~P)xOWkaYka[ka~P'kO]hO~P$ZOWkiYki[ki~P)xOasObsOcsO~O",goto:"#hwPPPPPPPPPPPPPPPPPPPPPPPPPPx||||!Y!^!d!xPPP#[TYOZeUORSTWZbdfqT[OZQZORiZSWOZQbRQdSQfTZgWbdfqQ^PWk^lmrQl_Qm`RrseVORSTWZbdfq",nodeNames:"⚠ LineComment BlockComment String Number Bool Null ( ) { } [ ] ; . Operator Punctuation SpecialVar Identifier QuotedIdentifier Keyword Type Bits Bytes Builtin Script Statement CompositeIdentifier Parens Braces Brackets Statement",maxTerm:38,nodeProps:[["isolate",-4,1,2,3,19,""]],skippedNodes:[0,1,2],repeatNodeCount:3,tokenData:"RORO",tokenizers:[0,F],topRules:{Script:[0,25]},tokenPrec:0});function U(t){let e=t.cursor().moveTo(t.from,-1);for(;/Comment/.test(e.name);)e.moveTo(e.from,-1);return e.node}function v(t,e){let r=t.sliceString(e.from,e.to),a=/^([`'"\[])(.*)([`'"\]])$/.exec(r);return a?a[2]:r}function p(t){return t&&(t.name=="Identifier"||t.name=="QuotedIdentifier")}function Re(t,e){if(e.name=="CompositeIdentifier"){let r=[];for(let a=e.firstChild;a;a=a.nextSibling)p(a)&&r.push(v(t,a));return r}return[v(t,e)]}function N(t,e){for(let r=[];;){if(!e||e.name!=".")return r;let a=U(e);if(!p(a))return r;r.unshift(v(t,a)),e=U(a)}}function qe(t,e){let r=re(t).resolveInner(e,-1),a=Ze(t.doc,r);return r.name=="Identifier"||r.name=="QuotedIdentifier"||r.name=="Keyword"?{from:r.from,quoted:r.name=="QuotedIdentifier"?t.doc.sliceString(r.from,r.from+1):null,parents:N(t.doc,U(r)),aliases:a}:r.name=="."?{from:e,quoted:null,parents:N(t.doc,r),aliases:a}:{from:e,quoted:null,parents:[],empty:!0,aliases:a}}const Le=new Set("where group having order union intersect except all distinct limit offset fetch for".split(" "));function Ze(t,e){let r;for(let o=e;!r;o=o.parent){if(!o)return null;o.name=="Statement"&&(r=o)}let a=null;for(let o=r.firstChild,l=!1,c=null;o;o=o.nextSibling){let i=o.name=="Keyword"?t.sliceString(o.from,o.to).toLowerCase():null,s=null;if(!l)l=i=="from";else if(i=="as"&&c&&p(o.nextSibling))s=v(t,o.nextSibling);else{if(i&&Le.has(i))break;c&&p(o)&&(s=v(t,o))}s&&(a||(a=Object.create(null)),a[s]=Re(t,c)),c=/Identifier$/.test(o.name)?o:null}return a}function De(t,e,r){return r.map(a=>({...a,label:a.label[0]==t?a.label:t+a.label+e,apply:void 0}))}const je=/^\w*$/,Ne=/^[`'"\[]?\w*[`'"\]]?$/;function z(t){return t.self&&typeof t.self.label=="string"}class B{constructor(e,r){this.idQuote=e,this.idCaseInsensitive=r,this.list=[],this.children=void 0}child(e){let r=this.children||(this.children=Object.create(null)),a=r[e];return a||(e&&!this.list.some(o=>o.label==e)&&this.list.push(E(e,"type",this.idQuote,this.idCaseInsensitive)),r[e]=new B(this.idQuote,this.idCaseInsensitive))}maybeChild(e){return this.children?this.children[e]:null}addCompletion(e){let r=this.list.findIndex(a=>a.label==e.label);r>-1?this.list[r]=e:this.list.push(e)}addCompletions(e){for(let r of e)this.addCompletion(typeof r=="string"?E(r,"property",this.idQuote,this.idCaseInsensitive):r)}addNamespace(e){Array.isArray(e)?this.addCompletions(e):z(e)?this.addNamespace(e.children):this.addNamespaceObject(e)}addNamespaceObject(e){for(let r of Object.keys(e)){let a=e[r],o=null,l=r.replace(/\\?\./g,i=>i=="."?"\0":i).split("\0"),c=this;z(a)&&(o=a.self,a=a.children);for(let i=0;i{let{parents:Q,from:I,quoted:_,empty:G,aliases:x}=qe(O.state,O.pos);if(G&&!O.explicit)return null;x&&Q.length==1&&(Q=x[Q[0]]||Q);let f=s;for(let m of Q){for(;!f.children||!f.children[m];)if(f==s&&d)f=d;else if(f==d&&a)f=f.child(a);else return null;let g=f.maybeChild(m);if(!g)return null;f=g}let b=f.list;if(f==s&&x&&(b=b.concat(Object.keys(x).map(m=>({label:m,type:"constant"})))),_){let m=_[0],g=K(m),Y=O.state.sliceDoc(O.pos,O.pos+1)==g;return{from:I,to:Y?O.pos+1:void 0,options:De(m,g,b),validFor:Ne}}else return{from:I,options:b,validFor:je}}}function Ee(t){return t==A?"type":t==$?"keyword":"variable"}function $e(t,e,r){let a=Object.keys(t).map(o=>r(e?o.toUpperCase():o,Ee(t[o])));return le(["QuotedIdentifier","String","LineComment","BlockComment","."],se(a))}let Ae=_e.configure({props:[J.add({Statement:ee()}),te.add({Statement(t,e){return{from:Math.min(t.from+100,e.doc.lineAt(t.from).to),to:t.to}},BlockComment(t){return{from:t.from+2,to:t.to-2}}}),ae({Keyword:n.keyword,Type:n.typeName,Builtin:n.standard(n.name),Bits:n.number,Bytes:n.string,Bool:n.bool,Null:n.null,Number:n.number,String:n.string,Identifier:n.name,QuotedIdentifier:n.special(n.string),SpecialVar:n.special(n.name),LineComment:n.lineComment,BlockComment:n.blockComment,Operator:n.operator,"Semi Punctuation":n.punctuation,"( )":n.paren,"{ }":n.brace,"[ ]":n.squareBracket})]});class C{constructor(e,r,a){this.dialect=e,this.language=r,this.spec=a}get extension(){return this.language.extension}configureLanguage(e,r){return new C(this.dialect,this.language.configure(e,r),this.spec)}static define(e){let r=Ie(e,e.keywords,e.types,e.builtin),a=H.define({name:"sql",parser:Ae.configure({tokenizers:[{from:F,to:W(r)}]}),languageData:{commentTokens:{line:"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}});return new C(r,a,e)}}function Ve(t,e){return{label:t,type:e,boost:-1}}function We(t,e=!1,r){return $e(t.dialect.words,e,r||Ve)}function Fe(t){return t.schema?ze(t.schema,t.tables,t.schemas,t.defaultTable,t.defaultSchema,t.dialect||X):()=>null}function Ke(t){return t.schema?(t.dialect||X).language.data.of({autocomplete:Fe(t)}):[]}function ot(t={}){let e=t.dialect||X;return new M(e.language,[Ke(t),e.language.data.of({autocomplete:We(e,t.upperCaseKeywords,t.keywordCompletion)})])}const X=C.define({});export{C as SQLDialect,X as StandardSQL,We as keywordCompletionSource,Fe as schemaCompletionSource,ot as sql}; diff --git a/internal/relay/web-dist/assets/index-CPhFc1xe.js b/internal/relay/web-dist/assets/index-q_Op_mkr.js similarity index 99% rename from internal/relay/web-dist/assets/index-CPhFc1xe.js rename to internal/relay/web-dist/assets/index-q_Op_mkr.js index 2d75056f..1ad1766c 100644 --- a/internal/relay/web-dist/assets/index-CPhFc1xe.js +++ b/internal/relay/web-dist/assets/index-q_Op_mkr.js @@ -1 +1 @@ -import{k as L,h as $,i as E,a as j,N as y,p as S,I as G}from"./FileExplorer-BsSESYjF.js";var N={};class v{constructor(t,e,s,i,h,r,n,o,a,u=0,f){this.p=t,this.stack=e,this.state=s,this.reducePos=i,this.pos=h,this.score=r,this.buffer=n,this.bufferBase=o,this.curContext=a,this.lookAhead=u,this.parent=f}toString(){return`[${this.stack.filter((t,e)=>e%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(t,e,s=0){let i=t.parser.context;return new v(t,[],e,s,s,0,[],0,i?new R(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(t,e){this.stack.push(this.state,e,this.bufferBase+this.buffer.length),this.state=t}reduce(t){var e;let s=t>>19,i=t&65535,{parser:h}=this.p,r=this.reducePos=2e3&&!(!((e=this.p.parser.nodeSet.types[i])===null||e===void 0)&&e.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSizeo;)this.stack.pop();this.reduceContext(i,a)}storeNode(t,e,s,i=4,h=!1){if(t==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&this.buffer[r-4]==0&&this.buffer[r-1]>-1){if(e==s)return;if(this.buffer[r-2]>=e){this.buffer[r-2]=s;return}}}if(!h||this.pos==s)this.buffer.push(t,e,s,i);else{let r=this.buffer.length;if(r>0&&(this.buffer[r-4]!=0||this.buffer[r-1]<0)){let n=!1;for(let o=r;o>0&&this.buffer[o-2]>s;o-=4)if(this.buffer[o-1]>=0){n=!0;break}if(n)for(;r>0&&this.buffer[r-2]>s;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,i>4&&(i-=4)}this.buffer[r]=t,this.buffer[r+1]=e,this.buffer[r+2]=s,this.buffer[r+3]=i}}shift(t,e,s,i){if(t&131072)this.pushState(t&65535,this.pos);else if(t&262144)this.pos=i,this.shiftContext(e,s),e<=this.p.parser.maxNode&&this.buffer.push(e,s,i,4);else{let h=t,{parser:r}=this.p;this.pos=i;let n=r.stateFlag(h,1);!n&&(i>s||e<=r.maxNode)&&(this.reducePos=i),this.pushState(h,n?s:Math.min(s,this.reducePos)),this.shiftContext(e,s),e<=r.maxNode&&this.buffer.push(e,s,i,4)}}apply(t,e,s,i){t&65536?this.reduce(t):this.shift(t,e,s,i)}useNode(t,e){let s=this.p.reused.length-1;(s<0||this.p.reused[s]!=t)&&(this.p.reused.push(t),s++);let i=this.pos;this.reducePos=this.pos=i+t.length,this.pushState(e,i),this.buffer.push(s,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,t,this,this.p.stream.reset(this.pos-t.length)))}split(){let t=this,e=t.buffer.length;for(e&&t.buffer[e-4]==0&&(e-=4);e>0&&t.buffer[e-2]>t.reducePos;)e-=4;let s=t.buffer.slice(e),i=t.bufferBase+e;for(;t&&i==t.bufferBase;)t=t.parent;return new v(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,s,i,this.curContext,this.lookAhead,t)}recoverByDelete(t,e){let s=t<=this.p.parser.maxNode;s&&this.storeNode(t,this.pos,e,4),this.storeNode(0,this.pos,e,s?8:4),this.pos=this.reducePos=e,this.score-=190}canShift(t){for(let e=new U(this);;){let s=this.p.parser.stateSlot(e.state,4)||this.p.parser.hasAction(e.state,t);if(s==0)return!1;if(!(s&65536))return!0;e.reduce(s)}}recoverByInsert(t){if(this.stack.length>=300)return[];let e=this.p.parser.nextStates(this.state);if(e.length>8||this.stack.length>=120){let i=[];for(let h=0,r;ho&1&&n==r)||i.push(e[h],r)}e=i}let s=[];for(let i=0;i>19,i=e&65535,h=this.stack.length-s*3;if(h<0||t.getGoto(this.stack[h],i,!1)<0){let r=this.findForcedReduction();if(r==null)return!1;e=r}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}findForcedReduction(){let{parser:t}=this.p,e=[],s=(i,h)=>{if(!e.includes(i))return e.push(i),t.allActions(i,r=>{if(!(r&393216))if(r&65536){let n=(r>>19)-h;if(n>1){let o=r&65535,a=this.stack.length-n*3;if(a>=0&&t.getGoto(this.stack[a],o,!1)>=0)return n<<19|65536|o}}else{let n=s(r,h+1);if(n!=null)return n}})};return s(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:t}=this.p;return t.data[t.stateSlot(this.state,1)]==65535&&!t.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(t){if(this.state!=t.state||this.stack.length!=t.stack.length)return!1;for(let e=0;e0&&this.emitLookAhead()}}class R{constructor(t,e){this.tracker=t,this.context=e,this.hash=t.strict?t.hash(e):0}}class U{constructor(t){this.start=t,this.state=t.state,this.stack=t.stack,this.base=this.stack.length}reduce(t){let e=t&65535,s=t>>19;s==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(s-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],e,!0);this.state=i}}class A{constructor(t,e,s){this.stack=t,this.pos=e,this.index=s,this.buffer=t.buffer,this.index==0&&this.maybeNext()}static create(t,e=t.bufferBase+t.buffer.length){return new A(t,e,e-t.bufferBase)}maybeNext(){let t=this.stack.parent;t!=null&&(this.index=this.stack.bufferBase-t.bufferBase,this.stack=t,this.buffer=t.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new A(this.stack,this.pos,this.index)}}function x(l,t=Uint16Array){if(typeof l!="string")return l;let e=null;for(let s=0,i=0;s=92&&r--,r>=34&&r--;let o=r-32;if(o>=46&&(o-=46,n=!0),h+=o,n)break;h*=46}e?e[i++]=h:e=new t(h)}return e}class P{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const z=new P;class H{constructor(t,e){this.input=t,this.ranges=e,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=z,this.rangeIndex=0,this.pos=this.chunkPos=e[0].from,this.range=e[0],this.end=e[e.length-1].to,this.readNext()}resolveOffset(t,e){let s=this.range,i=this.rangeIndex,h=this.pos+t;for(;hs.to:h>=s.to;){if(i==this.ranges.length-1)return null;let r=this.ranges[++i];h+=r.from-s.to,s=r}return h}clipPos(t){if(t>=this.range.from&&tt)return Math.max(t,e.from);return this.end}peek(t){let e=this.chunkOff+t,s,i;if(e>=0&&e=this.chunk2Pos&&sn.to&&(this.chunk2=this.chunk2.slice(0,n.to-s)),i=this.chunk2.charCodeAt(0)}}return s>=this.token.lookAhead&&(this.token.lookAhead=s+1),i}acceptToken(t,e=0){let s=e?this.resolveOffset(e,-1):this.pos;if(s==null||s=this.chunk2Pos&&this.posthis.range.to?t.slice(0,this.range.to-this.pos):t,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(t=1){for(this.chunkOff+=t;this.pos+t>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();t-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=t,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(t,e){if(e?(this.token=e,e.start=t,e.lookAhead=t+1,e.value=e.extended=-1):this.token=z,this.pos!=t){if(this.pos=t,t==this.end)return this.setDone(),this;for(;t=this.range.to;)this.range=this.ranges[++this.rangeIndex];t>=this.chunkPos&&t=this.chunkPos&&e<=this.chunkPos+this.chunk.length)return this.chunk.slice(t-this.chunkPos,e-this.chunkPos);if(t>=this.chunk2Pos&&e<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(t-this.chunk2Pos,e-this.chunk2Pos);if(t>=this.range.from&&e<=this.range.to)return this.input.read(t,e);let s="";for(let i of this.ranges){if(i.from>=e)break;i.to>t&&(s+=this.input.read(Math.max(i.from,t),Math.min(i.to,e)))}return s}}class m{constructor(t,e){this.data=t,this.id=e}token(t,e){let{parser:s}=e.p;O(this.data,t,e,this.id,s.data,s.tokenPrecTable)}}m.prototype.contextual=m.prototype.fallback=m.prototype.extend=!1;class W{constructor(t,e,s){this.precTable=e,this.elseToken=s,this.data=typeof t=="string"?x(t):t}token(t,e){let s=t.pos,i=0;for(;;){let h=t.next<0,r=t.resolveOffset(1,1);if(O(this.data,t,e,0,this.data,this.precTable),t.token.value>-1)break;if(this.elseToken==null)return;if(h||i++,r==null)break;t.reset(r,t.token)}i&&(t.reset(s,t.token),t.acceptToken(this.elseToken,i))}}W.prototype.contextual=m.prototype.fallback=m.prototype.extend=!1;class Z{constructor(t,e={}){this.token=t,this.contextual=!!e.contextual,this.fallback=!!e.fallback,this.extend=!!e.extend}}function O(l,t,e,s,i,h){let r=0,n=1<0){let p=l[c];if(o.allows(p)&&(t.token.value==-1||t.token.value==p||q(p,t.token.value,i,h))){t.acceptToken(p);break}}let u=t.next,f=0,d=l[r+2];if(t.next<0&&d>f&&l[a+d*3-3]==65535){r=l[a+d*3-1];continue t}for(;f>1,p=a+c+(c<<1),b=l[p],M=l[p+1]||65536;if(u=M)f=c+1;else{r=l[p+2],t.advance();continue t}}break}}function I(l,t,e){for(let s=t,i;(i=l[s])!=65535;s++)if(i==e)return s-t;return-1}function q(l,t,e,s){let i=I(e,s,t);return i<0||I(e,s,l)t)&&!s.type.isError)return e<0?Math.max(0,Math.min(s.to-1,t-25)):Math.min(l.length,Math.max(s.from+1,t+25));if(e<0?s.prevSibling():s.nextSibling())break;if(!s.parent())return e<0?0:l.length}}class J{constructor(t,e){this.fragments=t,this.nodeSet=e,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let t=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(t){for(this.safeFrom=t.openStart?D(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?D(t.tree,t.to+t.offset,-1)-t.offset:t.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(t.tree),this.start.push(-t.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(t){if(tt)return this.nextStart=r,null;if(h instanceof S){if(r==t){if(r=Math.max(this.safeFrom,t)&&(this.trees.push(h),this.start.push(r),this.index.push(0))}else this.index[e]++,this.nextStart=r+h.length}}}class K{constructor(t,e){this.stream=e,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=t.tokenizers.map(s=>new P)}getActions(t){let e=0,s=null,{parser:i}=t.p,{tokenizers:h}=i,r=i.stateSlot(t.state,3),n=t.curContext?t.curContext.hash:0,o=0;for(let a=0;af.end+25&&(o=Math.max(f.lookAhead,o)),f.value!=0)){let d=e;if(f.extended>-1&&(e=this.addActions(t,f.extended,f.end,e)),e=this.addActions(t,f.value,f.end,e),!u.extend&&(s=f,e>d))break}}for(;this.actions.length>e;)this.actions.pop();return o&&t.setLookAhead(o),!s&&t.pos==this.stream.end&&(s=new P,s.value=t.p.parser.eofTerm,s.start=s.end=t.pos,e=this.addActions(t,s.value,s.end,e)),this.mainToken=s,this.actions}getMainToken(t){if(this.mainToken)return this.mainToken;let e=new P,{pos:s,p:i}=t;return e.start=s,e.end=Math.min(s+1,i.stream.end),e.value=s==i.stream.end?i.parser.eofTerm:0,e}updateCachedToken(t,e,s){let i=this.stream.clipPos(s.pos);if(e.token(this.stream.reset(i,t),s),t.value>-1){let{parser:h}=s.p;for(let r=0;r=0&&s.p.parser.dialect.allows(n>>1)){n&1?t.extended=n>>1:t.value=n>>1;break}}}else t.value=0,t.end=this.stream.clipPos(i+1)}putAction(t,e,s,i){for(let h=0;ht.bufferLength*4?new J(s,t.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let t=this.stacks,e=this.minStackPos,s=this.stacks=[],i,h;if(this.bigReductionCount>300&&t.length==1){let[r]=t;for(;r.forceReduce()&&r.stack.length&&r.stack[r.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let r=0;re)s.push(n);else{if(this.advanceStack(n,s,t))continue;{i||(i=[],h=[]),i.push(n);let o=this.tokens.getMainToken(n);h.push(o.value,o.end)}}break}}if(!s.length){let r=i&&X(i);if(r)return g&&console.log("Finish with "+this.stackID(r)),this.stackToTree(r);if(this.parser.strict)throw g&&i&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+e);this.recovering||(this.recovering=5)}if(this.recovering&&i){let r=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,h,s);if(r)return g&&console.log("Force-finish "+this.stackID(r)),this.stackToTree(r.forceAll())}if(this.recovering){let r=this.recovering==1?1:this.recovering*3;if(s.length>r)for(s.sort((n,o)=>o.score-n.score);s.length>r;)s.pop();s.some(n=>n.reducePos>e)&&this.recovering--}else if(s.length>1){t:for(let r=0;r500&&a.buffer.length>500)if((n.score-a.score||n.buffer.length-a.buffer.length)>0)s.splice(o--,1);else{s.splice(r--,1);continue t}}}s.length>12&&(s.sort((r,n)=>n.score-r.score),s.splice(12,s.length-12))}this.minStackPos=s[0].pos;for(let r=1;r ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return t.forceReduce()?t:null;if(this.fragments){let a=t.curContext&&t.curContext.tracker.strict,u=a?t.curContext.hash:0;for(let f=this.fragments.nodeAt(i);f;){let d=this.parser.nodeSet.types[f.type.id]==f.type?h.getGoto(t.state,f.type.id):-1;if(d>-1&&f.length&&(!a||(f.prop(y.contextHash)||0)==u))return t.useNode(f,d),g&&console.log(r+this.stackID(t)+` (via reuse of ${h.getName(f.type.id)})`),!0;if(!(f instanceof S)||f.children.length==0||f.positions[0]>0)break;let c=f.children[0];if(c instanceof S&&f.positions[0]==0)f=c;else break}}let n=h.stateSlot(t.state,4);if(n>0)return t.reduce(n),g&&console.log(r+this.stackID(t)+` (via always-reduce ${h.getName(n&65535)})`),!0;if(t.stack.length>=8400)for(;t.stack.length>6e3&&t.forceReduce(););let o=this.tokens.getActions(t);for(let a=0;ai?e.push(p):s.push(p)}return!1}advanceFully(t,e){let s=t.pos;for(;;){if(!this.advanceStack(t,null,null))return!1;if(t.pos>s)return B(t,e),!0}}runRecovery(t,e,s){let i=null,h=!1;for(let r=0;r ":"";if(n.deadEnd&&(h||(h=!0,n.restart(),g&&console.log(u+this.stackID(n)+" (restarted)"),this.advanceFully(n,s))))continue;let f=n.split(),d=u;for(let c=0;c<10&&f.forceReduce()&&(g&&console.log(d+this.stackID(f)+" (via force-reduce)"),!this.advanceFully(f,s));c++)g&&(d=this.stackID(f)+" -> ");for(let c of n.recoverByInsert(o))g&&console.log(u+this.stackID(c)+" (via recover-insert)"),this.advanceFully(c,s);this.stream.end>n.pos?(a==n.pos&&(a++,o=0),n.recoverByDelete(o,a),g&&console.log(u+this.stackID(n)+` (via recover-delete ${this.parser.getName(o)})`),B(n,s)):(!i||i.scorel;class _{constructor(t){this.start=t.start,this.shift=t.shift||C,this.reduce=t.reduce||C,this.reuse=t.reuse||C,this.hash=t.hash||(()=>0),this.strict=t.strict!==!1}}class w extends L{constructor(t){if(super(),this.wrappers=[],t.version!=14)throw new RangeError(`Parser version (${t.version}) doesn't match runtime version (14)`);let e=t.nodeNames.split(" ");this.minRepeatTerm=e.length;for(let n=0;nt.topRules[n][1]),i=[];for(let n=0;n=0)h(u,o,n[a++]);else{let f=n[a+-u];for(let d=-u;d>0;d--)h(n[a++],o,f);a++}}}this.nodeSet=new $(e.map((n,o)=>E.define({name:o>=this.minRepeatTerm?void 0:n,id:o,props:i[o],top:s.indexOf(o)>-1,error:o==0,skipped:t.skippedNodes&&t.skippedNodes.indexOf(o)>-1}))),t.propSources&&(this.nodeSet=this.nodeSet.extend(...t.propSources)),this.strict=!1,this.bufferLength=j;let r=x(t.tokenData);this.context=t.context,this.specializerSpecs=t.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let n=0;ntypeof n=="number"?new m(r,n):n),this.topRules=t.topRules,this.dialects=t.dialects||{},this.dynamicPrecedences=t.dynamicPrecedences||null,this.tokenPrecTable=t.tokenPrec,this.termNames=t.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(t,e,s){let i=new Q(this,t,e,s);for(let h of this.wrappers)i=h(i,t,e,s);return i}getGoto(t,e,s=!1){let i=this.goto;if(e>=i[0])return-1;for(let h=i[e+1];;){let r=i[h++],n=r&1,o=i[h++];if(n&&s)return o;for(let a=h+(r>>1);h0}validAction(t,e){return!!this.allActions(t,s=>s==e?!0:null)}allActions(t,e){let s=this.stateSlot(t,4),i=s?e(s):void 0;for(let h=this.stateSlot(t,1);i==null;h+=3){if(this.data[h]==65535)if(this.data[h+1]==1)h=k(this.data,h+2);else break;i=e(k(this.data,h+1))}return i}nextStates(t){let e=[];for(let s=this.stateSlot(t,1);;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=k(this.data,s+2);else break;if(!(this.data[s+2]&1)){let i=this.data[s+1];e.some((h,r)=>r&1&&h==i)||e.push(this.data[s],i)}}return e}configure(t){let e=Object.assign(Object.create(w.prototype),this);if(t.props&&(e.nodeSet=this.nodeSet.extend(...t.props)),t.top){let s=this.topRules[t.top];if(!s)throw new RangeError(`Invalid top rule name ${t.top}`);e.top=s}return t.tokenizers&&(e.tokenizers=this.tokenizers.map(s=>{let i=t.tokenizers.find(h=>h.from==s);return i?i.to:s})),t.specializers&&(e.specializers=this.specializers.slice(),e.specializerSpecs=this.specializerSpecs.map((s,i)=>{let h=t.specializers.find(n=>n.from==s.external);if(!h)return s;let r=Object.assign(Object.assign({},s),{external:h.to});return e.specializers[i]=F(r),r})),t.contextTracker&&(e.context=t.contextTracker),t.dialect&&(e.dialect=this.parseDialect(t.dialect)),t.strict!=null&&(e.strict=t.strict),t.wrap&&(e.wrappers=e.wrappers.concat(t.wrap)),t.bufferLength!=null&&(e.bufferLength=t.bufferLength),e}hasWrappers(){return this.wrappers.length>0}getName(t){return this.termNames?this.termNames[t]:String(t<=this.maxNode&&this.nodeSet.types[t].name||t)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(t){let e=this.dynamicPrecedences;return e==null?0:e[t]||0}parseDialect(t){let e=Object.keys(this.dialects),s=e.map(()=>!1);if(t)for(let h of t.split(" ")){let r=e.indexOf(h);r>=0&&(s[r]=!0)}let i=null;for(let h=0;hs)&&e.p.parser.stateFlag(e.state,2)&&(!t||t.scorel.external(e,s)<<1|t}return l.get}export{_ as C,Z as E,w as L,W as a}; +import{k as L,h as $,i as E,a as j,N as y,p as S,I as G}from"./FileExplorer-BGCt84ef.js";var N={};class v{constructor(t,e,s,i,h,r,n,o,a,u=0,f){this.p=t,this.stack=e,this.state=s,this.reducePos=i,this.pos=h,this.score=r,this.buffer=n,this.bufferBase=o,this.curContext=a,this.lookAhead=u,this.parent=f}toString(){return`[${this.stack.filter((t,e)=>e%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(t,e,s=0){let i=t.parser.context;return new v(t,[],e,s,s,0,[],0,i?new R(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(t,e){this.stack.push(this.state,e,this.bufferBase+this.buffer.length),this.state=t}reduce(t){var e;let s=t>>19,i=t&65535,{parser:h}=this.p,r=this.reducePos=2e3&&!(!((e=this.p.parser.nodeSet.types[i])===null||e===void 0)&&e.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSizeo;)this.stack.pop();this.reduceContext(i,a)}storeNode(t,e,s,i=4,h=!1){if(t==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&this.buffer[r-4]==0&&this.buffer[r-1]>-1){if(e==s)return;if(this.buffer[r-2]>=e){this.buffer[r-2]=s;return}}}if(!h||this.pos==s)this.buffer.push(t,e,s,i);else{let r=this.buffer.length;if(r>0&&(this.buffer[r-4]!=0||this.buffer[r-1]<0)){let n=!1;for(let o=r;o>0&&this.buffer[o-2]>s;o-=4)if(this.buffer[o-1]>=0){n=!0;break}if(n)for(;r>0&&this.buffer[r-2]>s;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,i>4&&(i-=4)}this.buffer[r]=t,this.buffer[r+1]=e,this.buffer[r+2]=s,this.buffer[r+3]=i}}shift(t,e,s,i){if(t&131072)this.pushState(t&65535,this.pos);else if(t&262144)this.pos=i,this.shiftContext(e,s),e<=this.p.parser.maxNode&&this.buffer.push(e,s,i,4);else{let h=t,{parser:r}=this.p;this.pos=i;let n=r.stateFlag(h,1);!n&&(i>s||e<=r.maxNode)&&(this.reducePos=i),this.pushState(h,n?s:Math.min(s,this.reducePos)),this.shiftContext(e,s),e<=r.maxNode&&this.buffer.push(e,s,i,4)}}apply(t,e,s,i){t&65536?this.reduce(t):this.shift(t,e,s,i)}useNode(t,e){let s=this.p.reused.length-1;(s<0||this.p.reused[s]!=t)&&(this.p.reused.push(t),s++);let i=this.pos;this.reducePos=this.pos=i+t.length,this.pushState(e,i),this.buffer.push(s,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,t,this,this.p.stream.reset(this.pos-t.length)))}split(){let t=this,e=t.buffer.length;for(e&&t.buffer[e-4]==0&&(e-=4);e>0&&t.buffer[e-2]>t.reducePos;)e-=4;let s=t.buffer.slice(e),i=t.bufferBase+e;for(;t&&i==t.bufferBase;)t=t.parent;return new v(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,s,i,this.curContext,this.lookAhead,t)}recoverByDelete(t,e){let s=t<=this.p.parser.maxNode;s&&this.storeNode(t,this.pos,e,4),this.storeNode(0,this.pos,e,s?8:4),this.pos=this.reducePos=e,this.score-=190}canShift(t){for(let e=new U(this);;){let s=this.p.parser.stateSlot(e.state,4)||this.p.parser.hasAction(e.state,t);if(s==0)return!1;if(!(s&65536))return!0;e.reduce(s)}}recoverByInsert(t){if(this.stack.length>=300)return[];let e=this.p.parser.nextStates(this.state);if(e.length>8||this.stack.length>=120){let i=[];for(let h=0,r;ho&1&&n==r)||i.push(e[h],r)}e=i}let s=[];for(let i=0;i>19,i=e&65535,h=this.stack.length-s*3;if(h<0||t.getGoto(this.stack[h],i,!1)<0){let r=this.findForcedReduction();if(r==null)return!1;e=r}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}findForcedReduction(){let{parser:t}=this.p,e=[],s=(i,h)=>{if(!e.includes(i))return e.push(i),t.allActions(i,r=>{if(!(r&393216))if(r&65536){let n=(r>>19)-h;if(n>1){let o=r&65535,a=this.stack.length-n*3;if(a>=0&&t.getGoto(this.stack[a],o,!1)>=0)return n<<19|65536|o}}else{let n=s(r,h+1);if(n!=null)return n}})};return s(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:t}=this.p;return t.data[t.stateSlot(this.state,1)]==65535&&!t.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(t){if(this.state!=t.state||this.stack.length!=t.stack.length)return!1;for(let e=0;e0&&this.emitLookAhead()}}class R{constructor(t,e){this.tracker=t,this.context=e,this.hash=t.strict?t.hash(e):0}}class U{constructor(t){this.start=t,this.state=t.state,this.stack=t.stack,this.base=this.stack.length}reduce(t){let e=t&65535,s=t>>19;s==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(s-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],e,!0);this.state=i}}class A{constructor(t,e,s){this.stack=t,this.pos=e,this.index=s,this.buffer=t.buffer,this.index==0&&this.maybeNext()}static create(t,e=t.bufferBase+t.buffer.length){return new A(t,e,e-t.bufferBase)}maybeNext(){let t=this.stack.parent;t!=null&&(this.index=this.stack.bufferBase-t.bufferBase,this.stack=t,this.buffer=t.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new A(this.stack,this.pos,this.index)}}function x(l,t=Uint16Array){if(typeof l!="string")return l;let e=null;for(let s=0,i=0;s=92&&r--,r>=34&&r--;let o=r-32;if(o>=46&&(o-=46,n=!0),h+=o,n)break;h*=46}e?e[i++]=h:e=new t(h)}return e}class P{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const z=new P;class H{constructor(t,e){this.input=t,this.ranges=e,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=z,this.rangeIndex=0,this.pos=this.chunkPos=e[0].from,this.range=e[0],this.end=e[e.length-1].to,this.readNext()}resolveOffset(t,e){let s=this.range,i=this.rangeIndex,h=this.pos+t;for(;hs.to:h>=s.to;){if(i==this.ranges.length-1)return null;let r=this.ranges[++i];h+=r.from-s.to,s=r}return h}clipPos(t){if(t>=this.range.from&&tt)return Math.max(t,e.from);return this.end}peek(t){let e=this.chunkOff+t,s,i;if(e>=0&&e=this.chunk2Pos&&sn.to&&(this.chunk2=this.chunk2.slice(0,n.to-s)),i=this.chunk2.charCodeAt(0)}}return s>=this.token.lookAhead&&(this.token.lookAhead=s+1),i}acceptToken(t,e=0){let s=e?this.resolveOffset(e,-1):this.pos;if(s==null||s=this.chunk2Pos&&this.posthis.range.to?t.slice(0,this.range.to-this.pos):t,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(t=1){for(this.chunkOff+=t;this.pos+t>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();t-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=t,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(t,e){if(e?(this.token=e,e.start=t,e.lookAhead=t+1,e.value=e.extended=-1):this.token=z,this.pos!=t){if(this.pos=t,t==this.end)return this.setDone(),this;for(;t=this.range.to;)this.range=this.ranges[++this.rangeIndex];t>=this.chunkPos&&t=this.chunkPos&&e<=this.chunkPos+this.chunk.length)return this.chunk.slice(t-this.chunkPos,e-this.chunkPos);if(t>=this.chunk2Pos&&e<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(t-this.chunk2Pos,e-this.chunk2Pos);if(t>=this.range.from&&e<=this.range.to)return this.input.read(t,e);let s="";for(let i of this.ranges){if(i.from>=e)break;i.to>t&&(s+=this.input.read(Math.max(i.from,t),Math.min(i.to,e)))}return s}}class m{constructor(t,e){this.data=t,this.id=e}token(t,e){let{parser:s}=e.p;O(this.data,t,e,this.id,s.data,s.tokenPrecTable)}}m.prototype.contextual=m.prototype.fallback=m.prototype.extend=!1;class W{constructor(t,e,s){this.precTable=e,this.elseToken=s,this.data=typeof t=="string"?x(t):t}token(t,e){let s=t.pos,i=0;for(;;){let h=t.next<0,r=t.resolveOffset(1,1);if(O(this.data,t,e,0,this.data,this.precTable),t.token.value>-1)break;if(this.elseToken==null)return;if(h||i++,r==null)break;t.reset(r,t.token)}i&&(t.reset(s,t.token),t.acceptToken(this.elseToken,i))}}W.prototype.contextual=m.prototype.fallback=m.prototype.extend=!1;class Z{constructor(t,e={}){this.token=t,this.contextual=!!e.contextual,this.fallback=!!e.fallback,this.extend=!!e.extend}}function O(l,t,e,s,i,h){let r=0,n=1<0){let p=l[c];if(o.allows(p)&&(t.token.value==-1||t.token.value==p||q(p,t.token.value,i,h))){t.acceptToken(p);break}}let u=t.next,f=0,d=l[r+2];if(t.next<0&&d>f&&l[a+d*3-3]==65535){r=l[a+d*3-1];continue t}for(;f>1,p=a+c+(c<<1),b=l[p],M=l[p+1]||65536;if(u=M)f=c+1;else{r=l[p+2],t.advance();continue t}}break}}function I(l,t,e){for(let s=t,i;(i=l[s])!=65535;s++)if(i==e)return s-t;return-1}function q(l,t,e,s){let i=I(e,s,t);return i<0||I(e,s,l)t)&&!s.type.isError)return e<0?Math.max(0,Math.min(s.to-1,t-25)):Math.min(l.length,Math.max(s.from+1,t+25));if(e<0?s.prevSibling():s.nextSibling())break;if(!s.parent())return e<0?0:l.length}}class J{constructor(t,e){this.fragments=t,this.nodeSet=e,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let t=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(t){for(this.safeFrom=t.openStart?D(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?D(t.tree,t.to+t.offset,-1)-t.offset:t.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(t.tree),this.start.push(-t.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(t){if(tt)return this.nextStart=r,null;if(h instanceof S){if(r==t){if(r=Math.max(this.safeFrom,t)&&(this.trees.push(h),this.start.push(r),this.index.push(0))}else this.index[e]++,this.nextStart=r+h.length}}}class K{constructor(t,e){this.stream=e,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=t.tokenizers.map(s=>new P)}getActions(t){let e=0,s=null,{parser:i}=t.p,{tokenizers:h}=i,r=i.stateSlot(t.state,3),n=t.curContext?t.curContext.hash:0,o=0;for(let a=0;af.end+25&&(o=Math.max(f.lookAhead,o)),f.value!=0)){let d=e;if(f.extended>-1&&(e=this.addActions(t,f.extended,f.end,e)),e=this.addActions(t,f.value,f.end,e),!u.extend&&(s=f,e>d))break}}for(;this.actions.length>e;)this.actions.pop();return o&&t.setLookAhead(o),!s&&t.pos==this.stream.end&&(s=new P,s.value=t.p.parser.eofTerm,s.start=s.end=t.pos,e=this.addActions(t,s.value,s.end,e)),this.mainToken=s,this.actions}getMainToken(t){if(this.mainToken)return this.mainToken;let e=new P,{pos:s,p:i}=t;return e.start=s,e.end=Math.min(s+1,i.stream.end),e.value=s==i.stream.end?i.parser.eofTerm:0,e}updateCachedToken(t,e,s){let i=this.stream.clipPos(s.pos);if(e.token(this.stream.reset(i,t),s),t.value>-1){let{parser:h}=s.p;for(let r=0;r=0&&s.p.parser.dialect.allows(n>>1)){n&1?t.extended=n>>1:t.value=n>>1;break}}}else t.value=0,t.end=this.stream.clipPos(i+1)}putAction(t,e,s,i){for(let h=0;ht.bufferLength*4?new J(s,t.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let t=this.stacks,e=this.minStackPos,s=this.stacks=[],i,h;if(this.bigReductionCount>300&&t.length==1){let[r]=t;for(;r.forceReduce()&&r.stack.length&&r.stack[r.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let r=0;re)s.push(n);else{if(this.advanceStack(n,s,t))continue;{i||(i=[],h=[]),i.push(n);let o=this.tokens.getMainToken(n);h.push(o.value,o.end)}}break}}if(!s.length){let r=i&&X(i);if(r)return g&&console.log("Finish with "+this.stackID(r)),this.stackToTree(r);if(this.parser.strict)throw g&&i&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+e);this.recovering||(this.recovering=5)}if(this.recovering&&i){let r=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,h,s);if(r)return g&&console.log("Force-finish "+this.stackID(r)),this.stackToTree(r.forceAll())}if(this.recovering){let r=this.recovering==1?1:this.recovering*3;if(s.length>r)for(s.sort((n,o)=>o.score-n.score);s.length>r;)s.pop();s.some(n=>n.reducePos>e)&&this.recovering--}else if(s.length>1){t:for(let r=0;r500&&a.buffer.length>500)if((n.score-a.score||n.buffer.length-a.buffer.length)>0)s.splice(o--,1);else{s.splice(r--,1);continue t}}}s.length>12&&(s.sort((r,n)=>n.score-r.score),s.splice(12,s.length-12))}this.minStackPos=s[0].pos;for(let r=1;r ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return t.forceReduce()?t:null;if(this.fragments){let a=t.curContext&&t.curContext.tracker.strict,u=a?t.curContext.hash:0;for(let f=this.fragments.nodeAt(i);f;){let d=this.parser.nodeSet.types[f.type.id]==f.type?h.getGoto(t.state,f.type.id):-1;if(d>-1&&f.length&&(!a||(f.prop(y.contextHash)||0)==u))return t.useNode(f,d),g&&console.log(r+this.stackID(t)+` (via reuse of ${h.getName(f.type.id)})`),!0;if(!(f instanceof S)||f.children.length==0||f.positions[0]>0)break;let c=f.children[0];if(c instanceof S&&f.positions[0]==0)f=c;else break}}let n=h.stateSlot(t.state,4);if(n>0)return t.reduce(n),g&&console.log(r+this.stackID(t)+` (via always-reduce ${h.getName(n&65535)})`),!0;if(t.stack.length>=8400)for(;t.stack.length>6e3&&t.forceReduce(););let o=this.tokens.getActions(t);for(let a=0;ai?e.push(p):s.push(p)}return!1}advanceFully(t,e){let s=t.pos;for(;;){if(!this.advanceStack(t,null,null))return!1;if(t.pos>s)return B(t,e),!0}}runRecovery(t,e,s){let i=null,h=!1;for(let r=0;r ":"";if(n.deadEnd&&(h||(h=!0,n.restart(),g&&console.log(u+this.stackID(n)+" (restarted)"),this.advanceFully(n,s))))continue;let f=n.split(),d=u;for(let c=0;c<10&&f.forceReduce()&&(g&&console.log(d+this.stackID(f)+" (via force-reduce)"),!this.advanceFully(f,s));c++)g&&(d=this.stackID(f)+" -> ");for(let c of n.recoverByInsert(o))g&&console.log(u+this.stackID(c)+" (via recover-insert)"),this.advanceFully(c,s);this.stream.end>n.pos?(a==n.pos&&(a++,o=0),n.recoverByDelete(o,a),g&&console.log(u+this.stackID(n)+` (via recover-delete ${this.parser.getName(o)})`),B(n,s)):(!i||i.scorel;class _{constructor(t){this.start=t.start,this.shift=t.shift||C,this.reduce=t.reduce||C,this.reuse=t.reuse||C,this.hash=t.hash||(()=>0),this.strict=t.strict!==!1}}class w extends L{constructor(t){if(super(),this.wrappers=[],t.version!=14)throw new RangeError(`Parser version (${t.version}) doesn't match runtime version (14)`);let e=t.nodeNames.split(" ");this.minRepeatTerm=e.length;for(let n=0;nt.topRules[n][1]),i=[];for(let n=0;n=0)h(u,o,n[a++]);else{let f=n[a+-u];for(let d=-u;d>0;d--)h(n[a++],o,f);a++}}}this.nodeSet=new $(e.map((n,o)=>E.define({name:o>=this.minRepeatTerm?void 0:n,id:o,props:i[o],top:s.indexOf(o)>-1,error:o==0,skipped:t.skippedNodes&&t.skippedNodes.indexOf(o)>-1}))),t.propSources&&(this.nodeSet=this.nodeSet.extend(...t.propSources)),this.strict=!1,this.bufferLength=j;let r=x(t.tokenData);this.context=t.context,this.specializerSpecs=t.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let n=0;ntypeof n=="number"?new m(r,n):n),this.topRules=t.topRules,this.dialects=t.dialects||{},this.dynamicPrecedences=t.dynamicPrecedences||null,this.tokenPrecTable=t.tokenPrec,this.termNames=t.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(t,e,s){let i=new Q(this,t,e,s);for(let h of this.wrappers)i=h(i,t,e,s);return i}getGoto(t,e,s=!1){let i=this.goto;if(e>=i[0])return-1;for(let h=i[e+1];;){let r=i[h++],n=r&1,o=i[h++];if(n&&s)return o;for(let a=h+(r>>1);h0}validAction(t,e){return!!this.allActions(t,s=>s==e?!0:null)}allActions(t,e){let s=this.stateSlot(t,4),i=s?e(s):void 0;for(let h=this.stateSlot(t,1);i==null;h+=3){if(this.data[h]==65535)if(this.data[h+1]==1)h=k(this.data,h+2);else break;i=e(k(this.data,h+1))}return i}nextStates(t){let e=[];for(let s=this.stateSlot(t,1);;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=k(this.data,s+2);else break;if(!(this.data[s+2]&1)){let i=this.data[s+1];e.some((h,r)=>r&1&&h==i)||e.push(this.data[s],i)}}return e}configure(t){let e=Object.assign(Object.create(w.prototype),this);if(t.props&&(e.nodeSet=this.nodeSet.extend(...t.props)),t.top){let s=this.topRules[t.top];if(!s)throw new RangeError(`Invalid top rule name ${t.top}`);e.top=s}return t.tokenizers&&(e.tokenizers=this.tokenizers.map(s=>{let i=t.tokenizers.find(h=>h.from==s);return i?i.to:s})),t.specializers&&(e.specializers=this.specializers.slice(),e.specializerSpecs=this.specializerSpecs.map((s,i)=>{let h=t.specializers.find(n=>n.from==s.external);if(!h)return s;let r=Object.assign(Object.assign({},s),{external:h.to});return e.specializers[i]=F(r),r})),t.contextTracker&&(e.context=t.contextTracker),t.dialect&&(e.dialect=this.parseDialect(t.dialect)),t.strict!=null&&(e.strict=t.strict),t.wrap&&(e.wrappers=e.wrappers.concat(t.wrap)),t.bufferLength!=null&&(e.bufferLength=t.bufferLength),e}hasWrappers(){return this.wrappers.length>0}getName(t){return this.termNames?this.termNames[t]:String(t<=this.maxNode&&this.nodeSet.types[t].name||t)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(t){let e=this.dynamicPrecedences;return e==null?0:e[t]||0}parseDialect(t){let e=Object.keys(this.dialects),s=e.map(()=>!1);if(t)for(let h of t.split(" ")){let r=e.indexOf(h);r>=0&&(s[r]=!0)}let i=null;for(let h=0;hs)&&e.p.parser.stateFlag(e.state,2)&&(!t||t.scorel.external(e,s)<<1|t}return l.get}export{_ as C,Z as E,w as L,W as a}; diff --git a/internal/relay/web-dist/assets/index-BtHosg8n.js b/internal/relay/web-dist/assets/index-sMVa0oql.js similarity index 91% rename from internal/relay/web-dist/assets/index-BtHosg8n.js rename to internal/relay/web-dist/assets/index-sMVa0oql.js index 9d16b5c7..de7b9fa2 100644 --- a/internal/relay/web-dist/assets/index-BtHosg8n.js +++ b/internal/relay/web-dist/assets/index-sMVa0oql.js @@ -1 +1 @@ -import{L as r}from"./index-CPhFc1xe.js";import{J as a,Q as O,g as P,L as o,z as t,r as e,x as Q,w as s}from"./FileExplorer-BsSESYjF.js";import"./useI18n-CnvN0FfF.js";import"./index-C93ksU7R.js";import"./prefsSync-D8z1rJ8H.js";import"./client-2UEf7AK8.js";import"./Switch-CpxGRRqY.js";import"./auth-Dhl8fEWW.js";const n=a({String:O.string,Number:O.number,"True False":O.bool,PropertyName:O.propertyName,Null:O.null,", :":O.separator,"[ ]":O.squareBracket,"{ }":O.brace}),i=r.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"⚠ JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[n],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0}),p=o.define({name:"json",parser:i.configure({props:[t.add({Object:e({except:/^\s*\}/}),Array:e({except:/^\s*\]/})}),Q.add({"Object Array":s})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function b(){return new P(p)}export{b as json,p as jsonLanguage}; +import{L as r}from"./index-q_Op_mkr.js";import{J as a,Q as O,g as P,L as o,z as t,r as e,x as Q,w as s}from"./FileExplorer-BGCt84ef.js";import"./useI18n-CnvN0FfF.js";import"./index-BH9vIdLD.js";import"./prefsSync-D8z1rJ8H.js";import"./client-2UEf7AK8.js";import"./Switch-CpxGRRqY.js";import"./auth-Dhl8fEWW.js";const n=a({String:O.string,Number:O.number,"True False":O.bool,PropertyName:O.propertyName,Null:O.null,", :":O.separator,"[ ]":O.squareBracket,"{ }":O.brace}),i=r.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"⚠ JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[n],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0}),p=o.define({name:"json",parser:i.configure({props:[t.add({Object:e({except:/^\s*\}/}),Array:e({except:/^\s*\]/})}),Q.add({"Object Array":s})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function b(){return new P(p)}export{b as json,p as jsonLanguage}; diff --git a/internal/relay/web-dist/assets/index-BlhWulu2.js b/internal/relay/web-dist/assets/index-vv_fn0WP.js similarity index 99% rename from internal/relay/web-dist/assets/index-BlhWulu2.js rename to internal/relay/web-dist/assets/index-vv_fn0WP.js index bc522a2d..ea86f379 100644 --- a/internal/relay/web-dist/assets/index-BlhWulu2.js +++ b/internal/relay/web-dist/assets/index-vv_fn0WP.js @@ -1 +1 @@ -import{L as o,E as a}from"./index-CPhFc1xe.js";import{J as Z,Q,g as _,L as q,z as l,r,x as w,w as V}from"./FileExplorer-BsSESYjF.js";import"./useI18n-CnvN0FfF.js";import"./index-C93ksU7R.js";import"./prefsSync-D8z1rJ8H.js";import"./client-2UEf7AK8.js";import"./Switch-CpxGRRqY.js";import"./auth-Dhl8fEWW.js";const g=1,R=2,b=3,y=4,T=5,s=98,c=101,p=102,t=114,v=69,X=48,W=46,d=43,f=45,Y=35,z=34,x=124,U=60,h=62;function n(O){return O>=48&&O<=57}function e(O){return n(O)||O==95}const G=new a((O,i)=>{if(n(O.next)){let P=!1;do O.advance();while(e(O.next));if(O.next==W){if(P=!0,O.advance(),n(O.next))do O.advance();while(e(O.next));else if(O.next==W||O.next>127||/\w/.test(String.fromCharCode(O.next)))return}if(O.next==c||O.next==v){if(P=!0,O.advance(),(O.next==d||O.next==f)&&O.advance(),!e(O.next))return;do O.advance();while(e(O.next))}if(O.next==p){let $=O.peek(1);if($==X+3&&O.peek(2)==X+2||$==X+6&&O.peek(2)==X+4)O.advance(3),P=!0;else return}P&&O.acceptToken(T)}else if(O.next==s||O.next==t){if(O.next==s&&O.advance(),O.next!=t)return;O.advance();let P=0;for(;O.next==Y;)P++,O.advance();if(O.next!=z)return;O.advance();O:for(;;){if(O.next<0)return;let $=O.next==z;if(O.advance(),$){for(let S=0;S{O.next==x&&O.acceptToken(g,1)}),u=new a(O=>{O.next==U?O.acceptToken(R,1):O.next==h&&O.acceptToken(b,1)}),k=Z({"const macro_rules struct union enum type fn impl trait let static":Q.definitionKeyword,"mod use crate":Q.moduleKeyword,"pub unsafe async mut extern default move":Q.modifier,"for if else loop while match continue break return await":Q.controlKeyword,"as in ref":Q.operatorKeyword,"where _ crate super dyn":Q.keyword,self:Q.self,String:Q.string,Char:Q.character,RawString:Q.special(Q.string),Boolean:Q.bool,Identifier:Q.variableName,"CallExpression/Identifier":Q.function(Q.variableName),BoundIdentifier:Q.definition(Q.variableName),"FunctionItem/BoundIdentifier":Q.function(Q.definition(Q.variableName)),LoopLabel:Q.labelName,FieldIdentifier:Q.propertyName,"CallExpression/FieldExpression/FieldIdentifier":Q.function(Q.propertyName),Lifetime:Q.special(Q.variableName),ScopeIdentifier:Q.namespace,TypeIdentifier:Q.typeName,"MacroInvocation/Identifier MacroInvocation/ScopedIdentifier/Identifier":Q.macroName,"MacroInvocation/TypeIdentifier MacroInvocation/ScopedIdentifier/TypeIdentifier":Q.macroName,'"!"':Q.macroName,UpdateOp:Q.updateOperator,LineComment:Q.lineComment,BlockComment:Q.blockComment,Integer:Q.integer,Float:Q.float,ArithOp:Q.arithmeticOperator,LogicOp:Q.logicOperator,BitOp:Q.bitwiseOperator,CompareOp:Q.compareOperator,"=":Q.definitionOperator,".. ... => ->":Q.punctuation,"( )":Q.paren,"[ ]":Q.squareBracket,"{ }":Q.brace,". DerefOp":Q.derefOperator,"&":Q.operator,", ; ::":Q.separator,"Attribute/...":Q.meta}),j={__proto__:null,self:28,super:32,crate:34,impl:46,true:72,false:72,pub:88,in:92,const:96,unsafe:104,async:108,move:110,if:114,let:118,ref:142,mut:144,_:198,else:200,match:204,as:248,return:252,await:262,break:270,continue:276,while:312,loop:316,for:320,macro_rules:327,mod:334,extern:342,struct:346,where:364,union:379,enum:382,type:390,default:395,fn:396,trait:412,use:420,static:438,dyn:476},E=o.deserialize({version:14,states:"$2xQ]Q_OOP$wOWOOO&sQWO'#CnO)WQWO'#I`OOQP'#I`'#I`OOQQ'#Ie'#IeO)hO`O'#C}OOQR'#Ih'#IhO)sQWO'#IuOOQO'#Hk'#HkO)xQWO'#DpOOQR'#Iw'#IwO)xQWO'#DpO*ZQWO'#DpOOQO'#Iv'#IvO,SQWO'#J`O,ZQWO'#EiOOQV'#Hp'#HpO,cQYO'#F{OOQV'#El'#ElOOQV'#Em'#EmOOQV'#En'#EnO.YQ_O'#EkO0_Q_O'#EoO2gQWOOO4QQ_O'#FPO7hQWO'#J`OOQV'#FY'#FYO7{Q_O'#F^O:WQ_O'#FaOOQO'#F`'#F`O=sQ_O'#FcO=}Q_O'#FbO@VQWO'#FgOOQO'#J`'#J`OOQV'#Io'#IoOA]Q_O'#InOEPQWO'#InOOQV'#Fw'#FwOF[QWO'#JuOFcQWO'#F|OOQO'#IO'#IOOGrQWO'#GhOOQV'#Im'#ImOOQV'#Il'#IlOOQV'#Hj'#HjQGyQ_OOOKeQ_O'#DUOKlQYO'#CqOOQP'#I_'#I_OOQV'#Hg'#HgQ]Q_OOOLuQWO'#I`ONsQYO'#DXO!!eQWO'#JuO!!lQWO'#JuO!!vQ_O'#DfO!%]Q_O'#E}O!(sQ_O'#FWO!,ZQWO'#FZO!.^QXO'#FbO!.cQ_O'#EeO!!vQ_O'#FmO!0uQWO'#FoO!0zQWO'#FoO!1PQ^O'#FqO!1WQWO'#JuO!1_QWO'#FtO!1dQWO'#FxO!2WQWO'#JjO!2_QWO'#GOO!2_QWO'#G`O!2_QWO'#GbO!2_QWO'#GsOOQO'#Ju'#JuO!2dQWO'#GhO!2lQYO'#GpO!2_QWO'#GqO!3uQ^O'#GtO!3|QWO'#GuO!4hQWO'#HOP!4sOpO'#CcPOOO)CC})CC}OOOO'#Hi'#HiO!5OO`O,59iOOQV,59i,59iO!5ZQYO,5?aOOQO-E;i-E;iOOQO,5:[,5:[OOQP,59Z,59ZO)xQWO,5:[O)xQWO,5:[O!5oQWO,5?kO!5zQYO,5;qO!6PQYO,5;TO!6hQWO,59QO!7kQXO'#CnO!7xQXO'#I`O!9SQWO'#CoO,^QWO'#EiOOQV-E;n-E;nO!9eQWO'#FsOOQV,5WQWO,5:fOOQP,5:h,5:hO!1PQ^O,5:hO!1PQ^O,5:mO$>]QYO,5gQ_O'#HsO$>tQXO,5@QOOQV1G1i1G1iOOQP,5:e,5:eO$>|QXO,5]QYO,5=vO$LRQWO'#KRO$L^QWO,5=xOOQR,5=y,5=yO$LcQWO,5=zO$>]QYO,5>PO$>]QYO,5>POOQO1G.w1G.wO$>]QYO1G.wO$LnQYO,5=pO$LvQZO,59^OOQR,59^,59^O$>]QYO,5=wO% YQZO,5=}OOQR,5=},5=}O%#lQWO1G/_O!6PQYO1G/_O#FYQYO1G2vO%#qQWO1G2vO%$PQYO1G2vOOQV1G/i1G/iO%%YQWO,5:SO%%bQ_O1G/lO%*kQWO1G1^O%+RQWO1G1hOOQO1G1h1G1hO$>]QYO1G1hO%+iQ^O'#EgOOQV1G0k1G0kOOQV1G1s1G1sO!!vQ_O1G1sO!0zQWO1G1uO!1PQ^O1G1wO!.cQ_O1G1wOOQP,5:j,5:jO$>]QYO1G/^OOQO'#Cn'#CnO%+vQWO1G1zOOQV1G2O1G2OO%,OQWO'#CnO%,WQWO1G3TO%,]QWO1G3TO%,bQYO'#GQO%,sQWO'#G]O%-UQYO'#G_O%.hQYO'#GXOOQV1G2U1G2UO%/wQWO1G2UO%/|QWO1G2UO$ARQWO1G2UOOQV1G2f1G2fO%/wQWO1G2fO#CpQWO1G2fO%0UQWO'#GdOOQV1G2h1G2hO%0gQWO1G2hO#C{QWO1G2hO%0lQYO'#GSO$>]QYO1G2lO$AdQWO1G2lOOQV1G2y1G2yO%1xQWO1G2yO%3hQ^O'#GkO%3rQWO1G2nO#DfQWO1G2nO%4QQYO,5]QYO1G2vOOQV1G2w1G2wO%5tQWO1G2wO%5yQWO1G2wO#HXQWO1G2wOOQV1G2z1G2zO.YQ_O1G2zO$>]QYO1G2zO%6RQWO1G2zOOQO,5>l,5>lOOQO-E]QYO1G3UPOOO-E;d-E;dPOOO1G.i1G.iOOQO7+*g7+*gO%7VQYO'#IcO%7nQYO'#IfO%7yQYO'#IfO%8RQYO'#IfO%8^QYO,59eOOQO7+%b7+%bOOQP7+$a7+$aO%8cQ!fO'#JTOOQS'#EX'#EXOOQS'#EY'#EYOOQS'#EZ'#EZOOQS'#JT'#JTO%;UQWO'#EWOOQS'#E`'#E`OOQS'#JR'#JROOQS'#Hn'#HnO%;ZQ!fO,5:oOOQV,5:o,5:oOOQV'#JQ'#JQO%;bQ!fO,5:{OOQV,5:{,5:{O%;iQ!fO,5:|OOQV,5:|,5:|OOQV7+'e7+'eOOQV7+&Z7+&ZO%;pQ!fO,59TOOQO,59T,59TO%>YQWO7+$WO%>_QWO1G1yOOQV1G1y1G1yO!9SQWO1G.uO%>dQWO,5?}O%>nQ_O'#HqO%@|QWO,5?}OOQO1G1X1G1XOOQO7+&}7+&}O%AUQWO,5>^OOQO-E;p-E;pO%AcQWO7+'OO.YQ_O7+'OOOQO7+'O7+'OOOQO7+'P7+'PO%AjQWO7+'POOQO7+'W7+'WOOQP1G0V1G0VO%ArQXO1G/tO!M{QWO1G/tO%BsQXO1G0RO%CkQ^O'#HlO%C{QWO,5?eOOQP1G/u1G/uO%DWQWO1G/uO%D]QWO'#D_OOQO'#Dt'#DtO%DhQWO'#DtO%DmQWO'#I{OOQO'#Iz'#IzO%DuQWO,5:_O%DzQWO'#DtO%EPQWO'#DtOOQP1G0Q1G0QOOQP1G0S1G0SOOQP1G0X1G0XO%EXQXO1G1jO%EdQXO'#FeOOQP,5>_,5>_O!1PQ^O'#FeOOQP-E;q-E;qO$>]QYO1G1jOOQO7+'S7+'SOOQO,5]QYO7+$xOOQV7+'j7+'jO%FsQWO7+(oO%FxQWO7+(oOOQV7+'p7+'pO%/wQWO7+'pO%F}QWO7+'pO%GVQWO7+'pOOQV7+(Q7+(QO%/wQWO7+(QO#CpQWO7+(QOOQV7+(S7+(SO%0gQWO7+(SO#C{QWO7+(SO$>]QYO7+(WO%GeQWO7+(WO#HUQYO7+(cO%GjQWO7+(YO#DfQWO7+(YOOQV7+(c7+(cO%5tQWO7+(cO%5yQWO7+(cO#HXQWO7+(cOOQV7+(g7+(gO$>]QYO7+(pO%GxQWO7+(pO!1dQWO7+(pOOQV7+$v7+$vO%G}QWO7+$vO%HSQZO1G3ZO%JfQWO1G4jOOQO1G4j1G4jOOQR1G.}1G.}O#.WQWO1G.}O%JkQWO'#KQOOQO'#HW'#HWO%J|QWO'#HXO%KXQWO'#KQOOQO'#KP'#KPO%KaQWO,5=qO%KfQYO'#H[O%LrQWO'#GmO%L}QYO'#CtO%MXQWO'#GmO$>]QYO1G3ZOOQR1G3g1G3gO#7aQWO1G3ZO%M^QZO1G3bO$>]QYO1G3bO& mQYO'#IVO& }QWO,5@mOOQR1G3d1G3dOOQR1G3f1G3fO.YQ_O1G3fOOQR1G3k1G3kO&!VQYO7+$cO&!_QYO'#KOOOQQ'#J}'#J}O&!gQYO1G3[O&!lQZO1G3cOOQQ7+$y7+$yO&${QWO7+$yO&%QQWO7+(bOOQV7+(b7+(bO%5tQWO7+(bO$>]QYO7+(bO#FYQYO7+(bO&%YQWO7+(bO!.cQ_O1G/nO&%hQWO7+%WO$?[QWO7+'SO&%pQWO'#EhO&%{Q^O'#EhOOQU'#Ho'#HoO&%{Q^O,5;ROOQV,5;R,5;RO&&VQWO,5;RO&&[Q^O,5;RO!0zQWO7+'_OOQV7+'a7+'aO&&iQWO7+'cO&&qQWO7+'cO&&xQWO7+$xO&'TQ!fO7+'fO&'[Q!fO7+'fOOQV7+(o7+(oO!1dQWO7+(oO&'cQYO,5]QYO'#JrOOQO'#Jq'#JqO&*YQWO,5]QYO'#GUO&,SQYO'#JkOOQQ,5]QYO7+(YO&0SQYO'#HxO&0hQYO1G2WOOQQ1G2W1G2WOOQQ,5]QYO,5]QYO7+(fO&1dQWO'#IRO&1nQWO,5@hOOQO1G3Q1G3QOOQO1G2}1G2}OOQO1G3P1G3POOQO1G3R1G3ROOQO1G3S1G3SOOQO1G3O1G3OO&1vQWO7+(pO$>]QYO,59fO&2RQ^O'#ISO&2xQYO,5?QOOQR1G/P1G/PO&3QQ!bO,5:pO&3VQ!fO,5:rOOQS-E;l-E;lOOQV1G0Z1G0ZOOQV1G0g1G0gOOQV1G0h1G0hO&3^QWO'#JTOOQO1G.o1G.oOOQV<]O&3qQWO,5>]OOQO-E;o-E;oOOQO<WOOQO-E;j-E;jOOQP7+%a7+%aO!1PQ^O,5:`O&5cQWO'#HmO&5wQWO,5?gOOQP1G/y1G/yOOQO,5:`,5:`O&6PQWO,5:`O%DzQWO,5:`O$>]QYO,5`,5>`OOQO-E;r-E;rOOQV7+'l7+'lO&6yQWO<]QYO<]QYO<]QYO<]QYO7+(uOOQO7+*U7+*UOOQR7+$i7+$iO&8cQWO,5@lOOQO'#Gm'#GmO&8kQWO'#GmO&8vQYO'#IUO&8cQWO,5@lOOQR1G3]1G3]O&:cQYO,5=vO&;rQYO,5=XO&;|QWO,5=XOOQO,5=X,5=XOOQR7+(u7+(uO&eQZO7+(|O&@tQWO,5>qOOQO-E]QYO<]QYO,5]QYO,5@^O&D^QYO'#H|O&EsQWO,5@^OOQO1G2e1G2eO%,nQWO,5]QYO,5PO&I]QYO,5@VOOQV<]QYO,5=WO&KuQWO,5@cO&K}QWO,5@cO&MvQ^O'#IPO&KuQWO,5@cOOQO1G2q1G2qO&NTQWO,5=WO&N]QWO<oO&NvQYO,5>dO' UQYO,5>dOOQQ,5>d,5>dOOQQ-E;v-E;vOOQQ7+'r7+'rO' aQYO1G2]O$>]QYO1G2^OOQV<m,5>mOOQO-EnOOQQ,5>n,5>nO'!fQYO,5>nOOQQ-EX,5>XOOQO-E;k-E;kO!1PQ^O1G/zOOQO1G/z1G/zO'%oQWO1G/zO'%tQXO1G1kO$>]QYO1G1kO'&PQWO7+'[OOQVANA`ANA`O'&ZQWOANA`O$>]QYOANA`O'&cQWOANA`OOQVAN>OAN>OO.YQ_OAN>OO'&qQWOANAuOOQVAN@vAN@vO'&vQWOAN@vOOQVANAWANAWOOQVANAYANAYOOQVANA^ANA^O'&{QWOANA^OOQVANAiANAiO%5tQWOANAiO%5yQWOANAiO''TQWOANA`OOQVANAvANAvO.YQ_OANAvO''cQWOANAvO$>]QYOANAvOOQR<pOOQO'#HY'#HYO''vQWO'#HZOOQO,5>p,5>pOOQO-E]QYO<o,5>oOOQQ-E]QYOANAhO'(bQWO1G1rO')UQ^O1G0nO.YQ_O1G0nO'*zQWO,5;UO'+RQWO1G0nP'+WQWO'#ERP&%{Q^O'#HpOOQV7+&X7+&XO'+cQWO7+&XO&&qQWOAN@iO'+hQWOAN>OO!5oQWO,5a,5>aO'+oQWOAN@lO'+tQWOAN@lOOQS-E;s-E;sOOQVAN@lAN@lO'+|QWOAN@lOOQVANAuANAuO',UQWO1G5vO',^QWO1G2dO$>]QYO1G2dO&'|QWO,5>gOOQO,5>g,5>gOOQO-E;y-E;yO',iQWO1G5xO',qQWO1G5xO&(nQYO,5>hO',|QWO,5>hO$>]QYO,5>hOOQO-E;z-E;zO'-XQWO'#JnOOQO1G2a1G2aOOQO,5>f,5>fOOQO-E;x-E;xO&'cQYO,5iOOQO,5>i,5>iOOQO-E;{-E;{OOQQ,5>c,5>cOOQQ-E;u-E;uO'.pQWO1G2sO'/QQWO1G2rO'/]QWO1G5}O'/eQ^O,5>kOOQO'#Go'#GoOOQO,5>k,5>kO'/lQWO,5>kOOQO-E;}-E;}O$>]QYO1G2rO'/zQYO7+'xO'0VQWOANAlOOQVANAlANAlO.YQ_OANAlO'0^QWOANAvOOQS7+%x7+%xO'0eQWO7+%xO'0pQ!fO7+%xO'0}QWO7+%fO!1PQ^O7+%fO'1YQXO7+'VOOQVG26zG26zO'1eQWOG26zO'1sQWOG26zO$>]QYOG26zO'1{QWOG23jOOQVG27aG27aOOQVG26bG26bOOQVG26xG26xOOQVG27TG27TO%5tQWOG27TO'2SQWOG27bOOQVG27bG27bO.YQ_OG27bO'2ZQWOG27bOOQO1G4[1G4[OOQO7+(_7+(_OOQRANA{ANA{OOQVG27SG27SO%5tQWOG27SO&0uQWOG27SO'2fQ^O7+&YO'4PQWO7+'^O'4sQ^O7+&YO.YQ_O7+&YP.YQ_O,5;SP'6PQWO,5;SP'6UQWO,5;SOOQV<]QYO1G4SO%,nQWO'#HyO'7UQWO,5@YO'7dQWO7+(VO.YQ_O7+(VOOQO1G4T1G4TOOQO1G4V1G4VO'7nQWO1G4VO'7|QWO7+(^OOQVG27WG27WO'8XQWOG27WOOQS<e,5>eOOQO-E;w-E;wO'?rQWO<wD_DpPDvHQPPPPPPK`P! P! _PPPPP!!VP!$oP!$oPP!&oP!(rP!(w!)n!*f!*f!*f!(w!+]P!(w!.Q!.TPP!.ZP!(w!(w!(w!(wP!(w!(wP!(w!(w!.y!/dP!/dJ}J}J}PPPP!/d!.y!/sPP!$oP!0^!0a!0g!1h!1t!3t!3t!5r!7t!1t!1t!9p!;_!=O!>k!@U!Am!CS!De!1t!1tP!1tP!1t!1t!Et!1tP!Ge!1t!1tP!Ie!1tP!1t!7t!7t!1t!7t!1t!Kl!Mt!Mw!7t!1t!Mz!M}!M}!M}!NR!$oP!$oP!$oP! P! PP!N]! P! PP!Ni# }! PP! PP#!^##c##k#$Z#$_#$e#$e#$mP#&s#&s#&y#'o#'{! PP! PP#(]#(l! PP! PPP#(x#)W#)d#)|#)^! P! PP! P! P! PP#*S#*S#*Y#*`#*S#*S! P! PP#*m#*v#+Q#+Q#,x#.l#.x#.x#.{#.{5a5a5a5a5a5a5a5aP5a#/O#/U#/p#1{#2R#2b#6^#6d#6j#6|#7W#8w#9R#9b#9h#9n#9x#:S#:Y#:g#:m#:s#:}#;]#;g#=u#>R#>`#>f#>n#>u#?PPPPPPPP#?V#BaP#F^#Jx#Ls#Nr$&^P$&aPPP$)_$)h$)z$/U$1d$1m$3fP!(w$4`$7r$:i$>T$>^$>c$>fPPP$>i$A`$A|P$BaPPPPPPPPPP$BvP$EU$EX$E[$Eb$Ee$Eh$Ek$En$Et$HO$HR$HU$HX$H[$H_$Hb$He$Hh$Hk$Hn$Jt$Jw$Jz#*S$KW$K^$Ka$Kd$Kh$Kl$Ko$KrQ!tPT'V!s'Wi!SOlm!P!T$T$W$y%b)U*f/gQ'i#QR,n'l(OSOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%X%_%b&U&Y&[&b&u&z&|'P'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n+z,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1P1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:gS(z$v-oQ*p&eQ*t&hQ-k(yQ-y)ZW0Z+Q0Y4Z7UR4Y0[&w!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#r]Ofgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hb#[b#Q$y'l(b)S)U*Z-t!h$bo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m$b%k!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g!W:y!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:|%n$_%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g$e%l!Q!n$O$u%n%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g'hZOY[fgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r%_%b%i%j&U&Y&[&b&u'a'}(W(Y(d(e(f(j(o(p(r(|)i)p)q*f*i*k*l+Z+n,s,z-R-T-g-m.i.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:x$^%l!Q!n$O$u%n%o%p%q%y%{&P&p&r(q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ&j!hQ&k!iQ&l!jQ&m!kQ&s!oQ)[%QQ)]%RQ)^%SQ)_%TQ)b%WQ+`&oS,R']1ZQ.W)`S/r*u4TR4n0s+yTOY[bfgilmop!O!P!Q!T!Y!Z![!_!`!c!n!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$O$T$W$`$a$e$g$h$q$r$u$y%X%_%b%i%j%n%o%p%q%y%{&P&U&Y&[&b&o&p&r&u&z&|'P']'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(q(r(|)S)U)i)p)q)s)x)y*O*P*R*V*Z*[*^*e*f*i*k*l*n*w*x+U+V+Z+h+n+o+z+},q,s,z-R-T-g-i-m-t-v.U.`.i.p.t.x.y.}/Z/[/^/b/d/g/{/}0`0e0g0m0r0w0}1O1P1Y1Z1h1r1y1|2a2h2j2m2s2v3V3_3a3f3h3k3u3{3|4R4U4W4_4c4e4h4t4v4|5[5`5d5g5t5v6R6Y6]6a6p6v6x7S7^7c7g7m7r7{8W8X8g8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:xQ'[!xQ'h#PQ)l%gU)r%m*T*WR.f)kQ,T']R5P1Z#t%s!Q!n$O$u%p%q&P&p&r(q)x)y*O*R*V*[*^*e*n*w+V+h+o+}-i-v.U.`.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2v3V3u3{3|4U4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)x%oQ+_&oQ,U']n,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7kS.q)s2sQ/O*PQ/Q*SQ/q*uS0Q*x4RQ0a+U[0o+Z.j0g4h5y7^Q2v.pS4d0e2rQ4m0sQ5Q1ZQ6T3RQ6z4PQ7O4TQ7X4_R9Y8h&jVOfgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u']'}(W(Y(b(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1Z1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fU&g!g%P%[o,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7k$nsOfgilm!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y'}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9z9{:O:P:Q:R:S:T:U:V:W:X:Y:eS$tp9xS&O!W#bS&Q!X#cQ&`!bQ*_&RQ*a&VS*d&[:fQ*h&^Q,T']Q-j(wQ/i*jQ0p+[S2f.X0qQ3]/_Q3^/`Q3g/hQ3i/kQ5P1ZU5b2R2g4lU7o5c5e5rQ8]6dS8u7p7qS9_8v8wR9i9`i{Ob!O!P!T$y%_%b)S)U)i-thxOb!O!P!T$y%_%b)S)U)i-tW/v*v/t3w6qQ/}*wW0[+Q0Y4Z7UQ3{/{Q6x3|R8g6v!h$do!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ&d!dQ&f!fQ&n!mW&x!q%X&|1PQ'S!rQ)X$}Q)Y%OQ)a%VU)d%Y'T'UQ*s&hS+s&z'PS-Y(k1sQ-u)WQ-x)ZS.a)e)fS0x+c/sQ1S+zQ1W+{S1v-_-`Q2k.bQ3s/pQ5]1xR5h2V${sOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$zsOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR3]/_V&T!Y!`*i!i$lo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!k$^o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!i$co!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&e^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR(l$fQ-[(kR5Y1sQ(S#|S({$v-oS-Z(k1sQ-l(yW/u*v/t3w6qS1w-_-`Q3v/vR5^1xQ'e#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,o'mk,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ'f#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,p'mR*g&]X/c*f/d/g3f!}aOb!O!P!T#z$v$y%_%b'}(y)S)U)i)s*f*v*w+Q+Z,s-o-t.j/b/d/g/t/{0Y0g1h2s3f3w3|4Z4h5y6a6q6v7U7^Q3`/aQ6_3bQ8Y6`R9V8Z${rOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#nfOfglmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!T9u!Y!_!`*i*l/^3h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#rfOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!X9u!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$srOfglmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#U#oh#d$P$Q$V$s%^&W&X'q't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b}:P&S&]/k3[6d:[:]:c:d:h:j:k:l:m:n:o:p:q:r:v:w:{#W#ph#d$P$Q$V$s%^&W&X'q'r't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b!P:Q&S&]/k3[6d:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{#S#qh#d$P$Q$V$s%^&W&X'q'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b{:R&S&]/k3[6d:[:]:c:d:h:k:l:m:n:o:p:q:r:v:w:{#Q#rh#d$P$Q$V$s%^&W&X'q'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9by:S&S&]/k3[6d:[:]:c:d:h:l:m:n:o:p:q:r:v:w:{#O#sh#d$P$Q$V$s%^&W&X'q'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bw:T&S&]/k3[6d:[:]:c:d:h:m:n:o:p:q:r:v:w:{!|#th#d$P$Q$V$s%^&W&X'q'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bu:U&S&]/k3[6d:[:]:c:d:h:n:o:p:q:r:v:w:{!x#vh#d$P$Q$V$s%^&W&X'q'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bq:W&S&]/k3[6d:[:]:c:d:h:p:q:r:v:w:{!v#wh#d$P$Q$V$s%^&W&X'q'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bo:X&S&]/k3[6d:[:]:c:d:h:q:r:v:w:{$]#{h#`#d$P$Q$V$s%^&S&W&X&]'q'r's't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n/k0z1i1l1}3P3[4w5V5a6^6d6e7R7e7h7s7y8j8q8{9[9b:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{${jOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$v!aOfgilmp!O!P!T!Y!Z!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ&Y![Q&Z!]R:e9{#rpOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hQ&[!^!W9x!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:f:zR$moR-f(rR$wqT(}$v-oQ/f*fS3d/d/gR6c3fQ3m/mQ3p/nQ6i3nR6l3qQ$zwQ)V${Q*q&fQ+f&qQ+i&sQ-w)YW.Z)b+j+k+lS/X*]+gW2b.W.[.].^U3W/Y/]0yU5o2c2d2eS6W3X3ZS7w5p5qS8Q6V6XQ8y7xS8}8R8SR9c9O^|O!O!P!T%_%b)iX)R$y)S)U-tQ&r!nQ*^&PQ*|&jQ+P&kQ+T&lQ+W&mQ+]&nQ+l&sQ-})[Q.Q)]Q.T)^Q.V)_Q.Y)aQ.^)bQ2S-uQ2e.WR4U0VU+a&o*u4TR4o0sQ+Y&mQ+k&sS.])b+l^0v+_+`/q/r4m4n7OS2d.W.^S4Q0R0SR5q2eS0R*x4RQ0a+UR7X4_U+d&o*u4TR4p0sQ*z&jQ+O&kQ+S&lQ+g&qQ+j&sS-{)[*|S.P)]+PS.S)^+TU.[)b+k+lQ/Y*]Q0X*{Q0q+[Q2X-|Q2Y-}Q2].QQ2_.TU2c.W.].^Q2g.XS3Z/]0yS5c2R4lQ5j2ZS5p2d2eQ6X3XS7q5e5rQ7x5qQ8R6VQ8v7pQ9O8SR9`8wQ0T*xR6|4RQ*y&jQ*}&kU-z)[*z*|U.O)]+O+PS2W-{-}S2[.P.QQ4X0ZQ5i2YQ5k2]R7T4YQ/w*vQ3t/tQ6r3wR8d6qQ*{&jS-|)[*|Q2Z-}Q4X0ZR7T4YQ+R&lU.R)^+S+TS2^.S.TR5l2_Q0]+QQ4V0YQ7V4ZR8l7UQ+[&nS.X)a+]S2R-u.YR5e2SQ0i+ZQ4f0gQ7`4hR8m7^Q.m)sQ0i+ZQ2p.jQ4f0gQ5|2sQ7`4hQ7}5yR8m7^Q0i+ZR4f0gX'O!q%X&|1PX&{!q%X&|1PW'O!q%X&|1PS+u&z'PR1U+z_|O!O!P!T%_%b)iQ%a!PS)h%_%bR.d)i$^%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ*U%yR*X%{$c%n!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gW)t%m%x*T*WQ.e)jR2{.vR.m)sR5|2sQ'W!sR,O'WQ!TOQ$TlQ$WmQ%b!P[%|!T$T$W%b)U/gQ)U$yR/g*f$b%i!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g[)n%i)p.i:`:t:xQ)p%jQ.i)qQ:`%nQ:t:aR:x:uQ!vUR'Y!vS!OO!TU%]!O%_)iQ%_!PR)i%b#rYOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hh!yY!|#U$`'a'n(d,q-R9s9|:gQ!|[b#Ub#Q$y'l(b)S)U*Z-t!h$`o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ'a!}Q'n#ZQ(d$aQ,q'oQ-R(e!W9s!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ9|9tR:g9}Q-U(gR1p-UQ1t-[R5Z1tQ,c'bQ,f'cQ,h'dW1`,c,f,h5UR5U1_Q/d*fS3c/d3fR3f/gfbO!O!P!T$y%_%b)S)U)i-tp#Wb'}(y.j/b/t/{0Y0g1h5y6a6q6v7U7^Q'}#zS(y$v-oQ.j)sW/b*f/d/g3fQ/t*vQ/{*wQ0Y+QQ0g+ZQ1h,sQ5y2sQ6q3wQ6v3|Q7U4ZR7^4hQ,t(OQ1g,rT1j,t1gS(X$Q([Q(^$VU,x(X(^,}R,}(`Q(s$mR-h(sQ-p)OR2P-pQ3n/mQ3q/nT6j3n3qQ)S$yS-r)S-tR-t)UQ4`0aR7Y4``0t+^+_+`+a+d/q/r7OR4q0tQ8i6zR9Z8iQ4S0TR6}4SQ3x/wQ6n3tT6s3x6nQ3}/|Q6t3zU6y3}6t8eR8e6uQ4[0]Q7Q4VT7W4[7QhzOb!O!P!T$y%_%b)S)U)i-tQ$|xW%Zz$|%f)v$b%f!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR)v%nS4i0i0nS7]4f4gT7b4i7]W&z!q%X&|1PS+r&z+zR+z'PQ1Q+wR4z1QU1[,S,T,UR5R1[S3S/Q7OR6U3SQ2t.mQ5x2pT5}2t5xQ.z)zR3O.z^_O!O!P!T%_%b)iY#Xb$y)S)U-t$l#_fgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!h$io!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'j#Q'lQ-P(bR/V*Z&v!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!{Y[#U#Z9s9tW&{!q%X&|1P['`!|!}'n'o9|9}S(c$`$aS+t&z'PU,X'a,q:gS-Q(d(eQ1T+zR1n-RS%t!Q&oQ&q!nQ(V$OQ(w$uS)w%o.pQ)z%pQ)}%qS*]&P&rQ+e&pQ,S']Q-d(qQ.l)sU.w)x)y2vS/O*O*PQ/P*RQ/T*VQ/W*[Q/]*^Q/`*eQ/l*nQ/|*wS0S*x4RQ0a+UQ0c+VQ0y+hQ0{+oQ1X+}Q1{-iQ2T-vQ2`.UQ2i.`Q2z.tQ2|.xQ2}.yQ3X/ZQ3Y/[S3z/{/}Q4^0`Q4l0rQ4s0wQ4x1OQ4}1YQ5O1ZQ5_1yQ5n2aQ5r2hQ5u2jQ5w2mQ5{2sQ6V3VQ6o3uQ6u3{Q6w3|Q7P4UQ7X4_Q7[4eQ7d4tQ7n5`Q7p5dQ7|5vQ8P6RQ8S6YQ8c6pS8f6v6xQ8o7cQ8w7rR9X8g$^%m!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)j%nQ*T%yR*W%{$y%h!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x'pWOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$x%g!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x_&y!q%X&z&|'P+z1PR,V']$zrOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!j$]o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ,T']R5P1Z_}O!O!P!T%_%b)i^|O!O!P!T%_%b)iQ#YbX)R$y)S)U-tbhO!O!T3_6]8W8X9U9hS#`f9uQ#dgQ$PiQ$QlQ$VmQ$spW%^!P%_%b)iU&S!Y!`*iQ&W!ZQ&X![Q&]!_Q'q#eQ'r#oS's#p:QQ't#qQ'u#rQ'v#sQ'w#tQ'x#uQ'y#vQ'z#wQ'{#xQ'|#yQ(O#zQ(U#}Q([$TQ(`$WQ*b&YQ*c&[Q,r'}Q,w(WQ,y(YQ-n(|Q/k*lQ0z+nQ1i,sQ1l,zQ1}-mQ3P.}Q3[/^Q4w0}Q5V1hQ5a1|Q6^3aQ6d3hQ6e3kQ7R4WQ7e4vQ7h4|Q7s5gQ7y5tQ8j7SQ8q7gQ8{7{Q9[8kQ9b8|Q:[9wQ:]9xQ:c9zQ:d9{Q:h:OQ:i:PQ:j:RQ:k:SQ:l:TQ:m:UQ:n:VQ:o:WQ:p:XQ:q:YQ:r:ZQ:v:eQ:w:fR:{9v^tO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6[3_Q8V6]Q9R8WQ9T8XQ9g9UR9m9hQ&V!YQ&^!`R/h*iQ$joQ&a!cQ&t!pU(g$e$g(jS(n$h0eQ(u$qQ(v$rQ*`&UQ*m&bQ+p&uQ-S(fS-b(o4cQ-c(pQ-e(rW/a*f/d/g3fQ/j*kW0f+Z0g4h7^Q1o-TQ1z-gQ3b/bQ4k0mQ5X1rQ7l5[Q8Z6aR8t7m!h$_o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mR-P(b'qXOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$zqOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$fo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&d^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!zY[$`$a9s9t['_!|!}(d(e9|9}W)o%i%j:`:aU,W'a-R:gW.h)p)q:t:uT2o.i:xQ(i$eQ(m$gR-W(jV(h$e$g(jR-^(kR-](k$znOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$ko!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'g#O'pj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ,m'jQ.u)uR8_6f`,b'b'c'd,c,f,h1_5UQ1e,lX3l/m/n3n3qj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ7j5TR8s7k^uO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6Z3_Q8U6]Q9Q8WQ9S8XQ9f9UR9l9hR(Q#zR(P#zQ$SlR(]$TR$ooR$noR)Q$vR)P$vQ)O$vR2O-ohwOb!O!P!T$y%_%b)S)U)i-t$l!lz!Q!n$O$u$|%f%n%o%p%q%y%{&P&o&p&r'](q)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR${xR0b+UR0W*xR0U*xR6{4PR/y*vR/x*vR0P*wR0O*wR0_+QR0^+Q%XyObxz!O!P!Q!T!n$O$u$y$|%_%b%f%n%o%p%q%y%{&P&o&p&r'](q)S)U)i)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-t-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR0k+ZR0j+ZQ'R!qQ)c%XQ+w&|R4y1PX'Q!q%X&|1PR+y&|R+x&|T/S*S4TT/R*S4TR.o)sR.n)sR){%p",nodeNames:"⚠ | < > RawString Float LineComment BlockComment SourceFile ] InnerAttribute ! [ MetaItem self Metavariable super crate Identifier ScopedIdentifier :: QualifiedScope AbstractType impl SelfType MetaType TypeIdentifier ScopedTypeIdentifier ScopeIdentifier TypeArgList TypeBinding = Lifetime String Escape Char Boolean Integer } { Block ; ConstItem Vis pub ( in ) const BoundIdentifier : UnsafeBlock unsafe AsyncBlock async move IfExpression if LetDeclaration let LiteralPattern ArithOp MetaPattern SelfPattern ScopedIdentifier TuplePattern ScopedTypeIdentifier , StructPattern FieldPatternList FieldPattern ref mut FieldIdentifier .. RefPattern SlicePattern CapturedPattern ReferencePattern & MutPattern RangePattern ... OrPattern MacroPattern ParenthesizedTokens TokenBinding Identifier TokenRepetition ArithOp BitOp LogicOp UpdateOp CompareOp -> => ArithOp BracketedTokens BracedTokens _ else MatchExpression match MatchBlock MatchArm Attribute Guard UnaryExpression ArithOp DerefOp LogicOp ReferenceExpression TryExpression BinaryExpression ArithOp ArithOp BitOp BitOp BitOp BitOp LogicOp LogicOp AssignmentExpression TypeCastExpression as ReturnExpression return RangeExpression CallExpression ArgList AwaitExpression await FieldExpression GenericFunction BreakExpression break LoopLabel ContinueExpression continue IndexExpression ArrayExpression TupleExpression MacroInvocation UnitExpression ClosureExpression ParamList Parameter Parameter ParenthesizedExpression StructExpression FieldInitializerList ShorthandFieldInitializer FieldInitializer BaseFieldInitializer MatchArm WhileExpression while LoopExpression loop ForExpression for MacroInvocation MacroDefinition macro_rules MacroRule EmptyStatement ModItem mod DeclarationList AttributeItem ForeignModItem extern StructItem struct TypeParamList ConstrainedTypeParameter TraitBounds HigherRankedTraitBound RemovedTraitBound OptionalTypeParameter ConstParameter WhereClause where LifetimeClause TypeBoundClause FieldDeclarationList FieldDeclaration OrderedFieldDeclarationList UnionItem union EnumItem enum EnumVariantList EnumVariant TypeItem type FunctionItem default fn ParamList Parameter SelfParameter VariadicParameter VariadicParameter ImplItem TraitItem trait AssociatedType LetDeclaration UseDeclaration use ScopedIdentifier UseAsClause ScopedIdentifier UseList ScopedUseList UseWildcard ExternCrateDeclaration StaticItem static ExpressionStatement ExpressionStatement GenericType FunctionType ForLifetimes ParamList VariadicParameter Parameter VariadicParameter Parameter ReferenceType PointerType TupleType UnitType ArrayType MacroInvocation EmptyType DynamicType dyn BoundedType",maxTerm:359,nodeProps:[["isolate",-4,4,6,7,33,""],["group",-42,4,5,14,15,16,17,18,19,33,35,36,37,40,51,53,56,101,107,111,112,113,122,123,125,127,128,130,132,133,134,137,139,140,141,142,143,144,148,149,155,157,159,"Expression",-16,22,24,25,26,27,222,223,230,231,232,233,234,235,236,237,239,"Type",-20,42,161,162,165,166,169,170,172,188,190,194,196,204,205,207,208,209,217,218,220,"Statement",-17,49,60,62,63,64,65,68,74,75,76,77,78,80,81,83,84,99,"Pattern"],["openedBy",9,"[",38,"{",47,"("],["closedBy",12,"]",39,"}",45,")"]],propSources:[k],skippedNodes:[0,6,7,240],repeatNodeCount:32,tokenData:"$%h_R!XOX$nXY5gYZ6iZ]$n]^5g^p$npq5gqr7Xrs9cst:Rtu;Tuv>vvwAQwxCbxy!+Tyz!,Vz{!-X{|!/_|}!0g}!O!1i!O!P!3v!P!Q!8[!Q!R!Bw!R![!Dr![!]#+q!]!^#-{!^!_#.}!_!`#1b!`!a#3o!a!b#6S!b!c#7U!c!}#8W!}#O#:T#O#P#;V#P#Q#Cb#Q#R#Dd#R#S#8W#S#T$n#T#U#8W#U#V#El#V#f#8W#f#g#Ic#g#o#8W#o#p$ S#p#q$!U#q#r$$f#r${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nU$u]'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU%uV'_Q'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&aV'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&yVOz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`S'cVOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S'{UOz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`S(bUOz(t{!P(t!P!Q(_!Q;'S(t;'S;=`*a<%lO(tS(wVOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)eV'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)}UOz(tz{)z{!P(t!Q;'S(t;'S;=`*a<%lO(tS*dP;=`<%l(tS*jP;=`<%l)^S*pP;=`<%l'`S*vP;=`<%l&[S+OO'PSU+T]'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U,R]'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU-P]'_QOY+|YZ-xZr+|rs'`sz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U-}V'_QOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[Q.iV'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.dQ/TO'_QQ/WP;=`<%l.dU/`]'_QOY0XYZ3uZr0Xrs(tsz0Xz{.d{!P0X!P!Q/Z!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU0^]'_QOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU1`]'_Q'PS'OSOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU2bV'_Q'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U2|]'_QOY0XYZ3uZr0Xrs(tsz0Xz{2w{!P0X!P!Q.d!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU3zV'_QOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U4dP;=`<%l0XU4jP;=`<%l1VU4pP;=`<%l+|U4vP;=`<%l$nU5QV'_Q'PSOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_5p]'_Q&|X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_6rV'_Q&|X'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_7b_ZX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_8j]#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_9lV']Q'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_:[]'QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_;^i'_Q'vW'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_=Uj'_Q_X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![<{![!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_?P_(TP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_@X]#OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_AZa!qX'_Q'OSOY$nYZ%nZr$nrs&[sv$nvwB`wz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Bi]'}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Cik'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q!cE^!c!}Lp!}#OE^#O#P!!l#P#RE^#R#SLp#S#TE^#T#oLp#o${E^${$|Lp$|4wE^4w5bLp5b5iE^5i6SLp6S;'SE^;'S;=`!*}<%lOE^_Ee_'_Q'OSOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Fm]'_Q'OSsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_GmX'_Q'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]HaV'OSsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]H{X'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_Im_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Js]'_QsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Kq_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Lyl'_Q'OS'ZXOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n_Nzj'_Q'OS'ZXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n]!!qZ'OSOzHvz{!#d{!PHv!P!Q!$n!Q#iHv#i#j!%Z#j#lHv#l#m!'V#m;'SHv;'S;=`!*w<%lOHv]!#gXOw'`wx!$Sxz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`]!$XVsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]!$qWOw'`wx!$Sxz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`]!%`^'OSOz&[z{&v{!P&[!P!Q'x!Q![!&[![!c&[!c!i!&[!i#T&[#T#Z!&[#Z#o&[#o#p!({#p;'S&[;'S;=`*s<%lO&[]!&a['OSOz&[z{&v{!P&[!P!Q'x!Q![!'V![!c&[!c!i!'V!i#T&[#T#Z!'V#Z;'S&[;'S;=`*s<%lO&[]!'[['OSOz&[z{&v{!P&[!P!Q'x!Q![!(Q![!c&[!c!i!(Q!i#T&[#T#Z!(Q#Z;'S&[;'S;=`*s<%lO&[]!(V['OSOz&[z{&v{!P&[!P!Q'x!Q![Hv![!c&[!c!iHv!i#T&[#T#ZHv#Z;'S&[;'S;=`*s<%lO&[]!)Q['OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z;'S&[;'S;=`*s<%lO&[]!){^'OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z#q&[#q#rHv#r;'S&[;'S;=`*s<%lO&[]!*zP;=`<%lHv_!+QP;=`<%lE^_!+^]}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!,`]!PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!-`_(QX'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!.f]#OX'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!/h_(PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!0p]!eX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!1r`'gX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`!a!2t!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!2}]#QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!4P^(OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!4{!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!5U`!lX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!6W!P!Q,z!Q!_$n!_!`!7Y!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!6a]!tX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nV!7c]'qP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!8c_'_Q'xXOY+|YZ-xZr+|rs'`sz+|z{!9b{!P+|!P!Q!:O!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!9iV&}]'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_!:V]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!Aq{!P!;O!P!Q!:O!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;O_!;V]'_QUXOY!jYZ(tZz!>jz{!=x{!P!>j!P!Q!?|!Q;'S!>j;'S;=`!@e<%lO!>j]!>oXUXOY!=SYZ)^Zz!=Sz{!=x{!P!=S!P!Q!?[!Q;'S!=S;'S;=`!@k<%lO!=S]!?aXUXOY!>jYZ(tZz!>jz{!?|{!P!>j!P!Q!?[!Q;'S!>j;'S;=`!@e<%lO!>jX!@RSUXOY!?|Z;'S!?|;'S;=`!@_<%lO!?|X!@bP;=`<%l!?|]!@hP;=`<%l!>j]!@nP;=`<%l!=S_!@x]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!@q{!P!;O!P!Q!Aq!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;OZ!AxX'_QUXOY!AqYZ/OZr!Aqrs!?|s#O!Aq#O#P!?|#P;'S!Aq;'S;=`!Be<%lO!AqZ!BhP;=`<%l!Aq_!BnP;=`<%l!;O_!BtP;=`<%l!o![!c&[!c!i#>o!i#T&[#T#Z#>o#Z#o&[#o#p#A`#p;'S&[;'S;=`*s<%lO&[U#>t['OSOz&[z{&v{!P&[!P!Q'x!Q![#?j![!c&[!c!i#?j!i#T&[#T#Z#?j#Z;'S&[;'S;=`*s<%lO&[U#?o['OSOz&[z{&v{!P&[!P!Q'x!Q![#@e![!c&[!c!i#@e!i#T&[#T#Z#@e#Z;'S&[;'S;=`*s<%lO&[U#@j['OSOz&[z{&v{!P&[!P!Q'x!Q![#;}![!c&[!c!i#;}!i#T&[#T#Z#;}#Z;'S&[;'S;=`*s<%lO&[U#Ae['OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z;'S&[;'S;=`*s<%lO&[U#B`^'OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z#q&[#q#r#;}#r;'S&[;'S;=`*s<%lO&[U#C_P;=`<%l#;}_#Ck]XX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Dm_'{X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Ewl'_Q'OS!yW'TPOY$nYZ%nZr$nrs#Gosw$nwx#H]xz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$n]#GvV'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_#Hd_'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q#OE^#O#P!!l#P;'SE^;'S;=`!*}<%lOE^_#Ink'_Q'OS!yW'TPOY$nYZ%nZr$nrs&[st#Kctz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nV#Kji'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$nV#Mbj'_Q'OS'TPOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#MX![!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$n_$ ]]wX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$!_a'rX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P#p$n#p#q$#d#q;'S$n;'S;=`4s<%lO$n_$#m]'|X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$$o]vX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n",tokenizers:[m,u,G,0,1,2,3],topRules:{SourceFile:[0,8]},specialized:[{term:281,get:O=>j[O]||-1}],tokenPrec:15596}),I=q.define({name:"rust",parser:E.configure({props:[l.add({IfExpression:r({except:/^\s*({|else\b)/}),"String BlockComment":()=>null,AttributeItem:O=>O.continue(),"Statement MatchArm":r()}),w.add(O=>{if(/(Block|edTokens|List)$/.test(O.name))return V;if(O.name=="BlockComment")return i=>({from:i.from+2,to:i.to-2})})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:\{|\})$/,closeBrackets:{stringPrefixes:["b","r","br"]}}});function K(){return new _(I)}export{K as rust,I as rustLanguage}; +import{L as o,E as a}from"./index-q_Op_mkr.js";import{J as Z,Q,g as _,L as q,z as l,r,x as w,w as V}from"./FileExplorer-BGCt84ef.js";import"./useI18n-CnvN0FfF.js";import"./index-BH9vIdLD.js";import"./prefsSync-D8z1rJ8H.js";import"./client-2UEf7AK8.js";import"./Switch-CpxGRRqY.js";import"./auth-Dhl8fEWW.js";const g=1,R=2,b=3,y=4,T=5,s=98,c=101,p=102,t=114,v=69,X=48,W=46,d=43,f=45,Y=35,z=34,x=124,U=60,h=62;function n(O){return O>=48&&O<=57}function e(O){return n(O)||O==95}const G=new a((O,i)=>{if(n(O.next)){let P=!1;do O.advance();while(e(O.next));if(O.next==W){if(P=!0,O.advance(),n(O.next))do O.advance();while(e(O.next));else if(O.next==W||O.next>127||/\w/.test(String.fromCharCode(O.next)))return}if(O.next==c||O.next==v){if(P=!0,O.advance(),(O.next==d||O.next==f)&&O.advance(),!e(O.next))return;do O.advance();while(e(O.next))}if(O.next==p){let $=O.peek(1);if($==X+3&&O.peek(2)==X+2||$==X+6&&O.peek(2)==X+4)O.advance(3),P=!0;else return}P&&O.acceptToken(T)}else if(O.next==s||O.next==t){if(O.next==s&&O.advance(),O.next!=t)return;O.advance();let P=0;for(;O.next==Y;)P++,O.advance();if(O.next!=z)return;O.advance();O:for(;;){if(O.next<0)return;let $=O.next==z;if(O.advance(),$){for(let S=0;S{O.next==x&&O.acceptToken(g,1)}),u=new a(O=>{O.next==U?O.acceptToken(R,1):O.next==h&&O.acceptToken(b,1)}),k=Z({"const macro_rules struct union enum type fn impl trait let static":Q.definitionKeyword,"mod use crate":Q.moduleKeyword,"pub unsafe async mut extern default move":Q.modifier,"for if else loop while match continue break return await":Q.controlKeyword,"as in ref":Q.operatorKeyword,"where _ crate super dyn":Q.keyword,self:Q.self,String:Q.string,Char:Q.character,RawString:Q.special(Q.string),Boolean:Q.bool,Identifier:Q.variableName,"CallExpression/Identifier":Q.function(Q.variableName),BoundIdentifier:Q.definition(Q.variableName),"FunctionItem/BoundIdentifier":Q.function(Q.definition(Q.variableName)),LoopLabel:Q.labelName,FieldIdentifier:Q.propertyName,"CallExpression/FieldExpression/FieldIdentifier":Q.function(Q.propertyName),Lifetime:Q.special(Q.variableName),ScopeIdentifier:Q.namespace,TypeIdentifier:Q.typeName,"MacroInvocation/Identifier MacroInvocation/ScopedIdentifier/Identifier":Q.macroName,"MacroInvocation/TypeIdentifier MacroInvocation/ScopedIdentifier/TypeIdentifier":Q.macroName,'"!"':Q.macroName,UpdateOp:Q.updateOperator,LineComment:Q.lineComment,BlockComment:Q.blockComment,Integer:Q.integer,Float:Q.float,ArithOp:Q.arithmeticOperator,LogicOp:Q.logicOperator,BitOp:Q.bitwiseOperator,CompareOp:Q.compareOperator,"=":Q.definitionOperator,".. ... => ->":Q.punctuation,"( )":Q.paren,"[ ]":Q.squareBracket,"{ }":Q.brace,". DerefOp":Q.derefOperator,"&":Q.operator,", ; ::":Q.separator,"Attribute/...":Q.meta}),j={__proto__:null,self:28,super:32,crate:34,impl:46,true:72,false:72,pub:88,in:92,const:96,unsafe:104,async:108,move:110,if:114,let:118,ref:142,mut:144,_:198,else:200,match:204,as:248,return:252,await:262,break:270,continue:276,while:312,loop:316,for:320,macro_rules:327,mod:334,extern:342,struct:346,where:364,union:379,enum:382,type:390,default:395,fn:396,trait:412,use:420,static:438,dyn:476},E=o.deserialize({version:14,states:"$2xQ]Q_OOP$wOWOOO&sQWO'#CnO)WQWO'#I`OOQP'#I`'#I`OOQQ'#Ie'#IeO)hO`O'#C}OOQR'#Ih'#IhO)sQWO'#IuOOQO'#Hk'#HkO)xQWO'#DpOOQR'#Iw'#IwO)xQWO'#DpO*ZQWO'#DpOOQO'#Iv'#IvO,SQWO'#J`O,ZQWO'#EiOOQV'#Hp'#HpO,cQYO'#F{OOQV'#El'#ElOOQV'#Em'#EmOOQV'#En'#EnO.YQ_O'#EkO0_Q_O'#EoO2gQWOOO4QQ_O'#FPO7hQWO'#J`OOQV'#FY'#FYO7{Q_O'#F^O:WQ_O'#FaOOQO'#F`'#F`O=sQ_O'#FcO=}Q_O'#FbO@VQWO'#FgOOQO'#J`'#J`OOQV'#Io'#IoOA]Q_O'#InOEPQWO'#InOOQV'#Fw'#FwOF[QWO'#JuOFcQWO'#F|OOQO'#IO'#IOOGrQWO'#GhOOQV'#Im'#ImOOQV'#Il'#IlOOQV'#Hj'#HjQGyQ_OOOKeQ_O'#DUOKlQYO'#CqOOQP'#I_'#I_OOQV'#Hg'#HgQ]Q_OOOLuQWO'#I`ONsQYO'#DXO!!eQWO'#JuO!!lQWO'#JuO!!vQ_O'#DfO!%]Q_O'#E}O!(sQ_O'#FWO!,ZQWO'#FZO!.^QXO'#FbO!.cQ_O'#EeO!!vQ_O'#FmO!0uQWO'#FoO!0zQWO'#FoO!1PQ^O'#FqO!1WQWO'#JuO!1_QWO'#FtO!1dQWO'#FxO!2WQWO'#JjO!2_QWO'#GOO!2_QWO'#G`O!2_QWO'#GbO!2_QWO'#GsOOQO'#Ju'#JuO!2dQWO'#GhO!2lQYO'#GpO!2_QWO'#GqO!3uQ^O'#GtO!3|QWO'#GuO!4hQWO'#HOP!4sOpO'#CcPOOO)CC})CC}OOOO'#Hi'#HiO!5OO`O,59iOOQV,59i,59iO!5ZQYO,5?aOOQO-E;i-E;iOOQO,5:[,5:[OOQP,59Z,59ZO)xQWO,5:[O)xQWO,5:[O!5oQWO,5?kO!5zQYO,5;qO!6PQYO,5;TO!6hQWO,59QO!7kQXO'#CnO!7xQXO'#I`O!9SQWO'#CoO,^QWO'#EiOOQV-E;n-E;nO!9eQWO'#FsOOQV,5WQWO,5:fOOQP,5:h,5:hO!1PQ^O,5:hO!1PQ^O,5:mO$>]QYO,5gQ_O'#HsO$>tQXO,5@QOOQV1G1i1G1iOOQP,5:e,5:eO$>|QXO,5]QYO,5=vO$LRQWO'#KRO$L^QWO,5=xOOQR,5=y,5=yO$LcQWO,5=zO$>]QYO,5>PO$>]QYO,5>POOQO1G.w1G.wO$>]QYO1G.wO$LnQYO,5=pO$LvQZO,59^OOQR,59^,59^O$>]QYO,5=wO% YQZO,5=}OOQR,5=},5=}O%#lQWO1G/_O!6PQYO1G/_O#FYQYO1G2vO%#qQWO1G2vO%$PQYO1G2vOOQV1G/i1G/iO%%YQWO,5:SO%%bQ_O1G/lO%*kQWO1G1^O%+RQWO1G1hOOQO1G1h1G1hO$>]QYO1G1hO%+iQ^O'#EgOOQV1G0k1G0kOOQV1G1s1G1sO!!vQ_O1G1sO!0zQWO1G1uO!1PQ^O1G1wO!.cQ_O1G1wOOQP,5:j,5:jO$>]QYO1G/^OOQO'#Cn'#CnO%+vQWO1G1zOOQV1G2O1G2OO%,OQWO'#CnO%,WQWO1G3TO%,]QWO1G3TO%,bQYO'#GQO%,sQWO'#G]O%-UQYO'#G_O%.hQYO'#GXOOQV1G2U1G2UO%/wQWO1G2UO%/|QWO1G2UO$ARQWO1G2UOOQV1G2f1G2fO%/wQWO1G2fO#CpQWO1G2fO%0UQWO'#GdOOQV1G2h1G2hO%0gQWO1G2hO#C{QWO1G2hO%0lQYO'#GSO$>]QYO1G2lO$AdQWO1G2lOOQV1G2y1G2yO%1xQWO1G2yO%3hQ^O'#GkO%3rQWO1G2nO#DfQWO1G2nO%4QQYO,5]QYO1G2vOOQV1G2w1G2wO%5tQWO1G2wO%5yQWO1G2wO#HXQWO1G2wOOQV1G2z1G2zO.YQ_O1G2zO$>]QYO1G2zO%6RQWO1G2zOOQO,5>l,5>lOOQO-E]QYO1G3UPOOO-E;d-E;dPOOO1G.i1G.iOOQO7+*g7+*gO%7VQYO'#IcO%7nQYO'#IfO%7yQYO'#IfO%8RQYO'#IfO%8^QYO,59eOOQO7+%b7+%bOOQP7+$a7+$aO%8cQ!fO'#JTOOQS'#EX'#EXOOQS'#EY'#EYOOQS'#EZ'#EZOOQS'#JT'#JTO%;UQWO'#EWOOQS'#E`'#E`OOQS'#JR'#JROOQS'#Hn'#HnO%;ZQ!fO,5:oOOQV,5:o,5:oOOQV'#JQ'#JQO%;bQ!fO,5:{OOQV,5:{,5:{O%;iQ!fO,5:|OOQV,5:|,5:|OOQV7+'e7+'eOOQV7+&Z7+&ZO%;pQ!fO,59TOOQO,59T,59TO%>YQWO7+$WO%>_QWO1G1yOOQV1G1y1G1yO!9SQWO1G.uO%>dQWO,5?}O%>nQ_O'#HqO%@|QWO,5?}OOQO1G1X1G1XOOQO7+&}7+&}O%AUQWO,5>^OOQO-E;p-E;pO%AcQWO7+'OO.YQ_O7+'OOOQO7+'O7+'OOOQO7+'P7+'PO%AjQWO7+'POOQO7+'W7+'WOOQP1G0V1G0VO%ArQXO1G/tO!M{QWO1G/tO%BsQXO1G0RO%CkQ^O'#HlO%C{QWO,5?eOOQP1G/u1G/uO%DWQWO1G/uO%D]QWO'#D_OOQO'#Dt'#DtO%DhQWO'#DtO%DmQWO'#I{OOQO'#Iz'#IzO%DuQWO,5:_O%DzQWO'#DtO%EPQWO'#DtOOQP1G0Q1G0QOOQP1G0S1G0SOOQP1G0X1G0XO%EXQXO1G1jO%EdQXO'#FeOOQP,5>_,5>_O!1PQ^O'#FeOOQP-E;q-E;qO$>]QYO1G1jOOQO7+'S7+'SOOQO,5]QYO7+$xOOQV7+'j7+'jO%FsQWO7+(oO%FxQWO7+(oOOQV7+'p7+'pO%/wQWO7+'pO%F}QWO7+'pO%GVQWO7+'pOOQV7+(Q7+(QO%/wQWO7+(QO#CpQWO7+(QOOQV7+(S7+(SO%0gQWO7+(SO#C{QWO7+(SO$>]QYO7+(WO%GeQWO7+(WO#HUQYO7+(cO%GjQWO7+(YO#DfQWO7+(YOOQV7+(c7+(cO%5tQWO7+(cO%5yQWO7+(cO#HXQWO7+(cOOQV7+(g7+(gO$>]QYO7+(pO%GxQWO7+(pO!1dQWO7+(pOOQV7+$v7+$vO%G}QWO7+$vO%HSQZO1G3ZO%JfQWO1G4jOOQO1G4j1G4jOOQR1G.}1G.}O#.WQWO1G.}O%JkQWO'#KQOOQO'#HW'#HWO%J|QWO'#HXO%KXQWO'#KQOOQO'#KP'#KPO%KaQWO,5=qO%KfQYO'#H[O%LrQWO'#GmO%L}QYO'#CtO%MXQWO'#GmO$>]QYO1G3ZOOQR1G3g1G3gO#7aQWO1G3ZO%M^QZO1G3bO$>]QYO1G3bO& mQYO'#IVO& }QWO,5@mOOQR1G3d1G3dOOQR1G3f1G3fO.YQ_O1G3fOOQR1G3k1G3kO&!VQYO7+$cO&!_QYO'#KOOOQQ'#J}'#J}O&!gQYO1G3[O&!lQZO1G3cOOQQ7+$y7+$yO&${QWO7+$yO&%QQWO7+(bOOQV7+(b7+(bO%5tQWO7+(bO$>]QYO7+(bO#FYQYO7+(bO&%YQWO7+(bO!.cQ_O1G/nO&%hQWO7+%WO$?[QWO7+'SO&%pQWO'#EhO&%{Q^O'#EhOOQU'#Ho'#HoO&%{Q^O,5;ROOQV,5;R,5;RO&&VQWO,5;RO&&[Q^O,5;RO!0zQWO7+'_OOQV7+'a7+'aO&&iQWO7+'cO&&qQWO7+'cO&&xQWO7+$xO&'TQ!fO7+'fO&'[Q!fO7+'fOOQV7+(o7+(oO!1dQWO7+(oO&'cQYO,5]QYO'#JrOOQO'#Jq'#JqO&*YQWO,5]QYO'#GUO&,SQYO'#JkOOQQ,5]QYO7+(YO&0SQYO'#HxO&0hQYO1G2WOOQQ1G2W1G2WOOQQ,5]QYO,5]QYO7+(fO&1dQWO'#IRO&1nQWO,5@hOOQO1G3Q1G3QOOQO1G2}1G2}OOQO1G3P1G3POOQO1G3R1G3ROOQO1G3S1G3SOOQO1G3O1G3OO&1vQWO7+(pO$>]QYO,59fO&2RQ^O'#ISO&2xQYO,5?QOOQR1G/P1G/PO&3QQ!bO,5:pO&3VQ!fO,5:rOOQS-E;l-E;lOOQV1G0Z1G0ZOOQV1G0g1G0gOOQV1G0h1G0hO&3^QWO'#JTOOQO1G.o1G.oOOQV<]O&3qQWO,5>]OOQO-E;o-E;oOOQO<WOOQO-E;j-E;jOOQP7+%a7+%aO!1PQ^O,5:`O&5cQWO'#HmO&5wQWO,5?gOOQP1G/y1G/yOOQO,5:`,5:`O&6PQWO,5:`O%DzQWO,5:`O$>]QYO,5`,5>`OOQO-E;r-E;rOOQV7+'l7+'lO&6yQWO<]QYO<]QYO<]QYO<]QYO7+(uOOQO7+*U7+*UOOQR7+$i7+$iO&8cQWO,5@lOOQO'#Gm'#GmO&8kQWO'#GmO&8vQYO'#IUO&8cQWO,5@lOOQR1G3]1G3]O&:cQYO,5=vO&;rQYO,5=XO&;|QWO,5=XOOQO,5=X,5=XOOQR7+(u7+(uO&eQZO7+(|O&@tQWO,5>qOOQO-E]QYO<]QYO,5]QYO,5@^O&D^QYO'#H|O&EsQWO,5@^OOQO1G2e1G2eO%,nQWO,5]QYO,5PO&I]QYO,5@VOOQV<]QYO,5=WO&KuQWO,5@cO&K}QWO,5@cO&MvQ^O'#IPO&KuQWO,5@cOOQO1G2q1G2qO&NTQWO,5=WO&N]QWO<oO&NvQYO,5>dO' UQYO,5>dOOQQ,5>d,5>dOOQQ-E;v-E;vOOQQ7+'r7+'rO' aQYO1G2]O$>]QYO1G2^OOQV<m,5>mOOQO-EnOOQQ,5>n,5>nO'!fQYO,5>nOOQQ-EX,5>XOOQO-E;k-E;kO!1PQ^O1G/zOOQO1G/z1G/zO'%oQWO1G/zO'%tQXO1G1kO$>]QYO1G1kO'&PQWO7+'[OOQVANA`ANA`O'&ZQWOANA`O$>]QYOANA`O'&cQWOANA`OOQVAN>OAN>OO.YQ_OAN>OO'&qQWOANAuOOQVAN@vAN@vO'&vQWOAN@vOOQVANAWANAWOOQVANAYANAYOOQVANA^ANA^O'&{QWOANA^OOQVANAiANAiO%5tQWOANAiO%5yQWOANAiO''TQWOANA`OOQVANAvANAvO.YQ_OANAvO''cQWOANAvO$>]QYOANAvOOQR<pOOQO'#HY'#HYO''vQWO'#HZOOQO,5>p,5>pOOQO-E]QYO<o,5>oOOQQ-E]QYOANAhO'(bQWO1G1rO')UQ^O1G0nO.YQ_O1G0nO'*zQWO,5;UO'+RQWO1G0nP'+WQWO'#ERP&%{Q^O'#HpOOQV7+&X7+&XO'+cQWO7+&XO&&qQWOAN@iO'+hQWOAN>OO!5oQWO,5a,5>aO'+oQWOAN@lO'+tQWOAN@lOOQS-E;s-E;sOOQVAN@lAN@lO'+|QWOAN@lOOQVANAuANAuO',UQWO1G5vO',^QWO1G2dO$>]QYO1G2dO&'|QWO,5>gOOQO,5>g,5>gOOQO-E;y-E;yO',iQWO1G5xO',qQWO1G5xO&(nQYO,5>hO',|QWO,5>hO$>]QYO,5>hOOQO-E;z-E;zO'-XQWO'#JnOOQO1G2a1G2aOOQO,5>f,5>fOOQO-E;x-E;xO&'cQYO,5iOOQO,5>i,5>iOOQO-E;{-E;{OOQQ,5>c,5>cOOQQ-E;u-E;uO'.pQWO1G2sO'/QQWO1G2rO'/]QWO1G5}O'/eQ^O,5>kOOQO'#Go'#GoOOQO,5>k,5>kO'/lQWO,5>kOOQO-E;}-E;}O$>]QYO1G2rO'/zQYO7+'xO'0VQWOANAlOOQVANAlANAlO.YQ_OANAlO'0^QWOANAvOOQS7+%x7+%xO'0eQWO7+%xO'0pQ!fO7+%xO'0}QWO7+%fO!1PQ^O7+%fO'1YQXO7+'VOOQVG26zG26zO'1eQWOG26zO'1sQWOG26zO$>]QYOG26zO'1{QWOG23jOOQVG27aG27aOOQVG26bG26bOOQVG26xG26xOOQVG27TG27TO%5tQWOG27TO'2SQWOG27bOOQVG27bG27bO.YQ_OG27bO'2ZQWOG27bOOQO1G4[1G4[OOQO7+(_7+(_OOQRANA{ANA{OOQVG27SG27SO%5tQWOG27SO&0uQWOG27SO'2fQ^O7+&YO'4PQWO7+'^O'4sQ^O7+&YO.YQ_O7+&YP.YQ_O,5;SP'6PQWO,5;SP'6UQWO,5;SOOQV<]QYO1G4SO%,nQWO'#HyO'7UQWO,5@YO'7dQWO7+(VO.YQ_O7+(VOOQO1G4T1G4TOOQO1G4V1G4VO'7nQWO1G4VO'7|QWO7+(^OOQVG27WG27WO'8XQWOG27WOOQS<e,5>eOOQO-E;w-E;wO'?rQWO<wD_DpPDvHQPPPPPPK`P! P! _PPPPP!!VP!$oP!$oPP!&oP!(rP!(w!)n!*f!*f!*f!(w!+]P!(w!.Q!.TPP!.ZP!(w!(w!(w!(wP!(w!(wP!(w!(w!.y!/dP!/dJ}J}J}PPPP!/d!.y!/sPP!$oP!0^!0a!0g!1h!1t!3t!3t!5r!7t!1t!1t!9p!;_!=O!>k!@U!Am!CS!De!1t!1tP!1tP!1t!1t!Et!1tP!Ge!1t!1tP!Ie!1tP!1t!7t!7t!1t!7t!1t!Kl!Mt!Mw!7t!1t!Mz!M}!M}!M}!NR!$oP!$oP!$oP! P! PP!N]! P! PP!Ni# }! PP! PP#!^##c##k#$Z#$_#$e#$e#$mP#&s#&s#&y#'o#'{! PP! PP#(]#(l! PP! PPP#(x#)W#)d#)|#)^! P! PP! P! P! PP#*S#*S#*Y#*`#*S#*S! P! PP#*m#*v#+Q#+Q#,x#.l#.x#.x#.{#.{5a5a5a5a5a5a5a5aP5a#/O#/U#/p#1{#2R#2b#6^#6d#6j#6|#7W#8w#9R#9b#9h#9n#9x#:S#:Y#:g#:m#:s#:}#;]#;g#=u#>R#>`#>f#>n#>u#?PPPPPPPP#?V#BaP#F^#Jx#Ls#Nr$&^P$&aPPP$)_$)h$)z$/U$1d$1m$3fP!(w$4`$7r$:i$>T$>^$>c$>fPPP$>i$A`$A|P$BaPPPPPPPPPP$BvP$EU$EX$E[$Eb$Ee$Eh$Ek$En$Et$HO$HR$HU$HX$H[$H_$Hb$He$Hh$Hk$Hn$Jt$Jw$Jz#*S$KW$K^$Ka$Kd$Kh$Kl$Ko$KrQ!tPT'V!s'Wi!SOlm!P!T$T$W$y%b)U*f/gQ'i#QR,n'l(OSOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%X%_%b&U&Y&[&b&u&z&|'P'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n+z,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1P1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:gS(z$v-oQ*p&eQ*t&hQ-k(yQ-y)ZW0Z+Q0Y4Z7UR4Y0[&w!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#r]Ofgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hb#[b#Q$y'l(b)S)U*Z-t!h$bo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m$b%k!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g!W:y!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:|%n$_%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g$e%l!Q!n$O$u%n%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g'hZOY[fgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r%_%b%i%j&U&Y&[&b&u'a'}(W(Y(d(e(f(j(o(p(r(|)i)p)q*f*i*k*l+Z+n,s,z-R-T-g-m.i.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:x$^%l!Q!n$O$u%n%o%p%q%y%{&P&p&r(q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ&j!hQ&k!iQ&l!jQ&m!kQ&s!oQ)[%QQ)]%RQ)^%SQ)_%TQ)b%WQ+`&oS,R']1ZQ.W)`S/r*u4TR4n0s+yTOY[bfgilmop!O!P!Q!T!Y!Z![!_!`!c!n!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$O$T$W$`$a$e$g$h$q$r$u$y%X%_%b%i%j%n%o%p%q%y%{&P&U&Y&[&b&o&p&r&u&z&|'P']'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(q(r(|)S)U)i)p)q)s)x)y*O*P*R*V*Z*[*^*e*f*i*k*l*n*w*x+U+V+Z+h+n+o+z+},q,s,z-R-T-g-i-m-t-v.U.`.i.p.t.x.y.}/Z/[/^/b/d/g/{/}0`0e0g0m0r0w0}1O1P1Y1Z1h1r1y1|2a2h2j2m2s2v3V3_3a3f3h3k3u3{3|4R4U4W4_4c4e4h4t4v4|5[5`5d5g5t5v6R6Y6]6a6p6v6x7S7^7c7g7m7r7{8W8X8g8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:xQ'[!xQ'h#PQ)l%gU)r%m*T*WR.f)kQ,T']R5P1Z#t%s!Q!n$O$u%p%q&P&p&r(q)x)y*O*R*V*[*^*e*n*w+V+h+o+}-i-v.U.`.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2v3V3u3{3|4U4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)x%oQ+_&oQ,U']n,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7kS.q)s2sQ/O*PQ/Q*SQ/q*uS0Q*x4RQ0a+U[0o+Z.j0g4h5y7^Q2v.pS4d0e2rQ4m0sQ5Q1ZQ6T3RQ6z4PQ7O4TQ7X4_R9Y8h&jVOfgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u']'}(W(Y(b(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1Z1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fU&g!g%P%[o,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7k$nsOfgilm!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y'}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9z9{:O:P:Q:R:S:T:U:V:W:X:Y:eS$tp9xS&O!W#bS&Q!X#cQ&`!bQ*_&RQ*a&VS*d&[:fQ*h&^Q,T']Q-j(wQ/i*jQ0p+[S2f.X0qQ3]/_Q3^/`Q3g/hQ3i/kQ5P1ZU5b2R2g4lU7o5c5e5rQ8]6dS8u7p7qS9_8v8wR9i9`i{Ob!O!P!T$y%_%b)S)U)i-thxOb!O!P!T$y%_%b)S)U)i-tW/v*v/t3w6qQ/}*wW0[+Q0Y4Z7UQ3{/{Q6x3|R8g6v!h$do!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ&d!dQ&f!fQ&n!mW&x!q%X&|1PQ'S!rQ)X$}Q)Y%OQ)a%VU)d%Y'T'UQ*s&hS+s&z'PS-Y(k1sQ-u)WQ-x)ZS.a)e)fS0x+c/sQ1S+zQ1W+{S1v-_-`Q2k.bQ3s/pQ5]1xR5h2V${sOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$zsOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR3]/_V&T!Y!`*i!i$lo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!k$^o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!i$co!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&e^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR(l$fQ-[(kR5Y1sQ(S#|S({$v-oS-Z(k1sQ-l(yW/u*v/t3w6qS1w-_-`Q3v/vR5^1xQ'e#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,o'mk,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ'f#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,p'mR*g&]X/c*f/d/g3f!}aOb!O!P!T#z$v$y%_%b'}(y)S)U)i)s*f*v*w+Q+Z,s-o-t.j/b/d/g/t/{0Y0g1h2s3f3w3|4Z4h5y6a6q6v7U7^Q3`/aQ6_3bQ8Y6`R9V8Z${rOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#nfOfglmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!T9u!Y!_!`*i*l/^3h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#rfOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!X9u!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$srOfglmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#U#oh#d$P$Q$V$s%^&W&X'q't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b}:P&S&]/k3[6d:[:]:c:d:h:j:k:l:m:n:o:p:q:r:v:w:{#W#ph#d$P$Q$V$s%^&W&X'q'r't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b!P:Q&S&]/k3[6d:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{#S#qh#d$P$Q$V$s%^&W&X'q'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b{:R&S&]/k3[6d:[:]:c:d:h:k:l:m:n:o:p:q:r:v:w:{#Q#rh#d$P$Q$V$s%^&W&X'q'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9by:S&S&]/k3[6d:[:]:c:d:h:l:m:n:o:p:q:r:v:w:{#O#sh#d$P$Q$V$s%^&W&X'q'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bw:T&S&]/k3[6d:[:]:c:d:h:m:n:o:p:q:r:v:w:{!|#th#d$P$Q$V$s%^&W&X'q'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bu:U&S&]/k3[6d:[:]:c:d:h:n:o:p:q:r:v:w:{!x#vh#d$P$Q$V$s%^&W&X'q'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bq:W&S&]/k3[6d:[:]:c:d:h:p:q:r:v:w:{!v#wh#d$P$Q$V$s%^&W&X'q'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bo:X&S&]/k3[6d:[:]:c:d:h:q:r:v:w:{$]#{h#`#d$P$Q$V$s%^&S&W&X&]'q'r's't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n/k0z1i1l1}3P3[4w5V5a6^6d6e7R7e7h7s7y8j8q8{9[9b:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{${jOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$v!aOfgilmp!O!P!T!Y!Z!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ&Y![Q&Z!]R:e9{#rpOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hQ&[!^!W9x!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:f:zR$moR-f(rR$wqT(}$v-oQ/f*fS3d/d/gR6c3fQ3m/mQ3p/nQ6i3nR6l3qQ$zwQ)V${Q*q&fQ+f&qQ+i&sQ-w)YW.Z)b+j+k+lS/X*]+gW2b.W.[.].^U3W/Y/]0yU5o2c2d2eS6W3X3ZS7w5p5qS8Q6V6XQ8y7xS8}8R8SR9c9O^|O!O!P!T%_%b)iX)R$y)S)U-tQ&r!nQ*^&PQ*|&jQ+P&kQ+T&lQ+W&mQ+]&nQ+l&sQ-})[Q.Q)]Q.T)^Q.V)_Q.Y)aQ.^)bQ2S-uQ2e.WR4U0VU+a&o*u4TR4o0sQ+Y&mQ+k&sS.])b+l^0v+_+`/q/r4m4n7OS2d.W.^S4Q0R0SR5q2eS0R*x4RQ0a+UR7X4_U+d&o*u4TR4p0sQ*z&jQ+O&kQ+S&lQ+g&qQ+j&sS-{)[*|S.P)]+PS.S)^+TU.[)b+k+lQ/Y*]Q0X*{Q0q+[Q2X-|Q2Y-}Q2].QQ2_.TU2c.W.].^Q2g.XS3Z/]0yS5c2R4lQ5j2ZS5p2d2eQ6X3XS7q5e5rQ7x5qQ8R6VQ8v7pQ9O8SR9`8wQ0T*xR6|4RQ*y&jQ*}&kU-z)[*z*|U.O)]+O+PS2W-{-}S2[.P.QQ4X0ZQ5i2YQ5k2]R7T4YQ/w*vQ3t/tQ6r3wR8d6qQ*{&jS-|)[*|Q2Z-}Q4X0ZR7T4YQ+R&lU.R)^+S+TS2^.S.TR5l2_Q0]+QQ4V0YQ7V4ZR8l7UQ+[&nS.X)a+]S2R-u.YR5e2SQ0i+ZQ4f0gQ7`4hR8m7^Q.m)sQ0i+ZQ2p.jQ4f0gQ5|2sQ7`4hQ7}5yR8m7^Q0i+ZR4f0gX'O!q%X&|1PX&{!q%X&|1PW'O!q%X&|1PS+u&z'PR1U+z_|O!O!P!T%_%b)iQ%a!PS)h%_%bR.d)i$^%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ*U%yR*X%{$c%n!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gW)t%m%x*T*WQ.e)jR2{.vR.m)sR5|2sQ'W!sR,O'WQ!TOQ$TlQ$WmQ%b!P[%|!T$T$W%b)U/gQ)U$yR/g*f$b%i!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g[)n%i)p.i:`:t:xQ)p%jQ.i)qQ:`%nQ:t:aR:x:uQ!vUR'Y!vS!OO!TU%]!O%_)iQ%_!PR)i%b#rYOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hh!yY!|#U$`'a'n(d,q-R9s9|:gQ!|[b#Ub#Q$y'l(b)S)U*Z-t!h$`o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ'a!}Q'n#ZQ(d$aQ,q'oQ-R(e!W9s!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ9|9tR:g9}Q-U(gR1p-UQ1t-[R5Z1tQ,c'bQ,f'cQ,h'dW1`,c,f,h5UR5U1_Q/d*fS3c/d3fR3f/gfbO!O!P!T$y%_%b)S)U)i-tp#Wb'}(y.j/b/t/{0Y0g1h5y6a6q6v7U7^Q'}#zS(y$v-oQ.j)sW/b*f/d/g3fQ/t*vQ/{*wQ0Y+QQ0g+ZQ1h,sQ5y2sQ6q3wQ6v3|Q7U4ZR7^4hQ,t(OQ1g,rT1j,t1gS(X$Q([Q(^$VU,x(X(^,}R,}(`Q(s$mR-h(sQ-p)OR2P-pQ3n/mQ3q/nT6j3n3qQ)S$yS-r)S-tR-t)UQ4`0aR7Y4``0t+^+_+`+a+d/q/r7OR4q0tQ8i6zR9Z8iQ4S0TR6}4SQ3x/wQ6n3tT6s3x6nQ3}/|Q6t3zU6y3}6t8eR8e6uQ4[0]Q7Q4VT7W4[7QhzOb!O!P!T$y%_%b)S)U)i-tQ$|xW%Zz$|%f)v$b%f!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR)v%nS4i0i0nS7]4f4gT7b4i7]W&z!q%X&|1PS+r&z+zR+z'PQ1Q+wR4z1QU1[,S,T,UR5R1[S3S/Q7OR6U3SQ2t.mQ5x2pT5}2t5xQ.z)zR3O.z^_O!O!P!T%_%b)iY#Xb$y)S)U-t$l#_fgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!h$io!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'j#Q'lQ-P(bR/V*Z&v!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!{Y[#U#Z9s9tW&{!q%X&|1P['`!|!}'n'o9|9}S(c$`$aS+t&z'PU,X'a,q:gS-Q(d(eQ1T+zR1n-RS%t!Q&oQ&q!nQ(V$OQ(w$uS)w%o.pQ)z%pQ)}%qS*]&P&rQ+e&pQ,S']Q-d(qQ.l)sU.w)x)y2vS/O*O*PQ/P*RQ/T*VQ/W*[Q/]*^Q/`*eQ/l*nQ/|*wS0S*x4RQ0a+UQ0c+VQ0y+hQ0{+oQ1X+}Q1{-iQ2T-vQ2`.UQ2i.`Q2z.tQ2|.xQ2}.yQ3X/ZQ3Y/[S3z/{/}Q4^0`Q4l0rQ4s0wQ4x1OQ4}1YQ5O1ZQ5_1yQ5n2aQ5r2hQ5u2jQ5w2mQ5{2sQ6V3VQ6o3uQ6u3{Q6w3|Q7P4UQ7X4_Q7[4eQ7d4tQ7n5`Q7p5dQ7|5vQ8P6RQ8S6YQ8c6pS8f6v6xQ8o7cQ8w7rR9X8g$^%m!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)j%nQ*T%yR*W%{$y%h!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x'pWOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$x%g!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x_&y!q%X&z&|'P+z1PR,V']$zrOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!j$]o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ,T']R5P1Z_}O!O!P!T%_%b)i^|O!O!P!T%_%b)iQ#YbX)R$y)S)U-tbhO!O!T3_6]8W8X9U9hS#`f9uQ#dgQ$PiQ$QlQ$VmQ$spW%^!P%_%b)iU&S!Y!`*iQ&W!ZQ&X![Q&]!_Q'q#eQ'r#oS's#p:QQ't#qQ'u#rQ'v#sQ'w#tQ'x#uQ'y#vQ'z#wQ'{#xQ'|#yQ(O#zQ(U#}Q([$TQ(`$WQ*b&YQ*c&[Q,r'}Q,w(WQ,y(YQ-n(|Q/k*lQ0z+nQ1i,sQ1l,zQ1}-mQ3P.}Q3[/^Q4w0}Q5V1hQ5a1|Q6^3aQ6d3hQ6e3kQ7R4WQ7e4vQ7h4|Q7s5gQ7y5tQ8j7SQ8q7gQ8{7{Q9[8kQ9b8|Q:[9wQ:]9xQ:c9zQ:d9{Q:h:OQ:i:PQ:j:RQ:k:SQ:l:TQ:m:UQ:n:VQ:o:WQ:p:XQ:q:YQ:r:ZQ:v:eQ:w:fR:{9v^tO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6[3_Q8V6]Q9R8WQ9T8XQ9g9UR9m9hQ&V!YQ&^!`R/h*iQ$joQ&a!cQ&t!pU(g$e$g(jS(n$h0eQ(u$qQ(v$rQ*`&UQ*m&bQ+p&uQ-S(fS-b(o4cQ-c(pQ-e(rW/a*f/d/g3fQ/j*kW0f+Z0g4h7^Q1o-TQ1z-gQ3b/bQ4k0mQ5X1rQ7l5[Q8Z6aR8t7m!h$_o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mR-P(b'qXOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$zqOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$fo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&d^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!zY[$`$a9s9t['_!|!}(d(e9|9}W)o%i%j:`:aU,W'a-R:gW.h)p)q:t:uT2o.i:xQ(i$eQ(m$gR-W(jV(h$e$g(jR-^(kR-](k$znOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$ko!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'g#O'pj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ,m'jQ.u)uR8_6f`,b'b'c'd,c,f,h1_5UQ1e,lX3l/m/n3n3qj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ7j5TR8s7k^uO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6Z3_Q8U6]Q9Q8WQ9S8XQ9f9UR9l9hR(Q#zR(P#zQ$SlR(]$TR$ooR$noR)Q$vR)P$vQ)O$vR2O-ohwOb!O!P!T$y%_%b)S)U)i-t$l!lz!Q!n$O$u$|%f%n%o%p%q%y%{&P&o&p&r'](q)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR${xR0b+UR0W*xR0U*xR6{4PR/y*vR/x*vR0P*wR0O*wR0_+QR0^+Q%XyObxz!O!P!Q!T!n$O$u$y$|%_%b%f%n%o%p%q%y%{&P&o&p&r'](q)S)U)i)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-t-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR0k+ZR0j+ZQ'R!qQ)c%XQ+w&|R4y1PX'Q!q%X&|1PR+y&|R+x&|T/S*S4TT/R*S4TR.o)sR.n)sR){%p",nodeNames:"⚠ | < > RawString Float LineComment BlockComment SourceFile ] InnerAttribute ! [ MetaItem self Metavariable super crate Identifier ScopedIdentifier :: QualifiedScope AbstractType impl SelfType MetaType TypeIdentifier ScopedTypeIdentifier ScopeIdentifier TypeArgList TypeBinding = Lifetime String Escape Char Boolean Integer } { Block ; ConstItem Vis pub ( in ) const BoundIdentifier : UnsafeBlock unsafe AsyncBlock async move IfExpression if LetDeclaration let LiteralPattern ArithOp MetaPattern SelfPattern ScopedIdentifier TuplePattern ScopedTypeIdentifier , StructPattern FieldPatternList FieldPattern ref mut FieldIdentifier .. RefPattern SlicePattern CapturedPattern ReferencePattern & MutPattern RangePattern ... OrPattern MacroPattern ParenthesizedTokens TokenBinding Identifier TokenRepetition ArithOp BitOp LogicOp UpdateOp CompareOp -> => ArithOp BracketedTokens BracedTokens _ else MatchExpression match MatchBlock MatchArm Attribute Guard UnaryExpression ArithOp DerefOp LogicOp ReferenceExpression TryExpression BinaryExpression ArithOp ArithOp BitOp BitOp BitOp BitOp LogicOp LogicOp AssignmentExpression TypeCastExpression as ReturnExpression return RangeExpression CallExpression ArgList AwaitExpression await FieldExpression GenericFunction BreakExpression break LoopLabel ContinueExpression continue IndexExpression ArrayExpression TupleExpression MacroInvocation UnitExpression ClosureExpression ParamList Parameter Parameter ParenthesizedExpression StructExpression FieldInitializerList ShorthandFieldInitializer FieldInitializer BaseFieldInitializer MatchArm WhileExpression while LoopExpression loop ForExpression for MacroInvocation MacroDefinition macro_rules MacroRule EmptyStatement ModItem mod DeclarationList AttributeItem ForeignModItem extern StructItem struct TypeParamList ConstrainedTypeParameter TraitBounds HigherRankedTraitBound RemovedTraitBound OptionalTypeParameter ConstParameter WhereClause where LifetimeClause TypeBoundClause FieldDeclarationList FieldDeclaration OrderedFieldDeclarationList UnionItem union EnumItem enum EnumVariantList EnumVariant TypeItem type FunctionItem default fn ParamList Parameter SelfParameter VariadicParameter VariadicParameter ImplItem TraitItem trait AssociatedType LetDeclaration UseDeclaration use ScopedIdentifier UseAsClause ScopedIdentifier UseList ScopedUseList UseWildcard ExternCrateDeclaration StaticItem static ExpressionStatement ExpressionStatement GenericType FunctionType ForLifetimes ParamList VariadicParameter Parameter VariadicParameter Parameter ReferenceType PointerType TupleType UnitType ArrayType MacroInvocation EmptyType DynamicType dyn BoundedType",maxTerm:359,nodeProps:[["isolate",-4,4,6,7,33,""],["group",-42,4,5,14,15,16,17,18,19,33,35,36,37,40,51,53,56,101,107,111,112,113,122,123,125,127,128,130,132,133,134,137,139,140,141,142,143,144,148,149,155,157,159,"Expression",-16,22,24,25,26,27,222,223,230,231,232,233,234,235,236,237,239,"Type",-20,42,161,162,165,166,169,170,172,188,190,194,196,204,205,207,208,209,217,218,220,"Statement",-17,49,60,62,63,64,65,68,74,75,76,77,78,80,81,83,84,99,"Pattern"],["openedBy",9,"[",38,"{",47,"("],["closedBy",12,"]",39,"}",45,")"]],propSources:[k],skippedNodes:[0,6,7,240],repeatNodeCount:32,tokenData:"$%h_R!XOX$nXY5gYZ6iZ]$n]^5g^p$npq5gqr7Xrs9cst:Rtu;Tuv>vvwAQwxCbxy!+Tyz!,Vz{!-X{|!/_|}!0g}!O!1i!O!P!3v!P!Q!8[!Q!R!Bw!R![!Dr![!]#+q!]!^#-{!^!_#.}!_!`#1b!`!a#3o!a!b#6S!b!c#7U!c!}#8W!}#O#:T#O#P#;V#P#Q#Cb#Q#R#Dd#R#S#8W#S#T$n#T#U#8W#U#V#El#V#f#8W#f#g#Ic#g#o#8W#o#p$ S#p#q$!U#q#r$$f#r${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nU$u]'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU%uV'_Q'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&aV'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&yVOz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`S'cVOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S'{UOz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`S(bUOz(t{!P(t!P!Q(_!Q;'S(t;'S;=`*a<%lO(tS(wVOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)eV'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)}UOz(tz{)z{!P(t!Q;'S(t;'S;=`*a<%lO(tS*dP;=`<%l(tS*jP;=`<%l)^S*pP;=`<%l'`S*vP;=`<%l&[S+OO'PSU+T]'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U,R]'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU-P]'_QOY+|YZ-xZr+|rs'`sz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U-}V'_QOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[Q.iV'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.dQ/TO'_QQ/WP;=`<%l.dU/`]'_QOY0XYZ3uZr0Xrs(tsz0Xz{.d{!P0X!P!Q/Z!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU0^]'_QOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU1`]'_Q'PS'OSOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU2bV'_Q'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U2|]'_QOY0XYZ3uZr0Xrs(tsz0Xz{2w{!P0X!P!Q.d!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU3zV'_QOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U4dP;=`<%l0XU4jP;=`<%l1VU4pP;=`<%l+|U4vP;=`<%l$nU5QV'_Q'PSOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_5p]'_Q&|X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_6rV'_Q&|X'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_7b_ZX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_8j]#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_9lV']Q'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_:[]'QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_;^i'_Q'vW'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_=Uj'_Q_X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![<{![!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_?P_(TP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_@X]#OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_AZa!qX'_Q'OSOY$nYZ%nZr$nrs&[sv$nvwB`wz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Bi]'}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Cik'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q!cE^!c!}Lp!}#OE^#O#P!!l#P#RE^#R#SLp#S#TE^#T#oLp#o${E^${$|Lp$|4wE^4w5bLp5b5iE^5i6SLp6S;'SE^;'S;=`!*}<%lOE^_Ee_'_Q'OSOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Fm]'_Q'OSsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_GmX'_Q'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]HaV'OSsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]H{X'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_Im_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Js]'_QsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Kq_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Lyl'_Q'OS'ZXOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n_Nzj'_Q'OS'ZXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n]!!qZ'OSOzHvz{!#d{!PHv!P!Q!$n!Q#iHv#i#j!%Z#j#lHv#l#m!'V#m;'SHv;'S;=`!*w<%lOHv]!#gXOw'`wx!$Sxz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`]!$XVsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]!$qWOw'`wx!$Sxz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`]!%`^'OSOz&[z{&v{!P&[!P!Q'x!Q![!&[![!c&[!c!i!&[!i#T&[#T#Z!&[#Z#o&[#o#p!({#p;'S&[;'S;=`*s<%lO&[]!&a['OSOz&[z{&v{!P&[!P!Q'x!Q![!'V![!c&[!c!i!'V!i#T&[#T#Z!'V#Z;'S&[;'S;=`*s<%lO&[]!'[['OSOz&[z{&v{!P&[!P!Q'x!Q![!(Q![!c&[!c!i!(Q!i#T&[#T#Z!(Q#Z;'S&[;'S;=`*s<%lO&[]!(V['OSOz&[z{&v{!P&[!P!Q'x!Q![Hv![!c&[!c!iHv!i#T&[#T#ZHv#Z;'S&[;'S;=`*s<%lO&[]!)Q['OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z;'S&[;'S;=`*s<%lO&[]!){^'OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z#q&[#q#rHv#r;'S&[;'S;=`*s<%lO&[]!*zP;=`<%lHv_!+QP;=`<%lE^_!+^]}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!,`]!PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!-`_(QX'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!.f]#OX'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!/h_(PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!0p]!eX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!1r`'gX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`!a!2t!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!2}]#QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!4P^(OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!4{!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!5U`!lX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!6W!P!Q,z!Q!_$n!_!`!7Y!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!6a]!tX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nV!7c]'qP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!8c_'_Q'xXOY+|YZ-xZr+|rs'`sz+|z{!9b{!P+|!P!Q!:O!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!9iV&}]'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_!:V]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!Aq{!P!;O!P!Q!:O!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;O_!;V]'_QUXOY!jYZ(tZz!>jz{!=x{!P!>j!P!Q!?|!Q;'S!>j;'S;=`!@e<%lO!>j]!>oXUXOY!=SYZ)^Zz!=Sz{!=x{!P!=S!P!Q!?[!Q;'S!=S;'S;=`!@k<%lO!=S]!?aXUXOY!>jYZ(tZz!>jz{!?|{!P!>j!P!Q!?[!Q;'S!>j;'S;=`!@e<%lO!>jX!@RSUXOY!?|Z;'S!?|;'S;=`!@_<%lO!?|X!@bP;=`<%l!?|]!@hP;=`<%l!>j]!@nP;=`<%l!=S_!@x]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!@q{!P!;O!P!Q!Aq!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;OZ!AxX'_QUXOY!AqYZ/OZr!Aqrs!?|s#O!Aq#O#P!?|#P;'S!Aq;'S;=`!Be<%lO!AqZ!BhP;=`<%l!Aq_!BnP;=`<%l!;O_!BtP;=`<%l!o![!c&[!c!i#>o!i#T&[#T#Z#>o#Z#o&[#o#p#A`#p;'S&[;'S;=`*s<%lO&[U#>t['OSOz&[z{&v{!P&[!P!Q'x!Q![#?j![!c&[!c!i#?j!i#T&[#T#Z#?j#Z;'S&[;'S;=`*s<%lO&[U#?o['OSOz&[z{&v{!P&[!P!Q'x!Q![#@e![!c&[!c!i#@e!i#T&[#T#Z#@e#Z;'S&[;'S;=`*s<%lO&[U#@j['OSOz&[z{&v{!P&[!P!Q'x!Q![#;}![!c&[!c!i#;}!i#T&[#T#Z#;}#Z;'S&[;'S;=`*s<%lO&[U#Ae['OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z;'S&[;'S;=`*s<%lO&[U#B`^'OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z#q&[#q#r#;}#r;'S&[;'S;=`*s<%lO&[U#C_P;=`<%l#;}_#Ck]XX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Dm_'{X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Ewl'_Q'OS!yW'TPOY$nYZ%nZr$nrs#Gosw$nwx#H]xz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$n]#GvV'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_#Hd_'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q#OE^#O#P!!l#P;'SE^;'S;=`!*}<%lOE^_#Ink'_Q'OS!yW'TPOY$nYZ%nZr$nrs&[st#Kctz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nV#Kji'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$nV#Mbj'_Q'OS'TPOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#MX![!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$n_$ ]]wX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$!_a'rX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P#p$n#p#q$#d#q;'S$n;'S;=`4s<%lO$n_$#m]'|X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$$o]vX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n",tokenizers:[m,u,G,0,1,2,3],topRules:{SourceFile:[0,8]},specialized:[{term:281,get:O=>j[O]||-1}],tokenPrec:15596}),I=q.define({name:"rust",parser:E.configure({props:[l.add({IfExpression:r({except:/^\s*({|else\b)/}),"String BlockComment":()=>null,AttributeItem:O=>O.continue(),"Statement MatchArm":r()}),w.add(O=>{if(/(Block|edTokens|List)$/.test(O.name))return V;if(O.name=="BlockComment")return i=>({from:i.from+2,to:i.to-2})})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:\{|\})$/,closeBrackets:{stringPrefixes:["b","r","br"]}}});function K(){return new _(I)}export{K as rust,I as rustLanguage}; diff --git a/internal/relay/web-dist/index.html b/internal/relay/web-dist/index.html index 674cfd52..084389ae 100644 --- a/internal/relay/web-dist/index.html +++ b/internal/relay/web-dist/index.html @@ -11,13 +11,13 @@ AT Term - + - +
diff --git a/internal/relay/web-dist/sw.js b/internal/relay/web-dist/sw.js index 9cdf565d..d87edc61 100644 --- a/internal/relay/web-dist/sw.js +++ b/internal/relay/web-dist/sw.js @@ -1 +1 @@ -if(!self.define){let s,e={};const i=(i,l)=>(i=new URL(i+".js",l).href,e[i]||new Promise(e=>{if("document"in self){const s=document.createElement("script");s.src=i,s.onload=e,document.head.appendChild(s)}else s=i,importScripts(i),e()}).then(()=>{let s=e[i];if(!s)throw new Error(`Module ${i} didn’t register its module`);return s}));self.define=(l,n)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(e[r])return;let u={};const o=s=>i(s,r),t={module:{uri:r},exports:u,require:o};e[r]=Promise.all(l.map(s=>t[s]||o(s))).then(s=>(n(...s),u))}}define(["./workbox-0bb07689"],function(s){"use strict";importScripts("notification-click.js"),self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"signup.html",revision:"efcbc3ed78de0fd9596b93c26a75099e"},{url:"setup.html",revision:"f3849509a31d45254d04fdcef2f0d54a"},{url:"notification-click.js",revision:"bb04a6b8230e48578719120cf2c820cf"},{url:"manifest.webmanifest",revision:"ee62007ccffc3e46461d5812bb890bf8"},{url:"login.html",revision:"676de7509e32c504f712bc1513582a48"},{url:"index.html",revision:"0bd30cf6ffd62aa7aa2e3b97804439ab"},{url:"icon.svg",revision:"2ef190cf56a973b4e843228dc551b92e"},{url:"icon.png",revision:"9ee6de251ff079b039219fb78a2a1776"},{url:"firstrun.html",revision:"7a8b7fd8da8c255de785bf46446038c6"},{url:"assets/workbox-window.prod.es5-BqEJf4Xk.js",revision:null},{url:"assets/wasm_exec-vVX9mWnE.js",revision:null},{url:"assets/wasm_exec-BVJFcdQq.js",revision:null},{url:"assets/version-DPtnfoOB.js",revision:null},{url:"assets/useI18n-CnvN0FfF.js",revision:null},{url:"assets/toml-Bm5Em-hy.js",revision:null},{url:"assets/swift-BzpIVaGY.js",revision:null},{url:"assets/signup-zTxZ2Ho_.css",revision:null},{url:"assets/signup-AhbkM-pD.js",revision:null},{url:"assets/shell-CjFT_Tl9.js",revision:null},{url:"assets/setup-DC9JOQlN.js",revision:null},{url:"assets/setup-BisxzT2E.css",revision:null},{url:"assets/sessions-Uw5ok8wO.js",revision:null},{url:"assets/ruby-B2Rjki9n.js",revision:null},{url:"assets/pwa-C6kIEQJT.js",revision:null},{url:"assets/properties-C78fOPTZ.js",revision:null},{url:"assets/prefsSync-D8z1rJ8H.js",revision:null},{url:"assets/opaque-BH0YqBjY.js",revision:null},{url:"assets/mobile-guard-DNP_n6iV.js",revision:null},{url:"assets/mobile-guard-CPlabY_J.css",revision:null},{url:"assets/lua-VAEuO923.js",revision:null},{url:"assets/login-B2LUhNm2.css",revision:null},{url:"assets/login-6vnLvdhD.js",revision:null},{url:"assets/index-qv8oCKM7.js",revision:null},{url:"assets/index-p_CjDrxf.js",revision:null},{url:"assets/index-nQPb1k27.js",revision:null},{url:"assets/index-ZyB5w4NU.js",revision:null},{url:"assets/index-MXpsJk3L.js",revision:null},{url:"assets/index-Dchib396.js",revision:null},{url:"assets/index-D8AWWFft.js",revision:null},{url:"assets/index-D73k4NcO.js",revision:null},{url:"assets/index-CripwhQ-.js",revision:null},{url:"assets/index-CPhFc1xe.js",revision:null},{url:"assets/index-CMJgXADN.js",revision:null},{url:"assets/index-C93ksU7R.js",revision:null},{url:"assets/index-BtHosg8n.js",revision:null},{url:"assets/index-BlhWulu2.js",revision:null},{url:"assets/index-Bj0r02vw.js",revision:null},{url:"assets/index-BgaS_Avq.js",revision:null},{url:"assets/index-BPHRQyFA.js",revision:null},{url:"assets/index-BJe4IiST.js",revision:null},{url:"assets/index-BCkxFa-u.js",revision:null},{url:"assets/index-B6q5BPkU.css",revision:null},{url:"assets/index-8VzpCkPZ.js",revision:null},{url:"assets/firstrun-dxEwnRB_.css",revision:null},{url:"assets/firstrun-BkBSjRTR.js",revision:null},{url:"assets/dockerfile-ZL4hHokT.js",revision:null},{url:"assets/diff-DbItnlRl.js",revision:null},{url:"assets/clike-B9uivgTg.js",revision:null},{url:"assets/client-2UEf7AK8.js",revision:null},{url:"assets/auth-Dhl8fEWW.js",revision:null},{url:"assets/Switch-CpxGRRqY.js",revision:null},{url:"assets/FileExplorer-DKo_tolh.css",revision:null},{url:"assets/FileExplorer-BsSESYjF.js",revision:null},{url:"icon.png",revision:"9ee6de251ff079b039219fb78a2a1776"},{url:"icon.svg",revision:"2ef190cf56a973b4e843228dc551b92e"},{url:"manifest.webmanifest",revision:"ee62007ccffc3e46461d5812bb890bf8"}],{}),s.cleanupOutdatedCaches()}); +if(!self.define){let s,e={};const i=(i,l)=>(i=new URL(i+".js",l).href,e[i]||new Promise(e=>{if("document"in self){const s=document.createElement("script");s.src=i,s.onload=e,document.head.appendChild(s)}else s=i,importScripts(i),e()}).then(()=>{let s=e[i];if(!s)throw new Error(`Module ${i} didn’t register its module`);return s}));self.define=(l,n)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(e[r])return;let u={};const o=s=>i(s,r),t={module:{uri:r},exports:u,require:o};e[r]=Promise.all(l.map(s=>t[s]||o(s))).then(s=>(n(...s),u))}}define(["./workbox-0bb07689"],function(s){"use strict";importScripts("notification-click.js"),self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"signup.html",revision:"efcbc3ed78de0fd9596b93c26a75099e"},{url:"setup.html",revision:"f3849509a31d45254d04fdcef2f0d54a"},{url:"notification-click.js",revision:"bb04a6b8230e48578719120cf2c820cf"},{url:"manifest.webmanifest",revision:"ee62007ccffc3e46461d5812bb890bf8"},{url:"login.html",revision:"676de7509e32c504f712bc1513582a48"},{url:"index.html",revision:"ba1ef66733281d0eef68d7bf75de4582"},{url:"icon.svg",revision:"2ef190cf56a973b4e843228dc551b92e"},{url:"icon.png",revision:"9ee6de251ff079b039219fb78a2a1776"},{url:"firstrun.html",revision:"7a8b7fd8da8c255de785bf46446038c6"},{url:"assets/workbox-window.prod.es5-BqEJf4Xk.js",revision:null},{url:"assets/wasm_exec-vVX9mWnE.js",revision:null},{url:"assets/wasm_exec-BVJFcdQq.js",revision:null},{url:"assets/version-DPtnfoOB.js",revision:null},{url:"assets/useI18n-CnvN0FfF.js",revision:null},{url:"assets/toml-Bm5Em-hy.js",revision:null},{url:"assets/swift-BzpIVaGY.js",revision:null},{url:"assets/signup-zTxZ2Ho_.css",revision:null},{url:"assets/signup-AhbkM-pD.js",revision:null},{url:"assets/shell-CjFT_Tl9.js",revision:null},{url:"assets/setup-DC9JOQlN.js",revision:null},{url:"assets/setup-BisxzT2E.css",revision:null},{url:"assets/sessions-Uw5ok8wO.js",revision:null},{url:"assets/ruby-B2Rjki9n.js",revision:null},{url:"assets/pwa-C6kIEQJT.js",revision:null},{url:"assets/properties-C78fOPTZ.js",revision:null},{url:"assets/prefsSync-D8z1rJ8H.js",revision:null},{url:"assets/opaque-BH0YqBjY.js",revision:null},{url:"assets/mobile-guard-DNP_n6iV.js",revision:null},{url:"assets/mobile-guard-CPlabY_J.css",revision:null},{url:"assets/lua-VAEuO923.js",revision:null},{url:"assets/login-B2LUhNm2.css",revision:null},{url:"assets/login-6vnLvdhD.js",revision:null},{url:"assets/index-vv_fn0WP.js",revision:null},{url:"assets/index-sMVa0oql.js",revision:null},{url:"assets/index-q_Op_mkr.js",revision:null},{url:"assets/index-hbreRbwz.js",revision:null},{url:"assets/index-hP5cCp4S.js",revision:null},{url:"assets/index-arVCiUK9.css",revision:null},{url:"assets/index-Y0PF_oBA.js",revision:null},{url:"assets/index-LsOWRKMa.js",revision:null},{url:"assets/index-DW5ZYIIZ.js",revision:null},{url:"assets/index-D9YFpvOI.js",revision:null},{url:"assets/index-D8AWWFft.js",revision:null},{url:"assets/index-CsH7OxDu.js",revision:null},{url:"assets/index-CrP2n_El.js",revision:null},{url:"assets/index-CZ0p1U99.js",revision:null},{url:"assets/index-CH6joGJR.js",revision:null},{url:"assets/index-BfmBkV0O.js",revision:null},{url:"assets/index-Bc7PlSwi.js",revision:null},{url:"assets/index-BSlQSXjR.js",revision:null},{url:"assets/index-BH9vIdLD.js",revision:null},{url:"assets/index-BEPhTiWa.js",revision:null},{url:"assets/index-Ak5-vsum.js",revision:null},{url:"assets/firstrun-dxEwnRB_.css",revision:null},{url:"assets/firstrun-BkBSjRTR.js",revision:null},{url:"assets/dockerfile-ZL4hHokT.js",revision:null},{url:"assets/diff-DbItnlRl.js",revision:null},{url:"assets/clike-B9uivgTg.js",revision:null},{url:"assets/client-2UEf7AK8.js",revision:null},{url:"assets/auth-Dhl8fEWW.js",revision:null},{url:"assets/Switch-CpxGRRqY.js",revision:null},{url:"assets/FileExplorer-DKo_tolh.css",revision:null},{url:"assets/FileExplorer-BGCt84ef.js",revision:null},{url:"icon.png",revision:"9ee6de251ff079b039219fb78a2a1776"},{url:"icon.svg",revision:"2ef190cf56a973b4e843228dc551b92e"},{url:"manifest.webmanifest",revision:"ee62007ccffc3e46461d5812bb890bf8"}],{}),s.cleanupOutdatedCaches()});