@ifc-lite/geometry 3.1.0 → 3.1.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"geometry-parallel.d.ts","sourceRoot":"","sources":["../src/geometry-parallel.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAY,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,WAAW,EAAE,MAAM,GAClB;IAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAc7C;AAsCD,MAAM,WAAW,sBAAsB;IACrC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CACd,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,WAAW,KACjB,IAAI,CAAC;IACV;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACjD;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACzC;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC5E;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAuB,eAAe,CACpC,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,iBAAiB,EAC9B,eAAe,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE;AACrD,gFAAgF;AAChF,WAAW,CAAC,EAAE,iBAAiB,EAC/B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,cAAc,CAAC,sBAAsB,CAAC,CAg0BxC"}
1
+ {"version":3,"file":"geometry-parallel.d.ts","sourceRoot":"","sources":["../src/geometry-parallel.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAY,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,WAAW,EAAE,MAAM,GAClB;IAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAc7C;AAsCD,MAAM,WAAW,sBAAsB;IACrC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CACd,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,WAAW,KACjB,IAAI,CAAC;IACV;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACjD;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACzC;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC5E;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAuB,eAAe,CACpC,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,iBAAiB,EAC9B,eAAe,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE;AACrD,gFAAgF;AAChF,WAAW,CAAC,EAAE,iBAAiB,EAC/B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,cAAc,CAAC,sBAAsB,CAAC,CAs4BxC"}
@@ -463,6 +463,13 @@ existingSab, options) {
463
463
  // with default per-type colours; without the pre-built entity
464
464
  // index, the worker's first WASM call would re-scan the file
465
465
  // (~5 s on 1 GB) to rebuild the index inside Rust.
466
+ //
467
+ // NB: the `prepass-columns` event (referenced-repmaps / instantiated-
468
+ // type-ids / material-layer index, #957/#563) is deliberately NOT gated
469
+ // here: the pre-pass emits it BEFORE the first jobs chunk and workers
470
+ // apply messages FIFO, so it always lands before any batch. An older
471
+ // engine binary that never emits it simply falls back to the worker's
472
+ // byte-identical lazy rebuild — gating would turn that into a hang.
466
473
  queuedChunks.push({ jobs, affinity });
467
474
  return;
468
475
  }
@@ -669,6 +676,66 @@ existingSab, options) {
669
676
  entityIndexReceived = true;
670
677
  drainQueuedChunksIfReady();
671
678
  }
