edfcore 0.6.288 → 0.6.290

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.
@@ -109,5 +109,5 @@ export declare const SIGNAL_FIELD_BLOCK_OFFSETS: {
109
109
  readonly reserved: 224;
110
110
  };
111
111
  /** Published package version. Kept in sync with package.json by a test. */
112
- export declare const VERSION = "0.6.288";
112
+ export declare const VERSION = "0.6.290";
113
113
  //# sourceMappingURL=constants.d.ts.map
package/dist/constants.js CHANGED
@@ -79,5 +79,5 @@ export const SIGNAL_FIELD_BLOCK_OFFSETS = {
79
79
  reserved: 224,
80
80
  };
81
81
  /** Published package version. Kept in sync with package.json by a test. */
82
- export const VERSION = '0.6.288';
82
+ export const VERSION = '0.6.290';
83
83
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAsBH,OAAO,KAAK,EACV,cAAc,EAEd,gBAAgB,EAChB,iBAAiB,EAEjB,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,WAAW,EAEZ,MAAM,YAAY,CAAC;AA+FpB;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,iBAAiB,EAC5B,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CA8CtC;AA+RD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,iBAAiB,EAC3B,GAAG,CAAC,EAAE,mBAAmB,GACxB,mBAAmB,CA4MrB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAwCjG;AAQD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE;IACT,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC,EACD,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAsGtC"}
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAuBH,OAAO,KAAK,EACV,cAAc,EAEd,gBAAgB,EAChB,iBAAiB,EAEjB,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,WAAW,EAEZ,MAAM,YAAY,CAAC;AA+FpB;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,iBAAiB,EAC5B,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CA4DtC;AA+RD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,iBAAiB,EAC3B,GAAG,CAAC,EAAE,mBAAmB,GACxB,mBAAmB,CA4MrB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAsEjG;AAQD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE;IACT,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC,EACD,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAyGtC"}
package/dist/envelope.js CHANGED
@@ -26,6 +26,7 @@ import { assertSignal, scalingError } from './decode/physical.js';
26
26
  import { appendChunkDiagnostics } from './diagnostics/collector.js';
27
27
  import { EdfBudgetError } from './errors.js';
28
28
  import { readRecordBytes } from './io/read.js';
29
+ import { assertReadOptions } from './io/source.js';
29
30
  import { resolveMaterializeBudget } from './options.js';
30
31
  import { scanChunkRecords } from './record-index.js';
31
32
  import { assertRecording, assertSelection, assertSignalIndices, channelNotFound, gapBefore, } from './recording.js';
@@ -124,6 +125,20 @@ export async function readEnvelope(recording, selection, options) {
124
125
  'per bucket.');
125
126
  }
126
127
  assertPositiveInteger(selection.buckets, 'buckets');
128
+ /*
129
+ * The OPTIONS, by the same rule as the line below it.
130
+ *
131
+ * That comment names `readWindow`'s reason and applies it to the signals; this is the third
132
+ * argument, which neither call covered. `assertReadOptions` runs inside the read, and both of
133
+ * these return `[]` for a window that resolves to no records — the docblock above promises
134
+ * exactly that, "so a caller that already handles gaps handles envelopes for free" — so a bad
135
+ * options object on such a window was never examined at all.
136
+ *
137
+ * 0.6.288 closed this in `readWindow`, and `stream.ts` in 0.6.166 before it: "an abort that was
138
+ * never wired up and a window with nothing in it both end as a stream that yielded nothing".
139
+ * These two are the remaining reads that resolve a window before touching a byte (0.6.289).
140
+ */
141
+ assertReadOptions(options);
127
142
  // Validated before the window is resolved, for the same reason readWindow does it: a bad
128
143
  // signalIndices must not read back as an empty stretch of recording.
129
144
  resolveEnvelopeSignals(recording.header, selection.signalIndices);
