@wrenautomation/birdwatch 0.29.0 → 0.30.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +36 -53
  2. package/dist/app/cli.js +5 -2
  3. package/dist/app/cli.js.map +1 -1
  4. package/dist/app/config.d.ts +5 -0
  5. package/dist/app/config.js +53 -0
  6. package/dist/app/config.js.map +1 -0
  7. package/dist/app/engine-cli.d.ts +2 -8
  8. package/dist/app/engine-cli.js +34 -164
  9. package/dist/app/engine-cli.js.map +1 -1
  10. package/dist/app/index.d.ts +3 -3
  11. package/dist/app/index.js +3 -3
  12. package/dist/app/index.js.map +1 -1
  13. package/dist/document/extract.d.ts +1 -1
  14. package/dist/document/types.d.ts +2 -2
  15. package/dist/document/types.js +2 -2
  16. package/dist/engine/agent.d.ts +12 -10
  17. package/dist/engine/agent.js +42 -30
  18. package/dist/engine/agent.js.map +1 -1
  19. package/dist/engine/context.d.ts +9 -0
  20. package/dist/engine/{runner.js → context.js} +10 -78
  21. package/dist/engine/context.js.map +1 -0
  22. package/dist/engine/index.d.ts +2 -2
  23. package/dist/engine/index.js +2 -2
  24. package/dist/engine/index.js.map +1 -1
  25. package/dist/engine/judge.d.ts +1 -1
  26. package/dist/engine/plan.d.ts +4 -4
  27. package/dist/engine/plan.js +4 -4
  28. package/dist/engine/plan.js.map +1 -1
  29. package/dist/{plan → engine}/plans/index.d.ts +4 -2
  30. package/dist/engine/plans/index.js +104 -0
  31. package/dist/engine/plans/index.js.map +1 -0
  32. package/dist/engine/ports.d.ts +9 -57
  33. package/dist/engine/ports.js +3 -3
  34. package/dist/engine/ports.js.map +1 -1
  35. package/dist/engine/recall.d.ts +1 -1
  36. package/dist/engine/state.d.ts +0 -3
  37. package/dist/engine/state.js +1 -25
  38. package/dist/engine/state.js.map +1 -1
  39. package/dist/engine/steps.d.ts +20 -20
  40. package/dist/engine/steps.js +42 -167
  41. package/dist/engine/steps.js.map +1 -1
  42. package/dist/engine/tree.d.ts +9 -2
  43. package/dist/engine/tree.js +16 -0
  44. package/dist/engine/tree.js.map +1 -1
  45. package/dist/{plan → engine}/types.d.ts +14 -165
  46. package/dist/{plan → engine}/types.js +18 -73
  47. package/dist/engine/types.js.map +1 -0
  48. package/dist/index.d.ts +9 -9
  49. package/dist/index.js +9 -9
  50. package/dist/ledger/files.d.ts +1 -1
  51. package/dist/ledger/files.js +1 -1
  52. package/dist/ledger/files.js.map +1 -1
  53. package/dist/ledger/ledger.d.ts +2 -2
  54. package/dist/ledger/records.d.ts +139 -139
  55. package/dist/ledger/records.js +6 -6
  56. package/dist/ledger/records.js.map +1 -1
  57. package/dist/sources/arxiv.d.ts +1 -1
  58. package/dist/sources/google.d.ts +1 -1
  59. package/dist/sources/paste.d.ts +1 -1
  60. package/dist/sources/sites.d.ts +1 -1
  61. package/package.json +4 -8
  62. package/dist/engine/runner.d.ts +0 -30
  63. package/dist/engine/runner.js.map +0 -1
  64. package/dist/plan/index.d.ts +0 -7
  65. package/dist/plan/index.js +0 -8
  66. package/dist/plan/index.js.map +0 -1
  67. package/dist/plan/model.d.ts +0 -6
  68. package/dist/plan/model.js +0 -7
  69. package/dist/plan/model.js.map +0 -1
  70. package/dist/plan/plan.d.ts +0 -31
  71. package/dist/plan/plan.js +0 -87
  72. package/dist/plan/plan.js.map +0 -1
  73. package/dist/plan/plans/index.js +0 -236
  74. package/dist/plan/plans/index.js.map +0 -1
  75. package/dist/plan/render.d.ts +0 -41
  76. package/dist/plan/render.js +0 -75
  77. package/dist/plan/render.js.map +0 -1
  78. package/dist/plan/review.d.ts +0 -11
  79. package/dist/plan/review.js +0 -39
  80. package/dist/plan/review.js.map +0 -1
  81. package/dist/plan/triage.d.ts +0 -18
  82. package/dist/plan/triage.js +0 -65
  83. package/dist/plan/triage.js.map +0 -1
  84. package/dist/plan/types.js.map +0 -1
