@ifc-lite/geometry 4.0.1 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +6 -3
  2. package/dist/diagnostics.d.ts +42 -3
  3. package/dist/diagnostics.d.ts.map +1 -1
  4. package/dist/diagnostics.js +37 -8
  5. package/dist/diagnostics.js.map +1 -1
  6. package/dist/energy-export-bridge.d.ts +35 -0
  7. package/dist/energy-export-bridge.d.ts.map +1 -0
  8. package/dist/energy-export-bridge.js +31 -0
  9. package/dist/energy-export-bridge.js.map +1 -0
  10. package/dist/geometry-coordinate.d.ts.map +1 -1
  11. package/dist/geometry-coordinate.js +11 -0
  12. package/dist/geometry-coordinate.js.map +1 -1
  13. package/dist/geometry-parallel.d.ts +2 -1
  14. package/dist/geometry-parallel.d.ts.map +1 -1
  15. package/dist/geometry-parallel.js +29 -85
  16. package/dist/geometry-parallel.js.map +1 -1
  17. package/dist/geometry.worker.d.ts +7 -0
  18. package/dist/geometry.worker.d.ts.map +1 -1
  19. package/dist/geometry.worker.js +6 -5
  20. package/dist/geometry.worker.js.map +1 -1
  21. package/dist/hbjson-stats.d.ts +28 -0
  22. package/dist/hbjson-stats.d.ts.map +1 -0
  23. package/dist/hbjson-stats.js +5 -0
  24. package/dist/hbjson-stats.js.map +1 -0
  25. package/dist/ifc-lite-bridge.d.ts +11 -14
  26. package/dist/ifc-lite-bridge.d.ts.map +1 -1
  27. package/dist/ifc-lite-bridge.js +12 -16
  28. package/dist/ifc-lite-bridge.js.map +1 -1
  29. package/dist/index.d.ts +23 -20
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +56 -63
  32. package/dist/index.js.map +1 -1
  33. package/dist/packed-instanced-decoder.d.ts +20 -3
  34. package/dist/packed-instanced-decoder.d.ts.map +1 -1
  35. package/dist/packed-instanced-decoder.js +122 -17
  36. package/dist/packed-instanced-decoder.js.map +1 -1
  37. package/dist/shard-stitch.d.ts +110 -0
  38. package/dist/shard-stitch.d.ts.map +1 -0
  39. package/dist/shard-stitch.js +112 -0
  40. package/dist/shard-stitch.js.map +1 -0
  41. package/dist/symbolic-types.d.ts +89 -0
  42. package/dist/symbolic-types.d.ts.map +1 -0
  43. package/dist/symbolic-types.js +5 -0
  44. package/dist/symbolic-types.js.map +1 -0
  45. package/dist/types.d.ts +15 -77
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/types.js +7 -1
  48. package/dist/types.js.map +1 -1
  49. package/dist/wasm-asset-error.d.ts +17 -0
  50. package/dist/wasm-asset-error.d.ts.map +1 -1
  51. package/dist/wasm-asset-error.js +32 -0
  52. package/dist/wasm-asset-error.js.map +1 -1
  53. package/package.json +4 -4
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;GAGG;AAEH,6CAA6C;AAC7C,OAAO,EAAE,aAAa,EAAkI,MAAM,sBAAsB,CAAC;AACrL,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,iFAAiF;AACjF,OAAO,EACL,oBAAoB,EACpB,OAAO,GAUR,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,uFAAuF;AACvF,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAEjF,8EAA8E;AAC9E,6EAA6E;AAC7E,gFAAgF;AAChF,gFAAgF;AAChF,6EAA6E;AAC7E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9E,qBAAqB;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAkD,MAAM,mBAAmB,CAAC;AACxH,OAAO,EAAE,2BAA2B,EAAuB,MAAM,eAAe,CAAC;AACjF,2EAA2E;AAC3E,uEAAuE;AACvE,yEAAyE;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,4EAA4E;AAC5E,yEAAyE;AACzE,6EAA6E;AAC7E,OAAO,EACL,2BAA2B,EAAE,yBAAyB,EACtD,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,8CAA8C;AAC9C,OAAO,EACL,iBAAiB,EACjB,+BAA+B,EAC/B,+BAA+B,EAC/B,gCAAgC,GACjC,MAAM,wBAAwB,CAAC;AAChC,OAAO;AACL,wFAAwF;AACxF,uFAAuF;AACvF,0FAA0F;AAC1F,oBAAoB,GAIrB,MAAM,+BAA+B,CAAC;AAEvC,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAqE,MAAM,sBAAsB,CAAC;AAIxI,wBAAwB;AACxB,OAAO,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrH,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC;AA2DlD,IAAI,4BAA4B,GAAkB,IAAI,CAAC;AAEvD,SAAS,6BAA6B,CAAC,SAAiB;IACtD,IAAI,4BAA4B,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,qBAAqB,SAAS,uBAAuB,4BAA4B,qBAAqB;YACtG,gGAAgG,CACjG,CAAC;IACJ,CAAC;IACD,4BAA4B,GAAG,SAAS,CAAC;IACzC,OAAO,GAAG,EAAE;QACV,IAAI,4BAA4B,KAAK,SAAS,EAAE,CAAC;YAC/C,4BAA4B,GAAG,IAAI,CAAC;QACtC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AA8ED,4EAA4E;AAC5E,8CAA8C;AAE9C,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAC,+BAA+B,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;IAE3D,MAAM,GAAyB,IAAI,CAAC;IACpC,cAAc,GAA2B,IAAI,CAAC;IAC9C,aAAa,CAAgB;IAC7B,iBAAiB,CAAoB;IACrC,QAAQ,GAAY,KAAK,CAAC;IAC1B,eAAe,GAAiC,IAAI,CAAC;IACrD,WAAW,CAAU;IACrB,gBAAgB,CAAU;IAC1B,mBAAmB,CAA6B;IAChD,aAAa,CAAU;IAE/B,YAAY,UAAoC,EAAE;QAChD,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,YAAY,KAAK,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5D,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC;QAChD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,KAAK,KAAK,CAAC;QAC3D,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,IAAI,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,KAAK,IAAI,CAAC;QAEpD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAClC,uEAAuE;YACvE,qEAAqE;YACrE,6DAA6D;YAC7D,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7C,iEAAiE;YACjE,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC7D,oDAAoD;YACpD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,+CAA+C;YAC/C,IAAI,CAAC,cAAc,GAAG,MAAM,oBAAoB,EAAE,CAAC;YACnD,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,YAAY;YACZ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC3B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,oEAAoE;oBACpE,iEAAiE;oBACjE,mEAAmE;oBACnE,4BAA4B,CAAC,GAAG,CAAC,CAAC;oBAClC,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,MAAkB,EAAE,WAA8B;QAC9D,KAAK,WAAW,CAAC;QAEjB,IAAI,MAAkB,CAAC;QAEvB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzC,mCAAmC;YACnC,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACjE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACvB,OAAO,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,oDAAoD;YACpD,kDAAkD;YAClD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC;gBAClC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;YACD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACpE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;YACjC,yDAAyD;YACzD,MAAM,yBAAyB,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC/E,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;YAC3D,MAAM,cAAc,GAAmB;gBACrC,GAAG,yBAAyB;gBAC5B,gBAAgB;aACjB,CAAC;YACF,0BAA0B;YAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAE9D,kBAAkB;YAClB,OAAO;gBACL,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,cAAc,EAAE,YAAY,CAAC,cAAc;gBAC3C,aAAa,EAAE,YAAY,CAAC,aAAa;gBACzC,cAAc;aACf,CAAC;QACJ,CAAC;QAED,iDAAiD;QACjD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEpE,0BAA0B;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE9D,kBAAkB;QAClB,MAAM,MAAM,GAAmB;YAC7B,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,cAAc,EAAE,YAAY,CAAC,cAAc;YAC3C,aAAa,EAAE,YAAY,CAAC,aAAa;YACzC,cAAc;SACf,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,mBAAmB,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAC3F,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE3E,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,cAAc;SACf,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH;;;;;;OAMG;IACK,oBAAoB,CAC1B,OAAmC,EACnC,eAAqD;QAErD,MAAM,SAAS,GAAG,eAAe,IAAI,IAAI,CAAC;QAC1C,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3F,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;IACjC,CAAC;IAEO,uBAAuB,CAC7B,MAAkB,EAClB,eAAqD;QAErD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAA+B,CAAC;QAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAChE,IAAI,CAAC;YACH,MAAM,MAAM,GAAe,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;YAEzC,IAAI,OAAO,CAAC,IAAI,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClC,mEAAmE;gBACnE,MAAM,UAAU,GAAG,GAAG,CAAC,oBAAoB,CACzC,MAAM,EACN,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,SAAS,EACjB,GAAG,CAAC,CAAC,EACL,GAAG,CAAC,CAAC,EACL,GAAG,CAAC,CAAC,EACL,GAAG,CAAC,UAAU,EACd,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,mBAAmB,EAC3B,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CAAC,mBAAmB,EAC3B,OAAO,CAAC,cAAc,CACvB,CAAC;gBACF,sEAAsE;gBACtE,sEAAsE;gBACtE,mEAAmE;gBACnE,MAAM,KAAK,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;gBACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;YAED,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,SAAS,EAAE,CAAC;QAC7E,CAAC;gBAAS,CAAC;YACT,2EAA2E;YAC3E,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,uBAAuB,CAAC,MAAkB,EAAE,YAA+B;QACvF,OAAO,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,uDAAuD;IACvD,wEAAwE;IACxE,wEAAwE;IAEhE,KAAK,CAAC,CAAC,qBAAqB,CAClC,MAAkB,EAClB,WAAwC;IACxC,0EAA0E;IAC1E,4EAA4E;IAC5E,eAAqD;QAErD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAA+B,CAAC;QAC3E,MAAM,YAAY,GAAG,eAAe,IAAI,IAAI,CAAC;QAC7C,MAAM,GAAG,GAAG,YAAY;YACtB,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QACvG,MAAM,mBAAmB,GAAG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEnG,2EAA2E;QAC3E,mEAAmE;QACnE,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YAEzC,IAAI,OAAO,CAAC,SAAS,IAAI,YAAY,EAAE,CAAC;gBACtC,MAAM;oBACJ,IAAI,EAAE,WAAW;oBACjB,SAAS,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;oBAC3C,MAAM,EAAE,mBAAmB;iBAC5B,CAAC;YACJ,CAAC;YAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,SAAS,CAAC;YAC/D,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;gBAC7C,MAAM,cAAc,GAAG,oBAAoB,CACzC,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,EAC/C,gBAAgB,CACjB,CAAC;gBACF,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC;gBAC3D,OAAO;YACT,CAAC;YAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAC7D,+DAA+D;YAC/D,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC;YAC1F,IAAI,WAAW,GAAG,CAAC,CAAC;YAEpB,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,QAAQ,IAAI,kBAAkB,EAAE,CAAC;gBACpF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,kBAAkB,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC1E,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC9D,MAAM,UAAU,GAAG,GAAG,CAAC,oBAAoB,CACzC,MAAM,EACN,QAAQ,EACR,OAAO,CAAC,SAAS,EACjB,GAAG,CAAC,CAAC,EACL,GAAG,CAAC,CAAC,EACL,GAAG,CAAC,CAAC,EACL,mBAAmB,EACnB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,mBAAmB,EAC3B,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CAAC,mBAAmB,EAC3B,OAAO,CAAC,cAAc,CACvB,CAAC;gBAEF,MAAM,KAAK,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;gBACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;oBACrD,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;gBACvD,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;gBAC5B,MAAM,qBAAqB,GAAG,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,CAAC;gBAChF,MAAM,cAAc,GAAG,qBAAqB;oBAC1C,CAAC,CAAC,oBAAoB,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;oBAC/D,CAAC,CAAC,IAAI,CAAC;gBAET,MAAM;oBACJ,IAAI,EAAE,OAAO;oBACb,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,WAAW;oBACvB,cAAc,EAAE,cAAc,IAAI,SAAS;iBAC5C,CAAC;gBAEF,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACvD,CAAC;YAED,MAAM,cAAc,GAAG,oBAAoB,CACzC,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,EAC/C,gBAAgB,CACjB,CAAC;YACF,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;QAC1D,CAAC;gBAAS,CAAC;YACT,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,CAAC,gBAAgB,CACrB,MAAkB,EAClB,YAA+B,EAC/B,cAA2C,EAAE,EAC7C,eAAqD;QAErD,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ;YACxC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,6BAA6B,CAAC,kBAAkB,CAAC,CAAC;QAEtD,IAAI,CAAC;YACH,KAAK,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;QAC3F,CAAC;gBAAS,CAAC;YACT,oBAAoB,EAAE,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,CAAC,wBAAwB,CACrC,MAAkB,EAClB,YAA+B,EAC/B,cAA2C,EAAE,EAC7C,eAAqD;QAErD,uBAAuB;QACvB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAE/B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzC,2EAA2E;YAC3E,qEAAqE;YACrE,qEAAqE;YACrE,uEAAuE;YACvE,wEAAwE;YACxE,uEAAuE;YACvE,0EAA0E;YAC1E,yCAAyC;YACzC,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACrD,IAAI,CAAC;gBACH,KAAK,CAAC,CAAC,oBAAoB,CACzB,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,cAAe,CAAC,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3E,MAAM,CAAC,MAAM,GAAG,IAAI,EACpB,IAAI,CAAC,iBAAiB,EACtB,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,EAC5C;oBACE,QAAQ,EAAE,KAAK;oBACf,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,MAAM,CAAC;iBACnF,CACF,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,wEAAwE;gBACxE,qEAAqE;gBACrE,OAAO,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,mEAAmE;YACnE,uEAAuE;YACvE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YAE7D,sDAAsD;YACtD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YAErD,oEAAoE;YACpE,oEAAoE;YACpE,oEAAoE;YACpE,mEAAmE;YACnE,kEAAkE;YAClE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACjD,CAAC;YAED,KAAK,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,CAAC,oBAAoB,CACzB,IAAY,EACZ,iBAAyB,CAAC,EAC1B,QAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,4BAA4B,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QAED,KAAK,CAAC,CAAC,oBAAoB,CACzB,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,cAAe,CAAC,4BAA6B,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EACxF,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAC9C,IAAI,CAAC,iBAAiB,EACtB,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,CAC7C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,qBAAqB,CAC1B,QAAgB;QAEhB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;QACjG,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,6BAA6B,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACvF,CAAC;QAED,KAAK,CAAC,CAAC,oBAAoB,CACzB,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,cAAe,CAAC,6BAA8B,CAAC,QAAQ,EAAE,OAAO,CAAC,EACnF,CAAC,EACD,IAAI,CAAC,iBAAiB,EACtB,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,CAC7C,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,CAAC,eAAe,CACpB,MAAkB,EAClB,eAAqD;IACrD,qEAAqE;IACrE,WAA+B;IAC/B,2EAA2E;IAC3E,aAKS;IACT;;;;;;;OAOG;IACH,QAA4B;IAC5B;;;;;OAKG;IACH,mBAA4B;QAE5B,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAED,KAAK,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE;YACnF,aAAa;YACb,8DAA8D;YAC9D,iEAAiE;YACjE,8CAA8C;YAC9C,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,iEAAiE;YACjE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,uEAAuE;YACvE,gEAAgE;YAChE,qBAAqB,EAAE,IAAI,CAAC,MAAM,EAAE,wBAAwB,EAAE,IAAI,IAAI;YACtE,oEAAoE;YACpE,mEAAmE;YACnE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,yEAAyE;YACzE,0EAA0E;YAC1E,0EAA0E;YAC1E,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ;YACR,mBAAmB;SACpB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,CAAC,eAAe,CACpB,MAAkB,EAClB,UA6BI,EAAE;QAEN,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,cAAc;QAC9E,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;QAE5C,uBAAuB;QACvB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAE/B,uCAAuC;QACvC,IAAI,MAAM,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;YAClC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YAE7D,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YAEzC,IAAI,SAAqB,CAAC;YAC1B,IAAI,gBAAoC,CAAC;YAEzC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzC,wCAAwC;gBACxC,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;gBACzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACjE,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC1B,OAAO,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,oEAAoE;gBACpE,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;gBAChF,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;gBAC7B,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,CAAC;YAChD,CAAC;YAED,4BAA4B;YAC5B,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;YAC3D,MAAM,cAAc,GAAG,oBAAoB,CACzC,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,EAC/C,gBAAgB,CACjB,CAAC;YAEF,+CAA+C;YAC/C,MAAM;gBACJ,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,SAAS,CAAC,MAAM;gBAC5B,cAAc,EAAE,cAAc,IAAI,SAAS;aAC5C,CAAC;YAEF,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,qCAAqC;YACrC,MAAM,WAAW,GAAG,OAAO,iBAAiB,KAAK,WAAW;mBACvD,OAAO,MAAM,KAAK,WAAW;mBAC7B,OAAO,SAAS,KAAK,WAAW;mBAChC,CAAC,SAAS,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAE9C,IAAI,WAAW,EAAE,CAAC;gBAChB,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CACzB,MAAM,EACN,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,mBAAmB,CAC5B,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,oBAAoB,CAAC,YAA2B,2BAA2B;QACzE,IAAI,CAAC,MAAM,EAAE,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;;;OAUG;IACH,sBAAsB,CAAC,KAAiC;QACtD,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,yEAAyE;IACzE,sBAAsB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,iEAAiE;IACjE,oCAAoC;IAEpC;;;;;OAKG;IACH,4BAA4B,CAAC,MAAkB;QAC7C,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,mEAAmE;QACnE,gEAAgE;QAChE,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;OAOG;IACH,mBAAmB,CAAC,MAAkB;QACpC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,mEAAmE;QACnE,gEAAgE;QAChE,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,MAAkB;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;OAQG;IACH,aAAa,CAAC,MAAkB;QAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,uEAAuE;QACvE,2EAA2E;QAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,IAAI,GAAe,EAAE,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,CAAC,CAAC;oBAAE,SAAS;gBACjB,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;oBACtB,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;oBAClB,IAAI,CAAC,IAAI,CAAC;wBACR,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,GAAG,EAAE,CAAC,CAAC,GAAG;wBACV,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;wBACrC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;qBAC9B,CAAC,CAAC;gBACL,CAAC;wBAAS,CAAC;oBACT,CAAC,CAAC,IAAI,EAAE,CAAC;gBACX,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,eAAe,CAAC,MAAkB,EAAE,aAAqB,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,mEAAmE;QACnE,gEAAgE;QAChE,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;OAMG;IAEH,SAAS,CACP,MAAkB,EAClB,cAAc,GAAG,IAAI,EACrB,SAAsB,IAAI,WAAW,EAAE,EACvC,WAAwB,IAAI,WAAW,EAAE;QAEzC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE;YAAE,OAAO,IAAI,CAAC;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzE,CAAC;IAED;;;;OAIG;IACH,SAAS,CACP,MAAkB,EAClB,eAAe,GAAG,KAAK,EACvB,SAAsB,IAAI,WAAW,EAAE,EACvC,WAAwB,IAAI,WAAW,EAAE,EACzC,cAAc,GAAG,EAAE,EACnB,GAAG,GAAG,IAAI,EACV,QAAQ,GAAG,KAAK;QAEhB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE;YAAE,OAAO,IAAI,CAAC;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IACzG,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,MAAkB;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE;YAAE,OAAO,SAAS,CAAC;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS,CACP,MAAkB,EAClB,OAA6D,UAAU,EACvE,SAAS,GAAG,GAAG,EACf,iBAAiB,GAAG,KAAK;QAEzB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE;YAAE,OAAO,IAAI,CAAC;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAC3E,CAAC;IAED,UAAU,CACR,MAAkB,EAClB,MAAM,GAAG,KAAK,EACd,iBAAiB,GAAG,IAAI,EACxB,iBAAiB,GAAG,IAAI;QAExB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE;YAAE,OAAO,IAAI,CAAC;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;IACtF,CAAC;IAED,YAAY,CACV,MAAkB,EAClB,OAAO,GAAG,EAAE,EACZ,iBAAiB,GAAG,IAAI,EACxB,iBAAiB,GAAG,KAAK,EACzB,MAAM,GAAG,KAAK,EACd,WAAwB,IAAI,WAAW,EAAE;QAEzC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE;YAAE,OAAO,IAAI,CAAC;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3G,CAAC;IAED,UAAU,CACR,MAAkB,EAClB,MAAM,GAAG,EAAE,EACX,WAAwB,IAAI,WAAW,EAAE,EACzC,aAAa,GAAG,EAAE;QAElB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE;YAAE,OAAO,IAAI,CAAC;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IACzE,CAAC;IAED,UAAU,CAAC,MAAkB,EAAE,mBAAmB,GAAG,IAAI,EAAE,MAAM,GAAG,KAAK;QACvE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE;YAAE,OAAO,IAAI,CAAC;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAED,gFAAgF;IAChF,SAAS,CAAC,MAAkB;QAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE;YAAE,OAAO,IAAI,CAAC;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,uFAAuF;IACvF,YAAY,CAAC,OAAqB,EAAE,MAAM,GAAG,EAAE;QAC7C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE;YAAE,OAAO,IAAI,CAAC;QAC/C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,KAAK,IAAI,CAAC,CAAC,UAAU,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAClC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACnC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;OAQG;IACH,mBAAmB,CAAC,MAAkB,EAAE,eAAe,GAAG,KAAK,EAAE,GAAG,GAAG,IAAI,EAAE,QAAQ,GAAG,KAAK;QAC3F,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE;YAAE,OAAO,IAAI,CAAC;QAC/C,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;YAC7B,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAC7B,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3B,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACzC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACnG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAChC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5E,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC;YACjC,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;YACzB,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,CACpC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,CACpH,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,cAAc,CACZ,MAAkB,EAClB,MAAmC,EACnC,UAAqF,EAAE;QAEvF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE;YAAE,OAAO,IAAI,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,qBAAqB,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CACxG,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACzD,MAAM,MAAM,GAAyB,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACnE,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QAExC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;YAC7B,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAC7B,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3B,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACzC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAChC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;gBACnD,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;gBAChC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;YACD,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;YAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC3C,mEAAmE;YACnE,uDAAuD;YACvD,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3F,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;YACzB,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACzB,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CACpC,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAChF,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC,EAAE,IAAI,CAClF,CAAC;QAEF,wEAAwE;QACxE,sEAAsE;QACtE,+DAA+D;QAC/D,IAAI,CAAC;YACH,oEAAoE;YACpE,mEAAmE;YACnE,qEAAqE;YACrE,oEAAoE;YACpE,4BAA4B;YAC5B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;YAC/C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBACxC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM;oBAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACpF,CAAC;YACD,MAAM,MAAM,GAAgB,GAAG,CAAC,UAAU,CAAC;YAC3C,MAAM,SAAS,GAAe,GAAG,CAAC,MAAM,CAAC;YACzC,MAAM,eAAe,GAAgB,GAAG,CAAC,YAAY,CAAC;YACtD,MAAM,cAAc,GAAgB,GAAG,CAAC,WAAW,CAAC;YACpD,MAAM,eAAe,GAAiB,GAAG,CAAC,eAAe,CAAC;YAC1D,MAAM,aAAa,GAAiB,GAAG,CAAC,aAAa,CAAC;YACtD,MAAM,aAAa,GAAgB,GAAG,CAAC,aAAa,CAAC;YACrD,MAAM,aAAa,GAAiB,GAAG,CAAC,aAAa,CAAC;YACtD,MAAM,cAAc,GAAiB,GAAG,CAAC,cAAc,CAAC;YACxD,MAAM,YAAY,GAAgB,GAAG,CAAC,YAAY,CAAC;YACnD,MAAM,UAAU,GAAgB,GAAG,CAAC,UAAU,CAAC;YAC/C,MAAM,SAAS,GAAgB,GAAG,CAAC,SAAS,CAAC;YAC7C,MAAM,eAAe,GAAgB,GAAG,CAAC,eAAe,CAAC;YAEzD,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBACjC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtC,MAAM,MAAM,GAAa;oBACvB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;oBACpB,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,yBAAyB;oBAClD,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC;oBACnD,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC;oBAC/C,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC;oBAC/C,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBACvC,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAClF,aAAa,EAAE,CAAC;oBAChB,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjE,CAAC;gBACF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACnB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;oBACpB,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;oBACnB,MAAM;oBACN,cAAc,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC;oBACvD,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC;oBACnD,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;oBACzB,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;oBACvB,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC;iBACpC,CAAC,CAAC;gBACH,GAAG,IAAI,MAAM,CAAC;gBACd,GAAG,IAAI,MAAM,CAAC;YAChB,CAAC;YAED,MAAM,UAAU,GAAgB,GAAG,CAAC,UAAU,CAAC;YAC/C,MAAM,cAAc,GAAa,GAAG,CAAC,cAAc,CAAC;YACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;YACpG,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,SAAS,CACP,GAAe,EACf,QAAgB,EAChB,SAAiB,EACjB,QAAgB,EAChB,aAAiC,EACjC,aAAiC,EACjC,IAAI,GAAG,WAAW;QAElB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE;YAAE,OAAO,IAAI,CAAC;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IACvG,CAAC;IAED;;;;;;;;;;;OAWG;IACH,mBAAmB,CACjB,MAAkB,EAClB,QAAgB,EAChB,SAAiB,EACjB,QAAgB,EAChB,aAAiC,EACjC,aAAiC,EACjC,IAAI,GAAG,WAAW,EAClB,YAA8B;QAE9B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE;YAAE,OAAO,IAAI,CAAC;QAC/C,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;YAC7B,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAC7B,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3B,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACzC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACnG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAChC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5E,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;YACzB,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,CACpC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EACvE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,CAChF,CAAC;IACJ,CAAC;IAED,6FAA6F;IAC7F,YAAY,CAAC,MAAkB,EAAE,IAAY;QAC3C,OAAO,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtF,CAAC;IAED,sFAAsF;IACtF,qBAAqB,CAAC,MAAkB,EAAE,IAAY;QACpD,OAAO,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/F,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,YAAY,CAAC,MAAkB,EAAE,IAAY;QAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO;QACL,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC"}
@@ -1,7 +1,10 @@
1
- /** `"IFNS"` little-endian — must match `INSTANCED_MAGIC` in instancing.rs. */
1
+ /** `"IFNS"` little-endian — must match `INSTANCED_MAGIC` in wire.rs. */
2
2
  export declare const INSTANCED_SHARD_MAGIC = 1229344339;