@@ -586,6 +601,34 @@ export function envelopeOfSamples(chunkSignal, buckets) {
586
601
  // 'length')` (fixed in 0.6.117).
587
602
  assertChunkSignal(chunkSignal, 'envelopeOfSamples', 'fold');
588
603
  assertPositiveInteger(buckets, 'buckets');
604
+ /*
605
+ * And the COUNT, which the docblock above says this function bounds itself by.
606
+ *
607
+ * It says "`sampleCount` bounds the reduction, not `digital.length`", that the bound is here
608
+ * "because a CALLER can build an `EdfChunkSignal`", and that "two helpers defending and one not
609
+ * is the worst of the three states". The bound it got was `Math.min` against `digital.length`,
610
+ * which only defends against a count that is too LARGE. Below zero it defended nothing, and the
611
+ * buckets argument one line up was checked while the count was not.
612
+ *
613
+ * Every answer it produced was a lie about the samples in hand. A negative count left `total`
614
+ * negative, so the fold loop never ran and the result was one empty bucket carrying the
615
+ * caller's own `sampleCount: -5` — and `toPhysicalEnvelope` renders a bucket of count zero as
616
+ * `NaN`, which is how this package spells a dropout. Forty real samples came back as a hole.
617
+ * `NaN` was worse: `Math.max(1, Math.min(buckets, NaN))` is `NaN`, `new Int32Array(NaN)` has
618
+ * length 0, so the envelope had NO buckets at all — a shape no read in this package produces and
619
+ * nothing downstream expects. A fractional count rode through onto the result as it arrived.
620
+ *
621
+ * `Number.isSafeInteger` and `>= 0`, not `> 0`: zero samples is a real `EdfChunkSignal`, which
622
+ * `trimToWindow` returns for a window that selected nothing, and folding it to empty buckets is
623
+ * the honest answer (0.6.290).
624
+ */
625
+ if (!Number.isSafeInteger(chunkSignal.sampleCount) || chunkSignal.sampleCount < 0) {
626
+ throw new RangeError(`envelopeOfSamples(): the chunk signal declares ${describeValue(chunkSignal.sampleCount)} ` +
627
+ 'samples, which is not a count of them — and this folds by the declared count rather ' +
628
+ 'than by digital.length, so the buckets would have described neither. Next: pass one ' +
629
+ 'element of chunk.signals unaltered; readWindow() and readRecords() set sampleCount to ' +
630
+ 'the samples they decoded.');
631
+ }
589
632
  const samples = chunkSignal.digital;
590
633
  const total = Math.min(chunkSignal.sampleCount, samples.length);
591
634
  const bucketCount = Math.max(1, Math.min(buckets, total));
@@ -673,6 +716,9 @@ export async function readEnvelopeAtResolution(recording, selection, options) {
673
716
  `with a ` +
674
717
  'bucket count if what you have is a plot width.');
675
718
  }
719
+ // The options too, exactly as `readEnvelope` does it and for the reason given there: this call
720
+ // also answers `[]` for a window that selects nothing, so the guard has to precede the window.
721
+ assertReadOptions(options);
676
722
  // Validated before the window is resolved, exactly as `readEnvelope` does it and for the same
677
723
  // reason: a bad signalIndices must not read back as an empty stretch of recording.
