@ebowwa/sandbox 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/compilers/index.d.ts +24 -0
  2. package/dist/compilers/index.d.ts.map +1 -0
  3. package/dist/compilers/index.js +42 -0
  4. package/dist/compilers/index.js.map +1 -0
  5. package/dist/compilers/javascript.d.ts +117 -0
  6. package/dist/compilers/javascript.d.ts.map +1 -0
  7. package/dist/compilers/javascript.js +462 -0
  8. package/dist/compilers/javascript.js.map +1 -0
  9. package/dist/compilers/python.d.ts +140 -0
  10. package/dist/compilers/python.d.ts.map +1 -0
  11. package/dist/compilers/python.js +650 -0
  12. package/dist/compilers/python.js.map +1 -0
  13. package/dist/compilers/typescript.d.ts +99 -0
  14. package/dist/compilers/typescript.d.ts.map +1 -0
  15. package/dist/compilers/typescript.js +323 -0
  16. package/dist/compilers/typescript.js.map +1 -0
  17. package/dist/core/cell.d.ts +160 -0
  18. package/dist/core/cell.d.ts.map +1 -0
  19. package/dist/core/cell.js +319 -0
  20. package/dist/core/cell.js.map +1 -0
  21. package/dist/core/compiler.d.ts +126 -0
  22. package/dist/core/compiler.d.ts.map +1 -0
  23. package/dist/core/compiler.js +123 -0
  24. package/dist/core/compiler.js.map +1 -0
  25. package/dist/core/index.d.ts +19 -0
  26. package/dist/core/index.d.ts.map +1 -0
  27. package/dist/core/index.js +14 -0
  28. package/dist/core/index.js.map +1 -0
  29. package/dist/core/limits.d.ts +173 -0
  30. package/dist/core/limits.d.ts.map +1 -0
  31. package/dist/core/limits.js +440 -0
  32. package/dist/core/limits.js.map +1 -0
  33. package/dist/core/permissions.d.ts +103 -0
  34. package/dist/core/permissions.d.ts.map +1 -0
  35. package/dist/core/permissions.js +341 -0
  36. package/dist/core/permissions.js.map +1 -0
  37. package/dist/core/runtime.d.ts +127 -0
  38. package/dist/core/runtime.d.ts.map +1 -0
  39. package/dist/core/runtime.js +325 -0
  40. package/dist/core/runtime.js.map +1 -0
  41. package/dist/core/types.d.ts +380 -0
  42. package/dist/core/types.d.ts.map +1 -0
  43. package/dist/core/types.js +67 -0
  44. package/dist/core/types.js.map +1 -0
  45. package/dist/index.d.ts +145 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +279 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/multi/index.d.ts +9 -0
  50. package/dist/multi/index.d.ts.map +1 -0
  51. package/dist/multi/index.js +7 -0
  52. package/dist/multi/index.js.map +1 -0
  53. package/dist/multi/polyglot.d.ts +179 -0
  54. package/dist/multi/polyglot.d.ts.map +1 -0
  55. package/dist/multi/polyglot.js +319 -0
  56. package/dist/multi/polyglot.js.map +1 -0
  57. package/dist/runtimes/docker.d.ts +97 -0
  58. package/dist/runtimes/docker.d.ts.map +1 -0
  59. package/dist/runtimes/docker.js +368 -0
  60. package/dist/runtimes/docker.js.map +1 -0
  61. package/dist/runtimes/index.d.ts +11 -0
  62. package/dist/runtimes/index.d.ts.map +1 -0
  63. package/dist/runtimes/index.js +9 -0
  64. package/dist/runtimes/index.js.map +1 -0
  65. package/dist/runtimes/process.d.ts +47 -0
  66. package/dist/runtimes/process.d.ts.map +1 -0
  67. package/dist/runtimes/process.js +230 -0
  68. package/dist/runtimes/process.js.map +1 -0
  69. package/dist/session/index.d.ts +12 -0
  70. package/dist/session/index.d.ts.map +1 -0
  71. package/dist/session/index.js +9 -0
  72. package/dist/session/index.js.map +1 -0
  73. package/dist/session/kernel.d.ts +199 -0
  74. package/dist/session/kernel.d.ts.map +1 -0
  75. package/dist/session/kernel.js +400 -0
  76. package/dist/session/kernel.js.map +1 -0
  77. package/dist/session/notebook.d.ts +168 -0
  78. package/dist/session/notebook.d.ts.map +1 -0
  79. package/dist/session/notebook.js +499 -0
  80. package/dist/session/notebook.js.map +1 -0
  81. package/dist/session/repl.d.ts +159 -0
  82. package/dist/session/repl.d.ts.map +1 -0
  83. package/dist/session/repl.js +409 -0
  84. package/dist/session/repl.js.map +1 -0
  85. package/package.json +142 -0
  86. package/src/compilers/index.ts +80 -0
  87. package/src/compilers/javascript.ts +571 -0
  88. package/src/compilers/python.ts +785 -0
  89. package/src/compilers/typescript.ts +442 -0
  90. package/src/core/cell.ts +439 -0
  91. package/src/core/compiler.ts +250 -0
  92. package/src/core/index.ts +123 -0
  93. package/src/core/limits.ts +508 -0
  94. package/src/core/permissions.ts +409 -0
  95. package/src/core/runtime.ts +499 -0
  96. package/src/core/types.ts +528 -0
  97. package/src/global.d.ts +59 -0
  98. package/src/index.ts +515 -0
  99. package/src/multi/index.ts +22 -0
  100. package/src/multi/polyglot.ts +461 -0
  101. package/src/runtimes/docker.ts +501 -0
  102. package/src/runtimes/index.ts +21 -0
  103. package/src/runtimes/process.ts +316 -0
  104. package/src/session/index.ts +41 -0
  105. package/src/session/kernel.ts +553 -0
  106. package/src/session/notebook.ts +635 -0
  107. package/src/session/repl.ts +521 -0
  108. package/src/wasm2wasm.d.ts +35 -0
