vue-visual-kit 1.0.117 → 1.0.119
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/esm/index.esm.js +2 -0
- package/esm/index.esm.js.map +1 -0
- package/package.json +30 -6
- package/patches/@cornerstonejs+core+3.19.3.patch +122 -122
- package/patches/@cornerstonejs+tools+3.15.3.patch +166 -166
- package/lib/demo.html +0 -1
- package/lib/vue-visual-kit.common.js +0 -29076
- package/lib/vue-visual-kit.common.js.map +0 -1
- package/lib/vue-visual-kit.css +0 -1
- package/lib/vue-visual-kit.umd.js +0 -29127
- package/lib/vue-visual-kit.umd.js.map +0 -1
- package/lib/vue-visual-kit.umd.min.js +0 -2
- package/lib/vue-visual-kit.umd.min.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vue-visual-kit.umd.js","mappings":"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,IAA0B;AACnD,yBAAyB,mBAAO,CAAC,IAAkC;AACnE,8BAA8B,mBAAO,CAAC,IAAsC;AAC5E,uCAAuC,mBAAO,CAAC,IAA+C;;AAE9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,+CAA+C,oBAAoB;AACnE;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,oGAAoG,UAAU;AAC9G;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,eAAe;AAChE,CAAC;;AAED;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM,iBAAiB;AACvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,+CAA+C,qCAAqC;AACpF;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA,uDAAuD,YAAY;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,YAAY;AAChE;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA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;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;AACA;AACA;AACA;;;;;;;;;AC3Ca;AACb,iBAAiB,mBAAO,CAAC,IAA2B;;AAEpD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;AC3Da;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,iBAAiB,mBAAO,CAAC,IAA2B;AACpD,+BAA+B,mBAAO,CAAC,IAAyC;AAChF,qBAAqB,6BAAgD;AACrE,aAAa,mBAAO,CAAC,IAA+B;AACpD,iBAAiB,mBAAO,CAAC,GAA0B;AACnD,wBAAwB,mBAAO,CAAC,IAAkC;AAClE,8BAA8B,mBAAO,CAAC,IAAwC;AAC9E,4BAA4B,mBAAO,CAAC,IAAsC;AAC1E,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,cAAc,mBAAO,CAAC,IAAsB;;AAE5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI,wEAAwE,IAAI;AAChF;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA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AE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,CAAC,CAAC;EAACA,UAAU,CAAChH,SAAS,CAACkmB,IAAI,GAAC,YAAU;IAAC/lB,KAAK,CAACH,SAAS,CAACkmB,IAAI,CAACte,KAAK,CAAC,IAAI,EAAC3G,SAAS,CAAC;EAAA,CAAC,EAAC+F,UAAU,CAAChH,SAAS,CAACmG,KAAK,KAAGa,UAAU,CAAChH,SAAS,CAACmG,KAAK,GAAC,UAASF,CAAC,EAAC;IAAC,OAAO,IAAIe,UAAU,CAAC,IAAI,CAAC,CAACof,QAAQ,CAACngB,CAAC,CAAC;EAAA,CAAC,CAAC;EAAC,IAAIkQ,CAAC,GAAC,IAAIkQ,WAAW,CAAC,CAAC,MAAM,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,CAAC,CAAC;IAAC5e,CAAC,GAAC,IAAI4e,WAAW,CAAC,CAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,CAAC,CAAC;EAAC,OAAO,YAAU;IAAC,SAASthB,CAACA,CAACkB,CAAC,EAAC;MAAC5E,CAAC,CAAC,IAAI,EAAC0D,CAAC,CAAC,EAAC,IAAI,CAACuhB,KAAK,GAAC,IAAIvgB,CAAC,CAAD,CAAC;MAAC,IAAIJ,CAAC,GAAC,IAAI,CAAC2gB,KAAK,CAACC,yBAAyB,CAACtgB,CAAC,CAAC5B,GAAG,CAAC;MAAC,IAAG,EAAE,KAAGsB,CAAC,CAACzE,MAAM,EAAC,MAAM,IAAIqS,KAAK,CAAC,iCAAiC,CAAC;MAAC,IAAI,CAAClP,GAAG,GAACsB,CAAC;MAAC,IAAIe,CAAC,GAAC,IAAIM,UAAU,CAAC,CAAC,CAAC;MAAC,IAAG,KAAK,CAAC,KAAGf,CAAC,CAACugB,EAAE,IAAE,IAAI,KAAGvgB,CAAC,CAACugB,EAAE,IAAE,EAAE,KAAG,CAAC9f,CAAC,GAAC,IAAI,CAAC4f,KAAK,CAACC,yBAAyB,CAACtgB,CAAC,CAACugB,EAAE,CAAC,EAAEtlB,MAAM,EAAC,MAAM,IAAIqS,KAAK,CAAC,gCAAgC,CAAC;MAAC,IAAI,CAACiT,EAAE,GAAC9f,CAAC,EAAC,CAAC,IAAE,CAAC,IAAI,CAAC+f,IAAI,GAAC,KAAK,EAAC,KAAK,CAAC,CAACjd,OAAO,CAACvD,CAAC,CAACwgB,IAAI,CAAC,KAAG,IAAI,CAACA,IAAI,GAACxgB,CAAC,CAACwgB,IAAI,CAAC,EAAC,CAAC,IAAE,CAAC,IAAI,CAACC,UAAU,GAAC,QAAQ,EAAC,MAAM,CAAC,CAACld,OAAO,CAACvD,CAAC,CAAC0gB,OAAO,CAAC,KAAG,IAAI,CAACD,UAAU,GAACzgB,CAAC,CAAC0gB,OAAO,CAAC,EAAC,IAAI,CAACC,gBAAgB,GAAC,IAAIP,WAAW,CAAC,EAAE,CAAC,EAAC,IAAI,CAACQ,qBAAqB,CAAC,CAAC,EAACR,WAAW,CAACrmB,SAAS,CAAC8mB,OAAO,GAAC,YAAU;QAAC3mB,KAAK,CAACH,SAAS,CAAC8mB,OAAO,CAAClf,KAAK,CAAC,IAAI,EAAC3G,SAAS,CAAC;MAAA,CAAC,EAAC,IAAI,CAAC8lB,gBAAgB,GAAC,IAAIV,WAAW,CAAC,IAAI,CAACO,gBAAgB,CAAC,EAAC,IAAI,CAACG,gBAAgB,CAACD,OAAO,CAAC,CAAC;IAAA;IAAC,OAAO7gB,CAAC,CAAClB,CAAC,EAAC,CAAC;MAACV,GAAG,EAAC,cAAc;MAACzD,KAAK,EAAC,SAAAA,CAASqF,CAAC,EAACN,CAAC,EAAC;QAAC,IAAIe,CAAC,GAAC,IAAI2f,WAAW,CAAC,EAAE,CAAC;QAAC3f,CAAC,CAACsgB,GAAG,CAAC/gB,CAAC,EAAC,CAAC,CAAC;QAAC,KAAI,IAAIlB,CAAC,GAAC,CAAC,EAACA,CAAC,GAAC,EAAE,EAACA,CAAC,EAAE,EAAC2B,CAAC,CAAC3B,CAAC,GAAC,CAAC,CAAC,GAAC2B,CAAC,CAAC3B,CAAC,CAAC,GAAC,IAAI,CAACkiB,WAAW,CAACvgB,CAAC,CAAC3B,CAAC,GAAC,CAAC,CAAC,GAAC2B,CAAC,CAAC3B,CAAC,GAAC,CAAC,CAAC,GAAC2B,CAAC,CAAC3B,CAAC,GAAC,CAAC,CAAC,GAACY,CAAC,CAACZ,CAAC,CAAC,CAAC;QAAC,IAAI1D,CAAC,GAAC,IAAIglB,WAAW,CAAC,CAAC,CAAC;QAAC,OAAOhlB,CAAC,CAAC,CAAC,CAAC,GAACqF,CAAC,CAAC,EAAE,CAAC,EAACrF,CAAC,CAAC,CAAC,CAAC,GAACqF,CAAC,CAAC,EAAE,CAAC,EAACrF,CAAC,CAAC,CAAC,CAAC,GAACqF,CAAC,CAAC,EAAE,CAAC,EAACrF,CAAC,CAAC,CAAC,CAAC,GAACqF,CAAC,CAAC,EAAE,CAAC,EAACrF,CAAC;MAAA;IAAC,CAAC,EAAC;MAACgD,GAAG,EAAC,uBAAuB;MAACzD,KAAK,EAAC,SAAAA,CAAA,EAAU;QAAC,IAAIqF,CAAC,GAAC,IAAIogB,WAAW,CAAC,CAAC,CAAC;QAACpgB,CAAC,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC5B,GAAG,CAAC,CAAC,CAAC,IAAE,EAAE,GAAC,IAAI,CAACA,GAAG,CAAC,CAAC,CAAC,IAAE,EAAE,GAAC,IAAI,CAACA,GAAG,CAAC,CAAC,CAAC,IAAE,CAAC,GAAC,IAAI,CAACA,GAAG,CAAC,CAAC,CAAC,EAAC4B,CAAC,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC5B,GAAG,CAAC,CAAC,CAAC,IAAE,EAAE,GAAC,IAAI,CAACA,GAAG,CAAC,CAAC,CAAC,IAAE,EAAE,GAAC,IAAI,CAACA,GAAG,CAAC,CAAC,CAAC,IAAE,CAAC,GAAC,IAAI,CAACA,GAAG,CAAC,CAAC,CAAC,EAAC4B,CAAC,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC5B,GAAG,CAAC,CAAC,CAAC,IAAE,EAAE,GAAC,IAAI,CAACA,GAAG,CAAC,CAAC,CAAC,IAAE,EAAE,GAAC,IAAI,CAACA,GAAG,CAAC,EAAE,CAAC,IAAE,CAAC,GAAC,IAAI,CAACA,GAAG,CAAC,EAAE,CAAC,EAAC4B,CAAC,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC5B,GAAG,CAAC,EAAE,CAAC,IAAE,EAAE,GAAC,IAAI,CAACA,GAAG,CAAC,EAAE,CAAC,IAAE,EAAE,GAAC,IAAI,CAACA,GAAG,CAAC,EAAE,CAAC,IAAE,CAAC,GAAC,IAAI,CAACA,GAAG,CAAC,EAAE,CAAC;QAAC,IAAIsB,CAAC,GAAC,IAAI0gB,WAAW,CAAC,EAAE,CAAC;QAAC1gB,CAAC,CAAC,CAAC,CAAC,GAACM,CAAC,CAAC,CAAC,CAAC,GAACwB,CAAC,CAAC,CAAC,CAAC,EAAC9B,CAAC,CAAC,CAAC,CAAC,GAACM,CAAC,CAAC,CAAC,CAAC,GAACwB,CAAC,CAAC,CAAC,CAAC,EAAC9B,CAAC,CAAC,CAAC,CAAC,GAACM,CAAC,CAAC,CAAC,CAAC,GAACwB,CAAC,CAAC,CAAC,CAAC,EAAC9B,CAAC,CAAC,CAAC,CAAC,GAACM,CAAC,CAAC,CAAC,CAAC,GAACwB,CAAC,CAAC,CAAC,CAAC;QAAC,KAAI,IAAIf,CAAC,GAAC,CAAC,EAACA,CAAC,GAAC,EAAE,EAACA,CAAC,EAAE,EAACf,CAAC,CAACe,CAAC,GAAC,CAAC,CAAC,GAACf,CAAC,CAACe,CAAC,CAAC,GAAC,IAAI,CAACwgB,WAAW,CAACvhB,CAAC,CAACe,CAAC,GAAC,CAAC,CAAC,GAACf,CAAC,CAACe,CAAC,GAAC,CAAC,CAAC,GAACf,CAAC,CAACe,CAAC,GAAC,CAAC,CAAC,GAACyP,CAAC,CAACzP,CAAC,CAAC,CAAC,EAAC,IAAI,CAACkgB,gBAAgB,CAAClgB,CAAC,CAAC,GAACf,CAAC,CAACe,CAAC,GAAC,CAAC,CAAC;MAAA;IAAC,CAAC,EAAC;MAACrC,GAAG,EAAC,YAAY;MAACzD,KAAK,EAAC,SAAAA,CAASqF,CAAC,EAACN,CAAC,EAAC;QAAC,OAAOM,CAAC,IAAEN,CAAC,GAACM,CAAC,KAAG,EAAE,GAACN,CAAC;MAAA;IAAC,CAAC,EAAC;MAACtB,GAAG,EAAC,kBAAkB;MAACzD,KAAK,EAAC,SAAAA,CAASqF,CAAC,EAAC;QAAC,OAAOA,CAAC,GAAC,IAAI,CAACkhB,UAAU,CAAClhB,CAAC,EAAC,CAAC,CAAC,GAAC,IAAI,CAACkhB,UAAU,CAAClhB,CAAC,EAAC,EAAE,CAAC,GAAC,IAAI,CAACkhB,UAAU,CAAClhB,CAAC,EAAC,EAAE,CAAC,GAAC,IAAI,CAACkhB,UAAU,CAAClhB,CAAC,EAAC,EAAE,CAAC;MAAA;IAAC,CAAC,EAAC;MAAC5B,GAAG,EAAC,kBAAkB;MAACzD,KAAK,EAAC,SAAAA,CAASqF,CAAC,EAAC;QAAC,OAAOA,CAAC,GAAC,IAAI,CAACkhB,UAAU,CAAClhB,CAAC,EAAC,EAAE,CAAC,GAAC,IAAI,CAACkhB,UAAU,CAAClhB,CAAC,EAAC,EAAE,CAAC;MAAA;IAAC,CAAC,EAAC;MAAC5B,GAAG,EAAC,cAAc;MAACzD,KAAK,EAAC,SAAAA,CAASqF,CAAC,EAAC;QAAC,OAAON,CAAC,CAACM,CAAC,KAAG,EAAE,GAAC,GAAG,CAAC,IAAE,EAAE,GAACN,CAAC,CAACM,CAAC,KAAG,EAAE,GAAC,GAAG,CAAC,IAAE,EAAE,GAACN,CAAC,CAACM,CAAC,KAAG,CAAC,GAAC,GAAG,CAAC,IAAE,CAAC,GAACN,CAAC,CAAC,GAAG,GAACM,CAAC,CAAC;MAAA;IAAC,CAAC,EAAC;MAAC5B,GAAG,EAAC,aAAa;MAACzD,KAAK,EAAC,SAAAA,CAASqF,CAAC,EAAC;QAAC,IAAIN,CAAC,GAAC,IAAI,CAACyhB,YAAY,CAACnhB,CAAC,CAAC;QAAC,OAAO,IAAI,CAACohB,gBAAgB,CAAC1hB,CAAC,CAAC;MAAA;IAAC,CAAC,EAAC;MAACtB,GAAG,EAAC,aAAa;MAACzD,KAAK,EAAC,SAAAA,CAASqF,CAAC,EAAC;QAAC,IAAIN,CAAC,GAAC,IAAI,CAACyhB,YAAY,CAACnhB,CAAC,CAAC;QAAC,OAAO,IAAI,CAACqhB,gBAAgB,CAAC3hB,CAAC,CAAC;MAAA;IAAC,CAAC,EAAC;MAACtB,GAAG,EAAC,SAAS;MAACzD,KAAK,EAAC,SAAAA,CAASqF,CAAC,EAAC;QAAC,IAAG,IAAI,KAAGA,CAAC,EAAC,OAAO,IAAI;QAAC,IAAIN,CAAC,GAACkD,CAAC,GAAC5C,CAAC,CAAC/E,MAAM,GAAC2H,CAAC;UAACnC,CAAC,GAAC,IAAIM,UAAU,CAACf,CAAC,CAAC/E,MAAM,GAACyE,CAAC,CAAC;QAAC,OAAOe,CAAC,CAACsgB,GAAG,CAAC/gB,CAAC,EAAC,CAAC,CAAC,EAACS,CAAC,CAACwf,IAAI,CAACvgB,CAAC,EAACM,CAAC,CAAC/E,MAAM,CAAC,EAACwF,CAAC;MAAA;IAAC,CAAC,EAAC;MAACrC,GAAG,EAAC,WAAW;MAACzD,KAAK,EAAC,SAAAA,CAASqF,CAAC,EAAC;QAAC,IAAG,IAAI,KAAGA,CAAC,EAAC,OAAO,IAAI;QAAC,IAAIN,CAAC,GAACM,CAAC,CAACA,CAAC,CAAC/E,MAAM,GAAC,CAAC,CAAC;QAAC,OAAO+E,CAAC,CAACE,KAAK,CAAC,CAAC,EAACF,CAAC,CAAC/E,MAAM,GAACyE,CAAC,CAAC;MAAA;IAAC,CAAC,EAAC;MAACtB,GAAG,EAAC,oBAAoB;MAACzD,KAAK,EAAC,SAAAA,CAASqF,CAAC,EAACN,CAAC,EAAC;QAAC,KAAK,CAAC,KAAGA,CAAC,KAAGA,CAAC,GAAC,CAAC,CAAC;QAAC,IAAIe,CAAC,GAAC,IAAI2f,WAAW,CAAC,CAAC,CAAC;QAAC,OAAO3f,CAAC,CAAC,CAAC,CAAC,GAACT,CAAC,CAACN,CAAC,CAAC,IAAE,EAAE,GAACM,CAAC,CAACN,CAAC,GAAC,CAAC,CAAC,IAAE,EAAE,GAACM,CAAC,CAACN,CAAC,GAAC,CAAC,CAAC,IAAE,CAAC,GAACM,CAAC,CAACN,CAAC,GAAC,CAAC,CAAC,EAACe,CAAC,CAAC,CAAC,CAAC,GAACT,CAAC,CAACN,CAAC,GAAC,CAAC,CAAC,IAAE,EAAE,GAACM,CAAC,CAACN,CAAC,GAAC,CAAC,CAAC,IAAE,EAAE,GAACM,CAAC,CAACN,CAAC,GAAC,CAAC,CAAC,IAAE,CAAC,GAACM,CAAC,CAACN,CAAC,GAAC,CAAC,CAAC,EAACe,CAAC,CAAC,CAAC,CAAC,GAACT,CAAC,CAACN,CAAC,GAAC,CAAC,CAAC,IAAE,EAAE,GAACM,CAAC,CAACN,CAAC,GAAC,CAAC,CAAC,IAAE,EAAE,GAACM,CAAC,CAACN,CAAC,GAAC,EAAE,CAAC,IAAE,CAAC,GAACM,CAAC,CAACN,CAAC,GAAC,EAAE,CAAC,EAACe,CAAC,CAAC,CAAC,CAAC,GAACT,CAAC,CAACN,CAAC,GAAC,EAAE,CAAC,IAAE,EAAE,GAACM,CAAC,CAACN,CAAC,GAAC,EAAE,CAAC,IAAE,EAAE,GAACM,CAAC,CAACN,CAAC,GAAC,EAAE,CAAC,IAAE,CAAC,GAACM,CAAC,CAACN,CAAC,GAAC,EAAE,CAAC,EAACe,CAAC;MAAA;IAAC,CAAC,EAAC;MAACrC,GAAG,EAAC,SAAS;MAACzD,KAAK,EAAC,SAAAA,CAASqF,CAAC,EAAC;QAAC,IAAIN,CAAC,GAAC,IAAI,CAAC2gB,KAAK,CAACC,yBAAyB,CAACtgB,CAAC,CAAC;UAACS,CAAC,GAAC,IAAI,CAAC6gB,OAAO,CAAC5hB,CAAC,CAAC;UAACZ,CAAC,GAAC2B,CAAC,CAACxF,MAAM,GAAC2H,CAAC;UAACxH,CAAC,GAAC,IAAI2F,UAAU,CAACN,CAAC,CAACxF,MAAM,CAAC;QAAC,IAAG,KAAK,KAAG,IAAI,CAACulB,IAAI,EAAC;UAAC,IAAG,IAAI,KAAG,IAAI,CAACD,EAAE,IAAE,EAAE,KAAG,IAAI,CAACA,EAAE,CAACtlB,MAAM,EAAC,MAAM,IAAIqS,KAAK,CAAC,UAAU,CAAC;UAAC,KAAI,IAAIxN,CAAC,GAAC,IAAI,CAACyhB,kBAAkB,CAAC,IAAI,CAAChB,EAAE,CAAC,EAACrQ,CAAC,GAAC,CAAC,EAACA,CAAC,GAACpR,CAAC,EAACoR,CAAC,EAAE,EAAC;YAAC,IAAI1O,CAAC,GAAC0O,CAAC,GAACtN,CAAC;cAACid,CAAC,GAAC,IAAI,CAAC0B,kBAAkB,CAAC9gB,CAAC,EAACe,CAAC,CAAC;YAAC1B,CAAC,CAAC,CAAC,CAAC,GAACA,CAAC,CAAC,CAAC,CAAC,GAAC+f,CAAC,CAAC,CAAC,CAAC,EAAC/f,CAAC,CAAC,CAAC,CAAC,GAACA,CAAC,CAAC,CAAC,CAAC,GAAC+f,CAAC,CAAC,CAAC,CAAC,EAAC/f,CAAC,CAAC,CAAC,CAAC,GAACA,CAAC,CAAC,CAAC,CAAC,GAAC+f,CAAC,CAAC,CAAC,CAAC,EAAC/f,CAAC,CAAC,CAAC,CAAC,GAACA,CAAC,CAAC,CAAC,CAAC,GAAC+f,CAAC,CAAC,CAAC,CAAC,EAAC/f,CAAC,GAACG,CAAC,GAAC,IAAI,CAACuhB,YAAY,CAAC1hB,CAAC,EAAC,IAAI,CAAC6gB,gBAAgB,CAAC;YAAC,KAAI,IAAItH,CAAC,GAAC,CAAC,EAACA,CAAC,GAACzW,CAAC,EAACyW,CAAC,EAAE,EAACje,CAAC,CAACoG,CAAC,GAAC6X,CAAC,CAAC,GAACpZ,CAAC,CAAC8f,QAAQ,CAAC1G,CAAC,GAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,GAACA,CAAC,IAAE,CAAC,GAAC,CAAC,GAAC,GAAG;UAAA;QAAC,CAAC,MAAK,KAAInJ,CAAC,GAAC,CAAC,EAACA,CAAC,GAACpR,CAAC,EAACoR,CAAC,EAAE,EAAC;UAAC1O,CAAC,GAAC0O,CAAC,GAACtN,CAAC,EAACid,CAAC,GAAC,IAAI,CAAC0B,kBAAkB,CAAC9gB,CAAC,EAACe,CAAC,CAAC;UAAC,IAAIvB,CAAC,GAAC,IAAI,CAACuhB,YAAY,CAAC3B,CAAC,EAAC,IAAI,CAACc,gBAAgB,CAAC;UAAC,KAAItH,CAAC,GAAC,CAAC,EAACA,CAAC,GAACzW,CAAC,EAACyW,CAAC,EAAE,EAACje,CAAC,CAACoG,CAAC,GAAC6X,CAAC,CAAC,GAACpZ,CAAC,CAAC8f,QAAQ,CAAC1G,CAAC,GAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,GAACA,CAAC,IAAE,CAAC,GAAC,CAAC,GAAC,GAAG;QAAA;QAAC,OAAM,QAAQ,KAAG,IAAI,CAACoH,UAAU,GAAC,IAAI,CAACJ,KAAK,CAACoB,mBAAmB,CAACrmB,CAAC,CAAC,GAAC,IAAI,CAACilB,KAAK,CAACqB,uBAAuB,CAACtmB,CAAC,CAAC;MAAA;IAAC,CAAC,EAAC;MAACgD,GAAG,EAAC,SAAS;MAACzD,KAAK,EAAC,SAAAA,CAASqF,CAAC,EAAC;QAAC,IAAIN,CAAC,GAAC,IAAIqB,UAAU,CAAD,CAAC;UAACN,CAAC,GAAC,CAACf,CAAC,GAAC,QAAQ,KAAG,IAAI,CAAC+gB,UAAU,GAAC,IAAI,CAACJ,KAAK,CAACsB,mBAAmB,CAAC3hB,CAAC,CAAC,GAAC,IAAI,CAACqgB,KAAK,CAACC,yBAAyB,CAACtgB,CAAC,CAAC,EAAE/E,MAAM,GAAC2H,CAAC;UAAC9D,CAAC,GAAC,IAAIiC,UAAU,CAACrB,CAAC,CAACzE,MAAM,CAAC;QAAC,IAAG,KAAK,KAAG,IAAI,CAACulB,IAAI,EAAC;UAAC,IAAG,IAAI,KAAG,IAAI,CAACD,EAAE,IAAE,EAAE,KAAG,IAAI,CAACA,EAAE,CAACtlB,MAAM,EAAC,MAAM,IAAIqS,KAAK,CAAC,UAAU,CAAC;UAAC,KAAI,IAAIlS,CAAC,GAAC,IAAI,CAACmmB,kBAAkB,CAAC,IAAI,CAAChB,EAAE,CAAC,EAACzgB,CAAC,GAAC,CAAC,EAACA,CAAC,GAACW,CAAC,EAACX,CAAC,EAAE,EAAC;YAAC,IAAIoQ,CAAC,GAACpQ,CAAC,GAAC8C,CAAC;cAACpB,CAAC,GAAC,IAAI,CAAC+f,kBAAkB,CAAC7hB,CAAC,EAACwQ,CAAC,CAAC;cAAC2P,CAAC,GAAC,IAAI,CAAC2B,YAAY,CAAChgB,CAAC,EAAC,IAAI,CAACsf,gBAAgB,CAAC;YAAC,CAAC7gB,CAAC,GAAC,IAAImgB,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAChlB,CAAC,CAAC,CAAC,CAAC,GAACykB,CAAC,CAAC,CAAC,CAAC,EAAC5f,CAAC,CAAC,CAAC,CAAC,GAAC7E,CAAC,CAAC,CAAC,CAAC,GAACykB,CAAC,CAAC,CAAC,CAAC,EAAC5f,CAAC,CAAC,CAAC,CAAC,GAAC7E,CAAC,CAAC,CAAC,CAAC,GAACykB,CAAC,CAAC,CAAC,CAAC,EAAC5f,CAAC,CAAC,CAAC,CAAC,GAAC7E,CAAC,CAAC,CAAC,CAAC,GAACykB,CAAC,CAAC,CAAC,CAAC,EAACzkB,CAAC,GAACoG,CAAC;YAAC,KAAI,IAAI6X,CAAC,GAAC,CAAC,EAACA,CAAC,GAACzW,CAAC,EAACyW,CAAC,EAAE,EAACva,CAAC,CAACoR,CAAC,GAACmJ,CAAC,CAAC,GAACpZ,CAAC,CAAC8f,QAAQ,CAAC1G,CAAC,GAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,GAACA,CAAC,IAAE,CAAC,GAAC,CAAC,GAAC,GAAG;UAAA;QAAC,CAAC,MAAK,KAAIvZ,CAAC,GAAC,CAAC,EAACA,CAAC,GAACW,CAAC,EAACX,CAAC,EAAE,EAAC;UAACoQ,CAAC,GAACpQ,CAAC,GAAC8C,CAAC,EAACpB,CAAC,GAAC,IAAI,CAAC+f,kBAAkB,CAAC7hB,CAAC,EAACwQ,CAAC,CAAC;UAAC,IAAIjQ,CAAC,GAAC,IAAI,CAACuhB,YAAY,CAAChgB,CAAC,EAAC,IAAI,CAACsf,gBAAgB,CAAC;UAAC,KAAIzH,CAAC,GAAC,CAAC,EAACA,CAAC,GAACzW,CAAC,EAACyW,CAAC,EAAE,EAACva,CAAC,CAACoR,CAAC,GAACmJ,CAAC,CAAC,GAACpZ,CAAC,CAAC8f,QAAQ,CAAC1G,CAAC,GAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,GAACA,CAAC,IAAE,CAAC,GAAC,CAAC,GAAC,GAAG;QAAA;QAAC,IAAIxO,CAAC,GAAC,IAAI,CAAC+W,SAAS,CAAC9iB,CAAC,CAAC;QAAC,OAAO,IAAI,CAACuhB,KAAK,CAACqB,uBAAuB,CAAC7W,CAAC,CAAC;MAAA;IAAC,CAAC,CAAC,CAAC,EAAC/L,CAAC;EAAA,CAAC,CAAC,CAAC;AAAA,CAAC,CAAC;;;;;;;;ACA7wP;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACAzD,MAAM,CAACC,OAAO,GAAG,SAASue,WAAWA,CAACnC,OAAO,EAAEmK,WAAW,EAAE;EAC1D,OAAOA,WAAW,GACdnK,OAAO,CAACnQ,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,GAAGsa,WAAW,CAACta,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GACnEmQ,OAAO;AACb,CAAC;;;;;;;;ACbY;;AAEb,IAAI/a,UAAU,GAAGjD,mBAAO,CAAC,IAAc,CAAC;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA2B,MAAM,CAACC,OAAO,GAAG,SAASkhB,MAAMA,CAACja,OAAO,EAAES,MAAM,EAAE+O,QAAQ,EAAE;EAC1D,IAAIM,cAAc,GAAGN,QAAQ,CAACzC,MAAM,CAAC+C,cAAc;EACnD,IAAI,CAACN,QAAQ,CAACO,MAAM,IAAI,CAACD,cAAc,IAAIA,cAAc,CAACN,QAAQ,CAACO,MAAM,CAAC,EAAE;IAC1E/P,OAAO,CAACwP,QAAQ,CAAC;EACnB,CAAC,MAAM;IACL/O,MAAM,CAAC,IAAIrG,UAAU,CACnB,kCAAkC,GAAGoV,QAAQ,CAACO,MAAM,EACpD,CAAC3V,UAAU,CAAC4iB,eAAe,EAAE5iB,UAAU,CAACmV,gBAAgB,CAAC,CAAC7P,IAAI,CAAC6f,KAAK,CAAC/P,QAAQ,CAACO,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAChGP,QAAQ,CAACzC,MAAM,EACfyC,QAAQ,CAAC/V,OAAO,EAChB+V,QACF,CAAC,CAAC;EACJ;AACF,CAAC;;;;;;;;ACxBD;AACA;AACA;;AAEA,CAAC,UAAS5U,MAAM,EAAE9B,MAAM,EAAEyG,MAAM,EAAE;EAElC,SAASqX,MAAMA,CAAClb,IAAI,EAAE;IACpB,IAAI2B,EAAE,GAAG,IAAI;MAAEwZ,OAAO,GAAG,EAAE;;IAE3B;IACAxZ,EAAE,CAACyK,IAAI,GAAG,YAAW;MACnB,IAAIvC,CAAC,GAAGlI,EAAE,CAACkI,CAAC;QAAEpE,CAAC,GAAG9D,EAAE,CAAC8D,CAAC;QAAE1E,CAAC,GAAGY,EAAE,CAACZ,CAAC;QAAEwC,CAAC,GAAG5B,EAAE,CAAC4B,CAAC;MAC1CsG,CAAC,GAAIA,CAAC,IAAI,EAAE,GAAKA,CAAC,KAAK,CAAE,GAAGpE,CAAC;MAC7BA,CAAC,GAAIA,CAAC,GAAG1E,CAAC,GAAI,CAAC;MACfA,CAAC,GAAIA,CAAC,IAAI,EAAE,GAAKA,CAAC,KAAK,CAAE,GAAGwC,CAAC;MAC7BA,CAAC,GAAIA,CAAC,GAAGsG,CAAC,GAAI,CAAC;MACflI,EAAE,CAACkI,CAAC,GAAGA,CAAC,GAAIA,CAAC,IAAI,EAAE,GAAKA,CAAC,KAAK,EAAG,GAAGpE,CAAC;MACrC9D,EAAE,CAAC8D,CAAC,GAAGA,CAAC,GAAIA,CAAC,GAAG1E,CAAC,GAAI,CAAC;MACtBY,EAAE,CAACZ,CAAC,GAAIA,CAAC,IAAI,EAAE,GAAK0E,CAAC,KAAK,EAAG,GAAGlC,CAAC;MACjC,OAAO5B,EAAE,CAAC4B,CAAC,GAAIA,CAAC,GAAGsG,CAAC,GAAI,CAAC;IAC3B,CAAC;;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IAEElI,EAAE,CAAC4B,CAAC,GAAG,CAAC;IACR5B,EAAE,CAACkI,CAAC,GAAG,CAAC;IACRlI,EAAE,CAAC8D,CAAC,GAAG,UAAU,GAAG,CAAC;IACrB9D,EAAE,CAACZ,CAAC,GAAG,UAAU;IAEjB,IAAIf,IAAI,KAAKgE,IAAI,CAAC6f,KAAK,CAAC7jB,IAAI,CAAC,EAAE;MAC7B;MACA2B,EAAE,CAAC4B,CAAC,GAAIvD,IAAI,GAAG,WAAW,GAAI,CAAC;MAC/B2B,EAAE,CAACkI,CAAC,GAAG7J,IAAI,GAAG,CAAC;IACjB,CAAC,MAAM;MACL;MACAmb,OAAO,IAAInb,IAAI;IACjB;;IAEA;IACA,KAAK,IAAIwX,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2D,OAAO,CAACne,MAAM,GAAG,EAAE,EAAEwa,CAAC,EAAE,EAAE;MAC5C7V,EAAE,CAACkI,CAAC,IAAIsR,OAAO,CAACxY,UAAU,CAAC6U,CAAC,CAAC,GAAG,CAAC;MACjC7V,EAAE,CAACyK,IAAI,CAAC,CAAC;IACX;EACF;EAEA,SAAS5K,IAAIA,CAACQ,CAAC,EAAEP,CAAC,EAAE;IAClBA,CAAC,CAAC8B,CAAC,GAAGvB,CAAC,CAACuB,CAAC;IACT9B,CAAC,CAACoI,CAAC,GAAG7H,CAAC,CAAC6H,CAAC;IACTpI,CAAC,CAACgE,CAAC,GAAGzD,CAAC,CAACyD,CAAC;IACThE,CAAC,CAACV,CAAC,GAAGiB,CAAC,CAACjB,CAAC;IACT,OAAOU,CAAC;EACV;EAAC;EAED,SAAS+K,IAAIA,CAACxM,IAAI,EAAEyM,IAAI,EAAE;IACxB,IAAIC,EAAE,GAAG,IAAIwO,MAAM,CAAClb,IAAI,CAAC;MACrBuB,KAAK,GAAGkL,IAAI,IAAIA,IAAI,CAAClL,KAAK;MAC1BX,IAAI,GAAG,SAAAA,CAAA,EAAW;QAAE,OAAO,CAAC8L,EAAE,CAACN,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,WAAW;MAAE,CAAC;IACjExL,IAAI,CAACO,MAAM,GAAG,YAAW;MACvB,GAAG;QACD,IAAIoa,GAAG,GAAG7O,EAAE,CAACN,IAAI,CAAC,CAAC,KAAK,EAAE;UACtBoP,GAAG,GAAG,CAAC9O,EAAE,CAACN,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,WAAW;UACrChK,MAAM,GAAG,CAACmZ,GAAG,GAAGC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;MACtC,CAAC,QAAQpZ,MAAM,KAAK,CAAC;MACrB,OAAOA,MAAM;IACf,CAAC;IACDxB,IAAI,CAACK,KAAK,GAAGyL,EAAE,CAACN,IAAI;IACpBxL,IAAI,CAACM,KAAK,GAAGN,IAAI;IACjB,IAAIW,KAAK,EAAE;MACT,IAAI,OAAOA,KAAM,IAAI,QAAQ,EAAEC,IAAI,CAACD,KAAK,EAAEmL,EAAE,CAAC;MAC9C9L,IAAI,CAACW,KAAK,GAAG,YAAW;QAAE,OAAOC,IAAI,CAACkL,EAAE,EAAE,CAAC,CAAC,CAAC;MAAE,CAAC;IAClD;IACA,OAAO9L,IAAI;EACb;EAEA,IAAIxD,MAAM,IAAIA,MAAM,CAACC,OAAO,EAAE;IAC5BD,MAAM,CAACC,OAAO,GAAGmP,IAAI;EACvB,CAAC,MAAM,IAAI3I,wBAAM,IAAIA,wBAAU,EAAE;IAC/BA,mCAAO,YAAW;MAAE,OAAO2I,IAAI;IAAE,CAAC;AAAA,kGAAC;EACrC,CAAC,MAAM;IACL,IAAI,CAACyP,MAAM,GAAGzP,IAAI;EACpB;AAEA,CAAC,EACC,IAAI,EACH,KAA0B,IAAIpP,MAAM;AAAK;AACzC,wBAAsC,CAAG;AAC5C,CAAC;;;;;;;;ACpGY;;AAAA3B,mBAAA;AAAAA,mBAAA;AAEb,IAAI6B,KAAK,GAAG7B,mBAAO,CAAC,IAAY,CAAC;AACjC,IAAIiC,QAAQ,GAAGjC,mBAAO,CAAC,IAAa,CAAC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA2B,MAAM,CAACC,OAAO,GAAG,SAASuf,aAAaA,CAACjQ,IAAI,EAAEhB,OAAO,EAAEmY,GAAG,EAAE;EAC1D,IAAIjmB,OAAO,GAAG,IAAI,IAAIH,QAAQ;EAC9B;EACAJ,KAAK,CAACmM,OAAO,CAACqa,GAAG,EAAE,SAASC,SAASA,CAAC3nB,EAAE,EAAE;IACxCuQ,IAAI,GAAGvQ,EAAE,CAACC,IAAI,CAACwB,OAAO,EAAE8O,IAAI,EAAEhB,OAAO,CAAC;EACxC,CAAC,CAAC;EAEF,OAAOgB,IAAI;AACb,CAAC;;;;;;UCrBD;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCzBA;WACA;WACA;;;;;WCFA;;;;;WCAA;WACA;WACA;WACA,eAAe,4BAA4B;WAC3C,eAAe;WACf,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD,8CAA8C;;;;;WCA9C;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;;;;;WCJA;;;;;;;;;;;;;;;;;ACAA;AACA;;AAEA;AACA;AACA,MAAM,KAAuC,EAAE;AAAA,yBAQ5C;;AAEH;AACA;AACA,IAAI,qBAAuB;AAC3B;AACA;;AAEA;AACA,kDAAe,IAAI;;;;;;;;;;;ECrBVqX,KAAK,EAAC,cAAc;EAACC,GAAG,EAAC;;;EAIjBA,GAAG,EAAC,cAAc;EAACD,KAAK,EAAC;;;EACzBA,KAAK,EAAC;AAAiB;;;EAMvBA,KAAK,EAAC;;;EAQNC,GAAG,EAAC,gBAAgB;EAACD,KAAK,EAAC;;;EAC3BA,KAAK,EAAC;AAAiB;;EAWvBC,GAAG,EAAC,WAAW;EAACD,KAAK,EAAC;;;EACtBA,KAAK,EAAC;AAAiB;;EAQvBC,GAAG,EAAC,iBAAiB;EAACD,KAAK,EAAC;;;EAC5BA,KAAK,EAAC;AAAiB;;wEAzCpCE,oEAAA,CAgDM,OAhDNC,UAgDM,oEA/CFC,oEAAA,CAaM;IAbDC,aAAa,EAAC,cAAc;IAAEC,YAAU,EAAAC,MAAA,QAAAA,MAAA,MAAAC,MAAA,IAAEC,MAAA,CAAAC,YAAY;IAAMC,WAAS,EAAAJ,MAAA,QAAAA,MAAA,MAAAC,MAAA,IAAEC,MAAA,CAAAC,YAAY;IACnFV,KAAK,EAAAY,gEAAA,qBAAsBH,MAAA,CAAAI,aAAa,gCAAgCJ,MAAA,CAAAI,aAAa,mCAAmCJ,MAAA,CAAAK,gBAAgB;MAEzIV,oEAAA,CAAmD,OAAnDW,UAAmD,cACnDX,oEAAA,CAKM,OALNY,UAKM,GAJFZ,oEAAA,CACkE,aAD7D,MAAI,GAAAa,iEAAA,CAAGR,MAAA,CAAAS,YAAY,CAACT,MAAA,CAAAU,WAAW,EAAEC,GAAG,CAACC,WAAW,CAACC,OAAO,OAAM,GAAC,GAAAL,iEAAA,CAChER,MAAA,CAAAS,YAAY,CAACT,MAAA,CAAAU,WAAW,EAAEC,GAAG,CAACG,YAAY,CAACD,OAAO,UACtDlB,oEAAA,CAAgE,aAA3D,QAAM,GAAAa,iEAAA,CAAGR,MAAA,CAAAS,YAAY,CAACT,MAAA,CAAAU,WAAW,EAAEK,IAAI,CAACF,OAAO,UACpDlB,oEAAA,CAA2G,aAAtG,MAAI,GAAAa,iEAAA,CAAGR,MAAA,CAAAS,YAAY,CAACT,MAAA,CAAAU,WAAW,EAAEM,UAAU,QAAO,GAAC,GAAAR,iEAAA,CAAGR,MAAA,CAAAS,YAAY,CAACT,MAAA,CAAAU,WAAW,EAAEO,cAAc,SAE3EjB,MAAA,CAAAkB,eAAe,UAAUlB,MAAA,CAAAkB,eAAe,uEAApEzB,oEAAA,CAEM,OAFN0B,UAEM,GADFxB,oEAAA,CAAkD,cAAAa,iEAAA,cAA5BR,MAAA,CAAAkB,eAAe,2JATjClB,MAAA,CAAAI,aAAa,SAASJ,MAAA,CAAAI,aAAa,2EAa/CT,oEAAA,CAUM;IAVDC,aAAa,EAAC,cAAc;IAAEC,YAAU,EAAAC,MAAA,QAAAA,MAAA,MAAAC,MAAA,IAAEC,MAAA,CAAAC,YAAY;IAAMC,WAAS,EAAAJ,MAAA,QAAAA,MAAA,MAAAC,MAAA,IAAEC,MAAA,CAAAC,YAAY;IACnFV,KAAK,EAAAY,gEAAA,qBAAsBH,MAAA,CAAAI,aAAa,gCAAgCJ,MAAA,CAAAI,aAAa,qCAAqCJ,MAAA,CAAAK,gBAAgB;MAE3IV,oEAAA,CAAqD,OAArDyB,UAAqD,cACrDzB,oEAAA,CAKM,OALN0B,UAKM,GAJF1B,oEAAA,CACkE,aAD7D,MAAI,GAAAa,iEAAA,CAAGR,MAAA,CAAAS,YAAY,CAACT,MAAA,CAAAsB,WAAW,EAAEX,GAAG,CAACC,WAAW,CAACC,OAAO,OAAM,GAAC,GAAAL,iEAAA,CAChER,MAAA,CAAAS,YAAY,CAACT,MAAA,CAAAsB,WAAW,EAAEX,GAAG,CAACG,YAAY,CAACD,OAAO,UACtDlB,oEAAA,CAAgE,aAA3D,QAAM,GAAAa,iEAAA,CAAGR,MAAA,CAAAS,YAAY,CAACT,MAAA,CAAAsB,WAAW,EAAEP,IAAI,CAACF,OAAO,UACpDlB,oEAAA,CAA2G,aAAtG,MAAI,GAAAa,iEAAA,CAAGR,MAAA,CAAAS,YAAY,CAACT,MAAA,CAAAsB,WAAW,EAAEN,UAAU,QAAO,GAAC,GAAAR,iEAAA,CAAGR,MAAA,CAAAS,YAAY,CAACT,MAAA,CAAAsB,WAAW,EAAEL,cAAc,sEAN/FjB,MAAA,CAAAI,aAAa,SAASJ,MAAA,CAAAI,aAAa,2EAU/CT,oEAAA,CAOM;IAPDC,aAAa,EAAC,cAAc;IAAEC,YAAU,EAAAC,MAAA,QAAAA,MAAA,MAAAC,MAAA,IAAEC,MAAA,CAAAC,YAAY;IAAOC,WAAS,EAAAJ,MAAA,QAAAA,MAAA,MAAAC,MAAA,IAAEC,MAAA,CAAAC,YAAY;IACpFV,KAAK,EAAAY,gEAAA,qBAAsBH,MAAA,CAAAI,aAAa,iCAAiCJ,MAAA,CAAAI,aAAa,gCAAgCJ,MAAA,CAAAK,gBAAgB;MAEvIV,oEAAA,CAAgD,OAAhD4B,UAAgD,cAChD5B,oEAAA,CAEM,OAFN6B,UAEM,GADF7B,oEAAA,CAAsC;IAAhC8B,OAAK,EAAA3B,MAAA,QAAAA,MAAA,UAAAlS,IAAA,KAAEoS,MAAA,CAAA0B,eAAA,IAAA1B,MAAA,CAAA0B,eAAA,IAAA9T,IAAA,CAAe;KAAE,IAAE,kEAH5BoS,MAAA,CAAAI,aAAa,SAASJ,MAAA,CAAAI,aAAa,4EAO/CT,oEAAA,CAUM;IAVDC,aAAa,EAAC,cAAc;IAAEC,YAAU,EAAAC,MAAA,QAAAA,MAAA,MAAAC,MAAA,IAAEC,MAAA,CAAAC,YAAY;IAAMC,WAAS,EAAAJ,MAAA,QAAAA,MAAA,MAAAC,MAAA,IAAEC,MAAA,CAAAC,YAAY;IACnFV,KAAK,EAAAY,gEAAA,qBAAsBH,MAAA,CAAAI,aAAa,gCAAgCJ,MAAA,CAAAI,aAAa,sCAAsCJ,MAAA,CAAAK,gBAAgB;MAE5IV,oEAAA,CAAsD,OAAtDgC,UAAsD,cACtDhC,oEAAA,CAKM,OALNiC,WAKM,GAJFjC,oEAAA,CACkE,aAD7D,MAAI,GAAAa,iEAAA,CAAGR,MAAA,CAAAS,YAAY,CAACT,MAAA,CAAA6B,WAAW,EAAElB,GAAG,CAACC,WAAW,CAACC,OAAO,OAAM,GAAC,GAAAL,iEAAA,CAChER,MAAA,CAAAS,YAAY,CAACT,MAAA,CAAA6B,WAAW,EAAElB,GAAG,CAACG,YAAY,CAACD,OAAO,UACtDlB,oEAAA,CAAgE,aAA3D,QAAM,GAAAa,iEAAA,CAAGR,MAAA,CAAAS,YAAY,CAACT,MAAA,CAAA6B,WAAW,EAAEd,IAAI,CAACF,OAAO,UACpDlB,oEAAA,CAA2G,aAAtG,MAAI,GAAAa,iEAAA,CAAGR,MAAA,CAAAS,YAAY,CAACT,MAAA,CAAA6B,WAAW,EAAEb,UAAU,QAAO,GAAC,GAAAR,iEAAA,CAAGR,MAAA,CAAAS,YAAY,CAACT,MAAA,CAAA6B,WAAW,EAAEZ,cAAc,sEAN/FjB,MAAA,CAAAI,aAAa,SAASJ,MAAA,CAAAI,aAAa;;;;;;;;;;;AExCI;AAE3D,MAAM4B,iBAAiB,GAAG,CAAC,CAAC;AAE5B,SAASC,WAAWA,CAACC,OAAO,EAAEC,eAAe,EAAE;EAC7C,MAAMC,QAAQ,GAAGL,eAAO,CAACM,YAAY,CAACH,OAAO,CAAC;EAC9CF,iBAAiB,CAACI,QAAQ,CAAC,GAAGD,eAAe;AAC/C;AAEA,SAASG,GAAGA,CAAClf,IAAI,EAAE8e,OAAO,EAAE;EAC1B,IAAI9e,IAAI,KAAK,eAAe,EAAE;IAC5B,MAAMgf,QAAQ,GAAGL,eAAO,CAACM,YAAY,CAACH,OAAO,CAAC;IAC9C,OAAOF,iBAAiB,CAACI,QAAQ,CAAC;EACpC;AACF;AAEA,8DAAe;EAAEH,WAAW;EAAEK;AAAI,CAAC;;AChBgB;AACiB;AAEpE,MAAM;EAAEG;AAAuC,CAAC,GAAGF,eAAqB;AAEzD,SAASG,aAAaA,CAAA,EAAG;EACtCH,cAAoB,CAACK,WAAW,CAC9BJ,yBAAyB,CAACF,GAAG,CAACxpB,IAAI,CAAC0pB,yBAAyB,CAAC,EAC7D,KACF,CAAC;EACDD,cAAoB,CAACK,WAAW,CAC9BH,sCAAsC,CAACH,GAAG,CAACxpB,IAAI,CAC7C2pB,sCACF,CAAC,EACD,KACF,CAAC;AACH;;ACZ6B;AAEd,SAASO,gBAAgBA,CAAA,EAAG;EACzCH,kBAAY,CAACI,2BAA2B,CACtCH,2CACF,CAAC;EACDD,kBAAY,CAACK,oBAAoB,CAC/B,iCAAiC,EACjCJ,2CACF,CAAC;EACDD,kBAAY,CAACK,oBAAoB,CAC/B,wCAAwC,EACxCH,kDACF,CAAC;AACH;;;;;;;;;AClB4C;AACM;AACS;AACA;AACR;AACM;AACmB;AACT;AAEnEhe,MAAM,CAACwd,WAAW,GAAGA,KAAW;AAChCxd,MAAM,CAACse,gBAAgB,GAAGA,MAAgB;AAE3B,eAAeG,QAAQA,CAAC5W,MAAM,EAAE;EAC7C8V,aAAa,CAAC,CAAC;EACfY,iCAAgC,CAAC,CAAC;EAClCN,gBAAgB,CAAC,CAAC;EAClB,MAAMG,cAAY,CAAC;IACjB;IACA,IAAIvW,MAAM,EAAE6W,IAAI,GAAG7W,MAAM,CAAC6W,IAAI,GAAG,CAAC,CAAC;EACrC,CAAC,CAAC;EACF,MAAML,eAAW,CAAC;IAChBM,MAAM,EAAE;MACNH,OAAOA,EAAAA,yBAAAA;IACT;EACF,CAAC,CAAC;AACJ;;ACzBA,MAAM3C,+CAAW,GAAG,GAAG;AACvB,MAAME,YAAY,GAAG,EAAE;AAEvB,MAAM6C,KAAK,GAAG7C,YAAY,GAAGF,+CAAW,GAAG,GAAG;AAC9C,MAAMgD,KAAK,GAAG9C,YAAY,GAAGF,+CAAW,GAAG,GAAG;AAE9C,MAAMiD,UAAU,GAAG;EAAEF,KAAK;EAAEC;AAAM,CAAC;AAEpB,SAASE,mCAAmCA,CAAC;EAAEC;AAAY,CAAC,EAAE;EAC3EA,WAAW,CACRC,WAAW,CAAC,CAAC,CACbC,sBAAsB,CAAC,CAAC,CAAC,CACzBC,eAAe,CAACP,KAAK,EAAEC,KAAK,CAAC;AAClC;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACO,IAAIO,OAAO,GAAG,QAAQ;AACtB,IAAIC,UAAU,GAAG,OAAOC,YAAY,KAAK,WAAW,GAAGA,YAAY,GAAG7sB,KAAK;AAC3E,IAAI8sB,MAAM,GAAG/kB,IAAI,CAACL,MAAM;AAC/B;AACA;AACA;AACA;AACA;;AAEO,SAASqlB,kBAAkBA,CAACnhB,IAAI,EAAE;EACvCghB,UAAU,GAAGhhB,IAAI;AACnB;AACA,IAAIohB,MAAM,GAAGjlB,IAAI,CAACklB,EAAE,GAAG,GAAG;AAC1B;AACA;AACA;AACA;AACA;;AAEO,SAASC,QAAQA,CAAC5lB,CAAC,EAAE;EAC1B,OAAOA,CAAC,GAAG0lB,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASG,MAAMA,CAAC7lB,CAAC,EAAEsG,CAAC,EAAE;EAC3B,OAAO7F,IAAI,CAACqlB,GAAG,CAAC9lB,CAAC,GAAGsG,CAAC,CAAC,IAAI+e,OAAO,GAAG5kB,IAAI,CAACyd,GAAG,CAAC,GAAG,EAAEzd,IAAI,CAACqlB,GAAG,CAAC9lB,CAAC,CAAC,EAAES,IAAI,CAACqlB,GAAG,CAACxf,CAAC,CAAC,CAAC;AAC7E;AACA,IAAI,CAAC7F,IAAI,CAACslB,KAAK,EAAEtlB,IAAI,CAACslB,KAAK,GAAG,YAAY;EACxC,IAAIlO,CAAC,GAAG,CAAC;IACLje,CAAC,GAAGJ,SAAS,CAACC,MAAM;EAExB,OAAOG,CAAC,EAAE,EAAE;IACVie,CAAC,IAAIre,SAAS,CAACI,CAAC,CAAC,GAAGJ,SAAS,CAACI,CAAC,CAAC;EAClC;EAEA,OAAO6G,IAAI,CAACulB,IAAI,CAACnO,CAAC,CAAC;AACrB,CAAC;;ACjDuC;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO,SAASnd,MAAMA,CAAA,EAAG;EACvB,IAAI2E,GAAG,GAAG,IAAI4mB,QAAQ,CAACX,UAAU,CAAC,EAAE,CAAC;EAErC,IAAIW,QAAQ,CAACX,UAAU,IAAIC,YAAY,EAAE;IACvClmB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACVA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;IACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;IACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;IACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACb;EAEAA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACX,OAAOA,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAAS6mB,KAAKA,CAAClmB,CAAC,EAAE;EACvB,IAAIX,GAAG,GAAG,IAAI4mB,QAAQ,CAACX,UAAU,CAAC,EAAE,CAAC;EACrCjmB,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACf,OAAOX,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASpB,IAAIA,CAACoB,GAAG,EAAEW,CAAC,EAAE;EAC3BX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;EACbX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACf,OAAOX,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAAS8mB,UAAUA,CAACC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAE;EACzG,IAAI9nB,GAAG,GAAG,IAAI4mB,QAAQ,CAACX,UAAU,CAAC,EAAE,CAAC;EACrCjmB,GAAG,CAAC,CAAC,CAAC,GAAG+mB,GAAG;EACZ/mB,GAAG,CAAC,CAAC,CAAC,GAAGgnB,GAAG;EACZhnB,GAAG,CAAC,CAAC,CAAC,GAAGinB,GAAG;EACZjnB,GAAG,CAAC,CAAC,CAAC,GAAGknB,GAAG;EACZlnB,GAAG,CAAC,CAAC,CAAC,GAAGmnB,GAAG;EACZnnB,GAAG,CAAC,CAAC,CAAC,GAAGonB,GAAG;EACZpnB,GAAG,CAAC,CAAC,CAAC,GAAGqnB,GAAG;EACZrnB,GAAG,CAAC,CAAC,CAAC,GAAGsnB,GAAG;EACZtnB,GAAG,CAAC,CAAC,CAAC,GAAGunB,GAAG;EACZvnB,GAAG,CAAC,CAAC,CAAC,GAAGwnB,GAAG;EACZxnB,GAAG,CAAC,EAAE,CAAC,GAAGynB,GAAG;EACbznB,GAAG,CAAC,EAAE,CAAC,GAAG0nB,GAAG;EACb1nB,GAAG,CAAC,EAAE,CAAC,GAAG2nB,GAAG;EACb3nB,GAAG,CAAC,EAAE,CAAC,GAAG4nB,GAAG;EACb5nB,GAAG,CAAC,EAAE,CAAC,GAAG6nB,GAAG;EACb7nB,GAAG,CAAC,EAAE,CAAC,GAAG8nB,GAAG;EACb,OAAO9nB,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASkgB,GAAGA,CAAClgB,GAAG,EAAE+mB,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAE;EACvG9nB,GAAG,CAAC,CAAC,CAAC,GAAG+mB,GAAG;EACZ/mB,GAAG,CAAC,CAAC,CAAC,GAAGgnB,GAAG;EACZhnB,GAAG,CAAC,CAAC,CAAC,GAAGinB,GAAG;EACZjnB,GAAG,CAAC,CAAC,CAAC,GAAGknB,GAAG;EACZlnB,GAAG,CAAC,CAAC,CAAC,GAAGmnB,GAAG;EACZnnB,GAAG,CAAC,CAAC,CAAC,GAAGonB,GAAG;EACZpnB,GAAG,CAAC,CAAC,CAAC,GAAGqnB,GAAG;EACZrnB,GAAG,CAAC,CAAC,CAAC,GAAGsnB,GAAG;EACZtnB,GAAG,CAAC,CAAC,CAAC,GAAGunB,GAAG;EACZvnB,GAAG,CAAC,CAAC,CAAC,GAAGwnB,GAAG;EACZxnB,GAAG,CAAC,EAAE,CAAC,GAAGynB,GAAG;EACbznB,GAAG,CAAC,EAAE,CAAC,GAAG0nB,GAAG;EACb1nB,GAAG,CAAC,EAAE,CAAC,GAAG2nB,GAAG;EACb3nB,GAAG,CAAC,EAAE,CAAC,GAAG4nB,GAAG;EACb5nB,GAAG,CAAC,EAAE,CAAC,GAAG6nB,GAAG;EACb7nB,GAAG,CAAC,EAAE,CAAC,GAAG8nB,GAAG;EACb,OAAO9nB,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAAS+nB,QAAQA,CAAC/nB,GAAG,EAAE;EAC5BA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACX,OAAOA,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASgoB,SAASA,CAAChoB,GAAG,EAAEW,CAAC,EAAE;EAChC;EACA,IAAIX,GAAG,KAAKW,CAAC,EAAE;IACb,IAAIsnB,GAAG,GAAGtnB,CAAC,CAAC,CAAC,CAAC;MACVunB,GAAG,GAAGvnB,CAAC,CAAC,CAAC,CAAC;MACVwnB,GAAG,GAAGxnB,CAAC,CAAC,CAAC,CAAC;IACd,IAAIynB,GAAG,GAAGznB,CAAC,CAAC,CAAC,CAAC;MACV0nB,GAAG,GAAG1nB,CAAC,CAAC,CAAC,CAAC;IACd,IAAI2nB,GAAG,GAAG3nB,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACdX,GAAG,CAAC,CAAC,CAAC,GAAGioB,GAAG;IACZjoB,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACdX,GAAG,CAAC,CAAC,CAAC,GAAGkoB,GAAG;IACZloB,GAAG,CAAC,CAAC,CAAC,GAAGooB,GAAG;IACZpoB,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,EAAE,CAAC,GAAGmoB,GAAG;IACbnoB,GAAG,CAAC,EAAE,CAAC,GAAGqoB,GAAG;IACbroB,GAAG,CAAC,EAAE,CAAC,GAAGsoB,GAAG;EACf,CAAC,MAAM;IACLtoB,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACdX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACdX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACdX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACdX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACjB;EAEA,OAAOX,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASuoB,MAAMA,CAACvoB,GAAG,EAAEW,CAAC,EAAE;EAC7B,IAAI6nB,GAAG,GAAG7nB,CAAC,CAAC,CAAC,CAAC;IACVsnB,GAAG,GAAGtnB,CAAC,CAAC,CAAC,CAAC;IACVunB,GAAG,GAAGvnB,CAAC,CAAC,CAAC,CAAC;IACVwnB,GAAG,GAAGxnB,CAAC,CAAC,CAAC,CAAC;EACd,IAAI8nB,GAAG,GAAG9nB,CAAC,CAAC,CAAC,CAAC;IACV+nB,GAAG,GAAG/nB,CAAC,CAAC,CAAC,CAAC;IACVynB,GAAG,GAAGznB,CAAC,CAAC,CAAC,CAAC;IACV0nB,GAAG,GAAG1nB,CAAC,CAAC,CAAC,CAAC;EACd,IAAIgoB,GAAG,GAAGhoB,CAAC,CAAC,CAAC,CAAC;IACVioB,GAAG,GAAGjoB,CAAC,CAAC,CAAC,CAAC;IACVkoB,GAAG,GAAGloB,CAAC,CAAC,EAAE,CAAC;IACX2nB,GAAG,GAAG3nB,CAAC,CAAC,EAAE,CAAC;EACf,IAAImoB,GAAG,GAAGnoB,CAAC,CAAC,EAAE,CAAC;IACXooB,GAAG,GAAGpoB,CAAC,CAAC,EAAE,CAAC;IACXqoB,GAAG,GAAGroB,CAAC,CAAC,EAAE,CAAC;IACXsoB,GAAG,GAAGtoB,CAAC,CAAC,EAAE,CAAC;EACf,IAAIuoB,GAAG,GAAGV,GAAG,GAAGE,GAAG,GAAGT,GAAG,GAAGQ,GAAG;EAC/B,IAAIU,GAAG,GAAGX,GAAG,GAAGJ,GAAG,GAAGF,GAAG,GAAGO,GAAG;EAC/B,IAAIW,GAAG,GAAGZ,GAAG,GAAGH,GAAG,GAAGF,GAAG,GAAGM,GAAG;EAC/B,IAAIY,GAAG,GAAGpB,GAAG,GAAGG,GAAG,GAAGF,GAAG,GAAGQ,GAAG;EAC/B,IAAIY,GAAG,GAAGrB,GAAG,GAAGI,GAAG,GAAGF,GAAG,GAAGO,GAAG;EAC/B,IAAIa,GAAG,GAAGrB,GAAG,GAAGG,GAAG,GAAGF,GAAG,GAAGC,GAAG;EAC/B,IAAIoB,GAAG,GAAGb,GAAG,GAAGI,GAAG,GAAGH,GAAG,GAAGE,GAAG;EAC/B,IAAIW,GAAG,GAAGd,GAAG,GAAGK,GAAG,GAAGH,GAAG,GAAGC,GAAG;EAC/B,IAAIY,GAAG,GAAGf,GAAG,GAAGM,GAAG,GAAGX,GAAG,GAAGQ,GAAG;EAC/B,IAAIa,GAAG,GAAGf,GAAG,GAAGI,GAAG,GAAGH,GAAG,GAAGE,GAAG;EAC/B,IAAIa,GAAG,GAAGhB,GAAG,GAAGK,GAAG,GAAGX,GAAG,GAAGS,GAAG;EAC/B,IAAIc,GAAG,GAAGhB,GAAG,GAAGI,GAAG,GAAGX,GAAG,GAAGU,GAAG,CAAC,CAAC;;EAEjC,IAAIc,GAAG,GAAGZ,GAAG,GAAGW,GAAG,GAAGV,GAAG,GAAGS,GAAG,GAAGR,GAAG,GAAGO,GAAG,GAAGN,GAAG,GAAGK,GAAG,GAAGJ,GAAG,GAAGG,GAAG,GAAGF,GAAG,GAAGC,GAAG;EAE/E,IAAI,CAACM,GAAG,EAAE;IACR,OAAO,IAAI;EACb;EAEAA,GAAG,GAAG,GAAG,GAAGA,GAAG;EACf9pB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC0oB,GAAG,GAAGmB,GAAG,GAAGzB,GAAG,GAAGwB,GAAG,GAAGvB,GAAG,GAAGsB,GAAG,IAAIG,GAAG;EAClD9pB,GAAG,CAAC,CAAC,CAAC,GAAG,CAACkoB,GAAG,GAAG0B,GAAG,GAAG3B,GAAG,GAAG4B,GAAG,GAAG1B,GAAG,GAAGwB,GAAG,IAAIG,GAAG;EAClD9pB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC+oB,GAAG,GAAGQ,GAAG,GAAGP,GAAG,GAAGM,GAAG,GAAGL,GAAG,GAAGI,GAAG,IAAIS,GAAG;EAClD9pB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC6oB,GAAG,GAAGS,GAAG,GAAGV,GAAG,GAAGW,GAAG,GAAGjB,GAAG,GAAGe,GAAG,IAAIS,GAAG;EAClD9pB,GAAG,CAAC,CAAC,CAAC,GAAG,CAACooB,GAAG,GAAGsB,GAAG,GAAGjB,GAAG,GAAGoB,GAAG,GAAGxB,GAAG,GAAGoB,GAAG,IAAIK,GAAG;EAClD9pB,GAAG,CAAC,CAAC,CAAC,GAAG,CAACwoB,GAAG,GAAGqB,GAAG,GAAG3B,GAAG,GAAGwB,GAAG,GAAGvB,GAAG,GAAGsB,GAAG,IAAIK,GAAG;EAClD9pB,GAAG,CAAC,CAAC,CAAC,GAAG,CAACgpB,GAAG,GAAGI,GAAG,GAAGN,GAAG,GAAGS,GAAG,GAAGN,GAAG,GAAGE,GAAG,IAAIW,GAAG;EAClD9pB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC2oB,GAAG,GAAGY,GAAG,GAAGV,GAAG,GAAGO,GAAG,GAAGd,GAAG,GAAGa,GAAG,IAAIW,GAAG;EAClD9pB,GAAG,CAAC,CAAC,CAAC,GAAG,CAACyoB,GAAG,GAAGmB,GAAG,GAAGlB,GAAG,GAAGgB,GAAG,GAAGrB,GAAG,GAAGmB,GAAG,IAAIM,GAAG;EAClD9pB,GAAG,CAAC,CAAC,CAAC,GAAG,CAACioB,GAAG,GAAGyB,GAAG,GAAGlB,GAAG,GAAGoB,GAAG,GAAGzB,GAAG,GAAGqB,GAAG,IAAIM,GAAG;EAClD9pB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC8oB,GAAG,GAAGQ,GAAG,GAAGP,GAAG,GAAGK,GAAG,GAAGH,GAAG,GAAGC,GAAG,IAAIY,GAAG;EACnD9pB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC4oB,GAAG,GAAGQ,GAAG,GAAGT,GAAG,GAAGW,GAAG,GAAGhB,GAAG,GAAGY,GAAG,IAAIY,GAAG;EACnD9pB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC0oB,GAAG,GAAGe,GAAG,GAAGhB,GAAG,GAAGkB,GAAG,GAAGvB,GAAG,GAAGoB,GAAG,IAAIM,GAAG;EACnD9pB,GAAG,CAAC,EAAE,CAAC,GAAG,CAACwoB,GAAG,GAAGmB,GAAG,GAAG1B,GAAG,GAAGwB,GAAG,GAAGvB,GAAG,GAAGsB,GAAG,IAAIM,GAAG;EACnD9pB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC+oB,GAAG,GAAGI,GAAG,GAAGL,GAAG,GAAGO,GAAG,GAAGL,GAAG,GAAGE,GAAG,IAAIY,GAAG;EACnD9pB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC2oB,GAAG,GAAGU,GAAG,GAAGT,GAAG,GAAGO,GAAG,GAAGN,GAAG,GAAGK,GAAG,IAAIY,GAAG;EACnD,OAAO9pB,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAAS+pB,OAAOA,CAAC/pB,GAAG,EAAEW,CAAC,EAAE;EAC9B,IAAI6nB,GAAG,GAAG7nB,CAAC,CAAC,CAAC,CAAC;IACVsnB,GAAG,GAAGtnB,CAAC,CAAC,CAAC,CAAC;IACVunB,GAAG,GAAGvnB,CAAC,CAAC,CAAC,CAAC;IACVwnB,GAAG,GAAGxnB,CAAC,CAAC,CAAC,CAAC;EACd,IAAI8nB,GAAG,GAAG9nB,CAAC,CAAC,CAAC,CAAC;IACV+nB,GAAG,GAAG/nB,CAAC,CAAC,CAAC,CAAC;IACVynB,GAAG,GAAGznB,CAAC,CAAC,CAAC,CAAC;IACV0nB,GAAG,GAAG1nB,CAAC,CAAC,CAAC,CAAC;EACd,IAAIgoB,GAAG,GAAGhoB,CAAC,CAAC,CAAC,CAAC;IACVioB,GAAG,GAAGjoB,CAAC,CAAC,CAAC,CAAC;IACVkoB,GAAG,GAAGloB,CAAC,CAAC,EAAE,CAAC;IACX2nB,GAAG,GAAG3nB,CAAC,CAAC,EAAE,CAAC;EACf,IAAImoB,GAAG,GAAGnoB,CAAC,CAAC,EAAE,CAAC;IACXooB,GAAG,GAAGpoB,CAAC,CAAC,EAAE,CAAC;IACXqoB,GAAG,GAAGroB,CAAC,CAAC,EAAE,CAAC;IACXsoB,GAAG,GAAGtoB,CAAC,CAAC,EAAE,CAAC;EACfX,GAAG,CAAC,CAAC,CAAC,GAAG0oB,GAAG,IAAIG,GAAG,GAAGI,GAAG,GAAGX,GAAG,GAAGU,GAAG,CAAC,GAAGJ,GAAG,IAAIR,GAAG,GAAGa,GAAG,GAAGZ,GAAG,GAAGW,GAAG,CAAC,GAAGD,GAAG,IAAIX,GAAG,GAAGE,GAAG,GAAGD,GAAG,GAAGQ,GAAG,CAAC;EACtG7oB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAEioB,GAAG,IAAIY,GAAG,GAAGI,GAAG,GAAGX,GAAG,GAAGU,GAAG,CAAC,GAAGJ,GAAG,IAAIV,GAAG,GAAGe,GAAG,GAAGd,GAAG,GAAGa,GAAG,CAAC,GAAGD,GAAG,IAAIb,GAAG,GAAGI,GAAG,GAAGH,GAAG,GAAGU,GAAG,CAAC,CAAC;EACzG7oB,GAAG,CAAC,CAAC,CAAC,GAAGioB,GAAG,IAAIG,GAAG,GAAGa,GAAG,GAAGZ,GAAG,GAAGW,GAAG,CAAC,GAAGN,GAAG,IAAIR,GAAG,GAAGe,GAAG,GAAGd,GAAG,GAAGa,GAAG,CAAC,GAAGD,GAAG,IAAIb,GAAG,GAAGG,GAAG,GAAGF,GAAG,GAAGC,GAAG,CAAC;EACtGpoB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAEioB,GAAG,IAAIG,GAAG,GAAGE,GAAG,GAAGD,GAAG,GAAGQ,GAAG,CAAC,GAAGH,GAAG,IAAIR,GAAG,GAAGI,GAAG,GAAGH,GAAG,GAAGU,GAAG,CAAC,GAAGD,GAAG,IAAIV,GAAG,GAAGG,GAAG,GAAGF,GAAG,GAAGC,GAAG,CAAC,CAAC;EACzGpoB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAEyoB,GAAG,IAAII,GAAG,GAAGI,GAAG,GAAGX,GAAG,GAAGU,GAAG,CAAC,GAAGL,GAAG,IAAIP,GAAG,GAAGa,GAAG,GAAGZ,GAAG,GAAGW,GAAG,CAAC,GAAGF,GAAG,IAAIV,GAAG,GAAGE,GAAG,GAAGD,GAAG,GAAGQ,GAAG,CAAC,CAAC;EACzG7oB,GAAG,CAAC,CAAC,CAAC,GAAGwoB,GAAG,IAAIK,GAAG,GAAGI,GAAG,GAAGX,GAAG,GAAGU,GAAG,CAAC,GAAGL,GAAG,IAAIT,GAAG,GAAGe,GAAG,GAAGd,GAAG,GAAGa,GAAG,CAAC,GAAGF,GAAG,IAAIZ,GAAG,GAAGI,GAAG,GAAGH,GAAG,GAAGU,GAAG,CAAC;EACtG7oB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAEwoB,GAAG,IAAIJ,GAAG,GAAGa,GAAG,GAAGZ,GAAG,GAAGW,GAAG,CAAC,GAAGP,GAAG,IAAIP,GAAG,GAAGe,GAAG,GAAGd,GAAG,GAAGa,GAAG,CAAC,GAAGF,GAAG,IAAIZ,GAAG,GAAGG,GAAG,GAAGF,GAAG,GAAGC,GAAG,CAAC,CAAC;EACzGpoB,GAAG,CAAC,CAAC,CAAC,GAAGwoB,GAAG,IAAIJ,GAAG,GAAGE,GAAG,GAAGD,GAAG,GAAGQ,GAAG,CAAC,GAAGJ,GAAG,IAAIP,GAAG,GAAGI,GAAG,GAAGH,GAAG,GAAGU,GAAG,CAAC,GAAGF,GAAG,IAAIT,GAAG,GAAGG,GAAG,GAAGF,GAAG,GAAGC,GAAG,CAAC;EACtGpoB,GAAG,CAAC,CAAC,CAAC,GAAGyoB,GAAG,IAAIG,GAAG,GAAGK,GAAG,GAAGX,GAAG,GAAGS,GAAG,CAAC,GAAGJ,GAAG,IAAID,GAAG,GAAGO,GAAG,GAAGZ,GAAG,GAAGU,GAAG,CAAC,GAAGD,GAAG,IAAIJ,GAAG,GAAGJ,GAAG,GAAGD,GAAG,GAAGO,GAAG,CAAC;EACtG5oB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAEwoB,GAAG,IAAII,GAAG,GAAGK,GAAG,GAAGX,GAAG,GAAGS,GAAG,CAAC,GAAGJ,GAAG,IAAIV,GAAG,GAAGgB,GAAG,GAAGd,GAAG,GAAGY,GAAG,CAAC,GAAGD,GAAG,IAAIb,GAAG,GAAGK,GAAG,GAAGH,GAAG,GAAGS,GAAG,CAAC,CAAC;EACzG5oB,GAAG,CAAC,EAAE,CAAC,GAAGwoB,GAAG,IAAIE,GAAG,GAAGO,GAAG,GAAGZ,GAAG,GAAGU,GAAG,CAAC,GAAGN,GAAG,IAAIR,GAAG,GAAGgB,GAAG,GAAGd,GAAG,GAAGY,GAAG,CAAC,GAAGD,GAAG,IAAIb,GAAG,GAAGI,GAAG,GAAGF,GAAG,GAAGO,GAAG,CAAC;EACvG1oB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAEwoB,GAAG,IAAIE,GAAG,GAAGJ,GAAG,GAAGD,GAAG,GAAGO,GAAG,CAAC,GAAGH,GAAG,IAAIR,GAAG,GAAGK,GAAG,GAAGH,GAAG,GAAGS,GAAG,CAAC,GAAGD,GAAG,IAAIV,GAAG,GAAGI,GAAG,GAAGF,GAAG,GAAGO,GAAG,CAAC,CAAC;EAC1G1oB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAEyoB,GAAG,IAAIG,GAAG,GAAGI,GAAG,GAAGH,GAAG,GAAGE,GAAG,CAAC,GAAGJ,GAAG,IAAID,GAAG,GAAGM,GAAG,GAAGZ,GAAG,GAAGW,GAAG,CAAC,GAAGD,GAAG,IAAIJ,GAAG,GAAGG,GAAG,GAAGT,GAAG,GAAGQ,GAAG,CAAC,CAAC;EAC1G5oB,GAAG,CAAC,EAAE,CAAC,GAAGwoB,GAAG,IAAII,GAAG,GAAGI,GAAG,GAAGH,GAAG,GAAGE,GAAG,CAAC,GAAGJ,GAAG,IAAIV,GAAG,GAAGe,GAAG,GAAGd,GAAG,GAAGa,GAAG,CAAC,GAAGD,GAAG,IAAIb,GAAG,GAAGY,GAAG,GAAGX,GAAG,GAAGU,GAAG,CAAC;EACvG5oB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAEwoB,GAAG,IAAIE,GAAG,GAAGM,GAAG,GAAGZ,GAAG,GAAGW,GAAG,CAAC,GAAGN,GAAG,IAAIR,GAAG,GAAGe,GAAG,GAAGd,GAAG,GAAGa,GAAG,CAAC,GAAGD,GAAG,IAAIb,GAAG,GAAGG,GAAG,GAAGF,GAAG,GAAGQ,GAAG,CAAC,CAAC;EAC1G1oB,GAAG,CAAC,EAAE,CAAC,GAAGwoB,GAAG,IAAIE,GAAG,GAAGG,GAAG,GAAGT,GAAG,GAAGQ,GAAG,CAAC,GAAGH,GAAG,IAAIR,GAAG,GAAGY,GAAG,GAAGX,GAAG,GAAGU,GAAG,CAAC,GAAGD,GAAG,IAAIV,GAAG,GAAGG,GAAG,GAAGF,GAAG,GAAGQ,GAAG,CAAC;EACvG,OAAO1oB,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASgqB,WAAWA,CAACrpB,CAAC,EAAE;EAC7B,IAAI6nB,GAAG,GAAG7nB,CAAC,CAAC,CAAC,CAAC;IACVsnB,GAAG,GAAGtnB,CAAC,CAAC,CAAC,CAAC;IACVunB,GAAG,GAAGvnB,CAAC,CAAC,CAAC,CAAC;IACVwnB,GAAG,GAAGxnB,CAAC,CAAC,CAAC,CAAC;EACd,IAAI8nB,GAAG,GAAG9nB,CAAC,CAAC,CAAC,CAAC;IACV+nB,GAAG,GAAG/nB,CAAC,CAAC,CAAC,CAAC;IACVynB,GAAG,GAAGznB,CAAC,CAAC,CAAC,CAAC;IACV0nB,GAAG,GAAG1nB,CAAC,CAAC,CAAC,CAAC;EACd,IAAIgoB,GAAG,GAAGhoB,CAAC,CAAC,CAAC,CAAC;IACVioB,GAAG,GAAGjoB,CAAC,CAAC,CAAC,CAAC;IACVkoB,GAAG,GAAGloB,CAAC,CAAC,EAAE,CAAC;IACX2nB,GAAG,GAAG3nB,CAAC,CAAC,EAAE,CAAC;EACf,IAAImoB,GAAG,GAAGnoB,CAAC,CAAC,EAAE,CAAC;IACXooB,GAAG,GAAGpoB,CAAC,CAAC,EAAE,CAAC;IACXqoB,GAAG,GAAGroB,CAAC,CAAC,EAAE,CAAC;IACXsoB,GAAG,GAAGtoB,CAAC,CAAC,EAAE,CAAC;EACf,IAAIuoB,GAAG,GAAGV,GAAG,GAAGE,GAAG,GAAGT,GAAG,GAAGQ,GAAG;EAC/B,IAAIU,GAAG,GAAGX,GAAG,GAAGJ,GAAG,GAAGF,GAAG,GAAGO,GAAG;EAC/B,IAAIW,GAAG,GAAGZ,GAAG,GAAGH,GAAG,GAAGF,GAAG,GAAGM,GAAG;EAC/B,IAAIY,GAAG,GAAGpB,GAAG,GAAGG,GAAG,GAAGF,GAAG,GAAGQ,GAAG;EAC/B,IAAIY,GAAG,GAAGrB,GAAG,GAAGI,GAAG,GAAGF,GAAG,GAAGO,GAAG;EAC/B,IAAIa,GAAG,GAAGrB,GAAG,GAAGG,GAAG,GAAGF,GAAG,GAAGC,GAAG;EAC/B,IAAIoB,GAAG,GAAGb,GAAG,GAAGI,GAAG,GAAGH,GAAG,GAAGE,GAAG;EAC/B,IAAIW,GAAG,GAAGd,GAAG,GAAGK,GAAG,GAAGH,GAAG,GAAGC,GAAG;EAC/B,IAAIY,GAAG,GAAGf,GAAG,GAAGM,GAAG,GAAGX,GAAG,GAAGQ,GAAG;EAC/B,IAAIa,GAAG,GAAGf,GAAG,GAAGI,GAAG,GAAGH,GAAG,GAAGE,GAAG;EAC/B,IAAIa,GAAG,GAAGhB,GAAG,GAAGK,GAAG,GAAGX,GAAG,GAAGS,GAAG;EAC/B,IAAIc,GAAG,GAAGhB,GAAG,GAAGI,GAAG,GAAGX,GAAG,GAAGU,GAAG,CAAC,CAAC;;EAEjC,OAAOE,GAAG,GAAGW,GAAG,GAAGV,GAAG,GAAGS,GAAG,GAAGR,GAAG,GAAGO,GAAG,GAAGN,GAAG,GAAGK,GAAG,GAAGJ,GAAG,GAAGG,GAAG,GAAGF,GAAG,GAAGC,GAAG;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASS,QAAQA,CAACjqB,GAAG,EAAEW,CAAC,EAAEsG,CAAC,EAAE;EAClC,IAAIuhB,GAAG,GAAG7nB,CAAC,CAAC,CAAC,CAAC;IACVsnB,GAAG,GAAGtnB,CAAC,CAAC,CAAC,CAAC;IACVunB,GAAG,GAAGvnB,CAAC,CAAC,CAAC,CAAC;IACVwnB,GAAG,GAAGxnB,CAAC,CAAC,CAAC,CAAC;EACd,IAAI8nB,GAAG,GAAG9nB,CAAC,CAAC,CAAC,CAAC;IACV+nB,GAAG,GAAG/nB,CAAC,CAAC,CAAC,CAAC;IACVynB,GAAG,GAAGznB,CAAC,CAAC,CAAC,CAAC;IACV0nB,GAAG,GAAG1nB,CAAC,CAAC,CAAC,CAAC;EACd,IAAIgoB,GAAG,GAAGhoB,CAAC,CAAC,CAAC,CAAC;IACVioB,GAAG,GAAGjoB,CAAC,CAAC,CAAC,CAAC;IACVkoB,GAAG,GAAGloB,CAAC,CAAC,EAAE,CAAC;IACX2nB,GAAG,GAAG3nB,CAAC,CAAC,EAAE,CAAC;EACf,IAAImoB,GAAG,GAAGnoB,CAAC,CAAC,EAAE,CAAC;IACXooB,GAAG,GAAGpoB,CAAC,CAAC,EAAE,CAAC;IACXqoB,GAAG,GAAGroB,CAAC,CAAC,EAAE,CAAC;IACXsoB,GAAG,GAAGtoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;EAEjB,IAAIupB,EAAE,GAAGjjB,CAAC,CAAC,CAAC,CAAC;IACTkjB,EAAE,GAAGljB,CAAC,CAAC,CAAC,CAAC;IACTmjB,EAAE,GAAGnjB,CAAC,CAAC,CAAC,CAAC;IACTojB,EAAE,GAAGpjB,CAAC,CAAC,CAAC,CAAC;EACbjH,GAAG,CAAC,CAAC,CAAC,GAAGkqB,EAAE,GAAG1B,GAAG,GAAG2B,EAAE,GAAG1B,GAAG,GAAG2B,EAAE,GAAGzB,GAAG,GAAG0B,EAAE,GAAGvB,GAAG;EAClD9oB,GAAG,CAAC,CAAC,CAAC,GAAGkqB,EAAE,GAAGjC,GAAG,GAAGkC,EAAE,GAAGzB,GAAG,GAAG0B,EAAE,GAAGxB,GAAG,GAAGyB,EAAE,GAAGtB,GAAG;EAClD/oB,GAAG,CAAC,CAAC,CAAC,GAAGkqB,EAAE,GAAGhC,GAAG,GAAGiC,EAAE,GAAG/B,GAAG,GAAGgC,EAAE,GAAGvB,GAAG,GAAGwB,EAAE,GAAGrB,GAAG;EAClDhpB,GAAG,CAAC,CAAC,CAAC,GAAGkqB,EAAE,GAAG/B,GAAG,GAAGgC,EAAE,GAAG9B,GAAG,GAAG+B,EAAE,GAAG9B,GAAG,GAAG+B,EAAE,GAAGpB,GAAG;EAClDiB,EAAE,GAAGjjB,CAAC,CAAC,CAAC,CAAC;EACTkjB,EAAE,GAAGljB,CAAC,CAAC,CAAC,CAAC;EACTmjB,EAAE,GAAGnjB,CAAC,CAAC,CAAC,CAAC;EACTojB,EAAE,GAAGpjB,CAAC,CAAC,CAAC,CAAC;EACTjH,GAAG,CAAC,CAAC,CAAC,GAAGkqB,EAAE,GAAG1B,GAAG,GAAG2B,EAAE,GAAG1B,GAAG,GAAG2B,EAAE,GAAGzB,GAAG,GAAG0B,EAAE,GAAGvB,GAAG;EAClD9oB,GAAG,CAAC,CAAC,CAAC,GAAGkqB,EAAE,GAAGjC,GAAG,GAAGkC,EAAE,GAAGzB,GAAG,GAAG0B,EAAE,GAAGxB,GAAG,GAAGyB,EAAE,GAAGtB,GAAG;EAClD/oB,GAAG,CAAC,CAAC,CAAC,GAAGkqB,EAAE,GAAGhC,GAAG,GAAGiC,EAAE,GAAG/B,GAAG,GAAGgC,EAAE,GAAGvB,GAAG,GAAGwB,EAAE,GAAGrB,GAAG;EAClDhpB,GAAG,CAAC,CAAC,CAAC,GAAGkqB,EAAE,GAAG/B,GAAG,GAAGgC,EAAE,GAAG9B,GAAG,GAAG+B,EAAE,GAAG9B,GAAG,GAAG+B,EAAE,GAAGpB,GAAG;EAClDiB,EAAE,GAAGjjB,CAAC,CAAC,CAAC,CAAC;EACTkjB,EAAE,GAAGljB,CAAC,CAAC,CAAC,CAAC;EACTmjB,EAAE,GAAGnjB,CAAC,CAAC,EAAE,CAAC;EACVojB,EAAE,GAAGpjB,CAAC,CAAC,EAAE,CAAC;EACVjH,GAAG,CAAC,CAAC,CAAC,GAAGkqB,EAAE,GAAG1B,GAAG,GAAG2B,EAAE,GAAG1B,GAAG,GAAG2B,EAAE,GAAGzB,GAAG,GAAG0B,EAAE,GAAGvB,GAAG;EAClD9oB,GAAG,CAAC,CAAC,CAAC,GAAGkqB,EAAE,GAAGjC,GAAG,GAAGkC,EAAE,GAAGzB,GAAG,GAAG0B,EAAE,GAAGxB,GAAG,GAAGyB,EAAE,GAAGtB,GAAG;EAClD/oB,GAAG,CAAC,EAAE,CAAC,GAAGkqB,EAAE,GAAGhC,GAAG,GAAGiC,EAAE,GAAG/B,GAAG,GAAGgC,EAAE,GAAGvB,GAAG,GAAGwB,EAAE,GAAGrB,GAAG;EACnDhpB,GAAG,CAAC,EAAE,CAAC,GAAGkqB,EAAE,GAAG/B,GAAG,GAAGgC,EAAE,GAAG9B,GAAG,GAAG+B,EAAE,GAAG9B,GAAG,GAAG+B,EAAE,GAAGpB,GAAG;EACnDiB,EAAE,GAAGjjB,CAAC,CAAC,EAAE,CAAC;EACVkjB,EAAE,GAAGljB,CAAC,CAAC,EAAE,CAAC;EACVmjB,EAAE,GAAGnjB,CAAC,CAAC,EAAE,CAAC;EACVojB,EAAE,GAAGpjB,CAAC,CAAC,EAAE,CAAC;EACVjH,GAAG,CAAC,EAAE,CAAC,GAAGkqB,EAAE,GAAG1B,GAAG,GAAG2B,EAAE,GAAG1B,GAAG,GAAG2B,EAAE,GAAGzB,GAAG,GAAG0B,EAAE,GAAGvB,GAAG;EACnD9oB,GAAG,CAAC,EAAE,CAAC,GAAGkqB,EAAE,GAAGjC,GAAG,GAAGkC,EAAE,GAAGzB,GAAG,GAAG0B,EAAE,GAAGxB,GAAG,GAAGyB,EAAE,GAAGtB,GAAG;EACnD/oB,GAAG,CAAC,EAAE,CAAC,GAAGkqB,EAAE,GAAGhC,GAAG,GAAGiC,EAAE,GAAG/B,GAAG,GAAGgC,EAAE,GAAGvB,GAAG,GAAGwB,EAAE,GAAGrB,GAAG;EACnDhpB,GAAG,CAAC,EAAE,CAAC,GAAGkqB,EAAE,GAAG/B,GAAG,GAAGgC,EAAE,GAAG9B,GAAG,GAAG+B,EAAE,GAAG9B,GAAG,GAAG+B,EAAE,GAAGpB,GAAG;EACnD,OAAOjpB,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASsqB,SAASA,CAACtqB,GAAG,EAAEW,CAAC,EAAEmK,CAAC,EAAE;EACnC,IAAI1M,CAAC,GAAG0M,CAAC,CAAC,CAAC,CAAC;IACR0N,CAAC,GAAG1N,CAAC,CAAC,CAAC,CAAC;IACR2N,CAAC,GAAG3N,CAAC,CAAC,CAAC,CAAC;EACZ,IAAI0d,GAAG,EAAEP,GAAG,EAAEC,GAAG,EAAEC,GAAG;EACtB,IAAIM,GAAG,EAAEC,GAAG,EAAEN,GAAG,EAAEC,GAAG;EACtB,IAAIM,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEP,GAAG;EAEtB,IAAI3nB,CAAC,KAAKX,GAAG,EAAE;IACbA,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGvC,CAAC,GAAGuC,CAAC,CAAC,CAAC,CAAC,GAAG6X,CAAC,GAAG7X,CAAC,CAAC,CAAC,CAAC,GAAG8X,CAAC,GAAG9X,CAAC,CAAC,EAAE,CAAC;IAChDX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGvC,CAAC,GAAGuC,CAAC,CAAC,CAAC,CAAC,GAAG6X,CAAC,GAAG7X,CAAC,CAAC,CAAC,CAAC,GAAG8X,CAAC,GAAG9X,CAAC,CAAC,EAAE,CAAC;IAChDX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGvC,CAAC,GAAGuC,CAAC,CAAC,CAAC,CAAC,GAAG6X,CAAC,GAAG7X,CAAC,CAAC,EAAE,CAAC,GAAG8X,CAAC,GAAG9X,CAAC,CAAC,EAAE,CAAC;IACjDX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGvC,CAAC,GAAGuC,CAAC,CAAC,CAAC,CAAC,GAAG6X,CAAC,GAAG7X,CAAC,CAAC,EAAE,CAAC,GAAG8X,CAAC,GAAG9X,CAAC,CAAC,EAAE,CAAC;EACnD,CAAC,MAAM;IACL6nB,GAAG,GAAG7nB,CAAC,CAAC,CAAC,CAAC;IACVsnB,GAAG,GAAGtnB,CAAC,CAAC,CAAC,CAAC;IACVunB,GAAG,GAAGvnB,CAAC,CAAC,CAAC,CAAC;IACVwnB,GAAG,GAAGxnB,CAAC,CAAC,CAAC,CAAC;IACV8nB,GAAG,GAAG9nB,CAAC,CAAC,CAAC,CAAC;IACV+nB,GAAG,GAAG/nB,CAAC,CAAC,CAAC,CAAC;IACVynB,GAAG,GAAGznB,CAAC,CAAC,CAAC,CAAC;IACV0nB,GAAG,GAAG1nB,CAAC,CAAC,CAAC,CAAC;IACVgoB,GAAG,GAAGhoB,CAAC,CAAC,CAAC,CAAC;IACVioB,GAAG,GAAGjoB,CAAC,CAAC,CAAC,CAAC;IACVkoB,GAAG,GAAGloB,CAAC,CAAC,EAAE,CAAC;IACX2nB,GAAG,GAAG3nB,CAAC,CAAC,EAAE,CAAC;IACXX,GAAG,CAAC,CAAC,CAAC,GAAGwoB,GAAG;IACZxoB,GAAG,CAAC,CAAC,CAAC,GAAGioB,GAAG;IACZjoB,GAAG,CAAC,CAAC,CAAC,GAAGkoB,GAAG;IACZloB,GAAG,CAAC,CAAC,CAAC,GAAGmoB,GAAG;IACZnoB,GAAG,CAAC,CAAC,CAAC,GAAGyoB,GAAG;IACZzoB,GAAG,CAAC,CAAC,CAAC,GAAG0oB,GAAG;IACZ1oB,GAAG,CAAC,CAAC,CAAC,GAAGooB,GAAG;IACZpoB,GAAG,CAAC,CAAC,CAAC,GAAGqoB,GAAG;IACZroB,GAAG,CAAC,CAAC,CAAC,GAAG2oB,GAAG;IACZ3oB,GAAG,CAAC,CAAC,CAAC,GAAG4oB,GAAG;IACZ5oB,GAAG,CAAC,EAAE,CAAC,GAAG6oB,GAAG;IACb7oB,GAAG,CAAC,EAAE,CAAC,GAAGsoB,GAAG;IACbtoB,GAAG,CAAC,EAAE,CAAC,GAAGwoB,GAAG,GAAGpqB,CAAC,GAAGqqB,GAAG,GAAGjQ,CAAC,GAAGmQ,GAAG,GAAGlQ,CAAC,GAAG9X,CAAC,CAAC,EAAE,CAAC;IAC7CX,GAAG,CAAC,EAAE,CAAC,GAAGioB,GAAG,GAAG7pB,CAAC,GAAGsqB,GAAG,GAAGlQ,CAAC,GAAGoQ,GAAG,GAAGnQ,CAAC,GAAG9X,CAAC,CAAC,EAAE,CAAC;IAC7CX,GAAG,CAAC,EAAE,CAAC,GAAGkoB,GAAG,GAAG9pB,CAAC,GAAGgqB,GAAG,GAAG5P,CAAC,GAAGqQ,GAAG,GAAGpQ,CAAC,GAAG9X,CAAC,CAAC,EAAE,CAAC;IAC7CX,GAAG,CAAC,EAAE,CAAC,GAAGmoB,GAAG,GAAG/pB,CAAC,GAAGiqB,GAAG,GAAG7P,CAAC,GAAG8P,GAAG,GAAG7P,CAAC,GAAG9X,CAAC,CAAC,EAAE,CAAC;EAC/C;EAEA,OAAOX,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASuqB,KAAKA,CAACvqB,GAAG,EAAEW,CAAC,EAAEmK,CAAC,EAAE;EAC/B,IAAI1M,CAAC,GAAG0M,CAAC,CAAC,CAAC,CAAC;IACR0N,CAAC,GAAG1N,CAAC,CAAC,CAAC,CAAC;IACR2N,CAAC,GAAG3N,CAAC,CAAC,CAAC,CAAC;EACZ9K,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGvC,CAAC;EACjB4B,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGvC,CAAC;EACjB4B,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGvC,CAAC;EACjB4B,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGvC,CAAC;EACjB4B,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAG6X,CAAC;EACjBxY,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAG6X,CAAC;EACjBxY,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAG6X,CAAC;EACjBxY,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAG6X,CAAC;EACjBxY,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAG8X,CAAC;EACjBzY,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAG8X,CAAC;EACjBzY,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAG8X,CAAC;EACnBzY,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAG8X,CAAC;EACnBzY,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACf,OAAOX,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASwqB,MAAMA,CAACxqB,GAAG,EAAEW,CAAC,EAAE8pB,GAAG,EAAEC,IAAI,EAAE;EACxC,IAAItsB,CAAC,GAAGssB,IAAI,CAAC,CAAC,CAAC;IACXlS,CAAC,GAAGkS,IAAI,CAAC,CAAC,CAAC;IACXjS,CAAC,GAAGiS,IAAI,CAAC,CAAC,CAAC;EACf,IAAIpe,GAAG,GAAGlL,IAAI,CAACslB,KAAK,CAACtoB,CAAC,EAAEoa,CAAC,EAAEC,CAAC,CAAC;EAC7B,IAAIxZ,CAAC,EAAE4D,CAAC,EAAEhE,CAAC;EACX,IAAI2pB,GAAG,EAAEP,GAAG,EAAEC,GAAG,EAAEC,GAAG;EACtB,IAAIM,GAAG,EAAEC,GAAG,EAAEN,GAAG,EAAEC,GAAG;EACtB,IAAIM,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEP,GAAG;EACtB,IAAIY,GAAG,EAAEC,GAAG,EAAEC,GAAG;EACjB,IAAIQ,GAAG,EAAEC,GAAG,EAAEc,GAAG;EACjB,IAAIC,GAAG,EAAEC,GAAG,EAAEC,GAAG;EAEjB,IAAIxe,GAAG,GAAGsa,QAAQ,CAACZ,OAAO,EAAE;IAC1B,OAAO,IAAI;EACb;EAEA1Z,GAAG,GAAG,CAAC,GAAGA,GAAG;EACblO,CAAC,IAAIkO,GAAG;EACRkM,CAAC,IAAIlM,GAAG;EACRmM,CAAC,IAAInM,GAAG;EACRrN,CAAC,GAAGmC,IAAI,CAAC2pB,GAAG,CAACN,GAAG,CAAC;EACjB5nB,CAAC,GAAGzB,IAAI,CAAC4pB,GAAG,CAACP,GAAG,CAAC;EACjB5rB,CAAC,GAAG,CAAC,GAAGgE,CAAC;EACT2lB,GAAG,GAAG7nB,CAAC,CAAC,CAAC,CAAC;EACVsnB,GAAG,GAAGtnB,CAAC,CAAC,CAAC,CAAC;EACVunB,GAAG,GAAGvnB,CAAC,CAAC,CAAC,CAAC;EACVwnB,GAAG,GAAGxnB,CAAC,CAAC,CAAC,CAAC;EACV8nB,GAAG,GAAG9nB,CAAC,CAAC,CAAC,CAAC;EACV+nB,GAAG,GAAG/nB,CAAC,CAAC,CAAC,CAAC;EACVynB,GAAG,GAAGznB,CAAC,CAAC,CAAC,CAAC;EACV0nB,GAAG,GAAG1nB,CAAC,CAAC,CAAC,CAAC;EACVgoB,GAAG,GAAGhoB,CAAC,CAAC,CAAC,CAAC;EACVioB,GAAG,GAAGjoB,CAAC,CAAC,CAAC,CAAC;EACVkoB,GAAG,GAAGloB,CAAC,CAAC,EAAE,CAAC;EACX2nB,GAAG,GAAG3nB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;EAEbuoB,GAAG,GAAG9qB,CAAC,GAAGA,CAAC,GAAGS,CAAC,GAAGgE,CAAC;EACnBsmB,GAAG,GAAG3Q,CAAC,GAAGpa,CAAC,GAAGS,CAAC,GAAG4Z,CAAC,GAAGxZ,CAAC;EACvBmqB,GAAG,GAAG3Q,CAAC,GAAGra,CAAC,GAAGS,CAAC,GAAG2Z,CAAC,GAAGvZ,CAAC;EACvB2qB,GAAG,GAAGxrB,CAAC,GAAGoa,CAAC,GAAG3Z,CAAC,GAAG4Z,CAAC,GAAGxZ,CAAC;EACvB4qB,GAAG,GAAGrR,CAAC,GAAGA,CAAC,GAAG3Z,CAAC,GAAGgE,CAAC;EACnB8nB,GAAG,GAAGlS,CAAC,GAAGD,CAAC,GAAG3Z,CAAC,GAAGT,CAAC,GAAGa,CAAC;EACvB2rB,GAAG,GAAGxsB,CAAC,GAAGqa,CAAC,GAAG5Z,CAAC,GAAG2Z,CAAC,GAAGvZ,CAAC;EACvB4rB,GAAG,GAAGrS,CAAC,GAAGC,CAAC,GAAG5Z,CAAC,GAAGT,CAAC,GAAGa,CAAC;EACvB6rB,GAAG,GAAGrS,CAAC,GAAGA,CAAC,GAAG5Z,CAAC,GAAGgE,CAAC,CAAC,CAAC;;EAErB7C,GAAG,CAAC,CAAC,CAAC,GAAGwoB,GAAG,GAAGU,GAAG,GAAGT,GAAG,GAAGU,GAAG,GAAGR,GAAG,GAAGS,GAAG;EAC1CppB,GAAG,CAAC,CAAC,CAAC,GAAGioB,GAAG,GAAGiB,GAAG,GAAGR,GAAG,GAAGS,GAAG,GAAGP,GAAG,GAAGQ,GAAG;EAC1CppB,GAAG,CAAC,CAAC,CAAC,GAAGkoB,GAAG,GAAGgB,GAAG,GAAGd,GAAG,GAAGe,GAAG,GAAGN,GAAG,GAAGO,GAAG;EAC1CppB,GAAG,CAAC,CAAC,CAAC,GAAGmoB,GAAG,GAAGe,GAAG,GAAGb,GAAG,GAAGc,GAAG,GAAGb,GAAG,GAAGc,GAAG;EAC1CppB,GAAG,CAAC,CAAC,CAAC,GAAGwoB,GAAG,GAAGoB,GAAG,GAAGnB,GAAG,GAAGoB,GAAG,GAAGlB,GAAG,GAAGgC,GAAG;EAC1C3qB,GAAG,CAAC,CAAC,CAAC,GAAGioB,GAAG,GAAG2B,GAAG,GAAGlB,GAAG,GAAGmB,GAAG,GAAGjB,GAAG,GAAG+B,GAAG;EAC1C3qB,GAAG,CAAC,CAAC,CAAC,GAAGkoB,GAAG,GAAG0B,GAAG,GAAGxB,GAAG,GAAGyB,GAAG,GAAGhB,GAAG,GAAG8B,GAAG;EAC1C3qB,GAAG,CAAC,CAAC,CAAC,GAAGmoB,GAAG,GAAGyB,GAAG,GAAGvB,GAAG,GAAGwB,GAAG,GAAGvB,GAAG,GAAGqC,GAAG;EAC1C3qB,GAAG,CAAC,CAAC,CAAC,GAAGwoB,GAAG,GAAGoC,GAAG,GAAGnC,GAAG,GAAGoC,GAAG,GAAGlC,GAAG,GAAGmC,GAAG;EAC1C9qB,GAAG,CAAC,CAAC,CAAC,GAAGioB,GAAG,GAAG2C,GAAG,GAAGlC,GAAG,GAAGmC,GAAG,GAAGjC,GAAG,GAAGkC,GAAG;EAC1C9qB,GAAG,CAAC,EAAE,CAAC,GAAGkoB,GAAG,GAAG0C,GAAG,GAAGxC,GAAG,GAAGyC,GAAG,GAAGhC,GAAG,GAAGiC,GAAG;EAC3C9qB,GAAG,CAAC,EAAE,CAAC,GAAGmoB,GAAG,GAAGyC,GAAG,GAAGvC,GAAG,GAAGwC,GAAG,GAAGvC,GAAG,GAAGwC,GAAG;EAE3C,IAAInqB,CAAC,KAAKX,GAAG,EAAE;IACb;IACAA,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACjB;EAEA,OAAOX,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASirB,OAAOA,CAACjrB,GAAG,EAAEW,CAAC,EAAE8pB,GAAG,EAAE;EACnC,IAAIxrB,CAAC,GAAGmC,IAAI,CAAC2pB,GAAG,CAACN,GAAG,CAAC;EACrB,IAAI5nB,CAAC,GAAGzB,IAAI,CAAC4pB,GAAG,CAACP,GAAG,CAAC;EACrB,IAAIhC,GAAG,GAAG9nB,CAAC,CAAC,CAAC,CAAC;EACd,IAAI+nB,GAAG,GAAG/nB,CAAC,CAAC,CAAC,CAAC;EACd,IAAIynB,GAAG,GAAGznB,CAAC,CAAC,CAAC,CAAC;EACd,IAAI0nB,GAAG,GAAG1nB,CAAC,CAAC,CAAC,CAAC;EACd,IAAIgoB,GAAG,GAAGhoB,CAAC,CAAC,CAAC,CAAC;EACd,IAAIioB,GAAG,GAAGjoB,CAAC,CAAC,CAAC,CAAC;EACd,IAAIkoB,GAAG,GAAGloB,CAAC,CAAC,EAAE,CAAC;EACf,IAAI2nB,GAAG,GAAG3nB,CAAC,CAAC,EAAE,CAAC;EAEf,IAAIA,CAAC,KAAKX,GAAG,EAAE;IACb;IACAA,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACjB,CAAC,CAAC;;EAGFX,GAAG,CAAC,CAAC,CAAC,GAAGyoB,GAAG,GAAG5lB,CAAC,GAAG8lB,GAAG,GAAG1pB,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAG0oB,GAAG,GAAG7lB,CAAC,GAAG+lB,GAAG,GAAG3pB,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAGooB,GAAG,GAAGvlB,CAAC,GAAGgmB,GAAG,GAAG5pB,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAGqoB,GAAG,GAAGxlB,CAAC,GAAGylB,GAAG,GAAGrpB,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAG2oB,GAAG,GAAG9lB,CAAC,GAAG4lB,GAAG,GAAGxpB,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAG4oB,GAAG,GAAG/lB,CAAC,GAAG6lB,GAAG,GAAGzpB,CAAC;EAC1Be,GAAG,CAAC,EAAE,CAAC,GAAG6oB,GAAG,GAAGhmB,CAAC,GAAGulB,GAAG,GAAGnpB,CAAC;EAC3Be,GAAG,CAAC,EAAE,CAAC,GAAGsoB,GAAG,GAAGzlB,CAAC,GAAGwlB,GAAG,GAAGppB,CAAC;EAC3B,OAAOe,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASkrB,OAAOA,CAAClrB,GAAG,EAAEW,CAAC,EAAE8pB,GAAG,EAAE;EACnC,IAAIxrB,CAAC,GAAGmC,IAAI,CAAC2pB,GAAG,CAACN,GAAG,CAAC;EACrB,IAAI5nB,CAAC,GAAGzB,IAAI,CAAC4pB,GAAG,CAACP,GAAG,CAAC;EACrB,IAAIjC,GAAG,GAAG7nB,CAAC,CAAC,CAAC,CAAC;EACd,IAAIsnB,GAAG,GAAGtnB,CAAC,CAAC,CAAC,CAAC;EACd,IAAIunB,GAAG,GAAGvnB,CAAC,CAAC,CAAC,CAAC;EACd,IAAIwnB,GAAG,GAAGxnB,CAAC,CAAC,CAAC,CAAC;EACd,IAAIgoB,GAAG,GAAGhoB,CAAC,CAAC,CAAC,CAAC;EACd,IAAIioB,GAAG,GAAGjoB,CAAC,CAAC,CAAC,CAAC;EACd,IAAIkoB,GAAG,GAAGloB,CAAC,CAAC,EAAE,CAAC;EACf,IAAI2nB,GAAG,GAAG3nB,CAAC,CAAC,EAAE,CAAC;EAEf,IAAIA,CAAC,KAAKX,GAAG,EAAE;IACb;IACAA,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACjB,CAAC,CAAC;;EAGFX,GAAG,CAAC,CAAC,CAAC,GAAGwoB,GAAG,GAAG3lB,CAAC,GAAG8lB,GAAG,GAAG1pB,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAGioB,GAAG,GAAGplB,CAAC,GAAG+lB,GAAG,GAAG3pB,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAGkoB,GAAG,GAAGrlB,CAAC,GAAGgmB,GAAG,GAAG5pB,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAGmoB,GAAG,GAAGtlB,CAAC,GAAGylB,GAAG,GAAGrpB,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAGwoB,GAAG,GAAGvpB,CAAC,GAAG0pB,GAAG,GAAG9lB,CAAC;EAC1B7C,GAAG,CAAC,CAAC,CAAC,GAAGioB,GAAG,GAAGhpB,CAAC,GAAG2pB,GAAG,GAAG/lB,CAAC;EAC1B7C,GAAG,CAAC,EAAE,CAAC,GAAGkoB,GAAG,GAAGjpB,CAAC,GAAG4pB,GAAG,GAAGhmB,CAAC;EAC3B7C,GAAG,CAAC,EAAE,CAAC,GAAGmoB,GAAG,GAAGlpB,CAAC,GAAGqpB,GAAG,GAAGzlB,CAAC;EAC3B,OAAO7C,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASmrB,OAAOA,CAACnrB,GAAG,EAAEW,CAAC,EAAE8pB,GAAG,EAAE;EACnC,IAAIxrB,CAAC,GAAGmC,IAAI,CAAC2pB,GAAG,CAACN,GAAG,CAAC;EACrB,IAAI5nB,CAAC,GAAGzB,IAAI,CAAC4pB,GAAG,CAACP,GAAG,CAAC;EACrB,IAAIjC,GAAG,GAAG7nB,CAAC,CAAC,CAAC,CAAC;EACd,IAAIsnB,GAAG,GAAGtnB,CAAC,CAAC,CAAC,CAAC;EACd,IAAIunB,GAAG,GAAGvnB,CAAC,CAAC,CAAC,CAAC;EACd,IAAIwnB,GAAG,GAAGxnB,CAAC,CAAC,CAAC,CAAC;EACd,IAAI8nB,GAAG,GAAG9nB,CAAC,CAAC,CAAC,CAAC;EACd,IAAI+nB,GAAG,GAAG/nB,CAAC,CAAC,CAAC,CAAC;EACd,IAAIynB,GAAG,GAAGznB,CAAC,CAAC,CAAC,CAAC;EACd,IAAI0nB,GAAG,GAAG1nB,CAAC,CAAC,CAAC,CAAC;EAEd,IAAIA,CAAC,KAAKX,GAAG,EAAE;IACb;IACAA,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC;IACbX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;IACfX,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC;EACjB,CAAC,CAAC;;EAGFX,GAAG,CAAC,CAAC,CAAC,GAAGwoB,GAAG,GAAG3lB,CAAC,GAAG4lB,GAAG,GAAGxpB,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAGioB,GAAG,GAAGplB,CAAC,GAAG6lB,GAAG,GAAGzpB,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAGkoB,GAAG,GAAGrlB,CAAC,GAAGulB,GAAG,GAAGnpB,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAGmoB,GAAG,GAAGtlB,CAAC,GAAGwlB,GAAG,GAAGppB,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAGyoB,GAAG,GAAG5lB,CAAC,GAAG2lB,GAAG,GAAGvpB,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAG0oB,GAAG,GAAG7lB,CAAC,GAAGolB,GAAG,GAAGhpB,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAGooB,GAAG,GAAGvlB,CAAC,GAAGqlB,GAAG,GAAGjpB,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAGqoB,GAAG,GAAGxlB,CAAC,GAAGslB,GAAG,GAAGlpB,CAAC;EAC1B,OAAOe,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASorB,eAAeA,CAACprB,GAAG,EAAE8K,CAAC,EAAE;EACtC9K,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG8K,CAAC,CAAC,CAAC,CAAC;EACd9K,GAAG,CAAC,EAAE,CAAC,GAAG8K,CAAC,CAAC,CAAC,CAAC;EACd9K,GAAG,CAAC,EAAE,CAAC,GAAG8K,CAAC,CAAC,CAAC,CAAC;EACd9K,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACX,OAAOA,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASqrB,WAAWA,CAACrrB,GAAG,EAAE8K,CAAC,EAAE;EAClC9K,GAAG,CAAC,CAAC,CAAC,GAAG8K,CAAC,CAAC,CAAC,CAAC;EACb9K,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG8K,CAAC,CAAC,CAAC,CAAC;EACb9K,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,EAAE,CAAC,GAAG8K,CAAC,CAAC,CAAC,CAAC;EACd9K,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACX,OAAOA,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASsrB,YAAYA,CAACtrB,GAAG,EAAEyqB,GAAG,EAAEC,IAAI,EAAE;EAC3C,IAAItsB,CAAC,GAAGssB,IAAI,CAAC,CAAC,CAAC;IACXlS,CAAC,GAAGkS,IAAI,CAAC,CAAC,CAAC;IACXjS,CAAC,GAAGiS,IAAI,CAAC,CAAC,CAAC;EACf,IAAIpe,GAAG,GAAGlL,IAAI,CAACslB,KAAK,CAACtoB,CAAC,EAAEoa,CAAC,EAAEC,CAAC,CAAC;EAC7B,IAAIxZ,CAAC,EAAE4D,CAAC,EAAEhE,CAAC;EAEX,IAAIyN,GAAG,GAAGsa,QAAQ,CAACZ,OAAO,EAAE;IAC1B,OAAO,IAAI;EACb;EAEA1Z,GAAG,GAAG,CAAC,GAAGA,GAAG;EACblO,CAAC,IAAIkO,GAAG;EACRkM,CAAC,IAAIlM,GAAG;EACRmM,CAAC,IAAInM,GAAG;EACRrN,CAAC,GAAGmC,IAAI,CAAC2pB,GAAG,CAACN,GAAG,CAAC;EACjB5nB,CAAC,GAAGzB,IAAI,CAAC4pB,GAAG,CAACP,GAAG,CAAC;EACjB5rB,CAAC,GAAG,CAAC,GAAGgE,CAAC,CAAC,CAAC;;EAEX7C,GAAG,CAAC,CAAC,CAAC,GAAG5B,CAAC,GAAGA,CAAC,GAAGS,CAAC,GAAGgE,CAAC;EACtB7C,GAAG,CAAC,CAAC,CAAC,GAAGwY,CAAC,GAAGpa,CAAC,GAAGS,CAAC,GAAG4Z,CAAC,GAAGxZ,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAGyY,CAAC,GAAGra,CAAC,GAAGS,CAAC,GAAG2Z,CAAC,GAAGvZ,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG5B,CAAC,GAAGoa,CAAC,GAAG3Z,CAAC,GAAG4Z,CAAC,GAAGxZ,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAGwY,CAAC,GAAGA,CAAC,GAAG3Z,CAAC,GAAGgE,CAAC;EACtB7C,GAAG,CAAC,CAAC,CAAC,GAAGyY,CAAC,GAAGD,CAAC,GAAG3Z,CAAC,GAAGT,CAAC,GAAGa,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG5B,CAAC,GAAGqa,CAAC,GAAG5Z,CAAC,GAAG2Z,CAAC,GAAGvZ,CAAC;EAC1Be,GAAG,CAAC,CAAC,CAAC,GAAGwY,CAAC,GAAGC,CAAC,GAAG5Z,CAAC,GAAGT,CAAC,GAAGa,CAAC;EAC1Be,GAAG,CAAC,EAAE,CAAC,GAAGyY,CAAC,GAAGA,CAAC,GAAG5Z,CAAC,GAAGgE,CAAC;EACvB7C,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACX,OAAOA,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASurB,aAAaA,CAACvrB,GAAG,EAAEyqB,GAAG,EAAE;EACtC,IAAIxrB,CAAC,GAAGmC,IAAI,CAAC2pB,GAAG,CAACN,GAAG,CAAC;EACrB,IAAI5nB,CAAC,GAAGzB,IAAI,CAAC4pB,GAAG,CAACP,GAAG,CAAC,CAAC,CAAC;;EAEvBzqB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG6C,CAAC;EACV7C,GAAG,CAAC,CAAC,CAAC,GAAGf,CAAC;EACVe,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAACf,CAAC;EACXe,GAAG,CAAC,EAAE,CAAC,GAAG6C,CAAC;EACX7C,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACX,OAAOA,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASwrB,aAAaA,CAACxrB,GAAG,EAAEyqB,GAAG,EAAE;EACtC,IAAIxrB,CAAC,GAAGmC,IAAI,CAAC2pB,GAAG,CAACN,GAAG,CAAC;EACrB,IAAI5nB,CAAC,GAAGzB,IAAI,CAAC4pB,GAAG,CAACP,GAAG,CAAC,CAAC,CAAC;;EAEvBzqB,GAAG,CAAC,CAAC,CAAC,GAAG6C,CAAC;EACV7C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAACf,CAAC;EACXe,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAGf,CAAC;EACVe,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,EAAE,CAAC,GAAG6C,CAAC;EACX7C,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACX,OAAOA,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASyrB,aAAaA,CAACzrB,GAAG,EAAEyqB,GAAG,EAAE;EACtC,IAAIxrB,CAAC,GAAGmC,IAAI,CAAC2pB,GAAG,CAACN,GAAG,CAAC;EACrB,IAAI5nB,CAAC,GAAGzB,IAAI,CAAC4pB,GAAG,CAACP,GAAG,CAAC,CAAC,CAAC;;EAEvBzqB,GAAG,CAAC,CAAC,CAAC,GAAG6C,CAAC;EACV7C,GAAG,CAAC,CAAC,CAAC,GAAGf,CAAC;EACVe,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAACf,CAAC;EACXe,GAAG,CAAC,CAAC,CAAC,GAAG6C,CAAC;EACV7C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACX,OAAOA,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAAS0rB,uBAAuBA,CAAC1rB,GAAG,EAAE2rB,CAAC,EAAE7gB,CAAC,EAAE;EACjD;EACA,IAAI1M,CAAC,GAAGutB,CAAC,CAAC,CAAC,CAAC;IACRnT,CAAC,GAAGmT,CAAC,CAAC,CAAC,CAAC;IACRlT,CAAC,GAAGkT,CAAC,CAAC,CAAC,CAAC;IACRjT,CAAC,GAAGiT,CAAC,CAAC,CAAC,CAAC;EACZ,IAAIC,EAAE,GAAGxtB,CAAC,GAAGA,CAAC;EACd,IAAIytB,EAAE,GAAGrT,CAAC,GAAGA,CAAC;EACd,IAAIsT,EAAE,GAAGrT,CAAC,GAAGA,CAAC;EACd,IAAIsT,EAAE,GAAG3tB,CAAC,GAAGwtB,EAAE;EACf,IAAII,EAAE,GAAG5tB,CAAC,GAAGytB,EAAE;EACf,IAAII,EAAE,GAAG7tB,CAAC,GAAG0tB,EAAE;EACf,IAAII,EAAE,GAAG1T,CAAC,GAAGqT,EAAE;EACf,IAAIM,EAAE,GAAG3T,CAAC,GAAGsT,EAAE;EACf,IAAIM,EAAE,GAAG3T,CAAC,GAAGqT,EAAE;EACf,IAAIO,EAAE,GAAG3T,CAAC,GAAGkT,EAAE;EACf,IAAIU,EAAE,GAAG5T,CAAC,GAAGmT,EAAE;EACf,IAAIU,EAAE,GAAG7T,CAAC,GAAGoT,EAAE;EACf9rB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAIksB,EAAE,GAAGE,EAAE,CAAC;EACtBpsB,GAAG,CAAC,CAAC,CAAC,GAAGgsB,EAAE,GAAGO,EAAE;EAChBvsB,GAAG,CAAC,CAAC,CAAC,GAAGisB,EAAE,GAAGK,EAAE;EAChBtsB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAGgsB,EAAE,GAAGO,EAAE;EAChBvsB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI+rB,EAAE,GAAGK,EAAE,CAAC;EACtBpsB,GAAG,CAAC,CAAC,CAAC,GAAGmsB,EAAE,GAAGE,EAAE;EAChBrsB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAGisB,EAAE,GAAGK,EAAE;EAChBtsB,GAAG,CAAC,CAAC,CAAC,GAAGmsB,EAAE,GAAGE,EAAE;EAChBrsB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI+rB,EAAE,GAAGG,EAAE,CAAC;EACvBlsB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG8K,CAAC,CAAC,CAAC,CAAC;EACd9K,GAAG,CAAC,EAAE,CAAC,GAAG8K,CAAC,CAAC,CAAC,CAAC;EACd9K,GAAG,CAAC,EAAE,CAAC,GAAG8K,CAAC,CAAC,CAAC,CAAC;EACd9K,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACX,OAAOA,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASwsB,SAASA,CAACxsB,GAAG,EAAEW,CAAC,EAAE;EAChC,IAAI8rB,WAAW,GAAG,IAAI7F,QAAQ,CAACX,UAAU,CAAC,CAAC,CAAC;EAC5C,IAAIyG,EAAE,GAAG,CAAC/rB,CAAC,CAAC,CAAC,CAAC;IACVgsB,EAAE,GAAG,CAAChsB,CAAC,CAAC,CAAC,CAAC;IACVisB,EAAE,GAAG,CAACjsB,CAAC,CAAC,CAAC,CAAC;IACVksB,EAAE,GAAGlsB,CAAC,CAAC,CAAC,CAAC;IACTmsB,EAAE,GAAGnsB,CAAC,CAAC,CAAC,CAAC;IACTosB,EAAE,GAAGpsB,CAAC,CAAC,CAAC,CAAC;IACTqsB,EAAE,GAAGrsB,CAAC,CAAC,CAAC,CAAC;IACTssB,EAAE,GAAGtsB,CAAC,CAAC,CAAC,CAAC;EACb,IAAIusB,SAAS,GAAGR,EAAE,GAAGA,EAAE,GAAGC,EAAE,GAAGA,EAAE,GAAGC,EAAE,GAAGA,EAAE,GAAGC,EAAE,GAAGA,EAAE,CAAC,CAAC;;EAEvD,IAAIK,SAAS,GAAG,CAAC,EAAE;IACjBT,WAAW,CAAC,CAAC,CAAC,GAAG,CAACK,EAAE,GAAGD,EAAE,GAAGI,EAAE,GAAGP,EAAE,GAAGK,EAAE,GAAGH,EAAE,GAAGI,EAAE,GAAGL,EAAE,IAAI,CAAC,GAAGO,SAAS;IACxET,WAAW,CAAC,CAAC,CAAC,GAAG,CAACM,EAAE,GAAGF,EAAE,GAAGI,EAAE,GAAGN,EAAE,GAAGK,EAAE,GAAGN,EAAE,GAAGI,EAAE,GAAGF,EAAE,IAAI,CAAC,GAAGM,SAAS;IACxET,WAAW,CAAC,CAAC,CAAC,GAAG,CAACO,EAAE,GAAGH,EAAE,GAAGI,EAAE,GAAGL,EAAE,GAAGE,EAAE,GAAGH,EAAE,GAAGI,EAAE,GAAGL,EAAE,IAAI,CAAC,GAAGQ,SAAS;EAC1E,CAAC,MAAM;IACLT,WAAW,CAAC,CAAC,CAAC,GAAG,CAACK,EAAE,GAAGD,EAAE,GAAGI,EAAE,GAAGP,EAAE,GAAGK,EAAE,GAAGH,EAAE,GAAGI,EAAE,GAAGL,EAAE,IAAI,CAAC;IAC5DF,WAAW,CAAC,CAAC,CAAC,GAAG,CAACM,EAAE,GAAGF,EAAE,GAAGI,EAAE,GAAGN,EAAE,GAAGK,EAAE,GAAGN,EAAE,GAAGI,EAAE,GAAGF,EAAE,IAAI,CAAC;IAC5DH,WAAW,CAAC,CAAC,CAAC,GAAG,CAACO,EAAE,GAAGH,EAAE,GAAGI,EAAE,GAAGL,EAAE,GAAGE,EAAE,GAAGH,EAAE,GAAGI,EAAE,GAAGL,EAAE,IAAI,CAAC;EAC9D;EAEAhB,uBAAuB,CAAC1rB,GAAG,EAAEW,CAAC,EAAE8rB,WAAW,CAAC;EAC5C,OAAOzsB,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASmtB,cAAcA,CAACntB,GAAG,EAAEotB,GAAG,EAAE;EACvCptB,GAAG,CAAC,CAAC,CAAC,GAAGotB,GAAG,CAAC,EAAE,CAAC;EAChBptB,GAAG,CAAC,CAAC,CAAC,GAAGotB,GAAG,CAAC,EAAE,CAAC;EAChBptB,GAAG,CAAC,CAAC,CAAC,GAAGotB,GAAG,CAAC,EAAE,CAAC;EAChB,OAAOptB,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASqtB,UAAUA,CAACrtB,GAAG,EAAEotB,GAAG,EAAE;EACnC,IAAIhG,GAAG,GAAGgG,GAAG,CAAC,CAAC,CAAC;EAChB,IAAI/F,GAAG,GAAG+F,GAAG,CAAC,CAAC,CAAC;EAChB,IAAI9F,GAAG,GAAG8F,GAAG,CAAC,CAAC,CAAC;EAChB,IAAI5F,GAAG,GAAG4F,GAAG,CAAC,CAAC,CAAC;EAChB,IAAI3F,GAAG,GAAG2F,GAAG,CAAC,CAAC,CAAC;EAChB,IAAI1F,GAAG,GAAG0F,GAAG,CAAC,CAAC,CAAC;EAChB,IAAIxF,GAAG,GAAGwF,GAAG,CAAC,CAAC,CAAC;EAChB,IAAIvF,GAAG,GAAGuF,GAAG,CAAC,CAAC,CAAC;EAChB,IAAItF,GAAG,GAAGsF,GAAG,CAAC,EAAE,CAAC;EACjBptB,GAAG,CAAC,CAAC,CAAC,GAAGoB,IAAI,CAACslB,KAAK,CAACU,GAAG,EAAEC,GAAG,EAAEC,GAAG,CAAC;EAClCtnB,GAAG,CAAC,CAAC,CAAC,GAAGoB,IAAI,CAACslB,KAAK,CAACc,GAAG,EAAEC,GAAG,EAAEC,GAAG,CAAC;EAClC1nB,GAAG,CAAC,CAAC,CAAC,GAAGoB,IAAI,CAACslB,KAAK,CAACkB,GAAG,EAAEC,GAAG,EAAEC,GAAG,CAAC;EAClC,OAAO9nB,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASstB,WAAWA,CAACttB,GAAG,EAAEotB,GAAG,EAAE;EACpC,IAAIG,OAAO,GAAG,IAAI3G,UAAmB,CAAC,CAAC,CAAC;EACxCyG,UAAU,CAACE,OAAO,EAAEH,GAAG,CAAC;EACxB,IAAII,GAAG,GAAG,CAAC,GAAGD,OAAO,CAAC,CAAC,CAAC;EACxB,IAAIE,GAAG,GAAG,CAAC,GAAGF,OAAO,CAAC,CAAC,CAAC;EACxB,IAAIG,GAAG,GAAG,CAAC,GAAGH,OAAO,CAAC,CAAC,CAAC;EACxB,IAAII,IAAI,GAAGP,GAAG,CAAC,CAAC,CAAC,GAAGI,GAAG;EACvB,IAAII,IAAI,GAAGR,GAAG,CAAC,CAAC,CAAC,GAAGK,GAAG;EACvB,IAAII,IAAI,GAAGT,GAAG,CAAC,CAAC,CAAC,GAAGM,GAAG;EACvB,IAAII,IAAI,GAAGV,GAAG,CAAC,CAAC,CAAC,GAAGI,GAAG;EACvB,IAAIO,IAAI,GAAGX,GAAG,CAAC,CAAC,CAAC,GAAGK,GAAG;EACvB,IAAIO,IAAI,GAAGZ,GAAG,CAAC,CAAC,CAAC,GAAGM,GAAG;EACvB,IAAIO,IAAI,GAAGb,GAAG,CAAC,CAAC,CAAC,GAAGI,GAAG;EACvB,IAAIU,IAAI,GAAGd,GAAG,CAAC,CAAC,CAAC,GAAGK,GAAG;EACvB,IAAIU,IAAI,GAAGf,GAAG,CAAC,EAAE,CAAC,GAAGM,GAAG;EACxB,IAAIU,KAAK,GAAGT,IAAI,GAAGI,IAAI,GAAGI,IAAI;EAC9B,IAAI3vB,CAAC,GAAG,CAAC;EAET,IAAI4vB,KAAK,GAAG,CAAC,EAAE;IACb5vB,CAAC,GAAG4C,IAAI,CAACulB,IAAI,CAACyH,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;IAC9BpuB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGxB,CAAC;IACjBwB,GAAG,CAAC,CAAC,CAAC,GAAG,CAACguB,IAAI,GAAGE,IAAI,IAAI1vB,CAAC;IAC1BwB,GAAG,CAAC,CAAC,CAAC,GAAG,CAACiuB,IAAI,GAAGJ,IAAI,IAAIrvB,CAAC;IAC1BwB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC4tB,IAAI,GAAGE,IAAI,IAAItvB,CAAC;EAC5B,CAAC,MAAM,IAAImvB,IAAI,GAAGI,IAAI,IAAIJ,IAAI,GAAGQ,IAAI,EAAE;IACrC3vB,CAAC,GAAG4C,IAAI,CAACulB,IAAI,CAAC,GAAG,GAAGgH,IAAI,GAAGI,IAAI,GAAGI,IAAI,CAAC,GAAG,CAAC;IAC3CnuB,GAAG,CAAC,CAAC,CAAC,GAAG,CAACguB,IAAI,GAAGE,IAAI,IAAI1vB,CAAC;IAC1BwB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGxB,CAAC;IACjBwB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC4tB,IAAI,GAAGE,IAAI,IAAItvB,CAAC;IAC1BwB,GAAG,CAAC,CAAC,CAAC,GAAG,CAACiuB,IAAI,GAAGJ,IAAI,IAAIrvB,CAAC;EAC5B,CAAC,MAAM,IAAIuvB,IAAI,GAAGI,IAAI,EAAE;IACtB3vB,CAAC,GAAG4C,IAAI,CAACulB,IAAI,CAAC,GAAG,GAAGoH,IAAI,GAAGJ,IAAI,GAAGQ,IAAI,CAAC,GAAG,CAAC;IAC3CnuB,GAAG,CAAC,CAAC,CAAC,GAAG,CAACiuB,IAAI,GAAGJ,IAAI,IAAIrvB,CAAC;IAC1BwB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC4tB,IAAI,GAAGE,IAAI,IAAItvB,CAAC;IAC1BwB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGxB,CAAC;IACjBwB,GAAG,CAAC,CAAC,CAAC,GAAG,CAACguB,IAAI,GAAGE,IAAI,IAAI1vB,CAAC;EAC5B,CAAC,MAAM;IACLA,CAAC,GAAG4C,IAAI,CAACulB,IAAI,CAAC,GAAG,GAAGwH,IAAI,GAAGR,IAAI,GAAGI,IAAI,CAAC,GAAG,CAAC;IAC3C/tB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC4tB,IAAI,GAAGE,IAAI,IAAItvB,CAAC;IAC1BwB,GAAG,CAAC,CAAC,CAAC,GAAG,CAACiuB,IAAI,GAAGJ,IAAI,IAAIrvB,CAAC;IAC1BwB,GAAG,CAAC,CAAC,CAAC,GAAG,CAACguB,IAAI,GAAGE,IAAI,IAAI1vB,CAAC;IAC1BwB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGxB,CAAC;EACnB;EAEA,OAAOwB,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASquB,4BAA4BA,CAACruB,GAAG,EAAE2rB,CAAC,EAAE7gB,CAAC,EAAE7L,CAAC,EAAE;EACzD;EACA,IAAIb,CAAC,GAAGutB,CAAC,CAAC,CAAC,CAAC;IACRnT,CAAC,GAAGmT,CAAC,CAAC,CAAC,CAAC;IACRlT,CAAC,GAAGkT,CAAC,CAAC,CAAC,CAAC;IACRjT,CAAC,GAAGiT,CAAC,CAAC,CAAC,CAAC;EACZ,IAAIC,EAAE,GAAGxtB,CAAC,GAAGA,CAAC;EACd,IAAIytB,EAAE,GAAGrT,CAAC,GAAGA,CAAC;EACd,IAAIsT,EAAE,GAAGrT,CAAC,GAAGA,CAAC;EACd,IAAIsT,EAAE,GAAG3tB,CAAC,GAAGwtB,EAAE;EACf,IAAII,EAAE,GAAG5tB,CAAC,GAAGytB,EAAE;EACf,IAAII,EAAE,GAAG7tB,CAAC,GAAG0tB,EAAE;EACf,IAAII,EAAE,GAAG1T,CAAC,GAAGqT,EAAE;EACf,IAAIM,EAAE,GAAG3T,CAAC,GAAGsT,EAAE;EACf,IAAIM,EAAE,GAAG3T,CAAC,GAAGqT,EAAE;EACf,IAAIO,EAAE,GAAG3T,CAAC,GAAGkT,EAAE;EACf,IAAIU,EAAE,GAAG5T,CAAC,GAAGmT,EAAE;EACf,IAAIU,EAAE,GAAG7T,CAAC,GAAGoT,EAAE;EACf,IAAIwC,EAAE,GAAGrvB,CAAC,CAAC,CAAC,CAAC;EACb,IAAIsvB,EAAE,GAAGtvB,CAAC,CAAC,CAAC,CAAC;EACb,IAAIuvB,EAAE,GAAGvvB,CAAC,CAAC,CAAC,CAAC;EACbe,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAIksB,EAAE,GAAGE,EAAE,CAAC,IAAIkC,EAAE;EAC7BtuB,GAAG,CAAC,CAAC,CAAC,GAAG,CAACgsB,EAAE,GAAGO,EAAE,IAAI+B,EAAE;EACvBtuB,GAAG,CAAC,CAAC,CAAC,GAAG,CAACisB,EAAE,GAAGK,EAAE,IAAIgC,EAAE;EACvBtuB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAACgsB,EAAE,GAAGO,EAAE,IAAIgC,EAAE;EACvBvuB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI+rB,EAAE,GAAGK,EAAE,CAAC,IAAImC,EAAE;EAC7BvuB,GAAG,CAAC,CAAC,CAAC,GAAG,CAACmsB,EAAE,GAAGE,EAAE,IAAIkC,EAAE;EACvBvuB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAACisB,EAAE,GAAGK,EAAE,IAAIkC,EAAE;EACvBxuB,GAAG,CAAC,CAAC,CAAC,GAAG,CAACmsB,EAAE,GAAGE,EAAE,IAAImC,EAAE;EACvBxuB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI+rB,EAAE,GAAGG,EAAE,CAAC,IAAIsC,EAAE;EAC9BxuB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG8K,CAAC,CAAC,CAAC,CAAC;EACd9K,GAAG,CAAC,EAAE,CAAC,GAAG8K,CAAC,CAAC,CAAC,CAAC;EACd9K,GAAG,CAAC,EAAE,CAAC,GAAG8K,CAAC,CAAC,CAAC,CAAC;EACd9K,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACX,OAAOA,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASyuB,kCAAkCA,CAACzuB,GAAG,EAAE2rB,CAAC,EAAE7gB,CAAC,EAAE7L,CAAC,EAAEoQ,CAAC,EAAE;EAClE;EACA,IAAIjR,CAAC,GAAGutB,CAAC,CAAC,CAAC,CAAC;IACRnT,CAAC,GAAGmT,CAAC,CAAC,CAAC,CAAC;IACRlT,CAAC,GAAGkT,CAAC,CAAC,CAAC,CAAC;IACRjT,CAAC,GAAGiT,CAAC,CAAC,CAAC,CAAC;EACZ,IAAIC,EAAE,GAAGxtB,CAAC,GAAGA,CAAC;EACd,IAAIytB,EAAE,GAAGrT,CAAC,GAAGA,CAAC;EACd,IAAIsT,EAAE,GAAGrT,CAAC,GAAGA,CAAC;EACd,IAAIsT,EAAE,GAAG3tB,CAAC,GAAGwtB,EAAE;EACf,IAAII,EAAE,GAAG5tB,CAAC,GAAGytB,EAAE;EACf,IAAII,EAAE,GAAG7tB,CAAC,GAAG0tB,EAAE;EACf,IAAII,EAAE,GAAG1T,CAAC,GAAGqT,EAAE;EACf,IAAIM,EAAE,GAAG3T,CAAC,GAAGsT,EAAE;EACf,IAAIM,EAAE,GAAG3T,CAAC,GAAGqT,EAAE;EACf,IAAIO,EAAE,GAAG3T,CAAC,GAAGkT,EAAE;EACf,IAAIU,EAAE,GAAG5T,CAAC,GAAGmT,EAAE;EACf,IAAIU,EAAE,GAAG7T,CAAC,GAAGoT,EAAE;EACf,IAAIwC,EAAE,GAAGrvB,CAAC,CAAC,CAAC,CAAC;EACb,IAAIsvB,EAAE,GAAGtvB,CAAC,CAAC,CAAC,CAAC;EACb,IAAIuvB,EAAE,GAAGvvB,CAAC,CAAC,CAAC,CAAC;EACb,IAAIyvB,EAAE,GAAGrf,CAAC,CAAC,CAAC,CAAC;EACb,IAAIsf,EAAE,GAAGtf,CAAC,CAAC,CAAC,CAAC;EACb,IAAIuf,EAAE,GAAGvf,CAAC,CAAC,CAAC,CAAC;EACb,IAAIwf,IAAI,GAAG,CAAC,CAAC,IAAI3C,EAAE,GAAGE,EAAE,CAAC,IAAIkC,EAAE;EAC/B,IAAIQ,IAAI,GAAG,CAAC9C,EAAE,GAAGO,EAAE,IAAI+B,EAAE;EACzB,IAAIS,IAAI,GAAG,CAAC9C,EAAE,GAAGK,EAAE,IAAIgC,EAAE;EACzB,IAAIU,IAAI,GAAG,CAAChD,EAAE,GAAGO,EAAE,IAAIgC,EAAE;EACzB,IAAIU,IAAI,GAAG,CAAC,CAAC,IAAIlD,EAAE,GAAGK,EAAE,CAAC,IAAImC,EAAE;EAC/B,IAAIW,IAAI,GAAG,CAAC/C,EAAE,GAAGE,EAAE,IAAIkC,EAAE;EACzB,IAAIY,IAAI,GAAG,CAAClD,EAAE,GAAGK,EAAE,IAAIkC,EAAE;EACzB,IAAIY,IAAI,GAAG,CAACjD,EAAE,GAAGE,EAAE,IAAImC,EAAE;EACzB,IAAIa,KAAK,GAAG,CAAC,CAAC,IAAItD,EAAE,GAAGG,EAAE,CAAC,IAAIsC,EAAE;EAChCxuB,GAAG,CAAC,CAAC,CAAC,GAAG6uB,IAAI;EACb7uB,GAAG,CAAC,CAAC,CAAC,GAAG8uB,IAAI;EACb9uB,GAAG,CAAC,CAAC,CAAC,GAAG+uB,IAAI;EACb/uB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAGgvB,IAAI;EACbhvB,GAAG,CAAC,CAAC,CAAC,GAAGivB,IAAI;EACbjvB,GAAG,CAAC,CAAC,CAAC,GAAGkvB,IAAI;EACblvB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAGmvB,IAAI;EACbnvB,GAAG,CAAC,CAAC,CAAC,GAAGovB,IAAI;EACbpvB,GAAG,CAAC,EAAE,CAAC,GAAGqvB,KAAK;EACfrvB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG8K,CAAC,CAAC,CAAC,CAAC,GAAG4jB,EAAE,IAAIG,IAAI,GAAGH,EAAE,GAAGM,IAAI,GAAGL,EAAE,GAAGQ,IAAI,GAAGP,EAAE,CAAC;EACzD5uB,GAAG,CAAC,EAAE,CAAC,GAAG8K,CAAC,CAAC,CAAC,CAAC,GAAG6jB,EAAE,IAAIG,IAAI,GAAGJ,EAAE,GAAGO,IAAI,GAAGN,EAAE,GAAGS,IAAI,GAAGR,EAAE,CAAC;EACzD5uB,GAAG,CAAC,EAAE,CAAC,GAAG8K,CAAC,CAAC,CAAC,CAAC,GAAG8jB,EAAE,IAAIG,IAAI,GAAGL,EAAE,GAAGQ,IAAI,GAAGP,EAAE,GAAGU,KAAK,GAAGT,EAAE,CAAC;EAC1D5uB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACX,OAAOA,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASsvB,QAAQA,CAACtvB,GAAG,EAAE2rB,CAAC,EAAE;EAC/B,IAAIvtB,CAAC,GAAGutB,CAAC,CAAC,CAAC,CAAC;IACRnT,CAAC,GAAGmT,CAAC,CAAC,CAAC,CAAC;IACRlT,CAAC,GAAGkT,CAAC,CAAC,CAAC,CAAC;IACRjT,CAAC,GAAGiT,CAAC,CAAC,CAAC,CAAC;EACZ,IAAIC,EAAE,GAAGxtB,CAAC,GAAGA,CAAC;EACd,IAAIytB,EAAE,GAAGrT,CAAC,GAAGA,CAAC;EACd,IAAIsT,EAAE,GAAGrT,CAAC,GAAGA,CAAC;EACd,IAAIsT,EAAE,GAAG3tB,CAAC,GAAGwtB,EAAE;EACf,IAAI2D,EAAE,GAAG/W,CAAC,GAAGoT,EAAE;EACf,IAAIM,EAAE,GAAG1T,CAAC,GAAGqT,EAAE;EACf,IAAI2D,EAAE,GAAG/W,CAAC,GAAGmT,EAAE;EACf,IAAI6D,EAAE,GAAGhX,CAAC,GAAGoT,EAAE;EACf,IAAIO,EAAE,GAAG3T,CAAC,GAAGqT,EAAE;EACf,IAAIO,EAAE,GAAG3T,CAAC,GAAGkT,EAAE;EACf,IAAIU,EAAE,GAAG5T,CAAC,GAAGmT,EAAE;EACf,IAAIU,EAAE,GAAG7T,CAAC,GAAGoT,EAAE;EACf9rB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAGksB,EAAE,GAAGE,EAAE;EACpBpsB,GAAG,CAAC,CAAC,CAAC,GAAGuvB,EAAE,GAAGhD,EAAE;EAChBvsB,GAAG,CAAC,CAAC,CAAC,GAAGwvB,EAAE,GAAGlD,EAAE;EAChBtsB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAGuvB,EAAE,GAAGhD,EAAE;EAChBvsB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG+rB,EAAE,GAAGK,EAAE;EACpBpsB,GAAG,CAAC,CAAC,CAAC,GAAGyvB,EAAE,GAAGpD,EAAE;EAChBrsB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAGwvB,EAAE,GAAGlD,EAAE;EAChBtsB,GAAG,CAAC,CAAC,CAAC,GAAGyvB,EAAE,GAAGpD,EAAE;EAChBrsB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG+rB,EAAE,GAAGG,EAAE;EACrBlsB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACX,OAAOA,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAAS0vB,OAAOA,CAAC1vB,GAAG,EAAE2vB,IAAI,EAAEC,KAAK,EAAEC,MAAM,EAAElX,GAAG,EAAEmX,IAAI,EAAEC,GAAG,EAAE;EAChE,IAAIC,EAAE,GAAG,CAAC,IAAIJ,KAAK,GAAGD,IAAI,CAAC;EAC3B,IAAIM,EAAE,GAAG,CAAC,IAAItX,GAAG,GAAGkX,MAAM,CAAC;EAC3B,IAAIK,EAAE,GAAG,CAAC,IAAIJ,IAAI,GAAGC,GAAG,CAAC;EACzB/vB,GAAG,CAAC,CAAC,CAAC,GAAG8vB,IAAI,GAAG,CAAC,GAAGE,EAAE;EACtBhwB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG8vB,IAAI,GAAG,CAAC,GAAGG,EAAE;EACtBjwB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC4vB,KAAK,GAAGD,IAAI,IAAIK,EAAE;EAC5BhwB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC2Y,GAAG,GAAGkX,MAAM,IAAII,EAAE;EAC5BjwB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC+vB,GAAG,GAAGD,IAAI,IAAII,EAAE;EAC3BlwB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;EACZA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG+vB,GAAG,GAAGD,IAAI,GAAG,CAAC,GAAGI,EAAE;EAC7BlwB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACX,OAAOA,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASmwB,aAAaA,CAACnwB,GAAG,EAAEowB,IAAI,EAAEC,MAAM,EAAEP,IAAI,EAAEC,GAAG,EAAE;EAC1D,IAAI3wB,CAAC,GAAG,GAAG,GAAGgC,IAAI,CAACkvB,GAAG,CAACF,IAAI,GAAG,CAAC,CAAC;IAC5BF,EAAE;EACNlwB,GAAG,CAAC,CAAC,CAAC,GAAGZ,CAAC,GAAGixB,MAAM;EACnBrwB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAGZ,CAAC;EACVY,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;EACZA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EAEX,IAAI+vB,GAAG,IAAI,IAAI,IAAIA,GAAG,KAAKQ,QAAQ,EAAE;IACnCL,EAAE,GAAG,CAAC,IAAIJ,IAAI,GAAGC,GAAG,CAAC;IACrB/vB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC+vB,GAAG,GAAGD,IAAI,IAAII,EAAE;IAC3BlwB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG+vB,GAAG,GAAGD,IAAI,GAAGI,EAAE;EAC/B,CAAC,MAAM;IACLlwB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACZA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG8vB,IAAI;EACrB;EAEA,OAAO9vB,GAAG;AACZ;AACA;AACA;AACA;AACA;;AAEO,IAAIwwB,WAAW,GAAGL,gDAAAA,aAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASM,aAAaA,CAACzwB,GAAG,EAAEowB,IAAI,EAAEC,MAAM,EAAEP,IAAI,EAAEC,GAAG,EAAE;EAC1D,IAAI3wB,CAAC,GAAG,GAAG,GAAGgC,IAAI,CAACkvB,GAAG,CAACF,IAAI,GAAG,CAAC,CAAC;IAC5BF,EAAE;EACNlwB,GAAG,CAAC,CAAC,CAAC,GAAGZ,CAAC,GAAGixB,MAAM;EACnBrwB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAGZ,CAAC;EACVY,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;EACZA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EAEX,IAAI+vB,GAAG,IAAI,IAAI,IAAIA,GAAG,KAAKQ,QAAQ,EAAE;IACnCL,EAAE,GAAG,CAAC,IAAIJ,IAAI,GAAGC,GAAG,CAAC;IACrB/vB,GAAG,CAAC,EAAE,CAAC,GAAG+vB,GAAG,GAAGG,EAAE;IAClBlwB,GAAG,CAAC,EAAE,CAAC,GAAG+vB,GAAG,GAAGD,IAAI,GAAGI,EAAE;EAC3B,CAAC,MAAM;IACLlwB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACZA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC8vB,IAAI;EACjB;EAEA,OAAO9vB,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAAS0wB,0BAA0BA,CAAC1wB,GAAG,EAAE2wB,GAAG,EAAEb,IAAI,EAAEC,GAAG,EAAE;EAC9D,IAAIa,KAAK,GAAGxvB,IAAI,CAACkvB,GAAG,CAACK,GAAG,CAACE,SAAS,GAAGzvB,IAAI,CAACklB,EAAE,GAAG,KAAK,CAAC;EACrD,IAAIwK,OAAO,GAAG1vB,IAAI,CAACkvB,GAAG,CAACK,GAAG,CAACI,WAAW,GAAG3vB,IAAI,CAACklB,EAAE,GAAG,KAAK,CAAC;EACzD,IAAI0K,OAAO,GAAG5vB,IAAI,CAACkvB,GAAG,CAACK,GAAG,CAACM,WAAW,GAAG7vB,IAAI,CAACklB,EAAE,GAAG,KAAK,CAAC;EACzD,IAAI4K,QAAQ,GAAG9vB,IAAI,CAACkvB,GAAG,CAACK,GAAG,CAACQ,YAAY,GAAG/vB,IAAI,CAACklB,EAAE,GAAG,KAAK,CAAC;EAC3D,IAAI8K,MAAM,GAAG,GAAG,IAAIJ,OAAO,GAAGE,QAAQ,CAAC;EACvC,IAAIG,MAAM,GAAG,GAAG,IAAIT,KAAK,GAAGE,OAAO,CAAC;EACpC9wB,GAAG,CAAC,CAAC,CAAC,GAAGoxB,MAAM;EACfpxB,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;EACZA,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;EACZA,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;EACZA,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;EACZA,GAAG,CAAC,CAAC,CAAC,GAAGqxB,MAAM;EACfrxB,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;EACZA,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;EACZA,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAACgxB,OAAO,GAAGE,QAAQ,IAAIE,MAAM,GAAG,GAAG,CAAC;EAC/CpxB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC4wB,KAAK,GAAGE,OAAO,IAAIO,MAAM,GAAG,GAAG;EACzCrxB,GAAG,CAAC,EAAE,CAAC,GAAG+vB,GAAG,IAAID,IAAI,GAAGC,GAAG,CAAC;EAC5B/vB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG;EACdA,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG;EACbA,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG;EACbA,GAAG,CAAC,EAAE,CAAC,GAAG+vB,GAAG,GAAGD,IAAI,IAAIA,IAAI,GAAGC,GAAG,CAAC;EACnC/vB,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG;EACb,OAAOA,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASsxB,OAAOA,CAACtxB,GAAG,EAAE2vB,IAAI,EAAEC,KAAK,EAAEC,MAAM,EAAElX,GAAG,EAAEmX,IAAI,EAAEC,GAAG,EAAE;EAChE,IAAIwB,EAAE,GAAG,CAAC,IAAI5B,IAAI,GAAGC,KAAK,CAAC;EAC3B,IAAI4B,EAAE,GAAG,CAAC,IAAI3B,MAAM,GAAGlX,GAAG,CAAC;EAC3B,IAAIuX,EAAE,GAAG,CAAC,IAAIJ,IAAI,GAAGC,GAAG,CAAC;EACzB/vB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAGuxB,EAAE;EAChBvxB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAGwxB,EAAE;EAChBxxB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAGkwB,EAAE;EAChBlwB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC2vB,IAAI,GAAGC,KAAK,IAAI2B,EAAE;EAC7BvxB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC2Y,GAAG,GAAGkX,MAAM,IAAI2B,EAAE;EAC7BxxB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC+vB,GAAG,GAAGD,IAAI,IAAII,EAAE;EAC3BlwB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACX,OAAOA,GAAG;AACZ;AACA;AACA;AACA;AACA;;AAEO,IAAIyxB,KAAK,GAAGH,gDAAAA,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASI,OAAOA,CAAC1xB,GAAG,EAAE2vB,IAAI,EAAEC,KAAK,EAAEC,MAAM,EAAElX,GAAG,EAAEmX,IAAI,EAAEC,GAAG,EAAE;EAChE,IAAIwB,EAAE,GAAG,CAAC,IAAI5B,IAAI,GAAGC,KAAK,CAAC;EAC3B,IAAI4B,EAAE,GAAG,CAAC,IAAI3B,MAAM,GAAGlX,GAAG,CAAC;EAC3B,IAAIuX,EAAE,GAAG,CAAC,IAAIJ,IAAI,GAAGC,GAAG,CAAC;EACzB/vB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAGuxB,EAAE;EAChBvxB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAGwxB,EAAE;EAChBxxB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,EAAE,CAAC,GAAGkwB,EAAE;EACZlwB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC2vB,IAAI,GAAGC,KAAK,IAAI2B,EAAE;EAC7BvxB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC2Y,GAAG,GAAGkX,MAAM,IAAI2B,EAAE;EAC7BxxB,GAAG,CAAC,EAAE,CAAC,GAAG8vB,IAAI,GAAGI,EAAE;EACnBlwB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACX,OAAOA,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAAS2xB,MAAMA,CAAC3xB,GAAG,EAAE4xB,GAAG,EAAEC,MAAM,EAAEC,EAAE,EAAE;EAC3C,IAAIC,EAAE,EAAEC,EAAE,EAAEpG,EAAE,EAAEqG,EAAE,EAAEC,EAAE,EAAErG,EAAE,EAAEsG,EAAE,EAAEC,EAAE,EAAEtG,EAAE,EAAExf,GAAG;EAC3C,IAAI+lB,IAAI,GAAGT,GAAG,CAAC,CAAC,CAAC;EACjB,IAAIU,IAAI,GAAGV,GAAG,CAAC,CAAC,CAAC;EACjB,IAAIW,IAAI,GAAGX,GAAG,CAAC,CAAC,CAAC;EACjB,IAAIY,GAAG,GAAGV,EAAE,CAAC,CAAC,CAAC;EACf,IAAIW,GAAG,GAAGX,EAAE,CAAC,CAAC,CAAC;EACf,IAAIY,GAAG,GAAGZ,EAAE,CAAC,CAAC,CAAC;EACf,IAAIa,OAAO,GAAGd,MAAM,CAAC,CAAC,CAAC;EACvB,IAAIe,OAAO,GAAGf,MAAM,CAAC,CAAC,CAAC;EACvB,IAAIgB,OAAO,GAAGhB,MAAM,CAAC,CAAC,CAAC;EAEvB,IAAIzwB,IAAI,CAACqlB,GAAG,CAAC4L,IAAI,GAAGM,OAAO,CAAC,GAAG/L,QAAQ,CAACZ,OAAO,IAAI5kB,IAAI,CAACqlB,GAAG,CAAC6L,IAAI,GAAGM,OAAO,CAAC,GAAGhM,QAAQ,CAACZ,OAAO,IAAI5kB,IAAI,CAACqlB,GAAG,CAAC8L,IAAI,GAAGM,OAAO,CAAC,GAAGjM,QAAQ,CAACZ,OAAO,EAAE;IAC7I,OAAO+B,QAAQ,CAAC/nB,GAAG,CAAC;EACtB;EAEAmyB,EAAE,GAAGE,IAAI,GAAGM,OAAO;EACnBP,EAAE,GAAGE,IAAI,GAAGM,OAAO;EACnB9G,EAAE,GAAGyG,IAAI,GAAGM,OAAO;EACnBvmB,GAAG,GAAG,CAAC,GAAGlL,IAAI,CAACslB,KAAK,CAACyL,EAAE,EAAEC,EAAE,EAAEtG,EAAE,CAAC;EAChCqG,EAAE,IAAI7lB,GAAG;EACT8lB,EAAE,IAAI9lB,GAAG;EACTwf,EAAE,IAAIxf,GAAG;EACTylB,EAAE,GAAGU,GAAG,GAAG3G,EAAE,GAAG4G,GAAG,GAAGN,EAAE;EACxBJ,EAAE,GAAGU,GAAG,GAAGP,EAAE,GAAGK,GAAG,GAAG1G,EAAE;EACxBF,EAAE,GAAG4G,GAAG,GAAGJ,EAAE,GAAGK,GAAG,GAAGN,EAAE;EACxB7lB,GAAG,GAAGlL,IAAI,CAACslB,KAAK,CAACqL,EAAE,EAAEC,EAAE,EAAEpG,EAAE,CAAC;EAE5B,IAAI,CAACtf,GAAG,EAAE;IACRylB,EAAE,GAAG,CAAC;IACNC,EAAE,GAAG,CAAC;IACNpG,EAAE,GAAG,CAAC;EACR,CAAC,MAAM;IACLtf,GAAG,GAAG,CAAC,GAAGA,GAAG;IACbylB,EAAE,IAAIzlB,GAAG;IACT0lB,EAAE,IAAI1lB,GAAG;IACTsf,EAAE,IAAItf,GAAG;EACX;EAEA2lB,EAAE,GAAGG,EAAE,GAAGxG,EAAE,GAAGE,EAAE,GAAGkG,EAAE;EACtBE,EAAE,GAAGpG,EAAE,GAAGiG,EAAE,GAAGI,EAAE,GAAGvG,EAAE;EACtBC,EAAE,GAAGsG,EAAE,GAAGH,EAAE,GAAGI,EAAE,GAAGL,EAAE;EACtBzlB,GAAG,GAAGlL,IAAI,CAACslB,KAAK,CAACuL,EAAE,EAAEC,EAAE,EAAErG,EAAE,CAAC;EAE5B,IAAI,CAACvf,GAAG,EAAE;IACR2lB,EAAE,GAAG,CAAC;IACNC,EAAE,GAAG,CAAC;IACNrG,EAAE,GAAG,CAAC;EACR,CAAC,MAAM;IACLvf,GAAG,GAAG,CAAC,GAAGA,GAAG;IACb2lB,EAAE,IAAI3lB,GAAG;IACT4lB,EAAE,IAAI5lB,GAAG;IACTuf,EAAE,IAAIvf,GAAG;EACX;EAEAtM,GAAG,CAAC,CAAC,CAAC,GAAG+xB,EAAE;EACX/xB,GAAG,CAAC,CAAC,CAAC,GAAGiyB,EAAE;EACXjyB,GAAG,CAAC,CAAC,CAAC,GAAGmyB,EAAE;EACXnyB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAGgyB,EAAE;EACXhyB,GAAG,CAAC,CAAC,CAAC,GAAGkyB,EAAE;EACXlyB,GAAG,CAAC,CAAC,CAAC,GAAGoyB,EAAE;EACXpyB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAG4rB,EAAE;EACX5rB,GAAG,CAAC,CAAC,CAAC,GAAG6rB,EAAE;EACX7rB,GAAG,CAAC,EAAE,CAAC,GAAG8rB,EAAE;EACZ9rB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE+xB,EAAE,GAAGM,IAAI,GAAGL,EAAE,GAAGM,IAAI,GAAG1G,EAAE,GAAG2G,IAAI,CAAC;EAC9CvyB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAEiyB,EAAE,GAAGI,IAAI,GAAGH,EAAE,GAAGI,IAAI,GAAGzG,EAAE,GAAG0G,IAAI,CAAC;EAC9CvyB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAEmyB,EAAE,GAAGE,IAAI,GAAGD,EAAE,GAAGE,IAAI,GAAGxG,EAAE,GAAGyG,IAAI,CAAC;EAC9CvyB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACX,OAAOA,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAAS8yB,QAAQA,CAAC9yB,GAAG,EAAE4xB,GAAG,EAAE7uB,MAAM,EAAE+uB,EAAE,EAAE;EAC7C,IAAIO,IAAI,GAAGT,GAAG,CAAC,CAAC,CAAC;IACbU,IAAI,GAAGV,GAAG,CAAC,CAAC,CAAC;IACbW,IAAI,GAAGX,GAAG,CAAC,CAAC,CAAC;IACbY,GAAG,GAAGV,EAAE,CAAC,CAAC,CAAC;IACXW,GAAG,GAAGX,EAAE,CAAC,CAAC,CAAC;IACXY,GAAG,GAAGZ,EAAE,CAAC,CAAC,CAAC;EACf,IAAIK,EAAE,GAAGE,IAAI,GAAGtvB,MAAM,CAAC,CAAC,CAAC;IACrBqvB,EAAE,GAAGE,IAAI,GAAGvvB,MAAM,CAAC,CAAC,CAAC;IACrB+oB,EAAE,GAAGyG,IAAI,GAAGxvB,MAAM,CAAC,CAAC,CAAC;EACzB,IAAIuJ,GAAG,GAAG6lB,EAAE,GAAGA,EAAE,GAAGC,EAAE,GAAGA,EAAE,GAAGtG,EAAE,GAAGA,EAAE;EAErC,IAAIxf,GAAG,GAAG,CAAC,EAAE;IACXA,GAAG,GAAG,CAAC,GAAGlL,IAAI,CAACulB,IAAI,CAACra,GAAG,CAAC;IACxB6lB,EAAE,IAAI7lB,GAAG;IACT8lB,EAAE,IAAI9lB,GAAG;IACTwf,EAAE,IAAIxf,GAAG;EACX;EAEA,IAAIylB,EAAE,GAAGU,GAAG,GAAG3G,EAAE,GAAG4G,GAAG,GAAGN,EAAE;IACxBJ,EAAE,GAAGU,GAAG,GAAGP,EAAE,GAAGK,GAAG,GAAG1G,EAAE;IACxBF,EAAE,GAAG4G,GAAG,GAAGJ,EAAE,GAAGK,GAAG,GAAGN,EAAE;EAC5B7lB,GAAG,GAAGylB,EAAE,GAAGA,EAAE,GAAGC,EAAE,GAAGA,EAAE,GAAGpG,EAAE,GAAGA,EAAE;EAEjC,IAAItf,GAAG,GAAG,CAAC,EAAE;IACXA,GAAG,GAAG,CAAC,GAAGlL,IAAI,CAACulB,IAAI,CAACra,GAAG,CAAC;IACxBylB,EAAE,IAAIzlB,GAAG;IACT0lB,EAAE,IAAI1lB,GAAG;IACTsf,EAAE,IAAItf,GAAG;EACX;EAEAtM,GAAG,CAAC,CAAC,CAAC,GAAG+xB,EAAE;EACX/xB,GAAG,CAAC,CAAC,CAAC,GAAGgyB,EAAE;EACXhyB,GAAG,CAAC,CAAC,CAAC,GAAG4rB,EAAE;EACX5rB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAGoyB,EAAE,GAAGxG,EAAE,GAAGE,EAAE,GAAGkG,EAAE;EAC1BhyB,GAAG,CAAC,CAAC,CAAC,GAAG8rB,EAAE,GAAGiG,EAAE,GAAGI,EAAE,GAAGvG,EAAE;EAC1B5rB,GAAG,CAAC,CAAC,CAAC,GAAGmyB,EAAE,GAAGH,EAAE,GAAGI,EAAE,GAAGL,EAAE;EAC1B/xB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;EACVA,GAAG,CAAC,CAAC,CAAC,GAAGmyB,EAAE;EACXnyB,GAAG,CAAC,CAAC,CAAC,GAAGoyB,EAAE;EACXpyB,GAAG,CAAC,EAAE,CAAC,GAAG8rB,EAAE;EACZ9rB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACXA,GAAG,CAAC,EAAE,CAAC,GAAGqyB,IAAI;EACdryB,GAAG,CAAC,EAAE,CAAC,GAAGsyB,IAAI;EACdtyB,GAAG,CAAC,EAAE,CAAC,GAAGuyB,IAAI;EACdvyB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;EACX,OAAOA,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAAS8E,GAAGA,CAACnE,CAAC,EAAE;EACrB,OAAO,OAAO,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGA,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAGA,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAGA,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAGA,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAGA,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAGA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACrP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASoyB,IAAIA,CAACpyB,CAAC,EAAE;EACtB,OAAOS,IAAI,CAACslB,KAAK,CAAC/lB,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,EAAE,CAAC,EAAEA,CAAC,CAAC,EAAE,CAAC,EAAEA,CAAC,CAAC,EAAE,CAAC,EAAEA,CAAC,CAAC,EAAE,CAAC,EAAEA,CAAC,CAAC,EAAE,CAAC,EAAEA,CAAC,CAAC,EAAE,CAAC,CAAC;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASqyB,GAAGA,CAAChzB,GAAG,EAAEW,CAAC,EAAEsG,CAAC,EAAE;EAC7BjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC,CAAC,EAAE,CAAC;EACvBjH,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC,CAAC,EAAE,CAAC;EACvBjH,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC,CAAC,EAAE,CAAC;EACvBjH,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC,CAAC,EAAE,CAAC;EACvBjH,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC,CAAC,EAAE,CAAC;EACvBjH,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC,CAAC,EAAE,CAAC;EACvB,OAAOjH,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASizB,QAAQA,CAACjzB,GAAG,EAAEW,CAAC,EAAEsG,CAAC,EAAE;EAClCjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC;EACpBjH,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC,CAAC,EAAE,CAAC;EACvBjH,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC,CAAC,EAAE,CAAC;EACvBjH,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC,CAAC,EAAE,CAAC;EACvBjH,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC,CAAC,EAAE,CAAC;EACvBjH,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC,CAAC,EAAE,CAAC;EACvBjH,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC,CAAC,EAAE,CAAC;EACvB,OAAOjH,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASkzB,cAAcA,CAAClzB,GAAG,EAAEW,CAAC,EAAEsG,CAAC,EAAE;EACxCjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC;EACjBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC;EACjBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC;EACjBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC;EACjBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC;EACjBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC;EACjBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC;EACjBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC;EACjBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC;EACjBjH,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC;EACjBjH,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC;EACnBjH,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC;EACnBjH,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC;EACnBjH,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC;EACnBjH,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC;EACnBjH,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC;EACnB,OAAOjH,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASmzB,oBAAoBA,CAACnzB,GAAG,EAAEW,CAAC,EAAEsG,CAAC,EAAEsjB,KAAK,EAAE;EACrDvqB,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC,GAAGsjB,KAAK;EAC5BvqB,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC,GAAGsjB,KAAK;EAC5BvqB,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC,GAAGsjB,KAAK;EAC5BvqB,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC,GAAGsjB,KAAK;EAC5BvqB,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC,GAAGsjB,KAAK;EAC5BvqB,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC,GAAGsjB,KAAK;EAC5BvqB,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC,GAAGsjB,KAAK;EAC5BvqB,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC,GAAGsjB,KAAK;EAC5BvqB,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC,GAAGsjB,KAAK;EAC5BvqB,GAAG,CAAC,CAAC,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGsG,CAAC,CAAC,CAAC,CAAC,GAAGsjB,KAAK;EAC5BvqB,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC,CAAC,EAAE,CAAC,GAAGsjB,KAAK;EAC/BvqB,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC,CAAC,EAAE,CAAC,GAAGsjB,KAAK;EAC/BvqB,GAAG,CAAC,EAAE,CAAC,GAAGW,CAAC,CAAC,EAAE,CAAC,GAAGsG,CAAC,CAAC,EAAE,CAAC,GAAGsjB,KAAK;EAC/BvqB,GAAG,CAAC,EAAE,CAAC,GAAGW,CAA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","sources":["webpack://vue-visual-kit/webpack/universalModuleDefinition","webpack://vue-visual-kit/./node_modules/core-js/internals/is-object.js","webpack://vue-visual-kit/./node_modules/core-js/internals/get-iterator.js","webpack://vue-visual-kit/./node_modules/core-js/modules/es.iterator.find.js","webpack://vue-visual-kit/./node_modules/define-properties/index.js","webpack://vue-visual-kit/./node_modules/core-js/internals/make-built-in.js","webpack://vue-visual-kit/./node_modules/core-js/internals/function-name.js","webpack://vue-visual-kit/./node_modules/core-js/internals/html.js","webpack://vue-visual-kit/./node_modules/core-js/internals/hidden-keys.js","webpack://vue-visual-kit/./node_modules/core-js/internals/iterate-simple.js","webpack://vue-visual-kit/./node_modules/axios/lib/axios.js","webpack://vue-visual-kit/./node_modules/core-js/internals/function-bind-native.js","webpack://vue-visual-kit/./node_modules/core-js/internals/to-string.js","webpack://vue-visual-kit/./node_modules/core-js/internals/an-instance.js","webpack://vue-visual-kit/./node_modules/core-js/internals/math-trunc.js","webpack://vue-visual-kit/./node_modules/core-js/internals/is-symbol.js","webpack://vue-visual-kit/./node_modules/seedrandom/seedrandom.js","webpack://vue-visual-kit/./node_modules/core-js/internals/get-iterator-method.js","webpack://vue-visual-kit/./node_modules/core-js/internals/regexp-get-flags.js","webpack://vue-visual-kit/./node_modules/core-js/internals/object-keys.js","webpack://vue-visual-kit/./node_modules/core-js/modules/es.iterator.every.js","webpack://vue-visual-kit/./node_modules/core-js/internals/internal-state.js","webpack://vue-visual-kit/./node_modules/axios/lib/cancel/CancelToken.js","webpack://vue-visual-kit/ignored|E:\\document\\zwdx\\zwdx\\bigdata\\v1.0\\source\\virget\\ZWDataCache\\obj\\Debug\\netcoreapp3.1\\dicom-3d-viewer\\node_modules\\seedrandom|crypto","webpack://vue-visual-kit/./node_modules/vue-loader/dist/exportHelper.js","webpack://vue-visual-kit/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://vue-visual-kit/./node_modules/core-js/internals/structured-clone-proper-transfer.js","webpack://vue-visual-kit/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://vue-visual-kit/./node_modules/es-errors/syntax.js","webpack://vue-visual-kit/./node_modules/axios/lib/helpers/cookies.js","webpack://vue-visual-kit/./node_modules/core-js/modules/web.structured-clone.js","webpack://vue-visual-kit/./node_modules/core-js/modules/es.set.union.v2.js","webpack://vue-visual-kit/./node_modules/core-js/modules/es.iterator.map.js","webpack://vue-visual-kit/./node_modules/core-js/internals/get-iterator-direct.js","webpack://vue-visual-kit/./node_modules/core-js/modules/es.iterator.to-array.js","webpack://vue-visual-kit/./node_modules/core-js/internals/object-keys-internal.js","webpack://vue-visual-kit/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://vue-visual-kit/./node_modules/core-js/internals/to-string-tag-support.js","webpack://vue-visual-kit/./node_modules/gopd/index.js","webpack://vue-visual-kit/./node_modules/core-js/internals/classof-raw.js","webpack://vue-visual-kit/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://vue-visual-kit/./node_modules/axios/lib/env/data.js","webpack://vue-visual-kit/./node_modules/axios/lib/cancel/isCancel.js","webpack://vue-visual-kit/./node_modules/core-js/internals/map-helpers.js","webpack://vue-visual-kit/external umd \"@cornerstonejs/dicom-image-loader\"","webpack://vue-visual-kit/./node_modules/core-js/internals/object-create.js","webpack://vue-visual-kit/./node_modules/es-define-property/index.js","webpack://vue-visual-kit/./node_modules/axios/lib/utils.js","webpack://vue-visual-kit/./node_modules/globalthis/index.js","webpack://vue-visual-kit/./node_modules/core-js/modules/es.set.is-superset-of.v2.js","webpack://vue-visual-kit/./node_modules/core-js/modules/es.iterator.filter.js","webpack://vue-visual-kit/./node_modules/core-js/internals/create-iter-result-object.js","webpack://vue-visual-kit/./node_modules/core-js/internals/normalize-string-argument.js","webpack://vue-visual-kit/./node_modules/core-js/internals/iterate.js","webpack://vue-visual-kit/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://vue-visual-kit/./node_modules/core-js/internals/to-primitive.js","webpack://vue-visual-kit/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://vue-visual-kit/./node_modules/core-js/internals/is-forced.js","webpack://vue-visual-kit/./node_modules/core-js/internals/validate-arguments-length.js","webpack://vue-visual-kit/./node_modules/core-js/internals/environment-user-agent.js","webpack://vue-visual-kit/./node_modules/seedrandom/lib/alea.js","webpack://vue-visual-kit/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://vue-visual-kit/./node_modules/core-js/internals/inherit-if-required.js","webpack://vue-visual-kit/./node_modules/axios/lib/defaults/transitional.js","webpack://vue-visual-kit/./node_modules/axios/lib/helpers/buildURL.js","webpack://vue-visual-kit/./node_modules/core-js/internals/uid.js","webpack://vue-visual-kit/./node_modules/core-js/internals/set-difference.js","webpack://vue-visual-kit/./node_modules/define-data-property/index.js","webpack://vue-visual-kit/./node_modules/base64-js/index.js","webpack://vue-visual-kit/./node_modules/core-js/internals/a-possible-prototype.js","webpack://vue-visual-kit/./node_modules/core-js/internals/is-constructor.js","webpack://vue-visual-kit/./node_modules/core-js/modules/es.iterator.some.js","webpack://vue-visual-kit/./node_modules/core-js/internals/set-symmetric-difference.js","webpack://vue-visual-kit/./node_modules/core-js/internals/inspect-source.js","webpack://vue-visual-kit/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://vue-visual-kit/./node_modules/core-js/internals/descriptors.js","webpack://vue-visual-kit/./node_modules/axios/lib/helpers/toFormData.js","webpack://vue-visual-kit/./node_modules/core-js/internals/get-set-record.js","webpack://vue-visual-kit/./node_modules/globalthis/polyfill.js","webpack://vue-visual-kit/./node_modules/core-js/internals/set-is-subset-of.js","webpack://vue-visual-kit/./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js","webpack://vue-visual-kit/./node_modules/core-js/internals/is-possible-prototype.js","webpack://vue-visual-kit/./node_modules/core-js/internals/document-create-element.js","webpack://vue-visual-kit/./node_modules/axios/lib/core/mergeConfig.js","webpack://vue-visual-kit/./node_modules/core-js/modules/es.array.push.js","webpack://vue-visual-kit/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://vue-visual-kit/./node_modules/axios/index.js","webpack://vue-visual-kit/./node_modules/object-keys/index.js","webpack://vue-visual-kit/./node_modules/core-js/internals/set-union.js","webpack://vue-visual-kit/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://vue-visual-kit/./node_modules/core-js/internals/environment.js","webpack://vue-visual-kit/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://vue-visual-kit/./node_modules/core-js/internals/is-array.js","webpack://vue-visual-kit/./node_modules/core-js/internals/set-helpers.js","webpack://vue-visual-kit/./node_modules/core-js/internals/set-is-disjoint-from.js","webpack://vue-visual-kit/./node_modules/core-js/internals/detach-transferable.js","webpack://vue-visual-kit/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://vue-visual-kit/./node_modules/axios/lib/cancel/CanceledError.js","webpack://vue-visual-kit/./node_modules/core-js/internals/array-set-length.js","webpack://vue-visual-kit/./node_modules/core-js/internals/iterator-helper-without-closing-on-early-error.js","webpack://vue-visual-kit/./node_modules/core-js/internals/global-this.js","webpack://vue-visual-kit/./node_modules/core-js/internals/create-property.js","webpack://vue-visual-kit/external umd \"@cornerstonejs/tools\"","webpack://vue-visual-kit/./node_modules/core-js/internals/is-callable.js","webpack://vue-visual-kit/./node_modules/core-js/internals/object-define-property.js","webpack://vue-visual-kit/./node_modules/core-js/internals/set-method-accept-set-like.js","webpack://vue-visual-kit/./node_modules/core-js/modules/web.dom-exception.stack.js","webpack://vue-visual-kit/./node_modules/axios/lib/helpers/spread.js","webpack://vue-visual-kit/./node_modules/core-js/internals/dom-exception-constants.js","webpack://vue-visual-kit/./node_modules/core-js/modules/es.set.symmetric-difference.v2.js","webpack://vue-visual-kit/./node_modules/core-js/internals/own-keys.js","webpack://vue-visual-kit/./node_modules/axios/lib/defaults/index.js","webpack://vue-visual-kit/./node_modules/core-js/internals/set-size.js","webpack://vue-visual-kit/./node_modules/es-errors/type.js","webpack://vue-visual-kit/./node_modules/axios/lib/helpers/validator.js","webpack://vue-visual-kit/./node_modules/object-keys/implementation.js","webpack://vue-visual-kit/./node_modules/core-js/internals/to-indexed-object.js","webpack://vue-visual-kit/./node_modules/core-js/internals/to-absolute-index.js","webpack://vue-visual-kit/./node_modules/core-js/internals/shared.js","webpack://vue-visual-kit/./node_modules/core-js/modules/es.set.is-subset-of.v2.js","webpack://vue-visual-kit/./node_modules/core-js/internals/ie8-dom-define.js","webpack://vue-visual-kit/./node_modules/core-js/internals/get-method.js","webpack://vue-visual-kit/./node_modules/has-property-descriptors/index.js","webpack://vue-visual-kit/external umd \"@cornerstonejs/polymorphic-segmentation\"","webpack://vue-visual-kit/./node_modules/core-js/internals/function-bind-context.js","webpack://vue-visual-kit/./node_modules/core-js/internals/shared-key.js","webpack://vue-visual-kit/./node_modules/axios/lib/core/Axios.js","webpack://vue-visual-kit/./node_modules/core-js/internals/error-stack-clear.js","webpack://vue-visual-kit/./node_modules/core-js/internals/length-of-array-like.js","webpack://vue-visual-kit/./node_modules/core-js/internals/error-stack-installable.js","webpack://vue-visual-kit/./node_modules/core-js/internals/iterators.js","webpack://vue-visual-kit/./node_modules/core-js/internals/define-built-ins.js","webpack://vue-visual-kit/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://vue-visual-kit/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://vue-visual-kit/./node_modules/core-js/internals/is-pure.js","webpack://vue-visual-kit/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://vue-visual-kit/./node_modules/core-js/internals/export.js","webpack://vue-visual-kit/./node_modules/seedrandom/lib/xor128.js","webpack://vue-visual-kit/external umd \"@cornerstonejs/core\"","webpack://vue-visual-kit/./node_modules/object-keys/isArguments.js","webpack://vue-visual-kit/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://vue-visual-kit/./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://vue-visual-kit/./node_modules/core-js/internals/object-define-properties.js","webpack://vue-visual-kit/./node_modules/core-js/internals/try-to-string.js","webpack://vue-visual-kit/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://vue-visual-kit/./node_modules/core-js/internals/define-built-in.js","webpack://vue-visual-kit/./node_modules/axios/lib/core/buildFullPath.js","webpack://vue-visual-kit/./node_modules/core-js/internals/classof.js","webpack://vue-visual-kit/./node_modules/axios/lib/helpers/bind.js","webpack://vue-visual-kit/./node_modules/core-js/internals/to-property-key.js","webpack://vue-visual-kit/./node_modules/core-js/internals/create-property-descriptor.js","webpack://vue-visual-kit/./node_modules/seedrandom/lib/xorwow.js","webpack://vue-visual-kit/./node_modules/seedrandom/index.js","webpack://vue-visual-kit/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://vue-visual-kit/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://vue-visual-kit/./node_modules/core-js/internals/indexed-object.js","webpack://vue-visual-kit/./node_modules/core-js/internals/a-set.js","webpack://vue-visual-kit/./node_modules/axios/lib/helpers/null.js","webpack://vue-visual-kit/./node_modules/gopd/gOPD.js","webpack://vue-visual-kit/./node_modules/fast-deep-equal/index.js","webpack://vue-visual-kit/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://vue-visual-kit/./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://vue-visual-kit/./node_modules/core-js/modules/es.iterator.for-each.js","webpack://vue-visual-kit/./node_modules/seedrandom/lib/xorshift7.js","webpack://vue-visual-kit/./node_modules/core-js/internals/shared-store.js","webpack://vue-visual-kit/./node_modules/core-js/modules/es.set.difference.v2.js","webpack://vue-visual-kit/./node_modules/core-js/internals/iterators-core.js","webpack://vue-visual-kit/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://vue-visual-kit/./node_modules/core-js/internals/require-object-coercible.js","webpack://vue-visual-kit/./node_modules/core-js/internals/get-built-in.js","webpack://vue-visual-kit/./node_modules/axios/lib/core/dispatchRequest.js","webpack://vue-visual-kit/./node_modules/core-js/internals/regexp-flags.js","webpack://vue-visual-kit/./node_modules/core-js/modules/es.set.intersection.v2.js","webpack://vue-visual-kit/./node_modules/core-js/internals/to-length.js","webpack://vue-visual-kit/./node_modules/axios/lib/core/InterceptorManager.js","webpack://vue-visual-kit/./node_modules/core-js/modules/es.iterator.constructor.js","webpack://vue-visual-kit/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://vue-visual-kit/./node_modules/core-js/internals/well-known-symbol.js","webpack://vue-visual-kit/./node_modules/core-js/modules/es.iterator.reduce.js","webpack://vue-visual-kit/./node_modules/core-js/internals/set-iterate.js","webpack://vue-visual-kit/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://vue-visual-kit/./node_modules/core-js/internals/set-is-superset-of.js","webpack://vue-visual-kit/./node_modules/core-js/internals/an-object.js","webpack://vue-visual-kit/./node_modules/core-js/internals/environment-is-node.js","webpack://vue-visual-kit/./node_modules/globalthis/implementation.browser.js","webpack://vue-visual-kit/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://vue-visual-kit/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://vue-visual-kit/./node_modules/core-js/internals/enum-bug-keys.js","webpack://vue-visual-kit/./node_modules/core-js/internals/function-apply.js","webpack://vue-visual-kit/./node_modules/core-js/internals/set-intersection.js","webpack://vue-visual-kit/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://vue-visual-kit/./node_modules/axios/lib/core/AxiosError.js","webpack://vue-visual-kit/./node_modules/core-js/internals/to-object.js","webpack://vue-visual-kit/./node_modules/globalthis/shim.js","webpack://vue-visual-kit/./node_modules/core-js/internals/fails.js","webpack://vue-visual-kit/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://vue-visual-kit/./node_modules/axios/lib/adapters/xhr.js","webpack://vue-visual-kit/./node_modules/seedrandom/lib/xor4096.js","webpack://vue-visual-kit/external umd {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://vue-visual-kit/./node_modules/core-js/internals/set-clone.js","webpack://vue-visual-kit/./node_modules/core-js/internals/has-own-property.js","webpack://vue-visual-kit/./node_modules/core-js/internals/a-callable.js","webpack://vue-visual-kit/./node_modules/core-js/internals/get-built-in-node-module.js","webpack://vue-visual-kit/./node_modules/core-js/internals/define-global-property.js","webpack://vue-visual-kit/./node_modules/core-js/internals/iterator-create-proxy.js","webpack://vue-visual-kit/./node_modules/core-js/internals/function-uncurry-this.js","webpack://vue-visual-kit/./node_modules/core-js/internals/environment-v8-version.js","webpack://vue-visual-kit/./node_modules/core-js/internals/iterator-close.js","webpack://vue-visual-kit/./node_modules/core-js/internals/function-call.js","webpack://vue-visual-kit/./node_modules/core-js/internals/array-includes.js","webpack://vue-visual-kit/./node_modules/sm4js/lib/sm4js.min.js","webpack://vue-visual-kit/./node_modules/axios/lib/helpers/combineURLs.js","webpack://vue-visual-kit/./node_modules/axios/lib/core/settle.js","webpack://vue-visual-kit/./node_modules/seedrandom/lib/tychei.js","webpack://vue-visual-kit/./node_modules/axios/lib/core/transformData.js","webpack://vue-visual-kit/webpack/bootstrap","webpack://vue-visual-kit/webpack/runtime/amd define","webpack://vue-visual-kit/webpack/runtime/amd options","webpack://vue-visual-kit/webpack/runtime/compat get default export","webpack://vue-visual-kit/webpack/runtime/define property getters","webpack://vue-visual-kit/webpack/runtime/global","webpack://vue-visual-kit/webpack/runtime/hasOwnProperty shorthand","webpack://vue-visual-kit/webpack/runtime/make namespace object","webpack://vue-visual-kit/webpack/runtime/node module decorator","webpack://vue-visual-kit/webpack/runtime/publicPath","webpack://vue-visual-kit/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://vue-visual-kit/./src/package/dicom-segmentator/index.vue","webpack://vue-visual-kit/./src/package/dicom-segmentator/index.vue?982e","webpack://vue-visual-kit/./src/package/cornerstone/ptScalingMetaDataProvider.js","webpack://vue-visual-kit/./src/package/cornerstone/initProviders.js","webpack://vue-visual-kit/./src/package/cornerstone/initVolumeLoader.js","webpack://vue-visual-kit/./src/package/cornerstone/initDemo.js","webpack://vue-visual-kit/./src/package/cornerstone/setCtTransferFunctionForVolumeActor.js","webpack://vue-visual-kit/./node_modules/gl-matrix/esm/common.js","webpack://vue-visual-kit/./node_modules/gl-matrix/esm/mat4.js","webpack://vue-visual-kit/./node_modules/gl-matrix/esm/vec3.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/vtk.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/Core/ClassHierarchy.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/macros2.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/Core/Math/Constants.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/Core/Math/index.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/ImplicitFunction.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/Plane.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/BoundingBox.js","webpack://vue-visual-kit/./node_modules/gl-matrix/esm/mat3.js","webpack://vue-visual-kit/./node_modules/gl-matrix/esm/vec4.js","webpack://vue-visual-kit/./node_modules/gl-matrix/esm/quat.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Rendering/Core/Prop/Constants.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Rendering/Core/Prop.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Rendering/Core/Prop3D.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Rendering/Core/Property/Constants.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Rendering/Core/Property.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Rendering/Core/Actor.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Rendering/Core/AbstractMapper.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Rendering/Core/AbstractMapper3D.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/Core/DataArray/Constants.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/Core/DataArray.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/DataSetAttributes/FieldData.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/DataSetAttributes/Constants.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/DataSetAttributes.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/DataSet/Constants.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/DataSet.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/StructuredData/Constants.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/StructuredData.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/ImageData.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/Core/ScalarsToColors/Constants.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Rendering/Core/Mapper/Constants.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/Core/ScalarsToColors.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/Core/LookupTable.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Rendering/Core/Mapper/Static.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Rendering/Core/Mapper/CoincidentTopologyHelper.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Rendering/OpenGL/HardwareSelector/Constants.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Rendering/Core/Mapper.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/Core/CellArray.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/Core/Points.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/Cell.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/CellLinks.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/CellTypes/Constants.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/CellTypes.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/Line/Constants.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/Line.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/PointSet.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/Triangle.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/PolyData/Constants.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Common/DataModel/PolyData.js","webpack://vue-visual-kit/./node_modules/@kitware/vtk.js/Filters/Sources/SphereSource.js","webpack://vue-visual-kit/./src/common/js/util.js","webpack://vue-visual-kit/./src/package/dicom-segmentator/index.vue?f483","webpack://vue-visual-kit/./src/package/dicom-segmentator/index.vue?bc91","webpack://vue-visual-kit/./src/package/dicom-segmentator/index.vue?d35f","webpack://vue-visual-kit/./src/package/dicom-segmentator/index.vue?ae99","webpack://vue-visual-kit/./src/package/dicom-wechat-viewer/index.vue","webpack://vue-visual-kit/./src/package/dicom-wechat-viewer/index.vue?6323","webpack://vue-visual-kit/./node_modules/vant/es/utils/validate.mjs","webpack://vue-visual-kit/./node_modules/vant/es/utils/basic.mjs","webpack://vue-visual-kit/./node_modules/vant/es/utils/format.mjs","webpack://vue-visual-kit/./node_modules/vant/es/utils/with-install.mjs","webpack://vue-visual-kit/./node_modules/vant/es/composables/use-expose.mjs","webpack://vue-visual-kit/./node_modules/vant/es/utils/mount-component.mjs","webpack://vue-visual-kit/./node_modules/vant/es/utils/deep-assign.mjs","webpack://vue-visual-kit/./node_modules/vant/es/locale/lang/zh-CN.mjs","webpack://vue-visual-kit/./node_modules/vant/es/locale/index.mjs","webpack://vue-visual-kit/./node_modules/vant/es/utils/create.mjs","webpack://vue-visual-kit/./node_modules/vant/es/utils/props.mjs","webpack://vue-visual-kit/./node_modules/vant/es/toast/lock-click.mjs","webpack://vue-visual-kit/./node_modules/vant/es/badge/Badge.mjs","webpack://vue-visual-kit/./node_modules/vant/es/badge/index.mjs","webpack://vue-visual-kit/./node_modules/vant/es/composables/use-global-z-index.mjs","webpack://vue-visual-kit/./node_modules/vant/es/config-provider/ConfigProvider.mjs","webpack://vue-visual-kit/./node_modules/vant/es/icon/Icon.mjs","webpack://vue-visual-kit/./node_modules/vant/es/icon/index.mjs","webpack://vue-visual-kit/./node_modules/vant/es/popup/shared.mjs","webpack://vue-visual-kit/./node_modules/vant/es/utils/interceptor.mjs","webpack://vue-visual-kit/./node_modules/vant/es/utils/constant.mjs","webpack://vue-visual-kit/./node_modules/@vant/use/dist/index.esm.mjs","webpack://vue-visual-kit/./node_modules/vant/es/composables/use-touch.mjs","webpack://vue-visual-kit/./node_modules/vant/es/utils/dom.mjs","webpack://vue-visual-kit/./node_modules/vant/es/composables/use-lock-scroll.mjs","webpack://vue-visual-kit/./node_modules/vant/es/composables/use-lazy-render.mjs","webpack://vue-visual-kit/./node_modules/vant/es/composables/on-popup-reopen.mjs","webpack://vue-visual-kit/./node_modules/vant/es/overlay/Overlay.mjs","webpack://vue-visual-kit/./node_modules/vant/es/overlay/index.mjs","webpack://vue-visual-kit/./node_modules/vant/es/popup/Popup.mjs","webpack://vue-visual-kit/./node_modules/vant/es/popup/index.mjs","webpack://vue-visual-kit/./node_modules/vant/es/loading/Loading.mjs","webpack://vue-visual-kit/./node_modules/vant/es/loading/index.mjs","webpack://vue-visual-kit/./node_modules/vant/es/toast/Toast.mjs","webpack://vue-visual-kit/./node_modules/vant/es/toast/function-call.mjs","webpack://vue-visual-kit/./src/package/dicom-wechat-viewer/data-manager-viewer.vue","webpack://vue-visual-kit/./src/package/dicom-wechat-viewer/data-manager-viewer.vue?aee0","webpack://vue-visual-kit/./src/package/dicom-wechat-viewer/data-manager-viewer.vue?3481","webpack://vue-visual-kit/./src/package/dicom-wechat-viewer/data-manager-viewer.vue?e5a1","webpack://vue-visual-kit/./src/package/dicom-wechat-viewer/data-manager-viewer.vue?566b","webpack://vue-visual-kit/./src/package/dicom-wechat-viewer/data-manager-viewer.vue?b27f","webpack://vue-visual-kit/./src/package/dicom-wechat-viewer/index.vue?7a9a","webpack://vue-visual-kit/./src/package/dicom-wechat-viewer/index.vue?673b","webpack://vue-visual-kit/./src/package/dicom-wechat-viewer/index.vue?d4d1","webpack://vue-visual-kit/./src/package/dicom-wechat-viewer/index.vue?42ce","webpack://vue-visual-kit/./src/package/index.js","webpack://vue-visual-kit/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@cornerstonejs/dicom-image-loader\"), require(\"@cornerstonejs/tools\"), require(\"@cornerstonejs/polymorphic-segmentation\"), require(\"@cornerstonejs/core\"), require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@cornerstonejs/dicom-image-loader\", \"@cornerstonejs/tools\", \"@cornerstonejs/polymorphic-segmentation\", \"@cornerstonejs/core\", ], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue-visual-kit\"] = factory(require(\"@cornerstonejs/dicom-image-loader\"), require(\"@cornerstonejs/tools\"), require(\"@cornerstonejs/polymorphic-segmentation\"), require(\"@cornerstonejs/core\"), require(\"vue\"));\n\telse\n\t\troot[\"vue-visual-kit\"] = factory(root[\"@cornerstonejs/dicom-image-loader\"], root[\"@cornerstonejs/tools\"], root[\"@cornerstonejs/polymorphic-segmentation\"], root[\"@cornerstonejs/core\"], root[\"Vue\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__2302__, __WEBPACK_EXTERNAL_MODULE__4713__, __WEBPACK_EXTERNAL_MODULE__6023__, __WEBPACK_EXTERNAL_MODULE__6557__, __WEBPACK_EXTERNAL_MODULE__9274__) {\nreturn ","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar findWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('find', TypeError);\n\n// `Iterator.prototype.find` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.find\n$({ target: 'Iterator', proto: true, real: true, forced: findWithoutClosingOnEarlyError }, {\n find: function find(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (findWithoutClosingOnEarlyError) return call(findWithoutClosingOnEarlyError, this, predicate);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop(value);\n }, { IS_RECORD: true, INTERRUPTED: true }).result;\n }\n});\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar defineDataProperty = require('define-data-property');\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar supportsDescriptors = require('has-property-descriptors')();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (supportsDescriptors) {\n\t\tdefineDataProperty(object, name, value, true);\n\t} else {\n\t\tdefineDataProperty(object, name, value);\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar call = require('../internals/function-call');\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n var next = record.next;\n var step, result;\n while (!(step = call(next, iterator)).done) {\n result = fn(step.value);\n if (result !== undefined) return result;\n }\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar everyWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('every', TypeError);\n\n// `Iterator.prototype.every` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.every\n$({ target: 'Iterator', proto: true, real: true, forced: everyWithoutClosingOnEarlyError }, {\n every: function every(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (everyWithoutClosingOnEarlyError) return call(everyWithoutClosingOnEarlyError, this, predicate);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n return !iterate(record, function (value, stop) {\n if (!predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","/* (ignored) */","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar V8 = require('../internals/environment-v8-version');\nvar ENVIRONMENT = require('../internals/environment');\n\nvar structuredClone = globalThis.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if ((ENVIRONMENT === 'DENO' && V8 > 92) || (ENVIRONMENT === 'NODE' && V8 > 94) || (ENVIRONMENT === 'BROWSER' && V8 > 97)) return false;\n var buffer = new ArrayBuffer(8);\n var clone = structuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength !== 0 || clone.byteLength !== 8;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar uid = require('../internals/uid');\nvar isCallable = require('../internals/is-callable');\nvar isConstructor = require('../internals/is-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar iterate = require('../internals/iterate');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar createProperty = require('../internals/create-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar MapHelpers = require('../internals/map-helpers');\nvar SetHelpers = require('../internals/set-helpers');\nvar setIterate = require('../internals/set-iterate');\nvar detachTransferable = require('../internals/detach-transferable');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar Object = globalThis.Object;\nvar Array = globalThis.Array;\nvar Date = globalThis.Date;\nvar Error = globalThis.Error;\nvar TypeError = globalThis.TypeError;\nvar PerformanceMark = globalThis.PerformanceMark;\nvar DOMException = getBuiltIn('DOMException');\nvar Map = MapHelpers.Map;\nvar mapHas = MapHelpers.has;\nvar mapGet = MapHelpers.get;\nvar mapSet = MapHelpers.set;\nvar Set = SetHelpers.Set;\nvar setAdd = SetHelpers.add;\nvar setHas = SetHelpers.has;\nvar objectKeys = getBuiltIn('Object', 'keys');\nvar push = uncurryThis([].push);\nvar thisBooleanValue = uncurryThis(true.valueOf);\nvar thisNumberValue = uncurryThis(1.0.valueOf);\nvar thisStringValue = uncurryThis(''.valueOf);\nvar thisTimeValue = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\n\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var set1 = new globalThis.Set([7]);\n var set2 = structuredCloneImplementation(set1);\n var number = structuredCloneImplementation(Object(7));\n return set2 === set1 || !set2.has(7) || !isObject(number) || +number !== 7;\n }) && structuredCloneImplementation;\n};\n\nvar checkErrorsCloning = function (structuredCloneImplementation, $Error) {\n return !fails(function () {\n var error = new $Error();\n var test = structuredCloneImplementation({ a: error, b: error });\n return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack);\n });\n};\n\n// https://github.com/whatwg/html/pull/5749\nvar checkNewErrorsCloningSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var test = structuredCloneImplementation(new globalThis.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n return test.name !== 'AggregateError' || test.errors[0] !== 1 || test.message !== PERFORMANCE_MARK || test.cause !== 3;\n });\n};\n\n// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+\n// FF<103 and Safari implementations can't clone errors\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n// FF103 can clone errors, but `.stack` of clone is an empty string\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762\n// FF104+ fixed it on usual errors, but not on DOMExceptions\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321\n// Chrome <102 returns `null` if cloned object contains multiple references to one error\n// https://bugs.chromium.org/p/v8/issues/detail?id=12542\n// NodeJS implementation can't clone DOMExceptions\n// https://github.com/nodejs/node/issues/41038\n// only FF103+ supports new (html/5749) error cloning semantic\nvar nativeStructuredClone = globalThis.structuredClone;\n\nvar FORCED_REPLACEMENT = IS_PURE\n || !checkErrorsCloning(nativeStructuredClone, Error)\n || !checkErrorsCloning(nativeStructuredClone, DOMException)\n || !checkNewErrorsCloningSemantic(nativeStructuredClone);\n\n// Chrome 82+, Safari 14.1+, Deno 1.11+\n// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException`\n// Chrome returns `null` if cloned object contains multiple references to one error\n// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround\n// Safari implementation can't clone errors\n// Deno 1.2-1.10 implementations too naive\n// NodeJS 16.0+ does not have `PerformanceMark` constructor\n// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive\n// and can't clone, for example, `RegExp` or some boxed primitives\n// https://github.com/nodejs/node/issues/40840\n// no one of those implementations supports new (html/5749) error cloning semantic\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\n\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\n\nvar throwUncloneable = function (type) {\n throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\n\nvar throwUnpolyfillable = function (type, action) {\n throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\n\nvar tryNativeRestrictedStructuredClone = function (value, type) {\n if (!nativeRestrictedStructuredClone) throwUnpolyfillable(type);\n return nativeRestrictedStructuredClone(value);\n};\n\nvar createDataTransfer = function () {\n var dataTransfer;\n try {\n dataTransfer = new globalThis.DataTransfer();\n } catch (error) {\n try {\n dataTransfer = new globalThis.ClipboardEvent('').clipboardData;\n } catch (error2) { /* empty */ }\n }\n return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null;\n};\n\nvar cloneBuffer = function (value, map, $type) {\n if (mapHas(map, value)) return mapGet(map, value);\n\n var type = $type || classof(value);\n var clone, length, options, source, target, i;\n\n if (type === 'SharedArrayBuffer') {\n if (nativeRestrictedStructuredClone) clone = nativeRestrictedStructuredClone(value);\n // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original\n else clone = value;\n } else {\n var DataView = globalThis.DataView;\n\n // `ArrayBuffer#slice` is not available in IE10\n // `ArrayBuffer#slice` and `DataView` are not available in old FF\n if (!DataView && !isCallable(value.slice)) throwUnpolyfillable('ArrayBuffer');\n // detached buffers throws in `DataView` and `.slice`\n try {\n if (isCallable(value.slice) && !value.resizable) {\n clone = value.slice(0);\n } else {\n length = value.byteLength;\n options = 'maxByteLength' in value ? { maxByteLength: value.maxByteLength } : undefined;\n // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- safe\n clone = new ArrayBuffer(length, options);\n source = new DataView(value);\n target = new DataView(clone);\n for (i = 0; i < length; i++) {\n target.setUint8(i, source.getUint8(i));\n }\n }\n } catch (error) {\n throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n }\n }\n\n mapSet(map, value, clone);\n\n return clone;\n};\n\nvar cloneView = function (value, type, offset, length, map) {\n var C = globalThis[type];\n // in some old engines like Safari 9, typeof C is 'object'\n // on Uint8ClampedArray or some other constructors\n if (!isObject(C)) throwUnpolyfillable(type);\n return new C(cloneBuffer(value.buffer, map), offset, length);\n};\n\nvar structuredCloneInternal = function (value, map) {\n if (isSymbol(value)) throwUncloneable('Symbol');\n if (!isObject(value)) return value;\n // effectively preserves circular references\n if (map) {\n if (mapHas(map, value)) return mapGet(map, value);\n } else map = new Map();\n\n var type = classof(value);\n var C, name, cloned, dataTransfer, i, length, keys, key;\n\n switch (type) {\n case 'Array':\n cloned = Array(lengthOfArrayLike(value));\n break;\n case 'Object':\n cloned = {};\n break;\n case 'Map':\n cloned = new Map();\n break;\n case 'Set':\n cloned = new Set();\n break;\n case 'RegExp':\n // in this block because of a Safari 14.1 bug\n // old FF does not clone regexes passed to the constructor, so get the source and flags directly\n cloned = new RegExp(value.source, getRegExpFlags(value));\n break;\n case 'Error':\n name = value.name;\n switch (name) {\n case 'AggregateError':\n cloned = new (getBuiltIn(name))([]);\n break;\n case 'EvalError':\n case 'RangeError':\n case 'ReferenceError':\n case 'SuppressedError':\n case 'SyntaxError':\n case 'TypeError':\n case 'URIError':\n cloned = new (getBuiltIn(name))();\n break;\n case 'CompileError':\n case 'LinkError':\n case 'RuntimeError':\n cloned = new (getBuiltIn('WebAssembly', name))();\n break;\n default:\n cloned = new Error();\n }\n break;\n case 'DOMException':\n cloned = new DOMException(value.message, value.name);\n break;\n case 'ArrayBuffer':\n case 'SharedArrayBuffer':\n cloned = cloneBuffer(value, map, type);\n break;\n case 'DataView':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float16Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n length = type === 'DataView' ? value.byteLength : value.length;\n cloned = cloneView(value, type, value.byteOffset, length, map);\n break;\n case 'DOMQuad':\n try {\n cloned = new DOMQuad(\n structuredCloneInternal(value.p1, map),\n structuredCloneInternal(value.p2, map),\n structuredCloneInternal(value.p3, map),\n structuredCloneInternal(value.p4, map)\n );\n } catch (error) {\n cloned = tryNativeRestrictedStructuredClone(value, type);\n }\n break;\n case 'File':\n if (nativeRestrictedStructuredClone) try {\n cloned = nativeRestrictedStructuredClone(value);\n // NodeJS 20.0.0 bug, https://github.com/nodejs/node/issues/47612\n if (classof(cloned) !== type) cloned = undefined;\n } catch (error) { /* empty */ }\n if (!cloned) try {\n cloned = new File([value], value.name, value);\n } catch (error) { /* empty */ }\n if (!cloned) throwUnpolyfillable(type);\n break;\n case 'FileList':\n dataTransfer = createDataTransfer();\n if (dataTransfer) {\n for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n dataTransfer.items.add(structuredCloneInternal(value[i], map));\n }\n cloned = dataTransfer.files;\n } else cloned = tryNativeRestrictedStructuredClone(value, type);\n break;\n case 'ImageData':\n // Safari 9 ImageData is a constructor, but typeof ImageData is 'object'\n try {\n cloned = new ImageData(\n structuredCloneInternal(value.data, map),\n value.width,\n value.height,\n { colorSpace: value.colorSpace }\n );\n } catch (error) {\n cloned = tryNativeRestrictedStructuredClone(value, type);\n } break;\n default:\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else switch (type) {\n case 'BigInt':\n // can be a 3rd party polyfill\n cloned = Object(value.valueOf());\n break;\n case 'Boolean':\n cloned = Object(thisBooleanValue(value));\n break;\n case 'Number':\n cloned = Object(thisNumberValue(value));\n break;\n case 'String':\n cloned = Object(thisStringValue(value));\n break;\n case 'Date':\n cloned = new Date(thisTimeValue(value));\n break;\n case 'Blob':\n try {\n cloned = value.slice(0, value.size, value.type);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMPoint':\n case 'DOMPointReadOnly':\n C = globalThis[type];\n try {\n cloned = C.fromPoint\n ? C.fromPoint(value)\n : new C(value.x, value.y, value.z, value.w);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMRect':\n case 'DOMRectReadOnly':\n C = globalThis[type];\n try {\n cloned = C.fromRect\n ? C.fromRect(value)\n : new C(value.x, value.y, value.width, value.height);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMMatrix':\n case 'DOMMatrixReadOnly':\n C = globalThis[type];\n try {\n cloned = C.fromMatrix\n ? C.fromMatrix(value)\n : new C(value);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone)) throwUnpolyfillable(type);\n try {\n cloned = value.clone();\n } catch (error) {\n throwUncloneable(type);\n } break;\n case 'CropTarget':\n case 'CryptoKey':\n case 'FileSystemDirectoryHandle':\n case 'FileSystemFileHandle':\n case 'FileSystemHandle':\n case 'GPUCompilationInfo':\n case 'GPUCompilationMessage':\n case 'ImageBitmap':\n case 'RTCCertificate':\n case 'WebAssembly.Module':\n throwUnpolyfillable(type);\n // break omitted\n default:\n throwUncloneable(type);\n }\n }\n\n mapSet(map, value, cloned);\n\n switch (type) {\n case 'Array':\n case 'Object':\n keys = objectKeys(value);\n for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n key = keys[i];\n createProperty(cloned, key, structuredCloneInternal(value[key], map));\n } break;\n case 'Map':\n value.forEach(function (v, k) {\n mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n });\n break;\n case 'Set':\n value.forEach(function (v) {\n setAdd(cloned, structuredCloneInternal(v, map));\n });\n break;\n case 'Error':\n createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n if (hasOwn(value, 'cause')) {\n createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n }\n if (name === 'AggregateError') {\n cloned.errors = structuredCloneInternal(value.errors, map);\n } else if (name === 'SuppressedError') {\n cloned.error = structuredCloneInternal(value.error, map);\n cloned.suppressed = structuredCloneInternal(value.suppressed, map);\n } // break omitted\n case 'DOMException':\n if (ERROR_STACK_INSTALLABLE) {\n createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n }\n }\n\n return cloned;\n};\n\nvar tryToTransfer = function (rawTransfer, map) {\n if (!isObject(rawTransfer)) throw new TypeError('Transfer option cannot be converted to a sequence');\n\n var transfer = [];\n\n iterate(rawTransfer, function (value) {\n push(transfer, anObject(value));\n });\n\n var i = 0;\n var length = lengthOfArrayLike(transfer);\n var buffers = new Set();\n var value, type, C, transferred, canvas, context;\n\n while (i < length) {\n value = transfer[i++];\n\n type = classof(value);\n\n if (type === 'ArrayBuffer' ? setHas(buffers, value) : mapHas(map, value)) {\n throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n }\n\n if (type === 'ArrayBuffer') {\n setAdd(buffers, value);\n continue;\n }\n\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n transferred = nativeStructuredClone(value, { transfer: [value] });\n } else switch (type) {\n case 'ImageBitmap':\n C = globalThis.OffscreenCanvas;\n if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n canvas = new C(value.width, value.height);\n context = canvas.getContext('bitmaprenderer');\n context.transferFromImageBitmap(value);\n transferred = canvas.transferToImageBitmap();\n } catch (error) { /* empty */ }\n break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n transferred = value.clone();\n value.close();\n } catch (error) { /* empty */ }\n break;\n case 'MediaSourceHandle':\n case 'MessagePort':\n case 'MIDIAccess':\n case 'OffscreenCanvas':\n case 'ReadableStream':\n case 'RTCDataChannel':\n case 'TransformStream':\n case 'WebTransportReceiveStream':\n case 'WebTransportSendStream':\n case 'WritableStream':\n throwUnpolyfillable(type, TRANSFERRING);\n }\n\n if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n\n mapSet(map, value, transferred);\n }\n\n return buffers;\n};\n\nvar detachBuffers = function (buffers) {\n setIterate(buffers, function (buffer) {\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n nativeRestrictedStructuredClone(buffer, { transfer: [buffer] });\n } else if (isCallable(buffer.transfer)) {\n buffer.transfer();\n } else if (detachTransferable) {\n detachTransferable(buffer);\n } else {\n throwUnpolyfillable('ArrayBuffer', TRANSFERRING);\n }\n });\n};\n\n// `structuredClone` method\n// https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone\n$({ global: true, enumerable: true, sham: !PROPER_STRUCTURED_CLONE_TRANSFER, forced: FORCED_REPLACEMENT }, {\n structuredClone: function structuredClone(value /* , { transfer } */) {\n var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined;\n var transfer = options ? options.transfer : undefined;\n var map, buffers;\n\n if (transfer !== undefined) {\n map = new Map();\n buffers = tryToTransfer(transfer, map);\n }\n\n var clone = structuredCloneInternal(value, map);\n\n // since of an issue with cloning views of transferred buffers, we a forced to detach them later\n // https://github.com/zloirock/core-js/issues/1265\n if (buffers) detachBuffers(buffers);\n\n return clone;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar union = require('../internals/set-union');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.union` method\n// https://tc39.es/ecma262/#sec-set.prototype.union\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, {\n union: union\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\nvar IS_PURE = require('../internals/is-pure');\n\nvar mapWithoutClosingOnEarlyError = !IS_PURE && iteratorHelperWithoutClosingOnEarlyError('map', TypeError);\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.map\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE || mapWithoutClosingOnEarlyError }, {\n map: function map(mapper) {\n anObject(this);\n try {\n aCallable(mapper);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (mapWithoutClosingOnEarlyError) return call(mapWithoutClosingOnEarlyError, this, mapper);\n\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: mapper\n });\n }\n});\n","'use strict';\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect\nmodule.exports = function (obj) {\n return {\n iterator: obj,\n next: obj.next,\n done: false\n };\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar iterate = require('../internals/iterate');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar push = [].push;\n\n// `Iterator.prototype.toArray` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.toarray\n$({ target: 'Iterator', proto: true, real: true }, {\n toArray: function toArray() {\n var result = [];\n iterate(getIteratorDirect(anObject(this)), push, { that: result, IS_RECORD: true });\n return result;\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","module.exports = {\n \"version\": \"0.27.2\"\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-map -- safe\nvar MapPrototype = Map.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-map -- safe\n Map: Map,\n set: uncurryThis(MapPrototype.set),\n get: uncurryThis(MapPrototype.get),\n has: uncurryThis(MapPrototype.has),\n remove: uncurryThis(MapPrototype['delete']),\n proto: MapPrototype\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__2302__;","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n activeXDocument = null;\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","'use strict';\n\nvar defineProperties = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = getPolyfill();\n\nvar getGlobal = function () { return polyfill; };\n\ndefineProperties(getGlobal, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = getGlobal;\n","'use strict';\nvar $ = require('../internals/export');\nvar isSupersetOf = require('../internals/set-is-superset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('isSupersetOf', function (result) {\n return !result;\n});\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issupersetof\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isSupersetOf: isSupersetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar IS_PURE = require('../internals/is-pure');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar filterWithoutClosingOnEarlyError = !IS_PURE && iteratorHelperWithoutClosingOnEarlyError('filter', TypeError);\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var predicate = this.predicate;\n var next = this.next;\n var result, done, value;\n while (true) {\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n value = result.value;\n if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;\n }\n});\n\n// `Iterator.prototype.filter` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.filter\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE || filterWithoutClosingOnEarlyError }, {\n filter: function filter(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (filterWithoutClosingOnEarlyError) return call(filterWithoutClosingOnEarlyError, this, predicate);\n\n return new IteratorProxy(getIteratorDirect(this), {\n predicate: predicate\n });\n }\n});\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","// A port of an algorithm by Johannes Baagøe <baagoe@baagoe.com>, 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baagøe <baagoe@baagoe.org>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function difference(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = clone(O);\n if (size(O) <= otherRec.size) iterateSet(O, function (e) {\n if (otherRec.includes(e)) remove(result, e);\n });\n else iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) remove(result, e);\n });\n return result;\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor<unknown>} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar someWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('some', TypeError);\n\n// `Iterator.prototype.some` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.some\n$({ target: 'Iterator', proto: true, real: true, forced: someWithoutClosingOnEarlyError }, {\n some: function some(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (someWithoutClosingOnEarlyError) return call(someWithoutClosingOnEarlyError, this, predicate);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function symmetricDifference(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (e) {\n if (has(O, e)) remove(result, e);\n else add(result, e);\n });\n return result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar call = require('../internals/function-call');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar INVALID_SIZE = 'Invalid size';\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, intSize) {\n this.set = set;\n this.size = max(intSize, 0);\n this.has = aCallable(set.has);\n this.keys = aCallable(set.keys);\n};\n\nSetRecord.prototype = {\n getIterator: function () {\n return getIteratorDirect(anObject(call(this.keys, this.set)));\n },\n includes: function (it) {\n return call(this.has, this.set, it);\n }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n anObject(obj);\n var numSize = +obj.size;\n // NOTE: If size is undefined, then numSize will be NaN\n // eslint-disable-next-line no-self-compare -- NaN check\n if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);\n var intSize = toIntegerOrInfinity(numSize);\n if (intSize < 0) throw new $RangeError(INVALID_SIZE);\n return new SetRecord(obj, intSize);\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (typeof global !== 'object' || !global || global.Math !== Math || global.Array !== Array) {\n\t\treturn implementation;\n\t}\n\treturn global;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar size = require('../internals/set-size');\nvar iterate = require('../internals/set-iterate');\nvar getSetRecord = require('../internals/get-set-record');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf\nmodule.exports = function isSubsetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) > otherRec.size) return false;\n return iterate(O, function (e) {\n if (!otherRec.includes(e)) return false;\n }, true) !== false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isDisjointFrom = require('../internals/set-is-disjoint-from');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('isDisjointFrom', function (result) {\n return !result;\n});\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isDisjointFrom: isDisjointFrom\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","module.exports = require('./lib/axios');","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function union(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\n/* global Bun, Deno -- detection */\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\nvar classof = require('../internals/classof-raw');\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\n})();\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-set -- safe\n Set: Set,\n add: uncurryThis(SetPrototype.add),\n has: uncurryThis(SetPrototype.has),\n remove: uncurryThis(SetPrototype['delete']),\n proto: SetPrototype\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom\nmodule.exports = function isDisjointFrom(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n if (otherRec.includes(e)) return false;\n }, true) !== false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getBuiltInNodeModule = require('../internals/get-built-in-node-module');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = globalThis.structuredClone;\nvar $ArrayBuffer = globalThis.ArrayBuffer;\nvar $MessageChannel = globalThis.MessageChannel;\nvar detach = false;\nvar WorkerThreads, channel, buffer, $detach;\n\nif (PROPER_STRUCTURED_CLONE_TRANSFER) {\n detach = function (transferable) {\n structuredClone(transferable, { transfer: [transferable] });\n };\n} else if ($ArrayBuffer) try {\n if (!$MessageChannel) {\n WorkerThreads = getBuiltInNodeModule('worker_threads');\n if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;\n }\n\n if ($MessageChannel) {\n channel = new $MessageChannel();\n buffer = new $ArrayBuffer(2);\n\n $detach = function (transferable) {\n channel.port1.postMessage(null, [transferable]);\n };\n\n if (buffer.byteLength === 2) {\n $detach(buffer);\n if (buffer.byteLength === 0) detach = $detach;\n }\n }\n} catch (error) { /* empty */ }\n\nmodule.exports = detach;\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// https://github.com/tc39/ecma262/pull/3467\nmodule.exports = function (METHOD_NAME, ExpectedError) {\n var Iterator = globalThis.Iterator;\n var IteratorPrototype = Iterator && Iterator.prototype;\n var method = IteratorPrototype && IteratorPrototype[METHOD_NAME];\n\n var CLOSED = false;\n\n if (method) try {\n method.call({\n next: function () { return { done: true }; },\n 'return': function () { CLOSED = true; }\n }, -1);\n } catch (error) {\n // https://bugs.webkit.org/show_bug.cgi?id=291195\n if (!(error instanceof ExpectedError)) CLOSED = false;\n }\n\n if (!CLOSED) return method;\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__4713__;","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar createSetLike = function (size) {\n return {\n size: size,\n has: function () {\n return false;\n },\n keys: function () {\n return {\n next: function () {\n return { done: true };\n }\n };\n }\n };\n};\n\nvar createSetLikeWithInfinitySize = function (size) {\n return {\n size: size,\n has: function () {\n return true;\n },\n keys: function () {\n throw new Error('e');\n }\n };\n};\n\nmodule.exports = function (name, callback) {\n var Set = getBuiltIn('Set');\n try {\n new Set()[name](createSetLike(0));\n try {\n // late spec change, early WebKit ~ Safari 17 implementation does not pass it\n // https://github.com/tc39/proposal-set-methods/pull/88\n // also covered engines with\n // https://bugs.webkit.org/show_bug.cgi?id=272679\n new Set()[name](createSetLike(-1));\n return false;\n } catch (error2) {\n if (!callback) return true;\n // early V8 implementation bug\n // https://issues.chromium.org/issues/351332634\n try {\n new Set()[name](createSetLikeWithInfinitySize(-Infinity));\n return false;\n } catch (error) {\n var set = new Set();\n set.add(1);\n set.add(2);\n return callback(set[name](createSetLikeWithInfinitySize(Infinity)));\n }\n }\n } catch (error) {\n return false;\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = new Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\nmodule.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar symmetricDifference = require('../internals/set-symmetric-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.symmetricDifference` method\n// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, {\n symmetricDifference: symmetricDifference\n});\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: require('./env/FormData')\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar SetHelpers = require('../internals/set-helpers');\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n return set.size;\n};\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isSubsetOf = require('../internals/set-is-subset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('isSubsetOf', function (result) {\n return result;\n});\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issubsetof\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isSubsetOf: isSubsetOf\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","module.exports = __WEBPACK_EXTERNAL_MODULE__6023__;","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable, sonarjs/slow-regex -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = new Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","module.exports = __WEBPACK_EXTERNAL_MODULE__6557__;","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baagøe.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by François Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar has = require('../internals/set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","// eslint-disable-next-line strict\nmodule.exports = null;\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar forEachWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('forEach', TypeError);\n\n// `Iterator.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.foreach\n$({ target: 'Iterator', proto: true, real: true, forced: forEachWithoutClosingOnEarlyError }, {\n forEach: function forEach(fn) {\n anObject(this);\n try {\n aCallable(fn);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (forEachWithoutClosingOnEarlyError) return call(forEachWithoutClosingOnEarlyError, this, fn);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n iterate(record, function (value) {\n fn(value, counter++);\n }, { IS_RECORD: true });\n }\n});\n","// A Javascript implementaion of the \"xorshift7\" algorithm by\n// François Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.42.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2025 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.42.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar difference = require('../internals/set-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('difference', function (result) {\n return result.size === 0;\n});\n\n// `Set.prototype.difference` method\n// https://tc39.es/ecma262/#sec-set.prototype.difference\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n difference: difference\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar intersection = require('../internals/set-intersection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('intersection', function (result) {\n return result.size === 2 && result.has(1) && result.has(2);\n}) || fails(function () {\n // eslint-disable-next-line es/no-array-from, es/no-set, es/no-set-prototype-intersection -- testing\n return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2';\n});\n\n// `Set.prototype.intersection` method\n// https://tc39.es/ecma262/#sec-set.prototype.intersection\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n intersection: intersection\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar CONSTRUCTOR = 'constructor';\nvar ITERATOR = 'Iterator';\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $TypeError = TypeError;\nvar NativeIterator = globalThis[ITERATOR];\n\n// FF56- have non-standard global helper `Iterator`\nvar FORCED = IS_PURE\n || !isCallable(NativeIterator)\n || NativeIterator.prototype !== IteratorPrototype\n // FF44- non-standard `Iterator` passes previous tests\n || !fails(function () { NativeIterator({}); });\n\nvar IteratorConstructor = function Iterator() {\n anInstance(this, IteratorPrototype);\n if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable');\n};\n\nvar defineIteratorPrototypeAccessor = function (key, value) {\n if (DESCRIPTORS) {\n defineBuiltInAccessor(IteratorPrototype, key, {\n configurable: true,\n get: function () {\n return value;\n },\n set: function (replacement) {\n anObject(this);\n if (this === IteratorPrototype) throw new $TypeError(\"You can't redefine this property\");\n if (hasOwn(this, key)) this[key] = replacement;\n else createProperty(this, key, replacement);\n }\n });\n } else IteratorPrototype[key] = value;\n};\n\nif (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);\n\nif (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) {\n defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);\n}\n\nIteratorConstructor.prototype = IteratorPrototype;\n\n// `Iterator` constructor\n// https://tc39.es/ecma262/#sec-iterator\n$({ global: true, constructor: true, forced: FORCED }, {\n Iterator: IteratorConstructor\n});\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\nvar apply = require('../internals/function-apply');\nvar fails = require('../internals/fails');\n\nvar $TypeError = TypeError;\n\n// https://bugs.webkit.org/show_bug.cgi?id=291651\nvar FAILS_ON_INITIAL_UNDEFINED = fails(function () {\n // eslint-disable-next-line es/no-iterator-prototype-reduce, es/no-array-prototype-keys, array-callback-return -- required for testing\n [].keys().reduce(function () { /* empty */ }, undefined);\n});\n\nvar reduceWithoutClosingOnEarlyError = !FAILS_ON_INITIAL_UNDEFINED && iteratorHelperWithoutClosingOnEarlyError('reduce', $TypeError);\n\n// `Iterator.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.reduce\n$({ target: 'Iterator', proto: true, real: true, forced: FAILS_ON_INITIAL_UNDEFINED || reduceWithoutClosingOnEarlyError }, {\n reduce: function reduce(reducer /* , initialValue */) {\n anObject(this);\n try {\n aCallable(reducer);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n if (reduceWithoutClosingOnEarlyError) {\n return apply(reduceWithoutClosingOnEarlyError, this, noInitial ? [reducer] : [reducer, accumulator]);\n }\n var record = getIteratorDirect(this);\n var counter = 0;\n iterate(record, function (value) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = reducer(accumulator, value, counter);\n }\n counter++;\n }, { IS_RECORD: true });\n if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value');\n return accumulator;\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar SetHelpers = require('../internals/set-helpers');\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf\nmodule.exports = function isSupersetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) < otherRec.size) return false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (!has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar ENVIRONMENT = require('../internals/environment');\n\nmodule.exports = ENVIRONMENT === 'NODE';\n","/* eslint no-negated-condition: 0, no-new-func: 0 */\n\n'use strict';\n\nif (typeof self !== 'undefined') {\n\tmodule.exports = self;\n} else if (typeof window !== 'undefined') {\n\tmodule.exports = window;\n} else {\n\tmodule.exports = Function('return this')();\n}\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function intersection(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = new Set();\n\n if (size(O) > otherRec.size) {\n iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) add(result, e);\n });\n } else {\n iterateSet(O, function (e) {\n if (otherRec.includes(e)) add(result, e);\n });\n }\n\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimGlobal() {\n\tvar polyfill = getPolyfill();\n\tif (define.supportsDescriptors) {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(polyfill, 'globalThis');\n\t\tif (!descriptor || (descriptor.configurable && (descriptor.enumerable || !descriptor.writable || globalThis !== polyfill))) { // eslint-disable-line max-len\n\t\t\tObject.defineProperty(polyfill, 'globalThis', {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: polyfill,\n\t\t\t\twritable: true\n\t\t\t});\n\t\t}\n\t} else if (typeof globalThis !== 'object' || globalThis !== polyfill) {\n\t\tpolyfill.globalThis = polyfill;\n\t}\n\treturn polyfill;\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__9274__;","'use strict';\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n var result = new Set();\n iterate(set, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar IS_NODE = require('../internals/environment-is-node');\n\nmodule.exports = function (name) {\n if (IS_NODE) {\n try {\n return globalThis.process.getBuiltinModule(name);\n } catch (error) { /* empty */ }\n try {\n // eslint-disable-next-line no-new-func -- safe\n return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getMethod = require('../internals/get-method');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n return defineBuiltIns(create(IteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n // for simplification:\n // for `%WrapForValidIteratorPrototype%.next` or with `state.returnHandlerResult` our `nextHandler` returns `IterResultObject`\n // for `%IteratorHelperPrototype%.next` - just a value\n if (IS_ITERATOR) return state.nextHandler();\n if (state.done) return createIterResultObject(undefined, true);\n try {\n var result = state.nextHandler();\n return state.returnHandlerResult ? result : createIterResultObject(result, state.done);\n } catch (error) {\n state.done = true;\n throw error;\n }\n },\n 'return': function () {\n var state = getInternalState(this);\n var iterator = state.iterator;\n state.done = true;\n if (IS_ITERATOR) {\n var returnMethod = getMethod(iterator, 'return');\n return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n }\n if (state.inner) try {\n iteratorClose(state.inner.iterator, 'normal');\n } catch (error) {\n return iteratorClose(iterator, 'throw', error);\n }\n if (iterator) iteratorClose(iterator, 'normal');\n return createIterResultObject(undefined, true);\n }\n });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR, RETURN_HANDLER_RESULT) {\n var IteratorProxy = function Iterator(record, state) {\n if (state) {\n state.iterator = record.iterator;\n state.next = record.next;\n } else state = record;\n state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n state.returnHandlerResult = !!RETURN_HANDLER_RESULT;\n state.nextHandler = nextHandler;\n state.counter = 0;\n state.done = false;\n setInternalState(this, state);\n };\n\n IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n return IteratorProxy;\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t(require(\"base64-js\")):\"function\"==typeof define&&define.amd?define([\"base64-js\"],t):(r=r||self).Sm4js=t(r.base64js)}(this,function(e){\"use strict\";function i(r,t){if(!(r instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function n(r,t){for(var e=0;e<t.length;e++){var n=t[e];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(r,n.key,n)}}function r(r,t,e){return t&&n(r.prototype,t),e&&n(r,e),r}e=e&&e.hasOwnProperty(\"default\")?e.default:e;var s=function(){function t(r){i(this,t)}return r(t,[{key:\"zero\",value:function(r){var t;if(0<r){t=\"0\";for(var e=1;e<r;e++)t+=t;return t}return\"\"}},{key:\"stringToArray\",value:function(r){for(var t=[],e=r.length,n=0;n<e;n++){var i=r.charCodeAt(n);if(19968<i&&i<40869){var s=i.toString(2),o=\"1110\",a=\"10\",u=\"10\",y=s.length;y<=6?(u=u+this.zero(6-y)+s,a+=this.zero(6),o+=this.zero(4)):6<y&&y<=12?(u+=s.slice(-6),a=a+this.zero(12-y)+s.substr(0,y-6),o+=this.zero(4)):(u+=s.slice(-6),a+=s.substr(y-12,6),o=o+this.zero(16-y)+s.substr(0,y-12)),t.push(parseInt(o,2),parseInt(a,2),parseInt(u,2))}else t.push(i)}return t}},{key:\"stringToArrayBufferInUtf8\",value:function(r){return this.stringToArray(r)}},{key:\"utf8ArrayBufferToString\",value:function(r){for(var t=\"\",e=r.length,n=0;n<e;){var i,s=parseInt(r[n]).toString(2);if(1==s.substr(0,1)&&8==s.length){var o=parseInt(r[n]).toString(2).substr(4),a=parseInt(r[n+1]).toString(2).substr(2),u=parseInt(r[n+2]).toString(2).substr(2),y=parseInt(o+a+u,2);i=String.fromCharCode(y),n+=3}else i=String.fromCharCode(parseInt(s,2)),n++;t+=i}return t}},{key:\"arrayBufferToBase64\",value:function(r){return e.fromByteArray(r)}},{key:\"base64ToArrayBuffer\",value:function(r){return e.toByteArray(r)}}]),t}();Array.prototype.fill||Object.defineProperty(Array.prototype,\"fill\",{value:function(r,t,e){if(null==this)throw new TypeError(\"this is null or not defined\");for(var n=Object(this),i=n.length>>>0,s=t>>0,o=s<0?Math.max(i+s,0):Math.min(s,i),a=void 0===e?i:e>>0,u=a<0?Math.max(i+a,0):Math.min(a,i);o<u;)n[o]=r,o++;return n}});var l=16,t=new Uint8Array([214,144,233,254,204,225,61,183,22,182,20,194,40,251,44,5,43,103,154,118,42,190,4,195,170,68,19,38,73,134,6,153,156,66,80,244,145,239,152,122,51,84,11,67,237,207,172,98,228,179,28,169,201,8,232,149,128,223,148,250,117,143,63,166,71,7,167,252,243,115,23,186,131,89,60,25,230,133,79,168,104,107,129,178,113,100,218,139,248,235,15,75,112,86,157,53,30,36,14,94,99,88,209,162,37,34,124,59,1,33,120,135,212,0,70,87,159,211,39,82,76,54,2,231,160,196,200,158,234,191,138,210,64,199,56,181,163,247,242,206,249,97,21,161,224,174,93,164,155,52,26,85,173,147,50,48,245,140,177,227,29,246,226,46,130,102,202,96,192,41,35,171,13,83,78,111,213,219,55,69,222,253,142,47,3,255,106,114,109,108,91,81,141,27,175,146,187,221,188,127,17,217,92,65,31,16,90,216,10,193,49,136,165,205,123,189,45,116,208,18,184,229,180,176,137,105,151,74,12,150,119,126,101,185,241,9,197,110,198,132,24,240,125,236,58,220,77,32,121,238,95,62,215,203,57,72]);Uint8Array.prototype.fill=function(){Array.prototype.fill.apply(this,arguments)},Uint8Array.prototype.slice||(Uint8Array.prototype.slice=function(r){return new Uint8Array(this).subarray(r)});var o=new Uint32Array([462357,472066609,943670861,1415275113,1886879365,2358483617,2830087869,3301692121,3773296373,4228057617,404694573,876298825,1347903077,1819507329,2291111581,2762715833,3234320085,3705924337,4177462797,337322537,808926789,1280531041,1752135293,2223739545,2695343797,3166948049,3638552301,4110090761,269950501,741554753,1213159005,1684763257]),a=new Uint32Array([2746333894,1453994832,1736282519,2993693404]);return function(){function n(r){i(this,n),this.Crypt=new s;var t=this.Crypt.stringToArrayBufferInUtf8(r.key);if(16!==t.length)throw new Error(\"key should be a 16 bytes string\");this.key=t;var e=new Uint8Array(0);if(void 0!==r.iv&&null!==r.iv&&16!==(e=this.Crypt.stringToArrayBufferInUtf8(r.iv)).length)throw new Error(\"iv should be a 16 bytes string\");this.iv=e,0<=[this.mode=\"cbc\",\"ecb\"].indexOf(r.mode)&&(this.mode=r.mode),0<=[this.cipherType=\"base64\",\"text\"].indexOf(r.outType)&&(this.cipherType=r.outType),this.encryptRoundKeys=new Uint32Array(32),this.spawnEncryptRoundKeys(),Uint32Array.prototype.reverse=function(){Array.prototype.reverse.apply(this,arguments)},this.decryptRoundKeys=new Uint32Array(this.encryptRoundKeys),this.decryptRoundKeys.reverse()}return r(n,[{key:\"doBlockCrypt\",value:function(r,t){var e=new Uint32Array(36);e.set(r,0);for(var n=0;n<32;n++)e[n+4]=e[n]^this.tTransform1(e[n+1]^e[n+2]^e[n+3]^t[n]);var i=new Uint32Array(4);return i[0]=e[35],i[1]=e[34],i[2]=e[33],i[3]=e[32],i}},{key:\"spawnEncryptRoundKeys\",value:function(){var r=new Uint32Array(4);r[0]=this.key[0]<<24|this.key[1]<<16|this.key[2]<<8|this.key[3],r[1]=this.key[4]<<24|this.key[5]<<16|this.key[6]<<8|this.key[7],r[2]=this.key[8]<<24|this.key[9]<<16|this.key[10]<<8|this.key[11],r[3]=this.key[12]<<24|this.key[13]<<16|this.key[14]<<8|this.key[15];var t=new Uint32Array(36);t[0]=r[0]^a[0],t[1]=r[1]^a[1],t[2]=r[2]^a[2],t[3]=r[3]^a[3];for(var e=0;e<32;e++)t[e+4]=t[e]^this.tTransform2(t[e+1]^t[e+2]^t[e+3]^o[e]),this.encryptRoundKeys[e]=t[e+4]}},{key:\"rotateLeft\",value:function(r,t){return r<<t|r>>>32-t}},{key:\"linearTransform1\",value:function(r){return r^this.rotateLeft(r,2)^this.rotateLeft(r,10)^this.rotateLeft(r,18)^this.rotateLeft(r,24)}},{key:\"linearTransform2\",value:function(r){return r^this.rotateLeft(r,13)^this.rotateLeft(r,23)}},{key:\"tauTransform\",value:function(r){return t[r>>>24&255]<<24|t[r>>>16&255]<<16|t[r>>>8&255]<<8|t[255&r]}},{key:\"tTransform1\",value:function(r){var t=this.tauTransform(r);return this.linearTransform1(t)}},{key:\"tTransform2\",value:function(r){var t=this.tauTransform(r);return this.linearTransform2(t)}},{key:\"padding\",value:function(r){if(null===r)return null;var t=l-r.length%l,e=new Uint8Array(r.length+t);return e.set(r,0),e.fill(t,r.length),e}},{key:\"dePadding\",value:function(r){if(null===r)return null;var t=r[r.length-1];return r.slice(0,r.length-t)}},{key:\"uint8ToUint32Block\",value:function(r,t){void 0===t&&(t=0);var e=new Uint32Array(4);return e[0]=r[t]<<24|r[t+1]<<16|r[t+2]<<8|r[t+3],e[1]=r[t+4]<<24|r[t+5]<<16|r[t+6]<<8|r[t+7],e[2]=r[t+8]<<24|r[t+9]<<16|r[t+10]<<8|r[t+11],e[3]=r[t+12]<<24|r[t+13]<<16|r[t+14]<<8|r[t+15],e}},{key:\"encrypt\",value:function(r){var t=this.Crypt.stringToArrayBufferInUtf8(r),e=this.padding(t),n=e.length/l,i=new Uint8Array(e.length);if(\"cbc\"===this.mode){if(null===this.iv||16!==this.iv.length)throw new Error(\"iv error\");for(var s=this.uint8ToUint32Block(this.iv),o=0;o<n;o++){var a=o*l,u=this.uint8ToUint32Block(e,a);s[0]=s[0]^u[0],s[1]=s[1]^u[1],s[2]=s[2]^u[2],s[3]=s[3]^u[3],s=f=this.doBlockCrypt(s,this.encryptRoundKeys);for(var y=0;y<l;y++)i[a+y]=f[parseInt(y/4)]>>(3-y)%4*8&255}}else for(o=0;o<n;o++){a=o*l,u=this.uint8ToUint32Block(e,a);var f=this.doBlockCrypt(u,this.encryptRoundKeys);for(y=0;y<l;y++)i[a+y]=f[parseInt(y/4)]>>(3-y)%4*8&255}return\"base64\"===this.cipherType?this.Crypt.arrayBufferToBase64(i):this.Crypt.utf8ArrayBufferToString(i)}},{key:\"decrypt\",value:function(r){var t=new Uint8Array,e=(t=\"base64\"===this.cipherType?this.Crypt.base64ToArrayBuffer(r):this.Crypt.stringToArrayBufferInUtf8(r)).length/l,n=new Uint8Array(t.length);if(\"cbc\"===this.mode){if(null===this.iv||16!==this.iv.length)throw new Error(\"iv error\");for(var i=this.uint8ToUint32Block(this.iv),s=0;s<e;s++){var o=s*l,a=this.uint8ToUint32Block(t,o),u=this.doBlockCrypt(a,this.decryptRoundKeys);(f=new Uint32Array(4))[0]=i[0]^u[0],f[1]=i[1]^u[1],f[2]=i[2]^u[2],f[3]=i[3]^u[3],i=a;for(var y=0;y<l;y++)n[o+y]=f[parseInt(y/4)]>>(3-y)%4*8&255}}else for(s=0;s<e;s++){o=s*l,a=this.uint8ToUint32Block(t,o);var f=this.doBlockCrypt(a,this.decryptRoundKeys);for(y=0;y<l;y++)n[o+y]=f[parseInt(y/4)]>>(3-y)%4*8&255}var h=this.dePadding(n);return this.Crypt.utf8ArrayBufferToString(h)}}]),n}()});\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","<template>\r\n <div class=\"dicom-canvas\" ref=\"dicomElement\">\r\n <div oncontextmenu=\"return false\" @touchstart=\"mprLayoutSel(0)\" @mousedown=\"mprLayoutSel(0)\"\r\n :class=\"['canvas-relative', mprLayoutFlag == 0 ? 'canvas-outer-single' : mprLayoutFlag == 3 ? 'canvas-axial-outer' : '', mprLayoutSelndex == 0 ? 'canvas-item-sel' : '']\"\r\n v-show=\"mprLayoutFlag == 3 || mprLayoutFlag == 0\">\r\n <div ref=\"axialElement\" class=\"canvas-inner\"></div>\r\n <div class=\"viewport cloumn\">\r\n <div>WL: {{ viewportInfo[viewportId1].voi.windowWidth.toFixed(2) }}/{{\r\n viewportInfo[viewportId1].voi.windowCenter.toFixed(2) }}</div>\r\n <div>Zoom: {{ viewportInfo[viewportId1].zoom.toFixed(2) }}</div>\r\n <div>Im: {{ viewportInfo[viewportId1].imageIndex + 1 }}/{{ viewportInfo[viewportId1].numberOfSlices}}</div>\r\n </div>\r\n <div class=\"progress\" v-if=\"currentProgress < 100 && currentProgress > 0\">\r\n <span>{{ `progress: ${currentProgress}%` }}</span>\r\n </div>\r\n </div>\r\n\r\n <div oncontextmenu=\"return false\" @touchstart=\"mprLayoutSel(1)\" @mousedown=\"mprLayoutSel(1)\"\r\n :class=\"['canvas-relative', mprLayoutFlag == 1 ? 'canvas-outer-single' : mprLayoutFlag == 3 ? 'canvas-coronal-outer' : '', mprLayoutSelndex == 1 ? 'canvas-item-sel' : '']\"\r\n v-show=\"mprLayoutFlag == 3 || mprLayoutFlag == 1\">\r\n <div ref=\"coronalElement\" class=\"canvas-inner\"></div>\r\n <div class=\"viewport cloumn\">\r\n <div>WL: {{ viewportInfo[viewportId2].voi.windowWidth.toFixed(2) }}/{{\r\n viewportInfo[viewportId2].voi.windowCenter.toFixed(2) }}</div>\r\n <div>Zoom: {{ viewportInfo[viewportId2].zoom.toFixed(2) }}</div>\r\n <div>Im: {{ viewportInfo[viewportId2].imageIndex + 1 }}/{{ viewportInfo[viewportId2].numberOfSlices}}</div>\r\n </div>\r\n </div>\r\n\r\n <div oncontextmenu=\"return false\" @touchstart=\"mprLayoutSel(-1)\" @mousedown=\"mprLayoutSel(-1)\"\r\n :class=\"['canvas-relative', mprLayoutFlag == -1 ? 'canvas-outer-single' : mprLayoutFlag == 3 ? 'canvas-d3-outer' : '', mprLayoutSelndex == -1 ? 'canvas-item-sel' : '']\"\r\n v-show=\"mprLayoutFlag == 3 || mprLayoutFlag == -1\">\r\n <div ref=\"d3Element\" class=\"canvas-inner\"></div>\r\n <div class=\"viewport cloumn\">\r\n <div @click=\"surface2contour\">转换</div>\r\n </div>\r\n </div>\r\n\r\n <div oncontextmenu=\"return false\" @touchstart=\"mprLayoutSel(2)\" @mousedown=\"mprLayoutSel(2)\"\r\n :class=\"['canvas-relative', mprLayoutFlag == 2 ? 'canvas-outer-single' : mprLayoutFlag == 3 ? 'canvas-sagittal-outer' : '', mprLayoutSelndex == 2 ? 'canvas-item-sel' : '']\"\r\n v-show=\"mprLayoutFlag == 3 || mprLayoutFlag == 2\">\r\n <div ref=\"sagittalElement\" class=\"canvas-inner\"></div>\r\n <div class=\"viewport cloumn\">\r\n <div>WL: {{ viewportInfo[viewportId3].voi.windowWidth.toFixed(2) }}/{{\r\n viewportInfo[viewportId3].voi.windowCenter.toFixed(2) }}</div>\r\n <div>Zoom: {{ viewportInfo[viewportId3].zoom.toFixed(2) }}</div>\r\n <div>Im: {{ viewportInfo[viewportId3].imageIndex + 1 }}/{{ viewportInfo[viewportId3].numberOfSlices}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { ref, onMounted, onUnmounted, watch, reactive, nextTick } from 'vue';\r\nimport initDemo from '../cornerstone/initDemo';\r\nimport setCtTransferFunctionForVolumeActor from '../cornerstone/setCtTransferFunctionForVolumeActor';\r\nimport * as cornerstoneTools from '@cornerstonejs/tools';\r\nimport { cache, eventTarget, requestPoolManager, geometryLoader, CONSTANTS,\r\n Enums, volumeLoader, RenderingEngine, setVolumesForViewports, utilities } from '@cornerstonejs/core';\r\nconst { destroy, ToolGroupManager, Enums: csToolsEnums, SegmentationIntersectionTool, TrackballRotateTool, CrosshairsTool,\r\n StackScrollTool, PanTool, ZoomTool, segmentation } = cornerstoneTools;\r\nconst { MouseBindings } = csToolsEnums;\r\nconst { ViewportType, OrientationAxis, GeometryType } = Enums;\r\nconst { CAMERA_MODIFIED, VOLUME_NEW_IMAGE, VOI_MODIFIED, WEB_WORKER_PROGRESS } = Enums.Events;\r\nimport vtkActor from '@kitware/vtk.js/Rendering/Core/Actor';\r\nimport vtkMapper from '@kitware/vtk.js/Rendering/Core/Mapper';\r\nimport vtkSphereSource from '@kitware/vtk.js/Filters/Sources/SphereSource';\r\nimport { showconsole, toRawObject } from '@/common/js/util'\r\nexport default {\r\n name: 'DicomSegmentator',\r\n props: {\r\n imageIds: {\r\n type: Array,\r\n default: () => []\r\n },\r\n surfaceDatas: {\r\n type: Array,\r\n default: () => [] \r\n },\r\n labelDatas: {\r\n type: Array,\r\n default: () => []\r\n }\r\n },\r\n setup(props) {\r\n const viewportId1 = 'CT_AXIAL';\r\n const viewportId2 = 'CT_CORONAL';\r\n const viewportId3 = 'CT_SAGITTAL';\r\n const viewportIdD3 = 'CT_3d'\r\n const axialElement = ref();\r\n const coronalElement = ref();\r\n const d3Element = ref();\r\n const sagittalElement = ref();\r\n const viewportInfo = reactive({\r\n [viewportId1]: { imageIndex: 0, numberOfSlices: 0, voi: { windowWidth: 0, windowCenter: 0 }, zoom: 1 },\r\n [viewportId2]: { imageIndex: 0, numberOfSlices: 0, voi: { windowWidth: 0, windowCenter: 0 }, zoom: 1 },\r\n [viewportId3]: { imageIndex: 0, numberOfSlices: 0, voi: { windowWidth: 0, windowCenter: 0 }, zoom: 1 },\r\n }); // 视口属性\r\n let defaultRange = ref(null); // 默认窗宽窗位\r\n\r\n let initDemoFlag = ref(false); // 是否初始化demo \r\n let initDataFlag = ref(false) // 获取到初始化数据\r\n let initToolFlag = ref(false) // tool初始化是否完成\r\n let initSurfaceSegmentFlag = ref(false) // 是否加载surfaceDatas\r\n let initLabelSegmentFlag = ref(false) // 是否加载labelDatas\r\n let sphereCenterPoint = reactive(null); // 3d视口的球体中心点\r\n let sphereSource = reactive(null);\r\n let mprLayoutSelndex = ref(0);\r\n let mprLayoutFlag = ref(3);\r\n let currentProgress = ref(0);\r\n let renderingEngine = reactive(null);\r\n let toolGroup = reactive(null);\r\n let toolGroup3d = reactive(null);\r\n const volumeId = 'cornerstoneStreamingImageVolume:CT_VOLUME_ID'\r\n const toolGroupId = 'MY_TOOLGROUP_ID';\r\n const toolGroupId3d = 'MY_TOOLGROUP_ID_3d';\r\n const segmentationId = 'MY_SEGMENTATION_ID';\r\n\r\n watch(() => props.imageIds,\r\n async (newValue) => {\r\n const len = newValue.length\r\n if (len > 0 && initDemoFlag.value && !initDataFlag.value) {\r\n initDataFlag.value = true\r\n await showcornerstone(newValue);\r\n }\r\n }, { deep: true })\r\n \r\n watch(() => props.surfaceDatas,\r\n async (newValue) => {\r\n const len = newValue.length\r\n if (len > 0 && initToolFlag.value && !initSurfaceSegmentFlag.value) {\r\n initSurfaceSegmentFlag.value = true\r\n await renderSurfaceSegmentations(newValue)\r\n }\r\n }, { deep: true })\r\n\r\n watch(() => props.labelDatas,\r\n async (newValue) => {\r\n const len = newValue.length\r\n if (len > 0 && initToolFlag.value && !initLabelSegmentFlag.value) {\r\n initLabelSegmentFlag.value = true\r\n // await renderLabelSegmentations(newValue)\r\n }\r\n }, { deep: true })\r\n\r\n const addComponentTool = () => {\r\n cornerstoneTools.addTool(StackScrollTool)\r\n cornerstoneTools.addTool(PanTool);\r\n cornerstoneTools.addTool(ZoomTool);\r\n cornerstoneTools.addTool(SegmentationIntersectionTool);\r\n cornerstoneTools.addTool(TrackballRotateTool);\r\n cornerstoneTools.addTool(CrosshairsTool);\r\n }\r\n\r\n onMounted(async() => {\r\n addComponentTool()\r\n showconsole('onMounted...');\r\n\r\n await initDemo();\r\n cache.setMaxCacheSize(2 * 1024 * 1024 * 1024) // 设置最大缓存\r\n\r\n initDemoFlag.value = true\r\n\r\n const len = props.imageIds.length\r\n if (len > 0 && initDemoFlag.value && !initDataFlag.value) {\r\n initDataFlag.value = true\r\n await showcornerstone(props.imageIds);\r\n }\r\n })\r\n\r\n const viewportColors = reactive({\r\n [viewportId1]: 'rgb(200, 0, 0)',\r\n [viewportId2]: 'rgb(200, 200, 0)',\r\n [viewportId3]: 'rgb(0, 200, 0)',\r\n });\r\n\r\n const getReferenceLineColor = (viewportId) => {\r\n return viewportColors[viewportId];\r\n }\r\n\r\n const showcornerstone = async (imageIds) => {\r\n elementEventListener()\r\n showconsole(`start render data...`)\r\n // 设置最大请求\r\n requestPoolManager.setMaxSimultaneousRequests(Enums.RequestType.Prefetch, 10);\r\n\r\n const volume = await volumeLoader.createAndCacheVolume(volumeId, { imageIds });\r\n\r\n const renderingEngineId = 'myRenderingEngine';\r\n renderingEngine = new RenderingEngine(renderingEngineId);\r\n const viewportInput = [\r\n {\r\n viewportId: viewportId1,\r\n element: axialElement.value,\r\n type: ViewportType.ORTHOGRAPHIC,\r\n defaultOptions: {\r\n orientation: OrientationAxis.AXIAL,\r\n },\r\n },\r\n {\r\n viewportId: viewportId2,\r\n element: coronalElement.value,\r\n type: ViewportType.ORTHOGRAPHIC,\r\n defaultOptions: {\r\n orientation: OrientationAxis.CORONAL,\r\n },\r\n },\r\n {\r\n viewportId: viewportId3,\r\n element: sagittalElement.value,\r\n type: ViewportType.ORTHOGRAPHIC,\r\n defaultOptions: {\r\n orientation: OrientationAxis.SAGITTAL,\r\n },\r\n },\r\n {\r\n viewportId: viewportIdD3,\r\n element: d3Element.value,\r\n type: ViewportType.VOLUME_3D,\r\n defaultOptions: {\r\n orientation: OrientationAxis.CORONAL,\r\n },\r\n }\r\n ];\r\n renderingEngine.setViewports(viewportInput);\r\n\r\n await setVolumesForViewports(\r\n renderingEngine,\r\n [{\r\n volumeId,\r\n callback: setCtTransferFunctionForVolumeActor,\r\n }],\r\n [viewportId1, viewportId2, viewportId3, viewportIdD3]\r\n );\r\n\r\n const D3Actor = renderingEngine\r\n .getViewport(viewportIdD3)\r\n .getDefaultActor().actor;\r\n\r\n utilities.applyPreset(\r\n D3Actor,\r\n CONSTANTS.VIEWPORT_PRESETS.find((preset) => preset.name === 'CT-NONE')\r\n );\r\n\r\n const bounds = D3Actor.getBounds();\r\n sphereCenterPoint = [(bounds[0] + bounds[1]) / 2, (bounds[2] + bounds[3]) / 2, (bounds[4] + bounds[5]) / 2];\r\n showconsole(`3d视口中心点: ${sphereCenterPoint}`);\r\n\r\n if (\r\n !(window.use && \r\n typeof window.use === 'object' && \r\n Object.prototype.hasOwnProperty.call(window.use, 'dicomSegmentator') &&\r\n window.use.dicomNodeViewer === false)\r\n ) {\r\n volume.load();\r\n } else {\r\n showconsole('return...')\r\n return\r\n }\r\n\r\n // 添加工具\r\n toolGroup = ToolGroupManager.createToolGroup(toolGroupId);\r\n toolGroup.addViewport(viewportId1, renderingEngineId);\r\n toolGroup.addViewport(viewportId2, renderingEngineId);\r\n toolGroup.addViewport(viewportId3, renderingEngineId);\r\n toolGroup.addTool(StackScrollTool.toolName)\r\n toolGroup.setToolActive(StackScrollTool.toolName, {\r\n bindings: [{ mouseButton: MouseBindings.Secondary }],\r\n })\r\n toolGroup.addTool(PanTool.toolName)\r\n // toolGroup.setToolActive(PanTool.toolName, {\r\n // bindings: [{ mouseButton: MouseBindings.Auxiliary }],\r\n // })\r\n toolGroup.addTool(ZoomTool.toolName, {\r\n zoomToCenter: true,\r\n pan: false,\r\n pinchToZoom: false\r\n })\r\n toolGroup.setToolActive(ZoomTool.toolName, {\r\n bindings: [{ mouseButton: MouseBindings.Auxiliary }],\r\n })\r\n const isMobile = window.matchMedia('(any-pointer:coarse)').matches;\r\n toolGroup.addTool(CrosshairsTool.toolName, {\r\n referenceLinesCenterGapRadius: 12,\r\n getReferenceLineColor,\r\n getReferenceLineControllable: () => true,\r\n getReferenceLineDraggableRotatable: () => true,\r\n getReferenceLineSlabThicknessControlsOn: () => false,\r\n mobile: {\r\n enabled: isMobile,\r\n opacity: 1,\r\n handleRadius: 2,\r\n },\r\n });\r\n toolGroup.setToolActive(CrosshairsTool.toolName, {\r\n bindings: [{ mouseButton: MouseBindings.Primary }],\r\n });\r\n toolGroup.addTool(SegmentationIntersectionTool.toolName);\r\n toolGroup.setToolEnabled(SegmentationIntersectionTool.toolName);\r\n\r\n // 添加3d工具\r\n toolGroup3d = ToolGroupManager.createToolGroup(toolGroupId3d);\r\n toolGroup3d.addViewport(viewportIdD3, renderingEngineId);\r\n toolGroup3d.addTool(ZoomTool.toolName, {\r\n zoomToCenter: true,\r\n pan: false,\r\n pinchToZoom: false\r\n })\r\n toolGroup3d.setToolActive(ZoomTool.toolName, {\r\n bindings: [{ mouseButton: MouseBindings.Secondary }],\r\n })\r\n toolGroup3d.addTool(TrackballRotateTool.toolName, {\r\n configuration: { volumeId },\r\n });\r\n toolGroup3d.setToolActive(TrackballRotateTool.toolName, {\r\n bindings: [{ mouseButton: MouseBindings.Primary }],\r\n });\r\n\r\n // Render the image\r\n renderingEngine.renderViewports([viewportId1, viewportId2, viewportId3, viewportIdD3]);\r\n initToolFlag.value = true;\r\n showconsole(`finish render dcm data~`);\r\n\r\n // 在3D视口创建一个Point 用于和CrosshairsTool中心点同步\r\n updateCrosshairsPoints();\r\n\r\n const len = props.surfaceDatas.length\r\n if (len > 0 && initToolFlag.value && !initSurfaceSegmentFlag.value) {\r\n initSurfaceSegmentFlag.value = true\r\n await renderSurfaceSegmentations(props.surfaceDatas)\r\n }\r\n }\r\n\r\n const createAndCacheGeometry = (surface, index) => {\r\n const geometryId = surface.closedSurface.id;\r\n const segmentIndex = index + 1;\r\n geometryLoader.createAndCacheGeometry(geometryId, {\r\n type: Enums.GeometryType.SURFACE,\r\n geometryData: {\r\n points: surface.closedSurface.data.points,\r\n polys: surface.closedSurface.data.polys,\r\n id: surface.closedSurface.id,\r\n segmentIndex,\r\n frameOfReferenceUID: surface.closedSurface.frameOfReferenceUID,\r\n }\r\n })\r\n \r\n return [segmentIndex, geometryId];\r\n }\r\n\r\n const processGeometries = (surfaces) => {\r\n const newSurfaces = toRawObject(surfaces)\r\n return newSurfaces.reduce((acc, surface, index) => {\r\n const [segmentIndex, geometryId] = createAndCacheGeometry(surface, index);\r\n acc.set(segmentIndex, geometryId);\r\n return acc;\r\n }, new Map());\r\n }\r\n\r\n const createSphere = () => {\r\n if(!initToolFlag.value || !sphereCenterPoint) return \r\n showconsole(`在3d视口添加points`)\r\n \r\n sphereSource = vtkSphereSource.newInstance({\r\n center: sphereCenterPoint,\r\n radius: 5\r\n });\r\n const mapper = vtkMapper.newInstance();\r\n mapper.setInputConnection(sphereSource.getOutputPort());\r\n const actor = vtkActor.newInstance();\r\n actor.setMapper(mapper);\r\n actor.getProperty().setColor(1, 0, 0); // 设置颜色为红色\r\n\r\n const actorEntry = {\r\n actor,\r\n uid: 'spherePolyData'\r\n }\r\n\r\n if(renderingEngine) {\r\n const viewport = renderingEngine.getViewport(viewportIdD3)\r\n viewport.addActor(actorEntry);\r\n viewport.resetCamera();\r\n viewport.render();\r\n }\r\n }\r\n\r\n const updateCrosshairsPoints = () => {\r\n // 设置十字准线拖拽监听\r\n if(!toolGroup) return\r\n let tmp = toolGroup.getToolInstance(CrosshairsTool.toolName);\r\n if(!tmp) return\r\n tmp.setOnDragPointListener({\r\n callBack(points) {\r\n showconsole(points);\r\n if(!sphereSource) return\r\n sphereSource.setCenter(points.world);\r\n if(renderingEngine) {\r\n const viewport = renderingEngine.getViewport(viewportIdD3)\r\n viewport.render();\r\n }\r\n }\r\n })\r\n // 在3D视口上创建同步点\r\n createSphere();\r\n }\r\n\r\n const renderSurfaceSegmentations = async (surfaces) => {\r\n showconsole('start add segmentations~')\r\n const geometryIds = await processGeometries(surfaces)\r\n segmentation.addSegmentations([\r\n {\r\n segmentationId,\r\n representation: {\r\n type: csToolsEnums.SegmentationRepresentations.Surface,\r\n data: {\r\n geometryIds,\r\n }\r\n }\r\n }\r\n ])\r\n await segmentation.addSegmentationRepresentations(viewportIdD3, [\r\n {\r\n segmentationId,\r\n type: csToolsEnums.SegmentationRepresentations.Surface,\r\n }\r\n ])\r\n renderingEngine.renderViewports([viewportIdD3]);\r\n showconsole('end add segmentations~')\r\n }\r\n\r\n const surface2contour = async() => {\r\n showconsole('surface2contour...')\r\n await segmentation.addSegmentationRepresentations(viewportId1, [\r\n {\r\n segmentationId,\r\n type: csToolsEnums.SegmentationRepresentations.Labelmap,\r\n }\r\n ])\r\n await segmentation.addSegmentationRepresentations(viewportId2, [\r\n {\r\n segmentationId,\r\n type: csToolsEnums.SegmentationRepresentations.Labelmap,\r\n }\r\n ])\r\n await segmentation.addSegmentationRepresentations(viewportId3, [\r\n {\r\n segmentationId,\r\n type: csToolsEnums.SegmentationRepresentations.Labelmap,\r\n }\r\n ])\r\n renderingEngine.renderViewports([viewportId1, viewportId2, viewportId3]);\r\n }\r\n\r\n const elementEventListener = () => {\r\n window.addEventListener('resize', () => {\r\n resizeCanvas()\r\n })\r\n eventTarget.addEventListener(WEB_WORKER_PROGRESS, (evt) => {\r\n const { progress } = evt.detail;\r\n console.log(progress)\r\n })\r\n\r\n axialElement.value.addEventListener(CAMERA_MODIFIED, (() => {\r\n if (renderingEngine) {\r\n const viewport = renderingEngine.getViewport(viewportId1)\r\n if (viewport) {\r\n viewportInfo[viewportId1].zoom = viewport.getZoom()\r\n }\r\n }\r\n }));\r\n axialElement.value.addEventListener(VOI_MODIFIED, ((evt) => {\r\n const range = evt.detail.range\r\n if (defaultRange.value == null) {\r\n defaultRange.value = range\r\n }\r\n\r\n // 进行窗宽床位转换\r\n viewportInfo[viewportId1].voi = utilities.windowLevel.toWindowLevel(range.lower, range.upper)\r\n }))\r\n axialElement.value.addEventListener(VOLUME_NEW_IMAGE, ((evt) => {\r\n viewportInfo[viewportId1].imageIndex = evt.detail.imageIndex\r\n viewportInfo[viewportId1].numberOfSlices = evt.detail.numberOfSlices\r\n }));\r\n\r\n coronalElement.value.addEventListener(CAMERA_MODIFIED, (() => {\r\n if (renderingEngine) {\r\n const viewport = renderingEngine.getViewport(viewportId2)\r\n if (viewport) {\r\n viewportInfo[viewportId2].zoom = viewport.getZoom()\r\n }\r\n }\r\n }));\r\n coronalElement.value.addEventListener(VOI_MODIFIED, ((evt) => {\r\n const range = evt.detail.range\r\n viewportInfo[viewportId2].voi = utilities.windowLevel.toWindowLevel(range.lower, range.upper)\r\n }))\r\n coronalElement.value.addEventListener(VOLUME_NEW_IMAGE, ((evt) => {\r\n viewportInfo[viewportId2].imageIndex = evt.detail.imageIndex\r\n viewportInfo[viewportId2].numberOfSlices = evt.detail.numberOfSlices\r\n }));\r\n\r\n sagittalElement.value.addEventListener(CAMERA_MODIFIED, (() => {\r\n if (renderingEngine) {\r\n const viewport = renderingEngine.getViewport(viewportId3)\r\n if (viewport) {\r\n viewportInfo[viewportId3].zoom = viewport.getZoom()\r\n }\r\n }\r\n }));\r\n sagittalElement.value.addEventListener(VOI_MODIFIED, ((evt) => {\r\n const range = evt.detail.range\r\n viewportInfo[viewportId3].voi = utilities.windowLevel.toWindowLevel(range.lower, range.upper)\r\n }))\r\n sagittalElement.value.addEventListener(VOLUME_NEW_IMAGE, ((evt) => {\r\n viewportInfo[viewportId3].imageIndex = evt.detail.imageIndex\r\n viewportInfo[viewportId3].numberOfSlices = evt.detail.numberOfSlices\r\n }));\r\n }\r\n\r\n const resizeCanvas = () => {\r\n nextTick(() => {\r\n if (renderingEngine) {\r\n renderingEngine.resize(true, false)\r\n }\r\n })\r\n }\r\n\r\n onUnmounted(async() => {\r\n showconsole('onUnmounted...')\r\n destroy();\r\n if(renderingEngine) {\r\n renderingEngine = null;\r\n }\r\n eventTarget.reset();\r\n requestPoolManager.destroy();\r\n \r\n // 清除缓存\r\n cache.purgeCache();\r\n })\r\n\r\n const mprLayoutSel = (index) => {\r\n mprLayoutSelndex.value = index;\r\n }\r\n\r\n return {\r\n // 变量\r\n mprLayoutSelndex,\r\n mprLayoutFlag,\r\n currentProgress,\r\n viewportInfo,\r\n viewportId1,\r\n viewportId2,\r\n viewportId3,\r\n\r\n // 方法\r\n mprLayoutSel,\r\n surface2contour,\r\n\r\n // 控件\r\n axialElement,\r\n coronalElement,\r\n sagittalElement,\r\n d3Element,\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang='scss' scoped>\r\n.dicom-canvas {\r\n width: 100%;\r\n height: 100%;\r\n background: #000;\r\n\r\n box-sizing: border-box;\r\n border: 1PX solid #333;\r\n /*no*/\r\n border-radius: 3PX;\r\n /*no*/\r\n\r\n display: flex;\r\n flex-direction: column;\r\n flex-wrap: wrap; // 换行\r\n\r\n .viewport {\r\n position: absolute;\r\n top: 10PX;\r\n left: 15PX;\r\n color: white;\r\n font-size: 14PX;\r\n line-height: 18PX;\r\n user-select: none;\r\n }\r\n\r\n .canvas-outer-single {\r\n width: 100%;\r\n height: 100%;\r\n\r\n box-sizing: border-box;\r\n border: 1PX solid #333;\r\n /*no*/\r\n border-radius: 3PX;\r\n /*no*/\r\n }\r\n\r\n .canvas-axial-outer {\r\n width: 50%;\r\n height: 50%;\r\n\r\n box-sizing: border-box;\r\n border: 1PX solid #333;\r\n /*no*/\r\n border-radius: 3PX;\r\n /*no*/\r\n }\r\n\r\n .canvas-coronal-outer {\r\n width: 50%;\r\n height: 50%;\r\n\r\n box-sizing: border-box;\r\n border: 1PX solid #333;\r\n /*no*/\r\n border-radius: 3PX;\r\n /*no*/\r\n }\r\n\r\n .canvas-d3-outer {\r\n width: 50%;\r\n height: 50%;\r\n\r\n box-sizing: border-box;\r\n border: 1PX solid #333;\r\n /*no*/\r\n border-radius: 3PX;\r\n /*no*/\r\n }\r\n\r\n .canvas-sagittal-outer {\r\n width: 50%;\r\n height: 50%;\r\n\r\n box-sizing: border-box;\r\n border: 1PX solid #333;\r\n /*no*/\r\n border-radius: 3PX;\r\n /*no*/\r\n }\r\n\r\n .canvas-relative {\r\n position: relative;\r\n }\r\n\r\n .canvas-inner {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .canvas-item-sel {\r\n border: 1PX solid #2D72E5 !important;\r\n /*no*/\r\n border-radius: 3PX;\r\n /*no*/\r\n }\r\n\r\n .progress {\r\n position: absolute;\r\n right: 15PX;\r\n top: 12PX;\r\n font-size: 16PX;\r\n line-height: 18PX;\r\n color: white;\r\n user-select: none;\r\n }\r\n}\r\n</style>","export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-83.use[1]!../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./index.vue?vue&type=template&id=cbefda6e&scoped=true\"","import { utilities as csUtils } from '@cornerstonejs/core';\r\n\r\nconst scalingPerImageId = {};\r\n\r\nfunction addInstance(imageId, scalingMetaData) {\r\n const imageURI = csUtils.imageIdToURI(imageId);\r\n scalingPerImageId[imageURI] = scalingMetaData;\r\n}\r\n\r\nfunction get(type, imageId) {\r\n if (type === 'scalingModule') {\r\n const imageURI = csUtils.imageIdToURI(imageId);\r\n return scalingPerImageId[imageURI];\r\n }\r\n}\r\n\r\nexport default { addInstance, get };\r\n","import * as cornerstone from '@cornerstonejs/core';\r\nimport ptScalingMetaDataProvider from './ptScalingMetaDataProvider';\r\n\r\nconst { calibratedPixelSpacingMetadataProvider } = cornerstone.utilities;\r\n\r\nexport default function initProviders() {\r\n cornerstone.metaData.addProvider(\r\n ptScalingMetaDataProvider.get.bind(ptScalingMetaDataProvider),\r\n 10000\r\n );\r\n cornerstone.metaData.addProvider(\r\n calibratedPixelSpacingMetadataProvider.get.bind(\r\n calibratedPixelSpacingMetadataProvider\r\n ),\r\n 11000\r\n );\r\n}\r\n","import {\r\n volumeLoader,\r\n cornerstoneStreamingImageVolumeLoader,\r\n cornerstoneStreamingDynamicImageVolumeLoader,\r\n} from '@cornerstonejs/core';\r\n\r\nexport default function initVolumeLoader() {\r\n volumeLoader.registerUnknownVolumeLoader(\r\n cornerstoneStreamingImageVolumeLoader\r\n );\r\n volumeLoader.registerVolumeLoader(\r\n 'cornerstoneStreamingImageVolume',\r\n cornerstoneStreamingImageVolumeLoader\r\n );\r\n volumeLoader.registerVolumeLoader(\r\n 'cornerstoneStreamingDynamicImageVolume',\r\n cornerstoneStreamingDynamicImageVolumeLoader\r\n );\r\n}\r\n","import initProviders from './initProviders';\r\nimport initVolumeLoader from './initVolumeLoader';\r\nimport { init as csRenderInit } from '@cornerstonejs/core';\r\nimport { init as csToolsInit } from '@cornerstonejs/tools';\r\nimport * as cornerstone from '@cornerstonejs/core';\r\nimport * as cornerstoneTools from '@cornerstonejs/tools';\r\nimport cornerstoneDICOMImageLoader from '@cornerstonejs/dicom-image-loader';\r\nimport * as polySeg from '@cornerstonejs/polymorphic-segmentation';\r\n\r\nwindow.cornerstone = cornerstone;\r\nwindow.cornerstoneTools = cornerstoneTools;\r\n\r\nexport default async function initDemo(config) {\r\n initProviders();\r\n cornerstoneDICOMImageLoader.init();\r\n initVolumeLoader();\r\n await csRenderInit({\r\n // peerImport,\r\n ...(config?.core ? config.core : {}),\r\n });\r\n await csToolsInit({\r\n addons: {\r\n polySeg,\r\n }\r\n })\r\n}","const windowWidth = 400;\r\nconst windowCenter = 40;\r\n\r\nconst lower = windowCenter - windowWidth / 2.0;\r\nconst upper = windowCenter + windowWidth / 2.0;\r\n\r\nconst ctVoiRange = { lower, upper };\r\n\r\nexport default function setCtTransferFunctionForVolumeActor({ volumeActor }) {\r\n volumeActor\r\n .getProperty()\r\n .getRGBTransferFunction(0)\r\n .setMappingRange(lower, upper);\r\n}\r\n\r\nexport { ctVoiRange };\r\n","/**\n * Common utilities\n * @module glMatrix\n */\n// Configuration Constants\nexport var EPSILON = 0.000001;\nexport var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nexport var RANDOM = Math.random;\n/**\n * Sets the type of array used when creating new vectors and matrices\n *\n * @param {Float32ArrayConstructor | ArrayConstructor} type Array type, such as Float32Array or Array\n */\n\nexport function setMatrixArrayType(type) {\n ARRAY_TYPE = type;\n}\nvar degree = Math.PI / 180;\n/**\n * Convert Degree To Radian\n *\n * @param {Number} a Angle in Degrees\n */\n\nexport function toRadian(a) {\n return a * degree;\n}\n/**\n * Tests whether or not the arguments have approximately the same value, within an absolute\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\n * than or equal to 1.0, and a relative tolerance is used for larger values)\n *\n * @param {Number} a The first number to test.\n * @param {Number} b The second number to test.\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\n */\n\nexport function equals(a, b) {\n return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));\n}\nif (!Math.hypot) Math.hypot = function () {\n var y = 0,\n i = arguments.length;\n\n while (i--) {\n y += arguments[i] * arguments[i];\n }\n\n return Math.sqrt(y);\n};","import * as glMatrix from \"./common.js\";\n/**\n * 4x4 Matrix<br>Format: column-major, when typed out it looks like row-major<br>The matrices are being post multiplied.\n * @module mat4\n */\n\n/**\n * Creates a new identity mat4\n *\n * @returns {mat4} a new 4x4 matrix\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(16);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n }\n\n out[0] = 1;\n out[5] = 1;\n out[10] = 1;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a new mat4 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat4} a matrix to clone\n * @returns {mat4} a new 4x4 matrix\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Copy the values from one mat4 to another\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Create a new mat4 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} A new mat4\n */\n\nexport function fromValues(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\n * Set the components of a mat4 to the given values\n *\n * @param {mat4} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} out\n */\n\nexport function set(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\n * Set a mat4 to the identity matrix\n *\n * @param {mat4} out the receiving matrix\n * @returns {mat4} out\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Transpose the values of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a12 = a[6],\n a13 = a[7];\n var a23 = a[11];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a01;\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a02;\n out[9] = a12;\n out[11] = a[14];\n out[12] = a03;\n out[13] = a13;\n out[14] = a23;\n } else {\n out[0] = a[0];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a[1];\n out[5] = a[5];\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a[2];\n out[9] = a[6];\n out[10] = a[10];\n out[11] = a[14];\n out[12] = a[3];\n out[13] = a[7];\n out[14] = a[11];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\n * Inverts a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n}\n/**\n * Calculates the adjugate of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function adjoint(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n out[0] = a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22);\n out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));\n out[2] = a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12);\n out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));\n out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));\n out[5] = a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22);\n out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));\n out[7] = a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12);\n out[8] = a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21);\n out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));\n out[10] = a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11);\n out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));\n out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));\n out[13] = a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21);\n out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));\n out[15] = a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11);\n return out;\n}\n/**\n * Calculates the determinant of a mat4\n *\n * @param {ReadonlyMat4} a the source matrix\n * @returns {Number} determinant of a\n */\n\nexport function determinant(a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n}\n/**\n * Multiplies two mat4s\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15]; // Cache only the current line of the second matrix\n\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n}\n/**\n * Translate a mat4 by the given vector\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to translate\n * @param {ReadonlyVec3} v vector to translate by\n * @returns {mat4} out\n */\n\nexport function translate(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a03;\n out[4] = a10;\n out[5] = a11;\n out[6] = a12;\n out[7] = a13;\n out[8] = a20;\n out[9] = a21;\n out[10] = a22;\n out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n\n return out;\n}\n/**\n * Scales the mat4 by the dimensions in the given vec3 not using vectorization\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {ReadonlyVec3} v the vec3 to scale the matrix by\n * @returns {mat4} out\n **/\n\nexport function scale(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n out[0] = a[0] * x;\n out[1] = a[1] * x;\n out[2] = a[2] * x;\n out[3] = a[3] * x;\n out[4] = a[4] * y;\n out[5] = a[5] * y;\n out[6] = a[6] * y;\n out[7] = a[7] * y;\n out[8] = a[8] * z;\n out[9] = a[9] * z;\n out[10] = a[10] * z;\n out[11] = a[11] * z;\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Rotates a mat4 by the given angle around the given axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\n\nexport function rotate(out, a, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n var b00, b01, b02;\n var b10, b11, b12;\n var b20, b21, b22;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c;\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11]; // Construct the elements of the rotation matrix\n\n b00 = x * x * t + c;\n b01 = y * x * t + z * s;\n b02 = z * x * t - y * s;\n b10 = x * y * t - z * s;\n b11 = y * y * t + c;\n b12 = z * y * t + x * s;\n b20 = x * z * t + y * s;\n b21 = y * z * t - x * s;\n b22 = z * z * t + c; // Perform rotation-specific matrix multiplication\n\n out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the X axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateX(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[4] = a10 * c + a20 * s;\n out[5] = a11 * c + a21 * s;\n out[6] = a12 * c + a22 * s;\n out[7] = a13 * c + a23 * s;\n out[8] = a20 * c - a10 * s;\n out[9] = a21 * c - a11 * s;\n out[10] = a22 * c - a12 * s;\n out[11] = a23 * c - a13 * s;\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the Y axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateY(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the Z axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateZ(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c + a10 * s;\n out[1] = a01 * c + a11 * s;\n out[2] = a02 * c + a12 * s;\n out[3] = a03 * c + a13 * s;\n out[4] = a10 * c - a00 * s;\n out[5] = a11 * c - a01 * s;\n out[6] = a12 * c - a02 * s;\n out[7] = a13 * c - a03 * s;\n return out;\n}\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.scale(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Scaling vector\n * @returns {mat4} out\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = v[1];\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = v[2];\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a given angle around a given axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotate(dest, dest, rad, axis);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\n\nexport function fromRotation(out, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c; // Perform rotation-specific matrix multiplication\n\n out[0] = x * x * t + c;\n out[1] = y * x * t + z * s;\n out[2] = z * x * t - y * s;\n out[3] = 0;\n out[4] = x * y * t - z * s;\n out[5] = y * y * t + c;\n out[6] = z * y * t + x * s;\n out[7] = 0;\n out[8] = x * z * t + y * s;\n out[9] = y * z * t - x * s;\n out[10] = z * z * t + c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the X axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateX(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromXRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = c;\n out[6] = s;\n out[7] = 0;\n out[8] = 0;\n out[9] = -s;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the Y axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateY(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromYRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = 0;\n out[2] = -s;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = s;\n out[9] = 0;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the Z axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateZ(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromZRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = 0;\n out[4] = -s;\n out[5] = c;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation and vector translation\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslation(out, q, v) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - (yy + zz);\n out[1] = xy + wz;\n out[2] = xz - wy;\n out[3] = 0;\n out[4] = xy - wz;\n out[5] = 1 - (xx + zz);\n out[6] = yz + wx;\n out[7] = 0;\n out[8] = xz + wy;\n out[9] = yz - wx;\n out[10] = 1 - (xx + yy);\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a new mat4 from a dual quat.\n *\n * @param {mat4} out Matrix\n * @param {ReadonlyQuat2} a Dual Quaternion\n * @returns {mat4} mat4 receiving operation result\n */\n\nexport function fromQuat2(out, a) {\n var translation = new glMatrix.ARRAY_TYPE(3);\n var bx = -a[0],\n by = -a[1],\n bz = -a[2],\n bw = a[3],\n ax = a[4],\n ay = a[5],\n az = a[6],\n aw = a[7];\n var magnitude = bx * bx + by * by + bz * bz + bw * bw; //Only scale if it makes sense\n\n if (magnitude > 0) {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2 / magnitude;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2 / magnitude;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2 / magnitude;\n } else {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2;\n }\n\n fromRotationTranslation(out, a, translation);\n return out;\n}\n/**\n * Returns the translation vector component of a transformation\n * matrix. If a matrix is built with fromRotationTranslation,\n * the returned vector will be the same as the translation vector\n * originally supplied.\n * @param {vec3} out Vector to receive translation component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\n\nexport function getTranslation(out, mat) {\n out[0] = mat[12];\n out[1] = mat[13];\n out[2] = mat[14];\n return out;\n}\n/**\n * Returns the scaling factor component of a transformation\n * matrix. If a matrix is built with fromRotationTranslationScale\n * with a normalized Quaternion paramter, the returned vector will be\n * the same as the scaling vector\n * originally supplied.\n * @param {vec3} out Vector to receive scaling factor component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\n\nexport function getScaling(out, mat) {\n var m11 = mat[0];\n var m12 = mat[1];\n var m13 = mat[2];\n var m21 = mat[4];\n var m22 = mat[5];\n var m23 = mat[6];\n var m31 = mat[8];\n var m32 = mat[9];\n var m33 = mat[10];\n out[0] = Math.hypot(m11, m12, m13);\n out[1] = Math.hypot(m21, m22, m23);\n out[2] = Math.hypot(m31, m32, m33);\n return out;\n}\n/**\n * Returns a quaternion representing the rotational component\n * of a transformation matrix. If a matrix is built with\n * fromRotationTranslation, the returned quaternion will be the\n * same as the quaternion originally supplied.\n * @param {quat} out Quaternion to receive the rotation component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {quat} out\n */\n\nexport function getRotation(out, mat) {\n var scaling = new glMatrix.ARRAY_TYPE(3);\n getScaling(scaling, mat);\n var is1 = 1 / scaling[0];\n var is2 = 1 / scaling[1];\n var is3 = 1 / scaling[2];\n var sm11 = mat[0] * is1;\n var sm12 = mat[1] * is2;\n var sm13 = mat[2] * is3;\n var sm21 = mat[4] * is1;\n var sm22 = mat[5] * is2;\n var sm23 = mat[6] * is3;\n var sm31 = mat[8] * is1;\n var sm32 = mat[9] * is2;\n var sm33 = mat[10] * is3;\n var trace = sm11 + sm22 + sm33;\n var S = 0;\n\n if (trace > 0) {\n S = Math.sqrt(trace + 1.0) * 2;\n out[3] = 0.25 * S;\n out[0] = (sm23 - sm32) / S;\n out[1] = (sm31 - sm13) / S;\n out[2] = (sm12 - sm21) / S;\n } else if (sm11 > sm22 && sm11 > sm33) {\n S = Math.sqrt(1.0 + sm11 - sm22 - sm33) * 2;\n out[3] = (sm23 - sm32) / S;\n out[0] = 0.25 * S;\n out[1] = (sm12 + sm21) / S;\n out[2] = (sm31 + sm13) / S;\n } else if (sm22 > sm33) {\n S = Math.sqrt(1.0 + sm22 - sm11 - sm33) * 2;\n out[3] = (sm31 - sm13) / S;\n out[0] = (sm12 + sm21) / S;\n out[1] = 0.25 * S;\n out[2] = (sm23 + sm32) / S;\n } else {\n S = Math.sqrt(1.0 + sm33 - sm11 - sm22) * 2;\n out[3] = (sm12 - sm21) / S;\n out[0] = (sm31 + sm13) / S;\n out[1] = (sm23 + sm32) / S;\n out[2] = 0.25 * S;\n }\n\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n * mat4.scale(dest, scale)\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslationScale(out, q, v, s) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n out[0] = (1 - (yy + zz)) * sx;\n out[1] = (xy + wz) * sx;\n out[2] = (xz - wy) * sx;\n out[3] = 0;\n out[4] = (xy - wz) * sy;\n out[5] = (1 - (xx + zz)) * sy;\n out[6] = (yz + wx) * sy;\n out[7] = 0;\n out[8] = (xz + wy) * sz;\n out[9] = (yz - wx) * sz;\n out[10] = (1 - (xx + yy)) * sz;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * mat4.translate(dest, origin);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n * mat4.scale(dest, scale)\n * mat4.translate(dest, negativeOrigin);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @param {ReadonlyVec3} o The origin vector around which to scale and rotate\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslationScaleOrigin(out, q, v, s, o) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n var ox = o[0];\n var oy = o[1];\n var oz = o[2];\n var out0 = (1 - (yy + zz)) * sx;\n var out1 = (xy + wz) * sx;\n var out2 = (xz - wy) * sx;\n var out4 = (xy - wz) * sy;\n var out5 = (1 - (xx + zz)) * sy;\n var out6 = (yz + wx) * sy;\n var out8 = (xz + wy) * sz;\n var out9 = (yz - wx) * sz;\n var out10 = (1 - (xx + yy)) * sz;\n out[0] = out0;\n out[1] = out1;\n out[2] = out2;\n out[3] = 0;\n out[4] = out4;\n out[5] = out5;\n out[6] = out6;\n out[7] = 0;\n out[8] = out8;\n out[9] = out9;\n out[10] = out10;\n out[11] = 0;\n out[12] = v[0] + ox - (out0 * ox + out4 * oy + out8 * oz);\n out[13] = v[1] + oy - (out1 * ox + out5 * oy + out9 * oz);\n out[14] = v[2] + oz - (out2 * ox + out6 * oy + out10 * oz);\n out[15] = 1;\n return out;\n}\n/**\n * Calculates a 4x4 matrix from the given quaternion\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat4} out\n */\n\nexport function fromQuat(out, q) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Generates a frustum matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Number} left Left bound of the frustum\n * @param {Number} right Right bound of the frustum\n * @param {Number} bottom Bottom bound of the frustum\n * @param {Number} top Top bound of the frustum\n * @param {Number} near Near bound of the frustum\n * @param {Number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function frustum(out, left, right, bottom, top, near, far) {\n var rl = 1 / (right - left);\n var tb = 1 / (top - bottom);\n var nf = 1 / (near - far);\n out[0] = near * 2 * rl;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = near * 2 * tb;\n out[6] = 0;\n out[7] = 0;\n out[8] = (right + left) * rl;\n out[9] = (top + bottom) * tb;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = far * near * 2 * nf;\n out[15] = 0;\n return out;\n}\n/**\n * Generates a perspective projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\n\nexport function perspectiveNO(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = (far + near) * nf;\n out[14] = 2 * far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -2 * near;\n }\n\n return out;\n}\n/**\n * Alias for {@link mat4.perspectiveNO}\n * @function\n */\n\nexport var perspective = perspectiveNO;\n/**\n * Generates a perspective projection matrix suitable for WebGPU with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\n\nexport function perspectiveZO(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = far * nf;\n out[14] = far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -near;\n }\n\n return out;\n}\n/**\n * Generates a perspective projection matrix with the given field of view.\n * This is primarily useful for generating projection matrices to be used\n * with the still experiemental WebVR API.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Object} fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function perspectiveFromFieldOfView(out, fov, near, far) {\n var upTan = Math.tan(fov.upDegrees * Math.PI / 180.0);\n var downTan = Math.tan(fov.downDegrees * Math.PI / 180.0);\n var leftTan = Math.tan(fov.leftDegrees * Math.PI / 180.0);\n var rightTan = Math.tan(fov.rightDegrees * Math.PI / 180.0);\n var xScale = 2.0 / (leftTan + rightTan);\n var yScale = 2.0 / (upTan + downTan);\n out[0] = xScale;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n out[4] = 0.0;\n out[5] = yScale;\n out[6] = 0.0;\n out[7] = 0.0;\n out[8] = -((leftTan - rightTan) * xScale * 0.5);\n out[9] = (upTan - downTan) * yScale * 0.5;\n out[10] = far / (near - far);\n out[11] = -1.0;\n out[12] = 0.0;\n out[13] = 0.0;\n out[14] = far * near / (near - far);\n out[15] = 0.0;\n return out;\n}\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function orthoNO(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n}\n/**\n * Alias for {@link mat4.orthoNO}\n * @function\n */\n\nexport var ortho = orthoNO;\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function orthoZO(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = near * nf;\n out[15] = 1;\n return out;\n}\n/**\n * Generates a look-at matrix with the given eye position, focal point, and up axis.\n * If you want a matrix that actually makes an object look at another object, you should use targetTo instead.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nexport function lookAt(out, eye, center, up) {\n var x0, x1, x2, y0, y1, y2, z0, z1, z2, len;\n var eyex = eye[0];\n var eyey = eye[1];\n var eyez = eye[2];\n var upx = up[0];\n var upy = up[1];\n var upz = up[2];\n var centerx = center[0];\n var centery = center[1];\n var centerz = center[2];\n\n if (Math.abs(eyex - centerx) < glMatrix.EPSILON && Math.abs(eyey - centery) < glMatrix.EPSILON && Math.abs(eyez - centerz) < glMatrix.EPSILON) {\n return identity(out);\n }\n\n z0 = eyex - centerx;\n z1 = eyey - centery;\n z2 = eyez - centerz;\n len = 1 / Math.hypot(z0, z1, z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.hypot(x0, x1, x2);\n\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.hypot(y0, y1, y2);\n\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n\n out[0] = x0;\n out[1] = y0;\n out[2] = z0;\n out[3] = 0;\n out[4] = x1;\n out[5] = y1;\n out[6] = z1;\n out[7] = 0;\n out[8] = x2;\n out[9] = y2;\n out[10] = z2;\n out[11] = 0;\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n out[15] = 1;\n return out;\n}\n/**\n * Generates a matrix that makes something look at something else.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nexport function targetTo(out, eye, target, up) {\n var eyex = eye[0],\n eyey = eye[1],\n eyez = eye[2],\n upx = up[0],\n upy = up[1],\n upz = up[2];\n var z0 = eyex - target[0],\n z1 = eyey - target[1],\n z2 = eyez - target[2];\n var len = z0 * z0 + z1 * z1 + z2 * z2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n }\n\n var x0 = upy * z2 - upz * z1,\n x1 = upz * z0 - upx * z2,\n x2 = upx * z1 - upy * z0;\n len = x0 * x0 + x1 * x1 + x2 * x2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n out[0] = x0;\n out[1] = x1;\n out[2] = x2;\n out[3] = 0;\n out[4] = z1 * x2 - z2 * x1;\n out[5] = z2 * x0 - z0 * x2;\n out[6] = z0 * x1 - z1 * x0;\n out[7] = 0;\n out[8] = z0;\n out[9] = z1;\n out[10] = z2;\n out[11] = 0;\n out[12] = eyex;\n out[13] = eyey;\n out[14] = eyez;\n out[15] = 1;\n return out;\n}\n/**\n * Returns a string representation of a mat4\n *\n * @param {ReadonlyMat4} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\n\nexport function str(a) {\n return \"mat4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \", \" + a[9] + \", \" + a[10] + \", \" + a[11] + \", \" + a[12] + \", \" + a[13] + \", \" + a[14] + \", \" + a[15] + \")\";\n}\n/**\n * Returns Frobenius norm of a mat4\n *\n * @param {ReadonlyMat4} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]);\n}\n/**\n * Adds two mat4's\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n out[9] = a[9] + b[9];\n out[10] = a[10] + b[10];\n out[11] = a[11] + b[11];\n out[12] = a[12] + b[12];\n out[13] = a[13] + b[13];\n out[14] = a[14] + b[14];\n out[15] = a[15] + b[15];\n return out;\n}\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n out[9] = a[9] - b[9];\n out[10] = a[10] - b[10];\n out[11] = a[11] - b[11];\n out[12] = a[12] - b[12];\n out[13] = a[13] - b[13];\n out[14] = a[14] - b[14];\n out[15] = a[15] - b[15];\n return out;\n}\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat4} out\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n out[9] = a[9] * b;\n out[10] = a[10] * b;\n out[11] = a[11] * b;\n out[12] = a[12] * b;\n out[13] = a[13] * b;\n out[14] = a[14] * b;\n out[15] = a[15] * b;\n return out;\n}\n/**\n * Adds two mat4's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat4} out the receiving vector\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat4} out\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n out[9] = a[9] + b[9] * scale;\n out[10] = a[10] + b[10] * scale;\n out[11] = a[11] + b[11] * scale;\n out[12] = a[12] + b[12] * scale;\n out[13] = a[13] + b[13] * scale;\n out[14] = a[14] + b[14] * scale;\n out[15] = a[15] + b[15] * scale;\n return out;\n}\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8] && a[9] === b[9] && a[10] === b[10] && a[11] === b[11] && a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15];\n}\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7];\n var a8 = a[8],\n a9 = a[9],\n a10 = a[10],\n a11 = a[11];\n var a12 = a[12],\n a13 = a[13],\n a14 = a[14],\n a15 = a[15];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n var b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7];\n var b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11];\n var b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8)) && Math.abs(a9 - b9) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a9), Math.abs(b9)) && Math.abs(a10 - b10) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a10), Math.abs(b10)) && Math.abs(a11 - b11) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a11), Math.abs(b11)) && Math.abs(a12 - b12) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a12), Math.abs(b12)) && Math.abs(a13 - b13) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a13), Math.abs(b13)) && Math.abs(a14 - b14) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a14), Math.abs(b14)) && Math.abs(a15 - b15) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a15), Math.abs(b15));\n}\n/**\n * Alias for {@link mat4.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link mat4.subtract}\n * @function\n */\n\nexport var sub = subtract;","import * as glMatrix from \"./common.js\";\n/**\n * 3 Dimensional Vector\n * @module vec3\n */\n\n/**\n * Creates a new, empty vec3\n *\n * @returns {vec3} a new 3D vector\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(3);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n\n return out;\n}\n/**\n * Creates a new vec3 initialized with values from an existing vector\n *\n * @param {ReadonlyVec3} a vector to clone\n * @returns {vec3} a new 3D vector\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\n * Calculates the length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate length of\n * @returns {Number} length of a\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return Math.hypot(x, y, z);\n}\n/**\n * Creates a new vec3 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} a new 3D vector\n */\n\nexport function fromValues(x, y, z) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\n * Copy the values from one vec3 to another\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the source vector\n * @returns {vec3} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\n * Set the components of a vec3 to the given values\n *\n * @param {vec3} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} out\n */\n\nexport function set(out, x, y, z) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\n * Adds two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n}\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n}\n/**\n * Multiplies two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n return out;\n}\n/**\n * Divides two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n return out;\n}\n/**\n * Math.ceil the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to ceil\n * @returns {vec3} out\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n return out;\n}\n/**\n * Math.floor the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to floor\n * @returns {vec3} out\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n return out;\n}\n/**\n * Returns the minimum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n return out;\n}\n/**\n * Returns the maximum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n return out;\n}\n/**\n * Math.round the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to round\n * @returns {vec3} out\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n return out;\n}\n/**\n * Scales a vec3 by a scalar number\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec3} out\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n}\n/**\n * Adds two vec3's after scaling the second operand by a scalar value\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec3} out\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n return out;\n}\n/**\n * Calculates the euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} distance between a and b\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return Math.hypot(x, y, z);\n}\n/**\n * Calculates the squared euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} squared distance between a and b\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return x * x + y * y + z * z;\n}\n/**\n * Calculates the squared length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return x * x + y * y + z * z;\n}\n/**\n * Negates the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to negate\n * @returns {vec3} out\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n return out;\n}\n/**\n * Returns the inverse of the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to invert\n * @returns {vec3} out\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n return out;\n}\n/**\n * Normalize a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to normalize\n * @returns {vec3} out\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var len = x * x + y * y + z * z;\n\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n return out;\n}\n/**\n * Calculates the dot product of two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} dot product of a and b\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n/**\n * Computes the cross product of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function cross(out, a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2];\n var bx = b[0],\n by = b[1],\n bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n}\n/**\n * Performs a linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n return out;\n}\n/**\n * Performs a hermite interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function hermite(out, a, b, c, d, t) {\n var factorTimes2 = t * t;\n var factor1 = factorTimes2 * (2 * t - 3) + 1;\n var factor2 = factorTimes2 * (t - 2) + t;\n var factor3 = factorTimes2 * (t - 1);\n var factor4 = factorTimes2 * (3 - 2 * t);\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\n * Performs a bezier interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function bezier(out, a, b, c, d, t) {\n var inverseFactor = 1 - t;\n var inverseFactorTimesTwo = inverseFactor * inverseFactor;\n var factorTimes2 = t * t;\n var factor1 = inverseFactorTimesTwo * inverseFactor;\n var factor2 = 3 * t * inverseFactorTimesTwo;\n var factor3 = 3 * factorTimes2 * inverseFactor;\n var factor4 = factorTimes2 * t;\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec3} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\n * @returns {vec3} out\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n var z = glMatrix.RANDOM() * 2.0 - 1.0;\n var zScale = Math.sqrt(1.0 - z * z) * scale;\n out[0] = Math.cos(r) * zScale;\n out[1] = Math.sin(r) * zScale;\n out[2] = z * scale;\n return out;\n}\n/**\n * Transforms the vec3 with a mat4.\n * 4th vector component is implicitly '1'\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec3} out\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n}\n/**\n * Transforms the vec3 with a mat3.\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat3} m the 3x3 matrix to transform with\n * @returns {vec3} out\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n}\n/**\n * Transforms the vec3 with a quat\n * Can also be used for dual quaternions. (Multiply it with the real part)\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyQuat} q quaternion to transform with\n * @returns {vec3} out\n */\n\nexport function transformQuat(out, a, q) {\n // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3];\n var x = a[0],\n y = a[1],\n z = a[2]; // var qvec = [qx, qy, qz];\n // var uv = vec3.cross([], qvec, a);\n\n var uvx = qy * z - qz * y,\n uvy = qz * x - qx * z,\n uvz = qx * y - qy * x; // var uuv = vec3.cross([], qvec, uv);\n\n var uuvx = qy * uvz - qz * uvy,\n uuvy = qz * uvx - qx * uvz,\n uuvz = qx * uvy - qy * uvx; // vec3.scale(uv, uv, 2 * w);\n\n var w2 = qw * 2;\n uvx *= w2;\n uvy *= w2;\n uvz *= w2; // vec3.scale(uuv, uuv, 2);\n\n uuvx *= 2;\n uuvy *= 2;\n uuvz *= 2; // return vec3.add(out, a, vec3.add(out, uv, uuv));\n\n out[0] = x + uvx + uuvx;\n out[1] = y + uvy + uuvy;\n out[2] = z + uvz + uuvz;\n return out;\n}\n/**\n * Rotate a 3D vector around the x-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateX(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0];\n r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);\n r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Rotate a 3D vector around the y-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateY(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);\n r[1] = p[1];\n r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Rotate a 3D vector around the z-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateZ(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);\n r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);\n r[2] = p[2]; //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Get the angle between two 3D vectors\n * @param {ReadonlyVec3} a The first operand\n * @param {ReadonlyVec3} b The second operand\n * @returns {Number} The angle in radians\n */\n\nexport function angle(a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n bx = b[0],\n by = b[1],\n bz = b[2],\n mag1 = Math.sqrt(ax * ax + ay * ay + az * az),\n mag2 = Math.sqrt(bx * bx + by * by + bz * bz),\n mag = mag1 * mag2,\n cosine = mag && dot(a, b) / mag;\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\n * Set the components of a vec3 to zero\n *\n * @param {vec3} out the receiving vector\n * @returns {vec3} out\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n return out;\n}\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec3} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\n\nexport function str(a) {\n return \"vec3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \")\";\n}\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2));\n}\n/**\n * Alias for {@link vec3.subtract}\n * @function\n */\n\nexport var sub = subtract;\n/**\n * Alias for {@link vec3.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link vec3.divide}\n * @function\n */\n\nexport var div = divide;\n/**\n * Alias for {@link vec3.distance}\n * @function\n */\n\nexport var dist = distance;\n/**\n * Alias for {@link vec3.squaredDistance}\n * @function\n */\n\nexport var sqrDist = squaredDistance;\n/**\n * Alias for {@link vec3.length}\n * @function\n */\n\nexport var len = length;\n/**\n * Alias for {@link vec3.squaredLength}\n * @function\n */\n\nexport var sqrLen = squaredLength;\n/**\n * Perform some operation over an array of vec3s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 3;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n\n return a;\n };\n}();","import globalThisShim from 'globalthis';\n\nconst vtkGlobal = globalThisShim(); // returns native globalThis if compliant\n\nconst factoryMapping = {\n vtkObject: () => null\n};\nfunction vtk(obj) {\n if (obj === null || obj === undefined) {\n return obj;\n }\n if (obj.isA) {\n return obj;\n }\n if (!obj.vtkClass) {\n if (vtkGlobal.console && vtkGlobal.console.error) {\n vtkGlobal.console.error('Invalid VTK object');\n }\n return null;\n }\n const constructor = factoryMapping[obj.vtkClass];\n if (!constructor) {\n if (vtkGlobal.console && vtkGlobal.console.error) {\n vtkGlobal.console.error(`No vtk class found for Object of type ${obj.vtkClass}`);\n }\n return null;\n }\n\n // Shallow copy object\n const model = {\n ...obj\n };\n\n // Convert into vtkObject any nested key\n Object.keys(model).forEach(keyName => {\n if (model[keyName] && typeof model[keyName] === 'object' && model[keyName].vtkClass) {\n model[keyName] = vtk(model[keyName]);\n }\n });\n\n // Return the root\n const newInst = constructor(model);\n if (newInst && newInst.modified) {\n newInst.modified();\n }\n return newInst;\n}\nfunction register(vtkClassName, constructor) {\n factoryMapping[vtkClassName] = constructor;\n}\n\n// Nest register method under the vtk function\nvtk.register = register;\n\nexport { vtk as default, vtkGlobal };\n","/* eslint-disable prefer-rest-params */\nclass ClassHierarchy extends Array {\n push() {\n for (let i = 0; i < arguments.length; i++) {\n if (!this.includes(arguments[i])) {\n super.push(arguments[i]);\n }\n }\n return this.length;\n }\n}\n\nexport { ClassHierarchy as default };\n","import DeepEqual from 'fast-deep-equal';\nimport vtk, { vtkGlobal } from './vtk.js';\nimport ClassHierarchy from './Common/Core/ClassHierarchy.js';\n\n/**\n * macros.js is the old macro.js.\n * The name change is so we do not get eaten by babel-plugin-macros.\n */\nlet globalMTime = 0;\nconst VOID = Symbol('void');\nfunction getCurrentGlobalMTime() {\n return globalMTime;\n}\n\n// ----------------------------------------------------------------------------\n// Logging function calls\n// ----------------------------------------------------------------------------\n/* eslint-disable no-prototype-builtins */\n\nconst fakeConsole = {};\nfunction noOp() {}\nconst consoleMethods = ['log', 'debug', 'info', 'warn', 'error', 'time', 'timeEnd', 'group', 'groupEnd'];\nconsoleMethods.forEach(methodName => {\n fakeConsole[methodName] = noOp;\n});\nvtkGlobal.console = console.hasOwnProperty('log') ? console : fakeConsole;\nconst loggerFunctions = {\n debug: noOp,\n // Don't print debug by default\n error: vtkGlobal.console.error || noOp,\n info: vtkGlobal.console.info || noOp,\n log: vtkGlobal.console.log || noOp,\n warn: vtkGlobal.console.warn || noOp\n};\nfunction setLoggerFunction(name, fn) {\n if (loggerFunctions[name]) {\n loggerFunctions[name] = fn || noOp;\n }\n}\nfunction vtkLogMacro() {\n loggerFunctions.log(...arguments);\n}\nfunction vtkInfoMacro() {\n loggerFunctions.info(...arguments);\n}\nfunction vtkDebugMacro() {\n loggerFunctions.debug(...arguments);\n}\nfunction vtkErrorMacro() {\n loggerFunctions.error(...arguments);\n}\nfunction vtkWarningMacro() {\n loggerFunctions.warn(...arguments);\n}\nconst ERROR_ONCE_MAP = {};\nfunction vtkOnceErrorMacro(str) {\n if (!ERROR_ONCE_MAP[str]) {\n loggerFunctions.error(str);\n ERROR_ONCE_MAP[str] = true;\n }\n}\n\n// ----------------------------------------------------------------------------\n// TypedArray\n// ----------------------------------------------------------------------------\n\nconst TYPED_ARRAYS = Object.create(null);\nTYPED_ARRAYS.Float32Array = Float32Array;\nTYPED_ARRAYS.Float64Array = Float64Array;\nTYPED_ARRAYS.Uint8Array = Uint8Array;\nTYPED_ARRAYS.Int8Array = Int8Array;\nTYPED_ARRAYS.Uint16Array = Uint16Array;\nTYPED_ARRAYS.Int16Array = Int16Array;\nTYPED_ARRAYS.Uint32Array = Uint32Array;\nTYPED_ARRAYS.Int32Array = Int32Array;\nTYPED_ARRAYS.Uint8ClampedArray = Uint8ClampedArray;\ntry {\n TYPED_ARRAYS.BigInt64Array = BigInt64Array;\n TYPED_ARRAYS.BigUint64Array = BigUint64Array;\n} catch {\n // ignore\n}\nfunction newTypedArray(type) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return new (TYPED_ARRAYS[type] || Float64Array)(...args);\n}\nfunction newTypedArrayFrom(type) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n return (TYPED_ARRAYS[type] || Float64Array).from(...args);\n}\n\n// ----------------------------------------------------------------------------\n// capitilize provided string\n// ----------------------------------------------------------------------------\n\nfunction capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nfunction _capitalize(str) {\n return capitalize(str[0] === '_' ? str.slice(1) : str);\n}\nfunction uncapitalize(str) {\n return str.charAt(0).toLowerCase() + str.slice(1);\n}\n\n// ----------------------------------------------------------------------------\n// Convert byte size into a well formatted string\n// ----------------------------------------------------------------------------\n\nfunction formatBytesToProperUnit(size) {\n let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n let chunkSize = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000;\n const units = ['TB', 'GB', 'MB', 'KB'];\n let value = Number(size);\n let currentUnit = 'B';\n while (value > chunkSize) {\n value /= chunkSize;\n currentUnit = units.pop();\n }\n return `${value.toFixed(precision)} ${currentUnit}`;\n}\n\n// ----------------------------------------------------------------------------\n// Convert thousand number with proper separator\n// ----------------------------------------------------------------------------\n\nfunction formatNumbersWithThousandSeparator(n) {\n let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ' ';\n const sections = [];\n let size = n;\n while (size > 1000) {\n sections.push(`000${size % 1000}`.slice(-3));\n size = Math.floor(size / 1000);\n }\n if (size > 0) {\n sections.push(size);\n }\n sections.reverse();\n return sections.join(separator);\n}\n\n// ----------------------------------------------------------------------------\n// Array helper\n// ----------------------------------------------------------------------------\n\nfunction safeArrays(model) {\n Object.keys(model).forEach(key => {\n if (Array.isArray(model[key])) {\n model[key] = [].concat(model[key]);\n }\n });\n}\nfunction isTypedArray(value) {\n return Object.values(TYPED_ARRAYS).some(ctor => value instanceof ctor);\n}\n\n// ----------------------------------------------------------------------------\n// shallow equals\n// ----------------------------------------------------------------------------\n\nfunction shallowEquals(a, b) {\n if (a === b) {\n return true;\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n\n// ----------------------------------------------------------------------------\n\nfunction enumToString(e, value) {\n return Object.keys(e).find(key => e[key] === value);\n}\nfunction getStateArrayMapFunc(item) {\n if (item && item.isA) {\n return item.getState();\n }\n return item;\n}\n\n// ----------------------------------------------------------------------------\n// setImmediate\n// ----------------------------------------------------------------------------\n\nfunction setImmediateVTK(fn) {\n setTimeout(fn, 0);\n}\n\n// ----------------------------------------------------------------------------\n// measurePromiseExecution\n//\n// Measures the time it takes for a promise to finish from\n// the time this function is invoked.\n// The callback receives the time it took for the promise to resolve or reject.\n// ----------------------------------------------------------------------------\n\nfunction measurePromiseExecution(promise, callback) {\n const start = performance.now();\n promise.finally(() => {\n const delta = performance.now() - start;\n callback(delta);\n });\n}\n\n// ----------------------------------------------------------------------------\n// vtkObject: modified(), onModified(callback), delete()\n// ----------------------------------------------------------------------------\n\nfunction obj() {\n let publicAPI = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let model = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Ensure each instance as a unique ref of array\n safeArrays(model);\n const callbacks = [];\n if (!Number.isInteger(model.mtime)) {\n model.mtime = ++globalMTime;\n }\n if (!('classHierarchy' in model)) {\n model.classHierarchy = new ClassHierarchy('vtkObject');\n } else if (!(model.classHierarchy instanceof ClassHierarchy)) {\n const hierarchy = new ClassHierarchy();\n for (let i = 0; i < model.classHierarchy.length; i++) {\n hierarchy.push(model.classHierarchy[i]);\n }\n model.classHierarchy = hierarchy;\n }\n function off(index) {\n callbacks[index] = null;\n }\n function on(index) {\n function unsubscribe() {\n off(index);\n }\n return Object.freeze({\n unsubscribe\n });\n }\n publicAPI.isDeleted = () => !!model.deleted;\n publicAPI.modified = otherMTime => {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return;\n }\n if (otherMTime && otherMTime < publicAPI.getMTime()) {\n return;\n }\n model.mtime = ++globalMTime;\n callbacks.forEach(callback => callback && callback(publicAPI));\n };\n publicAPI.onModified = callback => {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return null;\n }\n const index = callbacks.length;\n callbacks.push(callback);\n return on(index);\n };\n publicAPI.getMTime = () => model.mtime;\n publicAPI.isA = className => {\n let count = model.classHierarchy.length;\n // we go backwards as that is more likely for\n // early termination\n while (count--) {\n if (model.classHierarchy[count] === className) {\n return true;\n }\n }\n return false;\n };\n publicAPI.getClassName = function () {\n let depth = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return model.classHierarchy[model.classHierarchy.length - 1 - depth];\n };\n publicAPI.set = function () {\n let map = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let noWarning = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n let noFunction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n let ret = false;\n Object.keys(map).forEach(name => {\n const fn = noFunction ? null : publicAPI[`set${capitalize(name)}`];\n if (fn && Array.isArray(map[name]) && fn.length > 1) {\n ret = fn(...map[name]) || ret;\n } else if (fn) {\n ret = fn(map[name]) || ret;\n } else {\n // Set data on model directly\n if (['mtime'].indexOf(name) === -1 && !noWarning) {\n vtkWarningMacro(`Warning: Set value to model directly ${name}, ${map[name]}`);\n }\n ret = model[name] !== map[name] || ret;\n model[name] = map[name];\n }\n });\n return ret;\n };\n publicAPI.get = function () {\n for (var _len3 = arguments.length, list = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n list[_key3] = arguments[_key3];\n }\n if (!list.length) {\n return model;\n }\n const subset = {};\n list.forEach(name => {\n subset[name] = model[name];\n });\n return subset;\n };\n publicAPI.getReferenceByName = val => model[val];\n publicAPI.delete = () => {\n Object.keys(model).forEach(field => delete model[field]);\n callbacks.forEach((el, index) => off(index));\n\n // Flag the instance being deleted\n model.deleted = true;\n };\n\n // Add serialization support\n publicAPI.getState = () => {\n if (model.deleted) {\n return null;\n }\n const jsonArchive = {\n ...model,\n vtkClass: publicAPI.getClassName()\n };\n\n // Convert every vtkObject to its serializable form\n Object.keys(jsonArchive).forEach(keyName => {\n if (jsonArchive[keyName] === null || jsonArchive[keyName] === undefined || keyName[0] === '_' // protected members start with _\n ) {\n delete jsonArchive[keyName];\n } else if (jsonArchive[keyName].isA) {\n jsonArchive[keyName] = jsonArchive[keyName].getState();\n } else if (Array.isArray(jsonArchive[keyName])) {\n jsonArchive[keyName] = jsonArchive[keyName].map(getStateArrayMapFunc);\n } else if (isTypedArray(jsonArchive[keyName])) {\n jsonArchive[keyName] = Array.from(jsonArchive[keyName]);\n }\n });\n\n // Sort resulting object by key name\n const sortedObj = {};\n Object.keys(jsonArchive).sort().forEach(name => {\n sortedObj[name] = jsonArchive[name];\n });\n\n // Remove mtime\n if (sortedObj.mtime) {\n delete sortedObj.mtime;\n }\n return sortedObj;\n };\n\n // Add shallowCopy(otherInstance) support\n publicAPI.shallowCopy = function (other) {\n let debug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (other.getClassName() !== publicAPI.getClassName()) {\n throw new Error(`Cannot ShallowCopy ${other.getClassName()} into ${publicAPI.getClassName()}`);\n }\n const otherModel = other.get();\n const keyList = Object.keys(model).sort();\n const otherKeyList = Object.keys(otherModel).sort();\n otherKeyList.forEach(key => {\n const keyIdx = keyList.indexOf(key);\n if (keyIdx === -1) {\n if (debug) {\n vtkDebugMacro(`add ${key} in shallowCopy`);\n }\n } else {\n keyList.splice(keyIdx, 1);\n }\n model[key] = otherModel[key];\n });\n if (keyList.length && debug) {\n vtkDebugMacro(`Untouched keys: ${keyList.join(', ')}`);\n }\n publicAPI.modified();\n };\n\n // This function will get called when one invoke JSON.stringify(vtkObject)\n // JSON.stringify will only stringify the return value of this function\n publicAPI.toJSON = function vtkObjToJSON() {\n return publicAPI.getState();\n };\n\n // Allow usage as decorator\n return publicAPI;\n}\n\n// ----------------------------------------------------------------------------\n// getXXX: add getters\n// ----------------------------------------------------------------------------\n\nconst objectGetterMap = {\n object(publicAPI, model, field) {\n return function getter() {\n return {\n ...model[field.name]\n };\n };\n }\n};\nfunction get(publicAPI, model, fieldNames) {\n fieldNames.forEach(field => {\n if (typeof field === 'object') {\n const getter = objectGetterMap[field.type];\n if (getter) {\n publicAPI[`get${_capitalize(field.name)}`] = getter(publicAPI, model, field);\n } else {\n publicAPI[`get${_capitalize(field.name)}`] = () => model[field.name];\n }\n } else {\n publicAPI[`get${_capitalize(field)}`] = () => model[field];\n }\n });\n}\n\n// ----------------------------------------------------------------------------\n// setXXX: add setters\n// ----------------------------------------------------------------------------\n\nconst objectSetterMap = {\n enum(publicAPI, model, field) {\n const onChanged = `_on${_capitalize(field.name)}Changed`;\n return value => {\n if (typeof value === 'string') {\n if (field.enum[value] !== undefined) {\n if (model[field.name] !== field.enum[value]) {\n model[field.name] = field.enum[value];\n publicAPI.modified();\n return true;\n }\n return false;\n }\n vtkErrorMacro(`Set Enum with invalid argument ${field}, ${value}`);\n throw new RangeError('Set Enum with invalid string argument');\n }\n if (typeof value === 'number') {\n if (model[field.name] !== value) {\n if (Object.keys(field.enum).map(key => field.enum[key]).indexOf(value) !== -1) {\n const previousValue = model[field.name];\n model[field.name] = value;\n model[onChanged]?.(publicAPI, model, value, previousValue);\n publicAPI.modified();\n return true;\n }\n vtkErrorMacro(`Set Enum outside numeric range ${field}, ${value}`);\n throw new RangeError('Set Enum outside numeric range');\n }\n return false;\n }\n vtkErrorMacro(`Set Enum with invalid argument (String/Number) ${field}, ${value}`);\n throw new TypeError('Set Enum with invalid argument (String/Number)');\n };\n },\n object(publicAPI, model, field) {\n if (field.params?.length === 1) {\n vtkWarningMacro('Setter of type \"object\" with a single \"param\" field is not supported');\n }\n const onChanged = `_on${_capitalize(field.name)}Changed`;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n let value;\n if (args.length > 1 && field.params?.length) {\n value = field.params.reduce((acc, prop, idx) => Object.assign(acc, {\n [prop]: args[idx]\n }), {});\n } else {\n value = args[0];\n }\n if (!DeepEqual(model[field.name], value)) {\n const previousValue = model[field.name];\n model[field.name] = value;\n model[onChanged]?.(publicAPI, model, value, previousValue);\n publicAPI.modified();\n return true;\n }\n return false;\n };\n }\n};\nfunction findSetter(field) {\n if (typeof field === 'object') {\n const fn = objectSetterMap[field.type];\n if (fn) {\n return (publicAPI, model) => fn(publicAPI, model, field);\n }\n vtkErrorMacro(`No setter for field ${field}`);\n throw new TypeError('No setter for field');\n }\n return function getSetter(publicAPI, model) {\n const onChanged = `_on${_capitalize(field)}Changed`;\n return function setter(value) {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return false;\n }\n if (model[field] !== value) {\n const previousValue = model[field.name];\n model[field] = value;\n model[onChanged]?.(publicAPI, model, value, previousValue);\n publicAPI.modified();\n return true;\n }\n return false;\n };\n };\n}\nfunction set(publicAPI, model, fields) {\n fields.forEach(field => {\n if (typeof field === 'object') {\n publicAPI[`set${_capitalize(field.name)}`] = findSetter(field)(publicAPI, model);\n } else {\n publicAPI[`set${_capitalize(field)}`] = findSetter(field)(publicAPI, model);\n }\n });\n}\n\n// ----------------------------------------------------------------------------\n// set/get XXX: add both setters and getters\n// ----------------------------------------------------------------------------\n\nfunction setGet(publicAPI, model, fieldNames) {\n get(publicAPI, model, fieldNames);\n set(publicAPI, model, fieldNames);\n}\n\n// ----------------------------------------------------------------------------\n// getXXX: add getters for object of type array with copy to be safe\n// getXXXByReference: add getters for object of type array without copy\n// ----------------------------------------------------------------------------\n\nfunction getArray(publicAPI, model, fieldNames) {\n fieldNames.forEach(field => {\n publicAPI[`get${_capitalize(field)}`] = () => model[field] ? Array.from(model[field]) : model[field];\n publicAPI[`get${_capitalize(field)}ByReference`] = () => model[field];\n });\n}\n\n// ----------------------------------------------------------------------------\n// setXXX: add setter for object of type array\n// if 'defaultVal' is supplied, shorter arrays will be padded to 'size' with 'defaultVal'\n// set...From: fast path to copy the content of an array to the current one without call to modified.\n// ----------------------------------------------------------------------------\n\nfunction setArray(publicAPI, model, fieldNames, size) {\n let defaultVal = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;\n fieldNames.forEach(field => {\n if (model[field] && size && model[field].length !== size) {\n throw new RangeError(`Invalid initial number of values for array (${field})`);\n }\n const onChanged = `_on${_capitalize(field)}Changed`;\n publicAPI[`set${_capitalize(field)}`] = function () {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return false;\n }\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n let array = args;\n let changeDetected;\n let needCopy = false;\n // allow null or an array to be passed as a single arg.\n if (array.length === 1 && (array[0] == null || array[0].length >= 0)) {\n /* eslint-disable prefer-destructuring */\n array = array[0];\n /* eslint-enable prefer-destructuring */\n needCopy = true;\n }\n if (array == null) {\n changeDetected = model[field] !== array;\n } else {\n if (size && array.length !== size) {\n if (array.length < size && defaultVal !== undefined) {\n array = Array.from(array);\n needCopy = false;\n while (array.length < size) array.push(defaultVal);\n } else {\n throw new RangeError(`Invalid number of values for array setter (${field})`);\n }\n }\n changeDetected = model[field] == null || model[field].length !== array.length;\n for (let i = 0; !changeDetected && i < array.length; ++i) {\n changeDetected = model[field][i] !== array[i];\n }\n if (changeDetected && needCopy) {\n array = Array.from(array);\n }\n }\n if (changeDetected) {\n const previousValue = model[field.name];\n model[field] = array;\n model[onChanged]?.(publicAPI, model, array, previousValue);\n publicAPI.modified();\n }\n return changeDetected;\n };\n publicAPI[`set${_capitalize(field)}From`] = otherArray => {\n const target = model[field];\n otherArray.forEach((v, i) => {\n target[i] = v;\n });\n };\n });\n}\n\n// ----------------------------------------------------------------------------\n// set/get XXX: add setter and getter for object of type array\n// ----------------------------------------------------------------------------\n\nfunction setGetArray(publicAPI, model, fieldNames, size) {\n let defaultVal = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;\n getArray(publicAPI, model, fieldNames);\n setArray(publicAPI, model, fieldNames, size, defaultVal);\n}\nfunction moveToProtected(publicAPI, model, fieldNames) {\n for (let i = 0; i < fieldNames.length; i++) {\n const fieldName = fieldNames[i];\n if (model[fieldName] !== undefined) {\n model[`_${fieldName}`] = model[fieldName];\n delete model[fieldName];\n }\n }\n}\n// ----------------------------------------------------------------------------\n// vtkAlgorithm: setInputData(), setInputConnection(), getOutputData(), getOutputPort()\n// ----------------------------------------------------------------------------\n\nfunction algo(publicAPI, model, numberOfInputs, numberOfOutputs) {\n if (model.inputData) {\n model.inputData = model.inputData.map(vtk);\n } else {\n model.inputData = [];\n }\n if (model.inputConnection) {\n model.inputConnection = model.inputConnection.map(vtk);\n } else {\n model.inputConnection = [];\n }\n if (model.output) {\n model.output = model.output.map(vtk);\n } else {\n model.output = [];\n }\n if (model.inputArrayToProcess) {\n model.inputArrayToProcess = model.inputArrayToProcess.map(vtk);\n } else {\n model.inputArrayToProcess = [];\n }\n\n // Cache the argument for later manipulation\n model.numberOfInputs = numberOfInputs;\n\n // Methods\n function setInputData(dataset) {\n let port = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return;\n }\n if (port >= model.numberOfInputs) {\n vtkErrorMacro(`algorithm ${publicAPI.getClassName()} only has ${model.numberOfInputs} input ports. To add more input ports, use addInputData()`);\n return;\n }\n if (model.inputData[port] !== dataset || model.inputConnection[port]) {\n model.inputData[port] = dataset;\n model.inputConnection[port] = null;\n if (publicAPI.modified) {\n publicAPI.modified();\n }\n }\n }\n function getInputData() {\n let port = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n if (model.inputConnection[port]) {\n model.inputData[port] = model.inputConnection[port]();\n }\n return model.inputData[port];\n }\n function setInputConnection(outputPort) {\n let port = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return;\n }\n if (port >= model.numberOfInputs) {\n let msg = `algorithm ${publicAPI.getClassName()} only has `;\n msg += `${model.numberOfInputs}`;\n msg += ' input ports. To add more input ports, use addInputConnection()';\n vtkErrorMacro(msg);\n return;\n }\n model.inputData[port] = null;\n model.inputConnection[port] = outputPort;\n }\n function getInputConnection() {\n let port = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return model.inputConnection[port];\n }\n function getPortToFill() {\n let portToFill = model.numberOfInputs;\n while (portToFill && !model.inputData[portToFill - 1] && !model.inputConnection[portToFill - 1]) {\n portToFill--;\n }\n if (portToFill === model.numberOfInputs) {\n model.numberOfInputs++;\n }\n return portToFill;\n }\n function addInputConnection(outputPort) {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return;\n }\n setInputConnection(outputPort, getPortToFill());\n }\n function addInputData(dataset) {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return;\n }\n setInputData(dataset, getPortToFill());\n }\n function getOutputData() {\n let port = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return null;\n }\n if (publicAPI.shouldUpdate()) {\n publicAPI.update();\n }\n return model.output[port];\n }\n publicAPI.shouldUpdate = () => {\n const localMTime = publicAPI.getMTime();\n let minOutputMTime = Infinity;\n let count = numberOfOutputs;\n while (count--) {\n if (!model.output[count] || model.output[count].isDeleted()) {\n return true;\n }\n const mt = model.output[count].getMTime();\n if (mt < localMTime) {\n return true;\n }\n if (mt < minOutputMTime) {\n minOutputMTime = mt;\n }\n }\n count = model.numberOfInputs;\n while (count--) {\n if (model.inputConnection[count]?.filter.shouldUpdate() || publicAPI.getInputData(count)?.getMTime() > minOutputMTime) {\n return true;\n }\n }\n return false;\n };\n function getOutputPort() {\n let port = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n const outputPortAccess = () => getOutputData(port);\n // Add reference to filter\n outputPortAccess.filter = publicAPI;\n return outputPortAccess;\n }\n\n // Handle input if needed\n if (model.numberOfInputs) {\n // Reserve inputs\n let count = model.numberOfInputs;\n while (count--) {\n model.inputData.push(null);\n model.inputConnection.push(null);\n }\n\n // Expose public methods\n publicAPI.setInputData = setInputData;\n publicAPI.setInputConnection = setInputConnection;\n publicAPI.addInputData = addInputData;\n publicAPI.addInputConnection = addInputConnection;\n publicAPI.getInputData = getInputData;\n publicAPI.getInputConnection = getInputConnection;\n }\n if (numberOfOutputs) {\n publicAPI.getOutputData = getOutputData;\n publicAPI.getOutputPort = getOutputPort;\n }\n publicAPI.update = () => {\n const ins = [];\n if (model.numberOfInputs) {\n let count = 0;\n while (count < model.numberOfInputs) {\n ins[count] = publicAPI.getInputData(count);\n count++;\n }\n }\n if (publicAPI.shouldUpdate() && publicAPI.requestData) {\n publicAPI.requestData(ins, model.output);\n }\n };\n publicAPI.getNumberOfInputPorts = () => model.numberOfInputs;\n publicAPI.getNumberOfOutputPorts = () => numberOfOutputs || model.output.length;\n publicAPI.getInputArrayToProcess = inputPort => {\n const arrayDesc = model.inputArrayToProcess[inputPort];\n const ds = model.inputData[inputPort];\n if (arrayDesc && ds) {\n return ds[`get${arrayDesc.fieldAssociation}`]().getArray(arrayDesc.arrayName);\n }\n return null;\n };\n publicAPI.setInputArrayToProcess = function (inputPort, arrayName, fieldAssociation) {\n let attributeType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'Scalars';\n while (model.inputArrayToProcess.length < inputPort) {\n model.inputArrayToProcess.push(null);\n }\n model.inputArrayToProcess[inputPort] = {\n arrayName,\n fieldAssociation,\n attributeType\n };\n };\n}\n\n// ----------------------------------------------------------------------------\n// Event handling: onXXX(callback), invokeXXX(args...)\n// ----------------------------------------------------------------------------\n\nconst EVENT_ABORT = Symbol('Event abort');\nfunction event(publicAPI, model, eventName) {\n const callbacks = [];\n const previousDelete = publicAPI.delete;\n let curCallbackID = 1;\n function off(callbackID) {\n for (let i = 0; i < callbacks.length; ++i) {\n const [cbID] = callbacks[i];\n if (cbID === callbackID) {\n callbacks.splice(i, 1);\n return;\n }\n }\n }\n function on(callbackID) {\n function unsubscribe() {\n off(callbackID);\n }\n return Object.freeze({\n unsubscribe\n });\n }\n function invoke() {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return;\n }\n /* eslint-disable prefer-rest-params */\n // Go through a copy of the callbacks array in case new callbacks\n // get prepended within previous callbacks\n const currentCallbacks = callbacks.slice();\n for (let index = 0; index < currentCallbacks.length; ++index) {\n const [, cb, priority] = currentCallbacks[index];\n if (!cb) {\n continue; // eslint-disable-line\n }\n\n if (priority < 0) {\n setTimeout(() => cb.apply(publicAPI, arguments), 1 - priority);\n } else {\n // Abort only if the callback explicitly returns false\n const continueNext = cb.apply(publicAPI, arguments);\n if (continueNext === EVENT_ABORT) {\n break;\n }\n }\n }\n /* eslint-enable prefer-rest-params */\n }\n\n publicAPI[`invoke${_capitalize(eventName)}`] = invoke;\n publicAPI[`on${_capitalize(eventName)}`] = function (callback) {\n let priority = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.0;\n if (!callback.apply) {\n console.error(`Invalid callback for event ${eventName}`);\n return null;\n }\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return null;\n }\n const callbackID = curCallbackID++;\n callbacks.push([callbackID, callback, priority]);\n callbacks.sort((cb1, cb2) => cb2[2] - cb1[2]);\n return on(callbackID);\n };\n publicAPI.delete = () => {\n previousDelete();\n callbacks.forEach(_ref => {\n let [cbID] = _ref;\n return off(cbID);\n });\n };\n}\n\n// ----------------------------------------------------------------------------\n// newInstance\n// ----------------------------------------------------------------------------\n\nfunction newInstance(extend, className) {\n const constructor = function () {\n let initialValues = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const model = {};\n const publicAPI = {};\n extend(publicAPI, model, initialValues);\n return Object.freeze(publicAPI);\n };\n\n // Register constructor to factory\n if (className) {\n vtk.register(className, constructor);\n }\n return constructor;\n}\n\n// ----------------------------------------------------------------------------\n// Chain function calls\n// ----------------------------------------------------------------------------\n\nfunction chain() {\n for (var _len6 = arguments.length, fn = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n fn[_key6] = arguments[_key6];\n }\n return function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n return fn.filter(i => !!i).map(i => i(...args));\n };\n}\n\n// ----------------------------------------------------------------------------\n// Some utility methods for vtk objects\n// ----------------------------------------------------------------------------\n\nfunction isVtkObject(instance) {\n return instance && instance.isA && instance.isA('vtkObject');\n}\nfunction traverseInstanceTree(instance, extractFunction) {\n let accumulator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n let visitedInstances = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n if (isVtkObject(instance)) {\n if (visitedInstances.indexOf(instance) >= 0) {\n // avoid cycles\n return accumulator;\n }\n visitedInstances.push(instance);\n const result = extractFunction(instance);\n if (result !== undefined) {\n accumulator.push(result);\n }\n\n // Now go through this instance's model\n const model = instance.get();\n Object.keys(model).forEach(key => {\n const modelObj = model[key];\n if (Array.isArray(modelObj)) {\n modelObj.forEach(subObj => {\n traverseInstanceTree(subObj, extractFunction, accumulator, visitedInstances);\n });\n } else {\n traverseInstanceTree(modelObj, extractFunction, accumulator, visitedInstances);\n }\n });\n }\n return accumulator;\n}\n\n// ----------------------------------------------------------------------------\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\n\nfunction debounce(func, wait, immediate) {\n var _this = this;\n let timeout;\n const debounced = function () {\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n const context = _this;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n debounced.cancel = () => clearTimeout(timeout);\n return debounced;\n}\n\n// ----------------------------------------------------------------------------\n// Creates a throttled function that only invokes `func` at most once per\n// every `wait` milliseconds.\n\nfunction throttle(callback, delay) {\n let isThrottled = false;\n let argsToUse = null;\n function next() {\n isThrottled = false;\n if (argsToUse !== null) {\n wrapper(...argsToUse); // eslint-disable-line\n argsToUse = null;\n }\n }\n function wrapper() {\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n if (isThrottled) {\n argsToUse = args;\n return;\n }\n isThrottled = true;\n callback(...args);\n setTimeout(next, delay);\n }\n return wrapper;\n}\n\n// ----------------------------------------------------------------------------\n// keystore(publicAPI, model, initialKeystore)\n//\n// - initialKeystore: Initial keystore. This can be either a Map or an\n// object.\n//\n// Generated API\n// setKey(key, value) : mixed (returns value)\n// getKey(key) : mixed\n// getAllKeys() : [mixed]\n// deleteKey(key) : Boolean\n// ----------------------------------------------------------------------------\n\nfunction keystore(publicAPI, model) {\n let initialKeystore = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n model.keystore = Object.assign(model.keystore || {}, initialKeystore);\n publicAPI.setKey = (key, value) => {\n model.keystore[key] = value;\n };\n publicAPI.getKey = key => model.keystore[key];\n publicAPI.getAllKeys = () => Object.keys(model.keystore);\n publicAPI.deleteKey = key => delete model.keystore[key];\n publicAPI.clearKeystore = () => publicAPI.getAllKeys().forEach(key => delete model.keystore[key]);\n}\n\n// ----------------------------------------------------------------------------\n// proxy(publicAPI, model, sectionName, propertyUI)\n//\n// - sectionName: Name of the section for UI\n// - propertyUI: List of props with their UI description\n//\n// Generated API\n// getProxyId() : String\n// listProxyProperties() : [string]\n// updateProxyProperty(name, prop)\n// getProxySection() => List of properties for UI generation\n// ----------------------------------------------------------------------------\nlet nextProxyId = 1;\nconst ROOT_GROUP_NAME = '__root__';\nfunction proxy(publicAPI, model) {\n // Proxies are keystores\n keystore(publicAPI, model);\n const parentDelete = publicAPI.delete;\n\n // getProxyId\n model.proxyId = `${nextProxyId++}`;\n\n // ui handling\n model.ui = JSON.parse(JSON.stringify(model.ui || [])); // deep copy\n get(publicAPI, model, ['proxyId', 'proxyGroup', 'proxyName']);\n setGet(publicAPI, model, ['proxyManager']);\n\n // group properties\n const propertyMap = {};\n const groupChildrenNames = {};\n function registerProperties(descriptionList, currentGroupName) {\n if (!groupChildrenNames[currentGroupName]) {\n groupChildrenNames[currentGroupName] = [];\n }\n const childrenNames = groupChildrenNames[currentGroupName];\n for (let i = 0; i < descriptionList.length; i++) {\n childrenNames.push(descriptionList[i].name);\n propertyMap[descriptionList[i].name] = descriptionList[i];\n if (descriptionList[i].children && descriptionList[i].children.length) {\n registerProperties(descriptionList[i].children, descriptionList[i].name);\n }\n }\n }\n registerProperties(model.ui, ROOT_GROUP_NAME);\n publicAPI.updateUI = ui => {\n model.ui = JSON.parse(JSON.stringify(ui || [])); // deep copy\n Object.keys(propertyMap).forEach(k => delete propertyMap[k]);\n Object.keys(groupChildrenNames).forEach(k => delete groupChildrenNames[k]);\n registerProperties(model.ui, ROOT_GROUP_NAME);\n publicAPI.modified();\n };\n function listProxyProperties() {\n let gName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ROOT_GROUP_NAME;\n return groupChildrenNames[gName];\n }\n publicAPI.updateProxyProperty = (propertyName, propUI) => {\n const prop = propertyMap[propertyName];\n if (prop) {\n Object.assign(prop, propUI);\n } else {\n propertyMap[propertyName] = {\n ...propUI\n };\n }\n };\n publicAPI.activate = () => {\n if (model.proxyManager) {\n const setActiveMethod = `setActive${_capitalize(publicAPI.getProxyGroup().slice(0, -1))}`;\n if (model.proxyManager[setActiveMethod]) {\n model.proxyManager[setActiveMethod](publicAPI);\n }\n }\n };\n\n // property link\n model.propertyLinkSubscribers = {};\n publicAPI.registerPropertyLinkForGC = (otherLink, type) => {\n if (!(type in model.propertyLinkSubscribers)) {\n model.propertyLinkSubscribers[type] = [];\n }\n model.propertyLinkSubscribers[type].push(otherLink);\n };\n publicAPI.gcPropertyLinks = type => {\n const subscribers = model.propertyLinkSubscribers[type] || [];\n while (subscribers.length) {\n subscribers.pop().unbind(publicAPI);\n }\n };\n model.propertyLinkMap = {};\n publicAPI.getPropertyLink = function (id) {\n let persistent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (model.propertyLinkMap[id]) {\n return model.propertyLinkMap[id];\n }\n let value = null;\n const links = [];\n let count = 0;\n let updateInProgress = false;\n function update(source) {\n let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (updateInProgress) {\n return null;\n }\n const needUpdate = [];\n let sourceLink = null;\n count = links.length;\n while (count--) {\n const link = links[count];\n if (link.instance === source) {\n sourceLink = link;\n } else {\n needUpdate.push(link);\n }\n }\n if (!sourceLink) {\n return null;\n }\n const newValue = sourceLink.instance[`get${_capitalize(sourceLink.propertyName)}`]();\n if (!shallowEquals(newValue, value) || force) {\n value = newValue;\n updateInProgress = true;\n while (needUpdate.length) {\n const linkToUpdate = needUpdate.pop();\n linkToUpdate.instance.set({\n [linkToUpdate.propertyName]: value\n });\n }\n updateInProgress = false;\n }\n if (model.propertyLinkMap[id].persistent) {\n model.propertyLinkMap[id].value = newValue;\n }\n return newValue;\n }\n function unbind(instance, propertyName) {\n const indexToDelete = [];\n count = links.length;\n while (count--) {\n const link = links[count];\n if (link.instance === instance && (link.propertyName === propertyName || propertyName === undefined)) {\n link.subscription.unsubscribe();\n indexToDelete.push(count);\n }\n }\n while (indexToDelete.length) {\n links.splice(indexToDelete.pop(), 1);\n }\n }\n function bind(instance, propertyName) {\n let updateMe = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n const subscription = instance.onModified(update);\n const other = links[0];\n links.push({\n instance,\n propertyName,\n subscription\n });\n if (updateMe) {\n if (model.propertyLinkMap[id].persistent && model.propertyLinkMap[id].value !== undefined) {\n instance.set({\n [propertyName]: model.propertyLinkMap[id].value\n });\n } else if (other) {\n update(other.instance, true);\n }\n }\n return {\n unsubscribe: () => unbind(instance, propertyName)\n };\n }\n function unsubscribe() {\n while (links.length) {\n links.pop().subscription.unsubscribe();\n }\n }\n const linkHandler = {\n bind,\n unbind,\n unsubscribe,\n persistent\n };\n model.propertyLinkMap[id] = linkHandler;\n return linkHandler;\n };\n\n // extract values\n function getProperties() {\n let groupName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ROOT_GROUP_NAME;\n const values = [];\n const id = model.proxyId;\n const propertyNames = listProxyProperties(groupName) || [];\n for (let i = 0; i < propertyNames.length; i++) {\n const name = propertyNames[i];\n const method = publicAPI[`get${_capitalize(name)}`];\n const value = method ? method() : undefined;\n const prop = {\n id,\n name,\n value\n };\n const children = getProperties(name);\n if (children.length) {\n prop.children = children;\n }\n values.push(prop);\n }\n return values;\n }\n publicAPI.listPropertyNames = () => getProperties().map(p => p.name);\n publicAPI.getPropertyByName = name => getProperties().find(p => p.name === name);\n publicAPI.getPropertyDomainByName = name => (propertyMap[name] || {}).domain;\n\n // ui section\n publicAPI.getProxySection = () => ({\n id: model.proxyId,\n name: model.proxyGroup,\n ui: model.ui,\n properties: getProperties()\n });\n\n // free resources\n publicAPI.delete = () => {\n const list = Object.keys(model.propertyLinkMap);\n let count = list.length;\n while (count--) {\n model.propertyLinkMap[list[count]].unsubscribe();\n }\n Object.keys(model.propertyLinkSubscribers).forEach(publicAPI.gcPropertyLinks);\n parentDelete();\n };\n\n // @todo fix infinite recursion due to active source\n publicAPI.getState = () => null;\n function registerLinks() {\n // Allow dynamic registration of links at the application level\n if (model.links) {\n for (let i = 0; i < model.links.length; i++) {\n const {\n link,\n property,\n persistent,\n updateOnBind,\n type\n } = model.links[i];\n if (type === 'application') {\n const sLink = model.proxyManager.getPropertyLink(link, persistent);\n publicAPI.registerPropertyLinkForGC(sLink, 'application');\n sLink.bind(publicAPI, property, updateOnBind);\n }\n }\n }\n }\n setImmediateVTK(registerLinks);\n}\n\n// ----------------------------------------------------------------------------\n// proxyPropertyMapping(publicAPI, model, map)\n//\n// map = {\n// opacity: { modelKey: 'property', property: 'opacity' },\n// }\n//\n// Generated API:\n// Elevate set/get methods from internal object stored in the model to current one\n// ----------------------------------------------------------------------------\n\nfunction proxyPropertyMapping(publicAPI, model, map) {\n const parentDelete = publicAPI.delete;\n const subscriptions = [];\n const propertyNames = Object.keys(map);\n let count = propertyNames.length;\n while (count--) {\n const propertyName = propertyNames[count];\n const {\n modelKey,\n property,\n modified = true\n } = map[propertyName];\n const methodSrc = _capitalize(property);\n const methodDst = _capitalize(propertyName);\n publicAPI[`get${methodDst}`] = model[modelKey][`get${methodSrc}`];\n publicAPI[`set${methodDst}`] = model[modelKey][`set${methodSrc}`];\n if (modified) {\n subscriptions.push(model[modelKey].onModified(publicAPI.modified));\n }\n }\n publicAPI.delete = () => {\n while (subscriptions.length) {\n subscriptions.pop().unsubscribe();\n }\n parentDelete();\n };\n}\n\n// ----------------------------------------------------------------------------\n// proxyPropertyState(publicAPI, model, state, defaults)\n//\n// state = {\n// representation: {\n// 'Surface with edges': { property: { edgeVisibility: true, representation: 2 } },\n// Surface: { property: { edgeVisibility: false, representation: 2 } },\n// Wireframe: { property: { edgeVisibility: false, representation: 1 } },\n// Points: { property: { edgeVisibility: false, representation: 0 } },\n// },\n// }\n//\n// defaults = {\n// representation: 'Surface',\n// }\n//\n// Generated API\n// get / set Representation ( string ) => push state to various internal objects\n// ----------------------------------------------------------------------------\n\nfunction proxyPropertyState(publicAPI, model) {\n let state = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let defaults = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n model.this = publicAPI;\n function applyState(map) {\n const modelKeys = Object.keys(map);\n let count = modelKeys.length;\n while (count--) {\n const modelKey = modelKeys[count];\n model[modelKey].set(map[modelKey]);\n }\n }\n const modelKeys = Object.keys(defaults);\n let count = modelKeys.length;\n while (count--) {\n // Add default\n const key = modelKeys[count];\n model[key] = defaults[key];\n\n // Add set method\n const mapping = state[key];\n publicAPI[`set${_capitalize(key)}`] = value => {\n if (value !== model[key]) {\n model[key] = value;\n const propValues = mapping[value];\n applyState(propValues);\n publicAPI.modified();\n }\n };\n }\n\n // Add getter\n if (modelKeys.length) {\n get(publicAPI, model, modelKeys);\n }\n}\n\n// ----------------------------------------------------------------------------\n// From : https://github.com/facebookarchive/fixed-data-table/blob/master/src/vendor_upstream/dom/normalizeWheel.js\n//\n//\n// Copyright (c) 2015, Facebook, Inc.\n// All rights reserved.\n//\n// This source code is licensed under the BSD-style license found in the\n// LICENSE file in the root directory of this source tree. An additional grant\n// of patent rights can be found in the PATENTS file in the same directory.\n//\n//\n// Mouse wheel (and 2-finger trackpad) support on the web sucks. It is\n// complicated, thus this doc is long and (hopefully) detailed enough to answer\n// your questions.\n//\n// If you need to react to the mouse wheel in a predictable way, this code is\n// like your bestest friend.// hugs//\n//\n// As of today, there are 4 DOM event types you can listen to:\n//\n// 'wheel' -- Chrome(31+), FF(17+), IE(9+)\n// 'mousewheel' -- Chrome, IE(6+), Opera, Safari\n// 'MozMousePixelScroll' -- FF(3.5 only!) (2010-2013) -- don't bother!\n// 'DOMMouseScroll' -- FF(0.9.7+) since 2003\n//\n// So what to do? The is the best:\n//\n// normalizeWheel.getEventType();\n//\n// In your event callback, use this code to get sane interpretation of the\n// deltas. This code will return an object with properties:\n//\n// spinX -- normalized spin speed (use for zoom) - x plane\n// spinY -- \" - y plane\n// pixelX -- normalized distance (to pixels) - x plane\n// pixelY -- \" - y plane\n//\n// Wheel values are provided by the browser assuming you are using the wheel to\n// scroll a web page by a number of lines or pixels (or pages). Values can vary\n// significantly on different platforms and browsers, forgetting that you can\n// scroll at different speeds. Some devices (like trackpads) emit more events\n// at smaller increments with fine granularity, and some emit massive jumps with\n// linear speed or acceleration.\n//\n// This code does its best to normalize the deltas for you:\n//\n// - spin is trying to normalize how far the wheel was spun (or trackpad\n// dragged). This is super useful for zoom support where you want to\n// throw away the chunky scroll steps on the PC and make those equal to\n// the slow and smooth tiny steps on the Mac. Key data: This code tries to\n// resolve a single slow step on a wheel to 1.\n//\n// - pixel is normalizing the desired scroll delta in pixel units. You'll\n// get the crazy differences between browsers, but at least it'll be in\n// pixels!\n//\n// - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT. This\n// should translate to positive value zooming IN, negative zooming OUT.\n// This matches the newer 'wheel' event.\n//\n// Why are there spinX, spinY (or pixels)?\n//\n// - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn\n// with a mouse. It results in side-scrolling in the browser by default.\n//\n// - spinY is what you expect -- it's the classic axis of a mouse wheel.\n//\n// - I dropped spinZ/pixelZ. It is supported by the DOM 3 'wheel' event and\n// probably is by browsers in conjunction with fancy 3D controllers .. but\n// you know.\n//\n// Implementation info:\n//\n// Examples of 'wheel' event if you scroll slowly (down) by one step with an\n// average mouse:\n//\n// OS X + Chrome (mouse) - 4 pixel delta (wheelDelta -120)\n// OS X + Safari (mouse) - N/A pixel delta (wheelDelta -12)\n// OS X + Firefox (mouse) - 0.1 line delta (wheelDelta N/A)\n// Win8 + Chrome (mouse) - 100 pixel delta (wheelDelta -120)\n// Win8 + Firefox (mouse) - 3 line delta (wheelDelta -120)\n//\n// On the trackpad:\n//\n// OS X + Chrome (trackpad) - 2 pixel delta (wheelDelta -6)\n// OS X + Firefox (trackpad) - 1 pixel delta (wheelDelta N/A)\n//\n// On other/older browsers.. it's more complicated as there can be multiple and\n// also missing delta values.\n//\n// The 'wheel' event is more standard:\n//\n// http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents\n//\n// The basics is that it includes a unit, deltaMode (pixels, lines, pages), and\n// deltaX, deltaY and deltaZ. Some browsers provide other values to maintain\n// backward compatibility with older events. Those other values help us\n// better normalize spin speed. Example of what the browsers provide:\n//\n// | event.wheelDelta | event.detail\n// ------------------+------------------+--------------\n// Safari v5/OS X | -120 | 0\n// Safari v5/Win7 | -120 | 0\n// Chrome v17/OS X | -120 | 0\n// Chrome v17/Win7 | -120 | 0\n// IE9/Win7 | -120 | undefined\n// Firefox v4/OS X | undefined | 1\n// Firefox v4/Win7 | undefined | 3\n//\n// ----------------------------------------------------------------------------\n\n// Reasonable defaults\nconst PIXEL_STEP = 10;\nconst LINE_HEIGHT = 40;\nconst PAGE_HEIGHT = 800;\nfunction normalizeWheel(wheelEvent) {\n let sX = 0; // spinX\n let sY = 0; // spinY\n let pX = 0; // pixelX\n let pY = 0; // pixelY\n\n // Legacy\n if ('detail' in wheelEvent) {\n sY = wheelEvent.detail;\n }\n if ('wheelDelta' in wheelEvent) {\n sY = -wheelEvent.wheelDelta / 120;\n }\n if ('wheelDeltaY' in wheelEvent) {\n sY = -wheelEvent.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in wheelEvent) {\n sX = -wheelEvent.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in wheelEvent && wheelEvent.axis === wheelEvent.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in wheelEvent) {\n pY = wheelEvent.deltaY;\n }\n if ('deltaX' in wheelEvent) {\n pX = wheelEvent.deltaX;\n }\n if ((pX || pY) && wheelEvent.deltaMode) {\n if (wheelEvent.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY || sX,\n pixelX: pX,\n pixelY: pY || pX\n };\n}\n\n// ----------------------------------------------------------------------------\n// Default export\n// ----------------------------------------------------------------------------\n\nvar macro = {\n algo,\n capitalize,\n chain,\n debounce,\n enumToString,\n event,\n EVENT_ABORT,\n formatBytesToProperUnit,\n formatNumbersWithThousandSeparator,\n get,\n getArray,\n getCurrentGlobalMTime,\n getStateArrayMapFunc,\n isVtkObject,\n keystore,\n measurePromiseExecution,\n moveToProtected,\n newInstance,\n newTypedArray,\n newTypedArrayFrom,\n normalizeWheel,\n obj,\n proxy,\n proxyPropertyMapping,\n proxyPropertyState,\n safeArrays,\n set,\n setArray,\n setGet,\n setGetArray,\n setImmediate: setImmediateVTK,\n setLoggerFunction,\n throttle,\n traverseInstanceTree,\n TYPED_ARRAYS,\n // deprecated todo remove on breaking API revision\n uncapitalize,\n VOID,\n vtkDebugMacro,\n vtkErrorMacro,\n vtkInfoMacro,\n vtkLogMacro,\n vtkOnceErrorMacro,\n vtkWarningMacro,\n // vtk.js internal use\n objectSetterMap\n};\n\nvar macro$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n VOID: VOID,\n setLoggerFunction: setLoggerFunction,\n vtkLogMacro: vtkLogMacro,\n vtkInfoMacro: vtkInfoMacro,\n vtkDebugMacro: vtkDebugMacro,\n vtkErrorMacro: vtkErrorMacro,\n vtkWarningMacro: vtkWarningMacro,\n vtkOnceErrorMacro: vtkOnceErrorMacro,\n TYPED_ARRAYS: TYPED_ARRAYS,\n newTypedArray: newTypedArray,\n newTypedArrayFrom: newTypedArrayFrom,\n capitalize: capitalize,\n _capitalize: _capitalize,\n uncapitalize: uncapitalize,\n formatBytesToProperUnit: formatBytesToProperUnit,\n formatNumbersWithThousandSeparator: formatNumbersWithThousandSeparator,\n setImmediateVTK: setImmediateVTK,\n measurePromiseExecution: measurePromiseExecution,\n obj: obj,\n get: get,\n set: set,\n setGet: setGet,\n getArray: getArray,\n setArray: setArray,\n setGetArray: setGetArray,\n moveToProtected: moveToProtected,\n algo: algo,\n EVENT_ABORT: EVENT_ABORT,\n event: event,\n newInstance: newInstance,\n chain: chain,\n isVtkObject: isVtkObject,\n traverseInstanceTree: traverseInstanceTree,\n debounce: debounce,\n throttle: throttle,\n keystore: keystore,\n proxy: proxy,\n proxyPropertyMapping: proxyPropertyMapping,\n proxyPropertyState: proxyPropertyState,\n normalizeWheel: normalizeWheel,\n 'default': macro\n});\n\nexport { uncapitalize as A, formatBytesToProperUnit as B, formatNumbersWithThousandSeparator as C, setImmediateVTK as D, measurePromiseExecution as E, setArray as F, EVENT_ABORT as G, isVtkObject as H, debounce as I, throttle as J, keystore as K, proxyPropertyState as L, normalizeWheel as M, TYPED_ARRAYS as T, VOID as V, _capitalize as _, newTypedArray as a, newTypedArrayFrom as b, macro$1 as c, algo as d, setGet as e, event as f, get as g, chain as h, moveToProtected as i, proxyPropertyMapping as j, getArray as k, setGetArray as l, macro as m, newInstance as n, obj as o, proxy as p, capitalize as q, vtkErrorMacro as r, set as s, traverseInstanceTree as t, setLoggerFunction as u, vtkWarningMacro as v, vtkLogMacro as w, vtkInfoMacro as x, vtkDebugMacro as y, vtkOnceErrorMacro as z };\n","const IDENTITY = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\nconst IDENTITY_3X3 = [1, 0, 0, 0, 1, 0, 0, 0, 1];\nconst EPSILON = 1e-6;\nconst VTK_SMALL_NUMBER = 1.0e-12;\nvar Constants = {\n IDENTITY,\n IDENTITY_3X3,\n EPSILON,\n VTK_SMALL_NUMBER\n};\n\nexport { EPSILON, IDENTITY, IDENTITY_3X3, VTK_SMALL_NUMBER, Constants as default };\n","import seedrandom from 'seedrandom';\nimport { m as macro } from '../../../macros2.js';\nimport { IDENTITY, IDENTITY_3X3, VTK_SMALL_NUMBER, EPSILON } from './Constants.js';\n\nconst {\n vtkErrorMacro,\n vtkWarningMacro\n} = macro;\n\n// ----------------------------------------------------------------------------\n/* eslint-disable camelcase */\n/* eslint-disable no-cond-assign */\n/* eslint-disable no-bitwise */\n/* eslint-disable no-multi-assign */\n// ----------------------------------------------------------------------------\nlet randomSeedValue = 0;\nconst VTK_MAX_ROTATIONS = 20;\nfunction notImplemented(method) {\n return () => vtkErrorMacro(`vtkMath::${method} - NOT IMPLEMENTED`);\n}\n\n// Swap rows for n by n matrix\nfunction swapRowsMatrix_nxn(matrix, n, row1, row2) {\n let tmp;\n for (let i = 0; i < n; i++) {\n tmp = matrix[row1 * n + i];\n matrix[row1 * n + i] = matrix[row2 * n + i];\n matrix[row2 * n + i] = tmp;\n }\n}\n\n// Swap columns for n by n matrix\nfunction swapColumnsMatrix_nxn(matrix, n, column1, column2) {\n let tmp;\n for (let i = 0; i < n; i++) {\n tmp = matrix[i * n + column1];\n matrix[i * n + column1] = matrix[i * n + column2];\n matrix[i * n + column2] = tmp;\n }\n}\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\nfunction createArray() {\n let size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 3;\n // faster than Array.from and/or while loop\n const res = Array(size);\n for (let i = 0; i < size; ++i) {\n res[i] = 0;\n }\n return res;\n}\nconst Pi = () => Math.PI;\nfunction ldexp(x, exponent) {\n if (exponent > 1023) {\n return x * 2 ** 1023 * 2 ** (exponent - 1023);\n }\n if (exponent < -1074) {\n return x * 2 ** -1074 * 2 ** (exponent + 1074);\n }\n return x * 2 ** exponent;\n}\nfunction radiansFromDegrees(deg) {\n return deg / 180 * Math.PI;\n}\nfunction degreesFromRadians(rad) {\n return rad * 180 / Math.PI;\n}\nconst {\n round,\n floor,\n ceil,\n min,\n max\n} = Math;\nfunction arrayMin(arr) {\n let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n let stride = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n let minValue = Infinity;\n for (let i = offset, len = arr.length; i < len; i += stride) {\n if (arr[i] < minValue) {\n minValue = arr[i];\n }\n }\n return minValue;\n}\nfunction arrayMax(arr) {\n let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n let stride = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n let maxValue = -Infinity;\n for (let i = offset, len = arr.length; i < len; i += stride) {\n if (maxValue < arr[i]) {\n maxValue = arr[i];\n }\n }\n return maxValue;\n}\nfunction arrayRange(arr) {\n let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n let stride = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n let minValue = Infinity;\n let maxValue = -Infinity;\n for (let i = offset, len = arr.length; i < len; i += stride) {\n if (arr[i] < minValue) {\n minValue = arr[i];\n }\n if (maxValue < arr[i]) {\n maxValue = arr[i];\n }\n }\n return [minValue, maxValue];\n}\nconst ceilLog2 = notImplemented('ceilLog2');\nconst factorial = notImplemented('factorial');\nfunction nearestPowerOfTwo(xi) {\n let v = 1;\n while (v < xi) {\n v *= 2;\n }\n return v;\n}\nfunction isPowerOfTwo(x) {\n return x === nearestPowerOfTwo(x);\n}\nfunction binomial(m, n) {\n let r = 1;\n for (let i = 1; i <= n; ++i) {\n r *= (m - i + 1) / i;\n }\n return Math.floor(r);\n}\nfunction beginCombination(m, n) {\n if (m < n) {\n return 0;\n }\n const r = createArray(n);\n for (let i = 0; i < n; ++i) {\n r[i] = i;\n }\n return r;\n}\nfunction nextCombination(m, n, r) {\n let status = 0;\n for (let i = n - 1; i >= 0; --i) {\n if (r[i] < m - n + i) {\n let j = r[i] + 1;\n while (i < n) {\n r[i++] = j++;\n }\n status = 1;\n break;\n }\n }\n return status;\n}\nfunction randomSeed(seed) {\n seedrandom(`${seed}`, {\n global: true\n });\n randomSeedValue = seed;\n}\nfunction getSeed() {\n return randomSeedValue;\n}\nfunction random() {\n let minValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let maxValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n const delta = maxValue - minValue;\n return minValue + delta * Math.random();\n}\nconst gaussian = notImplemented('gaussian');\n\n// Vect3 operations\nfunction add(a, b, out) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n}\nfunction subtract(a, b, out) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n}\nfunction multiplyScalar(vec, scalar) {\n vec[0] *= scalar;\n vec[1] *= scalar;\n vec[2] *= scalar;\n return vec;\n}\nfunction multiplyScalar2D(vec, scalar) {\n vec[0] *= scalar;\n vec[1] *= scalar;\n return vec;\n}\nfunction multiplyAccumulate(a, b, scalar, out) {\n out[0] = a[0] + b[0] * scalar;\n out[1] = a[1] + b[1] * scalar;\n out[2] = a[2] + b[2] * scalar;\n return out;\n}\nfunction multiplyAccumulate2D(a, b, scalar, out) {\n out[0] = a[0] + b[0] * scalar;\n out[1] = a[1] + b[1] * scalar;\n return out;\n}\nfunction dot(x, y) {\n return x[0] * y[0] + x[1] * y[1] + x[2] * y[2];\n}\nfunction outer(x, y, out_3x3) {\n out_3x3[0] = x[0] * y[0];\n out_3x3[1] = x[0] * y[1];\n out_3x3[2] = x[0] * y[2];\n out_3x3[3] = x[1] * y[0];\n out_3x3[4] = x[1] * y[1];\n out_3x3[5] = x[1] * y[2];\n out_3x3[6] = x[2] * y[0];\n out_3x3[7] = x[2] * y[1];\n out_3x3[8] = x[2] * y[2];\n}\nfunction cross(x, y, out) {\n const Zx = x[1] * y[2] - x[2] * y[1];\n const Zy = x[2] * y[0] - x[0] * y[2];\n const Zz = x[0] * y[1] - x[1] * y[0];\n out[0] = Zx;\n out[1] = Zy;\n out[2] = Zz;\n return out;\n}\nfunction norm(x) {\n let n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;\n switch (n) {\n case 1:\n return Math.abs(x);\n case 2:\n return Math.sqrt(x[0] * x[0] + x[1] * x[1]);\n case 3:\n return Math.sqrt(x[0] * x[0] + x[1] * x[1] + x[2] * x[2]);\n default:\n {\n let sum = 0;\n for (let i = 0; i < n; i++) {\n sum += x[i] * x[i];\n }\n return Math.sqrt(sum);\n }\n }\n}\nfunction normalize(x) {\n const den = norm(x);\n if (den !== 0.0) {\n x[0] /= den;\n x[1] /= den;\n x[2] /= den;\n }\n return den;\n}\nfunction perpendiculars(x, y, z, theta) {\n const x2 = x[0] * x[0];\n const y2 = x[1] * x[1];\n const z2 = x[2] * x[2];\n const r = Math.sqrt(x2 + y2 + z2);\n let dx;\n let dy;\n let dz;\n\n // transpose the vector to avoid divide-by-zero error\n if (x2 > y2 && x2 > z2) {\n dx = 0;\n dy = 1;\n dz = 2;\n } else if (y2 > z2) {\n dx = 1;\n dy = 2;\n dz = 0;\n } else {\n dx = 2;\n dy = 0;\n dz = 1;\n }\n const a = x[dx] / r;\n const b = x[dy] / r;\n const c = x[dz] / r;\n const tmp = Math.sqrt(a * a + c * c);\n if (theta !== 0) {\n const sintheta = Math.sin(theta);\n const costheta = Math.cos(theta);\n if (y) {\n y[dx] = (c * costheta - a * b * sintheta) / tmp;\n y[dy] = sintheta * tmp;\n y[dz] = (-(a * costheta) - b * c * sintheta) / tmp;\n }\n if (z) {\n z[dx] = (-(c * sintheta) - a * b * costheta) / tmp;\n z[dy] = costheta * tmp;\n z[dz] = (a * sintheta - b * c * costheta) / tmp;\n }\n } else {\n if (y) {\n y[dx] = c / tmp;\n y[dy] = 0;\n y[dz] = -a / tmp;\n }\n if (z) {\n z[dx] = -a * b / tmp;\n z[dy] = tmp;\n z[dz] = -b * c / tmp;\n }\n }\n}\nfunction projectVector(a, b, projection) {\n const bSquared = dot(b, b);\n if (bSquared === 0) {\n projection[0] = 0;\n projection[1] = 0;\n projection[2] = 0;\n return false;\n }\n const scale = dot(a, b) / bSquared;\n for (let i = 0; i < 3; i++) {\n projection[i] = b[i];\n }\n multiplyScalar(projection, scale);\n return true;\n}\nfunction dot2D(x, y) {\n return x[0] * y[0] + x[1] * y[1];\n}\nfunction projectVector2D(a, b, projection) {\n const bSquared = dot2D(b, b);\n if (bSquared === 0) {\n projection[0] = 0;\n projection[1] = 0;\n return false;\n }\n const scale = dot2D(a, b) / bSquared;\n for (let i = 0; i < 2; i++) {\n projection[i] = b[i];\n }\n multiplyScalar2D(projection, scale);\n return true;\n}\nfunction distance2BetweenPoints(x, y) {\n return (x[0] - y[0]) * (x[0] - y[0]) + (x[1] - y[1]) * (x[1] - y[1]) + (x[2] - y[2]) * (x[2] - y[2]);\n}\nfunction angleBetweenVectors(v1, v2) {\n const crossVect = [0, 0, 0];\n cross(v1, v2, crossVect);\n return Math.atan2(norm(crossVect), dot(v1, v2));\n}\nfunction signedAngleBetweenVectors(v1, v2, vN) {\n const crossVect = [0, 0, 0];\n cross(v1, v2, crossVect);\n const angle = Math.atan2(norm(crossVect), dot(v1, v2));\n return dot(crossVect, vN) >= 0 ? angle : -angle;\n}\nfunction gaussianAmplitude(mean, variance, position) {\n const distanceFromMean = Math.abs(mean - position);\n return 1 / Math.sqrt(2 * Math.PI * variance) * Math.exp(-(distanceFromMean ** 2) / (2 * variance));\n}\nfunction gaussianWeight(mean, variance, position) {\n const distanceFromMean = Math.abs(mean - position);\n return Math.exp(-(distanceFromMean ** 2) / (2 * variance));\n}\nfunction outer2D(x, y, out_2x2) {\n out_2x2[0] = x[0] * y[0];\n out_2x2[1] = x[0] * y[1];\n out_2x2[2] = x[1] * y[0];\n out_2x2[3] = x[1] * y[1];\n}\nfunction norm2D(x2D) {\n return Math.sqrt(x2D[0] * x2D[0] + x2D[1] * x2D[1]);\n}\nfunction normalize2D(x) {\n const den = norm2D(x);\n if (den !== 0.0) {\n x[0] /= den;\n x[1] /= den;\n }\n return den;\n}\nfunction rowsToMat4(row0, row1, row2, row3, mat) {\n for (let i = 0; i < 4; i++) {\n mat[i] = row0[i];\n mat[4 + i] = row1[i];\n mat[8 + i] = row2[i];\n mat[12 + i] = row3[i];\n }\n return mat;\n}\nfunction columnsToMat4(column0, column1, column2, column3, mat) {\n for (let i = 0; i < 4; i++) {\n mat[4 * i] = column0[i];\n mat[4 * i + 1] = column1[i];\n mat[4 * i + 2] = column2[i];\n mat[4 * i + 3] = column3[i];\n }\n return mat;\n}\nfunction rowsToMat3(row0, row1, row2, mat) {\n for (let i = 0; i < 3; i++) {\n mat[i] = row0[i];\n mat[3 + i] = row1[i];\n mat[6 + i] = row2[i];\n }\n return mat;\n}\nfunction columnsToMat3(column0, column1, column2, mat) {\n for (let i = 0; i < 3; i++) {\n mat[3 * i] = column0[i];\n mat[3 * i + 1] = column1[i];\n mat[3 * i + 2] = column2[i];\n }\n return mat;\n}\nfunction determinant2x2() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 2) {\n return args[0][0] * args[1][1] - args[1][0] * args[0][1];\n }\n if (args.length === 4) {\n return args[0] * args[3] - args[1] * args[2];\n }\n return Number.NaN;\n}\nfunction LUFactor3x3(mat_3x3, index_3) {\n let maxI;\n let tmp;\n let largest;\n const scale = [0, 0, 0];\n\n // Loop over rows to get implicit scaling information\n for (let i = 0; i < 3; i++) {\n largest = Math.abs(mat_3x3[i * 3]);\n if ((tmp = Math.abs(mat_3x3[i * 3 + 1])) > largest) {\n largest = tmp;\n }\n if ((tmp = Math.abs(mat_3x3[i * 3 + 2])) > largest) {\n largest = tmp;\n }\n scale[i] = 1 / largest;\n }\n\n // Loop over all columns using Crout's method\n\n // first column\n largest = scale[0] * Math.abs(mat_3x3[0]);\n maxI = 0;\n if ((tmp = scale[1] * Math.abs(mat_3x3[3])) >= largest) {\n largest = tmp;\n maxI = 1;\n }\n if ((tmp = scale[2] * Math.abs(mat_3x3[6])) >= largest) {\n maxI = 2;\n }\n if (maxI !== 0) {\n swapRowsMatrix_nxn(mat_3x3, 3, maxI, 0);\n scale[maxI] = scale[0];\n }\n index_3[0] = maxI;\n mat_3x3[3] /= mat_3x3[0];\n mat_3x3[6] /= mat_3x3[0];\n\n // second column\n mat_3x3[4] -= mat_3x3[3] * mat_3x3[1];\n mat_3x3[7] -= mat_3x3[6] * mat_3x3[1];\n largest = scale[1] * Math.abs(mat_3x3[4]);\n maxI = 1;\n if ((tmp = scale[2] * Math.abs(mat_3x3[7])) >= largest) {\n maxI = 2;\n swapRowsMatrix_nxn(mat_3x3, 3, 1, 2);\n scale[2] = scale[1];\n }\n index_3[1] = maxI;\n mat_3x3[7] /= mat_3x3[4];\n\n // third column\n mat_3x3[5] -= mat_3x3[3] * mat_3x3[2];\n mat_3x3[8] -= mat_3x3[6] * mat_3x3[2] + mat_3x3[7] * mat_3x3[5];\n index_3[2] = 2;\n}\nfunction LUSolve3x3(mat_3x3, index_3, x_3) {\n // forward substitution\n let sum = x_3[index_3[0]];\n x_3[index_3[0]] = x_3[0];\n x_3[0] = sum;\n sum = x_3[index_3[1]];\n x_3[index_3[1]] = x_3[1];\n x_3[1] = sum - mat_3x3[3] * x_3[0];\n sum = x_3[index_3[2]];\n x_3[index_3[2]] = x_3[2];\n x_3[2] = sum - mat_3x3[6] * x_3[0] - mat_3x3[7] * x_3[1];\n\n // back substitution\n x_3[2] /= mat_3x3[8];\n x_3[1] = (x_3[1] - mat_3x3[5] * x_3[2]) / mat_3x3[4];\n x_3[0] = (x_3[0] - mat_3x3[1] * x_3[1] - mat_3x3[2] * x_3[2]) / mat_3x3[0];\n}\nfunction linearSolve3x3(mat_3x3, x_3, y_3) {\n const a1 = mat_3x3[0];\n const b1 = mat_3x3[1];\n const c1 = mat_3x3[2];\n const a2 = mat_3x3[3];\n const b2 = mat_3x3[4];\n const c2 = mat_3x3[5];\n const a3 = mat_3x3[6];\n const b3 = mat_3x3[7];\n const c3 = mat_3x3[8];\n\n // Compute the adjoint\n const d1 = +determinant2x2(b2, b3, c2, c3);\n const d2 = -determinant2x2(a2, a3, c2, c3);\n const d3 = +determinant2x2(a2, a3, b2, b3);\n const e1 = -determinant2x2(b1, b3, c1, c3);\n const e2 = +determinant2x2(a1, a3, c1, c3);\n const e3 = -determinant2x2(a1, a3, b1, b3);\n const f1 = +determinant2x2(b1, b2, c1, c2);\n const f2 = -determinant2x2(a1, a2, c1, c2);\n const f3 = +determinant2x2(a1, a2, b1, b2);\n\n // Compute the determinant\n const det = a1 * d1 + b1 * d2 + c1 * d3;\n\n // Multiply by the adjoint\n const v1 = d1 * x_3[0] + e1 * x_3[1] + f1 * x_3[2];\n const v2 = d2 * x_3[0] + e2 * x_3[1] + f2 * x_3[2];\n const v3 = d3 * x_3[0] + e3 * x_3[1] + f3 * x_3[2];\n\n // Divide by the determinant\n y_3[0] = v1 / det;\n y_3[1] = v2 / det;\n y_3[2] = v3 / det;\n}\nfunction multiply3x3_vect3(mat_3x3, in_3, out_3) {\n const x = mat_3x3[0] * in_3[0] + mat_3x3[1] * in_3[1] + mat_3x3[2] * in_3[2];\n const y = mat_3x3[3] * in_3[0] + mat_3x3[4] * in_3[1] + mat_3x3[5] * in_3[2];\n const z = mat_3x3[6] * in_3[0] + mat_3x3[7] * in_3[1] + mat_3x3[8] * in_3[2];\n out_3[0] = x;\n out_3[1] = y;\n out_3[2] = z;\n}\nfunction multiply3x3_mat3(a_3x3, b_3x3, out_3x3) {\n const copyA = [...a_3x3];\n const copyB = [...b_3x3];\n for (let i = 0; i < 3; i++) {\n out_3x3[i] = copyA[0] * copyB[i] + copyA[1] * copyB[i + 3] + copyA[2] * copyB[i + 6];\n out_3x3[i + 3] = copyA[3] * copyB[i] + copyA[4] * copyB[i + 3] + copyA[5] * copyB[i + 6];\n out_3x3[i + 6] = copyA[6] * copyB[i] + copyA[7] * copyB[i + 3] + copyA[8] * copyB[i + 6];\n }\n}\nfunction multiplyMatrix(a, b, rowA, colA, rowB, colB, outRowAColB) {\n // we need colA == rowB\n if (colA !== rowB) {\n vtkErrorMacro('Number of columns of A must match number of rows of B.');\n }\n\n // If a or b is used to store the result, copying them is required\n const copyA = [...a];\n const copyB = [...b];\n // output matrix is rowA*colB\n // output row\n for (let i = 0; i < rowA; i++) {\n // output col\n for (let j = 0; j < colB; j++) {\n outRowAColB[i * colB + j] = 0;\n // sum for this point\n for (let k = 0; k < colA; k++) {\n outRowAColB[i * colB + j] += copyA[i * colA + k] * copyB[j + colB * k];\n }\n }\n }\n}\nfunction transpose3x3(in_3x3, outT_3x3) {\n let tmp;\n\n // off-diagonal elements\n tmp = in_3x3[3];\n outT_3x3[3] = in_3x3[1];\n outT_3x3[1] = tmp;\n tmp = in_3x3[6];\n outT_3x3[6] = in_3x3[2];\n outT_3x3[2] = tmp;\n tmp = in_3x3[7];\n outT_3x3[7] = in_3x3[5];\n outT_3x3[5] = tmp;\n\n // on-diagonal elements\n outT_3x3[0] = in_3x3[0];\n outT_3x3[4] = in_3x3[4];\n outT_3x3[8] = in_3x3[8];\n}\nfunction invert3x3(in_3x3, outI_3x3) {\n const a1 = in_3x3[0];\n const b1 = in_3x3[1];\n const c1 = in_3x3[2];\n const a2 = in_3x3[3];\n const b2 = in_3x3[4];\n const c2 = in_3x3[5];\n const a3 = in_3x3[6];\n const b3 = in_3x3[7];\n const c3 = in_3x3[8];\n\n // Compute the adjoint\n const d1 = +determinant2x2(b2, b3, c2, c3);\n const d2 = -determinant2x2(a2, a3, c2, c3);\n const d3 = +determinant2x2(a2, a3, b2, b3);\n const e1 = -determinant2x2(b1, b3, c1, c3);\n const e2 = +determinant2x2(a1, a3, c1, c3);\n const e3 = -determinant2x2(a1, a3, b1, b3);\n const f1 = +determinant2x2(b1, b2, c1, c2);\n const f2 = -determinant2x2(a1, a2, c1, c2);\n const f3 = +determinant2x2(a1, a2, b1, b2);\n\n // Divide by the determinant\n const det = a1 * d1 + b1 * d2 + c1 * d3;\n if (det === 0) {\n vtkWarningMacro('Matrix has 0 determinant');\n }\n outI_3x3[0] = d1 / det;\n outI_3x3[3] = d2 / det;\n outI_3x3[6] = d3 / det;\n outI_3x3[1] = e1 / det;\n outI_3x3[4] = e2 / det;\n outI_3x3[7] = e3 / det;\n outI_3x3[2] = f1 / det;\n outI_3x3[5] = f2 / det;\n outI_3x3[8] = f3 / det;\n}\nfunction determinant3x3(mat_3x3) {\n return mat_3x3[0] * mat_3x3[4] * mat_3x3[8] + mat_3x3[3] * mat_3x3[7] * mat_3x3[2] + mat_3x3[6] * mat_3x3[1] * mat_3x3[5] - mat_3x3[0] * mat_3x3[7] * mat_3x3[5] - mat_3x3[3] * mat_3x3[1] * mat_3x3[8] - mat_3x3[6] * mat_3x3[4] * mat_3x3[2];\n}\n\n/**\n * Returns true if elements of both arrays are equals.\n * @param {Array} a an array of numbers (vector, point, matrix...)\n * @param {Array} b an array of numbers (vector, point, matrix...)\n * @param {Number} eps tolerance\n */\nfunction areEquals(a, b) {\n let eps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EPSILON;\n if (a.length !== b.length) {\n return false;\n }\n function isEqual(element, index) {\n return Math.abs(element - b[index]) <= eps;\n }\n return a.every(isEqual);\n}\nconst areMatricesEqual = areEquals;\nfunction identity3x3(mat_3x3) {\n for (let i = 0; i < 3; i++) {\n /* eslint-disable-next-line no-multi-assign */\n mat_3x3[i * 3] = mat_3x3[i * 3 + 1] = mat_3x3[i * 3 + 2] = 0;\n mat_3x3[i * 3 + i] = 1;\n }\n}\nfunction identity(n, mat) {\n for (let i = 0; i < n; i++) {\n for (let j = 0; j < n; j++) {\n mat[i * n + j] = 0;\n }\n mat[i * n + i] = 1;\n }\n return mat;\n}\nfunction isIdentity(mat) {\n let eps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : EPSILON;\n return areMatricesEqual(mat, IDENTITY, eps);\n}\nfunction isIdentity3x3(mat) {\n let eps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : EPSILON;\n return areMatricesEqual(mat, IDENTITY_3X3, eps);\n}\nfunction quaternionToMatrix3x3(quat_4, mat_3x3) {\n const ww = quat_4[0] * quat_4[0];\n const wx = quat_4[0] * quat_4[1];\n const wy = quat_4[0] * quat_4[2];\n const wz = quat_4[0] * quat_4[3];\n const xx = quat_4[1] * quat_4[1];\n const yy = quat_4[2] * quat_4[2];\n const zz = quat_4[3] * quat_4[3];\n const xy = quat_4[1] * quat_4[2];\n const xz = quat_4[1] * quat_4[3];\n const yz = quat_4[2] * quat_4[3];\n const rr = xx + yy + zz;\n // normalization factor, just in case quaternion was not normalized\n let f = 1 / (ww + rr);\n const s = (ww - rr) * f;\n f *= 2;\n mat_3x3[0] = xx * f + s;\n mat_3x3[3] = (xy + wz) * f;\n mat_3x3[6] = (xz - wy) * f;\n mat_3x3[1] = (xy - wz) * f;\n mat_3x3[4] = yy * f + s;\n mat_3x3[7] = (yz + wx) * f;\n mat_3x3[2] = (xz + wy) * f;\n mat_3x3[5] = (yz - wx) * f;\n mat_3x3[8] = zz * f + s;\n}\nfunction roundNumber(num) {\n let digits = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (!`${num}`.includes('e')) {\n return +`${Math.round(`${num}e+${digits}`)}e-${digits}`;\n }\n const arr = `${num}`.split('e');\n let sig = '';\n if (+arr[1] + digits > 0) {\n sig = '+';\n }\n return +`${Math.round(`${+arr[0]}e${sig}${+arr[1] + digits}`)}e-${digits}`;\n}\nfunction roundVector(vector) {\n let out = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0, 0];\n let digits = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n out[0] = roundNumber(vector[0], digits);\n out[1] = roundNumber(vector[1], digits);\n out[2] = roundNumber(vector[2], digits);\n return out;\n}\nfunction jacobiN(a, n, w, v) {\n let i;\n let j;\n let k;\n let iq;\n let ip;\n let numPos;\n let tresh;\n let theta;\n let t;\n let tau;\n let sm;\n let s;\n let h;\n let g;\n let c;\n let tmp;\n const b = createArray(n);\n const z = createArray(n);\n const vtkROTATE = (aa, ii, jj) => {\n g = aa[ii];\n h = aa[jj];\n aa[ii] = g - s * (h + g * tau);\n aa[jj] = h + s * (g - h * tau);\n };\n\n // initialize\n identity(n, v);\n for (ip = 0; ip < n; ip++) {\n b[ip] = w[ip] = a[ip + ip * n];\n z[ip] = 0.0;\n }\n\n // begin rotation sequence\n for (i = 0; i < VTK_MAX_ROTATIONS; i++) {\n sm = 0.0;\n for (ip = 0; ip < n - 1; ip++) {\n for (iq = ip + 1; iq < n; iq++) {\n sm += Math.abs(a[ip * n + iq]);\n }\n }\n if (sm === 0.0) {\n break;\n }\n\n // first 3 sweeps\n if (i < 3) {\n tresh = 0.2 * sm / (n * n);\n } else {\n tresh = 0.0;\n }\n for (ip = 0; ip < n - 1; ip++) {\n for (iq = ip + 1; iq < n; iq++) {\n g = 100.0 * Math.abs(a[ip * n + iq]);\n\n // after 4 sweeps\n if (i > 3 && Math.abs(w[ip]) + g === Math.abs(w[ip]) && Math.abs(w[iq]) + g === Math.abs(w[iq])) {\n a[ip * n + iq] = 0.0;\n } else if (Math.abs(a[ip * n + iq]) > tresh) {\n h = w[iq] - w[ip];\n if (Math.abs(h) + g === Math.abs(h)) {\n t = a[ip * n + iq] / h;\n } else {\n theta = 0.5 * h / a[ip * n + iq];\n t = 1.0 / (Math.abs(theta) + Math.sqrt(1.0 + theta * theta));\n if (theta < 0.0) {\n t = -t;\n }\n }\n c = 1.0 / Math.sqrt(1 + t * t);\n s = t * c;\n tau = s / (1.0 + c);\n h = t * a[ip * n + iq];\n z[ip] -= h;\n z[iq] += h;\n w[ip] -= h;\n w[iq] += h;\n a[ip * n + iq] = 0.0;\n\n // ip already shifted left by 1 unit\n for (j = 0; j <= ip - 1; j++) {\n vtkROTATE(a, j * n + ip, j * n + iq);\n }\n // ip and iq already shifted left by 1 unit\n for (j = ip + 1; j <= iq - 1; j++) {\n vtkROTATE(a, ip * n + j, j * n + iq);\n }\n // iq already shifted left by 1 unit\n for (j = iq + 1; j < n; j++) {\n vtkROTATE(a, ip * n + j, iq * n + j);\n }\n for (j = 0; j < n; j++) {\n vtkROTATE(v, j * n + ip, j * n + iq);\n }\n }\n }\n }\n for (ip = 0; ip < n; ip++) {\n b[ip] += z[ip];\n w[ip] = b[ip];\n z[ip] = 0.0;\n }\n }\n\n // this is NEVER called\n if (i >= VTK_MAX_ROTATIONS) {\n vtkWarningMacro('vtkMath::Jacobi: Error extracting eigenfunctions');\n return 0;\n }\n\n // sort eigenfunctions: these changes do not affect accuracy\n for (j = 0; j < n - 1; j++) {\n // boundary incorrect\n k = j;\n tmp = w[k];\n for (i = j + 1; i < n; i++) {\n // boundary incorrect, shifted already\n if (w[i] >= tmp || Math.abs(w[i] - tmp) < VTK_SMALL_NUMBER) {\n // why exchange if same?\n k = i;\n tmp = w[k];\n }\n }\n if (k !== j) {\n w[k] = w[j];\n w[j] = tmp;\n swapColumnsMatrix_nxn(v, n, j, k);\n }\n }\n // ensure eigenvector consistency (i.e., Jacobi can compute vectors that\n // are negative of one another (.707,.707,0) and (-.707,-.707,0). This can\n // reek havoc in hyperstreamline/other stuff. We will select the most\n // positive eigenvector.\n const ceil_half_n = (n >> 1) + (n & 1);\n for (numPos = 0, i = 0; i < n * n; i++) {\n if (v[i] >= 0.0) {\n numPos++;\n }\n }\n // if ( numPos < ceil(double(n)/double(2.0)) )\n if (numPos < ceil_half_n) {\n for (i = 0; i < n; i++) {\n v[i * n + j] *= -1.0;\n }\n }\n return 1;\n}\nfunction matrix3x3ToQuaternion(mat_3x3, quat_4) {\n const tmp = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n // on-diagonal elements\n tmp[0] = mat_3x3[0] + mat_3x3[4] + mat_3x3[8];\n tmp[5] = mat_3x3[0] - mat_3x3[4] - mat_3x3[8];\n tmp[10] = -mat_3x3[0] + mat_3x3[4] - mat_3x3[8];\n tmp[15] = -mat_3x3[0] - mat_3x3[4] + mat_3x3[8];\n\n // off-diagonal elements\n tmp[1] = tmp[4] = mat_3x3[7] - mat_3x3[5];\n tmp[2] = tmp[8] = mat_3x3[2] - mat_3x3[6];\n tmp[3] = tmp[12] = mat_3x3[3] - mat_3x3[1];\n tmp[6] = tmp[9] = mat_3x3[3] + mat_3x3[1];\n tmp[7] = tmp[13] = mat_3x3[2] + mat_3x3[6];\n tmp[11] = tmp[14] = mat_3x3[7] + mat_3x3[5];\n const eigenvectors = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n const eigenvalues = [0, 0, 0, 0];\n\n // convert into format that JacobiN can use,\n // then use Jacobi to find eigenvalues and eigenvectors\n // tmp is copied because jacobiN may modify it\n const NTemp = [...tmp];\n jacobiN(NTemp, 4, eigenvalues, eigenvectors);\n\n // the first eigenvector is the one we want\n quat_4[0] = eigenvectors[0];\n quat_4[1] = eigenvectors[4];\n quat_4[2] = eigenvectors[8];\n quat_4[3] = eigenvectors[12];\n}\nfunction multiplyQuaternion(quat_1, quat_2, quat_out) {\n const ww = quat_1[0] * quat_2[0];\n const wx = quat_1[0] * quat_2[1];\n const wy = quat_1[0] * quat_2[2];\n const wz = quat_1[0] * quat_2[3];\n const xw = quat_1[1] * quat_2[0];\n const xx = quat_1[1] * quat_2[1];\n const xy = quat_1[1] * quat_2[2];\n const xz = quat_1[1] * quat_2[3];\n const yw = quat_1[2] * quat_2[0];\n const yx = quat_1[2] * quat_2[1];\n const yy = quat_1[2] * quat_2[2];\n const yz = quat_1[2] * quat_2[3];\n const zw = quat_1[3] * quat_2[0];\n const zx = quat_1[3] * quat_2[1];\n const zy = quat_1[3] * quat_2[2];\n const zz = quat_1[3] * quat_2[3];\n quat_out[0] = ww - xx - yy - zz;\n quat_out[1] = wx + xw + yz - zy;\n quat_out[2] = wy - xz + yw + zx;\n quat_out[3] = wz + xy - yx + zw;\n}\nfunction orthogonalize3x3(a_3x3, out_3x3) {\n // copy the matrix\n for (let i = 0; i < 9; i++) {\n out_3x3[i] = a_3x3[i];\n }\n\n // Pivot the matrix to improve accuracy\n const scale = createArray(3);\n const index = createArray(3);\n let largest;\n\n // Loop over rows to get implicit scaling information\n for (let i = 0; i < 3; i++) {\n const x1 = Math.abs(out_3x3[i * 3]);\n const x2 = Math.abs(out_3x3[i * 3 + 1]);\n const x3 = Math.abs(out_3x3[i * 3 + 2]);\n largest = x2 > x1 ? x2 : x1;\n largest = x3 > largest ? x3 : largest;\n scale[i] = 1;\n if (largest !== 0) {\n scale[i] /= largest;\n }\n }\n\n // first column\n const x1 = Math.abs(out_3x3[0]) * scale[0];\n const x2 = Math.abs(out_3x3[3]) * scale[1];\n const x3 = Math.abs(out_3x3[6]) * scale[2];\n index[0] = 0;\n largest = x1;\n if (x2 >= largest) {\n largest = x2;\n index[0] = 1;\n }\n if (x3 >= largest) {\n index[0] = 2;\n }\n if (index[0] !== 0) {\n // swap vectors\n swapColumnsMatrix_nxn(out_3x3, 3, index[0], 0);\n scale[index[0]] = scale[0];\n }\n\n // second column\n const y2 = Math.abs(out_3x3[4]) * scale[1];\n const y3 = Math.abs(out_3x3[7]) * scale[2];\n index[1] = 1;\n largest = y2;\n if (y3 >= largest) {\n index[1] = 2;\n // swap vectors\n swapColumnsMatrix_nxn(out_3x3, 3, 1, 2);\n }\n\n // third column\n index[2] = 2;\n\n // A quaternion can only describe a pure rotation, not\n // a rotation with a flip, therefore the flip must be\n // removed before the matrix is converted to a quaternion.\n let flip = 0;\n if (determinant3x3(out_3x3) < 0) {\n flip = 1;\n for (let i = 0; i < 9; i++) {\n out_3x3[i] = -out_3x3[i];\n }\n }\n\n // Do orthogonalization using a quaternion intermediate\n // (this, essentially, does the orthogonalization via\n // diagonalization of an appropriately constructed symmetric\n // 4x4 matrix rather than by doing SVD of the 3x3 matrix)\n const quat = createArray(4);\n matrix3x3ToQuaternion(out_3x3, quat);\n quaternionToMatrix3x3(quat, out_3x3);\n\n // Put the flip back into the orthogonalized matrix.\n if (flip) {\n for (let i = 0; i < 9; i++) {\n out_3x3[i] = -out_3x3[i];\n }\n }\n\n // Undo the pivoting\n if (index[1] !== 1) {\n swapColumnsMatrix_nxn(out_3x3, 3, index[1], 1);\n }\n if (index[0] !== 0) {\n swapColumnsMatrix_nxn(out_3x3, 3, index[0], 0);\n }\n}\nfunction diagonalize3x3(a_3x3, w_3, v_3x3) {\n let i;\n let j;\n let k;\n let maxI;\n let tmp;\n let maxVal;\n\n // a is copied because jacobiN may modify it\n const copyA = [...a_3x3];\n\n // diagonalize using Jacobi\n jacobiN(copyA, 3, w_3, v_3x3);\n\n // if all the eigenvalues are the same, return identity matrix\n if (w_3[0] === w_3[1] && w_3[0] === w_3[2]) {\n identity3x3(v_3x3);\n return;\n }\n\n // transpose temporarily, it makes it easier to sort the eigenvectors\n transpose3x3(v_3x3, v_3x3);\n\n // if two eigenvalues are the same, re-orthogonalize to optimally line\n // up the eigenvectors with the x, y, and z axes\n for (i = 0; i < 3; i++) {\n // two eigenvalues are the same\n if (w_3[(i + 1) % 3] === w_3[(i + 2) % 3]) {\n // find maximum element of the independent eigenvector\n maxVal = Math.abs(v_3x3[i * 3]);\n maxI = 0;\n for (j = 1; j < 3; j++) {\n if (maxVal < (tmp = Math.abs(v_3x3[i * 3 + j]))) {\n maxVal = tmp;\n maxI = j;\n }\n }\n // swap the eigenvector into its proper position\n if (maxI !== i) {\n tmp = w_3[maxI];\n w_3[maxI] = w_3[i];\n w_3[i] = tmp;\n swapRowsMatrix_nxn(v_3x3, 3, i, maxI);\n }\n // maximum element of eigenvector should be positive\n if (v_3x3[maxI * 3 + maxI] < 0) {\n v_3x3[maxI * 3] = -v_3x3[maxI * 3];\n v_3x3[maxI * 3 + 1] = -v_3x3[maxI * 3 + 1];\n v_3x3[maxI * 3 + 2] = -v_3x3[maxI * 3 + 2];\n }\n\n // re-orthogonalize the other two eigenvectors\n j = (maxI + 1) % 3;\n k = (maxI + 2) % 3;\n v_3x3[j * 3] = 0.0;\n v_3x3[j * 3 + 1] = 0.0;\n v_3x3[j * 3 + 2] = 0.0;\n v_3x3[j * 3 + j] = 1.0;\n const vectTmp1 = cross([v_3x3[maxI * 3], v_3x3[maxI * 3 + 1], v_3x3[maxI * 3 + 2]], [v_3x3[j * 3], v_3x3[j * 3 + 1], v_3x3[j * 3 + 2]], []);\n normalize(vectTmp1);\n const vectTmp2 = cross(vectTmp1, [v_3x3[maxI * 3], v_3x3[maxI * 3 + 1], v_3x3[maxI * 3 + 2]], []);\n for (let t = 0; t < 3; t++) {\n v_3x3[k * 3 + t] = vectTmp1[t];\n v_3x3[j * 3 + t] = vectTmp2[t];\n }\n\n // transpose vectors back to columns\n transpose3x3(v_3x3, v_3x3);\n return;\n }\n }\n\n // the three eigenvalues are different, just sort the eigenvectors\n // to align them with the x, y, and z axes\n\n // find the vector with the largest x element, make that vector\n // the first vector\n maxVal = Math.abs(v_3x3[0]);\n maxI = 0;\n for (i = 1; i < 3; i++) {\n if (maxVal < (tmp = Math.abs(v_3x3[i * 3]))) {\n maxVal = tmp;\n maxI = i;\n }\n }\n // swap eigenvalue and eigenvector\n if (maxI !== 0) {\n const eigenValTmp = w_3[maxI];\n w_3[maxI] = w_3[0];\n w_3[0] = eigenValTmp;\n swapRowsMatrix_nxn(v_3x3, 3, maxI, 0);\n }\n // do the same for the y element\n if (Math.abs(v_3x3[4]) < Math.abs(v_3x3[7])) {\n const eigenValTmp = w_3[2];\n w_3[2] = w_3[1];\n w_3[1] = eigenValTmp;\n swapRowsMatrix_nxn(v_3x3, 3, 1, 2);\n }\n\n // ensure that the sign of the eigenvectors is correct\n for (i = 0; i < 2; i++) {\n if (v_3x3[i * 3 + i] < 0) {\n v_3x3[i * 3] = -v_3x3[i * 3];\n v_3x3[i * 3 + 1] = -v_3x3[i * 3 + 1];\n v_3x3[i * 3 + 2] = -v_3x3[i * 3 + 2];\n }\n }\n // set sign of final eigenvector to ensure that determinant is positive\n if (determinant3x3(v_3x3) < 0) {\n v_3x3[6] = -v_3x3[6];\n v_3x3[7] = -v_3x3[7];\n v_3x3[8] = -v_3x3[8];\n }\n\n // transpose the eigenvectors back again\n transpose3x3(v_3x3, v_3x3);\n}\nfunction singularValueDecomposition3x3(a_3x3, u_3x3, w_3, vT_3x3) {\n let i;\n // copy so that A can be used for U or VT without risk\n const B = [...a_3x3];\n\n // temporarily flip if determinant is negative\n const d = determinant3x3(B);\n if (d < 0) {\n for (i = 0; i < 9; i++) {\n B[i] = -B[i];\n }\n }\n\n // orthogonalize, diagonalize, etc.\n orthogonalize3x3(B, u_3x3);\n transpose3x3(B, B);\n multiply3x3_mat3(B, u_3x3, vT_3x3);\n diagonalize3x3(vT_3x3, w_3, vT_3x3);\n multiply3x3_mat3(u_3x3, vT_3x3, u_3x3);\n transpose3x3(vT_3x3, vT_3x3);\n\n // re-create the flip\n if (d < 0) {\n w_3[0] = -w_3[0];\n w_3[1] = -w_3[1];\n w_3[2] = -w_3[2];\n }\n}\n\n/**\n * Factor linear equations Ax = b using LU decomposition A = LU. Output factorization LU is in matrix A.\n * @param {Matrix} A square matrix\n * @param {Number} index integer array of pivot indices index[0->n-1]\n * @param {Number} size matrix size\n */\nfunction luFactorLinearSystem(A, index, size) {\n let i;\n let j;\n let k;\n let largest;\n let maxI = 0;\n let sum;\n let temp1;\n let temp2;\n const scale = createArray(size);\n\n //\n // Loop over rows to get implicit scaling information\n //\n for (i = 0; i < size; i++) {\n for (largest = 0.0, j = 0; j < size; j++) {\n if ((temp2 = Math.abs(A[i * size + j])) > largest) {\n largest = temp2;\n }\n }\n if (largest === 0.0) {\n vtkWarningMacro('Unable to factor linear system');\n return 0;\n }\n scale[i] = 1.0 / largest;\n }\n //\n // Loop over all columns using Crout's method\n //\n for (j = 0; j < size; j++) {\n for (i = 0; i < j; i++) {\n sum = A[i * size + j];\n for (k = 0; k < i; k++) {\n sum -= A[i * size + k] * A[k * size + j];\n }\n A[i * size + j] = sum;\n }\n //\n // Begin search for largest pivot element\n //\n for (largest = 0.0, i = j; i < size; i++) {\n sum = A[i * size + j];\n for (k = 0; k < j; k++) {\n sum -= A[i * size + k] * A[k * size + j];\n }\n A[i * size + j] = sum;\n if ((temp1 = scale[i] * Math.abs(sum)) >= largest) {\n largest = temp1;\n maxI = i;\n }\n }\n //\n // Check for row interchange\n //\n if (j !== maxI) {\n for (k = 0; k < size; k++) {\n temp1 = A[maxI * size + k];\n A[maxI * size + k] = A[j * size + k];\n A[j * size + k] = temp1;\n }\n scale[maxI] = scale[j];\n }\n //\n // Divide by pivot element and perform elimination\n //\n index[j] = maxI;\n if (Math.abs(A[j * size + j]) <= VTK_SMALL_NUMBER) {\n vtkWarningMacro('Unable to factor linear system');\n return 0;\n }\n if (j !== size - 1) {\n temp1 = 1.0 / A[j * size + j];\n for (i = j + 1; i < size; i++) {\n A[i * size + j] *= temp1;\n }\n }\n }\n return 1;\n}\nfunction luSolveLinearSystem(A, index, x, size) {\n let i;\n let j;\n let ii;\n let idx;\n let sum;\n //\n // Proceed with forward and backsubstitution for L and U\n // matrices. First, forward substitution.\n //\n for (ii = -1, i = 0; i < size; i++) {\n idx = index[i];\n sum = x[idx];\n x[idx] = x[i];\n if (ii >= 0) {\n for (j = ii; j <= i - 1; j++) {\n sum -= A[i * size + j] * x[j];\n }\n } else if (sum !== 0.0) {\n ii = i;\n }\n x[i] = sum;\n }\n //\n // Now, back substitution\n //\n for (i = size - 1; i >= 0; i--) {\n sum = x[i];\n for (j = i + 1; j < size; j++) {\n sum -= A[i * size + j] * x[j];\n }\n x[i] = sum / A[i * size + i];\n }\n}\nfunction solveLinearSystem(A, x, size) {\n // if we solving something simple, just solve it\n if (size === 2) {\n const y = createArray(2);\n const det = determinant2x2(A[0], A[1], A[2], A[3]);\n if (det === 0.0) {\n // Unable to solve linear system\n return 0;\n }\n y[0] = (A[3] * x[0] - A[1] * x[1]) / det;\n y[1] = (-(A[2] * x[0]) + A[0] * x[1]) / det;\n x[0] = y[0];\n x[1] = y[1];\n return 1;\n }\n if (size === 1) {\n if (A[0] === 0.0) {\n // Unable to solve linear system\n return 0;\n }\n x[0] /= A[0];\n return 1;\n }\n\n //\n // System of equations is not trivial, use Crout's method\n //\n\n // Check on allocation of working vectors\n const index = createArray(size);\n\n // Factor and solve matrix\n if (luFactorLinearSystem(A, index, size) === 0) {\n return 0;\n }\n luSolveLinearSystem(A, index, x, size);\n return 1;\n}\n\n// Note that A is modified during the inversion !\nfunction invertMatrix(A, AI, size) {\n let index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n let column = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n const tmp1Size = index || createArray(size);\n const tmp2Size = column || createArray(size);\n\n // Factor matrix; then begin solving for inverse one column at a time.\n // Note: tmp1Size returned value is used later, tmp2Size is just working\n // memory whose values are not used in LUSolveLinearSystem\n if (luFactorLinearSystem(A, tmp1Size, size) === 0) {\n return null;\n }\n for (let j = 0; j < size; j++) {\n for (let i = 0; i < size; i++) {\n tmp2Size[i] = 0.0;\n }\n tmp2Size[j] = 1.0;\n luSolveLinearSystem(A, tmp1Size, tmp2Size, size);\n for (let i = 0; i < size; i++) {\n AI[i * size + j] = tmp2Size[i];\n }\n }\n return AI;\n}\nfunction estimateMatrixCondition(A, size) {\n let minValue = +Number.MAX_VALUE;\n let maxValue = -Number.MAX_VALUE;\n\n // find the maximum value\n for (let i = 0; i < size; i++) {\n for (let j = i; j < size; j++) {\n if (Math.abs(A[i * size + j]) > maxValue) {\n maxValue = Math.abs(A[i * size + j]);\n }\n }\n }\n\n // find the minimum diagonal value\n for (let i = 0; i < size; i++) {\n if (Math.abs(A[i * size + i]) < minValue) {\n minValue = Math.abs(A[i * size + i]);\n }\n }\n if (minValue === 0.0) {\n return Number.MAX_VALUE;\n }\n return maxValue / minValue;\n}\nfunction jacobi(a_3x3, w, v) {\n return jacobiN(a_3x3, 3, w, v);\n}\nfunction solveHomogeneousLeastSquares(numberOfSamples, xt, xOrder, mt) {\n // check dimensional consistency\n if (numberOfSamples < xOrder) {\n vtkWarningMacro('Insufficient number of samples. Underdetermined.');\n return 0;\n }\n let i;\n let j;\n let k;\n\n // set up intermediate variables\n // Allocate matrix to hold X times transpose of X\n const XXt = createArray(xOrder * xOrder); // size x by x\n // Allocate the array of eigenvalues and eigenvectors\n const eigenvals = createArray(xOrder);\n const eigenvecs = createArray(xOrder * xOrder);\n\n // Calculate XXt upper half only, due to symmetry\n for (k = 0; k < numberOfSamples; k++) {\n for (i = 0; i < xOrder; i++) {\n for (j = i; j < xOrder; j++) {\n XXt[i * xOrder + j] += xt[k * xOrder + i] * xt[k * xOrder + j];\n }\n }\n }\n\n // now fill in the lower half of the XXt matrix\n for (i = 0; i < xOrder; i++) {\n for (j = 0; j < i; j++) {\n XXt[i * xOrder + j] = XXt[j * xOrder + i];\n }\n }\n\n // Compute the eigenvectors and eigenvalues\n jacobiN(XXt, xOrder, eigenvals, eigenvecs);\n\n // Smallest eigenval is at the end of the list (xOrder-1), and solution is\n // corresponding eigenvec.\n for (i = 0; i < xOrder; i++) {\n mt[i] = eigenvecs[i * xOrder + xOrder - 1];\n }\n return 1;\n}\nfunction solveLeastSquares(numberOfSamples, xt, xOrder, yt, yOrder, mt) {\n let checkHomogeneous = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : true;\n // check dimensional consistency\n if (numberOfSamples < xOrder || numberOfSamples < yOrder) {\n vtkWarningMacro('Insufficient number of samples. Underdetermined.');\n return 0;\n }\n const homogenFlags = createArray(yOrder);\n let allHomogeneous = 1;\n let hmt;\n let homogRC = 0;\n let i;\n let j;\n let k;\n let someHomogeneous = 0;\n\n // Ok, first init some flags check and see if all the systems are homogeneous\n if (checkHomogeneous) {\n // If Y' is zero, it's a homogeneous system and can't be solved via\n // the pseudoinverse method. Detect this case, warn the user, and\n // invoke SolveHomogeneousLeastSquares instead. Note that it doesn't\n // really make much sense for yOrder to be greater than one in this case,\n // since that's just yOrder occurrences of a 0 vector on the RHS, but\n // we allow it anyway. N\n\n // Initialize homogeneous flags on a per-right-hand-side basis\n for (j = 0; j < yOrder; j++) {\n homogenFlags[j] = 1;\n }\n for (i = 0; i < numberOfSamples; i++) {\n for (j = 0; j < yOrder; j++) {\n if (Math.abs(yt[i * yOrder + j]) > VTK_SMALL_NUMBER) {\n allHomogeneous = 0;\n homogenFlags[j] = 0;\n }\n }\n }\n\n // If we've got one system, and it's homogeneous, do it and bail out quickly.\n if (allHomogeneous && yOrder === 1) {\n vtkWarningMacro('Detected homogeneous system (Y=0), calling SolveHomogeneousLeastSquares()');\n return solveHomogeneousLeastSquares(numberOfSamples, xt, xOrder, mt);\n }\n\n // Ok, we've got more than one system of equations.\n // Figure out if we need to calculate the homogeneous equation solution for\n // any of them.\n if (allHomogeneous) {\n someHomogeneous = 1;\n } else {\n for (j = 0; j < yOrder; j++) {\n if (homogenFlags[j]) {\n someHomogeneous = 1;\n }\n }\n }\n }\n\n // If necessary, solve the homogeneous problem\n if (someHomogeneous) {\n // hmt is the homogeneous equation version of mt, the general solution.\n // hmt should be xOrder x yOrder, but since we are solving only the homogeneous part, here it is xOrder x 1\n hmt = createArray(xOrder);\n\n // Ok, solve the homogeneous problem\n homogRC = solveHomogeneousLeastSquares(numberOfSamples, xt, xOrder, hmt);\n }\n\n // set up intermediate variables\n const XXt = createArray(xOrder * xOrder); // size x by x\n const XXtI = createArray(xOrder * xOrder); // size x by x\n const XYt = createArray(xOrder * yOrder); // size x by y\n\n // first find the pseudoinverse matrix\n for (k = 0; k < numberOfSamples; k++) {\n for (i = 0; i < xOrder; i++) {\n // first calculate the XXt matrix, only do the upper half (symmetrical)\n for (j = i; j < xOrder; j++) {\n XXt[i * xOrder + j] += xt[k * xOrder + i] * xt[k * xOrder + j];\n }\n\n // now calculate the XYt matrix\n for (j = 0; j < yOrder; j++) {\n XYt[i * yOrder + j] += xt[k * xOrder + i] * yt[k * yOrder + j];\n }\n }\n }\n\n // now fill in the lower half of the XXt matrix\n for (i = 0; i < xOrder; i++) {\n for (j = 0; j < i; j++) {\n XXt[i * xOrder + j] = XXt[j * xOrder + i];\n }\n }\n const successFlag = invertMatrix(XXt, XXtI, xOrder);\n\n // next get the inverse of XXt\n if (successFlag) {\n for (i = 0; i < xOrder; i++) {\n for (j = 0; j < yOrder; j++) {\n mt[i * yOrder + j] = 0.0;\n for (k = 0; k < xOrder; k++) {\n mt[i * yOrder + j] += XXtI[i * xOrder + k] * XYt[k * yOrder + j];\n }\n }\n }\n }\n\n // Fix up any of the solutions that correspond to the homogeneous equation\n // problem.\n if (someHomogeneous) {\n for (j = 0; j < yOrder; j++) {\n if (homogenFlags[j]) {\n // Fix this one\n for (i = 0; i < xOrder; i++) {\n mt[i * yOrder + j] = hmt[i * yOrder];\n }\n }\n }\n }\n if (someHomogeneous) {\n return homogRC && successFlag;\n }\n return successFlag;\n}\nfunction hex2float(hexStr) {\n let outFloatArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0.5, 1];\n switch (hexStr.length) {\n case 3:\n // abc => #aabbcc\n outFloatArray[0] = parseInt(hexStr[0], 16) * 17 / 255;\n outFloatArray[1] = parseInt(hexStr[1], 16) * 17 / 255;\n outFloatArray[2] = parseInt(hexStr[2], 16) * 17 / 255;\n return outFloatArray;\n case 4:\n // #abc => #aabbcc\n outFloatArray[0] = parseInt(hexStr[1], 16) * 17 / 255;\n outFloatArray[1] = parseInt(hexStr[2], 16) * 17 / 255;\n outFloatArray[2] = parseInt(hexStr[3], 16) * 17 / 255;\n return outFloatArray;\n case 6:\n // ab01df => #ab01df\n outFloatArray[0] = parseInt(hexStr.substr(0, 2), 16) / 255;\n outFloatArray[1] = parseInt(hexStr.substr(2, 2), 16) / 255;\n outFloatArray[2] = parseInt(hexStr.substr(4, 2), 16) / 255;\n return outFloatArray;\n case 7:\n // #ab01df\n outFloatArray[0] = parseInt(hexStr.substr(1, 2), 16) / 255;\n outFloatArray[1] = parseInt(hexStr.substr(3, 2), 16) / 255;\n outFloatArray[2] = parseInt(hexStr.substr(5, 2), 16) / 255;\n return outFloatArray;\n case 9:\n // #ab01df00\n outFloatArray[0] = parseInt(hexStr.substr(1, 2), 16) / 255;\n outFloatArray[1] = parseInt(hexStr.substr(3, 2), 16) / 255;\n outFloatArray[2] = parseInt(hexStr.substr(5, 2), 16) / 255;\n outFloatArray[3] = parseInt(hexStr.substr(7, 2), 16) / 255;\n return outFloatArray;\n default:\n return outFloatArray;\n }\n}\nfunction rgb2hsv(rgb, hsv) {\n let h;\n let s;\n const [r, g, b] = rgb;\n const onethird = 1.0 / 3.0;\n const onesixth = 1.0 / 6.0;\n const twothird = 2.0 / 3.0;\n let cmax = r;\n let cmin = r;\n if (g > cmax) {\n cmax = g;\n } else if (g < cmin) {\n cmin = g;\n }\n if (b > cmax) {\n cmax = b;\n } else if (b < cmin) {\n cmin = b;\n }\n const v = cmax;\n if (v > 0.0) {\n s = (cmax - cmin) / cmax;\n } else {\n s = 0.0;\n }\n if (s > 0) {\n if (r === cmax) {\n h = onesixth * (g - b) / (cmax - cmin);\n } else if (g === cmax) {\n h = onethird + onesixth * (b - r) / (cmax - cmin);\n } else {\n h = twothird + onesixth * (r - g) / (cmax - cmin);\n }\n if (h < 0.0) {\n h += 1.0;\n }\n } else {\n h = 0.0;\n }\n\n // Set the values back to the array\n hsv[0] = h;\n hsv[1] = s;\n hsv[2] = v;\n}\nfunction hsv2rgb(hsv, rgb) {\n const [h, s, v] = hsv;\n const onethird = 1.0 / 3.0;\n const onesixth = 1.0 / 6.0;\n const twothird = 2.0 / 3.0;\n const fivesixth = 5.0 / 6.0;\n let r;\n let g;\n let b;\n\n // compute RGB from HSV\n if (h > onesixth && h <= onethird) {\n // green/red\n g = 1.0;\n r = (onethird - h) / onesixth;\n b = 0.0;\n } else if (h > onethird && h <= 0.5) {\n // green/blue\n g = 1.0;\n b = (h - onethird) / onesixth;\n r = 0.0;\n } else if (h > 0.5 && h <= twothird) {\n // blue/green\n b = 1.0;\n g = (twothird - h) / onesixth;\n r = 0.0;\n } else if (h > twothird && h <= fivesixth) {\n // blue/red\n b = 1.0;\n r = (h - twothird) / onesixth;\n g = 0.0;\n } else if (h > fivesixth && h <= 1.0) {\n // red/blue\n r = 1.0;\n b = (1.0 - h) / onesixth;\n g = 0.0;\n } else {\n // red/green\n r = 1.0;\n g = h / onesixth;\n b = 0.0;\n }\n\n // add Saturation to the equation.\n r = s * r + (1.0 - s);\n g = s * g + (1.0 - s);\n b = s * b + (1.0 - s);\n r *= v;\n g *= v;\n b *= v;\n\n // Assign back to the array\n rgb[0] = r;\n rgb[1] = g;\n rgb[2] = b;\n}\nfunction lab2xyz(lab, xyz) {\n // LAB to XYZ\n const [L, a, b] = lab;\n let var_Y = (L + 16) / 116;\n let var_X = a / 500 + var_Y;\n let var_Z = var_Y - b / 200;\n if (var_Y ** 3 > 0.008856) {\n var_Y **= 3;\n } else {\n var_Y = (var_Y - 16.0 / 116.0) / 7.787;\n }\n if (var_X ** 3 > 0.008856) {\n var_X **= 3;\n } else {\n var_X = (var_X - 16.0 / 116.0) / 7.787;\n }\n if (var_Z ** 3 > 0.008856) {\n var_Z **= 3;\n } else {\n var_Z = (var_Z - 16.0 / 116.0) / 7.787;\n }\n const ref_X = 0.9505;\n const ref_Y = 1.0;\n const ref_Z = 1.089;\n xyz[0] = ref_X * var_X; // ref_X = 0.9505 Observer= 2 deg Illuminant= D65\n xyz[1] = ref_Y * var_Y; // ref_Y = 1.000\n xyz[2] = ref_Z * var_Z; // ref_Z = 1.089\n}\n\nfunction xyz2lab(xyz, lab) {\n const [x, y, z] = xyz;\n const ref_X = 0.9505;\n const ref_Y = 1.0;\n const ref_Z = 1.089;\n let var_X = x / ref_X; // ref_X = 0.9505 Observer= 2 deg, Illuminant= D65\n let var_Y = y / ref_Y; // ref_Y = 1.000\n let var_Z = z / ref_Z; // ref_Z = 1.089\n\n if (var_X > 0.008856) var_X **= 1.0 / 3.0;else var_X = 7.787 * var_X + 16.0 / 116.0;\n if (var_Y > 0.008856) var_Y **= 1.0 / 3.0;else var_Y = 7.787 * var_Y + 16.0 / 116.0;\n if (var_Z > 0.008856) var_Z **= 1.0 / 3.0;else var_Z = 7.787 * var_Z + 16.0 / 116.0;\n lab[0] = 116 * var_Y - 16;\n lab[1] = 500 * (var_X - var_Y);\n lab[2] = 200 * (var_Y - var_Z);\n}\nfunction xyz2rgb(xyz, rgb) {\n const [x, y, z] = xyz;\n let r = x * 3.2406 + y * -1.5372 + z * -0.4986;\n let g = x * -0.9689 + y * 1.8758 + z * 0.0415;\n let b = x * 0.0557 + y * -0.204 + z * 1.057;\n\n // The following performs a \"gamma correction\" specified by the sRGB color\n // space. sRGB is defined by a canonical definition of a display monitor and\n // has been standardized by the International Electrotechnical Commission (IEC\n // 61966-2-1). The nonlinearity of the correction is designed to make the\n // colors more perceptually uniform. This color space has been adopted by\n // several applications including Adobe Photoshop and Microsoft Windows color\n // management. OpenGL is agnostic on its RGB color space, but it is reasonable\n // to assume it is close to this one.\n if (r > 0.0031308) r = 1.055 * r ** (1 / 2.4) - 0.055;else r *= 12.92;\n if (g > 0.0031308) g = 1.055 * g ** (1 / 2.4) - 0.055;else g *= 12.92;\n if (b > 0.0031308) b = 1.055 * b ** (1 / 2.4) - 0.055;else b *= 12.92;\n\n // Clip colors. ideally we would do something that is perceptually closest\n // (since we can see colors outside of the display gamut), but this seems to\n // work well enough.\n let maxVal = r;\n if (maxVal < g) maxVal = g;\n if (maxVal < b) maxVal = b;\n if (maxVal > 1.0) {\n r /= maxVal;\n g /= maxVal;\n b /= maxVal;\n }\n if (r < 0) r = 0;\n if (g < 0) g = 0;\n if (b < 0) b = 0;\n\n // Push values back to array\n rgb[0] = r;\n rgb[1] = g;\n rgb[2] = b;\n}\nfunction rgb2xyz(rgb, xyz) {\n let [r, g, b] = rgb;\n // The following performs a \"gamma correction\" specified by the sRGB color\n // space. sRGB is defined by a canonical definition of a display monitor and\n // has been standardized by the International Electrotechnical Commission (IEC\n // 61966-2-1). The nonlinearity of the correction is designed to make the\n // colors more perceptually uniform. This color space has been adopted by\n // several applications including Adobe Photoshop and Microsoft Windows color\n // management. OpenGL is agnostic on its RGB color space, but it is reasonable\n // to assume it is close to this one.\n if (r > 0.04045) r = ((r + 0.055) / 1.055) ** 2.4;else r /= 12.92;\n if (g > 0.04045) g = ((g + 0.055) / 1.055) ** 2.4;else g /= 12.92;\n if (b > 0.04045) b = ((b + 0.055) / 1.055) ** 2.4;else b /= 12.92;\n\n // Observer. = 2 deg, Illuminant = D65\n xyz[0] = r * 0.4124 + g * 0.3576 + b * 0.1805;\n xyz[1] = r * 0.2126 + g * 0.7152 + b * 0.0722;\n xyz[2] = r * 0.0193 + g * 0.1192 + b * 0.9505;\n}\nfunction rgb2lab(rgb, lab) {\n const xyz = [0, 0, 0];\n rgb2xyz(rgb, xyz);\n xyz2lab(xyz, lab);\n}\nfunction lab2rgb(lab, rgb) {\n const xyz = [0, 0, 0];\n lab2xyz(lab, xyz);\n xyz2rgb(xyz, rgb);\n}\nfunction uninitializeBounds(bounds) {\n bounds[0] = 1.0;\n bounds[1] = -1.0;\n bounds[2] = 1.0;\n bounds[3] = -1.0;\n bounds[4] = 1.0;\n bounds[5] = -1.0;\n return bounds;\n}\nfunction areBoundsInitialized(bounds) {\n return !(bounds[1] - bounds[0] < 0.0);\n}\n\n/**\n * @deprecated please use vtkBoundingBox.addPoints(vtkBoundingBox.reset([]), points)\n */\nfunction computeBoundsFromPoints(point1, point2, bounds) {\n bounds[0] = Math.min(point1[0], point2[0]);\n bounds[1] = Math.max(point1[0], point2[0]);\n bounds[2] = Math.min(point1[1], point2[1]);\n bounds[3] = Math.max(point1[1], point2[1]);\n bounds[4] = Math.min(point1[2], point2[2]);\n bounds[5] = Math.max(point1[2], point2[2]);\n return bounds;\n}\nfunction clampValue(value, minValue, maxValue) {\n if (value < minValue) {\n return minValue;\n }\n if (value > maxValue) {\n return maxValue;\n }\n return value;\n}\nfunction clampVector(vector, minVector, maxVector) {\n let out = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [0, 0, 0];\n out[0] = clampValue(vector[0], minVector[0], maxVector[0]);\n out[1] = clampValue(vector[1], minVector[1], maxVector[1]);\n out[2] = clampValue(vector[2], minVector[2], maxVector[2]);\n return out;\n}\nfunction clampAndNormalizeValue(value, range) {\n let result = 0;\n if (range[0] !== range[1]) {\n // clamp\n if (value < range[0]) {\n result = range[0];\n } else if (value > range[1]) {\n result = range[1];\n } else {\n result = value;\n }\n // normalize\n result = (result - range[0]) / (range[1] - range[0]);\n }\n return result;\n}\nconst getScalarTypeFittingRange = notImplemented('GetScalarTypeFittingRange');\nconst getAdjustedScalarRange = notImplemented('GetAdjustedScalarRange');\nfunction extentIsWithinOtherExtent(extent1, extent2) {\n if (!extent1 || !extent2) {\n return 0;\n }\n for (let i = 0; i < 6; i += 2) {\n if (extent1[i] < extent2[i] || extent1[i] > extent2[i + 1] || extent1[i + 1] < extent2[i] || extent1[i + 1] > extent2[i + 1]) {\n return 0;\n }\n }\n return 1;\n}\nfunction boundsIsWithinOtherBounds(bounds1_6, bounds2_6, delta_3) {\n if (!bounds1_6 || !bounds2_6) {\n return 0;\n }\n for (let i = 0; i < 6; i += 2) {\n if (bounds1_6[i] + delta_3[i / 2] < bounds2_6[i] || bounds1_6[i] - delta_3[i / 2] > bounds2_6[i + 1] || bounds1_6[i + 1] + delta_3[i / 2] < bounds2_6[i] || bounds1_6[i + 1] - delta_3[i / 2] > bounds2_6[i + 1]) {\n return 0;\n }\n }\n return 1;\n}\nfunction pointIsWithinBounds(point_3, bounds_6, delta_3) {\n if (!point_3 || !bounds_6 || !delta_3) {\n return 0;\n }\n for (let i = 0; i < 3; i++) {\n if (point_3[i] + delta_3[i] < bounds_6[2 * i] || point_3[i] - delta_3[i] > bounds_6[2 * i + 1]) {\n return 0;\n }\n }\n return 1;\n}\nfunction solve3PointCircle(p1, p2, p3, center) {\n const v21 = createArray(3);\n const v32 = createArray(3);\n const v13 = createArray(3);\n const v12 = createArray(3);\n const v23 = createArray(3);\n const v31 = createArray(3);\n for (let i = 0; i < 3; ++i) {\n v21[i] = p1[i] - p2[i];\n v32[i] = p2[i] - p3[i];\n v13[i] = p3[i] - p1[i];\n v12[i] = -v21[i];\n v23[i] = -v32[i];\n v31[i] = -v13[i];\n }\n const norm12 = norm(v12);\n const norm23 = norm(v23);\n const norm13 = norm(v13);\n const crossv21v32 = createArray(3);\n cross(v21, v32, crossv21v32);\n const normCross = norm(crossv21v32);\n const radius = norm12 * norm23 * norm13 / (2 * normCross);\n const normCross22 = 2 * normCross * normCross;\n const alpha = norm23 * norm23 * dot(v21, v31) / normCross22;\n const beta = norm13 * norm13 * dot(v12, v32) / normCross22;\n const gamma = norm12 * norm12 * dot(v13, v23) / normCross22;\n for (let i = 0; i < 3; ++i) {\n center[i] = alpha * p1[i] + beta * p2[i] + gamma * p3[i];\n }\n return radius;\n}\nconst inf = Infinity;\nconst negInf = -Infinity;\nconst isInf = value => !Number.isFinite(value);\nconst {\n isFinite,\n isNaN\n} = Number;\nconst isNan = isNaN;\n\n// JavaScript - add-on ----------------------\n\nfunction createUninitializedBounds() {\n return [].concat([Number.MAX_VALUE, -Number.MAX_VALUE,\n // X\n Number.MAX_VALUE, -Number.MAX_VALUE,\n // Y\n Number.MAX_VALUE, -Number.MAX_VALUE // Z\n ]);\n}\n\nfunction getMajorAxisIndex(vector) {\n let maxValue = -1;\n let axisIndex = -1;\n for (let i = 0; i < vector.length; i++) {\n const value = Math.abs(vector[i]);\n if (value > maxValue) {\n axisIndex = i;\n maxValue = value;\n }\n }\n return axisIndex;\n}\n\n// Return the closest orthogonal matrix of 1, -1 and 0\n// It works for both column major and row major matrices\n// This function iteratively associate a column with a row by choosing\n// the greatest absolute value from the remaining row and columns\n// For each association, a -1 or a 1 is set in the output, depending on\n// the sign of the value in the original matrix\nfunction getSparseOrthogonalMatrix(matrix) {\n let n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;\n // Initialize rows and columns to available indices\n const rows = new Array(n);\n const cols = new Array(n);\n for (let i = 0; i < n; ++i) {\n rows[i] = i;\n cols[i] = i;\n }\n // No need for the last iteration: i = 0\n for (let i = n - 1; i > 0; i--) {\n // Loop invariant:\n // rows[0:i] and cols[0:i] contain the remaining rows and columns\n // rows]i:n[ and cols]i:n[ contain the associations found (rows[k] is associated with cols[k])\n let bestValue = -Infinity;\n let bestRowI = 0;\n let bestColI = 0;\n for (let rowI = 0; rowI <= i; ++rowI) {\n const row = rows[rowI];\n for (let colI = 0; colI <= i; ++colI) {\n const col = cols[colI];\n const absVal = Math.abs(matrix[row + n * col]);\n if (absVal > bestValue) {\n bestValue = absVal;\n bestRowI = rowI;\n bestColI = colI;\n }\n }\n }\n // Found an association between rows[bestRowI] and cols[bestColI]\n // Put both at the end of their array by swapping with i\n [rows[i], rows[bestRowI]] = [rows[bestRowI], rows[i]];\n [cols[i], cols[bestColI]] = [cols[bestColI], cols[i]];\n }\n\n // Convert row/column association to a matrix\n const output = new Array(n * n).fill(0);\n for (let i = 0; i < n; ++i) {\n const matIdx = rows[i] + n * cols[i];\n output[matIdx] = matrix[matIdx] < 0 ? -1 : 1;\n }\n return output;\n}\nfunction floatToHex2(value) {\n const integer = Math.floor(value * 255);\n if (integer > 15) {\n return integer.toString(16);\n }\n return `0${integer.toString(16)}`;\n}\nfunction floatRGB2HexCode(rgbArray) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '#';\n return `${prefix}${rgbArray.map(floatToHex2).join('')}`;\n}\nfunction floatToChar(f) {\n return Math.round(f * 255);\n}\nfunction float2CssRGBA(rgbArray) {\n if (rgbArray.length === 3) {\n return `rgb(${rgbArray.map(floatToChar).join(', ')})`;\n }\n return `rgba(${floatToChar(rgbArray[0] || 0)}, ${floatToChar(rgbArray[1] || 0)}, ${floatToChar(rgbArray[2] || 0)}, ${rgbArray[3] || 0})`;\n}\n\n// ----------------------------------------------------------------------------\n// Only Static API\n// ----------------------------------------------------------------------------\n\nvar vtkMath = {\n Pi,\n ldexp,\n radiansFromDegrees,\n degreesFromRadians,\n round,\n floor,\n ceil,\n ceilLog2,\n min,\n max,\n arrayMin,\n arrayMax,\n arrayRange,\n isPowerOfTwo,\n nearestPowerOfTwo,\n factorial,\n binomial,\n beginCombination,\n nextCombination,\n randomSeed,\n getSeed,\n random,\n gaussian,\n add,\n subtract,\n multiplyScalar,\n multiplyScalar2D,\n multiplyAccumulate,\n multiplyAccumulate2D,\n dot,\n outer,\n cross,\n norm,\n normalize,\n perpendiculars,\n projectVector,\n projectVector2D,\n distance2BetweenPoints,\n angleBetweenVectors,\n gaussianAmplitude,\n gaussianWeight,\n dot2D,\n outer2D,\n norm2D,\n normalize2D,\n determinant2x2,\n LUFactor3x3,\n LUSolve3x3,\n linearSolve3x3,\n multiply3x3_vect3,\n multiply3x3_mat3,\n multiplyMatrix,\n transpose3x3,\n invert3x3,\n identity3x3,\n identity,\n isIdentity,\n isIdentity3x3,\n determinant3x3,\n quaternionToMatrix3x3,\n areEquals,\n areMatricesEqual,\n roundNumber,\n roundVector,\n matrix3x3ToQuaternion,\n multiplyQuaternion,\n orthogonalize3x3,\n diagonalize3x3,\n singularValueDecomposition3x3,\n solveLinearSystem,\n invertMatrix,\n luFactorLinearSystem,\n luSolveLinearSystem,\n estimateMatrixCondition,\n jacobi,\n jacobiN,\n solveHomogeneousLeastSquares,\n solveLeastSquares,\n hex2float,\n rgb2hsv,\n hsv2rgb,\n lab2xyz,\n xyz2lab,\n xyz2rgb,\n rgb2xyz,\n rgb2lab,\n lab2rgb,\n uninitializeBounds,\n areBoundsInitialized,\n computeBoundsFromPoints,\n clampValue,\n clampVector,\n clampAndNormalizeValue,\n getScalarTypeFittingRange,\n getAdjustedScalarRange,\n extentIsWithinOtherExtent,\n boundsIsWithinOtherBounds,\n pointIsWithinBounds,\n solve3PointCircle,\n inf,\n negInf,\n isInf,\n isNan: isNaN,\n isNaN,\n isFinite,\n // JS add-on\n createUninitializedBounds,\n getMajorAxisIndex,\n getSparseOrthogonalMatrix,\n floatToHex2,\n floatRGB2HexCode,\n float2CssRGBA\n};\n\nvar vtkMath$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createArray: createArray,\n Pi: Pi,\n ldexp: ldexp,\n radiansFromDegrees: radiansFromDegrees,\n degreesFromRadians: degreesFromRadians,\n round: round,\n floor: floor,\n ceil: ceil,\n min: min,\n max: max,\n arrayMin: arrayMin,\n arrayMax: arrayMax,\n arrayRange: arrayRange,\n ceilLog2: ceilLog2,\n factorial: factorial,\n nearestPowerOfTwo: nearestPowerOfTwo,\n isPowerOfTwo: isPowerOfTwo,\n binomial: binomial,\n beginCombination: beginCombination,\n nextCombination: nextCombination,\n randomSeed: randomSeed,\n getSeed: getSeed,\n random: random,\n gaussian: gaussian,\n add: add,\n subtract: subtract,\n multiplyScalar: multiplyScalar,\n multiplyScalar2D: multiplyScalar2D,\n multiplyAccumulate: multiplyAccumulate,\n multiplyAccumulate2D: multiplyAccumulate2D,\n dot: dot,\n outer: outer,\n cross: cross,\n norm: norm,\n normalize: normalize,\n perpendiculars: perpendiculars,\n projectVector: projectVector,\n dot2D: dot2D,\n projectVector2D: projectVector2D,\n distance2BetweenPoints: distance2BetweenPoints,\n angleBetweenVectors: angleBetweenVectors,\n signedAngleBetweenVectors: signedAngleBetweenVectors,\n gaussianAmplitude: gaussianAmplitude,\n gaussianWeight: gaussianWeight,\n outer2D: outer2D,\n norm2D: norm2D,\n normalize2D: normalize2D,\n rowsToMat4: rowsToMat4,\n columnsToMat4: columnsToMat4,\n rowsToMat3: rowsToMat3,\n columnsToMat3: columnsToMat3,\n determinant2x2: determinant2x2,\n LUFactor3x3: LUFactor3x3,\n LUSolve3x3: LUSolve3x3,\n linearSolve3x3: linearSolve3x3,\n multiply3x3_vect3: multiply3x3_vect3,\n multiply3x3_mat3: multiply3x3_mat3,\n multiplyMatrix: multiplyMatrix,\n transpose3x3: transpose3x3,\n invert3x3: invert3x3,\n determinant3x3: determinant3x3,\n areEquals: areEquals,\n areMatricesEqual: areMatricesEqual,\n identity3x3: identity3x3,\n identity: identity,\n isIdentity: isIdentity,\n isIdentity3x3: isIdentity3x3,\n quaternionToMatrix3x3: quaternionToMatrix3x3,\n roundNumber: roundNumber,\n roundVector: roundVector,\n jacobiN: jacobiN,\n matrix3x3ToQuaternion: matrix3x3ToQuaternion,\n multiplyQuaternion: multiplyQuaternion,\n orthogonalize3x3: orthogonalize3x3,\n diagonalize3x3: diagonalize3x3,\n singularValueDecomposition3x3: singularValueDecomposition3x3,\n luFactorLinearSystem: luFactorLinearSystem,\n luSolveLinearSystem: luSolveLinearSystem,\n solveLinearSystem: solveLinearSystem,\n invertMatrix: invertMatrix,\n estimateMatrixCondition: estimateMatrixCondition,\n jacobi: jacobi,\n solveHomogeneousLeastSquares: solveHomogeneousLeastSquares,\n solveLeastSquares: solveLeastSquares,\n hex2float: hex2float,\n rgb2hsv: rgb2hsv,\n hsv2rgb: hsv2rgb,\n lab2xyz: lab2xyz,\n xyz2lab: xyz2lab,\n xyz2rgb: xyz2rgb,\n rgb2xyz: rgb2xyz,\n rgb2lab: rgb2lab,\n lab2rgb: lab2rgb,\n uninitializeBounds: uninitializeBounds,\n areBoundsInitialized: areBoundsInitialized,\n computeBoundsFromPoints: computeBoundsFromPoints,\n clampValue: clampValue,\n clampVector: clampVector,\n clampAndNormalizeValue: clampAndNormalizeValue,\n getScalarTypeFittingRange: getScalarTypeFittingRange,\n getAdjustedScalarRange: getAdjustedScalarRange,\n extentIsWithinOtherExtent: extentIsWithinOtherExtent,\n boundsIsWithinOtherBounds: boundsIsWithinOtherBounds,\n pointIsWithinBounds: pointIsWithinBounds,\n solve3PointCircle: solve3PointCircle,\n inf: inf,\n negInf: negInf,\n isInf: isInf,\n isFinite: isFinite,\n isNaN: isNaN,\n isNan: isNan,\n createUninitializedBounds: createUninitializedBounds,\n getMajorAxisIndex: getMajorAxisIndex,\n getSparseOrthogonalMatrix: getSparseOrthogonalMatrix,\n floatToHex2: floatToHex2,\n floatRGB2HexCode: floatRGB2HexCode,\n float2CssRGBA: float2CssRGBA,\n 'default': vtkMath\n});\n\nexport { min as $, degreesFromRadians as A, ldexp as B, xyz2rgb as C, areEquals as D, clampValue as E, arrayRange as F, getMajorAxisIndex as G, createUninitializedBounds as H, identity as I, multiplyMatrix as J, floor as K, isInf as L, rgb2hsv as M, rgb2lab as N, lab2rgb as O, round as P, normalize2D as Q, nearestPowerOfTwo as R, multiply3x3_vect3 as S, getSparseOrthogonalMatrix as T, areBoundsInitialized as U, isPowerOfTwo as V, angleBetweenVectors as W, signedAngleBetweenVectors as X, createArray as Y, Pi as Z, ceil as _, areMatricesEqual as a, floatRGB2HexCode as a$, max as a0, arrayMin as a1, arrayMax as a2, ceilLog2 as a3, factorial as a4, binomial as a5, beginCombination as a6, nextCombination as a7, randomSeed as a8, getSeed as a9, multiplyQuaternion as aA, orthogonalize3x3 as aB, diagonalize3x3 as aC, singularValueDecomposition3x3 as aD, luFactorLinearSystem as aE, luSolveLinearSystem as aF, invertMatrix as aG, estimateMatrixCondition as aH, solveHomogeneousLeastSquares as aI, solveLeastSquares as aJ, hex2float as aK, lab2xyz as aL, xyz2lab as aM, rgb2xyz as aN, computeBoundsFromPoints as aO, clampAndNormalizeValue as aP, getScalarTypeFittingRange as aQ, getAdjustedScalarRange as aR, extentIsWithinOtherExtent as aS, boundsIsWithinOtherBounds as aT, pointIsWithinBounds as aU, solve3PointCircle as aV, inf as aW, negInf as aX, isFinite as aY, isNaN as aZ, floatToHex2 as a_, gaussian as aa, multiplyScalar2D as ab, multiplyAccumulate2D as ac, outer as ad, projectVector as ae, dot2D as af, projectVector2D as ag, gaussianAmplitude as ah, gaussianWeight as ai, outer2D as aj, norm2D as ak, rowsToMat4 as al, columnsToMat4 as am, columnsToMat3 as an, LUFactor3x3 as ao, LUSolve3x3 as ap, linearSolve3x3 as aq, multiply3x3_mat3 as ar, transpose3x3 as as, invert3x3 as at, identity3x3 as au, isIdentity as av, isIdentity3x3 as aw, quaternionToMatrix3x3 as ax, roundNumber as ay, matrix3x3ToQuaternion as az, roundVector as b, float2CssRGBA as b0, clampVector as c, dot as d, distance2BetweenPoints as e, vtkMath as f, solveLinearSystem as g, hsv2rgb as h, isNan as i, cross as j, add as k, normalize as l, multiplyAccumulate as m, norm as n, determinant2x2 as o, jacobiN as p, perpendiculars as q, radiansFromDegrees as r, subtract as s, jacobi as t, uninitializeBounds as u, vtkMath$1 as v, multiplyScalar as w, random as x, determinant3x3 as y, rowsToMat3 as z };\n","import { m as macro } from '../../macros2.js';\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\n// ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\n// ----------------------------------------------------------------------------\n// vtkImplicitFunction methods\n// ----------------------------------------------------------------------------\n\nfunction vtkImplicitFunction(publicAPI, model) {\n model.classHierarchy.push('vtkImplicitFunction');\n publicAPI.functionValue = xyz => {\n if (!model.transform) {\n return publicAPI.evaluateFunction(xyz);\n }\n const transformedXYZ = [];\n model.transform.transformPoint(xyz, transformedXYZ);\n return publicAPI.evaluateFunction(transformedXYZ);\n };\n publicAPI.evaluateFunction = _xyz => {\n macro.vtkErrorMacro('not implemented');\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\nconst DEFAULT_VALUES = {\n // transform : null\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Object methods\n macro.obj(publicAPI, model);\n macro.setGet(publicAPI, model, ['transform']);\n vtkImplicitFunction(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkImplicitFunction');\n\n// ----------------------------------------------------------------------------\n\nvar vtkImplicitFunction$1 = {\n newInstance,\n extend\n};\n\nexport { vtkImplicitFunction$1 as default, extend, newInstance };\n","import { s as subtract, d as dot, j as cross, k as add } from '../Core/Math/index.js';\nimport { m as macro } from '../../macros2.js';\nimport vtkImplicitFunction from './ImplicitFunction.js';\n\nconst PLANE_TOLERANCE = 1.0e-6;\nconst COINCIDE = 'coincide';\nconst DISJOINT = 'disjoint';\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\nfunction evaluate(normal, origin, x) {\n return normal[0] * (x[0] - origin[0]) + normal[1] * (x[1] - origin[1]) + normal[2] * (x[2] - origin[2]);\n}\nfunction distanceToPlane(x, origin, normal) {\n const distance = normal[0] * (x[0] - origin[0]) + normal[1] * (x[1] - origin[1]) + normal[2] * (x[2] - origin[2]);\n return Math.abs(distance);\n}\nfunction projectPoint(x, origin, normal, xproj) {\n const xo = [];\n subtract(x, origin, xo);\n const t = dot(normal, xo);\n xproj[0] = x[0] - t * normal[0];\n xproj[1] = x[1] - t * normal[1];\n xproj[2] = x[2] - t * normal[2];\n}\nfunction projectVector(v, normal, vproj) {\n const t = dot(v, normal);\n let n2 = dot(normal, normal);\n if (n2 === 0) {\n n2 = 1.0;\n }\n vproj[0] = v[0] - t * normal[0] / n2;\n vproj[1] = v[1] - t * normal[1] / n2;\n vproj[2] = v[2] - t * normal[2] / n2;\n return vproj;\n}\nfunction generalizedProjectPoint(x, origin, normal, xproj) {\n const xo = [];\n subtract(x, origin, xo);\n const t = dot(normal, xo);\n const n2 = dot(normal, normal);\n if (n2 !== 0) {\n xproj[0] = x[0] - t * normal[0] / n2;\n xproj[1] = x[1] - t * normal[1] / n2;\n xproj[2] = x[2] - t * normal[2] / n2;\n } else {\n xproj[0] = x[0];\n xproj[1] = x[1];\n xproj[2] = x[2];\n }\n}\nfunction intersectWithLine(p1, p2, origin, normal) {\n const outObj = {\n intersection: false,\n betweenPoints: false,\n t: Number.MAX_VALUE,\n x: []\n };\n const p21 = [];\n const p1Origin = [];\n // Compute line vector\n subtract(p2, p1, p21);\n subtract(origin, p1, p1Origin);\n\n // Compute denominator. If ~0, line and plane are parallel.\n // const num = vtkMath.dot(normal, origin) - vtkMath.dot(normal, p1);\n const num = dot(normal, p1Origin);\n const den = dot(normal, p21);\n\n // If denominator with respect to numerator is \"zero\", then the line and\n // plane are considered parallel.\n let fabsden;\n let fabstolerance;\n\n // Trying to avoid an expensive call to fabs()\n if (den < 0.0) {\n fabsden = -den;\n } else {\n fabsden = den;\n }\n if (num < 0.0) {\n fabstolerance = -num * PLANE_TOLERANCE;\n } else {\n fabstolerance = num * PLANE_TOLERANCE;\n }\n if (fabsden <= fabstolerance) {\n return outObj;\n }\n\n // Where on the line between p1 and p2 is the intersection\n // If between 0 and 1, it is between the two points. If < 0 it's before p1, if > 1 it's after p2\n outObj.t = num / den;\n outObj.x[0] = p1[0] + outObj.t * p21[0];\n outObj.x[1] = p1[1] + outObj.t * p21[1];\n outObj.x[2] = p1[2] + outObj.t * p21[2];\n outObj.intersection = true;\n outObj.betweenPoints = outObj.t >= 0.0 && outObj.t <= 1.0;\n return outObj;\n}\nfunction intersectWithPlane(plane1Origin, plane1Normal, plane2Origin, plane2Normal) {\n const outObj = {\n intersection: false,\n l0: [],\n l1: [],\n error: null\n };\n const cross$1 = [];\n cross(plane1Normal, plane2Normal, cross$1);\n const absCross = cross$1.map(n => Math.abs(n));\n\n // test if the two planes are parallel\n if (absCross[0] + absCross[1] + absCross[2] < PLANE_TOLERANCE) {\n // test if disjoint or coincide\n const v = [];\n subtract(plane1Origin, plane2Origin, v);\n if (dot(plane1Normal, v) === 0) {\n outObj.error = COINCIDE;\n } else {\n outObj.error = DISJOINT;\n }\n return outObj;\n }\n\n // Plane1 and Plane2 intersect in a line\n // first determine max abs coordinate of the cross product\n let maxc;\n if (absCross[0] > absCross[1] && absCross[0] > absCross[2]) {\n maxc = 'x';\n } else if (absCross[1] > absCross[2]) {\n maxc = 'y';\n } else {\n maxc = 'z';\n }\n\n // To get a point on the intersect line, zero the max coord, and solve for the other two\n const iP = []; // intersectionPoint\n // the constants in the 2 plane equations\n const d1 = -dot(plane1Normal, plane1Origin);\n const d2 = -dot(plane2Normal, plane2Origin);\n\n // eslint-disable-next-line default-case\n switch (maxc) {\n case 'x':\n // intersect with x=0\n iP[0] = 0;\n iP[1] = (d2 * plane1Normal[2] - d1 * plane2Normal[2]) / cross$1[0];\n iP[2] = (d1 * plane2Normal[1] - d2 * plane1Normal[1]) / cross$1[0];\n break;\n case 'y':\n // intersect with y=0\n iP[0] = (d1 * plane2Normal[2] - d2 * plane1Normal[2]) / cross$1[1];\n iP[1] = 0;\n iP[2] = (d2 * plane1Normal[0] - d1 * plane2Normal[0]) / cross$1[1];\n break;\n case 'z':\n // intersect with z=0\n iP[0] = (d2 * plane1Normal[1] - d1 * plane2Normal[1]) / cross$1[2];\n iP[1] = (d1 * plane2Normal[0] - d2 * plane1Normal[0]) / cross$1[2];\n iP[2] = 0;\n break;\n }\n outObj.l0 = iP;\n add(iP, cross$1, outObj.l1);\n outObj.intersection = true;\n return outObj;\n}\n\n// ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\nconst STATIC = {\n evaluate,\n distanceToPlane,\n projectPoint,\n projectVector,\n generalizedProjectPoint,\n intersectWithLine,\n intersectWithPlane,\n DISJOINT,\n COINCIDE\n};\n\n// ----------------------------------------------------------------------------\n// vtkPlane methods\n// ----------------------------------------------------------------------------\n\nfunction vtkPlane(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkPlane');\n publicAPI.distanceToPlane = x => distanceToPlane(x, model.origin, model.normal);\n publicAPI.projectPoint = (x, xproj) => {\n projectPoint(x, model.origin, model.normal, xproj);\n };\n publicAPI.projectVector = (v, vproj) => projectVector(v, model.normal, vproj);\n publicAPI.push = distance => {\n if (distance === 0.0) {\n return;\n }\n for (let i = 0; i < 3; i++) {\n model.origin[i] += distance * model.normal[i];\n }\n };\n publicAPI.generalizedProjectPoint = (x, xproj) => {\n generalizedProjectPoint(x, model.origin, model.normal, xproj);\n };\n publicAPI.evaluateFunction = (x, y, z) => {\n if (!Array.isArray(x)) {\n return model.normal[0] * (x - model.origin[0]) + model.normal[1] * (y - model.origin[1]) + model.normal[2] * (z - model.origin[2]);\n }\n return model.normal[0] * (x[0] - model.origin[0]) + model.normal[1] * (x[1] - model.origin[1]) + model.normal[2] * (x[2] - model.origin[2]);\n };\n publicAPI.evaluateGradient = xyz => {\n const retVal = [model.normal[0], model.normal[1], model.normal[2]];\n return retVal;\n };\n publicAPI.intersectWithLine = (p1, p2) => intersectWithLine(p1, p2, model.origin, model.normal);\n publicAPI.intersectWithPlane = (planeOrigin, planeNormal) => intersectWithPlane(planeOrigin, planeNormal, model.origin, model.normal);\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n normal: [0.0, 0.0, 1.0],\n origin: [0.0, 0.0, 0.0]\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Object methods\n vtkImplicitFunction.extend(publicAPI, model, initialValues);\n macro.setGetArray(publicAPI, model, ['normal', 'origin'], 3);\n vtkPlane(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkPlane');\n\n// ----------------------------------------------------------------------------\n\nvar vtkPlane$1 = {\n newInstance,\n extend,\n ...STATIC\n};\n\nexport { STATIC, vtkPlane$1 as default, extend, newInstance, vtkPlane };\n","import { d as dot } from '../Core/Math/index.js';\nimport { vec3 } from 'gl-matrix';\nimport vtkPlane from './Plane.js';\n\nconst INIT_BOUNDS = [Number.MAX_VALUE, -Number.MAX_VALUE,\n// X\nNumber.MAX_VALUE, -Number.MAX_VALUE,\n// Y\nNumber.MAX_VALUE, -Number.MAX_VALUE // Z\n];\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\nfunction equals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5];\n}\nfunction isValid(bounds) {\n return bounds?.length >= 6 && bounds[0] <= bounds[1] && bounds[2] <= bounds[3] && bounds[4] <= bounds[5];\n}\nfunction setBounds(bounds, otherBounds) {\n bounds[0] = otherBounds[0];\n bounds[1] = otherBounds[1];\n bounds[2] = otherBounds[2];\n bounds[3] = otherBounds[3];\n bounds[4] = otherBounds[4];\n bounds[5] = otherBounds[5];\n return bounds;\n}\nfunction reset(bounds) {\n return setBounds(bounds, INIT_BOUNDS);\n}\nfunction addPoint(bounds, x, y, z) {\n const [xMin, xMax, yMin, yMax, zMin, zMax] = bounds;\n bounds[0] = xMin < x ? xMin : x;\n bounds[1] = xMax > x ? xMax : x;\n bounds[2] = yMin < y ? yMin : y;\n bounds[3] = yMax > y ? yMax : y;\n bounds[4] = zMin < z ? zMin : z;\n bounds[5] = zMax > z ? zMax : z;\n return bounds;\n}\nfunction addPoints(bounds, points) {\n if (points.length === 0) {\n return bounds;\n }\n if (Array.isArray(points[0])) {\n for (let i = 0; i < points.length; ++i) {\n addPoint(bounds, ...points[i]);\n }\n } else {\n for (let i = 0; i < points.length; i += 3) {\n addPoint(bounds, ...points.slice(i, i + 3));\n }\n }\n return bounds;\n}\nfunction addBounds(bounds, xMin, xMax, yMin, yMax, zMin, zMax) {\n const [_xMin, _xMax, _yMin, _yMax, _zMin, _zMax] = bounds;\n if (zMax === undefined) {\n bounds[0] = Math.min(xMin[0], _xMin);\n bounds[1] = Math.max(xMin[1], _xMax);\n bounds[2] = Math.min(xMin[2], _yMin);\n bounds[3] = Math.max(xMin[3], _yMax);\n bounds[4] = Math.min(xMin[4], _zMin);\n bounds[5] = Math.max(xMin[5], _zMax);\n } else {\n bounds[0] = Math.min(xMin, _xMin);\n bounds[1] = Math.max(xMax, _xMax);\n bounds[2] = Math.min(yMin, _yMin);\n bounds[3] = Math.max(yMax, _yMax);\n bounds[4] = Math.min(zMin, _zMin);\n bounds[5] = Math.max(zMax, _zMax);\n }\n return bounds;\n}\nfunction setMinPoint(bounds, x, y, z) {\n const [xMin, xMax, yMin, yMax, zMin, zMax] = bounds;\n bounds[0] = x;\n bounds[1] = x > xMax ? x : xMax;\n bounds[2] = y;\n bounds[3] = y > yMax ? y : yMax;\n bounds[4] = z;\n bounds[5] = z > zMax ? z : zMax;\n return xMin !== x || yMin !== y || zMin !== z;\n}\nfunction setMaxPoint(bounds, x, y, z) {\n const [xMin, xMax, yMin, yMax, zMin, zMax] = bounds;\n bounds[0] = x < xMin ? x : xMin;\n bounds[1] = x;\n bounds[2] = y < yMin ? y : yMin;\n bounds[3] = y;\n bounds[4] = z < zMin ? z : zMin;\n bounds[5] = z;\n return xMax !== x || yMax !== y || zMax !== z;\n}\nfunction inflate(bounds, delta) {\n bounds[0] -= delta;\n bounds[1] += delta;\n bounds[2] -= delta;\n bounds[3] += delta;\n bounds[4] -= delta;\n bounds[5] += delta;\n return bounds;\n}\nfunction scale(bounds, sx, sy, sz) {\n if (!isValid(bounds)) {\n return false;\n }\n if (sx >= 0.0) {\n bounds[0] *= sx;\n bounds[1] *= sx;\n } else {\n bounds[0] = sx * bounds[1];\n bounds[1] = sx * bounds[0];\n }\n if (sy >= 0.0) {\n bounds[2] *= sy;\n bounds[3] *= sy;\n } else {\n bounds[2] = sy * bounds[3];\n bounds[3] = sy * bounds[2];\n }\n if (sz >= 0.0) {\n bounds[4] *= sz;\n bounds[5] *= sz;\n } else {\n bounds[4] = sz * bounds[5];\n bounds[5] = sz * bounds[4];\n }\n return true;\n}\nfunction getCenter(bounds) {\n return [0.5 * (bounds[0] + bounds[1]), 0.5 * (bounds[2] + bounds[3]), 0.5 * (bounds[4] + bounds[5])];\n}\nfunction scaleAboutCenter(bounds, sx, sy, sz) {\n if (!isValid(bounds)) {\n return false;\n }\n const center = getCenter(bounds);\n bounds[0] -= center[0];\n bounds[1] -= center[0];\n bounds[2] -= center[1];\n bounds[3] -= center[1];\n bounds[4] -= center[2];\n bounds[5] -= center[2];\n scale(bounds, sx, sy, sz);\n bounds[0] += center[0];\n bounds[1] += center[0];\n bounds[2] += center[1];\n bounds[3] += center[1];\n bounds[4] += center[2];\n bounds[5] += center[2];\n return true;\n}\nfunction getLength(bounds, index) {\n return bounds[index * 2 + 1] - bounds[index * 2];\n}\nfunction getLengths(bounds) {\n return [getLength(bounds, 0), getLength(bounds, 1), getLength(bounds, 2)];\n}\nfunction getXRange(bounds) {\n return bounds.slice(0, 2);\n}\nfunction getYRange(bounds) {\n return bounds.slice(2, 4);\n}\nfunction getZRange(bounds) {\n return bounds.slice(4, 6);\n}\nfunction getMaxLength(bounds) {\n const l = getLengths(bounds);\n if (l[0] > l[1]) {\n if (l[0] > l[2]) {\n return l[0];\n }\n return l[2];\n }\n if (l[1] > l[2]) {\n return l[1];\n }\n return l[2];\n}\nfunction getDiagonalLength(bounds) {\n if (isValid(bounds)) {\n const l = getLengths(bounds);\n return Math.sqrt(l[0] * l[0] + l[1] * l[1] + l[2] * l[2]);\n }\n return null;\n}\nfunction getMinPoint(bounds) {\n return [bounds[0], bounds[2], bounds[4]];\n}\nfunction getMaxPoint(bounds) {\n return [bounds[1], bounds[3], bounds[5]];\n}\nfunction oppositeSign(a, b) {\n return a <= 0 && b >= 0 || a >= 0 && b <= 0;\n}\nfunction getCorners(bounds, corners) {\n let count = 0;\n for (let ix = 0; ix < 2; ix++) {\n for (let iy = 2; iy < 4; iy++) {\n for (let iz = 4; iz < 6; iz++) {\n corners[count++] = [bounds[ix], bounds[iy], bounds[iz]];\n }\n }\n }\n return corners;\n}\n\n// Computes the two corners with minimal and maximal coordinates\nfunction computeCornerPoints(bounds, point1, point2) {\n point1[0] = bounds[0];\n point1[1] = bounds[2];\n point1[2] = bounds[4];\n point2[0] = bounds[1];\n point2[1] = bounds[3];\n point2[2] = bounds[5];\n return point1;\n}\nfunction transformBounds(bounds, transform) {\n let out = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n const corners = getCorners(bounds, []);\n for (let i = 0; i < corners.length; ++i) {\n vec3.transformMat4(corners[i], corners[i], transform);\n }\n reset(out);\n return addPoints(out, corners);\n}\nfunction computeScale3(bounds) {\n let scale3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n scale3[0] = 0.5 * (bounds[1] - bounds[0]);\n scale3[1] = 0.5 * (bounds[3] - bounds[2]);\n scale3[2] = 0.5 * (bounds[5] - bounds[4]);\n return scale3;\n}\n\n/**\n * Compute local bounds.\n * Not as fast as vtkPoints.getBounds() if u, v, w form a natural basis.\n * @param {vtkPoints} points\n * @param {array} u first vector\n * @param {array} v second vector\n * @param {array} w third vector\n */\nfunction computeLocalBounds(points, u, v, w) {\n const bounds = [].concat(INIT_BOUNDS);\n const pointsData = points.getData();\n for (let i = 0; i < pointsData.length; i += 3) {\n const point = [pointsData[i], pointsData[i + 1], pointsData[i + 2]];\n const du = dot(point, u);\n bounds[0] = Math.min(du, bounds[0]);\n bounds[1] = Math.max(du, bounds[1]);\n const dv = dot(point, v);\n bounds[2] = Math.min(dv, bounds[2]);\n bounds[3] = Math.max(dv, bounds[3]);\n const dw = dot(point, w);\n bounds[4] = Math.min(dw, bounds[4]);\n bounds[5] = Math.max(dw, bounds[5]);\n }\n return bounds;\n}\n\n// The method returns a non-zero value if the bounding box is hit.\n// Origin[3] starts the ray, dir[3] is the vector components of the ray in the x-y-z\n// directions, coord[3] is the location of hit, and t is the parametric\n// coordinate along line. (Notes: the intersection ray dir[3] is NOT\n// normalized. Valid intersections will only occur between 0<=t<=1.)\nfunction intersectBox(bounds, origin, dir, coord, tolerance) {\n let inside = true;\n const quadrant = [];\n let whichPlane = 0;\n const maxT = [];\n const candidatePlane = [0.0, 0.0, 0.0];\n const RIGHT = 0;\n const LEFT = 1;\n const MIDDLE = 2;\n\n // First find closest planes\n for (let i = 0; i < 3; i++) {\n if (origin[i] < bounds[2 * i]) {\n quadrant[i] = LEFT;\n candidatePlane[i] = bounds[2 * i];\n inside = false;\n } else if (origin[i] > bounds[2 * i + 1]) {\n quadrant[i] = RIGHT;\n candidatePlane[i] = bounds[2 * i + 1];\n inside = false;\n } else {\n quadrant[i] = MIDDLE;\n }\n }\n\n // Check whether origin of ray is inside bbox\n if (inside) {\n coord[0] = origin[0];\n coord[1] = origin[1];\n coord[2] = origin[2];\n tolerance[0] = 0;\n return 1;\n }\n\n // Calculate parametric distance to plane\n for (let i = 0; i < 3; i++) {\n if (quadrant[i] !== MIDDLE && dir[i] !== 0.0) {\n maxT[i] = (candidatePlane[i] - origin[i]) / dir[i];\n } else {\n maxT[i] = -1.0;\n }\n }\n\n // Find the largest parametric value of intersection\n for (let i = 0; i < 3; i++) {\n if (maxT[whichPlane] < maxT[i]) {\n whichPlane = i;\n }\n }\n\n // Check for value intersection along line\n if (maxT[whichPlane] > 1.0 || maxT[whichPlane] < 0.0) {\n return 0;\n }\n tolerance[0] = maxT[whichPlane];\n\n // Intersection point along line is okay. Check bbox.\n for (let i = 0; i < 3; i++) {\n if (whichPlane !== i) {\n coord[i] = origin[i] + maxT[whichPlane] * dir[i];\n if (coord[i] < bounds[2 * i] || coord[i] > bounds[2 * i + 1]) {\n return 0;\n }\n } else {\n coord[i] = candidatePlane[i];\n }\n }\n return 1;\n}\n\n// Plane intersection with box\n// The plane is infinite in extent and defined by an origin and normal.The function indicates\n// whether the plane intersects, not the particulars of intersection points and such\n// The function returns non-zero if the plane and box intersect; zero otherwise.\nfunction intersectPlane(bounds, origin, normal) {\n const p = [];\n let d = 0;\n let sign = 1;\n let firstOne = 1;\n\n // Evaluate the eight points. If there is a sign change, there is an intersection\n for (let z = 4; z <= 5; ++z) {\n p[2] = bounds[z];\n for (let y = 2; y <= 3; ++y) {\n p[1] = bounds[y];\n for (let x = 0; x <= 1; ++x) {\n p[0] = bounds[x];\n d = vtkPlane.evaluate(normal, origin, p);\n if (firstOne) {\n sign = d >= 0 ? 1 : -1;\n firstOne = 0;\n }\n if (d === 0.0 || sign > 0 && d < 0.0 || sign < 0 && d > 0.0) {\n return 1;\n }\n }\n }\n }\n return 0; // no intersection\n}\n\nfunction intersect(bounds, bBounds) {\n if (!(isValid(bounds) && isValid(bBounds))) {\n return false;\n }\n const newBounds = [0, 0, 0, 0, 0, 0];\n let intersection;\n for (let i = 0; i < 3; i++) {\n intersection = false;\n if (bBounds[i * 2] >= bounds[i * 2] && bBounds[i * 2] <= bounds[i * 2 + 1]) {\n intersection = true;\n newBounds[i * 2] = bBounds[i * 2];\n } else if (bounds[i * 2] >= bBounds[i * 2] && bounds[i * 2] <= bBounds[i * 2 + 1]) {\n intersection = true;\n newBounds[i * 2] = bounds[i * 2];\n }\n if (bBounds[i * 2 + 1] >= bounds[i * 2] && bBounds[i * 2 + 1] <= bounds[i * 2 + 1]) {\n intersection = true;\n newBounds[i * 2 + 1] = bBounds[2 * i + 1];\n } else if (bounds[i * 2 + 1] >= bBounds[i * 2] && bounds[i * 2 + 1] <= bBounds[i * 2 + 1]) {\n intersection = true;\n newBounds[i * 2 + 1] = bounds[i * 2 + 1];\n }\n if (!intersection) {\n return false;\n }\n }\n\n // OK they did intersect - set the box to be the result\n bounds[0] = newBounds[0];\n bounds[1] = newBounds[1];\n bounds[2] = newBounds[2];\n bounds[3] = newBounds[3];\n bounds[4] = newBounds[4];\n bounds[5] = newBounds[5];\n return true;\n}\nfunction intersects(bounds, bBounds) {\n if (!(isValid(bounds) && isValid(bBounds))) {\n return false;\n }\n /* eslint-disable no-continue */\n for (let i = 0; i < 3; i++) {\n if (bBounds[i * 2] >= bounds[i * 2] && bBounds[i * 2] <= bounds[i * 2 + 1]) {\n continue;\n } else if (bounds[i * 2] >= bBounds[i * 2] && bounds[i * 2] <= bBounds[i * 2 + 1]) {\n continue;\n }\n if (bBounds[i * 2 + 1] >= bounds[i * 2] && bBounds[i * 2 + 1] <= bounds[i * 2 + 1]) {\n continue;\n } else if (bounds[i * 2 + 1] >= bBounds[i * 2] && bounds[i * 2 + 1] <= bBounds[i * 2 + 1]) {\n continue;\n }\n return false;\n }\n /* eslint-enable no-continue */\n\n return true;\n}\nfunction containsPoint(bounds, x, y, z) {\n if (x < bounds[0] || x > bounds[1]) {\n return false;\n }\n if (y < bounds[2] || y > bounds[3]) {\n return false;\n }\n if (z < bounds[4] || z > bounds[5]) {\n return false;\n }\n return true;\n}\nfunction contains(bounds, otherBounds) {\n // if either box is not valid or they don't intersect\n if (!intersects(bounds, otherBounds)) {\n return false;\n }\n if (!containsPoint(bounds, ...getMinPoint(otherBounds))) {\n return false;\n }\n if (!containsPoint(bounds, ...getMaxPoint(otherBounds))) {\n return false;\n }\n return true;\n}\n\n/**\n * Returns true if plane intersects bounding box.\n * If so, the box is cut by the plane\n * @param {array} origin\n * @param {array} normal\n */\nfunction cutWithPlane(bounds, origin, normal) {\n // Index[0..2] represents the order of traversing the corners of a cube\n // in (x,y,z), (y,x,z) and (z,x,y) ordering, respectively\n const index = [[0, 1, 2, 3, 4, 5, 6, 7], [0, 1, 4, 5, 2, 3, 6, 7], [0, 2, 4, 6, 1, 3, 5, 7]];\n\n // stores the signed distance to a plane\n const d = [0, 0, 0, 0, 0, 0, 0, 0];\n let idx = 0;\n for (let ix = 0; ix < 2; ix++) {\n for (let iy = 2; iy < 4; iy++) {\n for (let iz = 4; iz < 6; iz++) {\n const x = [bounds[ix], bounds[iy], bounds[iz]];\n d[idx++] = vtkPlane.evaluate(normal, origin, x);\n }\n }\n }\n let dir = 2;\n while (dir--) {\n // in each direction, we test if the vertices of two orthogonal faces\n // are on either side of the plane\n if (oppositeSign(d[index[dir][0]], d[index[dir][4]]) && oppositeSign(d[index[dir][1]], d[index[dir][5]]) && oppositeSign(d[index[dir][2]], d[index[dir][6]]) && oppositeSign(d[index[dir][3]], d[index[dir][7]])) {\n break;\n }\n }\n if (dir < 0) {\n return false;\n }\n const sign = Math.sign(normal[dir]);\n const size = Math.abs((bounds[dir * 2 + 1] - bounds[dir * 2]) * normal[dir]);\n let t = sign > 0 ? 1 : 0;\n /* eslint-disable no-continue */\n for (let i = 0; i < 4; i++) {\n if (size === 0) {\n continue; // shouldn't happen\n }\n\n const ti = Math.abs(d[index[dir][i]]) / size;\n if (sign > 0 && ti < t) {\n t = ti;\n }\n if (sign < 0 && ti > t) {\n t = ti;\n }\n }\n /* eslint-enable no-continue */\n const bound = (1.0 - t) * bounds[dir * 2] + t * bounds[dir * 2 + 1];\n if (sign > 0) {\n bounds[dir * 2] = bound;\n } else {\n bounds[dir * 2 + 1] = bound;\n }\n return true;\n}\n\n// ----------------------------------------------------------------------------\n// Light Weight class\n// ----------------------------------------------------------------------------\n\nclass BoundingBox {\n constructor(refBounds) {\n this.bounds = refBounds;\n if (!this.bounds) {\n this.bounds = new Float64Array(INIT_BOUNDS);\n }\n }\n getBounds() {\n return this.bounds;\n }\n equals(otherBounds) {\n return equals(this.bounds, otherBounds);\n }\n isValid() {\n return isValid(this.bounds);\n }\n setBounds(otherBounds) {\n return setBounds(this.bounds, otherBounds);\n }\n reset() {\n return reset(this.bounds);\n }\n addPoint() {\n for (var _len = arguments.length, xyz = new Array(_len), _key = 0; _key < _len; _key++) {\n xyz[_key] = arguments[_key];\n }\n return addPoint(this.bounds, ...xyz);\n }\n addPoints(points) {\n return addPoints(this.bounds, points);\n }\n addBounds(xMin, xMax, yMin, yMax, zMin, zMax) {\n return addBounds(this.bounds, xMin, xMax, yMin, yMax, zMin, zMax);\n }\n setMinPoint(x, y, z) {\n return setMinPoint(this.bounds, x, y, z);\n }\n setMaxPoint(x, y, z) {\n return setMaxPoint(this.bounds, x, y, z);\n }\n inflate(delta) {\n return inflate(this.bounds, delta);\n }\n scale(sx, sy, sz) {\n return scale(this.bounds, sx, sy, sz);\n }\n getCenter() {\n return getCenter(this.bounds);\n }\n getLength(index) {\n return getLength(this.bounds, index);\n }\n getLengths() {\n return getLengths(this.bounds);\n }\n getMaxLength() {\n return getMaxLength(this.bounds);\n }\n getDiagonalLength() {\n return getDiagonalLength(this.bounds);\n }\n getMinPoint() {\n return getMinPoint(this.bounds);\n }\n getMaxPoint() {\n return getMaxPoint(this.bounds);\n }\n getXRange() {\n return getXRange(this.bounds);\n }\n getYRange() {\n return getYRange(this.bounds);\n }\n getZRange() {\n return getZRange(this.bounds);\n }\n getCorners(corners) {\n return getCorners(this.bounds, corners);\n }\n computeCornerPoints(point1, point2) {\n return computeCornerPoints(this.bounds, point1, point2);\n }\n computeLocalBounds(u, v, w) {\n return computeLocalBounds(this.bounds, u, v, w);\n }\n transformBounds(transform) {\n let out = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return transformBounds(this.bounds, transform, out);\n }\n computeScale3(scale3) {\n return computeScale3(this.bounds, scale3);\n }\n cutWithPlane(origin, normal) {\n return cutWithPlane(this.bounds, origin, normal);\n }\n intersectBox(origin, dir, coord, tolerance) {\n return intersectBox(this.bounds, origin, dir, coord, tolerance);\n }\n intersectPlane(origin, normal) {\n return intersectPlane(this.bounds, origin, normal);\n }\n intersect(otherBounds) {\n return intersect(this.bounds, otherBounds);\n }\n intersects(otherBounds) {\n return intersects(this.bounds, otherBounds);\n }\n containsPoint(x, y, z) {\n return containsPoint(this.bounds, x, y, z);\n }\n contains(otherBounds) {\n return intersects(this.bounds, otherBounds);\n }\n}\nfunction newInstance(initialValues) {\n const bounds = initialValues && initialValues.bounds;\n return new BoundingBox(bounds);\n}\n\n// ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\nconst STATIC = {\n equals,\n isValid,\n setBounds,\n reset,\n addPoint,\n addPoints,\n addBounds,\n setMinPoint,\n setMaxPoint,\n inflate,\n scale,\n scaleAboutCenter,\n getCenter,\n getLength,\n getLengths,\n getMaxLength,\n getDiagonalLength,\n getMinPoint,\n getMaxPoint,\n getXRange,\n getYRange,\n getZRange,\n getCorners,\n computeCornerPoints,\n computeLocalBounds,\n transformBounds,\n computeScale3,\n cutWithPlane,\n intersectBox,\n intersectPlane,\n intersect,\n intersects,\n containsPoint,\n contains,\n INIT_BOUNDS\n};\nvar vtkBoundingBox = {\n newInstance,\n ...STATIC\n};\n\nexport { STATIC, addBounds, addPoint, addPoints, computeCornerPoints, computeLocalBounds, computeScale3, contains, containsPoint, cutWithPlane, vtkBoundingBox as default, equals, getCenter, getCorners, getDiagonalLength, getLength, getLengths, getMaxLength, getMaxPoint, getMinPoint, getXRange, getYRange, getZRange, inflate, intersect, intersectBox, intersectPlane, intersects, isValid, reset, scale, scaleAboutCenter, setBounds, setMaxPoint, setMinPoint, transformBounds };\n","import * as glMatrix from \"./common.js\";\n/**\n * 3x3 Matrix\n * @module mat3\n */\n\n/**\n * Creates a new identity mat3\n *\n * @returns {mat3} a new 3x3 matrix\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(9);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n }\n\n out[0] = 1;\n out[4] = 1;\n out[8] = 1;\n return out;\n}\n/**\n * Copies the upper-left 3x3 values into the given mat3.\n *\n * @param {mat3} out the receiving 3x3 matrix\n * @param {ReadonlyMat4} a the source 4x4 matrix\n * @returns {mat3} out\n */\n\nexport function fromMat4(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[4];\n out[4] = a[5];\n out[5] = a[6];\n out[6] = a[8];\n out[7] = a[9];\n out[8] = a[10];\n return out;\n}\n/**\n * Creates a new mat3 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat3} a matrix to clone\n * @returns {mat3} a new 3x3 matrix\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(9);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\n * Copy the values from one mat3 to another\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\n * Create a new mat3 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} A new mat3\n */\n\nexport function fromValues(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n var out = new glMatrix.ARRAY_TYPE(9);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n/**\n * Set the components of a mat3 to the given values\n *\n * @param {mat3} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} out\n */\n\nexport function set(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n/**\n * Set a mat3 to the identity matrix\n *\n * @param {mat3} out the receiving matrix\n * @returns {mat3} out\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\n * Transpose the values of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1],\n a02 = a[2],\n a12 = a[5];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a01;\n out[5] = a[7];\n out[6] = a02;\n out[7] = a12;\n } else {\n out[0] = a[0];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a[1];\n out[4] = a[4];\n out[5] = a[7];\n out[6] = a[2];\n out[7] = a[5];\n out[8] = a[8];\n }\n\n return out;\n}\n/**\n * Inverts a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nexport function invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n var b01 = a22 * a11 - a12 * a21;\n var b11 = -a22 * a10 + a12 * a20;\n var b21 = a21 * a10 - a11 * a20; // Calculate the determinant\n\n var det = a00 * b01 + a01 * b11 + a02 * b21;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = b01 * det;\n out[1] = (-a22 * a01 + a02 * a21) * det;\n out[2] = (a12 * a01 - a02 * a11) * det;\n out[3] = b11 * det;\n out[4] = (a22 * a00 - a02 * a20) * det;\n out[5] = (-a12 * a00 + a02 * a10) * det;\n out[6] = b21 * det;\n out[7] = (-a21 * a00 + a01 * a20) * det;\n out[8] = (a11 * a00 - a01 * a10) * det;\n return out;\n}\n/**\n * Calculates the adjugate of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\n\nexport function adjoint(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n out[0] = a11 * a22 - a12 * a21;\n out[1] = a02 * a21 - a01 * a22;\n out[2] = a01 * a12 - a02 * a11;\n out[3] = a12 * a20 - a10 * a22;\n out[4] = a00 * a22 - a02 * a20;\n out[5] = a02 * a10 - a00 * a12;\n out[6] = a10 * a21 - a11 * a20;\n out[7] = a01 * a20 - a00 * a21;\n out[8] = a00 * a11 - a01 * a10;\n return out;\n}\n/**\n * Calculates the determinant of a mat3\n *\n * @param {ReadonlyMat3} a the source matrix\n * @returns {Number} determinant of a\n */\n\nexport function determinant(a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);\n}\n/**\n * Multiplies two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\n\nexport function multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n var b00 = b[0],\n b01 = b[1],\n b02 = b[2];\n var b10 = b[3],\n b11 = b[4],\n b12 = b[5];\n var b20 = b[6],\n b21 = b[7],\n b22 = b[8];\n out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n return out;\n}\n/**\n * Translate a mat3 by the given vector\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to translate\n * @param {ReadonlyVec2} v vector to translate by\n * @returns {mat3} out\n */\n\nexport function translate(out, a, v) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a10 = a[3],\n a11 = a[4],\n a12 = a[5],\n a20 = a[6],\n a21 = a[7],\n a22 = a[8],\n x = v[0],\n y = v[1];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a10;\n out[4] = a11;\n out[5] = a12;\n out[6] = x * a00 + y * a10 + a20;\n out[7] = x * a01 + y * a11 + a21;\n out[8] = x * a02 + y * a12 + a22;\n return out;\n}\n/**\n * Rotates a mat3 by the given angle\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\n\nexport function rotate(out, a, rad) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a10 = a[3],\n a11 = a[4],\n a12 = a[5],\n a20 = a[6],\n a21 = a[7],\n a22 = a[8],\n s = Math.sin(rad),\n c = Math.cos(rad);\n out[0] = c * a00 + s * a10;\n out[1] = c * a01 + s * a11;\n out[2] = c * a02 + s * a12;\n out[3] = c * a10 - s * a00;\n out[4] = c * a11 - s * a01;\n out[5] = c * a12 - s * a02;\n out[6] = a20;\n out[7] = a21;\n out[8] = a22;\n return out;\n}\n/**\n * Scales the mat3 by the dimensions in the given vec2\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to rotate\n * @param {ReadonlyVec2} v the vec2 to scale the matrix by\n * @returns {mat3} out\n **/\n\nexport function scale(out, a, v) {\n var x = v[0],\n y = v[1];\n out[0] = x * a[0];\n out[1] = x * a[1];\n out[2] = x * a[2];\n out[3] = y * a[3];\n out[4] = y * a[4];\n out[5] = y * a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.translate(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Translation vector\n * @returns {mat3} out\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = v[0];\n out[7] = v[1];\n out[8] = 1;\n return out;\n}\n/**\n * Creates a matrix from a given angle\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.rotate(dest, dest, rad);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\n\nexport function fromRotation(out, rad) {\n var s = Math.sin(rad),\n c = Math.cos(rad);\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = -s;\n out[4] = c;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.scale(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Scaling vector\n * @returns {mat3} out\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = v[1];\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\n * Copies the values from a mat2d into a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat2d} a the matrix to copy\n * @returns {mat3} out\n **/\n\nexport function fromMat2d(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = 0;\n out[3] = a[2];\n out[4] = a[3];\n out[5] = 0;\n out[6] = a[4];\n out[7] = a[5];\n out[8] = 1;\n return out;\n}\n/**\n * Calculates a 3x3 matrix from the given quaternion\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat3} out\n */\n\nexport function fromQuat(out, q) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[3] = yx - wz;\n out[6] = zx + wy;\n out[1] = yx + wz;\n out[4] = 1 - xx - zz;\n out[7] = zy - wx;\n out[2] = zx - wy;\n out[5] = zy + wx;\n out[8] = 1 - xx - yy;\n return out;\n}\n/**\n * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyMat4} a Mat4 to derive the normal matrix from\n *\n * @returns {mat3} out\n */\n\nexport function normalFromMat4(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n return out;\n}\n/**\n * Generates a 2D projection matrix with the given bounds\n *\n * @param {mat3} out mat3 frustum matrix will be written into\n * @param {number} width Width of your gl context\n * @param {number} height Height of gl context\n * @returns {mat3} out\n */\n\nexport function projection(out, width, height) {\n out[0] = 2 / width;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = -2 / height;\n out[5] = 0;\n out[6] = -1;\n out[7] = 1;\n out[8] = 1;\n return out;\n}\n/**\n * Returns a string representation of a mat3\n *\n * @param {ReadonlyMat3} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\n\nexport function str(a) {\n return \"mat3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \")\";\n}\n/**\n * Returns Frobenius norm of a mat3\n *\n * @param {ReadonlyMat3} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);\n}\n/**\n * Adds two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n return out;\n}\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n return out;\n}\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat3} out\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n return out;\n}\n/**\n * Adds two mat3's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat3} out the receiving vector\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat3} out\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n return out;\n}\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8];\n}\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3],\n a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7],\n a8 = a[8];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8));\n}\n/**\n * Alias for {@link mat3.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link mat3.subtract}\n * @function\n */\n\nexport var sub = subtract;","import * as glMatrix from \"./common.js\";\n/**\n * 4 Dimensional Vector\n * @module vec4\n */\n\n/**\n * Creates a new, empty vec4\n *\n * @returns {vec4} a new 4D vector\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(4);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n }\n\n return out;\n}\n/**\n * Creates a new vec4 initialized with values from an existing vector\n *\n * @param {ReadonlyVec4} a vector to clone\n * @returns {vec4} a new 4D vector\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(4);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n/**\n * Creates a new vec4 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {vec4} a new 4D vector\n */\n\nexport function fromValues(x, y, z, w) {\n var out = new glMatrix.ARRAY_TYPE(4);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n}\n/**\n * Copy the values from one vec4 to another\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the source vector\n * @returns {vec4} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n/**\n * Set the components of a vec4 to the given values\n *\n * @param {vec4} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {vec4} out\n */\n\nexport function set(out, x, y, z, w) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n}\n/**\n * Adds two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n return out;\n}\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n return out;\n}\n/**\n * Multiplies two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n out[3] = a[3] * b[3];\n return out;\n}\n/**\n * Divides two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n out[3] = a[3] / b[3];\n return out;\n}\n/**\n * Math.ceil the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to ceil\n * @returns {vec4} out\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n out[3] = Math.ceil(a[3]);\n return out;\n}\n/**\n * Math.floor the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to floor\n * @returns {vec4} out\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n out[3] = Math.floor(a[3]);\n return out;\n}\n/**\n * Returns the minimum of two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n out[3] = Math.min(a[3], b[3]);\n return out;\n}\n/**\n * Returns the maximum of two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n out[3] = Math.max(a[3], b[3]);\n return out;\n}\n/**\n * Math.round the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to round\n * @returns {vec4} out\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n out[3] = Math.round(a[3]);\n return out;\n}\n/**\n * Scales a vec4 by a scalar number\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec4} out\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n return out;\n}\n/**\n * Adds two vec4's after scaling the second operand by a scalar value\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec4} out\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n return out;\n}\n/**\n * Calculates the euclidian distance between two vec4's\n *\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {Number} distance between a and b\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n var w = b[3] - a[3];\n return Math.hypot(x, y, z, w);\n}\n/**\n * Calculates the squared euclidian distance between two vec4's\n *\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {Number} squared distance between a and b\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n var w = b[3] - a[3];\n return x * x + y * y + z * z + w * w;\n}\n/**\n * Calculates the length of a vec4\n *\n * @param {ReadonlyVec4} a vector to calculate length of\n * @returns {Number} length of a\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n return Math.hypot(x, y, z, w);\n}\n/**\n * Calculates the squared length of a vec4\n *\n * @param {ReadonlyVec4} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n return x * x + y * y + z * z + w * w;\n}\n/**\n * Negates the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to negate\n * @returns {vec4} out\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n out[3] = -a[3];\n return out;\n}\n/**\n * Returns the inverse of the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to invert\n * @returns {vec4} out\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n out[3] = 1.0 / a[3];\n return out;\n}\n/**\n * Normalize a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to normalize\n * @returns {vec4} out\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n var len = x * x + y * y + z * z + w * w;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = x * len;\n out[1] = y * len;\n out[2] = z * len;\n out[3] = w * len;\n return out;\n}\n/**\n * Calculates the dot product of two vec4's\n *\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {Number} dot product of a and b\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n}\n/**\n * Returns the cross-product of three vectors in a 4-dimensional space\n *\n * @param {ReadonlyVec4} result the receiving vector\n * @param {ReadonlyVec4} U the first vector\n * @param {ReadonlyVec4} V the second vector\n * @param {ReadonlyVec4} W the third vector\n * @returns {vec4} result\n */\n\nexport function cross(out, u, v, w) {\n var A = v[0] * w[1] - v[1] * w[0],\n B = v[0] * w[2] - v[2] * w[0],\n C = v[0] * w[3] - v[3] * w[0],\n D = v[1] * w[2] - v[2] * w[1],\n E = v[1] * w[3] - v[3] * w[1],\n F = v[2] * w[3] - v[3] * w[2];\n var G = u[0];\n var H = u[1];\n var I = u[2];\n var J = u[3];\n out[0] = H * F - I * E + J * D;\n out[1] = -(G * F) + I * C - J * B;\n out[2] = G * E - H * C + J * A;\n out[3] = -(G * D) + H * B - I * A;\n return out;\n}\n/**\n * Performs a linear interpolation between two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec4} out\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n out[3] = aw + t * (b[3] - aw);\n return out;\n}\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec4} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\n * @returns {vec4} out\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0; // Marsaglia, George. Choosing a Point from the Surface of a\n // Sphere. Ann. Math. Statist. 43 (1972), no. 2, 645--646.\n // http://projecteuclid.org/euclid.aoms/1177692644;\n\n var v1, v2, v3, v4;\n var s1, s2;\n\n do {\n v1 = glMatrix.RANDOM() * 2 - 1;\n v2 = glMatrix.RANDOM() * 2 - 1;\n s1 = v1 * v1 + v2 * v2;\n } while (s1 >= 1);\n\n do {\n v3 = glMatrix.RANDOM() * 2 - 1;\n v4 = glMatrix.RANDOM() * 2 - 1;\n s2 = v3 * v3 + v4 * v4;\n } while (s2 >= 1);\n\n var d = Math.sqrt((1 - s1) / s2);\n out[0] = scale * v1;\n out[1] = scale * v2;\n out[2] = scale * v3 * d;\n out[3] = scale * v4 * d;\n return out;\n}\n/**\n * Transforms the vec4 with a mat4.\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec4} out\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3];\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;\n return out;\n}\n/**\n * Transforms the vec4 with a quat\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the vector to transform\n * @param {ReadonlyQuat} q quaternion to transform with\n * @returns {vec4} out\n */\n\nexport function transformQuat(out, a, q) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3]; // calculate quat * vec\n\n var ix = qw * x + qy * z - qz * y;\n var iy = qw * y + qz * x - qx * z;\n var iz = qw * z + qx * y - qy * x;\n var iw = -qx * x - qy * y - qz * z; // calculate result * inverse quat\n\n out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n out[3] = a[3];\n return out;\n}\n/**\n * Set the components of a vec4 to zero\n *\n * @param {vec4} out the receiving vector\n * @returns {vec4} out\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n return out;\n}\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec4} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\n\nexport function str(a) {\n return \"vec4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \")\";\n}\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec4} a The first vector.\n * @param {ReadonlyVec4} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3];\n}\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec4} a The first vector.\n * @param {ReadonlyVec4} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3));\n}\n/**\n * Alias for {@link vec4.subtract}\n * @function\n */\n\nexport var sub = subtract;\n/**\n * Alias for {@link vec4.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link vec4.divide}\n * @function\n */\n\nexport var div = divide;\n/**\n * Alias for {@link vec4.distance}\n * @function\n */\n\nexport var dist = distance;\n/**\n * Alias for {@link vec4.squaredDistance}\n * @function\n */\n\nexport var sqrDist = squaredDistance;\n/**\n * Alias for {@link vec4.length}\n * @function\n */\n\nexport var len = length;\n/**\n * Alias for {@link vec4.squaredLength}\n * @function\n */\n\nexport var sqrLen = squaredLength;\n/**\n * Perform some operation over an array of vec4s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec4. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec4s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 4;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n vec[3] = a[i + 3];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n a[i + 3] = vec[3];\n }\n\n return a;\n };\n}();","import * as glMatrix from \"./common.js\";\nimport * as mat3 from \"./mat3.js\";\nimport * as vec3 from \"./vec3.js\";\nimport * as vec4 from \"./vec4.js\";\n/**\n * Quaternion\n * @module quat\n */\n\n/**\n * Creates a new identity quat\n *\n * @returns {quat} a new quaternion\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(4);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n\n out[3] = 1;\n return out;\n}\n/**\n * Set a quat to the identity quaternion\n *\n * @param {quat} out the receiving quaternion\n * @returns {quat} out\n */\n\nexport function identity(out) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n return out;\n}\n/**\n * Sets a quat from the given angle and rotation axis,\n * then returns it.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyVec3} axis the axis around which to rotate\n * @param {Number} rad the angle in radians\n * @returns {quat} out\n **/\n\nexport function setAxisAngle(out, axis, rad) {\n rad = rad * 0.5;\n var s = Math.sin(rad);\n out[0] = s * axis[0];\n out[1] = s * axis[1];\n out[2] = s * axis[2];\n out[3] = Math.cos(rad);\n return out;\n}\n/**\n * Gets the rotation axis and angle for a given\n * quaternion. If a quaternion is created with\n * setAxisAngle, this method will return the same\n * values as providied in the original parameter list\n * OR functionally equivalent values.\n * Example: The quaternion formed by axis [0, 0, 1] and\n * angle -90 is the same as the quaternion formed by\n * [0, 0, 1] and 270. This method favors the latter.\n * @param {vec3} out_axis Vector receiving the axis of rotation\n * @param {ReadonlyQuat} q Quaternion to be decomposed\n * @return {Number} Angle, in radians, of the rotation\n */\n\nexport function getAxisAngle(out_axis, q) {\n var rad = Math.acos(q[3]) * 2.0;\n var s = Math.sin(rad / 2.0);\n\n if (s > glMatrix.EPSILON) {\n out_axis[0] = q[0] / s;\n out_axis[1] = q[1] / s;\n out_axis[2] = q[2] / s;\n } else {\n // If s is zero, return any axis (no rotation - axis does not matter)\n out_axis[0] = 1;\n out_axis[1] = 0;\n out_axis[2] = 0;\n }\n\n return rad;\n}\n/**\n * Gets the angular distance between two unit quaternions\n *\n * @param {ReadonlyQuat} a Origin unit quaternion\n * @param {ReadonlyQuat} b Destination unit quaternion\n * @return {Number} Angle, in radians, between the two quaternions\n */\n\nexport function getAngle(a, b) {\n var dotproduct = dot(a, b);\n return Math.acos(2 * dotproduct * dotproduct - 1);\n}\n/**\n * Multiplies two quat's\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @returns {quat} out\n */\n\nexport function multiply(out, a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var bx = b[0],\n by = b[1],\n bz = b[2],\n bw = b[3];\n out[0] = ax * bw + aw * bx + ay * bz - az * by;\n out[1] = ay * bw + aw * by + az * bx - ax * bz;\n out[2] = az * bw + aw * bz + ax * by - ay * bx;\n out[3] = aw * bw - ax * bx - ay * by - az * bz;\n return out;\n}\n/**\n * Rotates a quaternion by the given angle about the X axis\n *\n * @param {quat} out quat receiving operation result\n * @param {ReadonlyQuat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */\n\nexport function rotateX(out, a, rad) {\n rad *= 0.5;\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var bx = Math.sin(rad),\n bw = Math.cos(rad);\n out[0] = ax * bw + aw * bx;\n out[1] = ay * bw + az * bx;\n out[2] = az * bw - ay * bx;\n out[3] = aw * bw - ax * bx;\n return out;\n}\n/**\n * Rotates a quaternion by the given angle about the Y axis\n *\n * @param {quat} out quat receiving operation result\n * @param {ReadonlyQuat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */\n\nexport function rotateY(out, a, rad) {\n rad *= 0.5;\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var by = Math.sin(rad),\n bw = Math.cos(rad);\n out[0] = ax * bw - az * by;\n out[1] = ay * bw + aw * by;\n out[2] = az * bw + ax * by;\n out[3] = aw * bw - ay * by;\n return out;\n}\n/**\n * Rotates a quaternion by the given angle about the Z axis\n *\n * @param {quat} out quat receiving operation result\n * @param {ReadonlyQuat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */\n\nexport function rotateZ(out, a, rad) {\n rad *= 0.5;\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var bz = Math.sin(rad),\n bw = Math.cos(rad);\n out[0] = ax * bw + ay * bz;\n out[1] = ay * bw - ax * bz;\n out[2] = az * bw + aw * bz;\n out[3] = aw * bw - az * bz;\n return out;\n}\n/**\n * Calculates the W component of a quat from the X, Y, and Z components.\n * Assumes that quaternion is 1 unit in length.\n * Any existing W component will be ignored.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate W component of\n * @returns {quat} out\n */\n\nexport function calculateW(out, a) {\n var x = a[0],\n y = a[1],\n z = a[2];\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = Math.sqrt(Math.abs(1.0 - x * x - y * y - z * z));\n return out;\n}\n/**\n * Calculate the exponential of a unit quaternion.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate the exponential of\n * @returns {quat} out\n */\n\nexport function exp(out, a) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3];\n var r = Math.sqrt(x * x + y * y + z * z);\n var et = Math.exp(w);\n var s = r > 0 ? et * Math.sin(r) / r : 0;\n out[0] = x * s;\n out[1] = y * s;\n out[2] = z * s;\n out[3] = et * Math.cos(r);\n return out;\n}\n/**\n * Calculate the natural logarithm of a unit quaternion.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate the exponential of\n * @returns {quat} out\n */\n\nexport function ln(out, a) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3];\n var r = Math.sqrt(x * x + y * y + z * z);\n var t = r > 0 ? Math.atan2(r, w) / r : 0;\n out[0] = x * t;\n out[1] = y * t;\n out[2] = z * t;\n out[3] = 0.5 * Math.log(x * x + y * y + z * z + w * w);\n return out;\n}\n/**\n * Calculate the scalar power of a unit quaternion.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate the exponential of\n * @param {Number} b amount to scale the quaternion by\n * @returns {quat} out\n */\n\nexport function pow(out, a, b) {\n ln(out, a);\n scale(out, out, b);\n exp(out, out);\n return out;\n}\n/**\n * Performs a spherical linear interpolation between two quat\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {quat} out\n */\n\nexport function slerp(out, a, b, t) {\n // benchmarks:\n // http://jsperf.com/quaternion-slerp-implementations\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var bx = b[0],\n by = b[1],\n bz = b[2],\n bw = b[3];\n var omega, cosom, sinom, scale0, scale1; // calc cosine\n\n cosom = ax * bx + ay * by + az * bz + aw * bw; // adjust signs (if necessary)\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n } // calculate coefficients\n\n\n if (1.0 - cosom > glMatrix.EPSILON) {\n // standard case (slerp)\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n // \"from\" and \"to\" quaternions are very close\n // ... so we can do a linear interpolation\n scale0 = 1.0 - t;\n scale1 = t;\n } // calculate final values\n\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n}\n/**\n * Generates a random unit quaternion\n *\n * @param {quat} out the receiving quaternion\n * @returns {quat} out\n */\n\nexport function random(out) {\n // Implementation of http://planning.cs.uiuc.edu/node198.html\n // TODO: Calling random 3 times is probably not the fastest solution\n var u1 = glMatrix.RANDOM();\n var u2 = glMatrix.RANDOM();\n var u3 = glMatrix.RANDOM();\n var sqrt1MinusU1 = Math.sqrt(1 - u1);\n var sqrtU1 = Math.sqrt(u1);\n out[0] = sqrt1MinusU1 * Math.sin(2.0 * Math.PI * u2);\n out[1] = sqrt1MinusU1 * Math.cos(2.0 * Math.PI * u2);\n out[2] = sqrtU1 * Math.sin(2.0 * Math.PI * u3);\n out[3] = sqrtU1 * Math.cos(2.0 * Math.PI * u3);\n return out;\n}\n/**\n * Calculates the inverse of a quat\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate inverse of\n * @returns {quat} out\n */\n\nexport function invert(out, a) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var dot = a0 * a0 + a1 * a1 + a2 * a2 + a3 * a3;\n var invDot = dot ? 1.0 / dot : 0; // TODO: Would be faster to return [0,0,0,0] immediately if dot == 0\n\n out[0] = -a0 * invDot;\n out[1] = -a1 * invDot;\n out[2] = -a2 * invDot;\n out[3] = a3 * invDot;\n return out;\n}\n/**\n * Calculates the conjugate of a quat\n * If the quaternion is normalized, this function is faster than quat.inverse and produces the same result.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate conjugate of\n * @returns {quat} out\n */\n\nexport function conjugate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n out[3] = a[3];\n return out;\n}\n/**\n * Creates a quaternion from the given 3x3 rotation matrix.\n *\n * NOTE: The resultant quaternion is not normalized, so you should be sure\n * to renormalize the quaternion yourself where necessary.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyMat3} m rotation matrix\n * @returns {quat} out\n * @function\n */\n\nexport function fromMat3(out, m) {\n // Algorithm in Ken Shoemake's article in 1987 SIGGRAPH course notes\n // article \"Quaternion Calculus and Fast Animation\".\n var fTrace = m[0] + m[4] + m[8];\n var fRoot;\n\n if (fTrace > 0.0) {\n // |w| > 1/2, may as well choose w > 1/2\n fRoot = Math.sqrt(fTrace + 1.0); // 2w\n\n out[3] = 0.5 * fRoot;\n fRoot = 0.5 / fRoot; // 1/(4w)\n\n out[0] = (m[5] - m[7]) * fRoot;\n out[1] = (m[6] - m[2]) * fRoot;\n out[2] = (m[1] - m[3]) * fRoot;\n } else {\n // |w| <= 1/2\n var i = 0;\n if (m[4] > m[0]) i = 1;\n if (m[8] > m[i * 3 + i]) i = 2;\n var j = (i + 1) % 3;\n var k = (i + 2) % 3;\n fRoot = Math.sqrt(m[i * 3 + i] - m[j * 3 + j] - m[k * 3 + k] + 1.0);\n out[i] = 0.5 * fRoot;\n fRoot = 0.5 / fRoot;\n out[3] = (m[j * 3 + k] - m[k * 3 + j]) * fRoot;\n out[j] = (m[j * 3 + i] + m[i * 3 + j]) * fRoot;\n out[k] = (m[k * 3 + i] + m[i * 3 + k]) * fRoot;\n }\n\n return out;\n}\n/**\n * Creates a quaternion from the given euler angle x, y, z.\n *\n * @param {quat} out the receiving quaternion\n * @param {x} Angle to rotate around X axis in degrees.\n * @param {y} Angle to rotate around Y axis in degrees.\n * @param {z} Angle to rotate around Z axis in degrees.\n * @returns {quat} out\n * @function\n */\n\nexport function fromEuler(out, x, y, z) {\n var halfToRad = 0.5 * Math.PI / 180.0;\n x *= halfToRad;\n y *= halfToRad;\n z *= halfToRad;\n var sx = Math.sin(x);\n var cx = Math.cos(x);\n var sy = Math.sin(y);\n var cy = Math.cos(y);\n var sz = Math.sin(z);\n var cz = Math.cos(z);\n out[0] = sx * cy * cz - cx * sy * sz;\n out[1] = cx * sy * cz + sx * cy * sz;\n out[2] = cx * cy * sz - sx * sy * cz;\n out[3] = cx * cy * cz + sx * sy * sz;\n return out;\n}\n/**\n * Returns a string representation of a quatenion\n *\n * @param {ReadonlyQuat} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\n\nexport function str(a) {\n return \"quat(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \")\";\n}\n/**\n * Creates a new quat initialized with values from an existing quaternion\n *\n * @param {ReadonlyQuat} a quaternion to clone\n * @returns {quat} a new quaternion\n * @function\n */\n\nexport var clone = vec4.clone;\n/**\n * Creates a new quat initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {quat} a new quaternion\n * @function\n */\n\nexport var fromValues = vec4.fromValues;\n/**\n * Copy the values from one quat to another\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the source quaternion\n * @returns {quat} out\n * @function\n */\n\nexport var copy = vec4.copy;\n/**\n * Set the components of a quat to the given values\n *\n * @param {quat} out the receiving quaternion\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {quat} out\n * @function\n */\n\nexport var set = vec4.set;\n/**\n * Adds two quat's\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @returns {quat} out\n * @function\n */\n\nexport var add = vec4.add;\n/**\n * Alias for {@link quat.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Scales a quat by a scalar number\n *\n * @param {quat} out the receiving vector\n * @param {ReadonlyQuat} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {quat} out\n * @function\n */\n\nexport var scale = vec4.scale;\n/**\n * Calculates the dot product of two quat's\n *\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @returns {Number} dot product of a and b\n * @function\n */\n\nexport var dot = vec4.dot;\n/**\n * Performs a linear interpolation between two quat's\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {quat} out\n * @function\n */\n\nexport var lerp = vec4.lerp;\n/**\n * Calculates the length of a quat\n *\n * @param {ReadonlyQuat} a vector to calculate length of\n * @returns {Number} length of a\n */\n\nexport var length = vec4.length;\n/**\n * Alias for {@link quat.length}\n * @function\n */\n\nexport var len = length;\n/**\n * Calculates the squared length of a quat\n *\n * @param {ReadonlyQuat} a vector to calculate squared length of\n * @returns {Number} squared length of a\n * @function\n */\n\nexport var squaredLength = vec4.squaredLength;\n/**\n * Alias for {@link quat.squaredLength}\n * @function\n */\n\nexport var sqrLen = squaredLength;\n/**\n * Normalize a quat\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quaternion to normalize\n * @returns {quat} out\n * @function\n */\n\nexport var normalize = vec4.normalize;\n/**\n * Returns whether or not the quaternions have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyQuat} a The first quaternion.\n * @param {ReadonlyQuat} b The second quaternion.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport var exactEquals = vec4.exactEquals;\n/**\n * Returns whether or not the quaternions have approximately the same elements in the same position.\n *\n * @param {ReadonlyQuat} a The first vector.\n * @param {ReadonlyQuat} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport var equals = vec4.equals;\n/**\n * Sets a quaternion to represent the shortest rotation from one\n * vector to another.\n *\n * Both vectors are assumed to be unit length.\n *\n * @param {quat} out the receiving quaternion.\n * @param {ReadonlyVec3} a the initial vector\n * @param {ReadonlyVec3} b the destination vector\n * @returns {quat} out\n */\n\nexport var rotationTo = function () {\n var tmpvec3 = vec3.create();\n var xUnitVec3 = vec3.fromValues(1, 0, 0);\n var yUnitVec3 = vec3.fromValues(0, 1, 0);\n return function (out, a, b) {\n var dot = vec3.dot(a, b);\n\n if (dot < -0.999999) {\n vec3.cross(tmpvec3, xUnitVec3, a);\n if (vec3.len(tmpvec3) < 0.000001) vec3.cross(tmpvec3, yUnitVec3, a);\n vec3.normalize(tmpvec3, tmpvec3);\n setAxisAngle(out, tmpvec3, Math.PI);\n return out;\n } else if (dot > 0.999999) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n return out;\n } else {\n vec3.cross(tmpvec3, a, b);\n out[0] = tmpvec3[0];\n out[1] = tmpvec3[1];\n out[2] = tmpvec3[2];\n out[3] = 1 + dot;\n return normalize(out, out);\n }\n };\n}();\n/**\n * Performs a spherical linear interpolation with two control points\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @param {ReadonlyQuat} c the third operand\n * @param {ReadonlyQuat} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {quat} out\n */\n\nexport var sqlerp = function () {\n var temp1 = create();\n var temp2 = create();\n return function (out, a, b, c, d, t) {\n slerp(temp1, a, d, t);\n slerp(temp2, b, c, t);\n slerp(out, temp1, temp2, 2 * t * (1 - t));\n return out;\n };\n}();\n/**\n * Sets the specified quaternion with values corresponding to the given\n * axes. Each axis is a vec3 and is expected to be unit length and\n * perpendicular to all other specified axes.\n *\n * @param {ReadonlyVec3} view the vector representing the viewing direction\n * @param {ReadonlyVec3} right the vector representing the local \"right\" direction\n * @param {ReadonlyVec3} up the vector representing the local \"up\" direction\n * @returns {quat} out\n */\n\nexport var setAxes = function () {\n var matr = mat3.create();\n return function (out, view, right, up) {\n matr[0] = right[0];\n matr[3] = right[1];\n matr[6] = right[2];\n matr[1] = up[0];\n matr[4] = up[1];\n matr[7] = up[2];\n matr[2] = -view[0];\n matr[5] = -view[1];\n matr[8] = -view[2];\n return normalize(out, fromMat3(out, matr));\n };\n}();","const CoordinateSystem = {\n DISPLAY: 0,\n WORLD: 1\n};\nvar Constants = {\n CoordinateSystem\n};\n\nexport { CoordinateSystem, Constants as default };\n","import { m as macro } from '../../macros2.js';\nimport Constants from './Prop/Constants.js';\n\nconst {\n CoordinateSystem\n} = Constants;\nfunction notImplemented(method) {\n return () => macro.vtkErrorMacro(`vtkProp::${method} - NOT IMPLEMENTED`);\n}\n\n// ----------------------------------------------------------------------------\n// vtkProp methods\n// ----------------------------------------------------------------------------\n\nfunction vtkProp(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkProp');\n publicAPI.getMTime = () => {\n let m1 = model.mtime;\n for (let index = 0; index < model.textures.length; ++index) {\n const m2 = model.textures[index].getMTime();\n if (m2 > m1) {\n m1 = m2;\n }\n }\n return m1;\n };\n publicAPI.processSelectorPixelBuffers = (selector, pixeloffsets) => {};\n publicAPI.getNestedProps = () => null;\n publicAPI.getActors = () => [];\n publicAPI.getActors2D = () => [];\n publicAPI.getVolumes = () => [];\n publicAPI.pick = notImplemented('pick');\n publicAPI.hasKey = notImplemented('hasKey');\n publicAPI.getNestedVisibility = () => model.visibility && (!model._parentProp || model._parentProp.getNestedVisibility());\n publicAPI.getNestedPickable = () => model.pickable && (!model._parentProp || model._parentProp.getNestedPickable());\n publicAPI.getNestedDragable = () => model.dragable && (!model._parentProp || model._parentProp.getNestedDragable());\n publicAPI.getRedrawMTime = () => model.mtime;\n publicAPI.setEstimatedRenderTime = t => {\n model.estimatedRenderTime = t;\n model.savedEstimatedRenderTime = t;\n };\n publicAPI.restoreEstimatedRenderTime = () => {\n model.estimatedRenderTime = model.savedEstimatedRenderTime;\n };\n publicAPI.addEstimatedRenderTime = t => {\n model.estimatedRenderTime += t;\n };\n publicAPI.setAllocatedRenderTime = t => {\n model.allocatedRenderTime = t;\n model.savedEstimatedRenderTime = model.estimatedRenderTime;\n model.estimatedRenderTime = 0;\n };\n publicAPI.getSupportsSelection = () => false;\n publicAPI.getTextures = () => model.textures;\n publicAPI.hasTexture = texture => model.textures.indexOf(texture) !== -1;\n publicAPI.addTexture = texture => {\n if (texture && !publicAPI.hasTexture(texture)) {\n model.textures = model.textures.concat(texture);\n publicAPI.modified();\n }\n };\n publicAPI.removeTexture = texture => {\n const newTextureList = model.textures.filter(item => item !== texture);\n if (model.textures.length !== newTextureList.length) {\n model.textures = newTextureList;\n publicAPI.modified();\n }\n };\n publicAPI.removeAllTextures = () => {\n model.textures = [];\n publicAPI.modified();\n };\n\n // not all mappers support all coordinate systems\n publicAPI.setCoordinateSystemToWorld = () => publicAPI.setCoordinateSystem(CoordinateSystem.WORLD);\n publicAPI.setCoordinateSystemToDisplay = () => publicAPI.setCoordinateSystem(CoordinateSystem.DISPLAY);\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n // _parentProp: null,\n allocatedRenderTime: 10,\n coordinateSystem: CoordinateSystem.WORLD,\n dragable: true,\n estimatedRenderTime: 0,\n paths: null,\n pickable: true,\n renderTimeMultiplier: 1,\n savedEstimatedRenderTime: 0,\n textures: [],\n useBounds: true,\n visibility: true\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Build VTK API\n macro.obj(publicAPI, model);\n macro.get(publicAPI, model, ['estimatedRenderTime', 'allocatedRenderTime']);\n macro.setGet(publicAPI, model, ['_parentProp', 'coordinateSystem', 'dragable', 'pickable', 'renderTimeMultiplier', 'useBounds', 'visibility']);\n macro.moveToProtected(publicAPI, model, ['parentProp']);\n\n // Object methods\n vtkProp(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkProp');\n\n// ----------------------------------------------------------------------------\n\nvar vtkProp$1 = {\n newInstance,\n extend,\n ...Constants\n};\n\nexport { vtkProp$1 as default, extend, newInstance };\n","import { mat4, quat } from 'gl-matrix';\nimport { m as macro } from '../../macros2.js';\nimport vtkBoundingBox from '../../Common/DataModel/BoundingBox.js';\nimport { A as degreesFromRadians, r as radiansFromDegrees, a as areMatricesEqual } from '../../Common/Core/Math/index.js';\nimport vtkProp from './Prop.js';\n\nconst VTK_EPSILON = 1e-6;\n\n// ----------------------------------------------------------------------------\n// vtkProp3D methods\n// ----------------------------------------------------------------------------\n\nfunction vtkProp3D(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkProp3D');\n publicAPI.addPosition = deltaXYZ => {\n model.position = model.position.map((value, index) => value + deltaXYZ[index]);\n publicAPI.modified();\n };\n publicAPI.getOrientationWXYZ = () => {\n const q = quat.create();\n mat4.getRotation(q, model.rotation);\n const oaxis = new Float64Array(3);\n const w = quat.getAxisAngle(oaxis, q);\n return [degreesFromRadians(w), oaxis[0], oaxis[1], oaxis[2]];\n };\n publicAPI.getOrientationQuaternion = function () {\n let out = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return mat4.getRotation(out, model.rotation);\n };\n publicAPI.rotateX = val => {\n if (val === 0.0) {\n return;\n }\n mat4.rotateX(model.rotation, model.rotation, radiansFromDegrees(val));\n publicAPI.modified();\n };\n publicAPI.rotateY = val => {\n if (val === 0.0) {\n return;\n }\n mat4.rotateY(model.rotation, model.rotation, radiansFromDegrees(val));\n publicAPI.modified();\n };\n publicAPI.rotateZ = val => {\n if (val === 0.0) {\n return;\n }\n mat4.rotateZ(model.rotation, model.rotation, radiansFromDegrees(val));\n publicAPI.modified();\n };\n publicAPI.rotateWXYZ = (degrees, x, y, z) => {\n if (degrees === 0.0 || x === 0.0 && y === 0.0 && z === 0.0) {\n return;\n }\n\n // convert to radians\n const angle = radiansFromDegrees(degrees);\n const q = quat.create();\n quat.setAxisAngle(q, [x, y, z], angle);\n const quatMat = new Float64Array(16);\n mat4.fromQuat(quatMat, q);\n mat4.multiply(model.rotation, model.rotation, quatMat);\n publicAPI.modified();\n };\n publicAPI.rotateQuaternion = orientationQuaternion => {\n if (Math.abs(orientationQuaternion[3]) >= 1 - VTK_EPSILON) {\n return;\n }\n const oriQuatMat = mat4.fromQuat(new Float64Array(16), orientationQuaternion);\n mat4.multiply(model.rotation, model.rotation, oriQuatMat);\n publicAPI.modified();\n };\n publicAPI.setOrientation = (x, y, z) => {\n if (x === model.orientation[0] && y === model.orientation[1] && z === model.orientation[2]) {\n return false;\n }\n model.orientation = [x, y, z];\n mat4.identity(model.rotation);\n publicAPI.rotateZ(z);\n publicAPI.rotateX(x);\n publicAPI.rotateY(y);\n publicAPI.modified();\n return true;\n };\n publicAPI.setUserMatrix = matrix => {\n if (areMatricesEqual(model.userMatrix, matrix)) {\n return false;\n }\n mat4.copy(model.userMatrix, matrix);\n publicAPI.modified();\n return true;\n };\n publicAPI.getMatrix = () => {\n publicAPI.computeMatrix();\n return model.matrix;\n };\n publicAPI.computeMatrix = () => {\n // check whether or not need to rebuild the matrix\n if (publicAPI.getMTime() > model.matrixMTime.getMTime()) {\n mat4.identity(model.matrix);\n if (model.userMatrix) {\n mat4.multiply(model.matrix, model.matrix, model.userMatrix);\n }\n mat4.translate(model.matrix, model.matrix, model.origin);\n mat4.translate(model.matrix, model.matrix, model.position);\n mat4.multiply(model.matrix, model.matrix, model.rotation);\n mat4.scale(model.matrix, model.matrix, model.scale);\n mat4.translate(model.matrix, model.matrix, [-model.origin[0], -model.origin[1], -model.origin[2]]);\n mat4.transpose(model.matrix, model.matrix);\n\n // check for identity\n model.isIdentity = true;\n for (let i = 0; i < 4; ++i) {\n for (let j = 0; j < 4; ++j) {\n if ((i === j ? 1.0 : 0.0) !== model.matrix[i + j * 4]) {\n model.isIdentity = false;\n }\n }\n }\n model.matrixMTime.modified();\n }\n };\n publicAPI.getCenter = () => vtkBoundingBox.getCenter(model.bounds);\n publicAPI.getLength = () => vtkBoundingBox.getLength(model.bounds);\n publicAPI.getXRange = () => vtkBoundingBox.getXRange(model.bounds);\n publicAPI.getYRange = () => vtkBoundingBox.getYRange(model.bounds);\n publicAPI.getZRange = () => vtkBoundingBox.getZRange(model.bounds);\n publicAPI.getUserMatrix = () => model.userMatrix;\n function updateIdentityFlag() {\n publicAPI.computeMatrix();\n }\n publicAPI.onModified(updateIdentityFlag);\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n origin: [0, 0, 0],\n position: [0, 0, 0],\n orientation: [0, 0, 0],\n rotation: null,\n scale: [1, 1, 1],\n bounds: [1, -1, 1, -1, 1, -1],\n userMatrix: null,\n userMatrixMTime: null,\n cachedProp3D: null,\n isIdentity: true,\n matrixMTime: null\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Inheritance\n vtkProp.extend(publicAPI, model, initialValues);\n model.matrixMTime = {};\n macro.obj(model.matrixMTime);\n\n // Build VTK API\n macro.get(publicAPI, model, ['bounds', 'isIdentity']);\n macro.getArray(publicAPI, model, ['orientation']);\n macro.setGetArray(publicAPI, model, ['origin', 'position', 'scale'], 3);\n\n // Object internal instance\n model.matrix = mat4.identity(new Float64Array(16));\n model.rotation = mat4.identity(new Float64Array(16));\n model.userMatrix = mat4.identity(new Float64Array(16));\n model.transform = null; // FIXME\n\n // Object methods\n vtkProp3D(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkProp3D');\n\n// ----------------------------------------------------------------------------\n\nvar vtkProp3D$1 = {\n newInstance,\n extend\n};\n\nexport { vtkProp3D$1 as default, extend, newInstance };\n","const Shading = {\n FLAT: 0,\n GOURAUD: 1,\n PHONG: 2\n};\nconst Representation = {\n POINTS: 0,\n WIREFRAME: 1,\n SURFACE: 2\n};\nconst Interpolation = Shading;\nvar PropertyConst = {\n Shading,\n Representation,\n Interpolation\n};\n\nexport { Interpolation, Representation, Shading, PropertyConst as default };\n","import { m as macro } from '../../macros2.js';\nimport PropertyConst from './Property/Constants.js';\n\nconst {\n Representation,\n Interpolation\n} = PropertyConst;\nfunction notImplemented(method) {\n return () => macro.vtkErrorMacro(`vtkProperty::${method} - NOT IMPLEMENTED`);\n}\n\n// ----------------------------------------------------------------------------\n// vtkProperty methods\n// ----------------------------------------------------------------------------\n\nfunction vtkProperty(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkProperty');\n publicAPI.setColor = (r, g, b) => {\n if (Array.isArray(r)) {\n if (model.color[0] !== r[0] || model.color[1] !== r[1] || model.color[2] !== r[2]) {\n model.color[0] = r[0];\n model.color[1] = r[1];\n model.color[2] = r[2];\n publicAPI.modified();\n }\n } else if (model.color[0] !== r || model.color[1] !== g || model.color[2] !== b) {\n model.color[0] = r;\n model.color[1] = g;\n model.color[2] = b;\n publicAPI.modified();\n }\n publicAPI.setDiffuseColor(model.color);\n publicAPI.setAmbientColor(model.color);\n publicAPI.setSpecularColor(model.color);\n };\n publicAPI.computeCompositeColor = notImplemented('ComputeCompositeColor');\n publicAPI.getColor = () => {\n // Inline computeCompositeColor\n let norm = 0.0;\n if (model.ambient + model.diffuse + model.specular > 0) {\n norm = 1.0 / (model.ambient + model.diffuse + model.specular);\n }\n for (let i = 0; i < 3; i++) {\n model.color[i] = norm * (model.ambient * model.ambientColor[i] + model.diffuse * model.diffuseColor[i] + model.specular * model.specularColor[i]);\n }\n return [].concat(model.color);\n };\n publicAPI.setSpecularPower = specularPower => {\n const roughness = 1 / Math.max(1.0, specularPower);\n if (model.roughness !== roughness || model.specularPower !== specularPower) {\n model.specularPower = specularPower; // Specular power still needs to be set as long as webgl is using it (otherwise testShaderReplacementsClear fails)\n model.roughness = roughness;\n publicAPI.modified();\n }\n };\n publicAPI.addShaderVariable = notImplemented('AddShaderVariable');\n publicAPI.setInterpolationToFlat = () => publicAPI.setInterpolation(Interpolation.FLAT);\n publicAPI.setInterpolationToGouraud = () => publicAPI.setInterpolation(Interpolation.GOURAUD);\n publicAPI.setInterpolationToPhong = () => publicAPI.setInterpolation(Interpolation.PHONG);\n publicAPI.getInterpolationAsString = () => macro.enumToString(Interpolation, model.interpolation);\n publicAPI.setRepresentationToWireframe = () => publicAPI.setRepresentation(Representation.WIREFRAME);\n publicAPI.setRepresentationToSurface = () => publicAPI.setRepresentation(Representation.SURFACE);\n publicAPI.setRepresentationToPoints = () => publicAPI.setRepresentation(Representation.POINTS);\n publicAPI.getRepresentationAsString = () => macro.enumToString(Representation, model.representation);\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n color: [1, 1, 1],\n ambientColor: [1, 1, 1],\n diffuseColor: [1, 1, 1],\n specularColor: [1, 1, 1],\n edgeColor: [0, 0, 0],\n ambient: 0,\n diffuse: 1,\n metallic: 0,\n roughness: 0.6,\n normalStrength: 1,\n emission: 1,\n baseIOR: 1.45,\n specular: 0,\n specularPower: 1,\n opacity: 1,\n interpolation: Interpolation.GOURAUD,\n representation: Representation.SURFACE,\n edgeVisibility: false,\n backfaceCulling: false,\n frontfaceCulling: false,\n pointSize: 1,\n lineWidth: 1,\n lighting: true,\n shading: false,\n materialName: null\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Build VTK API\n macro.obj(publicAPI, model);\n macro.setGet(publicAPI, model, ['lighting', 'interpolation', 'ambient', 'diffuse', 'metallic', 'roughness', 'normalStrength', 'emission', 'baseIOR', 'specular', 'specularPower', 'opacity', 'edgeVisibility', 'lineWidth', 'pointSize', 'backfaceCulling', 'frontfaceCulling', 'representation', 'diffuseTexture', 'metallicTexture', 'roughnessTexture', 'normalTexture', 'ambientOcclusionTexture', 'emissionTexture']);\n macro.setGetArray(publicAPI, model, ['ambientColor', 'specularColor', 'diffuseColor', 'edgeColor'], 3);\n\n // Object methods\n vtkProperty(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkProperty');\n\n// ----------------------------------------------------------------------------\n\nvar vtkProperty$1 = {\n newInstance,\n extend,\n ...PropertyConst\n};\n\nexport { vtkProperty$1 as default, extend, newInstance };\n","import { mat4, vec3 } from 'gl-matrix';\nimport { m as macro } from '../../macros2.js';\nimport vtkBoundingBox from '../../Common/DataModel/BoundingBox.js';\nimport vtkProp3D from './Prop3D.js';\nimport vtkProperty from './Property.js';\n\nconst {\n vtkDebugMacro\n} = macro;\n\n// ----------------------------------------------------------------------------\n// vtkActor methods\n// ----------------------------------------------------------------------------\n\nfunction vtkActor(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkActor');\n\n // Capture 'parentClass' api for internal use\n const superClass = {\n ...publicAPI\n };\n publicAPI.getActors = () => [publicAPI];\n publicAPI.getIsOpaque = () => {\n if (model.forceOpaque) {\n return true;\n }\n if (model.forceTranslucent) {\n return false;\n }\n // make sure we have a property\n if (!model.property) {\n // force creation of a property\n publicAPI.getProperty();\n }\n let isOpaque = model.property.getOpacity() >= 1.0;\n\n // are we using an opaque texture, if any?\n isOpaque = isOpaque && (!model.texture || !model.texture.isTranslucent());\n\n // are we using an opaque scalar array, if any?\n isOpaque = isOpaque && (!model.mapper || model.mapper.getIsOpaque());\n return isOpaque;\n };\n publicAPI.hasTranslucentPolygonalGeometry = () => {\n if (model.mapper === null) {\n return false;\n }\n // make sure we have a property\n if (model.property === null) {\n // force creation of a property\n publicAPI.setProperty(publicAPI.makeProperty());\n }\n\n // is this actor opaque ?\n return !publicAPI.getIsOpaque();\n };\n publicAPI.makeProperty = vtkProperty.newInstance;\n publicAPI.getProperty = () => {\n if (model.property === null) {\n model.property = publicAPI.makeProperty();\n }\n return model.property;\n };\n publicAPI.getBounds = () => {\n if (model.mapper === null) {\n return model.bounds;\n }\n\n // Check for the special case when the mapper's bounds are unknown\n const bds = model.mapper.getBounds();\n if (!bds || bds.length !== 6) {\n return bds;\n }\n\n // Check for the special case when the actor is empty.\n if (bds[0] > bds[1]) {\n model.mapperBounds = bds.concat(); // copy the mapper's bounds\n model.bounds = [1, -1, 1, -1, 1, -1];\n model.boundsMTime.modified();\n return bds;\n }\n\n // Check if we have cached values for these bounds - we cache the\n // values returned by model.mapper.getBounds() and we store the time\n // of caching. If the values returned this time are different, or\n // the modified time of this class is newer than the cached time,\n // then we need to rebuild.\n if (!model.mapperBounds || bds[0] !== model.mapperBounds[0] || bds[1] !== model.mapperBounds[1] || bds[2] !== model.mapperBounds[2] || bds[3] !== model.mapperBounds[3] || bds[4] !== model.mapperBounds[4] || bds[5] !== model.mapperBounds[5] || publicAPI.getMTime() > model.boundsMTime.getMTime()) {\n vtkDebugMacro('Recomputing bounds...');\n model.mapperBounds = bds.concat(); // copy the mapper's bounds\n const bbox = [];\n vtkBoundingBox.getCorners(bds, bbox);\n publicAPI.computeMatrix();\n const tmp4 = new Float64Array(16);\n mat4.transpose(tmp4, model.matrix);\n bbox.forEach(pt => vec3.transformMat4(pt, pt, tmp4));\n\n /* eslint-disable no-multi-assign */\n model.bounds[0] = model.bounds[2] = model.bounds[4] = Number.MAX_VALUE;\n model.bounds[1] = model.bounds[3] = model.bounds[5] = -Number.MAX_VALUE;\n /* eslint-enable no-multi-assign */\n\n model.bounds = model.bounds.map((d, i) => i % 2 === 0 ? bbox.reduce((a, b) => a > b[i / 2] ? b[i / 2] : a, d) : bbox.reduce((a, b) => a < b[(i - 1) / 2] ? b[(i - 1) / 2] : a, d));\n model.boundsMTime.modified();\n }\n return model.bounds;\n };\n publicAPI.getMTime = () => {\n let mt = superClass.getMTime();\n if (model.property !== null) {\n const time = model.property.getMTime();\n mt = time > mt ? time : mt;\n }\n if (model.backfaceProperty !== null) {\n const time = model.backfaceProperty.getMTime();\n mt = time > mt ? time : mt;\n }\n return mt;\n };\n publicAPI.getRedrawMTime = () => {\n let mt = model.mtime;\n if (model.mapper !== null) {\n let time = model.mapper.getMTime();\n mt = time > mt ? time : mt;\n if (model.mapper.getInput() !== null) {\n // FIXME !!! getInputAlgorithm / getInput\n model.mapper.getInputAlgorithm().update();\n time = model.mapper.getInput().getMTime();\n mt = time > mt ? time : mt;\n }\n }\n return mt;\n };\n publicAPI.getSupportsSelection = () => model.mapper ? model.mapper.getSupportsSelection() : false;\n publicAPI.processSelectorPixelBuffers = (selector, pixelOffsets) => {\n if (model.mapper && model.mapper.processSelectorPixelBuffers) {\n model.mapper.processSelectorPixelBuffers(selector, pixelOffsets);\n }\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n mapper: null,\n property: null,\n backfaceProperty: null,\n forceOpaque: false,\n forceTranslucent: false,\n bounds: [1, -1, 1, -1, 1, -1]\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Inheritance\n vtkProp3D.extend(publicAPI, model, initialValues);\n\n // vtkTimeStamp\n model.boundsMTime = {};\n macro.obj(model.boundsMTime);\n\n // Build VTK API\n macro.set(publicAPI, model, ['property']);\n macro.setGet(publicAPI, model, ['backfaceProperty', 'forceOpaque', 'forceTranslucent', 'mapper']);\n\n // Object methods\n vtkActor(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkActor');\n\n// ----------------------------------------------------------------------------\n\nvar vtkActor$1 = {\n newInstance,\n extend\n};\n\nexport { vtkActor$1 as default, extend, newInstance };\n","import { m as macro } from '../../macros2.js';\n\n// ----------------------------------------------------------------------------\n// vtkAbstractMapper methods\n// ----------------------------------------------------------------------------\n\nfunction vtkAbstractMapper(publicAPI, model) {\n model.classHierarchy.push('vtkAbstractMapper');\n publicAPI.update = () => {\n publicAPI.getInputData();\n };\n publicAPI.addClippingPlane = plane => {\n if (!plane.isA('vtkPlane')) {\n return false;\n }\n if (!model.clippingPlanes.includes(plane)) {\n model.clippingPlanes.push(plane);\n publicAPI.modified();\n return true;\n }\n return false;\n };\n publicAPI.getNumberOfClippingPlanes = () => model.clippingPlanes.length;\n publicAPI.removeAllClippingPlanes = () => {\n if (model.clippingPlanes.length === 0) {\n return false;\n }\n model.clippingPlanes.length = 0;\n publicAPI.modified();\n return true;\n };\n publicAPI.removeClippingPlane = clippingPlane => {\n const i = model.clippingPlanes.indexOf(clippingPlane);\n if (i === -1) {\n return false;\n }\n model.clippingPlanes.splice(i, 1);\n publicAPI.modified();\n return true;\n };\n publicAPI.getClippingPlanes = () => model.clippingPlanes;\n publicAPI.setClippingPlanes = planes => {\n if (!planes) {\n return;\n }\n if (!Array.isArray(planes)) {\n publicAPI.addClippingPlane(planes);\n } else {\n const nbPlanes = planes.length;\n for (let i = 0; i < nbPlanes && i < 6; i++) {\n publicAPI.addClippingPlane(planes[i]);\n }\n }\n };\n publicAPI.getClippingPlaneInDataCoords = (propMatrix, i, hnormal) => {\n const clipPlanes = model.clippingPlanes;\n const mat = propMatrix;\n if (clipPlanes) {\n const n = clipPlanes.length;\n if (i >= 0 && i < n) {\n // Get the plane\n const plane = clipPlanes[i];\n const normal = plane.getNormal();\n const origin = plane.getOrigin();\n\n // Compute the plane equation\n const v1 = normal[0];\n const v2 = normal[1];\n const v3 = normal[2];\n const v4 = -(v1 * origin[0] + v2 * origin[1] + v3 * origin[2]);\n\n // Transform normal from world to data coords\n hnormal[0] = v1 * mat[0] + v2 * mat[4] + v3 * mat[8] + v4 * mat[12];\n hnormal[1] = v1 * mat[1] + v2 * mat[5] + v3 * mat[9] + v4 * mat[13];\n hnormal[2] = v1 * mat[2] + v2 * mat[6] + v3 * mat[10] + v4 * mat[14];\n hnormal[3] = v1 * mat[3] + v2 * mat[7] + v3 * mat[11] + v4 * mat[15];\n return;\n }\n }\n macro.vtkErrorMacro(`Clipping plane index ${i} is out of range.`);\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n clippingPlanes: []\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Object methods\n macro.obj(publicAPI, model);\n macro.algo(publicAPI, model, 1, 0);\n if (!model.clippingPlanes) {\n model.clippingPlanes = [];\n }\n vtkAbstractMapper(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\nvar vtkAbstractMapper$1 = {\n extend\n};\n\nexport { vtkAbstractMapper$1 as default, extend };\n","import { m as macro } from '../../macros2.js';\nimport vtkAbstractMapper from './AbstractMapper.js';\nimport vtkBoundingBox from '../../Common/DataModel/BoundingBox.js';\nimport { H as createUninitializedBounds } from '../../Common/Core/Math/index.js';\n\n// ----------------------------------------------------------------------------\n// vtkAbstractMapper methods\n// ----------------------------------------------------------------------------\n\nfunction vtkAbstractMapper3D(publicAPI, model) {\n publicAPI.getBounds = () => {\n macro.vtkErrorMacro(`vtkAbstractMapper3D.getBounds - NOT IMPLEMENTED`);\n return createUninitializedBounds();\n };\n publicAPI.getCenter = () => {\n const bounds = publicAPI.getBounds();\n model.center = vtkBoundingBox.isValid(bounds) ? vtkBoundingBox.getCenter(bounds) : null;\n return model.center?.slice();\n };\n publicAPI.getLength = () => {\n const bounds = publicAPI.getBounds();\n return vtkBoundingBox.getDiagonalLength(bounds);\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst defaultValues = initialValues => ({\n bounds: [...vtkBoundingBox.INIT_BOUNDS],\n center: [0, 0, 0],\n viewSpecificProperties: {},\n ...initialValues\n});\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, defaultValues(initialValues));\n // Inheritance\n vtkAbstractMapper.extend(publicAPI, model, initialValues);\n macro.setGet(publicAPI, model, ['viewSpecificProperties']);\n vtkAbstractMapper3D(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nvar vtkAbstractMapper3D$1 = {\n extend\n};\n\nexport { vtkAbstractMapper3D$1 as default, extend };\n","const DataTypeByteSize = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\nconst VtkDataTypes = {\n VOID: '',\n // not sure to know what that should be\n CHAR: 'Int8Array',\n SIGNED_CHAR: 'Int8Array',\n UNSIGNED_CHAR: 'Uint8Array',\n UNSIGNED_CHAR_CLAMPED: 'Uint8ClampedArray',\n // should be used for VTK.js internal purpose only\n SHORT: 'Int16Array',\n UNSIGNED_SHORT: 'Uint16Array',\n INT: 'Int32Array',\n UNSIGNED_INT: 'Uint32Array',\n FLOAT: 'Float32Array',\n DOUBLE: 'Float64Array'\n};\nconst DefaultDataType = VtkDataTypes.FLOAT;\nvar Constants = {\n DefaultDataType,\n DataTypeByteSize,\n VtkDataTypes\n};\n\nexport { DataTypeByteSize, DefaultDataType, VtkDataTypes, Constants as default };\n","import Constants from './DataArray/Constants.js';\nimport { n as newInstance$1, a as newTypedArray, b as newTypedArrayFrom, o as obj, s as set, c as macro } from '../../macros2.js';\nimport { n as norm } from './Math/index.js';\n\nconst {\n vtkErrorMacro\n} = macro;\nconst {\n DefaultDataType\n} = Constants;\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\nconst EPSILON = 1e-6;\n\n// Original source from https://www.npmjs.com/package/compute-range\n// Modified to accept type arrays\nfunction fastComputeRange(arr, offset, numberOfComponents) {\n const len = arr.length;\n let min = Number.MAX_VALUE;\n let max = -Number.MAX_VALUE;\n let x;\n let i;\n\n // find first non-NaN value\n for (i = offset; i < len; i += numberOfComponents) {\n if (!Number.isNaN(arr[i])) {\n min = arr[i];\n max = min;\n break;\n }\n }\n for (; i < len; i += numberOfComponents) {\n x = arr[i];\n if (x < min) {\n min = x;\n } else if (x > max) {\n max = x;\n }\n }\n return {\n min,\n max\n };\n}\n\n/**\n * @deprecated please use fastComputeRange instead\n */\nfunction createRangeHelper() {\n let min = Number.MAX_VALUE;\n let max = -Number.MAX_VALUE;\n let count = 0;\n let sum = 0;\n return {\n add(value) {\n if (min > value) {\n min = value;\n }\n if (max < value) {\n max = value;\n }\n count++;\n sum += value;\n },\n get() {\n return {\n min,\n max,\n count,\n sum,\n mean: sum / count\n };\n },\n getRange() {\n return {\n min,\n max\n };\n }\n };\n}\nfunction computeRange(values) {\n let component = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n let numberOfComponents = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n if (component < 0 && numberOfComponents > 1) {\n // Compute magnitude\n const size = values.length;\n const numberOfValues = size / numberOfComponents;\n const data = new Float64Array(numberOfValues);\n for (let i = 0, j = 0; i < numberOfValues; ++i) {\n for (let nextJ = j + numberOfComponents; j < nextJ; ++j) {\n data[i] += values[j] * values[j];\n }\n data[i] **= 0.5;\n }\n return fastComputeRange(data, 0, 1);\n }\n return fastComputeRange(values, component < 0 ? 0 : component, numberOfComponents);\n}\nfunction ensureRangeSize(rangeArray) {\n let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n const ranges = rangeArray || [];\n // Pad ranges with null value to get the\n while (ranges.length <= size) {\n ranges.push(null);\n }\n return ranges;\n}\nfunction getDataType(typedArray) {\n // Expects toString() to return \"[object ...Array]\"\n return Object.prototype.toString.call(typedArray).slice(8, -1);\n}\nfunction getMaxNorm(normArray) {\n const numComps = normArray.getNumberOfComponents();\n let maxNorm = 0.0;\n const tuple = new Array(numComps);\n for (let i = 0; i < normArray.getNumberOfTuples(); ++i) {\n normArray.getTuple(i, tuple);\n const norm$1 = norm(tuple, numComps);\n if (norm$1 > maxNorm) {\n maxNorm = norm$1;\n }\n }\n return maxNorm;\n}\n\n// ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\nconst STATIC = {\n computeRange,\n createRangeHelper,\n fastComputeRange,\n getDataType,\n getMaxNorm\n};\n\n// ----------------------------------------------------------------------------\n// vtkDataArray methods\n// ----------------------------------------------------------------------------\n\nfunction vtkDataArray(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkDataArray');\n\n /**\n * Resize model.values and copy the old values to the new array.\n * @param {Number} requestedNumTuples Final expected number of tuples; must be >= 0\n * @returns {Boolean} True if a resize occured, false otherwise\n */\n function resize(requestedNumTuples) {\n if (requestedNumTuples < 0) {\n return false;\n }\n const numComps = publicAPI.getNumberOfComponents();\n const curNumTuples = model.values.length / (numComps > 0 ? numComps : 1);\n if (requestedNumTuples === curNumTuples) {\n return true;\n }\n if (requestedNumTuples > curNumTuples) {\n // Requested size is bigger than current size. Allocate enough\n // memory to fit the requested size and be more than double the\n // currently allocated memory.\n const oldValues = model.values;\n model.values = newTypedArray(model.dataType, (requestedNumTuples + curNumTuples) * numComps);\n model.values.set(oldValues);\n return true;\n }\n\n // Requested size is smaller than currently allocated size\n if (model.size > requestedNumTuples * numComps) {\n model.size = requestedNumTuples * numComps;\n publicAPI.dataChange();\n }\n return true;\n }\n publicAPI.dataChange = () => {\n model.ranges = null;\n publicAPI.modified();\n };\n publicAPI.resize = requestedNumTuples => {\n resize(requestedNumTuples);\n const newSize = requestedNumTuples * publicAPI.getNumberOfComponents();\n if (model.size !== newSize) {\n model.size = newSize;\n publicAPI.dataChange();\n return true;\n }\n return false;\n };\n\n // FIXME, to rename into \"clear()\" or \"reset()\"\n publicAPI.initialize = () => {\n publicAPI.resize(0);\n };\n publicAPI.getElementComponentSize = () => model.values.BYTES_PER_ELEMENT;\n\n // Description:\n // Return the data component at the location specified by tupleIdx and\n // compIdx.\n publicAPI.getComponent = function (tupleIdx) {\n let compIdx = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return model.values[tupleIdx * model.numberOfComponents + compIdx];\n };\n\n // Description:\n // Set the data component at the location specified by tupleIdx and compIdx\n // to value.\n // Note that i is less than NumberOfTuples and j is less than\n // NumberOfComponents. Make sure enough memory has been allocated\n // (use SetNumberOfTuples() and SetNumberOfComponents()).\n publicAPI.setComponent = (tupleIdx, compIdx, value) => {\n if (value !== model.values[tupleIdx * model.numberOfComponents + compIdx]) {\n model.values[tupleIdx * model.numberOfComponents + compIdx] = value;\n publicAPI.dataChange();\n }\n };\n publicAPI.getValue = valueIdx => {\n const idx = valueIdx / model.numberOfComponents;\n const comp = valueIdx % model.numberOfComponents;\n return publicAPI.getComponent(idx, comp);\n };\n publicAPI.setValue = (valueIdx, value) => {\n const idx = valueIdx / model.numberOfComponents;\n const comp = valueIdx % model.numberOfComponents;\n publicAPI.setComponent(idx, comp, value);\n };\n publicAPI.getData = () => model.size === model.values.length ? model.values : model.values.subarray(0, model.size);\n publicAPI.getRange = function () {\n let componentIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n let rangeIdx = componentIndex;\n if (rangeIdx < 0) {\n // If scalar data, then store in slot 0 (same as componentIndex = 0).\n // If vector data, then store in last slot.\n rangeIdx = model.numberOfComponents === 1 ? 0 : model.numberOfComponents;\n }\n let range = null;\n if (!model.ranges) {\n model.ranges = ensureRangeSize(model.ranges, model.numberOfComponents);\n }\n range = model.ranges[rangeIdx];\n if (range) {\n model.rangeTuple[0] = range.min;\n model.rangeTuple[1] = range.max;\n return model.rangeTuple;\n }\n\n // Need to compute ranges...\n range = computeRange(publicAPI.getData(), componentIndex, model.numberOfComponents);\n model.ranges[rangeIdx] = range;\n model.rangeTuple[0] = range.min;\n model.rangeTuple[1] = range.max;\n return model.rangeTuple;\n };\n publicAPI.setRange = (rangeValue, componentIndex) => {\n if (!model.ranges) {\n model.ranges = ensureRangeSize(model.ranges, model.numberOfComponents);\n }\n const range = {\n min: rangeValue.min,\n max: rangeValue.max\n };\n model.ranges[componentIndex] = range;\n model.rangeTuple[0] = range.min;\n model.rangeTuple[1] = range.max;\n return model.rangeTuple;\n };\n publicAPI.getRanges = function () {\n let computeRanges = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!computeRanges) {\n return structuredClone(model.ranges);\n }\n /** @type {import('../../../interfaces').vtkRange[]} */\n const ranges = [];\n for (let i = 0; i < model.numberOfComponents; i++) {\n const [min, max] = publicAPI.getRange(i);\n /** @type {import('../../../interfaces').vtkRange} */\n const range = {\n min,\n max\n };\n ranges.push(range);\n }\n // where the number of components is greater than 1, the last element in\n // the range array is the min,max magnitude of the entire dataset.\n if (model.numberOfComponents > 1) {\n const [min, max] = publicAPI.getRange(-1);\n /** @type {import('../../../interfaces').vtkRange} */\n const range = {\n min,\n max\n };\n ranges.push(range);\n }\n return ranges;\n };\n publicAPI.setTuple = (idx, tuple) => {\n const offset = idx * model.numberOfComponents;\n for (let i = 0; i < model.numberOfComponents; i++) {\n model.values[offset + i] = tuple[i];\n }\n };\n publicAPI.setTuples = (idx, tuples) => {\n let i = idx * model.numberOfComponents;\n const last = Math.min(tuples.length, model.size - i);\n for (let j = 0; j < last;) {\n model.values[i++] = tuples[j++];\n }\n };\n publicAPI.insertTuple = (idx, tuple) => {\n if (model.size <= idx * model.numberOfComponents) {\n model.size = (idx + 1) * model.numberOfComponents;\n resize(idx + 1);\n }\n publicAPI.setTuple(idx, tuple);\n return idx;\n };\n publicAPI.insertTuples = (idx, tuples) => {\n const end = idx + tuples.length / model.numberOfComponents;\n if (model.size < end * model.numberOfComponents) {\n model.size = end * model.numberOfComponents;\n resize(end);\n }\n publicAPI.setTuples(idx, tuples);\n return end;\n };\n publicAPI.insertNextTuple = tuple => {\n const idx = model.size / model.numberOfComponents;\n return publicAPI.insertTuple(idx, tuple);\n };\n publicAPI.insertNextTuples = tuples => {\n const idx = model.size / model.numberOfComponents;\n return publicAPI.insertTuples(idx, tuples);\n };\n publicAPI.findTuple = function (tuple) {\n let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : EPSILON;\n for (let i = 0; i < model.size; i += model.numberOfComponents) {\n if (Math.abs(tuple[0] - model.values[i]) <= precision) {\n let match = true;\n for (let j = 1; j < model.numberOfComponents; ++j) {\n if (Math.abs(tuple[j] - model.values[i + j]) > precision) {\n match = false;\n break;\n }\n }\n if (match) {\n return i / model.numberOfComponents;\n }\n }\n }\n return -1;\n };\n publicAPI.getTuple = function (idx) {\n let tupleToFill = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n const numberOfComponents = model.numberOfComponents || 1;\n const offset = idx * numberOfComponents;\n // Check most common component sizes first\n // to avoid doing a for loop if possible\n switch (numberOfComponents) {\n case 4:\n tupleToFill[3] = model.values[offset + 3];\n // eslint-disable-next-line no-fallthrough\n case 3:\n tupleToFill[2] = model.values[offset + 2];\n // eslint-disable-next-line no-fallthrough\n case 2:\n tupleToFill[1] = model.values[offset + 1];\n // eslint-disable-next-line no-fallthrough\n case 1:\n tupleToFill[0] = model.values[offset];\n break;\n default:\n for (let i = numberOfComponents - 1; i >= 0; --i) {\n tupleToFill[i] = model.values[offset + i];\n }\n }\n return tupleToFill;\n };\n publicAPI.getTuples = (fromId, toId) => {\n const from = (fromId ?? 0) * model.numberOfComponents;\n const to = (toId ?? publicAPI.getNumberOfTuples()) * model.numberOfComponents;\n const arr = publicAPI.getData().subarray(from, to);\n return arr.length > 0 ? arr : null;\n };\n publicAPI.getTupleLocation = function () {\n let idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n return idx * model.numberOfComponents;\n };\n publicAPI.getNumberOfComponents = () => model.numberOfComponents;\n publicAPI.getNumberOfValues = () => model.size;\n publicAPI.getNumberOfTuples = () => model.size / model.numberOfComponents;\n publicAPI.getDataType = () => model.dataType;\n /* eslint-disable no-use-before-define */\n publicAPI.newClone = () => newInstance({\n empty: true,\n name: model.name,\n dataType: model.dataType,\n numberOfComponents: model.numberOfComponents\n });\n /* eslint-enable no-use-before-define */\n\n publicAPI.getName = () => {\n if (!model.name) {\n publicAPI.modified();\n model.name = `vtkDataArray${publicAPI.getMTime()}`;\n }\n return model.name;\n };\n publicAPI.setData = (typedArray, numberOfComponents) => {\n model.values = typedArray;\n model.size = typedArray.length;\n model.dataType = getDataType(typedArray);\n if (numberOfComponents) {\n model.numberOfComponents = numberOfComponents;\n }\n if (model.size % model.numberOfComponents !== 0) {\n model.numberOfComponents = 1;\n }\n publicAPI.dataChange();\n };\n\n // Override serialization support\n publicAPI.getState = () => {\n if (model.deleted) {\n return null;\n }\n const jsonArchive = {\n ...model,\n vtkClass: publicAPI.getClassName()\n };\n\n // Convert typed array to regular array\n jsonArchive.values = Array.from(jsonArchive.values);\n delete jsonArchive.buffer;\n\n // Clean any empty data\n Object.keys(jsonArchive).forEach(keyName => {\n if (!jsonArchive[keyName]) {\n delete jsonArchive[keyName];\n }\n });\n\n // Sort resulting object by key name\n const sortedObj = {};\n Object.keys(jsonArchive).sort().forEach(name => {\n sortedObj[name] = jsonArchive[name];\n });\n\n // Remove mtime\n if (sortedObj.mtime) {\n delete sortedObj.mtime;\n }\n return sortedObj;\n };\n\n /**\n * @param {import(\"./index\").vtkDataArray} other\n */\n publicAPI.deepCopy = other => {\n // Retain current dataType and array reference before shallowCopy call.\n const currentType = publicAPI.getDataType();\n const currentArray = model.values;\n publicAPI.shallowCopy(other);\n\n // set the ranges\n model.ranges = structuredClone(other.getRanges());\n\n // Avoid array reallocation if size already sufficient\n // and dataTypes match.\n if (currentArray?.length >= other.getNumberOfValues() && currentType === other.getDataType()) {\n currentArray.set(other.getData());\n model.values = currentArray;\n publicAPI.dataChange();\n } else {\n publicAPI.setData(other.getData().slice());\n }\n };\n publicAPI.interpolateTuple = (idx, source1, source1Idx, source2, source2Idx, t) => {\n const numberOfComponents = model.numberOfComponents || 1;\n if (numberOfComponents !== source1.getNumberOfComponents() || numberOfComponents !== source2.getNumberOfComponents()) {\n vtkErrorMacro('numberOfComponents must match');\n }\n const tuple1 = source1.getTuple(source1Idx);\n const tuple2 = source2.getTuple(source2Idx);\n const out = [];\n out.length = numberOfComponents;\n\n // Check most common component sizes first\n // to avoid doing a for loop if possible\n switch (numberOfComponents) {\n case 4:\n out[3] = tuple1[3] + (tuple2[3] - tuple1[3]) * t;\n // eslint-disable-next-line no-fallthrough\n case 3:\n out[2] = tuple1[2] + (tuple2[2] - tuple1[2]) * t;\n // eslint-disable-next-line no-fallthrough\n case 2:\n out[1] = tuple1[1] + (tuple2[1] - tuple1[1]) * t;\n // eslint-disable-next-line no-fallthrough\n case 1:\n out[0] = tuple1[0] + (tuple2[0] - tuple1[0]) * t;\n break;\n default:\n for (let i = 0; i < numberOfComponents; i++) {\n out[i] = tuple1[i] + (tuple2[i] - tuple1[i]) * t;\n }\n }\n return publicAPI.insertTuple(idx, out);\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\n// size: The current size of the dataArray.\n// NOTE: The underlying typed array may be larger than 'size'.\nconst DEFAULT_VALUES = {\n name: '',\n numberOfComponents: 1,\n dataType: DefaultDataType,\n rangeTuple: [0, 0]\n // size: undefined,\n // values: null,\n // ranges: null,\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n if (Array.isArray(initialValues.values) && initialValues.dataType === undefined) {\n console.warn('vtkDataArray.newInstance: no dataType provided, converting to Float32Array');\n }\n if (!model.empty && !model.values && !model.size) {\n throw new TypeError('Cannot create vtkDataArray object without: size > 0, values');\n }\n if (!model.values) {\n model.values = newTypedArray(model.dataType, model.size);\n } else if (Array.isArray(model.values)) {\n model.values = newTypedArrayFrom(model.dataType, model.values);\n }\n if (model.values) {\n // Takes the size if provided (can be lower than `model.values`) otherwise the actual length of `values`.\n model.size = model.size ?? model.values.length;\n model.dataType = getDataType(model.values);\n }\n\n // Object methods\n obj(publicAPI, model);\n set(publicAPI, model, ['name', 'numberOfComponents']);\n if (model.size % model.numberOfComponents !== 0) {\n throw new RangeError('model.size is not a multiple of model.numberOfComponents');\n }\n\n // Object specific methods\n vtkDataArray(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = newInstance$1(extend, 'vtkDataArray');\n\n// ----------------------------------------------------------------------------\n\nvar vtkDataArray$1 = {\n newInstance,\n extend,\n ...STATIC,\n ...Constants\n};\n\nexport { STATIC, vtkDataArray$1 as default, extend, newInstance };\n","import vtk from '../../../vtk.js';\nimport { m as macro } from '../../../macros2.js';\nimport vtkDataArray from '../../Core/DataArray.js';\n\nconst {\n vtkErrorMacro,\n vtkWarningMacro\n} = macro;\n\n// ----------------------------------------------------------------------------\n// vtkFieldData methods\n// ----------------------------------------------------------------------------\n\nfunction vtkFieldData(publicAPI, model) {\n model.classHierarchy.push('vtkFieldData');\n const superGetState = publicAPI.getState;\n\n // Decode serialized data if any\n if (model.arrays) {\n model.arrays = model.arrays.map(item => ({\n data: vtk(item.data)\n }));\n }\n publicAPI.initialize = () => {\n publicAPI.initializeFields();\n publicAPI.copyAllOn();\n publicAPI.clearFieldFlags();\n };\n publicAPI.initializeFields = () => {\n model.arrays = [];\n model.copyFieldFlags = {};\n publicAPI.modified();\n };\n publicAPI.copyStructure = other => {\n publicAPI.initializeFields();\n model.copyFieldFlags = other.getCopyFieldFlags().map(x => x); // Deep-copy\n model.arrays = other.arrays().map(x => ({\n array: x\n })); // Deep-copy\n // TODO: Copy array information objects (once we support information objects)\n };\n\n publicAPI.getNumberOfArrays = () => model.arrays.length;\n publicAPI.getNumberOfActiveArrays = () => model.arrays.length;\n publicAPI.addArray = arr => {\n const name = arr.getName();\n const {\n array,\n index\n } = publicAPI.getArrayWithIndex(name);\n if (array != null) {\n model.arrays[index] = {\n data: arr\n };\n return index;\n }\n model.arrays = [].concat(model.arrays, {\n data: arr\n });\n return model.arrays.length - 1;\n };\n publicAPI.removeAllArrays = () => {\n model.arrays = [];\n };\n publicAPI.removeArray = arrayName => {\n const index = model.arrays.findIndex(array => array.data.getName() === arrayName);\n return publicAPI.removeArrayByIndex(index);\n };\n publicAPI.removeArrayByIndex = arrayIdx => {\n if (arrayIdx !== -1 && arrayIdx < model.arrays.length) {\n model.arrays.splice(arrayIdx, 1);\n // TBD modified() ?\n return true;\n }\n return false;\n };\n publicAPI.getArrays = () => model.arrays.map(entry => entry.data);\n publicAPI.getArray = arraySpec => typeof arraySpec === 'number' ? publicAPI.getArrayByIndex(arraySpec) : publicAPI.getArrayByName(arraySpec);\n publicAPI.getArrayByName = arrayName => model.arrays.reduce((a, b, i) => b.data.getName() === arrayName ? b.data : a, null);\n publicAPI.getArrayWithIndex = arrayName => {\n const index = model.arrays.findIndex(array => array.data.getName() === arrayName);\n return {\n array: index !== -1 ? model.arrays[index].data : null,\n index\n };\n };\n publicAPI.getArrayByIndex = idx => idx >= 0 && idx < model.arrays.length ? model.arrays[idx].data : null;\n publicAPI.hasArray = arrayName => publicAPI.getArrayWithIndex(arrayName).index >= 0;\n publicAPI.getArrayName = idx => {\n const arr = model.arrays[idx];\n return arr ? arr.data.getName() : '';\n };\n publicAPI.getCopyFieldFlags = () => model.copyFieldFlags;\n publicAPI.getFlag = arrayName => model.copyFieldFlags[arrayName];\n publicAPI.passData = function (other) {\n let fromId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;\n let toId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;\n other.getArrays().forEach(arr => {\n const copyFlag = publicAPI.getFlag(arr.getName());\n if (copyFlag !== false && !(model.doCopyAllOff && copyFlag !== true) && arr) {\n let destArr = publicAPI.getArrayByName(arr.getName());\n if (!destArr) {\n if (fromId < 0 || fromId > arr.getNumberOfTuples()) {\n // TBD: should this be a deep or a shallow copy?\n publicAPI.addArray(arr);\n other.getAttributes(arr).forEach(attrType => {\n publicAPI.setAttribute(arr, attrType);\n });\n } else {\n const ncomps = arr.getNumberOfComponents();\n let newSize = arr.getNumberOfValues();\n const tId = toId > -1 ? toId : fromId;\n if (newSize <= tId * ncomps) {\n newSize = (tId + 1) * ncomps;\n }\n destArr = vtkDataArray.newInstance({\n name: arr.getName(),\n dataType: arr.getDataType(),\n numberOfComponents: ncomps,\n values: macro.newTypedArray(arr.getDataType(), newSize),\n size: 0\n });\n destArr.insertTuple(tId, arr.getTuple(fromId));\n publicAPI.addArray(destArr);\n other.getAttributes(arr).forEach(attrType => {\n publicAPI.setAttribute(destArr, attrType);\n });\n }\n } else if (arr.getNumberOfComponents() === destArr.getNumberOfComponents()) {\n if (fromId > -1 && fromId < arr.getNumberOfTuples()) {\n const tId = toId > -1 ? toId : fromId;\n destArr.insertTuple(tId, arr.getTuple(fromId));\n } else {\n // if `fromId` is not provided, just copy all (or as much possible)\n // from `arr` to `destArr`.\n destArr.insertTuples(0, arr.getTuples());\n }\n } else {\n vtkErrorMacro('Unhandled case in passData');\n }\n }\n });\n };\n publicAPI.interpolateData = function (other) {\n let fromId1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;\n let fromId2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;\n let toId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n let t = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0.5;\n other.getArrays().forEach(arr => {\n const copyFlag = publicAPI.getFlag(arr.getName());\n if (copyFlag !== false && !(model.doCopyAllOff && copyFlag !== true) && arr) {\n let destArr = publicAPI.getArrayByName(arr.getName());\n if (!destArr) {\n if (fromId1 < 0 || fromId2 < 0 || fromId1 > arr.getNumberOfTuples()) {\n // TBD: should this be a deep or a shallow copy?\n publicAPI.addArray(arr);\n other.getAttributes(arr).forEach(attrType => {\n publicAPI.setAttribute(arr, attrType);\n });\n } else {\n const ncomps = arr.getNumberOfComponents();\n let newSize = arr.getNumberOfValues();\n // TODO: Is this supposed to happen?\n const tId = toId > -1 ? toId : fromId1;\n if (newSize <= tId * ncomps) {\n newSize = (tId + 1) * ncomps;\n }\n destArr = vtkDataArray.newInstance({\n name: arr.getName(),\n dataType: arr.getDataType(),\n numberOfComponents: ncomps,\n values: macro.newTypedArray(arr.getDataType(), newSize),\n size: 0\n });\n destArr.interpolateTuple(tId, arr, fromId1, arr, fromId2, t);\n publicAPI.addArray(destArr);\n other.getAttributes(arr).forEach(attrType => {\n publicAPI.setAttribute(destArr, attrType);\n });\n }\n } else if (arr.getNumberOfComponents() === destArr.getNumberOfComponents()) {\n if (fromId1 > -1 && fromId1 < arr.getNumberOfTuples()) {\n const tId = toId > -1 ? toId : fromId1;\n destArr.interpolateTuple(tId, arr, fromId1, arr, fromId2, t);\n vtkWarningMacro('Unexpected case in interpolateData');\n } else {\n // if `fromId` is not provided, just copy all (or as much possible)\n // from `arr` to `destArr`.\n destArr.insertTuples(arr.getTuples());\n }\n } else {\n vtkErrorMacro('Unhandled case in interpolateData');\n }\n }\n });\n };\n publicAPI.copyFieldOn = arrayName => {\n model.copyFieldFlags[arrayName] = true;\n };\n publicAPI.copyFieldOff = arrayName => {\n model.copyFieldFlags[arrayName] = false;\n };\n publicAPI.copyAllOn = () => {\n if (!model.doCopyAllOn || model.doCopyAllOff) {\n model.doCopyAllOn = true;\n model.doCopyAllOff = false;\n publicAPI.modified();\n }\n };\n publicAPI.copyAllOff = () => {\n if (model.doCopyAllOn || !model.doCopyAllOff) {\n model.doCopyAllOn = false;\n model.doCopyAllOff = true;\n publicAPI.modified();\n }\n };\n publicAPI.clearFieldFlags = () => {\n model.copyFieldFlags = {};\n };\n publicAPI.deepCopy = other => {\n model.arrays = other.getArrays().map(arr => {\n const arrNew = arr.newClone();\n arrNew.deepCopy(arr);\n return {\n data: arrNew\n };\n });\n };\n publicAPI.copyFlags = other => other.getCopyFieldFlags().map(x => x);\n // TODO: publicAPI.squeeze = () => model.arrays.forEach(entry => entry.data.squeeze());\n publicAPI.reset = () => model.arrays.forEach(entry => entry.data.reset());\n // TODO: getActualMemorySize\n publicAPI.getMTime = () => model.arrays.reduce((a, b) => b.data.getMTime() > a ? b.data.getMTime() : a, model.mtime);\n // TODO: publicAPI.getField = (ids, other) => { copy ids from other into this model's arrays }\n // TODO: publicAPI.getArrayContainingComponent = (component) => ...\n publicAPI.getNumberOfComponents = () => model.arrays.reduce((a, b) => a + b.data.getNumberOfComponents(), 0);\n publicAPI.getNumberOfTuples = () => model.arrays.length > 0 ? model.arrays[0].getNumberOfTuples() : 0;\n publicAPI.getState = () => {\n const result = superGetState();\n if (result) {\n result.arrays = model.arrays.map(item => ({\n data: item.data.getState()\n }));\n }\n return result;\n };\n}\nconst DEFAULT_VALUES = {\n arrays: [],\n copyFieldFlags: [],\n // fields not to copy\n doCopyAllOn: true,\n doCopyAllOff: false\n};\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n macro.obj(publicAPI, model);\n vtkFieldData(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkFieldData');\n\n// ----------------------------------------------------------------------------\n\nvar vtkFieldData$1 = {\n newInstance,\n extend\n};\n\nexport { vtkFieldData$1 as default, extend, newInstance };\n","const AttributeTypes = {\n SCALARS: 0,\n VECTORS: 1,\n NORMALS: 2,\n TCOORDS: 3,\n TENSORS: 4,\n GLOBALIDS: 5,\n PEDIGREEIDS: 6,\n EDGEFLAG: 7,\n NUM_ATTRIBUTES: 8\n};\nconst AttributeLimitTypes = {\n MAX: 0,\n EXACT: 1,\n NOLIMIT: 2\n};\nconst CellGhostTypes = {\n DUPLICATECELL: 1,\n // the cell is present on multiple processors\n HIGHCONNECTIVITYCELL: 2,\n // the cell has more neighbors than in a regular mesh\n LOWCONNECTIVITYCELL: 4,\n // the cell has less neighbors than in a regular mesh\n REFINEDCELL: 8,\n // other cells are present that refines it.\n EXTERIORCELL: 16,\n // the cell is on the exterior of the data set\n HIDDENCELL: 32 // the cell is needed to maintain connectivity, but the data values should be ignored.\n};\n\nconst PointGhostTypes = {\n DUPLICATEPOINT: 1,\n // the cell is present on multiple processors\n HIDDENPOINT: 2 // the point is needed to maintain connectivity, but the data values should be ignored.\n};\n\nconst AttributeCopyOperations = {\n COPYTUPLE: 0,\n INTERPOLATE: 1,\n PASSDATA: 2,\n ALLCOPY: 3 // all of the above\n};\n\nconst ghostArrayName = 'vtkGhostType';\nconst DesiredOutputPrecision = {\n DEFAULT: 0,\n // use the point type that does not truncate any data\n SINGLE: 1,\n // use Float32Array\n DOUBLE: 2 // use Float64Array\n};\n\nvar Constants = {\n AttributeCopyOperations,\n AttributeLimitTypes,\n AttributeTypes,\n CellGhostTypes,\n DesiredOutputPrecision,\n PointGhostTypes,\n ghostArrayName\n};\n\nexport { AttributeCopyOperations, AttributeLimitTypes, AttributeTypes, CellGhostTypes, DesiredOutputPrecision, PointGhostTypes, Constants as default, ghostArrayName };\n","import { m as macro } from '../../macros2.js';\nimport vtkFieldData from './DataSetAttributes/FieldData.js';\nimport Constants from './DataSetAttributes/Constants.js';\nimport vtkDataArray from '../Core/DataArray.js';\n\nconst {\n AttributeTypes,\n AttributeCopyOperations\n} = Constants;\nconst {\n vtkWarningMacro\n} = macro;\n\n// ----------------------------------------------------------------------------\n// vtkDataSetAttributes methods\n// ----------------------------------------------------------------------------\n\nfunction vtkDataSetAttributes(publicAPI, model) {\n const attrTypes = ['Scalars', 'Vectors', 'Normals', 'TCoords', 'Tensors', 'GlobalIds', 'PedigreeIds'];\n function cleanAttributeType(attType) {\n // Given an integer or string, convert the result to one of the\n // strings in the \"attrTypes\" array above or null (if\n // no match is found)\n let cleanAttType = attrTypes.find(ee => AttributeTypes[ee.toUpperCase()] === attType || typeof attType !== 'number' && ee.toLowerCase() === attType.toLowerCase());\n if (typeof cleanAttType === 'undefined') {\n cleanAttType = null;\n }\n return cleanAttType;\n }\n\n // Set our className\n model.classHierarchy.push('vtkDataSetAttributes');\n const superClass = {\n ...publicAPI\n };\n publicAPI.checkNumberOfComponents = x => true; // TODO\n\n publicAPI.setAttribute = (arr, uncleanAttType) => {\n const attType = cleanAttributeType(uncleanAttType);\n if (arr && attType.toUpperCase() === 'PEDIGREEIDS' && !arr.isA('vtkDataArray')) {\n vtkWarningMacro(`Cannot set attribute ${attType}. The attribute must be a vtkDataArray.`);\n return -1;\n }\n if (arr && !publicAPI.checkNumberOfComponents(arr, attType)) {\n vtkWarningMacro(`Cannot set attribute ${attType}. Incorrect number of components.`);\n return -1;\n }\n let currentAttribute = model[`active${attType}`];\n if (currentAttribute >= 0 && currentAttribute < model.arrays.length) {\n if (model.arrays[currentAttribute] === arr) {\n return currentAttribute;\n }\n // FIXME setting an array actually changes its index\n publicAPI.removeArrayByIndex(currentAttribute);\n }\n if (arr) {\n currentAttribute = publicAPI.addArray(arr);\n model[`active${attType}`] = currentAttribute;\n } else {\n model[`active${attType}`] = -1;\n }\n publicAPI.modified();\n return model[`active${attType}`];\n };\n publicAPI.getAttributes = arr => attrTypes.filter(attrType => publicAPI[`get${attrType}`]() === arr);\n publicAPI.setActiveAttributeByName = (arrayName, attType) => publicAPI.setActiveAttributeByIndex(publicAPI.getArrayWithIndex(arrayName).index, attType);\n publicAPI.setActiveAttributeByIndex = (arrayIdx, uncleanAttType) => {\n const attType = cleanAttributeType(uncleanAttType);\n if (arrayIdx >= 0 && arrayIdx < model.arrays.length) {\n if (attType.toUpperCase() !== 'PEDIGREEIDS') {\n const arr = publicAPI.getArrayByIndex(arrayIdx);\n if (!arr.isA('vtkDataArray')) {\n vtkWarningMacro(`Cannot set attribute ${attType}. Only vtkDataArray subclasses can be set as active attributes.`);\n return -1;\n }\n if (!publicAPI.checkNumberOfComponents(arr, attType)) {\n vtkWarningMacro(`Cannot set attribute ${attType}. Incorrect number of components.`);\n return -1;\n }\n }\n model[`active${attType}`] = arrayIdx;\n publicAPI.modified();\n return arrayIdx;\n }\n if (arrayIdx === -1) {\n model[`active${attType}`] = arrayIdx;\n publicAPI.modified();\n }\n return -1;\n };\n publicAPI.getActiveAttribute = attType => {\n // Given an integer enum value or a string (with random capitalization),\n // find the matching string in attrTypes.\n const cleanAttType = cleanAttributeType(attType);\n return publicAPI[`get${cleanAttType}`]();\n };\n\n // Override to allow proper handling of active attributes\n publicAPI.removeAllArrays = () => {\n attrTypes.forEach(attType => {\n model[`active${attType}`] = -1;\n });\n superClass.removeAllArrays();\n };\n\n // Override to allow proper handling of active attributes\n publicAPI.removeArrayByIndex = arrayIdx => {\n if (arrayIdx !== -1) {\n attrTypes.forEach(attType => {\n if (arrayIdx === model[`active${attType}`]) {\n model[`active${attType}`] = -1;\n } else if (arrayIdx < model[`active${attType}`]) {\n model[`active${attType}`] -= 1;\n }\n });\n }\n return superClass.removeArrayByIndex(arrayIdx);\n };\n attrTypes.forEach(value => {\n const activeVal = `active${value}`;\n publicAPI[`get${value}`] = () => publicAPI.getArrayByIndex(model[activeVal]);\n publicAPI[`set${value}`] = da => publicAPI.setAttribute(da, value);\n publicAPI[`setActive${value}`] = arrayName => publicAPI.setActiveAttributeByIndex(publicAPI.getArrayWithIndex(arrayName).index, value);\n publicAPI[`copy${value}Off`] = () => {\n const attType = value.toUpperCase();\n model.copyAttributeFlags[AttributeCopyOperations.PASSDATA][AttributeTypes[attType]] = false;\n };\n publicAPI[`copy${value}On`] = () => {\n const attType = value.toUpperCase();\n model.copyAttributeFlags[AttributeCopyOperations.PASSDATA][AttributeTypes[attType]] = true;\n };\n });\n publicAPI.initializeAttributeCopyFlags = () => {\n // Default to copying all attributes in every circumstance:\n model.copyAttributeFlags = [];\n Object.keys(AttributeCopyOperations).filter(op => op !== 'ALLCOPY').forEach(attCopyOp => {\n model.copyAttributeFlags[AttributeCopyOperations[attCopyOp]] = Object.keys(AttributeTypes).filter(ty => ty !== 'NUM_ATTRIBUTES').reduce((a, b) => {\n a[AttributeTypes[b]] = true;\n return a;\n }, []);\n });\n // Override some operations where we don't want to copy:\n model.copyAttributeFlags[AttributeCopyOperations.COPYTUPLE][AttributeTypes.GLOBALIDS] = false;\n model.copyAttributeFlags[AttributeCopyOperations.INTERPOLATE][AttributeTypes.GLOBALIDS] = false;\n model.copyAttributeFlags[AttributeCopyOperations.COPYTUPLE][AttributeTypes.PEDIGREEIDS] = false;\n };\n publicAPI.initialize = macro.chain(publicAPI.initialize, publicAPI.initializeAttributeCopyFlags);\n\n // Process dataArrays if any\n if (model.dataArrays && Object.keys(model.dataArrays).length) {\n Object.keys(model.dataArrays).forEach(name => {\n if (!model.dataArrays[name].ref && model.dataArrays[name].type === 'vtkDataArray') {\n publicAPI.addArray(vtkDataArray.newInstance(model.dataArrays[name]));\n }\n });\n }\n const superShallowCopy = publicAPI.shallowCopy;\n publicAPI.shallowCopy = (other, debug) => {\n superShallowCopy(other, debug);\n model.arrays = other.getArrays().map(arr => {\n const arrNew = arr.newClone();\n arrNew.shallowCopy(arr, debug);\n return {\n data: arrNew\n };\n });\n };\n publicAPI.initializeAttributeCopyFlags();\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n activeScalars: -1,\n activeVectors: -1,\n activeTensors: -1,\n activeNormals: -1,\n activeTCoords: -1,\n activeGlobalIds: -1,\n activePedigreeIds: -1\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Object methods\n vtkFieldData.extend(publicAPI, model, initialValues);\n macro.setGet(publicAPI, model, ['activeScalars', 'activeNormals', 'activeTCoords', 'activeVectors', 'activeTensors', 'activeGlobalIds', 'activePedigreeIds']);\n if (!model.arrays) {\n model.arrays = {};\n }\n\n // Object specific methods\n vtkDataSetAttributes(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkDataSetAttributes');\n\n// ----------------------------------------------------------------------------\n\nvar vtkDataSetAttributes$1 = {\n newInstance,\n extend,\n ...Constants\n};\n\nexport { vtkDataSetAttributes$1 as default, extend, newInstance };\n","// Specify how data arrays can be used by data objects\nconst FieldDataTypes = {\n UNIFORM: 0,\n // data that does not vary over points/cells/etc.\n DATA_OBJECT_FIELD: 0,\n // to match VTK\n\n COORDINATE: 1,\n // data that specifies the location of each point\n POINT_DATA: 1,\n // to match VTK\n\n POINT: 2,\n // data defined at each point, but that does not specify the point location\n POINT_FIELD_DATA: 2,\n // to match VTK\n\n CELL: 3,\n // data defined at each cell, but that does not specify the cell\n CELL_FIELD_DATA: 3,\n // to match VTK\n\n VERTEX: 4,\n // data defined at each graph vertex, but that does not specify the graph vertex\n VERTEX_FIELD_DATA: 4,\n // to match VTK\n\n EDGE: 5,\n // data defined at each graph edge, but that does not specify the graph edge\n EDGE_FIELD_DATA: 5,\n // to match VTK\n\n ROW: 6,\n // data specifying a table row\n ROW_DATA: 6 // to match VTK\n};\n\nconst FieldAssociations = {\n FIELD_ASSOCIATION_POINTS: 0,\n FIELD_ASSOCIATION_CELLS: 1,\n FIELD_ASSOCIATION_NONE: 2,\n FIELD_ASSOCIATION_POINTS_THEN_CELLS: 3,\n FIELD_ASSOCIATION_VERTICES: 4,\n FIELD_ASSOCIATION_EDGES: 5,\n FIELD_ASSOCIATION_ROWS: 6,\n NUMBER_OF_ASSOCIATIONS: 7\n};\nvar Constants = {\n FieldDataTypes,\n FieldAssociations\n};\n\nexport { FieldAssociations, FieldDataTypes, Constants as default };\n","import { m as macro } from '../../macros2.js';\nimport vtk from '../../vtk.js';\nimport vtkDataSetAttributes from './DataSetAttributes.js';\nimport Constants from './DataSet/Constants.js';\n\n// import vtkBoundingBox from '../BoundingBox';\n// import * as vtkMath from '../../Core/Math';\n//\n// function getBounds(dataset) {\n// if (dataset.bounds) {\n// return dataset.bounds;\n// }\n// if (dataset.type && dataset[dataset.type]) {\n// const ds = dataset[dataset.type];\n// if (ds.bounds) {\n// return ds.bounds;\n// }\n// if (ds.Points && ds.Points.bounds) {\n// return ds.Points.bounds;\n// }\n\n// if (ds.Points && ds.Points.values) {\n// const array = ds.Points.values;\n// const bbox = [...vtkBoundingBox.INIT_BOUNDS];\n// const size = array.length;\n// const delta = ds.Points.numberOfComponents ? ds.Points.numberOfComponents : 3;\n// for (let idx = 0; idx < size; idx += delta) {\n// vtkBoundingBox.addPoint(bbox, array[idx * delta], array[(idx * delta) + 1], array[(idx * delta) + 2]);\n// }\n// ds.Points.bounds = bbox;\n// return ds.Points.bounds;\n// }\n// }\n// return vtkMath.createUninitializedBounds();\n// }\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\nconst DATASET_FIELDS = ['pointData', 'cellData', 'fieldData'];\n\n// ----------------------------------------------------------------------------\n// vtkDataSet methods\n// ----------------------------------------------------------------------------\n\nfunction vtkDataSet(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkDataSet');\n\n // Add dataset attributes\n DATASET_FIELDS.forEach(fieldName => {\n if (!model[fieldName]) {\n model[fieldName] = vtkDataSetAttributes.newInstance();\n } else {\n model[fieldName] = vtk(model[fieldName]);\n }\n });\n const superShallowCopy = publicAPI.shallowCopy;\n publicAPI.shallowCopy = function (other) {\n let debug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n superShallowCopy(other, debug);\n DATASET_FIELDS.forEach(fieldName => {\n model[fieldName] = vtkDataSetAttributes.newInstance();\n model[fieldName].shallowCopy(other.getReferenceByName(fieldName));\n });\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n // pointData: null,\n // cellData: null,\n // fieldData: null,\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Object methods\n macro.obj(publicAPI, model);\n macro.setGet(publicAPI, model, DATASET_FIELDS);\n\n // Object specific methods\n vtkDataSet(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkDataSet');\n\n// ----------------------------------------------------------------------------\n\nvar vtkDataSet$1 = {\n newInstance,\n extend,\n ...Constants\n};\n\nexport { vtkDataSet$1 as default, extend, newInstance };\n","const StructuredType = {\n UNCHANGED: 0,\n SINGLE_POINT: 1,\n X_LINE: 2,\n Y_LINE: 3,\n Z_LINE: 4,\n XY_PLANE: 5,\n YZ_PLANE: 6,\n XZ_PLANE: 7,\n XYZ_GRID: 8,\n EMPTY: 9\n};\nvar Constants = {\n StructuredType\n};\n\nexport { StructuredType, Constants as default };\n","import Constants from './StructuredData/Constants.js';\n\nconst {\n StructuredType\n} = Constants;\nfunction getDataDescriptionFromExtent(inExt) {\n let dataDim = 0;\n for (let i = 0; i < 3; ++i) {\n if (inExt[i * 2] < inExt[i * 2 + 1]) {\n dataDim++;\n }\n }\n if (inExt[0] > inExt[1] || inExt[2] > inExt[3] || inExt[4] > inExt[5]) {\n return StructuredType.EMPTY;\n }\n if (dataDim === 3) {\n return StructuredType.XYZ_GRID;\n }\n if (dataDim === 2) {\n if (inExt[0] === inExt[1]) {\n return StructuredType.YZ_PLANE;\n }\n if (inExt[2] === inExt[3]) {\n return StructuredType.XZ_PLANE;\n }\n return StructuredType.XY_PLANE;\n }\n if (dataDim === 1) {\n if (inExt[0] < inExt[1]) {\n return StructuredType.X_LINE;\n }\n if (inExt[2] < inExt[3]) {\n return StructuredType.Y_LINE;\n }\n return StructuredType.Z_LINE;\n }\n return StructuredType.SINGLE_POINT;\n}\nvar vtkStructuredData = {\n getDataDescriptionFromExtent,\n ...Constants\n};\n\nexport { vtkStructuredData as default, getDataDescriptionFromExtent };\n","import { m as macro } from '../../macros2.js';\nimport { b as roundVector, c as clampVector } from '../Core/Math/index.js';\nimport vtkBoundingBox from './BoundingBox.js';\nimport vtkDataSet from './DataSet.js';\nimport vtkStructuredData from './StructuredData.js';\nimport { StructuredType } from './StructuredData/Constants.js';\nimport { mat3, mat4, vec3 } from 'gl-matrix';\n\nconst {\n vtkErrorMacro\n} = macro;\n\n// ----------------------------------------------------------------------------\n// vtkImageData methods\n// ----------------------------------------------------------------------------\n\nfunction vtkImageData(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkImageData');\n publicAPI.setExtent = function () {\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return false;\n }\n for (var _len = arguments.length, inExtent = new Array(_len), _key = 0; _key < _len; _key++) {\n inExtent[_key] = arguments[_key];\n }\n const extentArray = inExtent.length === 1 ? inExtent[0] : inExtent;\n if (extentArray.length !== 6) {\n return false;\n }\n const changeDetected = model.extent.some((item, index) => item !== extentArray[index]);\n if (changeDetected) {\n model.extent = extentArray.slice();\n model.dataDescription = vtkStructuredData.getDataDescriptionFromExtent(model.extent);\n publicAPI.modified();\n }\n return changeDetected;\n };\n publicAPI.setDimensions = function () {\n let i;\n let j;\n let k;\n if (model.deleted) {\n vtkErrorMacro('instance deleted - cannot call any method');\n return;\n }\n if (arguments.length === 1) {\n const array = arguments.length <= 0 ? undefined : arguments[0];\n i = array[0];\n j = array[1];\n k = array[2];\n } else if (arguments.length === 3) {\n i = arguments.length <= 0 ? undefined : arguments[0];\n j = arguments.length <= 1 ? undefined : arguments[1];\n k = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n vtkErrorMacro('Bad dimension specification');\n return;\n }\n publicAPI.setExtent(0, i - 1, 0, j - 1, 0, k - 1);\n };\n publicAPI.getDimensions = () => [model.extent[1] - model.extent[0] + 1, model.extent[3] - model.extent[2] + 1, model.extent[5] - model.extent[4] + 1];\n publicAPI.getNumberOfCells = () => {\n const dims = publicAPI.getDimensions();\n let nCells = 1;\n for (let i = 0; i < 3; i++) {\n if (dims[i] === 0) {\n return 0;\n }\n if (dims[i] > 1) {\n nCells *= dims[i] - 1;\n }\n }\n return nCells;\n };\n publicAPI.getNumberOfPoints = () => {\n const dims = publicAPI.getDimensions();\n return dims[0] * dims[1] * dims[2];\n };\n publicAPI.getPoint = index => {\n const dims = publicAPI.getDimensions();\n if (dims[0] === 0 || dims[1] === 0 || dims[2] === 0) {\n vtkErrorMacro('Requesting a point from an empty image.');\n return null;\n }\n const ijk = new Float64Array(3);\n switch (model.dataDescription) {\n case StructuredType.EMPTY:\n return null;\n case StructuredType.SINGLE_POINT:\n break;\n case StructuredType.X_LINE:\n ijk[0] = index;\n break;\n case StructuredType.Y_LINE:\n ijk[1] = index;\n break;\n case StructuredType.Z_LINE:\n ijk[2] = index;\n break;\n case StructuredType.XY_PLANE:\n ijk[0] = index % dims[0];\n ijk[1] = index / dims[0];\n break;\n case StructuredType.YZ_PLANE:\n ijk[1] = index % dims[1];\n ijk[2] = index / dims[1];\n break;\n case StructuredType.XZ_PLANE:\n ijk[0] = index % dims[0];\n ijk[2] = index / dims[0];\n break;\n case StructuredType.XYZ_GRID:\n ijk[0] = index % dims[0];\n ijk[1] = index / dims[0] % dims[1];\n ijk[2] = index / (dims[0] * dims[1]);\n break;\n default:\n vtkErrorMacro('Invalid dataDescription');\n break;\n }\n const coords = [0, 0, 0];\n publicAPI.indexToWorld(ijk, coords);\n return coords;\n };\n\n // vtkCell *GetCell(vtkIdType cellId) VTK_OVERRIDE;\n // void GetCell(vtkIdType cellId, vtkGenericCell *cell) VTK_OVERRIDE;\n // void GetCellBounds(vtkIdType cellId, double bounds[6]) VTK_OVERRIDE;\n // virtual vtkIdType FindPoint(double x, double y, double z)\n // {\n // return this->vtkDataSet::FindPoint(x, y, z);\n // }\n // vtkIdType FindPoint(double x[3]) VTK_OVERRIDE;\n // vtkIdType FindCell(\n // double x[3], vtkCell *cell, vtkIdType cellId, double tol2,\n // int& subId, double pcoords[3], double *weights) VTK_OVERRIDE;\n // vtkIdType FindCell(\n // double x[3], vtkCell *cell, vtkGenericCell *gencell,\n // vtkIdType cellId, double tol2, int& subId,\n // double pcoords[3], double *weights) VTK_OVERRIDE;\n // vtkCell *FindAndGetCell(double x[3], vtkCell *cell, vtkIdType cellId,\n // double tol2, int& subId, double pcoords[3],\n // double *weights) VTK_OVERRIDE;\n // int GetCellType(vtkIdType cellId) VTK_OVERRIDE;\n // void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds) VTK_OVERRIDE\n // {vtkStructuredData::GetCellPoints(cellId,ptIds,this->DataDescription,\n // this->GetDimensions());}\n // void GetPointCells(vtkIdType ptId, vtkIdList *cellIds) VTK_OVERRIDE\n // {vtkStructuredData::GetPointCells(ptId,cellIds,this->GetDimensions());}\n // void ComputeBounds() VTK_OVERRIDE;\n // int GetMaxCellSize() VTK_OVERRIDE {return 8;}; //voxel is the largest\n\n publicAPI.getBounds = () => publicAPI.extentToBounds(publicAPI.getSpatialExtent());\n publicAPI.extentToBounds = ex => vtkBoundingBox.transformBounds(ex, model.indexToWorld);\n publicAPI.getSpatialExtent = () => vtkBoundingBox.inflate([...model.extent], 0.5);\n\n // Internal, shouldn't need to call this manually.\n publicAPI.computeTransforms = () => {\n mat4.fromTranslation(model.indexToWorld, model.origin);\n model.indexToWorld[0] = model.direction[0];\n model.indexToWorld[1] = model.direction[1];\n model.indexToWorld[2] = model.direction[2];\n model.indexToWorld[4] = model.direction[3];\n model.indexToWorld[5] = model.direction[4];\n model.indexToWorld[6] = model.direction[5];\n model.indexToWorld[8] = model.direction[6];\n model.indexToWorld[9] = model.direction[7];\n model.indexToWorld[10] = model.direction[8];\n mat4.scale(model.indexToWorld, model.indexToWorld, model.spacing);\n mat4.invert(model.worldToIndex, model.indexToWorld);\n };\n publicAPI.indexToWorld = function (ain) {\n let aout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n vec3.transformMat4(aout, ain, model.indexToWorld);\n return aout;\n };\n publicAPI.indexToWorldVec3 = publicAPI.indexToWorld;\n publicAPI.worldToIndex = function (ain) {\n let aout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n vec3.transformMat4(aout, ain, model.worldToIndex);\n return aout;\n };\n publicAPI.worldToIndexVec3 = publicAPI.worldToIndex;\n publicAPI.indexToWorldBounds = function (bin) {\n let bout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return vtkBoundingBox.transformBounds(bin, model.indexToWorld, bout);\n };\n publicAPI.worldToIndexBounds = function (bin) {\n let bout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return vtkBoundingBox.transformBounds(bin, model.worldToIndex, bout);\n };\n\n // Make sure the transform is correct\n publicAPI.onModified(publicAPI.computeTransforms);\n publicAPI.computeTransforms();\n publicAPI.getCenter = () => vtkBoundingBox.getCenter(publicAPI.getBounds());\n publicAPI.computeHistogram = function (worldBounds) {\n let voxelFunction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n const bounds = [0, 0, 0, 0, 0, 0];\n publicAPI.worldToIndexBounds(worldBounds, bounds);\n const point1 = [0, 0, 0];\n const point2 = [0, 0, 0];\n vtkBoundingBox.computeCornerPoints(bounds, point1, point2);\n roundVector(point1, point1);\n roundVector(point2, point2);\n const dimensions = publicAPI.getDimensions();\n clampVector(point1, [0, 0, 0], [dimensions[0] - 1, dimensions[1] - 1, dimensions[2] - 1], point1);\n clampVector(point2, [0, 0, 0], [dimensions[0] - 1, dimensions[1] - 1, dimensions[2] - 1], point2);\n const yStride = dimensions[0];\n const zStride = dimensions[0] * dimensions[1];\n const pixels = publicAPI.getPointData().getScalars().getData();\n let maximum = -Infinity;\n let minimum = Infinity;\n let sumOfSquares = 0;\n let isum = 0;\n let inum = 0;\n for (let z = point1[2]; z <= point2[2]; z++) {\n for (let y = point1[1]; y <= point2[1]; y++) {\n let index = point1[0] + y * yStride + z * zStride;\n for (let x = point1[0]; x <= point2[0]; x++) {\n if (!voxelFunction || voxelFunction([x, y, z], bounds)) {\n const pixel = pixels[index];\n if (pixel > maximum) maximum = pixel;\n if (pixel < minimum) minimum = pixel;\n sumOfSquares += pixel * pixel;\n isum += pixel;\n inum += 1;\n }\n ++index;\n }\n }\n }\n const average = inum > 0 ? isum / inum : 0;\n const variance = inum ? Math.abs(sumOfSquares / inum - average * average) : 0;\n const sigma = Math.sqrt(variance);\n return {\n minimum,\n maximum,\n average,\n variance,\n sigma,\n count: inum\n };\n };\n\n // TODO: use the unimplemented `vtkDataSetAttributes` for scalar length, that is currently also a TODO (GetNumberOfComponents).\n // Scalar data could be tuples for color information?\n publicAPI.computeIncrements = function (extent) {\n let numberOfComponents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n const increments = [];\n let incr = numberOfComponents;\n\n // Calculate array increment offsets\n // similar to c++ vtkImageData::ComputeIncrements\n for (let idx = 0; idx < 3; ++idx) {\n increments[idx] = incr;\n incr *= extent[idx * 2 + 1] - extent[idx * 2] + 1;\n }\n return increments;\n };\n\n /**\n * @param {Number[]} index the localized `[i,j,k]` pixel array position. Float values will be rounded.\n * @return {Number} the corresponding flattened index in the scalar array\n */\n publicAPI.computeOffsetIndex = _ref => {\n let [i, j, k] = _ref;\n const extent = publicAPI.getExtent();\n const numberOfComponents = publicAPI.getPointData().getScalars().getNumberOfComponents();\n const increments = publicAPI.computeIncrements(extent, numberOfComponents);\n // Use the array increments to find the pixel index\n // similar to c++ vtkImageData::GetArrayPointer\n // Math.floor to catch \"practically 0\" e^-15 scenarios.\n return Math.floor((Math.round(i) - extent[0]) * increments[0] + (Math.round(j) - extent[2]) * increments[1] + (Math.round(k) - extent[4]) * increments[2]);\n };\n\n /**\n * @param {Number[]} xyz the [x,y,z] Array in world coordinates\n * @return {Number|NaN} the corresponding pixel's index in the scalar array\n */\n publicAPI.getOffsetIndexFromWorld = xyz => {\n const extent = publicAPI.getExtent();\n const index = publicAPI.worldToIndex(xyz);\n\n // Confirm indexed i,j,k coords are within the bounds of the volume\n for (let idx = 0; idx < 3; ++idx) {\n if (index[idx] < extent[idx * 2] || index[idx] > extent[idx * 2 + 1]) {\n vtkErrorMacro(`GetScalarPointer: Pixel ${index} is not in memory. Current extent = ${extent}`);\n return NaN;\n }\n }\n\n // Assumed the index here is within 0 <-> scalarData.length, but doesn't hurt to check upstream\n return publicAPI.computeOffsetIndex(index);\n };\n /**\n * @param {Number[]} xyz the [x,y,z] Array in world coordinates\n * @param {Number?} comp the scalar component index for multi-component scalars\n * @return {Number|NaN} the corresponding pixel's scalar value\n */\n publicAPI.getScalarValueFromWorld = function (xyz) {\n let comp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n const numberOfComponents = publicAPI.getPointData().getScalars().getNumberOfComponents();\n if (comp < 0 || comp >= numberOfComponents) {\n vtkErrorMacro(`GetScalarPointer: Scalar Component ${comp} is not within bounds. Current Scalar numberOfComponents: ${numberOfComponents}`);\n return NaN;\n }\n const offsetIndex = publicAPI.getOffsetIndexFromWorld(xyz);\n if (Number.isNaN(offsetIndex)) {\n // VTK Error Macro will have been tripped already, no need to do it again,\n return offsetIndex;\n }\n return publicAPI.getPointData().getScalars().getComponent(offsetIndex, comp);\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n direction: null,\n // a mat3\n indexToWorld: null,\n // a mat4\n worldToIndex: null,\n // a mat4\n spacing: [1.0, 1.0, 1.0],\n origin: [0.0, 0.0, 0.0],\n extent: [0, -1, 0, -1, 0, -1],\n dataDescription: StructuredType.EMPTY\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Inheritance\n vtkDataSet.extend(publicAPI, model, initialValues);\n if (!model.direction) {\n model.direction = mat3.identity(new Float64Array(9));\n } else if (Array.isArray(model.direction)) {\n model.direction = new Float64Array(model.direction.slice(0, 9));\n }\n model.indexToWorld = new Float64Array(16);\n model.worldToIndex = new Float64Array(16);\n\n // Set/Get methods\n macro.get(publicAPI, model, ['indexToWorld', 'worldToIndex']);\n macro.setGetArray(publicAPI, model, ['origin', 'spacing'], 3);\n macro.setGetArray(publicAPI, model, ['direction'], 9);\n macro.getArray(publicAPI, model, ['extent'], 6);\n\n // Object specific methods\n vtkImageData(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkImageData');\n\n// ----------------------------------------------------------------------------\n\nvar vtkImageData$1 = {\n newInstance,\n extend\n};\n\nexport { vtkImageData$1 as default, extend, newInstance };\n","const VectorMode = {\n MAGNITUDE: 0,\n COMPONENT: 1,\n RGBCOLORS: 2\n};\nconst ScalarMappingTarget = {\n LUMINANCE: 1,\n LUMINANCE_ALPHA: 2,\n RGB: 3,\n RGBA: 4\n};\nvar vtkScalarsToColors = {\n VectorMode,\n ScalarMappingTarget\n};\n\nexport { ScalarMappingTarget, VectorMode, vtkScalarsToColors as default };\n","const ColorMode = {\n DEFAULT: 0,\n MAP_SCALARS: 1,\n DIRECT_SCALARS: 2\n};\nconst ScalarMode = {\n DEFAULT: 0,\n USE_POINT_DATA: 1,\n USE_CELL_DATA: 2,\n USE_POINT_FIELD_DATA: 3,\n USE_CELL_FIELD_DATA: 4,\n USE_FIELD_DATA: 5\n};\nconst GetArray = {\n BY_ID: 0,\n BY_NAME: 1\n};\nvar Constants = {\n ColorMode,\n GetArray,\n ScalarMode\n};\n\nexport { ColorMode, GetArray, ScalarMode, Constants as default };\n","import { m as macro } from '../../macros2.js';\nimport vtkDataArray from './DataArray.js';\nimport vtkScalarsToColors$2 from './ScalarsToColors/Constants.js';\nimport Constants from '../../Rendering/Core/Mapper/Constants.js';\n\nconst {\n ScalarMappingTarget,\n VectorMode\n} = vtkScalarsToColors$2;\nconst {\n VtkDataTypes\n} = vtkDataArray;\nconst {\n ColorMode\n} = Constants;\nconst {\n vtkErrorMacro\n} = macro;\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\n// Add module-level functions or api that you want to expose statically via\n// the next section...\n\n// ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\nfunction intColorToUChar(c) {\n return c;\n}\nfunction floatColorToUChar(c) {\n return Math.floor(c * 255.0 + 0.5);\n}\n\n// ----------------------------------------------------------------------------\n// vtkScalarsToColors methods\n// ----------------------------------------------------------------------------\n\nfunction vtkScalarsToColors(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkScalarsToColors');\n publicAPI.setVectorModeToMagnitude = () => publicAPI.setVectorMode(VectorMode.MAGNITUDE);\n publicAPI.setVectorModeToComponent = () => publicAPI.setVectorMode(VectorMode.COMPONENT);\n publicAPI.setVectorModeToRGBColors = () => publicAPI.setVectorMode(VectorMode.RGBCOLORS);\n publicAPI.build = () => {};\n publicAPI.isOpaque = () => true;\n\n //----------------------------------------------------------------------------\n publicAPI.setAnnotations = (values, annotations) => {\n if (values && !annotations || !values && annotations) {\n return;\n }\n if (values && annotations && values.length !== annotations.length) {\n vtkErrorMacro('Values and annotations do not have the same number of tuples so ignoring');\n return;\n }\n model.annotationArray = [];\n if (annotations && values) {\n const num = annotations.length;\n for (let i = 0; i < num; i++) {\n model.annotationArray.push({\n value: values[i],\n annotation: String(annotations[i])\n });\n }\n }\n publicAPI.updateAnnotatedValueMap();\n publicAPI.modified();\n };\n\n //----------------------------------------------------------------------------\n publicAPI.setAnnotation = (value, annotation) => {\n let i = publicAPI.checkForAnnotatedValue(value);\n let modified = false;\n if (i >= 0) {\n if (model.annotationArray[i].annotation !== annotation) {\n model.annotationArray[i].annotation = annotation;\n modified = true;\n }\n } else {\n model.annotationArray.push({\n value,\n annotation\n });\n i = model.annotationArray.length - 1;\n modified = true;\n }\n if (modified) {\n publicAPI.updateAnnotatedValueMap();\n publicAPI.modified();\n }\n return i;\n };\n\n //----------------------------------------------------------------------------\n publicAPI.getNumberOfAnnotatedValues = () => model.annotationArray.length;\n\n //----------------------------------------------------------------------------\n publicAPI.getAnnotatedValue = idx => {\n if (idx < 0 || idx >= model.annotationArray.length) {\n return null;\n }\n return model.annotationArray[idx].value;\n };\n\n //----------------------------------------------------------------------------\n publicAPI.getAnnotation = idx => {\n if (model.annotationArray[idx] === undefined) {\n return null;\n }\n return model.annotationArray[idx].annotation;\n };\n\n //----------------------------------------------------------------------------\n publicAPI.getAnnotatedValueIndex = val => model.annotationArray.length ? publicAPI.checkForAnnotatedValue(val) : -1;\n\n //----------------------------------------------------------------------------\n publicAPI.removeAnnotation = value => {\n const i = publicAPI.checkForAnnotatedValue(value);\n const needToRemove = i >= 0;\n if (needToRemove) {\n model.annotationArray.splice(i, 1);\n publicAPI.updateAnnotatedValueMap();\n publicAPI.modified();\n }\n return needToRemove;\n };\n\n //----------------------------------------------------------------------------\n publicAPI.resetAnnotations = () => {\n model.annotationArray = [];\n model.annotatedValueMap = [];\n publicAPI.modified();\n };\n\n //----------------------------------------------------------------------------\n publicAPI.getAnnotationColor = (val, rgba) => {\n if (model.indexedLookup) {\n const i = publicAPI.getAnnotatedValueIndex(val);\n publicAPI.getIndexedColor(i, rgba);\n } else {\n publicAPI.getColor(parseFloat(val), rgba);\n rgba[3] = 1.0;\n }\n };\n\n //----------------------------------------------------------------------------\n publicAPI.checkForAnnotatedValue = value => publicAPI.getAnnotatedValueIndexInternal(value);\n\n //----------------------------------------------------------------------------\n // An unsafe version of vtkScalarsToColors::CheckForAnnotatedValue for\n // internal use (no pointer checks performed)\n publicAPI.getAnnotatedValueIndexInternal = value => {\n if (model.annotatedValueMap[value] !== undefined) {\n const na = model.annotationArray.length;\n return model.annotatedValueMap[value] % na;\n }\n // Treat as a NaN\n return -1;\n };\n\n //----------------------------------------------------------------------------\n publicAPI.getIndexedColor = (val, rgba) => {\n rgba[0] = 0.0;\n rgba[1] = 0.0;\n rgba[2] = 0.0;\n rgba[3] = 0.0;\n };\n\n //----------------------------------------------------------------------------\n publicAPI.updateAnnotatedValueMap = () => {\n model.annotatedValueMap = [];\n const na = model.annotationArray.length;\n for (let i = 0; i < na; i++) {\n model.annotatedValueMap[model.annotationArray[i].value] = i;\n }\n };\n\n // Description:\n // Internal methods that map a data array into a 4-component,\n // unsigned char RGBA array. The color mode determines the behavior\n // of mapping. If ColorMode.DEFAULT is set, then unsigned char\n // data arrays are treated as colors (and converted to RGBA if\n // necessary); If ColorMode.DIRECT_SCALARS is set, then all arrays\n // are treated as colors (integer types are clamped in the range 0-255,\n // floating point arrays are clamped in the range 0.0-1.0. Note 'char' does\n // not have enough values to represent a color so mapping this type is\n // considered an error);\n // otherwise, the data is mapped through this instance\n // of ScalarsToColors. The component argument is used for data\n // arrays with more than one component; it indicates which component\n // to use to do the blending. When the component argument is -1,\n // then the this object uses its own selected technique to change a\n // vector into a scalar to map.\n publicAPI.mapScalars = (scalars, colorMode, componentIn) => {\n const numberOfComponents = scalars.getNumberOfComponents();\n let newColors = null;\n\n // map scalars through lookup table only if needed\n if (colorMode === ColorMode.DEFAULT && (scalars.getDataType() === VtkDataTypes.UNSIGNED_CHAR || scalars.getDataType() === VtkDataTypes.UNSIGNED_CHAR_CLAMPED) || colorMode === ColorMode.DIRECT_SCALARS && scalars) {\n newColors = publicAPI.convertToRGBA(scalars, numberOfComponents, scalars.getNumberOfTuples());\n } else {\n const newscalars = {\n type: 'vtkDataArray',\n name: 'temp',\n numberOfComponents: 4,\n dataType: VtkDataTypes.UNSIGNED_CHAR\n };\n const s = macro.newTypedArray(newscalars.dataType, 4 * scalars.getNumberOfTuples());\n newscalars.values = s;\n newscalars.size = s.length;\n newColors = vtkDataArray.newInstance(newscalars);\n let component = componentIn;\n\n // If mapper did not specify a component, use the VectorMode\n if (component < 0 && numberOfComponents > 1) {\n publicAPI.mapVectorsThroughTable(scalars, newColors, ScalarMappingTarget.RGBA, -1, -1);\n } else {\n if (component < 0) {\n component = 0;\n }\n if (component >= numberOfComponents) {\n component = numberOfComponents - 1;\n }\n\n // Map the scalars to colors\n publicAPI.mapScalarsThroughTable(scalars, newColors, ScalarMappingTarget.RGBA, component);\n }\n }\n return newColors;\n };\n publicAPI.mapVectorsToMagnitude = (input, output, compsToUse) => {\n const length = input.getNumberOfTuples();\n const inIncr = input.getNumberOfComponents();\n const outputV = output.getData();\n const inputV = input.getData();\n for (let i = 0; i < length; i++) {\n let sum = 0.0;\n for (let j = 0; j < compsToUse; j++) {\n sum += inputV[i * inIncr + j] * inputV[i * inIncr + j];\n }\n outputV[i] = Math.sqrt(sum);\n }\n };\n\n //----------------------------------------------------------------------------\n // Map a set of vector values through the table\n publicAPI.mapVectorsThroughTable = (input, output, outputFormat, vectorComponentIn, vectorSizeIn) => {\n let vectorMode = publicAPI.getVectorMode();\n let vectorSize = vectorSizeIn;\n let vectorComponent = vectorComponentIn;\n const inComponents = input.getNumberOfComponents();\n if (vectorMode === VectorMode.COMPONENT) {\n // make sure vectorComponent is within allowed range\n if (vectorComponent === -1) {\n // if set to -1, use default value provided by table\n vectorComponent = publicAPI.getVectorComponent();\n }\n if (vectorComponent < 0) {\n vectorComponent = 0;\n }\n if (vectorComponent >= inComponents) {\n vectorComponent = inComponents - 1;\n }\n } else {\n // make sure vectorSize is within allowed range\n if (vectorSize === -1) {\n // if set to -1, use default value provided by table\n vectorSize = publicAPI.getVectorSize();\n }\n if (vectorSize <= 0) {\n vectorComponent = 0;\n vectorSize = inComponents;\n } else {\n if (vectorComponent < 0) {\n vectorComponent = 0;\n }\n if (vectorComponent >= inComponents) {\n vectorComponent = inComponents - 1;\n }\n if (vectorComponent + vectorSize > inComponents) {\n vectorSize = inComponents - vectorComponent;\n }\n }\n if (vectorMode === VectorMode.MAGNITUDE && (inComponents === 1 || vectorSize === 1)) {\n vectorMode = VectorMode.COMPONENT;\n }\n }\n\n // increment input pointer to the first component to map\n let inputOffset = 0;\n if (vectorComponent > 0) {\n inputOffset = vectorComponent;\n }\n\n // map according to the current vector mode\n switch (vectorMode) {\n case VectorMode.COMPONENT:\n {\n publicAPI.mapScalarsThroughTable(input, output, outputFormat, inputOffset);\n break;\n }\n case VectorMode.RGBCOLORS:\n {\n // publicAPI.mapColorsToColors(\n // input, output, inComponents, vectorSize,\n // outputFormat);\n break;\n }\n\n // MAGNITUDE is considered default\n case VectorMode.MAGNITUDE:\n default:\n {\n const magValues = vtkDataArray.newInstance({\n numberOfComponents: 1,\n values: new Float32Array(input.getNumberOfTuples())\n });\n publicAPI.mapVectorsToMagnitude(input, magValues, vectorSize);\n publicAPI.mapScalarsThroughTable(magValues, output, outputFormat, 0);\n break;\n }\n }\n };\n publicAPI.luminanceToRGBA = (newColors, colors, alpha, convtFun) => {\n const a = convtFun(alpha);\n const values = colors.getData();\n const newValues = newColors.getData();\n const size = values.length;\n const component = 0;\n const tuple = 1;\n let count = 0;\n for (let i = component; i < size; i += tuple) {\n const l = convtFun(values[i]);\n newValues[count * 4] = l;\n newValues[count * 4 + 1] = l;\n newValues[count * 4 + 2] = l;\n newValues[count * 4 + 3] = a;\n count++;\n }\n };\n publicAPI.luminanceAlphaToRGBA = (newColors, colors, alpha, convtFun) => {\n const values = colors.getData();\n const newValues = newColors.getData();\n const size = values.length;\n const component = 0;\n const tuple = 2;\n let count = 0;\n for (let i = component; i < size; i += tuple) {\n const l = convtFun(values[i]);\n newValues[count] = l;\n newValues[count + 1] = l;\n newValues[count + 2] = l;\n newValues[count + 3] = convtFun(values[i + 1]) * alpha;\n count += 4;\n }\n };\n publicAPI.rGBToRGBA = (newColors, colors, alpha, convtFun) => {\n const a = floatColorToUChar(alpha);\n const values = colors.getData();\n const newValues = newColors.getData();\n const size = values.length;\n const component = 0;\n const tuple = 3;\n let count = 0;\n for (let i = component; i < size; i += tuple) {\n newValues[count * 4] = convtFun(values[i]);\n newValues[count * 4 + 1] = convtFun(values[i + 1]);\n newValues[count * 4 + 2] = convtFun(values[i + 2]);\n newValues[count * 4 + 3] = a;\n count++;\n }\n };\n publicAPI.rGBAToRGBA = (newColors, colors, alpha, convtFun) => {\n const values = colors.getData();\n const newValues = newColors.getData();\n const size = values.length;\n const component = 0;\n const tuple = 4;\n let count = 0;\n for (let i = component; i < size; i += tuple) {\n newValues[count * 4] = convtFun(values[i]);\n newValues[count * 4 + 1] = convtFun(values[i + 1]);\n newValues[count * 4 + 2] = convtFun(values[i + 2]);\n newValues[count * 4 + 3] = convtFun(values[i + 3]) * alpha;\n count++;\n }\n };\n\n //----------------------------------------------------------------------------\n publicAPI.convertToRGBA = (colors, numComp, numTuples) => {\n let {\n alpha\n } = model;\n if (numComp === 4 && alpha >= 1.0 && colors.getDataType() === VtkDataTypes.UNSIGNED_CHAR) {\n return colors;\n }\n const newColors = vtkDataArray.newInstance({\n numberOfComponents: 4,\n empty: true,\n size: 4 * numTuples,\n dataType: VtkDataTypes.UNSIGNED_CHAR\n });\n if (numTuples <= 0) {\n return newColors;\n }\n alpha = alpha > 0 ? alpha : 0;\n alpha = alpha < 1 ? alpha : 1;\n let convtFun = intColorToUChar;\n if (colors.getDataType() === VtkDataTypes.FLOAT || colors.getDataType() === VtkDataTypes.DOUBLE) {\n convtFun = floatColorToUChar;\n }\n switch (numComp) {\n case 1:\n publicAPI.luminanceToRGBA(newColors, colors, alpha, convtFun);\n break;\n case 2:\n publicAPI.luminanceAlphaToRGBA(newColors, colors, convtFun);\n break;\n case 3:\n publicAPI.rGBToRGBA(newColors, colors, alpha, convtFun);\n break;\n case 4:\n publicAPI.rGBAToRGBA(newColors, colors, alpha, convtFun);\n break;\n default:\n vtkErrorMacro('Cannot convert colors');\n return null;\n }\n return newColors;\n };\n publicAPI.usingLogScale = () => false;\n publicAPI.getNumberOfAvailableColors = () => 256 * 256 * 256;\n publicAPI.setRange = (min, max) => publicAPI.setMappingRange(min, max);\n publicAPI.getRange = () => publicAPI.getMappingRange();\n publicAPI.areScalarsOpaque = (scalars, colorMode, componentIn) => {\n if (!scalars) {\n return publicAPI.isOpaque();\n }\n const numberOfComponents = scalars.getNumberOfComponents();\n\n // map scalars through lookup table only if needed\n if (colorMode === ColorMode.DEFAULT && scalars.getDataType() === VtkDataTypes.UNSIGNED_CHAR || colorMode === ColorMode.DIRECT_SCALARS) {\n // we will be using the scalars directly, so look at the number of\n // components and the range\n if (numberOfComponents === 3 || numberOfComponents === 1) {\n return model.alpha >= 1.0;\n }\n // otherwise look at the range of the alpha channel\n const range = scalars.getRange(numberOfComponents - 1);\n return range[0] === 255;\n }\n return true;\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n alpha: 1.0,\n vectorComponent: 0,\n vectorSize: -1,\n vectorMode: VectorMode.COMPONENT,\n mappingRange: null,\n annotationArray: null,\n annotatedValueMap: null,\n indexedLookup: false\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Object methods\n macro.obj(publicAPI, model);\n model.mappingRange = [0, 255];\n model.annotationArray = [];\n model.annotatedValueMap = [];\n\n // Create get-set macros\n macro.setGet(publicAPI, model, ['vectorSize', 'vectorComponent', 'vectorMode', 'alpha', 'indexedLookup']);\n\n // Create set macros for array (needs to know size)\n macro.setArray(publicAPI, model, ['mappingRange'], 2);\n\n // Create get macros for array\n macro.getArray(publicAPI, model, ['mappingRange']);\n\n // For more macro methods, see \"Sources/macros.js\"\n\n // Object specific methods\n vtkScalarsToColors(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkScalarsToColors');\n\n// ----------------------------------------------------------------------------\n\nvar vtkScalarsToColors$1 = {\n newInstance,\n extend,\n ...vtkScalarsToColors$2\n};\n\nexport { vtkScalarsToColors$1 as default, extend, newInstance };\n","import { m as macro } from '../../macros2.js';\nimport { i as isNan, h as hsv2rgb } from './Math/index.js';\nimport vtkScalarsToColors from './ScalarsToColors.js';\nimport { ScalarMappingTarget } from './ScalarsToColors/Constants.js';\nimport { VtkDataTypes } from './DataArray/Constants.js';\n\nconst {\n vtkErrorMacro\n} = macro;\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\n// Add module-level functions or api that you want to expose statically via\n// the next section...\n\n// ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\nconst BELOW_RANGE_COLOR_INDEX = 0;\nconst ABOVE_RANGE_COLOR_INDEX = 1;\nconst NAN_COLOR_INDEX = 2;\n\n// ----------------------------------------------------------------------------\n// vtkMyClass methods\n// ----------------------------------------------------------------------------\n\nfunction vtkLookupTable(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkLookupTable');\n\n //----------------------------------------------------------------------------\n // Description:\n // Return true if all of the values defining the mapping have an opacity\n // equal to 1. Default implementation return true.\n publicAPI.isOpaque = () => {\n if (model.opaqueFlagBuildTime.getMTime() < publicAPI.getMTime()) {\n let opaque = true;\n if (model.nanColor[3] < 1.0) {\n opaque = 0;\n }\n if (model.useBelowRangeColor && model.belowRangeColor[3] < 1.0) {\n opaque = 0;\n }\n if (model.useAboveRangeColor && model.aboveRangeColor[3] < 1.0) {\n opaque = 0;\n }\n for (let i = 3; i < model.table.length && opaque; i += 4) {\n if (model.table[i] < 255) {\n opaque = false;\n }\n }\n model.opaqueFlag = opaque;\n model.opaqueFlagBuildTime.modified();\n }\n return model.opaqueFlag;\n };\n publicAPI.usingLogScale = () => false;\n\n //----------------------------------------------------------------------------\n // Don't count special colors (min, max, NaN) as available colors\n publicAPI.getNumberOfAvailableColors = () => model.table.length / 4 - 3;\n\n //----------------------------------------------------------------------------\n // Apply shift/scale to the scalar value v and return the index.\n publicAPI.linearIndexLookup = (v, p) => {\n let dIndex = 0;\n const nv = Number(v);\n if (nv < p.range[0]) {\n dIndex = p.maxIndex + BELOW_RANGE_COLOR_INDEX + 1.5;\n } else if (nv > p.range[1]) {\n dIndex = p.maxIndex + ABOVE_RANGE_COLOR_INDEX + 1.5;\n } else {\n dIndex = (nv + p.shift) * p.scale;\n\n // This conditional is needed because when v is very close to\n // p.Range[1], it may map above p.MaxIndex in the linear mapping\n // above.\n dIndex = dIndex < p.maxIndex ? dIndex : p.maxIndex;\n }\n return Math.floor(dIndex);\n };\n publicAPI.linearLookup = (v, table, p) => {\n let index = 0;\n if (isNan(v)) {\n index = Math.floor(p.maxIndex + 1.5 + NAN_COLOR_INDEX);\n } else {\n index = publicAPI.linearIndexLookup(v, p);\n }\n const offset = 4 * index;\n return table.slice(offset, offset + 4);\n };\n publicAPI.indexedLookupFunction = (v, table, p) => {\n let index = publicAPI.getAnnotatedValueIndexInternal(v);\n if (index === -1) {\n index = model.numberOfColors + NAN_COLOR_INDEX;\n }\n const offset = 4 * index;\n return [table[offset], table[offset + 1], table[offset + 2], table[offset + 3]];\n };\n\n //----------------------------------------------------------------------------\n publicAPI.lookupShiftAndScale = (range, p) => {\n p.shift = -range[0];\n p.scale = Number.MAX_VALUE;\n if (range[1] > range[0]) {\n p.scale = (p.maxIndex + 1) / (range[1] - range[0]);\n }\n };\n\n // Public API methods\n publicAPI.mapScalarsThroughTable = (input, output, outFormat, inputOffset) => {\n let lookupFunc = publicAPI.linearLookup;\n if (model.indexedLookup) {\n lookupFunc = publicAPI.indexedLookupFunction;\n }\n const trange = publicAPI.getMappingRange();\n const p = {\n maxIndex: publicAPI.getNumberOfColors() - 1,\n range: trange,\n shift: 0.0,\n scale: 0.0\n };\n publicAPI.lookupShiftAndScale(trange, p);\n const alpha = publicAPI.getAlpha();\n const length = input.getNumberOfTuples();\n const inIncr = input.getNumberOfComponents();\n const outputV = output.getData();\n const inputV = input.getData();\n if (alpha >= 1.0) {\n if (outFormat === ScalarMappingTarget.RGBA) {\n for (let i = 0; i < length; i++) {\n const cptr = lookupFunc(inputV[i * inIncr + inputOffset], model.table, p);\n outputV[i * 4] = cptr[0];\n outputV[i * 4 + 1] = cptr[1];\n outputV[i * 4 + 2] = cptr[2];\n outputV[i * 4 + 3] = cptr[3];\n }\n }\n } else {\n /* eslint-disable no-lonely-if */\n if (outFormat === ScalarMappingTarget.RGBA) {\n for (let i = 0; i < length; i++) {\n const cptr = lookupFunc(inputV[i * inIncr + inputOffset], model.table, p);\n outputV[i * 4] = cptr[0];\n outputV[i * 4 + 1] = cptr[1];\n outputV[i * 4 + 2] = cptr[2];\n outputV[i * 4 + 3] = Math.floor(cptr[3] * alpha + 0.5);\n }\n }\n } // alpha blending\n };\n\n publicAPI.forceBuild = () => {\n let hinc = 0.0;\n let sinc = 0.0;\n let vinc = 0.0;\n let ainc = 0.0;\n const maxIndex = model.numberOfColors - 1;\n if (maxIndex) {\n hinc = (model.hueRange[1] - model.hueRange[0]) / maxIndex;\n sinc = (model.saturationRange[1] - model.saturationRange[0]) / maxIndex;\n vinc = (model.valueRange[1] - model.valueRange[0]) / maxIndex;\n ainc = (model.alphaRange[1] - model.alphaRange[0]) / maxIndex;\n }\n model.table.length = 4 * maxIndex + 16;\n const hsv = [];\n const rgba = [];\n for (let i = 0; i <= maxIndex; i++) {\n hsv[0] = model.hueRange[0] + i * hinc;\n hsv[1] = model.saturationRange[0] + i * sinc;\n hsv[2] = model.valueRange[0] + i * vinc;\n hsv2rgb(hsv, rgba);\n rgba[3] = model.alphaRange[0] + i * ainc;\n\n // case VTK_RAMP_LINEAR:\n model.table[i * 4] = rgba[0] * 255.0 + 0.5;\n model.table[i * 4 + 1] = rgba[1] * 255.0 + 0.5;\n model.table[i * 4 + 2] = rgba[2] * 255.0 + 0.5;\n model.table[i * 4 + 3] = rgba[3] * 255.0 + 0.5;\n }\n publicAPI.buildSpecialColors();\n model.buildTime.modified();\n };\n publicAPI.setTable = table => {\n // Handle JS array (assume 2D array)\n if (Array.isArray(table)) {\n const nbComponents = table[0].length;\n model.numberOfColors = table.length;\n const colorOffset = 4 - nbComponents;\n let offset = 0;\n // fill table\n for (let i = 0; i < model.numberOfColors; i++) {\n model.table[i * 4] = 255;\n model.table[i * 4 + 1] = 255;\n model.table[i * 4 + 2] = 255;\n model.table[i * 4 + 3] = 255;\n }\n // extract colors\n for (let i = 0; i < table.length; i++) {\n const color = table[i];\n for (let j = 0; j < nbComponents; j++) {\n model.table[offset++] = color[j];\n }\n offset += colorOffset;\n }\n publicAPI.buildSpecialColors();\n model.insertTime.modified();\n publicAPI.modified();\n return true;\n }\n if (table.getNumberOfComponents() !== 4) {\n vtkErrorMacro('Expected 4 components for RGBA colors');\n return false;\n }\n if (table.getDataType() !== VtkDataTypes.UNSIGNED_CHAR) {\n vtkErrorMacro('Expected unsigned char values for RGBA colors');\n return false;\n }\n model.numberOfColors = table.getNumberOfTuples();\n const data = table.getData();\n model.table.length = data.length;\n for (let i = 0; i < data.length; i++) {\n model.table[i] = data[i];\n }\n publicAPI.buildSpecialColors();\n model.insertTime.modified();\n publicAPI.modified();\n return true;\n };\n publicAPI.buildSpecialColors = () => {\n // Add \"special\" colors (NaN, below range, above range) to table here.\n const {\n numberOfColors\n } = model;\n const tptr = model.table;\n let base = (numberOfColors + BELOW_RANGE_COLOR_INDEX) * 4;\n\n // Below range color\n if (model.useBelowRangeColor || numberOfColors === 0) {\n tptr[base] = model.belowRangeColor[0] * 255.0 + 0.5;\n tptr[base + 1] = model.belowRangeColor[1] * 255.0 + 0.5;\n tptr[base + 2] = model.belowRangeColor[2] * 255.0 + 0.5;\n tptr[base + 3] = model.belowRangeColor[3] * 255.0 + 0.5;\n } else {\n // Duplicate the first color in the table.\n tptr[base] = tptr[0];\n tptr[base + 1] = tptr[1];\n tptr[base + 2] = tptr[2];\n tptr[base + 3] = tptr[3];\n }\n\n // Above range color\n base = (numberOfColors + ABOVE_RANGE_COLOR_INDEX) * 4;\n if (model.useAboveRangeColor || numberOfColors === 0) {\n tptr[base] = model.aboveRangeColor[0] * 255.0 + 0.5;\n tptr[base + 1] = model.aboveRangeColor[1] * 255.0 + 0.5;\n tptr[base + 2] = model.aboveRangeColor[2] * 255.0 + 0.5;\n tptr[base + 3] = model.aboveRangeColor[3] * 255.0 + 0.5;\n } else {\n // Duplicate the last color in the table.\n tptr[base] = tptr[4 * (numberOfColors - 1) + 0];\n tptr[base + 1] = tptr[4 * (numberOfColors - 1) + 1];\n tptr[base + 2] = tptr[4 * (numberOfColors - 1) + 2];\n tptr[base + 3] = tptr[4 * (numberOfColors - 1) + 3];\n }\n\n // Always use NanColor\n base = (numberOfColors + NAN_COLOR_INDEX) * 4;\n tptr[base] = model.nanColor[0] * 255.0 + 0.5;\n tptr[base + 1] = model.nanColor[1] * 255.0 + 0.5;\n tptr[base + 2] = model.nanColor[2] * 255.0 + 0.5;\n tptr[base + 3] = model.nanColor[3] * 255.0 + 0.5;\n };\n publicAPI.build = () => {\n if (model.table.length < 1 || publicAPI.getMTime() > model.buildTime.getMTime() && model.insertTime.getMTime() <= model.buildTime.getMTime()) {\n publicAPI.forceBuild();\n }\n };\n if (model.table.length > 0) {\n // Ensure that special colors are properly included in the table\n publicAPI.buildSpecialColors();\n\n // ensure insertTime is more recently modified than buildTime if\n // a table is provided via the constructor\n model.insertTime.modified();\n }\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n numberOfColors: 256,\n // table: null,\n\n hueRange: [0.0, 0.66667],\n saturationRange: [1.0, 1.0],\n valueRange: [1.0, 1.0],\n alphaRange: [1.0, 1.0],\n nanColor: [0.5, 0.0, 0.0, 1.0],\n belowRangeColor: [0.0, 0.0, 0.0, 1.0],\n aboveRangeColor: [1.0, 1.0, 1.0, 1.0],\n useAboveRangeColor: false,\n useBelowRangeColor: false,\n alpha: 1.0\n // buildTime: null,\n // opaqueFlagBuildTime: null,\n // insertTime: null,\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Inheritance\n vtkScalarsToColors.extend(publicAPI, model, initialValues);\n\n // Internal objects initialization\n if (!model.table) {\n model.table = [];\n }\n model.buildTime = {};\n macro.obj(model.buildTime);\n model.opaqueFlagBuildTime = {};\n macro.obj(model.opaqueFlagBuildTime, {\n mtime: 0\n });\n model.insertTime = {};\n macro.obj(model.insertTime, {\n mtime: 0\n });\n\n // Create get-only macros\n macro.get(publicAPI, model, ['buildTime']);\n\n // Create get-set macros\n macro.setGet(publicAPI, model, ['numberOfColors', 'useAboveRangeColor', 'useBelowRangeColor']);\n\n // Create set macros for array (needs to know size)\n macro.setArray(publicAPI, model, ['alphaRange', 'hueRange', 'saturationRange', 'valueRange'], 2);\n macro.setArray(publicAPI, model, ['nanColor', 'belowRangeColor', 'aboveRangeColor'], 4);\n\n // Create get macros for array\n macro.getArray(publicAPI, model, ['hueRange', 'saturationRange', 'valueRange', 'alphaRange', 'nanColor', 'belowRangeColor', 'aboveRangeColor']);\n\n // For more macro methods, see \"Sources/macros.js\"\n\n // Object specific methods\n vtkLookupTable(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkLookupTable');\n\n// ----------------------------------------------------------------------------\n\nvar vtkLookupTable$1 = {\n newInstance,\n extend\n};\n\nexport { vtkLookupTable$1 as default, extend, newInstance };\n","const Resolve = {\n Off: 0,\n PolygonOffset: 1\n};\nlet resolveCoincidentTopologyPolygonOffsetFaces = Resolve.PolygonOffset;\nlet resolveCoincidentTopology = Resolve.Off;\nconst RESOLVE_COINCIDENT_TOPOLOGY_MODE = ['VTK_RESOLVE_OFF', 'VTK_RESOLVE_POLYGON_OFFSET'];\nfunction getResolveCoincidentTopologyPolygonOffsetFaces() {\n return resolveCoincidentTopologyPolygonOffsetFaces;\n}\nfunction setResolveCoincidentTopologyPolygonOffsetFaces(value) {\n const changed = resolveCoincidentTopologyPolygonOffsetFaces === value;\n resolveCoincidentTopologyPolygonOffsetFaces = value;\n return changed;\n}\nfunction getResolveCoincidentTopology() {\n return resolveCoincidentTopology;\n}\nfunction setResolveCoincidentTopology() {\n let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n const changed = resolveCoincidentTopology === mode;\n resolveCoincidentTopology = mode;\n return changed;\n}\nfunction setResolveCoincidentTopologyToDefault() {\n return setResolveCoincidentTopology(Resolve.Off);\n}\nfunction setResolveCoincidentTopologyToOff() {\n return setResolveCoincidentTopology(Resolve.Off);\n}\nfunction setResolveCoincidentTopologyToPolygonOffset() {\n return setResolveCoincidentTopology(Resolve.PolygonOffset);\n}\nfunction getResolveCoincidentTopologyAsString() {\n return RESOLVE_COINCIDENT_TOPOLOGY_MODE[resolveCoincidentTopology];\n}\nvar otherStaticMethods = {\n Resolve,\n getResolveCoincidentTopologyAsString,\n getResolveCoincidentTopologyPolygonOffsetFaces,\n getResolveCoincidentTopology,\n setResolveCoincidentTopology,\n setResolveCoincidentTopologyPolygonOffsetFaces,\n setResolveCoincidentTopologyToDefault,\n setResolveCoincidentTopologyToOff,\n setResolveCoincidentTopologyToPolygonOffset\n};\n\nexport { RESOLVE_COINCIDENT_TOPOLOGY_MODE, Resolve, otherStaticMethods as default, getResolveCoincidentTopology, getResolveCoincidentTopologyAsString, getResolveCoincidentTopologyPolygonOffsetFaces, setResolveCoincidentTopology, setResolveCoincidentTopologyPolygonOffsetFaces, setResolveCoincidentTopologyToDefault, setResolveCoincidentTopologyToOff, setResolveCoincidentTopologyToPolygonOffset };\n","import otherStaticMethods, { Resolve } from './Static.js';\nexport { Resolve } from './Static.js';\nimport { m as macro } from '../../../macros2.js';\n\n/* eslint-disable arrow-body-style */\nfunction addCoincidentTopologyMethods(publicAPI, model, nameList) {\n nameList.forEach(item => {\n publicAPI[`get${item.method}`] = () => model[item.key];\n publicAPI[`set${item.method}`] = macro.objectSetterMap.object(publicAPI, model, {\n name: item.key,\n params: ['factor', 'offset']\n });\n });\n}\nconst CATEGORIES = ['Polygon', 'Line', 'Point'];\n\n// CoincidentTopology static methods ------------------------------------------\n\nconst staticOffsetModel = {\n Polygon: {\n factor: 2,\n offset: 0\n },\n Line: {\n factor: 1,\n offset: -1\n },\n Point: {\n factor: 0,\n offset: -2\n }\n};\nconst noOp = () => undefined;\nconst staticOffsetAPI = {\n modified: noOp\n};\naddCoincidentTopologyMethods(staticOffsetAPI, staticOffsetModel, CATEGORIES.map(key => ({\n key,\n method: `ResolveCoincidentTopology${key}OffsetParameters`\n})));\nfunction implementCoincidentTopologyMethods(publicAPI, model) {\n if (model.resolveCoincidentTopology === undefined) {\n model.resolveCoincidentTopology = false;\n }\n macro.setGet(publicAPI, model, ['resolveCoincidentTopology']);\n\n // Relative methods\n model.topologyOffset = {\n Polygon: {\n factor: 0,\n offset: 0\n },\n Line: {\n factor: 0,\n offset: 0\n },\n Point: {\n factor: 0,\n offset: 0\n }\n };\n\n // Add Static methods to our instance\n Object.keys(otherStaticMethods).forEach(methodName => {\n publicAPI[methodName] = otherStaticMethods[methodName];\n });\n Object.keys(staticOffsetAPI).filter(methodName => methodName !== 'modified') // don't override instance's modified\n .forEach(methodName => {\n publicAPI[methodName] = staticOffsetAPI[methodName];\n });\n addCoincidentTopologyMethods(publicAPI, model.topologyOffset, CATEGORIES.map(key => ({\n key,\n method: `RelativeCoincidentTopology${key}OffsetParameters`\n })));\n publicAPI.getCoincidentTopologyPolygonOffsetParameters = () => {\n const globalValue = staticOffsetAPI.getResolveCoincidentTopologyPolygonOffsetParameters();\n const localValue = publicAPI.getRelativeCoincidentTopologyPolygonOffsetParameters();\n return {\n factor: globalValue.factor + localValue.factor,\n offset: globalValue.offset + localValue.offset\n };\n };\n publicAPI.getCoincidentTopologyLineOffsetParameters = () => {\n const globalValue = staticOffsetAPI.getResolveCoincidentTopologyLineOffsetParameters();\n const localValue = publicAPI.getRelativeCoincidentTopologyLineOffsetParameters();\n return {\n factor: globalValue.factor + localValue.factor,\n offset: globalValue.offset + localValue.offset\n };\n };\n publicAPI.getCoincidentTopologyPointOffsetParameter = () => {\n const globalValue = staticOffsetAPI.getResolveCoincidentTopologyPointOffsetParameters();\n const localValue = publicAPI.getRelativeCoincidentTopologyPointOffsetParameters();\n return {\n factor: globalValue.factor + localValue.factor,\n offset: globalValue.offset + localValue.offset\n };\n };\n}\nvar CoincidentTopologyHelper = {\n implementCoincidentTopologyMethods,\n staticOffsetAPI,\n otherStaticMethods,\n CATEGORIES,\n Resolve\n};\n\nexport { CATEGORIES, CoincidentTopologyHelper as default };\n","const PassTypes = {\n MIN_KNOWN_PASS: 0,\n ACTOR_PASS: 0,\n COMPOSITE_INDEX_PASS: 1,\n ID_LOW24: 2,\n ID_HIGH24: 3,\n MAX_KNOWN_PASS: 3\n};\nvar Constants = {\n PassTypes\n};\n\nexport { PassTypes, Constants as default };\n","import { m as macro } from '../../macros2.js';\nimport vtkAbstractMapper3D from './AbstractMapper3D.js';\nimport vtkDataArray from '../../Common/Core/DataArray.js';\nimport vtkImageData from '../../Common/DataModel/ImageData.js';\nimport vtkLookupTable from '../../Common/Core/LookupTable.js';\nimport { H as createUninitializedBounds, i as isNan } from '../../Common/Core/Math/index.js';\nimport vtkScalarsToColors from '../../Common/Core/ScalarsToColors/Constants.js';\nimport CoincidentTopologyHelper from './Mapper/CoincidentTopologyHelper.js';\nimport Constants from './Mapper/Constants.js';\nimport vtkDataSet from '../../Common/DataModel/DataSet.js';\nimport { PassTypes } from '../OpenGL/HardwareSelector/Constants.js';\n\nconst {\n FieldAssociations\n} = vtkDataSet;\nconst {\n staticOffsetAPI,\n otherStaticMethods\n} = CoincidentTopologyHelper;\nconst {\n ColorMode,\n ScalarMode,\n GetArray\n} = Constants;\nconst {\n VectorMode\n} = vtkScalarsToColors;\nconst {\n VtkDataTypes\n} = vtkDataArray;\n\n// ----------------------------------------------------------------------------\n\nfunction notImplemented(method) {\n return () => macro.vtkErrorMacro(`vtkMapper::${method} - NOT IMPLEMENTED`);\n}\n\n/**\n * Increase by one the 3D coordinates\n * It will follow a zigzag pattern so that each coordinate is the neighbor of the next coordinate\n * This enables interpolation between two texels without issues\n * Note: texture coordinates can't be interpolated using this pattern\n * @param {vec3} coordinates The 3D coordinates using integers for each coorinate\n * @param {vec3} dimensions The 3D dimensions of the volume\n */\nfunction updateZigzaggingCoordinates(coordinates, dimensions) {\n const directionX = coordinates[1] % 2 === 0 ? 1 : -1;\n coordinates[0] += directionX;\n if (coordinates[0] >= dimensions[0] || coordinates[0] < 0) {\n const directionY = coordinates[2] % 2 === 0 ? 1 : -1;\n coordinates[0] -= directionX;\n coordinates[1] += directionY;\n if (coordinates[1] >= dimensions[1] || coordinates[1] < 0) {\n coordinates[1] -= directionY;\n coordinates[2]++;\n }\n }\n}\n\n/**\n * Returns the index in the array representing the volume from a 3D coordinate\n * @param {vec3} coordinates The 3D integer coordinates\n * @param {vec3} dimensions The 3D dimensions of the volume\n * @returns The index in a flat array representing the volume\n */\nfunction getIndexFromCoordinates(coordinates, dimensions) {\n return coordinates[0] + dimensions[0] * (coordinates[1] + dimensions[1] * coordinates[2]);\n}\n\n/**\n * Write texture coordinates for the given `texelIndexPosition` in `textureCoordinate`.\n * The `texelIndexPosition` is a floating point number that represents the distance in index space\n * from the center of the first texel to the final output position.\n * The output is given in texture coordinates and not in index coordinates (this is done at the very end of the function)\n * @param {vec3} textureCoordinate The output texture coordinates (to avoid allocating a new Array)\n * @param {Number} texelIndexPosition The floating point distance from the center of the first texel, following a zigzag pattern\n * @param {vec3} dimensions The 3D dimensions of the volume\n */\nfunction getZigZagTextureCoordinatesFromTexelPosition(textureCoordinate, texelIndexPosition, dimensions) {\n // First compute the integer textureCoordinate\n const intTexelIndex = Math.floor(texelIndexPosition);\n const xCoordBeforeWrap = intTexelIndex % (2 * dimensions[0]);\n let xDirection;\n let xEndFlag;\n if (xCoordBeforeWrap < dimensions[0]) {\n textureCoordinate[0] = xCoordBeforeWrap;\n xDirection = 1;\n xEndFlag = textureCoordinate[0] === dimensions[0] - 1;\n } else {\n textureCoordinate[0] = 2 * dimensions[0] - 1 - xCoordBeforeWrap;\n xDirection = -1;\n xEndFlag = textureCoordinate[0] === 0;\n }\n const intRowIndex = Math.floor(intTexelIndex / dimensions[0]);\n const yCoordBeforeWrap = intRowIndex % (2 * dimensions[1]);\n let yDirection;\n let yEndFlag;\n if (yCoordBeforeWrap < dimensions[1]) {\n textureCoordinate[1] = yCoordBeforeWrap;\n yDirection = 1;\n yEndFlag = textureCoordinate[1] === dimensions[1] - 1;\n } else {\n textureCoordinate[1] = 2 * dimensions[1] - 1 - yCoordBeforeWrap;\n yDirection = -1;\n yEndFlag = textureCoordinate[1] === 0;\n }\n textureCoordinate[2] = Math.floor(intRowIndex / dimensions[1]);\n\n // Now add the remainder either in x, y or z\n const remainder = texelIndexPosition - intTexelIndex;\n if (xEndFlag) {\n if (yEndFlag) {\n textureCoordinate[2] += remainder;\n } else {\n textureCoordinate[1] += yDirection * remainder;\n }\n } else {\n textureCoordinate[0] += xDirection * remainder;\n }\n\n // textureCoordinates are in index space, convert to texture space\n textureCoordinate[0] = (textureCoordinate[0] + 0.5) / dimensions[0];\n textureCoordinate[1] = (textureCoordinate[1] + 0.5) / dimensions[1];\n textureCoordinate[2] = (textureCoordinate[2] + 0.5) / dimensions[2];\n}\n\n// Associate an input vtkDataArray to an object { stringHash, textureCoordinates }\n// A single dataArray only caches one array of texture coordinates, so this cache is useless when\n// the input data array is used with two different lookup tables (which is very unlikely)\nconst colorTextureCoordinatesCache = new WeakMap();\n/**\n * The minimum of the range is mapped to the center of the first texel excluding min texel (texel at index distance 1)\n * The maximum of the range is mapped to the center of the last texel excluding max and NaN texels (texel at index distance numberOfColorsInRange)\n * The result is cached, and is reused if the arguments are the same and the input doesn't change\n * @param {vtkDataArray} input The input data array used for coloring\n * @param {Number} component The component of the input data array that is used for coloring (-1 for magnitude of the vectors)\n * @param {Range} range The range of the scalars\n * @param {Number} numberOfColorsInRange The number of colors that are used in the range\n * @param {vec3} dimensions The dimensions of the texture\n * @param {boolean} useLogScale If log scale should be used to transform input scalars\n * @param {boolean} useZigzagPattern If a zigzag pattern should be used. Otherwise 1 row for colors (including min and max) and 1 row for NaN are used.\n * @returns A vtkDataArray containing the texture coordinates (2D or 3D)\n */\nfunction getOrCreateColorTextureCoordinates(input, component, range, numberOfColorsInRange, dimensions, useLogScale, useZigzagPattern) {\n // Caching using the \"arguments\" special object (because it is a pure function)\n const argStrings = new Array(arguments.length);\n for (let argIndex = 0; argIndex < arguments.length; ++argIndex) {\n // eslint-disable-next-line prefer-rest-params\n const arg = arguments[argIndex];\n argStrings[argIndex] = arg.getMTime?.() ?? arg;\n }\n const stringHash = argStrings.join('/');\n const cachedResult = colorTextureCoordinatesCache.get(input);\n if (cachedResult && cachedResult.stringHash === stringHash) {\n return cachedResult.textureCoordinates;\n }\n\n // The range used for computing coordinates have to change\n // slightly to accommodate the special above- and below-range\n // colors that are the first and last texels, respectively.\n const scalarTexelWidth = (range[1] - range[0]) / (numberOfColorsInRange - 1);\n const [paddedRangeMin, paddedRangeMax] = [range[0] - scalarTexelWidth, range[1] + scalarTexelWidth];\n\n // Use the center of the voxel\n const textureSOrigin = paddedRangeMin - 0.5 * scalarTexelWidth;\n const textureSCoeff = 1.0 / (paddedRangeMax - paddedRangeMin + scalarTexelWidth);\n\n // Compute in index space first\n const texelIndexOrigin = paddedRangeMin;\n const texelIndexCoeff = (numberOfColorsInRange + 1) / (paddedRangeMax - paddedRangeMin);\n const inputV = input.getData();\n const numScalars = input.getNumberOfTuples();\n const numComps = input.getNumberOfComponents();\n const useMagnitude = component < 0 || component >= numComps;\n const numberOfOutputComponents = dimensions[2] <= 1 ? 2 : 3;\n const output = vtkDataArray.newInstance({\n numberOfComponents: numberOfOutputComponents,\n values: new Float32Array(numScalars * numberOfOutputComponents)\n });\n const outputV = output.getData();\n const nanTextureCoordinate = [0, 0, 0];\n // Distance of NaN from the beginning:\n // min: 0, ...colorsInRange, max: numberOfColorsInRange + 1, NaN = numberOfColorsInRange + 2\n getZigZagTextureCoordinatesFromTexelPosition(nanTextureCoordinate, numberOfColorsInRange + 2, dimensions);\n\n // Set a texture coordinate in the output for each tuple in the input\n let inputIdx = 0;\n let outputIdx = 0;\n const textureCoordinate = [0.5, 0.5, 0.5];\n for (let scalarIdx = 0; scalarIdx < numScalars; ++scalarIdx) {\n // Get scalar value from magnitude or a single component\n let scalarValue;\n if (useMagnitude) {\n let sum = 0;\n for (let compIdx = 0; compIdx < numComps; ++compIdx) {\n const compValue = inputV[inputIdx + compIdx];\n sum += compValue * compValue;\n }\n scalarValue = Math.sqrt(sum);\n } else {\n scalarValue = inputV[inputIdx + component];\n }\n inputIdx += numComps;\n\n // Apply log scale if necessary\n if (useLogScale) {\n scalarValue = vtkLookupTable.applyLogScale(scalarValue, range, range);\n }\n\n // Convert to texture coordinates and update output\n if (isNan(scalarValue)) {\n // Last texels are NaN colors (there is at least one NaN color)\n textureCoordinate[0] = nanTextureCoordinate[0];\n textureCoordinate[1] = nanTextureCoordinate[1];\n textureCoordinate[2] = nanTextureCoordinate[2];\n } else if (useZigzagPattern) {\n // Texel position is in [0, numberOfColorsInRange + 1]\n let texelIndexPosition = (scalarValue - texelIndexOrigin) * texelIndexCoeff;\n if (texelIndexPosition < 1) {\n // Use min color when smaller than range\n texelIndexPosition = 0;\n } else if (texelIndexPosition > numberOfColorsInRange) {\n // Use max color when greater than range\n texelIndexPosition = numberOfColorsInRange + 1;\n }\n\n // Convert the texel position into texture coordinate following a zigzag pattern\n getZigZagTextureCoordinatesFromTexelPosition(textureCoordinate, texelIndexPosition, dimensions);\n } else {\n // 0.0 in t coordinate means not NaN. So why am I setting it to 0.49?\n // Because when you are mapping scalars and you have a NaN adjacent to\n // anything else, the interpolation everywhere should be NaN. Thus, I\n // want the NaN color everywhere except right on the non-NaN neighbors.\n // To simulate this, I set the t coord for the real numbers close to\n // the threshold so that the interpolation almost immediately looks up\n // the NaN value.\n textureCoordinate[1] = 0.49;\n\n // Some implementations apparently don't handle relatively large\n // numbers (compared to the range [0.0, 1.0]) very well. In fact,\n // values above 1122.0f appear to cause texture wrap-around on\n // some systems even when edge clamping is enabled. Why 1122.0f? I\n // don't know. For safety, we'll clamp at +/- 1000. This will\n // result in incorrect images when the texture value should be\n // above or below 1000, but I don't have a better solution.\n const textureS = (scalarValue - textureSOrigin) * textureSCoeff;\n if (textureS > 1000.0) {\n textureCoordinate[0] = 1000.0;\n } else if (textureS < -1000.0) {\n textureCoordinate[0] = -1000.0;\n } else {\n textureCoordinate[0] = textureS;\n }\n }\n for (let i = 0; i < numberOfOutputComponents; ++i) {\n outputV[outputIdx++] = textureCoordinate[i];\n }\n }\n colorTextureCoordinatesCache.set(input, {\n stringHash,\n textureCoordinates: output\n });\n return output;\n}\n\n// ----------------------------------------------------------------------------\n// vtkMapper methods\n// ----------------------------------------------------------------------------\n\nfunction vtkMapper(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkMapper');\n publicAPI.getBounds = () => {\n const input = publicAPI.getInputData();\n if (!input) {\n model.bounds = createUninitializedBounds();\n } else {\n if (!model.static) {\n publicAPI.update();\n }\n model.bounds = input.getBounds();\n }\n return model.bounds;\n };\n publicAPI.setForceCompileOnly = v => {\n model.forceCompileOnly = v;\n // make sure we do NOT call modified()\n };\n\n publicAPI.setSelectionWebGLIdsToVTKIds = selectionWebGLIdsToVTKIds => {\n model.selectionWebGLIdsToVTKIds = selectionWebGLIdsToVTKIds;\n // make sure we do NOT call modified()\n // this attribute is only used when processing a selection made with the hardware selector\n // the mtime of the mapper doesn't need to be changed\n };\n\n publicAPI.createDefaultLookupTable = () => {\n model.lookupTable = vtkLookupTable.newInstance();\n };\n publicAPI.getColorModeAsString = () => macro.enumToString(ColorMode, model.colorMode);\n publicAPI.setColorModeToDefault = () => publicAPI.setColorMode(0);\n publicAPI.setColorModeToMapScalars = () => publicAPI.setColorMode(1);\n publicAPI.setColorModeToDirectScalars = () => publicAPI.setColorMode(2);\n publicAPI.getScalarModeAsString = () => macro.enumToString(ScalarMode, model.scalarMode);\n publicAPI.setScalarModeToDefault = () => publicAPI.setScalarMode(0);\n publicAPI.setScalarModeToUsePointData = () => publicAPI.setScalarMode(1);\n publicAPI.setScalarModeToUseCellData = () => publicAPI.setScalarMode(2);\n publicAPI.setScalarModeToUsePointFieldData = () => publicAPI.setScalarMode(3);\n publicAPI.setScalarModeToUseCellFieldData = () => publicAPI.setScalarMode(4);\n publicAPI.setScalarModeToUseFieldData = () => publicAPI.setScalarMode(5);\n publicAPI.getAbstractScalars = (input, scalarMode, arrayAccessMode, arrayId, arrayName) => {\n // make sure we have an input\n if (!input || !model.scalarVisibility) {\n return {\n scalars: null,\n cellFlag: false\n };\n }\n let scalars = null;\n let cellFlag = false;\n\n // get and scalar data according to scalar mode\n if (scalarMode === ScalarMode.DEFAULT) {\n scalars = input.getPointData().getScalars();\n if (!scalars) {\n scalars = input.getCellData().getScalars();\n cellFlag = true;\n }\n } else if (scalarMode === ScalarMode.USE_POINT_DATA) {\n scalars = input.getPointData().getScalars();\n } else if (scalarMode === ScalarMode.USE_CELL_DATA) {\n scalars = input.getCellData().getScalars();\n cellFlag = true;\n } else if (scalarMode === ScalarMode.USE_POINT_FIELD_DATA) {\n const pd = input.getPointData();\n if (arrayAccessMode === GetArray.BY_ID) {\n scalars = pd.getArrayByIndex(arrayId);\n } else {\n scalars = pd.getArrayByName(arrayName);\n }\n } else if (scalarMode === ScalarMode.USE_CELL_FIELD_DATA) {\n const cd = input.getCellData();\n cellFlag = true;\n if (arrayAccessMode === GetArray.BY_ID) {\n scalars = cd.getArrayByIndex(arrayId);\n } else {\n scalars = cd.getArrayByName(arrayName);\n }\n } else if (scalarMode === ScalarMode.USE_FIELD_DATA) {\n const fd = input.getFieldData();\n if (arrayAccessMode === GetArray.BY_ID) {\n scalars = fd.getArrayByIndex(arrayId);\n } else {\n scalars = fd.getArrayByName(arrayName);\n }\n }\n return {\n scalars,\n cellFlag\n };\n };\n publicAPI.mapScalars = (input, alpha) => {\n const {\n scalars,\n cellFlag\n } = publicAPI.getAbstractScalars(input, model.scalarMode, model.arrayAccessMode, model.arrayId, model.colorByArrayName);\n model.areScalarsMappedFromCells = cellFlag;\n if (!scalars) {\n model.colorCoordinates = null;\n model.colorTextureMap = null;\n model.colorMapColors = null;\n return;\n }\n\n // we want to only recompute when something has changed\n const toString = `${publicAPI.getMTime()}${scalars.getMTime()}${alpha}`;\n if (model.colorBuildString === toString) return;\n if (!model.useLookupTableScalarRange) {\n publicAPI.getLookupTable().setRange(model.scalarRange[0], model.scalarRange[1]);\n }\n\n // Decide between texture color or vertex color.\n // Cell data always uses vertex color.\n // Only point data can use both texture and vertex coloring.\n if (publicAPI.canUseTextureMapForColoring(scalars, cellFlag)) {\n model.mapScalarsToTexture(scalars, cellFlag, alpha);\n } else {\n model.colorCoordinates = null;\n model.colorTextureMap = null;\n const lut = publicAPI.getLookupTable();\n if (lut) {\n // Ensure that the lookup table is built\n lut.build();\n model.colorMapColors = lut.mapScalars(scalars, model.colorMode, model.fieldDataTupleId);\n }\n }\n model.colorBuildString = `${publicAPI.getMTime()}${scalars.getMTime()}${alpha}`;\n };\n\n // Protected method\n model.mapScalarsToTexture = (scalars, cellFlag, alpha) => {\n const range = model.lookupTable.getRange();\n const useLogScale = model.lookupTable.usingLogScale();\n if (useLogScale) {\n // convert range to log.\n vtkLookupTable.getLogRange(range, range);\n }\n const origAlpha = model.lookupTable.getAlpha();\n\n // Get rid of vertex color array. Only texture or vertex coloring\n // can be active at one time. The existence of the array is the\n // signal to use that technique.\n model.colorMapColors = null;\n\n // If the lookup table has changed, then recreate the color texture map.\n // Set a new lookup table changes this->MTime.\n if (model.colorTextureMap == null || publicAPI.getMTime() > model.colorTextureMap.getMTime() || model.lookupTable.getMTime() > model.colorTextureMap.getMTime() || model.lookupTable.getAlpha() !== alpha) {\n model.lookupTable.setAlpha(alpha);\n model.colorTextureMap = null;\n\n // Get the texture map from the lookup table.\n // Create a dummy ramp of scalars.\n // In the future, we could extend vtkScalarsToColors.\n model.lookupTable.build();\n const numberOfAvailableColors = model.lookupTable.getNumberOfAvailableColors();\n\n // Maximum dimensions and number of colors in range\n const maxTextureWidthForCells = 2048;\n const maxColorsInRangeForCells = maxTextureWidthForCells ** 3 - 3; // 3D but keep a color for min, max and NaN\n const maxTextureWidthForPoints = 4096;\n const maxColorsInRangeForPoints = maxTextureWidthForPoints - 2; // 1D but keep a color for min and max (NaN is in a different row)\n // Minimum number of colors in range (excluding special colors like minColor, maxColor and NaNColor)\n const minColorsInRange = 2;\n // Maximum number of colors, limited by the maximum possible texture size\n const maxColorsInRange = cellFlag ? maxColorsInRangeForCells : maxColorsInRangeForPoints;\n model.numberOfColorsInRange = Math.min(Math.max(numberOfAvailableColors, minColorsInRange), maxColorsInRange);\n const numberOfColorsForCells = model.numberOfColorsInRange + 3; // Add min, max and NaN\n const numberOfColorsInUpperRowForPoints = model.numberOfColorsInRange + 2; // Add min and max ; the lower row will be used for NaN color\n const textureDimensions = cellFlag ? [Math.min(Math.ceil(numberOfColorsForCells / maxTextureWidthForCells ** 0), maxTextureWidthForCells), Math.min(Math.ceil(numberOfColorsForCells / maxTextureWidthForCells ** 1), maxTextureWidthForCells), Math.min(Math.ceil(numberOfColorsForCells / maxTextureWidthForCells ** 2), maxTextureWidthForCells)] : [numberOfColorsInUpperRowForPoints, 2, 1];\n const textureSize = textureDimensions[0] * textureDimensions[1] * textureDimensions[2];\n const scalarsArray = new Float64Array(textureSize);\n\n // Colors for NaN by default\n scalarsArray.fill(NaN);\n\n // Colors in range\n // Add 2 to also get color for min and max\n const numberOfNonSpecialColors = model.numberOfColorsInRange;\n const numberOfNonNaNColors = numberOfNonSpecialColors + 2;\n const textureCoordinates = [0, 0, 0];\n const rangeMin = range[0];\n const rangeDifference = range[1] - range[0];\n for (let i = 0; i < numberOfNonNaNColors; ++i) {\n const scalarsArrayIndex = getIndexFromCoordinates(textureCoordinates, textureDimensions);\n\n // Minus 1 start at min color\n const scalarValue = rangeMin + rangeDifference * (i - 1) / (numberOfNonSpecialColors - 1);\n scalarsArray[scalarsArrayIndex] = useLogScale ? 10.0 ** scalarValue : scalarValue;\n\n // Colors are zigzagging to allow interpolation between two neighbor colors when coloring cells\n updateZigzaggingCoordinates(textureCoordinates, textureDimensions);\n }\n const scalarsDataArray = vtkDataArray.newInstance({\n numberOfComponents: 1,\n values: scalarsArray\n });\n const colorsDataArray = model.lookupTable.mapScalars(scalarsDataArray, model.colorMode, 0);\n model.colorTextureMap = vtkImageData.newInstance();\n model.colorTextureMap.setDimensions(textureDimensions);\n model.colorTextureMap.getPointData().setScalars(colorsDataArray);\n model.lookupTable.setAlpha(origAlpha);\n }\n\n // Although I like the feature of applying magnitude to single component\n // scalars, it is not how the old MapScalars for vertex coloring works.\n const scalarComponent = model.lookupTable.getVectorMode() === VectorMode.MAGNITUDE && scalars.getNumberOfComponents() > 1 ? -1 : model.lookupTable.getVectorComponent();\n\n // Create new coordinates if necessary, this function uses cache if possible.\n // A zigzag pattern can't be used with point data, as interpolation of texture coordinates will be wrong\n // A zigzag pattern can be used with cell data, as there will be no texture coordinates interpolation\n // The texture generated using a zigzag pattern in one dimension is the same as without zigzag\n // Therefore, the same code can be used for texture generation of point/cell data but not for texture coordinates\n model.colorCoordinates = getOrCreateColorTextureCoordinates(scalars, scalarComponent, range, model.numberOfColorsInRange, model.colorTextureMap.getDimensions(), useLogScale, cellFlag);\n };\n publicAPI.getIsOpaque = () => {\n const input = publicAPI.getInputData();\n const gasResult = publicAPI.getAbstractScalars(input, model.scalarMode, model.arrayAccessMode, model.arrayId, model.colorByArrayName);\n const scalars = gasResult.scalars;\n if (!model.scalarVisibility || scalars == null) {\n // No scalar colors.\n return true;\n }\n const lut = publicAPI.getLookupTable();\n if (lut) {\n // Ensure that the lookup table is built\n lut.build();\n return lut.areScalarsOpaque(scalars, model.colorMode, -1);\n }\n return true;\n };\n publicAPI.canUseTextureMapForColoring = (scalars, cellFlag) => {\n if (cellFlag && !(model.colorMode === ColorMode.DIRECT_SCALARS)) {\n return true; // cell data always use textures.\n }\n\n if (!model.interpolateScalarsBeforeMapping) {\n return false; // user doesn't want us to use texture maps at all.\n }\n\n // index color does not use textures\n if (model.lookupTable && model.lookupTable.getIndexedLookup()) {\n return false;\n }\n if (!scalars) {\n // no scalars on this dataset, we don't care if texture is used at all.\n return false;\n }\n if (model.colorMode === ColorMode.DEFAULT && scalars.getDataType() === VtkDataTypes.UNSIGNED_CHAR || model.colorMode === ColorMode.DIRECT_SCALARS) {\n // Don't use texture is direct coloring using RGB unsigned chars is\n // requested.\n return false;\n }\n return true;\n };\n publicAPI.clearColorArrays = () => {\n model.colorMapColors = null;\n model.colorCoordinates = null;\n model.colorTextureMap = null;\n };\n publicAPI.getLookupTable = () => {\n if (!model.lookupTable) {\n publicAPI.createDefaultLookupTable();\n }\n return model.lookupTable;\n };\n publicAPI.getMTime = () => {\n let mt = model.mtime;\n if (model.lookupTable !== null) {\n const time = model.lookupTable.getMTime();\n mt = time > mt ? time : mt;\n }\n return mt;\n };\n publicAPI.getPrimitiveCount = () => {\n const input = publicAPI.getInputData();\n const pcount = {\n points: input.getPoints().getNumberOfValues() / 3,\n verts: input.getVerts().getNumberOfValues() - input.getVerts().getNumberOfCells(),\n lines: input.getLines().getNumberOfValues() - 2 * input.getLines().getNumberOfCells(),\n triangles: input.getPolys().getNumberOfValues() - 3 * input.getPolys().getNumberOfCells()\n };\n return pcount;\n };\n publicAPI.acquireInvertibleLookupTable = notImplemented('AcquireInvertibleLookupTable');\n publicAPI.valueToColor = notImplemented('ValueToColor');\n publicAPI.colorToValue = notImplemented('ColorToValue');\n publicAPI.useInvertibleColorFor = notImplemented('UseInvertibleColorFor');\n publicAPI.clearInvertibleColor = notImplemented('ClearInvertibleColor');\n publicAPI.processSelectorPixelBuffers = (selector, pixelOffsets) => {\n /* eslint-disable no-bitwise */\n if (!selector || !model.selectionWebGLIdsToVTKIds || !model.populateSelectionSettings) {\n return;\n }\n const rawLowData = selector.getRawPixelBuffer(PassTypes.ID_LOW24);\n const rawHighData = selector.getRawPixelBuffer(PassTypes.ID_HIGH24);\n const currentPass = selector.getCurrentPass();\n const fieldAssociation = selector.getFieldAssociation();\n let idMap = null;\n if (fieldAssociation === FieldAssociations.FIELD_ASSOCIATION_POINTS) {\n idMap = model.selectionWebGLIdsToVTKIds.points;\n } else if (fieldAssociation === FieldAssociations.FIELD_ASSOCIATION_CELLS) {\n idMap = model.selectionWebGLIdsToVTKIds.cells;\n }\n if (!idMap) {\n return;\n }\n pixelOffsets.forEach(pos => {\n if (currentPass === PassTypes.ID_LOW24) {\n let inValue = 0;\n if (rawHighData) {\n inValue += rawHighData[pos];\n inValue *= 256;\n }\n inValue += rawLowData[pos + 2];\n inValue *= 256;\n inValue += rawLowData[pos + 1];\n inValue *= 256;\n inValue += rawLowData[pos];\n const outValue = idMap[inValue];\n const lowData = selector.getPixelBuffer(PassTypes.ID_LOW24);\n lowData[pos] = outValue & 0xff;\n lowData[pos + 1] = (outValue & 0xff00) >> 8;\n lowData[pos + 2] = (outValue & 0xff0000) >> 16;\n } else if (currentPass === PassTypes.ID_HIGH24 && rawHighData) {\n let inValue = 0;\n inValue += rawHighData[pos];\n inValue *= 256;\n inValue += rawLowData[pos + 2];\n inValue *= 256;\n inValue += rawLowData[pos + 1];\n inValue *= 256;\n inValue += rawLowData[pos];\n const outValue = idMap[inValue];\n const highData = selector.getPixelBuffer(PassTypes.ID_HIGH24);\n highData[pos] = (outValue & 0xff000000) >> 24;\n }\n });\n /* eslint-enable no-bitwise */\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n colorMapColors: null,\n // Same as this->Colors\n areScalarsMappedFromCells: false,\n static: false,\n lookupTable: null,\n scalarVisibility: true,\n scalarRange: [0, 1],\n useLookupTableScalarRange: false,\n colorMode: 0,\n scalarMode: 0,\n arrayAccessMode: 1,\n // By_NAME\n\n renderTime: 0,\n colorByArrayName: null,\n fieldDataTupleId: -1,\n populateSelectionSettings: true,\n selectionWebGLIdsToVTKIds: null,\n interpolateScalarsBeforeMapping: false,\n colorCoordinates: null,\n colorTextureMap: null,\n numberOfColorsInRange: 0,\n forceCompileOnly: 0,\n useInvertibleColors: false,\n invertibleScalars: null,\n customShaderAttributes: []\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Inheritance\n vtkAbstractMapper3D.extend(publicAPI, model, initialValues);\n macro.get(publicAPI, model, ['areScalarsMappedFromCells', 'colorCoordinates', 'colorMapColors', 'colorTextureMap', 'numberOfColorsInRange', 'selectionWebGLIdsToVTKIds']);\n macro.setGet(publicAPI, model, ['colorByArrayName', 'arrayAccessMode', 'colorMode', 'fieldDataTupleId', 'interpolateScalarsBeforeMapping', 'lookupTable', 'populateSelectionSettings', 'renderTime', 'scalarMode', 'scalarVisibility', 'static', 'useLookupTableScalarRange', 'customShaderAttributes' // point data array names that will be transferred to the VBO\n ]);\n\n macro.setGetArray(publicAPI, model, ['scalarRange'], 2);\n CoincidentTopologyHelper.implementCoincidentTopologyMethods(publicAPI, model);\n\n // Object methods\n vtkMapper(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkMapper');\n\n// ----------------------------------------------------------------------------\n\nvar vtkMapper$1 = {\n newInstance,\n extend,\n ...staticOffsetAPI,\n ...otherStaticMethods,\n ...Constants\n};\n\nexport { vtkMapper$1 as default, extend, newInstance };\n","import { m as macro } from '../../macros2.js';\nimport vtkDataArray from './DataArray.js';\nimport { VtkDataTypes } from './DataArray/Constants.js';\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\nfunction extractCellSizes(cellArray) {\n let currentIdx = 0;\n return cellArray.filter((value, index) => {\n if (index === currentIdx) {\n currentIdx += value + 1;\n return true;\n }\n return false;\n });\n}\nfunction getNumberOfCells(cellArray) {\n let cellId = 0;\n for (let cellArrayIndex = 0; cellArrayIndex < cellArray.length;) {\n cellArrayIndex += cellArray[cellArrayIndex] + 1;\n cellId++;\n }\n return cellId;\n}\n\n// ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\nconst STATIC = {\n extractCellSizes,\n getNumberOfCells\n};\n\n// ----------------------------------------------------------------------------\n// vtkCellArray methods\n// ----------------------------------------------------------------------------\n\nfunction vtkCellArray(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkCellArray');\n const superClass = {\n ...publicAPI\n };\n publicAPI.getNumberOfCells = recompute => {\n if (model.numberOfCells !== undefined && !recompute) {\n return model.numberOfCells;\n }\n if (model.cellSizes) {\n model.numberOfCells = model.cellSizes.length;\n } else {\n model.numberOfCells = getNumberOfCells(publicAPI.getData());\n }\n return model.numberOfCells;\n };\n publicAPI.getCellSizes = recompute => {\n if (model.cellSizes !== undefined && !recompute) {\n return model.cellSizes;\n }\n model.cellSizes = extractCellSizes(publicAPI.getData());\n return model.cellSizes;\n };\n\n /**\n * When `resize()` is being used, you then MUST use `insertNextCell()`.\n */\n publicAPI.resize = requestedNumTuples => {\n const oldNumTuples = publicAPI.getNumberOfTuples();\n superClass.resize(requestedNumTuples);\n const newNumTuples = publicAPI.getNumberOfTuples();\n if (newNumTuples < oldNumTuples) {\n if (newNumTuples === 0) {\n model.numberOfCells = 0;\n model.cellSizes = [];\n } else {\n // We do not know how many cells are left.\n // Set to undefined to ensure insertNextCell works correctly.\n model.numberOfCells = undefined;\n model.cellSizes = undefined;\n }\n }\n };\n publicAPI.setData = typedArray => {\n superClass.setData(typedArray, 1);\n model.numberOfCells = undefined;\n model.cellSizes = undefined;\n };\n publicAPI.getCell = loc => {\n let cellLoc = loc;\n const numberOfPoints = model.values[cellLoc++];\n return model.values.subarray(cellLoc, cellLoc + numberOfPoints);\n };\n publicAPI.insertNextCell = cellPointIds => {\n const cellId = publicAPI.getNumberOfCells();\n publicAPI.insertNextTuples([cellPointIds.length, ...cellPointIds]);\n // By computing the number of cells earlier, we made sure that numberOfCells is defined\n ++model.numberOfCells;\n if (model.cellSizes != null) {\n model.cellSizes.push(cellPointIds.length);\n }\n return cellId;\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nfunction defaultValues(initialValues) {\n return {\n empty: true,\n numberOfComponents: 1,\n dataType: VtkDataTypes.UNSIGNED_INT,\n ...initialValues\n };\n}\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n vtkDataArray.extend(publicAPI, model, defaultValues(initialValues));\n vtkCellArray(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkCellArray');\n\n// ----------------------------------------------------------------------------\n\nvar vtkCellArray$1 = {\n newInstance,\n extend,\n ...STATIC\n};\n\nexport { STATIC, vtkCellArray$1 as default, extend, newInstance };\n","import { m as macro } from '../../macros2.js';\nimport vtkDataArray from './DataArray.js';\nimport { VtkDataTypes } from './DataArray/Constants.js';\n\nconst {\n vtkErrorMacro\n} = macro;\nconst INVALID_BOUNDS = [1, -1, 1, -1, 1, -1];\n\n// ----------------------------------------------------------------------------\n// vtkPoints methods\n// ----------------------------------------------------------------------------\n\nfunction vtkPoints(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkPoints');\n\n // Forwarding methods\n publicAPI.getNumberOfPoints = publicAPI.getNumberOfTuples;\n publicAPI.setNumberOfPoints = function (nbPoints) {\n let dimension = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;\n if (publicAPI.getNumberOfPoints() !== nbPoints) {\n model.size = nbPoints * dimension;\n model.values = macro.newTypedArray(model.dataType, model.size);\n publicAPI.setNumberOfComponents(dimension);\n publicAPI.modified();\n }\n };\n publicAPI.setPoint = function (idx) {\n for (var _len = arguments.length, xyz = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n xyz[_key - 1] = arguments[_key];\n }\n publicAPI.setTuple(idx, xyz);\n };\n publicAPI.getPoint = publicAPI.getTuple;\n publicAPI.findPoint = publicAPI.findTuple;\n publicAPI.insertNextPoint = (x, y, z) => publicAPI.insertNextTuple([x, y, z]);\n publicAPI.getBounds = () => {\n if (publicAPI.getNumberOfComponents() === 3) {\n const xRange = publicAPI.getRange(0);\n model.bounds[0] = xRange[0];\n model.bounds[1] = xRange[1];\n const yRange = publicAPI.getRange(1);\n model.bounds[2] = yRange[0];\n model.bounds[3] = yRange[1];\n const zRange = publicAPI.getRange(2);\n model.bounds[4] = zRange[0];\n model.bounds[5] = zRange[1];\n return model.bounds;\n }\n if (publicAPI.getNumberOfComponents() !== 2) {\n vtkErrorMacro(`getBounds called on an array with components of\n ${publicAPI.getNumberOfComponents()}`);\n return INVALID_BOUNDS;\n }\n const xRange = publicAPI.getRange(0);\n model.bounds[0] = xRange[0];\n model.bounds[1] = xRange[1];\n const yRange = publicAPI.getRange(1);\n model.bounds[2] = yRange[0];\n model.bounds[3] = yRange[1];\n model.bounds[4] = 0;\n model.bounds[5] = 0;\n return model.bounds;\n };\n\n // Trigger the computation of bounds\n publicAPI.computeBounds = publicAPI.getBounds;\n\n // Initialize\n publicAPI.setNumberOfComponents(model.numberOfComponents < 2 ? 3 : model.numberOfComponents);\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n empty: true,\n numberOfComponents: 3,\n dataType: VtkDataTypes.FLOAT,\n bounds: [1, -1, 1, -1, 1, -1]\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n vtkDataArray.extend(publicAPI, model, initialValues);\n vtkPoints(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkPoints');\n\n// ----------------------------------------------------------------------------\n\nvar vtkPoints$1 = {\n newInstance,\n extend\n};\n\nexport { vtkPoints$1 as default, extend, newInstance };\n","import { m as macro } from '../../macros2.js';\nimport { u as uninitializeBounds } from '../Core/Math/index.js';\nimport vtkPoints from '../Core/Points.js';\n\n// ----------------------------------------------------------------------------\n// vtkCell methods\n// ----------------------------------------------------------------------------\n\nfunction vtkCell(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkCell');\n publicAPI.initialize = function (points) {\n let pointIdsList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!pointIdsList) {\n model.points = points;\n model.pointsIds = new Array(points.getNumberOfPoints());\n for (let i = points.getNumberOfPoints() - 1; i >= 0; --i) {\n model.pointsIds[i] = i;\n }\n } else {\n model.pointsIds = pointIdsList;\n let triangleData = model.points.getData();\n if (triangleData.length !== 3 * model.pointsIds.length) {\n triangleData = macro.newTypedArray(points.getDataType(), 3 * model.pointsIds.length);\n }\n const pointsData = points.getData();\n model.pointsIds.forEach((pointId, index) => {\n // const start = 3 * pointId;\n // pointsData.set(p.subarray(start, start + 3), 3 * index);\n let pointOffset = 3 * pointId;\n let trianglePointOffset = 3 * index;\n triangleData[trianglePointOffset] = pointsData[pointOffset];\n triangleData[++trianglePointOffset] = pointsData[++pointOffset];\n triangleData[++trianglePointOffset] = pointsData[++pointOffset];\n });\n model.points.setData(triangleData);\n }\n };\n publicAPI.getBounds = () => {\n const nbPoints = model.points.getNumberOfPoints();\n const x = [];\n if (nbPoints) {\n model.points.getPoint(0, x);\n model.bounds[0] = x[0];\n model.bounds[1] = x[0];\n model.bounds[2] = x[1];\n model.bounds[3] = x[1];\n model.bounds[4] = x[2];\n model.bounds[5] = x[2];\n for (let i = 1; i < nbPoints; i++) {\n model.points.getPoint(i, x);\n model.bounds[0] = x[0] < model.bounds[0] ? x[0] : model.bounds[0];\n model.bounds[1] = x[0] > model.bounds[1] ? x[0] : model.bounds[1];\n model.bounds[2] = x[1] < model.bounds[2] ? x[1] : model.bounds[2];\n model.bounds[3] = x[1] > model.bounds[3] ? x[1] : model.bounds[3];\n model.bounds[4] = x[2] < model.bounds[4] ? x[2] : model.bounds[4];\n model.bounds[5] = x[2] > model.bounds[5] ? x[2] : model.bounds[5];\n }\n } else {\n uninitializeBounds(model.bounds);\n }\n return model.bounds;\n };\n publicAPI.getLength2 = () => {\n publicAPI.getBounds();\n let length = 0.0;\n let diff = 0;\n for (let i = 0; i < 3; i++) {\n diff = model.bounds[2 * i + 1] - model.bounds[2 * i];\n length += diff * diff;\n }\n return length;\n };\n publicAPI.getParametricDistance = pcoords => {\n let pDist;\n let pDistMax = 0.0;\n for (let i = 0; i < 3; i++) {\n if (pcoords[i] < 0.0) {\n pDist = -pcoords[i];\n } else if (pcoords[i] > 1.0) {\n pDist = pcoords[i] - 1.0;\n } else {\n // inside the cell in the parametric direction\n pDist = 0.0;\n }\n if (pDist > pDistMax) {\n pDistMax = pDist;\n }\n }\n return pDistMax;\n };\n publicAPI.getNumberOfPoints = () => model.points.getNumberOfPoints();\n publicAPI.deepCopy = cell => {\n cell.initialize(model.points, model.pointsIds);\n };\n publicAPI.getCellDimension = () => {}; // virtual\n publicAPI.intersectWithLine = (p1, p2, tol, t, x, pcoords, subId) => {}; // virtual\n publicAPI.evaluatePosition = (x, closestPoint, subId, pcoords, dist2, weights) => {\n macro.vtkErrorMacro('vtkCell.evaluatePosition is not implemented.');\n }; // virtual\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n bounds: [-1, -1, -1, -1, -1, -1],\n pointsIds: []\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n macro.obj(publicAPI, model);\n if (!model.points) {\n model.points = vtkPoints.newInstance();\n }\n macro.get(publicAPI, model, ['points', 'pointsIds']);\n vtkCell(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkCell');\n\n// ----------------------------------------------------------------------------\n\nvar vtkCell$1 = {\n newInstance,\n extend\n};\n\nexport { vtkCell$1 as default, extend, newInstance };\n","import { m as macro } from '../../macros2.js';\nimport vtkCell from './Cell.js';\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\nconst InitLink = {\n ncells: 0,\n cells: null\n};\nfunction resize(model, sz) {\n let newSize = sz;\n if (sz >= model.array.length) {\n newSize += model.array.length;\n }\n while (newSize > model.array.length) model.array.push({\n ncells: 0,\n cells: null\n });\n model.array.length = newSize;\n}\n\n// ----------------------------------------------------------------------------\n// vtkCellLinks methods\n// ----------------------------------------------------------------------------\n\nfunction vtkCellLinks(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkCellLinks');\n\n /**\n * Build the link list array. All subclasses of vtkAbstractCellLinks\n * must support this method.\n */\n publicAPI.buildLinks = data => {\n const numPts = data.getPoints().getNumberOfPoints();\n const numCells = data.getNumberOfCells();\n\n // fill out lists with number of references to cells\n const linkLoc = new Uint32Array(numPts);\n\n // Use fast path if polydata\n if (data.isA('vtkPolyData')) {\n // traverse data to determine number of uses of each point\n for (let cellId = 0; cellId < numCells; ++cellId) {\n const {\n cellPointIds\n } = data.getCellPoints(cellId);\n cellPointIds.forEach(cellPointId => {\n publicAPI.incrementLinkCount(cellPointId);\n });\n }\n\n // now allocate storage for the links\n publicAPI.allocateLinks(numPts);\n model.maxId = numPts - 1;\n for (let cellId = 0; cellId < numCells; ++cellId) {\n const {\n cellPointIds\n } = data.getCellPoints(cellId);\n cellPointIds.forEach(cellPointId => {\n publicAPI.insertCellReference(cellPointId, linkLoc[cellPointId]++, cellId);\n });\n }\n } // any other type of dataset\n else {\n // traverse data to determine number of uses of each point\n for (let cellId = 0; cellId < numCells; cellId++) {\n // TODO: Currently not supported: const cell = data.getCell(cellId);\n const cell = vtkCell.newInstance();\n cell.getPointsIds().forEach(cellPointId => {\n publicAPI.incrementLinkCount(cellPointId);\n });\n }\n\n // now allocate storage for the links\n publicAPI.allocateLinks(numPts);\n model.maxId = numPts - 1;\n for (let cellId = 0; cellId < numCells; ++cellId) {\n // TODO: Currently not supported: const cell = data.getCell(cellId);\n const cell = vtkCell.newInstance();\n cell.getPointsIds().forEach(cellPointId => {\n publicAPI.insertCellReference(cellPointId, linkLoc[cellPointId]++, cellId);\n });\n }\n } // end else\n };\n\n /**\n * Build the link list array with a provided connectivity array.\n */\n // publicAPI.buildLinks = (data, connectivity) => {};\n\n /**\n * Allocate the specified number of links (i.e., number of points) that\n * will be built.\n */\n publicAPI.allocate = function (numLinks) {\n let ext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\n model.array = Array(numLinks).fill().map(() => ({\n ncells: 0,\n cells: null\n }));\n model.extend = ext;\n model.maxId = -1;\n };\n publicAPI.initialize = () => {\n model.array = null;\n };\n\n /**\n * Get a link structure given a point id.\n */\n publicAPI.getLink = ptId => model.array[ptId];\n\n /**\n * Get the number of cells using the point specified by ptId.\n */\n publicAPI.getNcells = ptId => model.array[ptId].ncells;\n\n /**\n * Return a list of cell ids using the point.\n */\n publicAPI.getCells = ptId => model.array[ptId].cells;\n\n /**\n * Insert a new point into the cell-links data structure. The size parameter\n * is the initial size of the list.\n */\n publicAPI.insertNextPoint = numLinks => {\n model.array.push({\n ncells: numLinks,\n cells: Array(numLinks)\n });\n ++model.maxId;\n };\n\n /**\n * Insert a cell id into the list of cells (at the end) using the cell id\n * provided. (Make sure to extend the link list (if necessary) using the\n * method resizeCellList().)\n */\n publicAPI.insertNextCellReference = (ptId, cellId) => {\n model.array[ptId].cells[model.array[ptId].ncells++] = cellId;\n };\n\n /**\n * Delete point (and storage) by destroying links to using cells.\n */\n publicAPI.deletePoint = ptId => {\n model.array[ptId].ncells = 0;\n model.array[ptId].cells = null;\n };\n\n /**\n * Delete the reference to the cell (cellId) from the point (ptId). This\n * removes the reference to the cellId from the cell list, but does not\n * resize the list (recover memory with resizeCellList(), if necessary).\n */\n publicAPI.removeCellReference = (cellId, ptId) => {\n model.array[ptId].cells = model.array[ptId].cells.filter(cell => cell !== cellId);\n model.array[ptId].ncells = model.array[ptId].cells.length;\n };\n\n /**\n * Add the reference to the cell (cellId) from the point (ptId). This\n * adds a reference to the cellId from the cell list, but does not resize\n * the list (extend memory with resizeCellList(), if necessary).\n */\n publicAPI.addCellReference = (cellId, ptId) => {\n model.array[ptId].cells[model.array[ptId].ncells++] = cellId;\n };\n\n /**\n * Change the length of a point's link list (i.e., list of cells using a\n * point) by the size specified.\n */\n publicAPI.resizeCellList = (ptId, size) => {\n model.array[ptId].cells.length = size;\n };\n\n /**\n * Reclaim any unused memory.\n */\n publicAPI.squeeze = () => {\n resize(model, model.maxId + 1);\n };\n\n /**\n * Reset to a state of no entries without freeing the memory.\n */\n publicAPI.reset = () => {\n model.maxId = -1;\n };\n\n /**\n * Standard DeepCopy method. Since this object contains no reference\n * to other objects, there is no ShallowCopy.\n */\n publicAPI.deepCopy = src => {\n model.array = [...src.array];\n model.extend = src.extend;\n model.maxId = src.maxId;\n };\n\n /**\n * Increment the count of the number of cells using the point.\n */\n publicAPI.incrementLinkCount = ptId => {\n ++model.array[ptId].ncells;\n };\n publicAPI.allocateLinks = n => {\n for (let i = 0; i < n; ++i) {\n model.array[i].cells = new Array(model.array[i].ncells);\n }\n };\n\n /**\n * Insert a cell id into the list of cells using the point.\n */\n publicAPI.insertCellReference = (ptId, pos, cellId) => {\n model.array[ptId].cells[pos] = cellId;\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n array: null,\n // pointer to data\n maxId: 0,\n // maximum index inserted thus far\n extend: 0 // grow array by this point\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n macro.obj(publicAPI, model);\n vtkCellLinks(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkCellLinks');\n\n// ----------------------------------------------------------------------------\n\nvar vtkCellLinks$1 = {\n newInstance,\n extend\n};\n\nexport { InitLink, vtkCellLinks$1 as default, extend, newInstance };\n","const CellType = {\n // Linear cells\n VTK_EMPTY_CELL: 0,\n VTK_VERTEX: 1,\n VTK_POLY_VERTEX: 2,\n VTK_LINE: 3,\n VTK_POLY_LINE: 4,\n VTK_TRIANGLE: 5,\n VTK_TRIANGLE_STRIP: 6,\n VTK_POLYGON: 7,\n VTK_PIXEL: 8,\n VTK_QUAD: 9,\n VTK_TETRA: 10,\n VTK_VOXEL: 11,\n VTK_HEXAHEDRON: 12,\n VTK_WEDGE: 13,\n VTK_PYRAMID: 14,\n VTK_PENTAGONAL_PRISM: 15,\n VTK_HEXAGONAL_PRISM: 16,\n // Quadratic, isoparametric cells\n VTK_QUADRATIC_EDGE: 21,\n VTK_QUADRATIC_TRIANGLE: 22,\n VTK_QUADRATIC_QUAD: 23,\n VTK_QUADRATIC_POLYGON: 36,\n VTK_QUADRATIC_TETRA: 24,\n VTK_QUADRATIC_HEXAHEDRON: 25,\n VTK_QUADRATIC_WEDGE: 26,\n VTK_QUADRATIC_PYRAMID: 27,\n VTK_BIQUADRATIC_QUAD: 28,\n VTK_TRIQUADRATIC_HEXAHEDRON: 29,\n VTK_QUADRATIC_LINEAR_QUAD: 30,\n VTK_QUADRATIC_LINEAR_WEDGE: 31,\n VTK_BIQUADRATIC_QUADRATIC_WEDGE: 32,\n VTK_BIQUADRATIC_QUADRATIC_HEXAHEDRON: 33,\n VTK_BIQUADRATIC_TRIANGLE: 34,\n // Cubic, isoparametric cell\n VTK_CUBIC_LINE: 35,\n // Special class of cells formed by convex group of points\n VTK_CONVEX_POINT_SET: 41,\n // Polyhedron cell (consisting of polygonal faces)\n VTK_POLYHEDRON: 42,\n // Higher order cells in parametric form\n VTK_PARAMETRIC_CURVE: 51,\n VTK_PARAMETRIC_SURFACE: 52,\n VTK_PARAMETRIC_TRI_SURFACE: 53,\n VTK_PARAMETRIC_QUAD_SURFACE: 54,\n VTK_PARAMETRIC_TETRA_REGION: 55,\n VTK_PARAMETRIC_HEX_REGION: 56,\n // Higher order cells\n VTK_HIGHER_ORDER_EDGE: 60,\n VTK_HIGHER_ORDER_TRIANGLE: 61,\n VTK_HIGHER_ORDER_QUAD: 62,\n VTK_HIGHER_ORDER_POLYGON: 63,\n VTK_HIGHER_ORDER_TETRAHEDRON: 64,\n VTK_HIGHER_ORDER_WEDGE: 65,\n VTK_HIGHER_ORDER_PYRAMID: 66,\n VTK_HIGHER_ORDER_HEXAHEDRON: 67,\n // Arbitrary order Lagrange elements (formulated separated from generic higher order cells)\n VTK_LAGRANGE_CURVE: 68,\n VTK_LAGRANGE_TRIANGLE: 69,\n VTK_LAGRANGE_QUADRILATERAL: 70,\n VTK_LAGRANGE_TETRAHEDRON: 71,\n VTK_LAGRANGE_HEXAHEDRON: 72,\n VTK_LAGRANGE_WEDGE: 73,\n VTK_LAGRANGE_PYRAMID: 74,\n VTK_NUMBER_OF_CELL_TYPES: 75\n};\n\n// This list should contain the cell class names in\n// the same order as in CellType.\nconst CellTypesStrings = ['vtkEmptyCell', 'vtkVertex', 'vtkPolyVertex', 'vtkLine', 'vtkPolyLine', 'vtkTriangle', 'vtkTriangleStrip', 'vtkPolygon', 'vtkPixel', 'vtkQuad', 'vtkTetra', 'vtkVoxel', 'vtkHexahedron', 'vtkWedge', 'vtkPyramid', 'vtkPentagonalPrism', 'vtkHexagonalPrism', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'vtkQuadraticEdge', 'vtkQuadraticTriangle', 'vtkQuadraticQuad', 'vtkQuadraticTetra', 'vtkQuadraticHexahedron', 'vtkQuadraticWedge', 'vtkQuadraticPyramid', 'vtkBiQuadraticQuad', 'vtkTriQuadraticHexahedron', 'vtkQuadraticLinearQuad', 'vtkQuadraticLinearWedge', 'vtkBiQuadraticQuadraticWedge', 'vtkBiQuadraticQuadraticHexahedron', 'vtkBiQuadraticTriangle', 'vtkCubicLine', 'vtkQuadraticPolygon', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'vtkConvexPointSet', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'vtkParametricCurve', 'vtkParametricSurface', 'vtkParametricTriSurface', 'vtkParametricQuadSurface', 'vtkParametricTetraRegion', 'vtkParametricHexRegion', 'UnknownClass', 'UnknownClass', 'UnknownClass', 'vtkHigherOrderEdge', 'vtkHigherOrderTriangle', 'vtkHigherOrderQuad', 'vtkHigherOrderPolygon', 'vtkHigherOrderTetrahedron', 'vtkHigherOrderWedge', 'vtkHigherOrderPyramid', 'vtkHigherOrderHexahedron'];\nvar Constants = {\n CellType,\n CellTypesStrings\n};\n\nexport { CellType, CellTypesStrings, Constants as default };\n","import { m as macro } from '../../macros2.js';\nimport { CellTypesStrings, CellType } from './CellTypes/Constants.js';\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\n/**\n * Given an int (as defined in vtkCellType.h) identifier for a class\n * return it's classname.\n */\nfunction getClassNameFromTypeId(typeId) {\n return typeId < CellTypesStrings.length ? CellTypesStrings[typeId] : 'UnknownClass';\n}\n\n/**\n * Given a data object classname, return it's int identified (as\n * defined in vtkCellType.h)\n */\nfunction getTypeIdFromClassName(cellTypeString) {\n return CellTypesStrings.findIndex(cellTypeString);\n}\n\n/**\n * This convenience method is a fast check to determine if a cell type\n * represents a linear or nonlinear cell. This is generally much more\n * efficient than getting the appropriate vtkCell and checking its IsLinear\n * method.\n */\nfunction isLinear(type) {\n return type < CellType.VTK_QUADRATIC_EDGE || type === CellType.VTK_CONVEX_POINT_SET || type === CellType.VTK_POLYHEDRON;\n}\nfunction hasSubCells(cellType) {\n return cellType === CellType.VTK_TRIANGLE_STRIP || cellType === CellType.VTK_POLY_LINE || cellType === CellType.VTK_POLY_VERTEX;\n}\n\n// ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\nconst STATIC = {\n getClassNameFromTypeId,\n getTypeIdFromClassName,\n isLinear,\n hasSubCells\n};\n\n// ----------------------------------------------------------------------------\n// vtkCellTypes methods\n// ----------------------------------------------------------------------------\n\nfunction vtkCellTypes(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkCellTypes');\n\n /**\n * Allocate memory for this array. Delete old storage only if necessary.\n */\n publicAPI.allocate = function () {\n let sz = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 512;\n let ext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\n model.size = sz > 0 ? sz : 1;\n model.extend = ext > 0 ? ext : 1;\n model.maxId = -1;\n model.typeArray = new Uint8Array(sz);\n model.locationArray = new Uint32Array(sz);\n };\n\n /**\n * Add a cell at specified id.\n */\n publicAPI.insertCell = (cellId, type, loc) => {\n model.typeArray[cellId] = type;\n model.locationArray[cellId] = loc;\n if (cellId > model.maxId) {\n model.maxId = cellId;\n }\n };\n\n /**\n * Add a cell to the object in the next available slot.\n */\n publicAPI.insertNextCell = (type, loc) => {\n publicAPI.insertCell(++model.maxId, type, loc);\n return model.maxId;\n };\n\n /**\n * Specify a group of cell types. This version is provided to maintain\n * backwards compatibility and does a copy of the cellLocations\n */\n publicAPI.setCellTypes = (ncells, cellTypes, cellLocations) => {\n model.size = ncells;\n model.typeArray = cellTypes;\n model.locationArray = cellLocations;\n model.maxId = ncells - 1;\n };\n\n /**\n * Return the location of the cell in the associated vtkCellArray.\n */\n publicAPI.getCellLocation = cellId => model.locationArray[cellId];\n\n /**\n * Delete cell by setting to nullptr cell type.\n */\n publicAPI.deleteCell = cellId => {\n model.typeArray[cellId] = CellType.VTK_EMPTY_CELL;\n };\n\n /**\n * Return the number of types in the list.\n */\n publicAPI.getNumberOfTypes = () => model.maxId + 1;\n\n /**\n * Return true if type specified is contained in list; false otherwise.\n */\n publicAPI.isType = type => {\n const numTypes = publicAPI.getNumberOfTypes();\n for (let i = 0; i < numTypes; ++i) {\n if (type === publicAPI.getCellType(i)) {\n return true;\n }\n }\n return false;\n };\n\n /**\n * Add the type specified to the end of the list. Range checking is performed.\n */\n publicAPI.insertNextType = type => publicAPI.insertNextCell(type, -1);\n\n /**\n * Return the type of cell.\n */\n publicAPI.getCellType = cellId => model.typeArray[cellId];\n\n /**\n * Reclaim any extra memory.\n */\n // TODO: publicAPI.squeeze = () => {};\n\n /**\n * Initialize object without releasing memory.\n */\n publicAPI.reset = () => {\n model.maxId = -1;\n };\n\n /**\n * Standard DeepCopy method. Since this object contains no reference\n * to other objects, there is no ShallowCopy.\n */\n publicAPI.deepCopy = src => {\n publicAPI.allocate(src.getSize(), src.getExtend());\n model.typeArray.set(src.getTypeArray());\n model.locationArray.set(src.getLocationArray());\n model.maxId = src.getMaxId();\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n // typeArray: null, // pointer to types array\n // locationArray: null; // pointer to array of offsets\n size: 0,\n // allocated size of data\n maxId: -1,\n // maximum index inserted thus far\n extend: 1000 // grow array by this point\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n macro.obj(publicAPI, model);\n macro.get(publicAPI, model, ['size', 'maxId', 'extend']);\n macro.getArray(publicAPI, model, ['typeArray', 'locationArray']);\n vtkCellTypes(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkCellTypes');\n\n// ----------------------------------------------------------------------------\n\nvar vtkCellTypes$1 = {\n newInstance,\n extend,\n ...STATIC\n};\n\nexport { STATIC, vtkCellTypes$1 as default, extend, newInstance };\n","const IntersectionState = {\n NO_INTERSECTION: 0,\n YES_INTERSECTION: 1,\n ON_LINE: 2\n};\nvar Constants = {\n IntersectionState\n};\n\nexport { IntersectionState, Constants as default };\n","import { m as macro } from '../../macros2.js';\nimport Constants from './Line/Constants.js';\nimport vtkCell from './Cell.js';\nimport { d as dot, e as distance2BetweenPoints, s as subtract, g as solveLinearSystem } from '../Core/Math/index.js';\nimport { quat } from 'gl-matrix';\n\nconst {\n IntersectionState\n} = Constants;\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\nfunction distanceToLine(x, p1, p2) {\n let closestPoint = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n const outObj = {\n t: Number.MIN_VALUE,\n distance: 0\n };\n const p21 = [];\n let closest;\n // Determine appropriate vector\n p21[0] = p2[0] - p1[0];\n p21[1] = p2[1] - p1[1];\n p21[2] = p2[2] - p1[2];\n\n // Get parametric location\n const num = p21[0] * (x[0] - p1[0]) + p21[1] * (x[1] - p1[1]) + p21[2] * (x[2] - p1[2]);\n const denom = dot(p21, p21);\n\n // trying to avoid an expensive fabs\n let tolerance = 1e-5 * num;\n if (denom !== 0.0) {\n outObj.t = num / denom;\n }\n if (tolerance < 0.0) {\n tolerance = -tolerance;\n }\n if (-tolerance < denom && denom < tolerance) {\n closest = p1;\n } else if (denom <= 0.0 || outObj.t < 0.0) {\n // If parametric coordinate is within 0<=p<=1, then the point is closest to\n // the line. Otherwise, it's closest to a point at the end of the line.\n closest = p1;\n } else if (outObj.t > 1.0) {\n closest = p2;\n } else {\n closest = p21;\n p21[0] = p1[0] + outObj.t * p21[0];\n p21[1] = p1[1] + outObj.t * p21[1];\n p21[2] = p1[2] + outObj.t * p21[2];\n }\n if (closestPoint) {\n closestPoint[0] = closest[0];\n closestPoint[1] = closest[1];\n closestPoint[2] = closest[2];\n }\n outObj.distance = distance2BetweenPoints(closest, x);\n return outObj;\n}\nfunction intersection(a1, a2, b1, b2, u, v) {\n const a21 = [];\n const b21 = [];\n const b1a1 = [];\n u[0] = 0.0;\n v[0] = 0.0;\n\n // Determine line vectors.\n subtract(a2, a1, a21);\n subtract(b2, b1, b21);\n subtract(b1, a1, b1a1);\n\n // Compute the system (least squares) matrix.\n const A = [dot(a21, a21), -dot(a21, b21), -dot(a21, b21), dot(b21, b21)];\n\n // Compute the least squares system constant term.\n const c = [];\n c[0] = dot(a21, b1a1);\n c[1] = -dot(b21, b1a1);\n // Solve the system of equations\n if (solveLinearSystem(A, c, 2) === 0) {\n // The lines are colinear. Therefore, one of the four endpoints is the\n // point of closest approach\n let minDist = Number.MAX_VALUE;\n const p = [a1, a2, b1, b2];\n const l1 = [b1, b1, a1, a1];\n const l2 = [b2, b2, a2, a2];\n [v[0], v[0], u[0], u[0]];\n [u[0], u[0], v[0], v[0]];\n let obj;\n for (let i = 0; i < 4; i++) {\n obj = distanceToLine(p[i], l1[i], l2[i]);\n if (obj.distance < minDist) {\n minDist = obj.distance;\n obj.t;\n }\n }\n return IntersectionState.ON_LINE;\n }\n u[0] = c[0];\n v[0] = c[1];\n\n // Check parametric coordinates for intersection.\n if (u[0] >= 0.0 && u[0] <= 1.0 && v[0] >= 0.0 && v[0] <= 1.0) {\n return IntersectionState.YES_INTERSECTION;\n }\n return IntersectionState.NO_INTERSECTION;\n}\n\n// ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\nconst STATIC = {\n distanceToLine,\n intersection\n};\n\n// ----------------------------------------------------------------------------\n// vtkLine methods\n// ----------------------------------------------------------------------------\n\nfunction vtkLine(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkLine');\n function isBetweenPoints(t) {\n return t >= 0.0 && t <= 1.0;\n }\n publicAPI.getCellDimension = () => 1;\n publicAPI.intersectWithLine = (p1, p2, tol, x, pcoords) => {\n const outObj = {\n intersect: 0,\n t: Number.MAX_VALUE,\n subId: 0,\n betweenPoints: null\n };\n pcoords[1] = 0.0;\n pcoords[2] = 0.0;\n const projXYZ = [];\n const a1 = [];\n const a2 = [];\n model.points.getPoint(0, a1);\n model.points.getPoint(1, a2);\n const u = [];\n const v = [];\n const intersect = intersection(p1, p2, a1, a2, u, v);\n outObj.t = u[0];\n outObj.betweenPoints = isBetweenPoints(outObj.t);\n pcoords[0] = v[0];\n if (intersect === IntersectionState.YES_INTERSECTION) {\n // make sure we are within tolerance\n for (let i = 0; i < 3; i++) {\n x[i] = a1[i] + pcoords[0] * (a2[i] - a1[i]);\n projXYZ[i] = p1[i] + outObj.t * (p2[i] - p1[i]);\n }\n if (distance2BetweenPoints(x, projXYZ) <= tol * tol) {\n outObj.intersect = 1;\n return outObj;\n }\n } else {\n let outDistance;\n // check to see if it lies within tolerance\n // one of the parametric coords must be outside 0-1\n if (outObj.t < 0.0) {\n outDistance = distanceToLine(p1, a1, a2, x);\n if (outDistance.distance <= tol * tol) {\n outObj.t = 0.0;\n outObj.intersect = 1;\n outObj.betweenPoints = true; // Intersection is near p1\n return outObj;\n }\n return outObj;\n }\n if (outObj.t > 1.0) {\n outDistance = distanceToLine(p2, a1, a2, x);\n if (outDistance.distance <= tol * tol) {\n outObj.t = 1.0;\n outObj.intersect = 1;\n outObj.betweenPoints = true; // Intersection is near p2\n return outObj;\n }\n return outObj;\n }\n if (pcoords[0] < 0.0) {\n pcoords[0] = 0.0;\n outDistance = distanceToLine(a1, p1, p2, x);\n outObj.t = outDistance.t;\n if (outDistance.distance <= tol * tol) {\n outObj.intersect = 1;\n return outObj;\n }\n return outObj;\n }\n if (pcoords[0] > 1.0) {\n pcoords[0] = 1.0;\n outDistance = distanceToLine(a2, p1, p2, x);\n outObj.t = outDistance.t;\n if (outDistance.distance <= tol * tol) {\n outObj.intersect = 1;\n return outObj;\n }\n return outObj;\n }\n }\n return outObj;\n };\n publicAPI.evaluateLocation = (pcoords, x, weights) => {\n const a1 = [];\n const a2 = [];\n model.points.getPoint(0, a1);\n model.points.getPoint(1, a2);\n for (let i = 0; i < 3; i++) {\n x[i] = a1[i] + pcoords[0] * (a2[i] - a1[i]);\n }\n weights[0] = 1.0 - pcoords[0];\n weights[1] = pcoords[0];\n };\n publicAPI.evaluateOrientation = (pcoords, q, weights) => {\n if (model.orientations) {\n quat.slerp(q, model.orientations[0], model.orientations[1], pcoords[0]);\n weights[0] = 1.0 - pcoords[0];\n weights[1] = pcoords[0];\n return true;\n }\n return false;\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n orientations: null // an array of two quat or null\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n vtkCell.extend(publicAPI, model, initialValues);\n macro.setGet(publicAPI, model, ['orientations']);\n vtkLine(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkLine');\n\n// ----------------------------------------------------------------------------\n\nvar vtkLine$1 = {\n newInstance,\n extend,\n ...STATIC,\n ...Constants\n};\n\nexport { STATIC, vtkLine$1 as default, extend, newInstance };\n","import vtk from '../../vtk.js';\nimport { m as macro } from '../../macros2.js';\nimport vtkDataSet from './DataSet.js';\nimport vtkPoints from '../Core/Points.js';\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\n// ----------------------------------------------------------------------------\n// vtkPointSet methods\n// ----------------------------------------------------------------------------\n\nfunction vtkPointSet(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkPointSet');\n\n // Create empty points\n if (!model.points) {\n model.points = vtkPoints.newInstance();\n } else {\n model.points = vtk(model.points);\n }\n publicAPI.getNumberOfPoints = () => model.points.getNumberOfPoints();\n publicAPI.getBounds = () => model.points.getBounds();\n publicAPI.computeBounds = () => {\n publicAPI.getBounds();\n };\n const superShallowCopy = publicAPI.shallowCopy;\n publicAPI.shallowCopy = function (other) {\n let debug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n superShallowCopy(other, debug);\n model.points = vtkPoints.newInstance();\n model.points.shallowCopy(other.getPoints());\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n // points: null,\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Inheritance\n vtkDataSet.extend(publicAPI, model, initialValues);\n macro.setGet(publicAPI, model, ['points']);\n\n // Object specific methods\n vtkPointSet(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkPointSet');\n\n// ----------------------------------------------------------------------------\n\nvar vtkPointSet$1 = {\n newInstance,\n extend\n};\n\nexport { vtkPointSet$1 as default, extend, newInstance };\n","import { m as macro } from '../../macros2.js';\nimport vtkCell from './Cell.js';\nimport { d as dot, j as cross, l as normalize, m as multiplyAccumulate, e as distance2BetweenPoints, o as determinant2x2 } from '../Core/Math/index.js';\nimport vtkLine from './Line.js';\nimport vtkPlane from './Plane.js';\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\nfunction computeNormalDirection(v1, v2, v3, n) {\n // order is important!!! maintain consistency with triangle vertex order\n const ax = v3[0] - v2[0];\n const ay = v3[1] - v2[1];\n const az = v3[2] - v2[2];\n const bx = v1[0] - v2[0];\n const by = v1[1] - v2[1];\n const bz = v1[2] - v2[2];\n n[0] = ay * bz - az * by;\n n[1] = az * bx - ax * bz;\n n[2] = ax * by - ay * bx;\n}\nfunction computeNormal(v1, v2, v3, n) {\n computeNormalDirection(v1, v2, v3, n);\n const length = Math.sqrt(n[0] * n[0] + n[1] * n[1] + n[2] * n[2]);\n if (length !== 0.0) {\n n[0] /= length;\n n[1] /= length;\n n[2] /= length;\n }\n}\nfunction intersectWithTriangle(p1, q1, r1, p2, q2, r2) {\n let tolerance = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 1e-6;\n let coplanar = false;\n const pt1 = [];\n const pt2 = [];\n const surfaceId = [];\n const n1 = [];\n const n2 = [];\n\n // Compute supporting plane normals.\n computeNormal(p1, q1, r1, n1);\n computeNormal(p2, q2, r2, n2);\n const s1 = -dot(n1, p1);\n const s2 = -dot(n2, p2);\n\n // Compute signed distances of points p1, q1, r1 from supporting\n // plane of second triangle.\n const dist1 = [dot(n2, p1) + s2, dot(n2, q1) + s2, dot(n2, r1) + s2];\n\n // If signs of all points are the same, all the points lie on the\n // same side of the supporting plane, and we can exit early.\n if (dist1[0] * dist1[1] > tolerance && dist1[0] * dist1[2] > tolerance) {\n // vtkDebugMacro(<<\"Same side supporting plane 1!\");\n return {\n intersect: false,\n coplanar,\n pt1,\n pt2,\n surfaceId\n };\n }\n // Do the same for p2, q2, r2 and supporting plane of first\n // triangle.\n const dist2 = [dot(n1, p2) + s1, dot(n1, q2) + s1, dot(n1, r2) + s1];\n\n // If signs of all points are the same, all the points lie on the\n // same side of the supporting plane, and we can exit early.\n if (dist2[0] * dist2[1] > tolerance && dist2[0] * dist2[2] > tolerance) {\n // vtkDebugMacro(<<\"Same side supporting plane 2!\");\n return {\n intersect: false,\n coplanar,\n pt1,\n pt2,\n surfaceId\n };\n }\n // Check for coplanarity of the supporting planes.\n if (Math.abs(n1[0] - n2[0]) < 1e-9 && Math.abs(n1[1] - n2[1]) < 1e-9 && Math.abs(n1[2] - n2[2]) < 1e-9 && Math.abs(s1 - s2) < 1e-9) {\n coplanar = true;\n // vtkDebugMacro(<<\"Coplanar!\");\n return {\n intersect: false,\n coplanar,\n pt1,\n pt2,\n surfaceId\n };\n }\n\n // There are more efficient ways to find the intersection line (if\n // it exists), but this is clear enough.\n const pts1 = [p1, q1, r1];\n const pts2 = [p2, q2, r2];\n\n // Find line of intersection (L = p + t*v) between two planes.\n const n1n2 = dot(n1, n2);\n const a = (s1 - s2 * n1n2) / (n1n2 * n1n2 - 1.0);\n const b = (s2 - s1 * n1n2) / (n1n2 * n1n2 - 1.0);\n const p = [a * n1[0] + b * n2[0], a * n1[1] + b * n2[1], a * n1[2] + b * n2[2]];\n const v = cross(n1, n2, []);\n normalize(v);\n let index1 = 0;\n let index2 = 0;\n const t1 = [];\n const t2 = [];\n let ts1 = 50;\n let ts2 = 50;\n for (let i = 0; i < 3; i++) {\n const id1 = i;\n const id2 = (i + 1) % 3;\n\n // Find t coordinate on line of intersection between two planes.\n const val1 = vtkPlane.intersectWithLine(pts1[id1], pts1[id2], p2, n2);\n if (val1.intersection && val1.t > 0 - tolerance && val1.t < 1 + tolerance) {\n if (val1.t < 1 + tolerance && val1.t > 1 - tolerance) {\n ts1 = index1;\n }\n t1[index1++] = dot(val1.x, v) - dot(p, v);\n }\n const val2 = vtkPlane.intersectWithLine(pts2[id1], pts2[id2], p1, n1);\n if (val2.intersection && val2.t > 0 - tolerance && val2.t < 1 + tolerance) {\n if (val2.t < 1 + tolerance && val2.t > 1 - tolerance) {\n ts2 = index2;\n }\n t2[index2++] = dot(val2.x, v) - dot(p, v);\n }\n }\n\n // If the value of the index is greater than 2, the intersecting point\n // actually is intersected by all three edges. In this case, set the two\n // edges to the two edges where the intersecting point is not the end point\n if (index1 > 2) {\n index1--;\n // swap\n const t12 = t1[2];\n t1[2] = t1[ts1];\n t1[ts1] = t12;\n }\n if (index2 > 2) {\n index2--;\n const t22 = t2[2];\n t2[2] = t2[ts2];\n t2[ts2] = t22;\n }\n // Check if only one edge or all edges intersect the supporting\n // planes intersection.\n if (index1 !== 2 || index2 !== 2) {\n // vtkDebugMacro(<<\"Only one edge intersecting!\");\n return {\n intersect: false,\n coplanar,\n pt1,\n pt2,\n surfaceId\n };\n }\n\n // Check for NaNs\n if (Number.isNaN(t1[0]) || Number.isNaN(t1[1]) || Number.isNaN(t2[0]) || Number.isNaN(t2[1])) {\n // vtkWarningMacro(<<\"NaNs!\");\n return {\n intersect: false,\n coplanar,\n pt1,\n pt2,\n surfaceId\n };\n }\n if (t1[0] > t1[1]) {\n // swap\n const t11 = t1[1];\n t1[1] = t1[0];\n t1[0] = t11;\n }\n if (t2[0] > t2[1]) {\n // swap\n const t21 = t2[1];\n t2[1] = t2[0];\n t2[0] = t21;\n }\n // Handle the different interval configuration cases.\n let tt1;\n let tt2;\n if (t1[1] < t2[0] || t2[1] < t1[0]) {\n // vtkDebugMacro(<<\"No Overlap!\");\n return {\n intersect: false,\n coplanar,\n pt1,\n pt2,\n surfaceId\n }; // No overlap\n }\n\n if (t1[0] < t2[0]) {\n if (t1[1] < t2[1]) {\n // First point on surface 2, second point on surface 1\n surfaceId[0] = 2;\n surfaceId[1] = 1;\n tt1 = t2[0];\n tt2 = t1[1];\n } else {\n // Both points belong to lines on surface 2\n surfaceId[0] = 2;\n surfaceId[1] = 2;\n tt1 = t2[0];\n tt2 = t2[1];\n }\n } // t1[0] >= t2[0]\n else if (t1[1] < t2[1]) {\n // Both points belong to lines on surface 1\n surfaceId[0] = 1;\n surfaceId[1] = 1;\n tt1 = t1[0];\n tt2 = t1[1];\n } else {\n // First point on surface 1, second point on surface 2\n surfaceId[0] = 1;\n surfaceId[1] = 2;\n tt1 = t1[0];\n tt2 = t2[1];\n }\n\n // Create actual intersection points.\n multiplyAccumulate(p, v, tt1, pt1);\n multiplyAccumulate(p, v, tt2, pt2);\n return {\n intersect: true,\n coplanar,\n pt1,\n pt2,\n surfaceId\n };\n}\n\n// ----------------------------------------------------------------------------\n// Static API\n// ----------------------------------------------------------------------------\n\nconst STATIC = {\n computeNormalDirection,\n computeNormal,\n intersectWithTriangle\n};\n\n// ----------------------------------------------------------------------------\n// vtkTriangle methods\n// ----------------------------------------------------------------------------\n\nfunction vtkTriangle(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkTriangle');\n publicAPI.getCellDimension = () => 2;\n publicAPI.intersectWithLine = (p1, p2, tol, x, pcoords) => {\n const outObj = {\n subId: 0,\n t: Number.MAX_VALUE,\n intersect: 0,\n betweenPoints: false\n };\n pcoords[2] = 0.0;\n const closestPoint = [];\n const tol2 = tol * tol;\n\n // Get normal for triangle\n const pt1 = [];\n const pt2 = [];\n const pt3 = [];\n model.points.getPoint(0, pt1);\n model.points.getPoint(1, pt2);\n model.points.getPoint(2, pt3);\n const n = [];\n const weights = [];\n computeNormal(pt1, pt2, pt3, n);\n if (n[0] !== 0 || n[1] !== 0 || n[2] !== 0) {\n // Intersect plane of triangle with line\n const plane = vtkPlane.intersectWithLine(p1, p2, pt1, n);\n outObj.betweenPoints = plane.betweenPoints;\n outObj.t = plane.t;\n x[0] = plane.x[0];\n x[1] = plane.x[1];\n x[2] = plane.x[2];\n if (!plane.intersection) {\n pcoords[0] = 0.0;\n pcoords[1] = 0.0;\n outObj.intersect = 0;\n return outObj;\n }\n\n // Evaluate position\n const inside = publicAPI.evaluatePosition(x, closestPoint, pcoords, weights);\n if (inside.evaluation >= 0) {\n if (inside.dist2 <= tol2) {\n outObj.intersect = 1;\n return outObj;\n }\n outObj.intersect = inside.evaluation;\n return outObj;\n }\n }\n\n // Normals are null, so the triangle is degenerated and\n // we still need to check intersection between line and\n // the longest edge.\n const dist2Pt1Pt2 = distance2BetweenPoints(pt1, pt2);\n const dist2Pt2Pt3 = distance2BetweenPoints(pt2, pt3);\n const dist2Pt3Pt1 = distance2BetweenPoints(pt3, pt1);\n if (!model.line) {\n model.line = vtkLine.newInstance();\n }\n if (dist2Pt1Pt2 > dist2Pt2Pt3 && dist2Pt1Pt2 > dist2Pt3Pt1) {\n model.line.getPoints().setPoint(0, pt1);\n model.line.getPoints().setPoint(1, pt2);\n } else if (dist2Pt2Pt3 > dist2Pt3Pt1 && dist2Pt2Pt3 > dist2Pt1Pt2) {\n model.line.getPoints().setPoint(0, pt2);\n model.line.getPoints().setPoint(1, pt3);\n } else {\n model.line.getPoints().setPoint(0, pt3);\n model.line.getPoints().setPoint(1, pt1);\n }\n const intersectLine = model.line.intersectWithLine(p1, p2, tol, x, pcoords);\n outObj.betweenPoints = intersectLine.betweenPoints;\n outObj.t = intersectLine.t;\n if (intersectLine.intersect) {\n const pt3Pt1 = [];\n const pt3Pt2 = [];\n const pt3X = [];\n // Compute r and s manually, using dot and norm.\n for (let i = 0; i < 3; i++) {\n pt3Pt1[i] = pt1[i] - pt3[i];\n pt3Pt2[i] = pt2[i] - pt3[i];\n pt3X[i] = x[i] - pt3[i];\n }\n pcoords[0] = dot(pt3X, pt3Pt1) / dist2Pt3Pt1;\n pcoords[1] = dot(pt3X, pt3Pt2) / dist2Pt2Pt3;\n outObj.intersect = 1;\n return outObj;\n }\n pcoords[0] = 0.0;\n pcoords[1] = 0.0;\n outObj.intersect = 0;\n return outObj;\n };\n publicAPI.evaluatePosition = (x, closestPoint, pcoords, weights) => {\n // will return obj\n const outObj = {\n subId: 0,\n dist2: 0,\n evaluation: -1\n };\n let i;\n let j;\n const pt1 = [];\n const pt2 = [];\n const pt3 = [];\n const n = [];\n let fabsn;\n const rhs = [];\n const c1 = [];\n const c2 = [];\n let det = 0;\n let idx = 0;\n const indices = [];\n let dist2Point;\n let dist2Line1;\n let dist2Line2;\n let closest = [];\n const closestPoint1 = [];\n const closestPoint2 = [];\n const cp = [];\n outObj.subId = 0;\n pcoords[2] = 0.0;\n\n // Get normal for triangle, only the normal direction is needed, i.e. the\n // normal need not be normalized (unit length)\n //\n model.points.getPoint(1, pt1);\n model.points.getPoint(2, pt2);\n model.points.getPoint(0, pt3);\n computeNormalDirection(pt1, pt2, pt3, n);\n\n // Project point to plane\n vtkPlane.generalizedProjectPoint(x, pt1, n, cp);\n\n // Construct matrices. Since we have over determined system, need to find\n // which 2 out of 3 equations to use to develop equations. (Any 2 should\n // work since we've projected point to plane.)\n let maxComponent = 0.0;\n for (i = 0; i < 3; i++) {\n // trying to avoid an expensive call to fabs()\n if (n[i] < 0) {\n fabsn = -n[i];\n } else {\n fabsn = n[i];\n }\n if (fabsn > maxComponent) {\n maxComponent = fabsn;\n idx = i;\n }\n }\n for (j = 0, i = 0; i < 3; i++) {\n if (i !== idx) {\n indices[j++] = i;\n }\n }\n for (i = 0; i < 2; i++) {\n rhs[i] = cp[indices[i]] - pt3[indices[i]];\n c1[i] = pt1[indices[i]] - pt3[indices[i]];\n c2[i] = pt2[indices[i]] - pt3[indices[i]];\n }\n det = determinant2x2(c1, c2);\n if (det === 0.0) {\n pcoords[0] = 0.0;\n pcoords[1] = 0.0;\n outObj.evaluation = -1;\n return outObj;\n }\n pcoords[0] = determinant2x2(rhs, c2) / det;\n pcoords[1] = determinant2x2(c1, rhs) / det;\n\n // Okay, now find closest point to element\n weights[0] = 1 - (pcoords[0] + pcoords[1]);\n weights[1] = pcoords[0];\n weights[2] = pcoords[1];\n if (weights[0] >= 0.0 && weights[0] <= 1.0 && weights[1] >= 0.0 && weights[1] <= 1.0 && weights[2] >= 0.0 && weights[2] <= 1.0) {\n // projection distance\n if (closestPoint) {\n outObj.dist2 = distance2BetweenPoints(cp, x);\n closestPoint[0] = cp[0];\n closestPoint[1] = cp[1];\n closestPoint[2] = cp[2];\n }\n outObj.evaluation = 1;\n } else {\n let t;\n if (closestPoint) {\n if (weights[1] < 0.0 && weights[2] < 0.0) {\n dist2Point = distance2BetweenPoints(x, pt3);\n dist2Line1 = vtkLine.distanceToLine(x, pt1, pt3, t, closestPoint1);\n dist2Line2 = vtkLine.distanceToLine(x, pt3, pt2, t, closestPoint2);\n if (dist2Point < dist2Line1) {\n outObj.dist2 = dist2Point;\n closest = pt3;\n } else {\n outObj.dist2 = dist2Line1;\n closest = closestPoint1;\n }\n if (dist2Line2 < outObj.dist2) {\n outObj.dist2 = dist2Line2;\n closest = closestPoint2;\n }\n for (i = 0; i < 3; i++) {\n closestPoint[i] = closest[i];\n }\n } else if (weights[2] < 0.0 && weights[0] < 0.0) {\n dist2Point = distance2BetweenPoints(x, pt1);\n dist2Line1 = vtkLine.distanceToLine(x, pt1, pt3, t, closestPoint1);\n dist2Line2 = vtkLine.distanceToLine(x, pt1, pt2, t, closestPoint2);\n if (dist2Point < dist2Line1) {\n outObj.dist2 = dist2Point;\n closest = pt1;\n } else {\n outObj.dist2 = dist2Line1;\n closest = closestPoint1;\n }\n if (dist2Line2 < outObj.dist2) {\n outObj.dist2 = dist2Line2;\n closest = closestPoint2;\n }\n for (i = 0; i < 3; i++) {\n closestPoint[i] = closest[i];\n }\n } else if (weights[1] < 0.0 && weights[0] < 0.0) {\n dist2Point = distance2BetweenPoints(x, pt2);\n dist2Line1 = vtkLine.distanceToLine(x, pt2, pt3, t, closestPoint1);\n dist2Line2 = vtkLine.distanceToLine(x, pt1, pt2, t, closestPoint2);\n if (dist2Point < dist2Line1) {\n outObj.dist2 = dist2Point;\n closest = pt2;\n } else {\n outObj.dist2 = dist2Line1;\n closest = closestPoint1;\n }\n if (dist2Line2 < outObj.dist2) {\n outObj.dist2 = dist2Line2;\n closest = closestPoint2;\n }\n for (i = 0; i < 3; i++) {\n closestPoint[i] = closest[i];\n }\n } else if (weights[0] < 0.0) {\n const lineDistance = vtkLine.distanceToLine(x, pt1, pt2, closestPoint);\n outObj.dist2 = lineDistance.distance;\n } else if (weights[1] < 0.0) {\n const lineDistance = vtkLine.distanceToLine(x, pt2, pt3, closestPoint);\n outObj.dist2 = lineDistance.distance;\n } else if (weights[2] < 0.0) {\n const lineDistance = vtkLine.distanceToLine(x, pt1, pt3, closestPoint);\n outObj.dist2 = lineDistance.distance;\n }\n }\n outObj.evaluation = 0;\n }\n return outObj;\n };\n publicAPI.evaluateLocation = (pcoords, x, weights) => {\n const p0 = [];\n const p1 = [];\n const p2 = [];\n model.points.getPoint(0, p0);\n model.points.getPoint(1, p1);\n model.points.getPoint(2, p2);\n const u3 = 1.0 - pcoords[0] - pcoords[1];\n for (let i = 0; i < 3; i++) {\n x[i] = p0[i] * u3 + p1[i] * pcoords[0] + p2[i] * pcoords[1];\n }\n weights[0] = u3;\n weights[1] = pcoords[0];\n weights[2] = pcoords[1];\n };\n publicAPI.getParametricDistance = pcoords => {\n let pDist;\n let pDistMax = 0.0;\n const pc = [];\n pc[0] = pcoords[0];\n pc[1] = pcoords[1];\n pc[2] = 1.0 - pcoords[0] - pcoords[1];\n for (let i = 0; i < 3; i++) {\n if (pc[i] < 0.0) {\n pDist = -pc[i];\n } else if (pc[i] > 1.0) {\n pDist = pc[i] - 1.0;\n } else {\n // inside the cell in the parametric direction\n pDist = 0.0;\n }\n if (pDist > pDistMax) {\n pDistMax = pDist;\n }\n }\n return pDistMax;\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n vtkCell.extend(publicAPI, model, initialValues);\n vtkTriangle(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkTriangle');\n\n// ----------------------------------------------------------------------------\n\nvar vtkTriangle$1 = {\n newInstance,\n extend,\n ...STATIC\n};\n\nexport { STATIC, vtkTriangle$1 as default, extend, newInstance };\n","const POLYDATA_FIELDS = ['verts', 'lines', 'polys', 'strips'];\nvar Constants = {\n POLYDATA_FIELDS\n};\n\nexport { POLYDATA_FIELDS, Constants as default };\n","import { m as macro } from '../../macros2.js';\nimport vtk from '../../vtk.js';\nimport vtkCellArray from '../Core/CellArray.js';\nimport vtkCellLinks from './CellLinks.js';\nimport vtkCellTypes from './CellTypes.js';\nimport vtkLine from './Line.js';\nimport vtkPointSet from './PointSet.js';\nimport vtkTriangle from './Triangle.js';\nimport { CellType } from './CellTypes/Constants.js';\nimport { POLYDATA_FIELDS } from './PolyData/Constants.js';\n\nconst {\n vtkWarningMacro\n} = macro;\nconst CELL_FACTORY = {\n [CellType.VTK_LINE]: vtkLine,\n [CellType.VTK_POLY_LINE]: vtkLine,\n [CellType.VTK_TRIANGLE]: vtkTriangle\n};\n\n// ----------------------------------------------------------------------------\n// vtkPolyData methods\n// ----------------------------------------------------------------------------\n\nfunction vtkPolyData(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkPolyData');\n function camelize(str) {\n return str.replace(/(?:^\\w|[A-Z]|\\b\\w)/g, letter => letter.toUpperCase()).replace(/\\s+/g, '');\n }\n\n // build empty cell arrays and set methods\n POLYDATA_FIELDS.forEach(type => {\n publicAPI[`getNumberOf${camelize(type)}`] = () => model[type].getNumberOfCells();\n if (!model[type]) {\n model[type] = vtkCellArray.newInstance();\n } else {\n model[type] = vtk(model[type]);\n }\n });\n publicAPI.getNumberOfCells = () => POLYDATA_FIELDS.reduce((num, cellType) => num + model[cellType].getNumberOfCells(), 0);\n const superShallowCopy = publicAPI.shallowCopy;\n publicAPI.shallowCopy = function (other) {\n let debug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n superShallowCopy(other, debug);\n POLYDATA_FIELDS.forEach(type => {\n model[type] = vtkCellArray.newInstance();\n model[type].shallowCopy(other.getReferenceByName(type));\n });\n };\n publicAPI.buildCells = () => {\n // here are the number of cells we have\n const nVerts = publicAPI.getNumberOfVerts();\n const nLines = publicAPI.getNumberOfLines();\n const nPolys = publicAPI.getNumberOfPolys();\n const nStrips = publicAPI.getNumberOfStrips();\n\n // pre-allocate the space we need\n const nCells = nVerts + nLines + nPolys + nStrips;\n const types = new Uint8Array(nCells);\n let pTypes = types;\n const locs = new Uint32Array(nCells);\n let pLocs = locs;\n\n // record locations and type of each cell.\n // verts\n if (nVerts) {\n let nextCellPts = 0;\n model.verts.getCellSizes().forEach((numCellPts, index) => {\n pLocs[index] = nextCellPts;\n pTypes[index] = numCellPts > 1 ? CellType.VTK_POLY_VERTEX : CellType.VTK_VERTEX;\n nextCellPts += numCellPts + 1;\n });\n pLocs = pLocs.subarray(nVerts);\n pTypes = pTypes.subarray(nVerts);\n }\n\n // lines\n if (nLines) {\n let nextCellPts = 0;\n model.lines.getCellSizes().forEach((numCellPts, index) => {\n pLocs[index] = nextCellPts;\n pTypes[index] = numCellPts > 2 ? CellType.VTK_POLY_LINE : CellType.VTK_LINE;\n if (numCellPts === 1) {\n vtkWarningMacro('Building VTK_LINE ', index, ' with only one point, but VTK_LINE needs at least two points. Check the input.');\n }\n nextCellPts += numCellPts + 1;\n });\n pLocs = pLocs.subarray(nLines);\n pTypes = pTypes.subarray(nLines);\n }\n\n // polys\n if (nPolys) {\n let nextCellPts = 0;\n model.polys.getCellSizes().forEach((numCellPts, index) => {\n pLocs[index] = nextCellPts;\n switch (numCellPts) {\n case 3:\n pTypes[index] = CellType.VTK_TRIANGLE;\n break;\n case 4:\n pTypes[index] = CellType.VTK_QUAD;\n break;\n default:\n pTypes[index] = CellType.VTK_POLYGON;\n break;\n }\n if (numCellPts < 3) {\n vtkWarningMacro('Building VTK_TRIANGLE ', index, ' with less than three points, but VTK_TRIANGLE needs at least three points. Check the input.');\n }\n nextCellPts += numCellPts + 1;\n });\n pLocs += pLocs.subarray(nPolys);\n pTypes += pTypes.subarray(nPolys);\n }\n\n // strips\n if (nStrips) {\n let nextCellPts = 0;\n pTypes.fill(CellType.VTK_TRIANGLE_STRIP, 0, nStrips);\n model.strips.getCellSizes().forEach((numCellPts, index) => {\n pLocs[index] = nextCellPts;\n nextCellPts += numCellPts + 1;\n });\n }\n\n // set up the cell types data structure\n model.cells = vtkCellTypes.newInstance();\n model.cells.setCellTypes(nCells, types, locs);\n };\n\n /**\n * Create upward links from points to cells that use each point. Enables\n * topologically complex queries.\n */\n publicAPI.buildLinks = function () {\n let initialSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n if (model.cells === undefined) {\n publicAPI.buildCells();\n }\n model.links = vtkCellLinks.newInstance();\n if (initialSize > 0) {\n model.links.allocate(initialSize);\n } else {\n model.links.allocate(publicAPI.getPoints().getNumberOfPoints());\n }\n model.links.buildLinks(publicAPI);\n };\n publicAPI.getCellType = cellId => model.cells.getCellType(cellId);\n publicAPI.getCellPoints = cellId => {\n const cellType = publicAPI.getCellType(cellId);\n let cells = null;\n switch (cellType) {\n case CellType.VTK_VERTEX:\n case CellType.VTK_POLY_VERTEX:\n cells = model.verts;\n break;\n case CellType.VTK_LINE:\n case CellType.VTK_POLY_LINE:\n cells = model.lines;\n break;\n case CellType.VTK_TRIANGLE:\n case CellType.VTK_QUAD:\n case CellType.VTK_POLYGON:\n cells = model.polys;\n break;\n case CellType.VTK_TRIANGLE_STRIP:\n cells = model.strips;\n break;\n default:\n cells = null;\n return {\n type: 0,\n cellPointIds: null\n };\n }\n const loc = model.cells.getCellLocation(cellId);\n const cellPointIds = cells.getCell(loc);\n return {\n cellType,\n cellPointIds\n };\n };\n publicAPI.getPointCells = ptId => model.links.getCells(ptId);\n publicAPI.getCellEdgeNeighbors = (cellId, point1, point2) => {\n const link1 = model.links.getLink(point1);\n const link2 = model.links.getLink(point2);\n return link1.cells.filter(cell => cell !== cellId && link2.cells.indexOf(cell) !== -1);\n };\n\n /**\n * If you know the type of cell, you may provide it to improve performances.\n */\n publicAPI.getCell = function (cellId) {\n let cellHint = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n const cellInfo = publicAPI.getCellPoints(cellId);\n const cell = cellHint || CELL_FACTORY[cellInfo.cellType].newInstance();\n cell.initialize(publicAPI.getPoints(), cellInfo.cellPointIds);\n return cell;\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n // verts: null,\n // lines: null,\n // polys: null,\n // strips: null,\n // cells: null,\n // links: null,\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Inheritance\n vtkPointSet.extend(publicAPI, model, initialValues);\n macro.get(publicAPI, model, ['cells', 'links']);\n macro.setGet(publicAPI, model, ['verts', 'lines', 'polys', 'strips']);\n\n // Object specific methods\n vtkPolyData(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkPolyData');\n\n// ----------------------------------------------------------------------------\n\nvar vtkPolyData$1 = {\n newInstance,\n extend\n};\n\nexport { CELL_FACTORY, vtkPolyData$1 as default, extend, newInstance };\n","import { m as macro } from '../../macros2.js';\nimport vtkPolyData from '../../Common/DataModel/PolyData.js';\nimport vtkDataArray from '../../Common/Core/DataArray.js';\n\n// ----------------------------------------------------------------------------\n// vtkSphereSource methods\n// ----------------------------------------------------------------------------\n\nfunction vtkSphereSource(publicAPI, model) {\n // Set our className\n model.classHierarchy.push('vtkSphereSource');\n publicAPI.requestData = (inData, outData) => {\n if (model.deleted) {\n return;\n }\n let dataset = outData[0];\n const pointDataType = dataset ? dataset.getPoints().getDataType() : model.pointType;\n dataset = vtkPolyData.newInstance();\n\n // ----------------------------------------------------------------------\n let numPoles = 0;\n\n // Check data, determine increments, and convert to radians\n let {\n thetaResolution\n } = model;\n let startTheta = model.startTheta < model.endTheta ? model.startTheta : model.endTheta;\n startTheta *= Math.PI / 180.0;\n let endTheta = model.endTheta > model.startTheta ? model.endTheta : model.startTheta;\n endTheta *= Math.PI / 180.0;\n let startPhi = model.startPhi < model.endPhi ? model.startPhi : model.endPhi;\n startPhi *= Math.PI / 180.0;\n let endPhi = model.endPhi > model.startPhi ? model.endPhi : model.startPhi;\n endPhi *= Math.PI / 180.0;\n if (Math.abs(startTheta - endTheta) < 2.0 * Math.PI) {\n ++thetaResolution;\n }\n const deltaTheta = (endTheta - startTheta) / model.thetaResolution;\n const jStart = model.startPhi <= 0.0 ? 1 : 0;\n const jEnd = model.phiResolution + (model.endPhi >= 180.0 ? -1 : 0);\n const numPts = model.phiResolution * thetaResolution + 2;\n const numPolys = model.phiResolution * 2 * model.thetaResolution;\n\n // Points\n let pointIdx = 0;\n let points = macro.newTypedArray(pointDataType, numPts * 3);\n\n // Normals\n let normals = new Float32Array(numPts * 3);\n\n // Cells\n let cellLocation = 0;\n let polys = new Uint32Array(numPolys * 5);\n\n // Create north pole if needed\n if (model.startPhi <= 0.0) {\n points[pointIdx * 3 + 0] = model.center[0];\n points[pointIdx * 3 + 1] = model.center[1];\n points[pointIdx * 3 + 2] = model.center[2] + model.radius;\n normals[pointIdx * 3 + 0] = 0;\n normals[pointIdx * 3 + 1] = 0;\n normals[pointIdx * 3 + 2] = 1;\n pointIdx++;\n numPoles++;\n }\n\n // Create south pole if needed\n if (model.endPhi >= 180.0) {\n points[pointIdx * 3 + 0] = model.center[0];\n points[pointIdx * 3 + 1] = model.center[1];\n points[pointIdx * 3 + 2] = model.center[2] - model.radius;\n normals[pointIdx * 3 + 0] = 0;\n normals[pointIdx * 3 + 1] = 0;\n normals[pointIdx * 3 + 2] = -1;\n pointIdx++;\n numPoles++;\n }\n const phiResolution = model.phiResolution - numPoles;\n const deltaPhi = (endPhi - startPhi) / (model.phiResolution - 1);\n\n // Create intermediate points\n for (let i = 0; i < thetaResolution; i++) {\n const theta = startTheta + i * deltaTheta;\n for (let j = jStart; j < jEnd; j++) {\n const phi = startPhi + j * deltaPhi;\n const radius = model.radius * Math.sin(phi);\n normals[pointIdx * 3 + 0] = radius * Math.cos(theta);\n normals[pointIdx * 3 + 1] = radius * Math.sin(theta);\n normals[pointIdx * 3 + 2] = model.radius * Math.cos(phi);\n points[pointIdx * 3 + 0] = normals[pointIdx * 3 + 0] + model.center[0];\n points[pointIdx * 3 + 1] = normals[pointIdx * 3 + 1] + model.center[1];\n points[pointIdx * 3 + 2] = normals[pointIdx * 3 + 2] + model.center[2];\n let norm = Math.sqrt(normals[pointIdx * 3 + 0] * normals[pointIdx * 3 + 0] + normals[pointIdx * 3 + 1] * normals[pointIdx * 3 + 1] + normals[pointIdx * 3 + 2] * normals[pointIdx * 3 + 2]);\n norm = norm === 0 ? 1 : norm;\n normals[pointIdx * 3 + 0] /= norm;\n normals[pointIdx * 3 + 1] /= norm;\n normals[pointIdx * 3 + 2] /= norm;\n pointIdx++;\n }\n }\n\n // Generate mesh connectivity\n const base = phiResolution * thetaResolution;\n if (Math.abs(startTheta - endTheta) < 2.0 * Math.PI) {\n --thetaResolution;\n }\n\n // around north pole\n if (model.startPhi <= 0.0) {\n for (let i = 0; i < thetaResolution; i++) {\n polys[cellLocation++] = 3;\n polys[cellLocation++] = phiResolution * i + numPoles;\n polys[cellLocation++] = phiResolution * (i + 1) % base + numPoles;\n polys[cellLocation++] = 0;\n }\n }\n\n // around south pole\n if (model.endPhi >= 180.0) {\n const numOffset = phiResolution - 1 + numPoles;\n for (let i = 0; i < thetaResolution; i++) {\n polys[cellLocation++] = 3;\n polys[cellLocation++] = phiResolution * i + numOffset;\n polys[cellLocation++] = numPoles - 1;\n polys[cellLocation++] = phiResolution * (i + 1) % base + numOffset;\n }\n }\n\n // bands in-between poles\n for (let i = 0; i < thetaResolution; i++) {\n for (let j = 0; j < phiResolution - 1; j++) {\n const a = phiResolution * i + j + numPoles;\n const b = a + 1;\n const c = (phiResolution * (i + 1) + j) % base + numPoles + 1;\n if (!model.latLongTessellation) {\n polys[cellLocation++] = 3;\n polys[cellLocation++] = a;\n polys[cellLocation++] = b;\n polys[cellLocation++] = c;\n polys[cellLocation++] = 3;\n polys[cellLocation++] = a;\n polys[cellLocation++] = c;\n polys[cellLocation++] = c - 1;\n } else {\n polys[cellLocation++] = 4;\n polys[cellLocation++] = a;\n polys[cellLocation++] = b;\n polys[cellLocation++] = c;\n polys[cellLocation++] = c - 1;\n }\n }\n }\n\n // Squeeze\n points = points.subarray(0, pointIdx * 3);\n dataset.getPoints().setData(points, 3);\n normals = normals.subarray(0, pointIdx * 3);\n const normalArray = vtkDataArray.newInstance({\n name: 'Normals',\n values: normals,\n numberOfComponents: 3\n });\n dataset.getPointData().setNormals(normalArray);\n polys = polys.subarray(0, cellLocation);\n dataset.getPolys().setData(polys, 1);\n\n // Update output\n outData[0] = dataset;\n };\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n radius: 0.5,\n latLongTessellation: false,\n thetaResolution: 8,\n startTheta: 0.0,\n endTheta: 360.0,\n phiResolution: 8,\n startPhi: 0.0,\n endPhi: 180.0,\n center: [0, 0, 0],\n pointType: 'Float64Array'\n};\n\n// ----------------------------------------------------------------------------\n\nfunction extend(publicAPI, model) {\n let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.assign(model, DEFAULT_VALUES, initialValues);\n\n // Build VTK API\n macro.obj(publicAPI, model);\n macro.setGet(publicAPI, model, ['radius', 'latLongTessellation', 'thetaResolution', 'startTheta', 'endTheta', 'phiResolution', 'startPhi', 'endPhi']);\n macro.setGetArray(publicAPI, model, ['center'], 3);\n macro.algo(publicAPI, model, 0, 1);\n vtkSphereSource(publicAPI, model);\n}\n\n// ----------------------------------------------------------------------------\n\nconst newInstance = macro.newInstance(extend, 'vtkSphereSource');\n\n// ----------------------------------------------------------------------------\n\nvar vtkSphereSource$1 = {\n newInstance,\n extend\n};\n\nexport { vtkSphereSource$1 as default, extend, newInstance };\n","export const showconsole = (message) => {\r\n\r\n const show = process.env.VUE_APP_CONSOLE\r\n\r\n if(show == 'show') {\r\n console.log(message)\r\n } \r\n\r\n} \r\n\r\n\r\nexport const toRawObject = (proxy) => {\r\n if (typeof structuredClone === 'function') {\r\n return structuredClone(proxy);\r\n }\r\n return JSON.parse(JSON.stringify(proxy));\r\n}","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-83.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-83.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./index.vue?vue&type=script&lang=js\"","// extracted by mini-css-extract-plugin\nexport {};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-65.use[0]!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-65.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[2]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65.use[3]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./index.vue?vue&type=style&index=0&id=cbefda6e&lang=scss&scoped=true\"","import { render } from \"./index.vue?vue&type=template&id=cbefda6e&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=cbefda6e&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-cbefda6e\"]])\n\nexport default __exports__","<template>\r\n <div class=\"mix-dicom-viewer column\" ref=\"rootElement\">\r\n <div class=\"header-tool row\">\r\n <!-- dicom、stl -->\r\n <div class=\"main-tool row\">\r\n <div @click=\"toolSel(1000)\" :class=\"['tool-item', 'center', 'tool-item-activate']\">\r\n <i :class=\"['iconfont', mprLayoutFlagIcons.find(item => item.key === mprLayoutFlag)?.value]\"></i>\r\n </div>\r\n </div>\r\n <!-- stl -->\r\n <div class=\"main-tool row\" v-if=\"mprLayoutFlag == -1 || mprLayoutFlag == 3\">\r\n <div @click=\"toolSel(50)\" :class=\"['tool-item', 'center', 'tool-item-activate']\">\r\n <i class=\"iconfont icon-reset\"></i>\r\n </div>\r\n <div @click=\"toolSel(51)\" :class=\"['tool-item', 'center', 'tool-item-activate']\">\r\n <i :class=\"['iconfont', rotationTimer?'icon-zanting':'icon-24gf-play']\"></i>\r\n </div>\r\n <div @click=\"toolSel(52)\" :class=\"['tool-item', 'center', 'tool-item-activate']\">\r\n <i :class=\"['iconfont', 'icon-dengpao']\"></i>\r\n </div>\r\n <div @click=\"toolSel(53)\" :class=\"['tool-item', 'center', 'tool-item-activate']\">\r\n <i :class=\"['iconfont', 'icon-a-zu631']\"></i>\r\n </div>\r\n <div @click=\"toolSel(54)\" :class=\"['tool-item', 'center', 'tool-item-activate']\">\r\n <i :class=\"['iconfont', stlAllShowFlag?'icon-faxian-yanjing':'icon-guanbi-yanjing']\"></i>\r\n </div>\r\n </div>\r\n <!-- dicom -->\r\n <div class=\"main-tool row\" v-if=\"mprLayoutFlag == 0 || mprLayoutFlag == 1 || mprLayoutFlag == 2 || mprLayoutFlag == 3\">\r\n <div @click=\"toolSel(1)\" :class=\"['tool-item', 'center', 'tool-item-activate']\">\r\n <i class=\"iconfont icon-select-tb\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"dicom-bottom\">\r\n <div class=\"dicom-canvas row\" :style=\"{height: dicombottomHeight+'PX'}\">\r\n <div oncontextmenu=\"return false\" @touchstart=\"mprLayoutSel(-1)\" @mousedown=\"mprLayoutSel(-1)\"\r\n :class=\"['canvas-relative', mprLayoutFlag == -1 ? 'canvas-outer-single' : mprLayoutFlag == 3 ? 'canvas-d3-outer' : '', mprLayoutSelndex == -1 ? 'canvas-item-sel' : '']\"\r\n v-show=\"mprLayoutFlag == 3 || mprLayoutFlag == -1\">\r\n <div ref=\"d3Element\" class=\"canvas-inner\"></div>\r\n <div class=\"viewport3D cloumn\" v-if=\"patientFlag\">\r\n <div>医院: {{ patient?.HospitalName || '' }}</div>\r\n <div>科室: {{ patient?.Division || '' }}</div>\r\n <div>姓名: {{ patient?.PatientName || '' }}</div>\r\n </div>\r\n <div class=\"view-data-manager\">\r\n <data-manager-viewer :dataManager=\"dataManager\" @stlopacity=\"stlopacity\"></data-manager-viewer>\r\n </div>\r\n </div>\r\n \r\n <div oncontextmenu=\"return false\" @touchstart=\"mprLayoutSel(0)\" @mousedown=\"mprLayoutSel(0)\"\r\n :class=\"['canvas-relative', mprLayoutFlag == 0 ? 'canvas-outer-single' : mprLayoutFlag == 3 ? 'canvas-axial-outer' : '', mprLayoutSelndex == 0 ? 'canvas-item-sel' : '']\"\r\n v-show=\"mprLayoutFlag == 3 || mprLayoutFlag == 0\">\r\n <div ref=\"axialElement\" class=\"canvas-inner\"></div>\r\n <div class=\"viewport cloumn\">\r\n <div>WL: {{ viewportInfo[viewportId1].voi.windowWidth.toFixed(2) }}/{{\r\n viewportInfo[viewportId1].voi.windowCenter.toFixed(2) }}</div>\r\n <div>Zoom: {{ viewportInfo[viewportId1].zoom.toFixed(2) }}</div>\r\n <div>Im: {{ viewportInfo[viewportId1].imageIndex + 1 }}/{{ viewportInfo[viewportId1].numberOfSlices}}</div>\r\n </div>\r\n </div>\r\n\r\n <div oncontextmenu=\"return false\" @touchstart=\"mprLayoutSel(1)\" @mousedown=\"mprLayoutSel(1)\"\r\n :class=\"['canvas-relative', mprLayoutFlag == 1 ? 'canvas-outer-single' : mprLayoutFlag == 3 ? 'canvas-coronal-outer' : '', mprLayoutSelndex == 1 ? 'canvas-item-sel' : '']\"\r\n v-show=\"mprLayoutFlag == 3 || mprLayoutFlag == 1\">\r\n <div ref=\"coronalElement\" class=\"canvas-inner\"></div>\r\n <div class=\"viewport cloumn\">\r\n <div>WL: {{ viewportInfo[viewportId2].voi.windowWidth.toFixed(2) }}/{{\r\n viewportInfo[viewportId2].voi.windowCenter.toFixed(2) }}</div>\r\n <div>Zoom: {{ viewportInfo[viewportId2].zoom.toFixed(2) }}</div>\r\n <div>Im: {{ viewportInfo[viewportId2].imageIndex + 1 }}/{{ viewportInfo[viewportId2].numberOfSlices}}</div>\r\n </div>\r\n </div>\r\n\r\n <div oncontextmenu=\"return false\" @touchstart=\"mprLayoutSel(2)\" @mousedown=\"mprLayoutSel(2)\"\r\n :class=\"['canvas-relative', mprLayoutFlag == 2 ? 'canvas-outer-single' : mprLayoutFlag == 3 ? 'canvas-sagittal-outer' : '', mprLayoutSelndex == 2 ? 'canvas-item-sel' : '']\"\r\n v-show=\"mprLayoutFlag == 3 || mprLayoutFlag == 2\">\r\n <div ref=\"sagittalElement\" class=\"canvas-inner\"></div>\r\n <div class=\"viewport cloumn\">\r\n <div>WL: {{ viewportInfo[viewportId3].voi.windowWidth.toFixed(2) }}/{{\r\n viewportInfo[viewportId3].voi.windowCenter.toFixed(2) }}</div>\r\n <div>Zoom: {{ viewportInfo[viewportId3].zoom.toFixed(2) }}</div>\r\n <div>Im: {{ viewportInfo[viewportId3].imageIndex + 1 }}/{{ viewportInfo[viewportId3].numberOfSlices}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { onMounted, onUnmounted, watch, computed, ref, reactive, nextTick } from 'vue';\r\nimport initDemo from '../cornerstone/initDemo';\r\nimport setCtTransferFunctionForVolumeActor from '../cornerstone/setCtTransferFunctionForVolumeActor';\r\nimport { showconsole } from '@/common/js/util';\r\nimport { Toast } from 'vant';\r\nimport * as cornerstoneTools from '@cornerstonejs/tools';\r\nconst { destroy, ToolGroupManager, Enums: csToolsEnums, SegmentationIntersectionTool, TrackballRotateTool, CrosshairsTool, WindowLevelTool,\r\n StackScrollTool, PanTool, ZoomTool, LengthTool, AngleTool, ProbeTool } = cornerstoneTools;\r\nimport { cache, eventTarget, requestPoolManager, geometryLoader, CONSTANTS,\r\n Enums, volumeLoader, RenderingEngine, setVolumesForViewports, utilities } from '@cornerstonejs/core';\r\nconst { MouseBindings } = csToolsEnums;\r\nconst { ViewportType, OrientationAxis } = Enums;\r\nconst { IMAGE_VOLUME_MODIFIED, CAMERA_MODIFIED, VOLUME_NEW_IMAGE, VOI_MODIFIED, GEOMETRY_LOAD_PROGRESS } = Enums.Events;\r\nimport DataManagerViewer from './data-manager-viewer.vue';\r\nexport default {\r\n components: { \r\n DataManagerViewer\r\n },\r\n props: {\r\n patient: {\r\n type: Object,\r\n default: () => {}\r\n },\r\n imageIds: {\r\n type: Array,\r\n default: () => []\r\n },\r\n stlDatas: {\r\n type: Array,\r\n default: () => []\r\n },\r\n dataManager: {\r\n type: Array,\r\n default: () => []\r\n },\r\n rotationSpeed: {\r\n type: Number,\r\n default: 0.05\r\n },\r\n d3stlBJ: {\r\n type: Array,\r\n default: () => [\r\n { text: '浅灰色', value: \"#CECECE\" },\r\n { text: '深灰色', value: \"#5F5F5F\" },\r\n { text: '黑色', value: \"#323232\" },\r\n { text: '白色', value: \"#E3E3E3\" }\r\n ]\r\n }\r\n },\r\n setup(props, context) {\r\n const viewportId1 = 'CT_AXIAL'\r\n const viewportId2 = 'CT_CORONAL'\r\n const viewportId3 = 'CT_SAGITTAL'\r\n const viewportIdD3 = 'CT_3d'\r\n const volumeId = 'cornerstoneStreamingImageVolume:CT_VOLUME_ID'\r\n let renderingEngine = reactive({})\r\n const rootElement = ref()\r\n const axialElement = ref()\r\n const coronalElement = ref()\r\n const d3Element = ref()\r\n const sagittalElement = ref()\r\n let toolGroup = reactive();\r\n let toolGroup3d = reactive();\r\n let initial3DCamera = reactive()\r\n let patientFlag = ref(false)\r\n let stlAllShowFlag = ref(true)\r\n let geometryIds = new Set()\r\n\r\n const viewportInfo = reactive({\r\n [viewportId1]: { imageIndex: 0, numberOfSlices: 0, voi: { windowWidth: 0, windowCenter: 0 }, zoom: 1 },\r\n [viewportId2]: { imageIndex: 0, numberOfSlices: 0, voi: { windowWidth: 0, windowCenter: 0 }, zoom: 1 },\r\n [viewportId3]: { imageIndex: 0, numberOfSlices: 0, voi: { windowWidth: 0, windowCenter: 0 }, zoom: 1 },\r\n })\r\n let defaultRange = ref(null) // 默认窗宽窗位\r\n\r\n let mprLayoutSelndex = ref(0)\r\n let mprLayoutFlag = ref(-1)\r\n let initDemoFlag = ref(false) // 是否初始化demo \r\n let initDcmDataFlag = ref(false) // 获取到初始化数据\r\n let initStlDataFlag = ref(false)\r\n\r\n let toolIndex = ref(0) // 工具栏选中index\r\n\r\n const dicombottomHeight = computed(() => {\r\n if (!rootElement.value) {\r\n return\r\n }\r\n const tmp = rootElement.value.clientHeight - 50;\r\n showconsole(`dicombottomheight:${tmp}`)\r\n return tmp;\r\n })\r\n\r\n watch(() => props.imageIds,\r\n async (newValue) => {\r\n // await showdcmrenderer(newValue)\r\n }, { deep: true })\r\n\r\n watch(() => props.stlDatas,\r\n (newValue) => {\r\n showmeshrenderer(newValue)\r\n }, { deep: true })\r\n\r\n onMounted(async() => {\r\n showconsole('onMounted...')\r\n\r\n addComponentTool()\r\n\r\n await showcornerstone()\r\n\r\n await showmeshrenderer(props.stlDatas)\r\n\r\n // await showdcmrenderer(props.imageIds)\r\n })\r\n\r\n const toolSel = async(index) => {\r\n showconsole(`点击toolSel:${index}`)\r\n if (!initDemoFlag.value || !initial3DCamera) {\r\n Toast('正在加载模型数据, 请稍候...')\r\n return\r\n }\r\n switch(index) {\r\n case 1: // 翻页 \r\n passiveTools()\r\n toolIndex.value = 1\r\n toolGroup.setToolActive(StackScrollTool.toolName, {\r\n bindings: [\r\n { mouseButton: MouseBindings.Primary },\r\n { mouseButton: MouseBindings.Wheel }\r\n ],\r\n })\r\n break\r\n case 50:\r\n reset3DViewport()\r\n break \r\n case 51:\r\n toggleRotation()\r\n break\r\n case 52:\r\n const nextStlBg = getNextStl()\r\n const color = hex2Rgb(nextStlBg.value)\r\n setStlViewportBg(color)\r\n rootElement.value.style.background = nextStlBg.value\r\n break \r\n case 53:\r\n patientFlag.value = !patientFlag.value\r\n break \r\n case 54:\r\n stlAllShowFlag.value = !stlAllShowFlag.value\r\n stlAllShow()\r\n break \r\n case 1000:\r\n await showdcmrenderer(props.imageIds)\r\n nextMprLayoutFlag()\r\n resizeCanvas()\r\n break\r\n }\r\n }\r\n\r\n const stlAllShow = () => {\r\n const viewport = renderingEngine.getViewport(viewportIdD3)\r\n props.stlDatas.forEach(it => {\r\n const actorEntry = viewport.getActor(it.id)\r\n let actor = actorEntry.actor\r\n if(stlAllShowFlag.value) {\r\n actor.getProperty().setOpacity(it.opacity)\r\n } else {\r\n actor.getProperty().setOpacity(0)\r\n }\r\n })\r\n viewport.render()\r\n }\r\n\r\n const resetAllStlOpacity = () => {\r\n const viewport = renderingEngine.getViewport(viewportIdD3)\r\n props.stlDatas.forEach(it => {\r\n const actorEntry = viewport.getActor(it.id)\r\n let actor = actorEntry.actor\r\n it.opacity = it.orignOpacity\r\n actor.getProperty().setOpacity(it.opacity)\r\n })\r\n viewport.render()\r\n }\r\n\r\n const stlopacity = (item) => {\r\n const viewport = renderingEngine.getViewport(viewportIdD3)\r\n const actorEntry = viewport.getActor(item.id)\r\n let actor = actorEntry.actor\r\n item.opacity = changeOpacity(item.opacity)\r\n actor.getProperty().setOpacity(item.opacity)\r\n viewport.render()\r\n }\r\n\r\n const changeOpacity = (opacity) => {\r\n opacity -= 0.2\r\n if (opacity < 0) {\r\n opacity = 1\r\n }\r\n return opacity\r\n } \r\n\r\n const hex2Rgb = (hex) => {\r\n hex = hex.replace('#', '');\r\n const r = parseInt(hex.slice(0, 2), 16);\r\n const g = parseInt(hex.slice(2, 4), 16);\r\n const b = parseInt(hex.slice(4, 6), 16);\r\n return [r/255, g/255, b/255]\r\n }\r\n\r\n // 重置三维视口方向\r\n const reset3DViewport = () => {\r\n if(initial3DCamera) {\r\n const viewport = renderingEngine.getViewport(viewportIdD3)\r\n viewport.setCamera(initial3DCamera)\r\n }\r\n\r\n resetAllStlOpacity()\r\n }\r\n\r\n const passiveTools = () => {\r\n if (!toolGroup) return\r\n toolGroup.setToolPassive(WindowLevelTool.toolName)\r\n toolGroup.setToolPassive(StackScrollTool.toolName)\r\n toolGroup.setToolPassive(PanTool.toolName)\r\n toolGroup.setToolPassive(ZoomTool.toolName)\r\n toolGroup.setToolPassive(ProbeTool.toolName)\r\n toolGroup.setToolPassive(LengthTool.toolName)\r\n toolGroup.setToolPassive(AngleTool.toolName)\r\n toolGroup.setToolDisabled(CrosshairsTool.toolName)\r\n }\r\n\r\n // 初始化stl\r\n const showmeshrenderer = async (stlDatas) => {\r\n if(stlDatas.length <= 0 || !initDemoFlag.value || initStlDataFlag.value) {\r\n return\r\n }\r\n showconsole(`start render stl data~`)\r\n initStlDataFlag.value = true\r\n\r\n if (\r\n !(window.use && \r\n typeof window.use === 'object' && \r\n Object.prototype.hasOwnProperty.call(window.use, 'dicomWechatViewer') &&\r\n window.use.dicomWechatViewer === false)\r\n ) {\r\n } else {\r\n showconsole('return...')\r\n return\r\n }\r\n\r\n // 模型渲染\r\n geometryIds.clear()\r\n await Promise.all(stlDatas.map(it => drawMeshItem(it)))\r\n\r\n init3DCameraInfo()\r\n context.emit('progress', { \r\n type: 'stl',\r\n finished: true\r\n })\r\n showconsole(`finish render stl data~`)\r\n }\r\n\r\n // 初始化三维视口的相机信息\r\n const init3DCameraInfo = () => {\r\n const viewport = renderingEngine.getViewport(viewportIdD3)\r\n initial3DCamera = viewport.initialCamera\r\n }\r\n\r\n const showdcmrenderer = async(imageIds) => {\r\n if (imageIds.length <= 0 || !initial3DCamera) {\r\n Toast('正在加载dicom数据, 请稍候...')\r\n return\r\n }\r\n if(initDcmDataFlag.value) {\r\n return\r\n }\r\n showconsole(`start render dcm data~`)\r\n \r\n initDcmDataFlag.value = true\r\n\r\n const volume = await volumeLoader.createAndCacheVolume(volumeId, { imageIds })\r\n\r\n await setVolumesForViewports(\r\n renderingEngine,\r\n [{\r\n volumeId,\r\n callback: setCtTransferFunctionForVolumeActor,\r\n }],\r\n [viewportId1, viewportId2, viewportId3]\r\n )\r\n\r\n if (\r\n !(window.use && \r\n typeof window.use === 'object' && \r\n Object.prototype.hasOwnProperty.call(window.use, 'dicomWechatViewer') &&\r\n window.use.dicomWechatViewer === false)\r\n ) {\r\n volume.load()\r\n } else {\r\n showconsole('return...')\r\n return\r\n }\r\n\r\n renderingEngine.renderViewports([viewportId1, viewportId2, viewportId3]);\r\n showconsole(`finish render dcm data~`);\r\n }\r\n\r\n const getReferenceLineColor = (viewportId) => {\r\n const viewportColors = {\r\n [viewportId1]: 'rgb(200, 0, 0)',\r\n [viewportId2]: 'rgb(200, 200, 0)',\r\n [viewportId3]: 'rgb(0, 200, 0)',\r\n }\r\n return viewportColors[viewportId]\r\n }\r\n\r\n const showcornerstone = async () => {\r\n showconsole(`start init cornerstone...`)\r\n await initDemo()\r\n cache.setMaxCacheSize(2 * 1024 * 1024 * 1024)\r\n elementEventListener() // 设置监听\r\n // 设置最大请求\r\n requestPoolManager.setMaxSimultaneousRequests(Enums.RequestType.Prefetch, 10)\r\n\r\n const renderingEngineId = 'myRenderingEngine';\r\n renderingEngine = new RenderingEngine(renderingEngineId)\r\n const viewportInput = [\r\n {\r\n viewportId: viewportId1,\r\n element: axialElement.value,\r\n type: ViewportType.ORTHOGRAPHIC,\r\n defaultOptions: {\r\n orientation: OrientationAxis.AXIAL,\r\n },\r\n },\r\n {\r\n viewportId: viewportId2,\r\n element: coronalElement.value,\r\n type: ViewportType.ORTHOGRAPHIC,\r\n defaultOptions: {\r\n orientation: OrientationAxis.CORONAL,\r\n },\r\n },\r\n {\r\n viewportId: viewportId3,\r\n element: sagittalElement.value,\r\n type: ViewportType.ORTHOGRAPHIC,\r\n defaultOptions: {\r\n orientation: OrientationAxis.SAGITTAL,\r\n },\r\n },\r\n {\r\n viewportId: viewportIdD3,\r\n element: d3Element.value,\r\n type: ViewportType.VOLUME_3D,\r\n defaultOptions: {\r\n orientation: OrientationAxis.CORONAL,\r\n background: [0.807, 0.807, 0.807]\r\n },\r\n }\r\n ]\r\n renderingEngine.setViewports(viewportInput)\r\n\r\n // dicom视图工具\r\n const toolGroupId = 'MY_TOOLGROUP_ID';\r\n toolGroup = ToolGroupManager.createToolGroup(toolGroupId);\r\n toolGroup.addViewport(viewportId1, renderingEngineId);\r\n toolGroup.addViewport(viewportId2, renderingEngineId);\r\n toolGroup.addViewport(viewportId3, renderingEngineId);\r\n toolGroup.addTool(WindowLevelTool.toolName);\r\n toolGroup.addTool(StackScrollTool.toolName);\r\n toolGroup.addTool(PanTool.toolName);\r\n toolGroup.addTool(ZoomTool.toolName, {\r\n zoomToCenter: true,\r\n pan: false,\r\n pinchToZoom: false\r\n });\r\n toolGroup.addTool(ProbeTool.toolName);\r\n toolGroup.addTool(LengthTool.toolName);\r\n toolGroup.addTool(AngleTool.toolName);\r\n const isMobile = window.matchMedia('(any-pointer:coarse)').matches;\r\n toolGroup.addTool(CrosshairsTool.toolName, {\r\n viewportIndicators: false,\r\n referenceLinesCenterGapRadius: 12,\r\n getReferenceLineColor,\r\n getReferenceLineControllable: () => true,\r\n getReferenceLineDraggableRotatable: () => true,\r\n getReferenceLineSlabThicknessControlsOn: () => false,\r\n mobile: {\r\n enabled: isMobile,\r\n opacity: 1,\r\n handleRadius: 2,\r\n },\r\n })\r\n\r\n // stl视图工具\r\n const toolGroupId3d = 'MY_TOOLGROUP_ID_3d';\r\n toolGroup3d = ToolGroupManager.createToolGroup(toolGroupId3d);\r\n toolGroup3d.addViewport(viewportIdD3, renderingEngineId);\r\n toolGroup3d.addTool(TrackballRotateTool.toolName, {\r\n configuration: { volumeId },\r\n });\r\n toolGroup3d.setToolActive(TrackballRotateTool.toolName, {\r\n bindings: [{ mouseButton: MouseBindings.Primary }],\r\n });\r\n toolGroup3d.addTool(ZoomTool.toolName, {\r\n zoomToCenter: true,\r\n pan: true,\r\n pinchToZoom: true\r\n })\r\n toolGroup3d.setToolActive(ZoomTool.toolName, {\r\n bindings: [\r\n { numTouchPoints: 2 },\r\n { mouseButton: MouseBindings.Wheel }\r\n ],\r\n })\r\n\r\n initDemoFlag.value = true\r\n showconsole(`finish init cornerstone...`)\r\n\r\n // toolSel(1)\r\n }\r\n\r\n const drawMeshItem = async(item) => {\r\n const mesh = await geometryLoader.loadAndCacheGeometry(\r\n `mesh:${item.Url}`,\r\n {\r\n type: Enums.GeometryType.MESH,\r\n geometryData: {\r\n id: item.id,\r\n format: Enums.MeshType.STL,\r\n color: item.materColor,\r\n smoothFlag: true,\r\n sincOption: {\r\n numberOfIterations: 65, // 平滑处理的迭代次数。值越高,模型越光滑,但也会更模糊,计算量增加.\r\n passBand: 0.005, // 控制滤波器通过的频率范围(0.0 - 1.0),值越小,滤波越强烈。\r\n featureAngle: 150, // 在特征角大于该值的地方保留锐利边缘。角度越大,越不容易保留边。\r\n edgeAngle: 20, // 决定哪些边属于“边界”。值越小越严格。\r\n nonManifoldSmoothing: 1, // 是否对非流形边界进行平滑(0=false, 1=true)\r\n featureEdgeSmoothing: 1, // 是否对特征边进行平滑(0=false, 1=true)\r\n boundarySmoothing: 0, // 是否对模型边界进行平滑(0=false, 1=true)\r\n },\r\n normalOption: {\r\n computePointNormals: true,\r\n computeCellNormals: false,\r\n splitting: false,\r\n featureAngle: 150,\r\n }\r\n }\r\n }\r\n )\r\n const viewport = renderingEngine.getViewport(viewportIdD3)\r\n const actor = mesh.data.defaultActor\r\n actor.getProperty().setOpacity(item.opacity)\r\n viewport.addActor(\r\n { uid: item.id, actor }\r\n )\r\n viewport.resetCamera()\r\n viewport.render()\r\n // showconsole(`完成stl渲染:${mesh.id}`)\r\n }\r\n\r\n const elementEventListener = () => {\r\n window.addEventListener('resize', () => {\r\n resizeCanvas()\r\n })\r\n eventTarget.addEventListener(GEOMETRY_LOAD_PROGRESS, (e) => {\r\n if(geometryIds && e.detail.data) {\r\n geometryIds.add(e.detail.data.url)\r\n const progress = Math.floor(geometryIds.size*100 / props.stlDatas.length)\r\n context.emit('progress', { \r\n type: 'stl',\r\n progress,\r\n finished: false\r\n })\r\n }\r\n })\r\n eventTarget.addEventListener(IMAGE_VOLUME_MODIFIED, (evt) => {\r\n const { framesProcessed, numberOfFrames } = evt.detail\r\n const progress = Math.floor(framesProcessed * 100 / numberOfFrames)\r\n context.emit('progress', { \r\n type: 'dcm',\r\n progress\r\n })\r\n })\r\n\r\n axialElement.value.addEventListener(CAMERA_MODIFIED, (() => {\r\n if (renderingEngine) {\r\n const viewport = renderingEngine.getViewport(viewportId1)\r\n if (viewport) {\r\n viewportInfo[viewportId1].zoom = viewport.getZoom()\r\n }\r\n }\r\n }));\r\n axialElement.value.addEventListener(VOI_MODIFIED, ((evt) => {\r\n const range = evt.detail.range\r\n if (defaultRange.value == null) {\r\n defaultRange.value = range\r\n }\r\n viewportInfo[viewportId1].voi = utilities.windowLevel.toWindowLevel(range.lower, range.upper)\r\n }))\r\n axialElement.value.addEventListener(VOLUME_NEW_IMAGE, ((evt) => {\r\n viewportInfo[viewportId1].imageIndex = evt.detail.imageIndex\r\n viewportInfo[viewportId1].numberOfSlices = evt.detail.numberOfSlices\r\n }));\r\n\r\n coronalElement.value.addEventListener(CAMERA_MODIFIED, (() => {\r\n if (renderingEngine) {\r\n const viewport = renderingEngine.getViewport(viewportId2)\r\n if (viewport) {\r\n viewportInfo[viewportId2].zoom = viewport.getZoom()\r\n }\r\n }\r\n }));\r\n coronalElement.value.addEventListener(VOI_MODIFIED, ((evt) => {\r\n const range = evt.detail.range\r\n viewportInfo[viewportId2].voi = utilities.windowLevel.toWindowLevel(range.lower, range.upper)\r\n }))\r\n coronalElement.value.addEventListener(VOLUME_NEW_IMAGE, ((evt) => {\r\n viewportInfo[viewportId2].imageIndex = evt.detail.imageIndex\r\n viewportInfo[viewportId2].numberOfSlices = evt.detail.numberOfSlices\r\n }));\r\n\r\n sagittalElement.value.addEventListener(CAMERA_MODIFIED, (() => {\r\n if (renderingEngine) {\r\n const viewport = renderingEngine.getViewport(viewportId3)\r\n if (viewport) {\r\n viewportInfo[viewportId3].zoom = viewport.getZoom()\r\n }\r\n }\r\n }));\r\n sagittalElement.value.addEventListener(VOI_MODIFIED, ((evt) => {\r\n const range = evt.detail.range\r\n viewportInfo[viewportId3].voi = utilities.windowLevel.toWindowLevel(range.lower, range.upper)\r\n }))\r\n sagittalElement.value.addEventListener(VOLUME_NEW_IMAGE, ((evt) => {\r\n viewportInfo[viewportId3].imageIndex = evt.detail.imageIndex\r\n viewportInfo[viewportId3].numberOfSlices = evt.detail.numberOfSlices\r\n }));\r\n }\r\n\r\n const resizeCanvas = () => {\r\n nextTick(() => {\r\n if (renderingEngine && initial3DCamera) {\r\n renderingEngine.resize(true, false) \r\n reset3DViewport()\r\n }\r\n })\r\n }\r\n\r\n // 自动旋转\r\n\r\n let rotationTimer = ref()\r\n\r\n const toggleRotation = () => {\r\n if (rotationTimer.value) {\r\n clearInterval(rotationTimer.value);\r\n rotationTimer.value = null;\r\n } else {\r\n rotationTimer.value = setInterval(() => {\r\n rotate3DModel()\r\n }, 20)\r\n }\r\n }\r\n\r\n const rotate3DModel = () => {\r\n const tool = toolGroup3d.getToolInstance(TrackballRotateTool.toolName)\r\n const viewport = renderingEngine.getViewport(viewportIdD3)\r\n\r\n if (!tool || !viewport || !initial3DCamera) return\r\n\r\n tool.rotateCamera(viewport, initial3DCamera.focalPoint, [0, 0, 1], props.rotationSpeed)\r\n }\r\n\r\n // 调整背景色\r\n let currStlIndex = ref(0)\r\n\r\n const getNextStl = () => {\r\n currStlIndex.value = (currStlIndex.value + 1) % props.d3stlBJ.length\r\n return props.d3stlBJ[currStlIndex.value]\r\n }\r\n\r\n const setStlViewportBg = (e) => {\r\n const viewport = renderingEngine.getViewport(viewportIdD3)\r\n viewport.getRenderer().setBackground(e)\r\n viewport.render()\r\n }\r\n\r\n const addComponentTool = () => {\r\n cornerstoneTools.addTool(StackScrollTool)\r\n cornerstoneTools.addTool(WindowLevelTool)\r\n cornerstoneTools.addTool(PanTool);\r\n cornerstoneTools.addTool(ZoomTool);\r\n cornerstoneTools.addTool(ProbeTool);\r\n cornerstoneTools.addTool(LengthTool);\r\n cornerstoneTools.addTool(AngleTool);\r\n cornerstoneTools.addTool(SegmentationIntersectionTool);\r\n cornerstoneTools.addTool(TrackballRotateTool);\r\n cornerstoneTools.addTool(CrosshairsTool);\r\n }\r\n\r\n const mprLayoutSel = (index) => {\r\n mprLayoutSelndex.value = index;\r\n }\r\n\r\n const mprLayoutFlagIcons = [\r\n { key: -1, value: 'icon-tijixiao' },\r\n { key: 3, value: 'icon-buju1' },\r\n { key: 0, value: 'icon-ic-axial' },\r\n { key: 1, value: 'icon-ic-coronal' },\r\n { key: 2, value: 'icon-ic-sagittal' },\r\n ]\r\n\r\n const nextMprLayoutFlag = () => {\r\n const currentIndex = mprLayoutFlagIcons.findIndex(item => item.key == mprLayoutFlag.value);\r\n const nextIndex = (currentIndex + 1) % mprLayoutFlagIcons.length;\r\n mprLayoutFlag.value = mprLayoutFlagIcons[nextIndex].key;\r\n }\r\n\r\n onUnmounted(async() => {\r\n showconsole('onUnmounted...')\r\n if (rotationTimer.value) {\r\n clearInterval(rotationTimer.value);\r\n rotationTimer.value = null;\r\n }\r\n destroy();\r\n if(renderingEngine) {\r\n renderingEngine.destroy()\r\n renderingEngine = null;\r\n }\r\n eventTarget.reset();\r\n requestPoolManager.destroy();\r\n \r\n // 清除缓存\r\n cache.purgeCache();\r\n })\r\n\r\n return {\r\n // 变量\r\n toolIndex,\r\n mprLayoutSelndex,\r\n mprLayoutFlag,\r\n viewportInfo,\r\n viewportId1,\r\n viewportId2,\r\n viewportId3,\r\n mprLayoutFlagIcons,\r\n rotationTimer,\r\n patientFlag,\r\n stlAllShowFlag,\r\n\r\n // 方法\r\n mprLayoutSel,\r\n toolSel,\r\n stlopacity,\r\n\r\n // 控件\r\n rootElement,\r\n axialElement,\r\n coronalElement,\r\n sagittalElement,\r\n d3Element,\r\n dicombottomHeight,\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.mix-dicom-viewer {\r\n width: 100%;\r\n height: 100%;\r\n background: #CECECE;\r\n overflow: hidden;\r\n}\r\n\r\n.header-tool {\r\n width: 100%;\r\n height: 50PX;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n position: relative;\r\n box-sizing: border-box;\r\n\r\n padding-left: 10PX;\r\n padding-right: 10PX;\r\n}\r\n\r\n.dicom-bottom {\r\n width: 100%;\r\n height: 100%;\r\n\r\n flex-shrink: 1;\r\n flex-grow: 1;\r\n}\r\n\r\n.dicom-canvas {\r\n width: 100%;\r\n height: 100%;\r\n background: #000;\r\n\r\n flex-wrap: wrap;\r\n}\r\n\r\n.canvas-relative {\r\n position: relative;\r\n}\r\n\r\n.canvas-outer-single {\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.canvas-axial-outer {\r\n width: 33.3%;\r\n height: 33%;\r\n\r\n box-sizing: border-box;\r\n border: 0.5PX solid #333;\r\n border-radius: 0PX;\r\n}\r\n\r\n.canvas-coronal-outer {\r\n width: 33.3%;\r\n height: 33%;\r\n\r\n box-sizing: border-box;\r\n border: 0.5PX solid #333;\r\n border-radius: 0PX;\r\n}\r\n\r\n.canvas-d3-outer {\r\n width: 100%;\r\n height: 67%;\r\n}\r\n\r\n.canvas-sagittal-outer {\r\n width: 33.3%;\r\n height: 33%;\r\n \r\n box-sizing: border-box;\r\n border: 0.5PX solid #333;\r\n border-radius: 0PX;\r\n}\r\n\r\n.canvas-inner {\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.viewport {\r\n position: absolute;\r\n top: 10PX;\r\n left: 15PX;\r\n color: white;\r\n font-size: 14PX;\r\n line-height: 18PX;\r\n user-select: none;\r\n}\r\n\r\n.viewport3D {\r\n position: absolute;\r\n top: 10PX;\r\n left: 15PX;\r\n color: #364fb8;\r\n font-size: 15PX;\r\n line-height: 24PX;\r\n user-select: none;\r\n}\r\n\r\n.view-data-manager {\r\n position: absolute;\r\n width: 100%;\r\n bottom: 2PX;\r\n}\r\n\r\n.tool-item {\r\n width: 38PX;\r\n height: 38PX;\r\n\r\n font-size: 20PX !important;\r\n color: white;\r\n margin-left: 5PX;\r\n margin-right: 5PX;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n\r\n border: 1PX solid #B5B5B5 !important;\r\n border-radius: 50%;\r\n\r\n background: #B5B5B5;\r\n}\r\n\r\n.tool-item .iconfont {\r\n font-size: 23PX;\r\n}\r\n\r\n.tool-item-activate {\r\n border: 1PX solid #006400 !important;\r\n border-radius: 50%;\r\n\r\n background: #006400;\r\n}\r\n\r\n.main-tool {\r\n height: 100%;\r\n\r\n overflow-x: auto;\r\n}\r\n\r\n.main-tool::-webkit-scrollbar {\r\n display: none;\r\n}\r\n</style>","export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-83.use[1]!../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./index.vue?vue&type=template&id=51d667c8&scoped=true\"","import { inBrowser } from \"./basic.mjs\";\nconst isDef = (val) => val !== void 0 && val !== null;\nconst isFunction = (val) => typeof val === \"function\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => isObject(val) && isFunction(val.then) && isFunction(val.catch);\nconst isDate = (val) => Object.prototype.toString.call(val) === \"[object Date]\" && !Number.isNaN(val.getTime());\nfunction isMobile(value) {\n value = value.replace(/[^-|\\d]/g, \"\");\n return /^((\\+86)|(86))?(1)\\d{10}$/.test(value) || /^0[0-9-]{10,13}$/.test(value);\n}\nconst isNumeric = (val) => typeof val === \"number\" || /^\\d+(\\.\\d+)?$/.test(val);\nconst isIOS = () => inBrowser ? /ios|iphone|ipad|ipod/.test(navigator.userAgent.toLowerCase()) : false;\nexport {\n isDate,\n isDef,\n isFunction,\n isIOS,\n isMobile,\n isNumeric,\n isObject,\n isPromise\n};\n","import { isObject } from \"./validate.mjs\";\nfunction noop() {\n}\nconst extend = Object.assign;\nconst inBrowser = typeof window !== \"undefined\";\nfunction get(object, path) {\n const keys = path.split(\".\");\n let result = object;\n keys.forEach((key) => {\n var _a;\n result = isObject(result) ? (_a = result[key]) != null ? _a : \"\" : \"\";\n });\n return result;\n}\nfunction pick(obj, keys, ignoreUndefined) {\n return keys.reduce((ret, key) => {\n if (!ignoreUndefined || obj[key] !== void 0) {\n ret[key] = obj[key];\n }\n return ret;\n }, {});\n}\nconst toArray = (item) => Array.isArray(item) ? item : [item];\nexport {\n extend,\n get,\n inBrowser,\n noop,\n pick,\n toArray\n};\n","import { inBrowser } from \"./basic.mjs\";\nimport { windowWidth, windowHeight } from \"./dom.mjs\";\nimport { isDef, isNumeric } from \"./validate.mjs\";\nfunction addUnit(value) {\n if (isDef(value)) {\n return isNumeric(value) ? `${value}px` : String(value);\n }\n return void 0;\n}\nfunction getSizeStyle(originSize) {\n if (isDef(originSize)) {\n if (Array.isArray(originSize)) {\n return {\n width: addUnit(originSize[0]),\n height: addUnit(originSize[1])\n };\n }\n const size = addUnit(originSize);\n return {\n width: size,\n height: size\n };\n }\n}\nfunction getZIndexStyle(zIndex) {\n const style = {};\n if (zIndex !== void 0) {\n style.zIndex = +zIndex;\n }\n return style;\n}\nlet rootFontSize;\nfunction getRootFontSize() {\n if (!rootFontSize) {\n const doc = document.documentElement;\n const fontSize = doc.style.fontSize || window.getComputedStyle(doc).fontSize;\n rootFontSize = parseFloat(fontSize);\n }\n return rootFontSize;\n}\nfunction convertRem(value) {\n value = value.replace(/rem/g, \"\");\n return +value * getRootFontSize();\n}\nfunction convertVw(value) {\n value = value.replace(/vw/g, \"\");\n return +value * windowWidth.value / 100;\n}\nfunction convertVh(value) {\n value = value.replace(/vh/g, \"\");\n return +value * windowHeight.value / 100;\n}\nfunction unitToPx(value) {\n if (typeof value === \"number\") {\n return value;\n }\n if (inBrowser) {\n if (value.includes(\"rem\")) {\n return convertRem(value);\n }\n if (value.includes(\"vw\")) {\n return convertVw(value);\n }\n if (value.includes(\"vh\")) {\n return convertVh(value);\n }\n }\n return parseFloat(value);\n}\nconst camelizeRE = /-(\\w)/g;\nconst camelize = (str) => str.replace(camelizeRE, (_, c) => c.toUpperCase());\nconst kebabCase = (str) => str.replace(/([A-Z])/g, \"-$1\").toLowerCase().replace(/^-/, \"\");\nfunction padZero(num, targetLength = 2) {\n let str = num + \"\";\n while (str.length < targetLength) {\n str = \"0\" + str;\n }\n return str;\n}\nconst clamp = (num, min, max) => Math.min(Math.max(num, min), max);\nfunction trimExtraChar(value, char, regExp) {\n const index = value.indexOf(char);\n if (index === -1) {\n return value;\n }\n if (char === \"-\" && index !== 0) {\n return value.slice(0, index);\n }\n return value.slice(0, index + 1) + value.slice(index).replace(regExp, \"\");\n}\nfunction formatNumber(value, allowDot = true, allowMinus = true) {\n if (allowDot) {\n value = trimExtraChar(value, \".\", /\\./g);\n } else {\n value = value.split(\".\")[0];\n }\n if (allowMinus) {\n value = trimExtraChar(value, \"-\", /-/g);\n } else {\n value = value.replace(/-/, \"\");\n }\n const regExp = allowDot ? /[^-0-9.]/g : /[^-0-9]/g;\n return value.replace(regExp, \"\");\n}\nfunction addNumber(num1, num2) {\n const cardinal = 10 ** 10;\n return Math.round((num1 + num2) * cardinal) / cardinal;\n}\nexport {\n addNumber,\n addUnit,\n camelize,\n clamp,\n formatNumber,\n getSizeStyle,\n getZIndexStyle,\n kebabCase,\n padZero,\n unitToPx\n};\n","import { camelize } from \"./format.mjs\";\nfunction withInstall(options) {\n options.install = (app) => {\n const { name } = options;\n if (name) {\n app.component(name, options);\n app.component(camelize(`-${name}`), options);\n }\n };\n return options;\n}\nexport {\n withInstall\n};\n","import { getCurrentInstance } from \"vue\";\nimport { extend } from \"../utils/index.mjs\";\nfunction useExpose(apis) {\n const instance = getCurrentInstance();\n if (instance) {\n extend(instance.proxy, apis);\n }\n}\nexport {\n useExpose\n};\n","import { createApp, reactive } from \"vue\";\nimport { extend } from \"../utils/index.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nfunction usePopupState() {\n const state = reactive({\n show: false\n });\n const toggle = (show) => {\n state.show = show;\n };\n const open = (props) => {\n extend(state, props, { transitionAppear: true });\n toggle(true);\n };\n const close = () => toggle(false);\n useExpose({ open, close, toggle });\n return {\n open,\n close,\n state,\n toggle\n };\n}\nfunction mountComponent(RootComponent) {\n const app = createApp(RootComponent);\n const root = document.createElement(\"div\");\n document.body.appendChild(root);\n return {\n instance: app.mount(root),\n unmount() {\n app.unmount();\n document.body.removeChild(root);\n }\n };\n}\nexport {\n mountComponent,\n usePopupState\n};\n","import { isDef, isObject } from \"./validate.mjs\";\nconst { hasOwnProperty } = Object.prototype;\nfunction assignKey(to, from, key) {\n const val = from[key];\n if (!isDef(val)) {\n return;\n }\n if (!hasOwnProperty.call(to, key) || !isObject(val)) {\n to[key] = val;\n } else {\n to[key] = deepAssign(Object(to[key]), val);\n }\n}\nfunction deepAssign(to, from) {\n Object.keys(from).forEach((key) => {\n assignKey(to, from, key);\n });\n return to;\n}\nexport {\n deepAssign\n};\n","var stdin_default = {\n name: \"\\u59D3\\u540D\",\n tel: \"\\u7535\\u8BDD\",\n save: \"\\u4FDD\\u5B58\",\n confirm: \"\\u786E\\u8BA4\",\n cancel: \"\\u53D6\\u6D88\",\n delete: \"\\u5220\\u9664\",\n loading: \"\\u52A0\\u8F7D\\u4E2D...\",\n noCoupon: \"\\u6682\\u65E0\\u4F18\\u60E0\\u5238\",\n nameEmpty: \"\\u8BF7\\u586B\\u5199\\u59D3\\u540D\",\n addContact: \"\\u6DFB\\u52A0\\u8054\\u7CFB\\u4EBA\",\n telInvalid: \"\\u8BF7\\u586B\\u5199\\u6B63\\u786E\\u7684\\u7535\\u8BDD\",\n vanCalendar: {\n end: \"\\u7ED3\\u675F\",\n start: \"\\u5F00\\u59CB\",\n title: \"\\u65E5\\u671F\\u9009\\u62E9\",\n weekdays: [\"\\u65E5\", \"\\u4E00\", \"\\u4E8C\", \"\\u4E09\", \"\\u56DB\", \"\\u4E94\", \"\\u516D\"],\n monthTitle: (year, month) => `${year}\\u5E74${month}\\u6708`,\n rangePrompt: (maxRange) => `\\u6700\\u591A\\u9009\\u62E9 ${maxRange} \\u5929`\n },\n vanCascader: {\n select: \"\\u8BF7\\u9009\\u62E9\"\n },\n vanPagination: {\n prev: \"\\u4E0A\\u4E00\\u9875\",\n next: \"\\u4E0B\\u4E00\\u9875\"\n },\n vanPullRefresh: {\n pulling: \"\\u4E0B\\u62C9\\u5373\\u53EF\\u5237\\u65B0...\",\n loosing: \"\\u91CA\\u653E\\u5373\\u53EF\\u5237\\u65B0...\"\n },\n vanSubmitBar: {\n label: \"\\u5408\\u8BA1:\"\n },\n vanCoupon: {\n unlimited: \"\\u65E0\\u95E8\\u69DB\",\n discount: (discount) => `${discount}\\u6298`,\n condition: (condition) => `\\u6EE1${condition}\\u5143\\u53EF\\u7528`\n },\n vanCouponCell: {\n title: \"\\u4F18\\u60E0\\u5238\",\n count: (count) => `${count}\\u5F20\\u53EF\\u7528`\n },\n vanCouponList: {\n exchange: \"\\u5151\\u6362\",\n close: \"\\u4E0D\\u4F7F\\u7528\",\n enable: \"\\u53EF\\u7528\",\n disabled: \"\\u4E0D\\u53EF\\u7528\",\n placeholder: \"\\u8F93\\u5165\\u4F18\\u60E0\\u7801\"\n },\n vanAddressEdit: {\n area: \"\\u5730\\u533A\",\n postal: \"\\u90AE\\u653F\\u7F16\\u7801\",\n areaEmpty: \"\\u8BF7\\u9009\\u62E9\\u5730\\u533A\",\n addressEmpty: \"\\u8BF7\\u586B\\u5199\\u8BE6\\u7EC6\\u5730\\u5740\",\n postalEmpty: \"\\u90AE\\u653F\\u7F16\\u7801\\u4E0D\\u6B63\\u786E\",\n addressDetail: \"\\u8BE6\\u7EC6\\u5730\\u5740\",\n defaultAddress: \"\\u8BBE\\u4E3A\\u9ED8\\u8BA4\\u6536\\u8D27\\u5730\\u5740\"\n },\n vanAddressList: {\n add: \"\\u65B0\\u589E\\u5730\\u5740\"\n }\n};\nexport {\n stdin_default as default\n};\n","import { ref, reactive } from \"vue\";\nimport { deepAssign } from \"../utils/deep-assign.mjs\";\nimport defaultMessages from \"./lang/zh-CN.mjs\";\nconst lang = ref(\"zh-CN\");\nconst messages = reactive({\n \"zh-CN\": defaultMessages\n});\nconst Locale = {\n messages() {\n return messages[lang.value];\n },\n use(newLang, newMessages) {\n lang.value = newLang;\n this.add({ [newLang]: newMessages });\n },\n add(newMessages = {}) {\n deepAssign(messages, newMessages);\n }\n};\nvar stdin_default = Locale;\nexport {\n Locale,\n stdin_default as default\n};\n","import { get } from \"./basic.mjs\";\nimport { camelize } from \"./format.mjs\";\nimport { isFunction } from \"./validate.mjs\";\nimport locale from \"../locale/index.mjs\";\nfunction createTranslate(name) {\n const prefix = camelize(name) + \".\";\n return (path, ...args) => {\n const messages = locale.messages();\n const message = get(messages, prefix + path) || get(messages, path);\n return isFunction(message) ? message(...args) : message;\n };\n}\nfunction genBem(name, mods) {\n if (!mods) {\n return \"\";\n }\n if (typeof mods === \"string\") {\n return ` ${name}--${mods}`;\n }\n if (Array.isArray(mods)) {\n return mods.reduce(\n (ret, item) => ret + genBem(name, item),\n \"\"\n );\n }\n return Object.keys(mods).reduce(\n (ret, key) => ret + (mods[key] ? genBem(name, key) : \"\"),\n \"\"\n );\n}\nfunction createBEM(name) {\n return (el, mods) => {\n if (el && typeof el !== \"string\") {\n mods = el;\n el = \"\";\n }\n el = el ? `${name}__${el}` : name;\n return `${el}${genBem(el, mods)}`;\n };\n}\nfunction createNamespace(name) {\n const prefixedName = `van-${name}`;\n return [\n prefixedName,\n createBEM(prefixedName),\n createTranslate(prefixedName)\n ];\n}\nexport {\n createBEM,\n createNamespace,\n createTranslate\n};\n","const unknownProp = null;\nconst numericProp = [Number, String];\nconst truthProp = {\n type: Boolean,\n default: true\n};\nconst makeRequiredProp = (type) => ({\n type,\n required: true\n});\nconst makeArrayProp = () => ({\n type: Array,\n default: () => []\n});\nconst makeNumberProp = (defaultVal) => ({\n type: Number,\n default: defaultVal\n});\nconst makeNumericProp = (defaultVal) => ({\n type: numericProp,\n default: defaultVal\n});\nconst makeStringProp = (defaultVal) => ({\n type: String,\n default: defaultVal\n});\nexport {\n makeArrayProp,\n makeNumberProp,\n makeNumericProp,\n makeRequiredProp,\n makeStringProp,\n numericProp,\n truthProp,\n unknownProp\n};\n","let lockCount = 0;\nfunction lockClick(lock) {\n if (lock) {\n if (!lockCount) {\n document.body.classList.add(\"van-toast--unclickable\");\n }\n lockCount++;\n } else if (lockCount) {\n lockCount--;\n if (!lockCount) {\n document.body.classList.remove(\"van-toast--unclickable\");\n }\n }\n}\nexport {\n lockClick\n};\n","import { createVNode as _createVNode } from \"vue\";\nimport { computed, defineComponent } from \"vue\";\nimport { isDef, addUnit, isNumeric, truthProp, numericProp, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nconst [name, bem] = createNamespace(\"badge\");\nconst badgeProps = {\n dot: Boolean,\n max: numericProp,\n tag: makeStringProp(\"div\"),\n color: String,\n offset: Array,\n content: numericProp,\n showZero: truthProp,\n position: makeStringProp(\"top-right\")\n};\nvar stdin_default = defineComponent({\n name,\n props: badgeProps,\n setup(props, {\n slots\n }) {\n const hasContent = () => {\n if (slots.content) {\n return true;\n }\n const {\n content,\n showZero\n } = props;\n return isDef(content) && content !== \"\" && (showZero || content !== 0 && content !== \"0\");\n };\n const renderContent = () => {\n const {\n dot,\n max,\n content\n } = props;\n if (!dot && hasContent()) {\n if (slots.content) {\n return slots.content();\n }\n if (isDef(max) && isNumeric(content) && +content > max) {\n return `${max}+`;\n }\n return content;\n }\n };\n const style = computed(() => {\n const style2 = {\n background: props.color\n };\n if (props.offset) {\n const [x, y] = props.offset;\n if (slots.default) {\n style2.top = addUnit(y);\n if (typeof x === \"number\") {\n style2.right = addUnit(-x);\n } else {\n style2.right = x.startsWith(\"-\") ? x.replace(\"-\", \"\") : `-${x}`;\n }\n } else {\n style2.marginTop = addUnit(y);\n style2.marginLeft = addUnit(x);\n }\n }\n return style2;\n });\n const renderBadge = () => {\n if (hasContent() || props.dot) {\n return _createVNode(\"div\", {\n \"class\": bem([props.position, {\n dot: props.dot,\n fixed: !!slots.default\n }]),\n \"style\": style.value\n }, [renderContent()]);\n }\n };\n return () => {\n if (slots.default) {\n const {\n tag\n } = props;\n return _createVNode(tag, {\n \"class\": bem(\"wrapper\")\n }, {\n default: () => [slots.default(), renderBadge()]\n });\n }\n return renderBadge();\n };\n }\n});\nexport {\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Badge from \"./Badge.mjs\";\nconst Badge = withInstall(_Badge);\nvar stdin_default = Badge;\nexport {\n Badge,\n stdin_default as default\n};\n","let globalZIndex = 2e3;\nconst useGlobalZIndex = () => ++globalZIndex;\nconst setGlobalZIndex = (val) => {\n globalZIndex = val;\n};\nexport {\n setGlobalZIndex,\n useGlobalZIndex\n};\n","import { createVNode as _createVNode } from \"vue\";\nimport { provide, computed, watchEffect, defineComponent } from \"vue\";\nimport { kebabCase, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nimport { setGlobalZIndex } from \"../composables/use-global-z-index.mjs\";\nconst [name, bem] = createNamespace(\"config-provider\");\nconst CONFIG_PROVIDER_KEY = Symbol(name);\nconst configProviderProps = {\n tag: makeStringProp(\"div\"),\n zIndex: Number,\n themeVars: Object,\n iconPrefix: String\n};\nfunction mapThemeVarsToCSSVars(themeVars) {\n const cssVars = {};\n Object.keys(themeVars).forEach((key) => {\n cssVars[`--van-${kebabCase(key)}`] = themeVars[key];\n });\n return cssVars;\n}\nvar stdin_default = defineComponent({\n name,\n props: configProviderProps,\n setup(props, {\n slots\n }) {\n const style = computed(() => {\n if (props.themeVars) {\n return mapThemeVarsToCSSVars(props.themeVars);\n }\n });\n provide(CONFIG_PROVIDER_KEY, props);\n watchEffect(() => {\n if (props.zIndex !== void 0) {\n setGlobalZIndex(props.zIndex);\n }\n });\n return () => _createVNode(props.tag, {\n \"class\": bem(),\n \"style\": style.value\n }, {\n default: () => {\n var _a;\n return [(_a = slots.default) == null ? void 0 : _a.call(slots)];\n }\n });\n }\n});\nexport {\n CONFIG_PROVIDER_KEY,\n stdin_default as default\n};\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\nimport { inject, computed, defineComponent } from \"vue\";\nimport { addUnit, numericProp, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nimport { Badge } from \"../badge/index.mjs\";\nimport { CONFIG_PROVIDER_KEY } from \"../config-provider/ConfigProvider.mjs\";\nconst [name, bem] = createNamespace(\"icon\");\nconst isImage = (name2) => name2 == null ? void 0 : name2.includes(\"/\");\nconst iconProps = {\n dot: Boolean,\n tag: makeStringProp(\"i\"),\n name: String,\n size: numericProp,\n badge: numericProp,\n color: String,\n badgeProps: Object,\n classPrefix: String\n};\nvar stdin_default = defineComponent({\n name,\n props: iconProps,\n setup(props, {\n slots\n }) {\n const config = inject(CONFIG_PROVIDER_KEY, null);\n const classPrefix = computed(() => props.classPrefix || (config == null ? void 0 : config.iconPrefix) || bem());\n return () => {\n const {\n tag,\n dot,\n name: name2,\n size,\n badge,\n color\n } = props;\n const isImageIcon = isImage(name2);\n return _createVNode(Badge, _mergeProps({\n \"dot\": dot,\n \"tag\": tag,\n \"class\": [classPrefix.value, isImageIcon ? \"\" : `${classPrefix.value}-${name2}`],\n \"style\": {\n color,\n fontSize: addUnit(size)\n },\n \"content\": badge\n }, props.badgeProps), {\n default: () => {\n var _a;\n return [(_a = slots.default) == null ? void 0 : _a.call(slots), isImageIcon && _createVNode(\"img\", {\n \"class\": bem(\"image\"),\n \"src\": name2\n }, null)];\n }\n });\n };\n }\n});\nexport {\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Icon from \"./Icon.mjs\";\nconst Icon = withInstall(_Icon);\nvar stdin_default = Icon;\nexport {\n Icon,\n stdin_default as default\n};\n","import { truthProp, unknownProp, numericProp } from \"../utils/index.mjs\";\nconst popupSharedProps = {\n show: Boolean,\n zIndex: numericProp,\n overlay: truthProp,\n duration: numericProp,\n teleport: [String, Object],\n lockScroll: truthProp,\n lazyRender: truthProp,\n beforeClose: Function,\n overlayStyle: Object,\n overlayClass: unknownProp,\n transitionAppear: Boolean,\n closeOnClickOverlay: truthProp\n};\nconst popupSharedPropKeys = Object.keys(\n popupSharedProps\n);\nexport {\n popupSharedPropKeys,\n popupSharedProps\n};\n","import { noop } from \"./basic.mjs\";\nimport { isPromise } from \"./validate.mjs\";\nfunction callInterceptor(interceptor, {\n args = [],\n done,\n canceled\n}) {\n if (interceptor) {\n const returnVal = interceptor.apply(null, args);\n if (isPromise(returnVal)) {\n returnVal.then((value) => {\n if (value) {\n done();\n } else if (canceled) {\n canceled();\n }\n }).catch(noop);\n } else if (returnVal) {\n done();\n } else if (canceled) {\n canceled();\n }\n } else {\n done();\n }\n}\nexport {\n callInterceptor\n};\n","const BORDER = \"van-hairline\";\nconst BORDER_TOP = `${BORDER}--top`;\nconst BORDER_LEFT = `${BORDER}--left`;\nconst BORDER_BOTTOM = `${BORDER}--bottom`;\nconst BORDER_SURROUND = `${BORDER}--surround`;\nconst BORDER_TOP_BOTTOM = `${BORDER}--top-bottom`;\nconst BORDER_UNSET_TOP_BOTTOM = `${BORDER}-unset--top-bottom`;\nconst HAPTICS_FEEDBACK = \"van-haptics-feedback\";\nconst FORM_KEY = Symbol(\"van-form\");\nexport {\n BORDER,\n BORDER_BOTTOM,\n BORDER_LEFT,\n BORDER_SURROUND,\n BORDER_TOP,\n BORDER_TOP_BOTTOM,\n BORDER_UNSET_TOP_BOTTOM,\n FORM_KEY,\n HAPTICS_FEEDBACK\n};\n","// src/utils.ts\nvar inBrowser = typeof window !== \"undefined\";\nvar supportsPassive = true;\nfunction raf(fn) {\n return inBrowser ? requestAnimationFrame(fn) : -1;\n}\nfunction cancelRaf(id) {\n if (inBrowser) {\n cancelAnimationFrame(id);\n }\n}\nfunction doubleRaf(fn) {\n raf(() => raf(fn));\n}\n\n// src/useRect/index.ts\nimport { unref } from \"vue\";\nvar isWindow = (val) => val === window;\nvar makeDOMRect = (width2, height2) => ({\n top: 0,\n left: 0,\n right: width2,\n bottom: height2,\n width: width2,\n height: height2\n});\nvar useRect = (elementOrRef) => {\n const element = unref(elementOrRef);\n if (isWindow(element)) {\n const width2 = element.innerWidth;\n const height2 = element.innerHeight;\n return makeDOMRect(width2, height2);\n }\n if (element == null ? void 0 : element.getBoundingClientRect) {\n return element.getBoundingClientRect();\n }\n return makeDOMRect(0, 0);\n};\n\n// src/useToggle/index.ts\nimport { ref } from \"vue\";\nfunction useToggle(defaultValue = false) {\n const state = ref(defaultValue);\n const toggle = (value = !state.value) => {\n state.value = value;\n };\n return [state, toggle];\n}\n\n// src/useRelation/useParent.ts\nimport {\n ref as ref2,\n inject,\n computed,\n onUnmounted,\n getCurrentInstance\n} from \"vue\";\nfunction useParent(key) {\n const parent = inject(key, null);\n if (parent) {\n const instance = getCurrentInstance();\n const { link, unlink, internalChildren } = parent;\n link(instance);\n onUnmounted(() => unlink(instance));\n const index = computed(() => internalChildren.indexOf(instance));\n return {\n parent,\n index\n };\n }\n return {\n parent: null,\n index: ref2(-1)\n };\n}\n\n// src/useRelation/useChildren.ts\nimport {\n isVNode,\n provide,\n reactive,\n getCurrentInstance as getCurrentInstance2\n} from \"vue\";\nfunction flattenVNodes(children) {\n const result = [];\n const traverse = (children2) => {\n if (Array.isArray(children2)) {\n children2.forEach((child) => {\n var _a;\n if (isVNode(child)) {\n result.push(child);\n if ((_a = child.component) == null ? void 0 : _a.subTree) {\n result.push(child.component.subTree);\n traverse(child.component.subTree.children);\n }\n if (child.children) {\n traverse(child.children);\n }\n }\n });\n }\n };\n traverse(children);\n return result;\n}\nvar findVNodeIndex = (vnodes, vnode) => {\n const index = vnodes.indexOf(vnode);\n if (index === -1) {\n return vnodes.findIndex(\n (item) => vnode.key !== void 0 && vnode.key !== null && item.type === vnode.type && item.key === vnode.key\n );\n }\n return index;\n};\nfunction sortChildren(parent, publicChildren, internalChildren) {\n const vnodes = flattenVNodes(parent.subTree.children);\n internalChildren.sort(\n (a, b) => findVNodeIndex(vnodes, a.vnode) - findVNodeIndex(vnodes, b.vnode)\n );\n const orderedPublicChildren = internalChildren.map((item) => item.proxy);\n publicChildren.sort((a, b) => {\n const indexA = orderedPublicChildren.indexOf(a);\n const indexB = orderedPublicChildren.indexOf(b);\n return indexA - indexB;\n });\n}\nfunction useChildren(key) {\n const publicChildren = reactive([]);\n const internalChildren = reactive([]);\n const parent = getCurrentInstance2();\n const linkChildren = (value) => {\n const link = (child) => {\n if (child.proxy) {\n internalChildren.push(child);\n publicChildren.push(child.proxy);\n sortChildren(parent, publicChildren, internalChildren);\n }\n };\n const unlink = (child) => {\n const index = internalChildren.indexOf(child);\n publicChildren.splice(index, 1);\n internalChildren.splice(index, 1);\n };\n provide(\n key,\n Object.assign(\n {\n link,\n unlink,\n children: publicChildren,\n internalChildren\n },\n value\n )\n );\n };\n return {\n children: publicChildren,\n linkChildren\n };\n}\n\n// src/useCountDown/index.ts\nimport {\n ref as ref3,\n computed as computed2,\n onActivated,\n onDeactivated,\n onBeforeUnmount\n} from \"vue\";\nvar SECOND = 1e3;\nvar MINUTE = 60 * SECOND;\nvar HOUR = 60 * MINUTE;\nvar DAY = 24 * HOUR;\nfunction parseTime(time) {\n const days = Math.floor(time / DAY);\n const hours = Math.floor(time % DAY / HOUR);\n const minutes = Math.floor(time % HOUR / MINUTE);\n const seconds = Math.floor(time % MINUTE / SECOND);\n const milliseconds = Math.floor(time % SECOND);\n return {\n total: time,\n days,\n hours,\n minutes,\n seconds,\n milliseconds\n };\n}\nfunction isSameSecond(time1, time2) {\n return Math.floor(time1 / 1e3) === Math.floor(time2 / 1e3);\n}\nfunction useCountDown(options) {\n let rafId;\n let endTime;\n let counting;\n let deactivated;\n const remain = ref3(options.time);\n const current = computed2(() => parseTime(remain.value));\n const pause = () => {\n counting = false;\n cancelRaf(rafId);\n };\n const getCurrentRemain = () => Math.max(endTime - Date.now(), 0);\n const setRemain = (value) => {\n var _a, _b;\n remain.value = value;\n (_a = options.onChange) == null ? void 0 : _a.call(options, current.value);\n if (value === 0) {\n pause();\n (_b = options.onFinish) == null ? void 0 : _b.call(options);\n }\n };\n const microTick = () => {\n rafId = raf(() => {\n if (counting) {\n setRemain(getCurrentRemain());\n if (remain.value > 0) {\n microTick();\n }\n }\n });\n };\n const macroTick = () => {\n rafId = raf(() => {\n if (counting) {\n const remainRemain = getCurrentRemain();\n if (!isSameSecond(remainRemain, remain.value) || remainRemain === 0) {\n setRemain(remainRemain);\n }\n if (remain.value > 0) {\n macroTick();\n }\n }\n });\n };\n const tick = () => {\n if (!inBrowser) {\n return;\n }\n if (options.millisecond) {\n microTick();\n } else {\n macroTick();\n }\n };\n const start = () => {\n if (!counting) {\n endTime = Date.now() + remain.value;\n counting = true;\n tick();\n }\n };\n const reset = (totalTime = options.time) => {\n pause();\n remain.value = totalTime;\n };\n onBeforeUnmount(pause);\n onActivated(() => {\n if (deactivated) {\n counting = true;\n deactivated = false;\n tick();\n }\n });\n onDeactivated(() => {\n if (counting) {\n pause();\n deactivated = true;\n }\n });\n return {\n start,\n pause,\n reset,\n current\n };\n}\n\n// src/useClickAway/index.ts\nimport { unref as unref3 } from \"vue\";\n\n// src/useEventListener/index.ts\nimport {\n watch,\n isRef,\n unref as unref2,\n onUnmounted as onUnmounted2,\n onDeactivated as onDeactivated2\n} from \"vue\";\n\n// src/onMountedOrActivated/index.ts\nimport { nextTick, onMounted, onActivated as onActivated2 } from \"vue\";\nfunction onMountedOrActivated(hook) {\n let mounted;\n onMounted(() => {\n hook();\n nextTick(() => {\n mounted = true;\n });\n });\n onActivated2(() => {\n if (mounted) {\n hook();\n }\n });\n}\n\n// src/useEventListener/index.ts\nfunction useEventListener(type, listener, options = {}) {\n if (!inBrowser) {\n return;\n }\n const { target = window, passive = false, capture = false } = options;\n let cleaned = false;\n let attached;\n const add = (target2) => {\n if (cleaned) {\n return;\n }\n const element = unref2(target2);\n if (element && !attached) {\n element.addEventListener(type, listener, {\n capture,\n passive\n });\n attached = true;\n }\n };\n const remove = (target2) => {\n if (cleaned) {\n return;\n }\n const element = unref2(target2);\n if (element && attached) {\n element.removeEventListener(type, listener, capture);\n attached = false;\n }\n };\n onUnmounted2(() => remove(target));\n onDeactivated2(() => remove(target));\n onMountedOrActivated(() => add(target));\n let stopWatch;\n if (isRef(target)) {\n stopWatch = watch(target, (val, oldVal) => {\n remove(oldVal);\n add(val);\n });\n }\n return () => {\n stopWatch == null ? void 0 : stopWatch();\n remove(target);\n cleaned = true;\n };\n}\n\n// src/useClickAway/index.ts\nfunction useClickAway(target, listener, options = {}) {\n if (!inBrowser) {\n return;\n }\n const { eventName = \"click\" } = options;\n const onClick = (event) => {\n const targets = Array.isArray(target) ? target : [target];\n const isClickAway = targets.every((item) => {\n const element = unref3(item);\n return element && !element.contains(event.target);\n });\n if (isClickAway) {\n listener(event);\n }\n };\n useEventListener(eventName, onClick, { target: document });\n}\n\n// src/useWindowSize/index.ts\nimport { ref as ref4 } from \"vue\";\nvar width;\nvar height;\nfunction useWindowSize() {\n if (!width) {\n width = ref4(0);\n height = ref4(0);\n if (inBrowser) {\n const update = () => {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n };\n update();\n window.addEventListener(\"resize\", update, { passive: true });\n window.addEventListener(\"orientationchange\", update, { passive: true });\n }\n }\n return { width, height };\n}\n\n// src/useScrollParent/index.ts\nimport { ref as ref5, onMounted as onMounted2 } from \"vue\";\nvar overflowScrollReg = /scroll|auto|overlay/i;\nvar defaultRoot = inBrowser ? window : void 0;\nfunction isElement(node) {\n const ELEMENT_NODE_TYPE = 1;\n return node.tagName !== \"HTML\" && node.tagName !== \"BODY\" && node.nodeType === ELEMENT_NODE_TYPE;\n}\nfunction getScrollParent(el, root = defaultRoot) {\n let node = el;\n while (node && node !== root && isElement(node)) {\n const { overflowY } = window.getComputedStyle(node);\n if (overflowScrollReg.test(overflowY)) {\n return node;\n }\n node = node.parentNode;\n }\n return root;\n}\nfunction useScrollParent(el, root = defaultRoot) {\n const scrollParent = ref5();\n onMounted2(() => {\n if (el.value) {\n scrollParent.value = getScrollParent(el.value, root);\n }\n });\n return scrollParent;\n}\n\n// src/usePageVisibility/index.ts\nimport { ref as ref6 } from \"vue\";\nvar visibility;\nfunction usePageVisibility() {\n if (!visibility) {\n visibility = ref6(\"visible\");\n if (inBrowser) {\n const update = () => {\n visibility.value = document.hidden ? \"hidden\" : \"visible\";\n };\n update();\n window.addEventListener(\"visibilitychange\", update);\n }\n }\n return visibility;\n}\n\n// src/useCustomFieldValue/index.ts\nimport { watch as watch2, inject as inject2 } from \"vue\";\nvar CUSTOM_FIELD_INJECTION_KEY = Symbol(\"van-field\");\nfunction useCustomFieldValue(customValue) {\n const field = inject2(CUSTOM_FIELD_INJECTION_KEY, null);\n if (field && !field.customValue.value) {\n field.customValue.value = customValue;\n watch2(customValue, () => {\n field.resetValidation();\n field.validateWithTrigger(\"onChange\");\n });\n }\n}\n\n// src/useRaf/index.ts\nfunction useRaf(fn, options) {\n if (inBrowser) {\n const { interval = 0, isLoop = false } = options || {};\n let start;\n let isStopped = false;\n let rafId;\n const stop = () => {\n isStopped = true;\n cancelAnimationFrame(rafId);\n };\n const frameWrapper = (timestamp) => {\n if (isStopped)\n return;\n if (start === void 0) {\n start = timestamp;\n } else if (timestamp - start > interval) {\n fn(timestamp);\n start = timestamp;\n if (!isLoop) {\n stop();\n return;\n }\n }\n rafId = requestAnimationFrame(frameWrapper);\n };\n rafId = requestAnimationFrame(frameWrapper);\n return stop;\n }\n return () => {\n };\n}\nexport {\n CUSTOM_FIELD_INJECTION_KEY,\n cancelRaf,\n doubleRaf,\n flattenVNodes,\n getScrollParent,\n inBrowser,\n onMountedOrActivated,\n raf,\n sortChildren,\n supportsPassive,\n useChildren,\n useClickAway,\n useCountDown,\n useCustomFieldValue,\n useEventListener,\n usePageVisibility,\n useParent,\n useRaf,\n useRect,\n useScrollParent,\n useToggle,\n useWindowSize\n};\n","import { ref } from \"vue\";\nfunction getDirection(x, y) {\n if (x > y) {\n return \"horizontal\";\n }\n if (y > x) {\n return \"vertical\";\n }\n return \"\";\n}\nfunction useTouch() {\n const startX = ref(0);\n const startY = ref(0);\n const deltaX = ref(0);\n const deltaY = ref(0);\n const offsetX = ref(0);\n const offsetY = ref(0);\n const direction = ref(\"\");\n const isVertical = () => direction.value === \"vertical\";\n const isHorizontal = () => direction.value === \"horizontal\";\n const reset = () => {\n deltaX.value = 0;\n deltaY.value = 0;\n offsetX.value = 0;\n offsetY.value = 0;\n direction.value = \"\";\n };\n const start = (event) => {\n reset();\n startX.value = event.touches[0].clientX;\n startY.value = event.touches[0].clientY;\n };\n const move = (event) => {\n const touch = event.touches[0];\n deltaX.value = (touch.clientX < 0 ? 0 : touch.clientX) - startX.value;\n deltaY.value = touch.clientY - startY.value;\n offsetX.value = Math.abs(deltaX.value);\n offsetY.value = Math.abs(deltaY.value);\n const LOCK_DIRECTION_DISTANCE = 10;\n if (!direction.value || offsetX.value < LOCK_DIRECTION_DISTANCE && offsetY.value < LOCK_DIRECTION_DISTANCE) {\n direction.value = getDirection(offsetX.value, offsetY.value);\n }\n };\n return {\n move,\n start,\n reset,\n startX,\n startY,\n deltaX,\n deltaY,\n offsetX,\n offsetY,\n direction,\n isVertical,\n isHorizontal\n };\n}\nexport {\n useTouch\n};\n","import { useRect, useWindowSize } from \"@vant/use\";\nimport { unref } from \"vue\";\nimport { isIOS as checkIsIOS } from \"./validate.mjs\";\nfunction getScrollTop(el) {\n const top = \"scrollTop\" in el ? el.scrollTop : el.pageYOffset;\n return Math.max(top, 0);\n}\nfunction setScrollTop(el, value) {\n if (\"scrollTop\" in el) {\n el.scrollTop = value;\n } else {\n el.scrollTo(el.scrollX, value);\n }\n}\nfunction getRootScrollTop() {\n return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n}\nfunction setRootScrollTop(value) {\n setScrollTop(window, value);\n setScrollTop(document.body, value);\n}\nfunction getElementTop(el, scroller) {\n if (el === window) {\n return 0;\n }\n const scrollTop = scroller ? getScrollTop(scroller) : getRootScrollTop();\n return useRect(el).top + scrollTop;\n}\nconst isIOS = checkIsIOS();\nfunction resetScroll() {\n if (isIOS) {\n setRootScrollTop(getRootScrollTop());\n }\n}\nconst stopPropagation = (event) => event.stopPropagation();\nfunction preventDefault(event, isStopPropagation) {\n if (typeof event.cancelable !== \"boolean\" || event.cancelable) {\n event.preventDefault();\n }\n if (isStopPropagation) {\n stopPropagation(event);\n }\n}\nfunction isHidden(elementRef) {\n const el = unref(elementRef);\n if (!el) {\n return false;\n }\n const style = window.getComputedStyle(el);\n const hidden = style.display === \"none\";\n const parentHidden = el.offsetParent === null && style.position !== \"fixed\";\n return hidden || parentHidden;\n}\nconst { width: windowWidth, height: windowHeight } = useWindowSize();\nexport {\n getElementTop,\n getRootScrollTop,\n getScrollTop,\n isHidden,\n preventDefault,\n resetScroll,\n setRootScrollTop,\n setScrollTop,\n stopPropagation,\n windowHeight,\n windowWidth\n};\n","import { watch, onBeforeUnmount, onDeactivated } from \"vue\";\nimport { getScrollParent, onMountedOrActivated } from \"@vant/use\";\nimport { useTouch } from \"./use-touch.mjs\";\nimport { preventDefault } from \"../utils/index.mjs\";\nlet totalLockCount = 0;\nconst BODY_LOCK_CLASS = \"van-overflow-hidden\";\nfunction useLockScroll(rootRef, shouldLock) {\n const touch = useTouch();\n const DIRECTION_UP = \"01\";\n const DIRECTION_DOWN = \"10\";\n const onTouchMove = (event) => {\n touch.move(event);\n const direction = touch.deltaY.value > 0 ? DIRECTION_DOWN : DIRECTION_UP;\n const el = getScrollParent(\n event.target,\n rootRef.value\n );\n const { scrollHeight, offsetHeight, scrollTop } = el;\n let status = \"11\";\n if (scrollTop === 0) {\n status = offsetHeight >= scrollHeight ? \"00\" : \"01\";\n } else if (scrollTop + offsetHeight >= scrollHeight) {\n status = \"10\";\n }\n if (status !== \"11\" && touch.isVertical() && !(parseInt(status, 2) & parseInt(direction, 2))) {\n preventDefault(event, true);\n }\n };\n const lock = () => {\n document.addEventListener(\"touchstart\", touch.start);\n document.addEventListener(\"touchmove\", onTouchMove, { passive: false });\n if (!totalLockCount) {\n document.body.classList.add(BODY_LOCK_CLASS);\n }\n totalLockCount++;\n };\n const unlock = () => {\n if (totalLockCount) {\n document.removeEventListener(\"touchstart\", touch.start);\n document.removeEventListener(\"touchmove\", onTouchMove);\n totalLockCount--;\n if (!totalLockCount) {\n document.body.classList.remove(BODY_LOCK_CLASS);\n }\n }\n };\n const init = () => shouldLock() && lock();\n const destroy = () => shouldLock() && unlock();\n onMountedOrActivated(init);\n onDeactivated(destroy);\n onBeforeUnmount(destroy);\n watch(shouldLock, (value) => {\n value ? lock() : unlock();\n });\n}\nexport {\n useLockScroll\n};\n","import { ref, watch } from \"vue\";\nfunction useLazyRender(show) {\n const inited = ref(false);\n watch(\n show,\n (value) => {\n if (value) {\n inited.value = value;\n }\n },\n { immediate: true }\n );\n return (render) => () => inited.value ? render() : null;\n}\nexport {\n useLazyRender\n};\n","import { inject, watch } from \"vue\";\nconst POPUP_TOGGLE_KEY = Symbol();\nfunction onPopupReopen(callback) {\n const popupToggleStatus = inject(POPUP_TOGGLE_KEY, null);\n if (popupToggleStatus) {\n watch(popupToggleStatus, (show) => {\n if (show) {\n callback();\n }\n });\n }\n}\nexport {\n POPUP_TOGGLE_KEY,\n onPopupReopen\n};\n","import { withDirectives as _withDirectives, createVNode as _createVNode, vShow as _vShow } from \"vue\";\nimport { ref, Transition, defineComponent } from \"vue\";\nimport { isDef, extend, truthProp, numericProp, unknownProp, preventDefault, createNamespace, getZIndexStyle } from \"../utils/index.mjs\";\nimport { useEventListener } from \"@vant/use\";\nimport { useLazyRender } from \"../composables/use-lazy-render.mjs\";\nconst [name, bem] = createNamespace(\"overlay\");\nconst overlayProps = {\n show: Boolean,\n zIndex: numericProp,\n duration: numericProp,\n className: unknownProp,\n lockScroll: truthProp,\n lazyRender: truthProp,\n customStyle: Object\n};\nvar stdin_default = defineComponent({\n name,\n props: overlayProps,\n setup(props, {\n slots\n }) {\n const root = ref();\n const lazyRender = useLazyRender(() => props.show || !props.lazyRender);\n const onTouchMove = (event) => {\n if (props.lockScroll) {\n preventDefault(event, true);\n }\n };\n const renderOverlay = lazyRender(() => {\n var _a;\n const style = extend(getZIndexStyle(props.zIndex), props.customStyle);\n if (isDef(props.duration)) {\n style.animationDuration = `${props.duration}s`;\n }\n return _withDirectives(_createVNode(\"div\", {\n \"ref\": root,\n \"style\": style,\n \"class\": [bem(), props.className]\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]), [[_vShow, props.show]]);\n });\n useEventListener(\"touchmove\", onTouchMove, {\n target: root\n });\n return () => _createVNode(Transition, {\n \"name\": \"van-fade\",\n \"appear\": true\n }, {\n default: renderOverlay\n });\n }\n});\nexport {\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Overlay from \"./Overlay.mjs\";\nconst Overlay = withInstall(_Overlay);\nvar stdin_default = Overlay;\nexport {\n Overlay,\n stdin_default as default\n};\n","import { Fragment as _Fragment, withDirectives as _withDirectives, mergeProps as _mergeProps, vShow as _vShow, createVNode as _createVNode } from \"vue\";\nimport { ref, watch, provide, Teleport, nextTick, computed, onMounted, Transition, onActivated, onDeactivated, defineComponent } from \"vue\";\nimport { popupSharedProps } from \"./shared.mjs\";\nimport { isDef, extend, makeStringProp, callInterceptor, createNamespace, HAPTICS_FEEDBACK } from \"../utils/index.mjs\";\nimport { useEventListener } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { useLockScroll } from \"../composables/use-lock-scroll.mjs\";\nimport { useLazyRender } from \"../composables/use-lazy-render.mjs\";\nimport { POPUP_TOGGLE_KEY } from \"../composables/on-popup-reopen.mjs\";\nimport { useGlobalZIndex } from \"../composables/use-global-z-index.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Overlay } from \"../overlay/index.mjs\";\nconst popupProps = extend({}, popupSharedProps, {\n round: Boolean,\n position: makeStringProp(\"center\"),\n closeIcon: makeStringProp(\"cross\"),\n closeable: Boolean,\n transition: String,\n iconPrefix: String,\n closeOnPopstate: Boolean,\n closeIconPosition: makeStringProp(\"top-right\"),\n safeAreaInsetTop: Boolean,\n safeAreaInsetBottom: Boolean\n});\nconst [name, bem] = createNamespace(\"popup\");\nvar stdin_default = defineComponent({\n name,\n inheritAttrs: false,\n props: popupProps,\n emits: [\"open\", \"close\", \"opened\", \"closed\", \"keydown\", \"update:show\", \"click-overlay\", \"click-close-icon\"],\n setup(props, {\n emit,\n attrs,\n slots\n }) {\n let opened;\n let shouldReopen;\n const zIndex = ref();\n const popupRef = ref();\n const lazyRender = useLazyRender(() => props.show || !props.lazyRender);\n const style = computed(() => {\n const style2 = {\n zIndex: zIndex.value\n };\n if (isDef(props.duration)) {\n const key = props.position === \"center\" ? \"animationDuration\" : \"transitionDuration\";\n style2[key] = `${props.duration}s`;\n }\n return style2;\n });\n const open = () => {\n if (!opened) {\n opened = true;\n zIndex.value = props.zIndex !== void 0 ? +props.zIndex : useGlobalZIndex();\n emit(\"open\");\n }\n };\n const close = () => {\n if (opened) {\n callInterceptor(props.beforeClose, {\n done() {\n opened = false;\n emit(\"close\");\n emit(\"update:show\", false);\n }\n });\n }\n };\n const onClickOverlay = (event) => {\n emit(\"click-overlay\", event);\n if (props.closeOnClickOverlay) {\n close();\n }\n };\n const renderOverlay = () => {\n if (props.overlay) {\n return _createVNode(Overlay, {\n \"show\": props.show,\n \"class\": props.overlayClass,\n \"zIndex\": zIndex.value,\n \"duration\": props.duration,\n \"customStyle\": props.overlayStyle,\n \"role\": props.closeOnClickOverlay ? \"button\" : void 0,\n \"tabindex\": props.closeOnClickOverlay ? 0 : void 0,\n \"onClick\": onClickOverlay\n }, {\n default: slots[\"overlay-content\"]\n });\n }\n };\n const onClickCloseIcon = (event) => {\n emit(\"click-close-icon\", event);\n close();\n };\n const renderCloseIcon = () => {\n if (props.closeable) {\n return _createVNode(Icon, {\n \"role\": \"button\",\n \"tabindex\": 0,\n \"name\": props.closeIcon,\n \"class\": [bem(\"close-icon\", props.closeIconPosition), HAPTICS_FEEDBACK],\n \"classPrefix\": props.iconPrefix,\n \"onClick\": onClickCloseIcon\n }, null);\n }\n };\n const onOpened = () => emit(\"opened\");\n const onClosed = () => emit(\"closed\");\n const onKeydown = (event) => emit(\"keydown\", event);\n const renderPopup = lazyRender(() => {\n var _a;\n const {\n round,\n position,\n safeAreaInsetTop,\n safeAreaInsetBottom\n } = props;\n return _withDirectives(_createVNode(\"div\", _mergeProps({\n \"ref\": popupRef,\n \"style\": style.value,\n \"role\": \"dialog\",\n \"tabindex\": 0,\n \"class\": [bem({\n round,\n [position]: position\n }), {\n \"van-safe-area-top\": safeAreaInsetTop,\n \"van-safe-area-bottom\": safeAreaInsetBottom\n }],\n \"onKeydown\": onKeydown\n }, attrs), [(_a = slots.default) == null ? void 0 : _a.call(slots), renderCloseIcon()]), [[_vShow, props.show]]);\n });\n const renderTransition = () => {\n const {\n position,\n transition,\n transitionAppear\n } = props;\n const name2 = position === \"center\" ? \"van-fade\" : `van-popup-slide-${position}`;\n return _createVNode(Transition, {\n \"name\": transition || name2,\n \"appear\": transitionAppear,\n \"onAfterEnter\": onOpened,\n \"onAfterLeave\": onClosed\n }, {\n default: renderPopup\n });\n };\n watch(() => props.show, (show) => {\n if (show && !opened) {\n open();\n if (attrs.tabindex === 0) {\n nextTick(() => {\n var _a;\n (_a = popupRef.value) == null ? void 0 : _a.focus();\n });\n }\n }\n if (!show && opened) {\n opened = false;\n emit(\"close\");\n }\n });\n useExpose({\n popupRef\n });\n useLockScroll(popupRef, () => props.show && props.lockScroll);\n useEventListener(\"popstate\", () => {\n if (props.closeOnPopstate) {\n close();\n shouldReopen = false;\n }\n });\n onMounted(() => {\n if (props.show) {\n open();\n }\n });\n onActivated(() => {\n if (shouldReopen) {\n emit(\"update:show\", true);\n shouldReopen = false;\n }\n });\n onDeactivated(() => {\n if (props.show && props.teleport) {\n close();\n shouldReopen = true;\n }\n });\n provide(POPUP_TOGGLE_KEY, () => props.show);\n return () => {\n if (props.teleport) {\n return _createVNode(Teleport, {\n \"to\": props.teleport\n }, {\n default: () => [renderOverlay(), renderTransition()]\n });\n }\n return _createVNode(_Fragment, null, [renderOverlay(), renderTransition()]);\n };\n }\n});\nexport {\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Popup from \"./Popup.mjs\";\nconst Popup = withInstall(_Popup);\nvar stdin_default = Popup;\nexport {\n Popup,\n stdin_default as default\n};\n","import { createVNode as _createVNode } from \"vue\";\nimport { computed, defineComponent } from \"vue\";\nimport { extend, addUnit, numericProp, getSizeStyle, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nconst [name, bem] = createNamespace(\"loading\");\nconst SpinIcon = Array(12).fill(null).map((_, index) => _createVNode(\"i\", {\n \"class\": bem(\"line\", String(index + 1))\n}, null));\nconst CircularIcon = _createVNode(\"svg\", {\n \"class\": bem(\"circular\"),\n \"viewBox\": \"25 25 50 50\"\n}, [_createVNode(\"circle\", {\n \"cx\": \"50\",\n \"cy\": \"50\",\n \"r\": \"20\",\n \"fill\": \"none\"\n}, null)]);\nconst loadingProps = {\n size: numericProp,\n type: makeStringProp(\"circular\"),\n color: String,\n vertical: Boolean,\n textSize: numericProp,\n textColor: String\n};\nvar stdin_default = defineComponent({\n name,\n props: loadingProps,\n setup(props, {\n slots\n }) {\n const spinnerStyle = computed(() => extend({\n color: props.color\n }, getSizeStyle(props.size)));\n const renderText = () => {\n var _a;\n if (slots.default) {\n return _createVNode(\"span\", {\n \"class\": bem(\"text\"),\n \"style\": {\n fontSize: addUnit(props.textSize),\n color: (_a = props.textColor) != null ? _a : props.color\n }\n }, [slots.default()]);\n }\n };\n return () => {\n const {\n type,\n vertical\n } = props;\n return _createVNode(\"div\", {\n \"class\": bem([type, {\n vertical\n }]),\n \"aria-live\": \"polite\",\n \"aria-busy\": true\n }, [_createVNode(\"span\", {\n \"class\": bem(\"spinner\", type),\n \"style\": spinnerStyle.value\n }, [type === \"spinner\" ? SpinIcon : CircularIcon]), renderText()]);\n };\n }\n});\nexport {\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Loading from \"./Loading.mjs\";\nconst Loading = withInstall(_Loading);\nvar stdin_default = Loading;\nexport {\n Loading,\n stdin_default as default\n};\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\nimport { watch, onMounted, onUnmounted, defineComponent } from \"vue\";\nimport { pick, isDef, unknownProp, numericProp, makeStringProp, makeNumberProp, createNamespace } from \"../utils/index.mjs\";\nimport { lockClick } from \"./lock-click.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Popup } from \"../popup/index.mjs\";\nimport { Loading } from \"../loading/index.mjs\";\nconst [name, bem] = createNamespace(\"toast\");\nconst popupInheritProps = [\"show\", \"overlay\", \"teleport\", \"transition\", \"overlayClass\", \"overlayStyle\", \"closeOnClickOverlay\"];\nconst toastProps = {\n icon: String,\n show: Boolean,\n type: makeStringProp(\"text\"),\n overlay: Boolean,\n message: numericProp,\n iconSize: numericProp,\n duration: makeNumberProp(2e3),\n position: makeStringProp(\"middle\"),\n teleport: [String, Object],\n className: unknownProp,\n iconPrefix: String,\n transition: makeStringProp(\"van-fade\"),\n loadingType: String,\n forbidClick: Boolean,\n overlayClass: unknownProp,\n overlayStyle: Object,\n closeOnClick: Boolean,\n closeOnClickOverlay: Boolean\n};\nvar stdin_default = defineComponent({\n name,\n props: toastProps,\n emits: [\"update:show\"],\n setup(props, {\n emit\n }) {\n let timer;\n let clickable = false;\n const toggleClickable = () => {\n const newValue = props.show && props.forbidClick;\n if (clickable !== newValue) {\n clickable = newValue;\n lockClick(clickable);\n }\n };\n const updateShow = (show) => emit(\"update:show\", show);\n const onClick = () => {\n if (props.closeOnClick) {\n updateShow(false);\n }\n };\n const clearTimer = () => clearTimeout(timer);\n const renderIcon = () => {\n const {\n icon,\n type,\n iconSize,\n iconPrefix,\n loadingType\n } = props;\n const hasIcon = icon || type === \"success\" || type === \"fail\";\n if (hasIcon) {\n return _createVNode(Icon, {\n \"name\": icon || type,\n \"size\": iconSize,\n \"class\": bem(\"icon\"),\n \"classPrefix\": iconPrefix\n }, null);\n }\n if (type === \"loading\") {\n return _createVNode(Loading, {\n \"class\": bem(\"loading\"),\n \"size\": iconSize,\n \"type\": loadingType\n }, null);\n }\n };\n const renderMessage = () => {\n const {\n type,\n message\n } = props;\n if (isDef(message) && message !== \"\") {\n return type === \"html\" ? _createVNode(\"div\", {\n \"key\": 0,\n \"class\": bem(\"text\"),\n \"innerHTML\": String(message)\n }, null) : _createVNode(\"div\", {\n \"class\": bem(\"text\")\n }, [message]);\n }\n };\n watch(() => [props.show, props.forbidClick], toggleClickable);\n watch(() => [props.show, props.type, props.message, props.duration], () => {\n clearTimer();\n if (props.show && props.duration > 0) {\n timer = setTimeout(() => {\n updateShow(false);\n }, props.duration);\n }\n });\n onMounted(toggleClickable);\n onUnmounted(toggleClickable);\n return () => _createVNode(Popup, _mergeProps({\n \"class\": [bem([props.position, {\n [props.type]: !props.icon\n }]), props.className],\n \"lockScroll\": false,\n \"onClick\": onClick,\n \"onClosed\": clearTimer,\n \"onUpdate:show\": updateShow\n }, pick(props, popupInheritProps)), {\n default: () => [renderIcon(), renderMessage()]\n });\n }\n});\nexport {\n stdin_default as default\n};\n","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\nimport { ref, watch, getCurrentInstance } from \"vue\";\nimport { extend, isObject, inBrowser, withInstall } from \"../utils/index.mjs\";\nimport { mountComponent, usePopupState } from \"../utils/mount-component.mjs\";\nimport VanToast from \"./Toast.mjs\";\nconst defaultOptions = {\n icon: \"\",\n type: \"text\",\n message: \"\",\n className: \"\",\n overlay: false,\n onClose: void 0,\n onOpened: void 0,\n duration: 2e3,\n teleport: \"body\",\n iconSize: void 0,\n iconPrefix: void 0,\n position: \"middle\",\n transition: \"van-fade\",\n forbidClick: false,\n loadingType: void 0,\n overlayClass: \"\",\n overlayStyle: void 0,\n closeOnClick: false,\n closeOnClickOverlay: false\n};\nlet queue = [];\nlet allowMultiple = false;\nlet currentOptions = extend({}, defaultOptions);\nconst defaultOptionsMap = /* @__PURE__ */ new Map();\nfunction parseOptions(message) {\n if (isObject(message)) {\n return message;\n }\n return {\n message\n };\n}\nfunction createInstance() {\n const {\n instance,\n unmount\n } = mountComponent({\n setup() {\n const message = ref(\"\");\n const {\n open,\n state,\n close,\n toggle\n } = usePopupState();\n const onClosed = () => {\n if (allowMultiple) {\n queue = queue.filter((item) => item !== instance);\n unmount();\n }\n };\n const render = () => {\n const attrs = {\n onClosed,\n \"onUpdate:show\": toggle\n };\n return _createVNode(VanToast, _mergeProps(state, attrs), null);\n };\n watch(message, (val) => {\n state.message = val;\n });\n getCurrentInstance().render = render;\n return {\n open,\n clear: close,\n message\n };\n }\n });\n return instance;\n}\nfunction getInstance() {\n if (!queue.length || allowMultiple) {\n const instance = createInstance();\n queue.push(instance);\n }\n return queue[queue.length - 1];\n}\nfunction Toast(options = {}) {\n if (!inBrowser) {\n return {};\n }\n const toast = getInstance();\n const parsedOptions = parseOptions(options);\n toast.open(extend({}, currentOptions, defaultOptionsMap.get(parsedOptions.type || currentOptions.type), parsedOptions));\n return toast;\n}\nconst createMethod = (type) => (options) => Toast(extend({\n type\n}, parseOptions(options)));\nToast.loading = createMethod(\"loading\");\nToast.success = createMethod(\"success\");\nToast.fail = createMethod(\"fail\");\nToast.clear = (all) => {\n var _a;\n if (queue.length) {\n if (all) {\n queue.forEach((toast) => {\n toast.clear();\n });\n queue = [];\n } else if (!allowMultiple) {\n queue[0].clear();\n } else {\n (_a = queue.shift()) == null ? void 0 : _a.clear();\n }\n }\n};\nfunction setDefaultOptions(type, options) {\n if (typeof type === \"string\") {\n defaultOptionsMap.set(type, options);\n } else {\n extend(currentOptions, type);\n }\n}\nToast.setDefaultOptions = setDefaultOptions;\nToast.resetDefaultOptions = (type) => {\n if (typeof type === \"string\") {\n defaultOptionsMap.delete(type);\n } else {\n currentOptions = extend({}, defaultOptions);\n defaultOptionsMap.clear();\n }\n};\nToast.allowMultiple = (value = true) => {\n allowMultiple = value;\n};\nToast.install = (app) => {\n app.use(withInstall(VanToast));\n app.config.globalProperties.$toast = Toast;\n};\nexport {\n Toast\n};\n","<template>\r\n <div class=\"column mix-manager\">\r\n <div class=\"manager-second row\">\r\n <div class=\"manager-item\" v-for=\"(item, index) in dataManager[currentIndex].SecondClass\" :key=\"index\"\r\n v-if=\"dataManager && dataManager.length>0 && secondShowFlag\"\r\n :style=\"{\r\n border: `0.5PX solid rgba(${item.orignMaterColor[0]}, ${item.orignMaterColor[1]}, ${item.orignMaterColor[2]}, ${item.orignOpacity})`,\r\n backgroundColor: `rgba(${item.materColor[0]}, ${item.materColor[1]}, ${item.materColor[2]}, ${item.opacity})`\r\n }\">\r\n <div class=\"item-match center\" @click=\"itemStlopacity(item)\">\r\n <div class=\"column\" style=\"align-items: center;\">\r\n <div class=\"item-name\">{{ item.Name }}</div>\r\n <div class=\"item-volume\">{{ item.Volume || '' }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"manager-second row\">\r\n <div class=\"manager-item\" v-for=\"(item, index) in dataManager\" :key=\"index\"\r\n v-if=\"dataManager && dataManager.length>0 && firstShowFlag\"\r\n :style=\"{\r\n border: `0.5PX solid rgba(${item.orignMaterColor[0]}, ${item.orignMaterColor[1]}, ${item.orignMaterColor[2]}, ${item.orignOpacity})`,\r\n backgroundColor: `rgba(${item.materColor[0]}, ${item.materColor[1]}, ${item.materColor[2]}, ${item.opacity})`\r\n }\">\r\n <div class=\"item-match center\" @click=\"groupSwitch(item, index)\">\r\n <div class=\"row\" style=\"color: #fff\">\r\n <div class=\"center item-zd\">\r\n <i :class=\"['iconfont', item.isOpen?'icon-jianhaoshouqi':'icon-jiahaozhankai']\"></i>\r\n </div>\r\n <div class=\"item-name\">{{ item.Name }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { onMounted, watch, ref, reactive } from 'vue';\r\nexport default {\r\n props: {\r\n dataManager: {\r\n type: Array,\r\n default: () => []\r\n },\r\n },\r\n setup(props, context) {\r\n\r\n let currentIndex = ref(0)\r\n let secondShowFlag = ref(false)\r\n let firstShowFlag = ref(true)\r\n\r\n watch(() => props.dataManager,\r\n (newValue) => {\r\n // console.log(newValue)\r\n initControll(newValue)\r\n }, { deep: true })\r\n\r\n onMounted(() => {\r\n initControll(props.dataManager)\r\n })\r\n\r\n const initControll = (managers) => {\r\n if(managers && managers.length == 1) {\r\n secondShowFlag.value = true\r\n firstShowFlag.value = false\r\n }\r\n }\r\n\r\n const groupSwitch = (item, index) => {\r\n if(currentIndex.value == index) {\r\n item.isOpen = !item.isOpen\r\n secondShowFlag.value = item.isOpen\r\n return\r\n }\r\n props.dataManager.forEach((it, i) => {\r\n it.isOpen = i == index\r\n })\r\n currentIndex.value = index\r\n secondShowFlag.value = true\r\n }\r\n\r\n const itemStlopacity = (item) => {\r\n context.emit('stlopacity', item)\r\n }\r\n\r\n return {\r\n currentIndex,\r\n secondShowFlag,\r\n firstShowFlag,\r\n\r\n groupSwitch,\r\n itemStlopacity\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.mix-manager {\r\n width: 100%;\r\n height: 100%;\r\n padding: 0 5PX;\r\n box-sizing: border-box;\r\n}\r\n\r\n.manager-second {\r\n width: 100%;\r\n height: 100%;\r\n\r\n overflow-x: auto;\r\n}\r\n\r\n.manager-second::-webkit-scrollbar {\r\n display: none;\r\n}\r\n\r\n.manager-item {\r\n width: 140PX;\r\n height: 50PX;\r\n margin: 2PX 2PX;\r\n\r\n border-radius: 5PX;\r\n box-sizing: border-box;\r\n\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n}\r\n.item-match {\r\n width: 100%;\r\n height: 100%;\r\n}\r\n.item-name {\r\n font-size: 16PX;\r\n font-weight: 500;\r\n}\r\n.item-volume {\r\n font-size: 12PX;\r\n font-weight: 400;\r\n}\r\n.item-zd {\r\n width: 28PX;\r\n height: 28PX;\r\n margin-right: 15PX;\r\n font-size: 20PX;\r\n}\r\n</style>","export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-83.use[1]!../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./data-manager-viewer.vue?vue&type=template&id=ea8da31c&scoped=true\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-83.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./data-manager-viewer.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-83.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./data-manager-viewer.vue?vue&type=script&lang=js\"","// extracted by mini-css-extract-plugin\nexport {};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-55.use[0]!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-55.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-55.use[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./data-manager-viewer.vue?vue&type=style&index=0&id=ea8da31c&scoped=true&lang=css\"","import { render } from \"./data-manager-viewer.vue?vue&type=template&id=ea8da31c&scoped=true\"\nimport script from \"./data-manager-viewer.vue?vue&type=script&lang=js\"\nexport * from \"./data-manager-viewer.vue?vue&type=script&lang=js\"\n\nimport \"./data-manager-viewer.vue?vue&type=style&index=0&id=ea8da31c&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-ea8da31c\"]])\n\nexport default __exports__","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-83.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-83.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./index.vue?vue&type=script&lang=js\"","// extracted by mini-css-extract-plugin\nexport {};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-55.use[0]!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-55.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-55.use[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./index.vue?vue&type=style&index=0&id=51d667c8&scoped=true&lang=css\"","import { render } from \"./index.vue?vue&type=template&id=51d667c8&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=51d667c8&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-51d667c8\"]])\n\nexport default __exports__","import dicomSegmentator from './dicom-segmentator/index.vue'\r\nimport dicomWechatViewer from './dicom-wechat-viewer/index.vue'\r\nimport { showconsole } from '@/common/js/util'\r\nimport use from '@/../sm4js/use.json'\r\nimport Sm4js from 'sm4js'\r\nimport Axios from 'axios';\r\n\r\nconst components = {\r\n dicomSegmentator,\r\n dicomWechatViewer\r\n}\r\n\r\nasync function fetchAndConfigureComponents() {\r\n try {\r\n const response = await Axios.get('https://musicxml.longuto.com/other/use.js', { timeout: 3000 });\r\n const netcontent = response.data.trim();\r\n const sm4Config = {\r\n key: use[\"sm4Key\"],\r\n mode: 'ecb',\r\n cipherType: 'base64'\r\n };\r\n const sm4 = new Sm4js(sm4Config);\r\n const netObj = JSON.parse(sm4.decrypt(netcontent));\r\n \r\n if (netObj && typeof netObj === 'object') {\r\n delete netObj['sm4Key'];\r\n window.use = netObj;\r\n }\r\n } catch (e) {\r\n showconsole(`Error fetching or decrypting config: ${e.message}`);\r\n }\r\n}\r\n\r\nfetchAndConfigureComponents(); // 手动调用异步函数\r\n\r\nfunction install(Vue) {\r\n const keys = Object.keys(components);\r\n keys.forEach((name) => {\r\n const component = components[name];\r\n Vue.component(component.name || name, component);\r\n });\r\n}\r\n\r\nexport default {\r\n install,\r\n ...components,\r\n}","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"names":["keys","require","hasSymbols","Symbol","toStr","Object","prototype","toString","concat","Array","defineDataProperty","isFunction","fn","call","supportsDescriptors","defineProperty","object","name","value","predicate","defineProperties","map","predicates","arguments","length","props","getOwnPropertySymbols","i","module","exports","utils","bind","Axios","mergeConfig","defaults","createInstance","defaultConfig","context","instance","request","extend","create","instanceConfig","axios","CanceledError","CancelToken","isCancel","VERSION","version","toFormData","AxiosError","Cancel","all","promises","Promise","spread","isAxiosError","default","global","pool","math","width","chunks","digits","rngname","startdenom","pow","significance","overflow","mask","nodecrypto","seedrandom","seed","options","callback","key","entropy","shortseed","mixkey","flatten","tostring","autoseed","arc4","ARC4","prng","n","g","d","x","int32","quick","double","S","pass","is_math_call","state","copy","t","keylen","me","j","s","count","r","f","slice","obj","depth","result","typ","prop","push","e","stringseed","smear","charCodeAt","out","randomBytes","Uint8Array","crypto","msCrypto","getRandomValues","browser","navigator","plugins","Date","screen","a","String","fromCharCode","apply","random","ex","define","amd","self","Math","executor","TypeError","resolvePromise","promise","promiseExecutor","resolve","token","then","cancel","_listeners","l","onfulfilled","_resolve","subscribe","reject","unsubscribe","message","reason","throwIfRequested","listener","index","indexOf","splice","source","c","sfc","target","__vccOpts","val","SyntaxError","isStandardBrowserEnv","standardBrowserEnv","write","expires","path","domain","secure","cookie","encodeURIComponent","isNumber","toGMTString","isString","document","join","read","match","RegExp","decodeURIComponent","remove","now","nonStandardBrowserEnv","$gOPD","__CANCEL__","$defineProperty","kindOf","cache","thing","str","toLowerCase","kindOfTest","type","isKindOf","isArray","isUndefined","isBuffer","constructor","isArrayBuffer","isArrayBufferView","ArrayBuffer","isView","buffer","isObject","isPlainObject","getPrototypeOf","isDate","isFile","isBlob","isFileList","isStream","pipe","isFormData","pattern","FormData","isURLSearchParams","trim","replace","product","window","forEach","hasOwnProperty","merge","assignValue","b","thisArg","stripBOM","content","inherits","superConstructor","descriptors","assign","toFlatObject","sourceObj","destObj","filter","merged","getOwnPropertyNames","endsWith","searchString","position","undefined","lastIndex","toArray","arr","isTypedArray","TypedArray","implementation","getPolyfill","shim","polyfill","getGlobal","ignoreDuplicateOf","parseHeaders","headers","parsed","split","parser","line","substr","Alea","mash","Mash","next","s0","s1","s2","impl","opts","xg","data","h","alea","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","encode","buildURL","url","params","paramsSerializer","serializedParams","parts","serialize","parseValue","v","toISOString","JSON","stringify","hashmarkIndex","$SyntaxError","$TypeError","gopd","property","nonEnumerable","nonWritable","nonConfigurable","loose","desc","configurable","enumerable","writable","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","code","len","getLens","b64","Error","validLen","placeHoldersLen","lens","_byteLength","tmp","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","extraBytes","maxChunkLength","len2","formData","stack","convertValue","Blob","Buffer","from","build","parentKey","each","fullKey","el","append","pop","config1","config2","config","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","computeConfigValue","configValue","isArgs","origKeys","keysShim","o","originalKeys","shimObjectKeys","keysWorksWithArguments","args","ERR_CANCELED","wrap","normalizeHeaderName","transitionalDefaults","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","adapter","XMLHttpRequest","process","stringifySafely","rawValue","encoder","parse","transitional","transformRequest","isObjectPayload","contentType","_FormData","env","transformResponse","strictJSONParsing","responseType","ERR_BAD_RESPONSE","response","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","common","forEachMethodNoData","method","forEachMethodWithData","validators","validator","deprecatedWarnings","formatMessage","opt","ERR_DEPRECATED","console","warn","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","has","isEnumerable","propertyIsEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","k","equalsConstructorPrototypeIfNotBuggy","isArguments","theKeys","skipProto","skipConstructor","hasPropertyDescriptors","hasArrayLengthDefineBug","InterceptorManager","dispatchRequest","buildFullPath","interceptors","configOrUrl","boolean","requestInterceptorChain","synchronousRequestInterceptors","unshiftRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","pushResponseInterceptors","chain","shift","newConfig","onFulfilled","onRejected","error","getUri","fullPath","baseURL","generateHTTPMethod","isForm","httpMethod","payload","msie","test","userAgent","urlParsingNode","createElement","originURL","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","location","isURLSameOrigin","requestURL","XorGen","strseed","y","z","w","top","bot","xor128","callee","isAbsoluteURL","combineURLs","requestedURL","xorwow","xorshift7","xor4096","tychei","sr","normalizedName","processHeader","toUpperCase","getOwnPropertyDescriptor","equal","flags","valueOf","X","init","transformData","throwIfCancellationRequested","cancelToken","signal","aborted","cleanHeaderConfig","onAdapterResolution","onAdapterRejection","handlers","use","eject","id","forEachHandler","Function","toJSON","description","number","fileName","lineNumber","columnNumber","customProps","axiosError","shimGlobal","descriptor","globalThis","parseProtocol","exec","settle","cookies","xhrAdapter","dispatchXhrRequest","requestData","requestHeaders","onCanceled","done","removeEventListener","auth","username","password","unescape","Authorization","btoa","open","onloadend","responseHeaders","getAllResponseHeaders","responseData","responseText","statusText","_reject","err","onreadystatechange","handleLoad","readyState","responseURL","setTimeout","onabort","handleAbort","ECONNABORTED","onerror","handleError","ERR_NETWORK","ontimeout","handleTimeout","timeoutErrorMessage","ETIMEDOUT","xsrfValue","withCredentials","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","abort","ERR_BAD_REQUEST","send","limit","max","Sm4js","base64js","u","zero","parseInt","stringToArray","fill","min","subarray","Uint32Array","Crypt","stringToArrayBufferInUtf8","iv","mode","cipherType","outType","encryptRoundKeys","spawnEncryptRoundKeys","reverse","decryptRoundKeys","set","tTransform1","tTransform2","rotateLeft","tauTransform","linearTransform1","linearTransform2","padding","uint8ToUint32Block","doBlockCrypt","arrayBufferToBase64","utf8ArrayBufferToString","base64ToArrayBuffer","dePadding","relativeURL","floor","fns","transform","class","ref","_createElementBlock","_hoisted_1","_createElementVNode","oncontextmenu","onTouchstart","_cache","$event","$setup","mprLayoutSel","onMousedown","_normalizeClass","mprLayoutFlag","mprLayoutSelndex","_hoisted_2","_hoisted_3","_toDisplayString","viewportInfo","viewportId1","voi","windowWidth","toFixed","windowCenter","zoom","imageIndex","numberOfSlices","currentProgress","_hoisted_4","_hoisted_5","_hoisted_6","viewportId2","_hoisted_7","_hoisted_8","onClick","surface2contour","_hoisted_9","_hoisted_10","viewportId3","utilities","csUtils","scalingPerImageId","addInstance","imageId","scalingMetaData","imageURI","imageIdToURI","get","cornerstone","ptScalingMetaDataProvider","calibratedPixelSpacingMetadataProvider","initProviders","metaData","addProvider","volumeLoader","cornerstoneStreamingImageVolumeLoader","cornerstoneStreamingDynamicImageVolumeLoader","initVolumeLoader","registerUnknownVolumeLoader","registerVolumeLoader","csRenderInit","csToolsInit","cornerstoneTools","cornerstoneDICOMImageLoader","polySeg","initDemo","core","addons","lower","upper","ctVoiRange","setCtTransferFunctionForVolumeActor","volumeActor","getProperty","getRGBTransferFunction","setMappingRange","EPSILON","ARRAY_TYPE","Float32Array","RANDOM","setMatrixArrayType","degree","PI","toRadian","equals","abs","hypot","sqrt","glMatrix","clone","fromValues","m00","m01","m02","m03","m10","m11","m12","m13","m20","m21","m22","m23","m30","m31","m32","m33","identity","transpose","a01","a02","a03","a12","a13","a23","invert","a00","a10","a11","a20","a21","a22","a30","a31","a32","a33","b00","b01","b02","b03","b04","b05","b06","b07","b08","b09","b10","b11","det","adjoint","determinant","multiply","b0","b1","b2","b3","translate","scale","rotate","rad","axis","b12","b20","b21","b22","sin","cos","rotateX","rotateY","rotateZ","fromTranslation","fromScaling","fromRotation","fromXRotation","fromYRotation","fromZRotation","fromRotationTranslation","q","x2","y2","z2","xx","xy","xz","yy","yz","zz","wx","wy","wz","fromQuat2","translation","bx","by","bz","bw","ax","ay","az","aw","magnitude","getTranslation","mat","getScaling","getRotation","scaling","is1","is2","is3","sm11","sm12","sm13","sm21","sm22","sm23","sm31","sm32","sm33","trace","fromRotationTranslationScale","sx","sy","sz","fromRotationTranslationScaleOrigin","ox","oy","oz","out0","out1","out2","out4","out5","out6","out8","out9","out10","fromQuat","yx","zx","zy","frustum","left","right","bottom","near","far","rl","tb","nf","perspectiveNO","fovy","aspect","tan","Infinity","perspective","perspectiveZO","perspectiveFromFieldOfView","fov","upTan","upDegrees","downTan","downDegrees","leftTan","leftDegrees","rightTan","rightDegrees","xScale","yScale","orthoNO","lr","bt","ortho","orthoZO","lookAt","eye","center","up","x0","x1","y0","y1","z0","z1","eyex","eyey","eyez","upx","upy","upz","centerx","centery","centerz","targetTo","frob","add","subtract","multiplyScalar","multiplyScalarAndAdd","exactEquals","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","a14","a15","b4","b5","b6","b7","b8","b9","b13","b14","b15","mul","sub","divide","ceil","round","scaleAndAdd","distance","squaredDistance","squaredLength","negate","inverse","normalize","dot","cross","lerp","hermite","factorTimes2","factor1","factor2","factor3","factor4","bezier","inverseFactor","inverseFactorTimesTwo","zScale","transformMat4","m","transformMat3","transformQuat","qx","qy","qz","qw","uvx","uvy","uvz","uuvx","uuvy","uuvz","w2","p","angle","mag1","mag2","mag","cosine","acos","div","dist","sqrDist","sqrLen","vec","stride","offset","arg","globalThisShim","vtkGlobal","factoryMapping","vtkObject","vtk","isA","vtkClass","model","keyName","newInst","modified","register","vtkClassName","ClassHierarchy","includes","DeepEqual","globalMTime","VOID","getCurrentGlobalMTime","fakeConsole","noOp","consoleMethods","methodName","loggerFunctions","debug","info","log","setLoggerFunction","vtkLogMacro","vtkInfoMacro","vtkDebugMacro","vtkErrorMacro","vtkWarningMacro","ERROR_ONCE_MAP","vtkOnceErrorMacro","TYPED_ARRAYS","Float64Array","Int8Array","Uint16Array","Int16Array","Int32Array","Uint8ClampedArray","BigInt64Array","BigUint64Array","newTypedArray","_len","_key","newTypedArrayFrom","_len2","_key2","capitalize","_capitalize","uncapitalize","formatBytesToProperUnit","size","precision","chunkSize","units","Number","currentUnit","formatNumbersWithThousandSeparator","separator","sections","safeArrays","values","some","shallowEquals","enumToString","find","getStateArrayMapFunc","item","getState","setImmediateVTK","measurePromiseExecution","performance","finally","delta","publicAPI","callbacks","isInteger","mtime","classHierarchy","hierarchy","off","on","freeze","isDeleted","deleted","otherMTime","getMTime","onModified","className","getClassName","noWarning","noFunction","ret","_len3","list","_key3","subset","getReferenceByName","delete","field","jsonArchive","sortedObj","sort","shallowCopy","other","otherModel","keyList","otherKeyList","keyIdx","vtkObjToJSON","objectGetterMap","getter","fieldNames","objectSetterMap","enum","onChanged","RangeError","previousValue","_len4","_key4","reduce","acc","idx","findSetter","getSetter","setter","fields","setGet","getArray","setArray","defaultVal","_len5","_key5","array","changeDetected","needCopy","otherArray","setGetArray","moveToProtected","fieldName","algo","numberOfInputs","numberOfOutputs","inputData","inputConnection","inputArrayToProcess","setInputData","dataset","getInputData","setInputConnection","outputPort","msg","getInputConnection","getPortToFill","portToFill","addInputConnection","addInputData","getOutputData","shouldUpdate","update","localMTime","minOutputMTime","mt","getOutputPort","outputPortAccess","ins","getNumberOfInputPorts","getNumberOfOutputPorts","getInputArrayToProcess","inputPort","arrayDesc","ds","fieldAssociation","arrayName","setInputArrayToProcess","attributeType","EVENT_ABORT","event","eventName","previousDelete","curCallbackID","callbackID","cbID","invoke","currentCallbacks","cb","priority","continueNext","cb1","cb2","_ref","newInstance","initialValues","_len6","_key6","_len7","_key7","isVtkObject","traverseInstanceTree","extractFunction","accumulator","visitedInstances","modelObj","subObj","debounce","func","wait","immediate","_this","debounced","_len8","_key8","later","callNow","clearTimeout","throttle","delay","isThrottled","argsToUse","wrapper","_len9","_key9","keystore","initialKeystore","setKey","getKey","getAllKeys","deleteKey","clearKeystore","nextProxyId","ROOT_GROUP_NAME","proxy","parentDelete","proxyId","ui","propertyMap","groupChildrenNames","registerProperties","descriptionList","currentGroupName","childrenNames","children","updateUI","listProxyProperties","gName","updateProxyProperty","propertyName","propUI","activate","proxyManager","setActiveMethod","getProxyGroup","propertyLinkSubscribers","registerPropertyLinkForGC","otherLink","gcPropertyLinks","subscribers","unbind","propertyLinkMap","getPropertyLink","persistent","links","updateInProgress","force","needUpdate","sourceLink","link","newValue","linkToUpdate","indexToDelete","subscription","updateMe","linkHandler","getProperties","groupName","propertyNames","listPropertyNames","getPropertyByName","getPropertyDomainByName","getProxySection","proxyGroup","properties","registerLinks","updateOnBind","sLink","proxyPropertyMapping","subscriptions","modelKey","methodSrc","methodDst","proxyPropertyState","this","applyState","modelKeys","mapping","propValues","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","normalizeWheel","wheelEvent","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","macro","setImmediate","macro$1","__proto__","A","B","C","D","E","F","G","H","I","J","K","L","M","T","V","_","IDENTITY","IDENTITY_3X3","VTK_SMALL_NUMBER","Constants","randomSeedValue","VTK_MAX_ROTATIONS","notImplemented","swapRowsMatrix_nxn","matrix","row1","row2","swapColumnsMatrix_nxn","column1","column2","createArray","res","Pi","ldexp","exponent","radiansFromDegrees","deg","degreesFromRadians","arrayMin","minValue","arrayMax","maxValue","arrayRange","ceilLog2","factorial","nearestPowerOfTwo","xi","isPowerOfTwo","binomial","beginCombination","nextCombination","randomSeed","getSeed","gaussian","scalar","multiplyScalar2D","multiplyAccumulate","multiplyAccumulate2D","outer","out_3x3","Zx","Zy","Zz","norm","sum","den","perpendiculars","theta","dx","dy","dz","sintheta","costheta","projectVector","projection","bSquared","dot2D","projectVector2D","distance2BetweenPoints","angleBetweenVectors","v1","v2","crossVect","atan2","signedAngleBetweenVectors","vN","gaussianAmplitude","mean","variance","distanceFromMean","exp","gaussianWeight","outer2D","out_2x2","norm2D","x2D","normalize2D","rowsToMat4","row0","row3","columnsToMat4","column0","column3","rowsToMat3","columnsToMat3","determinant2x2","NaN","LUFactor3x3","mat_3x3","index_3","maxI","largest","LUSolve3x3","x_3","linearSolve3x3","y_3","c1","c2","c3","d1","d2","d3","e1","e2","e3","f1","f2","f3","v3","multiply3x3_vect3","in_3","out_3","multiply3x3_mat3","a_3x3","b_3x3","copyA","copyB","multiplyMatrix","rowA","colA","rowB","colB","outRowAColB","transpose3x3","in_3x3","outT_3x3","invert3x3","outI_3x3","determinant3x3","areEquals","eps","isEqual","element","every","areMatricesEqual","identity3x3","isIdentity","isIdentity3x3","quaternionToMatrix3x3","quat_4","ww","rr","roundNumber","sig","roundVector","vector","jacobiN","iq","ip","numPos","tresh","tau","sm","vtkROTATE","aa","ii","jj","ceil_half_n","matrix3x3ToQuaternion","eigenvectors","eigenvalues","NTemp","multiplyQuaternion","quat_1","quat_2","quat_out","xw","yw","zw","orthogonalize3x3","x3","y3","flip","quat","diagonalize3x3","w_3","v_3x3","maxVal","vectTmp1","vectTmp2","eigenValTmp","singularValueDecomposition3x3","u_3x3","vT_3x3","luFactorLinearSystem","temp1","temp2","luSolveLinearSystem","solveLinearSystem","invertMatrix","AI","column","tmp1Size","tmp2Size","estimateMatrixCondition","MAX_VALUE","jacobi","solveHomogeneousLeastSquares","numberOfSamples","xt","xOrder","XXt","eigenvals","eigenvecs","solveLeastSquares","yt","yOrder","checkHomogeneous","homogenFlags","allHomogeneous","hmt","homogRC","someHomogeneous","XXtI","XYt","successFlag","hex2float","hexStr","outFloatArray","rgb2hsv","rgb","hsv","onethird","onesixth","twothird","cmax","cmin","hsv2rgb","fivesixth","lab2xyz","lab","xyz","var_Y","var_X","var_Z","ref_X","ref_Y","ref_Z","xyz2lab","xyz2rgb","rgb2xyz","rgb2lab","lab2rgb","uninitializeBounds","bounds","areBoundsInitialized","computeBoundsFromPoints","point1","point2","clampValue","clampVector","minVector","maxVector","clampAndNormalizeValue","range","getScalarTypeFittingRange","getAdjustedScalarRange","extentIsWithinOtherExtent","extent1","extent2","boundsIsWithinOtherBounds","bounds1_6","bounds2_6","delta_3","pointIsWithinBounds","point_3","bounds_6","solve3PointCircle","p1","p2","p3","v21","v32","v13","v12","v23","v31","norm12","norm23","norm13","crossv21v32","normCross","radius","normCross22","alpha","beta","gamma","inf","negInf","isInf","isFinite","isNaN","isNan","createUninitializedBounds","getMajorAxisIndex","axisIndex","getSparseOrthogonalMatrix","rows","cols","bestValue","bestRowI","bestColI","rowI","row","colI","col","absVal","matIdx","floatToHex2","integer","floatRGB2HexCode","rgbArray","prefix","floatToChar","float2CssRGBA","vtkMath","vtkMath$1","$","N","O","P","Q","R","U","W","Y","Z","a$","aA","aB","aC","aD","aE","aF","aG","aH","aI","aJ","aK","aL","aM","aN","aO","aP","aQ","aR","aS","aT","aU","aV","aW","aX","aY","aZ","a_","ab","ac","ad","ae","af","ag","ah","ai","aj","ak","al","am","an","ao","ap","aq","ar","as","at","au","av","vtkImplicitFunction","functionValue","evaluateFunction","transformedXYZ","transformPoint","_xyz","DEFAULT_VALUES","vtkImplicitFunction$1","PLANE_TOLERANCE","COINCIDE","DISJOINT","evaluate","normal","origin","distanceToPlane","projectPoint","xproj","xo","vproj","n2","generalizedProjectPoint","intersectWithLine","outObj","intersection","betweenPoints","p21","p1Origin","fabsden","fabstolerance","intersectWithPlane","plane1Origin","plane1Normal","plane2Origin","plane2Normal","l0","l1","cross$1","absCross","maxc","iP","STATIC","vtkPlane","evaluateGradient","retVal","planeOrigin","planeNormal","vtkPlane$1","vec3","INIT_BOUNDS","isValid","setBounds","otherBounds","reset","addPoint","xMin","xMax","yMin","yMax","zMin","zMax","addPoints","points","addBounds","_xMin","_xMax","_yMin","_yMax","_zMin","_zMax","setMinPoint","setMaxPoint","inflate","getCenter","scaleAboutCenter","getLength","getLengths","getXRange","getYRange","getZRange","getMaxLength","getDiagonalLength","getMinPoint","getMaxPoint","oppositeSign","getCorners","corners","ix","iy","iz","computeCornerPoints","transformBounds","computeScale3","scale3","computeLocalBounds","pointsData","getData","point","du","dv","dw","intersectBox","dir","coord","tolerance","inside","quadrant","whichPlane","maxT","candidatePlane","RIGHT","LEFT","MIDDLE","intersectPlane","sign","firstOne","intersect","bBounds","newBounds","intersects","containsPoint","contains","cutWithPlane","ti","bound","BoundingBox","refBounds","getBounds","vtkBoundingBox","fromMat4","fromMat2d","normalFromMat4","height","v4","iw","mat3","vec4","setAxisAngle","getAxisAngle","out_axis","getAngle","dotproduct","calculateW","et","ln","slerp","omega","cosom","sinom","scale0","scale1","u1","u2","u3","sqrt1MinusU1","sqrtU1","invDot","conjugate","fromMat3","fTrace","fRoot","fromEuler","halfToRad","cx","cy","cz","rotationTo","tmpvec3","xUnitVec3","yUnitVec3","sqlerp","setAxes","matr","view","CoordinateSystem","DISPLAY","WORLD","vtkProp","m1","textures","m2","processSelectorPixelBuffers","selector","pixeloffsets","getNestedProps","getActors","getActors2D","getVolumes","pick","hasKey","getNestedVisibility","visibility","_parentProp","getNestedPickable","pickable","getNestedDragable","dragable","getRedrawMTime","setEstimatedRenderTime","estimatedRenderTime","savedEstimatedRenderTime","restoreEstimatedRenderTime","addEstimatedRenderTime","setAllocatedRenderTime","allocatedRenderTime","getSupportsSelection","getTextures","hasTexture","texture","addTexture","removeTexture","newTextureList","removeAllTextures","setCoordinateSystemToWorld","setCoordinateSystem","setCoordinateSystemToDisplay","coordinateSystem","paths","renderTimeMultiplier","useBounds","vtkProp$1","mat4","VTK_EPSILON","vtkProp3D","addPosition","deltaXYZ","getOrientationWXYZ","rotation","oaxis","getOrientationQuaternion","rotateWXYZ","degrees","quatMat","rotateQuaternion","orientationQuaternion","oriQuatMat","setOrientation","orientation","setUserMatrix","userMatrix","getMatrix","computeMatrix","matrixMTime","getUserMatrix","updateIdentityFlag","userMatrixMTime","cachedProp3D","vtkProp3D$1","Shading","FLAT","GOURAUD","PHONG","Representation","POINTS","WIREFRAME","SURFACE","Interpolation","PropertyConst","vtkProperty","setColor","color","setDiffuseColor","setAmbientColor","setSpecularColor","computeCompositeColor","getColor","ambient","diffuse","specular","ambientColor","diffuseColor","specularColor","setSpecularPower","specularPower","roughness","addShaderVariable","setInterpolationToFlat","setInterpolation","setInterpolationToGouraud","setInterpolationToPhong","getInterpolationAsString","interpolation","setRepresentationToWireframe","setRepresentation","setRepresentationToSurface","setRepresentationToPoints","getRepresentationAsString","representation","edgeColor","metallic","normalStrength","emission","baseIOR","opacity","edgeVisibility","backfaceCulling","frontfaceCulling","pointSize","lineWidth","lighting","shading","materialName","vtkProperty$1","vtkActor","superClass","getIsOpaque","forceOpaque","forceTranslucent","isOpaque","getOpacity","isTranslucent","mapper","hasTranslucentPolygonalGeometry","setProperty","makeProperty","bds","mapperBounds","boundsMTime","bbox","tmp4","pt","time","backfaceProperty","getInput","getInputAlgorithm","pixelOffsets","vtkActor$1","vtkAbstractMapper","addClippingPlane","plane","clippingPlanes","getNumberOfClippingPlanes","removeAllClippingPlanes","removeClippingPlane","clippingPlane","getClippingPlanes","setClippingPlanes","planes","nbPlanes","getClippingPlaneInDataCoords","propMatrix","hnormal","clipPlanes","getNormal","getOrigin","vtkAbstractMapper$1","vtkAbstractMapper3D","defaultValues","viewSpecificProperties","vtkAbstractMapper3D$1","DataTypeByteSize","VtkDataTypes","CHAR","SIGNED_CHAR","UNSIGNED_CHAR","UNSIGNED_CHAR_CLAMPED","SHORT","UNSIGNED_SHORT","INT","UNSIGNED_INT","FLOAT","DOUBLE","DefaultDataType","newInstance$1","fastComputeRange","numberOfComponents","createRangeHelper","getRange","computeRange","component","numberOfValues","nextJ","ensureRangeSize","rangeArray","ranges","getDataType","typedArray","getMaxNorm","normArray","numComps","getNumberOfComponents","maxNorm","tuple","getNumberOfTuples","getTuple","norm$1","vtkDataArray","resize","requestedNumTuples","curNumTuples","oldValues","dataType","dataChange","newSize","initialize","getElementComponentSize","BYTES_PER_ELEMENT","getComponent","tupleIdx","compIdx","setComponent","getValue","valueIdx","comp","setValue","componentIndex","rangeIdx","rangeTuple","setRange","rangeValue","getRanges","computeRanges","structuredClone","setTuple","setTuples","tuples","last","insertTuple","insertTuples","insertNextTuple","insertNextTuples","findTuple","tupleToFill","getTuples","fromId","toId","to","getTupleLocation","getNumberOfValues","newClone","empty","getName","setData","deepCopy","currentType","currentArray","interpolateTuple","source1","source1Idx","source2","source2Idx","tuple1","tuple2","vtkDataArray$1","vtkFieldData","superGetState","arrays","initializeFields","copyAllOn","clearFieldFlags","copyFieldFlags","copyStructure","getCopyFieldFlags","getNumberOfArrays","getNumberOfActiveArrays","addArray","getArrayWithIndex","removeAllArrays","removeArray","findIndex","removeArrayByIndex","arrayIdx","getArrays","entry","arraySpec","getArrayByIndex","getArrayByName","hasArray","getArrayName","getFlag","passData","copyFlag","doCopyAllOff","destArr","getAttributes","attrType","ncomps","tId","interpolateData","fromId1","fromId2","copyFieldOn","copyFieldOff","doCopyAllOn","copyAllOff","arrNew","copyFlags","vtkFieldData$1","AttributeTypes","SCALARS","VECTORS","NORMALS","TCOORDS","TENSORS","GLOBALIDS","PEDIGREEIDS","EDGEFLAG","NUM_ATTRIBUTES","AttributeLimitTypes","MAX","EXACT","NOLIMIT","CellGhostTypes","DUPLICATECELL","HIGHCONNECTIVITYCELL","LOWCONNECTIVITYCELL","REFINEDCELL","EXTERIORCELL","HIDDENCELL","PointGhostTypes","DUPLICATEPOINT","HIDDENPOINT","AttributeCopyOperations","COPYTUPLE","INTERPOLATE","PASSDATA","ALLCOPY","ghostArrayName","DesiredOutputPrecision","DEFAULT","SINGLE","vtkDataSetAttributes","attrTypes","cleanAttributeType","attType","cleanAttType","ee","checkNumberOfComponents","uncleanAttType","currentAttribute","setActiveAttributeByName","setActiveAttributeByIndex","getActiveAttribute","activeVal","da","copyAttributeFlags","initializeAttributeCopyFlags","op","attCopyOp","ty","dataArrays","superShallowCopy","activeScalars","activeVectors","activeTensors","activeNormals","activeTCoords","activeGlobalIds","activePedigreeIds","vtkDataSetAttributes$1","FieldDataTypes","UNIFORM","DATA_OBJECT_FIELD","COORDINATE","POINT_DATA","POINT","POINT_FIELD_DATA","CELL","CELL_FIELD_DATA","VERTEX","VERTEX_FIELD_DATA","EDGE","EDGE_FIELD_DATA","ROW","ROW_DATA","FieldAssociations","FIELD_ASSOCIATION_POINTS","FIELD_ASSOCIATION_CELLS","FIELD_ASSOCIATION_NONE","FIELD_ASSOCIATION_POINTS_THEN_CELLS","FIELD_ASSOCIATION_VERTICES","FIELD_ASSOCIATION_EDGES","FIELD_ASSOCIATION_ROWS","NUMBER_OF_ASSOCIATIONS","DATASET_FIELDS","vtkDataSet","vtkDataSet$1","StructuredType","UNCHANGED","SINGLE_POINT","X_LINE","Y_LINE","Z_LINE","XY_PLANE","YZ_PLANE","XZ_PLANE","XYZ_GRID","EMPTY","getDataDescriptionFromExtent","inExt","dataDim","vtkStructuredData","vtkImageData","setExtent","inExtent","extentArray","extent","dataDescription","setDimensions","getDimensions","getNumberOfCells","dims","nCells","getNumberOfPoints","getPoint","ijk","coords","indexToWorld","extentToBounds","getSpatialExtent","computeTransforms","direction","spacing","worldToIndex","ain","aout","indexToWorldVec3","worldToIndexVec3","indexToWorldBounds","bin","bout","worldToIndexBounds","computeHistogram","worldBounds","voxelFunction","dimensions","yStride","zStride","pixels","getPointData","getScalars","maximum","minimum","sumOfSquares","isum","inum","pixel","average","sigma","computeIncrements","increments","incr","computeOffsetIndex","getExtent","getOffsetIndexFromWorld","getScalarValueFromWorld","offsetIndex","vtkImageData$1","VectorMode","MAGNITUDE","COMPONENT","RGBCOLORS","ScalarMappingTarget","LUMINANCE","LUMINANCE_ALPHA","RGB","RGBA","vtkScalarsToColors","ColorMode","MAP_SCALARS","DIRECT_SCALARS","ScalarMode","USE_POINT_DATA","USE_CELL_DATA","USE_POINT_FIELD_DATA","USE_CELL_FIELD_DATA","USE_FIELD_DATA","GetArray","BY_ID","BY_NAME","vtkScalarsToColors$2","intColorToUChar","floatColorToUChar","setVectorModeToMagnitude","setVectorMode","setVectorModeToComponent","setVectorModeToRGBColors","setAnnotations","annotations","annotationArray","annotation","updateAnnotatedValueMap","setAnnotation","checkForAnnotatedValue","getNumberOfAnnotatedValues","getAnnotatedValue","getAnnotation","getAnnotatedValueIndex","removeAnnotation","needToRemove","resetAnnotations","annotatedValueMap","getAnnotationColor","rgba","indexedLookup","getIndexedColor","parseFloat","getAnnotatedValueIndexInternal","na","mapScalars","scalars","colorMode","componentIn","newColors","convertToRGBA","newscalars","mapVectorsThroughTable","mapScalarsThroughTable","mapVectorsToMagnitude","input","compsToUse","inIncr","outputV","inputV","outputFormat","vectorComponentIn","vectorSizeIn","vectorMode","getVectorMode","vectorSize","vectorComponent","inComponents","getVectorComponent","getVectorSize","inputOffset","magValues","luminanceToRGBA","colors","convtFun","newValues","luminanceAlphaToRGBA","rGBToRGBA","rGBAToRGBA","numComp","numTuples","usingLogScale","getNumberOfAvailableColors","getMappingRange","areScalarsOpaque","mappingRange","vtkScalarsToColors$1","BELOW_RANGE_COLOR_INDEX","ABOVE_RANGE_COLOR_INDEX","NAN_COLOR_INDEX","vtkLookupTable","opaqueFlagBuildTime","opaque","nanColor","useBelowRangeColor","belowRangeColor","useAboveRangeColor","aboveRangeColor","table","opaqueFlag","linearIndexLookup","dIndex","nv","maxIndex","linearLookup","indexedLookupFunction","numberOfColors","lookupShiftAndScale","outFormat","lookupFunc","trange","getNumberOfColors","getAlpha","cptr","forceBuild","hinc","sinc","vinc","ainc","hueRange","saturationRange","valueRange","alphaRange","buildSpecialColors","buildTime","setTable","nbComponents","colorOffset","insertTime","tptr","base","vtkLookupTable$1","Resolve","Off","PolygonOffset","resolveCoincidentTopologyPolygonOffsetFaces","resolveCoincidentTopology","RESOLVE_COINCIDENT_TOPOLOGY_MODE","getResolveCoincidentTopologyPolygonOffsetFaces","setResolveCoincidentTopologyPolygonOffsetFaces","changed","getResolveCoincidentTopology","setResolveCoincidentTopology","setResolveCoincidentTopologyToDefault","setResolveCoincidentTopologyToOff","setResolveCoincidentTopologyToPolygonOffset","getResolveCoincidentTopologyAsString","otherStaticMethods","addCoincidentTopologyMethods","nameList","CATEGORIES","staticOffsetModel","Polygon","factor","Line","Point","staticOffsetAPI","implementCoincidentTopologyMethods","topologyOffset","getCoincidentTopologyPolygonOffsetParameters","globalValue","getResolveCoincidentTopologyPolygonOffsetParameters","localValue","getRelativeCoincidentTopologyPolygonOffsetParameters","getCoincidentTopologyLineOffsetParameters","getResolveCoincidentTopologyLineOffsetParameters","getRelativeCoincidentTopologyLineOffsetParameters","getCoincidentTopologyPointOffsetParameter","getResolveCoincidentTopologyPointOffsetParameters","getRelativeCoincidentTopologyPointOffsetParameters","CoincidentTopologyHelper","PassTypes","MIN_KNOWN_PASS","ACTOR_PASS","COMPOSITE_INDEX_PASS","ID_LOW24","ID_HIGH24","MAX_KNOWN_PASS","updateZigzaggingCoordinates","coordinates","directionX","directionY","getIndexFromCoordinates","getZigZagTextureCoordinatesFromTexelPosition","textureCoordinate","texelIndexPosition","intTexelIndex","xCoordBeforeWrap","xDirection","xEndFlag","intRowIndex","yCoordBeforeWrap","yDirection","yEndFlag","remainder","colorTextureCoordinatesCache","WeakMap","getOrCreateColorTextureCoordinates","numberOfColorsInRange","useLogScale","useZigzagPattern","argStrings","argIndex","stringHash","cachedResult","textureCoordinates","scalarTexelWidth","paddedRangeMin","paddedRangeMax","textureSOrigin","textureSCoeff","texelIndexOrigin","texelIndexCoeff","numScalars","useMagnitude","numberOfOutputComponents","nanTextureCoordinate","inputIdx","outputIdx","scalarIdx","scalarValue","compValue","applyLogScale","textureS","vtkMapper","static","setForceCompileOnly","forceCompileOnly","setSelectionWebGLIdsToVTKIds","selectionWebGLIdsToVTKIds","createDefaultLookupTable","lookupTable","getColorModeAsString","setColorModeToDefault","setColorMode","setColorModeToMapScalars","setColorModeToDirectScalars","getScalarModeAsString","scalarMode","setScalarModeToDefault","setScalarMode","setScalarModeToUsePointData","setScalarModeToUseCellData","setScalarModeToUsePointFieldData","setScalarModeToUseCellFieldData","setScalarModeToUseFieldData","getAbstractScalars","arrayAccessMode","arrayId","scalarVisibility","cellFlag","getCellData","pd","cd","fd","getFieldData","colorByArrayName","areScalarsMappedFromCells","colorCoordinates","colorTextureMap","colorMapColors","colorBuildString","useLookupTableScalarRange","getLookupTable","scalarRange","canUseTextureMapForColoring","mapScalarsToTexture","lut","fieldDataTupleId","getLogRange","origAlpha","setAlpha","numberOfAvailableColors","maxTextureWidthForCells","maxColorsInRangeForCells","maxTextureWidthForPoints","maxColorsInRangeForPoints","minColorsInRange","maxColorsInRange","numberOfColorsForCells","numberOfColorsInUpperRowForPoints","textureDimensions","textureSize","scalarsArray","numberOfNonSpecialColors","numberOfNonNaNColors","rangeMin","rangeDifference","scalarsArrayIndex","scalarsDataArray","colorsDataArray","setScalars","scalarComponent","gasResult","interpolateScalarsBeforeMapping","getIndexedLookup","clearColorArrays","getPrimitiveCount","pcount","getPoints","verts","getVerts","lines","getLines","triangles","getPolys","acquireInvertibleLookupTable","valueToColor","colorToValue","useInvertibleColorFor","clearInvertibleColor","populateSelectionSettings","rawLowData","getRawPixelBuffer","rawHighData","currentPass","getCurrentPass","getFieldAssociation","idMap","cells","pos","inValue","outValue","lowData","getPixelBuffer","highData","renderTime","useInvertibleColors","invertibleScalars","customShaderAttributes","vtkMapper$1","extractCellSizes","cellArray","currentIdx","cellId","cellArrayIndex","vtkCellArray","recompute","numberOfCells","cellSizes","getCellSizes","oldNumTuples","newNumTuples","getCell","loc","cellLoc","numberOfPoints","insertNextCell","cellPointIds","vtkCellArray$1","INVALID_BOUNDS","vtkPoints","setNumberOfPoints","nbPoints","dimension","setNumberOfComponents","setPoint","findPoint","insertNextPoint","xRange","yRange","zRange","computeBounds","vtkPoints$1","vtkCell","pointIdsList","pointsIds","triangleData","pointId","pointOffset","trianglePointOffset","getLength2","diff","getParametricDistance","pcoords","pDist","pDistMax","cell","getCellDimension","tol","subId","evaluatePosition","closestPoint","dist2","weights","vtkCell$1","InitLink","ncells","vtkCellLinks","buildLinks","numPts","numCells","linkLoc","getCellPoints","cellPointId","incrementLinkCount","allocateLinks","maxId","insertCellReference","getPointsIds","allocate","numLinks","ext","getLink","ptId","getNcells","getCells","insertNextCellReference","deletePoint","removeCellReference","addCellReference","resizeCellList","squeeze","src","vtkCellLinks$1","CellType","VTK_EMPTY_CELL","VTK_VERTEX","VTK_POLY_VERTEX","VTK_LINE","VTK_POLY_LINE","VTK_TRIANGLE","VTK_TRIANGLE_STRIP","VTK_POLYGON","VTK_PIXEL","VTK_QUAD","VTK_TETRA","VTK_VOXEL","VTK_HEXAHEDRON","VTK_WEDGE","VTK_PYRAMID","VTK_PENTAGONAL_PRISM","VTK_HEXAGONAL_PRISM","VTK_QUADRATIC_EDGE","VTK_QUADRATIC_TRIANGLE","VTK_QUADRATIC_QUAD","VTK_QUADRATIC_POLYGON","VTK_QUADRATIC_TETRA","VTK_QUADRATIC_HEXAHEDRON","VTK_QUADRATIC_WEDGE","VTK_QUADRATIC_PYRAMID","VTK_BIQUADRATIC_QUAD","VTK_TRIQUADRATIC_HEXAHEDRON","VTK_QUADRATIC_LINEAR_QUAD","VTK_QUADRATIC_LINEAR_WEDGE","VTK_BIQUADRATIC_QUADRATIC_WEDGE","VTK_BIQUADRATIC_QUADRATIC_HEXAHEDRON","VTK_BIQUADRATIC_TRIANGLE","VTK_CUBIC_LINE","VTK_CONVEX_POINT_SET","VTK_POLYHEDRON","VTK_PARAMETRIC_CURVE","VTK_PARAMETRIC_SURFACE","VTK_PARAMETRIC_TRI_SURFACE","VTK_PARAMETRIC_QUAD_SURFACE","VTK_PARAMETRIC_TETRA_REGION","VTK_PARAMETRIC_HEX_REGION","VTK_HIGHER_ORDER_EDGE","VTK_HIGHER_ORDER_TRIANGLE","VTK_HIGHER_ORDER_QUAD","VTK_HIGHER_ORDER_POLYGON","VTK_HIGHER_ORDER_TETRAHEDRON","VTK_HIGHER_ORDER_WEDGE","VTK_HIGHER_ORDER_PYRAMID","VTK_HIGHER_ORDER_HEXAHEDRON","VTK_LAGRANGE_CURVE","VTK_LAGRANGE_TRIANGLE","VTK_LAGRANGE_QUADRILATERAL","VTK_LAGRANGE_TETRAHEDRON","VTK_LAGRANGE_HEXAHEDRON","VTK_LAGRANGE_WEDGE","VTK_LAGRANGE_PYRAMID","VTK_NUMBER_OF_CELL_TYPES","CellTypesStrings","getClassNameFromTypeId","typeId","getTypeIdFromClassName","cellTypeString","isLinear","hasSubCells","cellType","vtkCellTypes","typeArray","locationArray","insertCell","setCellTypes","cellTypes","cellLocations","getCellLocation","deleteCell","getNumberOfTypes","isType","numTypes","getCellType","insertNextType","getSize","getExtend","getTypeArray","getLocationArray","getMaxId","vtkCellTypes$1","IntersectionState","NO_INTERSECTION","YES_INTERSECTION","ON_LINE","distanceToLine","MIN_VALUE","closest","denom","b1a1","minDist","l2","vtkLine","isBetweenPoints","projXYZ","outDistance","evaluateLocation","evaluateOrientation","orientations","vtkLine$1","vtkPointSet","vtkPointSet$1","computeNormalDirection","computeNormal","intersectWithTriangle","q1","r1","q2","r2","coplanar","pt1","pt2","surfaceId","n1","dist1","pts1","pts2","n1n2","index1","index2","t1","t2","ts1","ts2","id1","id2","val1","val2","t12","t22","t11","t21","tt1","tt2","vtkTriangle","tol2","pt3","evaluation","dist2Pt1Pt2","dist2Pt2Pt3","dist2Pt3Pt1","intersectLine","pt3Pt1","pt3Pt2","pt3X","fabsn","rhs","indices","dist2Point","dist2Line1","dist2Line2","closestPoint1","closestPoint2","cp","maxComponent","lineDistance","p0","pc","vtkTriangle$1","POLYDATA_FIELDS","CELL_FACTORY","vtkPolyData","camelize","letter","buildCells","nVerts","getNumberOfVerts","nLines","getNumberOfLines","nPolys","getNumberOfPolys","nStrips","getNumberOfStrips","types","pTypes","locs","pLocs","nextCellPts","numCellPts","polys","strips","initialSize","getPointCells","getCellEdgeNeighbors","link1","link2","cellHint","cellInfo","vtkPolyData$1","vtkSphereSource","inData","outData","pointDataType","pointType","numPoles","thetaResolution","startTheta","endTheta","startPhi","endPhi","deltaTheta","jStart","jEnd","phiResolution","numPolys","pointIdx","normals","cellLocation","deltaPhi","phi","numOffset","latLongTessellation","normalArray","setNormals","vtkSphereSource$1","showconsole","show","VUE_APP_CONSOLE","toRawObject","onMounted","onUnmounted","watch","reactive","nextTick","eventTarget","requestPoolManager","geometryLoader","CONSTANTS","Enums","RenderingEngine","setVolumesForViewports","destroy","ToolGroupManager","csToolsEnums","SegmentationIntersectionTool","TrackballRotateTool","CrosshairsTool","StackScrollTool","PanTool","ZoomTool","segmentation","MouseBindings","ViewportType","OrientationAxis","GeometryType","CAMERA_MODIFIED","VOLUME_NEW_IMAGE","VOI_MODIFIED","WEB_WORKER_PROGRESS","Events","imageIds","surfaceDatas","labelDatas","setup","viewportIdD3","axialElement","coronalElement","d3Element","sagittalElement","defaultRange","initDemoFlag","initDataFlag","initToolFlag","initSurfaceSegmentFlag","initLabelSegmentFlag","sphereCenterPoint","sphereSource","renderingEngine","toolGroup","toolGroup3d","volumeId","toolGroupId","toolGroupId3d","segmentationId","showcornerstone","deep","renderSurfaceSegmentations","addComponentTool","addTool","setMaxCacheSize","viewportColors","getReferenceLineColor","viewportId","elementEventListener","setMaxSimultaneousRequests","RequestType","Prefetch","volume","createAndCacheVolume","renderingEngineId","viewportInput","ORTHOGRAPHIC","defaultOptions","AXIAL","CORONAL","SAGITTAL","VOLUME_3D","setViewports","D3Actor","getViewport","getDefaultActor","actor","applyPreset","VIEWPORT_PRESETS","preset","dicomNodeViewer","load","createToolGroup","addViewport","toolName","setToolActive","bindings","mouseButton","Secondary","zoomToCenter","pan","pinchToZoom","Auxiliary","isMobile","matchMedia","matches","referenceLinesCenterGapRadius","getReferenceLineControllable","getReferenceLineDraggableRotatable","getReferenceLineSlabThicknessControlsOn","mobile","enabled","handleRadius","Primary","setToolEnabled","configuration","renderViewports","updateCrosshairsPoints","createAndCacheGeometry","surface","geometryId","closedSurface","segmentIndex","geometryData","frameOfReferenceUID","processGeometries","surfaces","newSurfaces","Map","createSphere","setMapper","actorEntry","uid","viewport","addActor","resetCamera","render","getToolInstance","setOnDragPointListener","callBack","setCenter","world","geometryIds","addSegmentations","SegmentationRepresentations","Surface","addSegmentationRepresentations","Labelmap","resizeCanvas","evt","progress","getZoom","windowLevel","toWindowLevel","purgeCache","toolSel","mprLayoutFlagIcons","rotationTimer","stlAllShowFlag","style","_normalizeStyle","dicombottomHeight","patientFlag","$props","patient","HospitalName","Division","PatientName","_createVNode","_component_data_manager_viewer","dataManager","onStlopacity","stlopacity","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","inBrowser","isDef","isPromise","catch","getTime","isNumeric","isIOS","noop","_a","ignoreUndefined","windowHeight","addUnit","getSizeStyle","originSize","getZIndexStyle","zIndex","rootFontSize","getRootFontSize","doc","documentElement","fontSize","getComputedStyle","convertRem","convertVw","convertVh","unitToPx","camelizeRE","kebabCase","padZero","targetLength","clamp","trimExtraChar","char","regExp","formatNumber","allowDot","allowMinus","addNumber","num1","num2","cardinal","withInstall","install","app","getCurrentInstance","useExpose","apis","createApp","usePopupState","toggle","transitionAppear","close","mountComponent","RootComponent","root","body","appendChild","mount","unmount","removeChild","assignKey","deepAssign","stdin_default","tel","save","confirm","loading","noCoupon","nameEmpty","addContact","telInvalid","vanCalendar","title","weekdays","monthTitle","year","month","rangePrompt","maxRange","vanCascader","select","vanPagination","prev","vanPullRefresh","pulling","loosing","vanSubmitBar","label","vanCoupon","unlimited","discount","condition","vanCouponCell","vanCouponList","exchange","enable","disabled","placeholder","vanAddressEdit","area","postal","areaEmpty","addressEmpty","postalEmpty","addressDetail","defaultAddress","vanAddressList","defaultMessages","lang","messages","Locale","newLang","newMessages","locale","createTranslate","genBem","mods","createBEM","createNamespace","prefixedName","unknownProp","numericProp","truthProp","Boolean","makeRequiredProp","required","makeArrayProp","makeNumberProp","makeNumericProp","makeStringProp","lockCount","lockClick","lock","classList","createVNode","computed","defineComponent","bem","badgeProps","tag","showZero","slots","hasContent","renderContent","style2","background","startsWith","marginTop","marginLeft","renderBadge","fixed","_Badge","Badge","globalZIndex","useGlobalZIndex","setGlobalZIndex","provide","watchEffect","CONFIG_PROVIDER_KEY","configProviderProps","themeVars","iconPrefix","mapThemeVarsToCSSVars","cssVars","mergeProps","_mergeProps","inject","isImage","name2","iconProps","badge","classPrefix","isImageIcon","_Icon","Icon","popupSharedProps","overlay","duration","teleport","lockScroll","lazyRender","beforeClose","overlayStyle","overlayClass","closeOnClickOverlay","popupSharedPropKeys","callInterceptor","canceled","returnVal","BORDER","BORDER_TOP","BORDER_LEFT","BORDER_BOTTOM","BORDER_SURROUND","BORDER_TOP_BOTTOM","BORDER_UNSET_TOP_BOTTOM","HAPTICS_FEEDBACK","FORM_KEY","supportsPassive","raf","requestAnimationFrame","cancelRaf","cancelAnimationFrame","doubleRaf","unref","isWindow","makeDOMRect","width2","height2","useRect","elementOrRef","innerWidth","innerHeight","getBoundingClientRect","useToggle","defaultValue","ref2","useParent","parent","unlink","internalChildren","isVNode","getCurrentInstance2","flattenVNodes","traverse","children2","child","subTree","findVNodeIndex","vnodes","vnode","sortChildren","publicChildren","orderedPublicChildren","indexA","indexB","useChildren","linkChildren","ref3","computed2","onActivated","onDeactivated","onBeforeUnmount","SECOND","MINUTE","HOUR","DAY","parseTime","days","hours","minutes","seconds","milliseconds","total","isSameSecond","time1","time2","useCountDown","rafId","endTime","counting","deactivated","remain","current","pause","getCurrentRemain","setRemain","_b","onChange","onFinish","microTick","macroTick","remainRemain","tick","millisecond","totalTime","unref3","isRef","unref2","onUnmounted2","onDeactivated2","onActivated2","onMountedOrActivated","hook","mounted","useEventListener","passive","capture","cleaned","attached","target2","stopWatch","oldVal","useClickAway","targets","isClickAway","ref4","useWindowSize","ref5","onMounted2","overflowScrollReg","defaultRoot","isElement","node","ELEMENT_NODE_TYPE","tagName","nodeType","getScrollParent","overflowY","parentNode","useScrollParent","scrollParent","ref6","usePageVisibility","hidden","watch2","inject2","CUSTOM_FIELD_INJECTION_KEY","useCustomFieldValue","customValue","resetValidation","validateWithTrigger","useRaf","interval","isLoop","isStopped","stop","frameWrapper","timestamp","getDirection","useTouch","startX","startY","offsetX","offsetY","isVertical","isHorizontal","touches","clientX","clientY","move","touch","LOCK_DIRECTION_DISTANCE","checkIsIOS","getScrollTop","scrollTop","pageYOffset","setScrollTop","scrollTo","scrollX","getRootScrollTop","setRootScrollTop","getElementTop","scroller","resetScroll","stopPropagation","preventDefault","isStopPropagation","cancelable","isHidden","elementRef","display","parentHidden","offsetParent","totalLockCount","BODY_LOCK_CLASS","useLockScroll","rootRef","shouldLock","DIRECTION_UP","DIRECTION_DOWN","onTouchMove","scrollHeight","offsetHeight","unlock","useLazyRender","inited","POPUP_TOGGLE_KEY","onPopupReopen","popupToggleStatus","withDirectives","_withDirectives","vShow","_vShow","Transition","overlayProps","customStyle","renderOverlay","animationDuration","_Overlay","Overlay","Fragment","_Fragment","Teleport","popupProps","closeIcon","closeable","transition","closeOnPopstate","closeIconPosition","safeAreaInsetTop","safeAreaInsetBottom","inheritAttrs","emits","emit","attrs","opened","shouldReopen","popupRef","onClickOverlay","onClickCloseIcon","renderCloseIcon","onOpened","onClosed","onKeydown","renderPopup","renderTransition","tabindex","focus","_Popup","Popup","SpinIcon","CircularIcon","loadingProps","vertical","textSize","textColor","spinnerStyle","renderText","_Loading","Loading","popupInheritProps","toastProps","icon","iconSize","loadingType","forbidClick","closeOnClick","timer","clickable","toggleClickable","updateShow","clearTimer","renderIcon","hasIcon","renderMessage","VanToast","onClose","queue","allowMultiple","currentOptions","defaultOptionsMap","parseOptions","clear","getInstance","Toast","toast","parsedOptions","createMethod","success","fail","setDefaultOptions","resetDefaultOptions","globalProperties","$toast","secondShowFlag","_renderList","currentIndex","SecondClass","orignMaterColor","orignOpacity","materColor","itemStlopacity","Name","Volume","firstShowFlag","groupSwitch","isOpen","initControll","managers","it","WindowLevelTool","LengthTool","AngleTool","ProbeTool","IMAGE_VOLUME_MODIFIED","GEOMETRY_LOAD_PROGRESS","DataManagerViewer","components","stlDatas","rotationSpeed","d3stlBJ","text","rootElement","initial3DCamera","Set","initDcmDataFlag","initStlDataFlag","toolIndex","clientHeight","showmeshrenderer","passiveTools","Wheel","reset3DViewport","toggleRotation","nextStlBg","getNextStl","hex2Rgb","setStlViewportBg","stlAllShow","showdcmrenderer","nextMprLayoutFlag","getActor","setOpacity","resetAllStlOpacity","changeOpacity","hex","setCamera","setToolPassive","setToolDisabled","dicomWechatViewer","drawMeshItem","init3DCameraInfo","finished","initialCamera","viewportIndicators","numTouchPoints","mesh","loadAndCacheGeometry","Url","MESH","format","MeshType","STL","smoothFlag","sincOption","numberOfIterations","passBand","featureAngle","edgeAngle","nonManifoldSmoothing","featureEdgeSmoothing","boundarySmoothing","normalOption","computePointNormals","computeCellNormals","splitting","defaultActor","framesProcessed","numberOfFrames","clearInterval","setInterval","rotate3DModel","tool","rotateCamera","focalPoint","currStlIndex","getRenderer","setBackground","nextIndex","dicomSegmentator","fetchAndConfigureComponents","netcontent","sm4Config","sm4","netObj","decrypt","Vue"],"sourceRoot":""}
|