@@ -1,7 +1,6 @@
1
1
  /**
2
- * The step table: one typed call per step, records in, records out. The runner interprets it in
3
- * order; wren's executor mounts the same table as stations. A step reads the fold, calls ports,
4
- * and appends records; it holds nothing between calls. Source calls fan out (per query across
2
+ * The fixed steps the agent commands run: search, read, extract, check. A step reads the fold,
3
+ * calls ports, and appends records; it holds nothing between calls. Source calls fan out (per query across
5
4
  * the searchers; reads and extracts a few at a time) and their records land in order, so a
6
5
  * trace reads the same whatever answered first. A step runs again after a transient failure
7
6
  * from where its records say it got to: a search with an ok spend, a hit with a document, a
@@ -9,12 +8,12 @@
9
8
  */
10
9
  import { isTransient, Transient } from "@wrenautomation/models";
11
10
  import { checkFinding, gateFindings } from "../document/index.js";
12
- import { dedupeHits, defaultPlanFile, plan, review, triage, withPremises } from "../plan/index.js";
13
11
  import { canonical } from "./canonical.js";
14
12
  import { DOUBT, judgeDocuments, judgeFindings, judgeHits, passNote, yesOf } from "./judge.js";
15
13
  import { FOLLOW_N, pick, searchersFor } from "./ports.js";
16
- import { fold, found, kept, planOf, toCheck, toExtract, toRead, uncalledHits, } from "./state.js";
17
- import { budgetUnder, fromChildren, fromSiblings, linkTo, treeReadsOf, treeRoom, } from "./tree.js";
14
+ import { fold, found, kept } from "./state.js";
15
+ import { fromChildren, fromSiblings, treeRoom } from "./tree.js";
16
+ import { HitView } from "./types.js";
18
17
  const message = (err) => (err instanceof Error ? err.message : String(err));
19
18
  /** Reads and extracts in flight at once. */
20
19
  export const PARALLEL = 4;
@@ -87,8 +86,42 @@ async function batched(items, call, keep) {
87
86
  }
88
87
  return { transient };
89
88
  }
