@davidsouther/jiffies 2026.24.4 → 2026.26.0
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/lib/esm/dom/dom.d.ts +19 -0
- package/lib/esm/dom/dom.js +52 -2
- package/lib/esm/dom/fc.d.ts +52 -0
- package/lib/esm/dom/fc.js +104 -20
- package/lib/esm/dom/hydrate.d.ts +12 -6
- package/lib/esm/dom/hydrate.js +56 -20
- package/lib/esm/dom/svg.d.ts +162 -63
- package/lib/esm/ssg/ssg.js +2 -43
- package/lib/esm/tsconfig.tsbuildinfo +1 -0
- package/package.json +1 -1
package/lib/esm/dom/dom.d.ts
CHANGED
|
@@ -32,5 +32,24 @@ export declare function update(element: Omit<Element, "update">, attrs: Attrs<El
|
|
|
32
32
|
* Reconcile `element`'s mounted children against expected `children`, mutating the live DOM in place.
|
|
33
33
|
*/
|
|
34
34
|
export declare function reconcileChildren(element: Node, children: (string | Node)[]): void;
|
|
35
|
+
/**
|
|
36
|
+
* A unit boundary the reconcile, hydration, and SSG passes treat as opaque: a
|
|
37
|
+
* registered custom element (FC), or any element carrying `data-fc` (FCC). Both
|
|
38
|
+
* own their own subtree, so a parent's reconcile must not descend into them.
|
|
39
|
+
*/
|
|
40
|
+
export declare function isUnit(el: Element): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Walk `root` depth-first and return every unit (`isUnit`) in document order,
|
|
43
|
+
* descending INTO units so nested units are included. The server payload build
|
|
44
|
+
* and the client hydration scan must enumerate units in the same order, or a
|
|
45
|
+
* payload index will not line up.
|
|
46
|
+
*/
|
|
47
|
+
export declare function scanAllUnits(root: ParentNode): Element[];
|
|
48
|
+
/** True if `el` has a unit ancestor (i.e. it is a nested unit). */
|
|
49
|
+
export declare function isNested(el: Element, units: Element[]): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Reconstruct a unit's props from its attributes, skipping the `data-fc` marker.
|
|
52
|
+
*/
|
|
53
|
+
export declare function propsFromElement(el: Element): Record<string, unknown>;
|
|
35
54
|
export declare function patchNode(kept: Element, fresh: Element): void;
|
|
36
55
|
export {};
|
package/lib/esm/dom/dom.js
CHANGED
|
@@ -185,6 +185,56 @@ function findUnclaimedNodes(desired, element) {
|
|
|
185
185
|
}
|
|
186
186
|
return { mountedSet, unclaimed };
|
|
187
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* A unit boundary the reconcile, hydration, and SSG passes treat as opaque: a
|
|
190
|
+
* registered custom element (FC), or any element carrying `data-fc` (FCC). Both
|
|
191
|
+
* own their own subtree, so a parent's reconcile must not descend into them.
|
|
192
|
+
*/
|
|
193
|
+
export function isUnit(el) {
|
|
194
|
+
return customElements.get(el.localName) != null || el.hasAttribute("data-fc");
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Walk `root` depth-first and return every unit (`isUnit`) in document order,
|
|
198
|
+
* descending INTO units so nested units are included. The server payload build
|
|
199
|
+
* and the client hydration scan must enumerate units in the same order, or a
|
|
200
|
+
* payload index will not line up.
|
|
201
|
+
*/
|
|
202
|
+
export function scanAllUnits(root) {
|
|
203
|
+
const results = [];
|
|
204
|
+
const stack = [...root.children].reverse();
|
|
205
|
+
while (stack.length > 0) {
|
|
206
|
+
const el = stack.pop();
|
|
207
|
+
if (isUnit(el)) {
|
|
208
|
+
results.push(el);
|
|
209
|
+
}
|
|
210
|
+
for (let i = el.children.length - 1; i >= 0; i--) {
|
|
211
|
+
stack.push(el.children[i]);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return results;
|
|
215
|
+
}
|
|
216
|
+
/** True if `el` has a unit ancestor (i.e. it is a nested unit). */
|
|
217
|
+
export function isNested(el, units) {
|
|
218
|
+
let parent = el.parentElement;
|
|
219
|
+
while (parent !== null) {
|
|
220
|
+
if (units.includes(parent))
|
|
221
|
+
return true;
|
|
222
|
+
parent = parent.parentElement;
|
|
223
|
+
}
|
|
224
|
+
return false;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Reconstruct a unit's props from its attributes, skipping the `data-fc` marker.
|
|
228
|
+
*/
|
|
229
|
+
export function propsFromElement(el) {
|
|
230
|
+
const props = {};
|
|
231
|
+
for (const attr of el.attributes) {
|
|
232
|
+
if (attr.name === "data-fc")
|
|
233
|
+
continue;
|
|
234
|
+
props[attr.name] = attr.value;
|
|
235
|
+
}
|
|
236
|
+
return props;
|
|
237
|
+
}
|
|
188
238
|
export function patchNode(kept, fresh) {
|
|
189
239
|
assert(kept.nodeName === fresh.nodeName, "patching nodes of different types");
|
|
190
240
|
// Remove `kept` attributes that aren't on `fresh`, then add `fresh` attributes not on `kept`.
|
|
@@ -210,8 +260,8 @@ export function patchNode(kept, fresh) {
|
|
|
210
260
|
for (const [type, handler] of freshEvents) {
|
|
211
261
|
setListener(kept, keptEvents, type, handler);
|
|
212
262
|
}
|
|
213
|
-
//
|
|
214
|
-
if (
|
|
263
|
+
// Unit boundaries rebuild their own subtrees
|
|
264
|
+
if (isUnit(kept))
|
|
215
265
|
return;
|
|
216
266
|
reconcileChildren(kept, Array.from(fresh.childNodes));
|
|
217
267
|
}
|
package/lib/esm/dom/fc.d.ts
CHANGED
|
@@ -7,4 +7,56 @@ export interface FCComponent<Props extends object, State extends object> extends
|
|
|
7
7
|
}
|
|
8
8
|
export type RenderFn<Props extends object, State extends object> = (el: FCComponent<Props, State>, attrs: Attrs<Props>, children: DenormChildren[]) => Element | Element[];
|
|
9
9
|
export type FCComponentCtor<Props extends object, State extends object> = (attrs?: Attrs<Props> | DenormChildren, ...children: DenormChildren[]) => FCComponent<Props, State>;
|
|
10
|
+
/**
|
|
11
|
+
* Update a Functional Component.
|
|
12
|
+
* Merges this call and element's current attrs, apply them onto the element, re-runs
|
|
13
|
+
* `render`, and reconciles that output with the element's children. All per-instance
|
|
14
|
+
* state ([State] and the inputs stash) lives on `el`, so a single `update`
|
|
15
|
+
* function serves every instance.
|
|
16
|
+
*
|
|
17
|
+
* The `render` callback returns children, not the element, as the element factory
|
|
18
|
+
* builds the parent.
|
|
19
|
+
*/
|
|
20
|
+
export declare function applyUpdate<Props extends object, S extends object>(el: FCComponent<Props, S>, render: RenderFn<Props, S>, attrs?: Attrs<Props> | DenormChildren, children?: DenormChildren[]): void;
|
|
21
|
+
/**
|
|
22
|
+
* A Functional Component backed by a custom element.
|
|
23
|
+
*/
|
|
10
24
|
export declare function FC<Props extends object, State extends object = object>(name: string, component: RenderFn<Props, State>): FCComponentCtor<Props, State>;
|
|
25
|
+
/** Factory that builds an FC root in the correct namespace. */
|
|
26
|
+
export type BoundaryFactory = () => Element;
|
|
27
|
+
/** The shared, per-definition update each FCC element carries. */
|
|
28
|
+
type UpdateFn = FCComponent<object, object>["update"];
|
|
29
|
+
/** Look up the shared `update` registered for a `data-fc` name, if any. */
|
|
30
|
+
export declare function getFCC(name: string): UpdateFn | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Wire an FCC's shared `update` onto a real element. The element carries its own
|
|
33
|
+
* `[State]` and inputs (set lazily on the first `update()` call), so this only
|
|
34
|
+
* assigns the single definition-wide function. Shared by the FCC constructor and
|
|
35
|
+
* the hydration path, which passes the registry-resolved `update`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function attach<Props extends object, S extends object>(el: Element, update: FCComponent<Props, S>["update"]): FCComponent<Props, S>;
|
|
38
|
+
/**
|
|
39
|
+
* A containerless component (FCC) renders directly without an HTML custom-element
|
|
40
|
+
* host. Its boundary is a single real element (SVG or HTML) marked `data-fc`, so
|
|
41
|
+
* a component can render SVG-namespace shapes inside `<svg>`, where an HTML custom
|
|
42
|
+
* element is not valid content.
|
|
43
|
+
*
|
|
44
|
+
* FCC shares the `name` and `render` parameters with FC, and additionally takes a
|
|
45
|
+
* boundary factory that returns the FCC's root element. Attributes passed to an FCC
|
|
46
|
+
* will be set on this element. `render` returns the children of the FCC boundary
|
|
47
|
+
* root.
|
|
48
|
+
*
|
|
49
|
+
* The returned constructor builds the boundary, marks it, wires the shared
|
|
50
|
+
* `update()` onto it, and returns the element to include directly:
|
|
51
|
+
*
|
|
52
|
+
* ```ts
|
|
53
|
+
* const Gauge = FCC<{ value: number }>("gauge", g, (_el, attrs) => [
|
|
54
|
+
* circle({ r: 10 }),
|
|
55
|
+
* circle({ class: "needle", r: 2, cx: attrs.value }),
|
|
56
|
+
* ]);
|
|
57
|
+
* svg({ viewBox: "0 0 100 100" }, Gauge({ value: 5 }));
|
|
58
|
+
* // → <svg ...><g data-fc="gauge"><circle r="10"/><circle class="needle" r="2" cx="5"/></g></svg>
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare function FCC<Props extends object, S extends object = object>(name: string, boundary: BoundaryFactory, render: RenderFn<Props, S>, _isCustom?: boolean): FCComponentCtor<Props, S>;
|
|
62
|
+
export {};
|
package/lib/esm/dom/fc.js
CHANGED
|
@@ -1,32 +1,116 @@
|
|
|
1
1
|
import { CLEAR, normalizeArguments, reconcileChildren, update, } from "./dom.js";
|
|
2
2
|
export const State = Symbol();
|
|
3
|
+
// Per-instance update inputs
|
|
4
|
+
const Inputs = Symbol();
|
|
5
|
+
/**
|
|
6
|
+
* Update a Functional Component.
|
|
7
|
+
* Merges this call and element's current attrs, apply them onto the element, re-runs
|
|
8
|
+
* `render`, and reconciles that output with the element's children. All per-instance
|
|
9
|
+
* state ([State] and the inputs stash) lives on `el`, so a single `update`
|
|
10
|
+
* function serves every instance.
|
|
11
|
+
*
|
|
12
|
+
* The `render` callback returns children, not the element, as the element factory
|
|
13
|
+
* builds the parent.
|
|
14
|
+
*/
|
|
15
|
+
export function applyUpdate(el, render, attrs, children = []) {
|
|
16
|
+
[attrs, children] = normalizeArguments(attrs, children);
|
|
17
|
+
const unit = el;
|
|
18
|
+
unit[State] ??= {};
|
|
19
|
+
unit[Inputs] ??= { attrs: {}, children: [] };
|
|
20
|
+
const inputs = unit[Inputs];
|
|
21
|
+
if (children[0] === CLEAR) {
|
|
22
|
+
inputs.children = [];
|
|
23
|
+
}
|
|
24
|
+
else if (children.length > 0) {
|
|
25
|
+
inputs.children = children;
|
|
26
|
+
}
|
|
27
|
+
inputs.attrs = { ...inputs.attrs, ...attrs };
|
|
28
|
+
// Apply attrs to the element itself (no children here), then re-run the
|
|
29
|
+
// component and reconcile its return value as the element's children.
|
|
30
|
+
update(el, inputs.attrs, []);
|
|
31
|
+
const rendered = [render(el, inputs.attrs, inputs.children)];
|
|
32
|
+
reconcileChildren(el, rendered.flat());
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* A Functional Component backed by a custom element.
|
|
36
|
+
*/
|
|
3
37
|
export function FC(name, component) {
|
|
4
|
-
|
|
38
|
+
customElements.define(name,
|
|
39
|
+
// The shared `update` is carried on the prototype, not attached per
|
|
40
|
+
// instance, so a server-rendered element upgraded by the platform during
|
|
41
|
+
// hydration gains `update()` without the FCC constructor running.
|
|
42
|
+
class extends HTMLElement {
|
|
5
43
|
[State] = {};
|
|
6
|
-
#attrs = {};
|
|
7
|
-
#children = [];
|
|
8
44
|
update(attrs, ...children) {
|
|
9
|
-
|
|
10
|
-
if (children[0] === CLEAR) {
|
|
11
|
-
this.#children = [];
|
|
12
|
-
}
|
|
13
|
-
else if (children.length > 0) {
|
|
14
|
-
this.#children = children;
|
|
15
|
-
}
|
|
16
|
-
this.#attrs = { ...this.#attrs, ...attrs };
|
|
17
|
-
// Apply updates from the attrs to the dom node itself
|
|
18
|
-
update(this, this.#attrs, []);
|
|
19
|
-
// Re-run the component function using new element, attrs, and children.
|
|
20
|
-
const rendered = [component(this, this.#attrs, this.#children)];
|
|
21
|
-
reconcileChildren(this, rendered.flat());
|
|
45
|
+
applyUpdate(this, component, attrs, children);
|
|
22
46
|
return this;
|
|
23
47
|
}
|
|
48
|
+
});
|
|
49
|
+
return FCC(name, () => window.document.createElement(name), component, true);
|
|
50
|
+
}
|
|
51
|
+
// Module-level name -> update-function registry. Backs FCC where
|
|
52
|
+
// `customElements` backs FC: it lets a server-rendered `data-fc` element be
|
|
53
|
+
// re-wired during hydration with the same shared `update` its live instances
|
|
54
|
+
// use, when there is no custom-element upgrade to do it.
|
|
55
|
+
const registry = new Map();
|
|
56
|
+
/** Look up the shared `update` registered for a `data-fc` name, if any. */
|
|
57
|
+
export function getFCC(name) {
|
|
58
|
+
return registry.get(name);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Wire an FCC's shared `update` onto a real element. The element carries its own
|
|
62
|
+
* `[State]` and inputs (set lazily on the first `update()` call), so this only
|
|
63
|
+
* assigns the single definition-wide function. Shared by the FCC constructor and
|
|
64
|
+
* the hydration path, which passes the registry-resolved `update`.
|
|
65
|
+
*/
|
|
66
|
+
export function attach(el, update) {
|
|
67
|
+
const component = el;
|
|
68
|
+
component.update = update;
|
|
69
|
+
return component;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* A containerless component (FCC) renders directly without an HTML custom-element
|
|
73
|
+
* host. Its boundary is a single real element (SVG or HTML) marked `data-fc`, so
|
|
74
|
+
* a component can render SVG-namespace shapes inside `<svg>`, where an HTML custom
|
|
75
|
+
* element is not valid content.
|
|
76
|
+
*
|
|
77
|
+
* FCC shares the `name` and `render` parameters with FC, and additionally takes a
|
|
78
|
+
* boundary factory that returns the FCC's root element. Attributes passed to an FCC
|
|
79
|
+
* will be set on this element. `render` returns the children of the FCC boundary
|
|
80
|
+
* root.
|
|
81
|
+
*
|
|
82
|
+
* The returned constructor builds the boundary, marks it, wires the shared
|
|
83
|
+
* `update()` onto it, and returns the element to include directly:
|
|
84
|
+
*
|
|
85
|
+
* ```ts
|
|
86
|
+
* const Gauge = FCC<{ value: number }>("gauge", g, (_el, attrs) => [
|
|
87
|
+
* circle({ r: 10 }),
|
|
88
|
+
* circle({ class: "needle", r: 2, cx: attrs.value }),
|
|
89
|
+
* ]);
|
|
90
|
+
* svg({ viewBox: "0 0 100 100" }, Gauge({ value: 5 }));
|
|
91
|
+
* // → <svg ...><g data-fc="gauge"><circle r="10"/><circle class="needle" r="2" cx="5"/></g></svg>
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
export function FCC(name, boundary, render, _isCustom = false) {
|
|
95
|
+
function update(attrs, ...children) {
|
|
96
|
+
applyUpdate(this, render, attrs, children);
|
|
97
|
+
return this;
|
|
98
|
+
}
|
|
99
|
+
if (!_isCustom) {
|
|
100
|
+
registry.set(name, update);
|
|
24
101
|
}
|
|
25
|
-
customElements.define(name, FCImpl);
|
|
26
102
|
const ctor = (attrs, ...children) => {
|
|
27
|
-
const element =
|
|
28
|
-
|
|
29
|
-
|
|
103
|
+
const element = boundary();
|
|
104
|
+
let component;
|
|
105
|
+
if (_isCustom) {
|
|
106
|
+
component = element;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
element.setAttribute("data-fc", name);
|
|
110
|
+
component = attach(element, update);
|
|
111
|
+
}
|
|
112
|
+
component.update(attrs, ...children);
|
|
113
|
+
return component;
|
|
30
114
|
};
|
|
31
115
|
return ctor;
|
|
32
116
|
}
|
package/lib/esm/dom/hydrate.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* build pass so events fired before the client bundle loads are queued in
|
|
4
4
|
* window.__hydrateQueue and replayed after hydration. No external references.
|
|
5
5
|
*/
|
|
6
|
-
export declare const captureStubSource = "(function(){\n window.__hydrateQueue = window.__hydrateQueue || [];\n var queue = window.__hydrateQueue;\n var handler = function(event) {\n var path = event.composedPath();\n var unitEl = null;\n for (var i = 0; i < path.length; i++) {\n var node = path[i];\n if (node instanceof Element && customElements.get(node.localName)) {\n unitEl = node;\n break;\n }\n }\n if (!unitEl) return;\n var target = event.target;\n var targetPath = [];\n var cur = target;\n while (cur !== unitEl) {\n var parent = cur.parentNode;\n var siblings = Array.from(parent.childNodes);\n targetPath.unshift(siblings.indexOf(cur));\n cur = parent;\n }\n queue.push({ unitEl: unitEl, type: event.type, targetPath: targetPath, init: { bubbles: event.bubbles, cancelable: event.cancelable } });\n };\n var types = [\"click\",\"input\",\"change\",\"submit\",\"keydown\"];\n for (var t = 0; t < types.length; t++) {\n document.addEventListener(types[t], handler, true);\n }\n})()";
|
|
6
|
+
export declare const captureStubSource = "(function(){\n window.__hydrateQueue = window.__hydrateQueue || [];\n var queue = window.__hydrateQueue;\n var handler = function(event) {\n var path = event.composedPath();\n var unitEl = null;\n for (var i = 0; i < path.length; i++) {\n var node = path[i];\n if (node instanceof Element && (customElements.get(node.localName) || node.getAttribute(\"data-fc\"))) {\n unitEl = node;\n break;\n }\n }\n if (!unitEl) return;\n var target = event.target;\n var targetPath = [];\n var cur = target;\n while (cur !== unitEl) {\n var parent = cur.parentNode;\n var siblings = Array.from(parent.childNodes);\n targetPath.unshift(siblings.indexOf(cur));\n cur = parent;\n }\n queue.push({ unitEl: unitEl, type: event.type, targetPath: targetPath, init: { bubbles: event.bubbles, cancelable: event.cancelable } });\n };\n var types = [\"click\",\"input\",\"change\",\"submit\",\"keydown\"];\n for (var t = 0; t < types.length; t++) {\n document.addEventListener(types[t], handler, true);\n }\n})()";
|
|
7
7
|
/**
|
|
8
8
|
* Serialize `units` to a JSON string safe for embedding in an HTML script tag
|
|
9
9
|
* (angle brackets and ampersands are Unicode-escaped).
|
|
@@ -15,11 +15,17 @@ export declare function buildPayload(units: Record<string, unknown>[]): string;
|
|
|
15
15
|
*/
|
|
16
16
|
export declare function readPayload(): Record<string, unknown>[];
|
|
17
17
|
/**
|
|
18
|
-
* Scan `root` for
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
18
|
+
* Scan `root` for units and schedule each for hydration. `customElements.whenDefined`
|
|
19
|
+
* resolves as a microtask even when the element is already defined. The callback
|
|
20
|
+
* clears server-rendered children then runs `el.update()`, which re-executes the
|
|
21
|
+
* element's render function and rebuilds its subtree. `root` defaults to
|
|
22
|
+
* `window.document.body`.
|
|
23
|
+
*
|
|
24
|
+
* Units are enumerated with `scanAllUnits` — the SAME descending, document-order
|
|
25
|
+
* walk the server used to build the `#__hydration` payload — so `payload[index]`
|
|
26
|
+
* lines up with each unit even past nested ones. A nested unit is skipped here:
|
|
27
|
+
* its parent's re-render rebuilds it from fresh props, so a direct payload read
|
|
28
|
+
* would be redundant (and the enumeration only descends to keep indices aligned).
|
|
23
29
|
*/
|
|
24
30
|
export declare function start(root?: ParentNode): void;
|
|
25
31
|
/**
|
package/lib/esm/dom/hydrate.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client"; // Hydrate runs entirely client side.
|
|
2
|
-
import { reconcileChildren } from "./dom.js";
|
|
2
|
+
import { isNested, isUnit, propsFromElement, reconcileChildren, scanAllUnits, } from "./dom.js";
|
|
3
|
+
import { attach, getFCC } from "./fc.js";
|
|
3
4
|
/**
|
|
4
5
|
* Self-contained IIFE source for the capture stub. Embedded inline by the SSG
|
|
5
6
|
* build pass so events fired before the client bundle loads are queued in
|
|
@@ -13,7 +14,7 @@ export const captureStubSource = `(function(){
|
|
|
13
14
|
var unitEl = null;
|
|
14
15
|
for (var i = 0; i < path.length; i++) {
|
|
15
16
|
var node = path[i];
|
|
16
|
-
if (node instanceof Element && customElements.get(node.localName)) {
|
|
17
|
+
if (node instanceof Element && (customElements.get(node.localName) || node.getAttribute("data-fc"))) {
|
|
17
18
|
unitEl = node;
|
|
18
19
|
break;
|
|
19
20
|
}
|
|
@@ -66,7 +67,7 @@ function scanUnits(root) {
|
|
|
66
67
|
const stack = [...root.children].reverse();
|
|
67
68
|
while (stack.length > 0) {
|
|
68
69
|
const el = stack.pop();
|
|
69
|
-
if (
|
|
70
|
+
if (isUnit(el)) {
|
|
70
71
|
results.push(el);
|
|
71
72
|
}
|
|
72
73
|
else {
|
|
@@ -78,32 +79,67 @@ function scanUnits(root) {
|
|
|
78
79
|
return results;
|
|
79
80
|
}
|
|
80
81
|
/**
|
|
81
|
-
* Scan `root` for
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
82
|
+
* Scan `root` for units and schedule each for hydration. `customElements.whenDefined`
|
|
83
|
+
* resolves as a microtask even when the element is already defined. The callback
|
|
84
|
+
* clears server-rendered children then runs `el.update()`, which re-executes the
|
|
85
|
+
* element's render function and rebuilds its subtree. `root` defaults to
|
|
86
|
+
* `window.document.body`.
|
|
87
|
+
*
|
|
88
|
+
* Units are enumerated with `scanAllUnits` — the SAME descending, document-order
|
|
89
|
+
* walk the server used to build the `#__hydration` payload — so `payload[index]`
|
|
90
|
+
* lines up with each unit even past nested ones. A nested unit is skipped here:
|
|
91
|
+
* its parent's re-render rebuilds it from fresh props, so a direct payload read
|
|
92
|
+
* would be redundant (and the enumeration only descends to keep indices aligned).
|
|
86
93
|
*/
|
|
87
94
|
export function start(root) {
|
|
88
95
|
const r = root ?? window.document.body;
|
|
89
|
-
const units =
|
|
96
|
+
const units = scanAllUnits(r);
|
|
90
97
|
const payload = readPayload();
|
|
91
98
|
units.forEach((el, index) => {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
99
|
+
if (isNested(el, units))
|
|
100
|
+
return;
|
|
101
|
+
// A data-fc boundary is never upgraded by the platform, so re-wire its
|
|
102
|
+
// behavior from the registry instead of waiting on customElements.
|
|
103
|
+
const fc = el.getAttribute("data-fc");
|
|
104
|
+
if (fc !== null) {
|
|
105
|
+
const update = getFCC(fc);
|
|
106
|
+
if (update) {
|
|
107
|
+
attach(el, update);
|
|
108
|
+
el.replaceChildren();
|
|
109
|
+
el.update(payload[index]);
|
|
110
|
+
drainQueue(el);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
customElements.whenDefined(el.localName).then(() => {
|
|
115
|
+
el.replaceChildren();
|
|
116
|
+
el.update(payload[index]);
|
|
117
|
+
drainQueue(el);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
97
120
|
});
|
|
98
121
|
}
|
|
99
|
-
// Hydrate
|
|
100
|
-
//
|
|
101
|
-
//
|
|
102
|
-
//
|
|
122
|
+
// Hydrate units inside `root` without clearing their server-rendered children
|
|
123
|
+
// first. `el.update(props)` reconciles onto the existing DOM so attributes and
|
|
124
|
+
// listeners are grafted in place. Props are read back from the element's own
|
|
125
|
+
// attributes (`propsFromElement`) — `hydrateRoot` reads no payload, and the
|
|
126
|
+
// reconcile pass has already synced the fresh tree's attributes onto the kept
|
|
127
|
+
// server node, so the attributes ARE the unit's props. Recurses after each
|
|
128
|
+
// element hydrates so parents are always processed before their nested units.
|
|
103
129
|
function startHydrate(root) {
|
|
104
130
|
for (const el of scanUnits(root)) {
|
|
131
|
+
const fc = el.getAttribute("data-fc");
|
|
132
|
+
if (fc !== null) {
|
|
133
|
+
const update = getFCC(fc);
|
|
134
|
+
if (update) {
|
|
135
|
+
attach(el, update);
|
|
136
|
+
el.update(propsFromElement(el));
|
|
137
|
+
startHydrate(el);
|
|
138
|
+
}
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
105
141
|
customElements.whenDefined(el.localName).then(() => {
|
|
106
|
-
el.update();
|
|
142
|
+
el.update(propsFromElement(el));
|
|
107
143
|
startHydrate(el);
|
|
108
144
|
});
|
|
109
145
|
}
|
|
@@ -125,7 +161,7 @@ export function installCaptureStub() {
|
|
|
125
161
|
const path = event.composedPath();
|
|
126
162
|
let unitEl = null;
|
|
127
163
|
for (const node of path) {
|
|
128
|
-
if (node instanceof Element &&
|
|
164
|
+
if (node instanceof Element && isUnit(node)) {
|
|
129
165
|
unitEl = node;
|
|
130
166
|
break;
|
|
131
167
|
}
|
package/lib/esm/dom/svg.d.ts
CHANGED
|
@@ -1,64 +1,163 @@
|
|
|
1
1
|
import { type DenormAttrs, type DenormChildren } from "./dom.ts";
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
export
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
export
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
export
|
|
63
|
-
|
|
64
|
-
|
|
2
|
+
export type SVGPresentationAttrs = {
|
|
3
|
+
fill?: string;
|
|
4
|
+
"fill-opacity"?: string | number;
|
|
5
|
+
"fill-rule"?: "nonzero" | "evenodd" | "inherit";
|
|
6
|
+
stroke?: string;
|
|
7
|
+
"stroke-dasharray"?: string;
|
|
8
|
+
"stroke-dashoffset"?: string | number;
|
|
9
|
+
"stroke-linecap"?: "butt" | "round" | "square" | "inherit";
|
|
10
|
+
"stroke-linejoin"?: "miter" | "round" | "bevel" | "inherit";
|
|
11
|
+
"stroke-miterlimit"?: string | number;
|
|
12
|
+
"stroke-opacity"?: string | number;
|
|
13
|
+
"stroke-width"?: string | number;
|
|
14
|
+
opacity?: string | number;
|
|
15
|
+
"clip-path"?: string;
|
|
16
|
+
"clip-rule"?: "nonzero" | "evenodd" | "inherit";
|
|
17
|
+
color?: string;
|
|
18
|
+
"color-interpolation"?: "auto" | "sRGB" | "linearRGB" | "inherit";
|
|
19
|
+
"color-rendering"?: "auto" | "optimizeSpeed" | "optimizeQuality" | "inherit";
|
|
20
|
+
cursor?: string;
|
|
21
|
+
display?: string;
|
|
22
|
+
filter?: string;
|
|
23
|
+
"image-rendering"?: "auto" | "optimizeSpeed" | "optimizeQuality" | "inherit";
|
|
24
|
+
marker?: string;
|
|
25
|
+
"marker-end"?: string;
|
|
26
|
+
"marker-mid"?: string;
|
|
27
|
+
"marker-start"?: string;
|
|
28
|
+
mask?: string;
|
|
29
|
+
overflow?: "visible" | "hidden" | "scroll" | "auto";
|
|
30
|
+
"paint-order"?: string;
|
|
31
|
+
"pointer-events"?: string;
|
|
32
|
+
"shape-rendering"?: "auto" | "optimizeSpeed" | "crispEdges" | "geometricPrecision" | "inherit";
|
|
33
|
+
"text-rendering"?: "auto" | "optimizeSpeed" | "optimizeLegibility" | "geometricPrecision" | "inherit";
|
|
34
|
+
"transform-origin"?: string;
|
|
35
|
+
"vector-effect"?: "none" | "non-scaling-stroke" | "inherit";
|
|
36
|
+
visibility?: "visible" | "hidden" | "collapse" | "inherit";
|
|
37
|
+
};
|
|
38
|
+
export type SVGTextPresentationAttrs = SVGPresentationAttrs & {
|
|
39
|
+
"font-family"?: string;
|
|
40
|
+
"font-size"?: string | number;
|
|
41
|
+
"font-size-adjust"?: string | number;
|
|
42
|
+
"font-stretch"?: string;
|
|
43
|
+
"font-style"?: "normal" | "italic" | "oblique" | "inherit";
|
|
44
|
+
"font-variant"?: string;
|
|
45
|
+
"font-weight"?: string | number;
|
|
46
|
+
"text-anchor"?: "start" | "middle" | "end" | "inherit";
|
|
47
|
+
"text-decoration"?: string;
|
|
48
|
+
"letter-spacing"?: string | number;
|
|
49
|
+
"word-spacing"?: string | number;
|
|
50
|
+
"dominant-baseline"?: string;
|
|
51
|
+
"alignment-baseline"?: string;
|
|
52
|
+
"baseline-shift"?: string;
|
|
53
|
+
"writing-mode"?: string;
|
|
54
|
+
"unicode-bidi"?: string;
|
|
55
|
+
direction?: "ltr" | "rtl" | "inherit";
|
|
56
|
+
};
|
|
57
|
+
export type SVGStopAttrs = {
|
|
58
|
+
"stop-color"?: string;
|
|
59
|
+
"stop-opacity"?: string | number;
|
|
60
|
+
offset?: string | number;
|
|
61
|
+
};
|
|
62
|
+
export type SVGFloodAttrs = {
|
|
63
|
+
"flood-color"?: string;
|
|
64
|
+
"flood-opacity"?: string | number;
|
|
65
|
+
};
|
|
66
|
+
export type SVGLightingAttrs = {
|
|
67
|
+
"lighting-color"?: string;
|
|
68
|
+
};
|
|
69
|
+
export type SVGPathExtraAttrs = {
|
|
70
|
+
d?: string;
|
|
71
|
+
};
|
|
72
|
+
export type SVGAnimationTimingAttrs = {
|
|
73
|
+
attributeName?: string;
|
|
74
|
+
from?: string | number;
|
|
75
|
+
to?: string | number;
|
|
76
|
+
by?: string | number;
|
|
77
|
+
values?: string;
|
|
78
|
+
dur?: string;
|
|
79
|
+
begin?: string;
|
|
80
|
+
end?: string;
|
|
81
|
+
min?: string;
|
|
82
|
+
max?: string;
|
|
83
|
+
repeatCount?: string | number;
|
|
84
|
+
repeatDur?: string;
|
|
85
|
+
restart?: "always" | "whenNotActive" | "never";
|
|
86
|
+
fill?: "freeze" | "remove";
|
|
87
|
+
calcMode?: "discrete" | "linear" | "paced" | "spline";
|
|
88
|
+
keyTimes?: string;
|
|
89
|
+
keySplines?: string;
|
|
90
|
+
keyPoints?: string;
|
|
91
|
+
additive?: "replace" | "sum";
|
|
92
|
+
accumulate?: "none" | "sum";
|
|
93
|
+
type?: string;
|
|
94
|
+
path?: string;
|
|
95
|
+
};
|
|
96
|
+
export type SVGFilterPrimitiveInAttrs = {
|
|
97
|
+
in?: string;
|
|
98
|
+
in2?: string;
|
|
99
|
+
result?: string;
|
|
100
|
+
};
|
|
101
|
+
export declare const a: (attrs?: DenormAttrs<SVGAElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGAElement;
|
|
102
|
+
export declare const animate: (attrs?: DenormAttrs<SVGAnimateElement, SVGAnimationTimingAttrs>, ...children: DenormChildren[]) => SVGAnimateElement;
|
|
103
|
+
export declare const animateMotion: (attrs?: DenormAttrs<SVGAnimateMotionElement, SVGAnimationTimingAttrs>, ...children: DenormChildren[]) => SVGAnimateMotionElement;
|
|
104
|
+
export declare const animateTransform: (attrs?: DenormAttrs<SVGAnimateTransformElement, SVGAnimationTimingAttrs>, ...children: DenormChildren[]) => SVGAnimateTransformElement;
|
|
105
|
+
export declare const circle: (attrs?: DenormAttrs<SVGCircleElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGCircleElement;
|
|
106
|
+
export declare const clipPath: (attrs?: DenormAttrs<SVGClipPathElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGClipPathElement;
|
|
107
|
+
export declare const defs: (attrs?: DenormAttrs<SVGDefsElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGDefsElement;
|
|
108
|
+
export declare const desc: (attrs?: DenormAttrs<SVGDescElement, object>, ...children: DenormChildren[]) => SVGDescElement;
|
|
109
|
+
export declare const ellipse: (attrs?: DenormAttrs<SVGEllipseElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGEllipseElement;
|
|
110
|
+
export declare const feBlend: (attrs?: DenormAttrs<SVGFEBlendElement, SVGFilterPrimitiveInAttrs>, ...children: DenormChildren[]) => SVGFEBlendElement;
|
|
111
|
+
export declare const feColorMatrix: (attrs?: DenormAttrs<SVGFEColorMatrixElement, SVGFilterPrimitiveInAttrs>, ...children: DenormChildren[]) => SVGFEColorMatrixElement;
|
|
112
|
+
export declare const feComponentTransfer: (attrs?: DenormAttrs<SVGFEComponentTransferElement, SVGFilterPrimitiveInAttrs>, ...children: DenormChildren[]) => SVGFEComponentTransferElement;
|
|
113
|
+
export declare const feComposite: (attrs?: DenormAttrs<SVGFECompositeElement, SVGFilterPrimitiveInAttrs>, ...children: DenormChildren[]) => SVGFECompositeElement;
|
|
114
|
+
export declare const feConvolveMatrix: (attrs?: DenormAttrs<SVGFEConvolveMatrixElement, SVGFilterPrimitiveInAttrs>, ...children: DenormChildren[]) => SVGFEConvolveMatrixElement;
|
|
115
|
+
export declare const feDiffuseLighting: (attrs?: DenormAttrs<SVGFEDiffuseLightingElement, SVGFilterPrimitiveInAttrs & SVGLightingAttrs>, ...children: DenormChildren[]) => SVGFEDiffuseLightingElement;
|
|
116
|
+
export declare const feDisplacementMap: (attrs?: DenormAttrs<SVGFEDisplacementMapElement, SVGFilterPrimitiveInAttrs>, ...children: DenormChildren[]) => SVGFEDisplacementMapElement;
|
|
117
|
+
export declare const feDistantLight: (attrs?: DenormAttrs<SVGFEDistantLightElement, object>, ...children: DenormChildren[]) => SVGFEDistantLightElement;
|
|
118
|
+
export declare const feDropShadow: (attrs?: DenormAttrs<SVGFEDropShadowElement, SVGFilterPrimitiveInAttrs & SVGFloodAttrs>, ...children: DenormChildren[]) => SVGFEDropShadowElement;
|
|
119
|
+
export declare const feFlood: (attrs?: DenormAttrs<SVGFEFloodElement, SVGFloodAttrs & SVGFilterPrimitiveInAttrs>, ...children: DenormChildren[]) => SVGFEFloodElement;
|
|
120
|
+
export declare const feFuncA: (attrs?: DenormAttrs<SVGFEFuncAElement, object>, ...children: DenormChildren[]) => SVGFEFuncAElement;
|
|
121
|
+
export declare const feFuncB: (attrs?: DenormAttrs<SVGFEFuncBElement, object>, ...children: DenormChildren[]) => SVGFEFuncBElement;
|
|
122
|
+
export declare const feFuncG: (attrs?: DenormAttrs<SVGFEFuncGElement, object>, ...children: DenormChildren[]) => SVGFEFuncGElement;
|
|
123
|
+
export declare const feFuncR: (attrs?: DenormAttrs<SVGFEFuncRElement, object>, ...children: DenormChildren[]) => SVGFEFuncRElement;
|
|
124
|
+
export declare const feGaussianBlur: (attrs?: DenormAttrs<SVGFEGaussianBlurElement, SVGFilterPrimitiveInAttrs>, ...children: DenormChildren[]) => SVGFEGaussianBlurElement;
|
|
125
|
+
export declare const feImage: (attrs?: DenormAttrs<SVGFEImageElement, SVGFilterPrimitiveInAttrs>, ...children: DenormChildren[]) => SVGFEImageElement;
|
|
126
|
+
export declare const feMerge: (attrs?: DenormAttrs<SVGFEMergeElement, object>, ...children: DenormChildren[]) => SVGFEMergeElement;
|
|
127
|
+
export declare const feMergeNode: (attrs?: DenormAttrs<SVGFEMergeNodeElement, object>, ...children: DenormChildren[]) => SVGFEMergeNodeElement;
|
|
128
|
+
export declare const feMorphology: (attrs?: DenormAttrs<SVGFEMorphologyElement, SVGFilterPrimitiveInAttrs>, ...children: DenormChildren[]) => SVGFEMorphologyElement;
|
|
129
|
+
export declare const feOffset: (attrs?: DenormAttrs<SVGFEOffsetElement, SVGFilterPrimitiveInAttrs>, ...children: DenormChildren[]) => SVGFEOffsetElement;
|
|
130
|
+
export declare const fePointLight: (attrs?: DenormAttrs<SVGFEPointLightElement, object>, ...children: DenormChildren[]) => SVGFEPointLightElement;
|
|
131
|
+
export declare const feSpecularLighting: (attrs?: DenormAttrs<SVGFESpecularLightingElement, SVGFilterPrimitiveInAttrs & SVGLightingAttrs>, ...children: DenormChildren[]) => SVGFESpecularLightingElement;
|
|
132
|
+
export declare const feSpotLight: (attrs?: DenormAttrs<SVGFESpotLightElement, object>, ...children: DenormChildren[]) => SVGFESpotLightElement;
|
|
133
|
+
export declare const feTile: (attrs?: DenormAttrs<SVGFETileElement, SVGFilterPrimitiveInAttrs>, ...children: DenormChildren[]) => SVGFETileElement;
|
|
134
|
+
export declare const feTurbulence: (attrs?: DenormAttrs<SVGFETurbulenceElement, SVGFilterPrimitiveInAttrs>, ...children: DenormChildren[]) => SVGFETurbulenceElement;
|
|
135
|
+
export declare const filter: (attrs?: DenormAttrs<SVGFilterElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGFilterElement;
|
|
136
|
+
export declare const foreignObject: (attrs?: DenormAttrs<SVGForeignObjectElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGForeignObjectElement;
|
|
137
|
+
export declare const g: (attrs?: DenormAttrs<SVGGElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGGElement;
|
|
138
|
+
export declare const image: (attrs?: DenormAttrs<SVGImageElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGImageElement;
|
|
139
|
+
export declare const line: (attrs?: DenormAttrs<SVGLineElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGLineElement;
|
|
140
|
+
export declare const linearGradient: (attrs?: DenormAttrs<SVGLinearGradientElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGLinearGradientElement;
|
|
141
|
+
export declare const marker: (attrs?: DenormAttrs<SVGMarkerElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGMarkerElement;
|
|
142
|
+
export declare const mask: (attrs?: DenormAttrs<SVGMaskElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGMaskElement;
|
|
143
|
+
export declare const metadata: (attrs?: DenormAttrs<SVGMetadataElement, object>, ...children: DenormChildren[]) => SVGMetadataElement;
|
|
144
|
+
export declare const mpath: (attrs?: DenormAttrs<SVGMPathElement, object>, ...children: DenormChildren[]) => SVGMPathElement;
|
|
145
|
+
export declare const path: (attrs?: DenormAttrs<SVGPathElement, SVGPresentationAttrs & SVGPathExtraAttrs>, ...children: DenormChildren[]) => SVGPathElement;
|
|
146
|
+
export declare const pattern: (attrs?: DenormAttrs<SVGPatternElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGPatternElement;
|
|
147
|
+
export declare const polygon: (attrs?: DenormAttrs<SVGPolygonElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGPolygonElement;
|
|
148
|
+
export declare const polyline: (attrs?: DenormAttrs<SVGPolylineElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGPolylineElement;
|
|
149
|
+
export declare const radialGradient: (attrs?: DenormAttrs<SVGRadialGradientElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGRadialGradientElement;
|
|
150
|
+
export declare const rect: (attrs?: DenormAttrs<SVGRectElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGRectElement;
|
|
151
|
+
export declare const script: (attrs?: DenormAttrs<SVGScriptElement, object>, ...children: DenormChildren[]) => SVGScriptElement;
|
|
152
|
+
export declare const set: (attrs?: DenormAttrs<SVGSetElement, SVGAnimationTimingAttrs>, ...children: DenormChildren[]) => SVGSetElement;
|
|
153
|
+
export declare const stop: (attrs?: DenormAttrs<SVGStopElement, SVGStopAttrs>, ...children: DenormChildren[]) => SVGStopElement;
|
|
154
|
+
export declare const style: (attrs?: DenormAttrs<SVGStyleElement, object>, ...children: DenormChildren[]) => SVGStyleElement;
|
|
155
|
+
export declare const svg: (attrs?: DenormAttrs<SVGSVGElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGSVGElement;
|
|
156
|
+
export declare const svgswitch: (attrs?: DenormAttrs<SVGSwitchElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGSwitchElement;
|
|
157
|
+
export declare const symbol: (attrs?: DenormAttrs<SVGSymbolElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGSymbolElement;
|
|
158
|
+
export declare const text: (attrs?: DenormAttrs<SVGTextElement, SVGTextPresentationAttrs>, ...children: DenormChildren[]) => SVGTextElement;
|
|
159
|
+
export declare const textPath: (attrs?: DenormAttrs<SVGTextPathElement, SVGTextPresentationAttrs>, ...children: DenormChildren[]) => SVGTextPathElement;
|
|
160
|
+
export declare const title: (attrs?: DenormAttrs<SVGTitleElement, object>, ...children: DenormChildren[]) => SVGTitleElement;
|
|
161
|
+
export declare const tspan: (attrs?: DenormAttrs<SVGTSpanElement, SVGTextPresentationAttrs>, ...children: DenormChildren[]) => SVGTSpanElement;
|
|
162
|
+
export declare const use: (attrs?: DenormAttrs<SVGUseElement, SVGPresentationAttrs>, ...children: DenormChildren[]) => SVGUseElement;
|
|
163
|
+
export declare const view: (attrs?: DenormAttrs<SVGViewElement, object>, ...children: DenormChildren[]) => SVGViewElement;
|
package/lib/esm/ssg/ssg.js
CHANGED
|
@@ -1,47 +1,6 @@
|
|
|
1
|
+
import { isNested, propsFromElement, scanAllUnits } from "../dom/dom.js";
|
|
1
2
|
import { buildPayload, captureStubSource } from "../dom/hydrate.js";
|
|
2
3
|
import { renderToString } from "../dom/render.js";
|
|
3
|
-
/**
|
|
4
|
-
* Walk `root` depth-first and return every element whose localName is a
|
|
5
|
-
* defined custom element, in document order including nested ones. Descends
|
|
6
|
-
* into matched elements so the full set of custom elements is returned.
|
|
7
|
-
*/
|
|
8
|
-
function scanAllUnits(root) {
|
|
9
|
-
const results = [];
|
|
10
|
-
const stack = [...root.children].reverse();
|
|
11
|
-
while (stack.length > 0) {
|
|
12
|
-
const el = stack.pop();
|
|
13
|
-
if (customElements.get(el.localName)) {
|
|
14
|
-
results.push(el);
|
|
15
|
-
}
|
|
16
|
-
// Always descend — nested custom elements are included in the full set.
|
|
17
|
-
for (let i = el.children.length - 1; i >= 0; i--) {
|
|
18
|
-
stack.push(el.children[i]);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return results;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Return true if el has a custom-element ancestor in the given units list.
|
|
25
|
-
*/
|
|
26
|
-
function isNested(el, allUnits) {
|
|
27
|
-
let parent = el.parentElement;
|
|
28
|
-
while (parent !== null) {
|
|
29
|
-
if (allUnits.includes(parent))
|
|
30
|
-
return true;
|
|
31
|
-
parent = parent.parentElement;
|
|
32
|
-
}
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Extract a Record<string,unknown> from an element's attribute list.
|
|
37
|
-
*/
|
|
38
|
-
function attrsToProps(el) {
|
|
39
|
-
const props = {};
|
|
40
|
-
for (const attr of el.attributes) {
|
|
41
|
-
props[attr.name] = attr.value;
|
|
42
|
-
}
|
|
43
|
-
return props;
|
|
44
|
-
}
|
|
45
4
|
export async function build({ pages, out, fs }) {
|
|
46
5
|
for (const { route, module } of pages) {
|
|
47
6
|
const body = await module.default();
|
|
@@ -51,7 +10,7 @@ export async function build({ pages, out, fs }) {
|
|
|
51
10
|
const template = window.document.createElement("template");
|
|
52
11
|
template.innerHTML = bodyStr;
|
|
53
12
|
const allUnits = scanAllUnits(template.content);
|
|
54
|
-
const props = allUnits.map(
|
|
13
|
+
const props = allUnits.map(propsFromElement);
|
|
55
14
|
if (props.length > 0) {
|
|
56
15
|
const payload = buildPayload(props);
|
|
57
16
|
headStr += `<script type="application/json" id="__hydration">${payload}</script>`;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.es2024.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../node_modules/typescript/lib/lib.esnext.float16.d.ts","../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../src/assert.ts","../../src/awaitable.ts","../../src/case.ts","../../src/debounce.ts","../../src/range.ts","../../src/result.ts","../../src/diff.ts","../../src/diff.test.ts","../../src/display.ts","../../src/equal.ts","../../src/equal.test.ts","../../src/fs.ts","../../src/fs.test.ts","../../src/fs_node.ts","../../src/generator.ts","../../src/generator.test.ts","../../src/lock.ts","../../src/lock.test.ts","../../src/log.ts","../../src/log.feature.test.ts","../../src/log.test.ts","../../src/result.test.ts","../../src/safe.ts","../../node_modules/typescript/lib/typescript.d.ts","../../node_modules/ts-blank-space/out/index.d.ts","../../src/transpile.mjs","../../src/dom/types/css.ts","../../node_modules/@types/node/compatibility/disposable.d.ts","../../node_modules/@types/node/compatibility/indexable.d.ts","../../node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/@types/node/compatibility/index.d.ts","../../node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../node_modules/@types/node/web-globals/domexception.d.ts","../../node_modules/@types/node/web-globals/events.d.ts","../../node_modules/undici-types/header.d.ts","../../node_modules/undici-types/readable.d.ts","../../node_modules/undici-types/file.d.ts","../../node_modules/undici-types/fetch.d.ts","../../node_modules/undici-types/formdata.d.ts","../../node_modules/undici-types/connector.d.ts","../../node_modules/undici-types/client.d.ts","../../node_modules/undici-types/errors.d.ts","../../node_modules/undici-types/dispatcher.d.ts","../../node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/undici-types/global-origin.d.ts","../../node_modules/undici-types/pool-stats.d.ts","../../node_modules/undici-types/pool.d.ts","../../node_modules/undici-types/handlers.d.ts","../../node_modules/undici-types/balanced-pool.d.ts","../../node_modules/undici-types/agent.d.ts","../../node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/undici-types/mock-agent.d.ts","../../node_modules/undici-types/mock-client.d.ts","../../node_modules/undici-types/mock-pool.d.ts","../../node_modules/undici-types/mock-errors.d.ts","../../node_modules/undici-types/proxy-agent.d.ts","../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/undici-types/retry-handler.d.ts","../../node_modules/undici-types/retry-agent.d.ts","../../node_modules/undici-types/api.d.ts","../../node_modules/undici-types/interceptors.d.ts","../../node_modules/undici-types/util.d.ts","../../node_modules/undici-types/cookies.d.ts","../../node_modules/undici-types/patch.d.ts","../../node_modules/undici-types/websocket.d.ts","../../node_modules/undici-types/eventsource.d.ts","../../node_modules/undici-types/filereader.d.ts","../../node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/undici-types/content-type.d.ts","../../node_modules/undici-types/cache.d.ts","../../node_modules/undici-types/index.d.ts","../../node_modules/@types/node/web-globals/fetch.d.ts","../../node_modules/@types/node/web-globals/navigator.d.ts","../../node_modules/@types/node/web-globals/storage.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/inspector.generated.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/sea.d.ts","../../node_modules/@types/node/sqlite.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/parse5/dist/common/html.d.ts","../../node_modules/parse5/dist/common/token.d.ts","../../node_modules/parse5/dist/common/error-codes.d.ts","../../node_modules/parse5/dist/tokenizer/preprocessor.d.ts","../../node_modules/entities/dist/esm/generated/decode-data-html.d.ts","../../node_modules/entities/dist/esm/generated/decode-data-xml.d.ts","../../node_modules/entities/dist/esm/decode-codepoint.d.ts","../../node_modules/entities/dist/esm/decode.d.ts","../../node_modules/parse5/dist/tokenizer/index.d.ts","../../node_modules/parse5/dist/tree-adapters/interface.d.ts","../../node_modules/parse5/dist/parser/open-element-stack.d.ts","../../node_modules/parse5/dist/parser/formatting-element-list.d.ts","../../node_modules/parse5/dist/parser/index.d.ts","../../node_modules/parse5/dist/tree-adapters/default.d.ts","../../node_modules/parse5/dist/serializer/index.d.ts","../../node_modules/parse5/dist/common/foreign-content.d.ts","../../node_modules/parse5/dist/index.d.ts","../../node_modules/tough-cookie/dist/index.d.ts","../../node_modules/@types/jsdom/base.d.ts","../../node_modules/@types/jsdom/index.d.ts","../../src/dom/dom.ts","../../src/dom/html.ts","../../src/components/children.ts","../../src/components/accordion.ts","../../src/components/alert.ts","../../src/dom/fc.ts","../../src/components/button_bar.ts","../../src/components/card.ts","../../src/components/form.ts","../../src/components/link.ts","../../src/components/modal.ts","../../src/components/nav.ts","../../src/components/property.ts","../../src/components/tabs.ts","../../src/components/index.ts","../../src/components/components.feature.test.ts","../../src/components/components.test.ts","../../src/dom/css/constants.ts","../../src/dom/css/sizing.ts","../../src/components/inline_edit.ts","../../src/components/logger.ts","../../src/components/select.ts","../../src/components/virtual_scroll.ts","../../src/components/virtual_scroll.test.ts","../../src/dom/svg.ts","../../src/dom/dom.test.ts","../../src/dom/fc.test.ts","../../src/dom/hydrate.ts","../../src/dom/fcc.test.ts","../../src/dom/html.test.ts","../../src/dom/render.ts","../../src/ssg/ssg.ts","../../src/dom/hydrate.test.ts","../../src/dom/index.ts","../../src/observable/observable.ts","../../src/dom/observable.ts","../../src/dom/observable.test.ts","../../src/dom/provide.ts","../../src/dom/render.test.ts","../../src/dom/svg.test.ts","../../src/dom/xml.ts","../../src/dom/css/core.ts","../../src/dom/css/border.ts","../../src/dom/css/fstyle.ts","../../src/dom/types/html.ts","../../src/dom/form/form.ts","../../src/dom/form/form.app.ts","../../src/dom/form/form.test.ts","../../src/dom/navigation/index.ts","../../src/dom/navigation/interceptor.test.ts","../../src/dom/navigation/interceptor.unit.test.ts","../../src/dom/navigation/navigation.test.ts","../../src/dom/navigation/view-transitions.test.ts","../../src/dom/router/router.ts","../../src/dom/router/link.ts","../../src/dom/types/dom.ts","../../src/observable/event.ts","../../src/observable/observable.test.ts","../../src/server/http/response.ts","../../src/server/http/apps.ts","../../src/server/http/css.ts","../../src/server/http/sitemap.ts","../../src/server/http/static.ts","../../src/server/http/typescript.ts","../../src/server/http/index.ts","../../src/server/ws/frame.ts","../../src/server/ws/handshake.ts","../../src/server/ws/index.ts","../../src/server/live-reload.ts","../../src/server/live-reload.test.ts","../../src/server/main.test.ts","../../src/server/main.ts","../../src/server/http/sitemap.test.ts","../../src/server/http/typescript.test.ts","../../src/server/ws/frame.test.ts","../../src/server/ws/handshake.test.ts","../../src/server/ws/index.test.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/rollup/dist/rollup.d.ts","../../node_modules/@rollup/plugin-node-resolve/types/index.d.ts","../../src/ssg/bundle.ts","../../src/ssg/copy-public.ts","../../src/ssg/discover.ts","../../src/ssg/discover.feature.test.ts","../../src/ssg/rewrite.ts","../../src/ssg/main.ts","../../src/ssg/ssg.test.ts","../../node_modules/@types/dom-navigation/ts5.9/index.d.ts","../../node_modules/@types/resolve/index.d.ts","../../node_modules/@types/tough-cookie/index.d.ts"],"fileIdsList":[[115,163,180,181,312],[115,163,180,181],[115,163,174,180,181,209,213,230,231,233],[115,163,180,181,232],[115,160,161,163,180,181],[115,162,163,180,181],[163,180,181],[115,163,168,180,181,198],[115,163,164,169,174,180,181,183,195,206],[115,163,164,165,174,180,181,183],[110,111,112,115,163,180,181],[115,163,166,180,181,207],[115,163,167,168,175,180,181,184],[115,163,168,180,181,195,203],[115,163,169,171,174,180,181,183],[115,162,163,170,180,181],[115,163,171,172,180,181],[115,163,173,174,180,181],[115,162,163,174,180,181],[115,163,174,175,176,180,181,195,206],[115,163,174,175,176,180,181,190,195,198],[115,156,163,171,174,177,180,181,183,195,206],[115,163,174,175,177,178,180,181,183,195,203,206],[115,163,177,179,180,181,195,203,206],[113,114,115,116,117,118,119,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212],[115,163,174,180,181],[115,163,180,181,182,206],[115,163,171,174,180,181,183,195],[115,163,180,181,184],[115,163,180,181,185],[115,162,163,180,181,186],[115,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212],[115,163,180,181,188],[115,163,180,181,189],[115,163,174,180,181,190,191],[115,163,180,181,190,192,207,209],[115,163,175,180,181],[115,163,174,180,181,195,196,198],[115,163,180,181,197,198],[115,163,180,181,195,196],[115,163,180,181,198],[115,163,180,181,199],[115,160,163,180,181,195,200,206],[115,163,174,180,181,201,202],[115,163,180,181,201,202],[115,163,168,180,181,183,195,203],[115,163,180,181,204],[115,163,180,181,183,205],[115,163,177,180,181,189,206],[115,163,168,180,181,207],[115,163,180,181,195,208],[115,163,180,181,182,209],[115,163,180,181,210],[115,156,163,180,181],[115,156,163,174,176,180,181,186,195,198,206,208,209,211],[115,163,180,181,195,212],[115,163,180,181,218,219,220],[115,163,180,181,215],[115,163,180,181,214,215],[115,163,180,181,214],[115,163,180,181,214,215,216,222,223,226,227,228,229],[115,163,180,181,215,223],[115,163,180,181,214,215,216,222,223,224,225],[115,163,180,181,214,223],[115,163,180,181,223,227],[115,163,180,181,215,216,217,221],[115,163,180,181,216],[115,163,180,181,214,215,223],[115,163,180,181,311,312],[106,115,163,180,181],[115,128,132,163,180,181,206],[115,128,163,180,181,195,206],[115,123,163,180,181],[115,125,128,163,180,181,203,206],[115,163,180,181,183,203],[115,163,180,181,213],[115,123,163,180,181,213],[115,125,128,163,180,181,183,206],[115,120,121,124,127,163,174,180,181,195,206],[115,128,135,163,180,181],[115,120,126,163,180,181],[115,128,149,150,163,180,181],[115,124,128,163,180,181,198,206,213],[115,149,163,180,181,213],[115,122,123,163,180,181,213],[115,128,163,180,181],[115,122,123,124,125,126,127,128,129,130,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,150,151,152,153,154,155,163,180,181],[115,128,143,163,180,181],[115,128,135,136,163,180,181],[115,126,128,136,137,163,180,181],[115,127,163,180,181],[115,120,123,128,163,180,181],[115,128,132,136,137,163,180,181],[115,132,163,180,181],[115,126,128,131,163,180,181,206],[115,120,125,128,135,163,180,181],[115,163,180,181,195],[115,123,128,149,163,180,181,211,213],[115,163,180,181,234,235,236],[115,163,180,181,234,235],[91,115,163,180,181,235,239],[115,163,180,181,234],[115,161,163,180,181,200,235,248],[115,163,180,181,237,238,241,242,243,244,245,246,247],[115,163,180,181,235,239,252],[91,101,115,163,180,181,235],[115,163,180,181,234,235,239],[115,161,163,180,181,200,235,239,256],[86,115,163,180,181,235,239],[89,115,161,163,180,181,200],[87,88,115,163,180,181],[109,115,163,180,181,251,275],[115,163,180,181,251],[85,109,115,163,180,181],[115,161,163,180,181,200,234,235,258],[83,109,115,163,180,181,232,233],[115,161,163,180,181,200,235,239],[115,161,163,180,181,200,234,235,239,258,261],[115,163,180,181,235,279],[115,161,163,180,181,200,279],[115,163,180,181,234,235,278],[115,161,163,180,181,200,235],[94,115,161,163,180,181,200,235,239,261,265],[115,163,180,181,234,239],[115,163,180,181,235,239],[115,163,180,181,261],[115,161,163,180,181,200,232,233,235,239,261,282],[115,161,163,180,181,200,232,233,282],[115,161,163,180,181,200,235,239,261,282],[115,161,163,180,181,200,234,235,268,269],[115,163,180,181,268],[88,115,163,180,181],[115,161,163,180,181,200,235,239,258,264],[115,163,180,181,235,287],[115,163,180,181,234,288],[115,161,163,180,181,200,234,258],[109,115,163,180,181],[92,115,161,163,180,181,200],[94,115,161,163,180,181,200],[83,115,163,180,181],[94,115,163,176,180,181,185],[97,115,161,163,180,181,200],[99,115,161,163,180,181,200],[101,115,161,163,180,181,200],[91,115,163,180,181],[91,115,163,180,181,268],[115,161,163,180,181,200,268],[83,91,101,115,163,180,181],[88,115,161,163,180,181,200],[101,115,163,180,181],[115,163,176,180,181,185,292,298],[101,115,163,177,180,181,183,185,292,293,294,295,296,297],[115,163,175,176,180,181,298],[115,161,163,175,177,180,181,184,185,200,295],[101,115,163,176,180,181,185,292,298],[115,161,163,175,177,180,181,184,185,200,297],[108,115,163,176,180,181,185,292,298],[115,161,163,176,180,181,184,185,200,302],[115,163,175,176,180,181,183,185,292,298,301],[115,161,163,164,180,181,185,187,200],[101,115,163,180,181,185,187,207,298],[115,161,163,180,181,200,299],[115,161,163,177,180,181,195,200,300],[115,163,168,177,180,181,195],[115,161,163,177,180,181,183,200,301],[115,163,177,180,181,195,299,300],[107,115,163,180,181,185,265,312,313],[115,163,176,180,181,185],[83,115,161,163,180,181,185,200,206,264,316],[115,163,176,180,181,185,265],[96,115,163,176,180,181,185,187,207,212,265,314,315,316,318],[94,115,161,163,180,181,200,235,239,265],[94,115,163,180,181,234,261,264],[107,115,163,180,181]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"75050a0308a3c92af9cbc00858097393fb52dcea2ff2d6c3b0a81f1f345dca0a","signature":"9a4a5be871680d98815c4b2a5c9b81cc87fe105bd0ce4173e658dfd0ceace3ab"},"8175d68354a805ca6dd8564a10ff937a48a8dcd18fca2d8fd74eb27b55e9be00",{"version":"1b34da3536d5f1b18ee6c36173839c58c222dd2313542efda615081eeb9aa9f2","signature":"1166696f6d7c6b6bf21d81a0920c6caca6377948505f77a806903aba41586f00"},{"version":"1f12e2eddd685a2bc9ce31b326e16991cb18f89a9d3ef61dea4fe5922ff46cb8","signature":"8910beb45752f65e53888a6615c1c025e0c47a9287bc41a3b3dcb5f610db901e"},{"version":"d0d9d65cb2b34879b7938e8f51a95c1e9745c8d3a86e64d4bc68566e8848fde4","signature":"c80cd6d23f15ec4e955cb5309270dc901046b294104271e090f96f36bf3be78f"},{"version":"a9f83e0ede548e205af4a813f582da1c4d0eb9506792ead41ea956764480a94a","signature":"98fda69d777eb6ec47bee9d4d66054be1eee1190b88c6fcd4d1747e27860afef"},{"version":"35cc94b11ffc54248eb2503435004c4f41c0634874a0bedfb07d88ae8ffb2a04","signature":"a9c8601578b2ea9382f9153552963ff7d871ebafc4668162dcc12a6dd3d2af74"},{"version":"fb49d0276a45eba66de22c8e6677be36efce176216fd8b4393e2399add1832cf","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f92660f80d3a9ad4305fec6f31e1cca8a38d504ddc1ccec874e7a277ad1781cf","signature":"1c4c3028fb01cc906e7d23506e2b46cf1655b933d19ea346e064faa33eeb2ef8"},{"version":"b3ee4d945382be7f416d71677f535b3da3ac0e64c0e6171e4511169baf36cc2b","signature":"e7e4e91a69c9768fdc40a45fae0119d50273b2318d8ec427f0842a2a6ff6f58b"},{"version":"0dea524c55fc7f30a64d636bc61ba6fbe169d4cee3d7cb906f4f68487e16dee2","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"39eaf8c42d99a593adbf11fe1a94757484766c3d9d0e43dd46e6612f5eaba696","signature":"fa203f7e622e5d2b18d2ee2f15fa373663ee6628b05b1e74d544d5652cd29e95"},{"version":"d17a2a3b0b9f6ea658401dc6b9bc1bedb77071053c2f5352b2f570cdd0e50f3c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2c7a51b3b024a94abd4a25be8e3e171877c18dfb64ee2056d681c1893b90930a","signature":"278ea122a14fa121523945a5354b1238c58886454e6e8b9714fcd0773bdca971"},{"version":"d9a8b057c8d8f2c56d8c66a478f2d91ea2490280eeefcb0c9866534b90142cfa","signature":"8c11ef055b90b792d0c680315579747d807bf4c39cf1ca04fb1e4b93d7f7f115"},{"version":"da3e7d0abeb0aa34977b1f76fe391fcfe099354c6a3f75432af3ba72a1239189","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"913641d4e309350a3bf78837eb02278e56fdf346602f50f76ac082bdd66d6e8a","signature":"57f3cf85192cbd3d29037b19b694eb3531b5560e33e8b33c0f53bd272b23fad9"},{"version":"ac30c74062bee7dcdd8d7981ad1ec264c1e4be536ec27b2cf2777ad2a913f410","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"45dcc37a111d4faa68c30230c72f70e1c1f71bec660da52c824586d6043f818d","signature":"27ffecc07401acadbe409fe3381087d0fba2078894f19a83efa703a2221116ba"},{"version":"63e903fdbd3d7b39a6c5f5c3635b15d06246203d53ce2bd0281e84e7f0f4d06e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"969ef67f0cbf938468b8e8db7724e0c60f488685a1ada36be3af8a1dbaf96ead","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4d25171a81f59ef52b3e3256eb298fa5ec594c69644c6ab350f4504cd820ef07","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"1e40ba99de5e5137c3fb6534e4b9fe77f189ffd09e7ced8ba8e0b562fd63f60f","signature":"5daeef6015e6fab783a62d5e1e007070f41f97afc2fadef10fbe26f7489a3359"},{"version":"e134052a6b1ded61693b4037f615dc72f14e2881e79c1ddbff6c514c8a516b05","impliedFormat":1},{"version":"59c397b60d5a7de82181cd6e494025c47e36a1ddb5003f5f2b2534d312af0c0c","impliedFormat":99},{"version":"1d9f6fa49edb84034a3ff1d0d7d2be380ac1007966047e75d1f1855b7ccb9020","signature":"177af28a70bbab93e5eb1d6a4b79bd5fdc122824f8ec130273a17e2ab1f886dd","impliedFormat":99},{"version":"06dc743f9070b48f6958dc9e6fc0000424de804982906b7ba9e17083bb2574c9","signature":"1474e3a2149f94378f0962d5545304644ab344c9d178d730e06aef6ae8163d65"},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"58647d85d0f722a1ce9de50955df60a7489f0593bf1a7015521efe901c06d770","impliedFormat":1},{"version":"73b5fa37db36eeac90c4d752e39586f1b57187400c4f5280fd05f16437287a45","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"80523c00b8544a2000ae0143e4a90a00b47f99823eb7926c1e03c494216fc363","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"746911b62b329587939560deb5c036aca48aece03147b021fa680223255d5183","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c8d3e5a18ba35629954e48c4cc8f11dc88224650067a172685c736b27a34a4dc","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2b55d426ff2b9087485e52ac4bc7cfafe1dc420fc76dad926cd46526567c501a","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1},{"version":"19990350fca066265b2c190c9b6cde1229f35002ea2d4df8c9e397e9942f6c89","impliedFormat":99},{"version":"8fb8fdda477cd7382477ffda92c2bb7d9f7ef583b1aa531eb6b2dc2f0a206c10","impliedFormat":99},{"version":"66995b0c991b5c5d42eff1d950733f85482c7419f7296ab8952e03718169e379","impliedFormat":99},{"version":"9863f888da357e35e013ca3465b794a490a198226bd8232c2f81fb44e16ff323","impliedFormat":99},{"version":"84bc2d80326a83ee4a6e7cba2fd480b86502660770c0e24da96535af597c9f1e","impliedFormat":99},{"version":"ea27768379b866ee3f5da2419650acdb01125479f7af73580a4bceb25b79e372","impliedFormat":99},{"version":"598931eeb4362542cae5845f95c5f0e45ac668925a40ce201e244d7fe808e965","impliedFormat":99},{"version":"da9ef88cde9f715756da642ad80c4cd87a987f465d325462d6bc2a0b11d202c8","impliedFormat":99},{"version":"b4c6184d78303b0816e779a48bef779b15aea4a66028eb819aac0abee8407dea","impliedFormat":99},{"version":"db085d2171d48938a99e851dafe0e486dce9859e5dfa73c21de5ed3d4d6fb0c5","impliedFormat":99},{"version":"62a3ad1ddd1f5974b3bf105680b3e09420f2230711d6520a521fab2be1a32838","impliedFormat":99},{"version":"a77be6fc44c876bc10c897107f84eaba10790913ebdcad40fcda7e47469b2160","impliedFormat":99},{"version":"06cf55b6da5cef54eaaf51cdc3d4e5ebf16adfdd9ebd20cec7fe719be9ced017","impliedFormat":99},{"version":"91f5dbcdb25d145a56cffe957ec665256827892d779ef108eb2f3864faff523b","impliedFormat":99},{"version":"052ba354bab8fb943e0bc05a0769f7b81d7c3b3c6cd0f5cfa53c7b2da2a525c5","impliedFormat":99},{"version":"927955a3de5857e0a1c575ced5a4245e74e6821d720ed213141347dd1870197f","impliedFormat":99},{"version":"fec804d54cd97dd77e956232fc37dc13f53e160d4bbeeb5489e86eeaa91f7ebd","impliedFormat":99},{"version":"ef5a2229cc377ddd1b8d3fb498b161d6d47ca2d8fa5857b9cfee5ab6b945b687","impliedFormat":99},{"version":"1e00db245ee0a8b165a7ed7eebc9b9666b3836fe61b742149392010eed018814","impliedFormat":1},{"version":"af11413ffc8c34a2a2475cb9d2982b4cc87a9317bf474474eedaacc4aaab4582","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a234faf1a5897cf645f47111e2ed12ff9ec255f8c14f9c240ba2501b75d14d3","signature":"d4badf6e5ba13ef172241f1fa069f3cddd27a98fa7fb7f2d4d43e7b68f164f15","affectsGlobalScope":true},{"version":"b43d18f49373ea1813d8b471581ea268ee7c5e064b77c4c92ae132c4baebbfaa","signature":"073f4acb6879360890becd484a48d59b2781eeb90ec684026d1be7932883379a"},{"version":"a625f6ebd9c889d73b3f0387b58b20a9134dbd1cdddb995063cc108f434d94d7","signature":"0bc93f3a562630329d928ae330c54bd08a074aa9cae8cd17b965edd457b979a8"},{"version":"5813e082d944dfa12755b79842da674ea6e0472b29633e0d67fff40c181907af","signature":"c4f516c63b03784beed76091b18f22d95f2cd4605dcfd0cfe11f39216578ebd6"},{"version":"8de894939a3115539e39a1685c4d9749b78f72fd19b58068b1497e42726061cb","signature":"54153284a5846ef33ee77484df716555ec453aaec249af50eb0e83dbb950f6bf"},{"version":"c5035a2240e25b7d9c1ddfecd706e34339b2d87ab8cd8e797e3d4f5a620a63d3","signature":"66d5d78241cbea189209fc69d72d25275665aa73037978c79dc1a1a8a91ad48e"},{"version":"d891ae44685d2ed85ca66bab3b0230f6dd37e5ef5bc0e2b27963aecca723fc94","signature":"26150ac03460b398a285ef24e592b48b211c6a14febd2f20a07910170322afe1"},{"version":"fd7bbc231008c780db7114040962dd0b611645caad7574e47c30944dd57bee05","signature":"f3933340d8783303aab6d496f6d790fd4f23a3a78c6b0cf5ac9268d100e238d1"},{"version":"f915624d4085d4d106ea34eb23116f34a50bf43e5643f50a966b3f33168485e1","signature":"8476bf9654a55f70510582da019b3f92e1656842a69656c123e2334dc4bc6a99"},{"version":"6aa9629a2ccc0a8449cdb90e8d8accdff90a0b2734d05051540c0e2ffa05750a","signature":"6af91ac25da2ad303814a29da116aa301b460f6b08b4952d67e085bd96f610e5"},{"version":"382ba90b9310fbc3b3a794336a455fb00815fd7f33dff78cc9164846425d5136","signature":"d535c6221e4878c3a92c9fcce4fa6d41059f3823367190561c5103e944644e43"},{"version":"836731e19e57eac6ec3aa98791707785bf2601479b71087d1970ef422a1aa834","signature":"f1661260b4428700c6916f624733e6ef5cbb6216b61a501b39e0756cb17216db"},{"version":"f6e4da59d48ecb364945247b34b2db0590e4cf8f92a63dc355f1da2303b03dfb","signature":"99b6eb3988874fd1bde542702636ce497f4132638350d82c8dbcce82f1b8e868"},{"version":"11ebf566f1123232cde702090298833b0a394ab1625297af592e931d62b2ff21","signature":"afeff69a9e0dec7f3e6272424eae31f9026a3ceeb41097861828033b7a74ec7b"},{"version":"375ee751c7f524ff7e93dda8b68bab49642e14ae5d7d71290197c2af4153e043","signature":"3dea06e94cd0c96a5191b2838ad2338faca536caaa9e09aed0e3caa0cb4ad18f"},{"version":"6af7d88e6242a40edabe99097f563aca8c4c618dfa75da67ca89aa0a6da0f31e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"eec3125f675bad43de550839f9054f6f5c7d8839dae5bc2c4db1b3cb29cc8362","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a412c2527733835920aefb27b3b89a406845fca19e9b28dc69265036f4b9c796","signature":"ae4a1deb65a8dae8a38d6a6d0defed5ab253ad14121248f083cb16f4e801de86"},{"version":"19a2c8bc4812d51e96fbb91dc9e35d6be7cb1b813dc08dbf51ceee38a59a55f5","signature":"c3924aaca6d81588577d6f219b34c852c4b8120102ba8ff1be9c784bb2b85942"},{"version":"2912f8d38b06a69a423b29d810767419429636f249578677fd43a558621c8fd3","signature":"2f55ff36d145b4e9b8fcb09d4532db48eac461a34618bb740a4bbe0f1a975202"},{"version":"59286529fe7df00085b8c4f175686e120218f18a2fa999e86155d5aa1e7f4ca3","signature":"39e9ec4c2b6eaf4dc29973770ed1ab98294987dbe009cd9afaa933fa2d59cd27"},{"version":"3dbadd8fa5cae3faa30208731464d834fc43bc2998863d871c361d617d4b57a2","signature":"2149bd521d278206e2f19d407c3fabe76168094616faca3ae9cd32aa898b15c9"},{"version":"3ac3f5eaac0e867419cf009245767a4a1464739de05e8074ff1a32eda038012c","signature":"8119d1079ad2f0970bbef6252f8c195e86e0c36c5844a7192aa8492292411c86"},{"version":"678351037b118a5d3ac7b943a49c4e9b6efc99de23ddb394b1fee0274cfd290d","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7bd076d57999156d83cbed318ec1e8c65a9e01d92be871db76a6ee7795b6bdcb","signature":"97f6f4c303bd36cc7d5f8fab4d6772018ba840fa93b6326244d1acf1d63996df"},{"version":"e43fe9f6c2ece518d37ac8a1687a5e8b31df73d75fd67a7f2c228e6e5f8cdf04","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"294cd7556f617d4ca0ede45c310519d325e33b8ca24d0993ecde14e27cd1f48e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4a4f2a9d1ab93964e0c43bf9f5511e1420b6191ac9bfc001f5bb3defc8ea9a04","signature":"1731bc6780c0b662c7b48d9247eb978ca94f77295e80de4c53b49a38056885cc"},{"version":"bfda1f78cad8e4679343ac86c82ac9736642329230e1ad7f225397ad9a82518f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c47bf187472f8cc395234e41abf00c299b4ea5348e2358163378cfbab4789bd0","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"dff620d69b4472ac830c94b968e073388132496388a139be1ec5b4e75708163b","signature":"32990c3a39ebe8db028e5836e45c9be86a7ff2e745e0369f012dff30d4b685ac"},{"version":"613e3434a31fee2c777ed79f8f13cdec3c2a7aee7cc0e93b3d86df094920880e","signature":"c6685a756ff099911eb592bf5ccdb1e70b6ff4dd41d261c401b0cdcb3572b697"},{"version":"c5029d726ae5ed5d705a5f04e608b121084acfc67416693bd11b4c8e9bc6389e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"68b9c64450d7ef66e80779849bf74b8726f9fe51cb27604f6713d87f6be43bf0",{"version":"cdf71a017ff8fdb6eb41775c7cb0a0d422f82327ac0245ef4daa8dd203a1628f","signature":"2aa63de3f1a6a9a83eefa682da30fe12c294c69373609b85c709c5efe8d00473"},{"version":"616fbd302ce247bc01a3d3d1431d69a3e9ede0e5eabbb005ade166df30aed6c8","signature":"be64ca3f48232b4b1979458434ea59b5d0b60faad8b445418f8c51551634f1b5"},{"version":"4bccaf13c5e3ddc25bee426c6be0a1686190481b69376dbfc12d526e86b608a1","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c56694ca060b4757000d151236e3e564ad194e986a7974d226d908871f41bbe7","signature":"8ecdd5e51d595b377fd38f823cfe55377aefc8488174245a70045d138a3f755f"},{"version":"4b4384f472b35a373a5f3eb9ef2416072ddce046317254752a80bc102e15ca3d","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"43687ac6f92e42873a418d46e953ac6892cba76517be9516e18b450690aed6b1","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"65bd4212ecd58f12dad7359606a37f3133a84bd227f80bae437c6f8d6ea8a0d4","signature":"35ddb3737f44d680172ab064727225df06457b52a2fd7df487bf5e9f12e8b77e"},{"version":"7747ae6bdf53316ce83c0d501babb764efd795e2833ab7428206c6feb212713b","signature":"6cb89daa6924407c49cd70fe15d20ff4cad9035f283ab1f30cb846e70dd68d8f"},{"version":"abc81df5c80569486bf26f79655015e6462ff37567b38f18a51eaf6a7c2acc48","signature":"dff2df51fa8aa99de5f17bcccbf3d187b57ee109ac0dc14aa1eb29e7ca75069c"},{"version":"d8372d8fb3f3b2f46a7bf90766abdc2d22aa6241a05d94ff1de10ccdb720573e","signature":"9c2e4c055e2cf3ec29e255580f8947727f76b32dcdfb3e84c8b6da3bb2023cab"},{"version":"b062c06627e5497f5f663d97fb6cbaa5ea0f90ee13e27e6a599e6568892ab61b","signature":"1e5df85333c318a42d5dc1182dcf9d7dd1e31e822560ef8001d469ee9e8b04b3"},{"version":"5678c9e46dc73e3b0bcafebb8236c62c92e71558759c1f2e2ee58619e7c7bc9c","signature":"9636c0f44a18d21afaa06801a1ee2f4c8be2b9dd1716ae3bbcf40ad47be1ba6b"},{"version":"7e3c4b701787039f0af285b97281be1efbfd70019fc5e2f6786624ef10cd978e","signature":"7ddc765edfa0420999a079eb7df3fe76add77a26267764e0da1e8d72517ef2ea"},{"version":"ac15126b210a8def94959c83f1ee4ab5b8cc5c065d69f5e6c69c0c9b67092b7b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"5397e7dcd96a901e150d9893be355145f767d3775d6aac81818216d4e61f34d7","signature":"65c2bbb13168e3e23478140aa54f770839223c3c473f9acf9cfc534c79a3051a"},{"version":"84e2a8809f36babc3a95dee9868ca840ec3b0a407d371c2508c06dd7e30f1bb1","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9fe25edbda141b4458611f3d9e2a2f0809e2ccf79dfccba9d3f58d1e9d26f109","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"df643a96779e38f979c7d3893be3a8e8bc5b1b7915f3e493d31f9dd3ca6729b4","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"df19cb106c507274033aa3f6a88e289edb82f10970b0b2221e69d10cd6a76bad","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a0475f76600562a54c9f2375c98fc5cd9eec11e93d7b5468a75dd0cf12fec918","signature":"22bb0c0adbc8118b97658169c95d99efa81eb4d740e8510ef38b4675c5207fe8"},{"version":"ed0c740b9935fcbc2dafd04e39822b6e5135a48124f8b8a398a8b30ad520c81c","signature":"3ccda02e5750bdce0447dbf7e597a2eb16258dfa6c9c0c19572fd117f303dabb"},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"bc35c3416c458b39fab26aa0e41088482520c25743b04b5886bfbddbaf53255d","signature":"3b3835be5cec4f10afac1ab08c6ca29d936e266815c18add6416b42490c2ab60"},{"version":"b2435b0a45dd0dbd3eb7efbcdceda2b6c44f31f7fa19d46a566cd9418fdd67e8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f9b7ada2b59bbc1e05699151b89edcc4c32db22d8addbb341dd110e6fd04189a","signature":"4c39f9454455f8080a9b90a2299922bcf1eaffdc75d47ed4e4e8bf22bb222a9c"},{"version":"34dd0eb39b39c04e8c113d85f5d78d03d1eb9a25a0abb2ef1d97579b67c8cd0c","signature":"c9cb10a23430ff60f2713e99565d049b967d1a92e0aec9172df18f5ef0b557c4"},{"version":"f62462320746ef4f046970cc747f093a30b074434f3f19cb8462249a9390c899","signature":"c2b4712eaa37160174ba486a510ae4fa5fde9eb4413363f83add16a14687a281"},{"version":"5a04cec6c9e28df2a0584f02b1d5958880ffa828e1add1ec60b4b9248dc81fbe","signature":"315f8b6f95777ad5e0b811c8395f02e7a0f3c85d1fa313d931a32bd931d0164c"},{"version":"67409cbd3175ef4c1a7b042319c65aa3ce441ff5b7ea42553d131560c9aac21d","signature":"e7224a557e708e7a85fb429caf6edd3e880f0255f535a8ccdb273a84ed82edcb"},{"version":"cc809060330438b63a23a22f165f6ccee25294d942cbd0fe82e36e033ebfee04","signature":"80d68ea81cff722be83188eca96e3e5139c2e2bb4ff6968dba8e1cf3078e4ff7"},{"version":"9d9721df212fa423b1ad1f8fb54ee69a68d5f0080e0abaf883665f8414127638","signature":"98372b804a9135b6d791c3add57bceddde9b671f1ffce63da5e0ed04f9beec69"},{"version":"136ce18ea540fec868a17e57c9296102314d052bf100bd4ef85ad6bb14bc15a6","signature":"a2f69153d64011763cf73f2af66274e9105172d88a1bcf0a4b5b7087d229ae12"},{"version":"1d004806e93c72bcd3ddc39f3da21550eb367835b18735742b98ca031746f506","signature":"dd652d1f9daadcc22eb51c98b1d51d8c0a8c08be8df954e58d1e655998d16417"},{"version":"e1e6d74e46aba6a3a237892e995730e615e18512131b1e7e6d6ad62b52e4e836","signature":"5144143517f54424f44c2464c87c91b401de4a232980d0032983c69c7d197fcd"},{"version":"c73a19bbd61bc2d16521b8a7a2fb316341f75244725b7ab886022c7b692c3f48","signature":"776b9a728c706cdbc5b9eb17d5dafe2c343f1c9c069164c601e970279a595e0e"},{"version":"c117e4e9228d274fd6cd80b47594a732d153cd1bd536c9062d03265c014a37f5","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"98d2f0a15d5513c7ffef4d5489deacf6417e52bfd81c738dc9eb0ce976d381e6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"14ecdc6e18d6b4c5cb1dff3ce79e93851cf02a25cfa007e40772137fe26acce3","signature":"43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012"},{"version":"68e7900d7512cbef725838e76ea9499facab104ce38a43f22ccb1a9527c00da8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"83792b2fe60434fb80b8522d2b2b60f745b88677d5b20fa663e65a857abe5ec3","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"cbeb9e4ded53499c529f8149000ee3cde52e8668e6c4f97a38807b49f40eeea8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4e3e35668d48c5e4240e82454cfd1c24be7b7a34e7fd0fd8a64e5407039f88c9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7d2c002b15f2f72707954f3df90adef8fc02bd86fe73d9c6fde604d6a2565b9d","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"751764bb94219b4ce8f5475dc35d3de2e432fea01a0c9610cd7f69ad05e398c6","impliedFormat":1},{"version":"ee70b8037ecdf0de6c04f35277f253663a536d7e38f1539d270e4e916d225a3f","affectsGlobalScope":true,"impliedFormat":1},{"version":"1f80c9199cf76a9ccdabff0de44dd6936a11ec224ea2fba0e1b678c8edeca7ba","impliedFormat":1},{"version":"4d74edb96a327cd5086720b13896ef29c809aaf6ddc71590e26df9a07e73ecef","signature":"c3cf9267b691e015db81c6b775a1bafd5b087ceab88807cd5a84587457e33598"},{"version":"0c503acf10dd2ba045a36b15596364da547f8236cc1a4452d0b191b42ded6ccf","signature":"7512c3d280393ba0ff760a0ae04cf96e9d47f83eb6702260d00b2cab34702941"},{"version":"475c6119337479ef473cb2da68cf9624de1db025653317463e641785c299be9b","signature":"3af9881061dc0076ad39c82ed96515b763ea38778bab5d6bbd0fbee0e5e5cfd4"},{"version":"faa5d69ae91889eebc34fc19ed1709228d87e6693f93b3a6abbe3aa3418aecb1","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7d44cd5ad7bb88d8a644331941c621706a936167da8f02cf045616ea6347281f","signature":"d1fde9b6554bdd88d78817eea41f442f8d07cc0005e179e374c33e4e0cbb9319"},{"version":"dda16dc5466e98f9b37d3007cba23e88d6c463a82a1c5a60192a557292c5770c","signature":"43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012"},{"version":"e793d54c567e9ac611e6070886616bd12fe12d56db4377dd3bc3f5544e924c18","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"656b72f11074b854453f3a82ce31b4e2c1a1cbd351c83bb3cc6c13fc723fbb87","affectsGlobalScope":true,"impliedFormat":1},{"version":"8baa5d0febc68db886c40bf341e5c90dc215a90cd64552e47e8184be6b7e3358","impliedFormat":1},{"version":"03c258e060b7da220973f84b89615e4e9850e9b5d30b3a8e4840b3e3268ae8eb","impliedFormat":1}],"root":[[83,105],108,109,[234,310],[314,320]],"options":{"allowImportingTsExtensions":true,"allowJs":true,"allowUnreachableCode":false,"allowUnusedLabels":false,"checkJs":true,"declaration":true,"emitDeclarationOnly":true,"erasableSyntaxOnly":true,"exactOptionalPropertyTypes":true,"jsx":2,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"outDir":"./","skipLibCheck":true,"strict":true,"target":99},"referencedMap":[[313,1],[321,2],[311,2],[232,3],[233,4],[160,5],[161,5],[162,6],[115,7],[163,8],[164,9],[165,10],[110,2],[113,11],[111,2],[112,2],[166,12],[167,13],[168,14],[169,15],[170,16],[171,17],[172,17],[173,18],[174,19],[175,20],[176,21],[116,2],[114,2],[177,22],[178,23],[179,24],[213,25],[180,26],[181,2],[182,27],[183,28],[184,29],[185,30],[186,31],[187,32],[188,33],[189,34],[190,35],[191,35],[192,36],[193,2],[194,37],[195,38],[197,39],[196,40],[198,41],[199,42],[200,43],[201,44],[202,45],[203,46],[204,47],[205,48],[206,49],[207,50],[208,51],[209,52],[210,53],[117,2],[118,2],[119,2],[157,54],[158,2],[159,2],[211,55],[212,56],[322,2],[323,2],[220,2],[221,57],[218,2],[219,2],[216,58],[229,59],[214,2],[215,60],[230,61],[225,62],[226,63],[224,64],[228,65],[222,66],[217,67],[227,68],[223,59],[312,69],[231,2],[107,70],[81,2],[82,2],[13,2],[14,2],[16,2],[15,2],[2,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[24,2],[3,2],[25,2],[26,2],[4,2],[27,2],[31,2],[28,2],[29,2],[30,2],[32,2],[33,2],[34,2],[5,2],[35,2],[36,2],[37,2],[38,2],[6,2],[42,2],[39,2],[40,2],[41,2],[43,2],[7,2],[44,2],[49,2],[50,2],[45,2],[46,2],[47,2],[48,2],[8,2],[54,2],[51,2],[52,2],[53,2],[55,2],[9,2],[56,2],[57,2],[58,2],[60,2],[59,2],[61,2],[62,2],[10,2],[63,2],[64,2],[65,2],[11,2],[66,2],[67,2],[68,2],[69,2],[70,2],[1,2],[71,2],[72,2],[12,2],[76,2],[74,2],[79,2],[78,2],[73,2],[77,2],[75,2],[80,2],[106,2],[135,71],[145,72],[134,71],[155,73],[126,74],[125,75],[154,76],[148,77],[153,78],[128,79],[142,80],[127,81],[151,82],[123,83],[122,76],[152,84],[124,85],[129,86],[130,2],[133,86],[120,2],[156,87],[146,88],[137,89],[138,90],[140,91],[136,92],[139,93],[149,76],[131,94],[132,95],[141,96],[121,97],[144,88],[143,86],[147,2],[150,98],[83,2],[84,2],[85,2],[237,99],[238,100],[240,101],[241,99],[236,102],[249,103],[250,103],[242,100],[248,104],[253,105],[243,100],[254,106],[244,100],[245,100],[246,99],[255,107],[247,100],[257,108],[256,109],[86,2],[90,110],[89,111],[91,2],[276,112],[251,2],[275,113],[277,114],[252,113],[259,115],[234,116],[260,117],[239,102],[262,118],[280,119],[281,120],[279,121],[263,122],[235,102],[266,123],[261,124],[267,125],[282,126],[283,127],[284,128],[285,129],[286,127],[270,130],[269,131],[271,132],[272,133],[264,102],[288,134],[287,135],[273,136],[258,102],[109,2],[289,2],[278,137],[274,2],[93,138],[92,2],[95,139],[94,140],[96,141],[98,142],[97,2],[100,143],[99,2],[102,144],[103,144],[101,145],[290,146],[291,147],[268,148],[87,2],[104,149],[88,2],[105,150],[293,151],[294,151],[298,152],[292,153],[306,154],[295,155],[296,151],[307,156],[297,157],[303,158],[302,159],[304,160],[305,161],[308,162],[299,2],[309,163],[300,164],[310,165],[301,166],[314,167],[315,168],[317,169],[316,170],[319,171],[318,2],[320,172],[265,173],[108,174]],"affectedFilesPendingEmit":[[83,16],[84,16],[85,16],[237,16],[238,16],[240,16],[241,16],[236,16],[249,16],[250,16],[242,16],[248,16],[253,16],[243,16],[254,16],[244,16],[245,16],[246,16],[255,16],[247,16],[257,16],[256,16],[86,16],[90,16],[89,16],[91,16],[276,16],[251,16],[275,16],[277,16],[252,16],[259,16],[234,16],[260,16],[239,16],[262,16],[280,16],[281,16],[279,16],[263,16],[235,16],[266,16],[261,16],[267,16],[282,16],[283,16],[284,16],[285,16],[286,16],[270,16],[269,16],[271,16],[272,16],[264,16],[288,16],[287,16],[273,16],[258,16],[109,16],[289,16],[278,16],[274,16],[93,16],[92,16],[95,16],[94,16],[96,16],[98,16],[97,16],[100,16],[99,16],[102,16],[103,16],[101,16],[290,16],[291,16],[268,16],[87,16],[104,16],[88,16],[105,16],[293,16],[294,16],[298,16],[292,16],[306,16],[295,16],[296,16],[307,16],[297,16],[303,16],[302,16],[304,16],[305,16],[308,16],[299,16],[309,16],[300,16],[310,16],[301,16],[314,16],[315,16],[317,16],[316,16],[319,16],[318,16],[320,16],[265,16],[108,16]],"version":"5.9.3"}
|