@graphty/webgpu-graph-algorithms 0.6.6 → 0.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/node.js CHANGED
@@ -1,5 +1,6 @@
1
- import { W as WebGpuGraphError, G as GpuContext } from "./chunks/context-DiSr6eiz.js";
1
+ import { W as WebGpuGraphError, G as GpuContext } from "./chunks/context-Cezi7qpi.js";
2
2
  const INSTALL_HINT = "install the optional peer dependency webgpu@0.4.0";
3
+ const instances = /* @__PURE__ */ new Map();
3
4
  function isDawnModule(loaded) {
4
5
  return typeof loaded === "object" && loaded !== null && typeof loaded.create === "function";
5
6
  }
@@ -67,12 +68,22 @@ async function createNodeGpu(options) {
67
68
  if (options?.installGlobals !== false && typeof loaded.globals === "object" && loaded.globals !== null) {
68
69
  Object.assign(globalThis, loaded.globals);
69
70
  }
70
- let gpu;
71
- try {
72
- gpu = loaded.create(dawnFlags(options));
73
- } catch (err) {
74
- const reason = `dawn.create() threw: ${messageOf(err)}`;
75
- throw new WebGpuGraphError("E_NO_WEBGPU", `${reason}; ${INSTALL_HINT}`, { reason, hint: INSTALL_HINT });
71
+ const flags = dawnFlags(options);
72
+ const key = flags.join("\n");
73
+ let byFlags = instances.get(loaded);
74
+ if (byFlags === void 0) {
75
+ byFlags = /* @__PURE__ */ new Map();
76
+ instances.set(loaded, byFlags);
77
+ }
78
+ let gpu = byFlags.get(key);
79
+ if (gpu === void 0) {
80
+ try {
81
+ gpu = loaded.create(flags);
82
+ } catch (err) {
83
+ const reason = `dawn.create() threw: ${messageOf(err)}`;
84
+ throw new WebGpuGraphError("E_NO_WEBGPU", `${reason}; ${INSTALL_HINT}`, { reason, hint: INSTALL_HINT });
85
+ }
86
+ byFlags.set(key, gpu);
76
87
  }
77
88
  return new DawnHandle(gpu);
78
89
  }
@@ -97,11 +108,8 @@ async function createNodeGpuContext(options) {
97
108
  handle.dispose();
98
109
  throw err;
99
110
  }
100
- const { lost } = ctx;
101
111
  ctx.attachDisposer(() => {
102
- void lost.then(() => {
103
- handle.dispose();
104
- });
112
+ handle.dispose();
105
113
  });
106
114
  return ctx;
107
115
  }