678
724
  resolveEnvelopeSignals(recording.header, selection.signalIndices);
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAexE,oGAAoG;AACpG,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B;;;;;;;GAOG;AACH,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAyBjC;;;;;;;;;;GAUG;AACH,SAAS,eAAe,CACtB,WAAmB,EACnB,WAAmB,EACnB,gBAAwB,EACxB,mBAA2B;IAE3B,gGAAgG;IAChG,uDAAuD;IACvD,IAAI,mBAAmB,IAAI,EAAE,IAAI,gBAAgB,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACzE,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC3C,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW,GAAG,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,KAAa,EAAE,IAAY;IACxD,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO;IACrD;;;;;;;;;;;OAWG;IACH,MAAM,IAAI,UAAU,CAClB,GAAG,IAAI,8CAA8C,aAAa,CAAC,KAAK,CAAC,IAAI;QAC3E,2FAA2F;QAC3F,4FAA4F;QAC5F,uFAAuF;QACvF,oBAAoB,CACvB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAAuB,EACvB,SAA4B,EAC5B,OAAqB;IAErB,eAAe,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAC3C,eAAe,CACb,SAAS,EACT,cAAc,EACd,2DAA2D,EAC3D,iJAAiJ,CAClJ,CAAC;IACF;;;;;;;;;;;;OAYG;IACH,IAAK,SAA4C,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACjF,MAAM,IAAI,UAAU,CAClB,yFAAyF;YACvF,yFAAyF;YACzF,0FAA0F;YAC1F,aAAa,CAChB,CAAC;IACJ,CAAC;IACD,qBAAqB,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACpD;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3B,yFAAyF;IACzF,qEAAqE;IACrE,sBAAsB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IAElE,MAAM,MAAM,GAAG,iBAAiB,CAC9B,SAAS,CAAC,QAAQ,EAClB,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,YAAY,EACtB,SAAS,CAAC,eAAe,CAC1B,CAAC;IAEF,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,sBAAsB,CAC7B,MAAiB,EACjB,aAAgC;IAEhC,6FAA6F;IAC7F,mBAAmB,CAAC,aAAa,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,2FAA2F;YAC3F,4FAA4F;YAC5F,4FAA4F;YAC5F,iBAAiB;YACjB,MAAM,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAClC,oFAAoF;YACpF,4EAA4E;YAC5E,MAAM,IAAI,UAAU,CAClB,UAAU,WAAW,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB;gBACvE,qFAAqF;gBACrF,wEAAwE,CAC3E,CAAC;QACJ,CAAC;QACD,+FAA+F;QAC/F,2FAA2F;QAC3F,YAAY;QACZ,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,SAAS;QACrC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,SAAuB,EACvB,OAAoB,EACpB,SAA4B,EAC5B,OAAqB;AACrB;;;;GAIG;AACH,WAAoB;IAEpB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IAC/C,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACxE,MAAM,WAAW,GAAoB,EAAE,CAAC;IACxC,iGAAiG;IACjG,uFAAuF;IACvF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IAErC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,UAAU,GAAG,WAAW,KAAK,SAAS,IAAI,WAAW,GAAG,EAAE,CAAC;IACjE,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CACnC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,EACzE,CAAC,CACF,CAAC;IACF,MAAM,WAAW,GAAG,UAAU;QAC5B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC;QAChC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IAE7D,6FAA6F;IAC7F,6FAA6F;IAC7F,yFAAyF;IACzF,cAAc;IACd,kGAAkG;IAClG,MAAM,cAAc,GAAG,gBAAgB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,WAAW,GAAG,WAAW,GAAG,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAClE,MAAM,WAAW,GAAG,wBAAwB,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAC3E,IAAI,WAAW,GAAG,WAAW,EAAE,CAAC;QAC9B,8FAA8F;QAC9F,oFAAoF;QACpF,8FAA8F;QAC9F,+FAA+F;QAC/F,sFAAsF;QACtF,qBAAqB;QACrB,MAAM,IAAI,GAAG,UAAU;YACrB,CAAC,CAAC,wFAAwF;gBACxF,gBAAgB;YAClB,CAAC,CAAC,oEAAoE,CAAC;QACzE,MAAM,IAAI,cAAc,CACtB,kBAAkB,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG;YAC/F,UAAU;YACV,GAAG,WAAW,gCAAgC,WAAW,4BAA4B;YACrF,0EAA0E,IAAI,QAAQ;YACtF,oCAAoC,EACtC,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,CAC5C,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAkB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3D,MAAM;QACN,0FAA0F;QAC1F,+EAA+E;QAC/E,GAAG,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,GAAG,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,MAAM,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC;QACnC,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,SAAS;QAClB,YAAY,EAAE,CAAC,UAAU;YACvB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,eAAe,CACb,WAAW,EACX,WAAqB,EACrB,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,mBAAmB,CAC3B;QACL,MAAM,EAAE,CAAC;KACV,CAAC,CAAC,CAAC;IAEJ,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAC5E,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,eAAmC,CAAC;IACxC,IAAI,cAAkC,CAAC;IACvC,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,OAAO,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAgB;YACzB,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO;YAC9B,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;SACvD,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACpE,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC;QAE3B,mFAAmF;QACnF,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;YAC1D,WAAW,EAAE,QAAQ,CAAC,gBAAgB;SACvC,CAAC,CAAC;QACH,sBAAsB,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,WAAW,CAAC,gBAAgB,CAAC;QAC5C,IAAI,eAAe,KAAK,SAAS;YAAE,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC5C,IAAI,WAAW,KAAK,SAAS;YAAE,cAAc,GAAG,WAAW,CAAC;QAE5D,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC;IACzB,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,mBAAmB,CAAC;IACjD,MAAM,UAAU,GAAG,CAAC,eAAe,IAAI,QAAQ,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC;IAC9F,MAAM,SAAS,GACb,eAAe,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS;QAC3D,CAAC,CAAC,cAAc,GAAG,aAAa,GAAG,eAAe;QAClD,CAAC,CAAC,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAElD,MAAM,eAAe,GAAwB,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC9E,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK;QACrC,GAAG,EAAE,WAAW,CAAC,GAAG;QACpB,GAAG,EAAE,WAAW,CAAC,GAAG;QACpB,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,WAAW,EAAE,WAAW,CAAC,QAAQ;QACjC,gBAAgB,EAAE,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,gBAAgB;QACrE,YAAY;QACZ,UAAU;QACV,sBAAsB,EAAE,WAAW,CAAC,UAAU;KAC/C,CAAC,CAAC,CAAC;IAEJ,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO;QACP,YAAY;QACZ,UAAU;QACV,eAAe;QACf,aAAa,EAAE,SAAS;QACxB,WAAW;QACX,8FAA8F;QAC9F,8FAA8F;QAC9F,0FAA0F;QAC1F,4FAA4F;QAC5F,gBAAgB,EACd,WAAW,KAAK,SAAS,IAAI,WAAW,GAAG,EAAE;YAC3C,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC;YAC7B,CAAC,CAAC,WAAW,GAAG,CAAC;gBACf,CAAC,CAAC,eAAe,GAAG,WAAW;gBAC/B,CAAC,CAAC,CAAC;QACT,UAAU;QACV,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;QACvC,0FAA0F;QAC1F,uFAAuF;QACvF,sFAAsF;QACtF,aAAa,EAAE,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;QACxD,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;KACxC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,SAAS,CAChB,WAAwB,EACxB,MAAiB,EACjB,KAAiB,EACjB,KAAkB,EAClB,GAAgB,EAChB,WAAmB,EACnB,OAAqB;IAErB,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,gBAAgB,GAAG,GAAG,CAAC,KAAK,CAAC;IACrE,IAAI,YAAY,KAAK,CAAC;QAAE,OAAO;IAE/B,MAAM,OAAO,GAAG,oBAAoB,CAClC,MAAM,EACN,KAAK,EACL,KAAK,EACL,WAAW,CAAC,MAAM,CAAC,KAAK,EACxB,WAAW,CAAC,OAAO,EACnB,OAAO,CACR,CAAC;IACF,4FAA4F;IAC5F,sDAAsD;IACtD,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACtC,WAAW,CAAC,UAAU,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAEzD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,2FAA2F;IAC3F,iGAAiG;IACjG,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC;IACtE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;IACzC,IAAI,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IAEpC,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC;IACxC,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAW,CAAC;QACnC,IAAI,MAAc,CAAC;QACnB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,4FAA4F;YAC5F,uFAAuF;YACvF,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,0FAA0F;YAC1F,0FAA0F;YAC1F,oEAAoE;YACpE,OAAO,MAAM,GAAG,CAAC,GAAG,WAAW,IAAI,QAAQ,IAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAY;gBAAE,MAAM,IAAI,CAAC,CAAC;YAC3F,MAAM,GAAG,MAAM,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAW,CAAC;QACtC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,GAAI,GAAG,CAAC,MAAM,CAAY;gBAAE,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YACzD,IAAI,KAAK,GAAI,GAAG,CAAC,MAAM,CAAY;gBAAE,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;QAC3D,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QAC1B,QAAQ,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAChC,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;AAC9B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAiB,EACjB,QAA2B,EAC3B,GAAyB;IAEzB,6EAA6E;IAC7E,yFAAyF;IACzF,+FAA+F;IAC/F,kGAAkG;IAClG,YAAY,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC3C;;;;;;;OAOG;IACH,IAAI,CAAC,WAAW,CAAC,MAAM,CAAE,QAAiD,EAAE,GAAG,CAAC,EAAE,CAAC;QACjF,MAAM,IAAI,UAAU,CAClB,yCACE,KAAK,CAAC,OAAO,CAAE,QAAoD,EAAE,OAAO,CAAC;YAC3E,CAAC,CAAC,mFAAmF;gBACnF,WAAW;YACb,CAAC,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,oBAChC,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IACD;;;;;;;;;;;;;;OAcG;IACH,IAAI,CAAC,WAAW,CAAC,MAAM,CAAE,QAAiC,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,UAAU,CAClB,6FAA6F;YAC3F,0FAA0F;YAC1F,4FAA4F;YAC5F,sEAAsE,CACzE,CAAC;IACJ,CAAC;IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC;QACtF,MAAM,IAAI,UAAU,CAClB,sDAAsD,MAAM,CAAC,KAAK,wBAAwB;YACxF,cAAc,QAAQ,CAAC,WAAW,sDAAsD;YACxF,oFAAoF;YACpF,2FAA2F;YAC3F,2FAA2F;YAC3F,qCAAqC,CACxC,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,2FAA2F;QAC3F,6FAA6F;QAC7F,4FAA4F;QAC5F,2DAA2D;QAC3D,MAAM,YAAY,CAAC,MAAM,EAAE;YACzB,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EACN,oFAAoF;SACvF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;IACnC;;;;;;;;;OASG;IACH;;;;;;;;;;;;;;;;;OAiBG;IACH,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9F,MAAM,IAAI,UAAU,CAClB,gCAAgC,aAAa,CAAC,GAAG,CAAC,2CAA2C;YAC3F,wFAAwF;YACxF,yFAAyF;YACzF,gFAAgF,CACnF,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI;YACzB,CAAC,KAAK,EAAG,GAAyB,CAAC,GAAG,CAAC;YACvC,CAAC,KAAK,EAAG,GAAyB,CAAC,GAAG,CAAC;SAC/B,EAAE,CAAC;YACX,aAAa,CACX,IAAI,EACJ,cAAc,EACd,oBAAoB,EACpB,WAAW,IAAI,4BAA4B,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,YAAY;gBACvF,kEAAkE;YACpE,0FAA0F;YAC1F,0FAA0F;YAC1F,OAAO,IAAI,EAAE,CACd,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,UAAU,CAClB,aAAa,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,iCAAiC;YACpF,GAAG,MAAM,uEAAuE;YAChF,8BAA8B,CACjC,CAAC;IACJ,CAAC;IACD,6FAA6F;IAC7F,0DAA0D;IAC1D,MAAM,GAAG,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACvF,MAAM,IAAI,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACxF,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC;;;;;;;;;;;;;;WAcG;QACH,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;YACpB,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;YACrB,SAAS;QACX,CAAC;QACD,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,MAAM,GAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAY,CAAC,CAAC;QACxE,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,MAAM,GAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAY,CAAC,CAAC;QACxE,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAA2B,EAAE,OAAe;IAC5E,mGAAmG;IACnG,gGAAgG;IAChG,+FAA+F;IAC/F,iCAAiC;IACjC,iBAAiB,CAAC,WAAW,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAC5D,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC1C;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;QAClF,MAAM,IAAI,UAAU,CAClB,kDAAkD,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG;YACzF,sFAAsF;YACtF,sFAAsF;YACtF,wFAAwF;YACxF,2BAA2B,CAC9B,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1D,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAW,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAChF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAW,CAAC;QACtC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,GAAI,GAAG,CAAC,MAAM,CAAY;gBAAE,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YACzD,IAAI,KAAK,GAAI,GAAG,CAAC,MAAM,CAAY;gBAAE,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;QAC3D,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,WAAW,EAAE,WAAW,CAAC,WAAW;QACpC,GAAG;QACH,GAAG;QACH,MAAM;QACN,WAAW,EAAE,KAAK;QAClB,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;QAC9C,YAAY,EAAE,WAAW,CAAC,YAAY;QACtC,UAAU,EAAE,WAAW,CAAC,UAAU;QAClC,sBAAsB,EAAE,WAAW,CAAC,sBAAsB;KAC3D,CAAC;AACJ,CAAC;AAED,mGAAmG;AACnG,SAAS,kBAAkB,CAAC,KAAa;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC9C,OAAO,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,SAAuB,EACvB,SAKC,EACD,OAAqB;IAErB,qFAAqF;IACrF,+FAA+F;IAC/F,gFAAgF;IAChF,6FAA6F;IAC7F,sCAAsC;IACtC,eAAe,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;IACvD,eAAe,CACb,SAAS,EACT,0BAA0B,EAC1B,oEAAoE,EACpE,iJAAiJ,CAClJ,CAAC;IACF,8FAA8F;IAC9F,2FAA2F;IAC3F,mEAAmE;IACnE,IAAK,SAAmC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/D,MAAM,IAAI,UAAU,CAClB,2FAA2F;YACzF,0FAA0F;YAC1F,qFAAqF,CACxF,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,UAAU,CAClB,0FAA0F;YACxF,GAAG,aAAa,CAAC,gBAAgB,CAAC,yDAAyD;YAC3F,SAAS;YACT,gDAAgD,CACnD,CAAC;IACJ,CAAC;IACD,+FAA+F;IAC/F,+FAA+F;IAC/F,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3B,8FAA8F;IAC9F,mFAAmF;IACnF,sBAAsB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IAElE,+FAA+F;IAC/F,0BAA0B;IAC1B,MAAM,MAAM,GAAG,iBAAiB,CAC9B,SAAS,CAAC,QAAQ,EAClB,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,YAAY,EACtB,SAAS,CAAC,eAAe,CAC1B,CAAC;IAEF,6FAA6F;IAC7F,yFAAyF;IACzF,4FAA4F;IAC5F,gGAAgG;IAChG,8FAA8F;IAC9F,6FAA6F;IAC7F,6FAA6F;IAC7F,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAC3D;;;;;;;;;;;;;;OAcG;IACH,MAAM,OAAO,GAAG,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;IACxF,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;QAC7B,6FAA6F;QAC7F,8FAA8F;QAC9F,0DAA0D;QAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC;QACvD,uFAAuF;QACvF,0DAA0D;QAC1D,EAAE;QACF,6FAA6F;QAC7F,+FAA+F;QAC/F,sFAAsF;QACtF,MAAM,OAAO,GACX,QAAQ,GAAG,EAAE;YACX,CAAC,CAAC,kBAAkB,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAClF,CAAC,CAAC,CAAC,CAAC;QACR,MAAM,CAAC,IAAI,CACT,MAAM,WAAW,CACf,SAAS,EACT,OAAO,EACP;YACE,aAAa,EAAE,SAAS,CAAC,aAAa;YACtC,YAAY,EAAE,SAAS,CAAC,YAAY;YACpC,eAAe,EAAE,SAAS,CAAC,eAAe;YAC1C,OAAO;SACR,EACD,OAAO,EACP,WAAW,CACZ,CACF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC"}
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,40 @@ alone does not tell you whether you were affected.
6
6
  edfcore is pre-1.0. Patch releases have carried behaviour changes where the old behaviour was a