89
+ /** A line with a URL or a ledger id on it: a fact someone can go and check. */
90
+ export const sourced = (line) => /https?:\/\/\S|\b[0-9A-HJKMNP-TV-Z]{26}\b/.test(line);
90
91
  /**
91
- * What a round's plan reads, for the agent's plan and the runner's alike: the known lines (what
92
+ * The ask with each known line that names no source moved to its premises. A run seeded with
93
+ * "the buyer is X" plans inside X unless something tests X; a sourced line is looked past.
94
+ */
95
+ export function withPremises(ask) {
96
+ const known = ask.known ?? [];
97
+ return {
98
+ ...ask,
99
+ known: known.filter(sourced),
100
+ premises: [...new Set([...(ask.premises ?? []), ...known.filter((l) => !sourced(l))])],
101
+ };
102
+ }
103
+ /** One hit per url, sources merged, order of first sight. */
104
+ export function dedupeHits(hits) {
105
+ const byUrl = new Map();
106
+ for (const h of hits.map((x) => HitView.parse(x))) {
107
+ const url = h.url.trim();
108
+ const have = byUrl.get(url);
109
+ if (!have) {
110
+ byUrl.set(url, { ...h, url, sources: [...new Set(h.sources)] });
111
+ continue;
112
+ }
113
+ for (const s of h.sources)
114
+ if (!have.sources.includes(s))
115
+ have.sources.push(s);
116
+ for (const k of ["title", "channel", "length", "date", "snippet"]) {
117
+ if (have[k] === undefined && h[k] !== undefined)
118
+ have[k] = h[k];
119
+ }
120
+ }
121
+ return [...byUrl.values()];
122
+ }
123
+ /**
124
+ * What a round's plan reads: the known lines (what
92
125
  * the ask brought, what the run kept, then what its children found), the premises, and what is
93
126
  * open (the last round's holes, children still going). A new child also reads what its parent
94
127
  * and siblings found.
@@ -106,46 +139,6 @@ export async function planAsk(deps, state, base, round, parent) {
106
139
  open: [...(round > 1 ? openAfter(state, round - 1) : []), ...children.open],
107
140
  };
108
141
  }
109
- export const planStep = async (ctx, state) => {
110
- const ask = state.snapshot?.ask ?? ctx.options.ask;
111
- if (!ask)
112
- return { ok: false, note: "no ask: a new run needs one" };
113
- const planFile = ctx.options.planFile ?? defaultPlanFile(ask.kind);
114
- const yieldRows = await ctx.deps.ledger.yield();
115
- // A resume passes the same options: only a new run links; later rounds take the snapshot's.
116
- const asked = state.snapshot ? undefined : ctx.options.parent;
117
- const link = asked ? await linkTo(ctx.deps, asked, planFile) : null;
118
- const parent = link?.parent ?? state.snapshot?.parent;
119
- const { known, premises, open } = await planAsk(ctx.deps, state, ask, ctx.round, parent);
120
- const steer = [...new Set([...(ask.steer ?? []), ...state.steers.map((s) => s.text)])];
121
- const p = await plan({
122
- ask: { ...ask, known, premises, steer, open, criteria: ask.criteria ?? [] },
123
- planFile,
124
- model: ctx.model,
125
- proposals: ctx.round === 1 ? (ctx.options.proposals ?? []) : [],
126
- yieldRows,
127
- ...(ctx.options.sources ? { sources: ctx.options.sources } : {}),
128
- round: ctx.round,
129
- now: ctx.deps.clock,
130
- });
131
- pick(ctx.deps.sources, p.sources);
132
- const { at: _at, ...snapshot } = p.snapshot;
133
- await ctx.write({
134
- type: "snapshot",
135
- ask: p.ask,
136
- sources: p.sources,
137
- opens: (ctx.options.opens ?? state.snapshot?.opens ?? []).filter((n) => !p.sources.includes(n)),
138
- budget: await budgetUnder(ctx.deps, parent, p.budget),
139
- ...snapshot,
140
- ...(parent ? { parent } : { treeReads: treeReadsOf(planFile, p.budget) }),
141
- }, tool(ctx.deps.runner));
142
- for (const { from, by, ...q } of p.queries)
143
- await ctx.write({ type: "query", ...q }, { from, by });
144
- const warned = link?.warnings.length ? `; ${link.warnings.join("; ")}` : "";
145
- return p.queries.length
146
- ? { ok: true, note: `${p.queries.length} queries over ${p.sources.join(", ")}${warned}` }
147
- : { ok: false, note: "no queries: nothing proposed" };
148
- };
149
142
  export const fetchStep = async (ctx, state) => {
150
143
  const queries = state.queries.filter((q) => q.round === ctx.round);
151
144
  const searchers = sourcesOf(ctx, state);
@@ -227,7 +220,7 @@ export const fetchStep = async (ctx, state) => {
227
220
  continue;
228
221
  if (!searchersFor(q.follow ? followers : searchers, q).every((s) => okOn.has(`${q.id}\u0000${s.name}`)))
229
222
  continue;
230
- await ctx.write({ type: "gap", on: q.id, note: `query "${q.terms}": no new hits` }, tool(ctx.deps.runner));
223
+ await ctx.write({ type: "gap", on: q.id, note: `query "${q.terms}": no new hits` }, tool(ctx.deps.writer));
231
224
  empty++;
232
225
  }
233
226
  const judged = await judgeHits(ctx, fold(ctx.run, await ctx.deps.ledger.trace(ctx.run)));
@@ -236,49 +229,6 @@ export const fetchStep = async (ctx, state) => {
236
229
  note: `${written} new hits${again ? `, ${again} found again,` : ""} from ${calls} searches${empty ? `, ${empty} queries with none` : ""}${passNote(judged)}`,
237
230
  };
238
231
  };
239
- export const triageStep = async (ctx, state) => {
240
- const hits = uncalledHits(state, ctx.round);
241
- if (!hits.length)
242
- return { ok: true, note: "no hits to triage" };
243
- const p = planOf(state, ctx.round);
244
- const byUrl = new Map(hits.map((h) => [h.url, h]));
245
- if (!ctx.model) {
246
- const budget = Math.max(0, p.budget.reads - toRead(state, ctx.round).length);
247
- for (const [i, h] of hits.entries())
248
- await ctx.write({
249
- type: "call",
250
- on: h.id,
251
- verdict: i < budget ? "keep" : "drop",
252
- why: i < budget ? "no model: read in order" : "no model: over the read budget",
253
- }, tool(ctx.deps.runner));
254
- return { ok: true, note: `no model: ${Math.min(budget, hits.length)} reads` };
255
- }
256
- const planFile = ctx.options.planFile ?? defaultPlanFile(p.ask.kind);
257
- const views = hits.map(({ type: _t, id: _i, run: _r, round: _ro, step: _s, at: _a, from: _f, by: _b, key: _k, queries: _q, ...view }) => {
258
- // Jev's yes on serves and each criterion: a hint the model sees, never the call
259
- const odds = ["serves", ...(p.ask.criteria ?? []).map((c) => c.name)].flatMap((q) => {
260
- const yes = yesOf(state, _i, q);
261
- return yes === undefined ? [] : [[q, yes]];
262
- });
263
- return odds.length ? { ...view, odds: Object.fromEntries(odds) } : view;
264
- });
265
- const calls = await triage(views, p, ctx.model, {
266
- planFile,
267
- yieldRows: await ctx.deps.ledger.yield(),
268
- });
269
- let reads = 0;
270
- for (const c of calls) {
271
- const h = byUrl.get(c.url);
272
- if (!h)
273
- continue;
274
- if (c.read)
275
- reads++;
276
- await ctx.write({ type: "call", on: h.id, verdict: c.read ? "keep" : "drop", why: c.why }, { from: c.from, by: c.by });
277
- }
278
- return { ok: true, note: `${reads} of ${hits.length} hits to read` };
279
- };
280
- export const readStep = (ctx, state) => readHits(ctx, state, toRead(state, ctx.round));
281
- /** Opens `hits`, each by the first opener that has it; the agent's `open` passes its own list. */
282
232
  export async function readHits(ctx, state, wanted) {
283
233
  // The tree's cap is the one hard stop on reads.
284
234
  const room = wanted.length ? await treeRoom(ctx.deps, ctx.run) : null;
@@ -333,7 +283,7 @@ export async function readHits(ctx, state, wanted) {
333
283
  if (!g.missed || gapOn.has(h.id))
334
284
  return;
335
285
  const why = g.missed.length ? `: ${g.missed.join("; ")}` : "";
336
- await ctx.write({ type: "gap", on: h.id, note: `no source could open ${h.url}${why}` }, tool(ctx.deps.runner));
286
+ await ctx.write({ type: "gap", on: h.id, note: `no source could open ${h.url}${why}` }, tool(ctx.deps.writer));
337
287
  missed++;
338
288
  return;
339
289
  }
@@ -356,8 +306,6 @@ export async function readHits(ctx, state, wanted) {
356
306
  note: `${read} of ${hits.length} hits read${missed ? `, ${missed} no source could open` : ""}${capped}${hint}${passNote(judged)}`,
357
307
  };
358
308
  }