3
- /** Must match `INSTANCED_VERSION` in instancing.rs. */
4
- export declare const INSTANCED_SHARD_VERSION = 1;
3
+ /** The HIGHEST version the Rust encoder writes — for a record carrying the
4
+ * trailing itemId; must match `INSTANCED_VERSION` in wire.rs. The encoder still
5
+ * writes 1 for a base-record shard. Neither is a ceiling on what this decoder
6
+ * reads — see the versioning note above. */
7
+ export declare const INSTANCED_SHARD_VERSION = 2;
5
8
  /** A unique geometry decoded from an instanced shard (uploaded once). */
6
9
  export interface DecodedInstancedTemplate {
7
10
  positions: Float32Array;
@@ -18,11 +21,25 @@ export interface DecodedInstance {
18
21
  color: [number, number, number, number];
19
22
  /** Row-major mat4 mapping the template's world geometry onto this occurrence. */
20
23
  transform: Float32Array;
24
+ /** The `IfcRepresentationItem` this occurrence's geometry was tessellated
25
+ * from, so a host can drill from a rendered instanced piece back to the
26
+ * entity in the IFC source. Undefined when the shard's stride declares no
27
+ * trailing item-id field (a v1 shard, or a model whose producer named no
28
+ * item at all) and when this record's own id is the `0` sentinel. */
29
+ itemId?: number;
21
30
  }
22
31
  /** A decoded instanced shard. */
23
32
  export interface DecodedInstancedShard {
24
33
  templates: DecodedInstancedTemplate[];
25
34
  instances: DecodedInstance[];
35
+ /** Whether the declared instance stride reaches the trailing itemId field.
36
+ * REQUIRED rather than optional on purpose: it is what a consumer keys the
37
+ * per-occurrence itemId allocation off (`prepareInstancedRender`), and an
38
+ * omitted flag would read as "no ids" and silently drop them — the absence-
39
+ * looks-like-success shape this whole change is about. The encoder derives
40
+ * it from the data, so `false` means no occurrence in the shard names an
41
+ * item, not merely that this build cannot see them. */
42
+ carriesItemIds: boolean;
26
43
  }
27
44
  /** Whether a payload's leading magic marks it as an instanced ("IFNS") shard. */
28
45
  export declare function isInstancedShard(payload: unknown): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"packed-instanced-decoder.d.ts","sourceRoot":"","sources":["../src/packed-instanced-decoder.ts"],"names":[],"mappings":"AA4BA,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,aAAc,CAAC;AACjD,uDAAuD;AACvD,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAMzC,yEAAyE;AACzE,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,YAAY,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC;IACrB,uFAAuF;IACvF,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,4CAA4C;AAC5C,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,iFAAiF;IACjF,SAAS,EAAE,YAAY,CAAC;CACzB;AAED,iCAAiC;AACjC,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAQ1D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,qBAAqB,CA2F5E"}