679
+ else if (evt.type === 'prepass-columns') {
680
+ // Pre-pass computed the referenced-repmaps + instantiated-type-id sets
681
+ // and the material-layer index ONCE (issue #957 / #563). Forward to
682
+ // every worker so its first batch skips the per-worker full-file
683
+ // rebuild. Small (id sets + one record per material-associated element),
684
+ // so a per-worker structured-clone slice is cheap; each slice goes in
685
+ // its own transfer list. Must reach workers AFTER set-entity-index
686
+ // (whose setter clears these caches) — the pre-pass emits this event
687
+ // after `entity-index` and workers handle messages FIFO, so it holds.
688
+ const referencedRepmaps = evt.referencedRepmaps;
689
+ const instantiatedTypeIds = evt.instantiatedTypeIds;
690
+ // #1623 Phase 3 don't-bake plan (RepresentationMap ids repeated >= 2x).
691
+ // Absent on older pre-pass builds -> empty, so the batch never arms.
692
+ const mappedInstancePlan = evt.mappedInstancePlan ?? new Uint32Array(0);
693
+ const mliElementIds = evt.mliElementIds;
694
+ const mliAxis = evt.mliAxis;
695
+ const mliLayerCounts = evt.mliLayerCounts;
696
+ const mliDirectionSense = evt.mliDirectionSense;
697
+ const mliOffset = evt.mliOffset;
698
+ const mliLayerMaterialIds = evt.mliLayerMaterialIds;
699
+ const mliLayerThicknesses = evt.mliLayerThicknesses;
700
+ console.log(`[stream] prepass-columns @ ${elapsed()}ms (${referencedRepmaps.length} repmaps, ${instantiatedTypeIds.length} inst-types, ${mliElementIds.length} layer-elems)`);
701
+ for (const w of workers) {
702
+ try {
703
+ const rRepmaps = referencedRepmaps.slice();
704
+ const rTypeIds = instantiatedTypeIds.slice();
705
+ const rMappedPlan = mappedInstancePlan.slice();
706
+ const mIds = mliElementIds.slice();
707
+ const mAxis = mliAxis.slice();
708
+ const mCounts = mliLayerCounts.slice();
709
+ const mDir = mliDirectionSense.slice();
710
+ const mOff = mliOffset.slice();
711
+ const mMatIds = mliLayerMaterialIds.slice();
712
+ const mThick = mliLayerThicknesses.slice();
713
+ w.postMessage({
714
+ type: 'set-prepass-columns',
715
+ referencedRepmaps: rRepmaps,
716
+ instantiatedTypeIds: rTypeIds,
717
+ mappedInstancePlan: rMappedPlan,
718
+ mliElementIds: mIds,
719
+ mliAxis: mAxis,
720
+ mliLayerCounts: mCounts,
721
+ mliDirectionSense: mDir,
722
+ mliOffset: mOff,
723
+ mliLayerMaterialIds: mMatIds,
724
+ mliLayerThicknesses: mThick,
725
+ }, [
726
+ rRepmaps.buffer, rTypeIds.buffer, rMappedPlan.buffer, mIds.buffer, mAxis.buffer, mCounts.buffer,
727
+ mDir.buffer, mOff.buffer, mMatIds.buffer, mThick.buffer,
728
+ ]);
729
+ }
730
+ catch (err) {
731
+ console.warn('[stream] set-prepass-columns dispatch failed:', err);
732
+ }
733
+ }
734
+ // Not a dispatch gate (see dispatchJobsChunk); the pre-pass emits this
735
+ // before the first jobs chunk, so drain here only for symmetry with the
736
+ // other post-scan events in case chunks were queued behind styles/index.
737
+ drainQueuedChunksIfReady();
738
+ }
672
739
  else if (evt.type === 'complete') {
673
740
  prepassJobsTotal = evt.totalJobs;
674
741
  console.log(`[stream] prepass complete @ ${elapsed()}ms totalJobs=${prepassJobsTotal} chunks=${chunkArrivals}`);
@@ -1 +1 @@
1
- {"version":3,"file":"geometry-parallel.js","sourceRoot":"","sources":["../src/geometry-parallel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geometry-parallel.js","sourceRoot":"","sources":["../src/geometry-parallel.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AA2B/D,OAAO,EAAE,wBAAwB,EAA4B,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAErE;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAqB,EACrB,SAAiB,EACjB,WAAmB,EACnB,WAAgC,EAChC,WAAmB;IAEnB,MAAM,OAAO,GAAe,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1E,IAAI,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACpB,CAAC,GAAG,UAAU,CAAC;YACf,UAAU,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;YAC5C,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,uBAAuB;IAC9B,MAAM,CAAC,GAAG,UAAiF,CAAC;IAC5F,MAAM,CAAC,GAAG,CAAC,CAAC,uBAAuB,CAAC;IACpC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,SAAS,4BAA4B;IACnC,MAAM,CAAC,GAAG,UAET,CAAC;IACF,MAAM,CAAC,GAAG,CAAC,CAAC,4BAA4B,CAAC;IACzC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC;AAuGD,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,eAAe,CACpC,MAAkB,EAClB,WAA8B,EAC9B,eAAqD;AACrD,gFAAgF;AAChF,WAA+B,EAC/B,OAAgC;IAEhC,WAAW,CAAC,KAAK,EAAE,CAAC;IAEpB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;IAC7D,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAEzC,2DAA2D;IAC3D,4BAA4B;IAC5B,2CAA2C;IAC3C,oCAAoC;IACpC,IAAI,YAA+B,CAAC;IACpC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC,IAAI,WAAW,IAAI,WAAW,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;QAChE,YAAY,GAAG,WAAW,CAAC;IAC7B,CAAC;SAAM,IACL,OAAO,iBAAiB,KAAK,WAAW;WACrC,WAAW,YAAY,iBAAiB;WACxC,MAAM,CAAC,UAAU,KAAK,CAAC;WACvB,MAAM,CAAC,UAAU,KAAK,WAAW,CAAC,UAAU,EAC/C,CAAC;QACD,YAAY,GAAG,WAAW,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,oDAAoD;IACpD,mEAAmE;IACnE,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAC9B,IAAI,MAAM,CACR,IAAI,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAChD,EAAE,IAAI,EAAE,QAAQ,EAAE,CACnB,CAAC;IACJ,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,IAAI,MAAM,CACxC,IAAI,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAChD,EAAE,IAAI,EAAE,QAAQ,EAAE,CACnB,CAAC;IAEF,+DAA+D;IAC/D,MAAM,UAAU,GAA6B,EAAE,CAAC;IAChD,IAAI,cAAc,GAAwB,IAAI,CAAC;IAC/C,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC;YACjB,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC,CAAC;IAEF,mEAAmE;IACnE,IAAI,WAAW,GAAuB,IAAI,CAAC;IAC3C,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,YAAY,GAAiB,IAAI,CAAC;IAEtC,uEAAuE;IACvE,qEAAqE;IACrE,mEAAmE;IACnE,uDAAuD;IACvD,IAAI,WAAW,GAAiB,IAAI,CAAC;IACrC,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,8EAA8E;IAC9E,0EAA0E;IAC1E,IAAI,WAAW,GAA+B,IAAI,CAAC;IACnD,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,wBAAwB,GAAG,KAAK,CAAC;IACrC;;;;;;;;OAQG;IACH,MAAM,YAAY,GAA0D,EAAE,CAAC;IAC/E,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAEhC,+EAA+E;IAC/E,6EAA6E;IAC7E,+EAA+E;IAC/E,gFAAgF;IAChF,4EAA4E;IAC5E,+EAA+E;IAC/E,gFAAgF;IAChF,+EAA+E;IAC/E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAE3B,oEAAoE;IACpE,kEAAkE;IAClE,MAAM,kBAAkB,GAAa,EAAE,CAAC;IACxC,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAE,WAAmB,EAAE,EAAE;QACpE,MAAM,CAAC,SAAS,GAAG,CAAC,CAAe,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,mBAAmB,WAAW,kBAAkB,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC3E,OAAO;YACT,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,cAAc;oBACpB,WAAW;oBACX,aAAa,EAAE,GAAG,CAAC,aAAa;oBAChC,SAAS,EAAE,GAAG,CAAC,SAAS;iBACzB,CAAC,CAAC;gBACH,IAAI,EAAE,CAAC;gBACP,OAAO;YACT,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC5B,mEAAmE;gBACnE,iEAAiE;gBACjE,kEAAkE;gBAClE,qEAAqE;gBACrE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;gBACxD,IAAI,EAAE,CAAC;gBACP,OAAO;YACT,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACzB,IAAI,kBAAkB,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;oBAClD,kBAAkB,CAAC,WAAW,CAAC,GAAG,OAAO,EAAE,CAAC;oBAC5C,OAAO,CAAC,GAAG,CAAC,mBAAmB,WAAW,mBAAmB,OAAO,EAAE,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;gBAClH,CAAC;gBACD,MAAM,MAAM,GAAe,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAgB1C,EAAE,EAAE,CAAC,CAAC;oBACL,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,SAAS,EAAE,CAAC,CAAC,SAAS,YAAY,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC5F,OAAO,EAAE,CAAC,CAAC,OAAO,YAAY,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;oBACpF,OAAO,EAAE,CAAC,CAAC,OAAO,YAAY,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;oBAClF,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,8DAA8D;oBAC9D,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3D,sEAAsE;oBACtE,kEAAkE;oBAClE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5C,+DAA+D;oBAC/D,+CAA+C;oBAC/C,GAAG,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzE,mEAAmE;oBACnE,mEAAmE;oBACnE,+CAA+C;oBAC/C,GAAG,CAAC,CAAC,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5E,kEAAkE;oBAClE,sEAAsE;oBACtE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzC,kEAAkE;oBAClE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxD,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5D,CAAC,CAAC,CAAC;gBACJ,wEAAwE;gBACxE,0EAA0E;gBAC1E,uEAAuE;gBACvE,sCAAsC;gBACtC,MAAM,eAAe,GAAI,GAA2C,CAAC,eAAe,CAAC;gBACrF,MAAM,oBAAoB,GACvB,GAAyC,CAAC,oBAAoB,IAAI,CAAC,CAAC;gBACvE,wEAAwE;gBACxE,yEAAyE;gBACzE,MAAM,wBAAwB,GAC3B,GAAkD,CAAC,wBAAwB,CAAC;gBAC/E,MAAM,2BAA2B,GAC9B,GAAwD,CAAC,2BAA2B,CAAC;gBACxF,IACE,MAAM,CAAC,MAAM,GAAG,CAAC;oBACjB,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC/C,CAAC,wBAAwB,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,CAAC,EACjE,CAAC;oBACD,uDAAuD;oBACvD,uDAAuD;oBACvD,sDAAsD;oBACtD,2DAA2D;oBAC3D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtB,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC;wBAC7B,WAAW,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;oBAC/C,CAAC;oBACD,mEAAmE;oBACnE,+DAA+D;oBAC/D,WAAW,IAAI,oBAAoB,CAAC;oBACpC,MAAM,cAAc,GAAG,WAAW,CAAC,wBAAwB,EAAE,CAAC;oBAC9D,UAAU,CAAC,IAAI,CAAC;wBACd,IAAI,EAAE,OAAO;wBACb,MAAM;wBACN,UAAU,EAAE,WAAW;wBACvB,cAAc,EAAE,cAAc,IAAI,SAAS;wBAC3C,GAAG,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC7E,GAAG,CAAC,wBAAwB,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC;4BACjE,CAAC,CAAC,EAAE,wBAAwB,EAAE,2BAA2B,EAAE;4BAC3D,CAAC,CAAC,EAAE,CAAC;qBACR,CAAC,CAAC;oBACH,IAAI,EAAE,CAAC;gBACT,CAAC;gBACD,OAAO;YACT,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC5B,yDAAyD;gBACzD,2DAA2D;gBAC3D,yDAAyD;gBACzD,2DAA2D;gBAC3D,2DAA2D;gBAC3D,yDAAyD;gBACzD,yCAAyC;gBACzC,WAAW,GAAG,wBAAwB,CAAC,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;gBACrE,gBAAgB,EAAE,CAAC;gBACnB,MAAM,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,EAAE,CAAC;gBACP,OAAO;YACT,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACzB,oEAAoE;gBACpE,gEAAgE;gBAChE,4BAA4B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC1C,WAAW,GAAG,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjE,gBAAgB,EAAE,CAAC;gBACnB,MAAM,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,EAAE,CAAC;gBACP,OAAO;YACT,CAAC;QACH,CAAC,CAAC;QACF,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,EAAE;YACvB,kEAAkE;YAClE,sEAAsE;YACtE,2EAA2E;YAC3E,yEAAyE;YACzE,sEAAsE;YACtE,+CAA+C;YAC/C,MAAM,MAAM,GACV,CAAC,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrC,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9D,gCAAgC,CAAC;YACnC,4BAA4B,CAAC,MAAM,CAAC,CAAC;YACrC,WAAW,GAAG,IAAI,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;YAC7D,gBAAgB,EAAE,CAAC;YACnB,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,yEAAyE;IACzE,oEAAoE;IACpE,4EAA4E;IAC5E,oEAAoE;IACpE,MAAM,KAAK,GAAG,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,cAAc,GAAG,OAAO,SAAS,KAAK,WAAW;QACrD,CAAC,CAAC,CAAE,SAAkD,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC;IAC/D,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;QAC3C,UAAU;QACV,KAAK;QACL,cAAc;QACd,SAAS,EAAE,aAAa;QACxB,mBAAmB,EAAE,OAAO,EAAE,mBAAmB;KAClD,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC;IAE5C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjC,iEAAiE;QACjE,oEAAoE;QACpE,4DAA4D;QAC5D,EAAE;QACF,oEAAoE;QACpE,8DAA8D;QAC9D,mEAAmE;QACnE,kBAAkB;QAClB,MAAM,gBAAgB,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC;QACjD,MAAM,CAAC,WAAW,CAAC;YACjB,IAAI,EAAE,MAAM;YACZ,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3D,CAAC,CAAC;QACH,iEAAiE;QACjE,kEAAkE;QAClE,kEAAkE;QAClE,gEAAgE;QAChE,oEAAoE;QACpE,iEAAiE;QACjE,oCAAoC;QACpC,MAAM,CAAC,WAAW,CAAC;YACjB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,OAAO,EAAE,WAAW,KAAK,IAAI;SACvC,CAAC,CAAC;QACH,kFAAkF;QAClF,iFAAiF;QACjF,MAAM,CAAC,WAAW,CAAC;YACjB,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,OAAO,EAAE,gBAAgB,KAAK,KAAK;SAC7C,CAAC,CAAC;QACH,wEAAwE;QACxE,oEAAoE;QACpE,MAAM,CAAC,WAAW,CAAC;YACjB,IAAI,EAAE,6BAA6B;YACnC,SAAS,EAAE,OAAO,EAAE,qBAAqB,IAAI,IAAI;SAClD,CAAC,CAAC;QACH,oEAAoE;QACpE,+DAA+D;QAC/D,MAAM,CAAC,WAAW,CAAC;YACjB,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,OAAO,EAAE,mBAAmB,IAAI,IAAI;SAC5C,CAAC,CAAC;QACH,0EAA0E;QAC1E,oEAAoE;QACpE,MAAM,CAAC,WAAW,CAAC;YACjB,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,OAAO,EAAE,aAAa,KAAK,IAAI;SACzC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,IAAI,gBAAgB;YAAE,OAAO;QAC7B,gBAAgB,GAAG,IAAI,CAAC;QACxB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC,CAAC,gDAAgD,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,GAAG,EAAE;QAClC,IAAI,wBAAwB,IAAI,CAAC,WAAW;YAAE,OAAO;QACrD,wBAAwB,GAAG,IAAI,CAAC;QAEhC,MAAM,YAAY,GAAG,eAAe,IAAI,IAAI,CAAC;QAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,mBAAmB,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC;QAEzE,wEAAwE;QACxE,0EAA0E;QAC1E,qCAAqC;QACrC,WAAW,CAAC,eAAe,CACzB,WAAW,CAAC,SAAS,EACrB,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAC3D,CAAC;QAEF,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;YACxC,MAAM,EAAE,mBAAmB;SAC5B,CAAC,CAAC;QACH,IAAI,EAAE,CAAC;QAEP,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,uBAAuB,EAAE,CAAC;QACtE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,CAAC,WAAW,CAAC;gBACjB,IAAI,EAAE,cAAuB;gBAC7B,YAAY;gBACZ,SAAS,EAAE,WAAW,CAAC,SAAS;gBAChC,mBAAmB,EAAE,WAAW,CAAC,mBAAmB;gBACpD,IAAI,EAAE,IAAI,EAAE,IAAI;gBAChB,UAAU,EAAE,mBAAmB;gBAC/B,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,QAAQ;gBACpB,UAAU,EAAE,QAAQ;gBACpB,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,OAAO;gBACpB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxC,CAAC,CAAC;QACL,CAAC;QAED,kEAAkE;QAClE,+DAA+D;QAC/D,mDAAmD;IACrD,CAAC,CAAC;IAEF;;;;;OAKG;IACH,SAAS,kBAAkB,CAAC,IAAiB,EAAE,QAAqB;QAClE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,mBAAmB,CACjD,QAAQ,EACR,YAAY,EACZ,CAAC,EACD,WAAW,EACX,kBAAkB,CACnB,CAAC;QACF,kBAAkB,GAAG,UAAU,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAChC,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACxB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBAC3B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CACpB,EAAE,IAAI,EAAE,cAAuB,EAAE,QAAQ,EAAE,GAAG,EAAE,EAChD,CAAC,GAAG,CAAC,MAAM,CAAC,CACb,CAAC;QACJ,CAAC;IACH,CAAC;IAED,SAAS,yBAAyB,CAAC,IAAiB,EAAE,QAA4B;QAChF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,YAAY,KAAK,CAAC;YAAE,OAAO;QAC/B,IAAI,CAAC;YACH,sEAAsE;YACtE,uEAAuE;YACvE,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBACjD,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACnC,OAAO;YACT,CAAC;YACD,2EAA2E;YAC3E,0EAA0E;YAC1E,2EAA2E;YAC3E,+CAA+C;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;gBACrF,IAAI,OAAO,KAAK,CAAC;oBAAE,SAAS;gBAC5B,+DAA+D;gBAC/D,sDAAsD;gBACtD,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChF,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBAC3B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBAC7B,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CACpB,EAAE,IAAI,EAAE,cAAuB,EAAE,QAAQ,EAAE,GAAG,EAAE,EAChD,CAAC,GAAG,CAAC,MAAM,CAAC,CACb,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,GAAG,IAAI,KAAK,CAAC,kCAAkC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9G,IAAI,EAAE,CAAC;QACT,CAAC;IACH,CAAC;IAED,MAAM,iBAAiB,GAAG,CAAC,IAAiB,EAAE,QAA4B,EAAE,EAAE;QAC5E,IAAI,CAAC,wBAAwB,IAAI,CAAC,cAAc,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzE,+DAA+D;YAC/D,iEAAiE;YACjE,8DAA8D;YAC9D,6DAA6D;YAC7D,mDAAmD;YACnD,EAAE;YACF,sEAAsE;YACtE,wEAAwE;YACxE,sEAAsE;YACtE,qEAAqE;YACrE,sEAAsE;YACtE,oEAAoE;YACpE,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QACD,yBAAyB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,8DAA8D;IAC9D,MAAM,wBAAwB,GAAG,GAAG,EAAE;QACpC,IAAI,CAAC,wBAAwB,IAAI,CAAC,cAAc,IAAI,CAAC,mBAAmB;YAAE,OAAO;QACjF,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,EAAG,CAAC;YAChC,yBAAyB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC;IAEF,8DAA8D;IAC9D,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,OAAO,EAAE,mBAAmB,IAAI,IAAI;QACvD,CAAC,CAAC,cAAc,OAAO,CAAC,mBAAmB,WAAW,iBAAiB,CAAC,MAAM,GAAG;QACjF,CAAC,CAAC,WAAW,KAAK,WAAW,iBAAiB,CAAC,MAAM,GAAG,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,8CAA8C,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,WAAW,GAAG,YAAY,EAAE,CAAC,CAAC;IAE7H,MAAM,aAAa,GAAG,iBAAiB,EAAE,CAAC;IAC1C,oEAAoE;IACpE,oEAAoE;IACpE,wEAAwE;IACxE,wEAAwE;IACxE,wEAAwE;IACxE,wEAAwE;IACxE,yEAAyE;IACzE,IAAI,CAAC;QACL,sEAAsE;QACtE,qEAAqE;QACrE,oEAAoE;QACpE,mEAAmE;QACnE,iEAAiE;QACjE,mDAAmD;QACnD,IAAI,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC5B,aAAa,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAC5B,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;QACtB,aAAa,CAAC,SAAS,GAAG,CAAC,CAAe,EAAE,EAAE;YAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;YACpB,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACrC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;gBACxD,IAAI,EAAE,CAAC;gBACP,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACnC,MAAM,GAAG,GAAG,IAAI,CAAC,KAA+C,CAAC;gBACjE,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACxB,WAAW,GAAG;wBACZ,SAAS,EAAE,GAAG,CAAC,SAAmB;wBAClC,mBAAmB,EAAG,GAAG,CAAC,mBAA0C,IAAI,SAAS;wBACjF,SAAS,EAAE,GAAG,CAAC,SAAyB;wBACxC,UAAU,EAAE,GAAG,CAAC,UAAqB;wBACrC,gBAAgB,EAAG,GAAG,CAAC,gBAA8C,IAAI,IAAI;qBAC9E,CAAC;oBACF,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,EAAE,gBAAgB,WAAW,CAAC,SAAS,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAClN,sBAAsB,EAAE,CAAC;oBACzB,IAAI,EAAE,CAAC;gBACT,CAAC;qBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAmB,CAAC;oBACxC,oEAAoE;oBACpE,2DAA2D;oBAC3D,MAAM,WAAW,GAAI,GAAG,CAAC,QAAoC,IAAI,IAAI,CAAC;oBACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAChD,aAAa,EAAE,CAAC;oBAChB,mBAAmB,IAAI,QAAQ,CAAC;oBAChC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;wBACrB,YAAY,GAAG,OAAO,EAAE,CAAC;wBACzB,OAAO,CAAC,GAAG,CAAC,+BAA+B,YAAY,OAAO,QAAQ,mBAAmB,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;oBAC1H,CAAC;oBACD,IAAI,aAAa,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,GAAG,IAAI,EAAE,CAAC;wBAChD,OAAO,CAAC,GAAG,CAAC,mBAAmB,aAAa,MAAM,OAAO,EAAE,QAAQ,QAAQ,gBAAgB,mBAAmB,GAAG,CAAC,CAAC;oBACrH,CAAC;oBACD,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBAC1C,CAAC;qBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACjC,kEAAkE;oBAClE,+DAA+D;oBAC/D,iEAAiE;oBACjE,6DAA6D;oBAC7D,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAuB,CAAC;oBAC7C,MAAM,WAAW,GAAG,GAAG,CAAC,WAAyB,CAAC;oBAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAuB,CAAC;oBAC7C,MAAM,UAAU,GAAG,GAAG,CAAC,UAAyB,CAAC;oBACjD,MAAM,UAAU,GAAG,GAAG,CAAC,UAAyB,CAAC;oBACjD,MAAM,kBAAkB,GAAI,GAAG,CAAC,kBAA8C,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;oBACrG,MAAM,mBAAmB,GAAI,GAAG,CAAC,mBAA+C,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;oBACvG,MAAM,cAAc,GAAI,GAAG,CAAC,cAAyC,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC3F,OAAO,CAAC,GAAG,CAAC,qBAAqB,OAAO,EAAE,OAAO,QAAQ,CAAC,MAAM,YAAY,QAAQ,CAAC,MAAM,0BAA0B,YAAY,CAAC,MAAM,gBAAgB,CAAC,CAAC;oBAE1J,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;wBACxB,8DAA8D;wBAC9D,+DAA+D;wBAC/D,6DAA6D;wBAC7D,IAAI,CAAC;4BACH,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;4BAC9B,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;4BACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;4BAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;4BACnC,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;4BACnC,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC;4BACxC,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC;4BAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;4BACvC,CAAC,CAAC,WAAW,CACX;gCACE,IAAI,EAAE,YAAqB;gCAC3B,QAAQ,EAAE,IAAI;gCACd,WAAW,EAAE,OAAO;gCACpB,QAAQ,EAAE,KAAK;gCACf,UAAU,EAAE,OAAO;gCACnB,UAAU,EAAE,OAAO;gCACnB,kBAAkB,EAAE,IAAI;gCACxB,mBAAmB,EAAE,OAAO;gCAC5B,cAAc,EAAE,OAAO;6BACxB,EACD;gCACE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM;gCACzE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM;6BAC5C,CACF,CAAC;wBACJ,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAC;wBAC5D,CAAC;oBACH,CAAC;oBAED,cAAc,GAAG,IAAI,CAAC;oBACtB,6DAA6D;oBAC7D,0DAA0D;oBAC1D,sCAAsC;oBACtC,wBAAwB,EAAE,CAAC;gBAC7B,CAAC;qBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBACvC,6DAA6D;oBAC7D,2DAA2D;oBAC3D,0DAA0D;oBAC1D,+DAA+D;oBAC/D,MAAM,GAAG,GAAG,GAAG,CAAC,GAAkB,CAAC;oBACnC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAqB,CAAC;oBACzC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAsB,CAAC;oBAC3C,OAAO,CAAC,GAAG,CAAC,2BAA2B,OAAO,EAAE,OAAO,GAAG,CAAC,MAAM,WAAW,CAAC,CAAC;oBAE9E,IAAI,OAAO,iBAAiB,KAAK,WAAW,EAAE,CAAC;wBAC7C,4DAA4D;wBAC5D,0CAA0C;wBAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC;wBAChC,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;wBACtC,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;wBACxC,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;wBAC/C,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;wBACrD,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAC;wBACvD,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBACjC,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBACvC,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;wBACzC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;4BACxB,IAAI,CAAC;gCACH,CAAC,CAAC,WAAW,CAAC;oCACZ,IAAI,EAAE,kBAA2B;oCACjC,GAAG,EAAE,IAAI,WAAW,CAAC,MAAM,CAAC;oCAC5B,MAAM,EAAE,IAAI,WAAW,CAAC,SAAS,CAAC;oCAClC,OAAO,EAAE,IAAI,WAAW,CAAC,UAAU,CAAC;iCACrC,CAAC,CAAC;4BACL,CAAC;4BAAC,OAAO,GAAG,EAAE,CAAC;gCACb,OAAO,CAAC,IAAI,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAC;4BAClE,CAAC;wBACH,CAAC;wBACD,8DAA8D;wBAC9D,iEAAiE;wBACjE,8DAA8D;wBAC9D,2BAA2B;wBAC3B,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;4BAC3B,IAAI,CAAC;gCACH,OAAO,CAAC,aAAa,CACnB,IAAI,WAAW,CAAC,MAAM,CAAC,EACvB,IAAI,WAAW,CAAC,SAAS,CAAC,EAC1B,IAAI,WAAW,CAAC,UAAU,CAAC,CAC5B,CAAC;4BACJ,CAAC;4BAAC,OAAO,GAAG,EAAE,CAAC;gCACb,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAC;4BAC/D,CAAC;wBACH,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,2DAA2D;wBAC3D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;4BACxB,IAAI,CAAC;gCACH,CAAC,CAAC,WAAW,CAAC;oCACZ,IAAI,EAAE,kBAA2B;oCACjC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE;oCAChB,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE;oCACtB,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE;iCACzB,CAAC,CAAC;4BACL,CAAC;4BAAC,OAAO,GAAG,EAAE,CAAC;gCACb,OAAO,CAAC,IAAI,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAC;4BAClE,CAAC;wBACH,CAAC;wBACD,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;4BAC3B,IAAI,CAAC;gCACH,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;4BACtE,CAAC;4BAAC,OAAO,GAAG,EAAE,CAAC;gCACb,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAC;4BAC/D,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,mBAAmB,GAAG,IAAI,CAAC;oBAC3B,wBAAwB,EAAE,CAAC;gBAC7B,CAAC;qBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBAC1C,uEAAuE;oBACvE,oEAAoE;oBACpE,iEAAiE;oBACjE,yEAAyE;oBACzE,sEAAsE;oBACtE,mEAAmE;oBACnE,qEAAqE;oBACrE,sEAAsE;oBACtE,MAAM,iBAAiB,GAAG,GAAG,CAAC,iBAAgC,CAAC;oBAC/D,MAAM,mBAAmB,GAAG,GAAG,CAAC,mBAAkC,CAAC;oBACnE,wEAAwE;oBACxE,qEAAqE;oBACrE,MAAM,kBAAkB,GAAI,GAAG,CAAC,kBAA8C,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;oBACrG,MAAM,aAAa,GAAG,GAAG,CAAC,aAA4B,CAAC;oBACvD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAsB,CAAC;oBAC3C,MAAM,cAAc,GAAG,GAAG,CAAC,cAA6B,CAAC;oBACzD,MAAM,iBAAiB,GAAG,GAAG,CAAC,iBAAiC,CAAC;oBAChE,MAAM,SAAS,GAAG,GAAG,CAAC,SAAyB,CAAC;oBAChD,MAAM,mBAAmB,GAAG,GAAG,CAAC,mBAAkC,CAAC;oBACnE,MAAM,mBAAmB,GAAG,GAAG,CAAC,mBAAmC,CAAC;oBACpE,OAAO,CAAC,GAAG,CAAC,8BAA8B,OAAO,EAAE,OAAO,iBAAiB,CAAC,MAAM,aAAa,mBAAmB,CAAC,MAAM,gBAAgB,aAAa,CAAC,MAAM,eAAe,CAAC,CAAC;oBAE9K,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;wBACxB,IAAI,CAAC;4BACH,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC;4BAC3C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC;4BAC7C,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC;4BAC/C,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;4BACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;4BAC9B,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;4BACvC,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC;4BACvC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;4BAC/B,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC;4BAC5C,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC;4BAC3C,CAAC,CAAC,WAAW,CACX;gCACE,IAAI,EAAE,qBAA8B;gCACpC,iBAAiB,EAAE,QAAQ;gCAC3B,mBAAmB,EAAE,QAAQ;gCAC7B,kBAAkB,EAAE,WAAW;gCAC/B,aAAa,EAAE,IAAI;gCACnB,OAAO,EAAE,KAAK;gCACd,cAAc,EAAE,OAAO;gCACvB,iBAAiB,EAAE,IAAI;gCACvB,SAAS,EAAE,IAAI;gCACf,mBAAmB,EAAE,OAAO;gCAC5B,mBAAmB,EAAE,MAAM;6BAC5B,EACD;gCACE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM;gCAC/F,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM;6BACxD,CACF,CAAC;wBACJ,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,OAAO,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,CAAC,CAAC;wBACrE,CAAC;oBACH,CAAC;oBAED,uEAAuE;oBACvE,wEAAwE;oBACxE,yEAAyE;oBACzE,wBAAwB,EAAE,CAAC;gBAC7B,CAAC;qBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACnC,gBAAgB,GAAG,GAAG,CAAC,SAAmB,CAAC;oBAC3C,OAAO,CAAC,GAAG,CAAC,+BAA+B,OAAO,EAAE,gBAAgB,gBAAgB,WAAW,aAAa,EAAE,CAAC,CAAC;oBAChH,2DAA2D;oBAC3D,0DAA0D;oBAC1D,0DAA0D;oBAC1D,sDAAsD;oBACtD,+CAA+C;oBAC/C,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBACzB,mBAAmB,GAAG,IAAI,CAAC;wBAC3B,iBAAiB,EAAE,CAAC;oBACtB,CAAC;gBACH,CAAC;gBACD,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC1B,wEAAwE;gBACxE,sEAAsE;gBACtE,sCAAsC;gBACtC,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3C,YAAY,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvC,WAAW,GAAG,IAAI,CAAC;gBACnB,aAAa,CAAC,SAAS,EAAE,CAAC;gBAC1B,IAAI,EAAE,CAAC;gBACP,OAAO;YACT,CAAC;YACD,sEAAsE;YACtE,4DAA4D;YAC5D,gEAAgE;QAClE,CAAC,CAAC;QACF,aAAa,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE;YAC5B,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACxC,YAAY,GAAG,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACjE,WAAW,GAAG,IAAI,CAAC;YACnB,aAAa,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;QAEF,oEAAoE;QACpE,wEAAwE;QACxE,yEAAyE;QACzE,0EAA0E;QAC1E,+DAA+D;QAC/D,MAAM,iBAAiB,GAAG,GAAG,EAAE;YAC7B,WAAW,GAAG,IAAI,CAAC;YACnB,yDAAyD;YACzD,4DAA4D;YAC5D,2DAA2D;YAC3D,2DAA2D;YAC3D,0BAA0B;YAC1B,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,aAAa,EAAE,CAAC;YAClB,CAAC;YACD,aAAa,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;QAEF,mCAAmC;QACnC,+CAA+C;QAC/C,wEAAwE;QACxE,yEAAyE;QACzE,mCAAmC;QACnC,qEAAqE;QACrE,wEAAwE;QACxE,wEAAwE;QACxE,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,gBAAgB,GAAG,OAAO,EAAE,gBAAgB,IAAI,4BAA4B,EAAE,CAAC;QACrF,IAAI,gBAAgB,EAAE,aAAa,EAAE,MAAM,IAAI,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,wDAAwD,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,sBAAsB,gBAAgB,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC,CAAC;QACzL,CAAC;QACD,aAAa,CAAC,WAAW,CAAC;YACxB,IAAI,EAAE,mBAAmB;YACzB,YAAY;YACZ,SAAS,EAAE,MAAM;YACjB,GAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7F,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAC,CAAC;QAEH,6EAA6E;QAC7E,uEAAuE;QACvE,qEAAqE;QACrE,0DAA0D;QAC1D,6EAA6E;QAC7E,uCAAuC;QACvC,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAEhC,OAAO,IAAI,EAAE,CAAC;YACZ,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,UAAU,CAAC,KAAK,EAAG,CAAC;YAC5B,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBAChB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,IAAI,CAAC;wBAAC,CAAC,CAAC,SAAS,EAAE,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,8BAA8B,CAAC,CAAC;gBACjE,CAAC;gBACD,IAAI,CAAC;oBAAC,aAAa,CAAC,SAAS,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,8BAA8B,CAAC,CAAC;gBAC3E,MAAM,WAAW,CAAC;YACpB,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,IAAI,CAAC;wBAAC,CAAC,CAAC,SAAS,EAAE,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,8BAA8B,CAAC,CAAC;gBACjE,CAAC;gBACD,MAAM,YAAY,CAAC;YACrB,CAAC;YAED,mEAAmE;YACnE,iEAAiE;YACjE,mEAAmE;YACnE,mEAAmE;YACnE,8BAA8B;YAC9B,IAAI,WAAW,IAAI,CAAC,wBAAwB,IAAI,gBAAgB,KAAK,CAAC,EAAE,CAAC;gBACvE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,IAAI,CAAC;wBAAC,CAAC,CAAC,SAAS,EAAE,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,8BAA8B,CAAC,CAAC;gBACjE,CAAC;gBACD,MAAM,cAAc,GAAG,WAAW,CAAC,sBAAsB,EAAE,CAAC;gBAC5D,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC;gBAC3D,OAAO;YACT,CAAC;YAED,IACE,WAAW;mBACR,wBAAwB;mBACxB,gBAAgB,IAAI,OAAO,CAAC,MAAM;mBAClC,UAAU,CAAC,MAAM,KAAK,CAAC,EAC1B,CAAC;gBACD,MAAM;YACR,CAAC;YAED,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,GAAG,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,cAAc,GAAG,WAAW,CAAC,sBAAsB,EAAE,CAAC;QAC5D,yEAAyE;QACzE,4EAA4E;QAC5E,+EAA+E;QAC/E,iFAAiF;QACjF,2EAA2E;QAC3E,MAAM,eAAe,GAAG,WAAyC,CAAC;QAClE,IAAI,eAAe,IAAI,eAAe,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;YAC5D,OAAO,CAAC,IAAI,CACV,cAAc,eAAe,CAAC,gBAAgB,yBAAyB;gBACrE,GAAG,eAAe,CAAC,oBAAoB,+BAA+B;gBACtE,kCAAkC,CACrC,CAAC;QACJ,CAAC;QACD,MAAM;YACJ,IAAI,EAAE,UAAU;YAChB,WAAW;YACX,cAAc;YACd,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC;IACF,CAAC;YAAS,CAAC;QACT,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC;gBAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,8BAA8B,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC;YAAC,aAAa,CAAC,SAAS,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,8BAA8B,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC"}
@@ -92,6 +92,36 @@ export interface GeometryWorkerSetEntityIndexMessage {
92
92
  starts: Uint32Array;
93
93
  lengths: Uint32Array;
94
94
  }
95
+ /**
96
+ * Install the three per-content structures the streaming pre-pass computed
97
+ * ONCE, so this worker's first `processGeometryBatch` skips rebuilding them
98
+ * with its own full-file walk (issue #957 orphan/instanced type geometry +
99
+ * #563 material-layer slicing). Without this, every worker independently
100
+ * re-walks the whole 200-340 MB file on its first type-product / layered
101
+ * batch — N concurrent walks contending for memory bandwidth.
102
+ *
103
+ * `referencedRepmaps` and `instantiatedTypeIds` are id sets; the `mli*` arrays
104
+ * are the flat SoA encoding of the `MaterialLayerIndex` (see Rust
105
+ * `MaterialLayerFlat`). Applied AFTER `set-entity-index` (which clears these
106
+ * caches on content swap), so the injected values survive. Absent ⇒ the
107
+ * worker's lazy per-batch build (the byte-identical fallback) runs instead.
108
+ */
109
+ export interface GeometryWorkerSetPrepassColumnsMessage {
110
+ type: 'set-prepass-columns';
111
+ referencedRepmaps: Uint32Array;
112
+ instantiatedTypeIds: Uint32Array;
113
+ /** #1623 Phase 3 don't-bake plan: RepresentationMap ids an IfcMappedItem
114
+ * instantiates >= 2x. Installed via `setMappedInstancePlan`; absent/empty ⇒
115
+ * the batch never arms the don't-bake path (materializes every occurrence). */
116
+ mappedInstancePlan?: Uint32Array;
117
+ mliElementIds: Uint32Array;
118
+ mliAxis: Uint32Array;
119
+ mliLayerCounts: Uint32Array;
120
+ mliDirectionSense: Float64Array;
121
+ mliOffset: Float64Array;
122
+ mliLayerMaterialIds: Uint32Array;
123
+ mliLayerThicknesses: Float64Array;
124
+ }
95
125
  export interface GeometryWorkerPrePassMessage {
96
126
  type: 'prepass-streaming';
97
127
  sharedBuffer: SharedArrayBuffer;
@@ -159,7 +189,7 @@ export interface GeometryWorkerSetSkipSmallCutsMessage {
159
189
  type: 'set-skip-small-cuts';
160
190
  enabled: boolean;
161
191
  }
162
- export type GeometryWorkerRequest = GeometryWorkerInitMessage | GeometryWorkerStreamStartMessage | GeometryWorkerStreamChunkMessage | GeometryWorkerStreamEndMessage | GeometryWorkerSetStylesMessage | GeometryWorkerSetEntityIndexMessage | GeometryWorkerSetMergeLayersMessage | GeometryWorkerSetInstancingMessage | GeometryWorkerSetComputeGeometryHashesMessage | GeometryWorkerSetTessellationQualityMessage | GeometryWorkerSetSkipSmallCutsMessage | GeometryWorkerPrePassMessage;
192
+ export type GeometryWorkerRequest = GeometryWorkerInitMessage | GeometryWorkerStreamStartMessage | GeometryWorkerStreamChunkMessage | GeometryWorkerStreamEndMessage | GeometryWorkerSetStylesMessage | GeometryWorkerSetEntityIndexMessage | GeometryWorkerSetPrepassColumnsMessage | GeometryWorkerSetMergeLayersMessage | GeometryWorkerSetInstancingMessage | GeometryWorkerSetComputeGeometryHashesMessage | GeometryWorkerSetTessellationQualityMessage | GeometryWorkerSetSkipSmallCutsMessage | GeometryWorkerPrePassMessage;
163
193
  export interface GeometryWorkerBatchMessage {
164
194
  type: 'batch';
165
195
  meshes: {
@@ -1 +1 @@
1
- {"version":3,"file":"geometry.worker.d.ts","sourceRoot":"","sources":["../src/geometry.worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geometry.worker.d.ts","sourceRoot":"","sources":["../src/geometry.worker.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
4
  import init, { initSync, IfcAPI } from '@ifc-lite/wasm';
5
5
  import { initWasmWithRetry } from './wasm-init-retry.js';
6
+ import { largeFilePrepassError } from './huge-file-error.js';
6
7
  import { mergeGeometryDiagnostics } from './diagnostics.js';
7
8
  import { DEFAULT_BATCH_SIZING, resolveBatchSizing, nextAdaptiveBatchJobs, } from './batch-sizing.js';
8
9
  let api = null;
@@ -43,6 +44,13 @@ async function ensureInit() {
43
44
  applySkipSmallCutsToApi();
44
45
  entityIndexApplied = false;
45
46
  applyEntityIndexToApi();
47
+ prepassColumnsApplied = false;
48
+ applyPrepassColumnsToApi();
49
+ // Re-install the session source on a recovery re-init (api = null) so the
50
+ // *FromSource batch path isn't silently reading an empty file — same replay
51
+ // contract as the entity index. No-op before a session sets cachedSourceBytes.
52
+ sourceBytesApplied = false;
53
+ applySourceBytesToApi();
46
54
  return api;
47
55
  }
48
56
  /**
@@ -150,6 +158,79 @@ function applyEntityIndexToApi() {
150
158
  ifcApi.setEntityIndex(cachedEntityIndex.ids, cachedEntityIndex.starts, cachedEntityIndex.lengths);
151
159
  entityIndexApplied = true;
152
160
  }
161
+ /**
162
+ * Cached pre-pass columns (issue #957 / #563). Same replay contract as
163
+ * {@link cachedEntityIndex}: `setEntityIndex` CLEARS these three per-content
164
+ * caches on the IfcAPI (content-swap semantics), so they must be re-installed
165
+ * AFTER every entity-index apply — including the binary-split recovery re-init
166
+ * that rebuilds the IfcAPI. Without replay a recovery would drop the injected
167
+ * columns and the next batch would pay the O(file) rebuild the hoist removed.
168
+ */
169
+ let cachedPrepassColumns = null;
170
+ let prepassColumnsApplied = false;
171
+ /**
172
+ * Push the cached pre-pass columns onto the IfcAPI (once per API). MUST run
173
+ * AFTER {@link applyEntityIndexToApi} — `setEntityIndex` clears these caches,
174
+ * so applying columns first would have them wiped by a later index apply.
175
+ */
176
+ function applyPrepassColumnsToApi() {
177
+ const ifcApi = api;
178
+ if (!ifcApi || prepassColumnsApplied || !cachedPrepassColumns)
179
+ return;
180
+ const c = cachedPrepassColumns;
181
+ if (typeof ifcApi.setReferencedRepmaps === 'function') {
182
+ ifcApi.setReferencedRepmaps(c.referencedRepmaps);
183
+ }
184
+ if (typeof ifcApi.setInstantiatedTypeIds === 'function') {
185
+ ifcApi.setInstantiatedTypeIds(c.instantiatedTypeIds);
186
+ }
187
+ // #1623 Phase 3: install the don't-bake plan so the partitioned batch can arm
188
+ // batch-local instancing. Empty/absent ⇒ the setter no-ops (nothing repeated).
189
+ if (typeof ifcApi.setMappedInstancePlan === 'function' && c.mappedInstancePlan) {
190
+ ifcApi.setMappedInstancePlan(c.mappedInstancePlan);
191
+ }
192
+ if (typeof ifcApi.setMaterialLayerIndex === 'function') {
193
+ ifcApi.setMaterialLayerIndex(c.mliElementIds, c.mliAxis, c.mliLayerCounts, c.mliDirectionSense, c.mliOffset, c.mliLayerMaterialIds, c.mliLayerThicknesses);
194
+ }
195
+ prepassColumnsApplied = true;
196
+ }
197
+ /**
198
+ * Cached session source bytes (cold-load lever 1c). Same replay contract as the
199
+ * entity index above, but it removes a per-call copy rather than a per-load
200
+ * scan: the wasm-bindgen glue `passArray8ToWasm0` mallocs + memcpys the WHOLE
201
+ * source file into the worker's wasm heap on EVERY `processGeometryBatch*` call
202
+ * (~4 ms/call on 169 MB). A huge CSG-dense model adapts down to 64-job batches
203
+ * and makes 600+ calls/worker, so the per-call copy alone is 15-25 s/worker of
204
+ * pure memcpy. `setSourceBytes` copies the file ONCE per load; the `*FromSource`
205
+ * batch variants then read it from the heap. The bytes are identical across a
206
+ * worker's calls (one model per worker), so one copy suffices.
207
+ *
208
+ * Points at the active session's `localBytes`; the SAB fallback in `processBatch`
209
+ * swaps it for the materialised copy and re-applies. `null` between loads
210
+ * (released at `stream-end`). Reset (applied=false) on every fresh IfcAPI so the
211
+ * binary-split recovery re-init (`api = null`) re-installs it, exactly like the
212
+ * entity index. When the loaded wasm predates `setSourceBytes`, the apply is a
213
+ * no-op and `processBatch` stays on the legacy `data`-per-call path.
214
+ */
215
+ let cachedSourceBytes = null;
216
+ let sourceBytesApplied = false;
217
+ /**
218
+ * Install `cachedSourceBytes` onto the IfcAPI ONCE per instance so the
219
+ * `*FromSource` batch variants read the file from the wasm heap instead of the
220
+ * glue re-copying it every call. MAY THROW if the runtime rejects the
221
+ * (SAB-backed) view during the copy — the `processBatch` caller's SAB fallback
222
+ * materialises and re-applies. No-op on wasm builds without `setSourceBytes`
223
+ * (leaving `sourceBytesApplied` false, so `processBatch` uses the legacy path).
224
+ */
225
+ function applySourceBytesToApi() {
226
+ const ifcApi = api;
227
+ if (!ifcApi || sourceBytesApplied || !cachedSourceBytes)
228
+ return;
229
+ if (typeof ifcApi.setSourceBytes !== 'function')
230
+ return;
231
+ ifcApi.setSourceBytes(cachedSourceBytes);
232
+ sourceBytesApplied = true;
233
+ }
153
234
  /**
154
235
  * Build a Uint8Array view over the shared buffer. Modern wasm-bindgen accepts
155
236
  * SAB-backed views directly and copies them into linear memory itself, so an
@@ -385,6 +466,41 @@ function extractGeometryHashesFromCollection(collection) {
385
466
  map.set(ids[i], values[i]);
386
467
  return map;
387
468
  }
469
+ /**
470
+ * Drain a PartitionedBatch result (legacy OR `*FromSource`): move the flat
471
+ * MeshCollection into the session, push the IFNS instancing shard, fold the
472
+ * instanced-occurrence count, and free the now-empty wrapper. Shared by both
473
+ * call sites so the lever-1c FromSource path is byte-for-byte the legacy path
474
+ * minus the per-call file copy.
475
+ */
476
+ function consumePartitioned(session, partitioned) {
477
+ try {
478
+ // takeMeshes() MOVES the flat MeshCollection out (take-once); collectMeshes
479
+ // frees it. None only on a second take — we call it once.
480
+ const collection = partitioned.takeMeshes();
481
+ if (collection)
482
+ collectMeshes(session, collection);
483
+ const shard = partitioned.takeShard();
484
+ if (shard && shard.byteLength > 0) {
485
+ // wasm-bindgen Vec<u8> returns a fresh standalone Uint8Array (offset 0,
486
+ // exact length), so .buffer is safe to transfer. Guard defensively: if
487
+ // it is ever a view into a larger buffer, copy out the exact bytes
488
+ // instead of transferring (and detaching) the parent buffer.
489
+ const exact = shard.byteOffset === 0 && shard.byteLength === shard.buffer.byteLength
490
+ ? shard.buffer
491
+ : shard.slice().buffer;
492
+ session.pendingInstancedShards.push(exact);
493
+ }
494
+ // Fold the instanced occurrence count into the streamed mesh total so the
495
+ // viewer's "N meshes" reflects ALL rendered geometry (flat + instanced),
496
+ // not just the flat MeshCollection (these occurrences left the flat path).
497
+ session.pendingInstancedOccurrences += partitioned.instancedOccurrences ?? 0;
498
+ }
499
+ finally {
500
+ // Free the now-empty PartitionedBatch wrapper (its contents were moved out).
501
+ partitioned.free?.();
502
+ }
503
+ }
388
504
  /**
389
505
  * Process a slice of jobsFlat with binary-split recovery. Mirrors the
390
506
  * pre-streaming behaviour: if WASM throws on the whole slice, split in
@@ -397,45 +513,45 @@ async function processBatch(session, jobs) {
397
513
  return;
398
514
  try {
399
515
  const ifcApi = await ensureInit();
400
- // Instanced-only path: produce geometry ONCE via processGeometryBatchPartitioned,
401
- // which splits each batch into flat meshes (transparent + type-template +
402
- // textured) and an IFNS instancing shard (opaque, untextured ordinary
403
- // occurrences). This replaces the temporary emit-both stage (which meshed
404
- // twice): the upload/memory/draw win is realised here because instanced
405
- // occurrences are taken OFF the flat path entirely.
516
+ // Cold-load lever 1c: install this worker's source bytes on the IfcAPI ONCE
517
+ // per instance so the batch reads the file from the wasm heap instead of the
518
+ // glue re-mallocing + memcpying the whole file on every call (~4 ms/call on
519
+ // 169 MB; 600+ calls/worker on huge CSG-dense models). The bytes are the same
520
+ // across a worker's calls (one model per worker), so one copy suffices and the
521
+ // meshing reads the exact same bytes -> byte-identical output. A SAB-rejecting
522
+ // runtime throws inside setSourceBytes during the copy, exactly as the legacy
523
+ // per-call path would; the catch below materialises + retries, and the retry
524
+ // re-installs the copy from the materialised buffer.
525
+ cachedSourceBytes = session.localBytes;
526
+ applySourceBytesToApi();
527
+ // Instanced-only path: produce geometry ONCE via a partitioned batch, which
528
+ // splits each batch into flat meshes (transparent + type-template + textured)
529
+ // and an IFNS instancing shard (opaque, untextured ordinary occurrences). The
530
+ // upload/memory/draw win is realised because instanced occurrences are taken
531
+ // OFF the flat path entirely.
406
532
  //
407
- // Defensive fallback: if the loaded wasm predates the partitioned export,
408
- // fall back to plain processGeometryBatch (flat-only, no instancing) so the
409
- // viewer stays fully functional rather than throwing into binary-split recovery.
533
+ // Path selection, most-preferred first:
534
+ // 1. processGeometryBatchPartitionedFromSource lever 1c, no per-call copy;
535
+ // 2. processGeometryBatchFromSource flat, no per-call copy (federated /
536
+ // instancing off);
537
+ // 3. processGeometryBatchPartitioned — legacy per-call copy (older wasm, or
538
+ // a SAB reject before materialise left the source uninstalled);
539
+ // 4. processGeometryBatch — legacy flat per-call copy, the final fallback so
540
+ // the viewer stays functional rather than throwing into recovery.
541
+ const sourced = ifcApi;
542
+ const partitionedFromSourceFn = sourceBytesApplied
543
+ ? sourced.processGeometryBatchPartitionedFromSource
544
+ : undefined;
545
+ const batchFromSourceFn = sourceBytesApplied ? sourced.processGeometryBatchFromSource : undefined;
410
546
  const partitionedFn = ifcApi.processGeometryBatchPartitioned;
411
- if (typeof partitionedFn === 'function' && instancingEnabled) {
412
- const partitioned = partitionedFn.call(ifcApi, session.localBytes, jobs, session.unitScale, session.rtcX, session.rtcY, session.rtcZ, session.needsShift, session.voidKeys, session.voidCounts, session.voidValues, session.styleIds, session.styleColors, session.planeAngleToRadians, session.materialElementIds, session.materialColorCounts, session.materialColors);
413
- try {
414
- // takeMeshes() MOVES the flat MeshCollection out (take-once); collectMeshes
415
- // frees it. None only on a second take we call it once.
416
- const collection = partitioned.takeMeshes();
417
- if (collection)
418
- collectMeshes(session, collection);
419
- const shard = partitioned.takeShard();
420
- if (shard && shard.byteLength > 0) {
421
- // wasm-bindgen Vec<u8> returns a fresh standalone Uint8Array (offset 0,
422
- // exact length), so .buffer is safe to transfer. Guard defensively: if
423
- // it is ever a view into a larger buffer, copy out the exact bytes
424
- // instead of transferring (and detaching) the parent buffer.
425
- const exact = shard.byteOffset === 0 && shard.byteLength === shard.buffer.byteLength
426
- ? shard.buffer
427
- : shard.slice().buffer;
428
- session.pendingInstancedShards.push(exact);
429
- }
430
- // Fold the instanced occurrence count into the streamed mesh total so the
431
- // viewer's "N meshes" reflects ALL rendered geometry (flat + instanced),
432
- // not just the flat MeshCollection (these occurrences left the flat path).
433
- session.pendingInstancedOccurrences += partitioned.instancedOccurrences ?? 0;
434
- }
435
- finally {
436
- // Free the now-empty PartitionedBatch wrapper (its contents were moved out).
437
- partitioned.free?.();
438
- }
547
+ if (typeof partitionedFromSourceFn === 'function' && instancingEnabled) {
548
+ consumePartitioned(session, partitionedFromSourceFn.call(ifcApi, jobs, session.unitScale, session.rtcX, session.rtcY, session.rtcZ, session.needsShift, session.voidKeys, session.voidCounts, session.voidValues, session.styleIds, session.styleColors, session.planeAngleToRadians, session.materialElementIds, session.materialColorCounts, session.materialColors));
549
+ }
550
+ else if (typeof batchFromSourceFn === 'function') {
551
+ collectMeshes(session, batchFromSourceFn.call(ifcApi, jobs, session.unitScale, session.rtcX, session.rtcY, session.rtcZ, session.needsShift, session.voidKeys, session.voidCounts, session.voidValues, session.styleIds, session.styleColors, session.planeAngleToRadians, session.materialElementIds, session.materialColorCounts, session.materialColors));
552
+ }
553
+ else if (typeof partitionedFn === 'function' && instancingEnabled) {
554
+ consumePartitioned(session, partitionedFn.call(ifcApi, session.localBytes, jobs, session.unitScale, session.rtcX, session.rtcY, session.rtcZ, session.needsShift, session.voidKeys, session.voidCounts, session.voidValues, session.styleIds, session.styleColors, session.planeAngleToRadians, session.materialElementIds, session.materialColorCounts, session.materialColors));
439
555
  }
440
556
  else {
441
557
  const collection = ifcApi.processGeometryBatch(session.localBytes, jobs, session.unitScale, session.rtcX, session.rtcY, session.rtcZ, session.needsShift, session.voidKeys, session.voidCounts, session.voidValues, session.styleIds, session.styleColors, session.planeAngleToRadians, session.materialElementIds, session.materialColorCounts, session.materialColors);
@@ -454,15 +570,34 @@ async function processBatch(session, jobs) {
454
570
  session.sabFallbackTaken = true;
455
571
  console.warn(`[Worker] processGeometryBatch rejected SAB view (${msg}), falling back to copy`);
456
572
  session.localBytes = materialiseSharedBytes(session.sharedBuffer);
573
+ // The source was installed (or attempted) from the SAB view; re-install it
574
+ // from the materialised copy on the retry so the *FromSource path reads the
575
+ // exact same bytes (this replaces any partial/failed SAB-view install).
576
+ cachedSourceBytes = session.localBytes;
577
+ sourceBytesApplied = false;
457
578
  await processBatch(session, jobs);
458
579
  return;
459
580
  }
460
581
  if (numJobs === 1) {
461
582
  console.warn(`[Worker] Skipping entity #${jobs[0]}: ${msg}`);
583
+ // Free the abandoned instance NOW rather than waiting for GC: it holds a
584
+ // file-sized source copy (setSourceBytes), and `ensureInit` immediately
585
+ // installs a fresh one — so a bare `api = null` would transiently double the
586
+ // source in this worker's (never-shrinking) wasm heap on exactly the
587
+ // memory-stressed models that trigger recovery. `free()` returns the block
588
+ // to the wasm allocator so the re-install reuses it.
589
+ try {
590
+ api?.free();
591
+ }
592
+ catch { /* wrapper may already be invalid */ }
462
593
  api = null;
463
594
  return;
464
595
  }
465
596
  console.warn(`[Worker] Batch of ${numJobs} entities failed (${msg}), splitting…`);
597
+ try {
598
+ api?.free();
599
+ }
600
+ catch { /* see the free() rationale above */ }
466
601
  api = null;
467
602
  const mid = Math.floor(numJobs / 2) * 3;
468
603
  await processBatch(session, jobs.slice(0, mid));
@@ -547,24 +682,24 @@ async function handleMessage(e) {
547
682
  // them as the streaming-prepass protocol. SAB-decode fallback: try the
548
683
  // zero-copy view first, fall back to a materialised copy only if
549
684
  // wasm-bindgen rejects the view.
550
- let view = viewSharedBytes(sharedBuffer);
551
- let triedFallback = false;
552
685
  const onEvent = (event) => {
553
686
  self.postMessage({ type: 'prepass-stream', event });
554
687
  };
688
+ const runPrepass = (bytes) => ifcApi.buildPrePassStreaming(bytes, onEvent, chunkSize, disabledTypes, skipTypeGeometry);
555
689
  try {
556
- ifcApi.buildPrePassStreaming(view, onEvent, chunkSize, disabledTypes, skipTypeGeometry);
690
+ // Zero-copy SAB view first; wasm-bindgen copies it into linear memory.
691
+ runPrepass(viewSharedBytes(sharedBuffer));
557
692
  }
558
693
  catch (err) {
559
694
  const msg = err instanceof Error ? err.message : String(err);
560
- if (!triedFallback) {
561
- triedFallback = true;
562
- console.warn(`[Worker] Streaming prepass with SAB view failed (${msg}), retrying with copy`);
563
- view = materialiseSharedBytes(sharedBuffer);
564
- ifcApi.buildPrePassStreaming(view, onEvent, chunkSize, disabledTypes, skipTypeGeometry);
695
+ console.warn(`[Worker] Streaming prepass with SAB view failed (${msg}), retrying with copy`);
696
+ try {
697
+ runPrepass(materialiseSharedBytes(sharedBuffer));
565
698
  }
566
- else {
567
- throw err;
699
+ catch (retryErr) {
700
+ // Both paths trapped — on a very large model this is the wasm32 4GB
701
+ // limit; surface an actionable error instead of `unreachable executed`.
702
+ throw largeFilePrepassError(retryErr, sharedBuffer.byteLength) ?? retryErr;
568
703
  }
569
704
  }
570
705
  return;
@@ -585,6 +720,10 @@ async function handleMessage(e) {
585
720
  applySkipSmallCutsToApi();
586
721
  entityIndexApplied = false;
587
722
  applyEntityIndexToApi();
723
+ prepassColumnsApplied = false;
724
+ applyPrepassColumnsToApi();
725
+ sourceBytesApplied = false;
726
+ applySourceBytesToApi();
588
727
  }
589
728
  else {
590
729
  await ensureInit();
@@ -599,6 +738,15 @@ async function handleMessage(e) {
599
738
  // size from a previous dense model).
600
739
  batchSizing = resolveBatchSizing(e.data.batchSizing);
601
740
  adaptiveBatchJobs = batchSizing.maxJobs;
741
+ // Fresh load: drop any source held for a PREVIOUS load so this load's bytes
742
+ // are re-installed on its first batch. The in-repo host spawns a fresh
743
+ // worker per load so this is belt-and-braces there, but a host that reuses a
744
+ // worker across loads without a `stream-end` between them would otherwise
745
+ // mesh the new load against the previous file's held bytes (a similar-size
746
+ // stale source decodes wrong entities). Resetting here makes that misuse
747
+ // fail to the byte-identical legacy path instead of silently meshing wrong.
748
+ sourceBytesApplied = false;
749
+ cachedSourceBytes = null;
602
750
  activeSession = startSession({
603
751
  sharedBuffer: e.data.sharedBuffer,
604
752
  unitScale: e.data.unitScale,
@@ -655,6 +803,23 @@ async function handleMessage(e) {
655
803
  cachedEntityIndex = { ids: e.data.ids, starts: e.data.starts, lengths: e.data.lengths };
656
804
  entityIndexApplied = false;
657
805
  applyEntityIndexToApi();
806
+ // Re-install any already-cached columns: setEntityIndex just cleared them.
807
+ prepassColumnsApplied = false;
808
+ applyPrepassColumnsToApi();
809
+ return;
810
+ }
811
+ if (e.data.type === 'set-prepass-columns') {
812
+ // Install the three per-content structures the pre-pass computed once
813
+ // (issue #957 / #563) so this worker's first batch skips its own
814
+ // full-file rebuild. Cache-and-replay like set-entity-index so a
815
+ // recovery re-init re-installs them. Applied AFTER the entity index
816
+ // (whose setter clears these caches); the pre-pass emits this event
817
+ // after `entity-index`, and the worker handles messages FIFO, so the
818
+ // ordering holds. Absent setters (older engine) ⇒ lazy rebuild fallback.
819
+ await ensureInit();
820
+ cachedPrepassColumns = e.data;
821
+ prepassColumnsApplied = false;
822
+ applyPrepassColumnsToApi();
658
823
  return;
659
824
  }
660
825
  if (e.data.type === 'set-merge-layers') {
@@ -708,6 +873,17 @@ async function handleMessage(e) {
708
873
  // arrives. The next load re-populates via its own set-entity-index.
709
874
  cachedEntityIndex = null;
710
875
  entityIndexApplied = false;
876
+ // Same rationale for the per-content pre-pass columns: drop them so a
877
+ // reused worker cannot replay a previous load's referenced-repmaps /
878
+ // material-layer index. The next load re-populates via set-prepass-columns.
879
+ cachedPrepassColumns = null;
880
+ prepassColumnsApplied = false;
881
+ // Release this worker's reference to the session source bytes and drop the
882
+ // applied flag. The wasm-side copy is reclaimed on worker termination (the
883
+ // pool is per-load) or overwritten by the next load's setSourceBytes on a
884
+ // reused instance; mirrors the entity index.
885
+ cachedSourceBytes = null;
886
+ sourceBytesApplied = false;
711
887
  return;
712
888
  }
713
889
  }
@@ -1 +1 @@
1
- {"version":3,"file":"geometry.worker.js","sourceRoot":"","sources":["../src/geometry.worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geometry.worker.js","sourceRoot":"","sources":["../src/geometry.worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Turn the bare wasm trap a huge model triggers in the streaming prepass into an
3
+ * actionable, human-readable error.
4
+ *
5
+ * The streaming prepass (`buildPrePassStreaming`) copies the whole file into
6
+ * wasm linear memory AND builds the entity index alongside it. On wasm32 the
7
+ * address space is capped at 4GB, so a ~3GB+ file cannot fit — the allocator
8
+ * aborts with a bare `unreachable executed` / `RuntimeError`. This maps that to
9
+ * a clear message pointing at the desktop app (which is 64-bit, no such limit).
10
+ */
11
+ /**
12
+ * Returns a clear error when `err` looks like a wasm OOM trap on a large file,
13
+ * else `null` (the caller then rethrows the original error unchanged).
14
+ *
15
+ * IMPORTANT: a Rust panic and a wasm OOM abort BOTH surface to JS as the SAME
16
+ * `RuntimeError: unreachable executed` — `console_error_panic_hook` prints to
17
+ * the console but does not re-type the exception, so the message alone can't
18
+ * prove OOM. This is intentionally a heuristic (large file + an OOM-shaped
19
+ * trap, and the caller only invokes it AFTER both the SAB-view and the full
20
+ * in-memory copy attempts trapped — overwhelmingly the 4GB ceiling). To make
21
+ * sure it never SILENTLY masks a genuine panic/assert on a large model, the
22
+ * mapped error preserves the original trap: verbatim in the message tail and as
23
+ * `.cause` for programmatic inspection.
24
+ */
25
+ export declare function largeFilePrepassError(err: unknown, byteLength: number): Error | null;
26
+ //# sourceMappingURL=huge-file-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"huge-file-error.d.ts","sourceRoot":"","sources":["../src/huge-file-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAYpF"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Turn the bare wasm trap a huge model triggers in the streaming prepass into an
3
+ * actionable, human-readable error.
4
+ *
5
+ * The streaming prepass (`buildPrePassStreaming`) copies the whole file into
6
+ * wasm linear memory AND builds the entity index alongside it. On wasm32 the
7
+ * address space is capped at 4GB, so a ~3GB+ file cannot fit — the allocator
8
+ * aborts with a bare `unreachable executed` / `RuntimeError`. This maps that to
9
+ * a clear message pointing at the desktop app (which is 64-bit, no such limit).
10
+ */
11
+ /** Below this the failure is treated as unrelated to size (caller rethrows). */
12
+ const HUGE_FILE_GB_THRESHOLD = 2.5;
13
+ /** wasm OOM / abort signatures across engines (V8, SpiderMonkey, JSC). */
14
+ const OOM_SIGNATURE = /unreachable|out of memory|memory access|RuntimeError|allocat|enlarge memory|grow memory|could not allocate/i;
15
+ /**
16
+ * Returns a clear error when `err` looks like a wasm OOM trap on a large file,
17
+ * else `null` (the caller then rethrows the original error unchanged).
18
+ *
19
+ * IMPORTANT: a Rust panic and a wasm OOM abort BOTH surface to JS as the SAME
20
+ * `RuntimeError: unreachable executed` — `console_error_panic_hook` prints to
21
+ * the console but does not re-type the exception, so the message alone can't
22
+ * prove OOM. This is intentionally a heuristic (large file + an OOM-shaped
23
+ * trap, and the caller only invokes it AFTER both the SAB-view and the full
24
+ * in-memory copy attempts trapped — overwhelmingly the 4GB ceiling). To make
25
+ * sure it never SILENTLY masks a genuine panic/assert on a large model, the
26
+ * mapped error preserves the original trap: verbatim in the message tail and as
27
+ * `.cause` for programmatic inspection.
28
+ */
29
+ export function largeFilePrepassError(err, byteLength) {
30
+ const sizeGB = byteLength / 1e9;
31
+ const raw = err instanceof Error ? err.message : String(err);
32
+ if (sizeGB >= HUGE_FILE_GB_THRESHOLD && OOM_SIGNATURE.test(raw)) {
33
+ return new Error(`This model is ${sizeGB.toFixed(1)} GB, which exceeds the browser's ~3 GB WebAssembly memory ` +
34
+ `ceiling (32-bit address space). Open it in the ifc-lite desktop app, which has no such limit. ` +
35
+ `(underlying wasm trap: ${raw})`, { cause: err });
36
+ }
37
+ return null;
38
+ }
39
+ //# sourceMappingURL=huge-file-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"huge-file-error.js","sourceRoot":"","sources":["../src/huge-file-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,gFAAgF;AAChF,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAEnC,0EAA0E;AAC1E,MAAM,aAAa,GACjB,6GAA6G,CAAC;AAEhH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY,EAAE,UAAkB;IACpE,MAAM,MAAM,GAAG,UAAU,GAAG,GAAG,CAAC;IAChC,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,IAAI,MAAM,IAAI,sBAAsB,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,KAAK,CACd,iBAAiB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,4DAA4D;YAC5F,gGAAgG;YAChG,0BAA0B,GAAG,GAAG,EAClC,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ifc-lite/geometry",
3
- "version": "3.1.0",
3
+ "version": "3.1.2",
4
4
  "description": "Geometry processing bridge for IFC-Lite - 1.9x faster than web-ifc",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -13,8 +13,8 @@
13
13
  }
14
14
  },
15
15
  "dependencies": {
16
- "@ifc-lite/data": "^2.3.0",
17
- "@ifc-lite/wasm": "^3.0.4"
16
+ "@ifc-lite/data": "^2.5.0",
17
+ "@ifc-lite/wasm": "^3.0.10"
18
18
  },
19
19
  "optionalDependencies": {
20
20
  "@tauri-apps/api": "^2.11.1"