359
- export const extractStep = (ctx, state) => extractDocuments(ctx, state, toExtract(state, ctx.round));
360
- /** A transient stop that says what the step finished first: the next try does only the rest. */
361
309
  const stopped = (t, finished) => new Transient(`${t.message} (${finished} before it stopped; run the step again for the rest)`, {
362
310
  retryAfter: t.retryAfter,
363
311
  ...(t.status === undefined ? {} : { status: t.status }),
@@ -412,13 +360,6 @@ export async function extractDocuments(ctx, state, docs) {
412
360
  * drop call; one that holds gets a check record. The share that fails is the review's read on
413
361
  * the extract. A check record is the checkpoint: a rerun checks only the rest of the sample.
414
362
  */
415
- export const checkStep = (ctx, state) => checkSample(ctx, state, toCheck(state, ctx.round, planOf(state, ctx.round).budget.checks));
416
- /**
417
- * Checks `findings` against their documents; the agent's `check` passes its own sample. The
418
- * judge first reads every kept, unchecked finding with a quote; each one it doubts joins the
419
- * sample. A judge's yes never takes a finding out of it. A fail's fix (a narrower sentence on
420
- * the same quote) passes the gate and a second check before it lands as a new finding.
421
- */
422
363
  export async function checkSample(ctx, state, sample) {
423
364
  const checked = new Set(state.checks.map((c) => c.on));
424
365
  const pool = state.findings.filter((f) => f.proof.quote && kept(state, f) && !checked.has(f.id));
@@ -491,70 +432,4 @@ export async function checkSample(ctx, state, sample) {
491
432
  note: `${ok + failed} checked${why}, ${failed} not backed by their quote${fixed ? ` (${fixed} fixed: a narrower sentence on the same quote)` : ""}${judgeNote}`,
492
433
  };
493
434
  }
494
- export const reviewStep = async (ctx, state) => {
495
- const p = planOf(state, ctx.round);
496
- const inRound = (r) => r.round === ctx.round;
497
- const hits = state.hits.filter(inRound).length;
498
- const reads = state.documents.filter(inRound).length;
499
- const proposed = state.findings.filter(inRound).length;
500
- const foundNow = found(state, ctx.round);
501
- const dated = state.findings
502
- .filter((f) => inRound(f) && kept(state, f))
503
- .map((f) => (f.date ? `${f.text} [${f.date}]` : f.text));
504
- const textOf = new Map(state.findings.map((f) => [f.id, f.text]));
505
- const urlOf = new Map(state.documents.map((d) => [d.id, d.url]));
506
- const round = {
507
- ask: p.ask,
508
- round: ctx.round,
509
- budget: p.budget,
510
- hits,
511
- reads,
512
- proposed,
513
- kept: foundNow.length,
514
- found: dated,
515
- verdicts: state.verdicts.filter(inRound).map((v) => ({
516
- url: urlOf.get(v.document) ?? v.document,
517
- quality: v.quality,
518
- ...(v.gap ? { gap: v.gap } : {}),
519
- })),
520
- notes: [
521
- ...new Set(state.spends
522
- .filter((s) => inRound(s) && !s.ok)
523
- .map((s) => `${s.source} ${s.op} failed: ${s.error ?? "?"}`)),
524
- ...personCalls(state, ctx.round),
525
- ],
526
- gaps: state.gaps.filter(inRound).map(gapLine),
527
- checks: state.checks
528
- .filter(inRound)
529
- .map((c) => `${c.ok ? "ok" : "failed"}: ${textOf.get(c.on) ?? c.on} (${c.why})`),
530
- earlier: Array.from({ length: ctx.round - 1 }, (_, i) => ({
531
- hits: state.hits.filter((h) => h.round === i + 1).length,
532
- kept: found(state, i + 1).length,
533
- })),
534
- };
535
- const edge = ctx.model
536
- ? await review(round, ctx.model, {
537
- planFile: ctx.options.planFile ?? defaultPlanFile(p.ask.kind),
538
- })
539
- : {
540
- next: "stop",
541
- why: "no model: one round",
542
- from: "human",
543
- by: ctx.deps.runner,
544
- };
545
- if (edge.next === "back" && !edge.to)
546
- return { ok: false, note: "the edge says back but names no step" };
547
- const { from, by, ...rest } = edge;
548
- await ctx.write({ type: "edge", ...rest }, { from, by });
549
- return { ok: true, note: `${edge.next}${edge.to ? ` to ${edge.to}` : ""}: ${edge.why}` };
550
- };
551
- export const STEP_TABLE = {
552
- plan: planStep,
553
- fetch: fetchStep,
554
- triage: triageStep,
555
- read: readStep,
556
- extract: extractStep,
557
- check: checkStep,
558
- review: reviewStep,
559
- };
560
435
  //# sourceMappingURL=steps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/engine/steps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/engine/steps.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAc,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAE5E,OAAO,EAAE,YAAY,EAAiB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAWjF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAAa,QAAQ,EAAE,IAAI,EAAe,YAAY,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAiB,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAe,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAkB,MAAM,YAAY,CAAC;AAErD,MAAM,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AA0CrF,4CAA4C;AAC5C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;AAE1B,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,EAAE,EAAE,CAAC,CAAC;AAE7D,qEAAqE;AACrE,MAAM,OAAO,GAAG,CAAC,CAAY,EAAU,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAEzE,qGAAqG;AACrG,MAAM,WAAW,GAAG,CAAC,KAAe,EAAE,KAAa,EAAY,EAAE;IAC/D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,KAAK,CAAC,KAAK;SACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC1E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAe,EAAE,KAAa,EAAY,EAAE;IACpE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,OAAO;QACL,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;QAC3D,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;KAC7B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,GAAgB,EAAE,KAAe,EAAY,EAAE,CAChE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;AAExD,oGAAoG;AACpG,MAAM,SAAS,GAAG,CAAC,GAAgB,EAAE,KAAe,EAAY,EAAE,CAAC;IACjE,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC;IACxB,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;CAC/E,CAAC;AAEF,8FAA8F;AAC9F,SAAS,MAAM,CAAI,OAAkC;IAInD,IAAI,SAAS,GAAqB,IAAI,CAAC;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/B,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO,CAAC,CAAC,KAAK,CAAC;QAC7C,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,SAAS,KAAK,CAAC,CAAC,MAAM,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,CAAC,MAAM,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,OAAO,CACpB,KAAU,EACV,IAA6B,EAC7B,IAAwC;IAExC,IAAI,SAAS,GAAqB,IAAI,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,IAAI,MAAe,CAAC;QACpB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW;gBAAE,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;iBAC5D,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;gBAAE,SAAS,KAAK,CAAC,CAAC,MAAM,CAAC;iBAClD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;YACpB,CAAC;QACH,CAAC;QACD,IAAI,SAAS;YAAE,MAAM,MAAM,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAW,EAAE,CAC/C,0CAA0C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAM;IAEN,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;IAC9B,OAAO;QACL,GAAG,GAAG;QACN,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;QAC5B,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACvF,CAAC;AACJ,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,UAAU,CAAC,IAA0B;IACnD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;YAChE,SAAS;QACX,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/E,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAU,EAAE,CAAC;YAC3E,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS;gBAAG,IAAgC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,IAA0B,EAC1B,KAAe,EACf,IAA+E,EAC/E,KAAa,EACb,MAAe;IAEf,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC;QACvC,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7D,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;KACrC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9F,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,QAAQ;QACR,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC;KAC5E,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAW,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACpD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QACpE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,oCAAoC,EAAE,CAAC;IACnE,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,KAAK,CAAC,MAAM;SACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;SACzE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,CAC1C,CAAC;IACF,sFAAsF;IACtF,oDAAoD;IACpD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC9C,IAAI,IAAI,GAAuB,IAAI,CAAC;IACpC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO;QAC3B,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;YAAE,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aACjE,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,SAAS,GAAqB,IAAI,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CACnE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAC1F,CAAC;QACF,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;QACrB,MAAM,GAAG,GAAG,MAAM,CAChB,MAAM,OAAO,CAAC,UAAU,CACtB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAC1C,CAAC,CAAC,MAAM;YACN,CAAC,CAAE,CAAC,CAAC,MAAwC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC;YAClF,CAAC,CAAE,CAAC,CAAC,MAAwC,CAAC,CAAC,CAAC,CACnD,CACF,CACF,CACF,CAAC;QACF,SAAS,KAAK,GAAG,CAAC,SAAS,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,GAAG,EAGlB,CAAC;QACJ,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,QAAQ,EAAE,CAAC;YACX,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;YAC5B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,IAAI;oBAAE,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;oBAE/E,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;wBACb,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;wBAChC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI;wBAClB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM;qBACvB,CAAC,CAAC;YACP,CAAC;QACH,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC1E,KAAK,EAAE,CAAC;gBACR,SAAS;YACX,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC7F,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,IAAI,SAAS,IAAI,CAAC,QAAQ;QAAE,MAAM,SAAS,CAAC;IAC5C,wFAAwF;IACxF,qFAAqF;IACrF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,KAAK;SACF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC;SACvF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAI,CAAqB,CAAC,EAAE,SAAU,CAAwB,CAAC,MAAM,EAAE,CAAC,CACvF,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,GAAG,CACnB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAC3F,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtF,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,8FAA8F;QAC9F,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,SAAS;QAC5D,IACE,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CACnC;YAED,SAAS;QACX,MAAM,GAAG,CAAC,KAAK,CACb,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,KAAK,gBAAgB,EAAE,EAClE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CACtB,CAAC;QACF,KAAK,EAAE,CAAC;IACV,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,GAAG,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,eAAe,CAAC,CAAC,CAAC,EAAE,SAAS,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,oBAAoB,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE;KAC7J,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,GAAgB,EAChB,KAAe,EACf,MAA4B;IAE5B,gDAAgD;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;QACpB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,kBAAkB,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,mBAAmB,IAAI,CAAC,GAAG,2DAA2D;SAC1I,CAAC;IACJ,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACxD,MAAM,MAAM,GACV,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,yBAAyB,IAAI,CAAC,MAAM,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChG,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3D,sFAAsF;IACtF,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACtF,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM;QAChC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,kCAAkC,EAAE,CAAC;IACjE,IAAI,SAAS,GAAqB,IAAI,CAAC;IACvC;;;;;OAKG;IACH,MAAM,OAAO,GAAG,KAAK,EACnB,CAAY,EAC8D,EAAE;QAC5E,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,SAAS;YACzC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CACvD,CAAC,CAAC,IAAoC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;oBAChE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;wBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC9D,MAAM,GAAG,CAAC;gBACZ,CAAC,CAAC,CACH,CAAC;gBACF,IAAI,GAAG;oBAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;oBAAE,MAAM,GAAG,CAAC;gBACjC,SAAS,KAAK,GAAG,CAAC;gBAClB,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3C,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnD,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC/C,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,OAAO;YACzC,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,MAAM,GAAG,CAAC,KAAK,CACb,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,wBAAwB,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EACtE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CACtB,CAAC;YACF,MAAM,EAAE,CAAC;YACT,OAAO;QACT,CAAC;QACD,MAAM,GAAG,CAAC,KAAK,CACb,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EACzC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CACpE,CAAC;QACF,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IACH,IAAI,SAAS,IAAI,CAAC,IAAI;QAAE,MAAM,SAAS,CAAC;IACxC,oFAAoF;IACpF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7F,MAAM,IAAI,GACR,MAAM,IAAI,OAAO,CAAC,MAAM;QACtB,CAAC,CAAC,4BAA4B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB;QACnF,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,MAAM,GAAG,IAAI;QACjB,CAAC,CAAC,MAAM,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAC7B,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC,MAAM,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,uBAAuB,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE;KAClI,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,CAAY,EAAE,QAAgB,EAAE,EAAE,CACjD,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,QAAQ,sDAAsD,EAAE;IAC7F,UAAU,EAAE,CAAC,CAAC,UAAU;IACxB,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACvD,KAAK,EAAE,CAAC;CACT,CAAC,CAAC;AAEL,wGAAwG;AACxG,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAgB,EAChB,KAAe,EACf,IAA+B;IAE/B,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;IAClE,IAAI,CAAC,GAAG,CAAC,KAAK;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC;IAC1E,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC;IAChC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACpD,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,KAAK,EAAE,CAAiB,EAAE,EAAE;QAC7C,MAAM,EACJ,IAAI,EAAE,EAAE,EACR,EAAE,EACF,GAAG,EAAE,EAAE,EACP,KAAK,EAAE,GAAG,EACV,IAAI,EAAE,EAAE,EACR,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,EAAE,EACR,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,EAAE,EACP,GAAG,GAAG,EACP,GAAG,CAAC,CAAC;QACN,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAU,CAAC;QACvC,OAAO;YACL,GAAG,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CACnC,GAAG,EACH,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,EAC3C,KAAK,CACN;YACD,KAAK;SACN,CAAC;IACJ,CAAC,CAAC;IACF,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,2FAA2F;IAC3F,wFAAwF;IACxF,6BAA6B;IAC7B,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9D,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,IAAa,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ;YAC5B,MAAM,GAAG,CAAC,KAAK,CACb,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAC9E,GAAG,CACJ,CAAC;QACJ,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;QACvC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5F,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;QAClC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QAChC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;QAClC,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IACH,IAAI,GAAG,CAAC,SAAS;QACf,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,QAAQ,kBAAkB,IAAI,OAAO,IAAI,CAAC,MAAM,YAAY,CAAC,CAAC;IAChG,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,GAAG,QAAQ,kBAAkB,IAAI,eAAe,OAAO,uBAAuB,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,wBAAwB,CAAC,CAAC,CAAC,EAAE,EAAE;KAC9I,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAgB,EAChB,KAAe,EACf,MAAgC;IAEhC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjG,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACxF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CACzB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CACvE,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,SAAS,EAAE,EAAE,CAAC;IAChF,IAAI,CAAC,GAAG,CAAC,KAAK;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,sBAAsB,SAAS,EAAE,EAAE,CAAC;IAC7E,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,KAAK,EAAE,CAA4B,EAAE,EAAE;QACtD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAU,CAAC;QACzC,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;IACzD,CAAC,CAAC;IACF,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,gFAAgF;IAChF,MAAM,MAAM,GAAG,KAAK,EAAE,CAAgB,EAAE,GAAW,EAAE,KAAY,EAAE,EAAE;QACnE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAmB,CAAC;QACjD,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;aACrF,QAAQ,CAAC,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,IAAa,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,KAAK,CACxB;YACE,IAAI,EAAE,SAAS;YACf,GAAG,KAAK;YACR,QAAQ,EAAE,CAAC,CAAC,EAAE;YACd,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,KAAK,EAAE,CAAC,CAAC,EAAE;SACZ,EACD,GAAG,CACJ,CAAC;QACF,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9E,IAAI,KAAK,CAAC,EAAE;YAAE,KAAK,EAAE,CAAC;;YACjB,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;IACvF,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAChE,IAAI,CAAC,CAAC,CAAC,GAAG;YAAE,OAAO;QACnB,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,IAAa,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACpD,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QAChF,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE;YAAE,EAAE,EAAE,CAAC;aACd,CAAC;YACJ,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;YAClF,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG;gBAAE,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,GAAG,CAAC,SAAS;QAAE,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,MAAM,CAAC,MAAM,cAAc,CAAC,CAAC;IAClG,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM;QACxB,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,aAAa,OAAO,CAAC,MAAM,qBAAqB;QACpE,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,WAAW,GAAG,KAAK,MAAM,6BAA6B,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,gDAAgD,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE;KAChK,CAAC;AACJ,CAAC"}
@@ -6,10 +6,11 @@
6
6
  * The one hard stop is the pages the whole tree reads, pinned on the root's snapshot: depth costs
7
7
  * nothing a sibling would not, so only the total is worth a wall.
8
8
  */
9
- import type { SnapshotRecord } from "../ledger/records.js";
10
- import type { Budget, PlanFile } from "../plan/index.js";
9
+ import { type SnapshotRecord } from "../ledger/records.js";
11
10
  import { costOf } from "./cost.js";
11
+ import type { Budget, PlanFile } from "./plan.js";
12
12
  import type { Deps } from "./ports.js";
13
+ import { type RunState } from "./state.js";
13
14
  /** The caps when the plan file names none: the root and its children; six children per round. */
14
15
  export declare const RUNS: {
15
16
  depth: number;
@@ -19,6 +20,12 @@ export type Parent = NonNullable<SnapshotRecord["parent"]>;
19
20
  type Reads = Pick<Deps, "ledger">;
20
21
  /** The runs that name this one as parent, each by its first snapshot, in the order they began. */
21
22
  export declare function childrenOf(deps: Reads, run: string): Promise<SnapshotRecord[]>;
23
+ /**
24
+ * The run and every run under it as one fold, for lookups only (findings, calls, classes,
25
+ * patterns): a parent's pattern or draft may rest on its children's findings. Its pointer and
26
+ * snapshot are meaningless; take those from the run's own fold.
27
+ */
28
+ export declare function treeStateOf(deps: Reads, run: string): Promise<RunState>;
22
29
  /** The pages a tree may read, for a root's snapshot: the plan file's, else from the root's budget. */
23
30
  export declare const treeReadsOf: (planFile: PlanFile, budget: Budget) => number;
24
31
  /** The run's ancestors, root first, each by its latest snapshot. */
@@ -6,6 +6,7 @@
6
6
  * The one hard stop is the pages the whole tree reads, pinned on the root's snapshot: depth costs
7
7
  * nothing a sibling would not, so only the total is worth a wall.
8
8
  */
9
+ import { byTime } from "../ledger/records.js";
9
10
  import { costOf } from "./cost.js";
10
11
  import { recall } from "./recall.js";
11
12
  import { classesOf, fold } from "./state.js";
@@ -20,6 +21,21 @@ export async function childrenOf(deps, run) {
20
21
  out.set(r.run, r);
21
22
  return [...out.values()];
22
23
  }
24
+ /**
25
+ * The run and every run under it as one fold, for lookups only (findings, calls, classes,
26
+ * patterns): a parent's pattern or draft may rest on its children's findings. Its pointer and
27
+ * snapshot are meaningless; take those from the run's own fold.
28
+ */
29
+ export async function treeStateOf(deps, run) {
30
+ const runs = [run];
31
+ for (let i = 0; i < runs.length; i++)
32
+ for (const c of await childrenOf(deps, runs[i]))
33
+ runs.push(c.run);
34
+ if (runs.length === 1)
35
+ return stateOf(deps, run);
36
+ const records = (await Promise.all(runs.map((r) => deps.ledger.trace(r)))).flat().sort(byTime);
37
+ return fold(run, records);
38
+ }
23
39
  /** The pages a tree may read, for a root's snapshot: the plan file's, else from the root's budget. */
24
40
  export const treeReadsOf = (planFile, budget) => planFile.runs?.reads ??
25
41
  budget.reads * budget.rounds * ((planFile.runs?.children ?? RUNS.children) + 1);
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/engine/tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/engine/tree.ts"],"names":[],"mappings":"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"}