1
+ {"version":3,"file":"packed-instanced-decoder.d.ts","sourceRoot":"","sources":["../src/packed-instanced-decoder.ts"],"names":[],"mappings":"AAyEA,wEAAwE;AACxE,eAAO,MAAM,qBAAqB,aAAc,CAAC;AACjD;;;6CAG6C;AAC7C,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAazC,yEAAyE;AACzE,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,YAAY,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC;IACrB,uFAAuF;IACvF,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,4CAA4C;AAC5C,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,iFAAiF;IACjF,SAAS,EAAE,YAAY,CAAC;IACxB;;;;0EAIsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,iCAAiC;AACjC,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B;;;;;;4DAMwD;IACxD,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAQ1D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,qBAAqB,CAkJ5E"}
@@ -4,32 +4,87 @@
4
4
  /**
5
5
  * Binary format parsing for INSTANCED geometry shards ("IFNS").
6
6
  *
7
- * Mirrors the Rust encoder in `rust/geometry/src/instancing.rs`
8
- * (`encode_instanced` / `decode_instanced`). Carries each UNIQUE template
9
- * geometry once + a per-occurrence instance row (transform + entity id + colour),
10
- * so the renderer can upload a template once and `drawIndexed(.., instanceCount)`.
7
+ * Mirrors the Rust encoder in `rust/geometry/src/instancing/wire.rs`
8
+ * (`encode_refs` / `decode_instanced`); the canonical spec these two statements
9
+ * of the format both answer to lives at `rust/geometry/src/instancing/mod.rs`.
10
+ * Carries each UNIQUE template geometry once + a per-occurrence instance row
11
+ * (transform + entity id + colour), so the renderer can upload a template once
12
+ * and `drawIndexed(.., instanceCount)`.
11
13
  *
12
14
  * Layout (little-endian):
13
15
  * Header (8 × uint32): magic, version, templateCount, instanceCount,
14
- * positionsLen, normalsLen, indicesLen, reserved
16
+ * positionsLen, normalsLen, indicesLen,
17
+ * instanceStrideBytes
15
18
  * Template table (templateCount × 48 bytes): posOff, posLen, nrmOff, nrmLen,
16
19
  * idxOff, idxLen (6 × uint32) then originX, originY,
17
20
  * originZ (3 × float64)
18
- * Instance table (instanceCount × 88 bytes): templateIndex (uint32),
19
- * entityId (uint32), colour (4 × float32),
20
- * transform (16 × float32, row-major)
21
+ * Instance table (instanceCount × instanceStrideBytes): the 88-byte BASE
22
+ * record — templateIndex (uint32), entityId (uint32),
23
+ * colour (4 × float32), transform (16 × float32,
24
+ * row-major) — then whatever trailing fields the stride
25
+ * makes room for. Trailing field 1 is itemId (uint32) at
26
+ * offset 88, so a shard carrying it declares a stride
27
+ * of 92.
21
28
  * Data: positions (Float32 × positionsLen), normals (Float32 × normalsLen),
22
29
  * indices (Uint32 × indicesLen). Offsets/lengths are ELEMENT counts;
23
30
  * indices stay local to each template's vertex range (0-based).
31
+ *
32
+ * VERSIONING: APPEND-ONLY FIELDS AND A STRIDE THE READER READS.
33
+ *
34
+ * Per-instance fields are APPEND-ONLY, in a fixed canonical order. A field is
35
+ * never removed and never reordered, so a record is always the 88-byte base
36
+ * followed by trailing fields 1..n in that order. Header word 7 carries the
37
+ * instance record STRIDE IN BYTES, which is what tells a reader how many of
38
+ * those trailing fields the shard in front of it actually has: it decodes the
39
+ * ones it knows and SKIPS the rest by stepping the stride.
40
+ *
41
+ * Word 7 was a literal `0` read by nobody in v1, and #2985 first spent it as a
42
+ * FLAGS word. That was wrong. A decoder must REJECT a flag bit it does not
43
+ * know, because an unknown bit changes the stride unknowably and a mis-strided
44
+ * read yields plausible garbage rather than an error — so flags buy no forward
45
+ * compatibility at all over the version word they duplicate. A stride the
46
+ * decoder READS buys exactly that: a v3 shard that appends a field is still
47
+ * readable here, at every known field's fixed offset, stepping over the tail.
48
+ *
49
+ * So the version gate is PERMISSIVE where it can be:
50
+ * - version 1 (or word 7 === 0): stride 88, no trailing fields. v1 wrote a
51
+ * literal 0 there and 0 is not a legal stride, so both readings agree. That
52
+ * is what lets a v1 shard already persisted verbatim in a cache
53
+ * (`@ifc-lite/cache`'s InstancedShards section stores the raw bytes and does
54
+ * not re-encode) keep loading. It is also what the Rust encoder writes when
55
+ * no occurrence names an item, so a base-record shard from THIS build is
56
+ * byte-identical to a v1 one and an older build can still read it.
57
+ * - any version >= 2 whose stride is READABLE and VALID (>= the 88-byte base,
58
+ * and small enough that the instance table it implies fits the buffer):
59
+ * decode the trailing fields this build knows, ignore the rest. A stride
60
+ * must also be 4-BYTE ALIGNED: every field on this wire is 4 bytes, and the
61
+ * pooled data views below cannot be constructed at an unaligned offset.
62
+ * Version 0 is refused — it is not a version.
63
+ *
64
+ * Permissiveness here does NOT make the cache key safe in the other direction.
65
+ * A bundle from before #2985 refuses any version but 1 outright, so
66
+ * `@ifc-lite/cache`'s FORMAT_VERSION moves 15 → 16 with this change to stop such
67
+ * a bundle matching a key whose stored shards are v2 and silently dropping every
68
+ * instanced occurrence.
24
69
  */