package/dist/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sources":["../src/node/index.ts"],"sourcesContent":["/// <reference types=\"@webgpu/types\" preserve=\"true\" />\n/**\n * The ./node entry (spec 2.1, 2.3, 3.4; contract 3.7): Dawn through the optional peer dependency `webgpu`. The\n * ONLY file of the package that names the \"webgpu\" module, and only inside `await import(\"webgpu\")` in a\n * function body, so the root and browser bundles never carry the specifier (spec 2.5; test/build-output.test.ts,\n * test/layers.test.ts). P0-T3 wrote createNodeGpu, dawnFlags and their types; P1-T1 adds createNodeGpuContext,\n * probeNodeWebGpu and the `extends Omit<GpuContextOptions, ...>` clause of NodeGpuOptions.\n *\n * Rule of spec 2.5 item 5 (also in CLAUDE.md): \"./node\" is imported only by Node entry points and tests.\n */\n\nimport { GpuContext } from \"../context.js\";\nimport { WebGpuGraphError } from \"../errors.js\";\nimport type { GpuContextOptions, ProbeResult } from \"../types/context.js\";\n\n/** Options of the Node helpers (spec 3.4). */\nexport interface NodeGpuOptions extends Omit<GpuContextOptions, \"gpu\" | \"adapter\" | \"device\" | \"runtime\"> {\n /** Dawn `adapter=<substring>`: a substring of the adapter name (`llvmpipe`, `4070`); an empty string is ignored; wins over `software`. */\n readonly adapter?: string | undefined;\n /** Dawn `backend=<name>`; `null` compiles pipelines and runs nothing (spec 5.1; the compile tests use it). */\n readonly backend?: \"vulkan\" | \"d3d12\" | \"d3d11\" | \"metal\" | \"opengl\" | \"opengles\" | \"null\" | undefined;\n /** Dawn toggles, emitted as `enable-dawn-features=a,b`. */\n readonly dawnFeatures?: readonly string[] | undefined;\n /** Shorthand for `adapter=llvmpipe` (Linux / Mesa specific, spec 2.3); ignored when `adapter` is given. */\n readonly software?: boolean | undefined;\n /** Install dawn.globals on globalThis (default true; spec 2.1 rule 2) so user code sees GPUBufferUsage and friends. */\n readonly installGlobals?: boolean | undefined;\n /**\n * Test seam: replaces `() => import(\"webgpu\")` so a missing / broken module can be simulated.\n * @internal\n */\n readonly loadModule?: (() => Promise<unknown>) | undefined;\n}\n\n/** The Dawn GPU handle (spec 2.3): dispose() drops the reference so the process can exit. */\nexport interface NodeGpuHandle {\n /** The GPU of `dawn.create(flags)`; reading it after dispose() throws E_DISPOSED. */\n readonly gpu: GPU;\n /** Drops the GPU reference; idempotent. */\n dispose(): void;\n}\n\n/** The install hint of E_NO_WEBGPU (spec 2.5 item 4); P-ENV re-pins the version together with the devDependency. */\nconst INSTALL_HINT = \"install the optional peer dependency webgpu@0.4.0\";\n\n/** The shape of the `webgpu` module (its types.d.ts: create(options: string[]): GPU; globals: Object). */\ninterface DawnModule {\n create(options: string[]): GPU;\n globals?: unknown;\n}\n\n/**\n * Whether a loaded module is usable as Dawn.\n * @param loaded - the module namespace\n * @returns true when it has a create() function\n */\nfunction isDawnModule(loaded: unknown): loaded is DawnModule {\n return (\n typeof loaded === \"object\" && loaded !== null && typeof (loaded as { create?: unknown }).create === \"function\"\n );\n}\n\n/**\n * The message of a thrown value.\n * @param err - what was caught\n * @returns the Error message, or the value as a string\n */\nfunction messageOf(err: unknown): string {\n return err instanceof Error ? err.message : String(err);\n}\n\n/** The handle returned by createNodeGpu(): `gpu` is a getter so dispose() can drop the reference. */\nclass DawnHandle implements NodeGpuHandle {\n private ref: GPU | null;\n\n /**\n * Wraps a GPU object.\n * @param gpu - the object dawn.create() returned\n */\n constructor(gpu: GPU) {\n this.ref = gpu;\n }\n\n /**\n * The GPU object; E_DISPOSED after dispose().\n * @returns the GPU object\n */\n get gpu(): GPU {\n if (this.ref === null) {\n throw new WebGpuGraphError(\"E_DISPOSED\", \"the Dawn GPU handle was disposed\", { label: \"NodeGpuHandle\" });\n }\n return this.ref;\n }\n\n /** Drops the reference; idempotent. */\n dispose(): void {\n this.ref = null;\n }\n}\n\n/**\n * The Dawn flag list a NodeGpuOptions maps to (exported for the tests and scripts/gpu-report.js):\n * adapter=<s>, backend=<s>, enable-dawn-features=a,b, and software -> adapter=llvmpipe; an explicit non-empty\n * `adapter` wins over `software`; an empty feature list emits nothing.\n * @param options - the Node options, or undefined for no flags\n * @returns the strings for dawn.create(), in the order adapter, backend, features\n */\nexport function dawnFlags(options: NodeGpuOptions | undefined): string[] {\n const flags: string[] = [];\n if (options === undefined) {\n return flags;\n }\n if (options.adapter !== undefined && options.adapter !== \"\") {\n flags.push(`adapter=${options.adapter}`);\n } else if (options.software === true) {\n flags.push(\"adapter=llvmpipe\");\n }\n if (options.backend !== undefined) {\n flags.push(`backend=${options.backend}`);\n }\n if (options.dawnFeatures !== undefined && options.dawnFeatures.length > 0) {\n flags.push(`enable-dawn-features=${options.dawnFeatures.join(\",\")}`);\n }\n return flags;\n}\n\n/**\n * import(\"webgpu\"), install dawn.globals unless installGlobals === false, dawn.create(flags) (spec 2.3).\n * @param options - adapter / backend / dawnFeatures / software / installGlobals (and the test seam)\n * @returns the handle; `dispose()` drops the GPU reference so the process can exit\n * @throws WebGpuGraphError E_NO_WEBGPU { reason, hint } when the module does not load (missing, or its glibc is too old), has no create(), or create(flags) throws\n */\nexport async function createNodeGpu(options?: NodeGpuOptions): Promise<NodeGpuHandle> {\n const load = options?.loadModule ?? ((): Promise<unknown> => import(\"webgpu\"));\n let loaded: unknown;\n try {\n loaded = await load();\n } catch (err) {\n const reason = messageOf(err);\n throw new WebGpuGraphError(\n \"E_NO_WEBGPU\",\n `the webgpu (Dawn) native module did not load: ${reason}; ${INSTALL_HINT}`,\n { reason, hint: INSTALL_HINT },\n );\n }\n if (!isDawnModule(loaded)) {\n const reason = \"the webgpu module exports no create() function\";\n throw new WebGpuGraphError(\"E_NO_WEBGPU\", `${reason}; ${INSTALL_HINT}`, { reason, hint: INSTALL_HINT });\n }\n if (options?.installGlobals !== false && typeof loaded.globals === \"object\" && loaded.globals !== null) {\n Object.assign(globalThis, loaded.globals);\n }\n let gpu: GPU;\n try {\n gpu = loaded.create(dawnFlags(options));\n } catch (err) {\n const reason = `dawn.create() threw: ${messageOf(err)}`;\n throw new WebGpuGraphError(\"E_NO_WEBGPU\", `${reason}; ${INSTALL_HINT}`, { reason, hint: INSTALL_HINT });\n }\n return new DawnHandle(gpu);\n}\n\n/**\n * The GpuContextOptions part of a NodeGpuOptions, copied key by key so the Node-only `adapter` string never\n * reaches GpuContext.create as a GPUAdapter.\n * @param options - the Node options\n * @returns the context options without gpu / adapter / device / runtime\n */\nfunction contextOptionsOf(options: NodeGpuOptions): Omit<GpuContextOptions, \"gpu\" | \"adapter\" | \"device\" | \"runtime\"> {\n return {\n powerPreference: options.powerPreference,\n rejectSoftware: options.rejectSoftware,\n limits: options.limits,\n optionalFeatures: options.optionalFeatures,\n requiredFeatures: options.requiredFeatures,\n label: options.label,\n onError: options.onError,\n warnUnreleasedSnapshots: options.warnUnreleasedSnapshots,\n };\n}\n\n/**\n * createNodeGpu + GpuContext.create({ gpu, runtime: \"node\", ...options }); ctx.dispose() also disposes the\n * handle, and a create() failure disposes it before rethrowing. The handle is dropped once `ctx.lost` has\n * settled, never before: under webgpu@0.4.0 a GPU object collected while the device it created is still\n * tearing down (its lost / work-done callbacks in flight) crashes or deadlocks the process (PLAN DECISION,\n * P1-T1; measured with tmp/p1t1/gc-race2.mjs), and device.destroy() reports the loss right away.\n * @param options - the Node options\n * @returns the context\n */\nexport async function createNodeGpuContext(options?: NodeGpuOptions): Promise<GpuContext> {\n const handle = await createNodeGpu(options);\n let ctx: GpuContext;\n try {\n ctx = await GpuContext.create({ ...contextOptionsOf(options ?? {}), gpu: handle.gpu, runtime: \"node\" });\n } catch (err) {\n handle.dispose();\n throw err;\n }\n const { lost } = ctx;\n ctx.attachDisposer(() => {\n void lost.then(() => {\n handle.dispose();\n });\n });\n return ctx;\n}\n\n/**\n * createNodeGpu + GpuContext.probe + dispose; never throws (a load failure is { code: \"E_NO_WEBGPU\" }).\n * @param options - the Node options\n * @returns the probe result\n */\nexport async function probeNodeWebGpu(options?: NodeGpuOptions): Promise<ProbeResult> {\n let handle: NodeGpuHandle;\n try {\n handle = await createNodeGpu(options);\n } catch (err) {\n return { ok: false, code: \"E_NO_WEBGPU\", reason: messageOf(err), adapter: null, summary: null };\n }\n try {\n return await GpuContext.probe({\n gpu: handle.gpu,\n powerPreference: options?.powerPreference ?? \"high-performance\",\n rejectSoftware: options?.rejectSoftware,\n });\n } finally {\n handle.dispose();\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.js","sources":["../src/node/index.ts"],"sourcesContent":["/// <reference types=\"@webgpu/types\" preserve=\"true\" />\n/**\n * The ./node entry (spec 2.1, 2.3, 3.4; contract 3.7): Dawn through the optional peer dependency `webgpu`. The\n * ONLY file of the package that names the \"webgpu\" module, and only inside `await import(\"webgpu\")` in a\n * function body, so the root and browser bundles never carry the specifier (spec 2.5; test/build-output.test.ts,\n * test/layers.test.ts). P0-T3 wrote createNodeGpu, dawnFlags and their types; P1-T1 adds createNodeGpuContext,\n * probeNodeWebGpu and the `extends Omit<GpuContextOptions, ...>` clause of NodeGpuOptions.\n *\n * Rule of spec 2.5 item 5 (also in CLAUDE.md): \"./node\" is imported only by Node entry points and tests.\n */\n\nimport { GpuContext } from \"../context.js\";\nimport { WebGpuGraphError } from \"../errors.js\";\nimport type { GpuContextOptions, ProbeResult } from \"../types/context.js\";\n\n/** Options of the Node helpers (spec 3.4). */\nexport interface NodeGpuOptions extends Omit<GpuContextOptions, \"gpu\" | \"adapter\" | \"device\" | \"runtime\"> {\n /** Dawn `adapter=<substring>`: a substring of the adapter name (`llvmpipe`, `4070`); an empty string is ignored; wins over `software`. */\n readonly adapter?: string | undefined;\n /** Dawn `backend=<name>`; `null` compiles pipelines and runs nothing (spec 5.1; the compile tests use it). */\n readonly backend?: \"vulkan\" | \"d3d12\" | \"d3d11\" | \"metal\" | \"opengl\" | \"opengles\" | \"null\" | undefined;\n /** Dawn toggles, emitted as `enable-dawn-features=a,b`. */\n readonly dawnFeatures?: readonly string[] | undefined;\n /** Shorthand for `adapter=llvmpipe` (Linux / Mesa specific, spec 2.3); ignored when `adapter` is given. */\n readonly software?: boolean | undefined;\n /** Install dawn.globals on globalThis (default true; spec 2.1 rule 2) so user code sees GPUBufferUsage and friends. */\n readonly installGlobals?: boolean | undefined;\n /**\n * Test seam: replaces `() => import(\"webgpu\")` so a missing / broken module can be simulated.\n * @internal\n */\n readonly loadModule?: (() => Promise<unknown>) | undefined;\n}\n\n/**\n * The Dawn GPU handle (spec 2.3). The Dawn instance behind `gpu` is shared by every handle created with the\n * same flags and lives until the process exits (see `createNodeGpu`); it holds no event-loop handle, so it\n * never keeps the process alive.\n */\nexport interface NodeGpuHandle {\n /** The GPU of `dawn.create(flags)`; reading it after dispose() throws E_DISPOSED. */\n readonly gpu: GPU;\n /** Drops this handle's GPU reference (the shared instance stays alive); idempotent. */\n dispose(): void;\n}\n\n/** The install hint of E_NO_WEBGPU (spec 2.5 item 4); P-ENV re-pins the version together with the devDependency. */\nconst INSTALL_HINT = \"install the optional peer dependency webgpu@0.4.0\";\n\n/** The shape of the `webgpu` module (its types.d.ts: create(options: string[]): GPU; globals: Object). */\ninterface DawnModule {\n create(options: string[]): GPU;\n globals?: unknown;\n}\n\n/**\n * Every GPU object `dawn.create()` returned, per module and flag list, kept for the life of the process.\n * webgpu@0.4.0's adapters, devices and queues run their promises through an AsyncRunner that polls the Dawn\n * instance by RAW pointer, and only the GPU object owns that instance: once the GPU object is collected, the\n * next promise on any adapter or device it produced (a requestDevice on a probed adapter, a queue call or a\n * late map / lost callback of a destroyed device) polls freed memory -- SIGSEGV in\n * dawn::native::InstanceBase::ProcessEvents, on Metal and lavapipe alike (issue #30). dawn-node signals no\n * point at which the instance has drained, so no GPU object is ever released; sharing one per flag list\n * bounds what that keeps to one instance per configuration.\n */\nconst instances = new Map<DawnModule, Map<string, GPU>>();\n\n/**\n * Whether a loaded module is usable as Dawn.\n * @param loaded - the module namespace\n * @returns true when it has a create() function\n */\nfunction isDawnModule(loaded: unknown): loaded is DawnModule {\n return (\n typeof loaded === \"object\" && loaded !== null && typeof (loaded as { create?: unknown }).create === \"function\"\n );\n}\n\n/**\n * The message of a thrown value.\n * @param err - what was caught\n * @returns the Error message, or the value as a string\n */\nfunction messageOf(err: unknown): string {\n return err instanceof Error ? err.message : String(err);\n}\n\n/** The handle returned by createNodeGpu(): `gpu` is a getter so dispose() can drop the reference. */\nclass DawnHandle implements NodeGpuHandle {\n private ref: GPU | null;\n\n /**\n * Wraps a GPU object.\n * @param gpu - the object dawn.create() returned\n */\n constructor(gpu: GPU) {\n this.ref = gpu;\n }\n\n /**\n * The GPU object; E_DISPOSED after dispose().\n * @returns the GPU object\n */\n get gpu(): GPU {\n if (this.ref === null) {\n throw new WebGpuGraphError(\"E_DISPOSED\", \"the Dawn GPU handle was disposed\", { label: \"NodeGpuHandle\" });\n }\n return this.ref;\n }\n\n /** Drops the reference; idempotent. */\n dispose(): void {\n this.ref = null;\n }\n}\n\n/**\n * The Dawn flag list a NodeGpuOptions maps to (exported for the tests and scripts/gpu-report.js):\n * adapter=<s>, backend=<s>, enable-dawn-features=a,b, and software -> adapter=llvmpipe; an explicit non-empty\n * `adapter` wins over `software`; an empty feature list emits nothing.\n * @param options - the Node options, or undefined for no flags\n * @returns the strings for dawn.create(), in the order adapter, backend, features\n */\nexport function dawnFlags(options: NodeGpuOptions | undefined): string[] {\n const flags: string[] = [];\n if (options === undefined) {\n return flags;\n }\n if (options.adapter !== undefined && options.adapter !== \"\") {\n flags.push(`adapter=${options.adapter}`);\n } else if (options.software === true) {\n flags.push(\"adapter=llvmpipe\");\n }\n if (options.backend !== undefined) {\n flags.push(`backend=${options.backend}`);\n }\n if (options.dawnFeatures !== undefined && options.dawnFeatures.length > 0) {\n flags.push(`enable-dawn-features=${options.dawnFeatures.join(\",\")}`);\n }\n return flags;\n}\n\n/**\n * import(\"webgpu\"), install dawn.globals unless installGlobals === false, dawn.create(flags) (spec 2.3). The GPU\n * object is created once per flag list and reused by every later call with the same flags; it is never released,\n * because Dawn keeps polling its instance for the adapters and devices it produced (issue #30).\n * @param options - adapter / backend / dawnFeatures / software / installGlobals (and the test seam)\n * @returns the handle; `dispose()` drops the handle's reference, never the shared instance\n * @throws WebGpuGraphError E_NO_WEBGPU { reason, hint } when the module does not load (missing, or its glibc is too old), has no create(), or create(flags) throws\n */\nexport async function createNodeGpu(options?: NodeGpuOptions): Promise<NodeGpuHandle> {\n const load = options?.loadModule ?? ((): Promise<unknown> => import(\"webgpu\"));\n let loaded: unknown;\n try {\n loaded = await load();\n } catch (err) {\n const reason = messageOf(err);\n throw new WebGpuGraphError(\n \"E_NO_WEBGPU\",\n `the webgpu (Dawn) native module did not load: ${reason}; ${INSTALL_HINT}`,\n { reason, hint: INSTALL_HINT },\n );\n }\n if (!isDawnModule(loaded)) {\n const reason = \"the webgpu module exports no create() function\";\n throw new WebGpuGraphError(\"E_NO_WEBGPU\", `${reason}; ${INSTALL_HINT}`, { reason, hint: INSTALL_HINT });\n }\n if (options?.installGlobals !== false && typeof loaded.globals === \"object\" && loaded.globals !== null) {\n Object.assign(globalThis, loaded.globals);\n }\n const flags = dawnFlags(options);\n const key = flags.join(\"\\n\");\n let byFlags = instances.get(loaded);\n if (byFlags === undefined) {\n byFlags = new Map();\n instances.set(loaded, byFlags);\n }\n let gpu = byFlags.get(key);\n if (gpu === undefined) {\n try {\n gpu = loaded.create(flags);\n } catch (err) {\n const reason = `dawn.create() threw: ${messageOf(err)}`;\n throw new WebGpuGraphError(\"E_NO_WEBGPU\", `${reason}; ${INSTALL_HINT}`, { reason, hint: INSTALL_HINT });\n }\n byFlags.set(key, gpu);\n }\n return new DawnHandle(gpu);\n}\n\n/**\n * The GpuContextOptions part of a NodeGpuOptions, copied key by key so the Node-only `adapter` string never\n * reaches GpuContext.create as a GPUAdapter.\n * @param options - the Node options\n * @returns the context options without gpu / adapter / device / runtime\n */\nfunction contextOptionsOf(options: NodeGpuOptions): Omit<GpuContextOptions, \"gpu\" | \"adapter\" | \"device\" | \"runtime\"> {\n return {\n powerPreference: options.powerPreference,\n rejectSoftware: options.rejectSoftware,\n limits: options.limits,\n optionalFeatures: options.optionalFeatures,\n requiredFeatures: options.requiredFeatures,\n label: options.label,\n onError: options.onError,\n warnUnreleasedSnapshots: options.warnUnreleasedSnapshots,\n };\n}\n\n/**\n * createNodeGpu + GpuContext.create({ gpu, runtime: \"node\", ...options }); ctx.dispose() also disposes the\n * handle, and a create() failure disposes it before rethrowing. Disposing is safe at any moment: the Dawn\n * instance itself stays alive for the process (createNodeGpu), so a callback of the destroyed device that\n * arrives late, or a call on `ctx.device` after dispose(), never reaches a freed instance.\n * @param options - the Node options\n * @returns the context\n */\nexport async function createNodeGpuContext(options?: NodeGpuOptions): Promise<GpuContext> {\n const handle = await createNodeGpu(options);\n let ctx: GpuContext;\n try {\n ctx = await GpuContext.create({ ...contextOptionsOf(options ?? {}), gpu: handle.gpu, runtime: \"node\" });\n } catch (err) {\n handle.dispose();\n throw err;\n }\n ctx.attachDisposer(() => {\n handle.dispose();\n });\n return ctx;\n}\n\n/**\n * createNodeGpu + GpuContext.probe + dispose; never throws (a load failure is { code: \"E_NO_WEBGPU\" }).\n * @param options - the Node options\n * @returns the probe result\n */\nexport async function probeNodeWebGpu(options?: NodeGpuOptions): Promise<ProbeResult> {\n let handle: NodeGpuHandle;\n try {\n handle = await createNodeGpu(options);\n } catch (err) {\n return { ok: false, code: \"E_NO_WEBGPU\", reason: messageOf(err), adapter: null, summary: null };\n }\n try {\n return await GpuContext.probe({\n gpu: handle.gpu,\n powerPreference: options?.powerPreference ?? \"high-performance\",\n rejectSoftware: options?.rejectSoftware,\n });\n } finally {\n handle.dispose();\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pagerank.d.ts","sourceRoot":"","sources":["../../../src/algorithms/pagerank.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGrE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAUhD,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEtF,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA6PrD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACpB,GAAG,EAAE,UAAU,EACf,CAAC,EAAE,aAAa,EAChB,OAAO,CAAC,EAAE,eAAe,GAAG,aAAa,GAC1C,OAAO,CAAC,iBAAiB,CAAC,CAE5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACtC,GAAG,EAAE,UAAU,EACf,CAAC,EAAE,aAAa,EAChB,eAAe,EAAE,GAAG,EACpB,OAAO,CAAC,EAAE,eAAe,GAAG,aAAa,GAC1C,OAAO,CAAC,iBAAiB,CAAC,CA8B5B"}
1
+ {"version":3,"file":"pagerank.d.ts","sourceRoot":"","sources":["../../../src/algorithms/pagerank.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGrE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAUhD,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEtF,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA2QrD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACpB,GAAG,EAAE,UAAU,EACf,CAAC,EAAE,aAAa,EAChB,OAAO,CAAC,EAAE,eAAe,GAAG,aAAa,GAC1C,OAAO,CAAC,iBAAiB,CAAC,CAE5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACtC,GAAG,EAAE,UAAU,EACf,CAAC,EAAE,aAAa,EAChB,eAAe,EAAE,GAAG,EACpB,OAAO,CAAC,EAAE,eAAe,GAAG,aAAa,GAC1C,OAAO,CAAC,iBAAiB,CAAC,CA8B5B"}
@@ -25,8 +25,8 @@ import { assertDeviceComputes } from "../primitives/verify.js";
25
25
  import { algorithmScope } from "./scope.js";
26
26
  /** Iterations per submit (spec 8.2: k = 8). */
27
27
  const PR_BATCH = 8;
28
- /** Params slots of one batch: per iteration one PrParams (shared by pr-scale and pr-finalize) and one SpmvParams, plus the normaliser's RangeParams; a smaller ring wraps onto a slot the same batch still reads. */
29
- const RING_SLOTS = 2 * PR_BATCH + 1;
28
+ /** Params slots of one batch: per iteration one PrParams (shared by pr-scale and pr-finalize) and one SpmvParams, plus the normaliser's RangeParams and the last batch's convergence check; a smaller ring wraps onto a slot the same batch still reads. */
29
+ const RING_SLOTS = 2 * PR_BATCH + 2;
30
30
  /**
31
31
  * Validates `options.dest` for a score result of `n` elements.
32
32
  * @param dest - the caller's destination array, if any
@@ -148,6 +148,8 @@ async function run(ctx, s, personalization, options, algorithm) {
148
148
  const groups = groupsOf(scalePlan);
149
149
  const partialsBytes = PR_PARTIAL.byteLength * (1 + groups);
150
150
  const partials = scope.scratch(partialsBytes, "partials");
151
+ // the header as the last pull left it, before the convergence check of the last batch overwrites danglingMass
152
+ const lastHeader = scope.scratch(PR_PARTIAL.byteLength, "lastHeader");
151
153
  if (personalization !== null) {
152
154
  uploaded = ctx.residency.array(personalization, `${algorithm}/personalization`);
153
155
  }
@@ -176,17 +178,21 @@ async function run(ctx, s, personalization, options, algorithm) {
176
178
  const xNormBinding = bindingOf(xNorm, bytes);
177
179
  const outWeightSumBinding = bindingOf(outWeightSum, bytes);
178
180
  const partialsBinding = bindingOf(partials, partialsBytes);
181
+ const lastHeaderBinding = bindingOf(lastHeader, PR_PARTIAL.byteLength);
179
182
  const coefficients = { alpha, beta: 1 - alpha, uniformP: 1 / n };
180
183
  let cur = 0;
181
184
  let iterationsRun = 0;
182
185
  for (;;) {
183
186
  const k = Math.min(PR_BATCH, maxIterations - iterationsRun);
184
187
  const batch = new CommandBatch(ctx, algorithm);
185
- const pass = batch.pass("iterations");
188
+ let pass = batch.pass("iterations");
186
189
  if (iterationsRun === 0) {
187
190
  normaliser.record(pass, weightedCore, outWeightSumBinding);
188
191
  }
189
- for (let i = 0; i < k; i++) {
192
+ const last = iterationsRun + k === maxIterations;
193
+ // the scale + finalize of iteration i measures the error of iteration i - 1 (PD-9), so the last batch
194
+ // runs them once more, with no pull, to measure the error of iteration maxIterations itself
195
+ for (let i = 0; i < k + (last ? 1 : 0); i++) {
190
196
  const params = scope.params(PR_PARAMS, {
191
197
  n,
192
198
  groups,
@@ -195,6 +201,10 @@ async function run(ctx, s, personalization, options, algorithm) {
195
201
  convergeThreshold: tolerance * n,
196
202
  });
197
203
  const other = 1 - cur;
204
+ if (i === k) {
205
+ batch.copy(partialsBinding, lastHeaderBinding, PR_PARTIAL.byteLength);
206
+ pass = batch.pass("convergence");
207
+ }
198
208
  const scaleBound = scale.bind({
199
209
  rankIn: rank[cur],
200
210
  rankPrev: rank[other],
@@ -206,6 +216,9 @@ async function run(ctx, s, personalization, options, algorithm) {
206
216
  scale.dispatch(pass, scaleBound, scalePlan, [params.offset]);
207
217
  const finalizeBound = finalize.bind({ partials: partialsBinding, P: params.binding });
208
218
  finalize.dispatch(pass, finalizeBound, finalizePlan, [params.offset]);
219
+ if (i === k) {
220
+ break;
221
+ }
209
222
  pull.record(pass, weightedRev, {
210
223
  xNorm: xNormBinding,
211
224
  rankOut: rank[other],
@@ -216,6 +229,7 @@ async function run(ctx, s, personalization, options, algorithm) {
216
229
  }
217
230
  batch.endPass();
218
231
  const headerRequest = batch.readback(partials, 0, PR_PARTIAL.byteLength);
232
+ const lastHeaderRequest = last ? batch.readback(lastHeader, 0, PR_PARTIAL.byteLength) : headerRequest;
219
233
  const scoresRequest = batch.readback(rank[cur].buffer, 0, bytes);
220
234
  scope.flush();
221
235
  const submitted = batch.submit();
@@ -239,7 +253,7 @@ async function run(ctx, s, personalization, options, algorithm) {
239
253
  scores,
240
254
  iterations: converged ? firstConverged : iterationsRun,
241
255
  converged,
242
- danglingMass: folded.danglingMass,
256
+ danglingMass: PR_PARTIAL.read(new DataView(back), lastHeaderRequest.offset).danglingMass,
243
257
  precision: "f32",
244
258
  };
245
259
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pagerank.js","sourceRoot":"","sources":["../../../src/algorithms/pagerank.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pagerank.js","sourceRoot":"","sources":["../../../src/algorithms/pagerank.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"power-iteration.d.ts","sourceRoot":"","sources":["../../../src/algorithms/power-iteration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGrE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIhD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAI1D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAQlD;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACjC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wGAAwG;IACxG,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC5E;AAED,6GAA6G;AAC7G,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,qHAAqH;IACrH,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAgBhH;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAIxF;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,GAAG,WAAW,CAGxE;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAM7E;AAYD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CACnC,GAAG,EAAE,UAAU,EACf,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC,CA0G5B"}
1
+ {"version":3,"file":"power-iteration.d.ts","sourceRoot":"","sources":["../../../src/algorithms/power-iteration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGrE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIhD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAI1D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAQlD;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACjC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wGAAwG;IACxG,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC5E;AAED,6GAA6G;AAC7G,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,qHAAqH;IACrH,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAgBhH;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAIxF;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,GAAG,WAAW,CAGxE;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAM7E;AAYD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CACnC,GAAG,EAAE,UAAU,EACf,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC,CAgH5B"}
@@ -26,7 +26,7 @@ import { assertDeviceComputes } from "../primitives/verify.js";
26
26
  import { algorithmScope } from "./scope.js";
27
27
  /** Iterations per submit (spec 8.2: k = 8). */
28
28
  const BATCH = 8;
29
- /** Params slots of one batch: four blocks per iteration times the batch, plus a margin (the plan's `4 * 8 + 8`). */
29
+ /** Params slots of one batch: four blocks per iteration times the batch, plus a margin (the plan's `4 * 8 + 8`) that also holds the last batch's convergence check. */
30
30
  const RING_SLOTS = 4 * BATCH + 8;
31
31
  /**
32
32
  * Validates `options.dest` for a score result of `n` elements.
@@ -140,7 +140,10 @@ export async function runPowerIteration(ctx, n, config) {
140
140
  const k = Math.min(BATCH, config.maxIterations - iterationsRun);
141
141
  const batch = new CommandBatch(ctx, config.label);
142
142
  const pass = batch.pass("iterations");
143
- for (let i = 0; i < k; i++) {
143
+ // the scale + finalize of iteration i measures the error of iteration i - 1 (PD-9), so the last batch
144
+ // runs them once more, with no apply and no pull, to measure the error of iteration maxIterations itself
145
+ const last = iterationsRun + k === config.maxIterations;
146
+ for (let i = 0; i < k + (last ? 1 : 0); i++) {
144
147
  const iteration = iterationsRun + i + 1;
145
148
  const params = scope.params(PR_PARAMS, {
146
149
  n,
@@ -164,6 +167,9 @@ export async function runPowerIteration(ctx, n, config) {
164
167
  };
165
168
  scaleNorm.dispatch(pass, scaleNorm.bind(scaleBindings), scalePlan, [params.offset]);
166
169
  finalize.dispatch(pass, finalize.bind({ partials, P: params.binding }), finalizePlan, [params.offset]);
170
+ if (i === k) {
171
+ break;
172
+ }
167
173
  if (scaleApply !== null) {
168
174
  scaleApply.dispatch(pass, scaleApply.bind(scaleBindings), scalePlan, [params.offset]);
169
175
  }
@@ -1 +1 @@
1
- {"version":3,"file":"power-iteration.js","sourceRoot":"","sources":["../../../src/algorithms/power-iteration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"power-iteration.js","sourceRoot":"","sources":["../../../src/algorithms/power-iteration.ts"],"names":[],"mappings":"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"}
@@ -379,7 +379,9 @@ export class GraphResidency {
379
379
  });
380
380
  }
381
381
  /**
382
- * One resident per array (spec 4.3: views upload in perArray mode, never into the arena).
382
+ * One resident per array (spec 4.3: views upload in perArray mode, never into the arena). An empty array (the
383
+ * colIdx of an edgeless directed reverse view, the src / dst of an edgeless edgeList) is skipped: spec 5.6 never
384
+ * uploads a zero-length array, and Kernel.bind rejects a zero-size binding, so it is absent as in core().
383
385
  * @param record - the owning record
384
386
  * @param arrays - the named arrays
385
387
  * @param label - the buffer label prefix
@@ -388,6 +390,9 @@ export class GraphResidency {
388
390
  separateArrays(record, arrays, label) {
389
391
  const bindings = {};
390
392
  for (const [name, array] of arrays) {
393
+ if (array.byteLength === 0) {
394
+ continue;
395
+ }
391
396
  const resident = this.upload(record, array, array, `${label}:${name}`);
392
397
  bindings[name] = { buffer: resident.buffer, offset: 0, size: resident.byteLength, window: null };
393
398
  }
@@ -401,14 +406,19 @@ export class GraphResidency {
401
406
  * lengths, so keying the packed buffer on `rev.rowPtr` would make the packed and the unpacked view of one
402
407
  * snapshot collide -- whichever was built second would get the other's buffer. The record still owns the
403
408
  * resident, so release(s) destroys it with the rest. Offsets are STORAGE_ALIGN-aligned because Kernel.bind
404
- * rejects any other offset synchronously (E_INVALID_ARGUMENT { argument: "offset" }).
409
+ * rejects any other offset synchronously (E_INVALID_ARGUMENT { argument: "offset" }). Empty arrays are left
410
+ * out as in separateArrays; when nothing is left, nothing is uploaded.
405
411
  * @param record - the owning record
406
- * @param arrays - the named arrays, in buffer order
412
+ * @param all - the named arrays, in buffer order
407
413
  * @param key - the marker object the resident is keyed on
408
414
  * @param label - the buffer label
409
415
  * @returns the bindings by name, all into the one buffer
410
416
  */
411
- packArrays(record, arrays, key, label) {
417
+ packArrays(record, all, key, label) {
418
+ const arrays = all.filter(([, array]) => array.byteLength > 0);
419
+ if (arrays.length === 0) {
420
+ return Object.freeze({});
421
+ }
412
422
  const offsets = [];
413
423
  let total = 0;
414
424
  for (const [, array] of arrays) {
@@ -1 +1 @@
1
- {"version":3,"file":"residency.js","sourceRoot":"","sources":["../../../src/memory/residency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAWH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,kHAAkH;AAClH,MAAM,YAAY,GAA6B,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAE9F,yDAAyD;AACzD,MAAM,UAAU,GAA6B,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;AAEtH,qHAAqH;AACrH,MAAM,WAAW,GAAoD,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AAEvH,sHAAsH;AACtH,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;AAsIzF;;;;GAIG;AACH,SAAS,YAAY,CAAC,IAAmB;IACrC,OAAQ,WAAwC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,MAAuB;IAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,4BAA4B,CAAC;AACnF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,OAAO,CAAC,QAAgB,EAAE,KAAc,EAAE,QAAgB;IAC/D,OAAO,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,GAAG,QAAQ,cAAc,QAAQ,EAAE,EAAE;QACnF,QAAQ;QACR,KAAK;QACL,QAAQ;KACX,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,CAAgB;IACpC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,gBAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,MAAM,8CAA8C,EAAE;YACzG,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,CAAC,CAAC,MAAM;SACnB,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,SAAS,CAAC,CAAgB,EAAE,IAAmB;IACpD,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,QAAQ;YACT,OAAO,IAAI,CAAC;QAChB,KAAK,QAAQ;YACT,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC1B,KAAK,SAAS;YACV,OAAO,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC9C,KAAK,WAAW;YACZ,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC1D,KAAK,WAAW;YACZ,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;QAC3D;YACI,OAAO,KAAK,CAAC;IACrB,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,CAAgB,EAAE,IAAmB;IACpD,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,QAAQ;YACT,OAAO,CAAC,CAAC,MAAM,CAAC;QACpB,KAAK,QAAQ;YACT,OAAO,CAAC,CAAC,MAAM,CAAC;QACpB,KAAK,SAAS,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YACtB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,KAAK,WAAW;YACZ,OAAO,CAAC,CAAC,SAAS,CAAC;QACvB,KAAK,WAAW;YACZ,OAAO,CAAC,CAAC,SAAS,CAAC;QACvB;YACI,MAAM,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACzD,CAAC;AACL,CAAC;AAED,iJAAiJ;AACjJ,MAAM,OAAO,cAAc;IAqBvB;;;;;;;;OAQG;IACH,YACI,MAAiB,EACjB,IAAc,EACd,SAA4B,EAC5B,OAA8G;QA5BlH,sEAAsE;QACrD,cAAS,GAAG,IAAI,OAAO,EAAoB,CAAC;QAC7D,qGAAqG;QACpF,YAAO,GAAG,IAAI,OAAO,EAAkC,CAAC;QACzE,6FAA6F;QAC5E,aAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;QAC/D,gCAAgC;QACf,YAAO,GAAG,IAAI,GAAG,EAAY,CAAC;QAC/C,4CAA4C;QAC3B,eAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QACxC,cAAS,GAAG,CAAC,CAAC;QACd,mBAAc,GAAG,CAAC,CAAC;QACnB,WAAM,GAAG,KAAK,CAAC;QACf,aAAQ,GAAG,KAAK,CAAC;QAiBrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC;QAC/D,IAAI,CAAC,IAAI;YACL,OAAO,CAAC,IAAI;gBACZ,CAAC,CAAC,OAAe,EAAQ,EAAE;oBACvB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;IACX,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,CAAC,CAAgB,EAAE,IAA+B;QAClD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,cAAc,CAAC,CAAC,CAAC,CAAC;QAClB,MAAM,MAAM,GAAG,IAAI,IAAI,YAAY,CAAC;QACpC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9G,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACxB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;gBACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CACxB,MAAM,EACN,CAAC,CAAC,MAAM,EACR,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,EAC1D,kBAAkB,MAAM,CAAC,MAAM,QAAQ,CAC1C,CAAC;gBACF,MAAM,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxE,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC3B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAClC,CAAC;QACL,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAChG,MAAM,CAAC,QAAQ,CAAC,GAAG,CACf,IAAI,EACJ,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC;oBAChG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACxE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CACvC,CAAC;YACN,CAAC;QACL,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,qCAAqC,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;QACvD,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM;YACN,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI;YAC7C,OAAO;YACP,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI;YACnD,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI;YACnD,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EACN,MAAM,CAAC,OAAO,KAAK,IAAI;gBACnB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBACV,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACnE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACrE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iBAC5E,CAAC;YACZ,UAAU,EAAE,OAAO,KAAK,IAAI;SAC/B,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;OAWG;IACH,IAAI,CACA,CAAgB,EAChB,IAA+G,EAC/G,OAAsD;QAEtD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,cAAc,CAAC,CAAC,CAAC,CAAC;QAClB,MAAM,MAAM,GAAG,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;QAC3C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YAC5C,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,MAAM,KAAK,GACP,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACtG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACjC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,IAAI,gBAAgB,CAAC,eAAe,EAAE,0DAA0D,EAAE;gBACpG,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE,OAAO,IAAI,yBAAyB;aAC7C,CAAC,CAAC;QACP,CAAC;QACD,IAAI,KAAqB,CAAC;QAC1B,IAAI,WAAmB,CAAC;QACxB,IAAI,OAAO,GAAgD,EAAE,CAAC;QAC9D,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,WAAW;gBACZ,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBACvB,KAAK,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;gBACtB,WAAW,GAAG,WAAW,CAAC;gBAC1B,MAAM;YACV,KAAK,UAAU;gBACX,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBACvB,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACrB,WAAW,GAAG,UAAU,CAAC;gBACzB,MAAM;YACV,KAAK,aAAa,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC9B,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;gBACnB,WAAW,GAAG,MAAM,CAAC;gBACrB,OAAO,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC/D,MAAM;YACV,CAAC;YACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC/C,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;gBACnB,WAAW,GAAG,MAAM,CAAC;gBACrB,OAAO,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC/D,MAAM;YACV,CAAC;YACD,KAAK,KAAK,CAAC;YACX,KAAK,MAAM;gBACP,MAAM,IAAI,gBAAgB,CAAC,eAAe,EAAE,OAAO,IAAI,kCAAkC,EAAE;oBACvF,OAAO,EAAE,QAAQ,IAAI,EAAE;oBACvB,IAAI,EAAE,yFAAyF;iBAClG,CAAC,CAAC;YACP;gBACI,MAAM,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;QAC9F,MAAM,OAAO,GAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACzG,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;YACnD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;SAClC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;OAUG;IACK,YAAY,CAAC,CAAgB,EAAE,MAAuB,EAAE,MAAe;QAC3E,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;YAC3D,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC3B,sGAAsG;gBACtG,MAAM,IAAI,gBAAgB,CACtB,aAAa,EACb,YAAY,CAAC,CAAC,MAAM,uEAAuE,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,yBAAyB,EAC7I;oBACI,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ;oBACtB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,2BAA2B;oBACnD,IAAI,EAAE,UAAU;oBAChB,SAAS,EAAE,IAAI;iBAClB,CACJ,CAAC;YACN,CAAC;YACD,MAAM,QAAQ,GAA4B,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAClE,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACvB,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAClC,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBACxB,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YACpC,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACjC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtE,CAAC,CAAC;QACP,CAAC;QACD,MAAM,MAAM,GAA+B;YACvC,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;YACtB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;SACzB,CAAC;QACF,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM;YACnB,CAAC,CAAC,IAAI,CAAC,UAAU,CACX,MAAM,EACN,MAAM,EACN,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACtC,kBAAkB,MAAM,CAAC,MAAM,iBAAiB,CACnD;YACH,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,kBAAkB,MAAM,CAAC,MAAM,UAAU,CAAC,CAAC;QACrF,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,SAAS;YACf,QAAQ;YACR,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtE,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;OAOG;IACK,aAAa,CAAC,CAAgB,EAAE,MAAuB,EAAE,MAAe;QAC5E,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1B,MAAM,MAAM,GAA+B;YACvC,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;YACjB,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;SACpB,CAAC;QACF,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM;YACnB,CAAC,CAAC,IAAI,CAAC,UAAU,CACX,MAAM,EACN,MAAM,EACN,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,EACvC,kBAAkB,MAAM,CAAC,MAAM,kBAAkB,CACpD;YACH,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,kBAAkB,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC;QACtF,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,UAAU;YAChB,QAAQ;YACR,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;SACvD,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACK,cAAc,CAClB,MAAuB,EACvB,MAAsD,EACtD,KAAa;QAEb,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;YACvE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACrG,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,UAAU,CACd,MAAuB,EACvB,MAAsD,EACtD,GAAW,EACX,KAAa;QAEb,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAC,GAAG,aAAa,CAAC;QACzE,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE;YAChC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC3G,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;OAMG;IACK,OAAO,CAAC,MAAuB,EAAE,OAAe;QACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QACpB,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAqB,EAAE,IAAY,EAAE,KAAoB;QAC5D,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,wEAAwE,CAAC,CAAC;QAC5G,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,oBAAoB,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;QAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,QAAkB,CAAC;QACvB,IACI,QAAQ,KAAK,SAAS;YACtB,CAAC,QAAQ,CAAC,SAAS;YACnB,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;YACjC,QAAQ,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,EACzC,CAAC;YACC,QAAQ,GAAG,QAAQ,CAAC;YACpB,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBACxD,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YACtC,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzB,wFAAwF;gBACxF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACpD,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QACtC,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE;YACxF,MAAM;YACN,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,WAAW,EAAE,MAAM,CAAC,GAAG;YACvB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;SACrC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAmB,EAAE,KAAa,EAAE,KAAqB;QAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,EAAE,uDAAuD,CAAC,CAAC;QAClG,CAAC;QACD,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,CAAC,KAAK,EAAE,mBAAmB,EAAE,mCAAmC,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,MAAM,GAA2B,IAAI,CAAC;QAC1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,mBAAmB,KAAK,EAAE,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACzG,OAAO;YACH,OAAO;YACP,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,KAAK,EAAE,KAAK,IAAI,IAAI;YACpB,OAAO,EAAE,GAAS,EAAE;gBAChB,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC3C,CAAC;SACJ,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,CAAgB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO;QACX,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,2FAA2F;IAC3F,WAAW;QACP,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YAC/C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;gBAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;oBAChD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACxC,CAAC;YACL,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;YAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAChD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,iEAAiE;IACjE,UAAU;QACN,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YAC/C,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,KAAK;QACD,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC7D,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YAC7E,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;SACjC,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;IAC/G,CAAC;IAED;;;OAGG;IACH,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,MAAc;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;OAOG;IACK,QAAQ,CAAC,MAAuB,EAAE,CAAgB,EAAE,IAAmB;QAC3E,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACrG,CAAC;QACL,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;QAC9F,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC3F,CAAC;IAED;;;;;;;;;;OAUG;IACK,YAAY,CAChB,MAAuB,EACvB,CAAgB,EAChB,IAAwC,EACxC,MAA+E,EAC/E,KAAgB;QAEhB,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CACtB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACb,IAAI,CAAC,MAAM,CACP,MAAM,EACN,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,EAC1C,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,EACnF,kBAAkB,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CACtD,CAAC,MAAM,CACf,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrC,OAAO;YACH,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;YAClC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;YACnC,MAAM,EAAE,KAAK;SAChB,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACK,SAAS,CAAC,MAAuB,EAAE,OAAe;QACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QACpB,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;;;;;;OASG;IACK,MAAM,CACV,MAA8B,EAC9B,GAAW,EACX,IAAkC,EAClC,KAAa;QAEb,MAAM,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9E,OAAO,QAAQ,CAAC;QACpB,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QACpG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAa,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC9G,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAClC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU,CAAC;QACvC,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACK,eAAe,CAAC,QAAkB,EAAE,MAA8B;QACtE,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO;QACX,CAAC;QACD,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;YAChD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACb,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC,UAAU,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,MAAuB;QAClC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACK,YAAY,CAAC,CAAgB;QACjC,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC1C,MAAM,GAAG,SAAS,CAAC;QACvB,CAAC;QACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,GAAG;gBACL,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAI,GAAG,EAA0B;gBAC3C,KAAK,EAAE,IAAI,GAAG,EAAuB;gBACrC,QAAQ,EAAE,IAAI,GAAG,EAAkB;gBACnC,UAAU,EAAE,IAAI,GAAG,EAAkB;gBACrC,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI,GAAG,EAA8B;gBACjD,QAAQ,EAAE,KAAK;aAClB,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBACpE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,IAAI,CACL,6BAA6B,IAAI,CAAC,QAAQ,CAAC,IAAI,oEAAoE,IAAI,CAAC,uBAAuB,sHAAsH,CACxQ,CAAC;YACN,CAAC;QACL,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,CAAgB;QACtC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,gBAAgB,CACtB,YAAY,EACZ,YAAY,CAAC,CAAC,MAAM,uFAAuF,EAC3G,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CACvB,CAAC;QACN,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,CAAgB;QACnC,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,kEAAkE,CAAC,CAAC;QACrG,CAAC;IACL,CAAC;IAED,+DAA+D;IACvD,UAAU;QACd,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,MAAM,IAAI,gBAAgB,CAAC,YAAY,EAAE,4BAA4B,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QACnG,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"residency.js","sourceRoot":"","sources":["../../../src/memory/residency.ts"],"names":[],"mappings":"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"}
@@ -23,11 +23,15 @@ export interface NodeGpuOptions extends Omit<GpuContextOptions, "gpu" | "adapter
23
23
  /** Install dawn.globals on globalThis (default true; spec 2.1 rule 2) so user code sees GPUBufferUsage and friends. */
24
24
  readonly installGlobals?: boolean | undefined;
25
25
  }
26
- /** The Dawn GPU handle (spec 2.3): dispose() drops the reference so the process can exit. */
26
+ /**
27
+ * The Dawn GPU handle (spec 2.3). The Dawn instance behind `gpu` is shared by every handle created with the
28
+ * same flags and lives until the process exits (see `createNodeGpu`); it holds no event-loop handle, so it
29
+ * never keeps the process alive.
30
+ */
27
31
  export interface NodeGpuHandle {
28
32
  /** The GPU of `dawn.create(flags)`; reading it after dispose() throws E_DISPOSED. */
29
33
  readonly gpu: GPU;
30
- /** Drops the GPU reference; idempotent. */
34
+ /** Drops this handle's GPU reference (the shared instance stays alive); idempotent. */
31
35
  dispose(): void;
32
36
  }
33
37
  /**
@@ -39,18 +43,19 @@ export interface NodeGpuHandle {
39
43
  */
40
44
  export declare function dawnFlags(options: NodeGpuOptions | undefined): string[];
41
45
  /**
42
- * import("webgpu"), install dawn.globals unless installGlobals === false, dawn.create(flags) (spec 2.3).
46
+ * import("webgpu"), install dawn.globals unless installGlobals === false, dawn.create(flags) (spec 2.3). The GPU
47
+ * object is created once per flag list and reused by every later call with the same flags; it is never released,
48
+ * because Dawn keeps polling its instance for the adapters and devices it produced (issue #30).
43
49
  * @param options - adapter / backend / dawnFeatures / software / installGlobals (and the test seam)
44
- * @returns the handle; `dispose()` drops the GPU reference so the process can exit
50
+ * @returns the handle; `dispose()` drops the handle's reference, never the shared instance
45
51
  * @throws WebGpuGraphError E_NO_WEBGPU { reason, hint } when the module does not load (missing, or its glibc is too old), has no create(), or create(flags) throws
46
52
  */
47
53
  export declare function createNodeGpu(options?: NodeGpuOptions): Promise<NodeGpuHandle>;
48
54
  /**
49
55
  * createNodeGpu + GpuContext.create({ gpu, runtime: "node", ...options }); ctx.dispose() also disposes the
50
- * handle, and a create() failure disposes it before rethrowing. The handle is dropped once `ctx.lost` has
51
- * settled, never before: under webgpu@0.4.0 a GPU object collected while the device it created is still
52
- * tearing down (its lost / work-done callbacks in flight) crashes or deadlocks the process (PLAN DECISION,
53
- * P1-T1; measured with tmp/p1t1/gc-race2.mjs), and device.destroy() reports the loss right away.
56
+ * handle, and a create() failure disposes it before rethrowing. Disposing is safe at any moment: the Dawn
57
+ * instance itself stays alive for the process (createNodeGpu), so a callback of the destroyed device that
58
+ * arrives late, or a call on `ctx.device` after dispose(), never reaches a freed instance.
54
59
  * @param options - the Node options
55
60
  * @returns the context
56
61
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/node/index.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE1E,8CAA8C;AAC9C,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACrG,0IAA0I;IAC1I,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,8GAA8G;IAC9G,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;IACvG,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACtD,2GAA2G;IAC3G,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACxC,uHAAuH;IACvH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAMjD;AAED,6FAA6F;AAC7F,MAAM,WAAW,aAAa;IAC1B,qFAAqF;IACrF,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,2CAA2C;IAC3C,OAAO,IAAI,IAAI,CAAC;CACnB;AA4DD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,EAAE,CAiBvE;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CA4BpF;AAqBD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAgBxF;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAgBpF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/node/index.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE1E,8CAA8C;AAC9C,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACrG,0IAA0I;IAC1I,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,8GAA8G;IAC9G,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;IACvG,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACtD,2GAA2G;IAC3G,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACxC,uHAAuH;IACvH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAMjD;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC1B,qFAAqF;IACrF,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,uFAAuF;IACvF,OAAO,IAAI,IAAI,CAAC;CACnB;AAwED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,EAAE,CAiBvE;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAsCpF;AAqBD;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAaxF;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAgBpF"}