@cruba/crubal 0.1.0 → 0.3.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/README.md +30 -2
- package/dist/bin/crubal.js +70 -4
- package/dist/bin/crubal.js.map +1 -1
- package/dist/src/access.d.ts +126 -0
- package/dist/src/access.js +517 -0
- package/dist/src/access.js.map +1 -0
- package/dist/src/address.d.ts +29 -0
- package/dist/src/address.js +59 -0
- package/dist/src/address.js.map +1 -0
- package/dist/src/arrival.d.ts +55 -0
- package/dist/src/arrival.js +124 -0
- package/dist/src/arrival.js.map +1 -0
- package/dist/src/bundle.d.ts +66 -0
- package/dist/src/bundle.js +753 -0
- package/dist/src/bundle.js.map +1 -0
- package/dist/src/conditions.d.ts +7 -1
- package/dist/src/conditions.js +52 -11
- package/dist/src/conditions.js.map +1 -1
- package/dist/src/corpus.js +568 -34
- package/dist/src/corpus.js.map +1 -1
- package/dist/src/defs.d.ts +37 -2
- package/dist/src/defs.js +95 -14
- package/dist/src/defs.js.map +1 -1
- package/dist/src/dictionary.d.ts +15 -0
- package/dist/src/dictionary.js +72 -13
- package/dist/src/dictionary.js.map +1 -1
- package/dist/src/exchange.d.ts +204 -11
- package/dist/src/exchange.js +762 -45
- package/dist/src/exchange.js.map +1 -1
- package/dist/src/forms.d.ts +16 -0
- package/dist/src/forms.js +169 -0
- package/dist/src/forms.js.map +1 -0
- package/dist/src/index.d.ts +19 -6
- package/dist/src/index.js +18 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/lifecycle.d.ts +84 -0
- package/dist/src/lifecycle.js +415 -0
- package/dist/src/lifecycle.js.map +1 -0
- package/dist/src/log.d.ts +78 -0
- package/dist/src/log.js +506 -0
- package/dist/src/log.js.map +1 -0
- package/dist/src/migrate.d.ts +24 -1
- package/dist/src/migrate.js +104 -9
- package/dist/src/migrate.js.map +1 -1
- package/dist/src/model.d.ts +33 -1
- package/dist/src/model.js +158 -2
- package/dist/src/model.js.map +1 -1
- package/dist/src/packages.d.ts +44 -0
- package/dist/src/packages.js +137 -3
- package/dist/src/packages.js.map +1 -1
- package/dist/src/print-text.js +22 -0
- package/dist/src/print-text.js.map +1 -1
- package/dist/src/publish.d.ts +27 -0
- package/dist/src/publish.js +275 -0
- package/dist/src/publish.js.map +1 -0
- package/dist/src/read-text.d.ts +2 -0
- package/dist/src/read-text.js +72 -4
- package/dist/src/read-text.js.map +1 -1
- package/dist/src/records.d.ts +32 -0
- package/dist/src/records.js +104 -0
- package/dist/src/records.js.map +1 -0
- package/dist/src/review.d.ts +22 -0
- package/dist/src/review.js +198 -0
- package/dist/src/review.js.map +1 -0
- package/dist/src/rules.d.ts +38 -3
- package/dist/src/rules.js +184 -30
- package/dist/src/rules.js.map +1 -1
- package/dist/src/schedule.d.ts +24 -0
- package/dist/src/schedule.js +126 -0
- package/dist/src/schedule.js.map +1 -0
- package/dist/src/std-packages.d.ts +9 -0
- package/dist/src/std-packages.js +268 -0
- package/dist/src/std-packages.js.map +1 -0
- package/dist/src/store.d.ts +38 -7
- package/dist/src/store.js +166 -24
- package/dist/src/store.js.map +1 -1
- package/dist/src/tree.d.ts +3 -0
- package/dist/src/tree.js +36 -0
- package/dist/src/tree.js.map +1 -1
- package/dist/src/units-table.d.ts +1 -0
- package/dist/src/units-table.js +200 -0
- package/dist/src/units-table.js.map +1 -0
- package/dist/src/units.d.ts +42 -4
- package/dist/src/units.js +91 -30
- package/dist/src/units.js.map +1 -1
- package/dist/src/views.d.ts +116 -6
- package/dist/src/views.js +484 -74
- package/dist/src/views.js.map +1 -1
- package/package.json +5 -3
package/dist/src/store.d.ts
CHANGED
|
@@ -1,15 +1,27 @@
|
|
|
1
1
|
import { type ClassLine, type Dictionary } from "./defs.ts";
|
|
2
2
|
import type { Json, JsonObject, Record, Source } from "./model.ts";
|
|
3
3
|
export declare function sha256(text: string): string;
|
|
4
|
-
/**
|
|
4
|
+
/** A write's hash: SHA-256 of its canonical form; a redacted write's hash is what it carries (8.5.2). */
|
|
5
|
+
export declare function writeHash(w: Json): string;
|
|
6
|
+
/**
|
|
7
|
+
* An entry's hash (8.5): SHA-256 of its canonical form without `sig`, each write replaced by `sha256:` and
|
|
8
|
+
* its own hash, so a redacted write leaves the entry's hash where it was. A redacted entry's hash is what it
|
|
9
|
+
* carries.
|
|
10
|
+
*/
|
|
5
11
|
export declare function entryHash(entry: JsonObject): string;
|
|
6
12
|
/** Published keys by owner domain: `{ "test.example": { "alg": "Ed25519", "public": "<base64url>" } }`. */
|
|
13
|
+
/** A published signing key (11.7): with `from` and `until` when it was rotated, so it still verifies what it signed. */
|
|
14
|
+
export type Key = {
|
|
15
|
+
alg: string;
|
|
16
|
+
public: string;
|
|
17
|
+
from?: string;
|
|
18
|
+
until?: string;
|
|
19
|
+
};
|
|
7
20
|
export type Keys = {
|
|
8
|
-
[owner: string]:
|
|
9
|
-
alg: string;
|
|
10
|
-
public: string;
|
|
11
|
-
};
|
|
21
|
+
[owner: string]: Key | Key[];
|
|
12
22
|
};
|
|
23
|
+
/** The owner's key in force at a moment: the one whose span holds `at`, else an undated one, else the latest. */
|
|
24
|
+
export declare function keyFor(keys: Keys, owner: string, at?: string): Key | undefined;
|
|
13
25
|
/** Does `sig` (base64url) verify over the entry's hash bytes with the owner's Ed25519 key? */
|
|
14
26
|
export declare function verifySig(entry: JsonObject, owner: string, keys: Keys): boolean;
|
|
15
27
|
/** Check a chain's links, and, when the owner's key is known, every entry's signature (8.5). */
|
|
@@ -32,6 +44,12 @@ export type Contract = {
|
|
|
32
44
|
prefix?: string;
|
|
33
45
|
reads: MapLine[];
|
|
34
46
|
writes: MapLine[];
|
|
47
|
+
/** A store contract's one map (7.3): `reads` and `writes` are derived from it. */
|
|
48
|
+
stores: MapLine[];
|
|
49
|
+
/** An offer's terms (7.8): reshare, expires, revocable, and what else the package names. */
|
|
50
|
+
terms: {
|
|
51
|
+
[term: string]: string;
|
|
52
|
+
};
|
|
35
53
|
ignore: string[];
|
|
36
54
|
keepRaw: string[];
|
|
37
55
|
absorb: boolean;
|
|
@@ -46,6 +64,10 @@ export type Contract = {
|
|
|
46
64
|
to?: string;
|
|
47
65
|
mode?: string;
|
|
48
66
|
undo?: string;
|
|
67
|
+
/** The field of their payload that is their own ID for the thing (9.2a). */
|
|
68
|
+
ref?: string;
|
|
69
|
+
/** For a send contract that carries projection streams (12.6.2): the views. */
|
|
70
|
+
stream: string[];
|
|
49
71
|
/** Every part as written, with its line, for the publish checks. */
|
|
50
72
|
parts: {
|
|
51
73
|
[k: string]: string;
|
|
@@ -112,8 +134,11 @@ export type Who = {
|
|
|
112
134
|
*/
|
|
113
135
|
export declare function land(r: Record, intake: {
|
|
114
136
|
outcomes: IntakeOutcome[];
|
|
115
|
-
contract?: string;
|
|
116
|
-
|
|
137
|
+
contract?: string; /** a person's write through a form (11.3): ranks as `person` */
|
|
138
|
+
person?: boolean;
|
|
139
|
+
}, source: Source, trust?: string[], facetTrust?: Map<string, string[]>,
|
|
140
|
+
/** The facets declared `transitions: yes` (4.2): a later value of equal or higher trust replaces, never conflicts. */
|
|
141
|
+
transitions?: Set<string>): Record;
|
|
117
142
|
export type PartMatch = {
|
|
118
143
|
parts: JsonObject[];
|
|
119
144
|
review: JsonObject[];
|
|
@@ -131,3 +156,9 @@ export type Observation = JsonObject & {
|
|
|
131
156
|
};
|
|
132
157
|
/** Validate a value from observations: independent witnesses for and against, vetoes, and the state. */
|
|
133
158
|
export declare function validate(r: Record, address: string, observations: Observation[], confirmAt?: number, splitAt?: number): JsonObject;
|
|
159
|
+
/**
|
|
160
|
+
* Version splits proposed (9.7.3): for each value an address's observations contradict, a cluster of at
|
|
161
|
+
* least `splitAt` instances agreeing with each other is a review item `split:<record>`; nothing splits
|
|
162
|
+
* on its own.
|
|
163
|
+
*/
|
|
164
|
+
export declare function proposeSplit(records: Record[], observations: Observation[], splitAt?: number): JsonObject[];
|
package/dist/src/store.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// matching parts before minting rows (9.2), and evidence validation with independence and vetoes (9.7).
|
|
4
4
|
import { createHash, createPublicKey, verify } from "node:crypto";
|
|
5
5
|
import { serialize } from "./canonical.js";
|
|
6
|
-
import { readClassLine } from "./defs.js";
|
|
6
|
+
import { readClassLine, unquote } from "./defs.js";
|
|
7
7
|
import { checkScalar, foldKey, foldValue } from "./dictionary.js";
|
|
8
8
|
import { splitTop } from "./lex.js";
|
|
9
9
|
import { readUnder } from "./read-text.js";
|
|
@@ -13,16 +13,41 @@ const isObj = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
|
13
13
|
export function sha256(text) {
|
|
14
14
|
return createHash("sha256").update(text, "utf8").digest("hex");
|
|
15
15
|
}
|
|
16
|
-
/**
|
|
16
|
+
/** A write's hash: SHA-256 of its canonical form; a redacted write's hash is what it carries (8.5.2). */
|
|
17
|
+
export function writeHash(w) {
|
|
18
|
+
if (isObj(w) && typeof w.redacted === "string")
|
|
19
|
+
return w.redacted.replace(/^sha256:/, "");
|
|
20
|
+
return sha256(serialize(w));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* An entry's hash (8.5): SHA-256 of its canonical form without `sig`, each write replaced by `sha256:` and
|
|
24
|
+
* its own hash, so a redacted write leaves the entry's hash where it was. A redacted entry's hash is what it
|
|
25
|
+
* carries.
|
|
26
|
+
*/
|
|
17
27
|
export function entryHash(entry) {
|
|
18
28
|
if (typeof entry.redacted === "string")
|
|
19
29
|
return entry.redacted.replace(/^sha256:/, "");
|
|
20
30
|
const { sig: _sig, ...rest } = entry;
|
|
31
|
+
if (Array.isArray(rest.writes))
|
|
32
|
+
rest.writes = rest.writes.map((w) => `sha256:${writeHash(w)}`);
|
|
21
33
|
return sha256(serialize(rest));
|
|
22
34
|
}
|
|
35
|
+
/** The owner's key in force at a moment: the one whose span holds `at`, else an undated one, else the latest. */
|
|
36
|
+
export function keyFor(keys, owner, at) {
|
|
37
|
+
const k = keys[owner];
|
|
38
|
+
if (!k)
|
|
39
|
+
return undefined;
|
|
40
|
+
const list = Array.isArray(k) ? k : [k];
|
|
41
|
+
if (at) {
|
|
42
|
+
const spans = list.filter((x) => (!x.from || x.from <= at) && (!x.until || at < x.until));
|
|
43
|
+
if (spans.length)
|
|
44
|
+
return spans.at(-1);
|
|
45
|
+
}
|
|
46
|
+
return list.find((x) => !x.from && !x.until) ?? list.at(-1);
|
|
47
|
+
}
|
|
23
48
|
/** Does `sig` (base64url) verify over the entry's hash bytes with the owner's Ed25519 key? */
|
|
24
49
|
export function verifySig(entry, owner, keys) {
|
|
25
|
-
const k = keys
|
|
50
|
+
const k = keyFor(keys, owner, typeof entry.at === "string" ? entry.at : undefined);
|
|
26
51
|
if (!k || k.alg !== "Ed25519" || typeof entry.sig !== "string")
|
|
27
52
|
return false;
|
|
28
53
|
const key = createPublicKey({ key: { kty: "OKP", crv: "Ed25519", x: k.public }, format: "jwk" });
|
|
@@ -68,6 +93,8 @@ export function readContracts(source) {
|
|
|
68
93
|
origin: "",
|
|
69
94
|
reads: [],
|
|
70
95
|
writes: [],
|
|
96
|
+
stores: [],
|
|
97
|
+
terms: {},
|
|
71
98
|
ignore: [],
|
|
72
99
|
keepRaw: [],
|
|
73
100
|
absorb: true,
|
|
@@ -75,6 +102,7 @@ export function readContracts(source) {
|
|
|
75
102
|
line: node.line,
|
|
76
103
|
needs: [],
|
|
77
104
|
gives: [],
|
|
105
|
+
stream: [],
|
|
78
106
|
parts: {},
|
|
79
107
|
partLines: {},
|
|
80
108
|
};
|
|
@@ -84,7 +112,19 @@ export function readContracts(source) {
|
|
|
84
112
|
c.partLines[p.key] = p.line;
|
|
85
113
|
const list = () => splitTop(p.value, ",", p.line).filter(Boolean);
|
|
86
114
|
if (p.key === "needs") {
|
|
87
|
-
|
|
115
|
+
// Needs are an unnamed class (5.8): its lines, placed by the same sections (5.3.3, 7.7).
|
|
116
|
+
if (p.value)
|
|
117
|
+
c.needs = splitTop(p.value, ",", p.line).map((t) => readClassLine(t, p.line));
|
|
118
|
+
else {
|
|
119
|
+
let section;
|
|
120
|
+
for (const l of p.children) {
|
|
121
|
+
if (l.kind === "pair" && l.key === "section") {
|
|
122
|
+
section = unq(l.value);
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
c.needs.push(readClassLine(l.text, l.line, section));
|
|
126
|
+
}
|
|
127
|
+
}
|
|
88
128
|
continue;
|
|
89
129
|
}
|
|
90
130
|
if (p.key === "gives")
|
|
@@ -101,6 +141,21 @@ export function readContracts(source) {
|
|
|
101
141
|
c.mode = p.value;
|
|
102
142
|
else if (p.key === "undo")
|
|
103
143
|
c.undo = p.value;
|
|
144
|
+
else if (p.key === "ref")
|
|
145
|
+
c.ref = p.value;
|
|
146
|
+
else if (p.key === "stream")
|
|
147
|
+
c.stream = list();
|
|
148
|
+
else if (p.key === "terms") {
|
|
149
|
+
// `terms:` with one term per line, or `terms: reshare no, expires 2027-01-01` on the line.
|
|
150
|
+
for (const t of p.children)
|
|
151
|
+
if (t.key)
|
|
152
|
+
c.terms[t.key] = t.value.trim();
|
|
153
|
+
for (const t of list()) {
|
|
154
|
+
const [k, ...v] = t.trim().split(/[:\s]+/);
|
|
155
|
+
if (k && v.length)
|
|
156
|
+
c.terms[k] = v.join(" ");
|
|
157
|
+
}
|
|
158
|
+
}
|
|
104
159
|
if (p.key === "kind")
|
|
105
160
|
c.kind = p.value;
|
|
106
161
|
else if (p.key === "origin")
|
|
@@ -111,6 +166,12 @@ export function readContracts(source) {
|
|
|
111
166
|
c.reads = readMap(p.children);
|
|
112
167
|
else if (p.key === "writes")
|
|
113
168
|
c.writes = readMap(p.children);
|
|
169
|
+
else if (p.key === "stores") {
|
|
170
|
+
// Written, ourAddress -> theirField; read, the same lines the other way, value maps too.
|
|
171
|
+
c.stores = readMap(p.children);
|
|
172
|
+
c.writes = c.stores.map((m) => ({ ...m, values: [...m.values] }));
|
|
173
|
+
c.reads = c.stores.map((m) => ({ from: m.to, to: m.from, values: m.values.map(([ours, theirs]) => [theirs, ours]), line: m.line, valueLines: m.valueLines }));
|
|
174
|
+
}
|
|
114
175
|
else if (p.key === "ignore")
|
|
115
176
|
c.ignore = list();
|
|
116
177
|
else if (p.key === "keep-raw")
|
|
@@ -119,13 +180,17 @@ export function readContracts(source) {
|
|
|
119
180
|
c.absorb = p.value !== "no";
|
|
120
181
|
else if (p.key === "lands")
|
|
121
182
|
c.lands = p.value;
|
|
122
|
-
|
|
123
|
-
|
|
183
|
+
// Free text the printer may have quoted (2.5) reads back as text; every other part is kept as written.
|
|
184
|
+
if (!["kind", "origin", "prefix", "reads", "writes", "stores", "ignore", "keep-raw", "absorb", "lands", "gives", "who", "when", "from", "mode", "undo", "ref", "stream", "terms"].includes(p.key))
|
|
185
|
+
c.parts[p.key] = p.key === "label" || p.key === "describe" ? unquote(p.value) : p.value;
|
|
124
186
|
}
|
|
125
187
|
if (!c.origin)
|
|
126
188
|
c.origin = c.kind === "form" ? "declared" : "reported";
|
|
127
189
|
if (c.keepRaw.length && !c.prefix)
|
|
128
190
|
throw new CrubalError(`${c.name} keeps raw fields, so it needs a prefix`, c.line);
|
|
191
|
+
// A form's fields are its needs (7.7): with no reads of its own, each answer lands on its facet by name.
|
|
192
|
+
if (c.kind === "form" && !c.reads.length && c.needs.length)
|
|
193
|
+
c.reads = c.needs.map((l) => ({ from: l.facet, to: l.facet, values: [], line: l.line, valueLines: [] }));
|
|
129
194
|
out.push(c);
|
|
130
195
|
}
|
|
131
196
|
return out;
|
|
@@ -155,12 +220,15 @@ export function fieldPath(path) {
|
|
|
155
220
|
function segment(name) {
|
|
156
221
|
return /^[A-Za-z_]\w*$/.test(name) ? name : JSON.stringify(name);
|
|
157
222
|
}
|
|
158
|
-
|
|
159
|
-
|
|
223
|
+
/** A value in one of chapter 3's object forms (`$link`, `$image`, `$qty`, `$money`, `$value`, `$empty`): a leaf, not a nesting. */
|
|
224
|
+
const valueObject = (v) => isObj(v) && Object.keys(v).some((k) => k.startsWith("$"));
|
|
225
|
+
function leaves(obj, prefix = "", whole = () => false) {
|
|
226
|
+
if (!isObj(obj) || valueObject(obj))
|
|
160
227
|
return [[prefix, obj]];
|
|
161
228
|
return Object.entries(obj).flatMap(([k, v]) => {
|
|
162
229
|
const p = prefix ? `${prefix}.${segment(k)}` : segment(k);
|
|
163
|
-
|
|
230
|
+
// An object at a path the contract maps as one field (a compound answer, chapter 3) is one leaf.
|
|
231
|
+
return isObj(v) && !valueObject(v) && !whole(p) ? leaves(v, p, whole) : [[p, v]];
|
|
164
232
|
});
|
|
165
233
|
}
|
|
166
234
|
function samePath(a, b) {
|
|
@@ -168,16 +236,49 @@ function samePath(a, b) {
|
|
|
168
236
|
}
|
|
169
237
|
/** Fold one raw value through the map's value map, the aliases and the shapes, then check it (9.2). */
|
|
170
238
|
function foldIn(f, raw, map, dict) {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
239
|
+
// Chapter 3's forms arrive as values: a boolean for a yes-no, an object with a `$` key, and a list read item
|
|
240
|
+
// by item. Anything else is text, read under the facet (chapter 2) after the map's value map and the aliases.
|
|
241
|
+
let childProblem;
|
|
242
|
+
const one = (r) => {
|
|
243
|
+
if (valueObject(r) || (typeof r === "boolean" && f.type === "yes-no"))
|
|
244
|
+
return r;
|
|
245
|
+
// A compound answer as an object (chapter 3): each child folded under its own facet; a child that
|
|
246
|
+
// contradicts its facet contradicts the whole answer, and the outcome names the child.
|
|
247
|
+
if (f.type === "compound" && isObj(r)) {
|
|
248
|
+
const out = {};
|
|
249
|
+
for (const [k, v] of Object.entries(r)) {
|
|
250
|
+
const child = f.children?.get(k);
|
|
251
|
+
if (!child) {
|
|
252
|
+
out[k] = v;
|
|
253
|
+
continue;
|
|
254
|
+
}
|
|
255
|
+
const folded = foldIn(child, v, undefined, dict);
|
|
256
|
+
if (folded.outcome === "contradiction")
|
|
257
|
+
childProblem = childProblem ?? child.key;
|
|
258
|
+
out[k] = folded.value;
|
|
259
|
+
}
|
|
260
|
+
return out;
|
|
261
|
+
}
|
|
262
|
+
let text = typeof r === "string" ? r : serialize(r);
|
|
263
|
+
const vm = map?.values.find(([theirs]) => theirs === text);
|
|
264
|
+
if (vm)
|
|
265
|
+
text = vm[1];
|
|
266
|
+
return readUnder(f, text, dict) ?? text;
|
|
267
|
+
};
|
|
268
|
+
const read = Array.isArray(raw)
|
|
269
|
+
? raw.flatMap((r) => {
|
|
270
|
+
const x = one(r);
|
|
271
|
+
return Array.isArray(x) ? x : [x];
|
|
272
|
+
})
|
|
273
|
+
: one(raw);
|
|
176
274
|
const value = foldValue(f, read, dict);
|
|
177
275
|
const items = Array.isArray(value) ? value : [value];
|
|
178
|
-
const checks = items.map((i) => checkScalar(f, i)
|
|
179
|
-
|
|
180
|
-
|
|
276
|
+
const checks = items.map((i) => checkScalar(f, i));
|
|
277
|
+
if (childProblem)
|
|
278
|
+
return { value, outcome: "contradiction", cites: { type: childProblem } };
|
|
279
|
+
const outcome = checks.some((c) => c.outcome === "contradiction") ? "contradiction" : checks.some((c) => c.outcome === "new") ? "new" : "absorbed";
|
|
280
|
+
const unit = checks.find((c) => c.cites?.unit)?.cites;
|
|
281
|
+
return { value, outcome, ...(unit ? { cites: unit } : {}) };
|
|
181
282
|
}
|
|
182
283
|
/** Keep a payload's exact bytes (3.8): as text when they are valid UTF-8, otherwise as base64. */
|
|
183
284
|
export function rawOf(bytes, type) {
|
|
@@ -202,7 +303,8 @@ export function reviewByKey(intakes, recur = 5) {
|
|
|
202
303
|
for (const o of i.outcomes) {
|
|
203
304
|
if (o.outcome !== "unknown" && o.outcome !== "new")
|
|
204
305
|
continue;
|
|
205
|
-
|
|
306
|
+
// A unit question (11.9) is reviewed by spelling, across every facet it reached.
|
|
307
|
+
const key = o.cites?.unit ? `unit:${String(o.cites.unit)}` : (o.to ?? o.from);
|
|
206
308
|
const g = groups.get(key) ?? { objects: new Set(), values: new Set(), outcome: o.outcome };
|
|
207
309
|
g.objects.add(i.for);
|
|
208
310
|
if (o.value !== undefined)
|
|
@@ -221,7 +323,12 @@ export function reviewByKey(intakes, recur = 5) {
|
|
|
221
323
|
export function receive(c, body, forRecord, dict, intakeId = "I-1") {
|
|
222
324
|
const payload = JSON.parse(body);
|
|
223
325
|
const outcomes = [];
|
|
224
|
-
for (const [path, raw] of leaves(payload)) {
|
|
326
|
+
for (const [path, raw] of leaves(payload, "", (p) => c.reads.some((m) => samePath(m.from, p)))) {
|
|
327
|
+
// An empty string is no answer (chapter 3: what is absent stays absent); an empty is written as `$empty`.
|
|
328
|
+
if (raw === "") {
|
|
329
|
+
outcomes.push({ from: path, outcome: "ignored" });
|
|
330
|
+
continue;
|
|
331
|
+
}
|
|
225
332
|
if (!c.absorb || c.ignore.some((i) => samePath(i, path))) {
|
|
226
333
|
outcomes.push({ from: path, outcome: "ignored" });
|
|
227
334
|
continue;
|
|
@@ -233,8 +340,8 @@ export function receive(c, body, forRecord, dict, intakeId = "I-1") {
|
|
|
233
340
|
outcomes.push({ from: path, to: map.to, outcome: "unknown", value: raw });
|
|
234
341
|
continue;
|
|
235
342
|
}
|
|
236
|
-
const { value, outcome } = foldIn(f, raw, map, dict);
|
|
237
|
-
outcomes.push({ from: path, to: map.to, outcome, value, ...(outcome === "contradiction" ? { cites: { type: f.key } } : {}) });
|
|
343
|
+
const { value, outcome, cites } = foldIn(f, raw, map, dict);
|
|
344
|
+
outcomes.push({ from: path, to: map.to, outcome, value, ...(outcome === "contradiction" ? { cites: cites ?? { type: f.key } } : cites ? { cites } : {}) });
|
|
238
345
|
continue;
|
|
239
346
|
}
|
|
240
347
|
if (c.keepRaw.some((k) => samePath(k, path))) {
|
|
@@ -276,9 +383,11 @@ function sourceAt(r, address) {
|
|
|
276
383
|
* Land an intake record's outcomes on a record. Absorbed and conflicting values go through the trust
|
|
277
384
|
* order: the winner is current, the loser is kept as an alternative. Equal values are agreement.
|
|
278
385
|
*/
|
|
279
|
-
export function land(r, intake, source, trust = DEFAULT_TRUST, facetTrust = new Map()
|
|
386
|
+
export function land(r, intake, source, trust = DEFAULT_TRUST, facetTrust = new Map(),
|
|
387
|
+
/** The facets declared `transitions: yes` (4.2): a later value of equal or higher trust replaces, never conflicts. */
|
|
388
|
+
transitions = new Set()) {
|
|
280
389
|
const order = trust.length ? trust : DEFAULT_TRUST;
|
|
281
|
-
const incoming = { source, ...(intake.contract ? { contract: intake.contract } : {}) };
|
|
390
|
+
const incoming = { source, ...(intake.contract ? { contract: intake.contract } : {}), ...(intake.person ? { person: true } : {}) };
|
|
282
391
|
const out = {
|
|
283
392
|
...r,
|
|
284
393
|
values: { ...r.values },
|
|
@@ -297,7 +406,15 @@ export function land(r, intake, source, trust = DEFAULT_TRUST, facetTrust = new
|
|
|
297
406
|
continue; // agreement: the current source stays
|
|
298
407
|
const was = sourceAt(out, o.to);
|
|
299
408
|
const fo = facetTrust.get(o.to) ?? [];
|
|
300
|
-
const
|
|
409
|
+
const incomingRank = rank(incoming, order, fo);
|
|
410
|
+
const currentRank = rank({ source: was }, order, fo);
|
|
411
|
+
// A state facet moves: a later value of equal or higher trust is the transition, not a dispute (4.2).
|
|
412
|
+
if (transitions.has(o.to) && incomingRank <= currentRank) {
|
|
413
|
+
out.values[o.to] = o.value;
|
|
414
|
+
out.sources[o.to] = source;
|
|
415
|
+
continue;
|
|
416
|
+
}
|
|
417
|
+
const incomingWins = incomingRank < currentRank;
|
|
301
418
|
const loser = incomingWins ? { value: current, origin: was.origin, via: was.via } : { value: o.value, origin: source.origin, via: source.via };
|
|
302
419
|
if (incomingWins) {
|
|
303
420
|
out.values[o.to] = o.value;
|
|
@@ -391,6 +508,31 @@ export function validate(r, address, observations, confirmAt = 2, splitAt = 3) {
|
|
|
391
508
|
out.state = "unobserved";
|
|
392
509
|
out.alternatives = [...against.values()].map((g) => ({ value: g.value, origin: "observed" }));
|
|
393
510
|
out["split-proposed"] = [...against.values()].some((g) => g.instances.size >= splitAt);
|
|
511
|
+
out.clusters = [...against.values()].map((g) => ({ value: g.value, instances: [...g.instances].sort() }));
|
|
512
|
+
return out;
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* Version splits proposed (9.7.3): for each value an address's observations contradict, a cluster of at
|
|
516
|
+
* least `splitAt` instances agreeing with each other is a review item `split:<record>`; nothing splits
|
|
517
|
+
* on its own.
|
|
518
|
+
*/
|
|
519
|
+
export function proposeSplit(records, observations, splitAt = 3) {
|
|
520
|
+
const out = [];
|
|
521
|
+
const seen = new Set();
|
|
522
|
+
for (const o of observations) {
|
|
523
|
+
const key = `${o.supports}|${o.address}`;
|
|
524
|
+
if (seen.has(key))
|
|
525
|
+
continue;
|
|
526
|
+
seen.add(key);
|
|
527
|
+
const r = records.find((x) => x.id === o.supports);
|
|
528
|
+
if (!r)
|
|
529
|
+
continue;
|
|
530
|
+
const v = validate(r, o.address, observations, 2, splitAt);
|
|
531
|
+
for (const c of v.clusters ?? []) {
|
|
532
|
+
if (c.instances.length >= splitAt)
|
|
533
|
+
out.push({ key: `split:${r.id}`, record: r.id, address: o.address, value: c.value, instances: c.instances });
|
|
534
|
+
}
|
|
535
|
+
}
|
|
394
536
|
return out;
|
|
395
537
|
}
|
|
396
538
|
//# sourceMappingURL=store.js.map
|
package/dist/src/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,qGAAqG;AACrG,wGAAwG;AAExG,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAA+C,aAAa,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,KAAK,GAAG,CAAC,CAAmB,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEjH,gFAAgF;AAEhF,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,SAAS,CAAC,CAAO;IAC/B,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC1F,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAiB;IACzC,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACtF,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACrC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/F,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,CAAC;AAOD,iHAAiH;AACjH,MAAM,UAAU,MAAM,CAAC,IAAU,EAAE,KAAa,EAAE,EAAW;IAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1F,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,SAAS,CAAC,KAAiB,EAAE,KAAa,EAAE,IAAU;IACpE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnF,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC7E,MAAM,GAAG,GAAG,eAAe,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACjG,OAAO,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;AACtG,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,WAAW,CAAC,OAAqB,EAAE,IAAW;IAC5D,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAe,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAe,CAAC,EAAE;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACjJ,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;YAAE,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QACjD,IAAI,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAC5H,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAwCD,SAAS,OAAO,CAAC,KAAkC;IACjD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACrB,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAqB,CAAC,CAAC;QAC9F,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;IACvF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,IAAY;IAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,GAAG,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,+BAA+B,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/E,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/E,+BAA+B;AAC/B,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,UAAU;YAAE,SAAS;QAC9D,MAAM,CAAC,GAAa;YAClB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACvB,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,EAAE;SACd,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,CAAC,CAAC,GAAG;gBAAE,SAAS;YACrB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC5B,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBACtB,yFAAyF;gBACzF,IAAI,CAAC,CAAC,KAAK;oBAAE,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;qBACtF,CAAC;oBACJ,IAAI,OAA2B,CAAC;oBAChC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;wBAC3B,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;4BAC7C,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;4BACvB,SAAS;wBACX,CAAC;wBACD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;gBAAE,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC;iBACnC,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK;gBAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;iBACrC,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM;gBAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;iBACvC,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM;gBAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;iBACvC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI;gBAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;iBACnC,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM;gBAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;iBACvC,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM;gBAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;iBACvC,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK;gBAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;iBACrC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,CAAC,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;iBAC1C,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBAC3B,2FAA2F;gBAC3F,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;oBAAE,IAAI,CAAC,CAAC,GAAG;wBAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACvE,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;oBAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAAC,CAAC;YACtH,CAAC;YACD,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM;gBAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;iBAClC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC;iBAC3C,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC;iBAC3C,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;gBAAE,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;iBACrD,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;iBACvD,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,yFAAyF;gBACzF,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC/B,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAqB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACpL,CAAC;iBACI,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,CAAC,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;iBAC1C,IAAI,CAAC,CAAC,GAAG,KAAK,UAAU;gBAAE,CAAC,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;iBAC7C,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;iBACpD,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;gBAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YAC9C,uGAAuG;YACvG,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7R,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,MAAM;YAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;QACtE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM;YAAE,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,yCAAyC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACrH,yGAAyG;QACzG,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM;YAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAwB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3L,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;QAC7B,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,MAAM,GAAG,CAAC,MAAM,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACd,GAAG,GAAG,EAAE,CAAC;YACT,SAAS;QACX,CAAC;QACD,GAAG,IAAI,EAAE,CAAC;IACZ,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,OAAO,GAAG,CAAC;AACb,CAAC;AAED,yFAAyF;AACzF,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,mIAAmI;AACnI,MAAM,WAAW,GAAG,CAAC,CAAO,EAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAEpG,SAAS,MAAM,CAAC,GAAS,EAAE,MAAM,GAAG,EAAE,EAAE,QAAmC,GAAG,EAAE,CAAC,KAAK;IACpF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QAC5C,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1D,iGAAiG;QACjG,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAsB,CAAC;IACzG,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS;IACpC,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAeD,uGAAuG;AACvG,SAAS,MAAM,CAAC,CAAQ,EAAE,GAAS,EAAE,GAAwB,EAAE,IAAgB;IAC7E,6GAA6G;IAC7G,8GAA8G;IAC9G,IAAI,YAAgC,CAAC;IACrC,MAAM,GAAG,GAAG,CAAC,CAAO,EAAQ,EAAE;QAC5B,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;YAAE,OAAO,CAAC,CAAC;QAChF,kGAAkG;QAClG,uFAAuF;QACvF,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,GAAG,GAAe,EAAE,CAAC;YAC3B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACX,SAAS;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBACjD,IAAI,MAAM,CAAC,OAAO,KAAK,eAAe;oBAAE,YAAY,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,CAAC;gBACjF,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;YACxB,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,EAAE,GAAG,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;QAC3D,IAAI,EAAE;YAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACrB,OAAO,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;IAC1C,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAC7B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAChB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC;QACJ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACb,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,YAAY;QAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC;IAC5F,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;IACnJ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC;IACtD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9D,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,KAAK,CAAC,KAAiB,EAAE,IAAY;IACnD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9D,IAAI,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC/F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,2GAA2G;AAC3G,MAAM,UAAU,MAAM,CAAC,MAAiD,EAAE,CAAW,EAAE,IAAgB;IACrG,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAA2B,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/G,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,WAAW,CAAC,OAAqD,EAAE,KAAK,GAAG,CAAC;IAC1F,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0E,CAAC;IACjG,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK;gBAAE,SAAS;YAC7D,iFAAiF;YACjF,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9E,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,EAAU,EAAE,MAAM,EAAE,IAAI,GAAG,EAAU,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAC3G,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;gBAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrH,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/G,kGAAkG;QAClG,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;KAChK,CAAC;AACJ,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,OAAO,CAAC,CAAW,EAAE,IAAY,EAAE,SAAiB,EAAE,IAAgB,EAAE,QAAQ,GAAG,KAAK;IACtG,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,CAAC;IACzC,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,0GAA0G;QAC1G,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YAClD,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YACzD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YAClD,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACxD,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACP,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC1E,SAAS;YACX,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3J,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAW,CAAC;YAC9C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,WAAW,CAAC,iBAAiB,IAAI,sBAAsB,IAAI,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACpI,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACzF,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,CAAC,CAAC,IAAI;QAChB,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;QAC7D,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAKhF,SAAS,OAAO,CAAC,GAAQ,EAAE,KAAe;IACxC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzH,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,6EAA6E;AAC7E,SAAS,IAAI,CAAC,GAAQ,EAAE,KAAe,EAAE,aAAuB,EAAE;IAChE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACrB,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9B,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,OAAe;IAC1C,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,IAAI,CAClB,CAAS,EACT,MAA2I,EAC3I,MAAc,EACd,QAAkB,aAAa,EAC/B,aAAoC,IAAI,GAAG,EAAE;AAC7C,sHAAsH;AACtH,cAA2B,IAAI,GAAG,EAAE;IAEpC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;IACnD,MAAM,QAAQ,GAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACxI,MAAM,GAAG,GAA8D;QACrE,GAAG,CAAC;QACJ,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE;QACvB,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE;KAClC,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;YAAE,SAAS;QACrG,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;YAC9E,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAC1B,GAAG,CAAC,OAAmC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;YACxD,SAAS;QACX,CAAC;QACD,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,SAAS,CAAC,sCAAsC;QAC/F,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAW,CAAC;QAC1C,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACrD,sGAAsG;QACtG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,YAAY,IAAI,WAAW,EAAE,CAAC;YACzD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAC1B,GAAG,CAAC,OAAmC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;YACxD,SAAS;QACX,CAAC;QACD,MAAM,YAAY,GAAG,YAAY,GAAG,WAAW,CAAC;QAChD,MAAM,KAAK,GAAe,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;QAC3J,IAAI,YAAY,EAAE,CAAC;YACjB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAC1B,GAAG,CAAC,OAAmC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;QAC1D,CAAC;QACD,GAAG,CAAC,YAAY,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAMD,oGAAoG;AACpG,MAAM,UAAU,UAAU,CAAC,CAAS,EAAE,QAA+C,EAAE,IAAgB;IACrG,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAqB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAY,EAAE,CAAC,CAAC,CAAC,CAAC;IAChH,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QAC7B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;YAAE,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3B,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;IACzB,CAAC,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1G,MAAM,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC;QACvB,MAAM,IAAI,GAAG,EAAE,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnF,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAY,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtJ,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;YACnB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAY,EAAE,OAAO,EAAE,EAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACjG,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,6BAA6B,KAAK,KAAK,GAAG,CAAC,IAAI,qBAAqB,EAAE,IAAI,UAAU,EAAE,EAAE,CAAC,CAAC;YAC/I,SAAS;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;AAC5D,CAAC;AAMD,wGAAwG;AACxG,MAAM,UAAU,QAAQ,CAAC,CAAS,EAAE,OAAe,EAAE,YAA2B,EAAE,SAAS,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC;IAC1G,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IACtF,MAAM,OAAO,GAAG,CAAC,CAAc,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;IAC1E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmD,CAAC;IAC3E,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,OAAO;gBAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClD,SAAS;QACX,CAAC;QACD,IAAI,SAAS,CAAC,CAAC,CAAC,KAAa,CAAC,KAAK,OAAO;YAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5D,CAAC;YACJ,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,KAAa,CAAC,CAAC;YACrC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAa,EAAE,SAAS,EAAE,IAAI,GAAG,EAAU,EAAE,CAAC;YACrF,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAe;QACtB,MAAM,EAAE,CAAC,CAAC,EAAE;QACZ,OAAO;QACP,eAAe,EAAE,IAAI,CAAC,IAAI;QAC1B,mBAAmB,EAAE,QAAQ,CAAC,IAAI;QAClC,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,GAAG,CAAC,KAAK,GAAG,cAAc,CAAC;QAC3B,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,EAAG,MAAM,CAAC,CAAC,CAAiB,CAAC,GAAG,EAAE,CAAC;IACvD,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI;QAAE,GAAG,CAAC,KAAK,GAAG,cAAc,CAAC;SAChD,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS;QAAE,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC;;QACpD,GAAG,CAAC,KAAK,GAAG,YAAY,CAAC;IAC9B,GAAG,CAAC,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IAC9F,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC;IACvF,GAAG,CAAC,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1G,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,OAAiB,EAAE,YAA2B,EAAE,OAAO,GAAG,CAAC;IACtF,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3D,KAAK,MAAM,CAAC,IAAK,CAAC,CAAC,QAAmD,IAAI,EAAE,EAAE,CAAC;YAC7E,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,OAAO;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAClJ,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/src/tree.d.ts
CHANGED
|
@@ -15,6 +15,9 @@ export type Node = {
|
|
|
15
15
|
/** The column the line's text starts at. */
|
|
16
16
|
indent: number;
|
|
17
17
|
children: Node[];
|
|
18
|
+
/** A long-text block (2.4.1): `value` is the block's text, taken raw, and `detail` what followed the `|`. */
|
|
19
|
+
block?: true;
|
|
20
|
+
detail?: string;
|
|
18
21
|
};
|
|
19
22
|
/** Remove a `//` comment that starts the line or follows white space, outside quotes. */
|
|
20
23
|
export declare function stripComment(line: string): string;
|
package/dist/src/tree.js
CHANGED
|
@@ -82,8 +82,36 @@ export function readTree(source) {
|
|
|
82
82
|
const root = { kind: "line", key: null, value: "", text: "", line: 0, indent: -1, children: [] };
|
|
83
83
|
const stack = [{ node: root, indent: -1 }];
|
|
84
84
|
const lines = source.replace(/^/, "").split(/\r?\n/);
|
|
85
|
+
// A long-text block (2.4.1): after `key: |`, every line indented more than the key is the text, taken raw
|
|
86
|
+
// (no comment, indentation kept relative to the first line); a line holding only `|` is an empty line.
|
|
87
|
+
let block = null;
|
|
88
|
+
const closeBlock = () => {
|
|
89
|
+
if (!block)
|
|
90
|
+
return;
|
|
91
|
+
while (block.lines.length && block.lines[block.lines.length - 1] === "")
|
|
92
|
+
block.lines.pop();
|
|
93
|
+
block.node.value = block.lines.join("\n");
|
|
94
|
+
block = null;
|
|
95
|
+
};
|
|
85
96
|
lines.forEach((raw, i) => {
|
|
86
97
|
const line = i + 1;
|
|
98
|
+
if (block) {
|
|
99
|
+
const trimmed = raw.trim();
|
|
100
|
+
const indent = raw.length - raw.trimStart().length;
|
|
101
|
+
if (trimmed === "" || indent > block.indent) {
|
|
102
|
+
if (trimmed === "") {
|
|
103
|
+
block.lines.push("");
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (/^ *\t/.test(raw))
|
|
107
|
+
throw new CrubalError("indent with spaces, not tabs", line);
|
|
108
|
+
if (block.base === null)
|
|
109
|
+
block.base = indent;
|
|
110
|
+
block.lines.push(trimmed === "|" ? "" : raw.slice(Math.min(block.base, indent)));
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
closeBlock();
|
|
114
|
+
}
|
|
87
115
|
if (/^ *\t/.test(raw))
|
|
88
116
|
throw new CrubalError("indent with spaces, not tabs", line);
|
|
89
117
|
const stripped = stripComment(raw);
|
|
@@ -117,7 +145,15 @@ export function readTree(source) {
|
|
|
117
145
|
const node = lineNode(body, line, indent);
|
|
118
146
|
parent.children.push(node);
|
|
119
147
|
stack.push({ node, indent });
|
|
148
|
+
const pipe = node.kind === "pair" ? node.value.match(/^\|(?:\s+(\[.*\]))?$/) : null;
|
|
149
|
+
if (pipe) {
|
|
150
|
+
node.block = true;
|
|
151
|
+
if (pipe[1])
|
|
152
|
+
node.detail = pipe[1];
|
|
153
|
+
block = { node, indent, base: null, lines: [] };
|
|
154
|
+
}
|
|
120
155
|
});
|
|
156
|
+
closeBlock();
|
|
121
157
|
return root.children;
|
|
122
158
|
}
|
|
123
159
|
//# sourceMappingURL=tree.js.map
|
package/dist/src/tree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/tree.ts"],"names":[],"mappings":"AAAA,wGAAwG;AACxG,2GAA2G;AAC3G,sCAAsC;AAEtC,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,CAAqB;IAClC,YAAY,OAAe,EAAE,IAAa;QACxC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const STANDARD_UNITS = "// The units table's records (11.9). The base unit of each dimension has factor 1 and states the rounding a\n// conversion keeps when the facet states none.\ncrubal: 2\npackage: crubal.com/units /2026-10-15\nowner: crubal.com\n\nmeasure: s\n dimension: time\n factor: 1\n rounding: 3\n spellings: sec, secs, second, seconds\n uncefact: SEC\nmeasure: min\n dimension: time\n factor: 60\n spellings: MIN., mins, minute, minutes\n uncefact: MIN\nmeasure: h\n dimension: time\n factor: 3600\n spellings: hr, hrs, hour, hours\n uncefact: HUR\nmeasure: d\n dimension: time\n factor: 86400\n spellings: day, days\n uncefact: DAY\n\nmeasure: m\n dimension: length\n factor: 1\n rounding: 4\n spellings: meter, meters, metre, metres\n uncefact: MTR\nmeasure: mm\n dimension: length\n factor: 0.001\n uncefact: MMT\nmeasure: cm\n dimension: length\n factor: 0.01\n uncefact: CMT\nmeasure: km\n dimension: length\n factor: 1000\n uncefact: KMT\nmeasure: in\n dimension: length\n factor: 0.0254\n spellings: inch, inches\n uncefact: INH\nmeasure: ft\n dimension: length\n factor: 0.3048\n spellings: foot, feet\n uncefact: FOT\nmeasure: mi\n dimension: length\n factor: 1609.344\n spellings: mile, miles\n uncefact: SMI\n\nmeasure: kg\n dimension: mass\n factor: 1\n rounding: 4\n spellings: kilogram, kilograms\n uncefact: KGM\nmeasure: g\n dimension: mass\n factor: 0.001\n spellings: gram, grams\n uncefact: GRM\nmeasure: oz\n dimension: mass\n factor: 0.028349523125\n spellings: ounce, ounces\n uncefact: ONZ\nmeasure: lb\n dimension: mass\n factor: 0.45359237\n spellings: lbs, pound, pounds\n uncefact: LBR\n\nmeasure: L\n dimension: volume\n factor: 1\n rounding: 3\n spellings: l, liter, liters, litre, litres\n uncefact: LTR\nmeasure: mL\n dimension: volume\n factor: 0.001\n spellings: ml, milliliter, milliliters, millilitre, millilitres\n uncefact: MLT\nmeasure: floz\n dimension: volume\n factor: 0.0295735295625\n spellings: fl oz, fl. oz., fluid ounce, fluid ounces\n uncefact: OZA\nmeasure: gal\n dimension: volume\n factor: 3.785411784\n spellings: gallon, gallons\n uncefact: GLL\n\nmeasure: m2\n dimension: area\n factor: 1\n rounding: 4\n spellings: m\u00B2, sqm, square meter, square meters\n uncefact: MTK\nmeasure: ft2\n dimension: area\n factor: 0.09290304\n spellings: ft\u00B2, sqft, square foot, square feet\n uncefact: FTK\n\nmeasure: K\n dimension: temperature\n factor: 1\n rounding: 2\n spellings: kelvin\n uncefact: KEL\nmeasure: \u00B0C\n dimension: temperature\n factor: 1\n offset: 273.15\n spellings: C, degC, celsius\n uncefact: CEL\nmeasure: \u00B0F\n dimension: temperature\n factor: 0.5555555555555556\n offset: 255.37222222222223\n spellings: F, degF, fahrenheit\n uncefact: FAH\n\nmeasure: B\n dimension: data\n factor: 1\n rounding: 0\n spellings: byte, bytes\n uncefact: AD\nmeasure: KB\n dimension: data\n factor: 1000\n uncefact: 2P\nmeasure: MB\n dimension: data\n factor: 1000000\n uncefact: 4L\nmeasure: GB\n dimension: data\n factor: 1000000000\n uncefact: E34\nmeasure: TB\n dimension: data\n factor: 1000000000000\n uncefact: E35\n\nmeasure: each\n dimension: count\n factor: 1\n rounding: 0\n spellings: ea, pc, pcs, piece, pieces\n uncefact: EA\nmeasure: dozen\n dimension: count\n factor: 12\n spellings: dz, doz\n uncefact: DZN\n\ncurrency: USD\n name: US dollar\n places: 2\ncurrency: EUR\n name: Euro\n places: 2\ncurrency: GBP\n name: Pound sterling\n places: 2\ncurrency: CAD\n name: Canadian dollar\n places: 2\ncurrency: AUD\n name: Australian dollar\n places: 2\ncurrency: MXN\n name: Mexican peso\n places: 2\ncurrency: JPY\n name: Yen\n places: 0\ncurrency: BHD\n name: Bahraini dinar\n places: 3\n";
|