25
70
  import { toArrayBuffer } from './packed-geometry-decoder.js';
26
- /** `"IFNS"` little-endian — must match `INSTANCED_MAGIC` in instancing.rs. */
71
+ /** `"IFNS"` little-endian — must match `INSTANCED_MAGIC` in wire.rs. */
27
72
  export const INSTANCED_SHARD_MAGIC = 0x4946_4e53;
28
- /** Must match `INSTANCED_VERSION` in instancing.rs. */
29
- export const INSTANCED_SHARD_VERSION = 1;
73
+ /** The HIGHEST version the Rust encoder writes — for a record carrying the
74
+ * trailing itemId; must match `INSTANCED_VERSION` in wire.rs. The encoder still
75
+ * writes 1 for a base-record shard. Neither is a ceiling on what this decoder
76
+ * reads — see the versioning note above. */
77
+ export const INSTANCED_SHARD_VERSION = 2;
30
78
  const HEADER_WORDS = 8;
31
79
  const TEMPLATE_RECORD_BYTES = 48;
32
- const INSTANCE_RECORD_BYTES = 88;
80
+ /** Instance record bytes BEFORE any trailing field: templateIndex(4) +
81
+ * entityId(4) + colour(16) + transform(64). Also a v1 shard's stride, and the
82
+ * floor every declared stride is validated against. */
83
+ const INSTANCE_RECORD_BASE_BYTES = 88;
84
+ /** Byte offset of trailing field 1, itemId, within an instance record. */
85
+ const INSTANCE_ITEM_ID_OFFSET = INSTANCE_RECORD_BASE_BYTES;
86
+ /** Stride of a record carrying trailing field 1 (itemId) and nothing after it. */
87
+ const INSTANCE_RECORD_ITEM_ID_BYTES = INSTANCE_ITEM_ID_OFFSET + 4;
33
88
  /** Whether a payload's leading magic marks it as an instanced ("IFNS") shard. */