7
7
  defect; those are called out below.
8
8
 
9
+ ## 0.6.290
10
+
11
+ - **Fixed** `envelopeOfSamples` folding by a `sampleCount` that is not a count. The bound it had was
12
+ `Math.min(sampleCount, digital.length)`, which defends only against a count that is too large;
13
+ below zero, fractional, or `NaN` it defended nothing, while `buckets` — the other argument — was
14
+ checked one line above.
15
+ - A negative count made the fold loop never run, so the result was one bucket of count zero carrying
16
+ the caller's own `sampleCount: -5`. `toPhysicalEnvelope` renders a bucket of count zero as `NaN`,
17
+ which is how this package spells a dropout — so forty real samples came back as a hole in the
18
+ recording, from the function whose job is to make samples drawable.
19
+ - `NaN` was worse: `Math.max(1, Math.min(buckets, NaN))` is `NaN` and `new Int32Array(NaN)` has
20
+ length 0, so the envelope had no buckets at all — a shape no read in this package produces.
21
+ - The function's own docblock already required this: "`sampleCount` bounds the reduction, not
22
+ `digital.length`... The bound is here because a CALLER can build an `EdfChunkSignal`... two helpers
23
+ defending and one not is the worst of the three states."
24
+ - Zero is still accepted. `trimToWindow` returns a real zero-sample chunk signal for a window that
25
+ selected nothing, and folding it to empty buckets is the honest answer.
26
+
27
+ ## 0.6.289
28
+
29
+ - **Fixed** the same hole in `readEnvelope` and `readEnvelopeAtResolution`, which are the last two
30
+ reads that resolve a window before touching a byte. Both answer `[]` for a window past the end,
31
+ entirely inside an EDF+D gap, or of zero duration, and both examined their read options only inside
32
+ the read — so on those windows a wrong third argument produced the documented empty answer.
33
+ - Each already carried the comment that makes the case, naming its sibling: "Validated before the
34
+ window is resolved, for the same reason readWindow does it: a bad signalIndices must not read back
35
+ as an empty stretch of recording." It applied that to the signals and not to the options.
36
+ - An envelope is the call most likely to be cancelled — a viewer redraws one on every pan — so
37
+ `readEnvelope(recording, selection, controller.signal)` dropping the cancellation silently was the
38
+ costliest version of this. With `readWindow` in 0.6.288 and `streamRecords` in 0.6.166, the family
39
+ is closed: every read now refuses a wrong options object wherever its window lands.
40
+ - The shape only, as in 0.6.288. An already-aborted signal passed correctly still does not fire on a
41
+ window that reads nothing.
42
+
9
43
  ## 0.6.288