@@ -0,0 +1,368 @@
1
+ /**
2
+ * Docker Runtime
3
+ *
4
+ * Runs code in Docker containers for maximum isolation.
5
+ * Provides full filesystem and network control with container-level security.
6
+ *
7
+ * Isolation level: 'container'
8
+ */
9
+ import { spawn } from "node:child_process";
10
+ import { randomUUID } from "node:crypto";
11
+ import { setTimeout as setTimeoutPromise } from "node:timers/promises";
12
+ /**
13
+ * Docker Runtime
14
+ *
15
+ * Executes code in isolated Docker containers with full resource control.
16
+ * Maximum isolation with configurable filesystem and network access.
17
+ */
18
+ export class DockerRuntime {
19
+ name = "docker";
20
+ capabilities = {
21
+ isolation: "container",
22
+ stateful: true,
23
+ async: true,
24
+ filesystem: true,
25
+ network: true,
26
+ maxMemory: 16 * 1024 * 1024 * 1024, // 16GB
27
+ wasi: true,
28
+ };
29
+ executing = false;
30
+ config;
31
+ containers = new Map(); // name -> containerId
32
+ constructor(config = {}) {
33
+ this.config = {
34
+ defaultImage: config.defaultImage ?? "node:20-slim",
35
+ dockerSocket: config.dockerSocket ?? "/var/run/docker.sock",
36
+ networkMode: config.networkMode ?? "none",
37
+ autoCleanup: config.autoCleanup ?? true,
38
+ defaultMemory: config.defaultMemory ?? 512 * 1024 * 1024, // 512MB
39
+ cpuLimit: config.cpuLimit ?? 1,
40
+ };
41
+ }
42
+ async init() {
43
+ // Verify Docker is available
44
+ const available = await this.checkDockerAvailable();
45
+ if (!available) {
46
+ throw new Error("Docker is not available. Ensure Docker daemon is running.");
47
+ }
48
+ }
49
+ async isAvailable() {
50
+ return this.checkDockerAvailable();
51
+ }
52
+ async execute(request, options) {
53
+ const startTime = Date.now();
54
+ this.executing = true;
55
+ const stdout = [];
56
+ const stderr = [];
57
+ const displays = [];
58
+ const containerName = `sandbox-${randomUUID().slice(0, 8)}`;
59
+ try {
60
+ // Parse limits
61
+ const timeout = this.parseTimeout(options.limits?.timeout);
62
+ const maxMemory = this.parseMemory(options.limits?.memory) || this.config.defaultMemory;
63
+ const cpuLimit = options.limits?.cpuTime
64
+ ? Math.max(0.1, (options.limits.cpuTime / 1000))
65
+ : this.config.cpuLimit;
66
+ // Build container options from permissions
67
+ const containerOptions = this.buildContainerOptions(request, options, {
68
+ memory: maxMemory,
69
+ cpu: cpuLimit,
70
+ name: containerName,
71
+ });
72
+ // Create abort controller for timeout
73
+ const controller = new AbortController();
74
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
75
+ if (options.signal) {
76
+ options.signal.addEventListener("abort", () => {
77
+ controller.abort();
78
+ clearTimeout(timeoutId);
79
+ });
80
+ }
81
+ // Pull image if needed
82
+ await this.pullImageIfNeeded(containerOptions.image);
83
+ // Create and start container
84
+ const containerId = await this.createContainer(containerOptions);
85
+ this.containers.set(containerName, containerId);
86
+ // Execute code in container
87
+ const result = await this.runInContainer(containerId, request, controller.signal);
88
+ clearTimeout(timeoutId);
89
+ // Collect output
90
+ stdout.push(...result.stdout);
91
+ stderr.push(...result.stderr);
92
+ return {
93
+ success: result.exitCode === 0,
94
+ value: result.value,
95
+ metrics: {
96
+ duration: Date.now() - startTime,
97
+ memoryUsed: maxMemory, // Approximate
98
+ },
99
+ output: { stdout, stderr, displays },
100
+ };
101
+ }
102
+ catch (error) {
103
+ if (error instanceof Error && error.name === "AbortError") {
104
+ return this.createErrorResult("Execution timed out", "timeout", startTime, stdout, stderr);
105
+ }
106
+ return this.createErrorResult(error instanceof Error ? error.message : String(error), "runtime", startTime, stdout, stderr);
107
+ }
108
+ finally {
109
+ // Cleanup container
110
+ if (this.config.autoCleanup) {
111
+ await this.removeContainer(containerName);
112
+ }
113
+ this.executing = false;
114
+ }
115
+ }
116
+ async terminate() {
117
+ // Cleanup all containers
118
+ for (const [name] of this.containers) {
119
+ await this.removeContainer(name);
120
+ }
121
+ this.containers.clear();
122
+ this.executing = false;
123
+ }
124
+ isExecuting() {
125
+ return this.executing;
126
+ }
127
+ /**
128
+ * Check if Docker is available
129
+ */
130
+ async checkDockerAvailable() {
131
+ return new Promise((resolve) => {
132
+ const proc = spawn("docker", ["version"], { stdio: "ignore" });
133
+ proc.on("close", (code) => resolve(code === 0));
134
+ proc.on("error", () => resolve(false));
135
+ });
136
+ }
137
+ /**
138
+ * Pull Docker image if not present
139
+ */
140
+ async pullImageIfNeeded(image) {
141
+ // Check if image exists
142
+ const exists = await new Promise((resolve) => {
143
+ const proc = spawn("docker", ["image", "inspect", image], { stdio: "ignore" });
144
+ proc.on("close", (code) => resolve(code === 0));
145
+ proc.on("error", () => resolve(false));
146
+ });
147
+ if (!exists) {
148
+ await new Promise((resolve, reject) => {
149
+ const proc = spawn("docker", ["pull", image], { stdio: "inherit" });
150
+ proc.on("close", (code) => {
151
+ if (code === 0)
152
+ resolve();
153
+ else
154
+ reject(new Error(`Failed to pull image: ${image}`));
155
+ });
156
+ proc.on("error", reject);
157
+ });
158
+ }
159
+ }
160
+ /**
161
+ * Build container options from execution request
162
+ */
163
+ buildContainerOptions(request, options, limits) {
164
+ const perms = options.permissions;
165
+ const containerOptions = {
166
+ image: this.config.defaultImage,
167
+ name: limits.name,
168
+ env: options.env,
169
+ workdir: options.cwd ?? "/workspace",
170
+ network: this.config.networkMode,
171
+ };
172
+ // Filesystem permissions
173
+ if (perms.fs?.read || perms.fs?.write) {
174
+ containerOptions.mounts = [
175
+ {
176
+ source: options.cwd ?? process.cwd(),
177
+ target: containerOptions.workdir ?? "/workspace",
178
+ readonly: !perms.fs.write,
179
+ },
180
+ ];
181
+ }
182
+ // Network permissions
183
+ if (perms.network?.outbound || perms.network?.inbound) {
184
+ containerOptions.network = "bridge";
185
+ }
186
+ return containerOptions;
187
+ }
188
+ /**
189
+ * Create Docker container
190
+ */
191
+ async createContainer(opts) {
192
+ const args = ["create"];
193
+ // Name
194
+ args.push("--name", opts.name);
195
+ // Memory limit
196
+ args.push("--memory", `${Math.floor(this.config.defaultMemory / (1024 * 1024))}m`);
197
+ // CPU limit
198
+ args.push("--cpus", this.config.cpuLimit.toString());
199
+ // Network mode
200
+ if (opts.network) {
201
+ args.push(`--network=${opts.network}`);
202
+ }
203
+ // Working directory
204
+ if (opts.workdir) {
205
+ args.push("--workdir", opts.workdir);
206
+ }
207
+ // Environment variables
208
+ if (opts.env) {
209
+ for (const [key, value] of Object.entries(opts.env)) {
210
+ args.push("--env", `${key}=${value}`);
211
+ }
212
+ }
213
+ // Mounts
214
+ if (opts.mounts) {
215
+ for (const mount of opts.mounts) {
216
+ const mode = mount.readonly ? ":ro" : "";
217
+ args.push("--volume", `${mount.source}:${mount.target}${mode}`);
218
+ }
219
+ }
220
+ // Port mappings
221
+ if (opts.ports) {
222
+ for (const port of opts.ports) {
223
+ const protocol = port.protocol ?? "tcp";
224
+ args.push("--publish", `${port.hostPort}:${port.containerPort}/${protocol}`);
225
+ }
226
+ }
227
+ // Security options
228
+ args.push("--security-opt", "no-new-privileges");
229
+ // Disable inter-container communication
230
+ args.push("--icc=false");
231
+ // Image
232
+ args.push(opts.image);
233
+ return new Promise((resolve, reject) => {
234
+ const proc = spawn("docker", args);
235
+ let output = "";
236
+ proc.stdout.on("data", (data) => {
237
+ output += data.toString();
238
+ });
239
+ proc.stderr.on("data", (data) => {
240
+ console.error(`docker stderr: ${data}`);
241
+ });
242
+ proc.on("close", (code) => {
243
+ if (code === 0) {
244
+ resolve(output.trim());
245
+ }
246
+ else {
247
+ reject(new Error(`Failed to create container: ${output}`));
248
+ }
249
+ });
250
+ proc.on("error", reject);
251
+ });
252
+ }
253
+ /**
254
+ * Run code in container
255
+ */
256
+ async runInContainer(containerId, request, signal) {
257
+ const stdout = [];
258
+ const stderr = [];
259
+ // Start container
260
+ await new Promise((resolve, reject) => {
261
+ const proc = spawn("docker", ["start", containerId]);
262
+ proc.on("close", (code) => {
263
+ if (code === 0)
264
+ resolve();
265
+ else
266
+ reject(new Error("Failed to start container"));
267
+ });
268
+ proc.on("error", reject);
269
+ });
270
+ // Write WASM to temp file and execute
271
+ const wasmBase64 = Buffer.from(request.wasm.wasmBytes).toString("base64");
272
+ const execCommand = `node -e "require('fs').writeFileSync('/tmp/code.wasm',Buffer.from('${wasmBase64}','base64'));const {WASI}=require('wasi');const wasi=new WASI({version:'preview1'});WebAssembly.instantiate(require('fs').readFileSync('/tmp/code.wasm'),{wasi_snapshot_preview1:wasi.wasiImport}).then(({instance})=>{wasi.start(instance)})"`;
273
+ // Execute in container
274
+ return new Promise((resolve, reject) => {
275
+ const proc = spawn("docker", [
276
+ "exec",
277
+ containerId,
278
+ "/bin/sh",
279
+ "-c",
280
+ execCommand,
281
+ ]);
282
+ proc.stdout.on("data", (data) => {
283
+ stdout.push(data.toString("utf8"));
284
+ });
285
+ proc.stderr.on("data", (data) => {
286
+ stderr.push(data.toString("utf8"));
287
+ });
288
+ signal.addEventListener("abort", () => {
289
+ proc.kill("SIGKILL");
290
+ });
291
+ proc.on("close", (code) => {
292
+ // Try to parse output as JSON
293
+ let value = undefined;
294
+ const output = stdout.join("");
295
+ try {
296
+ const parsed = JSON.parse(output);
297
+ if (parsed.__return_value !== undefined) {
298
+ value = parsed.__return_value;
299
+ }
300
+ }
301
+ catch {
302
+ value = output.trim() || undefined;
303
+ }
304
+ resolve({
305
+ stdout,
306
+ stderr,
307
+ exitCode: code ?? 1,
308
+ value,
309
+ });
310
+ });
311
+ proc.on("error", reject);
312
+ });
313
+ }
314
+ /**
315
+ * Remove container
316
+ */
317
+ async removeContainer(nameOrId) {
318
+ const containerId = this.containers.get(nameOrId) ?? nameOrId;
319
+ await new Promise((resolve) => {
320
+ const proc = spawn("docker", ["rm", "-f", containerId], { stdio: "ignore" });
321
+ proc.on("close", () => {
322
+ this.containers.delete(nameOrId);
323
+ resolve();
324
+ });
325
+ proc.on("error", () => resolve());
326
+ });
327
+ }
328
+ createErrorResult(message, type, startTime, stdout = [], stderr = []) {
329
+ return {
330
+ success: false,
331
+ error: { message, type },
332
+ metrics: {
333
+ duration: Date.now() - startTime,
334
+ memoryUsed: 0,
335
+ },
336
+ output: { stdout, stderr, displays: [] },
337
+ };
338
+ }
339
+ parseMemory(memory) {
340
+ if (!memory)
341
+ return this.config.defaultMemory;
342
+ if (typeof memory === "number")
343
+ return memory;
344
+ const match = memory.match(/^(\d+(?:\.\d+)?)\s*(b|kb|mb|gb)?$/i);
345
+ if (!match)
346
+ return this.config.defaultMemory;
347
+ const [, num, unit] = match;
348
+ const multipliers = {
349
+ b: 1, kb: 1024, mb: 1024 ** 2, gb: 1024 ** 3,
350
+ };
351
+ return Math.floor(parseFloat(num) * (multipliers[unit?.toLowerCase() ?? "b"] ?? 1));
352
+ }
353
+ parseTimeout(timeout) {
354
+ if (!timeout)
355
+ return 300000; // 5 minutes default for containers
356
+ if (typeof timeout === "number")
357
+ return timeout;
358
+ const match = timeout.match(/^(\d+(?:\.\d+)?)\s*(ms|s|m)?$/i);
359
+ if (!match)
360
+ return 300000;
361
+ const [, num, unit] = match;
362
+ const multipliers = {
363
+ ms: 1, s: 1000, m: 60000,
364
+ };
365
+ return Math.floor(parseFloat(num) * (multipliers[unit?.toLowerCase() ?? "ms"] ?? 1));
366
+ }
367
+ }
368
+ //# sourceMappingURL=docker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/runtimes/docker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Runtime Exports
3
+ *
4
+ * Exports all available runtimes for sandboxed code execution.
5
+ */
6
+ export type { ProcessRuntimeConfig } from "./process.js";
7
+ export type { DockerRuntimeConfig, ContainerOptions } from "./docker.js";
8
+ export { ProcessRuntime } from "./process.js";
9
+ export { DockerRuntime } from "./docker.js";
10
+ export type { IRuntime, RuntimeOptions, ExecutionRequest, RuntimeCapabilities, } from "../core/runtime.js";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtimes/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,YAAY,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Runtime Exports
3
+ *
4
+ * Exports all available runtimes for sandboxed code execution.
5
+ */
6
+ // Runtime implementations
7
+ export { ProcessRuntime } from "./process.js";
8
+ export { DockerRuntime } from "./docker.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtimes/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Process Runtime
3
+ *
4
+ * Spawns child processes for code execution with elevated permissions.
5
+ * Supports filesystem and network access with configurable limits.
6
+ *
7
+ * Isolation level: 'process'
8
+ */
9
+ import type { ExecutionResult } from "../core/types.js";
10
+ import type { IRuntime, RuntimeOptions, ExecutionRequest, RuntimeCapabilities } from "../core/runtime.js";
11
+ /** Process runtime configuration */
12
+ export interface ProcessRuntimeConfig {
13
+ /** Default shell to use */
14
+ shell?: string;
15
+ /** Timeout for availability check */
16
+ availabilityTimeout?: number;
17
+ }
18
+ /**
19
+ * Process Runtime
20
+ *
21
+ * Executes code in child processes with configurable permissions.
22
+ * Provides filesystem and network access based on permission level.
23
+ */
24
+ export declare class ProcessRuntime implements IRuntime {
25
+ readonly name = "process";
26
+ readonly capabilities: RuntimeCapabilities;
27
+ private executing;
28
+ private config;
29
+ constructor(config?: ProcessRuntimeConfig);
30
+ init(): Promise<void>;
31
+ isAvailable(): Promise<boolean>;
32
+ execute(request: ExecutionRequest, options: RuntimeOptions): Promise<ExecutionResult>;
33
+ terminate(): Promise<void>;
34
+ isExecuting(): boolean;
35
+ /**
36
+ * Build command and arguments for execution
37
+ */
38
+ private buildCommand;
39
+ /**
40
+ * Generate WASM runner script
41
+ */
42
+ private generateWasmRunner;
43
+ private createErrorResult;
44
+ private parseMemory;
45
+ private parseTimeout;
46
+ }
47
+ //# sourceMappingURL=process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/runtimes/process.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAE5B,oCAAoC;AACpC,MAAM,WAAW,oBAAoB;IACnC,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,QAAQ;IAC7C,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAQxC;IAEF,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAuB;gBAEzB,MAAM,GAAE,oBAAyB;IAOvC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/B,OAAO,CACX,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,eAAe,CAAC;IA8IrB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,YAAY;CAWrB"}