34
89
  export function isInstancedShard(payload) {
35
90
  try {
@@ -56,12 +111,44 @@ export function decodeInstancedShard(payload) {
56
111
  if (magic !== INSTANCED_SHARD_MAGIC) {
57
112
  throw new Error('Invalid instanced shard magic');
58
113
  }
59
- if (version !== INSTANCED_SHARD_VERSION) {
114
+ // PERMISSIVE on version, STRICT on stride. Refusing a version above the one
115
+ // the encoder writes would refuse exactly the shards forward compatibility is
116
+ // for: a v3 that APPENDS a trailing field is fully readable here, because
117
+ // every field this build knows sits at a fixed offset in the base record and
118
+ // the declared stride steps over the tail it does not know. It would also
119
+ // have refused the v1 shards already sitting in caches, which store IFNS
120
+ // bytes verbatim rather than re-encoding. Version 0 is not a version.
121
+ if (version === 0) {
60
122
  throw new Error(`Unsupported instanced shard version: ${version}`);
61
123
  }
124
+ // Word 7 is `reserved` in v1 and the instance record STRIDE from v2 on. v1
125
+ // wrote a literal 0 there, which is not a legal stride, so both readings of a
126
+ // v1 shard land on the 88-byte base record.
127
+ const declaredStride = version >= 2 ? header[7] : 0;
128
+ const instanceRecordStride = declaredStride === 0 ? INSTANCE_RECORD_BASE_BYTES : declaredStride;
129
+ // A stride below the base is not a shorter record, it is a corrupt header:
130
+ // the base fields are not optional. Reading at it would slice each record out
131
+ // of its predecessor's transform and yield plausible garbage.
132
+ if (instanceRecordStride < INSTANCE_RECORD_BASE_BYTES) {
133
+ throw new Error(`Instanced shard instance stride ${instanceRecordStride} is below the ${INSTANCE_RECORD_BASE_BYTES}-byte base record`);
134
+ }
135
+ // An UNALIGNED stride is refused for the same reason, and the Rust decoder
136
+ // refuses it too: every field on this wire is 4 bytes, so a record boundary
137
+ // off a 4-byte multiple names no field. This side cannot even attempt one —
138
+ // the data pools below are Float32Array/Uint32Array views onto the shard
139
+ // buffer at `dataOffset`, and an odd stride pushes that offset off 4 (stride
140
+ // 90 with one template and one instance lands on 170), where the view
141
+ // constructor throws an opaque RangeError instead of this format error. Rust
142
+ // reads the identical bytes through byte slices and used to accept them, so
143
+ // without this the two statements of the format disagreed on exactly the
144
+ // shards the permissive-version rule promises to read.
145
+ if (instanceRecordStride % 4 !== 0) {
146
+ throw new Error(`Instanced shard instance stride ${instanceRecordStride} is not a multiple of 4`);
147
+ }
148
+ const carriesItemIds = instanceRecordStride >= INSTANCE_RECORD_ITEM_ID_BYTES;
62
149
  const templateTableOffset = HEADER_WORDS * 4;
63
150
  const instanceTableOffset = templateTableOffset + templateCount * TEMPLATE_RECORD_BYTES;
64
- const dataOffset = instanceTableOffset + instanceCount * INSTANCE_RECORD_BYTES;
151
+ const dataOffset = instanceTableOffset + instanceCount * instanceRecordStride;
65
152
  const positionsByteOffset = dataOffset;
66
153
  const normalsByteOffset = positionsByteOffset + positionsLen * 4;
67
154
  const indicesByteOffset = normalsByteOffset + normalsLen * 4;
@@ -105,7 +192,7 @@ export function decodeInstancedShard(payload) {
105
192
  }
106
193
  const instances = [];
107
194
  for (let i = 0; i < instanceCount; i += 1) {
108
- const base = instanceTableOffset + i * INSTANCE_RECORD_BYTES;
195
+ const base = instanceTableOffset + i * instanceRecordStride;
109
196
  const templateIndex = view.getUint32(base, true);
110
197
  if (templateIndex >= templates.length) {
111
198
  throw new Error(`Instanced shard instance ${i} references missing template ${templateIndex} (have ${templates.length})`);
@@ -121,8 +208,26 @@ export function decodeInstancedShard(payload) {
121
208
  for (let k = 0; k < 16; k += 1) {
122
209
  transform[k] = view.getFloat32(base + 24 + k * 4, true);
123
210
  }
124
- instances.push({ templateIndex, entityId, color, transform });
211
+ // Trailing field 1, present only when the stride makes room for it; a
212
+ // stride that reaches further still carries fields appended by a newer
213
+ // producer, skipped rather than refused. 0 is the producer's "no item"
214
+ // sentinel (STEP names start at #1), and a shard without the field has none
215
+ // at all — both surface as absent, so a consumer cannot tell an absent id
216
+ // apart from a fabricated #0.
217
+ const itemId = carriesItemIds ? view.getUint32(base + INSTANCE_ITEM_ID_OFFSET, true) : 0;
218
+ // One object SHAPE for every instance. A conditional spread allocates a
219
+ // throwaway object per occurrence and gives DecodedInstance two hidden
220
+ // classes, which the consumer then reads in a tight loop
221
+ // (instanced-render.ts). `undefined` satisfies `itemId?: number` and
222
+ // allocates nothing.
223
+ instances.push({
224
+ templateIndex,
225
+ entityId,
226
+ color,
227
+ transform,
228
+ itemId: itemId !== 0 ? itemId : undefined,
229
+ });
125
230
  }
126
- return { templates, instances };
231
+ return { templates, instances, carriesItemIds };
127
232
  }
128
233
  //# sourceMappingURL=packed-instanced-decoder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"packed-instanced-decoder.js","sourceRoot":"","sources":["../src/packed-instanced-decoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"packed-instanced-decoder.js","sourceRoot":"","sources":["../src/packed-instanced-decoder.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,wEAAwE;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,CAAC;AACjD;;;6CAG6C;AAC7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC;;wDAEwD;AACxD,MAAM,0BAA0B,GAAG,EAAE,CAAC;AACtC,0EAA0E;AAC1E,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAC3D,kFAAkF;AAClF,MAAM,6BAA6B,GAAG,uBAAuB,GAAG,CAAC,CAAC;AAyClE,iFAAiF;AACjF,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QACxC,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,qBAAqB,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,UAAU,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;IACxD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,CAAC,GACxF,MAAM,CAAC;IACT,IAAI,KAAK,KAAK,qBAAqB,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IACD,4EAA4E;IAC5E,8EAA8E;IAC9E,0EAA0E;IAC1E,6EAA6E;IAC7E,0EAA0E;IAC1E,yEAAyE;IACzE,sEAAsE;IACtE,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,wCAAwC,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,2EAA2E;IAC3E,8EAA8E;IAC9E,4CAA4C;IAC5C,MAAM,cAAc,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,oBAAoB,GACxB,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,cAAc,CAAC;IACrE,2EAA2E;IAC3E,8EAA8E;IAC9E,8DAA8D;IAC9D,IAAI,oBAAoB,GAAG,0BAA0B,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,mCAAmC,oBAAoB,iBAAiB,0BAA0B,mBAAmB,CACtH,CAAC;IACJ,CAAC;IACD,2EAA2E;IAC3E,4EAA4E;IAC5E,4EAA4E;IAC5E,yEAAyE;IACzE,6EAA6E;IAC7E,sEAAsE;IACtE,6EAA6E;IAC7E,4EAA4E;IAC5E,yEAAyE;IACzE,uDAAuD;IACvD,IAAI,oBAAoB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,mCAAmC,oBAAoB,yBAAyB,CACjF,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAG,oBAAoB,IAAI,6BAA6B,CAAC;IAE7E,MAAM,mBAAmB,GAAG,YAAY,GAAG,CAAC,CAAC;IAC7C,MAAM,mBAAmB,GAAG,mBAAmB,GAAG,aAAa,GAAG,qBAAqB,CAAC;IACxF,MAAM,UAAU,GAAG,mBAAmB,GAAG,aAAa,GAAG,oBAAoB,CAAC;IAC9E,MAAM,mBAAmB,GAAG,UAAU,CAAC;IACvC,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,YAAY,GAAG,CAAC,CAAC;IACjE,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,UAAU,GAAG,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,iBAAiB,GAAG,UAAU,GAAG,CAAC,CAAC;IACzD,IAAI,MAAM,CAAC,UAAU,GAAG,aAAa,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACb,mCAAmC,MAAM,CAAC,UAAU,UAAU,aAAa,EAAE,CAC9E,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,mBAAmB,EAAE,YAAY,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAEvE,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,SAAS,GAA+B,EAAE,CAAC;IACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,mBAAmB,GAAG,CAAC,GAAG,qBAAqB,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,MAAM,GAA6B;YACvC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC;SACjC,CAAC;QACF,6EAA6E;QAC7E,sEAAsE;QACtE,+DAA+D;QAC/D,IACE,MAAM,GAAG,MAAM,GAAG,YAAY;YAC9B,MAAM,GAAG,MAAM,GAAG,UAAU;YAC5B,MAAM,GAAG,MAAM,GAAG,UAAU,EAC5B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,4BAA4B,CAAC,CAAC;QAC7E,CAAC;QACD,SAAS,CAAC,IAAI,CAAC;YACb,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;YACtD,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;YAClD,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;YAClD,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GAAsB,EAAE,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,mBAAmB,GAAG,CAAC,GAAG,oBAAoB,CAAC;QAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,aAAa,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,4BAA4B,CAAC,gCAAgC,aAAa,UAAU,SAAS,CAAC,MAAM,GAAG,CACxG,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,KAAK,GAAqC;YAC9C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC;SACjC,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;QACD,sEAAsE;QACtE,uEAAuE;QACvE,uEAAuE;QACvE,4EAA4E;QAC5E,0EAA0E;QAC1E,8BAA8B;QAC9B,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,wEAAwE;QACxE,uEAAuE;QACvE,yDAAyD;QACzD,qEAAqE;QACrE,qBAAqB;QACrB,SAAS,CAAC,IAAI,CAAC;YACb,aAAa;YACb,QAAQ;YACR,KAAK;YACL,SAAS;YACT,MAAM,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;AAClD,CAAC"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * The shard-stitch protocol: N speculative shard scans in, one file-ordered
3
+ * entity index out — plus the count of records the load actually dropped.
4
+ *
5
+ * Split out of `geometry-parallel.ts` (#3395) because the attribution rule
6
+ * below is the whole reason a refusal count on this path can be trusted, and
7
+ * it is worth being able to test on plain arrays rather than through a worker
8
+ * pool. `geometry-parallel.ts` owns the transport; this owns the protocol.
9
+ */
10
+ /** One shard's returned columns + handoff (see `scanEntityIndexShard`). */
11
+ export interface ShardColumns {
12
+ ids: Uint32Array;
13
+ starts: Uint32Array;
14
+ lengths: Uint32Array;
15
+ /** Per-record prepass class (PREPASS_CLASS_*; 4 = IfcStyledItem). */
16
+ classes: Uint8Array;
17
+ /** Global start of the next shard's first real entity, or -1 at EOF. */
18
+ handoff: number;
19
+ /**
20
+ * Global start byte of each record this shard refused for an express id
21
+ * above the u32 bound (#3395) — offsets, not a count, because a shard cannot
22
+ * tell whether its own refusals are real. It starts at an arbitrary byte, so
23
+ * one landing inside a quoted value reads a string literal shaped like
24
+ * `#4294967297=IFCWALL(` as a record and refuses it, on a file that declares
25
+ * nothing oversized. `stitchShards` attributes them (#3430).
26
+ */
27
+ oversizedIdStarts: Uint32Array;
28
+ /**
29
+ * Global start byte of the record this shard's scanner stopped at because a
30
+ * quoted string or a block comment opened and never closed (#3790), or
31
+ * `undefined` when the shard reported none.
32
+ *
33
+ * An offset rather than a flag, for the same reason `oversizedIdStarts`
34
+ * carries offsets: a shard begins at an arbitrary byte, so one starting
35
+ * inside a quoted value runs off the end of a string the file closes
36
+ * perfectly well. Only `stitchShards` — which knows where this shard's
37
+ * retained region begins — can tell that artefact from a real stop.
38
+ *
39
+ * Distinguishing it from a clean end matters because BOTH arrive as
40
+ * `handoff === -1`: the merge loop breaks either way, dropping every later
41
+ * shard's records, and before this field there was no way to say which
42
+ * happened.
43
+ *
44
+ * TODO(#3699): no producer sets this yet. `scan_shard_classified_with_refusals`
45
+ * (rust/processing/src/shard_classes.rs) has no malformed-stop offset to
46
+ * return until #3699 lands, so on `main` today it is always `undefined` and
47
+ * the stitch reports 0 — which is "nothing reported", not proof of a clean
48
+ * scan.
49
+ */
50
+ malformedStart?: number;
51
+ }
52
+ /** What one stitch produced. See `stitchShards` below. */
53
+ export interface StitchedShards {
54
+ ids: Uint32Array;
55
+ starts: Uint32Array;
56
+ lengths: Uint32Array;
57
+ classes: Uint8Array;
58
+ /**
59
+ * Records the load dropped for an express id above the u32 bound, counted
60
+ * ONLY where the stitch retained the bytes that produced them.
61
+ *
62
+ * Not the per-shard sum. `expectedStart` is a real entity start validated by
63
+ * the previous shard, and a scanner's position only advances, so every
64
+ * refusal a shard recorded below it came from the speculative prefix this
65
+ * stitch just dropped — text parsed out of a quoted value, on a file that may
66
+ * declare nothing oversized at all. Summing would warn the user that a file
67
+ * which is fine loaded short (#3430).
68
+ *
69
+ * What it does NOT bound: a `#<digits>=` inside a quoted value that a SERIAL
70
+ * scan would also mis-read still counts, because it counts there too. The
71
+ * target is parity with the serial path, not quote-aware parsing.
72
+ */
73
+ oversizedIdCount: number;
74
+ /**
75
+ * `1` when the stitched scan stopped at a malformed record rather than at
76
+ * the end of the entities (#3790), `undefined` when no shard reported a
77
+ * stop. Never a density: a scan that stops has no reliable place to resume,
78
+ * so every record after it is missing from these columns too — the same
79
+ * contract `EntityScanResult.malformedRecordCount` states.
80
+ *
81
+ * `undefined` rather than `0` because a shard has no way to SAY it ran
82
+ * clean. `ShardColumns.malformedStart` can only report a stop; its absence
83
+ * is a producer that reported nothing, which is not the claim `0` makes.
84
+ * Flattening it here would make "nothing reported" and "scanned clean"
85
+ * identical for every consumer downstream, which is the shape of the bug
86
+ * this issue is about. A real `0` becomes possible when #3699 gives a shard
87
+ * a way to say it reached the end without stopping.
88
+ *
89
+ * Attributed, not OR-ed across shards, for the reason spelled out on
90
+ * `ShardColumns.malformedStart`: a shard that starts inside a quoted value
91
+ * reports a stop the file does not contain, and OR-ing would warn that a
92
+ * clean file loaded short.
93
+ */
94
+ malformedRecordCount: number | undefined;
95
+ }
96
+ /**
97
+ * SPIKE: stitch N speculative shard scans into the full entity index —
98
+ * byte-identical to the single-threaded scan. Port of the native
99
+ * `parallel_scan::stitch`: shard 0 is authoritative (header-aware start); for
100
+ * shard i>0 the previous shard's validated `handoff` is a real entity start, so
101
+ * binary-search shard i's `starts` for it and drop the speculative prefix before
102
+ * it. Concatenates the validated slices in shard order (= file order), so
103
+ * last-wins on a duplicate id is preserved when the worker rebuilds its map.
104
+ *
105
+ * Returns null on the rare "handoff not found" case (speculative overshoot / a
106
+ * record spanning a whole shard), which needs the serial-rescan fallback the JS
107
+ * spike doesn't implement — the caller falls back to the pre-pass's own index.
108
+ */
109
+ export declare function stitchShards(shards: ShardColumns[]): StitchedShards | null;
110
+ //# sourceMappingURL=shard-stitch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shard-stitch.d.ts","sourceRoot":"","sources":["../src/shard-stitch.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,2EAA2E;AAC3E,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,WAAW,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC;IACrB,qEAAqE;IACrE,OAAO,EAAE,UAAU,CAAC;IACpB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,iBAAiB,EAAE,WAAW,CAAC;IAC/B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,0DAA0D;AAC1D,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,WAAW,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,UAAU,CAAC;IACpB;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,cAAc,GAAG,IAAI,CA0F1E"}