10
44
 
11
45
  - **Fixed** `readWindow` returning `[]` without ever examining its read options, for a window that
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.6.288",
3
+ "version": "0.6.290",
4
4
  "description": "Modern, typed, zero-dependency reader for EDF, EDF+, BDF and BDF+ biosignal files. Works in browsers and Node with true random access.",
5
5
  "keywords": [
6
6
  "edf",
package/src/constants.ts CHANGED
@@ -93,4 +93,4 @@ export const SIGNAL_FIELD_BLOCK_OFFSETS = {
93
93
  } as const;
94
94
 
95
95
  /** Published package version. Kept in sync with package.json by a test. */
96
- export const VERSION = '0.6.288';
96
+ export const VERSION = '0.6.290';
package/src/envelope.ts CHANGED
@@ -27,6 +27,7 @@ import { assertSignal, scalingError } from './decode/physical.js';
27
27
  import { appendChunkDiagnostics } from './diagnostics/collector.js';
28
28
  import { EdfBudgetError } from './errors.js';
29
29
  import { readRecordBytes } from './io/read.js';
30
+ import { assertReadOptions } from './io/source.js';
30
31
  import { resolveMaterializeBudget } from './options.js';
31
32
  import { scanChunkRecords } from './record-index.js';
32
33
  import {
@@ -188,6 +189,20 @@ export async function readEnvelope(
188
189
  );
189
190
  }
190
191
  assertPositiveInteger(selection.buckets, 'buckets');
192
+ /*
193
+ * The OPTIONS, by the same rule as the line below it.
194
+ *
195
+ * That comment names `readWindow`'s reason and applies it to the signals; this is the third
196
+ * argument, which neither call covered. `assertReadOptions` runs inside the read, and both of
197
+ * these return `[]` for a window that resolves to no records — the docblock above promises
198
+ * exactly that, "so a caller that already handles gaps handles envelopes for free" — so a bad
199
+ * options object on such a window was never examined at all.
200
+ *
201
+ * 0.6.288 closed this in `readWindow`, and `stream.ts` in 0.6.166 before it: "an abort that was
202
+ * never wired up and a window with nothing in it both end as a stream that yielded nothing".
203
+ * These two are the remaining reads that resolve a window before touching a byte (0.6.289).
204
+ */
205
+ assertReadOptions(options);
191
206
  // Validated before the window is resolved, for the same reason readWindow does it: a bad
192
207
  // signalIndices must not read back as an empty stretch of recording.
193
208
  resolveEnvelopeSignals(recording.header, selection.signalIndices);
@@ -731,6 +746,36 @@ export function envelopeOfSamples(chunkSignal: EdfChunkSignal, buckets: number):
731
746
  // 'length')` (fixed in 0.6.117).
732
747
  assertChunkSignal(chunkSignal, 'envelopeOfSamples', 'fold');
733
748
  assertPositiveInteger(buckets, 'buckets');
749
+ /*
750
+ * And the COUNT, which the docblock above says this function bounds itself by.
751
+ *
752
+ * It says "`sampleCount` bounds the reduction, not `digital.length`", that the bound is here
753
+ * "because a CALLER can build an `EdfChunkSignal`", and that "two helpers defending and one not
754
+ * is the worst of the three states". The bound it got was `Math.min` against `digital.length`,
755
+ * which only defends against a count that is too LARGE. Below zero it defended nothing, and the
756
+ * buckets argument one line up was checked while the count was not.
757
+ *
758
+ * Every answer it produced was a lie about the samples in hand. A negative count left `total`
759
+ * negative, so the fold loop never ran and the result was one empty bucket carrying the
760
+ * caller's own `sampleCount: -5` — and `toPhysicalEnvelope` renders a bucket of count zero as
761
+ * `NaN`, which is how this package spells a dropout. Forty real samples came back as a hole.
762
+ * `NaN` was worse: `Math.max(1, Math.min(buckets, NaN))` is `NaN`, `new Int32Array(NaN)` has
763
+ * length 0, so the envelope had NO buckets at all — a shape no read in this package produces and
764
+ * nothing downstream expects. A fractional count rode through onto the result as it arrived.
765
+ *
766
+ * `Number.isSafeInteger` and `>= 0`, not `> 0`: zero samples is a real `EdfChunkSignal`, which
767
+ * `trimToWindow` returns for a window that selected nothing, and folding it to empty buckets is
768
+ * the honest answer (0.6.290).
769
+ */
770
+ if (!Number.isSafeInteger(chunkSignal.sampleCount) || chunkSignal.sampleCount < 0) {
771
+ throw new RangeError(
772
+ `envelopeOfSamples(): the chunk signal declares ${describeValue(chunkSignal.sampleCount)} ` +
773
+ 'samples, which is not a count of them — and this folds by the declared count rather ' +
774
+ 'than by digital.length, so the buckets would have described neither. Next: pass one ' +
775
+ 'element of chunk.signals unaltered; readWindow() and readRecords() set sampleCount to ' +
776
+ 'the samples they decoded.',
777
+ );
778
+ }
734
779
  const samples = chunkSignal.digital;
735
780
  const total = Math.min(chunkSignal.sampleCount, samples.length);
736
781
  const bucketCount = Math.max(1, Math.min(buckets, total));
@@ -838,6 +883,9 @@ export async function readEnvelopeAtResolution(
838
883
  'bucket count if what you have is a plot width.',
839
884
  );
840
885
  }
886
+ // The options too, exactly as `readEnvelope` does it and for the reason given there: this call
887
+ // also answers `[]` for a window that selects nothing, so the guard has to precede the window.
888
+ assertReadOptions(options);
841
889
  // Validated before the window is resolved, exactly as `readEnvelope` does it and for the same
842
890
  // reason: a bad signalIndices must not read back as an empty stretch of recording.
843
891
  resolveEnvelopeSignals(recording.header, selection.signalIndices);