reze-engine 0.56.8 → 0.56.9

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.
package/dist/engine.d.ts CHANGED
@@ -407,6 +407,17 @@ interface ModelInstance {
407
407
  * outline. Kept here so that write has somewhere to go. */
408
408
  outlineUniformBuffers: GPUBuffer[];
409
409
  model: Model;
410
+ /**
411
+ * Keep simulating this model's cloth while it is HIDDEN.
412
+ *
413
+ * Off by default, which is what makes a roster of resident alternate skins
414
+ * affordable: invisible cloth costs nothing. On for a model whose visibility
415
+ * is scheduled, because the frame it appears on is the frame its skirt has to
416
+ * be already dancing — a dress simulated from rest at the reveal snaps into
417
+ * place in front of the audience, and that pop is the whole reason a costume
418
+ * change reads as a glitch rather than as a cut.
419
+ */
420
+ simulateWhileHidden: boolean;
410
421
  basePath: string;
411
422
  assetReader: AssetReader;
412
423
  gpuBuffers: GPUBuffer[];
@@ -2782,6 +2793,19 @@ export declare class Engine {
2782
2793
  * a surface nothing in the scene is standing on.
2783
2794
  */
2784
2795
  setPhysicsFloor(on: boolean): void;
2796
+ /**
2797
+ * Keep one model's cloth simulating while it is hidden.
2798
+ *
2799
+ * For scheduled visibility — a costume the scene swaps to, a double that
2800
+ * appears mid-shot. The body of a hidden model animates either way, so what
2801
+ * this buys is the cloth: switch it on and the skirt is already moving when
2802
+ * the model is revealed, instead of falling into place from rest in view.
2803
+ *
2804
+ * Per model rather than scene-wide, because it is exactly the models taking
2805
+ * part in a swap that need it, and a scene that never swaps should not pay
2806
+ * for cloth nobody can see.
2807
+ */
2808
+ setModelPhysicsWhileHidden(modelName: string, on: boolean): boolean;
2785
2809
  getPhysicsFloor(): boolean;
2786
2810
  getWind(): WindOptions | null;
2787
2811
  resetPhysics(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAGA,OAAO,EAAQ,IAAI,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAEzC,OAAO,EAAE,KAAK,EAA2B,KAAK,kBAAkB,EAAgC,MAAM,SAAS,CAAA;AAM/G,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7D,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAA;AAKvB,OAAO,EAAkC,KAAK,QAAQ,EAAmB,MAAM,eAAe,CAAA;AAC9F,OAAO,EAQL,KAAK,aAAa,EAElB,KAAK,YAAY,EAElB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAIlE,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE/C,OAAO,EAA8E,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAwBjJ,OAAO,EAcL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAExB,KAAK,gBAAgB,EAGrB,KAAK,uBAAuB,EAC7B,MAAM,WAAW,CAAA;AAyClB,OAAO,EAAgB,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEnF,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClE,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EAEtB,UAAU,EACX,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAA2D,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAapH,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,MAAM,GACN,MAAM,GACN,MAAM,GACN,KAAK,GACL,WAAW,GACX,OAAO,GACP,cAAc,GACd,aAAa,CAAA;AAEjB,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;AAyHzE,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,UAAU,CAAA;IACjB,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,kEAAkE;IAClE,oBAAoB,EAAE,iBAAiB,CAAA;IACvC,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,iBAAiB,CAAA;IACpC;;;kDAG8C;IAC9C,cAAc,CAAC,EAAE,iBAAiB,CAAA;IAClC,aAAa,EAAE,SAAS,CAAA;IACxB;gFAC4E;IAC5E,MAAM,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAA;IAC9B,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB;8BAC0B;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,KAAK,eAAe,GAAG,CACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,KACZ,IAAI,CAAA;AAET,kHAAkH;AAClH,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,CAAA;IACxB,OAAO,CAAC,EAAE,IAAI,CAAA;CACf,CAAA;AAID,KAAK,YAAY,GAAG;IAClB,8FAA8F;IAC9F,KAAK,CAAC,EAAE,IAAI,CAAA;IACZ,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AA2CD,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,IAAI,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;IACd,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,kFAAkF;AAClF,MAAM,MAAM,eAAe,GAAG;IAC5B,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;kFACkF;AAClF,KAAK,UAAU,GAAG,eAAe,GAAG;IAClC,+EAA+E;IAC/E,YAAY,EAAE,YAAY,CAAA;IAC1B;oEACgE;IAChE,UAAU,EAAE,YAAY,CAAA;CACzB,CAAA;AAED,6EAA6E;AAC7E,KAAK,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAA;AAE1H;;oFAEoF;AACpF,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAA;AAE7F,KAAK,UAAU,GAAG;IAChB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,IAAI,CAAA;IACZ,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yFAAyF;IACzF,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB,CAAA;AAED;;wDAEwD;AACxD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3E;6EAC6E;AAC7E,MAAM,MAAM,GAAG,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AACrD,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,OAAO,CAAA;IACX;;;sDAGkD;IAClD,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB;iFAC6E;IAC7E,MAAM,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAA;IACpD;;;wEAGoE;IACpE,MAAM,EAAE,eAAe,EAAE,CAAA;IACzB;;;;;+CAK2C;IAC3C,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,aAAa,GAAG;IACnB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gCAAgC;IAChC,MAAM,CAAC,EAAE,IAAI,CAAA;IACb,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,wFAAwF;AACxF,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,IAAI,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,YAQnC,CAAA;AAED;;iFAEiF;AACjF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB;;;6CAGyC;IACzC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAA;IAC5B,4DAA4D;IAC5D,aAAa,EAAE,MAAM,CAAA;IACrB;yEACqE;IACrE,UAAU,EAAE,MAAM,CAAA;IAClB,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAA;IAChB,6CAA6C;IAC7C,aAAa,EAAE,MAAM,CAAA;IACrB,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAA;IAClB,qCAAqC;IACrC,OAAO,EAAE,aAAa,GAAG,UAAU,GAAG,WAAW,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,8BAA8B,EAAE,mBAS5C,CAAA;AAED,4HAA4H;AAC5H,MAAM,MAAM,oBAAoB,GAAG;IACjC,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAA;IAChB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;;OASG;IACH,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAA;CACzC,CAAA;AAID,eAAO,MAAM,sBAAsB,EAAE,oBAIpC,CAAA;AAED;;;;;gCAKgC;AAChC,MAAM,MAAM,mBAAmB,GAAG;IAChC,6CAA6C;IAC7C,OAAO,EAAE,IAAI,CAAA;IACb,6EAA6E;IAC7E,QAAQ,EAAE,IAAI,CAAA;IACd,+CAA+C;IAC/C,UAAU,EAAE,IAAI,CAAA;IAChB,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAA;IAChB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAGD,eAAO,MAAM,qBAAqB,EAAE,mBAMnC,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,CAAA;AAElD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,aAAa,CAAA;IACnB,kGAAkG;IAClG,aAAa,EAAE,IAAI,CAAA;IACnB,gBAAgB,EAAE,IAAI,CAAA;IACtB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;CACxB;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAA;AAE/D,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB;gFAC4E;IAC5E,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IACxB,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IAC7B,gFAAgF;IAChF,IAAI,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACpC,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,qCAAqC;IACrC,WAAW,CAAC,EAAE,iBAAiB,CAAA;CAChC,CAAA;AASD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,KAAK,YAAY,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,gBAAgB,GAAG,qBAAqB,CAAA;AAElG,UAAU,QAAQ;IAChB,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,YAAY,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IAGpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAKtB,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC1C;wFACoF;IACpF,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;+EAE2E;IAC3E,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,YAAY,CAAA;KAAE,CAAA;IACrC;;;2EAGuE;IACvE,MAAM,EAAE,YAAY,CAAA;IACpB;;sCAEkC;IAClC,SAAS,EAAE,MAAM,CAAA;CAClB;AAQD;4EAC4E;AAC5E,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,oEAAoE;IACpE,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB;iDAC6C;IAC7C,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAA;QACzB,GAAG,EAAE,OAAO,CAAA;QACZ,GAAG,EAAE,OAAO,CAAA;KACb,EAAE,CAAA;IACH;;;gFAG4E;IAC5E,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,OAAO,CAAA;QACd,OAAO,EAAE,OAAO,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;QACb,kEAAkE;QAClE,aAAa,EAAE,MAAM,CAAA;QACrB;;;oDAG4C;QAC5C,aAAa,EAAE,MAAM,CAAA;QACrB,8EAA8E;QAC9E,OAAO,EAAE,MAAM,CAAA;QACf;yEACiE;QACjE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;KAChD,EAAE,CAAA;IACH,yEAAyE;IACzE,MAAM,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;IAC3E;;;;kFAI8E;IAC9E,QAAQ,EAAE,MAAM,CAAA;IAChB;;+EAE2E;IAC3E,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,YAAY,CAAA;CACxB;AAED,0EAA0E;AAC1E,YAAY,EAAE,aAAa,EAAE,CAAA;AAE7B,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ;;mFAE+E;IAC/E,QAAQ,EAAE,MAAM,CAAA;IAChB;;;iFAG6E;IAC7E,QAAQ,EAAE,MAAM,CAAA;IAChB;;+EAE2E;IAC3E,sBAAsB,EAAE,SAAS,EAAE,CAAA;IACnC;;;;;gEAK4D;IAC5D,qBAAqB,EAAE,SAAS,EAAE,CAAA;IAClC,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,WAAW,CAAA;IACxB,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,YAAY,EAAE,SAAS,CAAA;IACvB,WAAW,EAAE,SAAS,CAAA;IACtB,YAAY,EAAE,SAAS,CAAA;IACvB,aAAa,EAAE,SAAS,CAAA;IACxB,gBAAgB,EAAE,SAAS,CAAA;IAC3B,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,eAAe,EAAE,QAAQ,EAAE,CAAA;IAC3B,gBAAgB,EAAE,YAAY,EAAE,CAAA;IAChC,wBAAwB,EAAE,YAAY,CAAA;IACtC,wBAAwB,EAAE,YAAY,CAAA;IACtC,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B;8EAC0E;IAC1E,OAAO,EAAE,OAAO,CAAA;IAChB;;;;;;;;;OASG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;;;;;OAMG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;wCAEoC;IACpC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;IACzB;+EAC2E;IAC3E,UAAU,EAAE,WAAW,GAAG,IAAI,CAAA;IAC9B;;oEAEgE;IAChE,cAAc,EAAE,OAAO,CAAA;IACvB;gEAC4D;IAC5D,iBAAiB,EAAE,OAAO,CAAA;IAC1B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B;;iDAE6C;IAC7C,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACjC,2EAA2E;IAC3E,oBAAoB,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAA;IAClD,+EAA+E;IAC/E,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,IAAI,CAAA;IAC7D;;;;;;;yEAOqE;IACrE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,YAAY,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IAC5F,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,uBAAuB,EAAE,OAAO,CAAA;IAChC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;IAEzB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAEtC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAGpC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAElC,iFAAiF;IACjF,cAAc,EAAE,MAAM,CAAA;IACtB;;;;2EAIuE;IACvE,KAAK,EAAE,OAAO,CAAA;IACd;4EACwE;IACxE,UAAU,EAAE,YAAY,CAAA;IACxB;;;;;sDAKkD;IAClD,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;GAOG;AACH,UAAU,mBAAmB;IAC3B,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,SAAS,CAAA;IACjB,mFAAmF;IACnF,IAAI,EAAE,YAAY,CAAA;IAClB,+EAA+E;IAC/E,IAAI,EAAE,YAAY,CAAA;IAClB;;;0DAGsD;IACtD,IAAI,EAAE,YAAY,CAAA;CACnB;AAGD,UAAU,QAAQ;IAChB,SAAS,EAAE,YAAY,CAAA;IACvB,aAAa,EAAE,SAAS,CAAA;IACxB,WAAW,EAAE,YAAY,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,OAAO,CAAA;IACvB;;;;4CAIwC;IACxC,OAAO,EAAE,SAAS,CAAA;CACnB;AAspBD,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAE7C,MAAM,CAAC,WAAW,IAAI,MAAM;IAO5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,kBAAkB,CAAmB;IAG7C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,mBAAmB,CAAY;IACvC,OAAO,CAAC,gBAAgB,CAAuB;IAE/C,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,GAAG,CAAqD;IAChE,OAAO,CAAC,YAAY,CAAkD;IACtE,OAAO,CAAC,kBAAkB,CAAY;IAGtC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,YAAY,CAAa;IAGjC,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,2BAA2B,CAAoB;IACvD,OAAO,CAAC,oBAAoB,CAAoB;IAChD,OAAO,CAAC,oBAAoB,CAAoB;IAChD,OAAO,CAAC,iBAAiB,CAAoB;IAK7C,OAAO,CAAC,eAAe,CAAY;IAEnC,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,YAAY,CAAwB;IAC5C;;wDAEoD;IACpD,OAAO,KAAK,YAAY,GAEvB;IACD,OAAO,CAAC,uBAAuB,CAA0B;IAGzD,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,oBAAoB,CAAoB;IAChD;;oCAEgC;IAChC,OAAO,CAAC,wBAAwB,CAAiC;IACjE;gEAC4D;IAC5D,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,2BAA2B,CAAqB;IACxD,OAAO,CAAC,eAAe,CAAoB;IAC3C,6EAA6E;IAC7E,OAAO,CAAC,qBAAqB,CAAoB;IACjD,OAAO,CAAC,8BAA8B,CAAe;IACrD,OAAO,CAAC,gBAAgB,CAA2D;IACnF,OAAO,CAAC,oBAAoB,CAAC,CAAY;IACzC,OAAO,CAAC,iBAAiB,CAAC,CAAgB;IAC1C,OAAO,CAAC,qBAAqB,CAAoB;IACjD,OAAO,CAAC,2BAA2B,CAA0B;IAC7D,OAAO,CAAC,qBAAqB,CAAoB;IACjD,OAAO,CAAC,4BAA4B,CAAqB;IACzD,OAAO,CAAC,sBAAsB,CAAC,CAAc;IAC7C,OAAO,CAAC,0BAA0B,CAAY;IAC9C,OAAO,CAAC,2BAA2B,CAA0B;IAC7D,OAAO,CAAC,gBAAgB,CAAa;IAMrC,OAAO,CAAC,mBAAmB,CAAY;IACvC,OAAO,CAAC,qBAAqB,CAAyB;IACtD,OAAO,CAAC,uBAAuB,CAAI;IACnC,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,oBAAoB,CAAoB;IAChD,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,qBAAqB,CAA0B;IACvD,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,qBAAqB,CAA0B;IACvD,OAAO,CAAC,oBAAoB,CAAY;IACxC,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,wBAAwB,CAAoB;IACpD,OAAO,CAAC,sBAAsB,CAAqB;IACnD,OAAO,CAAC,yBAAyB,CAA4B;IAC7D,OAAO,CAAC,8BAA8B,CAA0B;IAChE,OAAO,CAAC,iBAAiB,CAA2B;IACpD;;4EAEwE;IACxE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAI;IAChD;yDACqD;IACrD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAM;IACpD,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,YAAY,CAAkE;IACtF,OAAO,CAAC,aAAa,CAAuE;IAC5F,OAAO,CAAC,aAAa,CAAmE;IACxF,OAAO,CAAC,eAAe,CAA6E;IACpG,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,sBAAsB,CAAoB;IAClD,OAAO,CAAC,sBAAsB,CAAY;IAC1C,OAAO,CAAC,kBAAkB,CAAe;IACzC;;+DAE2D;IAC3D,OAAO,CAAC,0BAA0B,CAAY;IAC9C,OAAO,CAAC,sBAAsB,CAAe;IAC7C,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,kBAAkB,CAAsB;IAOhD,OAAO,CAAC,qBAAqB,CAAoB;IACjD,OAAO,CAAC,0BAA0B,CAAY;IAC9C,OAAO,CAAC,sBAAsB,CAAe;IAC7C,OAAO,CAAC,aAAa,CACf;IACN,kFAAkF;IAClF,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,mBAAmB,CAAsB;IAGjD,OAAO,CAAC,YAAY,CAA0E;IAC9F;;;sFAGkF;IAClF,OAAO,CAAC,aAAa,CAA2D;IAChF;;;4BAGwB;IACxB,OAAO,CAAC,YAAY,CAAO;IAC3B,OAAO,CAAC,iBAAiB,CAAY;IACrC,OAAO,CAAC,oBAAoB,CAAY;IACxC,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAK;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAM;IAG/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAO;IAIhD,OAAO,CAAC,UAAU,CAAoD;IACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAO;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAO;IAOtD,OAAO,CAAC,SAAS,CAcF;IACf,OAAO,CAAC,2BAA2B,CAAqB;IACxD,OAAO,CAAC,8BAA8B,CAAqB;IAC3D,OAAO,CAAC,8BAA8B,CAAqB;IAC3D,OAAO,CAAC,8BAA8B,CAAqB;IAC3D,OAAO,CAAC,iCAAiC,CAAqB;IAC9D,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,wBAAwB,CAAe;IAC/C,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAI;IAC7C;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAmC;IAiB9E,OAAO,CAAC,SAAS,CAAkC;IACnD;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,GAAG,IAAI,CAAO;IAC1D;4DACwD;IACxD,OAAO,CAAC,WAAW,CAA2C;IAC9D;gFAC4E;IAC5E,OAAO,CAAC,SAAS,CAAQ;IACzB,8EAA8E;IAC9E,OAAO,KAAK,UAAU,GAErB;IACD,oFAAoF;IACpF,OAAO,KAAK,UAAU,GAErB;IACD;0FACsF;IACtF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAI;IAC7C;;;;;;;gGAO4F;IAC5F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAA+B;IACxE;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAO;IACtC;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAM;IAClD;6EACyE;IACzE,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,MAAM,CAA8B;IAC5C,0DAA0D;IAC1D,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,sBAAsB,CAAkC;IAChE,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,eAAe,CAAiB;IACxC;;;;;;;OAOG;IACH,2EAA2E;IAC3E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAQ;IAC7C,OAAO,CAAC,aAAa,CAAI;IACzB;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,eAAe,CAAiB;IACxC,gFAAgF;IAChF,OAAO,CAAC,iBAAiB,CAAiB;IAC1C;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAkB;IACtD;;uBAEmB;IACnB,OAAO,CAAC,iBAAiB,CAAsB;IAC/C,8EAA8E;IAC9E,sEAAsE;IACtE,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,WAAW,CAGhB;IACH;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,aAAa,CAA0C;IAC/D,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,YAAY,CAA8B;IAClD;;8EAE0E;IAC1E,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,oBAAoB,CAA4B;IACxD,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,iFAAiF;IACjF,OAAO,CAAC,kBAAkB,CAAQ;IAElC,OAAO,CAAC,eAAe,CAAsC;IAC7D,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,eAAe,CAAsC;IAC7D,OAAO,CAAC,YAAY,CAA0C;IAC9D;;4CAEwC;IACxC,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,eAAe,CAA8B;IACrD;mEAC+D;IAC/D,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,mBAAmB,CAAoB;IAC/C;;;;;;OAMG;IACH,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,mBAAmB,CAAY;IAEvC,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,kBAAkB,CAAY;IACtC;iFAC6E;IAC7E,OAAO,CAAC,YAAY,CAAY;IAChC;;wEAEoE;IACpE,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,iBAAiB,CAAiB;IAC1C;wDACoD;IACpD,OAAO,CAAC,SAAS,CAAiB;IAClC,qDAAqD;IACrD,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,WAAW,CAAO;IAC1B,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,oBAAoB,CAA0B;IACtD,OAAO,CAAC,uBAAuB,CAA0B;IAIzD,OAAO,CAAC,yBAAyB,CAAoB;IACrD,OAAO,CAAC,sBAAsB,CAAoB;IAClD,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,2BAA2B,CAAqB;IAOxD;oEACgE;IAChE,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,aAAa,CAA4B;IACjD;mEAC+D;IAC/D,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,UAAU,CAAsB;IACxC;2EACuE;IACvE,OAAO,CAAC,aAAa,CAAO;IAC5B,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,QAAQ,CAAqB;IACrC;yDACqD;IACrD,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,iBAAiB,CAAI;IAC7B;iFAC6E;IAC7E,OAAO,CAAC,YAAY,CAAI;IAExB,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,aAAa,CAAwB;IAC7C;;+CAE2C;IAC3C,OAAO,CAAC,YAAY,CAAO;IAC3B;0CACsC;IACtC,OAAO,CAAC,aAAa,CAAI;IAKzB;;;;;;;;;;sBAUkB;IAClB;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAU1B;IACV,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,aAAa,CAAyB;IAC9C,6EAA6E;IAC7E,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,cAAc,CAAyB;IAU/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAkC;IACtE;8EAC0E;IAC1E,OAAO,CAAC,OAAO,CAAI;IACnB,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,kBAAkB,CAAY;IAItC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,cAAc,CAAY;IAClC,OAAO,CAAC,uBAAuB,CAAe;IAC9C,OAAO,CAAC,oBAAoB,CAA0B;IACtD,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,OAAO,CAAC,gBAAgB,CAAI;IAC5B,OAAO,CAAC,mBAAmB,CAA0B;IACrD;;;;iEAI6D;IAC7D,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,cAAc,CAA8B;IACpD;uEACmE;IACnE,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,wBAAwB,CAA8B;IAC9D,OAAO,CAAC,4BAA4B,CAAiC;IACrE;;4EAEwE;IACxE,OAAO,CAAC,mBAAmB,CAAY;IACvC,OAAO,CAAC,sBAAsB,CAAY;IAC1C,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,oBAAoB,CAAuC;IACnE,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,uBAAuB,CAA+B;IAC9D,4EAA4E;IAC5E,OAAO,CAAC,YAAY,CAAI;IAKxB,OAAO,CAAC,aAAa,CAA4C;IACjE;;6EAEyE;IACzE,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,sBAAsB,CAAyB;IACvD,OAAO,CAAC,4BAA4B,CAAkC;IACtE,OAAO,CAAC,qBAAqB,CAAiC;IAC9D,OAAO,CAAC,sBAAsB,CAA4B;IAC1D;+DAC2D;IAC3D,OAAO,CAAC,oBAAoB,CAAiC;IAC7D,OAAO,CAAC,sBAAsB,CAAqB;IACnD,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,uBAAuB,CAAiC;IAChE,OAAO,CAAC,8BAA8B,CAAkC;IACxE,OAAO,CAAC,wBAAwB,CAA4B;IAC5D,OAAO,KAAK,gBAAgB,GAE3B;IACD,OAAO,CAAC,gBAAgB,CAAyB;IAEjD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,aAAa,CAAyC;IAC9D,OAAO,CAAC,aAAa,CAAwC;IAC7D;4CACwC;IACxC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,cAAc,CAAqB;IAC3C;qFACiF;IACjF,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,WAAW,CAAO;IAC1B,OAAO,CAAC,SAAS,CAAI;IACrB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,YAAY,CAAuE;IAC3F,OAAO,CAAC,oBAAoB,CAAQ;IACpC,OAAO,CAAC,wBAAwB,CAAqB;IACrD,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,YAAY,CAA6D;IACjF,OAAO,CAAC,gBAAgB,CAAY;IACpC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,eAAe,CAAoB;IAC3C,gFAAgF;IAChF,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,sBAAsB,CAAY;IAK1C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAC5D,iFAAiF;IACjF,OAAO,CAAC,eAAe,CAAoB;IAE3C,OAAO,CAAC,uBAAuB,CAA0B;IACzD,OAAO,CAAC,oBAAoB,CAA8B;IAC1D;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,oBAAoB,CAA0B;IACtD,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,aAAa,CAAI;IACzB,sEAAsE;IACtE,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,uBAAuB,CAAa;IAC5C,OAAO,CAAC,oBAAoB,CAAiB;IAM7C;;;;;;OAMG;IACH;4EACwE;IACxE,OAAO,CAAC,gBAAgB,CAAI;IAC5B,OAAO,CAAC,OAAO,CAAuB;IACtC;qEACiE;IACjE,OAAO,KAAK,MAAM,GAEjB;IACD;wEACoE;IACpE,OAAO,CAAC,UAAU,CAAY;IAC9B;;8CAE0C;IAC1C,OAAO,CAAC,YAAY,CAAY;IAChC,OAAO,CAAC,UAAU,CAA4B;IAC9C,0EAA0E;IAC1E,OAAO,CAAC,WAAW,CAAiC;IACpD,8EAA8E;IAC9E,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,QAAQ,CAA4B;IAC5C,gFAAgF;IAChF,OAAO,CAAC,UAAU,CAAkC;IACpD;;;;;;;;;;OAUG;IACH,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,UAAU,CAAI;IACtB;;;yCAGqC;IACrC,OAAO,CAAC,WAAW,CAAoD;IACvE;0DACsD;IACtD,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,UAAU,CAAI;IACtB;yEACqE;IACrE,OAAO,CAAC,QAAQ,CAAI;IACpB,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,kBAAkB,CAAa;IACvC,gFAAgF;IAChF,OAAO,CAAC,mBAAmB,CAAY;IACvC,OAAO,CAAC,uBAAuB,CAAoB;IACnD,kEAAkE;IAClE;kEAC8D;IAC9D,OAAO,CAAC,kBAAkB,CAA8B;IAQxD,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,sBAAsB,CAAY;IAC1C,OAAO,CAAC,0BAA0B,CAAY;IAC9C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAsB;IAC3D,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAsB;IAC/D,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,uBAAuB,CAAoB;IACnD,OAAO,CAAC,qBAAqB,CAAoB;IACjD,OAAO,CAAC,wBAAwB,CAAqB;IACrD,OAAO,CAAC,8BAA8B,CAAqB;IAC3D,OAAO,CAAC,4BAA4B,CAAqB;IACzD,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,yBAAyB,CAAqB;IACtD,OAAO,CAAC,uBAAuB,CAAqB;IACpD,2EAA2E;IAC3E,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAI;IAG5C,OAAO,CAAC,kBAAkB,CAAC,CAAW;IACtC,OAAO,CAAC,iBAAiB,CAAC,CAAW;IACrC,OAAO,CAAC,SAAS,CAAQ;IACzB;oEACgE;IAChE,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,aAAa,CAAiB;IAEtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAC9C,OAAO,CAAC,mBAAmB,CAAoB;IAC/C,OAAO,CAAC,mBAAmB,CAAY;IAIvC,OAAO,CAAC,sBAAsB,CAAkB;IAEhD,OAAO,CAAC,mBAAmB,CAAgD;IAC3E,OAAO,CAAC,qBAAqB,CAAC,CAAc;IAC5C;;4EAEwE;IACxE,OAAO,CAAC,yBAAyB,CAAC,CAAc;IAOhD,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,OAAO,CAAC,uBAAuB,CAAa;IAC5C,OAAO,CAAC,0BAA0B,CAAC,CAAW;IAC9C,OAAO,CAAC,cAAc,CAAwB;IAE9C,OAAO,CAAC,SAAS,CAAC,CAAiB;IACnC,OAAO,CAAC,WAAW,CAAC,CAAmB;IACvC,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAEvC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,2BAA2B,CAAqB;IACxD,OAAO,CAAC,8BAA8B,CAAqB;IAC3D,OAAO,CAAC,8BAA8B,CAAqB;IAC3D,OAAO,CAAC,qBAAqB,CAAe;IAC5C,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,kBAAkB,CAAY;IACtC,OAAO,CAAC,WAAW,CAAwC;IAE3D,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,uBAAuB,CAAa;IAC5C,OAAO,CAAC,YAAY,CAAgC;IAKpD,OAAO,CAAC,iBAAiB,CAA2E;IACpG,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,mBAAmB,CAAI;IAG/B,OAAO,CAAC,SAAS,CAAO;IACxB,OAAO,CAAC,cAAc,CAAO;IAG7B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,YAAY,CAAO;IAE3B,OAAO,CAAC,YAAY,CAAO;IAI3B,OAAO,CAAC,eAAe,CAA+B;IAGtD,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,qBAAqB,CAAI;IACjC,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoB;IACpD,OAAO,CAAC,kBAAkB,CAA0B;IAEpD,OAAO,CAAC,aAAa,CAAoB;IAGzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAM;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAC9C,OAAO,CAAC,cAAc,CAAwC;IAC9D,OAAO,CAAC,kBAAkB,CAAI;IAC9B,OAAO,CAAC,mBAAmB,CAAI;IAC/B,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,KAAK,CASZ;IACD,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,aAAa,CAAuB;gBAEhC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,aAAa;IAuC9D,qEAAqE;IACrE,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY;IAcxE,MAAM,CAAC,0BAA0B,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,oBAAoB;IAShG,uEAAuE;IACvE,eAAe,IAAI,YAAY;IAa/B,uBAAuB,IAAI,oBAAoB;IAK/C,OAAO,CAAC,YAAY,CAMnB;IAED;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAU1D,iEAAiE;IACjE,eAAe,IAAI,mBAAmB;IAWtC,oDAAoD;IACpD,OAAO,CAAC,KAAK,CAAgC;IAE7C;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,UAAO,GAAG,IAAI;IAKnD,YAAY,IAAI,QAAQ,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAI/D,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;IAUnE;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,0BAA0B;IAwElC;;;;;;OAMG;IACH,kBAAkB,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;IAK5C,+DAA+D;IAM/D,OAAO,CAAC,cAAc,CAAQ;IAC9B,iBAAiB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IASpC;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO;IAMhC,yDAAyD;IACzD,YAAY,IAAI,OAAO;IAIvB;wCACoC;IACpC,OAAO,CAAC,qBAAqB;IAoC7B,OAAO,CAAC,iBAAiB;IAczB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIrC;;;;OAIG;IACH,gBAAgB,IAAI;QAClB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;QACvB,QAAQ,EAAE,MAAM,CAAA;QAChB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAC5B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAC/B;IAYD;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAQpD;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CAAC,SAAS;IAmFjB;gDAC4C;IAC5C,OAAO,CAAC,qBAAqB;IAI7B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAc1B;IAEV;;4EAEwE;IACxE,OAAO,CAAC,UAAU;IAKlB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,qBAAqB;IAkD7B;oEACgE;IAChE,OAAO,CAAC,4BAA4B;IAqFpC;oDACgD;IAChD,OAAO,CAAC,2BAA2B;IAiBnC;;0CAEsC;IACtC,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,6BAA6B;IAkCrC,OAAO,CAAC,yBAAyB;IAcjC;sEACkE;IAClE,OAAO,CAAC,kBAAkB;IA+B1B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,gBAAgB;IAmDxB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IA8E7B;;;;;;;;;;;;OAYG;YACW,oBAAoB;IAsBlC;;;;;;;;;OASG;IACH,OAAO,CAAC,YAAY;IAiBpB,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IAEtD;;;;;;;;OAQG;IACH,SAAS,IAAI;QACX,SAAS,EAAE,gBAAgB,CAAA;QAC3B,WAAW,EAAE,gBAAgB,CAAA;QAC7B,SAAS,EAAE,OAAO,CAAA;QAClB,GAAG,EAAE,OAAO,CAAA;QACZ,WAAW,EAAE,MAAM,CAAA;QACnB,kBAAkB,EAAE,gBAAgB,CAAA;QACpC,QAAQ,EAAE,MAAM,EAAE,CAAA;QAClB,MAAM,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAC7C;IAaD,OAAO,CAAC,yBAAyB;IAuCjC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,aAAa;IAIrB,mEAAmE;IACnE,OAAO,CAAC,cAAc;IAItB;;;;;;;OAOG;IACH,OAAO,CAAC,yBAAyB;IAyFjC;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,kBAAkB;IAiC1B;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;kFAC8E;IAC9E,OAAO,CAAC,YAAY;IAOpB;mFAC+E;IAC/E,OAAO,CAAC,MAAM,CAAC,eAAe;IAI9B;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;IAsE7B;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;IA6BrB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;;;;;OAMG;IACH;;;;;;;;;OASG;IACH,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAsChF;;;;;;;;;;;OAWG;IACH,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,IAAI,GAAG,IAAI;IAqC5F,OAAO,CAAC,qBAAqB;IAe7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;YAEW,aAAa;IAkc3B;;;;;;;;OAQG;IACH;;;;;;;;;;;;;;OAcG;IACG,UAAU,CACd,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;KAAE,EAAE,GAAG,IAAI,GACzE,OAAO,CAAC,YAAY,EAAE,CAAC;IAyJ1B;;;OAGG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;YAUxF,cAAc;IA0K5B;;;;;;OAMG;IACH;;;;;;;OAOG;YACW,cAAc;IA2D5B;2EACuE;IACvE,OAAO,CAAC,kBAAkB;IAiB1B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;IAgB1B,2EAA2E;IAC3E,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,aAAa;IAkCrB,iFAAiF;IACjF,OAAO,CAAC,eAAe;IAUvB;;;;;;OAMG;YACW,WAAW;IAoJzB,OAAO,CAAC,aAAa;IAOrB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,UAAU;IAiClB;;uEAEmE;IACnE,OAAO,CAAC,eAAe;IA0GvB,2EAA2E;IAC3E,OAAO,CAAC,YAAY;IAqCpB,OAAO,CAAC,gBAAgB;IAQxB;;;;;;OAMG;YACW,QAAQ;IAmHtB,OAAO,CAAC,WAAW;IASnB;;;;;OAKG;IACH,OAAO,CAAC,OAAO;IAwCf,+EAA+E;IAC/E,eAAe,IAAI;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE;IAI/D;;;;;;;;;;OAUG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAc1E;;;;;;;;;;;;;;;;;;;OAmBG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAS1D,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIzC;;;;;;;;;;;;;;;;OAgBG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI,GAAG,IAAI;IAW/E,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,YAAY,EAAE,GAAG,IAAI;IAIhE;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IA2B/B;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAOhD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAKpC,wEAAwE;IACxE;kFAC8E;IAC9E,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAY1D,eAAe,IAAI,mBAAmB;IAItC;;8EAE0E;IAC1E,OAAO,CAAC,iBAAiB;IAqCzB,OAAO,CAAC,yBAAyB;IAsCjC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAoBnD,OAAO,CAAC,kBAAkB;IAsBpB,IAAI;IA2HV,6EAA6E;IAC7E,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,eAAe,CAAiB;IAExC;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,WAAW;IAiFnB;;;;;;;OAOG;YACW,UAAU;IAuBxB,OAAO,CAAC,aAAa;IA+ErB,OAAO,CAAC,oBAAoB;IAiC5B,OAAO,CAAC,eAAe;IAqnCvB,OAAO,CAAC,WAAW;IAsBnB;oEACgE;IAChE,OAAO,CAAC,eAAe,CAAiD;IAExE;;;;;;;;OAQG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAClD,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAU/B,OAAO,CAAC,YAAY;IA+cpB,OAAO,CAAC,UAAU;IAkKlB,OAAO,CAAC,YAAY;IA8WpB,OAAO,CAAC,WAAW;IA0BnB,iFAAiF;IACjF,eAAe,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI;IAC9B,gGAAgG;IAChG,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI;IA0B3E,mIAAmI;IACnI,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAuBhG;;;+BAG2B;IAC3B,OAAO,CAAC,gBAAgB,CAAO;IAC/B;gFAC4E;IAC5E,OAAO,CAAC,kBAAkB,CAA0B;IAEpD;+EAC2E;IAC3E,OAAO,CAAC,kBAAkB;IAM1B;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;IAkB5C,uEAAuE;IACvE,qBAAqB,IAAI,UAAU,GAAG,IAAI;IAI1C;6FACyF;IACnF,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,uFAAuF;IACvF,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAOlD;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI;IAM9C;yEACqE;IACrE,aAAa,IAAI,cAAc,EAAE;IAIjC;;wDAEoD;IACpD,eAAe,IAAI,WAAW;IAM9B,8FAA8F;IAC9F,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAU3C,4EAA4E;IAC5E,iBAAiB,IAAI,OAAO;IAI5B,qEAAqE;IACrE,kBAAkB,IAAI,OAAO;IAI7B,+EAA+E;IAC/E,YAAY,IAAI,OAAO;IAIvB;;yEAEqE;IACrE,oBAAoB,IAAI,MAAM;IAI9B;;;;;;;;;OASG;IACH,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI;IAoC7F;;;;;;;;;;;;OAYG;IACH;;;;;;;;OAQG;IACH,SAAS,CACP,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EACzB,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,0BAA0B,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,EAAE,CAAA;KAAE,GAChG,IAAI;IA4CP,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,OAAO,SAAO,GAAG,IAAI;IA0D5D;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,UAAO,GAAG,IAAI;IAuBlD;;;;OAIG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,UAAO,GAAG,IAAI;IAOnD;8CAC0C;IAC1C,qBAAqB,IAAI,MAAM,EAAE;IAIjC,8DAA8D;IAC9D,cAAc,IAAI,IAAI;IAKtB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,aAAa;IAkBrB,yEAAyE;IACzE,iBAAiB,IAAI,IAAI;IAIzB;;;;;;;;;;;;OAYG;IACH,cAAc,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,IAAI,CAAA;KAAE;IAWjF,iBAAiB,IAAI,MAAM;IAG3B,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAGlC;;wDAEoD;IACpD,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAGrD,cAAc,IAAI,MAAM;IAGxB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAG/B,aAAa,IAAI,MAAM;IAGvB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAG9B;;;;;;;;OAQG;IACH,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAG9B,aAAa,IAAI,MAAM;IAGvB;;qDAEiD;IACjD;;;;;;OAMG;IACH,aAAa,IAAI,UAAU;IAI3B,YAAY,IAAI,MAAM;IAGtB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK/B,OAAO,CAAC,aAAa;IAYrB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IA2BlB,qFAAqF;IACrF,OAAO,CAAC,QAAQ;IAgBhB,gGAAgG;IAChG,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAMrC,0FAA0F;IAC1F,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAUjC,QAAQ,IAAI,QAAQ,CAAC;QAAE,KAAK,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAGvD,MAAM,IAAI,QAAQ,CAAC;QAAE,KAAK,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,CAAC;IAItE,SAAS,CAAC,OAAO,CAAC,EAAE;QAClB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf;;;;;;;WAOG;QACH,CAAC,CAAC,EAAE,MAAM,CAAA;QACV,YAAY,CAAC,EAAE,IAAI,CAAA;QACnB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,aAAa,CAAC,EAAE,IAAI,CAAA;QACpB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,8EAA8E;QAC9E,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB;;mFAE2E;QAC3E,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB;gFACwE;QACxE,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB;;;;;;;;+DAQuD;QACvD,cAAc,CAAC,EAAE,MAAM,CAAA;KACxB,GAAG,IAAI;IAqDR;;;;;;;;;;;;OAYG;IACH,SAAS;IACP;;sEAEkE;IAClE,MAAM,EAAE;QAAE,QAAQ,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,GAAG,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,GAClF,IAAI;IA0CP,wDAAwD;IACxD,aAAa,IAAI,MAAM;IAIvB;;;;;uEAKmE;IACnE,OAAO,CAAC,iBAAiB;IAKzB,QAAQ,IAAI,WAAW;IAYvB,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI;IAcnC,cAAc;IAQd,OAAO;IAgDD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IACvC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IACrD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,KAAK,CAAC;IA2BjF;wCACoC;IAC9B,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,yBAAyB,GAAG;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;KAAE,GAC3E,OAAO,CAAC,KAAK,CAAC;IAMjB,2DAA2D;IACrD,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,yBAAyB,GAAG;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;KAAE,GAC3E,OAAO,CAAC,KAAK,CAAC;IAMjB;kFAC8E;YAChE,gBAAgB;IAkBxB,QAAQ,CACZ,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,WAAW,EACzB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAChF,OAAO,CAAC,MAAM,CAAC;IAuBlB;;;;;;;;;;;;;;;;;;OAkBG;IACG,QAAQ,CACZ,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,GAC1F,OAAO,CAAC,MAAM,CAAC;IAMlB;;;;;;;;;;;OAWG;IACG,OAAO,CACX,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,GAC1F,OAAO,CAAC,MAAM,CAAC;IAMlB;;;;;;;;;;;;;;;;;;;OAmBG;IACG,QAAQ,CAAC,OAAO,EAAE;QACtB;8DACsD;QACtD,KAAK,EAAE,WAAW,CAAA;QAClB,6EAA6E;QAC7E,IAAI,EAAE,MAAM,CAAA;QACZ;mFAC2E;QAC3E,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAA;QACd,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;QACnC;wEACgE;QAChE,WAAW,CAAC,EAAE,OAAO,CAAA;QACrB;oFAC4E;QAC5E,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB,GAAG,OAAO,CAAC,MAAM,CAAC;IA4HnB;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,0BAA0B,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAWrG;;oDAEgD;IAChD,QAAQ,IAAI,OAAO;IAKnB;yBACqB;IACrB,kBAAkB,IAAI,OAAO;IAI7B;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAInC;;0DAEsD;IACtD,OAAO,CAAC,oBAAoB,CAAgB;IAE5C;;;;;;;;;;OAUG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IASnD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IA0C/B,aAAa,IAAI,MAAM,EAAE;IAIzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAIpC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,IAAI,SAAS,EACb,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,IAAI,CAAA;KAAE,GAC5C,OAAO;IA6BV,wCAAwC;IACxC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAKpD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,GAAG,OAAO;IAqBjF,sDAAsD;IACtD,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,GAAG,IAAI;IAazD;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAuBvB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6D;IACvF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6D;IACrF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;IAEpD;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IAErD;;;;;kCAK8B;IAC9B,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,gBAAgB,CAAO;IAC/B,OAAO,CAAC,sBAAsB;IAwC9B;;;;;;OAMG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAkBzE,kFAAkF;IAClF,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAYtD,qBAAqB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAe9D,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIhF,oEAAoE;IACpE,eAAe,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIlC;;4EAEwE;IACxE,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAI/E,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAqBxE;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAK/D,oEAAoE;IACpE,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAKlC;;;;;;;;;;;;;OAaG;IACH,QAAQ,CACN,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GACtD;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAyCpE;yEACqE;IACrE,OAAO,CAAC,mBAAmB,CAA4B;IAEvD;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CACV,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GACnC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAyF5E;;;+BAG2B;IAC3B,OAAO,CAAC,WAAW,CAAsB;IAEzC;;;;;;;;;;;OAWG;IACH,kBAAkB,CAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,EAAE,GACjF,IAAI;IAcP;;;;;;;;;;;OAWG;IACH,oBAAoB,CAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,EAAE,GACjF,IAAI;IAoBP;;0CAEsC;IACtC,OAAO,CAAC,qBAAqB,CAA4B;IACzD;;4BAEwB;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAA2B;IAElE;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT;QAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,gBAAgB,EAAE,CAAA;KAAE;IAkGvD;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAmD7G,OAAO,CAAC,mBAAmB;IAc3B,gFAAgF;IAChF,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,GAAE,kBAAuB,GAAG,IAAI;IAIhF;gCAC4B;IAC5B,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,GAAE,uBAA4B,GAAG,IAAI;IAI1F;wDACoD;IACpD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,GAAE,mBAAwB,GAAG,IAAI;IAIlF;;;;;;;;;;;;;;;;OAgBG;IACH,gBAAgB,CACd,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAO,GACzD,IAAI;IAQP;kFAC8E;IAC9E,OAAO,CAAC,cAAc;IAKtB;mFAC+E;IAC/E,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,uBAAuB;IAqB/B,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAOnF,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAOpE;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE;QACL,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QACnD,QAAQ,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAC5C,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAC5C,GACA,OAAO;IAuBV,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;IAMnE,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI3C;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIpC,YAAY,IAAI,OAAO;IAIvB;;;;;;;;OAQG;IACH,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAUzC,iBAAiB,IAAI,OAAO;IAI5B;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI;IAK/B,UAAU,IAAI,IAAI;IAIlB;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI;IAKvC;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAKlC,eAAe,IAAI,OAAO;IAI1B,OAAO,IAAI,WAAW,GAAG,IAAI;IAI7B,YAAY,IAAI,IAAI;IAWpB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,SAAS,CAAI;IACrB,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,WAAW,CAAI;IACvB,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,iBAAiB,CAAI;IAE7B,OAAO,CAAC,eAAe;IAgFvB,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAK;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAK;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAI;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAI;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAI;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAI;IAE5C;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;IAqJvB;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,kBAAkB;IAqB1B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAyBvB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,kBAAkB;IAyD1B;yFACqF;IACrF,8DAA8D;IAC9D,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,YAAY,CAAsB;IAE1C;kFAC8E;IAC9E,OAAO,CAAC,kBAAkB,CAA4B;IAEtD;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAS/B;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;IA8CvB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,eAAe;IA2BvB;;;;;;;;OAQG;IACH;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,aAAa;IAuDrB;gFAC4E;IAC5E,OAAO,CAAC,MAAM;IAMd;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,UAAU;IAKlB;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAsCzB;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAK9C,kFAAkF;IAClF,OAAO,CAAC,gBAAgB,CAAQ;IAEhC,OAAO,CAAC,YAAY;IAiBpB;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAyDzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,SAAS;IAcjB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIjC;;;;;;;;OAQG;IACG,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IAqFpD;2CACuC;YACzB,YAAY;YA8CZ,kBAAkB;IA+LhC,OAAO,CAAC,cAAc;IAqEtB,OAAO,CAAC,oBAAoB;IAwE5B;gFAC4E;IAC5E,OAAO,CAAC,wBAAwB,CAAsE;IAEtG,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,oBAAoB,CAAiC;IAC7D,OAAO,CAAC,wBAAwB,CAAiC;IAEjE;oCACgC;IAChC,OAAO,CAAC,0BAA0B;IASlC;oFACgF;IAChF,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,2BAA2B;IA0FnC;;;;;OAKG;IACH;;gFAE4E;IAC5E,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,oBAAoB;IAmE5B;;;;;;iDAM6C;IAC7C,OAAO,CAAC,kBAAkB,CAAO;IACjC,OAAO,CAAC,kBAAkB,CAAO;IAEjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAElD,OAAO,CAAC,mBAAmB;YAqBb,yBAAyB;IA4PvC;mFAC+E;IAC/E,OAAO,CAAC,mBAAmB;IAqC3B,OAAO,CAAC,2BAA2B;IAcnC;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,mBAAmB;IAyE3B,OAAO,CAAC,mBAAmB;IAU3B;;;;;;;+DAO2D;IAC3D,OAAO,CAAC,oBAAoB;YAId,4BAA4B;IA4I1C,OAAO,CAAC,eAAe;IA6CvB;qFACiF;IACjF,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,uBAAuB,CAI9B;IAED,OAAO,CAAC,iBAAiB,CA0BxB;IAED,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,qBAAqB;IAuC7B;;;;;;qDAMiD;IACjD,OAAO,CAAC,mBAAmB;IAY3B;gCAC4B;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IAEhD;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAmFxB,OAAO,CAAC,eAAe;IAgFvB;;yDAEqD;IACrD,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,kBAAkB,CAAyB;IAEnD,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,YAAY;IAIpB;6EACyE;IACzE,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,QAAQ,GAAG,gBAAgB,EAAE;IAgBnF,OAAO,CAAC,oBAAoB;IA4C5B,OAAO,CAAC,6BAA6B;IAkBrC,OAAO,CAAC,iBAAiB;IAwGzB,OAAO,CAAC,eAAe;IA8DvB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,SAAS;IAWjB;;;;;;;;;;;;;;OAcG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,IAAI,GAAG,IAAI;IAW9D;0DACsD;IACtD,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAI3C,OAAO,CAAC,aAAa;IAmCrB,OAAO,CAAC,YAAY;IAqDpB,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,oBAAoB,CAoG3B;IAED,OAAO,CAAC,oBAAoB,CA+C3B;IAED,OAAO,CAAC,kBAAkB,CAsBzB;IAED,OAAO,CAAC,cAAc;YAgDR,iBAAiB;IAkD/B,MAAM;IASN;;;;;;;OAOG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM;IAMhC,OAAO,CAAC,eAAe;IA+YvB,OAAO,CAAC,kBAAkB;IAkB1B;6FACyF;IACzF,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;IAM/C;;;;;;;OAOG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA8BxG;;;;;OAKG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAwDhG;iDAC6C;IACvC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,qBAAqB,CAAC;IASnH,oFAAoF;IACpF,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAU1D,0FAA0F;IAC1F,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAWzC,oFAAoF;IACpF;;;;;;;;;;;;;;;;;OAiBG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,OAAO;IAsBzG;mFAC+E;IAC/E,OAAO,CAAC,qBAAqB;IAM7B;kDAC8C;IAC9C,OAAO,CAAC,mBAAmB;IAgB3B,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GACvC,OAAO;IAeV;;;;;;;;;;;;;;;;;;OAkBG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAiC3D;;;;OAIG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,GAAG,OAAO;IAO9E;;;;;;;;;;;;;OAaG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO;IAU9E,uEAAuE;IACvE,OAAO,CAAC,eAAe;IAWvB;gDAC4C;IAC5C,OAAO,CAAC,iBAAiB;IASzB;yEACqE;IACrE,OAAO,CAAC,eAAe,CAAoB;IAE3C;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,iBAAiB;IAsBzB,iFAAiF;IACjF,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAM3C,OAAO,CAAC,aAAa;YASP,sBAAsB;IA2HpC,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,aAAa;IAoBrB;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAkFjC,OAAO,CAAC,mBAAmB;IAY3B;;;;;;OAMG;IACH;8CAC0C;IAC1C,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,aAAa;IA0CrB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;;;;;OAMG;IACH,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,sBAAsB;IA8B9B;2EACuE;IACvE,OAAO,CAAC,kBAAkB;IAmB1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,OAAO,CAAC,sBAAsB;IAuB9B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,2BAA2B;IAoBnC,OAAO,CAAC,2BAA2B;IAoBnC;2EACuE;IAEvE,SAAS,CAAC,2BAA2B,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAe5F;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,oBAAoB;IAwI5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,cAAc;IAsHtB;;;;;;;;;;;;OAYG;IACH;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,UAAU;IAuDlB,OAAO,CAAC,kBAAkB;IA2B1B,OAAO,CAAC,WAAW;CA6CpB"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
package/dist/engine.js CHANGED
@@ -9392,6 +9392,25 @@ export class Engine {
9392
9392
  this.physicsFloor = on;
9393
9393
  this.forEachInstance((inst) => inst.physics?.setFloor(on));
9394
9394
  }
9395
+ /**
9396
+ * Keep one model's cloth simulating while it is hidden.
9397
+ *
9398
+ * For scheduled visibility — a costume the scene swaps to, a double that
9399
+ * appears mid-shot. The body of a hidden model animates either way, so what
9400
+ * this buys is the cloth: switch it on and the skirt is already moving when
9401
+ * the model is revealed, instead of falling into place from rest in view.
9402
+ *
9403
+ * Per model rather than scene-wide, because it is exactly the models taking
9404
+ * part in a swap that need it, and a scene that never swaps should not pay
9405
+ * for cloth nobody can see.
9406
+ */
9407
+ setModelPhysicsWhileHidden(modelName, on) {
9408
+ const inst = this.modelInstances.get(modelName);
9409
+ if (!inst)
9410
+ return false;
9411
+ inst.simulateWhileHidden = on;
9412
+ return true;
9413
+ }
9395
9414
  getPhysicsFloor() {
9396
9415
  return this.physicsFloor;
9397
9416
  }
@@ -9475,10 +9494,13 @@ export class Engine {
9475
9494
  inst.vertexBufferNeedsUpdate = true;
9476
9495
  }
9477
9496
  // Hidden models keep animating (cheap, and a reveal must not pop a stale
9478
- // pose) but skip cloth simulation entirely — a roster of resident
9497
+ // pose) but skip cloth simulation by default — a roster of resident
9479
9498
  // alternate skins would otherwise pay full physics for invisible cloth.
9480
- // Hosts that reveal after long hiding reset physics anyway (resetPhysics).
9481
- if (inst.physics && this.physicsEnabled && inst.model.visible) {
9499
+ //
9500
+ // UNLESS the host asked for it: a model whose visibility is scheduled has
9501
+ // to arrive with its skirt already in motion, and cloth caught up at the
9502
+ // reveal is a snap everyone sees. See setModelPhysicsWhileHidden.
9503
+ if (inst.physics && this.physicsEnabled && (inst.model.visible || inst.simulateWhileHidden)) {
9482
9504
  const tPhys = performance.now();
9483
9505
  inst.physics.step(deltaTime, inst.model.getWorldMatrices(), inst.model.getBoneInverseBindMatrices());
9484
9506
  // The step published new world matrices for the simulated bones; the
@@ -10498,6 +10520,7 @@ export class Engine {
10498
10520
  const inst = {
10499
10521
  name,
10500
10522
  model,
10523
+ simulateWhileHidden: false,
10501
10524
  basePath,
10502
10525
  assetReader,
10503
10526
  gpuBuffers,
@@ -12978,7 +13001,7 @@ export class Engine {
12978
13001
  let n = 0;
12979
13002
  let found = null;
12980
13003
  this.forEachInstance((inst) => {
12981
- if (found !== null || n >= MAX_EFFECT_SUBJECTS || inst.isStage || inst.isPlane || inst.isProp)
13004
+ if (found !== null || n >= MAX_EFFECT_SUBJECTS || inst.isStage || inst.isPlane || inst.isProp || !inst.model.visible)
12982
13005
  return;
12983
13006
  if (n === index)
12984
13007
  found = inst.name;
@@ -13681,9 +13704,14 @@ export class Engine {
13681
13704
  // video behind her and none at all around her. Four is the cap because the
13682
13705
  // uniform is small and a scene with five characters is not the case this
13683
13706
  // serves.
13707
+ // A HIDDEN model is not a subject either, and that is not tidiness: a
13708
+ // scene holding a costume's twin keeps it loaded and invisible, and with
13709
+ // it in the list it takes subject 0 by load order — so Teleportation
13710
+ // spawned its motes off a body nobody could see, and the silhouette field
13711
+ // seeded on one. The cast is who is ON STAGE.
13684
13712
  let n = 0;
13685
13713
  this.forEachInstance((inst) => {
13686
- if (n >= MAX_EFFECT_SUBJECTS || inst.isStage || inst.isPlane || inst.isProp)
13714
+ if (n >= MAX_EFFECT_SUBJECTS || inst.isStage || inst.isPlane || inst.isProp || !inst.model.visible)
13687
13715
  return;
13688
13716
  const m = inst.model;
13689
13717
  // The model transform is only where the model was PLACED. A motion moves
@@ -103,7 +103,7 @@ ${discard}
103
103
  // as burning away rather than as a stencil moving over her.
104
104
  var rz_burn = 0.0;
105
105
  if (material.dissolve < 0.9995) {
106
- let rz_t = rz_dissolve_threshold(input.restPos);
106
+ let rz_t = input.faceT;
107
107
  if (rz_t > material.dissolve) { discard; }
108
108
  // Put OUT as the last of her goes. Near zero the front is wider than what
109
109
  // is left of the surface, so every surviving fragment sits inside it and
@@ -19,6 +19,6 @@ export declare function commonFsOutWgsl(): string;
19
19
  * clumps of a few millimetres rather than as single-pixel snow, which at any
20
20
  * distance is just a fade.
21
21
  */
22
- export declare const DISSOLVE_WGSL = "\n/** Clump size, in object-space units \u2014 MMD's are roughly centimetres. */\nconst RZ_DISSOLVE_GRAIN: f32 = 0.42;\n/** How much the clumps pull a fragment off its own grit value \u2014 the whole of\n * the LOOK, and none of the rate. See rz_dissolve_threshold. */\nconst RZ_DISSOLVE_CLUMP: f32 = 0.6;\n/** Grit cell, as a fraction of a clump. See rz_dissolve_threshold: this is what\n * keeps a material SMALLER than a clump from having one threshold for all of\n * it, and it has to be smaller than the SMALLEST material a model carries \u2014\n * an eye highlight, a button, a buckle \u2014 not merely small. Two and a half\n * millimetres on a normal model, which is under all of them. */\nconst RZ_DISSOLVE_GRIT: f32 = 0.06;\n/** How wide the glowing front is, in threshold units. Thin: the front is a\n * rim, and a wide one lights whole limbs at once. */\nconst RZ_DISSOLVE_EDGE: f32 = 0.11;\n/** What the front burns with. Emission, added after lighting and after the\n * graph \u2014 a colour that ramps or takes a shadow reads as paint, not as heat.\n * Above 1 on purpose: it is meant to reach the bloom pyramid. Blue-violet,\n * the same light the motes leaving her are drawn and lit with. */\nconst RZ_BURN_COLOR: vec3f = vec3f(0.45, 0.62, 2.40);\n\nfn rz_dissolve_hash(p: vec3f) -> f32 {\n // INTEGER, for exactly the reason _hash33 in nodes.ts is, and its comment\n // says it: above 24 bits an f32 loses the low ones. The float hash this\n // replaces multiplied three terms into the hundreds of millions and took\n // fract() of the product \u2014 which past 2^24 is not noise, it is a quantised\n // staircase, and wherever that staircase landed on zero the threshold was\n // zero. A surface whose threshold is zero never crosses it: it stays behind\n // while the rest of her leaves, and it sits inside the burning front the\n // whole time she is gone. Those were the white pieces that would not go.\n //\n // Floored first, unlike _hash33: vec3i() truncates toward zero, so -0.5 and\n // +0.5 are the same cell, and half this model is at negative x.\n var h = vec3u(vec3i(floor(p)) + vec3i(32768));\n h = h * vec3u(1664525u, 1013904223u, 2654435761u);\n h = (h.yzx ^ h) * vec3u(2246822519u, 3266489917u, 668265263u);\n h = h ^ (h >> vec3u(16u));\n return f32((h.x ^ h.y ^ h.z) & 16777215u) * (1.0 / 16777216.0);\n}\n\n/** Value noise over that hash \u2014 smooth within a flake, uncorrelated between. */\nfn rz_dissolve_field(p: vec3f) -> f32 {\n let i = floor(p);\n let f = fract(p);\n let u = f * f * (3.0 - 2.0 * f);\n let c000 = rz_dissolve_hash(i);\n let c100 = rz_dissolve_hash(i + vec3f(1.0, 0.0, 0.0));\n let c010 = rz_dissolve_hash(i + vec3f(0.0, 1.0, 0.0));\n let c110 = rz_dissolve_hash(i + vec3f(1.0, 1.0, 0.0));\n let c001 = rz_dissolve_hash(i + vec3f(0.0, 0.0, 1.0));\n let c101 = rz_dissolve_hash(i + vec3f(1.0, 0.0, 1.0));\n let c011 = rz_dissolve_hash(i + vec3f(0.0, 1.0, 1.0));\n let c111 = rz_dissolve_hash(i + vec3f(1.0, 1.0, 1.0));\n let x00 = mix(c000, c100, u.x);\n let x10 = mix(c010, c110, u.x);\n let x01 = mix(c001, c101, u.x);\n let x11 = mix(c011, c111, u.x);\n return mix(mix(x00, x10, u.y), mix(x01, x11, u.y), u.z);\n}\n\n/**\n * The threshold this fragment is measured against.\n *\n * NOISE ALONE, so the whole body comes apart at once \u2014 a hand, a shoulder and\n * an ankle all thinning together rather than a line travelling up her. It was\n * tilted by height at first, on the argument that a sweep reads as something\n * happening TO her; what it actually reads as is a wipe, and a wipe has a\n * direction, an edge and a speed the rest of the effect knows nothing about.\n * Everywhere at once is also the honest match for what leaves: the motes are\n * shed from every limb in the same breath.\n *\n * TWO SCALES. Clumps alone meant every fragment of a material SMALLER than one\n * cell shared a single threshold: an eye highlight, a brow, a button, a hair\n * clip. All of it sat inside the glowing front at once, so the piece flashed\n * white as a whole and then popped \u2014 the two things a disintegration must never\n * do. The grit is a per-cell hash at a fraction of the clump, so a part a few\n * millimetres across still comes apart in pieces.\n *\n * THE GRIT IS THE BASE, though, and the clumps only push a fragment off it.\n * That ordering is what makes the dissolve smooth, and it is not obvious: the\n * two used to be WEIGHTED AND ADDED, and a sum is not uniformly distributed\n * however uniform each half is. It piles up in the middle, so most of the\n * surface had a threshold near a half \u2014 all of it went as the dissolve swept\n * through the middle, and what remained was the thin tail near zero. That tail\n * was the second stage everyone could see: a body that mostly vanished, then a\n * scatter of glowing scraps, then nothing.\n *\n * WRAPPED, not added. Offsetting a uniform value and taking fract() leaves it\n * EXACTLY uniform, where scaling a sum back into range only flattens the middle\n * \u2014 measured over four hundred thousand samples, the sum removed 12% of her per\n * step at the halfway mark and 0.1% at each end (a 110x swing), the scaled sum\n * still swung 89x, and the wrap is flat: 5.0% per step from the first flake to\n * the last, a ratio of 1.0.\n *\n * That flatness IS the smoothness. An uneven rate is what produced the two\n * stages you could see \u2014 a body that mostly vanished at once, then a scatter of\n * scraps that took as long again to follow.\n *\n * The clumping survives the wrap: neighbouring fragments share a clump value,\n * so the offset moves them together. What wraps past 1 comes back at 0 and goes\n * at the other end instead, which costs a little speckle in a region and buys\n * an even rate everywhere.\n */\nfn rz_dissolve_threshold(restPos: vec3f) -> f32 {\n let grit = rz_dissolve_hash(floor(restPos / (RZ_DISSOLVE_GRAIN * RZ_DISSOLVE_GRIT)));\n let clump = rz_dissolve_field(restPos / RZ_DISSOLVE_GRAIN) - 0.5;\n return fract(grit + clump * RZ_DISSOLVE_CLUMP);\n}\n";
22
+ export declare const DISSOLVE_WGSL = "\n/** Clump size, in object-space units \u2014 MMD's are roughly centimetres.\n *\n * Raised from 0.42: at that size the pieces are near enough to speckle that a\n * departure reads as a fade rather than as a body coming apart, which is the\n * thing the clumping exists to avoid. Hand-sized pieces are visible ones. */\nconst RZ_DISSOLVE_GRAIN: f32 = 1.2;\n/** How much the clumps pull a fragment off its own grit value \u2014 the whole of\n * the LOOK, and none of the rate. See rz_dissolve_threshold. */\nconst RZ_DISSOLVE_CLUMP: f32 = 0.6;\n/** Grit cell, as a fraction of a clump. See rz_dissolve_threshold: this is what\n * keeps a material SMALLER than a clump from having one threshold for all of\n * it, and it has to be smaller than the SMALLEST material a model carries \u2014\n * an eye highlight, a button, a buckle \u2014 not merely small. Two and a half\n * millimetres on a normal model, which is under all of them. */\nconst RZ_DISSOLVE_GRIT: f32 = 0.021;\n/** How wide the glowing front is, in threshold units. Thin: the front is a\n * rim, and a wide one lights whole limbs at once. */\nconst RZ_DISSOLVE_EDGE: f32 = 0.11;\n/** What the front burns with. Emission, added after lighting and after the\n * graph \u2014 a colour that ramps or takes a shadow reads as paint, not as heat.\n * Above 1 on purpose: it is meant to reach the bloom pyramid. Blue-violet,\n * the same light the motes leaving her are drawn and lit with. */\nconst RZ_BURN_COLOR: vec3f = vec3f(0.45, 0.62, 2.40);\n\nfn rz_dissolve_hash(p: vec3f) -> f32 {\n // INTEGER, for exactly the reason _hash33 in nodes.ts is, and its comment\n // says it: above 24 bits an f32 loses the low ones. The float hash this\n // replaces multiplied three terms into the hundreds of millions and took\n // fract() of the product \u2014 which past 2^24 is not noise, it is a quantised\n // staircase, and wherever that staircase landed on zero the threshold was\n // zero. A surface whose threshold is zero never crosses it: it stays behind\n // while the rest of her leaves, and it sits inside the burning front the\n // whole time she is gone. Those were the white pieces that would not go.\n //\n // Floored first, unlike _hash33: vec3i() truncates toward zero, so -0.5 and\n // +0.5 are the same cell, and half this model is at negative x.\n var h = vec3u(vec3i(floor(p)) + vec3i(32768));\n h = h * vec3u(1664525u, 1013904223u, 2654435761u);\n h = (h.yzx ^ h) * vec3u(2246822519u, 3266489917u, 668265263u);\n h = h ^ (h >> vec3u(16u));\n return f32((h.x ^ h.y ^ h.z) & 16777215u) * (1.0 / 16777216.0);\n}\n\n/** Value noise over that hash \u2014 smooth within a flake, uncorrelated between. */\nfn rz_dissolve_field(p: vec3f) -> f32 {\n let i = floor(p);\n let f = fract(p);\n let u = f * f * (3.0 - 2.0 * f);\n let c000 = rz_dissolve_hash(i);\n let c100 = rz_dissolve_hash(i + vec3f(1.0, 0.0, 0.0));\n let c010 = rz_dissolve_hash(i + vec3f(0.0, 1.0, 0.0));\n let c110 = rz_dissolve_hash(i + vec3f(1.0, 1.0, 0.0));\n let c001 = rz_dissolve_hash(i + vec3f(0.0, 0.0, 1.0));\n let c101 = rz_dissolve_hash(i + vec3f(1.0, 0.0, 1.0));\n let c011 = rz_dissolve_hash(i + vec3f(0.0, 1.0, 1.0));\n let c111 = rz_dissolve_hash(i + vec3f(1.0, 1.0, 1.0));\n let x00 = mix(c000, c100, u.x);\n let x10 = mix(c010, c110, u.x);\n let x01 = mix(c001, c101, u.x);\n let x11 = mix(c011, c111, u.x);\n return mix(mix(x00, x10, u.y), mix(x01, x11, u.y), u.z);\n}\n\n/**\n * The threshold this fragment is measured against.\n *\n * NOISE ALONE, so the whole body comes apart at once \u2014 a hand, a shoulder and\n * an ankle all thinning together rather than a line travelling up her. It was\n * tilted by height at first, on the argument that a sweep reads as something\n * happening TO her; what it actually reads as is a wipe, and a wipe has a\n * direction, an edge and a speed the rest of the effect knows nothing about.\n * Everywhere at once is also the honest match for what leaves: the motes are\n * shed from every limb in the same breath.\n *\n * TWO SCALES. Clumps alone meant every fragment of a material SMALLER than one\n * cell shared a single threshold: an eye highlight, a brow, a button, a hair\n * clip. All of it sat inside the glowing front at once, so the piece flashed\n * white as a whole and then popped \u2014 the two things a disintegration must never\n * do. The grit is a per-cell hash at a fraction of the clump, so a part a few\n * millimetres across still comes apart in pieces.\n *\n * THE GRIT IS THE BASE, though, and the clumps only push a fragment off it.\n * That ordering is what makes the dissolve smooth, and it is not obvious: the\n * two used to be WEIGHTED AND ADDED, and a sum is not uniformly distributed\n * however uniform each half is. It piles up in the middle, so most of the\n * surface had a threshold near a half \u2014 all of it went as the dissolve swept\n * through the middle, and what remained was the thin tail near zero. That tail\n * was the second stage everyone could see: a body that mostly vanished, then a\n * scatter of glowing scraps, then nothing.\n *\n * WRAPPED, not added. Offsetting a uniform value and taking fract() leaves it\n * EXACTLY uniform, where scaling a sum back into range only flattens the middle\n * \u2014 measured over four hundred thousand samples, the sum removed 12% of her per\n * step at the halfway mark and 0.1% at each end (a 110x swing), the scaled sum\n * still swung 89x, and the wrap is flat: 5.0% per step from the first flake to\n * the last, a ratio of 1.0.\n *\n * That flatness IS the smoothness. An uneven rate is what produced the two\n * stages you could see \u2014 a body that mostly vanished at once, then a scatter of\n * scraps that took as long again to follow.\n *\n * The clumping survives the wrap: neighbouring fragments share a clump value,\n * so the offset moves them together. What wraps past 1 comes back at 0 and goes\n * at the other end instead, which costs a little speckle in a region and buys\n * an even rate everywhere.\n */\nfn rz_dissolve_threshold(restPos: vec3f) -> f32 {\n let grit = rz_dissolve_hash(floor(restPos / (RZ_DISSOLVE_GRAIN * RZ_DISSOLVE_GRIT)));\n let clump = rz_dissolve_field(restPos / RZ_DISSOLVE_GRAIN) - 0.5;\n return fract(grit + clump * RZ_DISSOLVE_CLUMP);\n}\n";
23
23
  export declare const COMMON_MATERIAL_PRELUDE_WGSL: string;
24
24
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/shaders/materials/common.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,oBAAoB,QAuHhC,CAAC;AAgIF,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAGD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,aAAa,k8LA4GzB,CAAA;AAQD,eAAO,MAAM,4BAA4B,QAC0D,CAAA"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/shaders/materials/common.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,oBAAoB,QAmIhC,CAAC;AAiIF,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAGD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,aAAa,orMAgHzB,CAAA;AAQD,eAAO,MAAM,4BAA4B,QAC0D,CAAA"}
@@ -96,6 +96,18 @@ struct VertexOutput {
96
96
  // At rest skinMats are identity so restPos == worldPos, which is why existing noise-
97
97
  // scale constants stay valid without retuning.
98
98
  @location(3) restPos: vec3f,
99
+ /**
100
+ * This TRIANGLE's dissolve threshold.
101
+ *
102
+ * FLAT, so every fragment of a face shares the provoking vertex's value and
103
+ * the face goes as a unit — the mesh comes apart in triangles that light and
104
+ * leave in turn, rather than in a scatter that crosses them. Computed in the
105
+ * vertex stage from the bind-pose attribute, which is what lets the depth
106
+ * prepass, the shadow map and the outline hull reach the same number for the
107
+ * same face: one function, one input, one provoking vertex, one answer. They
108
+ * must agree — a pass that disagrees punches holes through her.
109
+ */
110
+ @location(4) @interpolate(flat) faceT: f32,
99
111
  };
100
112
 
101
113
  // One view-projection per shadow cascade, inner to outer — the volumes built
@@ -231,6 +243,7 @@ const COMMON_VS_WGSL = /* wgsl */ `
231
243
  output.uv = uv;
232
244
  output.worldPos = skinnedPos.xyz;
233
245
  output.restPos = position;
246
+ output.faceT = rz_dissolve_threshold(position);
234
247
  return output;
235
248
  }
236
249
 
@@ -286,8 +299,12 @@ export function commonFsOutWgsl() {
286
299
  * distance is just a fade.
287
300
  */
288
301
  export const DISSOLVE_WGSL = /* wgsl */ `
289
- /** Clump size, in object-space units — MMD's are roughly centimetres. */
290
- const RZ_DISSOLVE_GRAIN: f32 = 0.42;
302
+ /** Clump size, in object-space units — MMD's are roughly centimetres.
303
+ *
304
+ * Raised from 0.42: at that size the pieces are near enough to speckle that a
305
+ * departure reads as a fade rather than as a body coming apart, which is the
306
+ * thing the clumping exists to avoid. Hand-sized pieces are visible ones. */
307
+ const RZ_DISSOLVE_GRAIN: f32 = 1.2;
291
308
  /** How much the clumps pull a fragment off its own grit value — the whole of
292
309
  * the LOOK, and none of the rate. See rz_dissolve_threshold. */
293
310
  const RZ_DISSOLVE_CLUMP: f32 = 0.6;
@@ -296,7 +313,7 @@ const RZ_DISSOLVE_CLUMP: f32 = 0.6;
296
313
  * it, and it has to be smaller than the SMALLEST material a model carries —
297
314
  * an eye highlight, a button, a buckle — not merely small. Two and a half
298
315
  * millimetres on a normal model, which is under all of them. */
299
- const RZ_DISSOLVE_GRIT: f32 = 0.06;
316
+ const RZ_DISSOLVE_GRIT: f32 = 0.021;
300
317
  /** How wide the glowing front is, in threshold units. Thin: the front is a
301
318
  * rim, and a wide one lights whole limbs at once. */
302
319
  const RZ_DISSOLVE_EDGE: f32 = 0.11;
@@ -1 +1 @@
1
- {"version":3,"file":"depth-prepass.d.ts","sourceRoot":"","sources":["../../../src/shaders/passes/depth-prepass.ts"],"names":[],"mappings":"AAgCA,wBAAgB,2BAA2B,IAAI,MAAM,CAsFpD"}
1
+ {"version":3,"file":"depth-prepass.d.ts","sourceRoot":"","sources":["../../../src/shaders/passes/depth-prepass.ts"],"names":[],"mappings":"AAgCA,wBAAgB,2BAA2B,IAAI,MAAM,CA0FpD"}
@@ -60,6 +60,9 @@ struct VSOut {
60
60
  // The bind-pose position, carried for one reason: the dissolve test below has
61
61
  // to be the SAME test the colour pass runs, and that one is in object space.
62
62
  @location(1) restPos: vec3f,
63
+ /** The triangle's own threshold, flat — see the material VertexOutput. This
64
+ * pass must throw away exactly the faces the colour pass does. */
65
+ @location(2) @interpolate(flat) faceT: f32,
63
66
  };
64
67
 
65
68
  @vertex fn vs(
@@ -81,6 +84,7 @@ struct VSOut {
81
84
  o.position = camera.projection * camera.view * vec4f(skinned.xyz, 1.0);
82
85
  o.uv = uv;
83
86
  o.restPos = position;
87
+ o.faceT = rz_dissolve_threshold(position);
84
88
  return o;
85
89
  }
86
90
 
@@ -107,7 +111,7 @@ override CUTOFF: f32 = 0.5;
107
111
  // the colour pass throws away would punch holes that occlude the floor behind
108
112
  // her: you would see sky through her, which is the failure this line exists
109
113
  // to prevent.
110
- if (material.dissolve < 0.9995 && rz_dissolve_threshold(in.restPos) > material.dissolve) { discard; }
114
+ if (material.dissolve < 0.9995 && in.faceT > material.dissolve) { discard; }
111
115
  var out: PrepassOut;
112
116
  out.color = vec4f(0.0);
113
117
  out.mask = vec4f(0.0);
@@ -1 +1 @@
1
- {"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../../src/shaders/passes/outline.ts"],"names":[],"mappings":"AAqBA;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,KAAK,CAAA;AAE5C,wBAAgB,iBAAiB,IAAI,MAAM,CAgI1C"}
1
+ {"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../../src/shaders/passes/outline.ts"],"names":[],"mappings":"AAqBA;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,KAAK,CAAA;AAE5C,wBAAgB,iBAAiB,IAAI,MAAM,CAoI1C"}
@@ -66,6 +66,9 @@ struct VertexOutput {
66
66
  * the depth prepass measure against, so all three agree about which flakes
67
67
  * are gone. */
68
68
  @location(1) restPos: vec3f,
69
+ /** The triangle's own threshold, flat — see the material VertexOutput. The
70
+ * hull traces the body's faces, so it has to lose the same ones. */
71
+ @location(2) @interpolate(flat) faceT: f32,
69
72
  };
70
73
 
71
74
  @vertex fn vs(
@@ -116,6 +119,7 @@ struct VertexOutput {
116
119
  output.position = vec4f(clipPos.xy + offset, clipPos.z, clipPos.w);
117
120
  output.uv = uv;
118
121
  output.restPos = position;
122
+ output.faceT = rz_dissolve_threshold(position);
119
123
  return output;
120
124
  }
121
125
 
@@ -141,7 +145,7 @@ ${sceneFsOutWgsl({ name: "FSOut", aux: "mask" })}
141
145
  // The same test the colour pass and the depth prepass run, against the same
142
146
  // bind-pose position — three passes, one rule, or they disagree about which
143
147
  // pieces are still there.
144
- if (material.dissolve < 0.9995 && rz_dissolve_threshold(input.restPos) > material.dissolve) { discard; }
148
+ if (material.dissolve < 0.9995 && input.faceT > material.dissolve) { discard; }
145
149
  let texA = textureSample(diffuseTexture, edgeSampler, input.uv).a;
146
150
  if (texA < 0.05) {
147
151
  discard;
@@ -1,2 +1,2 @@
1
- export declare const SHADOW_DEPTH_SHADER_WGSL = "\n\n/** Clump size, in object-space units \u2014 MMD's are roughly centimetres. */\nconst RZ_DISSOLVE_GRAIN: f32 = 0.42;\n/** How much the clumps pull a fragment off its own grit value \u2014 the whole of\n * the LOOK, and none of the rate. See rz_dissolve_threshold. */\nconst RZ_DISSOLVE_CLUMP: f32 = 0.6;\n/** Grit cell, as a fraction of a clump. See rz_dissolve_threshold: this is what\n * keeps a material SMALLER than a clump from having one threshold for all of\n * it, and it has to be smaller than the SMALLEST material a model carries \u2014\n * an eye highlight, a button, a buckle \u2014 not merely small. Two and a half\n * millimetres on a normal model, which is under all of them. */\nconst RZ_DISSOLVE_GRIT: f32 = 0.06;\n/** How wide the glowing front is, in threshold units. Thin: the front is a\n * rim, and a wide one lights whole limbs at once. */\nconst RZ_DISSOLVE_EDGE: f32 = 0.11;\n/** What the front burns with. Emission, added after lighting and after the\n * graph \u2014 a colour that ramps or takes a shadow reads as paint, not as heat.\n * Above 1 on purpose: it is meant to reach the bloom pyramid. Blue-violet,\n * the same light the motes leaving her are drawn and lit with. */\nconst RZ_BURN_COLOR: vec3f = vec3f(0.45, 0.62, 2.40);\n\nfn rz_dissolve_hash(p: vec3f) -> f32 {\n // INTEGER, for exactly the reason _hash33 in nodes.ts is, and its comment\n // says it: above 24 bits an f32 loses the low ones. The float hash this\n // replaces multiplied three terms into the hundreds of millions and took\n // fract() of the product \u2014 which past 2^24 is not noise, it is a quantised\n // staircase, and wherever that staircase landed on zero the threshold was\n // zero. A surface whose threshold is zero never crosses it: it stays behind\n // while the rest of her leaves, and it sits inside the burning front the\n // whole time she is gone. Those were the white pieces that would not go.\n //\n // Floored first, unlike _hash33: vec3i() truncates toward zero, so -0.5 and\n // +0.5 are the same cell, and half this model is at negative x.\n var h = vec3u(vec3i(floor(p)) + vec3i(32768));\n h = h * vec3u(1664525u, 1013904223u, 2654435761u);\n h = (h.yzx ^ h) * vec3u(2246822519u, 3266489917u, 668265263u);\n h = h ^ (h >> vec3u(16u));\n return f32((h.x ^ h.y ^ h.z) & 16777215u) * (1.0 / 16777216.0);\n}\n\n/** Value noise over that hash \u2014 smooth within a flake, uncorrelated between. */\nfn rz_dissolve_field(p: vec3f) -> f32 {\n let i = floor(p);\n let f = fract(p);\n let u = f * f * (3.0 - 2.0 * f);\n let c000 = rz_dissolve_hash(i);\n let c100 = rz_dissolve_hash(i + vec3f(1.0, 0.0, 0.0));\n let c010 = rz_dissolve_hash(i + vec3f(0.0, 1.0, 0.0));\n let c110 = rz_dissolve_hash(i + vec3f(1.0, 1.0, 0.0));\n let c001 = rz_dissolve_hash(i + vec3f(0.0, 0.0, 1.0));\n let c101 = rz_dissolve_hash(i + vec3f(1.0, 0.0, 1.0));\n let c011 = rz_dissolve_hash(i + vec3f(0.0, 1.0, 1.0));\n let c111 = rz_dissolve_hash(i + vec3f(1.0, 1.0, 1.0));\n let x00 = mix(c000, c100, u.x);\n let x10 = mix(c010, c110, u.x);\n let x01 = mix(c001, c101, u.x);\n let x11 = mix(c011, c111, u.x);\n return mix(mix(x00, x10, u.y), mix(x01, x11, u.y), u.z);\n}\n\n/**\n * The threshold this fragment is measured against.\n *\n * NOISE ALONE, so the whole body comes apart at once \u2014 a hand, a shoulder and\n * an ankle all thinning together rather than a line travelling up her. It was\n * tilted by height at first, on the argument that a sweep reads as something\n * happening TO her; what it actually reads as is a wipe, and a wipe has a\n * direction, an edge and a speed the rest of the effect knows nothing about.\n * Everywhere at once is also the honest match for what leaves: the motes are\n * shed from every limb in the same breath.\n *\n * TWO SCALES. Clumps alone meant every fragment of a material SMALLER than one\n * cell shared a single threshold: an eye highlight, a brow, a button, a hair\n * clip. All of it sat inside the glowing front at once, so the piece flashed\n * white as a whole and then popped \u2014 the two things a disintegration must never\n * do. The grit is a per-cell hash at a fraction of the clump, so a part a few\n * millimetres across still comes apart in pieces.\n *\n * THE GRIT IS THE BASE, though, and the clumps only push a fragment off it.\n * That ordering is what makes the dissolve smooth, and it is not obvious: the\n * two used to be WEIGHTED AND ADDED, and a sum is not uniformly distributed\n * however uniform each half is. It piles up in the middle, so most of the\n * surface had a threshold near a half \u2014 all of it went as the dissolve swept\n * through the middle, and what remained was the thin tail near zero. That tail\n * was the second stage everyone could see: a body that mostly vanished, then a\n * scatter of glowing scraps, then nothing.\n *\n * WRAPPED, not added. Offsetting a uniform value and taking fract() leaves it\n * EXACTLY uniform, where scaling a sum back into range only flattens the middle\n * \u2014 measured over four hundred thousand samples, the sum removed 12% of her per\n * step at the halfway mark and 0.1% at each end (a 110x swing), the scaled sum\n * still swung 89x, and the wrap is flat: 5.0% per step from the first flake to\n * the last, a ratio of 1.0.\n *\n * That flatness IS the smoothness. An uneven rate is what produced the two\n * stages you could see \u2014 a body that mostly vanished at once, then a scatter of\n * scraps that took as long again to follow.\n *\n * The clumping survives the wrap: neighbouring fragments share a clump value,\n * so the offset moves them together. What wraps past 1 comes back at 0 and goes\n * at the other end instead, which costs a little speckle in a region and buys\n * an even rate everywhere.\n */\nfn rz_dissolve_threshold(restPos: vec3f) -> f32 {\n let grit = rz_dissolve_hash(floor(restPos / (RZ_DISSOLVE_GRAIN * RZ_DISSOLVE_GRIT)));\n let clump = rz_dissolve_field(restPos / RZ_DISSOLVE_GRAIN) - 0.5;\n return fract(grit + clump * RZ_DISSOLVE_CLUMP);\n}\n\nstruct LightVP { viewProj: mat4x4f, };\n@group(0) @binding(0) var<uniform> lp: LightVP;\n@group(0) @binding(1) var<storage, read> skinMats: array<mat4x4f>;\n@group(0) @binding(2) var texSampler: sampler;\n@group(1) @binding(0) var diffuseTexture: texture_2d<f32>;\n// The head of the material block and the one field at its tail \u2014 the same\n// reach the depth prepass takes, and for the same reason: a shadow cast by a\n// body that is no longer drawn is the tell that the vanishing is a trick.\nstruct MaterialDiffuse {\n diffuse: vec4f,\n _skip0: vec4f,\n _skip1: vec4f,\n _skip2: vec3f,\n dissolve: f32,\n};\n@group(1) @binding(1) var<uniform> material: MaterialDiffuse;\n\nstruct VSOut {\n @builtin(position) position: vec4f,\n @location(0) uv: vec2f,\n /** Bind-pose position, for the dissolve test \u2014 object space, as everywhere. */\n @location(1) restPos: vec3f,\n};\n\n@vertex fn vs(@location(0) position: vec3f, @location(1) normal: vec3f, @location(2) uv: vec2f,\n @location(3) joints0: vec4<u32>, @location(4) weights0: vec4<f32>) -> VSOut {\n let pos4 = vec4f(position, 1.0);\n let ws = weights0.x + weights0.y + weights0.z + weights0.w;\n let inv = select(1.0, 1.0 / ws, ws > 0.0001);\n let nw = select(vec4f(1.0,0.0,0.0,0.0), weights0 * inv, ws > 0.0001);\n var sp = vec4f(0.0);\n for (var i = 0u; i < 4u; i++) { sp += (skinMats[joints0[i]] * pos4) * nw[i]; }\n var out: VSOut;\n out.position = lp.viewProj * vec4f(sp.xyz, 1.0);\n out.uv = uv;\n out.restPos = position;\n return out;\n}\n\n@fragment fn fs(in: VSOut) {\n let alpha = textureSample(diffuseTexture, texSampler, in.uv).a * material.diffuse.a;\n if (alpha < 0.5) { discard; }\n // The dissolve, run as the colour pass runs it. A flake that is gone stops\n // casting: without this she leaves a whole shadow standing on the floor while\n // her body is in the air.\n if (material.dissolve < 0.9995 && rz_dissolve_threshold(in.restPos) > material.dissolve) { discard; }\n}\n";
1
+ export declare const SHADOW_DEPTH_SHADER_WGSL = "\n\n/** Clump size, in object-space units \u2014 MMD's are roughly centimetres.\n *\n * Raised from 0.42: at that size the pieces are near enough to speckle that a\n * departure reads as a fade rather than as a body coming apart, which is the\n * thing the clumping exists to avoid. Hand-sized pieces are visible ones. */\nconst RZ_DISSOLVE_GRAIN: f32 = 1.2;\n/** How much the clumps pull a fragment off its own grit value \u2014 the whole of\n * the LOOK, and none of the rate. See rz_dissolve_threshold. */\nconst RZ_DISSOLVE_CLUMP: f32 = 0.6;\n/** Grit cell, as a fraction of a clump. See rz_dissolve_threshold: this is what\n * keeps a material SMALLER than a clump from having one threshold for all of\n * it, and it has to be smaller than the SMALLEST material a model carries \u2014\n * an eye highlight, a button, a buckle \u2014 not merely small. Two and a half\n * millimetres on a normal model, which is under all of them. */\nconst RZ_DISSOLVE_GRIT: f32 = 0.021;\n/** How wide the glowing front is, in threshold units. Thin: the front is a\n * rim, and a wide one lights whole limbs at once. */\nconst RZ_DISSOLVE_EDGE: f32 = 0.11;\n/** What the front burns with. Emission, added after lighting and after the\n * graph \u2014 a colour that ramps or takes a shadow reads as paint, not as heat.\n * Above 1 on purpose: it is meant to reach the bloom pyramid. Blue-violet,\n * the same light the motes leaving her are drawn and lit with. */\nconst RZ_BURN_COLOR: vec3f = vec3f(0.45, 0.62, 2.40);\n\nfn rz_dissolve_hash(p: vec3f) -> f32 {\n // INTEGER, for exactly the reason _hash33 in nodes.ts is, and its comment\n // says it: above 24 bits an f32 loses the low ones. The float hash this\n // replaces multiplied three terms into the hundreds of millions and took\n // fract() of the product \u2014 which past 2^24 is not noise, it is a quantised\n // staircase, and wherever that staircase landed on zero the threshold was\n // zero. A surface whose threshold is zero never crosses it: it stays behind\n // while the rest of her leaves, and it sits inside the burning front the\n // whole time she is gone. Those were the white pieces that would not go.\n //\n // Floored first, unlike _hash33: vec3i() truncates toward zero, so -0.5 and\n // +0.5 are the same cell, and half this model is at negative x.\n var h = vec3u(vec3i(floor(p)) + vec3i(32768));\n h = h * vec3u(1664525u, 1013904223u, 2654435761u);\n h = (h.yzx ^ h) * vec3u(2246822519u, 3266489917u, 668265263u);\n h = h ^ (h >> vec3u(16u));\n return f32((h.x ^ h.y ^ h.z) & 16777215u) * (1.0 / 16777216.0);\n}\n\n/** Value noise over that hash \u2014 smooth within a flake, uncorrelated between. */\nfn rz_dissolve_field(p: vec3f) -> f32 {\n let i = floor(p);\n let f = fract(p);\n let u = f * f * (3.0 - 2.0 * f);\n let c000 = rz_dissolve_hash(i);\n let c100 = rz_dissolve_hash(i + vec3f(1.0, 0.0, 0.0));\n let c010 = rz_dissolve_hash(i + vec3f(0.0, 1.0, 0.0));\n let c110 = rz_dissolve_hash(i + vec3f(1.0, 1.0, 0.0));\n let c001 = rz_dissolve_hash(i + vec3f(0.0, 0.0, 1.0));\n let c101 = rz_dissolve_hash(i + vec3f(1.0, 0.0, 1.0));\n let c011 = rz_dissolve_hash(i + vec3f(0.0, 1.0, 1.0));\n let c111 = rz_dissolve_hash(i + vec3f(1.0, 1.0, 1.0));\n let x00 = mix(c000, c100, u.x);\n let x10 = mix(c010, c110, u.x);\n let x01 = mix(c001, c101, u.x);\n let x11 = mix(c011, c111, u.x);\n return mix(mix(x00, x10, u.y), mix(x01, x11, u.y), u.z);\n}\n\n/**\n * The threshold this fragment is measured against.\n *\n * NOISE ALONE, so the whole body comes apart at once \u2014 a hand, a shoulder and\n * an ankle all thinning together rather than a line travelling up her. It was\n * tilted by height at first, on the argument that a sweep reads as something\n * happening TO her; what it actually reads as is a wipe, and a wipe has a\n * direction, an edge and a speed the rest of the effect knows nothing about.\n * Everywhere at once is also the honest match for what leaves: the motes are\n * shed from every limb in the same breath.\n *\n * TWO SCALES. Clumps alone meant every fragment of a material SMALLER than one\n * cell shared a single threshold: an eye highlight, a brow, a button, a hair\n * clip. All of it sat inside the glowing front at once, so the piece flashed\n * white as a whole and then popped \u2014 the two things a disintegration must never\n * do. The grit is a per-cell hash at a fraction of the clump, so a part a few\n * millimetres across still comes apart in pieces.\n *\n * THE GRIT IS THE BASE, though, and the clumps only push a fragment off it.\n * That ordering is what makes the dissolve smooth, and it is not obvious: the\n * two used to be WEIGHTED AND ADDED, and a sum is not uniformly distributed\n * however uniform each half is. It piles up in the middle, so most of the\n * surface had a threshold near a half \u2014 all of it went as the dissolve swept\n * through the middle, and what remained was the thin tail near zero. That tail\n * was the second stage everyone could see: a body that mostly vanished, then a\n * scatter of glowing scraps, then nothing.\n *\n * WRAPPED, not added. Offsetting a uniform value and taking fract() leaves it\n * EXACTLY uniform, where scaling a sum back into range only flattens the middle\n * \u2014 measured over four hundred thousand samples, the sum removed 12% of her per\n * step at the halfway mark and 0.1% at each end (a 110x swing), the scaled sum\n * still swung 89x, and the wrap is flat: 5.0% per step from the first flake to\n * the last, a ratio of 1.0.\n *\n * That flatness IS the smoothness. An uneven rate is what produced the two\n * stages you could see \u2014 a body that mostly vanished at once, then a scatter of\n * scraps that took as long again to follow.\n *\n * The clumping survives the wrap: neighbouring fragments share a clump value,\n * so the offset moves them together. What wraps past 1 comes back at 0 and goes\n * at the other end instead, which costs a little speckle in a region and buys\n * an even rate everywhere.\n */\nfn rz_dissolve_threshold(restPos: vec3f) -> f32 {\n let grit = rz_dissolve_hash(floor(restPos / (RZ_DISSOLVE_GRAIN * RZ_DISSOLVE_GRIT)));\n let clump = rz_dissolve_field(restPos / RZ_DISSOLVE_GRAIN) - 0.5;\n return fract(grit + clump * RZ_DISSOLVE_CLUMP);\n}\n\nstruct LightVP { viewProj: mat4x4f, };\n@group(0) @binding(0) var<uniform> lp: LightVP;\n@group(0) @binding(1) var<storage, read> skinMats: array<mat4x4f>;\n@group(0) @binding(2) var texSampler: sampler;\n@group(1) @binding(0) var diffuseTexture: texture_2d<f32>;\n// The head of the material block and the one field at its tail \u2014 the same\n// reach the depth prepass takes, and for the same reason: a shadow cast by a\n// body that is no longer drawn is the tell that the vanishing is a trick.\nstruct MaterialDiffuse {\n diffuse: vec4f,\n _skip0: vec4f,\n _skip1: vec4f,\n _skip2: vec3f,\n dissolve: f32,\n};\n@group(1) @binding(1) var<uniform> material: MaterialDiffuse;\n\nstruct VSOut {\n @builtin(position) position: vec4f,\n @location(0) uv: vec2f,\n /** Bind-pose position, for the dissolve test \u2014 object space, as everywhere. */\n @location(1) restPos: vec3f,\n /** The triangle's own threshold, flat \u2014 see the material VertexOutput. A\n * face that is gone must stop casting, and stop as a whole face. */\n @location(2) @interpolate(flat) faceT: f32,\n};\n\n@vertex fn vs(@location(0) position: vec3f, @location(1) normal: vec3f, @location(2) uv: vec2f,\n @location(3) joints0: vec4<u32>, @location(4) weights0: vec4<f32>) -> VSOut {\n let pos4 = vec4f(position, 1.0);\n let ws = weights0.x + weights0.y + weights0.z + weights0.w;\n let inv = select(1.0, 1.0 / ws, ws > 0.0001);\n let nw = select(vec4f(1.0,0.0,0.0,0.0), weights0 * inv, ws > 0.0001);\n var sp = vec4f(0.0);\n for (var i = 0u; i < 4u; i++) { sp += (skinMats[joints0[i]] * pos4) * nw[i]; }\n var out: VSOut;\n out.position = lp.viewProj * vec4f(sp.xyz, 1.0);\n out.uv = uv;\n out.restPos = position;\n out.faceT = rz_dissolve_threshold(position);\n return out;\n}\n\n@fragment fn fs(in: VSOut) {\n let alpha = textureSample(diffuseTexture, texSampler, in.uv).a * material.diffuse.a;\n if (alpha < 0.5) { discard; }\n // The dissolve, run as the colour pass runs it. A flake that is gone stops\n // casting: without this she leaves a whole shadow standing on the floor while\n // her body is in the air.\n if (material.dissolve < 0.9995 && in.faceT > material.dissolve) { discard; }\n}\n";
2
2
  //# sourceMappingURL=shadow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../../src/shaders/passes/shadow.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,wBAAwB,s4PAiDpC,CAAA"}
1
+ {"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../../src/shaders/passes/shadow.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,wBAAwB,y1QAqDpC,CAAA"}
@@ -29,6 +29,9 @@ struct VSOut {
29
29
  @location(0) uv: vec2f,
30
30
  /** Bind-pose position, for the dissolve test — object space, as everywhere. */
31
31
  @location(1) restPos: vec3f,
32
+ /** The triangle's own threshold, flat — see the material VertexOutput. A
33
+ * face that is gone must stop casting, and stop as a whole face. */
34
+ @location(2) @interpolate(flat) faceT: f32,
32
35
  };
33
36
 
34
37
  @vertex fn vs(@location(0) position: vec3f, @location(1) normal: vec3f, @location(2) uv: vec2f,
@@ -43,6 +46,7 @@ struct VSOut {
43
46
  out.position = lp.viewProj * vec4f(sp.xyz, 1.0);
44
47
  out.uv = uv;
45
48
  out.restPos = position;
49
+ out.faceT = rz_dissolve_threshold(position);
46
50
  return out;
47
51
  }
48
52
 
@@ -52,6 +56,6 @@ struct VSOut {
52
56
  // The dissolve, run as the colour pass runs it. A flake that is gone stops
53
57
  // casting: without this she leaves a whole shadow standing on the floor while
54
58
  // her body is in the air.
55
- if (material.dissolve < 0.9995 && rz_dissolve_threshold(in.restPos) > material.dissolve) { discard; }
59
+ if (material.dissolve < 0.9995 && in.faceT > material.dissolve) { discard; }
56
60
  }
57
61
  `;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reze-engine",
3
- "version": "0.56.8",
3
+ "version": "0.56.9",
4
4
  "description": "A lightweight WebGPU engine for real-time 3D MMD/PMX model rendering",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
package/src/engine.ts CHANGED
@@ -783,6 +783,17 @@ interface ModelInstance {
783
783
  * outline. Kept here so that write has somewhere to go. */
784
784
  outlineUniformBuffers: GPUBuffer[]
785
785
  model: Model
786
+ /**
787
+ * Keep simulating this model's cloth while it is HIDDEN.
788
+ *
789
+ * Off by default, which is what makes a roster of resident alternate skins
790
+ * affordable: invisible cloth costs nothing. On for a model whose visibility
791
+ * is scheduled, because the frame it appears on is the frame its skirt has to
792
+ * be already dancing — a dress simulated from rest at the reveal snaps into
793
+ * place in front of the audience, and that pop is the whole reason a costume
794
+ * change reads as a glitch rather than as a cut.
795
+ */
796
+ simulateWhileHidden: boolean
786
797
  basePath: string
787
798
  assetReader: AssetReader
788
799
  gpuBuffers: GPUBuffer[]
@@ -11029,6 +11040,25 @@ export class Engine {
11029
11040
  this.forEachInstance((inst) => inst.physics?.setFloor(on))
11030
11041
  }
11031
11042
 
11043
+ /**
11044
+ * Keep one model's cloth simulating while it is hidden.
11045
+ *
11046
+ * For scheduled visibility — a costume the scene swaps to, a double that
11047
+ * appears mid-shot. The body of a hidden model animates either way, so what
11048
+ * this buys is the cloth: switch it on and the skirt is already moving when
11049
+ * the model is revealed, instead of falling into place from rest in view.
11050
+ *
11051
+ * Per model rather than scene-wide, because it is exactly the models taking
11052
+ * part in a swap that need it, and a scene that never swaps should not pay
11053
+ * for cloth nobody can see.
11054
+ */
11055
+ setModelPhysicsWhileHidden(modelName: string, on: boolean): boolean {
11056
+ const inst = this.modelInstances.get(modelName)
11057
+ if (!inst) return false
11058
+ inst.simulateWhileHidden = on
11059
+ return true
11060
+ }
11061
+
11032
11062
  getPhysicsFloor(): boolean {
11033
11063
  return this.physicsFloor
11034
11064
  }
@@ -11120,10 +11150,13 @@ export class Engine {
11120
11150
  inst.vertexBufferNeedsUpdate = true
11121
11151
  }
11122
11152
  // Hidden models keep animating (cheap, and a reveal must not pop a stale
11123
- // pose) but skip cloth simulation entirely — a roster of resident
11153
+ // pose) but skip cloth simulation by default — a roster of resident
11124
11154
  // alternate skins would otherwise pay full physics for invisible cloth.
11125
- // Hosts that reveal after long hiding reset physics anyway (resetPhysics).
11126
- if (inst.physics && this.physicsEnabled && inst.model.visible) {
11155
+ //
11156
+ // UNLESS the host asked for it: a model whose visibility is scheduled has
11157
+ // to arrive with its skirt already in motion, and cloth caught up at the
11158
+ // reveal is a snap everyone sees. See setModelPhysicsWhileHidden.
11159
+ if (inst.physics && this.physicsEnabled && (inst.model.visible || inst.simulateWhileHidden)) {
11127
11160
  const tPhys = performance.now()
11128
11161
  inst.physics.step(deltaTime, inst.model.getWorldMatrices(), inst.model.getBoneInverseBindMatrices())
11129
11162
  // The step published new world matrices for the simulated bones; the
@@ -12218,6 +12251,7 @@ export class Engine {
12218
12251
  const inst: ModelInstance = {
12219
12252
  name,
12220
12253
  model,
12254
+ simulateWhileHidden: false,
12221
12255
  basePath,
12222
12256
  assetReader,
12223
12257
  gpuBuffers,
@@ -15086,7 +15120,8 @@ export class Engine {
15086
15120
  let n = 0
15087
15121
  let found: string | null = null
15088
15122
  this.forEachInstance((inst) => {
15089
- if (found !== null || n >= MAX_EFFECT_SUBJECTS || inst.isStage || inst.isPlane || inst.isProp) return
15123
+ if (found !== null || n >= MAX_EFFECT_SUBJECTS || inst.isStage || inst.isPlane || inst.isProp || !inst.model.visible)
15124
+ return
15090
15125
  if (n === index) found = inst.name
15091
15126
  n++
15092
15127
  })
@@ -15846,9 +15881,14 @@ export class Engine {
15846
15881
  // video behind her and none at all around her. Four is the cap because the
15847
15882
  // uniform is small and a scene with five characters is not the case this
15848
15883
  // serves.
15884
+ // A HIDDEN model is not a subject either, and that is not tidiness: a
15885
+ // scene holding a costume's twin keeps it loaded and invisible, and with
15886
+ // it in the list it takes subject 0 by load order — so Teleportation
15887
+ // spawned its motes off a body nobody could see, and the silhouette field
15888
+ // seeded on one. The cast is who is ON STAGE.
15849
15889
  let n = 0
15850
15890
  this.forEachInstance((inst) => {
15851
- if (n >= MAX_EFFECT_SUBJECTS || inst.isStage || inst.isPlane || inst.isProp) return
15891
+ if (n >= MAX_EFFECT_SUBJECTS || inst.isStage || inst.isPlane || inst.isProp || !inst.model.visible) return
15852
15892
  const m = inst.model
15853
15893
  // The model transform is only where the model was PLACED. A motion moves
15854
15894
  // the character by animating bones, so an effect anchored to the
@@ -115,7 +115,7 @@ ${discard}
115
115
  // as burning away rather than as a stencil moving over her.
116
116
  var rz_burn = 0.0;
117
117
  if (material.dissolve < 0.9995) {
118
- let rz_t = rz_dissolve_threshold(input.restPos);
118
+ let rz_t = input.faceT;
119
119
  if (rz_t > material.dissolve) { discard; }
120
120
  // Put OUT as the last of her goes. Near zero the front is wider than what
121
121
  // is left of the surface, so every surviving fragment sits inside it and
@@ -99,6 +99,18 @@ struct VertexOutput {
99
99
  // At rest skinMats are identity so restPos == worldPos, which is why existing noise-
100
100
  // scale constants stay valid without retuning.
101
101
  @location(3) restPos: vec3f,
102
+ /**
103
+ * This TRIANGLE's dissolve threshold.
104
+ *
105
+ * FLAT, so every fragment of a face shares the provoking vertex's value and
106
+ * the face goes as a unit — the mesh comes apart in triangles that light and
107
+ * leave in turn, rather than in a scatter that crosses them. Computed in the
108
+ * vertex stage from the bind-pose attribute, which is what lets the depth
109
+ * prepass, the shadow map and the outline hull reach the same number for the
110
+ * same face: one function, one input, one provoking vertex, one answer. They
111
+ * must agree — a pass that disagrees punches holes through her.
112
+ */
113
+ @location(4) @interpolate(flat) faceT: f32,
102
114
  };
103
115
 
104
116
  // One view-projection per shadow cascade, inner to outer — the volumes built
@@ -239,6 +251,7 @@ const COMMON_VS_WGSL = /* wgsl */ `
239
251
  output.uv = uv;
240
252
  output.worldPos = skinnedPos.xyz;
241
253
  output.restPos = position;
254
+ output.faceT = rz_dissolve_threshold(position);
242
255
  return output;
243
256
  }
244
257
 
@@ -297,8 +310,12 @@ export function commonFsOutWgsl(): string {
297
310
  * distance is just a fade.
298
311
  */
299
312
  export const DISSOLVE_WGSL = /* wgsl */ `
300
- /** Clump size, in object-space units — MMD's are roughly centimetres. */
301
- const RZ_DISSOLVE_GRAIN: f32 = 0.42;
313
+ /** Clump size, in object-space units — MMD's are roughly centimetres.
314
+ *
315
+ * Raised from 0.42: at that size the pieces are near enough to speckle that a
316
+ * departure reads as a fade rather than as a body coming apart, which is the
317
+ * thing the clumping exists to avoid. Hand-sized pieces are visible ones. */
318
+ const RZ_DISSOLVE_GRAIN: f32 = 1.2;
302
319
  /** How much the clumps pull a fragment off its own grit value — the whole of
303
320
  * the LOOK, and none of the rate. See rz_dissolve_threshold. */
304
321
  const RZ_DISSOLVE_CLUMP: f32 = 0.6;
@@ -307,7 +324,7 @@ const RZ_DISSOLVE_CLUMP: f32 = 0.6;
307
324
  * it, and it has to be smaller than the SMALLEST material a model carries —
308
325
  * an eye highlight, a button, a buckle — not merely small. Two and a half
309
326
  * millimetres on a normal model, which is under all of them. */
310
- const RZ_DISSOLVE_GRIT: f32 = 0.06;
327
+ const RZ_DISSOLVE_GRIT: f32 = 0.021;
311
328
  /** How wide the glowing front is, in threshold units. Thin: the front is a
312
329
  * rim, and a wide one lights whole limbs at once. */
313
330
  const RZ_DISSOLVE_EDGE: f32 = 0.11;
@@ -62,6 +62,9 @@ struct VSOut {
62
62
  // The bind-pose position, carried for one reason: the dissolve test below has
63
63
  // to be the SAME test the colour pass runs, and that one is in object space.
64
64
  @location(1) restPos: vec3f,
65
+ /** The triangle's own threshold, flat — see the material VertexOutput. This
66
+ * pass must throw away exactly the faces the colour pass does. */
67
+ @location(2) @interpolate(flat) faceT: f32,
65
68
  };
66
69
 
67
70
  @vertex fn vs(
@@ -83,6 +86,7 @@ struct VSOut {
83
86
  o.position = camera.projection * camera.view * vec4f(skinned.xyz, 1.0);
84
87
  o.uv = uv;
85
88
  o.restPos = position;
89
+ o.faceT = rz_dissolve_threshold(position);
86
90
  return o;
87
91
  }
88
92
 
@@ -109,7 +113,7 @@ override CUTOFF: f32 = 0.5;
109
113
  // the colour pass throws away would punch holes that occlude the floor behind
110
114
  // her: you would see sky through her, which is the failure this line exists
111
115
  // to prevent.
112
- if (material.dissolve < 0.9995 && rz_dissolve_threshold(in.restPos) > material.dissolve) { discard; }
116
+ if (material.dissolve < 0.9995 && in.faceT > material.dissolve) { discard; }
113
117
  var out: PrepassOut;
114
118
  out.color = vec4f(0.0);
115
119
  out.mask = vec4f(0.0);
@@ -70,6 +70,9 @@ struct VertexOutput {
70
70
  * the depth prepass measure against, so all three agree about which flakes
71
71
  * are gone. */
72
72
  @location(1) restPos: vec3f,
73
+ /** The triangle's own threshold, flat — see the material VertexOutput. The
74
+ * hull traces the body's faces, so it has to lose the same ones. */
75
+ @location(2) @interpolate(flat) faceT: f32,
73
76
  };
74
77
 
75
78
  @vertex fn vs(
@@ -120,6 +123,7 @@ struct VertexOutput {
120
123
  output.position = vec4f(clipPos.xy + offset, clipPos.z, clipPos.w);
121
124
  output.uv = uv;
122
125
  output.restPos = position;
126
+ output.faceT = rz_dissolve_threshold(position);
123
127
  return output;
124
128
  }
125
129
 
@@ -145,7 +149,7 @@ ${sceneFsOutWgsl({ name: "FSOut", aux: "mask" })}
145
149
  // The same test the colour pass and the depth prepass run, against the same
146
150
  // bind-pose position — three passes, one rule, or they disagree about which
147
151
  // pieces are still there.
148
- if (material.dissolve < 0.9995 && rz_dissolve_threshold(input.restPos) > material.dissolve) { discard; }
152
+ if (material.dissolve < 0.9995 && input.faceT > material.dissolve) { discard; }
149
153
  let texA = textureSample(diffuseTexture, edgeSampler, input.uv).a;
150
154
  if (texA < 0.05) {
151
155
  discard;
@@ -31,6 +31,9 @@ struct VSOut {
31
31
  @location(0) uv: vec2f,
32
32
  /** Bind-pose position, for the dissolve test — object space, as everywhere. */
33
33
  @location(1) restPos: vec3f,
34
+ /** The triangle's own threshold, flat — see the material VertexOutput. A
35
+ * face that is gone must stop casting, and stop as a whole face. */
36
+ @location(2) @interpolate(flat) faceT: f32,
34
37
  };
35
38
 
36
39
  @vertex fn vs(@location(0) position: vec3f, @location(1) normal: vec3f, @location(2) uv: vec2f,
@@ -45,6 +48,7 @@ struct VSOut {
45
48
  out.position = lp.viewProj * vec4f(sp.xyz, 1.0);
46
49
  out.uv = uv;
47
50
  out.restPos = position;
51
+ out.faceT = rz_dissolve_threshold(position);
48
52
  return out;
49
53
  }
50
54
 
@@ -54,6 +58,6 @@ struct VSOut {
54
58
  // The dissolve, run as the colour pass runs it. A flake that is gone stops
55
59
  // casting: without this she leaves a whole shadow standing on the floor while
56
60
  // her body is in the air.
57
- if (material.dissolve < 0.9995 && rz_dissolve_threshold(in.restPos) > material.dissolve) { discard; }
61
+ if (material.dissolve < 0.9995 && in.faceT > material.dissolve) { discard; }
58
62
  }
59
63
  `