diff --git a/Dockerfile.build b/Dockerfile.build new file mode 100644 index 0000000..dfc9eff --- /dev/null +++ b/Dockerfile.build @@ -0,0 +1,7 @@ +FROM denoland/deno:latest +WORKDIR /app +COPY . . +# Explicitly fetch dependencies +RUN deno install +RUN deno task build +CMD ["cat", "icalendar.plug.js"] diff --git a/Library/sstent/icalendar.plug.js b/Library/sstent/icalendar.plug.js new file mode 100644 index 0000000..c914d2f --- /dev/null +++ b/Library/sstent/icalendar.plug.js @@ -0,0 +1,2 @@ +function u(r){let e=atob(r),o=e.length,n=new Uint8Array(o);for(let t=0;t(...n)=>{let t=this.prefix?[this.prefix,...n]:n;this.originalConsole[o](...t),this.captureLog(o,n)};console.log=e("log"),console.info=e("info"),console.warn=e("warn"),console.error=e("error"),console.debug=e("debug")}captureLog(e,o){let n={level:e,timestamp:Date.now(),message:o.map(t=>{if(typeof t=="string")return t;try{return JSON.stringify(t)}catch{return String(t)}}).join(" ")};this.logBuffer.push(n),this.logBuffer.length>this.maxCaptureSize&&this.logBuffer.shift()}async postToServer(e,o){if(this.logBuffer.length>0){let t=[...this.logBuffer];this.logBuffer=[];try{if(!(await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t.map(s=>({...s,source:o})))})).ok)throw new Error("Failed to post logs to server")}catch(i){console.warn("Could not post logs to server",i.message),this.logBuffer.unshift(...t)}}}},g;function f(r=""){return g=new y(r),g}var a=r=>{throw new Error("Not initialized yet")},p=typeof window>"u"&&typeof globalThis.WebSocketPair>"u";typeof Deno>"u"&&(self.Deno={args:[],build:{arch:"x86_64"},env:{get(){}}});var d=new Map,l=0;p&&(globalThis.syscall=async(r,...e)=>await new Promise((o,n)=>{l++,d.set(l,{resolve:o,reject:n}),a({type:"sys",id:l,name:r,args:e})}));function h(r,e,o){p&&(a=o,self.addEventListener("message",n=>{(async()=>{let t=n.data;switch(t.type){case"inv":{let i=r[t.name];if(!i)throw new Error(`Function not loaded: ${t.name}`);try{let s=await Promise.resolve(i(...t.args||[]));a({type:"invr",id:t.id,result:s})}catch(s){console.error("An exception was thrown as a result of invoking function",t.name,"error:",s.message),a({type:"invr",id:t.id,error:s.message})}}break;case"sysr":{let i=t.id,s=d.get(i);if(!s)throw Error("Invalid request id");d.delete(i),t.error?s.reject(new Error(t.error)):s.resolve(t.result)}break}})().catch(console.error)}),a({type:"manifest",manifest:e}),f(`[${e.name} plug]`))}async function b(r,e){if(typeof r!="string"){let o=new Uint8Array(await r.arrayBuffer()),n=o.length>0?c(o):void 0;e={method:r.method,headers:Object.fromEntries(r.headers.entries()),base64Body:n},r=r.url}return syscall("sandboxFetch.fetch",r,e)}globalThis.nativeFetch=globalThis.fetch;function x(){globalThis.fetch=async function(r,e){let o=e&&e.body?c(new Uint8Array(await new Response(e.body).arrayBuffer())):void 0,n=await b(r,e&&{method:e.method,headers:e.headers,base64Body:o});return new Response(n.base64Body?u(n.base64Body):null,{status:n.status,headers:n.headers})}}p&&x();var m={},w={name:"Library/sstent/icalendar",version:"0.3.7",author:"sstent",index:"index.ts",functions:{syncCalendars:{command:"iCalendar: Sync"},forceSync:{command:"iCalendar: Force Sync"},clearCache:{command:"iCalendar: Clear Cache"},showVersion:{command:"iCalendar: Show Version"}},permissions:["http"],assets:{}},K={manifest:w,functionMapping:m};h(m,w,self.postMessage);export{K as plug}; +//# sourceMappingURL=icalendar.plug.js.map diff --git a/Library/sstent/icalendar.plug.js.map b/Library/sstent/icalendar.plug.js.map new file mode 100644 index 0000000..1ab1b76 --- /dev/null +++ b/Library/sstent/icalendar.plug.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["https://deno.land/x/silverbullet@2.4.1/plug-api/lib/crypto.ts", "https://deno.land/x/silverbullet@2.4.1/client/lib/logger.ts", "https://deno.land/x/silverbullet@2.4.1/client/plugos/worker_runtime.ts", "../../../tmp/6b048d2e822672df.js"], + "sourcesContent": ["export function base64Decode(s: string): Uint8Array {\n const binString = atob(s);\n const len = binString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binString.charCodeAt(i);\n }\n return bytes;\n}\n\nexport function base64Encode(buffer: Uint8Array | string): string {\n if (typeof buffer === \"string\") {\n buffer = new TextEncoder().encode(buffer);\n }\n let binary = \"\";\n const len = buffer.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(buffer[i]);\n }\n return btoa(binary);\n}\n\nexport function base64EncodedDataUrl(\n mimeType: string,\n buffer: Uint8Array,\n): string {\n return `data:${mimeType};base64,${base64Encode(buffer)}`;\n}\n\nexport function base64DecodeDataUrl(dataUrl: string): Uint8Array {\n const b64Encoded = dataUrl.split(\",\", 2)[1];\n return base64Decode(b64Encoded);\n}\n\n/**\n * Perform sha256 hash using the browser's crypto APIs\n * Note: this will only work over HTTPS\n * @param message\n */\nexport async function hashSHA256(\n message: string | Uint8Array,\n): Promise {\n // Transform the string into an ArrayBuffer\n const encoder = new TextEncoder();\n const data: Uint8Array = typeof message === \"string\"\n ? encoder.encode(message)\n : message;\n\n // Generate the hash\n const hashBuffer = await globalThis.crypto.subtle.digest(\n \"SHA-256\",\n data as BufferSource,\n );\n\n // Transform the hash into a hex string\n return Array.from(new Uint8Array(hashBuffer)).map((b) =>\n b.toString(16).padStart(2, \"0\")\n ).join(\"\");\n}\n\n/**\n * To avoid database clashes based on space folder path name, base URLs and encryption keys we derive\n * a database name from a hash of all these combined together\n */\nexport async function deriveDbName(\n type: \"data\" | \"files\",\n spaceFolderPath: string,\n baseURI: string,\n encryptionKey?: CryptoKey,\n): Promise {\n let keyPart = \"\";\n if (encryptionKey) {\n keyPart = await exportKey(encryptionKey);\n }\n const spaceHash = await hashSHA256(\n `${spaceFolderPath}:${baseURI}:${keyPart}`,\n );\n return `sb_${type}_${spaceHash}`;\n}\n\n// Fixed counter for AES-CTR all zeroes, for determinism\nconst fixedCounter = new Uint8Array(16);\n\nexport async function encryptStringDeterministic(\n key: CryptoKey,\n clearText: string,\n): Promise {\n const encrypted = await crypto.subtle.encrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n new TextEncoder().encode(clearText),\n );\n return base64Encode(new Uint8Array(encrypted));\n}\n\nexport async function decryptStringDeterministic(\n key: CryptoKey,\n cipherText: string,\n): Promise {\n const decrypted = await crypto.subtle.decrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n base64Decode(cipherText) as BufferSource,\n );\n return new TextDecoder().decode(decrypted);\n}\n\n// Encrypt using AES-GCM with random IV; output = IV + ciphertext\nexport async function encryptAesGcm(\n key: CryptoKey,\n data: Uint8Array,\n): Promise {\n const iv = crypto.getRandomValues(new Uint8Array(12)); // 96-bit IV recommended for GCM\n const encryptedBuffer = await crypto.subtle.encrypt(\n { name: \"AES-GCM\", iv },\n key,\n data as BufferSource,\n );\n const encrypted = new Uint8Array(encryptedBuffer);\n\n // Prepend IV to ciphertext\n const result = new Uint8Array(iv.length + encrypted.length);\n result.set(iv, 0);\n result.set(encrypted, iv.length);\n return result;\n}\n\n// Decrypt using AES-GCM assuming input format IV + ciphertext\nexport async function decryptAesGcm(\n key: CryptoKey,\n encryptedData: Uint8Array,\n): Promise {\n const iv = encryptedData.slice(0, 12); // extract IV (first 12 bytes)\n const ciphertext = encryptedData.slice(12);\n const decryptedBuffer = await crypto.subtle.decrypt(\n { name: \"AES-GCM\", iv },\n key,\n ciphertext,\n );\n return new Uint8Array(decryptedBuffer);\n}\n\nexport async function deriveCTRKeyFromPassword(\n password: string,\n salt: Uint8Array,\n): Promise {\n // Encode password to ArrayBuffer\n const passwordBytes = new TextEncoder().encode(password);\n\n // Import password as a CryptoKey\n const baseKey = await crypto.subtle.importKey(\n \"raw\",\n passwordBytes,\n { name: \"PBKDF2\" },\n false,\n [\"deriveBits\", \"deriveKey\"],\n );\n\n return crypto.subtle.deriveKey(\n {\n name: \"PBKDF2\",\n salt: salt as BufferSource,\n iterations: 100000,\n hash: \"SHA-256\",\n },\n baseKey,\n {\n name: \"AES-CTR\",\n length: 256,\n },\n true, // extractable\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport function importKey(b64EncodedKey: string): Promise {\n return crypto.subtle.importKey(\n \"raw\",\n base64Decode(b64EncodedKey) as BufferSource,\n { name: \"AES-CTR\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport async function exportKey(ctrKey: CryptoKey): Promise {\n const key = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return base64Encode(new Uint8Array(key));\n}\n\nexport async function deriveGCMKeyFromCTR(\n ctrKey: CryptoKey,\n): Promise {\n const rawKey = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return crypto.subtle.importKey(\n \"raw\",\n rawKey,\n { name: \"AES-GCM\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n", "// Logger that monkey patches console methods with prefixes and can capture logs for server transmission\n\nexport interface LogEntry {\n level: \"log\" | \"info\" | \"warn\" | \"error\" | \"debug\";\n timestamp: number;\n message: string;\n}\n\nexport class Logger {\n private originalConsole: {\n log: typeof console.log;\n info: typeof console.info;\n warn: typeof console.warn;\n error: typeof console.error;\n debug: typeof console.debug;\n };\n public logBuffer: LogEntry[] = [];\n\n constructor(\n private prefix: string = \"\",\n private maxCaptureSize: number = 1000,\n ) {\n this.prefix = prefix;\n\n // Store original console methods\n this.originalConsole = {\n log: console.log.bind(console),\n info: console.info.bind(console),\n warn: console.warn.bind(console),\n error: console.error.bind(console),\n debug: console.debug.bind(console),\n };\n\n this.patchConsole();\n }\n\n private patchConsole(): void {\n const createPatchedMethod = (level: keyof typeof this.originalConsole) => {\n return (...args: any[]) => {\n const prefixedArgs = this.prefix ? [this.prefix, ...args] : args;\n\n // Call original console method\n this.originalConsole[level](...prefixedArgs);\n\n // Capture log if capturing is enabled\n this.captureLog(level, args);\n };\n };\n\n console.log = createPatchedMethod(\"log\");\n console.info = createPatchedMethod(\"info\");\n console.warn = createPatchedMethod(\"warn\");\n console.error = createPatchedMethod(\"error\");\n console.debug = createPatchedMethod(\"debug\");\n }\n\n private captureLog(level: LogEntry[\"level\"], args: any[]): void {\n const entry: LogEntry = {\n level,\n timestamp: Date.now(),\n message: args.map((arg) => {\n if (typeof arg === \"string\") {\n return arg;\n }\n try {\n return JSON.stringify(arg);\n } catch {\n // Handle circular references or other JSON.stringify failures\n return String(arg);\n }\n }).join(\" \"),\n };\n\n this.logBuffer.push(entry);\n\n // Maintain max capture size by removing oldest entries\n if (this.logBuffer.length > this.maxCaptureSize) {\n this.logBuffer.shift();\n }\n }\n\n /**\n * Posts all buffered logs to a server endpoint\n */\n async postToServer(logEndpoint: string, source: string) {\n const logs = this.logBuffer;\n if (logs.length > 0) {\n // Flush the buffer\n const logCopy = [...this.logBuffer];\n this.logBuffer = [];\n try {\n const resp = await fetch(logEndpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(logCopy.map((entry) => ({ ...entry, source }))),\n });\n if (!resp.ok) {\n throw new Error(\"Failed to post logs to server\");\n }\n } catch (e: any) {\n console.warn(\"Could not post logs to server\", e.message);\n // Put back the logs into the buffer\n this.logBuffer.unshift(...logCopy);\n }\n }\n }\n}\n\n// Global logger instance\nlet globalLogger: Logger | undefined = undefined;\n\nexport function initLogger(prefix: string = \"\"): Logger {\n globalLogger = new Logger(prefix);\n return globalLogger;\n}\n", "// This is the runtime imported from the compiled plug worker code\nimport type { ControllerMessage, WorkerMessage } from \"./protocol.ts\";\nimport type {\n ProxyFetchRequest64,\n ProxyFetchResponse64,\n} from \"./proxy_fetch.ts\";\nimport { base64Decode, base64Encode } from \"../../plug-api/lib/crypto.ts\";\nimport { initLogger } from \"../lib/logger.ts\";\n\ndeclare global {\n function syscall(name: string, ...args: any[]): Promise;\n}\n\nlet workerPostMessage = (_msg: ControllerMessage): void => {\n throw new Error(\"Not initialized yet\");\n};\n\n// Are we running in a (web) worker?\n\n// Determines if we're running in a web worker environment (Deno or browser)\n// - in a browser's main threads, typeof window is \"object\"\n// - in a browser's worker threads, typeof window === \"undefined\"\n// - in Deno's main thread typeof window === \"object\"\n// - in Deno's workers typeof window === \"undefined\n// - in Cloudflare workers typeof window === \"undefined\", but typeof globalThis.WebSocketPair is defined\nconst runningAsWebWorker = typeof window === \"undefined\" &&\n // @ts-ignore: globalThis\n typeof globalThis.WebSocketPair === \"undefined\";\n\nif (typeof Deno === \"undefined\") {\n // @ts-ignore: Deno hack\n self.Deno = {\n args: [],\n // @ts-ignore: Deno hack\n build: {\n arch: \"x86_64\",\n },\n env: {\n // @ts-ignore: Deno hack\n get() {\n },\n },\n };\n}\n\nconst pendingRequests = new Map<\n number,\n {\n resolve: (result: unknown) => void;\n reject: (e: any) => void;\n }\n>();\n\nlet syscallReqId = 0;\n\nif (runningAsWebWorker) {\n globalThis.syscall = async (name: string, ...args: any[]) => {\n return await new Promise((resolve, reject) => {\n syscallReqId++;\n pendingRequests.set(syscallReqId, { resolve, reject });\n workerPostMessage({\n type: \"sys\",\n id: syscallReqId,\n name,\n args,\n });\n });\n };\n}\n\nexport function setupMessageListener(\n // deno-lint-ignore ban-types\n functionMapping: Record,\n manifest: any,\n postMessageFn: (msg: ControllerMessage) => void,\n) {\n if (!runningAsWebWorker) {\n // Don't do any of this stuff if this is not a web worker\n // This caters to the NoSandbox run mode\n return;\n }\n workerPostMessage = postMessageFn;\n self.addEventListener(\"message\", (event: { data: WorkerMessage }) => {\n (async () => {\n const data = event.data;\n switch (data.type) {\n case \"inv\":\n {\n const fn = functionMapping[data.name!];\n if (!fn) {\n throw new Error(`Function not loaded: ${data.name}`);\n }\n try {\n const result = await Promise.resolve(fn(...(data.args || [])));\n workerPostMessage({\n type: \"invr\",\n id: data.id,\n result: result,\n } as ControllerMessage);\n } catch (e: any) {\n console.error(\n \"An exception was thrown as a result of invoking function\",\n data.name,\n \"error:\",\n e.message,\n );\n workerPostMessage({\n type: \"invr\",\n id: data.id!,\n error: e.message,\n });\n }\n }\n break;\n case \"sysr\":\n {\n const syscallId = data.id;\n const lookup = pendingRequests.get(syscallId);\n if (!lookup) {\n throw Error(\"Invalid request id\");\n }\n pendingRequests.delete(syscallId);\n if (data.error) {\n lookup.reject(new Error(data.error));\n } else {\n lookup.resolve(data.result);\n }\n }\n\n break;\n }\n })().catch(console.error);\n });\n // Signal initialization with manifest\n workerPostMessage({\n type: \"manifest\",\n manifest,\n });\n initLogger(`[${manifest.name} plug]`);\n}\n\nexport async function sandboxFetch(\n reqInfo: RequestInfo,\n options?: ProxyFetchRequest64,\n): Promise {\n if (typeof reqInfo !== \"string\") {\n const body = new Uint8Array(await reqInfo.arrayBuffer());\n const encodedBody = body.length > 0 ? base64Encode(body) : undefined;\n options = {\n method: reqInfo.method,\n headers: Object.fromEntries(reqInfo.headers.entries()),\n base64Body: encodedBody,\n };\n reqInfo = reqInfo.url;\n }\n return syscall(\"sandboxFetch.fetch\", reqInfo, options);\n}\n\n// @ts-ignore: monkey patching fetch\nglobalThis.nativeFetch = globalThis.fetch;\n\n// Monkey patch fetch()\nexport function monkeyPatchFetch() {\n // @ts-ignore: monkey patching fetch\n globalThis.fetch = async function (\n reqInfo: RequestInfo,\n init?: RequestInit,\n ): Promise {\n const encodedBody = init && init.body\n ? base64Encode(\n new Uint8Array(await (new Response(init.body)).arrayBuffer()),\n )\n : undefined;\n const r = await sandboxFetch(\n reqInfo,\n init && {\n method: init.method,\n headers: init.headers as Record,\n base64Body: encodedBody,\n },\n );\n // Casting the response to \"any\" for now, since of weird Deno typing\n return new Response(\n (r.base64Body ? base64Decode(r.base64Body) : null) as any,\n {\n status: r.status,\n headers: r.headers,\n },\n );\n };\n}\n\nif (runningAsWebWorker) {\n monkeyPatchFetch();\n}\n", "\nimport { setupMessageListener } from \"https://deno.land/x/silverbullet@2.4.1/client/plugos/worker_runtime.ts\";\n\n// Imports\n\n\n// Function mapping\nconst functionMapping = {\n\n};\n\n// Manifest\nconst manifest = {\n \"name\": \"Library/sstent/icalendar\",\n \"version\": \"0.3.7\",\n \"author\": \"sstent\",\n \"index\": \"index.ts\",\n \"functions\": {\n \"syncCalendars\": {\n \"command\": \"iCalendar: Sync\"\n },\n \"forceSync\": {\n \"command\": \"iCalendar: Force Sync\"\n },\n \"clearCache\": {\n \"command\": \"iCalendar: Clear Cache\"\n },\n \"showVersion\": {\n \"command\": \"iCalendar: Show Version\"\n }\n },\n \"permissions\": [\n \"http\"\n ],\n \"assets\": {}\n};\n\nexport const plug = {manifest, functionMapping};\n\nsetupMessageListener(functionMapping, manifest, self.postMessage);\n"], + "mappings": "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", + "names": ["base64Decode", "s", "binString", "len", "bytes", "i", "base64Encode", "buffer", "binary", "fixedCounter", "Logger", "prefix", "maxCaptureSize", "createPatchedMethod", "level", "args", "prefixedArgs", "entry", "arg", "logEndpoint", "source", "logCopy", "e", "globalLogger", "initLogger", "workerPostMessage", "_msg", "runningAsWebWorker", "pendingRequests", "syscallReqId", "name", "args", "resolve", "reject", "setupMessageListener", "functionMapping", "manifest", "postMessageFn", "event", "data", "fn", "result", "e", "syscallId", "lookup", "initLogger", "sandboxFetch", "reqInfo", "options", "body", "encodedBody", "base64Encode", "monkeyPatchFetch", "init", "r", "base64Decode", "functionMapping", "manifest", "plug", "setupMessageListener"] +} diff --git a/deno.json b/deno.json index 492043d..0ce60b7 100644 --- a/deno.json +++ b/deno.json @@ -1,9 +1,9 @@ { "nodeModulesDir": "auto", "tasks": { - "build": "deno run -A https://github.com/silverbulletmd/silverbullet/releases/download/edge/plug-compile.js -c deno.json icalendar.plug.yaml", - "watch": "deno run -A https://github.com/silverbulletmd/silverbullet/releases/download/edge/plug-compile.js -c deno.json icalendar.plug.yaml -w", - "debug": "deno run -A https://github.com/silverbulletmd/silverbullet/releases/download/edge/plug-compile.js -c deno.json icalendar.plug.yaml --debug" + "build": "deno run -A https://github.com/silverbulletmd/silverbullet/releases/download/2.4.1/plug-compile.js -c deno.json icalendar.plug.yaml", + "watch": "deno run -A https://raw.githubusercontent.com/silverbulletmd/silverbullet/v2.4.1/plug-compile.js -c deno.json icalendar.plug.yaml -w", + "debug": "deno run -A https://raw.githubusercontent.com/silverbulletmd/silverbullet/v2.4.1/plug-compile.js -c deno.json icalendar.plug.yaml --debug" }, "lint": { "rules": { diff --git a/icalendar.plug.js.map b/icalendar.plug.js.map index b8f99a5..facb9af 100644 --- a/icalendar.plug.js.map +++ b/icalendar.plug.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["https://deno.land/x/silverbullet@2.4.1/plug-api/lib/crypto.ts", "https://deno.land/x/silverbullet@2.4.1/client/lib/logger.ts", "https://deno.land/x/silverbullet@2.4.1/client/plugos/worker_runtime.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/editor.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscall.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/client_store.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/lib/crypto.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/datastore.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/config.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/index.ts", "../../node_modules/.deno/ts-ics@2.4.0/node_modules/ts-ics/dist/index.js", "../../icalendar.ts", "../../../tmp/ab8bdc28f0708b52.js"], - "sourcesContent": ["export function base64Decode(s: string): Uint8Array {\n const binString = atob(s);\n const len = binString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binString.charCodeAt(i);\n }\n return bytes;\n}\n\nexport function base64Encode(buffer: Uint8Array | string): string {\n if (typeof buffer === \"string\") {\n buffer = new TextEncoder().encode(buffer);\n }\n let binary = \"\";\n const len = buffer.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(buffer[i]);\n }\n return btoa(binary);\n}\n\nexport function base64EncodedDataUrl(\n mimeType: string,\n buffer: Uint8Array,\n): string {\n return `data:${mimeType};base64,${base64Encode(buffer)}`;\n}\n\nexport function base64DecodeDataUrl(dataUrl: string): Uint8Array {\n const b64Encoded = dataUrl.split(\",\", 2)[1];\n return base64Decode(b64Encoded);\n}\n\n/**\n * Perform sha256 hash using the browser's crypto APIs\n * Note: this will only work over HTTPS\n * @param message\n */\nexport async function hashSHA256(\n message: string | Uint8Array,\n): Promise {\n // Transform the string into an ArrayBuffer\n const encoder = new TextEncoder();\n const data: Uint8Array = typeof message === \"string\"\n ? encoder.encode(message)\n : message;\n\n // Generate the hash\n const hashBuffer = await globalThis.crypto.subtle.digest(\n \"SHA-256\",\n data as BufferSource,\n );\n\n // Transform the hash into a hex string\n return Array.from(new Uint8Array(hashBuffer)).map((b) =>\n b.toString(16).padStart(2, \"0\")\n ).join(\"\");\n}\n\n/**\n * To avoid database clashes based on space folder path name, base URLs and encryption keys we derive\n * a database name from a hash of all these combined together\n */\nexport async function deriveDbName(\n type: \"data\" | \"files\",\n spaceFolderPath: string,\n baseURI: string,\n encryptionKey?: CryptoKey,\n): Promise {\n let keyPart = \"\";\n if (encryptionKey) {\n keyPart = await exportKey(encryptionKey);\n }\n const spaceHash = await hashSHA256(\n `${spaceFolderPath}:${baseURI}:${keyPart}`,\n );\n return `sb_${type}_${spaceHash}`;\n}\n\n// Fixed counter for AES-CTR all zeroes, for determinism\nconst fixedCounter = new Uint8Array(16);\n\nexport async function encryptStringDeterministic(\n key: CryptoKey,\n clearText: string,\n): Promise {\n const encrypted = await crypto.subtle.encrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n new TextEncoder().encode(clearText),\n );\n return base64Encode(new Uint8Array(encrypted));\n}\n\nexport async function decryptStringDeterministic(\n key: CryptoKey,\n cipherText: string,\n): Promise {\n const decrypted = await crypto.subtle.decrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n base64Decode(cipherText) as BufferSource,\n );\n return new TextDecoder().decode(decrypted);\n}\n\n// Encrypt using AES-GCM with random IV; output = IV + ciphertext\nexport async function encryptAesGcm(\n key: CryptoKey,\n data: Uint8Array,\n): Promise {\n const iv = crypto.getRandomValues(new Uint8Array(12)); // 96-bit IV recommended for GCM\n const encryptedBuffer = await crypto.subtle.encrypt(\n { name: \"AES-GCM\", iv },\n key,\n data as BufferSource,\n );\n const encrypted = new Uint8Array(encryptedBuffer);\n\n // Prepend IV to ciphertext\n const result = new Uint8Array(iv.length + encrypted.length);\n result.set(iv, 0);\n result.set(encrypted, iv.length);\n return result;\n}\n\n// Decrypt using AES-GCM assuming input format IV + ciphertext\nexport async function decryptAesGcm(\n key: CryptoKey,\n encryptedData: Uint8Array,\n): Promise {\n const iv = encryptedData.slice(0, 12); // extract IV (first 12 bytes)\n const ciphertext = encryptedData.slice(12);\n const decryptedBuffer = await crypto.subtle.decrypt(\n { name: \"AES-GCM\", iv },\n key,\n ciphertext,\n );\n return new Uint8Array(decryptedBuffer);\n}\n\nexport async function deriveCTRKeyFromPassword(\n password: string,\n salt: Uint8Array,\n): Promise {\n // Encode password to ArrayBuffer\n const passwordBytes = new TextEncoder().encode(password);\n\n // Import password as a CryptoKey\n const baseKey = await crypto.subtle.importKey(\n \"raw\",\n passwordBytes,\n { name: \"PBKDF2\" },\n false,\n [\"deriveBits\", \"deriveKey\"],\n );\n\n return crypto.subtle.deriveKey(\n {\n name: \"PBKDF2\",\n salt: salt as BufferSource,\n iterations: 100000,\n hash: \"SHA-256\",\n },\n baseKey,\n {\n name: \"AES-CTR\",\n length: 256,\n },\n true, // extractable\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport function importKey(b64EncodedKey: string): Promise {\n return crypto.subtle.importKey(\n \"raw\",\n base64Decode(b64EncodedKey) as BufferSource,\n { name: \"AES-CTR\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport async function exportKey(ctrKey: CryptoKey): Promise {\n const key = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return base64Encode(new Uint8Array(key));\n}\n\nexport async function deriveGCMKeyFromCTR(\n ctrKey: CryptoKey,\n): Promise {\n const rawKey = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return crypto.subtle.importKey(\n \"raw\",\n rawKey,\n { name: \"AES-GCM\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n", "// Logger that monkey patches console methods with prefixes and can capture logs for server transmission\n\nexport interface LogEntry {\n level: \"log\" | \"info\" | \"warn\" | \"error\" | \"debug\";\n timestamp: number;\n message: string;\n}\n\nexport class Logger {\n private originalConsole: {\n log: typeof console.log;\n info: typeof console.info;\n warn: typeof console.warn;\n error: typeof console.error;\n debug: typeof console.debug;\n };\n public logBuffer: LogEntry[] = [];\n\n constructor(\n private prefix: string = \"\",\n private maxCaptureSize: number = 1000,\n ) {\n this.prefix = prefix;\n\n // Store original console methods\n this.originalConsole = {\n log: console.log.bind(console),\n info: console.info.bind(console),\n warn: console.warn.bind(console),\n error: console.error.bind(console),\n debug: console.debug.bind(console),\n };\n\n this.patchConsole();\n }\n\n private patchConsole(): void {\n const createPatchedMethod = (level: keyof typeof this.originalConsole) => {\n return (...args: any[]) => {\n const prefixedArgs = this.prefix ? [this.prefix, ...args] : args;\n\n // Call original console method\n this.originalConsole[level](...prefixedArgs);\n\n // Capture log if capturing is enabled\n this.captureLog(level, args);\n };\n };\n\n console.log = createPatchedMethod(\"log\");\n console.info = createPatchedMethod(\"info\");\n console.warn = createPatchedMethod(\"warn\");\n console.error = createPatchedMethod(\"error\");\n console.debug = createPatchedMethod(\"debug\");\n }\n\n private captureLog(level: LogEntry[\"level\"], args: any[]): void {\n const entry: LogEntry = {\n level,\n timestamp: Date.now(),\n message: args.map((arg) => {\n if (typeof arg === \"string\") {\n return arg;\n }\n try {\n return JSON.stringify(arg);\n } catch {\n // Handle circular references or other JSON.stringify failures\n return String(arg);\n }\n }).join(\" \"),\n };\n\n this.logBuffer.push(entry);\n\n // Maintain max capture size by removing oldest entries\n if (this.logBuffer.length > this.maxCaptureSize) {\n this.logBuffer.shift();\n }\n }\n\n /**\n * Posts all buffered logs to a server endpoint\n */\n async postToServer(logEndpoint: string, source: string) {\n const logs = this.logBuffer;\n if (logs.length > 0) {\n // Flush the buffer\n const logCopy = [...this.logBuffer];\n this.logBuffer = [];\n try {\n const resp = await fetch(logEndpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(logCopy.map((entry) => ({ ...entry, source }))),\n });\n if (!resp.ok) {\n throw new Error(\"Failed to post logs to server\");\n }\n } catch (e: any) {\n console.warn(\"Could not post logs to server\", e.message);\n // Put back the logs into the buffer\n this.logBuffer.unshift(...logCopy);\n }\n }\n }\n}\n\n// Global logger instance\nlet globalLogger: Logger | undefined = undefined;\n\nexport function initLogger(prefix: string = \"\"): Logger {\n globalLogger = new Logger(prefix);\n return globalLogger;\n}\n", "// This is the runtime imported from the compiled plug worker code\nimport type { ControllerMessage, WorkerMessage } from \"./protocol.ts\";\nimport type {\n ProxyFetchRequest64,\n ProxyFetchResponse64,\n} from \"./proxy_fetch.ts\";\nimport { base64Decode, base64Encode } from \"../../plug-api/lib/crypto.ts\";\nimport { initLogger } from \"../lib/logger.ts\";\n\ndeclare global {\n function syscall(name: string, ...args: any[]): Promise;\n}\n\nlet workerPostMessage = (_msg: ControllerMessage): void => {\n throw new Error(\"Not initialized yet\");\n};\n\n// Are we running in a (web) worker?\n\n// Determines if we're running in a web worker environment (Deno or browser)\n// - in a browser's main threads, typeof window is \"object\"\n// - in a browser's worker threads, typeof window === \"undefined\"\n// - in Deno's main thread typeof window === \"object\"\n// - in Deno's workers typeof window === \"undefined\n// - in Cloudflare workers typeof window === \"undefined\", but typeof globalThis.WebSocketPair is defined\nconst runningAsWebWorker = typeof window === \"undefined\" &&\n // @ts-ignore: globalThis\n typeof globalThis.WebSocketPair === \"undefined\";\n\nif (typeof Deno === \"undefined\") {\n // @ts-ignore: Deno hack\n self.Deno = {\n args: [],\n // @ts-ignore: Deno hack\n build: {\n arch: \"x86_64\",\n },\n env: {\n // @ts-ignore: Deno hack\n get() {\n },\n },\n };\n}\n\nconst pendingRequests = new Map<\n number,\n {\n resolve: (result: unknown) => void;\n reject: (e: any) => void;\n }\n>();\n\nlet syscallReqId = 0;\n\nif (runningAsWebWorker) {\n globalThis.syscall = async (name: string, ...args: any[]) => {\n return await new Promise((resolve, reject) => {\n syscallReqId++;\n pendingRequests.set(syscallReqId, { resolve, reject });\n workerPostMessage({\n type: \"sys\",\n id: syscallReqId,\n name,\n args,\n });\n });\n };\n}\n\nexport function setupMessageListener(\n // deno-lint-ignore ban-types\n functionMapping: Record,\n manifest: any,\n postMessageFn: (msg: ControllerMessage) => void,\n) {\n if (!runningAsWebWorker) {\n // Don't do any of this stuff if this is not a web worker\n // This caters to the NoSandbox run mode\n return;\n }\n workerPostMessage = postMessageFn;\n self.addEventListener(\"message\", (event: { data: WorkerMessage }) => {\n (async () => {\n const data = event.data;\n switch (data.type) {\n case \"inv\":\n {\n const fn = functionMapping[data.name!];\n if (!fn) {\n throw new Error(`Function not loaded: ${data.name}`);\n }\n try {\n const result = await Promise.resolve(fn(...(data.args || [])));\n workerPostMessage({\n type: \"invr\",\n id: data.id,\n result: result,\n } as ControllerMessage);\n } catch (e: any) {\n console.error(\n \"An exception was thrown as a result of invoking function\",\n data.name,\n \"error:\",\n e.message,\n );\n workerPostMessage({\n type: \"invr\",\n id: data.id!,\n error: e.message,\n });\n }\n }\n break;\n case \"sysr\":\n {\n const syscallId = data.id;\n const lookup = pendingRequests.get(syscallId);\n if (!lookup) {\n throw Error(\"Invalid request id\");\n }\n pendingRequests.delete(syscallId);\n if (data.error) {\n lookup.reject(new Error(data.error));\n } else {\n lookup.resolve(data.result);\n }\n }\n\n break;\n }\n })().catch(console.error);\n });\n // Signal initialization with manifest\n workerPostMessage({\n type: \"manifest\",\n manifest,\n });\n initLogger(`[${manifest.name} plug]`);\n}\n\nexport async function sandboxFetch(\n reqInfo: RequestInfo,\n options?: ProxyFetchRequest64,\n): Promise {\n if (typeof reqInfo !== \"string\") {\n const body = new Uint8Array(await reqInfo.arrayBuffer());\n const encodedBody = body.length > 0 ? base64Encode(body) : undefined;\n options = {\n method: reqInfo.method,\n headers: Object.fromEntries(reqInfo.headers.entries()),\n base64Body: encodedBody,\n };\n reqInfo = reqInfo.url;\n }\n return syscall(\"sandboxFetch.fetch\", reqInfo, options);\n}\n\n// @ts-ignore: monkey patching fetch\nglobalThis.nativeFetch = globalThis.fetch;\n\n// Monkey patch fetch()\nexport function monkeyPatchFetch() {\n // @ts-ignore: monkey patching fetch\n globalThis.fetch = async function (\n reqInfo: RequestInfo,\n init?: RequestInit,\n ): Promise {\n const encodedBody = init && init.body\n ? base64Encode(\n new Uint8Array(await (new Response(init.body)).arrayBuffer()),\n )\n : undefined;\n const r = await sandboxFetch(\n reqInfo,\n init && {\n method: init.method,\n headers: init.headers as Record,\n base64Body: encodedBody,\n },\n );\n // Casting the response to \"any\" for now, since of weird Deno typing\n return new Response(\n (r.base64Body ? base64Decode(r.base64Body) : null) as any,\n {\n status: r.status,\n headers: r.headers,\n },\n );\n };\n}\n\nif (runningAsWebWorker) {\n monkeyPatchFetch();\n}\n", "import { syscall } from \"../syscall.ts\";\nimport type { FilterOption, UploadFile } from \"../types/client.ts\";\nimport type { Path, Ref } from \"../lib/ref.ts\";\nimport type { PageMeta } from \"../types/index.ts\";\n\n/**\n * Exposes various editor utilities.\n * Important: These syscalls are only available in the client.\n * @module\n */\n\n/**\n * Returns the name of the page or document currently open in the editor.\n * @returns the current page name\n */\nexport function getCurrentPage(): Promise {\n return syscall(\"editor.getCurrentPage\");\n}\n\n/**\n * Returns the meta data of the page or document currently open in the editor.\n * @returns the current page meta data\n */\nexport function getCurrentPageMeta(): Promise {\n return syscall(\"editor.getCurrentPageMeta\");\n}\n\n/**\n * Returns the path of the page or document currently open in the editor.\n * @returns the current page path\n */\nexport function getCurrentPath(): Promise {\n return syscall(\"editor.getCurrentPath\");\n}\n\n/**\n * Returns the names of the pages that have been recently opened\n * @returns the names of the recently opened pages\n */\nexport function getRecentlyOpenedPages(): Promise {\n return syscall(\"editor.getRecentlyOpenedPages\");\n}\n\n/**\n * Returns the name of the currently open editor.\n * @returns the name of the current editor\n */\nexport function getCurrentEditor(): Promise {\n return syscall(\"editor.getCurrentEditor\");\n}\n\n/**\n * Returns the full text of the currently open page\n */\nexport function getText(): Promise {\n return syscall(\"editor.getText\");\n}\n\n/**\n * This updates the editor text, but in a minimal-diff way:\n * it compares the current editor text with the new text, and only sends the changes to the editor, thereby preserving cursor location\n */\nexport function setText(\n newText: string,\n isolateHistory = false,\n): Promise {\n return syscall(\"editor.setText\", newText, isolateHistory);\n}\n\n/**\n * Returns the position (in # of characters from the beginning of the file) of the cursor in the editor\n */\nexport function getCursor(): Promise {\n return syscall(\"editor.getCursor\");\n}\n\n/**\n * Returns the line number and column number of the cursor in the editor\n */\nexport function getSelection(): Promise<\n { from: number; to: number; text: string }\n> {\n return syscall(\"editor.getSelection\");\n}\n\n/**\n * Sets the position of the cursor in the editor\n * @param from the start position of the selection\n * @param to the end position of the selection\n */\nexport function setSelection(from: number, to: number): Promise {\n return syscall(\"editor.setSelection\", from, to);\n}\n\n/**\n * Invoke a client command by name\n * Note: only available on the client\n * @param name name of the command\n * @param args arguments to pass to the command\n */\nexport function invokeCommand(name: string, args?: string[]): Promise {\n return syscall(\"editor.invokeCommand\", name, args);\n}\n\n/**\n * Forces a save of the current page\n */\nexport function save(): Promise {\n return syscall(\"editor.save\");\n}\n\n/**\n * Navigates to the specified page reference\n * @param pageRef the page reference to navigate to\n * @param replaceState whether to replace the current history state in the browser history\n * @param newWindow whether to open the page in a new window\n */\nexport function navigate(\n ref: Ref | string,\n replaceState = false,\n newWindow = false,\n): Promise {\n return syscall(\"editor.navigate\", ref, replaceState, newWindow);\n}\n\n/**\n * Opens the page navigator\n * @param mode the mode to open the navigator in\n */\nexport function openPageNavigator(\n mode: \"page\" | \"meta\" | \"document\" | \"all\" = \"page\",\n): Promise {\n return syscall(\"editor.openPageNavigator\", mode);\n}\n\n/**\n * Opens the command palette\n */\nexport function openCommandPalette(): Promise {\n return syscall(\"editor.openCommandPalette\");\n}\n\n/**\n * Force reloads the current page\n */\nexport function reloadPage(): Promise {\n return syscall(\"editor.reloadPage\");\n}\n\n/**\n * Force reloads the browser UI\n */\nexport function reloadUI(): Promise {\n return syscall(\"editor.reloadUI\");\n}\n\n/**\n * Rebuilds the editor state to ensure the dispatch updates the state.\n */\nexport function rebuildEditorState(): Promise {\n return syscall(\"editor.rebuildEditorState\");\n}\n\n/**\n * Reloads the config and commands, also in the server\n */\nexport function reloadConfigAndCommands(): Promise {\n return syscall(\"editor.reloadConfigAndCommands\");\n}\n\n/**\n * Opens the specified URL in the browser\n * @param url the URL to open\n * @param existingWindow whether to open the URL in an existing window\n */\nexport function openUrl(url: string, existingWindow = false): Promise {\n return syscall(\"editor.openUrl\", url, existingWindow);\n}\n\nexport function newWindow(): Promise {\n return syscall(\"editor.newWindow\");\n}\n\n/**\n * This is calling the `go()` method from the History Web API.\n * @param delta Position in history to move to relative to the current page,\n * where a negative value moves backwards, and positive forwards\n */\nexport function goHistory(delta: number): Promise {\n return syscall(\"editor.goHistory\", delta);\n}\n\n/**\n * Force the client to download the file in dataUrl with filename as file name\n * @param filename the name of the file to download\n * @param dataUrl the dataUrl of the file to download\n */\nexport function downloadFile(filename: string, dataUrl: string): Promise {\n return syscall(\"editor.downloadFile\", filename, dataUrl);\n}\n\n/**\n * Triggers the browser's native file upload dialog/popup\n * @param accept the file types to accept\n * @param capture the capture mode for the file input\n */\nexport function uploadFile(\n accept?: string,\n capture?: string,\n): Promise {\n return syscall(\"editor.uploadFile\", accept, capture);\n}\n\n/**\n * Shows a flash notification to the user (top right corner)\n * @param message the message to show\n * @param type the type of notification to show\n */\nexport function flashNotification(\n message: string,\n type: \"info\" | \"error\" = \"info\",\n): Promise {\n return syscall(\"editor.flashNotification\", message, type);\n}\n\n/**\n * Exposes a filter box UI (similar to the page navigator and command palette)\n * @param label the label to show left of the input box\n * @param options the options to show and to filter on\n * @param helpText the help text to show below the input box\n * @param placeHolder the placeholder text to show in the input box\n */\nexport function filterBox(\n label: string,\n options: FilterOption[],\n helpText = \"\",\n placeHolder = \"\",\n): Promise {\n return syscall(\"editor.filterBox\", label, options, helpText, placeHolder);\n}\n\n/**\n * Shows a panel in the editor\n * @param id the location of the panel to show\n * @param mode the mode or \"size\" of the panel\n * @param html the html content of the panel\n * @param script the script content of the panel\n */\nexport function showPanel(\n id: \"lhs\" | \"rhs\" | \"bhs\" | \"modal\",\n mode: number,\n html: string,\n script = \"\",\n): Promise {\n return syscall(\"editor.showPanel\", id, mode, html, script);\n}\n\n/**\n * Hides a panel in the editor\n * @param id the location of the panel to hide\n */\nexport function hidePanel(\n id: \"lhs\" | \"rhs\" | \"bhs\" | \"modal\",\n): Promise {\n return syscall(\"editor.hidePanel\", id);\n}\n\nexport function showProgress(\n progressPercentage?: number,\n progressType?: string,\n): Promise {\n return syscall(\"editor.showProgress\", progressPercentage, progressType);\n}\n\n/**\n * Insert text at the specified position into the editor\n * @param text the text to insert\n * @param pos\n */\nexport function insertAtPos(text: string, pos: number): Promise {\n return syscall(\"editor.insertAtPos\", text, pos);\n}\n\n/**\n * Replace the text in the specified range in the editor\n * @param from the start position of the range\n * @param to the end position of the range\n * @param text the text to replace with\n */\nexport function replaceRange(\n from: number,\n to: number,\n text: string,\n): Promise {\n return syscall(\"editor.replaceRange\", from, to, text);\n}\n\n/**\n * Move the cursor to the specified position in the editor\n * @param pos the position to move the cursor to\n * @param center whether to center the cursor in the editor after moving\n */\nexport function moveCursor(pos: number, center = false): Promise {\n return syscall(\"editor.moveCursor\", pos, center);\n}\n\n/**\n * Move the cursor to the specified line and column in the editor\n * @param line the line number to move the cursor to\n * @param column the column number to move the cursor to\n * @param center whether to center the cursor in the editor after moving\n */\nexport function moveCursorToLine(\n line: number,\n column = 1,\n center = false,\n): Promise {\n return syscall(\"editor.moveCursorToLine\", line, column, center);\n}\n\n/**\n * Insert text at the cursor position in the editor\n * @param text the text to insert\n */\nexport function insertAtCursor(\n text: string,\n scrollIntoView = false,\n cursorPlaceHolder = false,\n): Promise {\n return syscall(\n \"editor.insertAtCursor\",\n text,\n scrollIntoView,\n cursorPlaceHolder,\n );\n}\n\n/**\n * Dispatch a CodeMirror transaction: https://codemirror.net/docs/ref/#state.Transaction\n */\nexport function dispatch(change: any): Promise {\n return syscall(\"editor.dispatch\", change);\n}\n\n/**\n * Prompt the user for text input\n * @param message the message to show in the prompt\n * @param defaultValue a default value pre-filled in the prompt\n * @returns\n */\nexport function prompt(\n message: string,\n defaultValue = \"\",\n): Promise {\n return syscall(\"editor.prompt\", message, defaultValue);\n}\n\n/**\n * Prompt the user for confirmation\n * @param message the message to show in the confirmation dialog\n * @returns\n */\nexport function confirm(\n message: string,\n): Promise {\n return syscall(\"editor.confirm\", message);\n}\n\n/**\n * Prompt the user for confirmation\n * @param message the message to show in the confirmation dialog\n * @returns\n */\nexport function alert(\n message: string,\n): Promise {\n return syscall(\"editor.alert\", message);\n}\n\n/**\n * Get the value of a UI option\n * @param key the key of the UI option to get\n * @returns\n */\nexport function getUiOption(key: string): Promise {\n return syscall(\"editor.getUiOption\", key);\n}\n\n/**\n * Set the value of a UI option\n * @param key the key of the UI option to set\n * @param value the value to set the UI option to\n */\nexport function setUiOption(key: string, value: any): Promise {\n return syscall(\"editor.setUiOption\", key, value);\n}\n\n/**\n * Perform a fold at the current cursor position\n */\nexport function fold(): Promise {\n return syscall(\"editor.fold\");\n}\n\n/**\n * Perform an unfold at the current cursor position\n */\nexport function unfold(): Promise {\n return syscall(\"editor.unfold\");\n}\n\n/**\n * Toggle the fold at the current cursor position\n */\nexport function toggleFold(): Promise {\n return syscall(\"editor.toggleFold\");\n}\n\n/**\n * Fold all code blocks in the editor\n */\nexport function foldAll(): Promise {\n return syscall(\"editor.foldAll\");\n}\n\n/**\n * Unfold all code blocks in the editor\n */\nexport function unfoldAll(): Promise {\n return syscall(\"editor.unfoldAll\");\n}\n\n/**\n * Perform an undo operation of the last edit in the editor\n */\nexport function undo(): Promise {\n return syscall(\"editor.undo\");\n}\n\n/**\n * Perform a redo operation of the last undo in the editor\n */\nexport function redo(): Promise {\n return syscall(\"editor.redo\");\n}\n\n/**\n * Open the editor's native search panel\n */\nexport function openSearchPanel(): Promise {\n return syscall(\"editor.openSearchPanel\");\n}\n\n/**\n * Copy the specified data to the clipboard\n * @param data the data to copy\n */\nexport function copyToClipboard(data: string | Blob): Promise {\n return syscall(\"editor.copyToClipboard\", data);\n}\n\n/**\n * Delete the current line in the editor\n */\nexport function deleteLine(): Promise {\n return syscall(\"editor.deleteLine\");\n}\n\n/**\n * Comment or uncomment the current line in the editor\n */\nexport function toggleComment(): Promise {\n return syscall(\"editor.toggleComment\");\n}\n\nexport function moveLineUp(): Promise {\n return syscall(\"editor.moveLineUp\");\n}\n\nexport function moveLineDown(): Promise {\n return syscall(\"editor.moveLineDown\");\n}\n\n// Vim-mode specific syscalls\n\n/**\n * Execute a Vim ex command\n * @param exCommand the ex command to execute\n */\nexport function vimEx(exCommand: string): Promise {\n return syscall(\"editor.vimEx\", exCommand);\n}\n\n/**\n * Execute a vim config using the CodeMirror Vim Mode API\n */\nexport function configureVimMode(): Promise {\n return syscall(\"editor.configureVimMode\");\n}\n\n// Document editor specific syscalls\n\n/**\n * Send a message - or event if you will - to the currently used document editor\n * @param type the message type, which can be listend to\n * @param data data attached to the message\n */\nexport function sendMessage(type: string, data?: any): Promise {\n return syscall(\"editor.sendMessage\", type, data);\n}\n\n/**\n * Check if the editor is running on a mobile device\n */\nexport function isMobile(): Promise {\n return syscall(\"editor.isMobile\");\n}\n", "// declare global {\n// function syscall(name: string, ...args: any[]): Promise;\n// }\n\n// This is the case when running tests only, so giving it a dummy syscall function\nif (typeof self === \"undefined\") {\n (self as any) = {\n syscall: () => {\n throw new Error(\"Not implemented here\");\n },\n };\n}\n\n// Late binding syscall\nexport function syscall(name: string, ...args: any[]): Promise {\n return (globalThis as any).syscall(name, ...args);\n}\n", "import { syscall } from \"../syscall.ts\";\n\n/**\n * Implements a very simple (string) key value store for the client.\n * Generally should only be used to set some client-specific states, such as preferences.\n * @module\n */\n\n/**\n * Sets a value in the client store.\n * @param key the key to set\n * @param value the value to set\n */\nexport function set(key: string, value: any): Promise {\n return syscall(\"clientStore.set\", key, value);\n}\n\n/**\n * Gets a value from the client store.\n * @param key the key to get\n * @returns the value associated with the key\n */\nexport function get(key: string): Promise {\n return syscall(\"clientStore.get\", key);\n}\n\n/**\n * Deletes a value from the client store.\n * @param key the key to delete\n */\nexport function del(key: string): Promise {\n return syscall(\"clientStore.delete\", key);\n}\n", "export function base64Decode(s: string): Uint8Array {\n const binString = atob(s);\n const len = binString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binString.charCodeAt(i);\n }\n return bytes;\n}\n\nexport function base64Encode(buffer: Uint8Array | string): string {\n if (typeof buffer === \"string\") {\n buffer = new TextEncoder().encode(buffer);\n }\n let binary = \"\";\n const len = buffer.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(buffer[i]);\n }\n return btoa(binary);\n}\n\nexport function base64EncodedDataUrl(\n mimeType: string,\n buffer: Uint8Array,\n): string {\n return `data:${mimeType};base64,${base64Encode(buffer)}`;\n}\n\nexport function base64DecodeDataUrl(dataUrl: string): Uint8Array {\n const b64Encoded = dataUrl.split(\",\", 2)[1];\n return base64Decode(b64Encoded);\n}\n\n/**\n * Perform sha256 hash using the browser's crypto APIs\n * Note: this will only work over HTTPS\n * @param message\n */\nexport async function hashSHA256(\n message: string | Uint8Array,\n): Promise {\n // Transform the string into an ArrayBuffer\n const encoder = new TextEncoder();\n const data: Uint8Array = typeof message === \"string\"\n ? encoder.encode(message)\n : message;\n\n // Generate the hash\n const hashBuffer = await globalThis.crypto.subtle.digest(\n \"SHA-256\",\n data as BufferSource,\n );\n\n // Transform the hash into a hex string\n return Array.from(new Uint8Array(hashBuffer)).map((b) =>\n b.toString(16).padStart(2, \"0\")\n ).join(\"\");\n}\n\n/**\n * To avoid database clashes based on space folder path name, base URLs and encryption keys we derive\n * a database name from a hash of all these combined together\n */\nexport async function deriveDbName(\n type: \"data\" | \"files\",\n spaceFolderPath: string,\n baseURI: string,\n encryptionKey?: CryptoKey,\n): Promise {\n let keyPart = \"\";\n if (encryptionKey) {\n keyPart = await exportKey(encryptionKey);\n }\n const spaceHash = await hashSHA256(\n `${spaceFolderPath}:${baseURI}:${keyPart}`,\n );\n return `sb_${type}_${spaceHash}`;\n}\n\n// Fixed counter for AES-CTR all zeroes, for determinism\nconst fixedCounter = new Uint8Array(16);\n\nexport async function encryptStringDeterministic(\n key: CryptoKey,\n clearText: string,\n): Promise {\n const encrypted = await crypto.subtle.encrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n new TextEncoder().encode(clearText),\n );\n return base64Encode(new Uint8Array(encrypted));\n}\n\nexport async function decryptStringDeterministic(\n key: CryptoKey,\n cipherText: string,\n): Promise {\n const decrypted = await crypto.subtle.decrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n base64Decode(cipherText) as BufferSource,\n );\n return new TextDecoder().decode(decrypted);\n}\n\n// Encrypt using AES-GCM with random IV; output = IV + ciphertext\nexport async function encryptAesGcm(\n key: CryptoKey,\n data: Uint8Array,\n): Promise {\n const iv = crypto.getRandomValues(new Uint8Array(12)); // 96-bit IV recommended for GCM\n const encryptedBuffer = await crypto.subtle.encrypt(\n { name: \"AES-GCM\", iv },\n key,\n data as BufferSource,\n );\n const encrypted = new Uint8Array(encryptedBuffer);\n\n // Prepend IV to ciphertext\n const result = new Uint8Array(iv.length + encrypted.length);\n result.set(iv, 0);\n result.set(encrypted, iv.length);\n return result;\n}\n\n// Decrypt using AES-GCM assuming input format IV + ciphertext\nexport async function decryptAesGcm(\n key: CryptoKey,\n encryptedData: Uint8Array,\n): Promise {\n const iv = encryptedData.slice(0, 12); // extract IV (first 12 bytes)\n const ciphertext = encryptedData.slice(12);\n const decryptedBuffer = await crypto.subtle.decrypt(\n { name: \"AES-GCM\", iv },\n key,\n ciphertext,\n );\n return new Uint8Array(decryptedBuffer);\n}\n\nexport async function deriveCTRKeyFromPassword(\n password: string,\n salt: Uint8Array,\n): Promise {\n // Encode password to ArrayBuffer\n const passwordBytes = new TextEncoder().encode(password);\n\n // Import password as a CryptoKey\n const baseKey = await crypto.subtle.importKey(\n \"raw\",\n passwordBytes,\n { name: \"PBKDF2\" },\n false,\n [\"deriveBits\", \"deriveKey\"],\n );\n\n return crypto.subtle.deriveKey(\n {\n name: \"PBKDF2\",\n salt: salt as BufferSource,\n iterations: 100000,\n hash: \"SHA-256\",\n },\n baseKey,\n {\n name: \"AES-CTR\",\n length: 256,\n },\n true, // extractable\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport function importKey(b64EncodedKey: string): Promise {\n return crypto.subtle.importKey(\n \"raw\",\n base64Decode(b64EncodedKey) as BufferSource,\n { name: \"AES-CTR\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport async function exportKey(ctrKey: CryptoKey): Promise {\n const key = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return base64Encode(new Uint8Array(key));\n}\n\nexport async function deriveGCMKeyFromCTR(\n ctrKey: CryptoKey,\n): Promise {\n const rawKey = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return crypto.subtle.importKey(\n \"raw\",\n rawKey,\n { name: \"AES-GCM\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n", "import type { LuaCollectionQuery } from \"../../client/space_lua/query_collection.ts\";\nimport { syscall } from \"../syscall.ts\";\n\nimport type { KV, KvKey, KvQuery } from \"../types/datastore.ts\";\n\n/**\n * Exposes a key value story with query capabilities.\n * @module\n */\n\n/**\n * Sets a value in the key value store.\n * @param key the key to set\n * @param value the value to set\n */\nexport function set(key: KvKey, value: any): Promise {\n return syscall(\"datastore.set\", key, value);\n}\n\n/**\n * Sets multiple values in the key value store.\n * @param kvs the key value pairs to set\n */\nexport function batchSet(kvs: KV[]): Promise {\n return syscall(\"datastore.batchSet\", kvs);\n}\n\n/**\n * Gets a value from the key value store.\n * @param key the key to get\n * @returns the value associated with the key (or undefined if not found)\n */\nexport function get(key: KvKey): Promise {\n return syscall(\"datastore.get\", key);\n}\n\n/**\n * Gets multiple values from the key value store.\n * @param keys the keys to get\n * @returns the values associated with the keys (or undefined if not found)\n */\nexport function batchGet(keys: KvKey[]): Promise<(any | undefined)[]> {\n return syscall(\"datastore.batchGet\", keys);\n}\n\n/**\n * Deletes a value from the key value store.\n * @param key the key to delete\n */\nexport function del(key: KvKey): Promise {\n return syscall(\"datastore.delete\", key);\n}\n\n/**\n * Deletes multiple values from the key value store.\n * @param keys the keys to delete\n */\nexport function batchDel(keys: KvKey[]): Promise {\n return syscall(\"datastore.batchDelete\", keys);\n}\n\nexport function query(options: KvQuery): Promise {\n return syscall(\"datastore.query\", options);\n}\n\nexport function queryLua(\n prefix: string[],\n query: LuaCollectionQuery,\n scopeVariables?: Record,\n): Promise {\n return syscall(\"datastore.queryLua\", prefix, query, scopeVariables);\n}\n\nexport function batchDeletePrefix(prefix: KvKey): Promise {\n return syscall(\"datastore.batchDeletePrefix\", prefix);\n}\n\n/**\n * Queries the key value store and deletes all matching items\n * @param query the query to run\n * @param variables the variables that can be referenced inside the query\n */\nexport function queryDelete(\n query: KvQuery,\n variables?: Record,\n): Promise {\n return syscall(\"datastore.queryDelete\", query, variables);\n}\n\n/**\n * Lists all functions currently defined and available for use in queries\n * @returns the names of all functions in the key value store\n */\nexport function listFunctions(): Promise {\n return syscall(\"datastore.listFunctions\");\n}\n", "import { syscall } from \"../syscall.ts\";\n\n/**\n * Gets a config value by path, with support for dot notation.\n * @param path The path to get the value from\n * @param defaultValue The default value to return if the path doesn't exist\n * @returns The value at the path, or the default value\n */\nexport function get(path: string, defaultValue: T): Promise {\n return syscall(\"config.get\", path, defaultValue);\n}\n\n/**\n * Sets a config value by path, with support for dot notation.\n * @param path The path to set the value at\n * @param value The value to set\n */\nexport function set(path: string, value: T): Promise;\n/**\n * Sets multiple config values at once.\n * @param values An object containing key-value pairs to set\n */\nexport function set(values: Record): Promise;\nexport function set(\n pathOrValues: string | Record,\n value?: T,\n): Promise {\n return syscall(\"config.set\", pathOrValues, value);\n}\n\n/**\n * Inserts a config value into an array\n */\nexport function insert(\n path: string | string[],\n value: T,\n): Promise {\n return syscall(\"config.insert\", path, value);\n}\n\n/**\n * Checks if a config path exists.\n * @param path The path to check\n * @returns True if the path exists, false otherwise\n */\nexport function has(path: string): Promise {\n return syscall(\"config.has\", path);\n}\n\n/**\n * Defines a JSON schema for a configuration key.\n * The schema will be used to validate values when setting this key.\n * @param key The configuration key to define a schema for\n * @param schema The JSON schema to validate against\n */\nexport function define(key: string, schema: any): Promise {\n return syscall(\"config.define\", key, schema);\n}\n", "import type { LuaCollectionQuery } from \"../../client/space_lua/query_collection.ts\";\nimport { syscall } from \"../syscall.ts\";\nimport type { ObjectValue } from \"../types/index.ts\";\n\n/**\n * Exposes the SilverBullet object indexing system\n * @module\n */\n\n/**\n * Indexes objects for a specific page\n * @param page - The page identifier where objects will be indexed\n * @param objects - Array of objects to be indexed\n * @returns Promise that resolves when indexing is complete\n */\nexport function indexObjects(\n page: string,\n objects: ObjectValue[],\n): Promise {\n return syscall(\"index.indexObjects\", page, objects);\n}\n\n/**\n * Queries objects using a Lua-based collection query\n * @param tag - The tag to filter objects by\n * @param query - Lua query parameters to filter objects\n * @param scopedVariables - Optional variables to be used in the Lua query\n * @returns Promise that resolves with an array of matching objects\n */\nexport function queryLuaObjects(\n tag: string,\n query: LuaCollectionQuery,\n scopedVariables?: Record,\n ttlSecs?: number,\n): Promise[]> {\n return syscall(\"index.queryLuaObjects\", tag, query, scopedVariables, ttlSecs);\n}\n\n/**\n * Retrieves a specific object by its reference\n * @param page - The page identifier where the object is located\n * @param tag - The tag of the object\n * @param ref - The reference identifier of the object\n * @returns Promise that resolves with the matching object or undefined if not found\n */\nexport function getObjectByRef(\n page: string,\n tag: string,\n ref: string,\n): Promise | undefined> {\n return syscall(\"index.getObjectByRef\", page, tag, ref);\n}\n\n/**\n * Ensures that the full index is built and up-to-date\n */\nexport function ensureFullIndex(): Promise {\n return syscall(\"index.ensureFullIndex\");\n}\n", "var g=t=>Object.fromEntries(Object.entries(t).map(([e,r])=>[r,e])),I=t=>Object.keys(t);var Ce={action:\"ACTION\",description:\"DESCRIPTION\",duration:\"DURATION\",repeat:\"REPEAT\",summary:\"SUMMARY\",trigger:\"TRIGGER\",attachments:\"ATTACH\",attendees:\"ATTENDEE\"},$e=g(Ce),hn=I($e),Kn=I(Ce);var Ne={method:\"METHOD\",prodId:\"PRODID\",version:\"VERSION\",name:\"X-WR-CALNAME\"},Ze=g(Ne),Yn=I(Ze),Bn=I(Ne);var ve={alarms:\"ALARM\",categories:\"CATEGORIES\",created:\"CREATED\",description:\"DESCRIPTION\",lastModified:\"LAST-MODIFIED\",location:\"LOCATION\",exceptionDates:\"EXDATE\",recurrenceRule:\"RRULE\",stamp:\"DTSTAMP\",start:\"DTSTART\",summary:\"SUMMARY\",uid:\"UID\",timeTransparent:\"TRANSP\",url:\"URL\",end:\"DTEND\",duration:\"DURATION\",geo:\"GEO\",class:\"CLASS\",organizer:\"ORGANIZER\",priority:\"PRIORITY\",sequence:\"SEQUENCE\",status:\"STATUS\",attach:\"ATTACH\",recurrenceId:\"RECURRENCE-ID\",attendees:\"ATTENDEE\",comment:\"COMMENT\"},Xe=g(ve),Un=I(Xe),Wn=I(ve);var Ae={id:\"TZID\",lastModified:\"LAST-MODIFIED\",url:\"TZURL\"},Qe=g(Ae),wn=I(Qe),Hn=I(Ae);var be={comment:\"COMMENT\",name:\"TZNAME\",offsetFrom:\"TZOFFSETFROM\",offsetTo:\"TZOFFSETTO\",recurrenceDate:\"RDATE\",recurrenceRule:\"RRULE\",start:\"DTSTART\"},et=g(be),Zn=I(et),Xn=I(be);var xt={byDay:\"BYDAY\",byHour:\"BYHOUR\",byMinute:\"BYMINUTE\",byMonth:\"BYMONTH\",byMonthday:\"BYMONTHDAY\",bySecond:\"BYSECOND\",bySetPos:\"BYSETPOS\",byWeekNo:\"BYWEEKNO\",byYearday:\"BYYEARDAY\",count:\"COUNT\",frequency:\"FREQ\",interval:\"INTERVAL\",until:\"UNTIL\",workweekStart:\"WKST\"},tt=g(xt),to=I(tt),ro=I(xt);var Ve={categories:\"CATEGORIES\",created:\"CREATED\",description:\"DESCRIPTION\",lastModified:\"LAST-MODIFIED\",location:\"LOCATION\",exceptionDates:\"EXDATE\",recurrenceRule:\"RRULE\",stamp:\"DTSTAMP\",start:\"DTSTART\",summary:\"SUMMARY\",uid:\"UID\",url:\"URL\",duration:\"DURATION\",geo:\"GEO\",class:\"CLASS\",organizer:\"ORGANIZER\",priority:\"PRIORITY\",sequence:\"SEQUENCE\",status:\"STATUS\",attach:\"ATTACH\",recurrenceId:\"RECURRENCE-ID\",attendees:\"ATTENDEE\",comment:\"COMMENT\",completed:\"COMPLETED\",due:\"DUE\",percentComplete:\"PERCENT-COMPLETE\"},rt=g(Ve),ao=I(rt),so=I(Ve);var Me={categories:\"CATEGORIES\",created:\"CREATED\",description:\"DESCRIPTION\",lastModified:\"LAST-MODIFIED\",exceptionDates:\"EXDATE\",recurrenceRule:\"RRULE\",stamp:\"DTSTAMP\",start:\"DTSTART\",summary:\"SUMMARY\",uid:\"UID\",url:\"URL\",geo:\"GEO\",class:\"CLASS\",organizer:\"ORGANIZER\",sequence:\"SEQUENCE\",status:\"STATUS\",attach:\"ATTACH\",recurrenceId:\"RECURRENCE-ID\",attendees:\"ATTENDEE\",comment:\"COMMENT\"},nt=g(Me),io=I(nt),po=I(Me);var ze={stamp:\"DTSTAMP\",start:\"DTSTART\",uid:\"UID\",url:\"URL\",organizer:\"ORGANIZER\",attendees:\"ATTENDEE\",comment:\"COMMENT\",end:\"DTEND\",freeBusy:\"FREEBUSY\"},ot=g(ze),yo=I(ot),lo=I(ze);var at=\"BEGIN\",st=\"END\",xe=\"VCALENDAR\",X=\"VTIMEZONE\",ct=\"STANDARD\",mt=\"DAYLIGHT\",Q=\"VEVENT\",ee=\"VALARM\",te=\"VTODO\",re=\"VJOURNAL\",ne=\"VFREEBUSY\",Io=[xe,X,ct,mt,Q,ee,te,re,ne];var it=t=>new RegExp(`${at}:${t}([\\\\s\\\\S]*?)${st}:${t}`,\"g\"),St=t=>new RegExp(`${at}:${t}|${st}:${t}`,\"g\");var Dt=/\\r\\n/,Se=/\\r\\n|\\r|\\n/,Le=`\\r\n`,pt=`\n`,gt=\":\",b=\",\",Ot='\"',oe=\";\",Vo=\" \",De=\"=\",ut=75;var _e=t=>`${t}${Le}`,f=(t,e,r)=>r?e==null?\"\":_e(`${t};${r}:${e}`):_e(`${t}:${e}`),Rt=t=>_e(`BEGIN:${t}`),Ct=t=>_e(`END:${t}`);var S=t=>{if(!(t.length<1))return`${t.map(e=>`${e.key}${De}${e.value}`).join(oe)}`};var Nt=t=>{if(t.type===\"uri\"){let e=S([t.formatType&&{key:\"FMTTYPE\",value:t.formatType}].filter(r=>!!r));return f(\"ATTACH\",t.url,e)}if(t.type===\"binary\"){let e=S([t.value&&{key:\"VALUE\",value:t.value},t.encoding&&{key:\"ENCODING\",value:t.encoding}].filter(r=>!!r));return f(\"ATTACH\",t.binary,e)}throw Error(`IcsAttachment has no type! ${JSON.stringify(t)}`)};var k=(t,e)=>e?`\"MAILTO:${t}\"`:`MAILTO:${t}`;var V=(t,e)=>{let r=S([t.dir&&{key:\"DIR\",value:`\"${t.dir}\"`},t.delegatedFrom&&{key:\"DELEGATED-FROM\",value:k(t.delegatedFrom,!0)},t.member&&{key:\"MEMBER\",value:k(t.member,!0)},t.role&&{key:\"ROLE\",value:t.role},t.name&&{key:\"CN\",value:t.name},t.partstat&&{key:\"PARTSTAT\",value:t.partstat},t.sentBy&&{key:\"SENT-BY\",value:k(t.sentBy,!0)},t.rsvp!==void 0&&(t.rsvp===!0||t.rsvp===!1)&&{key:\"RSVP\",value:t.rsvp===!0?\"TRUE\":\"FALSE\"}].filter(n=>!!n));return f(e,k(t.email),r)};var M=t=>{if(Object.values(t).filter(r=>typeof r==\"number\").length===0)return;let e=\"\";return t.before&&(e+=\"-\"),e+=\"P\",t.weeks!==void 0&&(e+=`${t.weeks}W`),t.days!==void 0&&(e+=`${t.days}D`),(t.hours!==void 0||t.minutes!==void 0||t.seconds!==void 0)&&(e+=\"T\",t.hours!==void 0&&(e+=`${t.hours}H`),t.minutes!==void 0&&(e+=`${t.minutes}M`),t.seconds!==void 0&&(e+=`${t.seconds}S`)),e};var mn=Math.pow(10,8)*24*60*60*1e3,qo=-mn,vt=6048e5,At=864e5,ce=6e4,me=36e5;var pn=3600;var bt=pn*24,$o=bt*7,un=bt*365.2425,dn=un/12,Zo=dn*3,dt=Symbol.for(\"constructDateFrom\");function x(t,e){return typeof t==\"function\"?t(e):t&&typeof t==\"object\"&&dt in t?t[dt](e):t instanceof Date?new t.constructor(e):new Date(e)}function i(t,e){return x(e||t,t)}function Y(t,e,r){let n=i(t,r==null?void 0:r.in);return isNaN(e)?x((r==null?void 0:r.in)||t,NaN):(e&&n.setDate(n.getDate()+e),n)}function he(t,e,r){let n=i(t,r==null?void 0:r.in);if(isNaN(e))return x((r==null?void 0:r.in)||t,NaN);if(!e)return n;let o=n.getDate(),s=x((r==null?void 0:r.in)||t,n.getTime());s.setMonth(n.getMonth()+e+1,0);let a=s.getDate();return o>=a?s:(n.setFullYear(s.getFullYear(),s.getMonth(),o),n)}function z(t,e,r){return x((r==null?void 0:r.in)||t,+i(t)+e)}function Ke(t,e,r){return z(t,e*me,r)}var fn={};function B(){return fn}function ae(t,e){var c,m,p,d;let r=B(),n=(e==null?void 0:e.weekStartsOn)??((m=(c=e==null?void 0:e.locale)==null?void 0:c.options)==null?void 0:m.weekStartsOn)??r.weekStartsOn??((d=(p=r.locale)==null?void 0:p.options)==null?void 0:d.weekStartsOn)??0,o=i(t,e==null?void 0:e.in),s=o.getDay(),a=(stypeof n==\"object\"));return e.map(r)}function ge(t,e){let r=i(t,e==null?void 0:e.in);return r.setHours(0,0,0,0),r}function Vt(t,e,r){let[n,o]=F(r==null?void 0:r.in,t,e),s=ge(n),a=ge(o),c=+s-ft(s),m=+a-ft(a);return Math.round((c-m)/At)}function ie(t,e,r){let n=i(t,r==null?void 0:r.in);return n.setTime(n.getTime()+e*ce),n}function Pe(t,e,r){return z(t,e*1e3,r)}function j(t,e,r){return Y(t,e*7,r)}function ke(t,e,r){return he(t,e*12,r)}function pe(t,e){let r=+i(t)-+i(e);return r<0?-1:r>0?1:r}function Ye(t){return t instanceof Date||typeof t==\"object\"&&Object.prototype.toString.call(t)===\"[object Date]\"}function Be(t,e,r){let[n,o]=F(r==null?void 0:r.in,t,e),s=Mt(n,o),a=Math.abs(Vt(n,o));n.setDate(n.getDate()-s*a);let c=+(Mt(n,o)===-s),m=s*(a-c);return m===0?0:m}function Mt(t,e){let r=t.getFullYear()-e.getFullYear()||t.getMonth()-e.getMonth()||t.getDate()-e.getDate()||t.getHours()-e.getHours()||t.getMinutes()-e.getMinutes()||t.getSeconds()-e.getSeconds()||t.getMilliseconds()-e.getMilliseconds();return r<0?-1:r>0?1:r}function U(t){return e=>{let n=(t?Math[t]:Math.trunc)(e);return n===0?0:n}}function zt(t,e,r){let[n,o]=F(r==null?void 0:r.in,t,e),s=(+n-+o)/me;return U(r==null?void 0:r.roundingMethod)(s)}function Fe(t,e){return+i(t)-+i(e)}function Lt(t,e,r){let n=Fe(t,e)/ce;return U(r==null?void 0:r.roundingMethod)(n)}function yt(t,e){let r=i(t,e==null?void 0:e.in),n=r.getMonth();return r.setFullYear(r.getFullYear(),n+1,0),r.setHours(23,59,59,999),r}function _t(t,e,r){let n=Fe(t,e)/1e3;return U(r==null?void 0:r.roundingMethod)(n)}function ht(t,e,r){let n=Be(t,e,r)/7;return U(r==null?void 0:r.roundingMethod)(n)}function Kt(t,e){let[r,n]=F(t,e.start,e.end);return{start:r,end:n}}function Pt(t,e){let{start:r,end:n}=Kt(e==null?void 0:e.in,t),o=+r>+n,s=o?+r:+n,a=o?n:r;a.setHours(0,0,0,0);let c=(e==null?void 0:e.step)??1;if(!c)return[];c<0&&(c=-c,o=!o);let m=[];for(;+a<=s;)m.push(x(r,a)),a.setDate(a.getDate()+c),a.setHours(0,0,0,0);return o?m.reverse():m}function lt(t,e){let r=i(t,e==null?void 0:e.in);return r.setDate(1),r.setHours(0,0,0,0),r}function kt(t,e){let r=i(t,e==null?void 0:e.in),n=r.getFullYear();return r.setFullYear(n+1,0,0),r.setHours(23,59,59,999),r}function Yt(t,e){let r=i(t,e==null?void 0:e.in);return r.setFullYear(r.getFullYear(),0,1),r.setHours(0,0,0,0),r}function Bt(t,e){var d,l,E,v;let r=i(t,e==null?void 0:e.in),n=r.getFullYear(),o=B(),s=(e==null?void 0:e.firstWeekContainsDate)??((l=(d=e==null?void 0:e.locale)==null?void 0:d.options)==null?void 0:l.firstWeekContainsDate)??o.firstWeekContainsDate??((v=(E=o.locale)==null?void 0:E.options)==null?void 0:v.firstWeekContainsDate)??1,a=x((e==null?void 0:e.in)||t,0);a.setFullYear(n+1,0,s),a.setHours(0,0,0,0);let c=ae(a,e),m=x((e==null?void 0:e.in)||t,0);m.setFullYear(n,0,s),m.setHours(0,0,0,0);let p=ae(m,e);return+r>=+c?n+1:+r>=+p?n:n-1}function Ft(t,e){var c,m,p,d;let r=B(),n=(e==null?void 0:e.firstWeekContainsDate)??((m=(c=e==null?void 0:e.locale)==null?void 0:c.options)==null?void 0:m.firstWeekContainsDate)??r.firstWeekContainsDate??((d=(p=r.locale)==null?void 0:p.options)==null?void 0:d.firstWeekContainsDate)??1,o=Bt(t,e),s=x((e==null?void 0:e.in)||t,0);return s.setFullYear(o,0,n),s.setHours(0,0,0,0),ae(s,e)}function jt(t,e){let r=i(t,e==null?void 0:e.in),n=+ae(r,e)-+Ft(r,e);return Math.round(n/vt)+1}function Oe(t,e){return i(t,e==null?void 0:e.in).getDay()}function je(t,e){let r=i(t,e==null?void 0:e.in),n=r.getFullYear(),o=r.getMonth(),s=x(r,0);return s.setFullYear(n,o+1,0),s.setHours(0,0,0,0),s.getDate()}function Ut(t,e){return i(t,e==null?void 0:e.in).getHours()}function Wt(t,e){return i(t,e==null?void 0:e.in).getMinutes()}function Ue(t,e){return i(t,e==null?void 0:e.in).getMonth()}function Gt(t){return i(t).getSeconds()}function Jt(t,e){return i(t,e==null?void 0:e.in).getFullYear()}function wt(t,e){return+i(t)==+i(e)}function Ht(t,e,r){let n=i(t,r==null?void 0:r.in),o=jt(n,r)-e;return n.setDate(n.getDate()-o*7),i(n,r==null?void 0:r.in)}function Re(t,e,r){var l,E,v,D;let n=B(),o=(r==null?void 0:r.weekStartsOn)??((E=(l=r==null?void 0:r.locale)==null?void 0:l.options)==null?void 0:E.weekStartsOn)??n.weekStartsOn??((D=(v=n.locale)==null?void 0:v.options)==null?void 0:D.weekStartsOn)??0,s=i(t,r==null?void 0:r.in),a=s.getDay(),m=(e%7+7)%7,p=7-o,d=e<0||e>6?e-(a+p)%7:(m+p)%7-(a+p)%7;return Y(s,d,r)}function We(t,e,r){let n=+i(t,r==null?void 0:r.in),[o,s]=[+i(e.start,r==null?void 0:r.in),+i(e.end,r==null?void 0:r.in)].sort((a,c)=>a-c);return n>=o&&n<=s}function qt(t){let e=t/me;return Math.trunc(e)}function $t(t){let e=t/ce;return Math.trunc(e)}function Zt(t,e,r){let n=i(t,r==null?void 0:r.in),o=n.getFullYear(),s=n.getDate(),a=x((r==null?void 0:r.in)||t,0);a.setFullYear(o,e,15),a.setHours(0,0,0,0);let c=je(a);return n.setMonth(e,Math.min(s,c)),n}function Xt(t,e,r){let n=i(t,r==null?void 0:r.in);return n.setDate(e),n}function Qt(t,e,r){let n=i(t,r==null?void 0:r.in);return n.setMonth(0),n.setDate(e),n}function er(t,e,r){let n=i(t,r==null?void 0:r.in);return n.setHours(e),n}function tr(t,e,r){let n=i(t,r==null?void 0:r.in);return n.setMinutes(e),n}function rr(t,e,r){let n=i(t,r==null?void 0:r.in);return n.setSeconds(e),n}function nr(t,e,r){return z(t,-e,r)}function or(t,e,r){return j(t,-e,r)}var Mc=(t,e)=>{let r=Math.abs(ht(e,t)),n=Math.abs(Be(e,t)),o=n-r*7,s=Math.abs(zt(e,t)),a=s-n*24,c=Math.abs(Lt(e,t)),m=c-s*60,d=Math.abs(_t(e,t))-c*60;return{before:t>e,weeks:r,days:o,hours:a,minutes:m,seconds:d}};var ar=(t,e)=>{let r=e.before?-1:1,n=(e.seconds||0)*r,o=(e.minutes||0)*r,s=(e.hours||0)*r,a=(e.days||0)*r,c=(e.weeks||0)*r;return j(Y(Ke(ie(Pe(t,n),o),s),a),c)};var Yc=t=>t.end?t.end.date:ar(t.start.date,t.duration);var Fc=[\"PUBLISH\"],jc=[\"2.0\"];var sr=[ct,mt];var Jc=[\"FREE\",\"BUSY\",\"BUSY-UNAVAILABLE\",\"BUSY-TENTATIVE\"];var om=[\"BASE64\"],am=[\"BINARY\"];var cm=[\"NEEDS-ACTION\",\"ACCEPTED\",\"DECLINED\",\"TENTATIVE\",\"DELEGATED\"];var im=[\"DATE\",\"DATE-TIME\"];var cr=[\"SECONDLY\",\"MINUTELY\",\"HOURLY\",\"DAILY\",\"WEEKLY\",\"MONTHLY\",\"YEARLY\"];var dm=[\"TENTATIVE\",\"CONFIRMED\",\"CANCELLED\"],fm=[\"NEEDS-ACTION\",\"COMPLETED\",\"IN-PROGRESS\",\"CANCELLED\"],ym=[\"DRAFT\",\"FINAL\",\"CANCELLED\"];var Tm=[\"START\",\"END\"];var Ge=[\"SU\",\"MO\",\"TU\",\"WE\",\"TH\",\"FR\",\"SA\"];var xm=[\"PRIVATE\",\"PUBLIC\",\"CONFIDENTIAL\"];var Dm=[\"TRANSPARENT\",\"OPAQUE\"];var ue=(t,e)=>e===void 0?!1:t>=e,mr=(t,{start:e,end:r},n)=>{if(ue(n.length,t.count))return;let o=t.frequency,s=t.interval||1;if(!o)return;let a=e;if(o===\"SECONDLY\"){for(;a{let o=r.map(({day:s,occurrence:a})=>({occurrence:a,day:Ge.indexOf(s)}));return t.frequency===\"YEARLY\"?t.byYearday||t.byMonthday?e.map(s=>s.filter(a=>o.find(({day:c})=>c===Oe(a)))):t.byWeekNo?e.map(s=>s.flatMap(a=>o.map(({day:c})=>Re(a,c,{weekStartsOn:n})))):t.byMonth?e.map(s=>s.flatMap(a=>o.flatMap(({day:c,occurrence:m})=>Tt(W(lt(a)),W(yt(a)),c,n,m)))):e.map(s=>s.flatMap(a=>o.flatMap(({day:c,occurrence:m})=>Tt(W(Yt(a)),W(kt(a)),c,n,m)))):t.frequency===\"MONTHLY\"?t.byMonthday?e.map(s=>s.filter(a=>o.find(({day:c})=>c===Oe(a)))):e.map(s=>s.flatMap(a=>o.flatMap(({day:c,occurrence:m})=>Tt(W(lt(a)),W(yt(a)),c,n,m)))):t.frequency===\"WEEKLY\"?e.map(s=>s.flatMap(a=>o.map(({day:c})=>Re(a,c,{weekStartsOn:n})))):e.map(s=>s.filter(a=>o.find(({day:c})=>c===Oe(a))))},Tt=(t,e,r,n,o)=>{if(o!==void 0){if(!(o<0)){let d=Re(t,r,{weekStartsOn:n}),l=t>d;return j(d,(o||1)-1+(l?1:0))}let c=Re(e,r,{weekStartsOn:n}),m=eW(a)).filter(a=>We(a,{start:t,end:e})).filter(a=>r===Oe(a))},W=t=>ie(t,-t.getTimezoneOffset());var pr=(t,e,r)=>t.frequency===\"YEARLY\"||t.frequency===\"MONTHLY\"||t.frequency===\"WEEKLY\"||t.frequency===\"DAILY\"?e.map(n=>n.flatMap(o=>r.map(s=>er(o,s)))):e.map(n=>n.filter(o=>r.includes(Ut(o))));var ur=(t,e,r)=>t.frequency===\"YEARLY\"||t.frequency===\"MONTHLY\"||t.frequency===\"WEEKLY\"||t.frequency===\"DAILY\"||t.frequency===\"HOURLY\"?e.map(n=>n.flatMap(o=>r.map(s=>tr(o,s)))):e.map(n=>n.filter(o=>r.includes(Wt(o))));var dr=(t,e,r)=>t.frequency===\"YEARLY\"?e.map(n=>n.flatMap(o=>r.map(s=>Zt(o,s)))):e.map(n=>n.filter(o=>r.includes(Ue(o))));var fr=(t,e,r)=>t.frequency===\"YEARLY\"||t.frequency===\"MONTHLY\"?e.map(n=>n.flatMap(o=>{let s=je(o);return r.map(a=>a>s?void 0:Xt(o,a)).filter(a=>!!a)})):t.frequency===\"WEEKLY\"?e:e.map(n=>n.filter(o=>r.includes(Ue(o))));var yr=(t,e,r)=>t.frequency===\"YEARLY\"||t.frequency===\"MONTHLY\"||t.frequency===\"WEEKLY\"||t.frequency===\"DAILY\"||t.frequency===\"HOURLY\"||t.frequency===\"MINUTELY\"?e.map(n=>n.flatMap(o=>r.map(s=>rr(o,s)))):e.map(n=>n.filter(o=>r.includes(Gt(o))));var lr=(t,e,r)=>!t.byYearday&&!t.byWeekNo&&!t.byMonthday&&!t.byMonth&&!t.byDay&&!t.byHour&&!t.byMinute&&!t.bySecond?e:e.map(n=>n.sort(pe).filter((o,s)=>r.some(a=>a>0?s===0?!1:s%a===0:s===0?n.length-1+a===0:s%(n.length-1+a)===0)));var Tr=(t,e,r,n)=>t.frequency===\"YEARLY\"?e.map(o=>o.flatMap(s=>r.map(a=>Ht(s,a,{weekStartsOn:n})))):e;var Ir=(t,e,r)=>t.frequency===\"YEARLY\"?e.map(n=>n.flatMap(o=>r.map(s=>Qt(o,s)))):t.frequency===\"MONTHLY\"||t.frequency===\"WEEKLY\"||t.frequency===\"DAILY\"?e:e.map(n=>n.filter(o=>r.includes(Jt(o))));var Er=(t,e,r)=>{let n=r;return t.byMonth&&(n=dr(t,n,t.byMonth)),t.byWeekNo&&(n=Tr(t,n,t.byWeekNo,e.weekStartsOn)),t.byYearday&&(n=Ir(t,n,t.byYearday)),t.byMonthday&&(n=fr(t,n,t.byMonthday)),t.byDay&&(n=ir(t,n,t.byDay,e.weekStartsOn)),t.byHour&&(n=pr(t,n,t.byHour)),t.byMinute&&(n=ur(t,n,t.byMinute)),t.bySecond&&(n=yr(t,n,t.bySecond)),t.bySetPos&&(n=lr(t,n,t.bySetPos)),n.map(s=>s.sort(pe).filter(a=>!(e.exceptions.length>0&&e.exceptions.some(c=>wt(c,a))||!We(a,{start:e.start,end:e.end}))))};var yn=2,xr=(t,e)=>{var p;let r=e.start,n=((p=t.until)==null?void 0:p.date)||(e==null?void 0:e.end)||ke(r,yn),o=e.exceptions||[],s=(t.workweekStart?Ge.indexOf(t.workweekStart):1)%7,a=[[r]];mr(t,{start:r,end:n},a);let c=Er(t,{start:r,end:n,exceptions:o,weekStartsOn:s},a);return t.count?c.flat().splice(0,t.count):c.flat()};var Sr=(t,e)=>e.flatMap(r=>!r.recurrenceRule||r.recurrenceRule.until&&r.recurrenceRule.until.date({...r,start:o})));var se=t=>{let e=t[0]===\"+\"?1:-1,r=Number(t.slice(1,3)),n=t.length>3?Number(t.slice(3,5)):0,o=t.length>5?Number(t.slice(5,7)):0;return((r*60+n)*60+o)*1e3*e};var Dr=(t,e)=>{let r=\"en-US\",n=new Date(e.toLocaleString(r,{timeZone:\"UTC\"}));try{return new Date(e.toLocaleString(r,{timeZone:t})).getTime()-n.getTime()}catch{return e.getTime()-n.getTime()}};var Je=(t,e,r)=>{let n=r==null?void 0:r.find(s=>s.id===e);if(n){let s=Sr(t,n.props).sort((m,p)=>pe(m.start,p.start));for(let m=0;m5?p.substring(0,5):p;return{offset:d,milliseconds:se(d)}}let a=s[s.length-1].offsetTo,c=a.length>5?a.substring(0,5):a;return{offset:c,milliseconds:se(c)}}let o=Dr(e,t);if(!Number.isNaN(o)){let s=o<0,a=Math.abs(qt(o)),c=Math.abs($t(o))-a*60,m=a.toString().length===1?`0${a}`:a.toString(),p=c.toString().length===1?`0${c}`:c.toString();return{offset:`${s?\"-\":\"+\"}${m}${p}`,milliseconds:o}}};var we=t=>{if(!Ye(t))throw Error(`Incorrect date object: ${t}`);let e=t.toISOString(),r=e.slice(0,4),n=e.slice(5,7),o=e.slice(8,10);return`${r}${n}${o}`},A=t=>{if(!Ye(t))throw Error(`Incorrect date object: ${t}`);return It(t)},gr=(t,e,r)=>{let n=e.date;if(!Ye(n))throw Error(`Incorrect date object: ${n}`);return Je(n,e.timezone,r)?It(n,!0):A(t)},It=(t,e)=>{let r=t.toISOString(),n=r.slice(0,4),o=r.slice(5,7),s=r.slice(8,10),a=r.slice(11,13),c=r.slice(14,16),m=r.slice(17,19);return`${n}${o}${s}T${a}${c}${m}${e?\"\":\"Z\"}`},Or=(t,e)=>{let r=se(e),n=z(t,r);return It(n,!0)};var Rr=t=>{var r,n;let e=S([((r=t.options)==null?void 0:r.related)&&{key:\"RELATED\",value:t.options.related}].filter(o=>!!o));if(t.type===\"absolute\")return f(\"TRIGGER\",A((n=t.value)==null?void 0:n.date));if(t.type===\"relative\")return f(\"TRIGGER\",M(t.value),e)};var He=t=>Object.keys(t);var Cr=(t,e)=>{if(!t)return\"\";let r=\"\";return Object.entries(t).forEach(([n,o])=>{let s=e==null?void 0:e[n];if(!s){r+=f(ln(n),o==null?void 0:o.toString());return}let a=s.generate(o);a&&(r+=f(s.name,a.value,a.options?S(Object.entries(a.options).map(([c,m])=>({key:c,value:m}))):void 0))}),r},ln=t=>{let e=\"X-\";for(let r of t)r===r.toUpperCase()&&(e+=\"-\"),e+=r.toUpperCase();return e};var Tn=t=>{let e=(t.match(/\\n/g)||[]).length;return t.length+e},Nr=t=>{let e=t.split(Dt),r=[];return e.forEach(n=>{if(Tn(n)<75){r.push(n);return}In(n,75).forEach(o=>{r.push(o)})}),r.join(Le)},In=(t,e)=>{let r=[],n=\"\",o=0;for(let s=0;se?(r.push(r.length===0?n:` ${n}`),n=a,o=m):(n+=a,o+=m)}return n&&r.push(r.length===0?n:` ${n}`),r};var O=(t,e)=>{let r=He(t),n=e.childComponents,o=n?He(n):[],s=e.generateArrayValues,a=s?He(s):[],c=\"\";return c+=Rt(e.icsComponent),r.forEach(m=>{if(o.includes(m)||a.includes(m)||m===\"nonStandard\")return;let p=e.icsKeyMap[m];if(!p)return;let d=t[m];if(d==null)return;let l=e.generateValues[m];if(l){c+=l({icsKey:p,value:d,key:m});return}c+=f(p,String(d))}),n&&o&&o.length>0&&o.forEach(m=>{let p=t[m];!p||!Array.isArray(p)||p.length===0||p.forEach(d=>{let l=n[m];l&&(c+=l(d))})}),s&&a&&a.length>0&&a.forEach(m=>{let p=s[m];if(!p)return;let d=e.icsKeyMap[m];if(!d)return;let l=t[m];!l||!Array.isArray(l)||l.length===0||l.forEach(E=>{c+=p({icsKey:d,value:E})})}),t.nonStandard&&(c+=Cr(t.nonStandard,e==null?void 0:e.nonStandard)),c+=Ct(e.icsComponent),e!=null&&e.skipFormatLines?c:Nr(c)};var h=(t,e)=>f(t,Math.trunc(e).toString());var vr=(t,e)=>O(t,{icsComponent:ee,icsKeyMap:Ce,generateValues:{trigger:({value:r})=>Rr(r),duration:({icsKey:r,value:n})=>f(r,M(n)),repeat:({icsKey:r,value:n})=>h(r,n)},generateArrayValues:{attendees:({value:r})=>V(r,\"ATTENDEE\"),attachments:({value:r})=>Nt(r)},nonStandard:e==null?void 0:e.nonStandard,skipFormatLines:e==null?void 0:e.skipFormatLines});var T=(t,e,r=[],n)=>{let o=S([e.type&&{key:\"VALUE\",value:e.type},e.local&&!(n!=null&&n.forceUtc)&&{key:\"TZID\",value:e.local.timezone},...r].filter(a=>!!a)),s=e.type===\"DATE\"?we(e.date):e.local&&!(n!=null&&n.forceUtc)?gr(e.date,e.local,n==null?void 0:n.timezones):A(e.date);return f(t,s,o)};var de=(t,e,r)=>T(e,t,void 0,r);var G=t=>{let e=S([t.dir&&{key:\"DIR\",value:`\"${t.dir}\"`},t.name&&{key:\"CN\",value:t.name},t.sentBy&&{key:\"SENT-BY\",value:k(t.sentBy)}].filter(r=>!!r));return f(\"ORGANIZER\",k(t.email),e)};var Ar=t=>t.occurrence?`${t.occurrence}${t.day}`:t.day;var J=t=>{var n;let e=\"\",r=S([t.byDay&&{key:\"BYDAY\",value:t.byDay.map(o=>Ar(o)).join(\",\")},t.byHour&&{key:\"BYHOUR\",value:t.byHour.join(\",\")},t.byMinute&&{key:\"BYMINUTE\",value:t.byMinute.join(\",\")},t.byMonth&&{key:\"BYMONTH\",value:t.byMonth.map(o=>o+1).join(\",\")},t.byMonthday&&{key:\"BYMONTHDAY\",value:t.byMonthday.join(\",\")},t.bySecond&&{key:\"BYSECOND\",value:t.bySecond.join(\",\")},t.bySetPos&&{key:\"BYSETPOS\",value:t.bySetPos.join(\",\")},t.byWeekNo&&{key:\"BYWEEKNO\",value:t.byWeekNo.join(\",\")},t.byYearday&&{key:\"BYYEARDAY\",value:t.byYearday.join(\",\")},t.count&&{key:\"COUNT\",value:t.count.toString()},t.frequency&&{key:\"FREQ\",value:t.frequency},t.interval&&{key:\"INTERVAL\",value:t.interval.toString()},t.until&&{key:\"UNTIL\",value:t.until.type===\"DATE\"?we(t.until.date):A(((n=t.until.local)==null?void 0:n.date)||t.until.date)},t.workweekStart&&{key:\"WKST\",value:t.workweekStart}].filter(o=>!!o));return e+=f(\"RRULE\",r),e};var fe=(t,e)=>{let r=\"\";return r+=T(\"RECURRENCE-ID\",t.value,t.range?[{key:\"RANGE\",value:t.range}]:void 0,e),r};var br=t=>t.replace(/([\\\\;,])|(\\n)/g,(e,r)=>r?`\\\\${r}`:\"\\\\n\");var R=(t,e,r)=>f(t,br(e),r?S(r):void 0);var Vr=(t,e)=>O(t,{icsComponent:Q,icsKeyMap:ve,omitGenerateKeys:[\"descriptionAltRep\"],generateValues:{stamp:({icsKey:r,value:n})=>T(r,n,void 0,{timezones:e==null?void 0:e.timezones,forceUtc:!0}),start:({icsKey:r,value:n})=>T(r,n,void 0,{timezones:e==null?void 0:e.timezones}),end:({icsKey:r,value:n})=>T(r,n,void 0,{timezones:e==null?void 0:e.timezones}),created:({icsKey:r,value:n})=>T(r,n,void 0,{timezones:e==null?void 0:e.timezones}),lastModified:({icsKey:r,value:n})=>T(r,n,void 0,{timezones:e==null?void 0:e.timezones}),categories:({icsKey:r,value:n})=>f(r,n.join(\",\")),description:({icsKey:r,value:n})=>R(r,n,t.descriptionAltRep?[{key:\"ALTREP\",value:`\"${t.descriptionAltRep}\"`}]:void 0),location:({icsKey:r,value:n})=>R(r,n),comment:({icsKey:r,value:n})=>R(r,n),summary:({icsKey:r,value:n})=>R(r,n),recurrenceRule:({value:r})=>J(r),duration:({icsKey:r,value:n})=>f(r,M(n)),organizer:({value:r})=>G(r),sequence:({icsKey:r,value:n})=>h(r,n),recurrenceId:({value:r})=>fe(r,{timezones:e==null?void 0:e.timezones})},generateArrayValues:{attendees:({value:r})=>V(r,\"ATTENDEE\"),exceptionDates:({value:r})=>de(r,\"EXDATE\",{timezones:e==null?void 0:e.timezones})},childComponents:{alarms:r=>vr(r,{nonStandard:e==null?void 0:e.nonStandard,skipFormatLines:!0})},nonStandard:e==null?void 0:e.nonStandard,skipFormatLines:e==null?void 0:e.skipFormatLines,timezones:e==null?void 0:e.timezones});var Mr=(t,e)=>O(t,{icsComponent:t.type,icsKeyMap:be,generateValues:{start:({icsKey:r,value:n})=>f(r,Or(n,t.offsetTo)),recurrenceRule:({value:r})=>J(r),recurrenceDate:({icsKey:r,value:n})=>T(r,n)},omitGenerateKeys:[\"type\"],nonStandard:e==null?void 0:e.nonStandard,skipFormatLines:e==null?void 0:e.skipFormatLines});var zr=(t,e)=>O(t,{icsComponent:X,icsKeyMap:Ae,generateValues:{lastModified:({icsKey:r,value:n})=>f(r,A(n))},childComponents:{props:r=>Mr(r,{nonStandard:e==null?void 0:e.nonStandard,skipFormatLines:!0})},nonStandard:e==null?void 0:e.nonStandard,skipFormatLines:e==null?void 0:e.skipFormatLines});var Lr=(t,e)=>O(t,{icsComponent:te,icsKeyMap:Ve,generateValues:{stamp:({icsKey:r,value:n})=>T(r,n,void 0,{timezones:e==null?void 0:e.timezones,forceUtc:!0}),start:({icsKey:r,value:n})=>T(r,n,void 0,{timezones:e==null?void 0:e.timezones}),due:({icsKey:r,value:n})=>T(r,n,void 0,{timezones:e==null?void 0:e.timezones}),created:({icsKey:r,value:n})=>T(r,n,void 0,{timezones:e==null?void 0:e.timezones}),lastModified:({icsKey:r,value:n})=>T(r,n,void 0,{timezones:e==null?void 0:e.timezones}),completed:({icsKey:r,value:n})=>T(r,n,void 0,{timezones:e==null?void 0:e.timezones}),categories:({icsKey:r,value:n})=>f(r,n.join(\",\")),description:({icsKey:r,value:n})=>R(r,n),location:({icsKey:r,value:n})=>R(r,n),comment:({icsKey:r,value:n})=>R(r,n),summary:({icsKey:r,value:n})=>R(r,n),recurrenceRule:({value:r})=>J(r),duration:({icsKey:r,value:n})=>f(r,M(n)),organizer:({value:r})=>G(r),sequence:({icsKey:r,value:n})=>h(r,n),percentComplete:({icsKey:r,value:n})=>h(r,n),recurrenceId:({value:r})=>fe(r,{timezones:e==null?void 0:e.timezones})},generateArrayValues:{attendees:({value:r})=>V(r,\"ATTENDEE\"),exceptionDates:({value:r})=>de(r,\"EXDATE\",{timezones:e==null?void 0:e.timezones})},nonStandard:e==null?void 0:e.nonStandard,skipFormatLines:e==null?void 0:e.skipFormatLines,timezones:e==null?void 0:e.timezones});var _r=(t,e)=>O(t,{icsComponent:re,icsKeyMap:Me,generateValues:{stamp:({icsKey:r,value:n})=>T(r,n,void 0,{timezones:e==null?void 0:e.timezones,forceUtc:!0}),start:({icsKey:r,value:n})=>T(r,n,void 0,{timezones:e==null?void 0:e.timezones}),created:({icsKey:r,value:n})=>T(r,n,void 0,{timezones:e==null?void 0:e.timezones}),lastModified:({icsKey:r,value:n})=>T(r,n,void 0,{timezones:e==null?void 0:e.timezones}),categories:({icsKey:r,value:n})=>f(r,n.join(\",\")),description:({icsKey:r,value:n})=>R(r,n),comment:({icsKey:r,value:n})=>R(r,n),summary:({icsKey:r,value:n})=>R(r,n),recurrenceRule:({value:r})=>J(r),organizer:({value:r})=>G(r),sequence:({icsKey:r,value:n})=>h(r,n),recurrenceId:({value:r})=>fe(r,{timezones:e==null?void 0:e.timezones})},generateArrayValues:{attendees:({value:r})=>V(r,\"ATTENDEE\"),exceptionDates:({value:r})=>de(r,\"EXDATE\",{timezones:e==null?void 0:e.timezones})},nonStandard:e==null?void 0:e.nonStandard,skipFormatLines:e==null?void 0:e.skipFormatLines,timezones:e==null?void 0:e.timezones});var hr=(t,e)=>{let r=t.values.map(o=>`${A(o.start)}/${o.end?A(o.end):M(o.duration)}`).join(\",\"),n=S([t.type&&{key:\"FBTYPE\",value:t.type}].filter(o=>!!o));return f(e,r,n)};var Kr=(t,e)=>O(t,{icsComponent:ne,icsKeyMap:ze,generateValues:{stamp:({icsKey:r,value:n})=>T(r,n,void 0,{timezones:e==null?void 0:e.timezones,forceUtc:!0}),start:({icsKey:r,value:n})=>T(r,n,void 0,{timezones:e==null?void 0:e.timezones}),end:({icsKey:r,value:n})=>T(r,n,void 0,{timezones:e==null?void 0:e.timezones}),comment:({icsKey:r,value:n})=>R(r,n),organizer:({value:r})=>G(r)},generateArrayValues:{attendees:({value:r})=>V(r,\"ATTENDEE\"),freeBusy:({value:r})=>hr(r,\"FREEBUSY\")},nonStandard:e==null?void 0:e.nonStandard,skipFormatLines:e==null?void 0:e.skipFormatLines,timezones:e==null?void 0:e.timezones});var Vd=(t,e)=>O(t,{icsComponent:xe,icsKeyMap:Ne,generateValues:{},childComponents:{timezones:r=>zr(r,{nonStandard:e==null?void 0:e.nonStandard,skipFormatLines:!0}),events:r=>Vr(r,{skipFormatLines:!0,timezones:t.timezones,nonStandard:e==null?void 0:e.nonStandard}),todos:r=>Lr(r,{skipFormatLines:!0,timezones:t.timezones,nonStandard:e==null?void 0:e.nonStandard}),journals:r=>_r(r,{skipFormatLines:!0,timezones:t.timezones,nonStandard:e==null?void 0:e.nonStandard}),freeBusy:r=>Kr(r,{skipFormatLines:!0,timezones:t.timezones,nonStandard:e==null?void 0:e.nonStandard})},nonStandard:e==null?void 0:e.nonStandard});var u=(t,e)=>{if(t===void 0)return e;let r=t[\"~standard\"].validate(e);if(r instanceof Promise)throw new TypeError(\"Schema validation must be synchronous\");if(r.issues)throw new Error(JSON.stringify(r.issues,null,2));return r.value};var Pr=(t,e)=>{var n,o,s,a;let r=((n=e.options)==null?void 0:n.VALUE)===\"BINARY\"?{type:\"binary\",encoding:((o=e.options)==null?void 0:o.ENCODING)||\"BASE64\",binary:e.value,value:(s=e.options)==null?void 0:s.VALUE}:{type:\"uri\",url:e.value,formatType:(a=e.options)==null?void 0:a.FMTTYPE};return u(t,r)};var w=t=>t.replace(/mailto:/gi,\"\");var L=(t,e)=>{var r,n,o,s,a,c,m,p,d,l,E;return u(t,{email:w(e.value),delegatedFrom:(r=e.options)!=null&&r[\"DELEGATED-FROM\"]?w((n=e.options)==null?void 0:n[\"DELEGATED-FROM\"]):void 0,dir:(o=e.options)==null?void 0:o.DIR,member:(s=e.options)!=null&&s.MEMBER?w(e.options.MEMBER):void 0,name:(a=e.options)==null?void 0:a.CN,partstat:(c=e.options)==null?void 0:c.PARTSTAT,role:(m=e.options)==null?void 0:m.ROLE,sentBy:(p=e.options)!=null&&p[\"SENT-BY\"]?w(e.options[\"SENT-BY\"]):void 0,rsvp:(d=e.options)!=null&&d.RSVP?((l=e.options)==null?void 0:l.RSVP)===\"TRUE\"?!0:((E=e.options)==null?void 0:E.RSVP)===\"FALSE\"?!1:void 0:void 0})};var _=(t,e)=>{let r=e.value,n={};r[0]===\"-\"&&(n.before=!0,r=r.slice(1)),r=r.slice(1);let o=r.split(\"T\"),s=o[0];if(s.includes(\"D\")){let[c,m]=s.split(\"D\");n.days=Number(c),s=m}if(s.includes(\"W\")){let[c,m]=s.split(\"W\");n.weeks=Number(c),s=m}let a=o[1];if(a){if(a.includes(\"H\")){let[c,m]=a.split(\"H\");n.hours=Number(c),a=m}if(a.includes(\"M\")){let[c,m]=a.split(\"M\");n.minutes=Number(c),a=m}if(a.includes(\"S\")){let[c,m]=a.split(\"S\");n.seconds=Number(c),a=m}}return u(t,n)};var kr=(t,e)=>{let r=Number.parseInt(e.value.slice(0,4),10),n=Number.parseInt(e.value.slice(4,6),10)-1,o=Number.parseInt(e.value.slice(6,8),10),s=new Date(Date.UTC(r,n,o));return u(t,s)},H=(t,e)=>{let r=Number.parseInt(e.value.slice(0,4),10),n=Number.parseInt(e.value.slice(4,6),10)-1,o=Number.parseInt(e.value.slice(6,8),10),s=Number.parseInt(e.value.slice(9,11),10),a=Number.parseInt(e.value.slice(11,13),10),c=Number.parseInt(e.value.slice(13,15),10),m=new Date(Date.UTC(r,n,o,s,a,c));return u(t,m)},Yr=(t,e,r)=>{let n=se(r),o=H(void 0,e),s=nr(o,n);return u(t,s)};var En=(t,e)=>{var s,a,c,m,p,d;if(((s=t.options)==null?void 0:s.VALUE)===\"DATE\")return{date:kr(void 0,t),type:(a=t.options)==null?void 0:a.VALUE};let r=((c=t.options)==null?void 0:c.VALUE)||\"DATE-TIME\",n=H(void 0,t);if(!((m=t.options)!=null&&m.TZID))return{date:n,type:r};let o=Je(n,t.options.TZID,e==null?void 0:e.timezones);return o?{date:z(n,-o.milliseconds),type:r,local:(p=t.options)!=null&&p.TZID?{date:n,timezone:(d=t.options)==null?void 0:d.TZID,tzoffset:o.offset}:void 0}:{date:n,type:r}},y=(t,e,r)=>u(t,En(e,r));var Br=(t,e,r)=>{var o,s,a,c;let n=((o=e.options)==null?void 0:o.VALUE)===\"DATE-TIME\"||((s=e.options)==null?void 0:s.VALUE)===\"DATE\"?{type:\"absolute\",value:y(void 0,e,r),options:{related:(a=e.options)==null?void 0:a.RELATED}}:{type:\"relative\",value:_(void 0,e),options:{related:(c=e.options)==null?void 0:c.RELATED}};return u(t,n)};var xn=t=>t.startsWith('\"')&&t.endsWith('\"')?t.slice(1,-1):t,Et=t=>t.map(e=>{let[r,...n]=e.split(De),o=n.join(De);return{property:r,value:xn(o)}},{}),Sn=t=>t.reduce((e,r)=>(e[r.property]=r.value,e),{}),Fr=t=>Sn(Et(t));var Dn=t=>{let e=!1,r;for(let s=0;s{let{property:e,value:r}=Dn(t);if(e.includes(oe)){let[n,...o]=e.split(oe),s=Fr(o);return{property:n,line:{options:s,value:r}}}return{property:e,line:{value:r}}};var Ur=t=>/^[ \\t]/.test(t),gn=t=>/^[A-Z]+(?:-[A-Z]+)*[:;]/.test(t),Wr=t=>{let e=[],r=t.split(Se);for(;r[0]===\"\";)r.shift();let n=r.length;for(;n>0&&r[n-1]===\"\";)n-=1,r.pop();for(let o=0;oo!==\"\")};var Gr=(t,e,r)=>{if(!e)return t;let n={};return Object.entries(e).forEach(([o,s])=>{let a=Object.entries(r||{}).find(([p,d])=>d.name===o);if(!a){n[On(o)]=s.value;return}let c=a[1].convert(s),m=a[1].schema;if(!m){n[a[0]]=c;return}n[a[0]]=u(m,c)}),t.nonStandard=n,t},On=t=>{let e=t.startsWith(\"X-\")?t.slice(2):t,r=\"\",n=!1;for(let o of e)o===\"-\"?n=!0:(r+=n?o.toUpperCase():o.toLowerCase(),n=!1);return r};var Jr=t=>t.startsWith(\"X-\");var C=(t,e,r)=>{let n=e.replace(St(r==null?void 0:r.icsComponent),\"\"),o=[...new Set(Object.values(r.childComponents||{}).flatMap(({icsComponent:l})=>l))],s=Wr(o.reduce((l,E)=>l.replace(it(E),\"\"),n)),a=r.defaultValues||{},c={};s.forEach(l=>{var P,Ee;let{property:E,line:v}=jr(l);Jr(E)&&(c[E]=v);let D=r.objectKeyMap[E];if(!D)return;let Ie=(P=r.convertArrayValues)==null?void 0:P[D];if(Ie){let Z=Ie({line:v});if(!Z)return;(a[D]===void 0||a[D]===null||!Array.isArray(a[D]))&&(a[D]=[]),Array.isArray(Z)?a[D].push(...Z):a[D].push(Z);return}let qe=(Ee=r.convertValues)==null?void 0:Ee[D];if(qe){let Z=qe({line:v});if(!Z)return;a[D]=Z;return}a[D]=v.value});let m=r.childComponents,p=m?Object.keys(m||{}):[];m&&p.length>0&&p.forEach(l=>{let E=m==null?void 0:m[l];if(!E)return;let v=Array.isArray(E.icsComponent)?E.icsComponent:[E.icsComponent],D=[],Ie=[];v.forEach(P=>{Ie.push(...n.matchAll(it(P)))}),Ie.map(P=>P[0]).forEach(P=>{let Ee=E.convert(P,{data:a});Ee&&D.push(Ee)}),D.length!==0&&(a[l]=D)});let d=u(t,a);return r!=null&&r.nonStandard?Gr(d,c,r==null?void 0:r.nonStandard):d};var q=(t,e)=>{var r,n,o;return u(t,{name:(r=e.options)==null?void 0:r.CN,dir:(n=e.options)==null?void 0:n.DIR,sentBy:(o=e.options)!=null&&o[\"SENT-BY\"]?w(e.options[\"SENT-BY\"]):void 0,email:w(e.value)})};var ye=(t,e,r)=>{var n;return u(t,{value:y(void 0,e,r),range:(n=e.options)==null?void 0:n.RANGE})};var Rn=t=>{if(t.length===2)return{day:t};let r=t.slice(0,-2);return{day:t.replace(r,\"\"),occurrence:Number(r)}},wr=(t,e)=>u(t,Rn(e.value));var Hr=(t,e)=>u(t,e.value);var Cn=[\"until\"],Nn=t=>Cn.includes(t),vn=[\"bySecond\",\"byMinute\",\"byHour\",\"byMonthday\",\"byYearday\",\"byWeekNo\",\"bySetPos\"],An=t=>vn.includes(t),bn=[\"byDay\"],Vn=t=>bn.includes(t),Mn=[\"count\",\"interval\"],zn=t=>Mn.includes(t),$=(t,e,r)=>{let n={};return Et(e.value.split(oe)).forEach(s=>{let{property:a,value:c}=s,m=tt[a];if(m){if(Nn(m)){n[m]=y(void 0,{value:c,options:{VALUE:c.includes(\"T\")?\"DATE-TIME\":\"DATE\"}},{timezones:r==null?void 0:r.timezones});return}if(An(m)){n[m]=c.split(b).map(p=>Number(p));return}if(m===\"byMonth\"){n[m]=c.split(b).map(p=>Number(p)-1);return}if(Vn(m)){n[m]=c.split(b).map(p=>wr(void 0,{value:p}));return}if(zn(m)){n[m]=Number(c);return}if(m===\"frequency\"){if(!c||!cr.includes(c))return;n[m]=c;return}if(m===\"workweekStart\"){n[m]=Hr(void 0,{value:c});return}}}),u(t,n)};var le=(t,e)=>u(t,e.value);var qr=(t,e)=>u(t,e.value);var Te=(t,e,r)=>u(t,e.value.split(\",\").map(n=>y(void 0,{value:n,options:e.options},r)));var $r=(t,e)=>u(t,e.value),Zr=(t,e)=>u(t,e.value),Xr=(t,e)=>u(t,e.value);var K=(t,e)=>u(t,Number.parseInt(e.value,10));var Qr=t=>t.replace(/\\\\(([,;\\\\])|([nN]))/g,(e,r,n)=>n||`\n`);var N=(t,e)=>u(t,Qr(e.value));var en=(...t)=>{let[e,r,n]=t;return C(e,r,{icsComponent:ee,objectKeyMap:$e,convertValues:{trigger:({line:o})=>Br(void 0,o,{timezones:n==null?void 0:n.timezones}),duration:({line:o})=>_(void 0,o),repeat:({line:o})=>K(void 0,o)},convertArrayValues:{attachments:({line:o})=>Pr(void 0,o),attendees:({line:o})=>L(void 0,o)},nonStandard:n==null?void 0:n.nonStandard,timezones:n==null?void 0:n.timezones})};var tn=(...t)=>{let[e,r,n]=t,o,s=C(e,r,{icsComponent:Q,objectKeyMap:Xe,convertValues:{stamp:({line:a})=>y(void 0,a,{timezones:n==null?void 0:n.timezones}),start:({line:a})=>y(void 0,a,{timezones:n==null?void 0:n.timezones}),end:({line:a})=>y(void 0,a,{timezones:n==null?void 0:n.timezones}),created:({line:a})=>y(void 0,a,{timezones:n==null?void 0:n.timezones}),lastModified:({line:a})=>y(void 0,a,{timezones:n==null?void 0:n.timezones}),categories:({line:a})=>a.value.split(b),description:({line:a})=>{var c;return(c=a.options)!=null&&c.ALTREP&&(o=a.options.ALTREP),N(void 0,a)},location:({line:a})=>N(void 0,a),comment:({line:a})=>N(void 0,a),summary:({line:a})=>N(void 0,a),recurrenceRule:({line:a})=>$(void 0,a,{timezones:n==null?void 0:n.timezones}),duration:({line:a})=>_(void 0,a),organizer:({line:a})=>q(void 0,a),sequence:({line:a})=>K(void 0,a),class:({line:a})=>le(void 0,a),recurrenceId:({line:a})=>ye(void 0,a,{timezones:n==null?void 0:n.timezones}),status:({line:a})=>$r(void 0,a),timeTransparent:({line:a})=>qr(void 0,a)},convertArrayValues:{attendees:({line:a})=>L(void 0,a),exceptionDates:({line:a})=>Te(void 0,a,{timezones:n==null?void 0:n.timezones})},childComponents:{alarms:{icsComponent:ee,convert:a=>en(void 0,a,{nonStandard:n==null?void 0:n.nonStandard,timezones:n==null?void 0:n.timezones})}},timezones:n==null?void 0:n.timezones,nonStandard:n==null?void 0:n.nonStandard});return o&&(s.descriptionAltRep=o),s};var rn=(...t)=>{let[e,r,n]=t,o=r.split(\"BEGIN:\")[1].split(Se)[0],s=sr.includes(o)?o:\"STANDARD\",a=r.split(\"TZOFFSETTO:\")[1].split(Se)[0];return C(e,r,{icsComponent:s,objectKeyMap:et,defaultValues:{type:s},convertValues:{start:({line:c})=>Yr(void 0,c,a),recurrenceRule:({line:c})=>$(void 0,c,{timezones:n==null?void 0:n.timezones}),recurrenceDate:({line:c})=>y(void 0,c,{timezones:n==null?void 0:n.timezones})},nonStandard:n==null?void 0:n.nonStandard,timezones:n==null?void 0:n.timezones})};var nn=(...t)=>{let[e,r,n]=t;return C(e,r,{icsComponent:X,objectKeyMap:Qe,convertValues:{lastModified:({line:o})=>H(void 0,o)},childComponents:{props:{icsComponent:[\"DAYLIGHT\",\"STANDARD\"],convert:o=>rn(void 0,o,{nonStandard:n==null?void 0:n.nonStandard,timezones:n==null?void 0:n.timezones})}},nonStandard:n==null?void 0:n.nonStandard,timezones:n==null?void 0:n.timezones})};var on=(...t)=>{let[e,r,n]=t;return C(e,r,{icsComponent:te,objectKeyMap:rt,convertValues:{stamp:({line:o})=>y(void 0,o,{timezones:n==null?void 0:n.timezones}),start:({line:o})=>y(void 0,o,{timezones:n==null?void 0:n.timezones}),due:({line:o})=>y(void 0,o,{timezones:n==null?void 0:n.timezones}),created:({line:o})=>y(void 0,o,{timezones:n==null?void 0:n.timezones}),lastModified:({line:o})=>y(void 0,o,{timezones:n==null?void 0:n.timezones}),completed:({line:o})=>y(void 0,o,{timezones:n==null?void 0:n.timezones}),categories:({line:o})=>o.value.split(b),description:({line:o})=>N(void 0,o),location:({line:o})=>N(void 0,o),comment:({line:o})=>N(void 0,o),summary:({line:o})=>N(void 0,o),recurrenceRule:({line:o})=>$(void 0,o,{timezones:n==null?void 0:n.timezones}),duration:({line:o})=>_(void 0,o),organizer:({line:o})=>q(void 0,o),sequence:({line:o})=>K(void 0,o),percentComplete:({line:o})=>K(void 0,o),class:({line:o})=>le(void 0,o),recurrenceId:({line:o})=>ye(void 0,o,{timezones:n==null?void 0:n.timezones}),status:({line:o})=>Zr(void 0,o)},convertArrayValues:{attendees:({line:o})=>L(void 0,o),exceptionDates:({line:o})=>Te(void 0,o,{timezones:n==null?void 0:n.timezones})},nonStandard:n==null?void 0:n.nonStandard,timezones:n==null?void 0:n.timezones})};var an=(...t)=>{let[e,r,n]=t;return C(e,r,{icsComponent:re,objectKeyMap:nt,convertValues:{stamp:({line:o})=>y(void 0,o,{timezones:n==null?void 0:n.timezones}),start:({line:o})=>y(void 0,o,{timezones:n==null?void 0:n.timezones}),created:({line:o})=>y(void 0,o,{timezones:n==null?void 0:n.timezones}),lastModified:({line:o})=>y(void 0,o,{timezones:n==null?void 0:n.timezones}),categories:({line:o})=>o.value.split(b),description:({line:o})=>N(void 0,o),comment:({line:o})=>N(void 0,o),summary:({line:o})=>N(void 0,o),recurrenceRule:({line:o})=>$(void 0,o,{timezones:n==null?void 0:n.timezones}),organizer:({line:o})=>q(void 0,o),sequence:({line:o})=>K(void 0,o),class:({line:o})=>le(void 0,o),recurrenceId:({line:o})=>ye(void 0,o,{timezones:n==null?void 0:n.timezones}),status:({line:o})=>Xr(void 0,o)},convertArrayValues:{attendees:({line:o})=>L(void 0,o),exceptionDates:({line:o})=>Te(void 0,o,{timezones:n==null?void 0:n.timezones})},nonStandard:n==null?void 0:n.nonStandard,timezones:n==null?void 0:n.timezones})};var sn=(t,e)=>{var r;return u(t,{type:(r=e.options)==null?void 0:r.FBTYPE,values:e.value.split(\",\").map(n=>{let[o,s]=n.split(\"/\"),a=H(void 0,{value:o});if(s.startsWith(\"PT\")){let m=_(void 0,{value:s});return{start:a,duration:m}}let c=H(void 0,{value:s});return{start:a,end:c}})})};var cn=(...t)=>{let[e,r,n]=t;return C(e,r,{icsComponent:ne,objectKeyMap:ot,convertValues:{stamp:({line:o})=>y(void 0,o,{timezones:n==null?void 0:n.timezones}),start:({line:o})=>y(void 0,o,{timezones:n==null?void 0:n.timezones}),end:({line:o})=>y(void 0,o,{timezones:n==null?void 0:n.timezones}),comment:({line:o})=>N(void 0,o),organizer:({line:o})=>q(void 0,o)},convertArrayValues:{attendees:({line:o})=>L(void 0,o),freeBusy:({line:o})=>sn(void 0,o)},nonStandard:n==null?void 0:n.nonStandard,timezones:n==null?void 0:n.timezones})};var mT=(...t)=>{let[e,r,n]=t;return C(e,r,{icsComponent:xe,objectKeyMap:Ze,convertValues:{version:({line:o})=>o.value},childComponents:{timezones:{icsComponent:X,convert:o=>nn(void 0,o,{nonStandard:n==null?void 0:n.nonStandard})},events:{icsComponent:Q,convert:(o,{data:s})=>tn(void 0,o,{nonStandard:n==null?void 0:n.nonStandard,timezones:s.timezones})},todos:{icsComponent:te,convert:(o,{data:s})=>on(void 0,o,{nonStandard:n==null?void 0:n.nonStandard,timezones:s.timezones})},journals:{icsComponent:re,convert:(o,{data:s})=>an(void 0,o,{nonStandard:n==null?void 0:n.nonStandard,timezones:s.timezones})},freeBusy:{icsComponent:ne,convert:(o,{data:s})=>cn(void 0,o,{nonStandard:n==null?void 0:n.nonStandard,timezones:s.timezones})}},nonStandard:n==null?void 0:n.nonStandard})};export{Se as BREAK_REGEX,b as COMMA,Le as CRLF_BREAK,Dt as CRLF_BREAK_REGEX,yn as DEFAULT_END_IN_YEARS,De as EQUAL_SIGN,Io as ICS_COMPONENTS,pt as LF_BREAK,ut as MAX_LINE_LENGTH,st as OBJECT_END,at as OBJECT_START,Ot as QUOTE,to as RRULE_KEYS,ro as RRULE_OBJECT_KEYS,xt as RRULE_TO_KEYS,tt as RRULE_TO_OBJECT_KEYS,oe as SEMICOLON,gt as SEPARATOR,Vo as SPACE,sr as TIMEZONE_PROP_COMPONENTS,hn as VALARM_KEYS,ee as VALARM_OBJECT_KEY,Kn as VALARM_OBJECT_KEYS,Ce as VALARM_TO_KEYS,$e as VALARM_TO_OBJECT_KEYS,Yn as VCALENDAR_KEYS,xe as VCALENDAR_OBJECT_KEY,Bn as VCALENDAR_OBJECT_KEYS,Ne as VCALENDAR_TO_KEYS,Ze as VCALENDAR_TO_OBJECT_KEYS,Un as VEVENT_KEYS,Q as VEVENT_OBJECT_KEY,Wn as VEVENT_OBJECT_KEYS,ve as VEVENT_TO_KEYS,Xe as VEVENT_TO_OBJECT_KEYS,yo as VFREEBUSY_KEYS,ne as VFREEBUSY_OBJECT_KEY,lo as VFREEBUSY_OBJECT_KEYS,ze as VFREEBUSY_TO_KEYS,ot as VFREEBUSY_TO_OBJECT_KEYS,io as VJOURNAL_KEYS,re as VJOURNAL_OBJECT_KEY,po as VJOURNAL_OBJECT_KEYS,Me as VJOURNAL_TO_KEYS,nt as VJOURNAL_TO_OBJECT_KEYS,mt as VTIMEZONE_DAYLIGHT_OBJECT_KEY,wn as VTIMEZONE_KEYS,X as VTIMEZONE_OBJECT_KEY,Hn as VTIMEZONE_OBJECT_KEYS,Zn as VTIMEZONE_PROP_KEYS,Xn as VTIMEZONE_PROP_OBJECT_KEYS,be as VTIMEZONE_PROP_TO_KEYS,et as VTIMEZONE_PROP_TO_OBJECT_KEYS,ct as VTIMEZONE_STANDARD_OBJECT_KEY,Ae as VTIMEZONE_TO_KEYS,Qe as VTIMEZONE_TO_OBJECT_KEYS,ao as VTODO_KEYS,te as VTODO_OBJECT_KEY,so as VTODO_OBJECT_KEYS,Ve as VTODO_TO_KEYS,rt as VTODO_TO_OBJECT_KEYS,om as attachmentEncodingTypes,am as attachmentValueTypes,cm as attendeePartStatusTypes,Fc as calendarMethods,jc as calendarVersions,xm as classTypes,en as convertIcsAlarm,Pr as convertIcsAttachment,L as convertIcsAttendee,mT as convertIcsCalendar,le as convertIcsClass,kr as convertIcsDate,H as convertIcsDateTime,_ as convertIcsDuration,tn as convertIcsEvent,$r as convertIcsEventStatus,Te as convertIcsExceptionDates,cn as convertIcsFreeBusy,K as convertIcsInteger,an as convertIcsJournal,Xr as convertIcsJournalStatus,Yr as convertIcsLocalOnlyDateTime,q as convertIcsOrganizer,ye as convertIcsRecurrenceId,$ as convertIcsRecurrenceRule,N as convertIcsText,y as convertIcsTimeStamp,qr as convertIcsTimeTransparent,nn as convertIcsTimezone,rn as convertIcsTimezoneProp,on as convertIcsTodo,Zr as convertIcsTodoStatus,Br as convertIcsTrigger,Hr as convertIcsWeekDay,wr as convertIcsWeekDayNumber,Gr as convertNonStandardValues,it as createGetRegex,St as createReplaceRegex,im as dateObjectTypes,dm as eventStatusTypes,xr as extendByRecurrenceRule,Sr as extendTimezoneProps,Jc as freeBusyTypes,vr as generateIcsAlarm,Nt as generateIcsAttachment,V as generateIcsAttendee,Vd as generateIcsCalendar,we as generateIcsDate,M as generateIcsDuration,Vr as generateIcsEvent,Kr as generateIcsFreeBusy,h as generateIcsInteger,_r as generateIcsJournal,gr as generateIcsLocalDateTime,Or as generateIcsLocalOnlyDateTime,k as generateIcsMail,G as generateIcsOrganizer,J as generateIcsRecurrenceRule,R as generateIcsText,T as generateIcsTimeStamp,zr as generateIcsTimezone,Mr as generateIcsTimezoneProp,Lr as generateIcsTodo,Rr as generateIcsTrigger,A as generateIcsUtcDateTime,Ar as generateIcsWeekdayNumber,Cr as generateNonStandardValues,Mc as getDurationFromInterval,Yc as getEventEnd,ar as getEventEndFromDuration,Je as getTimezoneObjectOffset,ym as journalStatusTypes,zn as recurrenceObjectKeyIsNumber,An as recurrenceObjectKeyIsNumberArray,Nn as recurrenceObjectKeyIsTimeStamp,Vn as recurrenceObjectKeyIsWeekdayNumberArray,cr as recurrenceRuleFrequencies,Dm as timeTransparentTypes,se as timeZoneOffsetToMilliseconds,fm as todoStatusTypes,Tm as triggerRelations,Ge as weekDays};\n", "import { clientStore, config, datastore, editor, index } from \"@silverbulletmd/silverbullet/syscalls\";\nimport { convertIcsCalendar, type IcsCalendar, type IcsEvent, type IcsDateObjects } from \"ts-ics\";\n\nconst VERSION = \"0.3.1\";\nconst CACHE_KEY = \"icalendar:lastSync\";\n\n// Mapping of common Windows/Outlook timezones to their standard offsets (in hours)\nconst TIMEZONE_OFFSETS: Record = {\n \"GMT Standard Time\": 0,\n \"W. Europe Standard Time\": 1,\n \"Central Europe Standard Time\": 1,\n \"Romance Standard Time\": 1,\n \"Central European Standard Time\": 1,\n \"Eastern Standard Time\": -5,\n \"Central Standard Time\": -6,\n \"Mountain Standard Time\": -7,\n \"Pacific Standard Time\": -8,\n \"UTC\": 0,\n \"None\": 0\n};\n\n// ============================================================================\n// Types\n// ============================================================================\n\ntype DateToString = T extends Date ? string\n : T extends IcsDateObjects ? string\n : T extends object ? { [K in keyof T]: DateToString }\n : T extends Array ? Array>\n : T;\n\ninterface Source {\n url: string;\n name: string | undefined;\n}\n\ninterface PlugConfig {\n sources: any;\n cacheDuration: number | undefined;\n tzShift: number | undefined;\n}\n\ninterface CalendarEvent extends DateToString {\n ref: string;\n tag: \"ical-event\";\n sourceName: string | undefined;\n}\n\n// ============================================================================\n// Utility Functions\n// ============================================================================\n\nfunction toLocalISO(d: Date): string {\n const pad = (n: number) => String(n).padStart(2, \"0\");\n return d.getFullYear() +\n \"-\" + pad(d.getMonth() + 1) +\n \"-\" + pad(d.getDate()) +\n \"T\" + pad(d.getHours()) +\n \":\" + pad(d.getMinutes()) +\n \":\" + pad(d.getSeconds()) +\n \".\" + String(d.getMilliseconds()).padStart(3, \"0\");\n}\n\nfunction processIcsDate(obj: any, manualShift = 0): string {\n if (!obj) return \"\";\n let wallTimeStr = \"\";\n if (obj.local && typeof obj.local.date === \"string\") wallTimeStr = obj.local.date;\n else if (typeof obj.date === \"string\") wallTimeStr = obj.date;\n else if (obj.date instanceof Date) wallTimeStr = obj.date.toISOString();\n else if (obj instanceof Date) wallTimeStr = obj.toISOString();\n if (!wallTimeStr) return \"\";\n \n const baseDate = new Date(wallTimeStr.replace(\"Z\", \"\") + \"Z\");\n const tzName = obj.local?.timezone || obj.timezone || \"UTC\";\n const sourceOffset = TIMEZONE_OFFSETS[tzName] ?? 0;\n \n const utcMillis = baseDate.getTime() - (sourceOffset * 3600000);\n const finalDate = new Date(utcMillis + (manualShift * 3600000));\n \n return toLocalISO(finalDate);\n}\n\nfunction isIcsDateObjects(obj: any): obj is IcsDateObjects {\n return obj && typeof obj === 'object' && ('date' in obj && 'type' in obj);\n}\n\nasync function sha256Hash(str: string): Promise {\n const hashBuffer = await crypto.subtle.digest(\"SHA-256\", (new TextEncoder()).encode(str));\n return Array.from(new Uint8Array(hashBuffer)).map(b => b.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\nfunction convertDatesToStrings(obj: T, hourShift = 0): DateToString {\n if (obj === null || obj === undefined) return obj as DateToString;\n if (isIcsDateObjects(obj)) return processIcsDate(obj, hourShift) as DateToString;\n if (obj instanceof Date) return processIcsDate({ date: obj }, hourShift) as DateToString;\n if (Array.isArray(obj)) return obj.map(item => convertDatesToStrings(item, hourShift)) as DateToString;\n if (typeof obj === 'object') {\n const result: any = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) result[key] = convertDatesToStrings((obj as any)[key], hourShift);\n }\n return result as DateToString;\n }\n return obj as DateToString;\n}\n\nasync function getSources(): Promise<{ sources: Source[], tzShift: number }> {\n try {\n const rawConfig = await config.get(\"icalendar\", { sources: [] });\n let sources: Source[] = [];\n let tzShift = rawConfig.tzShift ?? 0;\n let rawSources = rawConfig.sources;\n if (rawSources && typeof rawSources === \"object\") {\n if (rawSources.tzShift !== undefined && tzShift === 0) tzShift = rawSources.tzShift;\n if (Array.isArray(rawSources)) sources = rawSources.filter(s => s && typeof s.url === \"string\");\n else if (rawSources.url) sources = [rawSources];\n }\n return { sources, tzShift };\n } catch (e) {\n return { sources: [], tzShift: 0 };\n }\n}\n\nasync function fetchAndParseCalendar(source: Source, hourShift = 0): Promise {\n let url = source.url.trim();\n if (url.includes(\" \")) url = encodeURI(url);\n const response = await fetch(url);\n if (!response.ok) throw new Error(`HTTP ${response.status}`);\n const calendar = convertIcsCalendar(undefined, await response.text());\n if (!calendar.events) return [];\n return await Promise.all(calendar.events.map(async (icsEvent: IcsEvent): Promise => {\n const uniqueKey = `${icsEvent.start?.date || ''}${icsEvent.uid || icsEvent.summary || ''}`;\n const ref = await sha256Hash(uniqueKey);\n return convertDatesToStrings({ ...icsEvent, ref, tag: \"ical-event\" as const, sourceName: source.name }, hourShift);\n }));\n}\n\n// ============================================================================\n// Public Commands\n// ============================================================================\n\nexport async function syncCalendars() {\n try {\n const { sources, tzShift } = await getSources();\n if (sources.length === 0) return;\n await editor.flashNotification(\"Syncing calendars...\", \"info\");\n const allEvents: CalendarEvent[] = [];\n for (const source of sources) {\n try {\n const events = await fetchAndParseCalendar(source, tzShift);\n allEvents.push(...events);\n } catch (err) {\n console.error(`Failed to sync ${source.name}:`, err);\n }\n }\n await index.indexObjects(\"$icalendar\", allEvents);\n await editor.flashNotification(`Synced ${allEvents.length} events`, \"info\");\n } catch (err) {\n console.error(\"Sync failed:\", err);\n }\n}\n\nexport async function forceSync() {\n await clientStore.del(CACHE_KEY);\n await syncCalendars();\n}\n\nexport async function clearCache() {\n if (!await editor.confirm(\"Clear all calendar events?\")) return;\n const pageKeys = await datastore.query({ prefix: [\"ridx\", \"$icalendar\"] });\n const allKeys: any[] = [];\n for (const { key } of pageKeys) {\n allKeys.push(key);\n allKeys.push([\"idx\", ...key.slice(2), \"$icalendar\"]);\n }\n if (allKeys.length > 0) await datastore.batchDel(allKeys);\n await clientStore.del(CACHE_KEY);\n await editor.flashNotification(\"Calendar index cleared\", \"info\");\n}\n\nexport async function showVersion() {\n await editor.flashNotification(`iCalendar Plug ${VERSION}`, \"info\");\n}\n", "\nimport { setupMessageListener } from \"https://deno.land/x/silverbullet@2.4.1/client/plugos/worker_runtime.ts\";\n\n// Imports\nimport {syncCalendars as syncCalendars} from \"file:///app/icalendar.ts\";\nimport {forceSync as forceSync} from \"file:///app/icalendar.ts\";\nimport {clearCache as clearCache} from \"file:///app/icalendar.ts\";\nimport {showVersion as showVersion} from \"file:///app/icalendar.ts\";\n\n\n// Function mapping\nconst functionMapping = {\n syncCalendars: syncCalendars,\n forceSync: forceSync,\n clearCache: clearCache,\n showVersion: showVersion,\n\n};\n\n// Manifest\nconst manifest = {\n \"name\": \"Library/sstent/icalendar\",\n \"version\": \"0.3.1\",\n \"author\": \"sstent\",\n \"functions\": {\n \"syncCalendars\": {\n \"path\": \"icalendar.ts:syncCalendars\",\n \"command\": \"iCalendar: Sync\"\n },\n \"forceSync\": {\n \"path\": \"icalendar.ts:forceSync\",\n \"command\": \"iCalendar: Force Sync\"\n },\n \"clearCache\": {\n \"path\": \"icalendar.ts:clearCache\",\n \"command\": \"iCalendar: Clear Cache\"\n },\n \"showVersion\": {\n \"path\": \"icalendar.ts:showVersion\",\n \"command\": \"iCalendar: Show Version\"\n }\n },\n \"permissions\": [\n \"http\"\n ],\n \"assets\": {}\n};\n\nexport const plug = {manifest, functionMapping};\n\nsetupMessageListener(functionMapping, manifest, self.postMessage);\n"], - "mappings": "4FAAO,SAASA,GAAaC,EAAS,CACpC,IAAMC,EAAY,KAAKD,CAAA,EACjBE,EAAMD,EAAU,OAChBE,EAAQ,IAAI,WAAWD,CAAA,EAC7B,QAASE,EAAI,EAAGA,EAAIF,EAAKE,IACvBD,EAAMC,CAAA,EAAKH,EAAU,WAAWG,CAAA,EAElC,OAAOD,CACT,CAEO,SAASE,EAAaC,EAA2B,CAClD,OAAOA,GAAW,WACpBA,EAAS,IAAI,YAAA,EAAc,OAAOA,CAAA,GAEpC,IAAIC,EAAS,GACPL,EAAMI,EAAO,WACnB,QAASF,EAAI,EAAGA,EAAIF,EAAKE,IACvBG,GAAU,OAAO,aAAaD,EAAOF,CAAA,CAAE,EAEzC,OAAO,KAAKG,CAAA,CACd,CA6DA,IAAMC,GAAe,IAAI,WAAW,EAAA,ECzE7B,IAAMC,EAAN,KAAM,uBACH,gBAOD,UAEP,YACUC,EAAiB,GACjBC,EAAyB,IACjC,MAFQ,OAAAD,OACA,eAAAC,OAJH,UAAwB,CAAA,EAM7B,KAAK,OAASD,EAGd,KAAK,gBAAkB,CACrB,IAAK,QAAQ,IAAI,KAAK,OAAA,EACtB,KAAM,QAAQ,KAAK,KAAK,OAAA,EACxB,KAAM,QAAQ,KAAK,KAAK,OAAA,EACxB,MAAO,QAAQ,MAAM,KAAK,OAAA,EAC1B,MAAO,QAAQ,MAAM,KAAK,OAAA,CAC5B,EAEA,KAAK,aAAY,CACnB,CAEQ,cAAqB,CAC3B,IAAME,EAAuBC,GACpB,IAAIC,IAAA,CACT,IAAMC,EAAe,KAAK,OAAS,CAAC,KAAK,UAAWD,GAAQA,EAG5D,KAAK,gBAAgBD,CAAA,EAAM,GAAIE,CAAA,EAG/B,KAAK,WAAWF,EAAOC,CAAA,CACzB,EAGF,QAAQ,IAAMF,EAAoB,KAAA,EAClC,QAAQ,KAAOA,EAAoB,MAAA,EACnC,QAAQ,KAAOA,EAAoB,MAAA,EACnC,QAAQ,MAAQA,EAAoB,OAAA,EACpC,QAAQ,MAAQA,EAAoB,OAAA,CACtC,CAEQ,WAAWC,EAA0BC,EAAmB,CAC9D,IAAME,EAAkB,CACtB,MAAAH,EACA,UAAW,KAAK,IAAG,EACnB,QAASC,EAAK,IAAKG,GAAA,CACjB,GAAI,OAAOA,GAAQ,SACjB,OAAOA,EAET,GAAI,CACF,OAAO,KAAK,UAAUA,CAAA,CACxB,MAAQ,CAEN,OAAO,OAAOA,CAAA,CAChB,CACF,CAAA,EAAG,KAAK,GAAA,CACV,EAEA,KAAK,UAAU,KAAKD,CAAA,EAGhB,KAAK,UAAU,OAAS,KAAK,gBAC/B,KAAK,UAAU,MAAK,CAExB,CAKA,MAAM,aAAaE,EAAqBC,EAAgB,CAEtD,GADa,KAAK,UACT,OAAS,EAAG,CAEnB,IAAMC,EAAU,IAAI,KAAK,WACzB,KAAK,UAAY,CAAA,EACjB,GAAI,CAQF,GAAI,EAPS,MAAM,MAAMF,EAAa,CACpC,OAAQ,OACR,QAAS,CACP,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAUE,EAAQ,IAAKJ,IAAW,CAAE,GAAGA,EAAO,OAAAG,CAAO,EAAC,CAAA,CACnE,CAAA,GACU,GACR,MAAM,IAAI,MAAM,+BAAA,CAEpB,OAASE,EAAQ,CACf,QAAQ,KAAK,gCAAiCA,EAAE,OAAO,EAEvD,KAAK,UAAU,QAAO,GAAID,CAAA,CAC5B,CACF,CACF,CACF,EAGIE,GAEG,SAASC,GAAWb,EAAiB,GAAE,CAC5C,OAAAY,GAAe,IAAIb,EAAOC,CAAA,EACnBY,EACT,CCvGA,IAAIE,EAAqBC,GAAA,CACvB,MAAM,IAAI,MAAM,qBAAA,CAClB,EAUMC,GAAqB,OAAO,OAAW,KAE3C,OAAO,WAAW,cAAkB,IAElC,OAAO,KAAS,MAElB,KAAK,KAAO,CACV,KAAM,CAAA,EAEN,MAAO,CACL,KAAM,QACR,EACA,IAAK,CAEH,KAAA,CACA,CACF,CACF,GAGF,IAAMC,EAAkB,IAAI,IAQxBC,EAAe,EAEfF,KACF,WAAW,QAAU,MAAOG,KAAiBC,IACpC,MAAM,IAAI,QAAQ,CAACC,EAASC,IAAA,CACjCJ,IACAD,EAAgB,IAAIC,EAAc,CAAE,QAAAG,EAAS,OAAAC,CAAO,CAAA,EACpDR,EAAkB,CAChB,KAAM,MACN,GAAII,EACJ,KAAAC,EACA,KAAAC,CACF,CAAA,CACF,CAAA,GAIG,SAASG,GAEdC,EACAC,EACAC,EAA+C,CAE1CV,KAKLF,EAAoBY,EACpB,KAAK,iBAAiB,UAAYC,GAAA,EAC/B,SAAA,CACC,IAAMC,EAAOD,EAAM,KACnB,OAAQC,EAAK,KAAI,CACf,IAAK,MACH,CACE,IAAMC,EAAKL,EAAgBI,EAAK,IAAI,EACpC,GAAI,CAACC,EACH,MAAM,IAAI,MAAM,wBAAwBD,EAAK,IAAI,EAAE,EAErD,GAAI,CACF,IAAME,EAAS,MAAM,QAAQ,QAAQD,EAAA,GAAOD,EAAK,MAAQ,CAAA,CAAE,CAAA,EAC3Dd,EAAkB,CAChB,KAAM,OACN,GAAIc,EAAK,GACT,OAAQE,CACV,CAAA,CACF,OAASC,EAAQ,CACf,QAAQ,MACN,2DACAH,EAAK,KACL,SACAG,EAAE,OAAO,EAEXjB,EAAkB,CAChB,KAAM,OACN,GAAIc,EAAK,GACT,MAAOG,EAAE,OACX,CAAA,CACF,CACF,CACA,MACF,IAAK,OACH,CACE,IAAMC,EAAYJ,EAAK,GACjBK,EAAShB,EAAgB,IAAIe,CAAA,EACnC,GAAI,CAACC,EACH,MAAM,MAAM,oBAAA,EAEdhB,EAAgB,OAAOe,CAAA,EACnBJ,EAAK,MACPK,EAAO,OAAO,IAAI,MAAML,EAAK,KAAK,CAAA,EAElCK,EAAO,QAAQL,EAAK,MAAM,CAE9B,CAEA,KACJ,CACF,GAAC,EAAI,MAAM,QAAQ,KAAK,CAC1B,CAAA,EAEAd,EAAkB,CAChB,KAAM,WACN,SAAAW,CACF,CAAA,EACAS,GAAW,IAAIT,EAAS,IAAI,QAAQ,EACtC,CAEA,eAAsBU,GACpBC,EACAC,EAA6B,CAE7B,GAAI,OAAOD,GAAY,SAAU,CAC/B,IAAME,EAAO,IAAI,WAAW,MAAMF,EAAQ,YAAW,CAAA,EAC/CG,EAAcD,EAAK,OAAS,EAAIE,EAAaF,CAAA,EAAQ,OAC3DD,EAAU,CACR,OAAQD,EAAQ,OAChB,QAAS,OAAO,YAAYA,EAAQ,QAAQ,QAAO,CAAA,EACnD,WAAYG,CACd,EACAH,EAAUA,EAAQ,GACpB,CACA,OAAO,QAAQ,qBAAsBA,EAASC,CAAA,CAChD,CAGA,WAAW,YAAc,WAAW,MAG7B,SAASI,IAAA,CAEd,WAAW,MAAQ,eACjBL,EACAM,EAAkB,CAElB,IAAMH,EAAcG,GAAQA,EAAK,KAC7BF,EACA,IAAI,WAAW,MAAO,IAAI,SAASE,EAAK,IAAI,EAAG,YAAW,CAAA,CAAA,EAE1D,OACEC,EAAI,MAAMR,GACdC,EACAM,GAAQ,CACN,OAAQA,EAAK,OACb,QAASA,EAAK,QACd,WAAYH,CACd,CAAA,EAGF,OAAO,IAAI,SACRI,EAAE,WAAaC,GAAaD,EAAE,UAAU,EAAI,KAC7C,CACE,OAAQA,EAAE,OACV,QAASA,EAAE,OACb,CAAA,CAEJ,CACF,CAEI3B,IACFyB,GAAA,ECjMF,IAAAI,EAAA,GAAAC,EAAAD,EAAA,WAAAE,GAAA,qBAAAC,GAAA,YAAAC,GAAA,oBAAAC,GAAA,eAAAC,GAAA,aAAAC,GAAA,iBAAAC,GAAA,cAAAC,GAAA,sBAAAC,GAAA,SAAAC,GAAA,YAAAC,GAAA,qBAAAC,GAAA,mBAAAC,GAAA,uBAAAC,GAAA,mBAAAC,GAAA,cAAAC,GAAA,2BAAAC,GAAA,iBAAAC,GAAA,YAAAC,GAAA,gBAAAC,GAAA,cAAAC,GAAA,cAAAC,GAAA,mBAAAC,GAAA,gBAAAC,GAAA,kBAAAC,GAAA,aAAAC,GAAA,eAAAC,GAAA,qBAAAC,GAAA,iBAAAC,GAAA,eAAAC,GAAA,aAAAC,GAAA,cAAAC,GAAA,uBAAAC,GAAA,sBAAAC,GAAA,oBAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,uBAAAC,GAAA,SAAAC,GAAA,4BAAAC,GAAA,eAAAC,GAAA,aAAAC,GAAA,iBAAAC,GAAA,SAAAC,GAAA,gBAAAC,GAAA,iBAAAC,GAAA,YAAAC,GAAA,gBAAAC,GAAA,cAAAC,GAAA,iBAAAC,GAAA,kBAAAC,GAAA,eAAAC,GAAA,SAAAC,GAAA,WAAAC,GAAA,cAAAC,GAAA,eAAAC,GAAA,UAAAC,KCKI,OAAO,KAAS,MACjB,KAAe,CACd,QAAS,IAAA,CACP,MAAM,IAAI,MAAM,sBAAA,CAClB,CACF,GAIK,SAASC,EAAQC,KAAiBC,EAAW,CAClD,OAAQ,WAAmB,QAAQD,EAAA,GAASC,CAAA,CAC9C,CDDO,SAASC,IAAA,CACd,OAAOC,EAAQ,uBAAA,CACjB,CAMO,SAASC,IAAA,CACd,OAAOD,EAAQ,2BAAA,CACjB,CAMO,SAASE,IAAA,CACd,OAAOF,EAAQ,uBAAA,CACjB,CAMO,SAASG,IAAA,CACd,OAAOH,EAAQ,+BAAA,CACjB,CAMO,SAASI,IAAA,CACd,OAAOJ,EAAQ,yBAAA,CACjB,CAKO,SAASK,IAAA,CACd,OAAOL,EAAQ,gBAAA,CACjB,CAMO,SAASM,GACdC,EACAC,EAAiB,GAAK,CAEtB,OAAOR,EAAQ,iBAAkBO,EAASC,CAAA,CAC5C,CAKO,SAASC,IAAA,CACd,OAAOT,EAAQ,kBAAA,CACjB,CAKO,SAASU,IAAA,CAGd,OAAOV,EAAQ,qBAAA,CACjB,CAOO,SAASW,GAAaC,EAAcC,EAAU,CACnD,OAAOb,EAAQ,sBAAuBY,EAAMC,CAAA,CAC9C,CAQO,SAASC,GAAcC,EAAcC,EAAe,CACzD,OAAOhB,EAAQ,uBAAwBe,EAAMC,CAAA,CAC/C,CAKO,SAASC,IAAA,CACd,OAAOjB,EAAQ,aAAA,CACjB,CAQO,SAASkB,GACdC,EACAC,EAAe,GACfC,EAAY,GAAK,CAEjB,OAAOrB,EAAQ,kBAAmBmB,EAAKC,EAAcC,CAAA,CACvD,CAMO,SAASC,GACdC,EAA6C,OAAM,CAEnD,OAAOvB,EAAQ,2BAA4BuB,CAAA,CAC7C,CAKO,SAASC,IAAA,CACd,OAAOxB,EAAQ,2BAAA,CACjB,CAKO,SAASyB,IAAA,CACd,OAAOzB,EAAQ,mBAAA,CACjB,CAKO,SAAS0B,IAAA,CACd,OAAO1B,EAAQ,iBAAA,CACjB,CAKO,SAAS2B,IAAA,CACd,OAAO3B,EAAQ,2BAAA,CACjB,CAKO,SAAS4B,IAAA,CACd,OAAO5B,EAAQ,gCAAA,CACjB,CAOO,SAAS6B,GAAQC,EAAaC,EAAiB,GAAK,CACzD,OAAO/B,EAAQ,iBAAkB8B,EAAKC,CAAA,CACxC,CAEO,SAASV,IAAA,CACd,OAAOrB,EAAQ,kBAAA,CACjB,CAOO,SAASgC,GAAUC,EAAa,CACrC,OAAOjC,EAAQ,mBAAoBiC,CAAA,CACrC,CAOO,SAASC,GAAaC,EAAkBC,EAAe,CAC5D,OAAOpC,EAAQ,sBAAuBmC,EAAUC,CAAA,CAClD,CAOO,SAASC,GACdC,EACAC,EAAgB,CAEhB,OAAOvC,EAAQ,oBAAqBsC,EAAQC,CAAA,CAC9C,CAOO,SAASC,GACdC,EACAC,EAAyB,OAAM,CAE/B,OAAO1C,EAAQ,2BAA4ByC,EAASC,CAAA,CACtD,CASO,SAASC,GACdC,EACAC,EACAC,EAAW,GACXC,EAAc,GAAE,CAEhB,OAAO/C,EAAQ,mBAAoB4C,EAAOC,EAASC,EAAUC,CAAA,CAC/D,CASO,SAASC,GACdC,EACA1B,EACA2B,EACAC,EAAS,GAAE,CAEX,OAAOnD,EAAQ,mBAAoBiD,EAAI1B,EAAM2B,EAAMC,CAAA,CACrD,CAMO,SAASC,GACdH,EAAmC,CAEnC,OAAOjD,EAAQ,mBAAoBiD,CAAA,CACrC,CAEO,SAASI,GACdC,EACAC,EAAqB,CAErB,OAAOvD,EAAQ,sBAAuBsD,EAAoBC,CAAA,CAC5D,CAOO,SAASC,GAAYC,EAAcC,EAAW,CACnD,OAAO1D,EAAQ,qBAAsByD,EAAMC,CAAA,CAC7C,CAQO,SAASC,GACd/C,EACAC,EACA4C,EAAY,CAEZ,OAAOzD,EAAQ,sBAAuBY,EAAMC,EAAI4C,CAAA,CAClD,CAOO,SAASG,GAAWF,EAAaG,EAAS,GAAK,CACpD,OAAO7D,EAAQ,oBAAqB0D,EAAKG,CAAA,CAC3C,CAQO,SAASC,GACdC,EACAC,EAAS,EACTH,EAAS,GAAK,CAEd,OAAO7D,EAAQ,0BAA2B+D,EAAMC,EAAQH,CAAA,CAC1D,CAMO,SAASI,GACdR,EACAS,EAAiB,GACjBC,EAAoB,GAAK,CAEzB,OAAOnE,EACL,wBACAyD,EACAS,EACAC,CAAA,CAEJ,CAKO,SAASC,GAASC,EAAW,CAClC,OAAOrE,EAAQ,kBAAmBqE,CAAA,CACpC,CAQO,SAASC,GACd7B,EACA8B,EAAe,GAAE,CAEjB,OAAOvE,EAAQ,gBAAiByC,EAAS8B,CAAA,CAC3C,CAOO,SAASC,GACd/B,EAAe,CAEf,OAAOzC,EAAQ,iBAAkByC,CAAA,CACnC,CAOO,SAASgC,GACdhC,EAAe,CAEf,OAAOzC,EAAQ,eAAgByC,CAAA,CACjC,CAOO,SAASiC,GAAYC,EAAW,CACrC,OAAO3E,EAAQ,qBAAsB2E,CAAA,CACvC,CAOO,SAASC,GAAYD,EAAaE,EAAU,CACjD,OAAO7E,EAAQ,qBAAsB2E,EAAKE,CAAA,CAC5C,CAKO,SAASC,IAAA,CACd,OAAO9E,EAAQ,aAAA,CACjB,CAKO,SAAS+E,IAAA,CACd,OAAO/E,EAAQ,eAAA,CACjB,CAKO,SAASgF,IAAA,CACd,OAAOhF,EAAQ,mBAAA,CACjB,CAKO,SAASiF,IAAA,CACd,OAAOjF,EAAQ,gBAAA,CACjB,CAKO,SAASkF,IAAA,CACd,OAAOlF,EAAQ,kBAAA,CACjB,CAKO,SAASmF,IAAA,CACd,OAAOnF,EAAQ,aAAA,CACjB,CAKO,SAASoF,IAAA,CACd,OAAOpF,EAAQ,aAAA,CACjB,CAKO,SAASqF,IAAA,CACd,OAAOrF,EAAQ,wBAAA,CACjB,CAMO,SAASsF,GAAgBC,EAAmB,CACjD,OAAOvF,EAAQ,yBAA0BuF,CAAA,CAC3C,CAKO,SAASC,IAAA,CACd,OAAOxF,EAAQ,mBAAA,CACjB,CAKO,SAASyF,IAAA,CACd,OAAOzF,EAAQ,sBAAA,CACjB,CAEO,SAAS0F,IAAA,CACd,OAAO1F,EAAQ,mBAAA,CACjB,CAEO,SAAS2F,IAAA,CACd,OAAO3F,EAAQ,qBAAA,CACjB,CAQO,SAAS4F,GAAMC,EAAiB,CACrC,OAAO7F,EAAQ,eAAgB6F,CAAA,CACjC,CAKO,SAASC,IAAA,CACd,OAAO9F,EAAQ,yBAAA,CACjB,CASO,SAAS+F,GAAYrD,EAAc6C,EAAU,CAClD,OAAOvF,EAAQ,qBAAsB0C,EAAM6C,CAAA,CAC7C,CAKO,SAASS,IAAA,CACd,OAAOhG,EAAQ,iBAAA,CACjB,CEpgBA,IAAAiG,EAAA,GAAAC,EAAAD,EAAA,SAAAE,GAAA,QAAAC,GAAA,QAAAC,KAaO,SAASC,GAAIC,EAAaC,EAAU,CACzC,OAAOC,EAAQ,kBAAmBF,EAAKC,CAAA,CACzC,CAOO,SAASE,GAAIH,EAAW,CAC7B,OAAOE,EAAQ,kBAAmBF,CAAA,CACpC,CAMO,SAASI,GAAIJ,EAAW,CAC7B,OAAOE,EAAQ,qBAAsBF,CAAA,CACvC,CCiDA,IAAMK,GAAe,IAAI,WAAW,EAAA,EChFpC,IAAAC,EAAA,GAAAC,EAAAD,EAAA,cAAAE,GAAA,sBAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,QAAAC,GAAA,QAAAC,GAAA,kBAAAC,GAAA,UAAAC,GAAA,gBAAAC,GAAA,aAAAC,GAAA,QAAAC,KAcO,SAASC,GAAIC,EAAYC,EAAU,CACxC,OAAOC,EAAQ,gBAAiBF,EAAKC,CAAA,CACvC,CAMO,SAASE,GAASC,EAAS,CAChC,OAAOF,EAAQ,qBAAsBE,CAAA,CACvC,CAOO,SAASC,GAAIL,EAAU,CAC5B,OAAOE,EAAQ,gBAAiBF,CAAA,CAClC,CAOO,SAASM,GAASC,EAAa,CACpC,OAAOL,EAAQ,qBAAsBK,CAAA,CACvC,CAMO,SAASC,GAAIR,EAAU,CAC5B,OAAOE,EAAQ,mBAAoBF,CAAA,CACrC,CAMO,SAASS,GAASF,EAAa,CACpC,OAAOL,EAAQ,wBAAyBK,CAAA,CAC1C,CAEO,SAASG,GAAMC,EAAgB,CACpC,OAAOT,EAAQ,kBAAmBS,CAAA,CACpC,CAEO,SAASC,GACdC,EACAH,EACAI,EAAoC,CAEpC,OAAOZ,EAAQ,qBAAsBW,EAAQH,EAAOI,CAAA,CACtD,CAEO,SAASC,GAAkBF,EAAa,CAC7C,OAAOX,EAAQ,8BAA+BW,CAAA,CAChD,CAOO,SAASG,GACdN,EACAO,EAA+B,CAE/B,OAAOf,EAAQ,wBAAyBQ,EAAOO,CAAA,CACjD,CAMO,SAASC,IAAA,CACd,OAAOhB,EAAQ,yBAAA,CACjB,CC/FA,IAAAiB,EAAA,GAAAC,EAAAD,EAAA,YAAAE,GAAA,QAAAC,GAAA,QAAAC,GAAA,WAAAC,GAAA,QAAAC,KAQO,SAASC,GAAOC,EAAcC,EAAe,CAClD,OAAOC,EAAQ,aAAcF,EAAMC,CAAA,CACrC,CAaO,SAASE,GACdC,EACAC,EAAS,CAET,OAAOH,EAAQ,aAAcE,EAAcC,CAAA,CAC7C,CAKO,SAASC,GACdN,EACAK,EAAQ,CAER,OAAOH,EAAQ,gBAAiBF,EAAMK,CAAA,CACxC,CAOO,SAASE,GAAIP,EAAY,CAC9B,OAAOE,EAAQ,aAAcF,CAAA,CAC/B,CAQO,SAASQ,GAAOC,EAAaC,EAAW,CAC7C,OAAOR,EAAQ,gBAAiBO,EAAKC,CAAA,CACvC,CCxDA,IAAAC,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,GAAA,mBAAAC,GAAA,iBAAAC,GAAA,oBAAAC,KAcO,SAASC,GACdC,EACAC,EAAyB,CAEzB,OAAOC,EAAQ,qBAAsBF,EAAMC,CAAA,CAC7C,CASO,SAASE,GACdC,EACAC,EACAC,EACAC,EAAgB,CAEhB,OAAOL,EAAQ,wBAAyBE,EAAKC,EAAOC,EAAiBC,CAAA,CACvE,CASO,SAASC,GACdR,EACAI,EACAK,EAAW,CAEX,OAAOP,EAAQ,uBAAwBF,EAAMI,EAAKK,CAAA,CACpD,CAKO,SAASC,IAAA,CACd,OAAOR,EAAQ,uBAAA,CACjB,CC1DA,IAAIS,EAAEC,GAAG,OAAO,YAAY,OAAO,QAAQA,CAAC,EAAE,IAAI,CAAC,CAACC,EAAE,CAAC,IAAI,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAEC,EAAEF,GAAG,OAAO,KAAKA,CAAC,EAAM,GAAG,CAAC,OAAO,SAAS,YAAY,cAAc,SAAS,WAAW,OAAO,SAAS,QAAQ,UAAU,QAAQ,UAAU,YAAY,SAAS,UAAU,UAAU,EAAEG,GAAGJ,EAAE,EAAE,EAAEK,GAAGF,EAAEC,EAAE,EAAEE,GAAGH,EAAE,EAAE,EAAMI,GAAG,CAAC,OAAO,SAAS,OAAO,SAAS,QAAQ,UAAU,KAAK,cAAc,EAAEC,GAAGR,EAAEO,EAAE,EAAEE,GAAGN,EAAEK,EAAE,EAAEE,GAAGP,EAAEI,EAAE,EAAMI,GAAG,CAAC,OAAO,QAAQ,WAAW,aAAa,QAAQ,UAAU,YAAY,cAAc,aAAa,gBAAgB,SAAS,WAAW,eAAe,SAAS,eAAe,QAAQ,MAAM,UAAU,MAAM,UAAU,QAAQ,UAAU,IAAI,MAAM,gBAAgB,SAAS,IAAI,MAAM,IAAI,QAAQ,SAAS,WAAW,IAAI,MAAM,MAAM,QAAQ,UAAU,YAAY,SAAS,WAAW,SAAS,WAAW,OAAO,SAAS,OAAO,SAAS,aAAa,gBAAgB,UAAU,WAAW,QAAQ,SAAS,EAAEC,GAAGZ,EAAEW,EAAE,EAAEE,GAAGV,EAAES,EAAE,EAAEE,GAAGX,EAAEQ,EAAE,EAAMI,GAAG,CAAC,GAAG,OAAO,aAAa,gBAAgB,IAAI,OAAO,EAAEC,GAAGhB,EAAEe,EAAE,EAAEE,GAAGd,EAAEa,EAAE,EAAEE,GAAGf,EAAEY,EAAE,EAAMI,GAAG,CAAC,QAAQ,UAAU,KAAK,SAAS,WAAW,eAAe,SAAS,aAAa,eAAe,QAAQ,eAAe,QAAQ,MAAM,SAAS,EAAEC,GAAGpB,EAAEmB,EAAE,EAAEE,GAAGlB,EAAEiB,EAAE,EAAEE,GAAGnB,EAAEgB,EAAE,EAAMI,GAAG,CAAC,MAAM,QAAQ,OAAO,SAAS,SAAS,WAAW,QAAQ,UAAU,WAAW,aAAa,SAAS,WAAW,SAAS,WAAW,SAAS,WAAW,UAAU,YAAY,MAAM,QAAQ,UAAU,OAAO,SAAS,WAAW,MAAM,QAAQ,cAAc,MAAM,EAAEC,GAAGxB,EAAEuB,EAAE,EAAEE,GAAGtB,EAAEqB,EAAE,EAAEE,GAAGvB,EAAEoB,EAAE,EAAMI,GAAG,CAAC,WAAW,aAAa,QAAQ,UAAU,YAAY,cAAc,aAAa,gBAAgB,SAAS,WAAW,eAAe,SAAS,eAAe,QAAQ,MAAM,UAAU,MAAM,UAAU,QAAQ,UAAU,IAAI,MAAM,IAAI,MAAM,SAAS,WAAW,IAAI,MAAM,MAAM,QAAQ,UAAU,YAAY,SAAS,WAAW,SAAS,WAAW,OAAO,SAAS,OAAO,SAAS,aAAa,gBAAgB,UAAU,WAAW,QAAQ,UAAU,UAAU,YAAY,IAAI,MAAM,gBAAgB,kBAAkB,EAAEC,GAAG5B,EAAE2B,EAAE,EAAEE,GAAG1B,EAAEyB,EAAE,EAAEE,GAAG3B,EAAEwB,EAAE,EAAMI,GAAG,CAAC,WAAW,aAAa,QAAQ,UAAU,YAAY,cAAc,aAAa,gBAAgB,eAAe,SAAS,eAAe,QAAQ,MAAM,UAAU,MAAM,UAAU,QAAQ,UAAU,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,MAAM,QAAQ,UAAU,YAAY,SAAS,WAAW,OAAO,SAAS,OAAO,SAAS,aAAa,gBAAgB,UAAU,WAAW,QAAQ,SAAS,EAAEC,GAAGhC,EAAE+B,EAAE,EAAEE,GAAG9B,EAAE6B,EAAE,EAAEE,GAAG/B,EAAE4B,EAAE,EAAMI,GAAG,CAAC,MAAM,UAAU,MAAM,UAAU,IAAI,MAAM,IAAI,MAAM,UAAU,YAAY,UAAU,WAAW,QAAQ,UAAU,IAAI,QAAQ,SAAS,UAAU,EAAEC,GAAGpC,EAAEmC,EAAE,EAAEE,GAAGlC,EAAEiC,EAAE,EAAEE,GAAGnC,EAAEgC,EAAE,EAAMI,GAAG,QAAQC,GAAG,MAAMC,GAAG,YAAYC,GAAE,YAAYC,GAAG,WAAWC,GAAG,WAAWC,GAAE,SAASC,GAAG,SAASC,GAAG,QAAQC,GAAG,WAAWC,GAAG,YAA0C,IAAIC,GAAGC,GAAG,IAAI,OAAO,GAAGC,EAAE,IAAID,CAAC,eAAeE,EAAE,IAAIF,CAAC,GAAG,GAAG,EAAEG,GAAGH,GAAG,IAAI,OAAO,GAAGC,EAAE,IAAID,CAAC,IAAIE,EAAE,IAAIF,CAAC,GAAG,GAAG,EAAE,IAAcI,GAAG,aAAjB,IAC70FC,GAAG;AAAA,EACHC,GAAG,IAAIC,EAAE,IAAIC,GAAG,IAAIC,GAAG,IAFszF,IAE3yFC,GAAG,IAAk8C,IAAIC,GAAG,KAAK,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,IAAIC,GAAG,CAACD,GAAGE,GAAG,OAA7C,IAA6DC,GAAG,IAAIC,GAAG,KAASC,GAAG,KAASC,GAAGD,GAAG,GAAGE,GAAGD,GAAG,EAAEE,GAAGF,GAAG,SAASG,GAAGD,GAAG,GAAGE,GAAGD,GAAG,EAAEE,GAAG,OAAO,IAAI,mBAAmB,EAAE,SAASC,EAAEC,EAAEC,EAAE,CAAC,OAAO,OAAOD,GAAG,WAAWA,EAAEC,CAAC,EAAED,GAAG,OAAOA,GAAG,UAAUF,MAAME,EAAEA,EAAEF,EAAE,EAAEG,CAAC,EAAED,aAAa,KAAK,IAAIA,EAAE,YAAYC,CAAC,EAAE,IAAI,KAAKA,CAAC,CAAC,CAAC,SAASC,EAAEF,EAAEC,EAAE,CAAC,OAAOF,EAAEE,GAAGD,EAAEA,CAAC,CAAC,CAAC,SAASG,GAAEH,EAAEC,EAAE,EAAE,CAAC,IAAI,EAAEC,EAAEF,EAAiB,GAAE,EAAE,EAAE,OAAO,MAAMC,CAAC,EAAEF,EAAkB,GAAE,IAAKC,EAAE,GAAG,GAAGC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAEA,CAAC,EAAE,EAAE,CAAC,SAASG,GAAGJ,EAAEC,EAAE,EAAE,CAAC,IAAI,EAAEC,EAAEF,EAAiB,GAAE,EAAE,EAAE,GAAG,MAAMC,CAAC,EAAE,OAAOF,EAAkB,GAAE,IAAKC,EAAE,GAAG,EAAE,GAAG,CAACC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAEI,EAAEN,EAAkB,GAAE,IAAKC,EAAE,EAAE,QAAQ,CAAC,EAAEK,EAAE,SAAS,EAAE,SAAS,EAAEJ,EAAE,EAAE,CAAC,EAAE,IAAI,EAAEI,EAAE,QAAQ,EAAE,OAAO,GAAG,EAAEA,GAAG,EAAE,YAAYA,EAAE,YAAY,EAAEA,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,SAASC,EAAEN,EAAEC,EAAE,EAAE,CAAC,OAAOF,EAAkB,GAAE,IAAKC,EAAE,CAACE,EAAEF,CAAC,EAAEC,CAAC,CAAC,CAAC,SAASM,GAAGP,EAAEC,EAAE,EAAE,CAAC,OAAOK,EAAEN,EAAEC,EAAEV,GAAG,CAAC,CAAC,CAAC,IAAIiB,GAAG,CAAC,EAAE,SAASC,GAAG,CAAC,OAAOD,EAAE,CAAC,SAASE,EAAGV,EAAEC,EAAE,CAAC,IAAIU,EAAEC,EAAEC,EAAEC,EAAE,IAAIC,EAAEN,EAAE,EAAEO,EAAkBf,GAAE,gBAAiBW,GAAGD,EAAiBV,GAAE,SAAS,KAAK,OAAOU,EAAE,UAAU,KAAK,OAAOC,EAAE,eAAeG,EAAE,gBAAgBD,GAAGD,EAAEE,EAAE,SAAS,KAAK,OAAOF,EAAE,UAAU,KAAK,OAAOC,EAAE,eAAe,EAAEG,EAAEf,EAAEF,EAAiBC,GAAE,EAAE,EAAEI,EAAEY,EAAE,OAAO,EAAEC,GAAGb,EAAEW,EAAE,EAAE,GAAGX,EAAEW,EAAE,OAAOC,EAAE,QAAQA,EAAE,QAAQ,EAAEC,CAAC,EAAED,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,EAAEA,CAAC,CAAwM,SAASE,GAAEC,KAAKC,EAAE,CAAC,IAAI,EAAEC,EAAE,KAAK,KAAKF,GAAGC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC,EAAE,OAAOA,EAAE,IAAI,CAAC,CAAC,CAAC,SAASE,GAAGH,EAAEC,EAAE,CAAC,IAAI,EAAEG,EAAEJ,EAAiBC,GAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAA0H,SAASI,GAAGC,EAAEC,EAAE,EAAE,CAAC,IAAI,EAAEC,EAAEF,EAAiB,GAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAEC,EAAEE,EAAE,EAAE,CAAC,CAAC,SAASC,GAAGJ,EAAEC,EAAE,EAAE,CAAC,OAAOI,EAAEL,EAAEC,EAAE,IAAI,CAAC,CAAC,CAAC,SAASK,GAAEN,EAAEC,EAAE,EAAE,CAAC,OAAOM,GAAEP,EAAEC,EAAE,EAAE,CAAC,CAAC,CAAC,SAASO,GAAGR,EAAEC,EAAE,EAAE,CAAC,OAAOQ,GAAGT,EAAEC,EAAE,GAAG,CAAC,CAAC,CAAC,SAASS,GAAGV,EAAEC,EAAE,CAAC,IAAI,EAAE,CAACC,EAAEF,CAAC,EAAE,CAACE,EAAED,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAs0B,SAASU,GAAGC,EAAEC,EAAE,CAAC,IAAI,EAAEC,EAAEF,EAAiBC,GAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,CAAqK,SAASE,GAAGC,EAAEC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAEC,GAAEF,EAAEC,EAAE,MAAMA,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,SAASE,GAAGH,EAAEC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAAEF,GAAkBE,GAAE,GAAGD,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAEI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIC,EAAkBJ,GAAE,MAAO,EAAE,GAAG,CAACI,EAAE,MAAM,CAAC,EAAEA,EAAE,IAAIA,EAAE,CAACA,EAAE,EAAE,CAAC,GAAG,IAAIC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAGF,GAAGE,EAAE,KAAKC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAEF,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAEC,EAAE,QAAQ,EAAEA,CAAC,CAAC,SAASE,GAAGR,EAAEC,EAAE,CAAC,IAAI,EAAEQ,EAAET,EAAiBC,GAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAASS,GAAGV,EAAEC,EAAE,CAAC,IAAI,EAAEQ,EAAET,EAAiBC,GAAE,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,SAASU,GAAGX,EAAEC,EAAE,CAAC,IAAI,EAAEQ,EAAET,EAAiBC,GAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAASW,GAAGZ,EAAEC,EAAE,CAAC,IAAIY,EAAEC,EAAEC,EAAEC,EAAE,IAAIC,EAAER,EAAET,EAAiBC,GAAE,EAAE,EAAEiB,EAAED,EAAE,YAAY,EAAEE,EAAEC,EAAE,EAAEhB,EAAkBH,GAAE,yBAA0Ba,GAAGD,EAAiBZ,GAAE,SAAS,KAAK,OAAOY,EAAE,UAAU,KAAK,OAAOC,EAAE,wBAAwBK,EAAE,yBAAyBH,GAAGD,EAAEI,EAAE,SAAS,KAAK,OAAOJ,EAAE,UAAU,KAAK,OAAOC,EAAE,wBAAwB,EAAEK,EAAEd,EAAkBN,GAAE,IAAKD,EAAE,CAAC,EAAEqB,EAAE,YAAYH,EAAE,EAAE,EAAEd,CAAC,EAAEiB,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,IAAIhB,EAAEiB,EAAGD,EAAEpB,CAAC,EAAE,EAAEM,EAAkBN,GAAE,IAAKD,EAAE,CAAC,EAAE,EAAE,YAAYkB,EAAE,EAAEd,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,IAAImB,EAAED,EAAG,EAAErB,CAAC,EAAE,MAAM,CAACgB,GAAG,CAACZ,EAAEa,EAAE,EAAE,CAACD,GAAG,CAACM,EAAEL,EAAEA,EAAE,CAAC,CAAC,SAASM,GAAGxB,EAAEC,EAAE,CAAC,IAAII,EAAEC,EAAEiB,EAAEV,EAAE,IAAII,EAAEG,EAAE,EAAEF,EAAkBjB,GAAE,yBAA0BK,GAAGD,EAAiBJ,GAAE,SAAS,KAAK,OAAOI,EAAE,UAAU,KAAK,OAAOC,EAAE,wBAAwBW,EAAE,yBAAyBJ,GAAGU,EAAEN,EAAE,SAAS,KAAK,OAAOM,EAAE,UAAU,KAAK,OAAOV,EAAE,wBAAwB,EAAEM,EAAEP,GAAGZ,EAAEC,CAAC,EAAEG,EAAEG,EAAkBN,GAAE,IAAKD,EAAE,CAAC,EAAE,OAAOI,EAAE,YAAYe,EAAE,EAAED,CAAC,EAAEd,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,EAAEkB,EAAGlB,EAAEH,CAAC,CAAC,CAAC,SAASwB,GAAGzB,EAAEC,EAAE,CAAC,IAAI,EAAEQ,EAAET,EAAiBC,GAAE,EAAE,EAAE,EAAE,CAACqB,EAAG,EAAErB,CAAC,EAAE,CAACuB,GAAG,EAAEvB,CAAC,EAAE,OAAO,KAAK,MAAM,EAAEyB,EAAE,EAAE,CAAC,CAAC,SAASC,EAAG3B,EAAEC,EAAE,CAAC,OAAOQ,EAAET,EAAiBC,GAAE,EAAE,EAAE,OAAO,CAAC,CAAC,SAAS2B,GAAG5B,EAAEC,EAAE,CAAC,IAAI,EAAEQ,EAAET,EAAiBC,GAAE,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAEG,EAAEG,EAAE,EAAE,CAAC,EAAE,OAAOH,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,EAAEA,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,EAAEA,EAAE,QAAQ,CAAC,CAAC,SAASyB,GAAG7B,EAAEC,EAAE,CAAC,OAAOQ,EAAET,EAAiBC,GAAE,EAAE,EAAE,SAAS,CAAC,CAAC,SAAS6B,GAAG9B,EAAEC,EAAE,CAAC,OAAOQ,EAAET,EAAiBC,GAAE,EAAE,EAAE,WAAW,CAAC,CAAC,SAAS8B,GAAG/B,EAAEC,EAAE,CAAC,OAAOQ,EAAET,EAAiBC,GAAE,EAAE,EAAE,SAAS,CAAC,CAAC,SAAS+B,GAAGhC,EAAE,CAAC,OAAOS,EAAET,CAAC,EAAE,WAAW,CAAC,CAAC,SAASiC,GAAGjC,EAAEC,EAAE,CAAC,OAAOQ,EAAET,EAAiBC,GAAE,EAAE,EAAE,YAAY,CAAC,CAAC,SAASiC,GAAGlC,EAAEC,EAAE,CAAC,MAAM,CAACQ,EAAET,CAAC,GAAG,CAACS,EAAER,CAAC,CAAC,CAAC,SAASkC,GAAGnC,EAAEC,EAAE,EAAE,CAAC,IAAI,EAAEQ,EAAET,EAAiB,GAAE,EAAE,EAAE,EAAEyB,GAAG,EAAE,CAAC,EAAExB,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAEQ,EAAE,EAAiB,GAAE,EAAE,CAAC,CAAC,SAAS2B,EAAGpC,EAAEC,EAAE,EAAE,CAAC,IAAIa,EAAEC,EAAEC,EAAEqB,EAAE,IAAInB,EAAEE,EAAE,EAAED,EAAkB,GAAE,gBAAiBJ,GAAGD,EAAiB,GAAE,SAAS,KAAK,OAAOA,EAAE,UAAU,KAAK,OAAOC,EAAE,eAAeG,EAAE,gBAAgBmB,GAAGrB,EAAEE,EAAE,SAAS,KAAK,OAAOF,EAAE,UAAU,KAAK,OAAOqB,EAAE,eAAe,EAAEjC,EAAEK,EAAET,EAAiB,GAAE,EAAE,EAAEqB,EAAEjB,EAAE,OAAO,EAAEE,GAAGL,EAAE,EAAE,GAAG,EAAEsB,EAAE,EAAEJ,EAAEN,EAAEZ,EAAE,GAAGA,EAAE,EAAEA,GAAGoB,EAAEE,GAAG,GAAGjB,EAAEiB,GAAG,GAAGF,EAAEE,GAAG,EAAE,OAAOe,GAAElC,EAAES,EAAE,CAAC,CAAC,CAAC,SAAS0B,GAAGvC,EAAEC,EAAE,EAAE,CAAC,IAAI,EAAE,CAACQ,EAAET,EAAiB,GAAE,EAAE,EAAE,CAAC,EAAEI,CAAC,EAAE,CAAC,CAACK,EAAER,EAAE,MAAqB,GAAE,EAAE,EAAE,CAACQ,EAAER,EAAE,IAAmB,GAAE,EAAE,CAAC,EAAE,KAAK,CAAC,EAAEI,IAAI,EAAEA,CAAC,EAAE,OAAO,GAAG,GAAG,GAAGD,CAAC,CAAC,SAASoC,GAAGxC,EAAE,CAAC,IAAIC,EAAED,EAAEyC,GAAG,OAAO,KAAK,MAAMxC,CAAC,CAAC,CAAC,SAASyC,GAAG1C,EAAE,CAAC,IAAIC,EAAED,EAAE2C,GAAG,OAAO,KAAK,MAAM1C,CAAC,CAAC,CAAC,SAAS2C,GAAG5C,EAAEC,EAAE,EAAE,CAAC,IAAI,EAAEQ,EAAET,EAAiB,GAAE,EAAE,EAAE,EAAE,EAAE,YAAY,EAAEI,EAAE,EAAE,QAAQ,EAAE,EAAEG,EAAkB,GAAE,IAAKP,EAAE,CAAC,EAAE,EAAE,YAAY,EAAEC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,IAAII,EAAEuB,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS3B,EAAE,KAAK,IAAIG,EAAEC,CAAC,CAAC,EAAE,CAAC,CAAC,SAASwC,GAAG7C,EAAEC,EAAE,EAAE,CAAC,IAAI,EAAEQ,EAAET,EAAiB,GAAE,EAAE,EAAE,OAAO,EAAE,QAAQC,CAAC,EAAE,CAAC,CAAC,SAAS6C,GAAG9C,EAAEC,EAAE,EAAE,CAAC,IAAI,EAAEQ,EAAET,EAAiB,GAAE,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQC,CAAC,EAAE,CAAC,CAAC,SAAS8C,GAAG/C,EAAEC,EAAE,EAAE,CAAC,IAAI,EAAEQ,EAAET,EAAiB,GAAE,EAAE,EAAE,OAAO,EAAE,SAASC,CAAC,EAAE,CAAC,CAAC,SAAS+C,GAAGhD,EAAEC,EAAE,EAAE,CAAC,IAAI,EAAEQ,EAAET,EAAiB,GAAE,EAAE,EAAE,OAAO,EAAE,WAAWC,CAAC,EAAE,CAAC,CAAC,SAASgD,GAAGjD,EAAEC,EAAE,EAAE,CAAC,IAAI,EAAEQ,EAAET,EAAiB,GAAE,EAAE,EAAE,OAAO,EAAE,WAAWC,CAAC,EAAE,CAAC,CAAC,SAASiD,GAAGlD,EAAEC,EAAE,EAAE,CAAC,OAAOkD,EAAEnD,EAAE,CAACC,EAAE,CAAC,CAAC,CAAC,SAASmD,GAAGpD,EAAEC,EAAE,EAAE,CAAC,OAAOoD,GAAErD,EAAE,CAACC,EAAE,CAAC,CAAC,CAA4c,IAAIqD,GAAG,CAACC,GAAGC,EAAE,EAA+L,IAAIC,GAAG,CAAC,WAAW,WAAW,SAAS,QAAQ,SAAS,UAAU,QAAQ,EAAiK,IAAIC,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,EAA6E,IAAIC,EAAG,CAACC,EAAEC,IAAIA,IAAI,OAAO,GAAGD,GAAGC,EAAEC,GAAG,CAACF,EAAE,CAAC,MAAMC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAGF,EAAG,EAAE,OAAOC,EAAE,KAAK,EAAE,OAAO,IAAI,EAAEA,EAAE,UAAUG,EAAEH,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,OAAO,IAAI,EAAEC,EAAE,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,GAAGF,EAAG,EAAE,OAAOC,EAAE,KAAK,EAAE,OAAO,EAAEI,GAAG,EAAED,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,GAAGJ,EAAG,EAAE,OAAOC,EAAE,KAAK,EAAE,OAAO,EAAEK,GAAG,EAAEF,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,GAAGJ,EAAG,EAAE,OAAOC,EAAE,KAAK,EAAE,OAAO,EAAEM,GAAG,EAAEH,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,GAAGJ,EAAG,EAAE,OAAOC,EAAE,KAAK,EAAE,OAAO,EAAEO,GAAE,EAAEJ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,GAAGJ,EAAG,EAAE,OAAOC,EAAE,KAAK,EAAE,OAAO,EAAEQ,GAAE,EAAEL,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,GAAG,EAAEM,GAAG,EAAEN,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,EAAEO,GAAG,EAAEP,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAMQ,GAAG,CAACX,EAAEC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,IAAIE,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,IAAIS,GAAG,QAAQT,CAAC,CAAC,EAAE,EAAE,OAAOH,EAAE,YAAY,SAASA,EAAE,WAAWA,EAAE,WAAWC,EAAE,IAAIE,GAAGA,EAAE,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC,IAAIU,CAAC,IAAIA,IAAIC,EAAG,CAAC,CAAC,CAAC,CAAC,EAAEd,EAAE,SAASC,EAAE,IAAIE,GAAGA,EAAE,QAAQ,GAAG,EAAE,IAAI,CAAC,CAAC,IAAIU,CAAC,IAAIE,EAAG,EAAEF,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEb,EAAE,QAAQC,EAAE,IAAIE,GAAGA,EAAE,QAAQ,GAAG,EAAE,QAAQ,CAAC,CAAC,IAAIU,EAAE,WAAWG,CAAC,IAAIC,GAAGC,EAAEC,GAAG,CAAC,CAAC,EAAED,EAAEE,GAAG,CAAC,CAAC,EAAEP,EAAE,EAAEG,CAAC,CAAC,CAAC,CAAC,EAAEf,EAAE,IAAIE,GAAGA,EAAE,QAAQ,GAAG,EAAE,QAAQ,CAAC,CAAC,IAAIU,EAAE,WAAWG,CAAC,IAAIC,GAAGC,EAAEG,GAAG,CAAC,CAAC,EAAEH,EAAEI,GAAG,CAAC,CAAC,EAAET,EAAE,EAAEG,CAAC,CAAC,CAAC,CAAC,EAAEhB,EAAE,YAAY,UAAUA,EAAE,WAAWC,EAAE,IAAIE,GAAGA,EAAE,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC,IAAIU,CAAC,IAAIA,IAAIC,EAAG,CAAC,CAAC,CAAC,CAAC,EAAEb,EAAE,IAAIE,GAAGA,EAAE,QAAQ,GAAG,EAAE,QAAQ,CAAC,CAAC,IAAIU,EAAE,WAAWG,CAAC,IAAIC,GAAGC,EAAEC,GAAG,CAAC,CAAC,EAAED,EAAEE,GAAG,CAAC,CAAC,EAAEP,EAAE,EAAEG,CAAC,CAAC,CAAC,CAAC,EAAEhB,EAAE,YAAY,SAASC,EAAE,IAAIE,GAAGA,EAAE,QAAQ,GAAG,EAAE,IAAI,CAAC,CAAC,IAAIU,CAAC,IAAIE,EAAG,EAAEF,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEZ,EAAE,IAAIE,GAAGA,EAAE,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC,IAAIU,CAAC,IAAIA,IAAIC,EAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEG,GAAG,CAACjB,EAAEC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,IAAIsB,EAAER,EAAGf,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAEwB,EAAExB,EAAEuB,EAAE,OAAOf,GAAEe,GAAG,GAAG,GAAG,GAAGC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAIX,EAAEE,EAAGd,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAEe,EAAEf,EAAEY,EAAE,OAAOK,EAAEO,GAAGC,GAAGb,EAAE,EAAE,GAAG,GAAG,GAAGG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAOW,GAAG,CAAC,MAAM3B,EAAE,IAAIC,CAAC,CAAC,EAAE,IAAI2B,GAAGV,EAAEU,CAAC,CAAC,EAAE,OAAOA,GAAGC,GAAGD,EAAE,CAAC,MAAM5B,EAAE,IAAIC,CAAC,CAAC,CAAC,EAAE,OAAO2B,GAAG,IAAId,EAAGc,CAAC,CAAC,CAAC,EAAEV,EAAElB,GAAGK,GAAGL,EAAE,CAACA,EAAE,kBAAkB,CAAC,EAAM8B,GAAG,CAAC9B,EAAEC,EAAE,IAAID,EAAE,YAAY,UAAUA,EAAE,YAAY,WAAWA,EAAE,YAAY,UAAUA,EAAE,YAAY,QAAQC,EAAE,IAAI,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAIE,GAAG4B,GAAG,EAAE5B,CAAC,CAAC,CAAC,CAAC,EAAEF,EAAE,IAAI,GAAG,EAAE,OAAO,GAAG,EAAE,SAAS+B,GAAG,CAAC,CAAC,CAAC,CAAC,EAAMC,GAAG,CAACjC,EAAEC,EAAE,IAAID,EAAE,YAAY,UAAUA,EAAE,YAAY,WAAWA,EAAE,YAAY,UAAUA,EAAE,YAAY,SAASA,EAAE,YAAY,SAASC,EAAE,IAAI,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAIE,GAAG+B,GAAG,EAAE/B,CAAC,CAAC,CAAC,CAAC,EAAEF,EAAE,IAAI,GAAG,EAAE,OAAO,GAAG,EAAE,SAASkC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAMC,GAAG,CAACpC,EAAEC,EAAE,IAAID,EAAE,YAAY,SAASC,EAAE,IAAI,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAIE,GAAGkC,GAAG,EAAElC,CAAC,CAAC,CAAC,CAAC,EAAEF,EAAE,IAAI,GAAG,EAAE,OAAO,GAAG,EAAE,SAASqC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAMC,GAAG,CAACvC,EAAEC,EAAE,IAAID,EAAE,YAAY,UAAUA,EAAE,YAAY,UAAUC,EAAE,IAAI,GAAG,EAAE,QAAQ,GAAG,CAAC,IAAIE,EAAEqC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,GAAG,EAAErC,EAAE,OAAOsC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEzC,EAAE,YAAY,SAASC,EAAEA,EAAE,IAAI,GAAG,EAAE,OAAO,GAAG,EAAE,SAASqC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAMI,GAAG,CAAC1C,EAAEC,EAAE,IAAID,EAAE,YAAY,UAAUA,EAAE,YAAY,WAAWA,EAAE,YAAY,UAAUA,EAAE,YAAY,SAASA,EAAE,YAAY,UAAUA,EAAE,YAAY,WAAWC,EAAE,IAAI,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAIE,GAAGwC,GAAG,EAAExC,CAAC,CAAC,CAAC,CAAC,EAAEF,EAAE,IAAI,GAAG,EAAE,OAAO,GAAG,EAAE,SAAS2C,GAAG,CAAC,CAAC,CAAC,CAAC,EAAMC,GAAG,CAAC7C,EAAEC,EAAE,IAAI,CAACD,EAAE,WAAW,CAACA,EAAE,UAAU,CAACA,EAAE,YAAY,CAACA,EAAE,SAAS,CAACA,EAAE,OAAO,CAACA,EAAE,QAAQ,CAACA,EAAE,UAAU,CAACA,EAAE,SAASC,EAAEA,EAAE,IAAI,GAAG,EAAE,KAAK6C,EAAE,EAAE,OAAO,CAAC,EAAE3C,IAAI,EAAE,KAAK,GAAG,EAAE,EAAEA,IAAI,EAAE,GAAGA,EAAE,IAAI,EAAEA,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAEA,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAM4C,GAAG,CAAC/C,EAAEC,EAAE,EAAE,IAAID,EAAE,YAAY,SAASC,EAAE,IAAI,GAAG,EAAE,QAAQE,GAAG,EAAE,IAAI,GAAG6C,GAAG7C,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEF,EAAMgD,GAAG,CAACjD,EAAEC,EAAE,IAAID,EAAE,YAAY,SAASC,EAAE,IAAI,GAAG,EAAE,QAAQ,GAAG,EAAE,IAAIE,GAAG+C,GAAG,EAAE/C,CAAC,CAAC,CAAC,CAAC,EAAEH,EAAE,YAAY,WAAWA,EAAE,YAAY,UAAUA,EAAE,YAAY,QAAQC,EAAEA,EAAE,IAAI,GAAG,EAAE,OAAO,GAAG,EAAE,SAASkD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAMC,GAAG,CAACpD,EAAEC,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,OAAOD,EAAE,UAAU,EAAEoC,GAAGpC,EAAE,EAAEA,EAAE,OAAO,GAAGA,EAAE,WAAW,EAAE+C,GAAG/C,EAAE,EAAEA,EAAE,SAASC,EAAE,YAAY,GAAGD,EAAE,YAAY,EAAEiD,GAAGjD,EAAE,EAAEA,EAAE,SAAS,GAAGA,EAAE,aAAa,EAAEuC,GAAGvC,EAAE,EAAEA,EAAE,UAAU,GAAGA,EAAE,QAAQ,EAAEW,GAAGX,EAAE,EAAEA,EAAE,MAAMC,EAAE,YAAY,GAAGD,EAAE,SAAS,EAAE8B,GAAG9B,EAAE,EAAEA,EAAE,MAAM,GAAGA,EAAE,WAAW,EAAEiC,GAAGjC,EAAE,EAAEA,EAAE,QAAQ,GAAGA,EAAE,WAAW,EAAE0C,GAAG1C,EAAE,EAAEA,EAAE,QAAQ,GAAGA,EAAE,WAAW,EAAE6C,GAAG7C,EAAE,EAAEA,EAAE,QAAQ,GAAG,EAAE,IAAIG,GAAGA,EAAE,KAAK2C,EAAE,EAAE,OAAOlB,GAAG,EAAE3B,EAAE,WAAW,OAAO,GAAGA,EAAE,WAAW,KAAKY,GAAGwC,GAAGxC,EAAEe,CAAC,CAAC,GAAG,CAACC,GAAGD,EAAE,CAAC,MAAM3B,EAAE,MAAM,IAAIA,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAMqD,GAAG,EAAEC,GAAG,CAACvD,EAAEC,IAAI,CAAC,IAAIuD,EAAE,IAAIC,EAAExD,EAAE,MAAMyD,IAAIF,EAAExD,EAAE,QAAQ,KAAK,OAAOwD,EAAE,OAAuBvD,GAAE,KAAMS,GAAG+C,EAAEH,EAAE,EAAEK,EAAE1D,EAAE,YAAY,CAAC,EAAEE,GAAGH,EAAE,cAAcY,GAAG,QAAQZ,EAAE,aAAa,EAAE,GAAG,EAAE4B,EAAE,CAAC,CAAC6B,CAAC,CAAC,EAAEvD,GAAGF,EAAE,CAAC,MAAMyD,EAAE,IAAIC,CAAC,EAAE9B,CAAC,EAAE,IAAIf,EAAEuC,GAAGpD,EAAE,CAAC,MAAMyD,EAAE,IAAIC,EAAE,WAAWC,EAAE,aAAaxD,CAAC,EAAEyB,CAAC,EAAE,OAAO5B,EAAE,MAAMa,EAAE,KAAK,EAAE,OAAO,EAAEb,EAAE,KAAK,EAAEa,EAAE,KAAK,CAAC,EAAM+C,GAAG,CAAC5D,EAAEC,IAAIA,EAAE,QAAQ,GAAG,CAAC,EAAE,gBAAgB,EAAE,eAAe,OAAO,EAAE,eAAe,MAAM,KAAKD,EAAE,EAAEuD,GAAG,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,IAAIvD,CAAC,CAAC,EAAE,IAAI2D,IAAI,CAAC,GAAG,EAAE,MAAMA,CAAC,EAAE,CAAC,EAAME,GAAG7D,GAAG,CAAC,IAAIC,EAAED,EAAE,CAAC,IAAI,IAAI,EAAE,GAAG,EAAE,OAAOA,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAEA,EAAE,OAAO,EAAE,OAAOA,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAEA,EAAE,OAAO,EAAE,OAAOA,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,GAAG,IAAIC,CAAC,EAAM6D,GAAG,CAAC9D,EAAEC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,KAAKA,EAAE,eAAe,EAAE,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,IAAI,KAAKA,EAAE,eAAe,EAAE,CAAC,SAASD,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAOC,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,EAAM8D,GAAG,CAAC/D,EAAEC,EAAE,IAAI,CAAC,IAAI,EAAiB,GAAE,KAAKE,GAAGA,EAAE,KAAKF,CAAC,EAAE,GAAG,EAAE,CAAC,IAAIE,EAAEyD,GAAG5D,EAAE,EAAE,KAAK,EAAE,KAAK,CAACgB,EAAEwC,IAAIV,GAAG9B,EAAE,MAAMwC,EAAE,KAAK,CAAC,EAAE,QAAQxC,EAAE,EAAEA,EAAEb,EAAE,OAAOa,GAAG,EAAE,GAAGhB,EAAEG,EAAEa,CAAC,EAAE,MAAM,CAAC,IAAIwC,EAAErD,EAAEa,EAAE,CAAC,EAAEb,EAAEa,EAAE,CAAC,EAAE,SAASb,EAAEa,CAAC,EAAE,WAAWO,EAAEiC,EAAE,OAAO,EAAEA,EAAE,UAAU,EAAE,CAAC,EAAEA,EAAE,MAAM,CAAC,OAAOjC,EAAE,aAAasC,GAAGtC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAEpB,EAAEA,EAAE,OAAO,CAAC,EAAE,SAASU,EAAE,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,OAAOA,EAAE,aAAagD,GAAGhD,CAAC,CAAC,CAAC,CAAC,IAAI,EAAEiD,GAAG7D,EAAED,CAAC,EAAE,GAAG,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,IAAIG,EAAE,EAAE,EAAE,EAAE,KAAK,IAAI6D,GAAG,CAAC,CAAC,EAAEnD,EAAE,KAAK,IAAIoD,GAAG,CAAC,CAAC,EAAE,EAAE,GAAGjD,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAEwC,EAAE3C,EAAE,SAAS,EAAE,SAAS,EAAE,IAAIA,CAAC,GAAGA,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,GAAGV,EAAE,IAAI,GAAG,GAAGa,CAAC,GAAGwC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAC3sL,IAAIU,EAAE,CAACC,EAAEC,IAAI,CAAC,GAAGD,IAAI,OAAO,OAAOC,EAAE,IAAI,EAAED,EAAE,WAAW,EAAE,SAASC,CAAC,EAAE,GAAG,aAAa,QAAQ,MAAM,IAAI,UAAU,uCAAuC,EAAE,GAAG,EAAE,OAAO,MAAM,IAAI,MAAM,KAAK,UAAU,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAMC,GAAG,CAACF,EAAEC,IAAI,CAAC,IAAIE,EAAEC,EAAEC,EAAEC,EAAE,IAAIC,IAAIJ,EAAEF,EAAE,UAAU,KAAK,OAAOE,EAAE,SAAS,SAAS,CAAC,KAAK,SAAS,WAAWC,EAAEH,EAAE,UAAU,KAAK,OAAOG,EAAE,WAAW,SAAS,OAAOH,EAAE,MAAM,OAAOI,EAAEJ,EAAE,UAAU,KAAK,OAAOI,EAAE,KAAK,EAAE,CAAC,KAAK,MAAM,IAAIJ,EAAE,MAAM,YAAYK,EAAEL,EAAE,UAAU,KAAK,OAAOK,EAAE,OAAO,EAAE,OAAOP,EAAEC,EAAEO,CAAC,CAAC,EAAMC,EAAER,GAAGA,EAAE,QAAQ,YAAY,EAAE,EAAMS,EAAE,CAACT,EAAEC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAEI,EAAE,EAAEK,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAE,OAAOhB,EAAEC,EAAE,CAAC,MAAMQ,EAAEP,EAAE,KAAK,EAAE,eAAe,EAAEA,EAAE,UAAU,MAAM,EAAE,gBAAgB,EAAEO,GAAG,EAAEP,EAAE,UAAU,KAAK,OAAO,EAAE,gBAAgB,CAAC,EAAE,OAAO,KAAK,EAAEA,EAAE,UAAU,KAAK,OAAO,EAAE,IAAI,QAAQI,EAAEJ,EAAE,UAAU,MAAMI,EAAE,OAAOG,EAAEP,EAAE,QAAQ,MAAM,EAAE,OAAO,MAAM,EAAEA,EAAE,UAAU,KAAK,OAAO,EAAE,GAAG,UAAUS,EAAET,EAAE,UAAU,KAAK,OAAOS,EAAE,SAAS,MAAMC,EAAEV,EAAE,UAAU,KAAK,OAAOU,EAAE,KAAK,QAAQC,EAAEX,EAAE,UAAU,MAAMW,EAAE,SAAS,EAAEJ,EAAEP,EAAE,QAAQ,SAAS,CAAC,EAAE,OAAO,MAAMY,EAAEZ,EAAE,UAAU,MAAMY,EAAE,OAAOC,EAAEb,EAAE,UAAU,KAAK,OAAOa,EAAE,QAAQ,OAAO,KAAKC,EAAEd,EAAE,UAAU,KAAK,OAAOc,EAAE,QAAQ,QAAQ,GAAG,OAAO,MAAM,CAAC,CAAC,EAAMC,EAAE,CAAChB,EAAEC,IAAI,CAAC,IAAI,EAAEA,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,GAAG,EAAEI,EAAE,EAAE,CAAC,EAAE,GAAGA,EAAE,SAAS,GAAG,EAAE,CAAC,GAAG,CAACK,EAAEC,CAAC,EAAEN,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,OAAOK,CAAC,EAAEL,EAAEM,CAAC,CAAC,GAAGN,EAAE,SAAS,GAAG,EAAE,CAAC,GAAG,CAACK,EAAEC,CAAC,EAAEN,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,OAAOK,CAAC,EAAEL,EAAEM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,SAAS,GAAG,EAAE,CAAC,GAAG,CAACD,EAAEC,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,OAAOD,CAAC,EAAE,EAAEC,CAAC,CAAC,GAAG,EAAE,SAAS,GAAG,EAAE,CAAC,GAAG,CAACD,EAAEC,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,OAAOD,CAAC,EAAE,EAAEC,CAAC,CAAC,GAAG,EAAE,SAAS,GAAG,EAAE,CAAC,GAAG,CAACD,EAAEC,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,OAAOD,CAAC,EAAE,EAAEC,CAAC,CAAC,CAAC,OAAOZ,EAAEC,EAAE,CAAC,CAAC,EAAMiB,GAAG,CAACjB,EAAEC,IAAI,CAAC,IAAI,EAAE,OAAO,SAASA,EAAE,MAAM,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,SAASA,EAAE,MAAM,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,SAASA,EAAE,MAAM,MAAM,EAAE,CAAC,EAAE,EAAE,EAAEI,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,OAAON,EAAEC,EAAEK,CAAC,CAAC,EAAEa,EAAE,CAAClB,EAAEC,IAAI,CAAC,IAAI,EAAE,OAAO,SAASA,EAAE,MAAM,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,SAASA,EAAE,MAAM,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,SAASA,EAAE,MAAM,MAAM,EAAE,CAAC,EAAE,EAAE,EAAEI,EAAE,OAAO,SAASJ,EAAE,MAAM,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,SAASA,EAAE,MAAM,MAAM,GAAG,EAAE,EAAE,EAAE,EAAES,EAAE,OAAO,SAAST,EAAE,MAAM,MAAM,GAAG,EAAE,EAAE,EAAE,EAAEU,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,EAAEN,EAAE,EAAEK,CAAC,CAAC,EAAE,OAAOX,EAAEC,EAAEW,CAAC,CAAC,EAAEQ,GAAG,CAACnB,EAAEC,EAAE,IAAI,CAAC,IAAI,EAAEmB,GAAG,CAAC,EAAE,EAAEF,EAAE,OAAOjB,CAAC,EAAEI,EAAEgB,GAAG,EAAE,CAAC,EAAE,OAAOtB,EAAEC,EAAEK,CAAC,CAAC,EAAMiB,GAAG,CAACtB,EAAEC,IAAI,CAAC,IAAII,EAAEC,EAAEI,EAAEC,EAAEC,EAAEC,EAAE,KAAKR,EAAEL,EAAE,UAAU,KAAK,OAAOK,EAAE,SAAS,OAAO,MAAM,CAAC,KAAKY,GAAG,OAAOjB,CAAC,EAAE,MAAMM,EAAEN,EAAE,UAAU,KAAK,OAAOM,EAAE,KAAK,EAAE,IAAIC,IAAIG,EAAEV,EAAE,UAAU,KAAK,OAAOU,EAAE,QAAQ,YAAYP,EAAEe,EAAE,OAAOlB,CAAC,EAAE,GAAG,GAAGW,EAAEX,EAAE,UAAU,MAAMW,EAAE,MAAM,MAAM,CAAC,KAAKR,EAAE,KAAKI,CAAC,EAAE,IAAIH,EAAEmB,GAAGpB,EAAEH,EAAE,QAAQ,KAAoBC,GAAE,SAAS,EAAE,OAAOG,EAAE,CAAC,KAAKoB,EAAErB,EAAE,CAACC,EAAE,YAAY,EAAE,KAAKG,EAAE,OAAOK,EAAEZ,EAAE,UAAU,MAAMY,EAAE,KAAK,CAAC,KAAKT,EAAE,UAAUU,EAAEb,EAAE,UAAU,KAAK,OAAOa,EAAE,KAAK,SAAST,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,KAAKD,EAAE,KAAKI,CAAC,CAAC,EAAEkB,EAAE,CAACzB,EAAEC,EAAE,IAAIF,EAAEC,EAAEsB,GAAGrB,EAAE,CAAC,CAAC,EAAMyB,GAAG,CAAC1B,EAAEC,EAAE,IAAI,CAAC,IAAIG,EAAEC,EAAEC,EAAEI,EAAE,IAAIP,IAAIC,EAAEH,EAAE,UAAU,KAAK,OAAOG,EAAE,SAAS,eAAeC,EAAEJ,EAAE,UAAU,KAAK,OAAOI,EAAE,SAAS,OAAO,CAAC,KAAK,WAAW,MAAMoB,EAAE,OAAOxB,EAAE,CAAC,EAAE,QAAQ,CAAC,SAASK,EAAEL,EAAE,UAAU,KAAK,OAAOK,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,WAAW,MAAMU,EAAE,OAAOf,CAAC,EAAE,QAAQ,CAAC,SAASS,EAAET,EAAE,UAAU,KAAK,OAAOS,EAAE,OAAO,CAAC,EAAE,OAAOX,EAAEC,EAAEG,CAAC,CAAC,EAAMwB,GAAG3B,GAAGA,EAAE,WAAW,GAAG,GAAGA,EAAE,SAAS,GAAG,EAAEA,EAAE,MAAM,EAAE,EAAE,EAAEA,EAAE4B,GAAG5B,GAAGA,EAAE,IAAIC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAEA,EAAE,MAAM4B,EAAE,EAAE,EAAE,EAAE,KAAKA,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,MAAMF,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEG,GAAG9B,GAAGA,EAAE,OAAO,CAACC,EAAE,KAAKA,EAAE,EAAE,QAAQ,EAAE,EAAE,MAAMA,GAAG,CAAC,CAAC,EAAE8B,GAAG/B,GAAG8B,GAAGF,GAAG5B,CAAC,CAAC,EAAMgC,GAAGhC,GAAG,CAAC,IAAIC,EAAE,GAAG,EAAE,QAAQI,EAAE,EAAEA,EAAEL,EAAE,QAAQ,IAAI,OAAOK,GAAG,EAAEL,EAAE,OAAOK,CAAC,IAAI4B,KAAKhC,EAAE,CAACA,GAAGD,EAAE,OAAOK,CAAC,IAAI6B,IAAI,CAACjC,IAAI,EAAEI,GAAG,GAAG,IAAI,OAAO,MAAM,MAAM,mBAAmBL,CAAC,EAAE,EAAE,IAAI,EAAEA,EAAE,UAAU,EAAE,CAAC,EAAE,EAAEA,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAEmC,GAAGnC,GAAG,CAAC,GAAG,CAAC,SAASC,EAAE,MAAM,CAAC,EAAE+B,GAAGhC,CAAC,EAAE,GAAGC,EAAE,SAASmC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAEnC,EAAE,MAAMmC,EAAE,EAAE/B,EAAE0B,GAAG,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ1B,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAASJ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAMoC,GAAGrC,GAAG,SAAS,KAAKA,CAAC,EAAEsC,GAAGtC,GAAG,0BAA0B,KAAKA,CAAC,EAAEuC,GAAGvC,GAAG,CAAC,IAAIC,EAAE,CAAC,EAAE,EAAED,EAAE,MAAMwC,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAInC,EAAE,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,SAASgC,GAAG,EAAE,CAAC,CAAC,GAAG,CAACC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,GAAGjC,GAAGoC,GAAGJ,GAAG,EAAE,CAAC,CAAC,EAAEhC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,GAAGA,GAAGoC,GAAGpC,GAAG,EAAE,CAAC,GAAG,GAAG,EAAEJ,EAAE,KAAKI,CAAC,CAAC,CAAC,OAAOJ,EAAE,OAAO,GAAG,IAAI,EAAE,CAAC,EAAMyC,GAAG,CAAC1C,EAAEC,EAAE,IAAI,CAAC,GAAG,CAACA,EAAE,OAAOD,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,OAAO,QAAQC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAEI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,QAAQ,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAACO,EAAEC,CAAC,IAAIA,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE8B,GAAG,CAAC,CAAC,EAAEtC,EAAE,MAAM,MAAM,CAAC,IAAIK,EAAE,EAAE,CAAC,EAAE,QAAQL,CAAC,EAAEM,EAAE,EAAE,CAAC,EAAE,OAAO,GAAG,CAACA,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAED,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAEX,EAAEY,EAAED,CAAC,CAAC,CAAC,EAAEV,EAAE,YAAY,EAAEA,CAAC,EAAE2C,GAAG3C,GAAG,CAAC,IAAIC,EAAED,EAAE,WAAW,IAAI,EAAEA,EAAE,MAAM,CAAC,EAAEA,EAAE,EAAE,GAAG,EAAE,GAAG,QAAQ,KAAKC,EAAE,IAAI,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,EAAE,IAAI,OAAO,CAAC,EAAM2C,GAAG5C,GAAGA,EAAE,WAAW,IAAI,EAAM,EAAE,CAACA,EAAEC,EAAE,IAAI,CAAC,IAAI,EAAEA,EAAE,QAAQ4C,GAAkB,GAAE,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,OAAO,OAAO,EAAE,iBAAiB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,aAAa/B,CAAC,IAAIA,CAAC,CAAC,CAAC,EAAET,EAAEkC,GAAG,EAAE,OAAO,CAACzB,EAAEC,IAAID,EAAE,QAAQgC,GAAG/B,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,eAAe,CAAC,EAAEL,EAAE,CAAC,EAAEL,EAAE,QAAQS,GAAG,CAAC,IAAIiC,EAAEC,EAAG,GAAG,CAAC,SAASjC,EAAE,KAAKkC,CAAC,EAAEd,GAAGrB,CAAC,EAAE8B,GAAG7B,CAAC,IAAIL,EAAEK,CAAC,EAAEkC,GAAG,IAAIC,EAAE,EAAE,aAAanC,CAAC,EAAE,GAAG,CAACmC,EAAE,OAAO,IAAIC,GAAIJ,EAAE,EAAE,qBAAqB,KAAK,OAAOA,EAAEG,CAAC,EAAE,GAAGC,EAAG,CAAC,IAAIC,EAAED,EAAG,CAAC,KAAKF,CAAC,CAAC,EAAE,GAAG,CAACG,EAAE,QAAQ,EAAEF,CAAC,IAAI,QAAQ,EAAEA,CAAC,IAAI,MAAM,CAAC,MAAM,QAAQ,EAAEA,CAAC,CAAC,KAAK,EAAEA,CAAC,EAAE,CAAC,GAAG,MAAM,QAAQE,CAAC,EAAE,EAAEF,CAAC,EAAE,KAAK,GAAGE,CAAC,EAAE,EAAEF,CAAC,EAAE,KAAKE,CAAC,EAAE,MAAM,CAAC,IAAIC,IAAIL,EAAG,EAAE,gBAAgB,KAAK,OAAOA,EAAGE,CAAC,EAAE,GAAGG,GAAG,CAAC,IAAID,EAAEC,GAAG,CAAC,KAAKJ,CAAC,CAAC,EAAE,GAAG,CAACG,EAAE,OAAO,EAAEF,CAAC,EAAEE,EAAE,MAAM,CAAC,EAAEF,CAAC,EAAED,EAAE,KAAK,CAAC,EAAE,IAAItC,EAAE,EAAE,gBAAgBC,EAAED,EAAE,OAAO,KAAKA,GAAG,CAAC,CAAC,EAAE,CAAC,EAAEA,GAAGC,EAAE,OAAO,GAAGA,EAAE,QAAQE,GAAG,CAAC,IAAIC,EAAiBJ,IAAEG,CAAC,EAAE,GAAG,CAACC,EAAE,OAAO,IAAIkC,EAAE,MAAM,QAAQlC,EAAE,YAAY,EAAEA,EAAE,aAAa,CAACA,EAAE,YAAY,EAAEmC,EAAE,CAAC,EAAEC,EAAG,CAAC,EAAEF,EAAE,QAAQF,GAAG,CAACI,EAAG,KAAK,GAAG,EAAE,SAASL,GAAGC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEI,EAAG,IAAIJ,GAAGA,EAAE,CAAC,CAAC,EAAE,QAAQA,GAAG,CAAC,IAAIC,EAAGjC,EAAE,QAAQgC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAEC,GAAIE,EAAE,KAAKF,CAAE,CAAC,CAAC,EAAEE,EAAE,SAAS,IAAI,EAAEpC,CAAC,EAAEoC,EAAE,CAAC,EAAE,IAAIrC,EAAEd,EAAEC,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,YAAY0C,GAAG7B,EAAEH,EAAiB,GAAE,WAAW,EAAEG,CAAC,EAAMyC,EAAE,CAACtD,EAAEC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,OAAOF,EAAEC,EAAE,CAAC,MAAM,EAAEC,EAAE,UAAU,KAAK,OAAO,EAAE,GAAG,KAAK,EAAEA,EAAE,UAAU,KAAK,OAAO,EAAE,IAAI,QAAQ,EAAEA,EAAE,UAAU,MAAM,EAAE,SAAS,EAAEO,EAAEP,EAAE,QAAQ,SAAS,CAAC,EAAE,OAAO,MAAMO,EAAEP,EAAE,KAAK,CAAC,CAAC,CAAC,EAAMsD,GAAG,CAACvD,EAAEC,EAAE,IAAI,CAAC,IAAI,EAAE,OAAOF,EAAEC,EAAE,CAAC,MAAMyB,EAAE,OAAOxB,EAAE,CAAC,EAAE,OAAO,EAAEA,EAAE,UAAU,KAAK,OAAO,EAAE,KAAK,CAAC,CAAC,EAAMuD,GAAGxD,GAAG,CAAC,GAAGA,EAAE,SAAS,EAAE,MAAM,CAAC,IAAIA,CAAC,EAAE,IAAIO,EAAEP,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,IAAIA,EAAE,QAAQO,EAAE,EAAE,EAAE,WAAW,OAAOA,CAAC,CAAC,CAAC,EAAEkD,GAAG,CAACzD,EAAEC,IAAIF,EAAEC,EAAEwD,GAAGvD,EAAE,KAAK,CAAC,EAAMyD,GAAG,CAAC1D,EAAEC,IAAIF,EAAEC,EAAEC,EAAE,KAAK,EAAM0D,GAAG,CAAC,OAAO,EAAEC,GAAG5D,GAAG2D,GAAG,SAAS3D,CAAC,EAAE6D,GAAG,CAAC,WAAW,WAAW,SAAS,aAAa,YAAY,WAAW,UAAU,EAAEC,GAAG9D,GAAG6D,GAAG,SAAS7D,CAAC,EAAE+D,GAAG,CAAC,OAAO,EAAEC,GAAGhE,GAAG+D,GAAG,SAAS/D,CAAC,EAAEiE,GAAG,CAAC,QAAQ,UAAU,EAAEC,GAAGlE,GAAGiE,GAAG,SAASjE,CAAC,EAAEmE,EAAE,CAACnE,EAAEC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO2B,GAAG3B,EAAE,MAAM,MAAMmC,EAAE,CAAC,EAAE,QAAQ/B,GAAG,CAAC,GAAG,CAAC,SAASC,EAAE,MAAMI,CAAC,EAAEL,EAAEM,EAAEyD,GAAG9D,CAAC,EAAE,GAAGK,EAAE,CAAC,GAAGiD,GAAGjD,CAAC,EAAE,CAAC,EAAEA,CAAC,EAAEc,EAAE,OAAO,CAAC,MAAMf,EAAE,QAAQ,CAAC,MAAMA,EAAE,SAAS,GAAG,EAAE,YAAY,MAAM,CAAC,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,MAAM,CAAC,GAAGoD,GAAGnD,CAAC,EAAE,CAAC,EAAEA,CAAC,EAAED,EAAE,MAAM2D,CAAC,EAAE,IAAIzD,GAAG,OAAOA,CAAC,CAAC,EAAE,MAAM,CAAC,GAAGD,IAAI,UAAU,CAAC,EAAEA,CAAC,EAAED,EAAE,MAAM2D,CAAC,EAAE,IAAIzD,GAAG,OAAOA,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,GAAGoD,GAAGrD,CAAC,EAAE,CAAC,EAAEA,CAAC,EAAED,EAAE,MAAM2D,CAAC,EAAE,IAAIzD,GAAG6C,GAAG,OAAO,CAAC,MAAM7C,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAGsD,GAAGvD,CAAC,EAAE,CAAC,EAAEA,CAAC,EAAE,OAAOD,CAAC,EAAE,MAAM,CAAC,GAAGC,IAAI,YAAY,CAAC,GAAG,CAACD,GAAG,CAAC4D,GAAG,SAAS5D,CAAC,EAAE,OAAO,EAAEC,CAAC,EAAED,EAAE,MAAM,CAAC,GAAGC,IAAI,gBAAgB,CAAC,EAAEA,CAAC,EAAE+C,GAAG,OAAO,CAAC,MAAMhD,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAEX,EAAEC,EAAE,CAAC,CAAC,EAAMuE,GAAG,CAACvE,EAAEC,IAAIF,EAAEC,EAAEC,EAAE,KAAK,EAAMuE,GAAG,CAACxE,EAAEC,IAAIF,EAAEC,EAAEC,EAAE,KAAK,EAAMwE,GAAG,CAACzE,EAAEC,EAAE,IAAIF,EAAEC,EAAEC,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,GAAGwB,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQxB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAMyE,GAAG,CAAC1E,EAAEC,IAAIF,EAAEC,EAAEC,EAAE,KAAK,EAAE0E,GAAG,CAAC3E,EAAEC,IAAIF,EAAEC,EAAEC,EAAE,KAAK,EAAE2E,GAAG,CAAC5E,EAAEC,IAAIF,EAAEC,EAAEC,EAAE,KAAK,EAAM4E,EAAE,CAAC7E,EAAEC,IAAIF,EAAEC,EAAE,OAAO,SAASC,EAAE,MAAM,EAAE,CAAC,EAAM6E,GAAG9E,GAAGA,EAAE,QAAQ,uBAAuB,CAACC,EAAE,EAAE,IAAI,GAAG;AAAA,CAC99e,EAAM8E,EAAE,CAAC/E,EAAEC,IAAIF,EAAEC,EAAE8E,GAAG7E,EAAE,KAAK,CAAC,EAAM+E,GAAG,IAAIhF,IAAI,CAAC,GAAG,CAACC,EAAE,EAAE,CAAC,EAAED,EAAE,OAAO,EAAEC,EAAE,EAAE,CAAC,aAAagF,GAAG,aAAaC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAIxD,GAAG,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,IAAIV,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI6D,EAAE,OAAO,CAAC,CAAC,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI3E,GAAG,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,IAAIO,EAAE,OAAO,CAAC,CAAC,EAAE,YAA2B,GAAE,YAAY,UAAyB,GAAE,SAAS,CAAC,CAAC,EAAM0E,GAAG,IAAInF,IAAI,CAAC,GAAG,CAACC,EAAE,EAAE,CAAC,EAAED,EAAE,EAAEK,EAAE,EAAEJ,EAAE,EAAE,CAAC,aAAamF,GAAE,aAAaC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI5D,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,MAAM4C,CAAC,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI3D,EAAE,OAAOA,EAAE,EAAE,UAAU,MAAMA,EAAE,SAAS,EAAE,EAAE,QAAQ,QAAQqE,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,KAAK,CAAC,IAAIZ,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,IAAInD,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,IAAIsC,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,IAAIuB,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAIN,GAAG,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,IAAIhB,GAAG,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAImB,GAAG,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC,IAAIF,GAAG,OAAO,CAAC,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,IAAI/D,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,KAAK,CAAC,IAAIgE,GAAG,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,aAAaQ,GAAG,QAAQ,GAAGD,GAAG,OAAO,EAAE,CAAC,YAA2B,GAAE,YAAY,UAAyB,GAAE,SAAS,CAAC,CAAC,CAAC,EAAE,UAAyB,GAAE,UAAU,YAA2B,GAAE,WAAW,CAAC,EAAE,OAAO,IAAI3E,EAAE,kBAAkB,GAAGA,CAAC,EAAMiF,GAAG,IAAItF,IAAI,CAAC,GAAG,CAACC,EAAE,EAAE,CAAC,EAAED,EAAE,EAAE,EAAE,MAAM,QAAQ,EAAE,CAAC,EAAE,MAAMwC,EAAE,EAAE,CAAC,EAAEnC,EAAEkF,GAAG,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,MAAM,aAAa,EAAE,CAAC,EAAE,MAAM/C,EAAE,EAAE,CAAC,EAAE,OAAO,EAAEvC,EAAE,EAAE,CAAC,aAAaI,EAAE,aAAamF,GAAG,cAAc,CAAC,KAAKnF,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,KAAKK,CAAC,IAAIS,GAAG,OAAOT,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,KAAKA,CAAC,IAAIyD,EAAE,OAAOzD,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC,KAAKA,CAAC,IAAIe,EAAE,OAAOf,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,CAAC,EAAE,YAA2B,GAAE,YAAY,UAAyB,GAAE,SAAS,CAAC,CAAC,EAAM+E,GAAG,IAAIzF,IAAI,CAAC,GAAG,CAACC,EAAE,EAAE,CAAC,EAAED,EAAE,OAAO,EAAEC,EAAE,EAAE,CAAC,aAAayF,GAAE,aAAaC,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,IAAIzE,EAAE,OAAO,CAAC,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,UAAU,EAAE,QAAQ,GAAGoE,GAAG,OAAO,EAAE,CAAC,YAA2B,GAAE,YAAY,UAAyB,GAAE,SAAS,CAAC,CAAC,CAAC,EAAE,YAA2B,GAAE,YAAY,UAAyB,GAAE,SAAS,CAAC,CAAC,EAAMM,GAAG,IAAI5F,IAAI,CAAC,GAAG,CAACC,EAAE,EAAE,CAAC,EAAED,EAAE,OAAO,EAAEC,EAAE,EAAE,CAAC,aAAa4F,GAAG,aAAaC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAIrE,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,MAAM4C,CAAC,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,IAAIU,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,KAAK,CAAC,IAAIZ,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,IAAInD,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,IAAIsC,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,IAAIuB,EAAE,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAIN,GAAG,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,IAAIhB,GAAG,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAIoB,GAAG,OAAO,CAAC,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,IAAIlE,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,KAAK,CAAC,IAAIgE,GAAG,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,CAAC,EAAE,YAA2B,GAAE,YAAY,UAAyB,GAAE,SAAS,CAAC,CAAC,EAAMsB,GAAG,IAAI/F,IAAI,CAAC,GAAG,CAACC,EAAE,EAAE,CAAC,EAAED,EAAE,OAAO,EAAEC,EAAE,EAAE,CAAC,aAAa+F,GAAG,aAAaC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAIxE,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,MAAM4C,CAAC,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,IAAIU,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,KAAK,CAAC,IAAIZ,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,IAAIb,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,IAAIuB,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAIN,GAAG,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,IAAIhB,GAAG,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAIqB,GAAG,OAAO,CAAC,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,IAAInE,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,KAAK,CAAC,IAAIgE,GAAG,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,CAAC,EAAE,YAA2B,GAAE,YAAY,UAAyB,GAAE,SAAS,CAAC,CAAC,EAAMyB,GAAG,CAAClG,EAAEC,IAAI,CAAC,IAAI,EAAE,OAAOF,EAAEC,EAAE,CAAC,MAAM,EAAEC,EAAE,UAAU,KAAK,OAAO,EAAE,OAAO,OAAOA,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,EAAEI,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,EAAEa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,GAAGb,EAAE,WAAW,IAAI,EAAE,CAAC,IAAIM,EAAEK,EAAE,OAAO,CAAC,MAAMX,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAASM,CAAC,CAAC,CAAC,IAAID,EAAEQ,EAAE,OAAO,CAAC,MAAMb,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAIK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAMyF,GAAG,IAAInG,IAAI,CAAC,GAAG,CAACC,EAAE,EAAE,CAAC,EAAED,EAAE,OAAO,EAAEC,EAAE,EAAE,CAAC,aAAamG,GAAG,aAAaC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI5E,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAIA,EAAE,OAAO,EAAE,CAAC,UAAyB,GAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAIsD,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,IAAIzB,EAAE,OAAO,CAAC,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,IAAI7C,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,IAAIyF,GAAG,OAAO,CAAC,CAAC,EAAE,YAA2B,GAAE,YAAY,UAAyB,GAAE,SAAS,CAAC,CAAC,EAAMI,GAAG,IAAItG,IAAI,CAAC,GAAG,CAACC,EAAE,EAAE,CAAC,EAAED,EAAE,OAAO,EAAEC,EAAE,EAAE,CAAC,aAAasG,GAAG,aAAaC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAgB,CAAC,UAAU,CAAC,aAAad,GAAE,QAAQ,GAAGD,GAAG,OAAO,EAAE,CAAC,YAA2B,GAAE,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,aAAaL,GAAE,QAAQ,CAAC,EAAE,CAAC,KAAK/E,CAAC,IAAI8E,GAAG,OAAO,EAAE,CAAC,YAA2B,GAAE,YAAY,UAAU9E,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,aAAawF,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAKxF,CAAC,IAAIuF,GAAG,OAAO,EAAE,CAAC,YAA2B,GAAE,YAAY,UAAUvF,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,aAAa2F,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK3F,CAAC,IAAI0F,GAAG,OAAO,EAAE,CAAC,YAA2B,GAAE,YAAY,UAAU1F,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,aAAa+F,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK/F,CAAC,IAAI8F,GAAG,OAAO,EAAE,CAAC,YAA2B,GAAE,YAAY,UAAU9F,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,YAA2B,GAAE,WAAW,CAAC,CAAC,ECDv8M,IAAMoG,GAAU,QACVC,GAAY,qBAGZC,GAA2C,CAC/C,oBAAqB,EACrB,0BAA2B,EAC3B,+BAAgC,EAChC,wBAAyB,EACzB,iCAAkC,EAClC,wBAAyB,GACzB,wBAAyB,GACzB,yBAA0B,GAC1B,wBAAyB,GACzB,IAAO,EACP,KAAQ,CACV,EAiCA,SAASC,GAAWC,EAAO,CACzB,IAAMC,EAAOC,GAAc,OAAOA,CAAA,EAAG,SAAS,EAAG,GAAA,EACjD,OAAOF,EAAE,YAAW,EAClB,IAAMC,EAAID,EAAE,SAAQ,EAAK,CAAA,EACzB,IAAMC,EAAID,EAAE,QAAO,CAAA,EACnB,IAAMC,EAAID,EAAE,SAAQ,CAAA,EACpB,IAAMC,EAAID,EAAE,WAAU,CAAA,EACtB,IAAMC,EAAID,EAAE,WAAU,CAAA,EACtB,IAAM,OAAOA,EAAE,gBAAe,CAAA,EAAI,SAAS,EAAG,GAAA,CAClD,CAEA,SAASG,GAAeC,EAAUC,EAAc,EAAC,CAC/C,GAAI,CAACD,EAAK,MAAO,GACjB,IAAIE,EAAc,GAKlB,GAJIF,EAAI,OAAS,OAAOA,EAAI,MAAM,MAAS,SAAUE,EAAcF,EAAI,MAAM,KACpE,OAAOA,EAAI,MAAS,SAAUE,EAAcF,EAAI,KAChDA,EAAI,gBAAgB,KAAME,EAAcF,EAAI,KAAK,YAAW,EAC5DA,aAAe,OAAME,EAAcF,EAAI,YAAW,GACvD,CAACE,EAAa,MAAO,GAEzB,IAAMC,EAAW,IAAI,KAAKD,EAAY,QAAQ,IAAK,EAAA,EAAM,GAAA,EACnDE,EAASJ,EAAI,OAAO,UAAYA,EAAI,UAAY,MAChDK,EAAeX,GAAiBU,CAAA,GAAW,EAE3CE,EAAYH,EAAS,QAAO,EAAME,EAAe,KACjDE,EAAY,IAAI,KAAKD,EAAaL,EAAc,IAAA,EAEtD,OAAON,GAAWY,CAAA,CACpB,CAEA,SAASC,GAAiBR,EAAQ,CAChC,OAAOA,GAAO,OAAOA,GAAQ,UAAa,SAAUA,GAAO,SAAUA,CACvE,CAEA,eAAeS,GAAWC,EAAW,CACnC,IAAMC,EAAa,MAAM,OAAO,OAAO,OAAO,UAAY,IAAI,YAAA,EAAe,OAAOD,CAAA,CAAA,EACpF,OAAO,MAAM,KAAK,IAAI,WAAWC,CAAA,CAAA,EAAa,IAAIC,GAAKA,EAAE,SAAS,EAAA,EAAI,SAAS,EAAG,GAAA,CAAA,EAAM,KAAK,EAAA,CAC/F,CAEA,SAASC,GAAyBb,EAAQc,EAAY,EAAC,CACrD,GAAId,GAAQ,KAA2B,OAAOA,EAC9C,GAAIQ,GAAiBR,CAAA,EAAM,OAAOD,GAAeC,EAAKc,CAAA,EACtD,GAAId,aAAe,KAAM,OAAOD,GAAe,CAAE,KAAMC,CAAI,EAAGc,CAAA,EAC9D,GAAI,MAAM,QAAQd,CAAA,EAAM,OAAOA,EAAI,IAAIe,GAAQF,GAAsBE,EAAMD,CAAA,CAAA,EAC3E,GAAI,OAAOd,GAAQ,SAAU,CAC3B,IAAMgB,EAAc,CAAC,EACrB,QAAWC,KAAOjB,EACZ,OAAO,UAAU,eAAe,KAAKA,EAAKiB,CAAA,IAAMD,EAAOC,CAAA,EAAOJ,GAAuBb,EAAYiB,CAAA,EAAMH,CAAA,GAE7G,OAAOE,CACT,CACA,OAAOhB,CACT,CAEA,eAAekB,IAAA,CACb,GAAI,CACF,IAAMC,EAAY,MAAMC,EAAO,IAAgB,YAAa,CAAE,QAAS,CAAA,CAAG,CAAA,EACtEC,EAAoB,CAAA,EACpBC,EAAUH,EAAU,SAAW,EAC/BI,EAAaJ,EAAU,QAC3B,OAAII,GAAc,OAAOA,GAAe,WAClCA,EAAW,UAAY,QAAaD,IAAY,IAAGA,EAAUC,EAAW,SACxE,MAAM,QAAQA,CAAA,EAAaF,EAAUE,EAAW,OAAOC,GAAKA,GAAK,OAAOA,EAAE,KAAQ,QAAA,EAC7ED,EAAW,MAAKF,EAAU,CAACE,KAE/B,CAAE,QAAAF,EAAS,QAAAC,CAAQ,CAC5B,MAAY,CACV,MAAO,CAAE,QAAS,CAAA,EAAI,QAAS,CAAE,CACnC,CACF,CAEA,eAAeG,GAAsBC,EAAgBZ,EAAY,EAAC,CAChE,IAAIa,EAAMD,EAAO,IAAI,KAAI,EACrBC,EAAI,SAAS,GAAA,IAAMA,EAAM,UAAUA,CAAA,GACvC,IAAMC,EAAW,MAAM,MAAMD,CAAA,EAC7B,GAAI,CAACC,EAAS,GAAI,MAAM,IAAI,MAAM,QAAQA,EAAS,MAAM,EAAE,EAC3D,IAAMC,EAAWC,GAAmB,OAAW,MAAMF,EAAS,KAAI,CAAA,EAClE,OAAKC,EAAS,OACP,MAAM,QAAQ,IAAIA,EAAS,OAAO,IAAI,MAAOE,GAAA,CAClD,IAAMC,EAAY,GAAGD,EAAS,OAAO,MAAQ,EAAA,GAAKA,EAAS,KAAOA,EAAS,SAAW,EAAA,GAChFE,EAAM,MAAMxB,GAAWuB,CAAA,EAC7B,OAAOnB,GAAsB,CAAE,GAAGkB,EAAU,IAAAE,EAAK,IAAK,aAAuB,WAAYP,EAAO,IAAK,EAAGZ,CAAA,CAC1G,CAAA,CAAA,EAL6B,CAAA,CAM/B,CAMA,eAAsBoB,IAAA,CACpB,GAAI,CACF,GAAM,CAAE,QAAAb,EAAS,QAAAC,CAAO,EAAK,MAAMJ,GAAA,EACnC,GAAIG,EAAQ,SAAW,EAAG,OAC1B,MAAMc,EAAO,kBAAkB,uBAAwB,MAAA,EACvD,IAAMC,EAA6B,CAAA,EACnC,QAAWV,KAAUL,EACnB,GAAI,CACF,IAAMgB,EAAS,MAAMZ,GAAsBC,EAAQJ,CAAA,EACnDc,EAAU,KAAI,GAAIC,CAAA,CACpB,OAASC,EAAK,CACZ,QAAQ,MAAM,kBAAkBZ,EAAO,IAAI,IAAKY,CAAA,CAClD,CAEF,MAAMC,EAAM,aAAa,aAAcH,CAAA,EACvC,MAAMD,EAAO,kBAAkB,UAAUC,EAAU,MAAM,UAAW,MAAA,CACtE,OAASE,EAAK,CACZ,QAAQ,MAAM,eAAgBA,CAAA,CAChC,CACF,CAEA,eAAsBE,IAAA,CACpB,MAAMC,EAAY,IAAIhD,EAAA,EACtB,MAAMyC,GAAA,CACR,CAEA,eAAsBQ,IAAA,CACpB,GAAI,CAAC,MAAMP,EAAO,QAAQ,4BAAA,EAA+B,OACzD,IAAMQ,EAAW,MAAMC,EAAU,MAAM,CAAE,OAAQ,CAAC,OAAQ,aAAc,CAAA,EAClEC,EAAiB,CAAA,EACvB,OAAW,CAAE,IAAA5B,CAAG,IAAM0B,EACpBE,EAAQ,KAAK5B,CAAA,EACb4B,EAAQ,KAAK,CAAC,SAAU5B,EAAI,MAAM,CAAA,EAAI,aAAa,EAEjD4B,EAAQ,OAAS,GAAG,MAAMD,EAAU,SAASC,CAAA,EACjD,MAAMJ,EAAY,IAAIhD,EAAA,EACtB,MAAM0C,EAAO,kBAAkB,yBAA0B,MAAA,CAC3D,CAEA,eAAsBW,IAAA,CACpB,MAAMX,EAAO,kBAAkB,kBAAkB3C,EAAA,GAAW,MAAA,CAC9D,CC3KA,IAAMuD,GAAkB,CACtB,cAAeC,GACf,UAAWC,GACX,WAAYC,GACZ,YAAaC,EAEf,EAGMC,GAAW,CACf,KAAQ,2BACR,QAAW,QACX,OAAU,SACV,UAAa,CACX,cAAiB,CACf,KAAQ,6BACR,QAAW,iBACb,EACA,UAAa,CACX,KAAQ,yBACR,QAAW,uBACb,EACA,WAAc,CACZ,KAAQ,0BACR,QAAW,wBACb,EACA,YAAe,CACb,KAAQ,2BACR,QAAW,yBACb,CACF,EACA,YAAe,CACb,MACF,EACA,OAAU,CAAC,CACb,EAEaC,GAAO,CAAC,SAAAD,GAAU,gBAAAL,EAAe,EAE9CO,GAAqBP,GAAiBK,GAAU,KAAK,WAAW", - "names": ["base64Decode", "s", "binString", "len", "bytes", "i", "base64Encode", "buffer", "binary", "fixedCounter", "Logger", "prefix", "maxCaptureSize", "createPatchedMethod", "level", "args", "prefixedArgs", "entry", "arg", "logEndpoint", "source", "logCopy", "e", "globalLogger", "initLogger", "workerPostMessage", "_msg", "runningAsWebWorker", "pendingRequests", "syscallReqId", "name", "args", "resolve", "reject", "setupMessageListener", "functionMapping", "manifest", "postMessageFn", "event", "data", "fn", "result", "e", "syscallId", "lookup", "initLogger", "sandboxFetch", "reqInfo", "options", "body", "encodedBody", "base64Encode", "monkeyPatchFetch", "init", "r", "base64Decode", "editor_exports", "__export", "alert", "configureVimMode", "confirm", "copyToClipboard", "deleteLine", "dispatch", "downloadFile", "filterBox", "flashNotification", "fold", "foldAll", "getCurrentEditor", "getCurrentPage", "getCurrentPageMeta", "getCurrentPath", "getCursor", "getRecentlyOpenedPages", "getSelection", "getText", "getUiOption", "goHistory", "hidePanel", "insertAtCursor", "insertAtPos", "invokeCommand", "isMobile", "moveCursor", "moveCursorToLine", "moveLineDown", "moveLineUp", "navigate", "newWindow", "openCommandPalette", "openPageNavigator", "openSearchPanel", "openUrl", "prompt", "rebuildEditorState", "redo", "reloadConfigAndCommands", "reloadPage", "reloadUI", "replaceRange", "save", "sendMessage", "setSelection", "setText", "setUiOption", "showPanel", "showProgress", "toggleComment", "toggleFold", "undo", "unfold", "unfoldAll", "uploadFile", "vimEx", "syscall", "name", "args", "getCurrentPage", "syscall", "getCurrentPageMeta", "getCurrentPath", "getRecentlyOpenedPages", "getCurrentEditor", "getText", "setText", "newText", "isolateHistory", "getCursor", "getSelection", "setSelection", "from", "to", "invokeCommand", "name", "args", "save", "navigate", "ref", "replaceState", "newWindow", "openPageNavigator", "mode", "openCommandPalette", "reloadPage", "reloadUI", "rebuildEditorState", "reloadConfigAndCommands", "openUrl", "url", "existingWindow", "goHistory", "delta", "downloadFile", "filename", "dataUrl", "uploadFile", "accept", "capture", "flashNotification", "message", "type", "filterBox", "label", "options", "helpText", "placeHolder", "showPanel", "id", "html", "script", "hidePanel", "showProgress", "progressPercentage", "progressType", "insertAtPos", "text", "pos", "replaceRange", "moveCursor", "center", "moveCursorToLine", "line", "column", "insertAtCursor", "scrollIntoView", "cursorPlaceHolder", "dispatch", "change", "prompt", "defaultValue", "confirm", "alert", "getUiOption", "key", "setUiOption", "value", "fold", "unfold", "toggleFold", "foldAll", "unfoldAll", "undo", "redo", "openSearchPanel", "copyToClipboard", "data", "deleteLine", "toggleComment", "moveLineUp", "moveLineDown", "vimEx", "exCommand", "configureVimMode", "sendMessage", "isMobile", "client_store_exports", "__export", "del", "get", "set", "set", "key", "value", "syscall", "get", "del", "fixedCounter", "datastore_exports", "__export", "batchDel", "batchDeletePrefix", "batchGet", "batchSet", "del", "get", "listFunctions", "query", "queryDelete", "queryLua", "set", "set", "key", "value", "syscall", "batchSet", "kvs", "get", "batchGet", "keys", "del", "batchDel", "query", "options", "queryLua", "prefix", "scopeVariables", "batchDeletePrefix", "queryDelete", "variables", "listFunctions", "config_exports", "__export", "define", "get", "has", "insert", "set", "get", "path", "defaultValue", "syscall", "set", "pathOrValues", "value", "insert", "has", "define", "key", "schema", "syscalls_exports", "__export", "ensureFullIndex", "getObjectByRef", "indexObjects", "queryLuaObjects", "indexObjects", "page", "objects", "syscall", "queryLuaObjects", "tag", "query", "scopedVariables", "ttlSecs", "getObjectByRef", "ref", "ensureFullIndex", "g", "t", "e", "I", "$e", "hn", "Kn", "Ne", "Ze", "Yn", "Bn", "ve", "Xe", "Un", "Wn", "Ae", "Qe", "wn", "Hn", "be", "et", "Zn", "Xn", "xt", "tt", "to", "ro", "Ve", "rt", "ao", "so", "Me", "nt", "io", "po", "ze", "ot", "yo", "lo", "at", "st", "xe", "X", "ct", "mt", "Q", "ee", "te", "re", "ne", "it", "t", "at", "st", "St", "Se", "pt", "gt", "b", "Ot", "oe", "De", "mn", "qo", "vt", "ce", "me", "pn", "bt", "$o", "un", "dn", "Zo", "dt", "x", "t", "e", "i", "Y", "he", "s", "z", "Ke", "fn", "B", "ae", "c", "m", "p", "d", "r", "n", "o", "a", "F", "t", "e", "x", "ge", "i", "ie", "t", "e", "i", "ce", "Pe", "z", "j", "Y", "ke", "he", "pe", "yt", "t", "e", "i", "Kt", "t", "e", "F", "Pt", "s", "c", "m", "x", "lt", "i", "kt", "Yt", "Bt", "d", "l", "E", "v", "r", "n", "o", "B", "a", "ae", "p", "Ft", "jt", "vt", "Oe", "je", "Ut", "Wt", "Ue", "Gt", "Jt", "wt", "Ht", "Re", "D", "Y", "We", "qt", "me", "$t", "ce", "Zt", "Xt", "Qt", "er", "tr", "rr", "nr", "z", "or", "j", "sr", "ct", "mt", "cr", "Ge", "ue", "t", "e", "mr", "s", "Pe", "ie", "Ke", "Y", "j", "he", "ke", "ir", "Ge", "c", "Oe", "Re", "m", "Tt", "W", "lt", "yt", "Yt", "kt", "d", "l", "ge", "or", "Pt", "a", "We", "pr", "er", "Ut", "ur", "tr", "Wt", "dr", "Zt", "Ue", "fr", "je", "Xt", "yr", "rr", "Gt", "lr", "pe", "Tr", "Ht", "Ir", "Qt", "Jt", "Er", "wt", "yn", "xr", "p", "r", "n", "o", "Sr", "se", "Dr", "Je", "qt", "$t", "u", "t", "e", "Pr", "n", "o", "s", "a", "r", "w", "L", "c", "m", "p", "d", "l", "E", "_", "kr", "H", "Yr", "se", "nr", "En", "Je", "z", "y", "Br", "xn", "Et", "De", "Sn", "Fr", "Dn", "Ot", "gt", "jr", "oe", "Ur", "gn", "Wr", "Se", "pt", "Gr", "On", "Jr", "St", "it", "P", "Ee", "v", "D", "Ie", "Z", "qe", "q", "ye", "Rn", "wr", "Hr", "Cn", "Nn", "vn", "An", "bn", "Vn", "Mn", "zn", "$", "tt", "b", "cr", "le", "qr", "Te", "$r", "Zr", "Xr", "K", "Qr", "N", "en", "ee", "$e", "tn", "Q", "Xe", "rn", "sr", "et", "nn", "X", "Qe", "on", "te", "rt", "an", "re", "nt", "sn", "cn", "ne", "ot", "mT", "xe", "Ze", "VERSION", "CACHE_KEY", "TIMEZONE_OFFSETS", "toLocalISO", "d", "pad", "n", "processIcsDate", "obj", "manualShift", "wallTimeStr", "baseDate", "tzName", "sourceOffset", "utcMillis", "finalDate", "isIcsDateObjects", "sha256Hash", "str", "hashBuffer", "b", "convertDatesToStrings", "hourShift", "item", "result", "key", "getSources", "rawConfig", "config_exports", "sources", "tzShift", "rawSources", "s", "fetchAndParseCalendar", "source", "url", "response", "calendar", "mT", "icsEvent", "uniqueKey", "ref", "syncCalendars", "editor_exports", "allEvents", "events", "err", "syscalls_exports", "forceSync", "client_store_exports", "clearCache", "pageKeys", "datastore_exports", "allKeys", "showVersion", "functionMapping", "syncCalendars", "forceSync", "clearCache", "showVersion", "manifest", "plug", "setupMessageListener"] + "sources": ["https://deno.land/x/silverbullet@2.4.1/plug-api/lib/crypto.ts", "https://deno.land/x/silverbullet@2.4.1/client/lib/logger.ts", "https://deno.land/x/silverbullet@2.4.1/client/plugos/worker_runtime.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/editor.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscall.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/client_store.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/lib/crypto.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/config.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/index.ts", "https://esm.sh/ts-ics@2.4.0/denonext/ts-ics.mjs", "main.ts", "../tmp/4155025783cfa379.js"], + "sourcesContent": ["export function base64Decode(s: string): Uint8Array {\n const binString = atob(s);\n const len = binString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binString.charCodeAt(i);\n }\n return bytes;\n}\n\nexport function base64Encode(buffer: Uint8Array | string): string {\n if (typeof buffer === \"string\") {\n buffer = new TextEncoder().encode(buffer);\n }\n let binary = \"\";\n const len = buffer.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(buffer[i]);\n }\n return btoa(binary);\n}\n\nexport function base64EncodedDataUrl(\n mimeType: string,\n buffer: Uint8Array,\n): string {\n return `data:${mimeType};base64,${base64Encode(buffer)}`;\n}\n\nexport function base64DecodeDataUrl(dataUrl: string): Uint8Array {\n const b64Encoded = dataUrl.split(\",\", 2)[1];\n return base64Decode(b64Encoded);\n}\n\n/**\n * Perform sha256 hash using the browser's crypto APIs\n * Note: this will only work over HTTPS\n * @param message\n */\nexport async function hashSHA256(\n message: string | Uint8Array,\n): Promise {\n // Transform the string into an ArrayBuffer\n const encoder = new TextEncoder();\n const data: Uint8Array = typeof message === \"string\"\n ? encoder.encode(message)\n : message;\n\n // Generate the hash\n const hashBuffer = await globalThis.crypto.subtle.digest(\n \"SHA-256\",\n data as BufferSource,\n );\n\n // Transform the hash into a hex string\n return Array.from(new Uint8Array(hashBuffer)).map((b) =>\n b.toString(16).padStart(2, \"0\")\n ).join(\"\");\n}\n\n/**\n * To avoid database clashes based on space folder path name, base URLs and encryption keys we derive\n * a database name from a hash of all these combined together\n */\nexport async function deriveDbName(\n type: \"data\" | \"files\",\n spaceFolderPath: string,\n baseURI: string,\n encryptionKey?: CryptoKey,\n): Promise {\n let keyPart = \"\";\n if (encryptionKey) {\n keyPart = await exportKey(encryptionKey);\n }\n const spaceHash = await hashSHA256(\n `${spaceFolderPath}:${baseURI}:${keyPart}`,\n );\n return `sb_${type}_${spaceHash}`;\n}\n\n// Fixed counter for AES-CTR all zeroes, for determinism\nconst fixedCounter = new Uint8Array(16);\n\nexport async function encryptStringDeterministic(\n key: CryptoKey,\n clearText: string,\n): Promise {\n const encrypted = await crypto.subtle.encrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n new TextEncoder().encode(clearText),\n );\n return base64Encode(new Uint8Array(encrypted));\n}\n\nexport async function decryptStringDeterministic(\n key: CryptoKey,\n cipherText: string,\n): Promise {\n const decrypted = await crypto.subtle.decrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n base64Decode(cipherText) as BufferSource,\n );\n return new TextDecoder().decode(decrypted);\n}\n\n// Encrypt using AES-GCM with random IV; output = IV + ciphertext\nexport async function encryptAesGcm(\n key: CryptoKey,\n data: Uint8Array,\n): Promise {\n const iv = crypto.getRandomValues(new Uint8Array(12)); // 96-bit IV recommended for GCM\n const encryptedBuffer = await crypto.subtle.encrypt(\n { name: \"AES-GCM\", iv },\n key,\n data as BufferSource,\n );\n const encrypted = new Uint8Array(encryptedBuffer);\n\n // Prepend IV to ciphertext\n const result = new Uint8Array(iv.length + encrypted.length);\n result.set(iv, 0);\n result.set(encrypted, iv.length);\n return result;\n}\n\n// Decrypt using AES-GCM assuming input format IV + ciphertext\nexport async function decryptAesGcm(\n key: CryptoKey,\n encryptedData: Uint8Array,\n): Promise {\n const iv = encryptedData.slice(0, 12); // extract IV (first 12 bytes)\n const ciphertext = encryptedData.slice(12);\n const decryptedBuffer = await crypto.subtle.decrypt(\n { name: \"AES-GCM\", iv },\n key,\n ciphertext,\n );\n return new Uint8Array(decryptedBuffer);\n}\n\nexport async function deriveCTRKeyFromPassword(\n password: string,\n salt: Uint8Array,\n): Promise {\n // Encode password to ArrayBuffer\n const passwordBytes = new TextEncoder().encode(password);\n\n // Import password as a CryptoKey\n const baseKey = await crypto.subtle.importKey(\n \"raw\",\n passwordBytes,\n { name: \"PBKDF2\" },\n false,\n [\"deriveBits\", \"deriveKey\"],\n );\n\n return crypto.subtle.deriveKey(\n {\n name: \"PBKDF2\",\n salt: salt as BufferSource,\n iterations: 100000,\n hash: \"SHA-256\",\n },\n baseKey,\n {\n name: \"AES-CTR\",\n length: 256,\n },\n true, // extractable\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport function importKey(b64EncodedKey: string): Promise {\n return crypto.subtle.importKey(\n \"raw\",\n base64Decode(b64EncodedKey) as BufferSource,\n { name: \"AES-CTR\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport async function exportKey(ctrKey: CryptoKey): Promise {\n const key = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return base64Encode(new Uint8Array(key));\n}\n\nexport async function deriveGCMKeyFromCTR(\n ctrKey: CryptoKey,\n): Promise {\n const rawKey = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return crypto.subtle.importKey(\n \"raw\",\n rawKey,\n { name: \"AES-GCM\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n", "// Logger that monkey patches console methods with prefixes and can capture logs for server transmission\n\nexport interface LogEntry {\n level: \"log\" | \"info\" | \"warn\" | \"error\" | \"debug\";\n timestamp: number;\n message: string;\n}\n\nexport class Logger {\n private originalConsole: {\n log: typeof console.log;\n info: typeof console.info;\n warn: typeof console.warn;\n error: typeof console.error;\n debug: typeof console.debug;\n };\n public logBuffer: LogEntry[] = [];\n\n constructor(\n private prefix: string = \"\",\n private maxCaptureSize: number = 1000,\n ) {\n this.prefix = prefix;\n\n // Store original console methods\n this.originalConsole = {\n log: console.log.bind(console),\n info: console.info.bind(console),\n warn: console.warn.bind(console),\n error: console.error.bind(console),\n debug: console.debug.bind(console),\n };\n\n this.patchConsole();\n }\n\n private patchConsole(): void {\n const createPatchedMethod = (level: keyof typeof this.originalConsole) => {\n return (...args: any[]) => {\n const prefixedArgs = this.prefix ? [this.prefix, ...args] : args;\n\n // Call original console method\n this.originalConsole[level](...prefixedArgs);\n\n // Capture log if capturing is enabled\n this.captureLog(level, args);\n };\n };\n\n console.log = createPatchedMethod(\"log\");\n console.info = createPatchedMethod(\"info\");\n console.warn = createPatchedMethod(\"warn\");\n console.error = createPatchedMethod(\"error\");\n console.debug = createPatchedMethod(\"debug\");\n }\n\n private captureLog(level: LogEntry[\"level\"], args: any[]): void {\n const entry: LogEntry = {\n level,\n timestamp: Date.now(),\n message: args.map((arg) => {\n if (typeof arg === \"string\") {\n return arg;\n }\n try {\n return JSON.stringify(arg);\n } catch {\n // Handle circular references or other JSON.stringify failures\n return String(arg);\n }\n }).join(\" \"),\n };\n\n this.logBuffer.push(entry);\n\n // Maintain max capture size by removing oldest entries\n if (this.logBuffer.length > this.maxCaptureSize) {\n this.logBuffer.shift();\n }\n }\n\n /**\n * Posts all buffered logs to a server endpoint\n */\n async postToServer(logEndpoint: string, source: string) {\n const logs = this.logBuffer;\n if (logs.length > 0) {\n // Flush the buffer\n const logCopy = [...this.logBuffer];\n this.logBuffer = [];\n try {\n const resp = await fetch(logEndpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(logCopy.map((entry) => ({ ...entry, source }))),\n });\n if (!resp.ok) {\n throw new Error(\"Failed to post logs to server\");\n }\n } catch (e: any) {\n console.warn(\"Could not post logs to server\", e.message);\n // Put back the logs into the buffer\n this.logBuffer.unshift(...logCopy);\n }\n }\n }\n}\n\n// Global logger instance\nlet globalLogger: Logger | undefined = undefined;\n\nexport function initLogger(prefix: string = \"\"): Logger {\n globalLogger = new Logger(prefix);\n return globalLogger;\n}\n", "// This is the runtime imported from the compiled plug worker code\nimport type { ControllerMessage, WorkerMessage } from \"./protocol.ts\";\nimport type {\n ProxyFetchRequest64,\n ProxyFetchResponse64,\n} from \"./proxy_fetch.ts\";\nimport { base64Decode, base64Encode } from \"../../plug-api/lib/crypto.ts\";\nimport { initLogger } from \"../lib/logger.ts\";\n\ndeclare global {\n function syscall(name: string, ...args: any[]): Promise;\n}\n\nlet workerPostMessage = (_msg: ControllerMessage): void => {\n throw new Error(\"Not initialized yet\");\n};\n\n// Are we running in a (web) worker?\n\n// Determines if we're running in a web worker environment (Deno or browser)\n// - in a browser's main threads, typeof window is \"object\"\n// - in a browser's worker threads, typeof window === \"undefined\"\n// - in Deno's main thread typeof window === \"object\"\n// - in Deno's workers typeof window === \"undefined\n// - in Cloudflare workers typeof window === \"undefined\", but typeof globalThis.WebSocketPair is defined\nconst runningAsWebWorker = typeof window === \"undefined\" &&\n // @ts-ignore: globalThis\n typeof globalThis.WebSocketPair === \"undefined\";\n\nif (typeof Deno === \"undefined\") {\n // @ts-ignore: Deno hack\n self.Deno = {\n args: [],\n // @ts-ignore: Deno hack\n build: {\n arch: \"x86_64\",\n },\n env: {\n // @ts-ignore: Deno hack\n get() {\n },\n },\n };\n}\n\nconst pendingRequests = new Map<\n number,\n {\n resolve: (result: unknown) => void;\n reject: (e: any) => void;\n }\n>();\n\nlet syscallReqId = 0;\n\nif (runningAsWebWorker) {\n globalThis.syscall = async (name: string, ...args: any[]) => {\n return await new Promise((resolve, reject) => {\n syscallReqId++;\n pendingRequests.set(syscallReqId, { resolve, reject });\n workerPostMessage({\n type: \"sys\",\n id: syscallReqId,\n name,\n args,\n });\n });\n };\n}\n\nexport function setupMessageListener(\n // deno-lint-ignore ban-types\n functionMapping: Record,\n manifest: any,\n postMessageFn: (msg: ControllerMessage) => void,\n) {\n if (!runningAsWebWorker) {\n // Don't do any of this stuff if this is not a web worker\n // This caters to the NoSandbox run mode\n return;\n }\n workerPostMessage = postMessageFn;\n self.addEventListener(\"message\", (event: { data: WorkerMessage }) => {\n (async () => {\n const data = event.data;\n switch (data.type) {\n case \"inv\":\n {\n const fn = functionMapping[data.name!];\n if (!fn) {\n throw new Error(`Function not loaded: ${data.name}`);\n }\n try {\n const result = await Promise.resolve(fn(...(data.args || [])));\n workerPostMessage({\n type: \"invr\",\n id: data.id,\n result: result,\n } as ControllerMessage);\n } catch (e: any) {\n console.error(\n \"An exception was thrown as a result of invoking function\",\n data.name,\n \"error:\",\n e.message,\n );\n workerPostMessage({\n type: \"invr\",\n id: data.id!,\n error: e.message,\n });\n }\n }\n break;\n case \"sysr\":\n {\n const syscallId = data.id;\n const lookup = pendingRequests.get(syscallId);\n if (!lookup) {\n throw Error(\"Invalid request id\");\n }\n pendingRequests.delete(syscallId);\n if (data.error) {\n lookup.reject(new Error(data.error));\n } else {\n lookup.resolve(data.result);\n }\n }\n\n break;\n }\n })().catch(console.error);\n });\n // Signal initialization with manifest\n workerPostMessage({\n type: \"manifest\",\n manifest,\n });\n initLogger(`[${manifest.name} plug]`);\n}\n\nexport async function sandboxFetch(\n reqInfo: RequestInfo,\n options?: ProxyFetchRequest64,\n): Promise {\n if (typeof reqInfo !== \"string\") {\n const body = new Uint8Array(await reqInfo.arrayBuffer());\n const encodedBody = body.length > 0 ? base64Encode(body) : undefined;\n options = {\n method: reqInfo.method,\n headers: Object.fromEntries(reqInfo.headers.entries()),\n base64Body: encodedBody,\n };\n reqInfo = reqInfo.url;\n }\n return syscall(\"sandboxFetch.fetch\", reqInfo, options);\n}\n\n// @ts-ignore: monkey patching fetch\nglobalThis.nativeFetch = globalThis.fetch;\n\n// Monkey patch fetch()\nexport function monkeyPatchFetch() {\n // @ts-ignore: monkey patching fetch\n globalThis.fetch = async function (\n reqInfo: RequestInfo,\n init?: RequestInit,\n ): Promise {\n const encodedBody = init && init.body\n ? base64Encode(\n new Uint8Array(await (new Response(init.body)).arrayBuffer()),\n )\n : undefined;\n const r = await sandboxFetch(\n reqInfo,\n init && {\n method: init.method,\n headers: init.headers as Record,\n base64Body: encodedBody,\n },\n );\n // Casting the response to \"any\" for now, since of weird Deno typing\n return new Response(\n (r.base64Body ? base64Decode(r.base64Body) : null) as any,\n {\n status: r.status,\n headers: r.headers,\n },\n );\n };\n}\n\nif (runningAsWebWorker) {\n monkeyPatchFetch();\n}\n", "import { syscall } from \"../syscall.ts\";\nimport type { FilterOption, UploadFile } from \"../types/client.ts\";\nimport type { Path, Ref } from \"../lib/ref.ts\";\nimport type { PageMeta } from \"../types/index.ts\";\n\n/**\n * Exposes various editor utilities.\n * Important: These syscalls are only available in the client.\n * @module\n */\n\n/**\n * Returns the name of the page or document currently open in the editor.\n * @returns the current page name\n */\nexport function getCurrentPage(): Promise {\n return syscall(\"editor.getCurrentPage\");\n}\n\n/**\n * Returns the meta data of the page or document currently open in the editor.\n * @returns the current page meta data\n */\nexport function getCurrentPageMeta(): Promise {\n return syscall(\"editor.getCurrentPageMeta\");\n}\n\n/**\n * Returns the path of the page or document currently open in the editor.\n * @returns the current page path\n */\nexport function getCurrentPath(): Promise {\n return syscall(\"editor.getCurrentPath\");\n}\n\n/**\n * Returns the names of the pages that have been recently opened\n * @returns the names of the recently opened pages\n */\nexport function getRecentlyOpenedPages(): Promise {\n return syscall(\"editor.getRecentlyOpenedPages\");\n}\n\n/**\n * Returns the name of the currently open editor.\n * @returns the name of the current editor\n */\nexport function getCurrentEditor(): Promise {\n return syscall(\"editor.getCurrentEditor\");\n}\n\n/**\n * Returns the full text of the currently open page\n */\nexport function getText(): Promise {\n return syscall(\"editor.getText\");\n}\n\n/**\n * This updates the editor text, but in a minimal-diff way:\n * it compares the current editor text with the new text, and only sends the changes to the editor, thereby preserving cursor location\n */\nexport function setText(\n newText: string,\n isolateHistory = false,\n): Promise {\n return syscall(\"editor.setText\", newText, isolateHistory);\n}\n\n/**\n * Returns the position (in # of characters from the beginning of the file) of the cursor in the editor\n */\nexport function getCursor(): Promise {\n return syscall(\"editor.getCursor\");\n}\n\n/**\n * Returns the line number and column number of the cursor in the editor\n */\nexport function getSelection(): Promise<\n { from: number; to: number; text: string }\n> {\n return syscall(\"editor.getSelection\");\n}\n\n/**\n * Sets the position of the cursor in the editor\n * @param from the start position of the selection\n * @param to the end position of the selection\n */\nexport function setSelection(from: number, to: number): Promise {\n return syscall(\"editor.setSelection\", from, to);\n}\n\n/**\n * Invoke a client command by name\n * Note: only available on the client\n * @param name name of the command\n * @param args arguments to pass to the command\n */\nexport function invokeCommand(name: string, args?: string[]): Promise {\n return syscall(\"editor.invokeCommand\", name, args);\n}\n\n/**\n * Forces a save of the current page\n */\nexport function save(): Promise {\n return syscall(\"editor.save\");\n}\n\n/**\n * Navigates to the specified page reference\n * @param pageRef the page reference to navigate to\n * @param replaceState whether to replace the current history state in the browser history\n * @param newWindow whether to open the page in a new window\n */\nexport function navigate(\n ref: Ref | string,\n replaceState = false,\n newWindow = false,\n): Promise {\n return syscall(\"editor.navigate\", ref, replaceState, newWindow);\n}\n\n/**\n * Opens the page navigator\n * @param mode the mode to open the navigator in\n */\nexport function openPageNavigator(\n mode: \"page\" | \"meta\" | \"document\" | \"all\" = \"page\",\n): Promise {\n return syscall(\"editor.openPageNavigator\", mode);\n}\n\n/**\n * Opens the command palette\n */\nexport function openCommandPalette(): Promise {\n return syscall(\"editor.openCommandPalette\");\n}\n\n/**\n * Force reloads the current page\n */\nexport function reloadPage(): Promise {\n return syscall(\"editor.reloadPage\");\n}\n\n/**\n * Force reloads the browser UI\n */\nexport function reloadUI(): Promise {\n return syscall(\"editor.reloadUI\");\n}\n\n/**\n * Rebuilds the editor state to ensure the dispatch updates the state.\n */\nexport function rebuildEditorState(): Promise {\n return syscall(\"editor.rebuildEditorState\");\n}\n\n/**\n * Reloads the config and commands, also in the server\n */\nexport function reloadConfigAndCommands(): Promise {\n return syscall(\"editor.reloadConfigAndCommands\");\n}\n\n/**\n * Opens the specified URL in the browser\n * @param url the URL to open\n * @param existingWindow whether to open the URL in an existing window\n */\nexport function openUrl(url: string, existingWindow = false): Promise {\n return syscall(\"editor.openUrl\", url, existingWindow);\n}\n\nexport function newWindow(): Promise {\n return syscall(\"editor.newWindow\");\n}\n\n/**\n * This is calling the `go()` method from the History Web API.\n * @param delta Position in history to move to relative to the current page,\n * where a negative value moves backwards, and positive forwards\n */\nexport function goHistory(delta: number): Promise {\n return syscall(\"editor.goHistory\", delta);\n}\n\n/**\n * Force the client to download the file in dataUrl with filename as file name\n * @param filename the name of the file to download\n * @param dataUrl the dataUrl of the file to download\n */\nexport function downloadFile(filename: string, dataUrl: string): Promise {\n return syscall(\"editor.downloadFile\", filename, dataUrl);\n}\n\n/**\n * Triggers the browser's native file upload dialog/popup\n * @param accept the file types to accept\n * @param capture the capture mode for the file input\n */\nexport function uploadFile(\n accept?: string,\n capture?: string,\n): Promise {\n return syscall(\"editor.uploadFile\", accept, capture);\n}\n\n/**\n * Shows a flash notification to the user (top right corner)\n * @param message the message to show\n * @param type the type of notification to show\n */\nexport function flashNotification(\n message: string,\n type: \"info\" | \"error\" = \"info\",\n): Promise {\n return syscall(\"editor.flashNotification\", message, type);\n}\n\n/**\n * Exposes a filter box UI (similar to the page navigator and command palette)\n * @param label the label to show left of the input box\n * @param options the options to show and to filter on\n * @param helpText the help text to show below the input box\n * @param placeHolder the placeholder text to show in the input box\n */\nexport function filterBox(\n label: string,\n options: FilterOption[],\n helpText = \"\",\n placeHolder = \"\",\n): Promise {\n return syscall(\"editor.filterBox\", label, options, helpText, placeHolder);\n}\n\n/**\n * Shows a panel in the editor\n * @param id the location of the panel to show\n * @param mode the mode or \"size\" of the panel\n * @param html the html content of the panel\n * @param script the script content of the panel\n */\nexport function showPanel(\n id: \"lhs\" | \"rhs\" | \"bhs\" | \"modal\",\n mode: number,\n html: string,\n script = \"\",\n): Promise {\n return syscall(\"editor.showPanel\", id, mode, html, script);\n}\n\n/**\n * Hides a panel in the editor\n * @param id the location of the panel to hide\n */\nexport function hidePanel(\n id: \"lhs\" | \"rhs\" | \"bhs\" | \"modal\",\n): Promise {\n return syscall(\"editor.hidePanel\", id);\n}\n\nexport function showProgress(\n progressPercentage?: number,\n progressType?: string,\n): Promise {\n return syscall(\"editor.showProgress\", progressPercentage, progressType);\n}\n\n/**\n * Insert text at the specified position into the editor\n * @param text the text to insert\n * @param pos\n */\nexport function insertAtPos(text: string, pos: number): Promise {\n return syscall(\"editor.insertAtPos\", text, pos);\n}\n\n/**\n * Replace the text in the specified range in the editor\n * @param from the start position of the range\n * @param to the end position of the range\n * @param text the text to replace with\n */\nexport function replaceRange(\n from: number,\n to: number,\n text: string,\n): Promise {\n return syscall(\"editor.replaceRange\", from, to, text);\n}\n\n/**\n * Move the cursor to the specified position in the editor\n * @param pos the position to move the cursor to\n * @param center whether to center the cursor in the editor after moving\n */\nexport function moveCursor(pos: number, center = false): Promise {\n return syscall(\"editor.moveCursor\", pos, center);\n}\n\n/**\n * Move the cursor to the specified line and column in the editor\n * @param line the line number to move the cursor to\n * @param column the column number to move the cursor to\n * @param center whether to center the cursor in the editor after moving\n */\nexport function moveCursorToLine(\n line: number,\n column = 1,\n center = false,\n): Promise {\n return syscall(\"editor.moveCursorToLine\", line, column, center);\n}\n\n/**\n * Insert text at the cursor position in the editor\n * @param text the text to insert\n */\nexport function insertAtCursor(\n text: string,\n scrollIntoView = false,\n cursorPlaceHolder = false,\n): Promise {\n return syscall(\n \"editor.insertAtCursor\",\n text,\n scrollIntoView,\n cursorPlaceHolder,\n );\n}\n\n/**\n * Dispatch a CodeMirror transaction: https://codemirror.net/docs/ref/#state.Transaction\n */\nexport function dispatch(change: any): Promise {\n return syscall(\"editor.dispatch\", change);\n}\n\n/**\n * Prompt the user for text input\n * @param message the message to show in the prompt\n * @param defaultValue a default value pre-filled in the prompt\n * @returns\n */\nexport function prompt(\n message: string,\n defaultValue = \"\",\n): Promise {\n return syscall(\"editor.prompt\", message, defaultValue);\n}\n\n/**\n * Prompt the user for confirmation\n * @param message the message to show in the confirmation dialog\n * @returns\n */\nexport function confirm(\n message: string,\n): Promise {\n return syscall(\"editor.confirm\", message);\n}\n\n/**\n * Prompt the user for confirmation\n * @param message the message to show in the confirmation dialog\n * @returns\n */\nexport function alert(\n message: string,\n): Promise {\n return syscall(\"editor.alert\", message);\n}\n\n/**\n * Get the value of a UI option\n * @param key the key of the UI option to get\n * @returns\n */\nexport function getUiOption(key: string): Promise {\n return syscall(\"editor.getUiOption\", key);\n}\n\n/**\n * Set the value of a UI option\n * @param key the key of the UI option to set\n * @param value the value to set the UI option to\n */\nexport function setUiOption(key: string, value: any): Promise {\n return syscall(\"editor.setUiOption\", key, value);\n}\n\n/**\n * Perform a fold at the current cursor position\n */\nexport function fold(): Promise {\n return syscall(\"editor.fold\");\n}\n\n/**\n * Perform an unfold at the current cursor position\n */\nexport function unfold(): Promise {\n return syscall(\"editor.unfold\");\n}\n\n/**\n * Toggle the fold at the current cursor position\n */\nexport function toggleFold(): Promise {\n return syscall(\"editor.toggleFold\");\n}\n\n/**\n * Fold all code blocks in the editor\n */\nexport function foldAll(): Promise {\n return syscall(\"editor.foldAll\");\n}\n\n/**\n * Unfold all code blocks in the editor\n */\nexport function unfoldAll(): Promise {\n return syscall(\"editor.unfoldAll\");\n}\n\n/**\n * Perform an undo operation of the last edit in the editor\n */\nexport function undo(): Promise {\n return syscall(\"editor.undo\");\n}\n\n/**\n * Perform a redo operation of the last undo in the editor\n */\nexport function redo(): Promise {\n return syscall(\"editor.redo\");\n}\n\n/**\n * Open the editor's native search panel\n */\nexport function openSearchPanel(): Promise {\n return syscall(\"editor.openSearchPanel\");\n}\n\n/**\n * Copy the specified data to the clipboard\n * @param data the data to copy\n */\nexport function copyToClipboard(data: string | Blob): Promise {\n return syscall(\"editor.copyToClipboard\", data);\n}\n\n/**\n * Delete the current line in the editor\n */\nexport function deleteLine(): Promise {\n return syscall(\"editor.deleteLine\");\n}\n\n/**\n * Comment or uncomment the current line in the editor\n */\nexport function toggleComment(): Promise {\n return syscall(\"editor.toggleComment\");\n}\n\nexport function moveLineUp(): Promise {\n return syscall(\"editor.moveLineUp\");\n}\n\nexport function moveLineDown(): Promise {\n return syscall(\"editor.moveLineDown\");\n}\n\n// Vim-mode specific syscalls\n\n/**\n * Execute a Vim ex command\n * @param exCommand the ex command to execute\n */\nexport function vimEx(exCommand: string): Promise {\n return syscall(\"editor.vimEx\", exCommand);\n}\n\n/**\n * Execute a vim config using the CodeMirror Vim Mode API\n */\nexport function configureVimMode(): Promise {\n return syscall(\"editor.configureVimMode\");\n}\n\n// Document editor specific syscalls\n\n/**\n * Send a message - or event if you will - to the currently used document editor\n * @param type the message type, which can be listend to\n * @param data data attached to the message\n */\nexport function sendMessage(type: string, data?: any): Promise {\n return syscall(\"editor.sendMessage\", type, data);\n}\n\n/**\n * Check if the editor is running on a mobile device\n */\nexport function isMobile(): Promise {\n return syscall(\"editor.isMobile\");\n}\n", "// declare global {\n// function syscall(name: string, ...args: any[]): Promise;\n// }\n\n// This is the case when running tests only, so giving it a dummy syscall function\nif (typeof self === \"undefined\") {\n (self as any) = {\n syscall: () => {\n throw new Error(\"Not implemented here\");\n },\n };\n}\n\n// Late binding syscall\nexport function syscall(name: string, ...args: any[]): Promise {\n return (globalThis as any).syscall(name, ...args);\n}\n", "import { syscall } from \"../syscall.ts\";\n\n/**\n * Implements a very simple (string) key value store for the client.\n * Generally should only be used to set some client-specific states, such as preferences.\n * @module\n */\n\n/**\n * Sets a value in the client store.\n * @param key the key to set\n * @param value the value to set\n */\nexport function set(key: string, value: any): Promise {\n return syscall(\"clientStore.set\", key, value);\n}\n\n/**\n * Gets a value from the client store.\n * @param key the key to get\n * @returns the value associated with the key\n */\nexport function get(key: string): Promise {\n return syscall(\"clientStore.get\", key);\n}\n\n/**\n * Deletes a value from the client store.\n * @param key the key to delete\n */\nexport function del(key: string): Promise {\n return syscall(\"clientStore.delete\", key);\n}\n", "export function base64Decode(s: string): Uint8Array {\n const binString = atob(s);\n const len = binString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binString.charCodeAt(i);\n }\n return bytes;\n}\n\nexport function base64Encode(buffer: Uint8Array | string): string {\n if (typeof buffer === \"string\") {\n buffer = new TextEncoder().encode(buffer);\n }\n let binary = \"\";\n const len = buffer.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(buffer[i]);\n }\n return btoa(binary);\n}\n\nexport function base64EncodedDataUrl(\n mimeType: string,\n buffer: Uint8Array,\n): string {\n return `data:${mimeType};base64,${base64Encode(buffer)}`;\n}\n\nexport function base64DecodeDataUrl(dataUrl: string): Uint8Array {\n const b64Encoded = dataUrl.split(\",\", 2)[1];\n return base64Decode(b64Encoded);\n}\n\n/**\n * Perform sha256 hash using the browser's crypto APIs\n * Note: this will only work over HTTPS\n * @param message\n */\nexport async function hashSHA256(\n message: string | Uint8Array,\n): Promise {\n // Transform the string into an ArrayBuffer\n const encoder = new TextEncoder();\n const data: Uint8Array = typeof message === \"string\"\n ? encoder.encode(message)\n : message;\n\n // Generate the hash\n const hashBuffer = await globalThis.crypto.subtle.digest(\n \"SHA-256\",\n data as BufferSource,\n );\n\n // Transform the hash into a hex string\n return Array.from(new Uint8Array(hashBuffer)).map((b) =>\n b.toString(16).padStart(2, \"0\")\n ).join(\"\");\n}\n\n/**\n * To avoid database clashes based on space folder path name, base URLs and encryption keys we derive\n * a database name from a hash of all these combined together\n */\nexport async function deriveDbName(\n type: \"data\" | \"files\",\n spaceFolderPath: string,\n baseURI: string,\n encryptionKey?: CryptoKey,\n): Promise {\n let keyPart = \"\";\n if (encryptionKey) {\n keyPart = await exportKey(encryptionKey);\n }\n const spaceHash = await hashSHA256(\n `${spaceFolderPath}:${baseURI}:${keyPart}`,\n );\n return `sb_${type}_${spaceHash}`;\n}\n\n// Fixed counter for AES-CTR all zeroes, for determinism\nconst fixedCounter = new Uint8Array(16);\n\nexport async function encryptStringDeterministic(\n key: CryptoKey,\n clearText: string,\n): Promise {\n const encrypted = await crypto.subtle.encrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n new TextEncoder().encode(clearText),\n );\n return base64Encode(new Uint8Array(encrypted));\n}\n\nexport async function decryptStringDeterministic(\n key: CryptoKey,\n cipherText: string,\n): Promise {\n const decrypted = await crypto.subtle.decrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n base64Decode(cipherText) as BufferSource,\n );\n return new TextDecoder().decode(decrypted);\n}\n\n// Encrypt using AES-GCM with random IV; output = IV + ciphertext\nexport async function encryptAesGcm(\n key: CryptoKey,\n data: Uint8Array,\n): Promise {\n const iv = crypto.getRandomValues(new Uint8Array(12)); // 96-bit IV recommended for GCM\n const encryptedBuffer = await crypto.subtle.encrypt(\n { name: \"AES-GCM\", iv },\n key,\n data as BufferSource,\n );\n const encrypted = new Uint8Array(encryptedBuffer);\n\n // Prepend IV to ciphertext\n const result = new Uint8Array(iv.length + encrypted.length);\n result.set(iv, 0);\n result.set(encrypted, iv.length);\n return result;\n}\n\n// Decrypt using AES-GCM assuming input format IV + ciphertext\nexport async function decryptAesGcm(\n key: CryptoKey,\n encryptedData: Uint8Array,\n): Promise {\n const iv = encryptedData.slice(0, 12); // extract IV (first 12 bytes)\n const ciphertext = encryptedData.slice(12);\n const decryptedBuffer = await crypto.subtle.decrypt(\n { name: \"AES-GCM\", iv },\n key,\n ciphertext,\n );\n return new Uint8Array(decryptedBuffer);\n}\n\nexport async function deriveCTRKeyFromPassword(\n password: string,\n salt: Uint8Array,\n): Promise {\n // Encode password to ArrayBuffer\n const passwordBytes = new TextEncoder().encode(password);\n\n // Import password as a CryptoKey\n const baseKey = await crypto.subtle.importKey(\n \"raw\",\n passwordBytes,\n { name: \"PBKDF2\" },\n false,\n [\"deriveBits\", \"deriveKey\"],\n );\n\n return crypto.subtle.deriveKey(\n {\n name: \"PBKDF2\",\n salt: salt as BufferSource,\n iterations: 100000,\n hash: \"SHA-256\",\n },\n baseKey,\n {\n name: \"AES-CTR\",\n length: 256,\n },\n true, // extractable\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport function importKey(b64EncodedKey: string): Promise {\n return crypto.subtle.importKey(\n \"raw\",\n base64Decode(b64EncodedKey) as BufferSource,\n { name: \"AES-CTR\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport async function exportKey(ctrKey: CryptoKey): Promise {\n const key = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return base64Encode(new Uint8Array(key));\n}\n\nexport async function deriveGCMKeyFromCTR(\n ctrKey: CryptoKey,\n): Promise {\n const rawKey = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return crypto.subtle.importKey(\n \"raw\",\n rawKey,\n { name: \"AES-GCM\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n", "import { syscall } from \"../syscall.ts\";\n\n/**\n * Gets a config value by path, with support for dot notation.\n * @param path The path to get the value from\n * @param defaultValue The default value to return if the path doesn't exist\n * @returns The value at the path, or the default value\n */\nexport function get(path: string, defaultValue: T): Promise {\n return syscall(\"config.get\", path, defaultValue);\n}\n\n/**\n * Sets a config value by path, with support for dot notation.\n * @param path The path to set the value at\n * @param value The value to set\n */\nexport function set(path: string, value: T): Promise;\n/**\n * Sets multiple config values at once.\n * @param values An object containing key-value pairs to set\n */\nexport function set(values: Record): Promise;\nexport function set(\n pathOrValues: string | Record,\n value?: T,\n): Promise {\n return syscall(\"config.set\", pathOrValues, value);\n}\n\n/**\n * Inserts a config value into an array\n */\nexport function insert(\n path: string | string[],\n value: T,\n): Promise {\n return syscall(\"config.insert\", path, value);\n}\n\n/**\n * Checks if a config path exists.\n * @param path The path to check\n * @returns True if the path exists, false otherwise\n */\nexport function has(path: string): Promise {\n return syscall(\"config.has\", path);\n}\n\n/**\n * Defines a JSON schema for a configuration key.\n * The schema will be used to validate values when setting this key.\n * @param key The configuration key to define a schema for\n * @param schema The JSON schema to validate against\n */\nexport function define(key: string, schema: any): Promise {\n return syscall(\"config.define\", key, schema);\n}\n", "import type { LuaCollectionQuery } from \"../../client/space_lua/query_collection.ts\";\nimport { syscall } from \"../syscall.ts\";\nimport type { ObjectValue } from \"../types/index.ts\";\n\n/**\n * Exposes the SilverBullet object indexing system\n * @module\n */\n\n/**\n * Indexes objects for a specific page\n * @param page - The page identifier where objects will be indexed\n * @param objects - Array of objects to be indexed\n * @returns Promise that resolves when indexing is complete\n */\nexport function indexObjects(\n page: string,\n objects: ObjectValue[],\n): Promise {\n return syscall(\"index.indexObjects\", page, objects);\n}\n\n/**\n * Queries objects using a Lua-based collection query\n * @param tag - The tag to filter objects by\n * @param query - Lua query parameters to filter objects\n * @param scopedVariables - Optional variables to be used in the Lua query\n * @returns Promise that resolves with an array of matching objects\n */\nexport function queryLuaObjects(\n tag: string,\n query: LuaCollectionQuery,\n scopedVariables?: Record,\n ttlSecs?: number,\n): Promise[]> {\n return syscall(\"index.queryLuaObjects\", tag, query, scopedVariables, ttlSecs);\n}\n\n/**\n * Retrieves a specific object by its reference\n * @param page - The page identifier where the object is located\n * @param tag - The tag of the object\n * @param ref - The reference identifier of the object\n * @returns Promise that resolves with the matching object or undefined if not found\n */\nexport function getObjectByRef(\n page: string,\n tag: string,\n ref: string,\n): Promise | undefined> {\n return syscall(\"index.getObjectByRef\", page, tag, ref);\n}\n\n/**\n * Ensures that the full index is built and up-to-date\n */\nexport function ensureFullIndex(): Promise {\n return syscall(\"index.ensureFullIndex\");\n}\n", "/* esm.sh - ts-ics@2.4.0 */\nvar g=e=>Object.fromEntries(Object.entries(e).map(([n,t])=>[t,n])),f=e=>Object.keys(e),fe={action:\"ACTION\",description:\"DESCRIPTION\",duration:\"DURATION\",repeat:\"REPEAT\",summary:\"SUMMARY\",trigger:\"TRIGGER\",attachments:\"ATTACH\",attendees:\"ATTENDEE\"},We=g(fe),hr=f(We),br=f(fe),Se={method:\"METHOD\",prodId:\"PRODID\",version:\"VERSION\",name:\"X-WR-CALNAME\"},Je=g(Se),Kr=f(Je),kr=f(Se),Ae={alarms:\"ALARM\",categories:\"CATEGORIES\",created:\"CREATED\",description:\"DESCRIPTION\",lastModified:\"LAST-MODIFIED\",location:\"LOCATION\",exceptionDates:\"EXDATE\",recurrenceRule:\"RRULE\",stamp:\"DTSTAMP\",start:\"DTSTART\",summary:\"SUMMARY\",uid:\"UID\",timeTransparent:\"TRANSP\",url:\"URL\",end:\"DTEND\",duration:\"DURATION\",geo:\"GEO\",class:\"CLASS\",organizer:\"ORGANIZER\",priority:\"PRIORITY\",sequence:\"SEQUENCE\",status:\"STATUS\",attach:\"ATTACH\",recurrenceId:\"RECURRENCE-ID\",attendees:\"ATTENDEE\",comment:\"COMMENT\"},Ge=g(Ae),Vr=f(Ge),_r=f(Ae),De={id:\"TZID\",lastModified:\"LAST-MODIFIED\",url:\"TZURL\"},Ze=g(De),Ur=f(Ze),Br=f(De),Oe={comment:\"COMMENT\",name:\"TZNAME\",offsetFrom:\"TZOFFSETFROM\",offsetTo:\"TZOFFSETTO\",recurrenceDate:\"RDATE\",recurrenceRule:\"RRULE\",start:\"DTSTART\"},xe=g(Oe),Fr=f(xe),Pr=f(Oe),Xe={byDay:\"BYDAY\",byHour:\"BYHOUR\",byMinute:\"BYMINUTE\",byMonth:\"BYMONTH\",byMonthday:\"BYMONTHDAY\",bySecond:\"BYSECOND\",bySetPos:\"BYSETPOS\",byWeekNo:\"BYWEEKNO\",byYearday:\"BYYEARDAY\",count:\"COUNT\",frequency:\"FREQ\",interval:\"INTERVAL\",until:\"UNTIL\",workweekStart:\"WKST\"},Qe=g(Xe),Hr=f(Qe),$r=f(Xe),Re={categories:\"CATEGORIES\",created:\"CREATED\",description:\"DESCRIPTION\",lastModified:\"LAST-MODIFIED\",location:\"LOCATION\",exceptionDates:\"EXDATE\",recurrenceRule:\"RRULE\",stamp:\"DTSTAMP\",start:\"DTSTART\",summary:\"SUMMARY\",uid:\"UID\",url:\"URL\",duration:\"DURATION\",geo:\"GEO\",class:\"CLASS\",organizer:\"ORGANIZER\",priority:\"PRIORITY\",sequence:\"SEQUENCE\",status:\"STATUS\",attach:\"ATTACH\",recurrenceId:\"RECURRENCE-ID\",attendees:\"ATTENDEE\",comment:\"COMMENT\",completed:\"COMPLETED\",due:\"DUE\",percentComplete:\"PERCENT-COMPLETE\"},en=g(Re),wr=f(en),jr=f(Re),ge={categories:\"CATEGORIES\",created:\"CREATED\",description:\"DESCRIPTION\",lastModified:\"LAST-MODIFIED\",exceptionDates:\"EXDATE\",recurrenceRule:\"RRULE\",stamp:\"DTSTAMP\",start:\"DTSTART\",summary:\"SUMMARY\",uid:\"UID\",url:\"URL\",geo:\"GEO\",class:\"CLASS\",organizer:\"ORGANIZER\",sequence:\"SEQUENCE\",status:\"STATUS\",attach:\"ATTACH\",recurrenceId:\"RECURRENCE-ID\",attendees:\"ATTENDEE\",comment:\"COMMENT\"},nn=g(ge),qr=f(nn),Wr=f(ge),Me={stamp:\"DTSTAMP\",start:\"DTSTART\",uid:\"UID\",url:\"URL\",organizer:\"ORGANIZER\",attendees:\"ATTENDEE\",comment:\"COMMENT\",end:\"DTEND\",freeBusy:\"FREEBUSY\"},tn=g(Me),Jr=f(tn),Gr=f(Me),rn=\"BEGIN\",on=\"END\",Ne=\"VCALENDAR\",X=\"VTIMEZONE\",an=\"STANDARD\",ln=\"DAYLIGHT\",Q=\"VEVENT\",ee=\"VALARM\",ne=\"VTODO\",te=\"VJOURNAL\",re=\"VFREEBUSY\",Zr=[Ne,X,an,ln,Q,ee,ne,te,re],Be=e=>new RegExp(`${rn}:${e}([\\\\s\\\\S]*?)${on}:${e}`,\"g\"),Rn=e=>new RegExp(`${rn}:${e}|${on}:${e}`,\"g\"),gn=/\\r\\n/,pe=/\\r\\n|\\r|\\n/,sn=`\\r\n`,Fe=`\n`,Mn=\":\",V=\",\",Nn='\"',W=\";\",xr=\" \",ye=\"=\",Xr=75,J=e=>`${e}${sn}`,y=(e,n,t)=>t?n==null?\"\":J(`${e};${t}:${n}`):J(`${e}:${n}`),In=e=>J(`BEGIN:${e}`),Yn=e=>J(`END:${e}`),R=e=>{if(!(e.length<1))return`${e.map(n=>`${n.key}${ye}${n.value}`).join(W)}`},zn=e=>{if(e.type===\"uri\"){let n=R([e.formatType&&{key:\"FMTTYPE\",value:e.formatType}].filter(t=>!!t));return y(\"ATTACH\",e.url,n)}if(e.type===\"binary\"){let n=R([e.value&&{key:\"VALUE\",value:e.value},e.encoding&&{key:\"ENCODING\",value:e.encoding}].filter(t=>!!t));return y(\"ATTACH\",e.binary,n)}throw Error(`IcsAttachment has no type! ${JSON.stringify(e)}`)},K=(e,n)=>n?`\"MAILTO:${e}\"`:`MAILTO:${e}`,P=(e,n)=>{let t=R([e.dir&&{key:\"DIR\",value:`\"${e.dir}\"`},e.delegatedFrom&&{key:\"DELEGATED-FROM\",value:K(e.delegatedFrom,!0)},e.member&&{key:\"MEMBER\",value:K(e.member,!0)},e.role&&{key:\"ROLE\",value:e.role},e.name&&{key:\"CN\",value:e.name},e.partstat&&{key:\"PARTSTAT\",value:e.partstat},e.sentBy&&{key:\"SENT-BY\",value:K(e.sentBy,!0)},e.rsvp!==void 0&&(e.rsvp===!0||e.rsvp===!1)&&{key:\"RSVP\",value:e.rsvp===!0?\"TRUE\":\"FALSE\"}].filter(r=>!!r));return y(n,K(e.email),t)},H=e=>{if(Object.values(e).filter(t=>typeof t==\"number\").length===0)return;let n=\"\";return e.before&&(n+=\"-\"),n+=\"P\",e.weeks!==void 0&&(n+=`${e.weeks}W`),e.days!==void 0&&(n+=`${e.days}D`),(e.hours!==void 0||e.minutes!==void 0||e.seconds!==void 0)&&(n+=\"T\",e.hours!==void 0&&(n+=`${e.hours}H`),e.minutes!==void 0&&(n+=`${e.minutes}M`),e.seconds!==void 0&&(n+=`${e.seconds}S`)),n},Cn=Math.pow(10,8)*24*60*60*1e3,Qr=-Cn,Ln=6048e5,hn=864e5,Ie=6e4,Ye=36e5,bn=3600,un=bn*24,eo=un*7,Kn=un*365.2425,kn=Kn/12,no=kn*3,Pe=Symbol.for(\"constructDateFrom\");function O(e,n){return typeof e==\"function\"?e(n):e&&typeof e==\"object\"&&Pe in e?e[Pe](n):e instanceof Date?new e.constructor(n):new Date(n)}function d(e,n){return O(n||e,e)}function oe(e,n,t){let r=d(e,t?.in);return isNaN(n)?O(t?.in||e,NaN):(n&&r.setDate(r.getDate()+n),r)}function dn(e,n,t){let r=d(e,t?.in);if(isNaN(n))return O(t?.in||e,NaN);if(!n)return r;let o=r.getDate(),i=O(t?.in||e,r.getTime());i.setMonth(r.getMonth()+n+1,0);let a=i.getDate();return o>=a?i:(r.setFullYear(i.getFullYear(),i.getMonth(),o),r)}function $(e,n,t){return O(t?.in||e,+d(e)+n)}function cn(e,n,t){return $(e,n*Ye,t)}var Vn={};function ae(){return Vn}function G(e,n){var t,r,o,i;let a=ae(),l=n?.weekStartsOn??((r=(t=n?.locale)==null?void 0:t.options)==null?void 0:r.weekStartsOn)??a.weekStartsOn??((i=(o=a.locale)==null?void 0:o.options)==null?void 0:i.weekStartsOn)??0,s=d(e,n?.in),u=s.getDay(),c=(utypeof r==\"object\"));return n.map(t)}function Te(e,n){let t=d(e,n?.in);return t.setHours(0,0,0,0),t}function _n(e,n,t){let[r,o]=ie(t?.in,e,n),i=Te(r),a=Te(o),l=+i-He(i),s=+a-He(a);return Math.round((l-s)/hn)}function ze(e,n,t){let r=d(e,t?.in);return r.setTime(r.getTime()+n*Ie),r}function vn(e,n,t){return $(e,n*1e3,t)}function le(e,n,t){return oe(e,n*7,t)}function mn(e,n,t){return dn(e,n*12,t)}function Ce(e,n){let t=+d(e)-+d(n);return t<0?-1:t>0?1:t}function Le(e){return e instanceof Date||typeof e==\"object\"&&Object.prototype.toString.call(e)===\"[object Date]\"}function En(e,n,t){let[r,o]=ie(t?.in,e,n),i=$e(r,o),a=Math.abs(_n(r,o));r.setDate(r.getDate()-i*a);let l=+($e(r,o)===-i),s=i*(a-l);return s===0?0:s}function $e(e,n){let t=e.getFullYear()-n.getFullYear()||e.getMonth()-n.getMonth()||e.getDate()-n.getDate()||e.getHours()-n.getHours()||e.getMinutes()-n.getMinutes()||e.getSeconds()-n.getSeconds()||e.getMilliseconds()-n.getMilliseconds();return t<0?-1:t>0?1:t}function se(e){return n=>{let t=(e?Math[e]:Math.trunc)(n);return t===0?0:t}}function Un(e,n,t){let[r,o]=ie(t?.in,e,n),i=(+r-+o)/Ye;return se(t?.roundingMethod)(i)}function pn(e,n){return+d(e)-+d(n)}function Bn(e,n,t){let r=pn(e,n)/Ie;return se(t?.roundingMethod)(r)}function we(e,n){let t=d(e,n?.in),r=t.getMonth();return t.setFullYear(t.getFullYear(),r+1,0),t.setHours(23,59,59,999),t}function Fn(e,n,t){let r=pn(e,n)/1e3;return se(t?.roundingMethod)(r)}function Pn(e,n,t){let r=En(e,n,t)/7;return se(t?.roundingMethod)(r)}function Hn(e,n){let[t,r]=ie(e,n.start,n.end);return{start:t,end:r}}function $n(e,n){let{start:t,end:r}=Hn(n?.in,e),o=+t>+r,i=o?+t:+r,a=o?r:t;a.setHours(0,0,0,0);let l=n?.step??1;if(!l)return[];l<0&&(l=-l,o=!o);let s=[];for(;+a<=i;)s.push(O(t,a)),a.setDate(a.getDate()+l),a.setHours(0,0,0,0);return o?s.reverse():s}function je(e,n){let t=d(e,n?.in);return t.setDate(1),t.setHours(0,0,0,0),t}function wn(e,n){let t=d(e,n?.in),r=t.getFullYear();return t.setFullYear(r+1,0,0),t.setHours(23,59,59,999),t}function jn(e,n){let t=d(e,n?.in);return t.setFullYear(t.getFullYear(),0,1),t.setHours(0,0,0,0),t}function qn(e,n){var t,r,o,i;let a=d(e,n?.in),l=a.getFullYear(),s=ae(),u=n?.firstWeekContainsDate??((r=(t=n?.locale)==null?void 0:t.options)==null?void 0:r.firstWeekContainsDate)??s.firstWeekContainsDate??((i=(o=s.locale)==null?void 0:o.options)==null?void 0:i.firstWeekContainsDate)??1,c=O(n?.in||e,0);c.setFullYear(l+1,0,u),c.setHours(0,0,0,0);let v=G(c,n),E=O(n?.in||e,0);E.setFullYear(l,0,u),E.setHours(0,0,0,0);let M=G(E,n);return+a>=+v?l+1:+a>=+M?l:l-1}function Wn(e,n){var t,r,o,i;let a=ae(),l=n?.firstWeekContainsDate??((r=(t=n?.locale)==null?void 0:t.options)==null?void 0:r.firstWeekContainsDate)??a.firstWeekContainsDate??((i=(o=a.locale)==null?void 0:o.options)==null?void 0:i.firstWeekContainsDate)??1,s=qn(e,n),u=O(n?.in||e,0);return u.setFullYear(s,0,l),u.setHours(0,0,0,0),G(u,n)}function Jn(e,n){let t=d(e,n?.in),r=+G(t,n)-+Wn(t,n);return Math.round(r/Ln)+1}function q(e,n){return d(e,n?.in).getDay()}function yn(e,n){let t=d(e,n?.in),r=t.getFullYear(),o=t.getMonth(),i=O(t,0);return i.setFullYear(r,o+1,0),i.setHours(0,0,0,0),i.getDate()}function Gn(e,n){return d(e,n?.in).getHours()}function Zn(e,n){return d(e,n?.in).getMinutes()}function Tn(e,n){return d(e,n?.in).getMonth()}function xn(e){return d(e).getSeconds()}function Xn(e,n){return d(e,n?.in).getFullYear()}function Qn(e,n){return+d(e)==+d(n)}function et(e,n,t){let r=d(e,t?.in),o=Jn(r,t)-n;return r.setDate(r.getDate()-o*7),d(r,t?.in)}function Z(e,n,t){var r,o,i,a;let l=ae(),s=t?.weekStartsOn??((o=(r=t?.locale)==null?void 0:r.options)==null?void 0:o.weekStartsOn)??l.weekStartsOn??((a=(i=l.locale)==null?void 0:i.options)==null?void 0:a.weekStartsOn)??0,u=d(e,t?.in),c=u.getDay(),v=(n%7+7)%7,E=7-s,M=n<0||n>6?n-(c+E)%7:(v+E)%7-(c+E)%7;return oe(u,M,t)}function fn(e,n,t){let r=+d(e,t?.in),[o,i]=[+d(n.start,t?.in),+d(n.end,t?.in)].sort((a,l)=>a-l);return r>=o&&r<=i}function nt(e){let n=e/Ye;return Math.trunc(n)}function tt(e){let n=e/Ie;return Math.trunc(n)}function rt(e,n,t){let r=d(e,t?.in),o=r.getFullYear(),i=r.getDate(),a=O(t?.in||e,0);a.setFullYear(o,n,15),a.setHours(0,0,0,0);let l=yn(a);return r.setMonth(n,Math.min(i,l)),r}function ot(e,n,t){let r=d(e,t?.in);return r.setDate(n),r}function at(e,n,t){let r=d(e,t?.in);return r.setMonth(0),r.setDate(n),r}function it(e,n,t){let r=d(e,t?.in);return r.setHours(n),r}function lt(e,n,t){let r=d(e,t?.in);return r.setMinutes(n),r}function st(e,n,t){let r=d(e,t?.in);return r.setSeconds(n),r}function ut(e,n,t){return $(e,-n,t)}function dt(e,n,t){return le(e,-n,t)}var to=(e,n)=>{let t=Math.abs(Pn(n,e)),r=Math.abs(En(n,e)),o=r-t*7,i=Math.abs(Un(n,e)),a=i-r*24,l=Math.abs(Bn(n,e)),s=l-i*60,u=Math.abs(Fn(n,e))-l*60;return{before:e>n,weeks:t,days:o,hours:a,minutes:s,seconds:u}},ct=(e,n)=>{let t=n.before?-1:1,r=(n.seconds||0)*t,o=(n.minutes||0)*t,i=(n.hours||0)*t,a=(n.days||0)*t,l=(n.weeks||0)*t;return le(oe(cn(ze(vn(e,r),o),i),a),l)},ro=e=>e.end?e.end.date:ct(e.start.date,e.duration),oo=[\"PUBLISH\"],ao=[\"2.0\"],vt=[an,ln],io=[\"FREE\",\"BUSY\",\"BUSY-UNAVAILABLE\",\"BUSY-TENTATIVE\"],lo=[\"BASE64\"],so=[\"BINARY\"],uo=[\"NEEDS-ACTION\",\"ACCEPTED\",\"DECLINED\",\"TENTATIVE\",\"DELEGATED\"],co=[\"DATE\",\"DATE-TIME\"],mt=[\"SECONDLY\",\"MINUTELY\",\"HOURLY\",\"DAILY\",\"WEEKLY\",\"MONTHLY\",\"YEARLY\"],vo=[\"TENTATIVE\",\"CONFIRMED\",\"CANCELLED\"],mo=[\"NEEDS-ACTION\",\"COMPLETED\",\"IN-PROGRESS\",\"CANCELLED\"],Eo=[\"DRAFT\",\"FINAL\",\"CANCELLED\"],po=[\"START\",\"END\"],Sn=[\"SU\",\"MO\",\"TU\",\"WE\",\"TH\",\"FR\",\"SA\"],yo=[\"PRIVATE\",\"PUBLIC\",\"CONFIDENTIAL\"],To=[\"TRANSPARENT\",\"OPAQUE\"],b=(e,n)=>n===void 0?!1:e>=n,Et=(e,{start:n,end:t},r)=>{if(b(r.length,e.count))return;let o=e.frequency,i=e.interval||1;if(!o)return;let a=n;if(o===\"SECONDLY\"){for(;a{let o=t.map(({day:i,occurrence:a})=>({occurrence:a,day:Sn.indexOf(i)}));return e.frequency===\"YEARLY\"?e.byYearday||e.byMonthday?n.map(i=>i.filter(a=>o.find(({day:l})=>l===q(a)))):e.byWeekNo?n.map(i=>i.flatMap(a=>o.map(({day:l})=>Z(a,l,{weekStartsOn:r})))):e.byMonth?n.map(i=>i.flatMap(a=>o.flatMap(({day:l,occurrence:s})=>me(N(je(a)),N(we(a)),l,r,s)))):n.map(i=>i.flatMap(a=>o.flatMap(({day:l,occurrence:s})=>me(N(jn(a)),N(wn(a)),l,r,s)))):e.frequency===\"MONTHLY\"?e.byMonthday?n.map(i=>i.filter(a=>o.find(({day:l})=>l===q(a)))):n.map(i=>i.flatMap(a=>o.flatMap(({day:l,occurrence:s})=>me(N(je(a)),N(we(a)),l,r,s)))):e.frequency===\"WEEKLY\"?n.map(i=>i.flatMap(a=>o.map(({day:l})=>Z(a,l,{weekStartsOn:r})))):n.map(i=>i.filter(a=>o.find(({day:l})=>l===q(a))))},me=(e,n,t,r,o)=>{if(o!==void 0){if(!(o<0)){let l=Z(e,t,{weekStartsOn:r}),s=e>l;return le(l,(o||1)-1+(s?1:0))}let i=Z(n,t,{weekStartsOn:r}),a=nN(i)).filter(i=>fn(i,{start:e,end:n})).filter(i=>t===q(i))},N=e=>ze(e,-e.getTimezoneOffset()),yt=(e,n,t)=>e.frequency===\"YEARLY\"||e.frequency===\"MONTHLY\"||e.frequency===\"WEEKLY\"||e.frequency===\"DAILY\"?n.map(r=>r.flatMap(o=>t.map(i=>it(o,i)))):n.map(r=>r.filter(o=>t.includes(Gn(o)))),Tt=(e,n,t)=>e.frequency===\"YEARLY\"||e.frequency===\"MONTHLY\"||e.frequency===\"WEEKLY\"||e.frequency===\"DAILY\"||e.frequency===\"HOURLY\"?n.map(r=>r.flatMap(o=>t.map(i=>lt(o,i)))):n.map(r=>r.filter(o=>t.includes(Zn(o)))),ft=(e,n,t)=>e.frequency===\"YEARLY\"?n.map(r=>r.flatMap(o=>t.map(i=>rt(o,i)))):n.map(r=>r.filter(o=>t.includes(Tn(o)))),St=(e,n,t)=>e.frequency===\"YEARLY\"||e.frequency===\"MONTHLY\"?n.map(r=>r.flatMap(o=>{let i=yn(o);return t.map(a=>a>i?void 0:ot(o,a)).filter(a=>!!a)})):e.frequency===\"WEEKLY\"?n:n.map(r=>r.filter(o=>t.includes(Tn(o)))),At=(e,n,t)=>e.frequency===\"YEARLY\"||e.frequency===\"MONTHLY\"||e.frequency===\"WEEKLY\"||e.frequency===\"DAILY\"||e.frequency===\"HOURLY\"||e.frequency===\"MINUTELY\"?n.map(r=>r.flatMap(o=>t.map(i=>st(o,i)))):n.map(r=>r.filter(o=>t.includes(xn(o)))),Dt=(e,n,t)=>!e.byYearday&&!e.byWeekNo&&!e.byMonthday&&!e.byMonth&&!e.byDay&&!e.byHour&&!e.byMinute&&!e.bySecond?n:n.map(r=>r.sort(Ce).filter((o,i)=>t.some(a=>a>0?i===0?!1:i%a===0:i===0?r.length-1+a===0:i%(r.length-1+a)===0))),Ot=(e,n,t,r)=>e.frequency===\"YEARLY\"?n.map(o=>o.flatMap(i=>t.map(a=>et(i,a,{weekStartsOn:r})))):n,Rt=(e,n,t)=>e.frequency===\"YEARLY\"?n.map(r=>r.flatMap(o=>t.map(i=>at(o,i)))):e.frequency===\"MONTHLY\"||e.frequency===\"WEEKLY\"||e.frequency===\"DAILY\"?n:n.map(r=>r.filter(o=>t.includes(Xn(o)))),gt=(e,n,t)=>{let r=t;return e.byMonth&&(r=ft(e,r,e.byMonth)),e.byWeekNo&&(r=Ot(e,r,e.byWeekNo,n.weekStartsOn)),e.byYearday&&(r=Rt(e,r,e.byYearday)),e.byMonthday&&(r=St(e,r,e.byMonthday)),e.byDay&&(r=pt(e,r,e.byDay,n.weekStartsOn)),e.byHour&&(r=yt(e,r,e.byHour)),e.byMinute&&(r=Tt(e,r,e.byMinute)),e.bySecond&&(r=At(e,r,e.bySecond)),e.bySetPos&&(r=Dt(e,r,e.bySetPos)),r.map(o=>o.sort(Ce).filter(i=>!(n.exceptions.length>0&&n.exceptions.some(a=>Qn(a,i))||!fn(i,{start:n.start,end:n.end}))))},Mt=2,Nt=(e,n)=>{var t;let r=n.start,o=((t=e.until)==null?void 0:t.date)||n?.end||mn(r,Mt),i=n.exceptions||[],a=(e.workweekStart?Sn.indexOf(e.workweekStart):1)%7,l=[[r]];Et(e,{start:r,end:o},l);let s=gt(e,{start:r,end:o,exceptions:i,weekStartsOn:a},l);return e.count?s.flat().splice(0,e.count):s.flat()},It=(e,n)=>n.flatMap(t=>!t.recurrenceRule||t.recurrenceRule.until&&t.recurrenceRule.until.date({...t,start:r}))),x=e=>{let n=e[0]===\"+\"?1:-1,t=Number(e.slice(1,3)),r=e.length>3?Number(e.slice(3,5)):0,o=e.length>5?Number(e.slice(5,7)):0;return((t*60+r)*60+o)*1e3*n},Yt=(e,n)=>{let t=\"en-US\",r=new Date(n.toLocaleString(t,{timeZone:\"UTC\"}));try{return new Date(n.toLocaleString(t,{timeZone:e})).getTime()-r.getTime()}catch{return n.getTime()-r.getTime()}},An=(e,n,t)=>{let r=t?.find(i=>i.id===n);if(r){let i=It(e,r.props).sort((s,u)=>Ce(s.start,u.start));for(let s=0;s5?u.substring(0,5):u;return{offset:c,milliseconds:x(c)}}let a=i[i.length-1].offsetTo,l=a.length>5?a.substring(0,5):a;return{offset:l,milliseconds:x(l)}}let o=Yt(n,e);if(!Number.isNaN(o)){let i=o<0,a=Math.abs(nt(o)),l=Math.abs(tt(o))-a*60,s=a.toString().length===1?`0${a}`:a.toString(),u=l.toString().length===1?`0${l}`:l.toString();return{offset:`${i?\"-\":\"+\"}${s}${u}`,milliseconds:o}}},Dn=e=>{if(!Le(e))throw Error(`Incorrect date object: ${e}`);let n=e.toISOString(),t=n.slice(0,4),r=n.slice(5,7),o=n.slice(8,10);return`${t}${r}${o}`},h=e=>{if(!Le(e))throw Error(`Incorrect date object: ${e}`);return he(e)},zt=(e,n,t)=>{let r=n.date;if(!Le(r))throw Error(`Incorrect date object: ${r}`);return An(r,n.timezone,t)?he(r,!0):h(e)},he=(e,n)=>{let t=e.toISOString(),r=t.slice(0,4),o=t.slice(5,7),i=t.slice(8,10),a=t.slice(11,13),l=t.slice(14,16),s=t.slice(17,19);return`${r}${o}${i}T${a}${l}${s}${n?\"\":\"Z\"}`},Ct=(e,n)=>{let t=x(n),r=$(e,t);return he(r,!0)},Lt=e=>{var n,t;let r=R([((n=e.options)==null?void 0:n.related)&&{key:\"RELATED\",value:e.options.related}].filter(o=>!!o));if(e.type===\"absolute\")return y(\"TRIGGER\",h((t=e.value)==null?void 0:t.date));if(e.type===\"relative\")return y(\"TRIGGER\",H(e.value),r)},Ee=e=>Object.keys(e),ht=(e,n)=>{if(!e)return\"\";let t=\"\";return Object.entries(e).forEach(([r,o])=>{let i=n?.[r];if(!i){t+=y(bt(r),o?.toString());return}let a=i.generate(o);a&&(t+=y(i.name,a.value,a.options?R(Object.entries(a.options).map(([l,s])=>({key:l,value:s}))):void 0))}),t},bt=e=>{let n=\"X-\";for(let t of e)t===t.toUpperCase()&&(n+=\"-\"),n+=t.toUpperCase();return n},Kt=e=>{let n=(e.match(/\\n/g)||[]).length;return e.length+n},kt=e=>{let n=e.split(gn),t=[];return n.forEach(r=>{if(Kt(r)<75){t.push(r);return}Vt(r,75).forEach(o=>{t.push(o)})}),t.join(sn)},Vt=(e,n)=>{let t=[],r=\"\",o=0;for(let i=0;in?(t.push(t.length===0?r:` ${r}`),r=a,o=l):(r+=a,o+=l)}return r&&t.push(t.length===0?r:` ${r}`),t},I=(e,n)=>{let t=Ee(e),r=n.childComponents,o=r?Ee(r):[],i=n.generateArrayValues,a=i?Ee(i):[],l=\"\";return l+=In(n.icsComponent),t.forEach(s=>{if(o.includes(s)||a.includes(s)||s===\"nonStandard\")return;let u=n.icsKeyMap[s];if(!u)return;let c=e[s];if(c==null)return;let v=n.generateValues[s];if(v){l+=v({icsKey:u,value:c,key:s});return}l+=y(u,String(c))}),r&&o&&o.length>0&&o.forEach(s=>{let u=e[s];!u||!Array.isArray(u)||u.length===0||u.forEach(c=>{let v=r[s];v&&(l+=v(c))})}),i&&a&&a.length>0&&a.forEach(s=>{let u=i[s];if(!u)return;let c=n.icsKeyMap[s];if(!c)return;let v=e[s];!v||!Array.isArray(v)||v.length===0||v.forEach(E=>{l+=u({icsKey:c,value:E})})}),e.nonStandard&&(l+=ht(e.nonStandard,n?.nonStandard)),l+=Yn(n.icsComponent),n!=null&&n.skipFormatLines?l:kt(l)},U=(e,n)=>y(e,Math.trunc(n).toString()),_t=(e,n)=>I(e,{icsComponent:ee,icsKeyMap:fe,generateValues:{trigger:({value:t})=>Lt(t),duration:({icsKey:t,value:r})=>y(t,H(r)),repeat:({icsKey:t,value:r})=>U(t,r)},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),attachments:({value:t})=>zn(t)},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines}),T=(e,n,t=[],r)=>{let o=R([n.type&&{key:\"VALUE\",value:n.type},n.local&&!(r!=null&&r.forceUtc)&&{key:\"TZID\",value:n.local.timezone},...t].filter(a=>!!a)),i=n.type===\"DATE\"?Dn(n.date):n.local&&!(r!=null&&r.forceUtc)?zt(n.date,n.local,r?.timezones):h(n.date);return y(e,i,o)},be=(e,n,t)=>T(n,e,void 0,t),ue=e=>{let n=R([e.dir&&{key:\"DIR\",value:`\"${e.dir}\"`},e.name&&{key:\"CN\",value:e.name},e.sentBy&&{key:\"SENT-BY\",value:K(e.sentBy)}].filter(t=>!!t));return y(\"ORGANIZER\",K(e.email),n)},Ut=e=>e.occurrence?`${e.occurrence}${e.day}`:e.day,de=e=>{var n;let t=\"\",r=R([e.byDay&&{key:\"BYDAY\",value:e.byDay.map(o=>Ut(o)).join(\",\")},e.byHour&&{key:\"BYHOUR\",value:e.byHour.join(\",\")},e.byMinute&&{key:\"BYMINUTE\",value:e.byMinute.join(\",\")},e.byMonth&&{key:\"BYMONTH\",value:e.byMonth.map(o=>o+1).join(\",\")},e.byMonthday&&{key:\"BYMONTHDAY\",value:e.byMonthday.join(\",\")},e.bySecond&&{key:\"BYSECOND\",value:e.bySecond.join(\",\")},e.bySetPos&&{key:\"BYSETPOS\",value:e.bySetPos.join(\",\")},e.byWeekNo&&{key:\"BYWEEKNO\",value:e.byWeekNo.join(\",\")},e.byYearday&&{key:\"BYYEARDAY\",value:e.byYearday.join(\",\")},e.count&&{key:\"COUNT\",value:e.count.toString()},e.frequency&&{key:\"FREQ\",value:e.frequency},e.interval&&{key:\"INTERVAL\",value:e.interval.toString()},e.until&&{key:\"UNTIL\",value:e.until.type===\"DATE\"?Dn(e.until.date):h(((n=e.until.local)==null?void 0:n.date)||e.until.date)},e.workweekStart&&{key:\"WKST\",value:e.workweekStart}].filter(o=>!!o));return t+=y(\"RRULE\",r),t},Ke=(e,n)=>{let t=\"\";return t+=T(\"RECURRENCE-ID\",e.value,e.range?[{key:\"RANGE\",value:e.range}]:void 0,n),t},Bt=e=>e.replace(/([\\\\;,])|(\\n)/g,(n,t)=>t?`\\\\${t}`:\"\\\\n\"),A=(e,n,t)=>y(e,Bt(n),t?R(t):void 0),Ft=(e,n)=>I(e,{icsComponent:Q,icsKeyMap:Ae,omitGenerateKeys:[\"descriptionAltRep\"],generateValues:{stamp:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones,forceUtc:!0}),start:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),end:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),created:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),lastModified:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),categories:({icsKey:t,value:r})=>y(t,r.join(\",\")),description:({icsKey:t,value:r})=>A(t,r,e.descriptionAltRep?[{key:\"ALTREP\",value:`\"${e.descriptionAltRep}\"`}]:void 0),location:({icsKey:t,value:r})=>A(t,r),comment:({icsKey:t,value:r})=>A(t,r),summary:({icsKey:t,value:r})=>A(t,r),recurrenceRule:({value:t})=>de(t),duration:({icsKey:t,value:r})=>y(t,H(r)),organizer:({value:t})=>ue(t),sequence:({icsKey:t,value:r})=>U(t,r),recurrenceId:({value:t})=>Ke(t,{timezones:n?.timezones})},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),exceptionDates:({value:t})=>be(t,\"EXDATE\",{timezones:n?.timezones})},childComponents:{alarms:t=>_t(t,{nonStandard:n?.nonStandard,skipFormatLines:!0})},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines,timezones:n?.timezones}),Pt=(e,n)=>I(e,{icsComponent:e.type,icsKeyMap:Oe,generateValues:{start:({icsKey:t,value:r})=>y(t,Ct(r,e.offsetTo)),recurrenceRule:({value:t})=>de(t),recurrenceDate:({icsKey:t,value:r})=>T(t,r)},omitGenerateKeys:[\"type\"],nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines}),Ht=(e,n)=>I(e,{icsComponent:X,icsKeyMap:De,generateValues:{lastModified:({icsKey:t,value:r})=>y(t,h(r))},childComponents:{props:t=>Pt(t,{nonStandard:n?.nonStandard,skipFormatLines:!0})},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines}),$t=(e,n)=>I(e,{icsComponent:ne,icsKeyMap:Re,generateValues:{stamp:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones,forceUtc:!0}),start:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),due:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),created:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),lastModified:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),completed:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),categories:({icsKey:t,value:r})=>y(t,r.join(\",\")),description:({icsKey:t,value:r})=>A(t,r),location:({icsKey:t,value:r})=>A(t,r),comment:({icsKey:t,value:r})=>A(t,r),summary:({icsKey:t,value:r})=>A(t,r),recurrenceRule:({value:t})=>de(t),duration:({icsKey:t,value:r})=>y(t,H(r)),organizer:({value:t})=>ue(t),sequence:({icsKey:t,value:r})=>U(t,r),percentComplete:({icsKey:t,value:r})=>U(t,r),recurrenceId:({value:t})=>Ke(t,{timezones:n?.timezones})},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),exceptionDates:({value:t})=>be(t,\"EXDATE\",{timezones:n?.timezones})},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines,timezones:n?.timezones}),wt=(e,n)=>I(e,{icsComponent:te,icsKeyMap:ge,generateValues:{stamp:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones,forceUtc:!0}),start:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),created:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),lastModified:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),categories:({icsKey:t,value:r})=>y(t,r.join(\",\")),description:({icsKey:t,value:r})=>A(t,r),comment:({icsKey:t,value:r})=>A(t,r),summary:({icsKey:t,value:r})=>A(t,r),recurrenceRule:({value:t})=>de(t),organizer:({value:t})=>ue(t),sequence:({icsKey:t,value:r})=>U(t,r),recurrenceId:({value:t})=>Ke(t,{timezones:n?.timezones})},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),exceptionDates:({value:t})=>be(t,\"EXDATE\",{timezones:n?.timezones})},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines,timezones:n?.timezones}),jt=(e,n)=>{let t=e.values.map(o=>`${h(o.start)}/${o.end?h(o.end):H(o.duration)}`).join(\",\"),r=R([e.type&&{key:\"FBTYPE\",value:e.type}].filter(o=>!!o));return y(n,t,r)},qt=(e,n)=>I(e,{icsComponent:re,icsKeyMap:Me,generateValues:{stamp:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones,forceUtc:!0}),start:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),end:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),comment:({icsKey:t,value:r})=>A(t,r),organizer:({value:t})=>ue(t)},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),freeBusy:({value:t})=>jt(t,\"FREEBUSY\")},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines,timezones:n?.timezones}),fo=(e,n)=>I(e,{icsComponent:Ne,icsKeyMap:Se,generateValues:{},childComponents:{timezones:t=>Ht(t,{nonStandard:n?.nonStandard,skipFormatLines:!0}),events:t=>Ft(t,{skipFormatLines:!0,timezones:e.timezones,nonStandard:n?.nonStandard}),todos:t=>$t(t,{skipFormatLines:!0,timezones:e.timezones,nonStandard:n?.nonStandard}),journals:t=>wt(t,{skipFormatLines:!0,timezones:e.timezones,nonStandard:n?.nonStandard}),freeBusy:t=>qt(t,{skipFormatLines:!0,timezones:e.timezones,nonStandard:n?.nonStandard})},nonStandard:n?.nonStandard}),m=(e,n)=>{if(e===void 0)return n;let t=e[\"~standard\"].validate(n);if(t instanceof Promise)throw new TypeError(\"Schema validation must be synchronous\");if(t.issues)throw new Error(JSON.stringify(t.issues,null,2));return t.value},Wt=(e,n)=>{var t,r,o,i;let a=((t=n.options)==null?void 0:t.VALUE)===\"BINARY\"?{type:\"binary\",encoding:((r=n.options)==null?void 0:r.ENCODING)||\"BASE64\",binary:n.value,value:(o=n.options)==null?void 0:o.VALUE}:{type:\"uri\",url:n.value,formatType:(i=n.options)==null?void 0:i.FMTTYPE};return m(e,a)},k=e=>e.replace(/mailto:/gi,\"\"),w=(e,n)=>{var t,r,o,i,a,l,s,u,c,v,E;return m(e,{email:k(n.value),delegatedFrom:(t=n.options)!=null&&t[\"DELEGATED-FROM\"]?k((r=n.options)==null?void 0:r[\"DELEGATED-FROM\"]):void 0,dir:(o=n.options)==null?void 0:o.DIR,member:(i=n.options)!=null&&i.MEMBER?k(n.options.MEMBER):void 0,name:(a=n.options)==null?void 0:a.CN,partstat:(l=n.options)==null?void 0:l.PARTSTAT,role:(s=n.options)==null?void 0:s.ROLE,sentBy:(u=n.options)!=null&&u[\"SENT-BY\"]?k(n.options[\"SENT-BY\"]):void 0,rsvp:(c=n.options)!=null&&c.RSVP?((v=n.options)==null?void 0:v.RSVP)===\"TRUE\"?!0:((E=n.options)==null?void 0:E.RSVP)===\"FALSE\"?!1:void 0:void 0})},j=(e,n)=>{let t=n.value,r={};t[0]===\"-\"&&(r.before=!0,t=t.slice(1)),t=t.slice(1);let o=t.split(\"T\"),i=o[0];if(i.includes(\"D\")){let[l,s]=i.split(\"D\");r.days=Number(l),i=s}if(i.includes(\"W\")){let[l,s]=i.split(\"W\");r.weeks=Number(l),i=s}let a=o[1];if(a){if(a.includes(\"H\")){let[l,s]=a.split(\"H\");r.hours=Number(l),a=s}if(a.includes(\"M\")){let[l,s]=a.split(\"M\");r.minutes=Number(l),a=s}if(a.includes(\"S\")){let[l,s]=a.split(\"S\");r.seconds=Number(l),a=s}}return m(e,r)},Jt=(e,n)=>{let t=Number.parseInt(n.value.slice(0,4),10),r=Number.parseInt(n.value.slice(4,6),10)-1,o=Number.parseInt(n.value.slice(6,8),10),i=new Date(Date.UTC(t,r,o));return m(e,i)},B=(e,n)=>{let t=Number.parseInt(n.value.slice(0,4),10),r=Number.parseInt(n.value.slice(4,6),10)-1,o=Number.parseInt(n.value.slice(6,8),10),i=Number.parseInt(n.value.slice(9,11),10),a=Number.parseInt(n.value.slice(11,13),10),l=Number.parseInt(n.value.slice(13,15),10),s=new Date(Date.UTC(t,r,o,i,a,l));return m(e,s)},Gt=(e,n,t)=>{let r=x(t),o=B(void 0,n),i=ut(o,r);return m(e,i)},Zt=(e,n)=>{var t,r,o,i,a,l;if(((t=e.options)==null?void 0:t.VALUE)===\"DATE\")return{date:Jt(void 0,e),type:(r=e.options)==null?void 0:r.VALUE};let s=((o=e.options)==null?void 0:o.VALUE)||\"DATE-TIME\",u=B(void 0,e);if(!((i=e.options)!=null&&i.TZID))return{date:u,type:s};let c=An(u,e.options.TZID,n?.timezones);return c?{date:$(u,-c.milliseconds),type:s,local:(a=e.options)!=null&&a.TZID?{date:u,timezone:(l=e.options)==null?void 0:l.TZID,tzoffset:c.offset}:void 0}:{date:u,type:s}},p=(e,n,t)=>m(e,Zt(n,t)),xt=(e,n,t)=>{var r,o,i,a;let l=((r=n.options)==null?void 0:r.VALUE)===\"DATE-TIME\"||((o=n.options)==null?void 0:o.VALUE)===\"DATE\"?{type:\"absolute\",value:p(void 0,n,t),options:{related:(i=n.options)==null?void 0:i.RELATED}}:{type:\"relative\",value:j(void 0,n),options:{related:(a=n.options)==null?void 0:a.RELATED}};return m(e,l)},Xt=e=>e.startsWith('\"')&&e.endsWith('\"')?e.slice(1,-1):e,On=e=>e.map(n=>{let[t,...r]=n.split(ye),o=r.join(ye);return{property:t,value:Xt(o)}},{}),Qt=e=>e.reduce((n,t)=>(n[t.property]=t.value,n),{}),er=e=>Qt(On(e)),nr=e=>{let n=!1,t;for(let i=0;i{let{property:n,value:t}=nr(e);if(n.includes(W)){let[r,...o]=n.split(W),i=er(o);return{property:r,line:{options:i,value:t}}}return{property:n,line:{value:t}}},qe=e=>/^[ \\t]/.test(e),rr=e=>/^[A-Z]+(?:-[A-Z]+)*[:;]/.test(e),or=e=>{let n=[],t=e.split(pe);for(;t[0]===\"\";)t.shift();let r=t.length;for(;r>0&&t[r-1]===\"\";)r-=1,t.pop();for(let o=0;oo!==\"\")},ar=(e,n,t)=>{if(!n)return e;let r={};return Object.entries(n).forEach(([o,i])=>{let a=Object.entries(t||{}).find(([u,c])=>c.name===o);if(!a){r[ir(o)]=i.value;return}let l=a[1].convert(i),s=a[1].schema;if(!s){r[a[0]]=l;return}r[a[0]]=m(s,l)}),e.nonStandard=r,e},ir=e=>{let n=e.startsWith(\"X-\")?e.slice(2):e,t=\"\",r=!1;for(let o of n)o===\"-\"?r=!0:(t+=r?o.toUpperCase():o.toLowerCase(),r=!1);return t},lr=e=>e.startsWith(\"X-\"),Y=(e,n,t)=>{let r=n.replace(Rn(t?.icsComponent),\"\"),o=[...new Set(Object.values(t.childComponents||{}).flatMap(({icsComponent:v})=>v))],i=or(o.reduce((v,E)=>v.replace(Be(E),\"\"),r)),a=t.defaultValues||{},l={};i.forEach(v=>{var E,M;let{property:z,line:C}=tr(v);lr(z)&&(l[z]=C);let S=t.objectKeyMap[z];if(!S)return;let _=(E=t.convertArrayValues)==null?void 0:E[S];if(_){let L=_({line:C});if(!L)return;(a[S]===void 0||a[S]===null||!Array.isArray(a[S]))&&(a[S]=[]),Array.isArray(L)?a[S].push(...L):a[S].push(L);return}let Ue=(M=t.convertValues)==null?void 0:M[S];if(Ue){let L=Ue({line:C});if(!L)return;a[S]=L;return}a[S]=C.value});let s=t.childComponents,u=s?Object.keys(s||{}):[];s&&u.length>0&&u.forEach(v=>{let E=s?.[v];if(!E)return;let M=Array.isArray(E.icsComponent)?E.icsComponent:[E.icsComponent],z=[],C=[];M.forEach(S=>{C.push(...r.matchAll(Be(S)))}),C.map(S=>S[0]).forEach(S=>{let _=E.convert(S,{data:a});_&&z.push(_)}),z.length!==0&&(a[v]=z)});let c=m(e,a);return t!=null&&t.nonStandard?ar(c,l,t?.nonStandard):c},ce=(e,n)=>{var t,r,o;return m(e,{name:(t=n.options)==null?void 0:t.CN,dir:(r=n.options)==null?void 0:r.DIR,sentBy:(o=n.options)!=null&&o[\"SENT-BY\"]?k(n.options[\"SENT-BY\"]):void 0,email:k(n.value)})},ke=(e,n,t)=>{var r;return m(e,{value:p(void 0,n,t),range:(r=n.options)==null?void 0:r.RANGE})},sr=e=>{if(e.length===2)return{day:e};let n=e.slice(0,-2);return{day:e.replace(n,\"\"),occurrence:Number(n)}},ur=(e,n)=>m(e,sr(n.value)),dr=(e,n)=>m(e,n.value),cr=[\"until\"],vr=e=>cr.includes(e),mr=[\"bySecond\",\"byMinute\",\"byHour\",\"byMonthday\",\"byYearday\",\"byWeekNo\",\"bySetPos\"],Er=e=>mr.includes(e),pr=[\"byDay\"],yr=e=>pr.includes(e),Tr=[\"count\",\"interval\"],fr=e=>Tr.includes(e),ve=(e,n,t)=>{let r={};return On(n.value.split(W)).forEach(o=>{let{property:i,value:a}=o,l=Qe[i];if(l){if(vr(l)){r[l]=p(void 0,{value:a,options:{VALUE:a.includes(\"T\")?\"DATE-TIME\":\"DATE\"}},{timezones:t?.timezones});return}if(Er(l)){r[l]=a.split(V).map(s=>Number(s));return}if(l===\"byMonth\"){r[l]=a.split(V).map(s=>Number(s)-1);return}if(yr(l)){r[l]=a.split(V).map(s=>ur(void 0,{value:s}));return}if(fr(l)){r[l]=Number(a);return}if(l===\"frequency\"){if(!a||!mt.includes(a))return;r[l]=a;return}if(l===\"workweekStart\"){r[l]=dr(void 0,{value:a});return}}}),m(e,r)},Ve=(e,n)=>m(e,n.value),Sr=(e,n)=>m(e,n.value),_e=(e,n,t)=>m(e,n.value.split(\",\").map(r=>p(void 0,{value:r,options:n.options},t))),Ar=(e,n)=>m(e,n.value),Dr=(e,n)=>m(e,n.value),Or=(e,n)=>m(e,n.value),F=(e,n)=>m(e,Number.parseInt(n.value,10)),Rr=e=>e.replace(/\\\\(([,;\\\\])|([nN]))/g,(n,t,r)=>r||`\n`),D=(e,n)=>m(e,Rr(n.value)),gr=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:ee,objectKeyMap:We,convertValues:{trigger:({line:o})=>xt(void 0,o,{timezones:r?.timezones}),duration:({line:o})=>j(void 0,o),repeat:({line:o})=>F(void 0,o)},convertArrayValues:{attachments:({line:o})=>Wt(void 0,o),attendees:({line:o})=>w(void 0,o)},nonStandard:r?.nonStandard,timezones:r?.timezones})},Mr=(...e)=>{let[n,t,r]=e,o,i=Y(n,t,{icsComponent:Q,objectKeyMap:Ge,convertValues:{stamp:({line:a})=>p(void 0,a,{timezones:r?.timezones}),start:({line:a})=>p(void 0,a,{timezones:r?.timezones}),end:({line:a})=>p(void 0,a,{timezones:r?.timezones}),created:({line:a})=>p(void 0,a,{timezones:r?.timezones}),lastModified:({line:a})=>p(void 0,a,{timezones:r?.timezones}),categories:({line:a})=>a.value.split(V),description:({line:a})=>{var l;return(l=a.options)!=null&&l.ALTREP&&(o=a.options.ALTREP),D(void 0,a)},location:({line:a})=>D(void 0,a),comment:({line:a})=>D(void 0,a),summary:({line:a})=>D(void 0,a),recurrenceRule:({line:a})=>ve(void 0,a,{timezones:r?.timezones}),duration:({line:a})=>j(void 0,a),organizer:({line:a})=>ce(void 0,a),sequence:({line:a})=>F(void 0,a),class:({line:a})=>Ve(void 0,a),recurrenceId:({line:a})=>ke(void 0,a,{timezones:r?.timezones}),status:({line:a})=>Ar(void 0,a),timeTransparent:({line:a})=>Sr(void 0,a)},convertArrayValues:{attendees:({line:a})=>w(void 0,a),exceptionDates:({line:a})=>_e(void 0,a,{timezones:r?.timezones})},childComponents:{alarms:{icsComponent:ee,convert:a=>gr(void 0,a,{nonStandard:r?.nonStandard,timezones:r?.timezones})}},timezones:r?.timezones,nonStandard:r?.nonStandard});return o&&(i.descriptionAltRep=o),i},Nr=(...e)=>{let[n,t,r]=e,o=t.split(\"BEGIN:\")[1].split(pe)[0],i=vt.includes(o)?o:\"STANDARD\",a=t.split(\"TZOFFSETTO:\")[1].split(pe)[0];return Y(n,t,{icsComponent:i,objectKeyMap:xe,defaultValues:{type:i},convertValues:{start:({line:l})=>Gt(void 0,l,a),recurrenceRule:({line:l})=>ve(void 0,l,{timezones:r?.timezones}),recurrenceDate:({line:l})=>p(void 0,l,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},Ir=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:X,objectKeyMap:Ze,convertValues:{lastModified:({line:o})=>B(void 0,o)},childComponents:{props:{icsComponent:[\"DAYLIGHT\",\"STANDARD\"],convert:o=>Nr(void 0,o,{nonStandard:r?.nonStandard,timezones:r?.timezones})}},nonStandard:r?.nonStandard,timezones:r?.timezones})},Yr=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:ne,objectKeyMap:en,convertValues:{stamp:({line:o})=>p(void 0,o,{timezones:r?.timezones}),start:({line:o})=>p(void 0,o,{timezones:r?.timezones}),due:({line:o})=>p(void 0,o,{timezones:r?.timezones}),created:({line:o})=>p(void 0,o,{timezones:r?.timezones}),lastModified:({line:o})=>p(void 0,o,{timezones:r?.timezones}),completed:({line:o})=>p(void 0,o,{timezones:r?.timezones}),categories:({line:o})=>o.value.split(V),description:({line:o})=>D(void 0,o),location:({line:o})=>D(void 0,o),comment:({line:o})=>D(void 0,o),summary:({line:o})=>D(void 0,o),recurrenceRule:({line:o})=>ve(void 0,o,{timezones:r?.timezones}),duration:({line:o})=>j(void 0,o),organizer:({line:o})=>ce(void 0,o),sequence:({line:o})=>F(void 0,o),percentComplete:({line:o})=>F(void 0,o),class:({line:o})=>Ve(void 0,o),recurrenceId:({line:o})=>ke(void 0,o,{timezones:r?.timezones}),status:({line:o})=>Dr(void 0,o)},convertArrayValues:{attendees:({line:o})=>w(void 0,o),exceptionDates:({line:o})=>_e(void 0,o,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},zr=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:te,objectKeyMap:nn,convertValues:{stamp:({line:o})=>p(void 0,o,{timezones:r?.timezones}),start:({line:o})=>p(void 0,o,{timezones:r?.timezones}),created:({line:o})=>p(void 0,o,{timezones:r?.timezones}),lastModified:({line:o})=>p(void 0,o,{timezones:r?.timezones}),categories:({line:o})=>o.value.split(V),description:({line:o})=>D(void 0,o),comment:({line:o})=>D(void 0,o),summary:({line:o})=>D(void 0,o),recurrenceRule:({line:o})=>ve(void 0,o,{timezones:r?.timezones}),organizer:({line:o})=>ce(void 0,o),sequence:({line:o})=>F(void 0,o),class:({line:o})=>Ve(void 0,o),recurrenceId:({line:o})=>ke(void 0,o,{timezones:r?.timezones}),status:({line:o})=>Or(void 0,o)},convertArrayValues:{attendees:({line:o})=>w(void 0,o),exceptionDates:({line:o})=>_e(void 0,o,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},Cr=(e,n)=>{var t;return m(e,{type:(t=n.options)==null?void 0:t.FBTYPE,values:n.value.split(\",\").map(r=>{let[o,i]=r.split(\"/\"),a=B(void 0,{value:o});if(i.startsWith(\"PT\")){let s=j(void 0,{value:i});return{start:a,duration:s}}let l=B(void 0,{value:i});return{start:a,end:l}})})},Lr=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:re,objectKeyMap:tn,convertValues:{stamp:({line:o})=>p(void 0,o,{timezones:r?.timezones}),start:({line:o})=>p(void 0,o,{timezones:r?.timezones}),end:({line:o})=>p(void 0,o,{timezones:r?.timezones}),comment:({line:o})=>D(void 0,o),organizer:({line:o})=>ce(void 0,o)},convertArrayValues:{attendees:({line:o})=>w(void 0,o),freeBusy:({line:o})=>Cr(void 0,o)},nonStandard:r?.nonStandard,timezones:r?.timezones})},So=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:Ne,objectKeyMap:Je,convertValues:{version:({line:o})=>o.value},childComponents:{timezones:{icsComponent:X,convert:o=>Ir(void 0,o,{nonStandard:r?.nonStandard})},events:{icsComponent:Q,convert:(o,{data:i})=>Mr(void 0,o,{nonStandard:r?.nonStandard,timezones:i.timezones})},todos:{icsComponent:ne,convert:(o,{data:i})=>Yr(void 0,o,{nonStandard:r?.nonStandard,timezones:i.timezones})},journals:{icsComponent:te,convert:(o,{data:i})=>zr(void 0,o,{nonStandard:r?.nonStandard,timezones:i.timezones})},freeBusy:{icsComponent:re,convert:(o,{data:i})=>Lr(void 0,o,{nonStandard:r?.nonStandard,timezones:i.timezones})}},nonStandard:r?.nonStandard})};export{pe as BREAK_REGEX,V as COMMA,sn as CRLF_BREAK,gn as CRLF_BREAK_REGEX,Mt as DEFAULT_END_IN_YEARS,ye as EQUAL_SIGN,Zr as ICS_COMPONENTS,Fe as LF_BREAK,Xr as MAX_LINE_LENGTH,on as OBJECT_END,rn as OBJECT_START,Nn as QUOTE,Hr as RRULE_KEYS,$r as RRULE_OBJECT_KEYS,Xe as RRULE_TO_KEYS,Qe as RRULE_TO_OBJECT_KEYS,W as SEMICOLON,Mn as SEPARATOR,xr as SPACE,vt as TIMEZONE_PROP_COMPONENTS,hr as VALARM_KEYS,ee as VALARM_OBJECT_KEY,br as VALARM_OBJECT_KEYS,fe as VALARM_TO_KEYS,We as VALARM_TO_OBJECT_KEYS,Kr as VCALENDAR_KEYS,Ne as VCALENDAR_OBJECT_KEY,kr as VCALENDAR_OBJECT_KEYS,Se as VCALENDAR_TO_KEYS,Je as VCALENDAR_TO_OBJECT_KEYS,Vr as VEVENT_KEYS,Q as VEVENT_OBJECT_KEY,_r as VEVENT_OBJECT_KEYS,Ae as VEVENT_TO_KEYS,Ge as VEVENT_TO_OBJECT_KEYS,Jr as VFREEBUSY_KEYS,re as VFREEBUSY_OBJECT_KEY,Gr as VFREEBUSY_OBJECT_KEYS,Me as VFREEBUSY_TO_KEYS,tn as VFREEBUSY_TO_OBJECT_KEYS,qr as VJOURNAL_KEYS,te as VJOURNAL_OBJECT_KEY,Wr as VJOURNAL_OBJECT_KEYS,ge as VJOURNAL_TO_KEYS,nn as VJOURNAL_TO_OBJECT_KEYS,ln as VTIMEZONE_DAYLIGHT_OBJECT_KEY,Ur as VTIMEZONE_KEYS,X as VTIMEZONE_OBJECT_KEY,Br as VTIMEZONE_OBJECT_KEYS,Fr as VTIMEZONE_PROP_KEYS,Pr as VTIMEZONE_PROP_OBJECT_KEYS,Oe as VTIMEZONE_PROP_TO_KEYS,xe as VTIMEZONE_PROP_TO_OBJECT_KEYS,an as VTIMEZONE_STANDARD_OBJECT_KEY,De as VTIMEZONE_TO_KEYS,Ze as VTIMEZONE_TO_OBJECT_KEYS,wr as VTODO_KEYS,ne as VTODO_OBJECT_KEY,jr as VTODO_OBJECT_KEYS,Re as VTODO_TO_KEYS,en as VTODO_TO_OBJECT_KEYS,lo as attachmentEncodingTypes,so as attachmentValueTypes,uo as attendeePartStatusTypes,oo as calendarMethods,ao as calendarVersions,yo as classTypes,gr as convertIcsAlarm,Wt as convertIcsAttachment,w as convertIcsAttendee,So as convertIcsCalendar,Ve as convertIcsClass,Jt as convertIcsDate,B as convertIcsDateTime,j as convertIcsDuration,Mr as convertIcsEvent,Ar as convertIcsEventStatus,_e as convertIcsExceptionDates,Lr as convertIcsFreeBusy,F as convertIcsInteger,zr as convertIcsJournal,Or as convertIcsJournalStatus,Gt as convertIcsLocalOnlyDateTime,ce as convertIcsOrganizer,ke as convertIcsRecurrenceId,ve as convertIcsRecurrenceRule,D as convertIcsText,p as convertIcsTimeStamp,Sr as convertIcsTimeTransparent,Ir as convertIcsTimezone,Nr as convertIcsTimezoneProp,Yr as convertIcsTodo,Dr as convertIcsTodoStatus,xt as convertIcsTrigger,dr as convertIcsWeekDay,ur as convertIcsWeekDayNumber,ar as convertNonStandardValues,Be as createGetRegex,Rn as createReplaceRegex,co as dateObjectTypes,vo as eventStatusTypes,Nt as extendByRecurrenceRule,It as extendTimezoneProps,io as freeBusyTypes,_t as generateIcsAlarm,zn as generateIcsAttachment,P as generateIcsAttendee,fo as generateIcsCalendar,Dn as generateIcsDate,H as generateIcsDuration,Ft as generateIcsEvent,qt as generateIcsFreeBusy,U as generateIcsInteger,wt as generateIcsJournal,zt as generateIcsLocalDateTime,Ct as generateIcsLocalOnlyDateTime,K as generateIcsMail,ue as generateIcsOrganizer,de as generateIcsRecurrenceRule,A as generateIcsText,T as generateIcsTimeStamp,Ht as generateIcsTimezone,Pt as generateIcsTimezoneProp,$t as generateIcsTodo,Lt as generateIcsTrigger,h as generateIcsUtcDateTime,Ut as generateIcsWeekdayNumber,ht as generateNonStandardValues,to as getDurationFromInterval,ro as getEventEnd,ct as getEventEndFromDuration,An as getTimezoneObjectOffset,Eo as journalStatusTypes,fr as recurrenceObjectKeyIsNumber,Er as recurrenceObjectKeyIsNumberArray,vr as recurrenceObjectKeyIsTimeStamp,yr as recurrenceObjectKeyIsWeekdayNumberArray,mt as recurrenceRuleFrequencies,To as timeTransparentTypes,x as timeZoneOffsetToMilliseconds,mo as todoStatusTypes,po as triggerRelations,Sn as weekDays};\n//# sourceMappingURL=ts-ics.mjs.map", "import { clientStore, config, datastore, editor, index } from \"@silverbulletmd/silverbullet/syscalls\";\nimport { convertIcsCalendar } from \"https://esm.sh/ts-ics@2.4.0\";\nimport type { IcsCalendar, IcsEvent, IcsDateObjects } from \"https://esm.sh/ts-ics@2.4.0\";\n\nconst VERSION = \"0.3.11\";\nconst CACHE_KEY = \"icalendar:lastSync\";\n\nconst TIMEZONE_OFFSETS: Record = {\n \"GMT Standard Time\": 0,\n \"W. Europe Standard Time\": 1,\n \"Central Europe Standard Time\": 1,\n \"Romance Standard Time\": 1,\n \"Central European Standard Time\": 1,\n \"Eastern Standard Time\": -5,\n \"Central Standard Time\": -6,\n \"Mountain Standard Time\": -7,\n \"Pacific Standard Time\": -8,\n \"UTC\": 0,\n \"None\": 0\n};\n\nexport async function syncCalendars() {\n const rawConfig = await config.get(\"icalendar\", { sources: [] });\n let sources: any[] = rawConfig.sources || [];\n let tzShift = rawConfig.tzShift || 0;\n\n if (sources.length === 0) return;\n await editor.flashNotification(\"Syncing calendars...\", \"info\");\n \n const allEvents: any[] = [];\n for (const source of sources) {\n const response = await fetch(source.url);\n const text = await response.text();\n const calendar = convertIcsCalendar(undefined, text);\n if (!calendar.events) continue;\n \n for (const icsEvent of calendar.events) {\n const obj = icsEvent.start;\n let wallTimeStr = \"\";\n if (obj.local && typeof obj.local.date === \"string\") wallTimeStr = obj.local.date;\n else if (typeof obj.date === \"string\") wallTimeStr = obj.date;\n \n const baseDate = new Date(wallTimeStr.replace(\"Z\", \"\") + \"Z\");\n const tzName = obj.local?.timezone || obj.timezone || \"UTC\";\n const sourceOffset = TIMEZONE_OFFSETS[tzName] ?? 0;\n const utcMillis = baseDate.getTime() - (sourceOffset * 3600000);\n const finalDate = new Date(utcMillis + (tzShift * 3600000));\n \n const pad = (n: number) => String(n).padStart(2, \"0\");\n const localIso = finalDate.getFullYear() + \"-\" + pad(finalDate.getMonth() + 1) + \"-\" + pad(finalDate.getDate()) + \"T\" + pad(finalDate.getHours()) + \":\" + pad(finalDate.getMinutes()) + \":\" + pad(finalDate.getSeconds());\n\n allEvents.push({\n ...icsEvent,\n start: localIso,\n tag: \"ical-event\",\n sourceName: source.name\n });\n }\n }\n await index.indexObjects(\"$icalendar\", allEvents);\n await editor.flashNotification(`Synced ${allEvents.length} events`, \"info\");\n}\n\nexport async function forceSync() {\n await clientStore.del(CACHE_KEY);\n await syncCalendars();\n}\n\nexport async function showVersion() {\n await editor.flashNotification(`iCalendar Plug ${VERSION}`, \"info\");\n}\n", "\nimport { setupMessageListener } from \"https://deno.land/x/silverbullet@2.4.1/client/plugos/worker_runtime.ts\";\n\n// Imports\nimport {syncCalendars as syncCalendars} from \"file:///app/main.ts\";\nimport {forceSync as forceSync} from \"file:///app/main.ts\";\nimport {showVersion as showVersion} from \"file:///app/main.ts\";\n\n\n// Function mapping\nconst functionMapping = {\n syncCalendars: syncCalendars,\n forceSync: forceSync,\n showVersion: showVersion,\n\n};\n\n// Manifest\nconst manifest = {\n \"name\": \"icalendar\",\n \"version\": \"0.3.11\",\n \"functions\": {\n \"syncCalendars\": {\n \"path\": \"main.ts:syncCalendars\",\n \"command\": \"iCalendar: Sync\"\n },\n \"forceSync\": {\n \"path\": \"main.ts:forceSync\",\n \"command\": \"iCalendar: Force Sync\"\n },\n \"showVersion\": {\n \"path\": \"main.ts:showVersion\",\n \"command\": \"iCalendar: Show Version\"\n }\n },\n \"permissions\": [\n \"http\"\n ],\n \"assets\": {}\n};\n\nexport const plug = {manifest, functionMapping};\n\nsetupMessageListener(functionMapping, manifest, self.postMessage);\n"], + "mappings": "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", + "names": ["base64Decode", "s", "binString", "len", "bytes", "i", "base64Encode", "buffer", "binary", "fixedCounter", "Logger", "prefix", "maxCaptureSize", "createPatchedMethod", "level", "args", "prefixedArgs", "entry", "arg", "logEndpoint", "source", "logCopy", "e", "globalLogger", "initLogger", "workerPostMessage", "_msg", "runningAsWebWorker", "pendingRequests", "syscallReqId", "name", "args", "resolve", "reject", "setupMessageListener", "functionMapping", "manifest", "postMessageFn", "event", "data", "fn", "result", "e", "syscallId", "lookup", "initLogger", "sandboxFetch", "reqInfo", "options", "body", "encodedBody", "base64Encode", "monkeyPatchFetch", "init", "base64Decode", "editor_exports", "__export", "alert", "configureVimMode", "confirm", "copyToClipboard", "deleteLine", "dispatch", "downloadFile", "filterBox", "flashNotification", "fold", "foldAll", "getCurrentEditor", "getCurrentPage", "getCurrentPageMeta", "getCurrentPath", "getCursor", "getRecentlyOpenedPages", "getSelection", "getText", "getUiOption", "goHistory", "hidePanel", "insertAtCursor", "insertAtPos", "invokeCommand", "isMobile", "moveCursor", "moveCursorToLine", "moveLineDown", "moveLineUp", "navigate", "newWindow", "openCommandPalette", "openPageNavigator", "openSearchPanel", "openUrl", "prompt", "rebuildEditorState", "redo", "reloadConfigAndCommands", "reloadPage", "reloadUI", "replaceRange", "save", "sendMessage", "setSelection", "setText", "setUiOption", "showPanel", "showProgress", "toggleComment", "toggleFold", "undo", "unfold", "unfoldAll", "uploadFile", "vimEx", "syscall", "name", "args", "getCurrentPage", "syscall", "getCurrentPageMeta", "getCurrentPath", "getRecentlyOpenedPages", "getCurrentEditor", "getText", "setText", "newText", "isolateHistory", "getCursor", "getSelection", "setSelection", "from", "to", "invokeCommand", "name", "args", "save", "navigate", "ref", "replaceState", "newWindow", "openPageNavigator", "mode", "openCommandPalette", "reloadPage", "reloadUI", "rebuildEditorState", "reloadConfigAndCommands", "openUrl", "url", "existingWindow", "goHistory", "delta", "downloadFile", "filename", "dataUrl", "uploadFile", "accept", "capture", "flashNotification", "message", "type", "filterBox", "label", "options", "helpText", "placeHolder", "showPanel", "id", "html", "script", "hidePanel", "showProgress", "progressPercentage", "progressType", "insertAtPos", "text", "pos", "replaceRange", "moveCursor", "center", "moveCursorToLine", "line", "column", "insertAtCursor", "scrollIntoView", "cursorPlaceHolder", "dispatch", "change", "prompt", "defaultValue", "confirm", "alert", "getUiOption", "key", "setUiOption", "value", "fold", "unfold", "toggleFold", "foldAll", "unfoldAll", "undo", "redo", "openSearchPanel", "copyToClipboard", "data", "deleteLine", "toggleComment", "moveLineUp", "moveLineDown", "vimEx", "exCommand", "configureVimMode", "sendMessage", "isMobile", "client_store_exports", "__export", "del", "get", "set", "set", "key", "value", "syscall", "get", "del", "fixedCounter", "config_exports", "__export", "define", "get", "has", "insert", "set", "get", "path", "defaultValue", "syscall", "set", "pathOrValues", "value", "insert", "has", "define", "key", "schema", "syscalls_exports", "__export", "ensureFullIndex", "getObjectByRef", "indexObjects", "queryLuaObjects", "indexObjects", "page", "objects", "syscall", "queryLuaObjects", "tag", "query", "scopedVariables", "ttlSecs", "getObjectByRef", "ref", "ensureFullIndex", "g", "n", "t", "f", "fe", "We", "hr", "br", "Se", "Je", "Kr", "kr", "Ae", "Ge", "Vr", "_r", "De", "Ze", "Ur", "Br", "Oe", "xe", "Fr", "Pr", "Xe", "Qe", "Hr", "$r", "Re", "en", "wr", "jr", "ge", "nn", "qr", "Wr", "Me", "tn", "Jr", "Gr", "rn", "on", "Ne", "X", "an", "ln", "Q", "ee", "ne", "te", "re", "Be", "rn", "on", "Rn", "pe", "Fe", "Mn", "V", "Nn", "W", "ye", "Cn", "Qr", "Ln", "Ie", "Ye", "bn", "un", "eo", "Kn", "kn", "no", "Pe", "O", "n", "oe", "t", "dn", "i", "a", "$", "cn", "Vn", "ae", "G", "l", "s", "u", "c", "ie", "n", "t", "O", "Te", "ze", "n", "t", "Ie", "vn", "$", "le", "oe", "mn", "dn", "Ce", "we", "n", "t", "Hn", "n", "t", "ie", "$n", "i", "a", "l", "s", "O", "je", "wn", "jn", "qn", "ae", "u", "c", "v", "G", "E", "M", "Wn", "Jn", "Ln", "q", "yn", "Gn", "Zn", "Tn", "xn", "Xn", "Qn", "et", "Z", "oe", "fn", "nt", "Ye", "tt", "Ie", "rt", "ot", "at", "it", "lt", "st", "ut", "$", "dt", "le", "vt", "an", "ln", "mt", "Sn", "b", "n", "Et", "t", "i", "a", "vn", "ze", "cn", "oe", "le", "dn", "mn", "pt", "Sn", "l", "q", "Z", "s", "me", "N", "je", "we", "jn", "wn", "Te", "dt", "$n", "fn", "yt", "it", "Gn", "Tt", "lt", "Zn", "ft", "rt", "Tn", "St", "yn", "ot", "At", "st", "xn", "Dt", "Ce", "Ot", "et", "Rt", "at", "Xn", "gt", "Qn", "Mt", "Nt", "It", "x", "Yt", "An", "u", "c", "nt", "tt", "m", "n", "t", "Wt", "i", "a", "k", "w", "l", "s", "u", "c", "v", "E", "j", "Jt", "B", "Gt", "x", "ut", "Zt", "An", "$", "p", "xt", "Xt", "On", "ye", "Qt", "er", "nr", "Nn", "Mn", "tr", "W", "qe", "rr", "or", "pe", "Fe", "ar", "ir", "lr", "Y", "Rn", "Be", "M", "z", "C", "S", "_", "L", "Ue", "ce", "ke", "sr", "ur", "dr", "cr", "vr", "mr", "Er", "pr", "yr", "Tr", "fr", "ve", "Qe", "V", "mt", "Ve", "Sr", "_e", "Ar", "Dr", "Or", "F", "Rr", "D", "gr", "ee", "We", "Mr", "Q", "Ge", "Nr", "vt", "xe", "Ir", "X", "Ze", "Yr", "ne", "en", "zr", "te", "nn", "Cr", "Lr", "re", "tn", "So", "Ne", "Je", "VERSION", "CACHE_KEY", "TIMEZONE_OFFSETS", "syncCalendars", "rawConfig", "config_exports", "sources", "tzShift", "editor_exports", "allEvents", "source", "text", "calendar", "So", "icsEvent", "obj", "wallTimeStr", "baseDate", "tzName", "sourceOffset", "utcMillis", "finalDate", "pad", "n", "localIso", "syscalls_exports", "forceSync", "client_store_exports", "showVersion", "functionMapping", "syncCalendars", "forceSync", "showVersion", "manifest", "plug", "setupMessageListener"] }