@descryy/core 0.6.3 → 0.7.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.
@@ -11,7 +11,59 @@ const MAX_CONTROL = 0.02;
11
11
  * bench/ can't be imported from packages/core. User-ruled: a capability that moves a tier needs
12
12
  * this many decided rows of its OWN edge type, not just an aggregate pass. */
13
13
  const TYPE_FLOOR = 20;
14
+ /** The other half of the same floor, and it was missing. `bench/grader-outcome-adjudicate.mjs`'s
15
+ * `scoreLines` has always marked a type `<- below floor` at `n >= TYPE_FLOOR && ok / n < 0.95`;
16
+ * this file counted the rows and never looked at how many were right, so a draw that FAILED a
17
+ * capability was the evidence that granted it — csharp/eShopOnWeb's USES_API at 19/25 = 76% moved
18
+ * csharp from B to A. Same value as the bench layer's, for the same reason TYPE_FLOOR is. */
19
+ const TYPE_RATE_FLOOR = 0.95;
14
20
  const REPOSITORIES_REQUIRED = 2;
21
+ /** Mirrors `bench/kotlin-precision.mjs`'s `COVERAGE_FLOOR` — the other half of scoring over
22
+ * `decided`. Precision says how well the grader did on what it judged; coverage says how much
23
+ * it was willing to judge. Neither alone is a claim, and only one of the two was ever gated
24
+ * here. Restated rather than imported for the same reason `TYPE_FLOOR` is: a bench instrument
25
+ * is not a dependency of the shipped gate. If you change one, change both. */
26
+ const COVERAGE_FLOOR = 0.6;
27
+ /** The same floor again, one layer down: of the control swaps a grader ATTEMPTED, how many it
28
+ * managed to make wrong at all. Mirrors `bench/grader-outcome-adjudicate.mjs`'s
29
+ * `CONTROL_COVERAGE_FLOOR`, which guards the neighbouring shrink (rows the adjudicator refused
30
+ * to judge) at the same 0.6 — restated rather than imported, on the same terms as TYPE_FLOOR and
31
+ * COVERAGE_FLOOR. If you change one, change both. */
32
+ const CONTROL_CONSTRUCTION_FLOOR = 0.6;
33
+ /**
34
+ * The headline recall denominator. Mirrors `HEADLINE_AXIS` in
35
+ * `bench/lib/recall-baseline.mjs`, restated on the same terms as `TYPE_FLOOR`
36
+ * and `COVERAGE_FLOOR`: a bench instrument is not a dependency of the shipped
37
+ * gate. **If you change one, change both.** `packages/core/test/tiers.test.ts`
38
+ * and `bench/test/recall-verdict.test.mjs` both pin it.
39
+ */
40
+ const HEADLINE_RECALL_AXIS = "wholeCodebase";
41
+ /**
42
+ * `COVERAGE_FLOOR` again, for recall.
43
+ *
44
+ * Precision says how well the grader did on what it judged; coverage says how
45
+ * much it was willing to judge. Recall has the identical hole: an instrument
46
+ * that draws 2000 sites, decides 118 of them and reports 118/118 = 100% has
47
+ * measured its own willingness to be graded. That is `ruby/fluentd`, verbatim.
48
+ *
49
+ * **This floor DISQUALIFIES a figure and does not fail an adapter**, and unlike
50
+ * every other constant in this file it is attached to nothing that moves a
51
+ * tier. Two measured reasons, both of which would have to change first:
52
+ *
53
+ * 1. `bench/gate-evidence.json` carries no recall rows for any adapter. This
54
+ * file's doctrine is that absent evidence fails, so a recall REQUIREMENT
55
+ * today would drop every adapter at once — on the evidence's absence, not
56
+ * on any adapter's performance.
57
+ * 2. Nothing in the corpus is close. On `bench/recall-baseline.json` the
58
+ * headline axis reads 6.7%–45.3% across eighteen rows, best
59
+ * `java/shopizer` at 45.3%. A requirement at any rate a reader would accept
60
+ * is red for every row, and a gate red for every row is a gate people stop
61
+ * reading.
62
+ *
63
+ * Mirrors `RECALL_COVERAGE_FLOOR` in `bench/recall-verdict.mjs`, which mirrors
64
+ * `COVERAGE_FLOOR` above. Three places, one value; change one, change all.
65
+ */
66
+ const RECALL_COVERAGE_FLOOR = 0.6;
15
67
  function missing(wanted, have) {
16
68
  if (wanted === undefined)
17
69
  return [];
@@ -22,10 +74,16 @@ function missing(wanted, have) {
22
74
  * Fixes a defect where a dedicated single-type draw read as silence — Python's SERVES_API drew
23
75
  * 200/200 and 48/48 (re-verified) but printed "0/20 decided". A dedicated zero-row draw counts as 0. */
24
76
  function decidedRowsOfType(draw, type) {
25
- if (draw.perEdgeType !== undefined)
26
- return draw.perEdgeType[type]?.decided ?? 0;
77
+ return rowsOfType(draw, type)?.decided;
78
+ }
79
+ /** Decided AND correct for one edge type. Both, because the floor is about both — see `TYPE_RATE_FLOOR`. */
80
+ function rowsOfType(draw, type) {
81
+ if (draw.perEdgeType !== undefined) {
82
+ const bucket = draw.perEdgeType[type];
83
+ return bucket === undefined ? { decided: 0, correct: 0 } : { decided: bucket.decided, correct: bucket.correct };
84
+ }
27
85
  if (draw.edgeType === type)
28
- return draw.decided ?? draw.drawn;
86
+ return { decided: draw.decided ?? draw.drawn, correct: draw.correct };
29
87
  return undefined;
30
88
  }
31
89
  function checkCapability(requirement, evidence) {
@@ -55,7 +113,23 @@ function checkCapability(requirement, evidence) {
55
113
  continue; // already named in edgeGap above
56
114
  if (!isPromotionRequirement)
57
115
  continue;
58
- const contributions = evidence.precisionDraws
116
+ // **Only draws whose own negative control held.** The control is the sole
117
+ // detector for an adjudicator that says yes to everything, so a draw whose
118
+ // control exceeded the ceiling carries an UNGUARDED precision figure — and
119
+ // routing its per-type rows into a capability check would be the control
120
+ // gate in `checkPrecisionDraws` bypassed by a second code path. Measured:
121
+ // kotlin/ktor's USES_API draw reads 54/54 with a control of 4/54 = 7.4%, and
122
+ // its own artefact records `passed: false`; recording it moved kotlin from
123
+ // Tier B to Tier A until this line existed.
124
+ const guarded = evidence.precisionDraws.filter((d) => d.controlDrawn > 0 && d.controlCorrect / d.controlDrawn <= MAX_CONTROL);
125
+ const unguarded = evidence.precisionDraws.filter((d) => !guarded.includes(d) && (decidedRowsOfType(d, type) ?? 0) > 0);
126
+ for (const d of unguarded) {
127
+ gaps.push(`${type} evidence from ${d.repository} is not counted: its negative control is ` +
128
+ `${d.controlCorrect}/${d.controlDrawn}` +
129
+ (d.controlDrawn === 0 ? " — no control was run at all" : `, above ${MAX_CONTROL * 100}%`) +
130
+ `, so that draw's precision figure is unguarded and cannot earn a capability`);
131
+ }
132
+ const contributions = guarded
59
133
  .map((d) => decidedRowsOfType(d, type))
60
134
  .filter((n) => n !== undefined);
61
135
  if (contributions.length === 0) {
@@ -64,6 +138,21 @@ function checkCapability(requirement, evidence) {
64
138
  continue;
65
139
  }
66
140
  const decided = contributions.reduce((sum, n) => sum + n, 0);
141
+ // **The rate, checked at the floor and never above it.** Below TYPE_FLOOR the
142
+ // sample is too small to say anything, and the count check below is what
143
+ // rejects it; at or above the floor a type that is measurably wrong must not
144
+ // be the evidence that grants the requirement it fails.
145
+ const measured = guarded
146
+ .map((d) => rowsOfType(d, type))
147
+ .filter((r) => r !== undefined)
148
+ .reduce((sum, r) => ({ decided: sum.decided + r.decided, correct: sum.correct + r.correct }), { decided: 0, correct: 0 });
149
+ if (measured.decided >= TYPE_FLOOR && measured.correct / measured.decided < TYPE_RATE_FLOOR) {
150
+ gaps.push(`${type} ${measured.correct}/${measured.decided} = ` +
151
+ `${Math.round((100 * measured.correct) / measured.decided)}% across the recorded precision draws, ` +
152
+ `below the per-type floor of ${TYPE_RATE_FLOOR * 100}% — the draws that measure this capability ` +
153
+ `measure it FAILING, and a failing measurement is not evidence for the requirement it fails`);
154
+ continue;
155
+ }
67
156
  if (decided < TYPE_FLOOR) {
68
157
  gaps.push(`${type} ${decided}/${TYPE_FLOOR} decided rows across the recorded precision draws — declared, ` +
69
158
  `but not validated by the draw at the floor every edge type is otherwise held to`);
@@ -98,6 +187,32 @@ function checkPrecisionDraws(requirement, evidence) {
98
187
  }
99
188
  const reasons = [];
100
189
  const qualifying = draws.filter((d) => {
190
+ // **Checked before anything else, because every check after it is a `<`.**
191
+ // `undefined / 32` is NaN, and every comparison with NaN is false — so a row
192
+ // carrying no usable counts does not fail these gates, it passes all of
193
+ // them in turn. That is not hypothetical: a recorder wrote four rows with
194
+ // `correct: undefined` and this function awarded Tier A on them, one of
195
+ // which had really measured 19/25 = 76%.
196
+ //
197
+ // A numeric guard rather than a `=== undefined` guard, because NaN and
198
+ // Infinity arrive the same way (a rate multiplied back into a count, a
199
+ // division by a zero denominator) and read the same way downstream.
200
+ const counts = [
201
+ ["drawn", d.drawn],
202
+ ["correct", d.correct],
203
+ ["controlDrawn", d.controlDrawn],
204
+ ["controlCorrect", d.controlCorrect],
205
+ ["decided", d.decided ?? 0],
206
+ ["population", d.population ?? 0],
207
+ ["controlUncontrollable", d.controlUncontrollable ?? 0],
208
+ ];
209
+ const unusable = counts.filter(([, value]) => typeof value !== "number" || !Number.isFinite(value));
210
+ if (unusable.length > 0) {
211
+ reasons.push(`${d.repository}: no usable counts — ${unusable.map(([name]) => name).join(", ")} ` +
212
+ `${unusable.length === 1 ? "is" : "are"} not a number. A draw that cannot be compared against a ` +
213
+ `threshold must not pass one: absent evidence is a failure, never a pass`);
214
+ return false;
215
+ }
101
216
  if (d.authorChose) {
102
217
  reasons.push(`${d.repository}: the author chose this repository, so it does not count toward the two`);
103
218
  return false;
@@ -129,8 +244,24 @@ function checkPrecisionDraws(requirement, evidence) {
129
244
  return false;
130
245
  }
131
246
  // Precision = correct/DECIDED, never /drawn — folding an honest refusal-to-judge into the
132
- // denominator punishes it exactly like a wrong answer. Coverage is reported separately.
247
+ // denominator punishes it exactly like a wrong answer.
133
248
  const decided = d.decided ?? d.drawn;
249
+ // ...but a denominator the grader chooses is a denominator the grader can shrink. Gated
250
+ // together with precision, never apart: `bench/kotlin-precision.mjs` reasoned this out
251
+ // first ("refusal with no floor is a way to buy any precision you like by refusing
252
+ // whatever you would have got wrong") and enforced it inside itself, where it protected
253
+ // Kotlin's draws and no others. Moving it here is what makes the refusal design honest
254
+ // for every grader that records `decided`, not just the one that invented the field.
255
+ //
256
+ // A draw with no `decided` is NOT charged this. Its grader has no third outcome, so it
257
+ // decided every row it drew; there is no shrinking to guard against, and charging it
258
+ // would fail every row recorded before the distinction existed.
259
+ if (d.decided !== undefined && decided / d.drawn < COVERAGE_FLOOR) {
260
+ reasons.push(`${d.repository}: decided ${decided}/${d.drawn}, coverage ` +
261
+ `${Math.round((decided / d.drawn) * 100)}% below ${COVERAGE_FLOOR * 100}% — precision over a ` +
262
+ `denominator this small is a claim about what the grader chose to judge, not about the adapter`);
263
+ return false;
264
+ }
134
265
  if (d.correct / decided < MIN_PRECISION) {
135
266
  reasons.push(`${d.repository}: precision ${d.correct}/${decided}` +
136
267
  (decided === d.drawn ? "" : ` (of ${d.drawn} drawn, ${decided} decided)`) +
@@ -145,6 +276,17 @@ function checkPrecisionDraws(requirement, evidence) {
145
276
  reasons.push(`${d.repository}: no negative control was run, so the precision figure is unguarded`);
146
277
  return false;
147
278
  }
279
+ // ...and the same shrink again, one layer down. A row whose swap could not be made wrong
280
+ // tested nothing and is rightly out of the denominator; a grader free to declare most of its
281
+ // rows that way can report 0/10 and print the same clean sentence as a control that rejected
282
+ // 200. Charged only where the grader records the bucket at all.
283
+ const attempted = d.controlDrawn + (d.controlUncontrollable ?? 0);
284
+ if (d.controlUncontrollable !== undefined && d.controlDrawn / attempted < CONTROL_CONSTRUCTION_FLOOR) {
285
+ reasons.push(`${d.repository}: ${d.controlDrawn} of ${attempted} control swaps could be made wrong at all, ` +
286
+ `below ${CONTROL_CONSTRUCTION_FLOOR * 100}% — a control this much of which tested nothing is not ` +
287
+ `a guard on the precision figure beside it`);
288
+ return false;
289
+ }
148
290
  return true;
149
291
  });
150
292
  const repositories = new Set(qualifying.map((d) => d.repository));
@@ -204,6 +346,95 @@ function capabilitiesHonest(evidence) {
204
346
  const overEdges = missing(evidence.capabilities.edgeTypes, evidence.emittedEdgeTypes);
205
347
  return overNodes.length === 0 && overEdges.length === 0;
206
348
  }
349
+ /**
350
+ * Rule one recall draw. Pure, and it decides nothing about a tier.
351
+ *
352
+ * Three ways a figure says nothing, and they are different statements:
353
+ * - it is over a NARROWER axis than the headline, so it answers a different
354
+ * question from the one a reader will read it as answering;
355
+ * - it has no draw size, so its coverage has no denominator;
356
+ * - it was graded on too little of its own draw.
357
+ *
358
+ * None of them is "the adapter did badly", and the certificate says so.
359
+ */
360
+ function ruleRecallDraw(draw) {
361
+ const rate = draw.denominator === 0 ? null : draw.found / draw.denominator;
362
+ const coverage = draw.drawn > 0 ? draw.denominator / draw.drawn : null;
363
+ const base = {
364
+ repository: draw.repository,
365
+ axis: draw.axis,
366
+ found: draw.found,
367
+ denominator: draw.denominator,
368
+ drawn: draw.drawn,
369
+ rate,
370
+ coverage,
371
+ ...(draw.secondAxis === undefined ? {} : { secondAxis: draw.secondAxis }),
372
+ ...(draw.generatedExcluded === undefined ? {} : { generatedExcluded: draw.generatedExcluded }),
373
+ recordedBy: draw.recordedBy,
374
+ };
375
+ if (draw.axis !== HEADLINE_RECALL_AXIS) {
376
+ return {
377
+ ...base,
378
+ admissible: false,
379
+ detail: `recorded on the '${draw.axis}' axis, not the headline '${HEADLINE_RECALL_AXIS}'. ` +
380
+ (draw.axis === "inCodebase"
381
+ ? "`inCodebase` divides by the references whose target is declared inside the repository, so every " +
382
+ "call into a library is absent from its denominator — it excludes precisely what the graph could " +
383
+ "not represent. Reportable beside the headline; never as it"
384
+ : "`narrow` divides by found + missing and drops everything the instrument declined to attempt — " +
385
+ "on this corpus that is 78% of drawn sites. Reportable beside the headline; never as it"),
386
+ };
387
+ }
388
+ if (coverage === null) {
389
+ return { ...base, admissible: false, detail: "the draw records no draw size, so coverage has no denominator" };
390
+ }
391
+ if (draw.denominator === 0) {
392
+ return {
393
+ ...base,
394
+ admissible: false,
395
+ detail: `all ${draw.drawn} drawn sites were excluded; nothing was graded, which is undefined and not 0%`,
396
+ };
397
+ }
398
+ if (coverage < RECALL_COVERAGE_FLOOR) {
399
+ return {
400
+ ...base,
401
+ admissible: false,
402
+ detail: `${draw.found}/${draw.denominator} over ${draw.drawn} drawn — coverage ` +
403
+ `${Math.round(coverage * 100)}% is below ${RECALL_COVERAGE_FLOOR * 100}%, so this figure is a claim ` +
404
+ `about what the instrument was willing to grade, not about the adapter`,
405
+ };
406
+ }
407
+ return {
408
+ ...base,
409
+ admissible: true,
410
+ detail: `${draw.found}/${draw.denominator} on the ${HEADLINE_RECALL_AXIS} axis, over ${draw.drawn} drawn`,
411
+ };
412
+ }
413
+ /**
414
+ * The whole recall disclosure, including the case where there is none.
415
+ *
416
+ * **It never contributes to `awarded`.** `packages/core/test/tiers.test.ts`
417
+ * asserts that the worst possible recall draw leaves the tier where it was; if
418
+ * that assertion ever fails, recall has quietly become a gate and every tier on
419
+ * every certificate is now a claim about a measurement no adapter records.
420
+ */
421
+ function discloseRecall(evidence) {
422
+ const draws = evidence.recallDraws ?? [];
423
+ if (draws.length === 0) {
424
+ return {
425
+ state: "not-measured",
426
+ detail: "no recall draw is recorded for this adapter, so this certificate says nothing about how much of a " +
427
+ "codebase reaches the graph. The tier above is about how RIGHT the edges are, not how many there are",
428
+ rows: [],
429
+ };
430
+ }
431
+ return {
432
+ state: "disclosed",
433
+ detail: `recall is disclosed and gates nothing: the headline axis is '${HEADLINE_RECALL_AXIS}', and a figure ` +
434
+ `below the ${RECALL_COVERAGE_FLOOR * 100}% coverage floor is disqualified rather than charged to the adapter`,
435
+ rows: draws.map(ruleRecallDraw),
436
+ };
437
+ }
207
438
  export function certify(evidence) {
208
439
  const byTier = { S: [], A: [], B: [], C: [] };
209
440
  const limits = admissibleLimits(evidence);
@@ -245,9 +476,26 @@ export function certify(evidence) {
245
476
  unreachableHere: evidence.precisionDraws
246
477
  .filter((d) => drawableFrom(d) === 0)
247
478
  .map((d) => ({ repository: d.repository, edgeType: d.edgeType })),
479
+ // Not folded into `limitedIds` either, and for a sharper version of the same reason: a
480
+ // ceiling that waived would let any language buy a tier by declaring its own corpus poor.
481
+ corpusCeilings: (evidence.corpusCeilings ?? []).filter((c) => c.declaredBy.trim() !== ""),
482
+ // Derived like `unreachableHere`, and disclosed whether or not the draw qualified: a draw
483
+ // rejected by the construction floor still says something about its grader, and a draw that
484
+ // passed with rows excluded has a weaker control than its clean number suggests.
485
+ weakenedControls: evidence.precisionDraws
486
+ .filter((d) => (d.controlUncontrollable ?? 0) > 0)
487
+ .map((d) => ({
488
+ repository: d.repository,
489
+ edgeType: d.edgeType,
490
+ constructed: d.controlDrawn,
491
+ uncontrollable: d.controlUncontrollable ?? 0,
492
+ })),
248
493
  // Not folded into `limitedIds` — a cap waives nothing, and if it could skip a requirement that'd be the cheapest route to a tier.
249
494
  policyCaps: admissibleCaps(evidence),
250
495
  capabilitiesHonest: capabilitiesHonest(evidence),
496
+ // Disclosed, never gating. See `RECALL_COVERAGE_FLOOR` for the two measured
497
+ // reasons, and `discloseRecall` for the test that keeps it that way.
498
+ recall: discloseRecall(evidence),
251
499
  };
252
500
  }
253
501
  /** Tier first, then immediately why it isn't higher. Printing "B" alone teaches a reader B is
@@ -273,6 +521,26 @@ export function formatCertificate(certificate) {
273
521
  lines.push(` NOT REACHABLE IN THIS REFERENCE SET — ${empty.edgeType} on ${empty.repository}: population 0`);
274
522
  lines.push(" Nothing here to sample. The remedy is other repositories, not more measurement");
275
523
  }
524
+ // "Not done yet" and "not reachable from the repositories we are allowed to use" are
525
+ // different sentences, and the second is the one eight languages are actually in. Printed
526
+ // beside the unmet rows it explains, never instead of them — the requirement is still unmet.
527
+ for (const ceiling of certificate.corpusCeilings) {
528
+ lines.push(` CEILING ACCEPTED — ${ceiling.id}: ${ceiling.reason}`);
529
+ lines.push(` declared by ${ceiling.declaredBy}; the admitted corpus cannot supply this, and admitting ` +
530
+ `another repository BECAUSE it would move a tier is the move the selection rules forbid. ` +
531
+ `Published as a ceiling, not as work outstanding. Waives nothing`);
532
+ }
533
+ // The control's own disclosure. A swap that could not be made wrong tested nothing, which is
534
+ // why it left the denominator; printing the count is what keeps "0 of 196, 4 untestable" from
535
+ // reading as "0 of 196".
536
+ for (const weak of certificate.weakenedControls) {
537
+ const attempted = weak.constructed + weak.uncontrollable;
538
+ lines.push(` CONTROL WEAKENED — ${weak.repository} (${weak.edgeType}): ${weak.uncontrollable} of ${attempted} ` +
539
+ `control swaps could not be made wrong at all`);
540
+ lines.push(` Every candidate the pool offered for those rows was itself a real edge, so the swap tested ` +
541
+ `nothing and left the denominator. Scored over ${weak.constructed}. A genuine over-acceptance on ` +
542
+ `one of those rows would not have been counted`);
543
+ }
276
544
  for (const cap of certificate.policyCaps) {
277
545
  lines.push(` CAPPED BY POLICY — ${cap.id}: claims ${cap.claimed}, evidence supports ${cap.claimable}`);
278
546
  lines.push(` pending ${cap.pendingOn}; declared by ${cap.declaredBy}. Not a limit — a deliberate under-claim`);
@@ -283,6 +551,42 @@ export function formatCertificate(certificate) {
283
551
  else if (certificate.capabilitiesHonest === "unknown") {
284
552
  lines.push(" capabilities() not compared against a run — DEC-075 §6.3 unverified here");
285
553
  }
554
+ // COVERAGE, NOT CORRECTNESS, and it is printed on every certificate including
555
+ // the ones that have nothing to say. A tier is a statement about how right the
556
+ // edges are; a reader handed only that will answer "how much of my codebase did
557
+ // you analyse" with it, and on this corpus the honest answer to that question is
558
+ // between 6.7% and 45.3%. Printed BEFORE the early return below, so a Tier S
559
+ // certificate does not skip it.
560
+ if (certificate.recall.state === "not-measured") {
561
+ lines.push(" RECALL — not measured");
562
+ lines.push(` ${certificate.recall.detail}`);
563
+ }
564
+ else {
565
+ for (const row of certificate.recall.rows) {
566
+ const rate = row.rate === null ? "undefined (nothing graded)" : `${(100 * row.rate).toFixed(1)}%`;
567
+ const coverage = row.coverage === null ? "—" : `${(100 * row.coverage).toFixed(1)}%`;
568
+ lines.push(` RECALL — ${row.repository}: ${rate} on the ${row.axis} axis ` +
569
+ `(${row.found}/${row.denominator}, ${row.drawn} drawn, coverage ${coverage})` +
570
+ (row.admissible ? "" : " <- DISQUALIFIED AS A FIGURE, not charged to the adapter"));
571
+ lines.push(` ${row.detail}; recorded by ${row.recordedBy}`);
572
+ if (row.secondAxis !== undefined) {
573
+ const second = row.secondAxis;
574
+ const secondRate = second.denominator === 0 ? "undefined" : `${((100 * second.found) / second.denominator).toFixed(1)}%`;
575
+ lines.push(` second axis ${second.axis}: ${second.found}/${second.denominator} = ${secondRate} ` +
576
+ `— reported beside the headline, never as it`);
577
+ }
578
+ if (row.generatedExcluded === undefined) {
579
+ // An undisclosed exclusion and no exclusion must not read the same.
580
+ lines.push(" no generated-code exclusion was recorded for this draw");
581
+ }
582
+ else {
583
+ const excluded = row.generatedExcluded;
584
+ lines.push(` generated code excluded: ${excluded.files} file(s), ${excluded.sites} drawn site(s), by ` +
585
+ `${excluded.rules.join(", ")} — the figure above is over a denominator that much smaller`);
586
+ }
587
+ }
588
+ lines.push(` ${certificate.recall.detail}`);
589
+ }
286
590
  if (certificate.nextTier === null) {
287
591
  lines.push(" nothing above this tier");
288
592
  return lines.join("\n");
@@ -1 +1 @@
1
- {"version":3,"file":"certify.js","sourceRoot":"","sources":["../../src/tiers/certify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"certify.js","sourceRoot":"","sources":["../../src/tiers/certify.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,MAAM,EAA+B,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAgT1F,MAAM,QAAQ,GAAG,GAAG,CAAC;AACrB,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,MAAM,WAAW,GAAG,IAAI,CAAC;AACzB;;+EAE+E;AAC/E,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB;;;;8FAI8F;AAC9F,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC;;;;+EAI+E;AAC/E,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B;;;;sDAIsD;AACtD,MAAM,0BAA0B,GAAG,GAAG,CAAC;AACvC;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAe,eAAe,CAAC;AACzD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC,SAAS,OAAO,CAAI,MAAgC,EAAE,IAAkB;IACtE,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;yGAEyG;AACzG,SAAS,iBAAiB,CAAC,IAAmB,EAAE,IAAY;IAC1D,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC;AACzC,CAAC;AAED,4GAA4G;AAC5G,SAAS,UAAU,CAAC,IAAmB,EAAE,IAAY;IACnD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAClH,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IAClG,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,WAAwB,EAAE,QAAsB;IACvE,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC;IACnC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;IAE/D,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,8BAA8B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEtF,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,8BAA8B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEtF,6FAA6F;IAC7F,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAC1F,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAC1B,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,WAAW,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC;QAC9F,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,aAAa,YAAY,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,gGAAgG;IAChG,gGAAgG;IAChG,mGAAmG;IACnG,MAAM,sBAAsB,GAAG,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClG,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,iCAAiC;QAC/E,IAAI,CAAC,sBAAsB;YAAE,SAAS;QACtC,0EAA0E;QAC1E,2EAA2E;QAC3E,2EAA2E;QAC3E,yEAAyE;QACzE,0EAA0E;QAC1E,6EAA6E;QAC7E,2EAA2E;QAC3E,4CAA4C;QAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,YAAY,IAAI,WAAW,CAC9E,CAAC;QACF,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CACrE,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CACP,GAAG,IAAI,kBAAkB,CAAC,CAAC,UAAU,2CAA2C;gBAC9E,GAAG,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,YAAY,EAAE;gBACvC,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,WAAW,WAAW,GAAG,GAAG,GAAG,CAAC;gBACzF,6EAA6E,CAChF,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,GAAG,OAAO;aAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;aACtC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QAC/C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CACP,GAAG,IAAI,6FAA6F;gBAClG,wDAAwD,CAC3D,CAAC;YACF,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,8EAA8E;QAC9E,yEAAyE;QACzE,6EAA6E;QAC7E,wDAAwD;QACxD,MAAM,QAAQ,GAAG,OAAO;aACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;aAC/B,MAAM,CAAC,CAAC,CAAC,EAA6C,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;aACzE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5H,IAAI,QAAQ,CAAC,OAAO,IAAI,UAAU,IAAI,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,GAAG,eAAe,EAAE,CAAC;YAC5F,IAAI,CAAC,IAAI,CACP,GAAG,IAAI,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,KAAK;gBAClD,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,yCAAyC;gBACnG,+BAA+B,eAAe,GAAG,GAAG,6CAA6C;gBACjG,4FAA4F,CAC/F,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CACP,GAAG,IAAI,IAAI,OAAO,IAAI,UAAU,gEAAgE;gBAC9F,iFAAiF,CACpF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAwB,EAAE,QAAsB;IACxE,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,IAAI,CAAC,CAAC;IAC9C,yFAAyF;IACzF,uCAAuC;IACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC;IACtE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,mCAAmC,MAAM,EAAE,EAAE,CAAC;IAC/E,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,gCAAgC,MAAM,EAAE,EAAE,CAAC;IAC3F,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACvB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,MAAM,8CAA8C,EAAE,CAAC;IAChG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;0GAC0G;AAC1G,SAAS,mBAAmB,CAAC,WAAwB,EAAE,QAAsB;IAC3E,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,WAAW;YACX,OAAO,EAAE,+DAA+D;SACzE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACpC,2EAA2E;QAC3E,6EAA6E;QAC7E,wEAAwE;QACxE,0EAA0E;QAC1E,wEAAwE;QACxE,yCAAyC;QACzC,EAAE;QACF,uEAAuE;QACvE,uEAAuE;QACvE,oEAAoE;QACpE,MAAM,MAAM,GAA8C;YACxD,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;YAClB,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC;YACtB,CAAC,cAAc,EAAE,CAAC,CAAC,YAAY,CAAC;YAChC,CAAC,gBAAgB,EAAE,CAAC,CAAC,cAAc,CAAC;YACpC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;YAC3B,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC;YACjC,CAAC,uBAAuB,EAAE,CAAC,CAAC,qBAAqB,IAAI,CAAC,CAAC;SACxD,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACpG,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CACV,GAAG,CAAC,CAAC,UAAU,wBAAwB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACjF,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,0DAA0D;gBACjG,yEAAyE,CAC5E,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,yEAAyE,CAAC,CAAC;YACvG,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,CAAC,KAAK,GAAG,QAAQ,EAAE,CAAC;YACvB,qGAAqG;YACrG,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACjC,OAAO,CAAC,IAAI,CACV,QAAQ,KAAK,SAAS;gBACpB,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,KAAK,uBAAuB,QAAQ,GAAG;oBAC7D,qEAAqE;gBACvE,CAAC,CAAC,QAAQ,KAAK,IAAI;oBACjB,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,KAAK,OAAO,QAAQ,iBAAiB,CAAC,CAAC,UAAU,4BAA4B;wBACnG,uGAAuG;wBACvG,sGAAsG;wBACtG,qDAAqD;oBACvD,CAAC,CAAC,QAAQ,KAAK,CAAC;wBACd,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,UAAU,QAAQ,cAAc;4BAC/C,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC;gCACjB,CAAC,CAAC,iCAAiC,CAAC,CAAC,QAAQ,8BAA8B;gCAC3E,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,+EAA+E;oCAClG,qBAAqB,CAAC;4BAC1B,8FAA8F;4BAC9F,sBAAsB;wBACxB,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,KAAK,uBAAuB,QAAQ,QAAQ,QAAQ,WAAW;4BACrF,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,QAAQ,GAAG,CAAC,CAAC,UAAU;gCACpD,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,UAAU,CAAC,CAAC,UAAU,GAAG,QAAQ,gBAAgB;gCACpE,CAAC,CAAC,EAAE,CAAC;4BACP,qDAAqD,CAC9D,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,0FAA0F;QAC1F,uDAAuD;QACvD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC;QAErC,wFAAwF;QACxF,uFAAuF;QACvF,mFAAmF;QACnF,wFAAwF;QACxF,uFAAuF;QACvF,qFAAqF;QACrF,EAAE;QACF,uFAAuF;QACvF,qFAAqF;QACrF,gEAAgE;QAChE,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,CAAC,KAAK,GAAG,cAAc,EAAE,CAAC;YAClE,OAAO,CAAC,IAAI,CACV,GAAG,CAAC,CAAC,UAAU,aAAa,OAAO,IAAI,CAAC,CAAC,KAAK,aAAa;gBACzD,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,WAAW,cAAc,GAAG,GAAG,uBAAuB;gBAC9F,+FAA+F,CAClG,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,CAAC,OAAO,GAAG,OAAO,GAAG,aAAa,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CACV,GAAG,CAAC,CAAC,UAAU,eAAe,CAAC,CAAC,OAAO,IAAI,OAAO,EAAE;gBAClD,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,WAAW,OAAO,WAAW,CAAC;gBACzE,WAAW,aAAa,GAAG,GAAG,GAAG,CACpC,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,YAAY,GAAG,WAAW,EAAE,CAAC;YAC1E,OAAO,CAAC,IAAI,CACV,GAAG,CAAC,CAAC,UAAU,sBAAsB,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,YAAY,WAAW,WAAW,GAAG,GAAG,GAAG,CACvG,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,qEAAqE,CAAC,CAAC;YACnG,OAAO,KAAK,CAAC;QACf,CAAC;QACD,yFAAyF;QACzF,6FAA6F;QAC7F,6FAA6F;QAC7F,gEAAgE;QAChE,MAAM,SAAS,GAAG,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,CAAC,qBAAqB,KAAK,SAAS,IAAI,CAAC,CAAC,YAAY,GAAG,SAAS,GAAG,0BAA0B,EAAE,CAAC;YACrG,OAAO,CAAC,IAAI,CACV,GAAG,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,YAAY,OAAO,SAAS,6CAA6C;gBAC7F,SAAS,0BAA0B,GAAG,GAAG,yDAAyD;gBAClG,2CAA2C,CAC9C,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAClE,IAAI,YAAY,CAAC,IAAI,GAAG,qBAAqB,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,GAAG,YAAY,CAAC,IAAI,OAAO,qBAAqB,0BAA0B,CAAC;QACxF,OAAO;YACL,WAAW;YACX,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;SACvE,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;6DAE6D;AAC7D,SAAS,gBAAgB,CAAC,QAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,CAClF,CAAC;AACJ,CAAC;AAED;uGACuG;AACvG,SAAS,cAAc,CAAC,QAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE;QAClB,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;QACzB,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;QACvB,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;QACzB,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,CAC7B,CAAC;AACJ,CAAC;AAED;yGACyG;AACzG,SAAS,YAAY,CAAC,CAAgB;IACpC,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,UAAU,CAAC;IAClD,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAwB,EAAE,QAAsB;IACxE,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,YAAY;YACf,OAAO,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAChD,KAAK,aAAa;YAChB,OAAO,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACjD,KAAK,UAAU;YACb,OAAO,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED;;+FAE+F;AAC/F,SAAS,kBAAkB,CAAC,QAAsB;IAChD,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACvF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACtF,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,cAAc,CAAC,IAAgB;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;IAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,MAAM,IAAI,GAAG;QACX,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI;QACJ,QAAQ;QACR,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QACzE,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC9F,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC;IACF,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;QACvC,OAAO;YACL,GAAG,IAAI;YACP,UAAU,EAAE,KAAK;YACjB,MAAM,EACJ,oBAAoB,IAAI,CAAC,IAAI,6BAA6B,oBAAoB,KAAK;gBACnF,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY;oBACzB,CAAC,CAAC,kGAAkG;wBAClG,kGAAkG;wBAClG,4DAA4D;oBAC9D,CAAC,CAAC,gGAAgG;wBAChG,wFAAwF,CAAC;SAChG,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,+DAA+D,EAAE,CAAC;IACjH,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO;YACL,GAAG,IAAI;YACP,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,+EAA+E;SACzG,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,GAAG,qBAAqB,EAAE,CAAC;QACrC,OAAO;YACL,GAAG,IAAI;YACP,UAAU,EAAE,KAAK;YACjB,MAAM,EACJ,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,SAAS,IAAI,CAAC,KAAK,oBAAoB;gBACxE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,cAAc,qBAAqB,GAAG,GAAG,+BAA+B;gBACrG,uEAAuE;SAC1E,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG,IAAI;QACP,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,WAAW,oBAAoB,eAAe,IAAI,CAAC,KAAK,QAAQ;KAC1G,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,QAAsB;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,KAAK,EAAE,cAAc;YACrB,MAAM,EACJ,oGAAoG;gBACpG,qGAAqG;YACvG,IAAI,EAAE,EAAE;SACT,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,WAAW;QAClB,MAAM,EACJ,gEAAgE,oBAAoB,kBAAkB;YACtG,aAAa,qBAAqB,GAAG,GAAG,qEAAqE;QAC/G,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,QAAsB;IAC5C,MAAM,MAAM,GAA8C,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IAEzF,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpD,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE,CAAC;QAChC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC;YACxD,4FAA4F;YAC5F,6CAA6C;aAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;aACzC,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,qDAAqD;IACrD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC;IAElE,MAAM,KAAK,GACT,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IAE9F,MAAM,kBAAkB,GAAG,OAAO,KAAK,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAE3G,MAAM,UAAU,GAAG,kBAAkB;QACnC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9F,CAAC,CAAC,EAAE,CAAC;IAEP;;8GAE0G;IAC1G,MAAM,iBAAiB,GAAG,kBAAkB;QAC1C,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QACnG,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACjD,MAAM;QACN,UAAU;QACV,iBAAiB;QACjB,WAAW,EAAE,MAAM;QACnB,0FAA0F;QAC1F,2FAA2F;QAC3F,wFAAwF;QACxF,eAAe,EAAE,QAAQ,CAAC,cAAc;aACrC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,uFAAuF;QACvF,0FAA0F;QAC1F,cAAc,EAAE,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QACzF,0FAA0F;QAC1F,4FAA4F;QAC5F,iFAAiF;QACjF,gBAAgB,EAAE,QAAQ,CAAC,cAAc;aACtC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAqB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;aACjD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,WAAW,EAAE,CAAC,CAAC,YAAY;YAC3B,cAAc,EAAE,CAAC,CAAC,qBAAqB,IAAI,CAAC;SAC7C,CAAC,CAAC;QACL,kIAAkI;QAClI,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC;QACpC,kBAAkB,EAAE,kBAAkB,CAAC,QAAQ,CAAC;QAChD,4EAA4E;QAC5E,qEAAqE;QACrE,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC;KACjC,CAAC;AACJ,CAAC;AAED;iFACiF;AACjF,MAAM,UAAU,iBAAiB,CAAC,WAA4B;IAC5D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,IAAI,MAAM,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,WAAW,IAAI,OAAO,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC;IAEhF,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,gCAAgC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,qDAAqD,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9G,CAAC;IACD,2FAA2F;IAC3F,yDAAyD;IACzD,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,sCAAsC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9E,KAAK,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,UAAU,uDAAuD,CAAC,CAAC;IACzG,CAAC;IACD,8FAA8F;IAC9F,2FAA2F;IAC3F,8DAA8D;IAC9D,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,eAAe,EAAE,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,2CAA2C,KAAK,CAAC,QAAQ,OAAO,KAAK,CAAC,UAAU,gBAAgB,CAAC,CAAC;QAC7G,KAAK,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;IACnG,CAAC;IACD,qFAAqF;IACrF,0FAA0F;IAC1F,6FAA6F;IAC7F,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,wBAAwB,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CACR,mBAAmB,OAAO,CAAC,UAAU,0DAA0D;YAC7F,0FAA0F;YAC1F,iEAAiE,CACpE,CAAC;IACJ,CAAC;IACD,6FAA6F;IAC7F,8FAA8F;IAC9F,yBAAyB;IACzB,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;QACzD,KAAK,CAAC,IAAI,CACR,wBAAwB,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,cAAc,OAAO,SAAS,GAAG;YACnG,8CAA8C,CACjD,CAAC;QACF,KAAK,CAAC,IAAI,CACR,iGAAiG;YAC/F,iDAAiD,IAAI,CAAC,WAAW,iCAAiC;YAClG,+CAA+C,CAClD,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,EAAE,YAAY,GAAG,CAAC,OAAO,uBAAuB,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QACxG,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,SAAS,iBAAiB,GAAG,CAAC,UAAU,0CAA0C,CAAC,CAAC;IACpH,CAAC;IACD,IAAI,WAAW,CAAC,kBAAkB,KAAK,KAAK,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;IAC9F,CAAC;SAAM,IAAI,WAAW,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IAC3F,CAAC;IAED,8EAA8E;IAC9E,+EAA+E;IAC/E,gFAAgF;IAChF,iFAAiF;IACjF,6EAA6E;IAC7E,gCAAgC;IAChC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,KAAK,cAAc,EAAE,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;YAClG,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;YACrF,KAAK,CAAC,IAAI,CACR,cAAc,GAAG,CAAC,UAAU,KAAK,IAAI,WAAW,GAAG,CAAC,IAAI,QAAQ;gBAC9D,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,KAAK,oBAAoB,QAAQ,GAAG;gBAC7E,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,4DAA4D,CAAC,CACvF,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;YAC/D,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC;gBAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBACzH,KAAK,CAAC,IAAI,CACR,mBAAmB,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW,MAAM,UAAU,GAAG;oBACtF,6CAA6C,CAChD,CAAC;YACJ,CAAC;YACD,IAAI,GAAG,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACxC,oEAAoE;gBACpE,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;YAC3E,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,GAAG,CAAC,iBAAiB,CAAC;gBACvC,KAAK,CAAC,IAAI,CACR,gCAAgC,QAAQ,CAAC,KAAK,aAAa,QAAQ,CAAC,KAAK,qBAAqB;oBAC5F,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,6DAA6D,CAC5F,CAAC;YACJ,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,WAAW,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,cAAc,WAAW,CAAC,QAAQ,YAAY,CAAC,CAAC;IAC3D,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,EAAE,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export { certify, formatCertificate } from "./certify.ts";
2
- export type { ConformanceEvidence, EmptyPopulation, GateEvidence, PolicyCap, PrecisionDraw, StructuralLimit, TierCertificate, UnmetRequirement, } from "./certify.ts";
2
+ export type { ConformanceEvidence, CorpusCeiling, EmptyPopulation, GateEvidence, PolicyCap, PrecisionDraw, RecallAxis, RecallDisclosure, RecallDraw, RecallRuling, StructuralLimit, TierCertificate, UnmetRequirement, WeakenedControl, } from "./certify.ts";
3
3
  export { LADDER, TIERS, requirementsFor } from "./ladder.ts";
4
4
  export type { Requirement, RequirementKind, Tier, TierDefinition } from "./ladder.ts";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tiers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC1D,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,SAAS,EACT,aAAa,EACb,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7D,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tiers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC1D,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,SAAS,EACT,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7D,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tiers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAW1D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tiers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAiB1D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@descryy/core",
3
- "version": "0.6.3",
3
+ "version": "0.7.0",
4
4
  "type": "module",
5
5
  "description": "Descry graph engine: storage, graph builder, query layer, traversal, diff scoping, git source, MCP server.",
6
6
  "license": "MIT",
@@ -33,6 +33,6 @@
33
33
  "build": "tsc -b"
34
34
  },
35
35
  "dependencies": {
36
- "@descryy/ir": "0.6.3"
36
+ "@descryy/ir": "0.7.0"
37
37
  }
38
38
  }