@netless/appliance-plugin 1.1.38-beta.0 → 1.1.38-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/appliance-plugin.js +1 -1
- package/dist/appliance-plugin.mjs +1 -1
- package/dist/assets/fullWorker-oCSw6O3g.js +593 -0
- package/dist/assets/subWorker-BifINabz.js +593 -0
- package/dist/{bridge-Dy4qAJh2.js → bridge-9xpV4vrR.js} +1 -1
- package/dist/{bridge-DwZ1Wbur.mjs → bridge-DriJmXUc.mjs} +5 -5
- package/dist/bridge.js +1 -1
- package/dist/bridge.mjs +1 -1
- package/dist/component/textEditor/manager.d.ts +11 -0
- package/dist/core/enum.d.ts +5 -1
- package/dist/core/fontFace.d.ts +48 -0
- package/dist/core/mainEngine.d.ts +8 -11
- package/dist/core/types.d.ts +2 -0
- package/dist/core/utils/indexDB.d.ts +1 -1
- package/dist/core/worker/workerManager.d.ts +2 -0
- package/dist/fullWorker.js +103 -103
- package/dist/{index-_2fP_0Sl.mjs → index-BFJsqXw9.mjs} +1201 -1193
- package/dist/{index-C2MVZqzb.mjs → index-BZEnjbEL.mjs} +7468 -6798
- package/dist/{index-WaXfuCxD.js → index-CKKDVGyO.js} +1 -1
- package/dist/index-CMbFdnXT.js +1 -0
- package/dist/{index-DTbzQbDD.js → index-CR_bcDnN.js} +1 -1
- package/dist/{index-BhVU2Mya.mjs → index-CnJJTu0m.mjs} +7671 -7001
- package/dist/{index-CElZ0WHE.mjs → index-DJnJIbsl.mjs} +1201 -1193
- package/dist/{index-I3Kp1ALi.js → index-DKaW8Kfx.js} +1 -1
- package/dist/{index-DZ-ZGSXh.js → index-DWyeGs6A.js} +1 -1
- package/dist/{index-RGIk2cUF.mjs → index-INqwKLxl.mjs} +1 -1
- package/dist/index-mmq0sYNo.js +1 -0
- package/dist/{index-S9-T6OvV.mjs → index-yvXpy4Qn.mjs} +1 -1
- package/dist/plugin/applianceMultiPlugin.d.ts +1 -1
- package/dist/plugin/applianceSinglePlugin.d.ts +1 -1
- package/dist/plugin/baseApplianceManager.d.ts +25 -1
- package/dist/plugin/baseViewContainerManager.d.ts +5 -1
- package/dist/plugin/displayerView.d.ts +2 -1
- package/dist/plugin/types.d.ts +31 -0
- package/dist/subWorker.js +103 -103
- package/package.json +1 -1
- package/dist/assets/fullWorker-B0Pt8Py_.js +0 -593
- package/dist/assets/subWorker-CleNZH9d.js +0 -593
- package/dist/index-BQ6rzeq9.js +0 -1
- package/dist/index-CsPVcYdq.js +0 -1
|
@@ -0,0 +1,593 @@
|
|
|
1
|
+
var KM=Object.defineProperty;var ZM=(Ie,rn,Je)=>rn in Ie?KM(Ie,rn,{enumerable:!0,configurable:!0,writable:!0,value:Je}):Ie[rn]=Je;var dt=(Ie,rn,Je)=>ZM(Ie,typeof rn!="symbol"?rn+"":rn,Je);(function(){"use strict";var Ie=function(i){var e={};function t(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return i[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}return t.m=i,t.c=e,t.d=function(r,n,s){t.o(r,n)||Object.defineProperty(r,n,{enumerable:!0,get:s})},t.r=function(r){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},t.t=function(r,n){if(n&1&&(r=t(r)),n&8||n&4&&typeof r=="object"&&r&&r.__esModule)return r;var s=Object.create(null);if(t.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:r}),n&2&&typeof r!="string")for(var c in r)t.d(s,c,(function(l){return r[l]}).bind(null,c));return s},t.n=function(r){var n=r&&r.__esModule?function(){return r.default}:function(){return r};return t.d(n,"a",n),n},t.o=function(r,n){return Object.prototype.hasOwnProperty.call(r,n)},t.p="/js/",t(t.s=0)}([function(i,e,t){t.r(e),t.d(e,"version",function(){return et}),t.d(e,"helpers",function(){return $}),t.d(e,"createElement",function(){return Y}),t.d(e,"isSpriteNode",function(){return B}),t.d(e,"registerNode",function(){return N});var r=t(12);t.d(e,"ENV",function(){return r.ENV});var n=t(68);t.d(e,"requestAnimationFrame",function(){return n.requestAnimationFrame}),t.d(e,"cancelAnimationFrame",function(){return n.cancelAnimationFrame});var s=t(70);t.d(e,"Node",function(){return s.default});var c=t(217);t.d(e,"Cloud",function(){return c.default});var l=t(219);t.d(e,"Block",function(){return l.default});var f=t(224);t.d(e,"Sprite",function(){return f.default});var u=t(226);t.d(e,"Path",function(){return u.default});var v=t(229);t.d(e,"Rect",function(){return v.default});var h=t(231);t.d(e,"Triangle",function(){return h.default});var y=t(236);t.d(e,"Parallel",function(){return y.default});var T=t(238);t.d(e,"Regular",function(){return T.default});var O=t(240);t.d(e,"Star",function(){return O.default});var C=t(242);t.d(e,"Ellipse",function(){return C.default});var S=t(244);t.d(e,"Arc",function(){return S.default});var w=t(246);t.d(e,"Ring",function(){return w.default});var d=t(232);t.d(e,"Polyline",function(){return d.default});var g=t(248);t.d(e,"Label",function(){return g.default});var p=t(250);t.d(e,"Group",function(){return p.default});var P=t(286);t.d(e,"Layer",function(){return P.default});var A=t(287);t.d(e,"SpriteSvg",function(){return A.default});var R=t(289);t.d(e,"LayerWorker",function(){return R.default});var D=t(290);t.d(e,"Scene",function(){return D.default});var U=t(213),L=t(221);t.d(e,"Color",function(){return L.Color}),t.d(e,"Gradient",function(){return L.Gradient});var W=t(72);t(1).glMatrix.setMatrixArrayType(Array);const Y=U.default.createElement,B=U.default.isSpriteNode,N=U.default.registerNode,$={parseColor:L.parseColor,sizeToPixel:W.sizeToPixel,toArray:W.toArray,toString:W.toString,toNumber:W.toNumber};let J;J="3.8.3";const et=J},function(i,e,t){t.r(e);var r=t(2);t.d(e,"glMatrix",function(){return r});var n=t(3);t.d(e,"mat2",function(){return n});var s=t(4);t.d(e,"mat2d",function(){return s});var c=t(5);t.d(e,"mat3",function(){return c});var l=t(6);t.d(e,"mat4",function(){return l});var f=t(7);t.d(e,"quat",function(){return f});var u=t(10);t.d(e,"quat2",function(){return u});var v=t(11);t.d(e,"vec2",function(){return v});var h=t(8);t.d(e,"vec3",function(){return h});var y=t(9);t.d(e,"vec4",function(){return y})},function(i,e,t){t.r(e),t.d(e,"EPSILON",function(){return r}),t.d(e,"ARRAY_TYPE",function(){return n}),t.d(e,"RANDOM",function(){return s}),t.d(e,"setMatrixArrayType",function(){return c}),t.d(e,"toRadian",function(){return f}),t.d(e,"equals",function(){return u});var r=1e-6,n=typeof Float32Array<"u"?Float32Array:Array,s=Math.random;function c(v){n=v}var l=Math.PI/180;function f(v){return v*l}function u(v,h){return Math.abs(v-h)<=r*Math.max(1,Math.abs(v),Math.abs(h))}Math.hypot||(Math.hypot=function(){for(var v=0,h=arguments.length;h--;)v+=arguments[h]*arguments[h];return Math.sqrt(v)})},function(i,e,t){t.r(e),t.d(e,"create",function(){return n}),t.d(e,"clone",function(){return s}),t.d(e,"copy",function(){return c}),t.d(e,"identity",function(){return l}),t.d(e,"fromValues",function(){return f}),t.d(e,"set",function(){return u}),t.d(e,"transpose",function(){return v}),t.d(e,"invert",function(){return h}),t.d(e,"adjoint",function(){return y}),t.d(e,"determinant",function(){return T}),t.d(e,"multiply",function(){return O}),t.d(e,"rotate",function(){return C}),t.d(e,"scale",function(){return S}),t.d(e,"fromRotation",function(){return w}),t.d(e,"fromScaling",function(){return d}),t.d(e,"str",function(){return g}),t.d(e,"frob",function(){return p}),t.d(e,"LDU",function(){return P}),t.d(e,"add",function(){return A}),t.d(e,"subtract",function(){return R}),t.d(e,"exactEquals",function(){return D}),t.d(e,"equals",function(){return U}),t.d(e,"multiplyScalar",function(){return L}),t.d(e,"multiplyScalarAndAdd",function(){return W}),t.d(e,"mul",function(){return Y}),t.d(e,"sub",function(){return B});var r=t(2);function n(){var N=new r.ARRAY_TYPE(4);return r.ARRAY_TYPE!=Float32Array&&(N[1]=0,N[2]=0),N[0]=1,N[3]=1,N}function s(N){var $=new r.ARRAY_TYPE(4);return $[0]=N[0],$[1]=N[1],$[2]=N[2],$[3]=N[3],$}function c(N,$){return N[0]=$[0],N[1]=$[1],N[2]=$[2],N[3]=$[3],N}function l(N){return N[0]=1,N[1]=0,N[2]=0,N[3]=1,N}function f(N,$,J,et){var ot=new r.ARRAY_TYPE(4);return ot[0]=N,ot[1]=$,ot[2]=J,ot[3]=et,ot}function u(N,$,J,et,ot){return N[0]=$,N[1]=J,N[2]=et,N[3]=ot,N}function v(N,$){if(N===$){var J=$[1];N[1]=$[2],N[2]=J}else N[0]=$[0],N[1]=$[2],N[2]=$[1],N[3]=$[3];return N}function h(N,$){var J=$[0],et=$[1],ot=$[2],ut=$[3],K=J*ut-ot*et;return K?(K=1/K,N[0]=ut*K,N[1]=-et*K,N[2]=-ot*K,N[3]=J*K,N):null}function y(N,$){var J=$[0];return N[0]=$[3],N[1]=-$[1],N[2]=-$[2],N[3]=J,N}function T(N){return N[0]*N[3]-N[2]*N[1]}function O(N,$,J){var et=$[0],ot=$[1],ut=$[2],K=$[3],Q=J[0],ft=J[1],mt=J[2],yt=J[3];return N[0]=et*Q+ut*ft,N[1]=ot*Q+K*ft,N[2]=et*mt+ut*yt,N[3]=ot*mt+K*yt,N}function C(N,$,J){var et=$[0],ot=$[1],ut=$[2],K=$[3],Q=Math.sin(J),ft=Math.cos(J);return N[0]=et*ft+ut*Q,N[1]=ot*ft+K*Q,N[2]=et*-Q+ut*ft,N[3]=ot*-Q+K*ft,N}function S(N,$,J){var et=$[0],ot=$[1],ut=$[2],K=$[3],Q=J[0],ft=J[1];return N[0]=et*Q,N[1]=ot*Q,N[2]=ut*ft,N[3]=K*ft,N}function w(N,$){var J=Math.sin($),et=Math.cos($);return N[0]=et,N[1]=J,N[2]=-J,N[3]=et,N}function d(N,$){return N[0]=$[0],N[1]=0,N[2]=0,N[3]=$[1],N}function g(N){return"mat2("+N[0]+", "+N[1]+", "+N[2]+", "+N[3]+")"}function p(N){return Math.hypot(N[0],N[1],N[2],N[3])}function P(N,$,J,et){return N[2]=et[2]/et[0],J[0]=et[0],J[1]=et[1],J[3]=et[3]-N[2]*J[1],[N,$,J]}function A(N,$,J){return N[0]=$[0]+J[0],N[1]=$[1]+J[1],N[2]=$[2]+J[2],N[3]=$[3]+J[3],N}function R(N,$,J){return N[0]=$[0]-J[0],N[1]=$[1]-J[1],N[2]=$[2]-J[2],N[3]=$[3]-J[3],N}function D(N,$){return N[0]===$[0]&&N[1]===$[1]&&N[2]===$[2]&&N[3]===$[3]}function U(N,$){var J=N[0],et=N[1],ot=N[2],ut=N[3],K=$[0],Q=$[1],ft=$[2],mt=$[3];return Math.abs(J-K)<=r.EPSILON*Math.max(1,Math.abs(J),Math.abs(K))&&Math.abs(et-Q)<=r.EPSILON*Math.max(1,Math.abs(et),Math.abs(Q))&&Math.abs(ot-ft)<=r.EPSILON*Math.max(1,Math.abs(ot),Math.abs(ft))&&Math.abs(ut-mt)<=r.EPSILON*Math.max(1,Math.abs(ut),Math.abs(mt))}function L(N,$,J){return N[0]=$[0]*J,N[1]=$[1]*J,N[2]=$[2]*J,N[3]=$[3]*J,N}function W(N,$,J,et){return N[0]=$[0]+J[0]*et,N[1]=$[1]+J[1]*et,N[2]=$[2]+J[2]*et,N[3]=$[3]+J[3]*et,N}var Y=O,B=R},function(i,e,t){t.r(e),t.d(e,"create",function(){return n}),t.d(e,"clone",function(){return s}),t.d(e,"copy",function(){return c}),t.d(e,"identity",function(){return l}),t.d(e,"fromValues",function(){return f}),t.d(e,"set",function(){return u}),t.d(e,"invert",function(){return v}),t.d(e,"determinant",function(){return h}),t.d(e,"multiply",function(){return y}),t.d(e,"rotate",function(){return T}),t.d(e,"scale",function(){return O}),t.d(e,"translate",function(){return C}),t.d(e,"fromRotation",function(){return S}),t.d(e,"fromScaling",function(){return w}),t.d(e,"fromTranslation",function(){return d}),t.d(e,"str",function(){return g}),t.d(e,"frob",function(){return p}),t.d(e,"add",function(){return P}),t.d(e,"subtract",function(){return A}),t.d(e,"multiplyScalar",function(){return R}),t.d(e,"multiplyScalarAndAdd",function(){return D}),t.d(e,"exactEquals",function(){return U}),t.d(e,"equals",function(){return L}),t.d(e,"mul",function(){return W}),t.d(e,"sub",function(){return Y});var r=t(2);function n(){var B=new r.ARRAY_TYPE(6);return r.ARRAY_TYPE!=Float32Array&&(B[1]=0,B[2]=0,B[4]=0,B[5]=0),B[0]=1,B[3]=1,B}function s(B){var N=new r.ARRAY_TYPE(6);return N[0]=B[0],N[1]=B[1],N[2]=B[2],N[3]=B[3],N[4]=B[4],N[5]=B[5],N}function c(B,N){return B[0]=N[0],B[1]=N[1],B[2]=N[2],B[3]=N[3],B[4]=N[4],B[5]=N[5],B}function l(B){return B[0]=1,B[1]=0,B[2]=0,B[3]=1,B[4]=0,B[5]=0,B}function f(B,N,$,J,et,ot){var ut=new r.ARRAY_TYPE(6);return ut[0]=B,ut[1]=N,ut[2]=$,ut[3]=J,ut[4]=et,ut[5]=ot,ut}function u(B,N,$,J,et,ot,ut){return B[0]=N,B[1]=$,B[2]=J,B[3]=et,B[4]=ot,B[5]=ut,B}function v(B,N){var $=N[0],J=N[1],et=N[2],ot=N[3],ut=N[4],K=N[5],Q=$*ot-J*et;return Q?(Q=1/Q,B[0]=ot*Q,B[1]=-J*Q,B[2]=-et*Q,B[3]=$*Q,B[4]=(et*K-ot*ut)*Q,B[5]=(J*ut-$*K)*Q,B):null}function h(B){return B[0]*B[3]-B[1]*B[2]}function y(B,N,$){var J=N[0],et=N[1],ot=N[2],ut=N[3],K=N[4],Q=N[5],ft=$[0],mt=$[1],yt=$[2],Et=$[3],ht=$[4],Nt=$[5];return B[0]=J*ft+ot*mt,B[1]=et*ft+ut*mt,B[2]=J*yt+ot*Et,B[3]=et*yt+ut*Et,B[4]=J*ht+ot*Nt+K,B[5]=et*ht+ut*Nt+Q,B}function T(B,N,$){var J=N[0],et=N[1],ot=N[2],ut=N[3],K=N[4],Q=N[5],ft=Math.sin($),mt=Math.cos($);return B[0]=J*mt+ot*ft,B[1]=et*mt+ut*ft,B[2]=J*-ft+ot*mt,B[3]=et*-ft+ut*mt,B[4]=K,B[5]=Q,B}function O(B,N,$){var J=N[0],et=N[1],ot=N[2],ut=N[3],K=N[4],Q=N[5],ft=$[0],mt=$[1];return B[0]=J*ft,B[1]=et*ft,B[2]=ot*mt,B[3]=ut*mt,B[4]=K,B[5]=Q,B}function C(B,N,$){var J=N[0],et=N[1],ot=N[2],ut=N[3],K=N[4],Q=N[5],ft=$[0],mt=$[1];return B[0]=J,B[1]=et,B[2]=ot,B[3]=ut,B[4]=J*ft+ot*mt+K,B[5]=et*ft+ut*mt+Q,B}function S(B,N){var $=Math.sin(N),J=Math.cos(N);return B[0]=J,B[1]=$,B[2]=-$,B[3]=J,B[4]=0,B[5]=0,B}function w(B,N){return B[0]=N[0],B[1]=0,B[2]=0,B[3]=N[1],B[4]=0,B[5]=0,B}function d(B,N){return B[0]=1,B[1]=0,B[2]=0,B[3]=1,B[4]=N[0],B[5]=N[1],B}function g(B){return"mat2d("+B[0]+", "+B[1]+", "+B[2]+", "+B[3]+", "+B[4]+", "+B[5]+")"}function p(B){return Math.hypot(B[0],B[1],B[2],B[3],B[4],B[5],1)}function P(B,N,$){return B[0]=N[0]+$[0],B[1]=N[1]+$[1],B[2]=N[2]+$[2],B[3]=N[3]+$[3],B[4]=N[4]+$[4],B[5]=N[5]+$[5],B}function A(B,N,$){return B[0]=N[0]-$[0],B[1]=N[1]-$[1],B[2]=N[2]-$[2],B[3]=N[3]-$[3],B[4]=N[4]-$[4],B[5]=N[5]-$[5],B}function R(B,N,$){return B[0]=N[0]*$,B[1]=N[1]*$,B[2]=N[2]*$,B[3]=N[3]*$,B[4]=N[4]*$,B[5]=N[5]*$,B}function D(B,N,$,J){return B[0]=N[0]+$[0]*J,B[1]=N[1]+$[1]*J,B[2]=N[2]+$[2]*J,B[3]=N[3]+$[3]*J,B[4]=N[4]+$[4]*J,B[5]=N[5]+$[5]*J,B}function U(B,N){return B[0]===N[0]&&B[1]===N[1]&&B[2]===N[2]&&B[3]===N[3]&&B[4]===N[4]&&B[5]===N[5]}function L(B,N){var $=B[0],J=B[1],et=B[2],ot=B[3],ut=B[4],K=B[5],Q=N[0],ft=N[1],mt=N[2],yt=N[3],Et=N[4],ht=N[5];return Math.abs($-Q)<=r.EPSILON*Math.max(1,Math.abs($),Math.abs(Q))&&Math.abs(J-ft)<=r.EPSILON*Math.max(1,Math.abs(J),Math.abs(ft))&&Math.abs(et-mt)<=r.EPSILON*Math.max(1,Math.abs(et),Math.abs(mt))&&Math.abs(ot-yt)<=r.EPSILON*Math.max(1,Math.abs(ot),Math.abs(yt))&&Math.abs(ut-Et)<=r.EPSILON*Math.max(1,Math.abs(ut),Math.abs(Et))&&Math.abs(K-ht)<=r.EPSILON*Math.max(1,Math.abs(K),Math.abs(ht))}var W=y,Y=A},function(i,e,t){t.r(e),t.d(e,"create",function(){return n}),t.d(e,"fromMat4",function(){return s}),t.d(e,"clone",function(){return c}),t.d(e,"copy",function(){return l}),t.d(e,"fromValues",function(){return f}),t.d(e,"set",function(){return u}),t.d(e,"identity",function(){return v}),t.d(e,"transpose",function(){return h}),t.d(e,"invert",function(){return y}),t.d(e,"adjoint",function(){return T}),t.d(e,"determinant",function(){return O}),t.d(e,"multiply",function(){return C}),t.d(e,"translate",function(){return S}),t.d(e,"rotate",function(){return w}),t.d(e,"scale",function(){return d}),t.d(e,"fromTranslation",function(){return g}),t.d(e,"fromRotation",function(){return p}),t.d(e,"fromScaling",function(){return P}),t.d(e,"fromMat2d",function(){return A}),t.d(e,"fromQuat",function(){return R}),t.d(e,"normalFromMat4",function(){return D}),t.d(e,"projection",function(){return U}),t.d(e,"str",function(){return L}),t.d(e,"frob",function(){return W}),t.d(e,"add",function(){return Y}),t.d(e,"subtract",function(){return B}),t.d(e,"multiplyScalar",function(){return N}),t.d(e,"multiplyScalarAndAdd",function(){return $}),t.d(e,"exactEquals",function(){return J}),t.d(e,"equals",function(){return et}),t.d(e,"mul",function(){return ot}),t.d(e,"sub",function(){return ut});var r=t(2);function n(){var K=new r.ARRAY_TYPE(9);return r.ARRAY_TYPE!=Float32Array&&(K[1]=0,K[2]=0,K[3]=0,K[5]=0,K[6]=0,K[7]=0),K[0]=1,K[4]=1,K[8]=1,K}function s(K,Q){return K[0]=Q[0],K[1]=Q[1],K[2]=Q[2],K[3]=Q[4],K[4]=Q[5],K[5]=Q[6],K[6]=Q[8],K[7]=Q[9],K[8]=Q[10],K}function c(K){var Q=new r.ARRAY_TYPE(9);return Q[0]=K[0],Q[1]=K[1],Q[2]=K[2],Q[3]=K[3],Q[4]=K[4],Q[5]=K[5],Q[6]=K[6],Q[7]=K[7],Q[8]=K[8],Q}function l(K,Q){return K[0]=Q[0],K[1]=Q[1],K[2]=Q[2],K[3]=Q[3],K[4]=Q[4],K[5]=Q[5],K[6]=Q[6],K[7]=Q[7],K[8]=Q[8],K}function f(K,Q,ft,mt,yt,Et,ht,Nt,Bt){var G=new r.ARRAY_TYPE(9);return G[0]=K,G[1]=Q,G[2]=ft,G[3]=mt,G[4]=yt,G[5]=Et,G[6]=ht,G[7]=Nt,G[8]=Bt,G}function u(K,Q,ft,mt,yt,Et,ht,Nt,Bt,G){return K[0]=Q,K[1]=ft,K[2]=mt,K[3]=yt,K[4]=Et,K[5]=ht,K[6]=Nt,K[7]=Bt,K[8]=G,K}function v(K){return K[0]=1,K[1]=0,K[2]=0,K[3]=0,K[4]=1,K[5]=0,K[6]=0,K[7]=0,K[8]=1,K}function h(K,Q){if(K===Q){var ft=Q[1],mt=Q[2],yt=Q[5];K[1]=Q[3],K[2]=Q[6],K[3]=ft,K[5]=Q[7],K[6]=mt,K[7]=yt}else K[0]=Q[0],K[1]=Q[3],K[2]=Q[6],K[3]=Q[1],K[4]=Q[4],K[5]=Q[7],K[6]=Q[2],K[7]=Q[5],K[8]=Q[8];return K}function y(K,Q){var ft=Q[0],mt=Q[1],yt=Q[2],Et=Q[3],ht=Q[4],Nt=Q[5],Bt=Q[6],G=Q[7],H=Q[8],rt=H*ht-Nt*G,at=-H*Et+Nt*Bt,z=G*Et-ht*Bt,j=ft*rt+mt*at+yt*z;return j?(j=1/j,K[0]=rt*j,K[1]=(-H*mt+yt*G)*j,K[2]=(Nt*mt-yt*ht)*j,K[3]=at*j,K[4]=(H*ft-yt*Bt)*j,K[5]=(-Nt*ft+yt*Et)*j,K[6]=z*j,K[7]=(-G*ft+mt*Bt)*j,K[8]=(ht*ft-mt*Et)*j,K):null}function T(K,Q){var ft=Q[0],mt=Q[1],yt=Q[2],Et=Q[3],ht=Q[4],Nt=Q[5],Bt=Q[6],G=Q[7],H=Q[8];return K[0]=ht*H-Nt*G,K[1]=yt*G-mt*H,K[2]=mt*Nt-yt*ht,K[3]=Nt*Bt-Et*H,K[4]=ft*H-yt*Bt,K[5]=yt*Et-ft*Nt,K[6]=Et*G-ht*Bt,K[7]=mt*Bt-ft*G,K[8]=ft*ht-mt*Et,K}function O(K){var Q=K[0],ft=K[1],mt=K[2],yt=K[3],Et=K[4],ht=K[5],Nt=K[6],Bt=K[7],G=K[8];return Q*(G*Et-ht*Bt)+ft*(-G*yt+ht*Nt)+mt*(Bt*yt-Et*Nt)}function C(K,Q,ft){var mt=Q[0],yt=Q[1],Et=Q[2],ht=Q[3],Nt=Q[4],Bt=Q[5],G=Q[6],H=Q[7],rt=Q[8],at=ft[0],z=ft[1],j=ft[2],I=ft[3],M=ft[4],X=ft[5],Z=ft[6],q=ft[7],nt=ft[8];return K[0]=at*mt+z*ht+j*G,K[1]=at*yt+z*Nt+j*H,K[2]=at*Et+z*Bt+j*rt,K[3]=I*mt+M*ht+X*G,K[4]=I*yt+M*Nt+X*H,K[5]=I*Et+M*Bt+X*rt,K[6]=Z*mt+q*ht+nt*G,K[7]=Z*yt+q*Nt+nt*H,K[8]=Z*Et+q*Bt+nt*rt,K}function S(K,Q,ft){var mt=Q[0],yt=Q[1],Et=Q[2],ht=Q[3],Nt=Q[4],Bt=Q[5],G=Q[6],H=Q[7],rt=Q[8],at=ft[0],z=ft[1];return K[0]=mt,K[1]=yt,K[2]=Et,K[3]=ht,K[4]=Nt,K[5]=Bt,K[6]=at*mt+z*ht+G,K[7]=at*yt+z*Nt+H,K[8]=at*Et+z*Bt+rt,K}function w(K,Q,ft){var mt=Q[0],yt=Q[1],Et=Q[2],ht=Q[3],Nt=Q[4],Bt=Q[5],G=Q[6],H=Q[7],rt=Q[8],at=Math.sin(ft),z=Math.cos(ft);return K[0]=z*mt+at*ht,K[1]=z*yt+at*Nt,K[2]=z*Et+at*Bt,K[3]=z*ht-at*mt,K[4]=z*Nt-at*yt,K[5]=z*Bt-at*Et,K[6]=G,K[7]=H,K[8]=rt,K}function d(K,Q,ft){var mt=ft[0],yt=ft[1];return K[0]=mt*Q[0],K[1]=mt*Q[1],K[2]=mt*Q[2],K[3]=yt*Q[3],K[4]=yt*Q[4],K[5]=yt*Q[5],K[6]=Q[6],K[7]=Q[7],K[8]=Q[8],K}function g(K,Q){return K[0]=1,K[1]=0,K[2]=0,K[3]=0,K[4]=1,K[5]=0,K[6]=Q[0],K[7]=Q[1],K[8]=1,K}function p(K,Q){var ft=Math.sin(Q),mt=Math.cos(Q);return K[0]=mt,K[1]=ft,K[2]=0,K[3]=-ft,K[4]=mt,K[5]=0,K[6]=0,K[7]=0,K[8]=1,K}function P(K,Q){return K[0]=Q[0],K[1]=0,K[2]=0,K[3]=0,K[4]=Q[1],K[5]=0,K[6]=0,K[7]=0,K[8]=1,K}function A(K,Q){return K[0]=Q[0],K[1]=Q[1],K[2]=0,K[3]=Q[2],K[4]=Q[3],K[5]=0,K[6]=Q[4],K[7]=Q[5],K[8]=1,K}function R(K,Q){var ft=Q[0],mt=Q[1],yt=Q[2],Et=Q[3],ht=ft+ft,Nt=mt+mt,Bt=yt+yt,G=ft*ht,H=mt*ht,rt=mt*Nt,at=yt*ht,z=yt*Nt,j=yt*Bt,I=Et*ht,M=Et*Nt,X=Et*Bt;return K[0]=1-rt-j,K[3]=H-X,K[6]=at+M,K[1]=H+X,K[4]=1-G-j,K[7]=z-I,K[2]=at-M,K[5]=z+I,K[8]=1-G-rt,K}function D(K,Q){var ft=Q[0],mt=Q[1],yt=Q[2],Et=Q[3],ht=Q[4],Nt=Q[5],Bt=Q[6],G=Q[7],H=Q[8],rt=Q[9],at=Q[10],z=Q[11],j=Q[12],I=Q[13],M=Q[14],X=Q[15],Z=ft*Nt-mt*ht,q=ft*Bt-yt*ht,nt=ft*G-Et*ht,ct=mt*Bt-yt*Nt,Pt=mt*G-Et*Nt,Ct=yt*G-Et*Bt,At=H*I-rt*j,bt=H*M-at*j,wt=H*X-z*j,Ot=rt*M-at*I,Lt=rt*X-z*I,Yt=at*X-z*M,$t=Z*Yt-q*Lt+nt*Ot+ct*wt-Pt*bt+Ct*At;return $t?($t=1/$t,K[0]=(Nt*Yt-Bt*Lt+G*Ot)*$t,K[1]=(Bt*wt-ht*Yt-G*bt)*$t,K[2]=(ht*Lt-Nt*wt+G*At)*$t,K[3]=(yt*Lt-mt*Yt-Et*Ot)*$t,K[4]=(ft*Yt-yt*wt+Et*bt)*$t,K[5]=(mt*wt-ft*Lt-Et*At)*$t,K[6]=(I*Ct-M*Pt+X*ct)*$t,K[7]=(M*nt-j*Ct-X*q)*$t,K[8]=(j*Pt-I*nt+X*Z)*$t,K):null}function U(K,Q,ft){return K[0]=2/Q,K[1]=0,K[2]=0,K[3]=0,K[4]=-2/ft,K[5]=0,K[6]=-1,K[7]=1,K[8]=1,K}function L(K){return"mat3("+K[0]+", "+K[1]+", "+K[2]+", "+K[3]+", "+K[4]+", "+K[5]+", "+K[6]+", "+K[7]+", "+K[8]+")"}function W(K){return Math.hypot(K[0],K[1],K[2],K[3],K[4],K[5],K[6],K[7],K[8])}function Y(K,Q,ft){return K[0]=Q[0]+ft[0],K[1]=Q[1]+ft[1],K[2]=Q[2]+ft[2],K[3]=Q[3]+ft[3],K[4]=Q[4]+ft[4],K[5]=Q[5]+ft[5],K[6]=Q[6]+ft[6],K[7]=Q[7]+ft[7],K[8]=Q[8]+ft[8],K}function B(K,Q,ft){return K[0]=Q[0]-ft[0],K[1]=Q[1]-ft[1],K[2]=Q[2]-ft[2],K[3]=Q[3]-ft[3],K[4]=Q[4]-ft[4],K[5]=Q[5]-ft[5],K[6]=Q[6]-ft[6],K[7]=Q[7]-ft[7],K[8]=Q[8]-ft[8],K}function N(K,Q,ft){return K[0]=Q[0]*ft,K[1]=Q[1]*ft,K[2]=Q[2]*ft,K[3]=Q[3]*ft,K[4]=Q[4]*ft,K[5]=Q[5]*ft,K[6]=Q[6]*ft,K[7]=Q[7]*ft,K[8]=Q[8]*ft,K}function $(K,Q,ft,mt){return K[0]=Q[0]+ft[0]*mt,K[1]=Q[1]+ft[1]*mt,K[2]=Q[2]+ft[2]*mt,K[3]=Q[3]+ft[3]*mt,K[4]=Q[4]+ft[4]*mt,K[5]=Q[5]+ft[5]*mt,K[6]=Q[6]+ft[6]*mt,K[7]=Q[7]+ft[7]*mt,K[8]=Q[8]+ft[8]*mt,K}function J(K,Q){return K[0]===Q[0]&&K[1]===Q[1]&&K[2]===Q[2]&&K[3]===Q[3]&&K[4]===Q[4]&&K[5]===Q[5]&&K[6]===Q[6]&&K[7]===Q[7]&&K[8]===Q[8]}function et(K,Q){var ft=K[0],mt=K[1],yt=K[2],Et=K[3],ht=K[4],Nt=K[5],Bt=K[6],G=K[7],H=K[8],rt=Q[0],at=Q[1],z=Q[2],j=Q[3],I=Q[4],M=Q[5],X=Q[6],Z=Q[7],q=Q[8];return Math.abs(ft-rt)<=r.EPSILON*Math.max(1,Math.abs(ft),Math.abs(rt))&&Math.abs(mt-at)<=r.EPSILON*Math.max(1,Math.abs(mt),Math.abs(at))&&Math.abs(yt-z)<=r.EPSILON*Math.max(1,Math.abs(yt),Math.abs(z))&&Math.abs(Et-j)<=r.EPSILON*Math.max(1,Math.abs(Et),Math.abs(j))&&Math.abs(ht-I)<=r.EPSILON*Math.max(1,Math.abs(ht),Math.abs(I))&&Math.abs(Nt-M)<=r.EPSILON*Math.max(1,Math.abs(Nt),Math.abs(M))&&Math.abs(Bt-X)<=r.EPSILON*Math.max(1,Math.abs(Bt),Math.abs(X))&&Math.abs(G-Z)<=r.EPSILON*Math.max(1,Math.abs(G),Math.abs(Z))&&Math.abs(H-q)<=r.EPSILON*Math.max(1,Math.abs(H),Math.abs(q))}var ot=C,ut=B},function(i,e,t){t.r(e),t.d(e,"create",function(){return n}),t.d(e,"clone",function(){return s}),t.d(e,"copy",function(){return c}),t.d(e,"fromValues",function(){return l}),t.d(e,"set",function(){return f}),t.d(e,"identity",function(){return u}),t.d(e,"transpose",function(){return v}),t.d(e,"invert",function(){return h}),t.d(e,"adjoint",function(){return y}),t.d(e,"determinant",function(){return T}),t.d(e,"multiply",function(){return O}),t.d(e,"translate",function(){return C}),t.d(e,"scale",function(){return S}),t.d(e,"rotate",function(){return w}),t.d(e,"rotateX",function(){return d}),t.d(e,"rotateY",function(){return g}),t.d(e,"rotateZ",function(){return p}),t.d(e,"fromTranslation",function(){return P}),t.d(e,"fromScaling",function(){return A}),t.d(e,"fromRotation",function(){return R}),t.d(e,"fromXRotation",function(){return D}),t.d(e,"fromYRotation",function(){return U}),t.d(e,"fromZRotation",function(){return L}),t.d(e,"fromRotationTranslation",function(){return W}),t.d(e,"fromQuat2",function(){return Y}),t.d(e,"getTranslation",function(){return B}),t.d(e,"getScaling",function(){return N}),t.d(e,"getRotation",function(){return $}),t.d(e,"fromRotationTranslationScale",function(){return J}),t.d(e,"fromRotationTranslationScaleOrigin",function(){return et}),t.d(e,"fromQuat",function(){return ot}),t.d(e,"frustum",function(){return ut}),t.d(e,"perspective",function(){return K}),t.d(e,"perspectiveFromFieldOfView",function(){return Q}),t.d(e,"ortho",function(){return ft}),t.d(e,"lookAt",function(){return mt}),t.d(e,"targetTo",function(){return yt}),t.d(e,"str",function(){return Et}),t.d(e,"frob",function(){return ht}),t.d(e,"add",function(){return Nt}),t.d(e,"subtract",function(){return Bt}),t.d(e,"multiplyScalar",function(){return G}),t.d(e,"multiplyScalarAndAdd",function(){return H}),t.d(e,"exactEquals",function(){return rt}),t.d(e,"equals",function(){return at}),t.d(e,"mul",function(){return z}),t.d(e,"sub",function(){return j});var r=t(2);function n(){var I=new r.ARRAY_TYPE(16);return r.ARRAY_TYPE!=Float32Array&&(I[1]=0,I[2]=0,I[3]=0,I[4]=0,I[6]=0,I[7]=0,I[8]=0,I[9]=0,I[11]=0,I[12]=0,I[13]=0,I[14]=0),I[0]=1,I[5]=1,I[10]=1,I[15]=1,I}function s(I){var M=new r.ARRAY_TYPE(16);return M[0]=I[0],M[1]=I[1],M[2]=I[2],M[3]=I[3],M[4]=I[4],M[5]=I[5],M[6]=I[6],M[7]=I[7],M[8]=I[8],M[9]=I[9],M[10]=I[10],M[11]=I[11],M[12]=I[12],M[13]=I[13],M[14]=I[14],M[15]=I[15],M}function c(I,M){return I[0]=M[0],I[1]=M[1],I[2]=M[2],I[3]=M[3],I[4]=M[4],I[5]=M[5],I[6]=M[6],I[7]=M[7],I[8]=M[8],I[9]=M[9],I[10]=M[10],I[11]=M[11],I[12]=M[12],I[13]=M[13],I[14]=M[14],I[15]=M[15],I}function l(I,M,X,Z,q,nt,ct,Pt,Ct,At,bt,wt,Ot,Lt,Yt,$t){var Wt=new r.ARRAY_TYPE(16);return Wt[0]=I,Wt[1]=M,Wt[2]=X,Wt[3]=Z,Wt[4]=q,Wt[5]=nt,Wt[6]=ct,Wt[7]=Pt,Wt[8]=Ct,Wt[9]=At,Wt[10]=bt,Wt[11]=wt,Wt[12]=Ot,Wt[13]=Lt,Wt[14]=Yt,Wt[15]=$t,Wt}function f(I,M,X,Z,q,nt,ct,Pt,Ct,At,bt,wt,Ot,Lt,Yt,$t,Wt){return I[0]=M,I[1]=X,I[2]=Z,I[3]=q,I[4]=nt,I[5]=ct,I[6]=Pt,I[7]=Ct,I[8]=At,I[9]=bt,I[10]=wt,I[11]=Ot,I[12]=Lt,I[13]=Yt,I[14]=$t,I[15]=Wt,I}function u(I){return I[0]=1,I[1]=0,I[2]=0,I[3]=0,I[4]=0,I[5]=1,I[6]=0,I[7]=0,I[8]=0,I[9]=0,I[10]=1,I[11]=0,I[12]=0,I[13]=0,I[14]=0,I[15]=1,I}function v(I,M){if(I===M){var X=M[1],Z=M[2],q=M[3],nt=M[6],ct=M[7],Pt=M[11];I[1]=M[4],I[2]=M[8],I[3]=M[12],I[4]=X,I[6]=M[9],I[7]=M[13],I[8]=Z,I[9]=nt,I[11]=M[14],I[12]=q,I[13]=ct,I[14]=Pt}else I[0]=M[0],I[1]=M[4],I[2]=M[8],I[3]=M[12],I[4]=M[1],I[5]=M[5],I[6]=M[9],I[7]=M[13],I[8]=M[2],I[9]=M[6],I[10]=M[10],I[11]=M[14],I[12]=M[3],I[13]=M[7],I[14]=M[11],I[15]=M[15];return I}function h(I,M){var X=M[0],Z=M[1],q=M[2],nt=M[3],ct=M[4],Pt=M[5],Ct=M[6],At=M[7],bt=M[8],wt=M[9],Ot=M[10],Lt=M[11],Yt=M[12],$t=M[13],Wt=M[14],Qt=M[15],ue=X*Pt-Z*ct,ie=X*Ct-q*ct,ne=X*At-nt*ct,ae=Z*Ct-q*Pt,se=Z*At-nt*Pt,Fe=q*At-nt*Ct,Ue=bt*$t-wt*Yt,ze=bt*Wt-Ot*Yt,$e=bt*Qt-Lt*Yt,Ge=wt*Wt-Ot*$t,He=wt*Qt-Lt*$t,qe=Ot*Qt-Lt*Wt,Oe=ue*qe-ie*He+ne*Ge+ae*$e-se*ze+Fe*Ue;return Oe?(Oe=1/Oe,I[0]=(Pt*qe-Ct*He+At*Ge)*Oe,I[1]=(q*He-Z*qe-nt*Ge)*Oe,I[2]=($t*Fe-Wt*se+Qt*ae)*Oe,I[3]=(Ot*se-wt*Fe-Lt*ae)*Oe,I[4]=(Ct*$e-ct*qe-At*ze)*Oe,I[5]=(X*qe-q*$e+nt*ze)*Oe,I[6]=(Wt*ne-Yt*Fe-Qt*ie)*Oe,I[7]=(bt*Fe-Ot*ne+Lt*ie)*Oe,I[8]=(ct*He-Pt*$e+At*Ue)*Oe,I[9]=(Z*$e-X*He-nt*Ue)*Oe,I[10]=(Yt*se-$t*ne+Qt*ue)*Oe,I[11]=(wt*ne-bt*se-Lt*ue)*Oe,I[12]=(Pt*ze-ct*Ge-Ct*Ue)*Oe,I[13]=(X*Ge-Z*ze+q*Ue)*Oe,I[14]=($t*ie-Yt*ae-Wt*ue)*Oe,I[15]=(bt*ae-wt*ie+Ot*ue)*Oe,I):null}function y(I,M){var X=M[0],Z=M[1],q=M[2],nt=M[3],ct=M[4],Pt=M[5],Ct=M[6],At=M[7],bt=M[8],wt=M[9],Ot=M[10],Lt=M[11],Yt=M[12],$t=M[13],Wt=M[14],Qt=M[15];return I[0]=Pt*(Ot*Qt-Lt*Wt)-wt*(Ct*Qt-At*Wt)+$t*(Ct*Lt-At*Ot),I[1]=-(Z*(Ot*Qt-Lt*Wt)-wt*(q*Qt-nt*Wt)+$t*(q*Lt-nt*Ot)),I[2]=Z*(Ct*Qt-At*Wt)-Pt*(q*Qt-nt*Wt)+$t*(q*At-nt*Ct),I[3]=-(Z*(Ct*Lt-At*Ot)-Pt*(q*Lt-nt*Ot)+wt*(q*At-nt*Ct)),I[4]=-(ct*(Ot*Qt-Lt*Wt)-bt*(Ct*Qt-At*Wt)+Yt*(Ct*Lt-At*Ot)),I[5]=X*(Ot*Qt-Lt*Wt)-bt*(q*Qt-nt*Wt)+Yt*(q*Lt-nt*Ot),I[6]=-(X*(Ct*Qt-At*Wt)-ct*(q*Qt-nt*Wt)+Yt*(q*At-nt*Ct)),I[7]=X*(Ct*Lt-At*Ot)-ct*(q*Lt-nt*Ot)+bt*(q*At-nt*Ct),I[8]=ct*(wt*Qt-Lt*$t)-bt*(Pt*Qt-At*$t)+Yt*(Pt*Lt-At*wt),I[9]=-(X*(wt*Qt-Lt*$t)-bt*(Z*Qt-nt*$t)+Yt*(Z*Lt-nt*wt)),I[10]=X*(Pt*Qt-At*$t)-ct*(Z*Qt-nt*$t)+Yt*(Z*At-nt*Pt),I[11]=-(X*(Pt*Lt-At*wt)-ct*(Z*Lt-nt*wt)+bt*(Z*At-nt*Pt)),I[12]=-(ct*(wt*Wt-Ot*$t)-bt*(Pt*Wt-Ct*$t)+Yt*(Pt*Ot-Ct*wt)),I[13]=X*(wt*Wt-Ot*$t)-bt*(Z*Wt-q*$t)+Yt*(Z*Ot-q*wt),I[14]=-(X*(Pt*Wt-Ct*$t)-ct*(Z*Wt-q*$t)+Yt*(Z*Ct-q*Pt)),I[15]=X*(Pt*Ot-Ct*wt)-ct*(Z*Ot-q*wt)+bt*(Z*Ct-q*Pt),I}function T(I){var M=I[0],X=I[1],Z=I[2],q=I[3],nt=I[4],ct=I[5],Pt=I[6],Ct=I[7],At=I[8],bt=I[9],wt=I[10],Ot=I[11],Lt=I[12],Yt=I[13],$t=I[14],Wt=I[15],Qt=M*ct-X*nt,ue=M*Pt-Z*nt,ie=M*Ct-q*nt,ne=X*Pt-Z*ct,ae=X*Ct-q*ct,se=Z*Ct-q*Pt,Fe=At*Yt-bt*Lt,Ue=At*$t-wt*Lt,ze=At*Wt-Ot*Lt,$e=bt*$t-wt*Yt,Ge=bt*Wt-Ot*Yt,He=wt*Wt-Ot*$t;return Qt*He-ue*Ge+ie*$e+ne*ze-ae*Ue+se*Fe}function O(I,M,X){var Z=M[0],q=M[1],nt=M[2],ct=M[3],Pt=M[4],Ct=M[5],At=M[6],bt=M[7],wt=M[8],Ot=M[9],Lt=M[10],Yt=M[11],$t=M[12],Wt=M[13],Qt=M[14],ue=M[15],ie=X[0],ne=X[1],ae=X[2],se=X[3];return I[0]=ie*Z+ne*Pt+ae*wt+se*$t,I[1]=ie*q+ne*Ct+ae*Ot+se*Wt,I[2]=ie*nt+ne*At+ae*Lt+se*Qt,I[3]=ie*ct+ne*bt+ae*Yt+se*ue,ie=X[4],ne=X[5],ae=X[6],se=X[7],I[4]=ie*Z+ne*Pt+ae*wt+se*$t,I[5]=ie*q+ne*Ct+ae*Ot+se*Wt,I[6]=ie*nt+ne*At+ae*Lt+se*Qt,I[7]=ie*ct+ne*bt+ae*Yt+se*ue,ie=X[8],ne=X[9],ae=X[10],se=X[11],I[8]=ie*Z+ne*Pt+ae*wt+se*$t,I[9]=ie*q+ne*Ct+ae*Ot+se*Wt,I[10]=ie*nt+ne*At+ae*Lt+se*Qt,I[11]=ie*ct+ne*bt+ae*Yt+se*ue,ie=X[12],ne=X[13],ae=X[14],se=X[15],I[12]=ie*Z+ne*Pt+ae*wt+se*$t,I[13]=ie*q+ne*Ct+ae*Ot+se*Wt,I[14]=ie*nt+ne*At+ae*Lt+se*Qt,I[15]=ie*ct+ne*bt+ae*Yt+se*ue,I}function C(I,M,X){var Z=X[0],q=X[1],nt=X[2],ct,Pt,Ct,At,bt,wt,Ot,Lt,Yt,$t,Wt,Qt;return M===I?(I[12]=M[0]*Z+M[4]*q+M[8]*nt+M[12],I[13]=M[1]*Z+M[5]*q+M[9]*nt+M[13],I[14]=M[2]*Z+M[6]*q+M[10]*nt+M[14],I[15]=M[3]*Z+M[7]*q+M[11]*nt+M[15]):(ct=M[0],Pt=M[1],Ct=M[2],At=M[3],bt=M[4],wt=M[5],Ot=M[6],Lt=M[7],Yt=M[8],$t=M[9],Wt=M[10],Qt=M[11],I[0]=ct,I[1]=Pt,I[2]=Ct,I[3]=At,I[4]=bt,I[5]=wt,I[6]=Ot,I[7]=Lt,I[8]=Yt,I[9]=$t,I[10]=Wt,I[11]=Qt,I[12]=ct*Z+bt*q+Yt*nt+M[12],I[13]=Pt*Z+wt*q+$t*nt+M[13],I[14]=Ct*Z+Ot*q+Wt*nt+M[14],I[15]=At*Z+Lt*q+Qt*nt+M[15]),I}function S(I,M,X){var Z=X[0],q=X[1],nt=X[2];return I[0]=M[0]*Z,I[1]=M[1]*Z,I[2]=M[2]*Z,I[3]=M[3]*Z,I[4]=M[4]*q,I[5]=M[5]*q,I[6]=M[6]*q,I[7]=M[7]*q,I[8]=M[8]*nt,I[9]=M[9]*nt,I[10]=M[10]*nt,I[11]=M[11]*nt,I[12]=M[12],I[13]=M[13],I[14]=M[14],I[15]=M[15],I}function w(I,M,X,Z){var q=Z[0],nt=Z[1],ct=Z[2],Pt=Math.hypot(q,nt,ct),Ct,At,bt,wt,Ot,Lt,Yt,$t,Wt,Qt,ue,ie,ne,ae,se,Fe,Ue,ze,$e,Ge,He,qe,Oe,pr;return Pt<r.EPSILON?null:(Pt=1/Pt,q*=Pt,nt*=Pt,ct*=Pt,Ct=Math.sin(X),At=Math.cos(X),bt=1-At,wt=M[0],Ot=M[1],Lt=M[2],Yt=M[3],$t=M[4],Wt=M[5],Qt=M[6],ue=M[7],ie=M[8],ne=M[9],ae=M[10],se=M[11],Fe=q*q*bt+At,Ue=nt*q*bt+ct*Ct,ze=ct*q*bt-nt*Ct,$e=q*nt*bt-ct*Ct,Ge=nt*nt*bt+At,He=ct*nt*bt+q*Ct,qe=q*ct*bt+nt*Ct,Oe=nt*ct*bt-q*Ct,pr=ct*ct*bt+At,I[0]=wt*Fe+$t*Ue+ie*ze,I[1]=Ot*Fe+Wt*Ue+ne*ze,I[2]=Lt*Fe+Qt*Ue+ae*ze,I[3]=Yt*Fe+ue*Ue+se*ze,I[4]=wt*$e+$t*Ge+ie*He,I[5]=Ot*$e+Wt*Ge+ne*He,I[6]=Lt*$e+Qt*Ge+ae*He,I[7]=Yt*$e+ue*Ge+se*He,I[8]=wt*qe+$t*Oe+ie*pr,I[9]=Ot*qe+Wt*Oe+ne*pr,I[10]=Lt*qe+Qt*Oe+ae*pr,I[11]=Yt*qe+ue*Oe+se*pr,M!==I&&(I[12]=M[12],I[13]=M[13],I[14]=M[14],I[15]=M[15]),I)}function d(I,M,X){var Z=Math.sin(X),q=Math.cos(X),nt=M[4],ct=M[5],Pt=M[6],Ct=M[7],At=M[8],bt=M[9],wt=M[10],Ot=M[11];return M!==I&&(I[0]=M[0],I[1]=M[1],I[2]=M[2],I[3]=M[3],I[12]=M[12],I[13]=M[13],I[14]=M[14],I[15]=M[15]),I[4]=nt*q+At*Z,I[5]=ct*q+bt*Z,I[6]=Pt*q+wt*Z,I[7]=Ct*q+Ot*Z,I[8]=At*q-nt*Z,I[9]=bt*q-ct*Z,I[10]=wt*q-Pt*Z,I[11]=Ot*q-Ct*Z,I}function g(I,M,X){var Z=Math.sin(X),q=Math.cos(X),nt=M[0],ct=M[1],Pt=M[2],Ct=M[3],At=M[8],bt=M[9],wt=M[10],Ot=M[11];return M!==I&&(I[4]=M[4],I[5]=M[5],I[6]=M[6],I[7]=M[7],I[12]=M[12],I[13]=M[13],I[14]=M[14],I[15]=M[15]),I[0]=nt*q-At*Z,I[1]=ct*q-bt*Z,I[2]=Pt*q-wt*Z,I[3]=Ct*q-Ot*Z,I[8]=nt*Z+At*q,I[9]=ct*Z+bt*q,I[10]=Pt*Z+wt*q,I[11]=Ct*Z+Ot*q,I}function p(I,M,X){var Z=Math.sin(X),q=Math.cos(X),nt=M[0],ct=M[1],Pt=M[2],Ct=M[3],At=M[4],bt=M[5],wt=M[6],Ot=M[7];return M!==I&&(I[8]=M[8],I[9]=M[9],I[10]=M[10],I[11]=M[11],I[12]=M[12],I[13]=M[13],I[14]=M[14],I[15]=M[15]),I[0]=nt*q+At*Z,I[1]=ct*q+bt*Z,I[2]=Pt*q+wt*Z,I[3]=Ct*q+Ot*Z,I[4]=At*q-nt*Z,I[5]=bt*q-ct*Z,I[6]=wt*q-Pt*Z,I[7]=Ot*q-Ct*Z,I}function P(I,M){return I[0]=1,I[1]=0,I[2]=0,I[3]=0,I[4]=0,I[5]=1,I[6]=0,I[7]=0,I[8]=0,I[9]=0,I[10]=1,I[11]=0,I[12]=M[0],I[13]=M[1],I[14]=M[2],I[15]=1,I}function A(I,M){return I[0]=M[0],I[1]=0,I[2]=0,I[3]=0,I[4]=0,I[5]=M[1],I[6]=0,I[7]=0,I[8]=0,I[9]=0,I[10]=M[2],I[11]=0,I[12]=0,I[13]=0,I[14]=0,I[15]=1,I}function R(I,M,X){var Z=X[0],q=X[1],nt=X[2],ct=Math.hypot(Z,q,nt),Pt,Ct,At;return ct<r.EPSILON?null:(ct=1/ct,Z*=ct,q*=ct,nt*=ct,Pt=Math.sin(M),Ct=Math.cos(M),At=1-Ct,I[0]=Z*Z*At+Ct,I[1]=q*Z*At+nt*Pt,I[2]=nt*Z*At-q*Pt,I[3]=0,I[4]=Z*q*At-nt*Pt,I[5]=q*q*At+Ct,I[6]=nt*q*At+Z*Pt,I[7]=0,I[8]=Z*nt*At+q*Pt,I[9]=q*nt*At-Z*Pt,I[10]=nt*nt*At+Ct,I[11]=0,I[12]=0,I[13]=0,I[14]=0,I[15]=1,I)}function D(I,M){var X=Math.sin(M),Z=Math.cos(M);return I[0]=1,I[1]=0,I[2]=0,I[3]=0,I[4]=0,I[5]=Z,I[6]=X,I[7]=0,I[8]=0,I[9]=-X,I[10]=Z,I[11]=0,I[12]=0,I[13]=0,I[14]=0,I[15]=1,I}function U(I,M){var X=Math.sin(M),Z=Math.cos(M);return I[0]=Z,I[1]=0,I[2]=-X,I[3]=0,I[4]=0,I[5]=1,I[6]=0,I[7]=0,I[8]=X,I[9]=0,I[10]=Z,I[11]=0,I[12]=0,I[13]=0,I[14]=0,I[15]=1,I}function L(I,M){var X=Math.sin(M),Z=Math.cos(M);return I[0]=Z,I[1]=X,I[2]=0,I[3]=0,I[4]=-X,I[5]=Z,I[6]=0,I[7]=0,I[8]=0,I[9]=0,I[10]=1,I[11]=0,I[12]=0,I[13]=0,I[14]=0,I[15]=1,I}function W(I,M,X){var Z=M[0],q=M[1],nt=M[2],ct=M[3],Pt=Z+Z,Ct=q+q,At=nt+nt,bt=Z*Pt,wt=Z*Ct,Ot=Z*At,Lt=q*Ct,Yt=q*At,$t=nt*At,Wt=ct*Pt,Qt=ct*Ct,ue=ct*At;return I[0]=1-(Lt+$t),I[1]=wt+ue,I[2]=Ot-Qt,I[3]=0,I[4]=wt-ue,I[5]=1-(bt+$t),I[6]=Yt+Wt,I[7]=0,I[8]=Ot+Qt,I[9]=Yt-Wt,I[10]=1-(bt+Lt),I[11]=0,I[12]=X[0],I[13]=X[1],I[14]=X[2],I[15]=1,I}function Y(I,M){var X=new r.ARRAY_TYPE(3),Z=-M[0],q=-M[1],nt=-M[2],ct=M[3],Pt=M[4],Ct=M[5],At=M[6],bt=M[7],wt=Z*Z+q*q+nt*nt+ct*ct;return wt>0?(X[0]=(Pt*ct+bt*Z+Ct*nt-At*q)*2/wt,X[1]=(Ct*ct+bt*q+At*Z-Pt*nt)*2/wt,X[2]=(At*ct+bt*nt+Pt*q-Ct*Z)*2/wt):(X[0]=(Pt*ct+bt*Z+Ct*nt-At*q)*2,X[1]=(Ct*ct+bt*q+At*Z-Pt*nt)*2,X[2]=(At*ct+bt*nt+Pt*q-Ct*Z)*2),W(I,M,X),I}function B(I,M){return I[0]=M[12],I[1]=M[13],I[2]=M[14],I}function N(I,M){var X=M[0],Z=M[1],q=M[2],nt=M[4],ct=M[5],Pt=M[6],Ct=M[8],At=M[9],bt=M[10];return I[0]=Math.hypot(X,Z,q),I[1]=Math.hypot(nt,ct,Pt),I[2]=Math.hypot(Ct,At,bt),I}function $(I,M){var X=new r.ARRAY_TYPE(3);N(X,M);var Z=1/X[0],q=1/X[1],nt=1/X[2],ct=M[0]*Z,Pt=M[1]*q,Ct=M[2]*nt,At=M[4]*Z,bt=M[5]*q,wt=M[6]*nt,Ot=M[8]*Z,Lt=M[9]*q,Yt=M[10]*nt,$t=ct+bt+Yt,Wt=0;return $t>0?(Wt=Math.sqrt($t+1)*2,I[3]=.25*Wt,I[0]=(wt-Lt)/Wt,I[1]=(Ot-Ct)/Wt,I[2]=(Pt-At)/Wt):ct>bt&&ct>Yt?(Wt=Math.sqrt(1+ct-bt-Yt)*2,I[3]=(wt-Lt)/Wt,I[0]=.25*Wt,I[1]=(Pt+At)/Wt,I[2]=(Ot+Ct)/Wt):bt>Yt?(Wt=Math.sqrt(1+bt-ct-Yt)*2,I[3]=(Ot-Ct)/Wt,I[0]=(Pt+At)/Wt,I[1]=.25*Wt,I[2]=(wt+Lt)/Wt):(Wt=Math.sqrt(1+Yt-ct-bt)*2,I[3]=(Pt-At)/Wt,I[0]=(Ot+Ct)/Wt,I[1]=(wt+Lt)/Wt,I[2]=.25*Wt),I}function J(I,M,X,Z){var q=M[0],nt=M[1],ct=M[2],Pt=M[3],Ct=q+q,At=nt+nt,bt=ct+ct,wt=q*Ct,Ot=q*At,Lt=q*bt,Yt=nt*At,$t=nt*bt,Wt=ct*bt,Qt=Pt*Ct,ue=Pt*At,ie=Pt*bt,ne=Z[0],ae=Z[1],se=Z[2];return I[0]=(1-(Yt+Wt))*ne,I[1]=(Ot+ie)*ne,I[2]=(Lt-ue)*ne,I[3]=0,I[4]=(Ot-ie)*ae,I[5]=(1-(wt+Wt))*ae,I[6]=($t+Qt)*ae,I[7]=0,I[8]=(Lt+ue)*se,I[9]=($t-Qt)*se,I[10]=(1-(wt+Yt))*se,I[11]=0,I[12]=X[0],I[13]=X[1],I[14]=X[2],I[15]=1,I}function et(I,M,X,Z,q){var nt=M[0],ct=M[1],Pt=M[2],Ct=M[3],At=nt+nt,bt=ct+ct,wt=Pt+Pt,Ot=nt*At,Lt=nt*bt,Yt=nt*wt,$t=ct*bt,Wt=ct*wt,Qt=Pt*wt,ue=Ct*At,ie=Ct*bt,ne=Ct*wt,ae=Z[0],se=Z[1],Fe=Z[2],Ue=q[0],ze=q[1],$e=q[2],Ge=(1-($t+Qt))*ae,He=(Lt+ne)*ae,qe=(Yt-ie)*ae,Oe=(Lt-ne)*se,pr=(1-(Ot+Qt))*se,an=(Wt+ue)*se,qr=(Yt+ie)*Fe,li=(Wt-ue)*Fe,fi=(1-(Ot+$t))*Fe;return I[0]=Ge,I[1]=He,I[2]=qe,I[3]=0,I[4]=Oe,I[5]=pr,I[6]=an,I[7]=0,I[8]=qr,I[9]=li,I[10]=fi,I[11]=0,I[12]=X[0]+Ue-(Ge*Ue+Oe*ze+qr*$e),I[13]=X[1]+ze-(He*Ue+pr*ze+li*$e),I[14]=X[2]+$e-(qe*Ue+an*ze+fi*$e),I[15]=1,I}function ot(I,M){var X=M[0],Z=M[1],q=M[2],nt=M[3],ct=X+X,Pt=Z+Z,Ct=q+q,At=X*ct,bt=Z*ct,wt=Z*Pt,Ot=q*ct,Lt=q*Pt,Yt=q*Ct,$t=nt*ct,Wt=nt*Pt,Qt=nt*Ct;return I[0]=1-wt-Yt,I[1]=bt+Qt,I[2]=Ot-Wt,I[3]=0,I[4]=bt-Qt,I[5]=1-At-Yt,I[6]=Lt+$t,I[7]=0,I[8]=Ot+Wt,I[9]=Lt-$t,I[10]=1-At-wt,I[11]=0,I[12]=0,I[13]=0,I[14]=0,I[15]=1,I}function ut(I,M,X,Z,q,nt,ct){var Pt=1/(X-M),Ct=1/(q-Z),At=1/(nt-ct);return I[0]=nt*2*Pt,I[1]=0,I[2]=0,I[3]=0,I[4]=0,I[5]=nt*2*Ct,I[6]=0,I[7]=0,I[8]=(X+M)*Pt,I[9]=(q+Z)*Ct,I[10]=(ct+nt)*At,I[11]=-1,I[12]=0,I[13]=0,I[14]=ct*nt*2*At,I[15]=0,I}function K(I,M,X,Z,q){var nt=1/Math.tan(M/2),ct;return I[0]=nt/X,I[1]=0,I[2]=0,I[3]=0,I[4]=0,I[5]=nt,I[6]=0,I[7]=0,I[8]=0,I[9]=0,I[11]=-1,I[12]=0,I[13]=0,I[15]=0,q!=null&&q!==1/0?(ct=1/(Z-q),I[10]=(q+Z)*ct,I[14]=2*q*Z*ct):(I[10]=-1,I[14]=-2*Z),I}function Q(I,M,X,Z){var q=Math.tan(M.upDegrees*Math.PI/180),nt=Math.tan(M.downDegrees*Math.PI/180),ct=Math.tan(M.leftDegrees*Math.PI/180),Pt=Math.tan(M.rightDegrees*Math.PI/180),Ct=2/(ct+Pt),At=2/(q+nt);return I[0]=Ct,I[1]=0,I[2]=0,I[3]=0,I[4]=0,I[5]=At,I[6]=0,I[7]=0,I[8]=-((ct-Pt)*Ct*.5),I[9]=(q-nt)*At*.5,I[10]=Z/(X-Z),I[11]=-1,I[12]=0,I[13]=0,I[14]=Z*X/(X-Z),I[15]=0,I}function ft(I,M,X,Z,q,nt,ct){var Pt=1/(M-X),Ct=1/(Z-q),At=1/(nt-ct);return I[0]=-2*Pt,I[1]=0,I[2]=0,I[3]=0,I[4]=0,I[5]=-2*Ct,I[6]=0,I[7]=0,I[8]=0,I[9]=0,I[10]=2*At,I[11]=0,I[12]=(M+X)*Pt,I[13]=(q+Z)*Ct,I[14]=(ct+nt)*At,I[15]=1,I}function mt(I,M,X,Z){var q,nt,ct,Pt,Ct,At,bt,wt,Ot,Lt,Yt=M[0],$t=M[1],Wt=M[2],Qt=Z[0],ue=Z[1],ie=Z[2],ne=X[0],ae=X[1],se=X[2];return Math.abs(Yt-ne)<r.EPSILON&&Math.abs($t-ae)<r.EPSILON&&Math.abs(Wt-se)<r.EPSILON?u(I):(bt=Yt-ne,wt=$t-ae,Ot=Wt-se,Lt=1/Math.hypot(bt,wt,Ot),bt*=Lt,wt*=Lt,Ot*=Lt,q=ue*Ot-ie*wt,nt=ie*bt-Qt*Ot,ct=Qt*wt-ue*bt,Lt=Math.hypot(q,nt,ct),Lt?(Lt=1/Lt,q*=Lt,nt*=Lt,ct*=Lt):(q=0,nt=0,ct=0),Pt=wt*ct-Ot*nt,Ct=Ot*q-bt*ct,At=bt*nt-wt*q,Lt=Math.hypot(Pt,Ct,At),Lt?(Lt=1/Lt,Pt*=Lt,Ct*=Lt,At*=Lt):(Pt=0,Ct=0,At=0),I[0]=q,I[1]=Pt,I[2]=bt,I[3]=0,I[4]=nt,I[5]=Ct,I[6]=wt,I[7]=0,I[8]=ct,I[9]=At,I[10]=Ot,I[11]=0,I[12]=-(q*Yt+nt*$t+ct*Wt),I[13]=-(Pt*Yt+Ct*$t+At*Wt),I[14]=-(bt*Yt+wt*$t+Ot*Wt),I[15]=1,I)}function yt(I,M,X,Z){var q=M[0],nt=M[1],ct=M[2],Pt=Z[0],Ct=Z[1],At=Z[2],bt=q-X[0],wt=nt-X[1],Ot=ct-X[2],Lt=bt*bt+wt*wt+Ot*Ot;Lt>0&&(Lt=1/Math.sqrt(Lt),bt*=Lt,wt*=Lt,Ot*=Lt);var Yt=Ct*Ot-At*wt,$t=At*bt-Pt*Ot,Wt=Pt*wt-Ct*bt;return Lt=Yt*Yt+$t*$t+Wt*Wt,Lt>0&&(Lt=1/Math.sqrt(Lt),Yt*=Lt,$t*=Lt,Wt*=Lt),I[0]=Yt,I[1]=$t,I[2]=Wt,I[3]=0,I[4]=wt*Wt-Ot*$t,I[5]=Ot*Yt-bt*Wt,I[6]=bt*$t-wt*Yt,I[7]=0,I[8]=bt,I[9]=wt,I[10]=Ot,I[11]=0,I[12]=q,I[13]=nt,I[14]=ct,I[15]=1,I}function Et(I){return"mat4("+I[0]+", "+I[1]+", "+I[2]+", "+I[3]+", "+I[4]+", "+I[5]+", "+I[6]+", "+I[7]+", "+I[8]+", "+I[9]+", "+I[10]+", "+I[11]+", "+I[12]+", "+I[13]+", "+I[14]+", "+I[15]+")"}function ht(I){return Math.hypot(I[0],I[1],I[2],I[3],I[4],I[5],I[6],I[7],I[8],I[9],I[10],I[11],I[12],I[13],I[14],I[15])}function Nt(I,M,X){return I[0]=M[0]+X[0],I[1]=M[1]+X[1],I[2]=M[2]+X[2],I[3]=M[3]+X[3],I[4]=M[4]+X[4],I[5]=M[5]+X[5],I[6]=M[6]+X[6],I[7]=M[7]+X[7],I[8]=M[8]+X[8],I[9]=M[9]+X[9],I[10]=M[10]+X[10],I[11]=M[11]+X[11],I[12]=M[12]+X[12],I[13]=M[13]+X[13],I[14]=M[14]+X[14],I[15]=M[15]+X[15],I}function Bt(I,M,X){return I[0]=M[0]-X[0],I[1]=M[1]-X[1],I[2]=M[2]-X[2],I[3]=M[3]-X[3],I[4]=M[4]-X[4],I[5]=M[5]-X[5],I[6]=M[6]-X[6],I[7]=M[7]-X[7],I[8]=M[8]-X[8],I[9]=M[9]-X[9],I[10]=M[10]-X[10],I[11]=M[11]-X[11],I[12]=M[12]-X[12],I[13]=M[13]-X[13],I[14]=M[14]-X[14],I[15]=M[15]-X[15],I}function G(I,M,X){return I[0]=M[0]*X,I[1]=M[1]*X,I[2]=M[2]*X,I[3]=M[3]*X,I[4]=M[4]*X,I[5]=M[5]*X,I[6]=M[6]*X,I[7]=M[7]*X,I[8]=M[8]*X,I[9]=M[9]*X,I[10]=M[10]*X,I[11]=M[11]*X,I[12]=M[12]*X,I[13]=M[13]*X,I[14]=M[14]*X,I[15]=M[15]*X,I}function H(I,M,X,Z){return I[0]=M[0]+X[0]*Z,I[1]=M[1]+X[1]*Z,I[2]=M[2]+X[2]*Z,I[3]=M[3]+X[3]*Z,I[4]=M[4]+X[4]*Z,I[5]=M[5]+X[5]*Z,I[6]=M[6]+X[6]*Z,I[7]=M[7]+X[7]*Z,I[8]=M[8]+X[8]*Z,I[9]=M[9]+X[9]*Z,I[10]=M[10]+X[10]*Z,I[11]=M[11]+X[11]*Z,I[12]=M[12]+X[12]*Z,I[13]=M[13]+X[13]*Z,I[14]=M[14]+X[14]*Z,I[15]=M[15]+X[15]*Z,I}function rt(I,M){return I[0]===M[0]&&I[1]===M[1]&&I[2]===M[2]&&I[3]===M[3]&&I[4]===M[4]&&I[5]===M[5]&&I[6]===M[6]&&I[7]===M[7]&&I[8]===M[8]&&I[9]===M[9]&&I[10]===M[10]&&I[11]===M[11]&&I[12]===M[12]&&I[13]===M[13]&&I[14]===M[14]&&I[15]===M[15]}function at(I,M){var X=I[0],Z=I[1],q=I[2],nt=I[3],ct=I[4],Pt=I[5],Ct=I[6],At=I[7],bt=I[8],wt=I[9],Ot=I[10],Lt=I[11],Yt=I[12],$t=I[13],Wt=I[14],Qt=I[15],ue=M[0],ie=M[1],ne=M[2],ae=M[3],se=M[4],Fe=M[5],Ue=M[6],ze=M[7],$e=M[8],Ge=M[9],He=M[10],qe=M[11],Oe=M[12],pr=M[13],an=M[14],qr=M[15];return Math.abs(X-ue)<=r.EPSILON*Math.max(1,Math.abs(X),Math.abs(ue))&&Math.abs(Z-ie)<=r.EPSILON*Math.max(1,Math.abs(Z),Math.abs(ie))&&Math.abs(q-ne)<=r.EPSILON*Math.max(1,Math.abs(q),Math.abs(ne))&&Math.abs(nt-ae)<=r.EPSILON*Math.max(1,Math.abs(nt),Math.abs(ae))&&Math.abs(ct-se)<=r.EPSILON*Math.max(1,Math.abs(ct),Math.abs(se))&&Math.abs(Pt-Fe)<=r.EPSILON*Math.max(1,Math.abs(Pt),Math.abs(Fe))&&Math.abs(Ct-Ue)<=r.EPSILON*Math.max(1,Math.abs(Ct),Math.abs(Ue))&&Math.abs(At-ze)<=r.EPSILON*Math.max(1,Math.abs(At),Math.abs(ze))&&Math.abs(bt-$e)<=r.EPSILON*Math.max(1,Math.abs(bt),Math.abs($e))&&Math.abs(wt-Ge)<=r.EPSILON*Math.max(1,Math.abs(wt),Math.abs(Ge))&&Math.abs(Ot-He)<=r.EPSILON*Math.max(1,Math.abs(Ot),Math.abs(He))&&Math.abs(Lt-qe)<=r.EPSILON*Math.max(1,Math.abs(Lt),Math.abs(qe))&&Math.abs(Yt-Oe)<=r.EPSILON*Math.max(1,Math.abs(Yt),Math.abs(Oe))&&Math.abs($t-pr)<=r.EPSILON*Math.max(1,Math.abs($t),Math.abs(pr))&&Math.abs(Wt-an)<=r.EPSILON*Math.max(1,Math.abs(Wt),Math.abs(an))&&Math.abs(Qt-qr)<=r.EPSILON*Math.max(1,Math.abs(Qt),Math.abs(qr))}var z=O,j=Bt},function(i,e,t){t.r(e),t.d(e,"create",function(){return l}),t.d(e,"identity",function(){return f}),t.d(e,"setAxisAngle",function(){return u}),t.d(e,"getAxisAngle",function(){return v}),t.d(e,"getAngle",function(){return h}),t.d(e,"multiply",function(){return y}),t.d(e,"rotateX",function(){return T}),t.d(e,"rotateY",function(){return O}),t.d(e,"rotateZ",function(){return C}),t.d(e,"calculateW",function(){return S}),t.d(e,"exp",function(){return w}),t.d(e,"ln",function(){return d}),t.d(e,"pow",function(){return g}),t.d(e,"slerp",function(){return p}),t.d(e,"random",function(){return P}),t.d(e,"invert",function(){return A}),t.d(e,"conjugate",function(){return R}),t.d(e,"fromMat3",function(){return D}),t.d(e,"fromEuler",function(){return U}),t.d(e,"str",function(){return L}),t.d(e,"clone",function(){return W}),t.d(e,"fromValues",function(){return Y}),t.d(e,"copy",function(){return B}),t.d(e,"set",function(){return N}),t.d(e,"add",function(){return $}),t.d(e,"mul",function(){return J}),t.d(e,"scale",function(){return et}),t.d(e,"dot",function(){return ot}),t.d(e,"lerp",function(){return ut}),t.d(e,"length",function(){return K}),t.d(e,"len",function(){return Q}),t.d(e,"squaredLength",function(){return ft}),t.d(e,"sqrLen",function(){return mt}),t.d(e,"normalize",function(){return yt}),t.d(e,"exactEquals",function(){return Et}),t.d(e,"equals",function(){return ht}),t.d(e,"rotationTo",function(){return Nt}),t.d(e,"sqlerp",function(){return Bt}),t.d(e,"setAxes",function(){return G});var r=t(2),n=t(5),s=t(8),c=t(9);function l(){var H=new r.ARRAY_TYPE(4);return r.ARRAY_TYPE!=Float32Array&&(H[0]=0,H[1]=0,H[2]=0),H[3]=1,H}function f(H){return H[0]=0,H[1]=0,H[2]=0,H[3]=1,H}function u(H,rt,at){at=at*.5;var z=Math.sin(at);return H[0]=z*rt[0],H[1]=z*rt[1],H[2]=z*rt[2],H[3]=Math.cos(at),H}function v(H,rt){var at=Math.acos(rt[3])*2,z=Math.sin(at/2);return z>r.EPSILON?(H[0]=rt[0]/z,H[1]=rt[1]/z,H[2]=rt[2]/z):(H[0]=1,H[1]=0,H[2]=0),at}function h(H,rt){var at=ot(H,rt);return Math.acos(2*at*at-1)}function y(H,rt,at){var z=rt[0],j=rt[1],I=rt[2],M=rt[3],X=at[0],Z=at[1],q=at[2],nt=at[3];return H[0]=z*nt+M*X+j*q-I*Z,H[1]=j*nt+M*Z+I*X-z*q,H[2]=I*nt+M*q+z*Z-j*X,H[3]=M*nt-z*X-j*Z-I*q,H}function T(H,rt,at){at*=.5;var z=rt[0],j=rt[1],I=rt[2],M=rt[3],X=Math.sin(at),Z=Math.cos(at);return H[0]=z*Z+M*X,H[1]=j*Z+I*X,H[2]=I*Z-j*X,H[3]=M*Z-z*X,H}function O(H,rt,at){at*=.5;var z=rt[0],j=rt[1],I=rt[2],M=rt[3],X=Math.sin(at),Z=Math.cos(at);return H[0]=z*Z-I*X,H[1]=j*Z+M*X,H[2]=I*Z+z*X,H[3]=M*Z-j*X,H}function C(H,rt,at){at*=.5;var z=rt[0],j=rt[1],I=rt[2],M=rt[3],X=Math.sin(at),Z=Math.cos(at);return H[0]=z*Z+j*X,H[1]=j*Z-z*X,H[2]=I*Z+M*X,H[3]=M*Z-I*X,H}function S(H,rt){var at=rt[0],z=rt[1],j=rt[2];return H[0]=at,H[1]=z,H[2]=j,H[3]=Math.sqrt(Math.abs(1-at*at-z*z-j*j)),H}function w(H,rt){var at=rt[0],z=rt[1],j=rt[2],I=rt[3],M=Math.sqrt(at*at+z*z+j*j),X=Math.exp(I),Z=M>0?X*Math.sin(M)/M:0;return H[0]=at*Z,H[1]=z*Z,H[2]=j*Z,H[3]=X*Math.cos(M),H}function d(H,rt){var at=rt[0],z=rt[1],j=rt[2],I=rt[3],M=Math.sqrt(at*at+z*z+j*j),X=M>0?Math.atan2(M,I)/M:0;return H[0]=at*X,H[1]=z*X,H[2]=j*X,H[3]=.5*Math.log(at*at+z*z+j*j+I*I),H}function g(H,rt,at){return d(H,rt),et(H,H,at),w(H,H),H}function p(H,rt,at,z){var j=rt[0],I=rt[1],M=rt[2],X=rt[3],Z=at[0],q=at[1],nt=at[2],ct=at[3],Pt,Ct,At,bt,wt;return Ct=j*Z+I*q+M*nt+X*ct,Ct<0&&(Ct=-Ct,Z=-Z,q=-q,nt=-nt,ct=-ct),1-Ct>r.EPSILON?(Pt=Math.acos(Ct),At=Math.sin(Pt),bt=Math.sin((1-z)*Pt)/At,wt=Math.sin(z*Pt)/At):(bt=1-z,wt=z),H[0]=bt*j+wt*Z,H[1]=bt*I+wt*q,H[2]=bt*M+wt*nt,H[3]=bt*X+wt*ct,H}function P(H){var rt=r.RANDOM(),at=r.RANDOM(),z=r.RANDOM(),j=Math.sqrt(1-rt),I=Math.sqrt(rt);return H[0]=j*Math.sin(2*Math.PI*at),H[1]=j*Math.cos(2*Math.PI*at),H[2]=I*Math.sin(2*Math.PI*z),H[3]=I*Math.cos(2*Math.PI*z),H}function A(H,rt){var at=rt[0],z=rt[1],j=rt[2],I=rt[3],M=at*at+z*z+j*j+I*I,X=M?1/M:0;return H[0]=-at*X,H[1]=-z*X,H[2]=-j*X,H[3]=I*X,H}function R(H,rt){return H[0]=-rt[0],H[1]=-rt[1],H[2]=-rt[2],H[3]=rt[3],H}function D(H,rt){var at=rt[0]+rt[4]+rt[8],z;if(at>0)z=Math.sqrt(at+1),H[3]=.5*z,z=.5/z,H[0]=(rt[5]-rt[7])*z,H[1]=(rt[6]-rt[2])*z,H[2]=(rt[1]-rt[3])*z;else{var j=0;rt[4]>rt[0]&&(j=1),rt[8]>rt[j*3+j]&&(j=2);var I=(j+1)%3,M=(j+2)%3;z=Math.sqrt(rt[j*3+j]-rt[I*3+I]-rt[M*3+M]+1),H[j]=.5*z,z=.5/z,H[3]=(rt[I*3+M]-rt[M*3+I])*z,H[I]=(rt[I*3+j]+rt[j*3+I])*z,H[M]=(rt[M*3+j]+rt[j*3+M])*z}return H}function U(H,rt,at,z){var j=.5*Math.PI/180;rt*=j,at*=j,z*=j;var I=Math.sin(rt),M=Math.cos(rt),X=Math.sin(at),Z=Math.cos(at),q=Math.sin(z),nt=Math.cos(z);return H[0]=I*Z*nt-M*X*q,H[1]=M*X*nt+I*Z*q,H[2]=M*Z*q-I*X*nt,H[3]=M*Z*nt+I*X*q,H}function L(H){return"quat("+H[0]+", "+H[1]+", "+H[2]+", "+H[3]+")"}var W=c.clone,Y=c.fromValues,B=c.copy,N=c.set,$=c.add,J=y,et=c.scale,ot=c.dot,ut=c.lerp,K=c.length,Q=K,ft=c.squaredLength,mt=ft,yt=c.normalize,Et=c.exactEquals,ht=c.equals,Nt=function(){var H=s.create(),rt=s.fromValues(1,0,0),at=s.fromValues(0,1,0);return function(z,j,I){var M=s.dot(j,I);return M<-.999999?(s.cross(H,rt,j),s.len(H)<1e-6&&s.cross(H,at,j),s.normalize(H,H),u(z,H,Math.PI),z):M>.999999?(z[0]=0,z[1]=0,z[2]=0,z[3]=1,z):(s.cross(H,j,I),z[0]=H[0],z[1]=H[1],z[2]=H[2],z[3]=1+M,yt(z,z))}}(),Bt=function(){var H=l(),rt=l();return function(at,z,j,I,M,X){return p(H,z,M,X),p(rt,j,I,X),p(at,H,rt,2*X*(1-X)),at}}(),G=function(){var H=n.create();return function(rt,at,z,j){return H[0]=z[0],H[3]=z[1],H[6]=z[2],H[1]=j[0],H[4]=j[1],H[7]=j[2],H[2]=-at[0],H[5]=-at[1],H[8]=-at[2],yt(rt,D(rt,H))}}()},function(i,e,t){t.r(e),t.d(e,"create",function(){return n}),t.d(e,"clone",function(){return s}),t.d(e,"length",function(){return c}),t.d(e,"fromValues",function(){return l}),t.d(e,"copy",function(){return f}),t.d(e,"set",function(){return u}),t.d(e,"add",function(){return v}),t.d(e,"subtract",function(){return h}),t.d(e,"multiply",function(){return y}),t.d(e,"divide",function(){return T}),t.d(e,"ceil",function(){return O}),t.d(e,"floor",function(){return C}),t.d(e,"min",function(){return S}),t.d(e,"max",function(){return w}),t.d(e,"round",function(){return d}),t.d(e,"scale",function(){return g}),t.d(e,"scaleAndAdd",function(){return p}),t.d(e,"distance",function(){return P}),t.d(e,"squaredDistance",function(){return A}),t.d(e,"squaredLength",function(){return R}),t.d(e,"negate",function(){return D}),t.d(e,"inverse",function(){return U}),t.d(e,"normalize",function(){return L}),t.d(e,"dot",function(){return W}),t.d(e,"cross",function(){return Y}),t.d(e,"lerp",function(){return B}),t.d(e,"hermite",function(){return N}),t.d(e,"bezier",function(){return $}),t.d(e,"random",function(){return J}),t.d(e,"transformMat4",function(){return et}),t.d(e,"transformMat3",function(){return ot}),t.d(e,"transformQuat",function(){return ut}),t.d(e,"rotateX",function(){return K}),t.d(e,"rotateY",function(){return Q}),t.d(e,"rotateZ",function(){return ft}),t.d(e,"angle",function(){return mt}),t.d(e,"zero",function(){return yt}),t.d(e,"str",function(){return Et}),t.d(e,"exactEquals",function(){return ht}),t.d(e,"equals",function(){return Nt}),t.d(e,"sub",function(){return Bt}),t.d(e,"mul",function(){return G}),t.d(e,"div",function(){return H}),t.d(e,"dist",function(){return rt}),t.d(e,"sqrDist",function(){return at}),t.d(e,"len",function(){return z}),t.d(e,"sqrLen",function(){return j}),t.d(e,"forEach",function(){return I});var r=t(2);function n(){var M=new r.ARRAY_TYPE(3);return r.ARRAY_TYPE!=Float32Array&&(M[0]=0,M[1]=0,M[2]=0),M}function s(M){var X=new r.ARRAY_TYPE(3);return X[0]=M[0],X[1]=M[1],X[2]=M[2],X}function c(M){var X=M[0],Z=M[1],q=M[2];return Math.hypot(X,Z,q)}function l(M,X,Z){var q=new r.ARRAY_TYPE(3);return q[0]=M,q[1]=X,q[2]=Z,q}function f(M,X){return M[0]=X[0],M[1]=X[1],M[2]=X[2],M}function u(M,X,Z,q){return M[0]=X,M[1]=Z,M[2]=q,M}function v(M,X,Z){return M[0]=X[0]+Z[0],M[1]=X[1]+Z[1],M[2]=X[2]+Z[2],M}function h(M,X,Z){return M[0]=X[0]-Z[0],M[1]=X[1]-Z[1],M[2]=X[2]-Z[2],M}function y(M,X,Z){return M[0]=X[0]*Z[0],M[1]=X[1]*Z[1],M[2]=X[2]*Z[2],M}function T(M,X,Z){return M[0]=X[0]/Z[0],M[1]=X[1]/Z[1],M[2]=X[2]/Z[2],M}function O(M,X){return M[0]=Math.ceil(X[0]),M[1]=Math.ceil(X[1]),M[2]=Math.ceil(X[2]),M}function C(M,X){return M[0]=Math.floor(X[0]),M[1]=Math.floor(X[1]),M[2]=Math.floor(X[2]),M}function S(M,X,Z){return M[0]=Math.min(X[0],Z[0]),M[1]=Math.min(X[1],Z[1]),M[2]=Math.min(X[2],Z[2]),M}function w(M,X,Z){return M[0]=Math.max(X[0],Z[0]),M[1]=Math.max(X[1],Z[1]),M[2]=Math.max(X[2],Z[2]),M}function d(M,X){return M[0]=Math.round(X[0]),M[1]=Math.round(X[1]),M[2]=Math.round(X[2]),M}function g(M,X,Z){return M[0]=X[0]*Z,M[1]=X[1]*Z,M[2]=X[2]*Z,M}function p(M,X,Z,q){return M[0]=X[0]+Z[0]*q,M[1]=X[1]+Z[1]*q,M[2]=X[2]+Z[2]*q,M}function P(M,X){var Z=X[0]-M[0],q=X[1]-M[1],nt=X[2]-M[2];return Math.hypot(Z,q,nt)}function A(M,X){var Z=X[0]-M[0],q=X[1]-M[1],nt=X[2]-M[2];return Z*Z+q*q+nt*nt}function R(M){var X=M[0],Z=M[1],q=M[2];return X*X+Z*Z+q*q}function D(M,X){return M[0]=-X[0],M[1]=-X[1],M[2]=-X[2],M}function U(M,X){return M[0]=1/X[0],M[1]=1/X[1],M[2]=1/X[2],M}function L(M,X){var Z=X[0],q=X[1],nt=X[2],ct=Z*Z+q*q+nt*nt;return ct>0&&(ct=1/Math.sqrt(ct)),M[0]=X[0]*ct,M[1]=X[1]*ct,M[2]=X[2]*ct,M}function W(M,X){return M[0]*X[0]+M[1]*X[1]+M[2]*X[2]}function Y(M,X,Z){var q=X[0],nt=X[1],ct=X[2],Pt=Z[0],Ct=Z[1],At=Z[2];return M[0]=nt*At-ct*Ct,M[1]=ct*Pt-q*At,M[2]=q*Ct-nt*Pt,M}function B(M,X,Z,q){var nt=X[0],ct=X[1],Pt=X[2];return M[0]=nt+q*(Z[0]-nt),M[1]=ct+q*(Z[1]-ct),M[2]=Pt+q*(Z[2]-Pt),M}function N(M,X,Z,q,nt,ct){var Pt=ct*ct,Ct=Pt*(2*ct-3)+1,At=Pt*(ct-2)+ct,bt=Pt*(ct-1),wt=Pt*(3-2*ct);return M[0]=X[0]*Ct+Z[0]*At+q[0]*bt+nt[0]*wt,M[1]=X[1]*Ct+Z[1]*At+q[1]*bt+nt[1]*wt,M[2]=X[2]*Ct+Z[2]*At+q[2]*bt+nt[2]*wt,M}function $(M,X,Z,q,nt,ct){var Pt=1-ct,Ct=Pt*Pt,At=ct*ct,bt=Ct*Pt,wt=3*ct*Ct,Ot=3*At*Pt,Lt=At*ct;return M[0]=X[0]*bt+Z[0]*wt+q[0]*Ot+nt[0]*Lt,M[1]=X[1]*bt+Z[1]*wt+q[1]*Ot+nt[1]*Lt,M[2]=X[2]*bt+Z[2]*wt+q[2]*Ot+nt[2]*Lt,M}function J(M,X){X=X||1;var Z=r.RANDOM()*2*Math.PI,q=r.RANDOM()*2-1,nt=Math.sqrt(1-q*q)*X;return M[0]=Math.cos(Z)*nt,M[1]=Math.sin(Z)*nt,M[2]=q*X,M}function et(M,X,Z){var q=X[0],nt=X[1],ct=X[2],Pt=Z[3]*q+Z[7]*nt+Z[11]*ct+Z[15];return Pt=Pt||1,M[0]=(Z[0]*q+Z[4]*nt+Z[8]*ct+Z[12])/Pt,M[1]=(Z[1]*q+Z[5]*nt+Z[9]*ct+Z[13])/Pt,M[2]=(Z[2]*q+Z[6]*nt+Z[10]*ct+Z[14])/Pt,M}function ot(M,X,Z){var q=X[0],nt=X[1],ct=X[2];return M[0]=q*Z[0]+nt*Z[3]+ct*Z[6],M[1]=q*Z[1]+nt*Z[4]+ct*Z[7],M[2]=q*Z[2]+nt*Z[5]+ct*Z[8],M}function ut(M,X,Z){var q=Z[0],nt=Z[1],ct=Z[2],Pt=Z[3],Ct=X[0],At=X[1],bt=X[2],wt=nt*bt-ct*At,Ot=ct*Ct-q*bt,Lt=q*At-nt*Ct,Yt=nt*Lt-ct*Ot,$t=ct*wt-q*Lt,Wt=q*Ot-nt*wt,Qt=Pt*2;return wt*=Qt,Ot*=Qt,Lt*=Qt,Yt*=2,$t*=2,Wt*=2,M[0]=Ct+wt+Yt,M[1]=At+Ot+$t,M[2]=bt+Lt+Wt,M}function K(M,X,Z,q){var nt=[],ct=[];return nt[0]=X[0]-Z[0],nt[1]=X[1]-Z[1],nt[2]=X[2]-Z[2],ct[0]=nt[0],ct[1]=nt[1]*Math.cos(q)-nt[2]*Math.sin(q),ct[2]=nt[1]*Math.sin(q)+nt[2]*Math.cos(q),M[0]=ct[0]+Z[0],M[1]=ct[1]+Z[1],M[2]=ct[2]+Z[2],M}function Q(M,X,Z,q){var nt=[],ct=[];return nt[0]=X[0]-Z[0],nt[1]=X[1]-Z[1],nt[2]=X[2]-Z[2],ct[0]=nt[2]*Math.sin(q)+nt[0]*Math.cos(q),ct[1]=nt[1],ct[2]=nt[2]*Math.cos(q)-nt[0]*Math.sin(q),M[0]=ct[0]+Z[0],M[1]=ct[1]+Z[1],M[2]=ct[2]+Z[2],M}function ft(M,X,Z,q){var nt=[],ct=[];return nt[0]=X[0]-Z[0],nt[1]=X[1]-Z[1],nt[2]=X[2]-Z[2],ct[0]=nt[0]*Math.cos(q)-nt[1]*Math.sin(q),ct[1]=nt[0]*Math.sin(q)+nt[1]*Math.cos(q),ct[2]=nt[2],M[0]=ct[0]+Z[0],M[1]=ct[1]+Z[1],M[2]=ct[2]+Z[2],M}function mt(M,X){var Z=M[0],q=M[1],nt=M[2],ct=X[0],Pt=X[1],Ct=X[2],At=Math.sqrt(Z*Z+q*q+nt*nt),bt=Math.sqrt(ct*ct+Pt*Pt+Ct*Ct),wt=At*bt,Ot=wt&&W(M,X)/wt;return Math.acos(Math.min(Math.max(Ot,-1),1))}function yt(M){return M[0]=0,M[1]=0,M[2]=0,M}function Et(M){return"vec3("+M[0]+", "+M[1]+", "+M[2]+")"}function ht(M,X){return M[0]===X[0]&&M[1]===X[1]&&M[2]===X[2]}function Nt(M,X){var Z=M[0],q=M[1],nt=M[2],ct=X[0],Pt=X[1],Ct=X[2];return Math.abs(Z-ct)<=r.EPSILON*Math.max(1,Math.abs(Z),Math.abs(ct))&&Math.abs(q-Pt)<=r.EPSILON*Math.max(1,Math.abs(q),Math.abs(Pt))&&Math.abs(nt-Ct)<=r.EPSILON*Math.max(1,Math.abs(nt),Math.abs(Ct))}var Bt=h,G=y,H=T,rt=P,at=A,z=c,j=R,I=function(){var M=n();return function(X,Z,q,nt,ct,Pt){var Ct,At;for(Z||(Z=3),q||(q=0),nt?At=Math.min(nt*Z+q,X.length):At=X.length,Ct=q;Ct<At;Ct+=Z)M[0]=X[Ct],M[1]=X[Ct+1],M[2]=X[Ct+2],ct(M,M,Pt),X[Ct]=M[0],X[Ct+1]=M[1],X[Ct+2]=M[2];return X}}()},function(i,e,t){t.r(e),t.d(e,"create",function(){return n}),t.d(e,"clone",function(){return s}),t.d(e,"fromValues",function(){return c}),t.d(e,"copy",function(){return l}),t.d(e,"set",function(){return f}),t.d(e,"add",function(){return u}),t.d(e,"subtract",function(){return v}),t.d(e,"multiply",function(){return h}),t.d(e,"divide",function(){return y}),t.d(e,"ceil",function(){return T}),t.d(e,"floor",function(){return O}),t.d(e,"min",function(){return C}),t.d(e,"max",function(){return S}),t.d(e,"round",function(){return w}),t.d(e,"scale",function(){return d}),t.d(e,"scaleAndAdd",function(){return g}),t.d(e,"distance",function(){return p}),t.d(e,"squaredDistance",function(){return P}),t.d(e,"length",function(){return A}),t.d(e,"squaredLength",function(){return R}),t.d(e,"negate",function(){return D}),t.d(e,"inverse",function(){return U}),t.d(e,"normalize",function(){return L}),t.d(e,"dot",function(){return W}),t.d(e,"cross",function(){return Y}),t.d(e,"lerp",function(){return B}),t.d(e,"random",function(){return N}),t.d(e,"transformMat4",function(){return $}),t.d(e,"transformQuat",function(){return J}),t.d(e,"zero",function(){return et}),t.d(e,"str",function(){return ot}),t.d(e,"exactEquals",function(){return ut}),t.d(e,"equals",function(){return K}),t.d(e,"sub",function(){return Q}),t.d(e,"mul",function(){return ft}),t.d(e,"div",function(){return mt}),t.d(e,"dist",function(){return yt}),t.d(e,"sqrDist",function(){return Et}),t.d(e,"len",function(){return ht}),t.d(e,"sqrLen",function(){return Nt}),t.d(e,"forEach",function(){return Bt});var r=t(2);function n(){var G=new r.ARRAY_TYPE(4);return r.ARRAY_TYPE!=Float32Array&&(G[0]=0,G[1]=0,G[2]=0,G[3]=0),G}function s(G){var H=new r.ARRAY_TYPE(4);return H[0]=G[0],H[1]=G[1],H[2]=G[2],H[3]=G[3],H}function c(G,H,rt,at){var z=new r.ARRAY_TYPE(4);return z[0]=G,z[1]=H,z[2]=rt,z[3]=at,z}function l(G,H){return G[0]=H[0],G[1]=H[1],G[2]=H[2],G[3]=H[3],G}function f(G,H,rt,at,z){return G[0]=H,G[1]=rt,G[2]=at,G[3]=z,G}function u(G,H,rt){return G[0]=H[0]+rt[0],G[1]=H[1]+rt[1],G[2]=H[2]+rt[2],G[3]=H[3]+rt[3],G}function v(G,H,rt){return G[0]=H[0]-rt[0],G[1]=H[1]-rt[1],G[2]=H[2]-rt[2],G[3]=H[3]-rt[3],G}function h(G,H,rt){return G[0]=H[0]*rt[0],G[1]=H[1]*rt[1],G[2]=H[2]*rt[2],G[3]=H[3]*rt[3],G}function y(G,H,rt){return G[0]=H[0]/rt[0],G[1]=H[1]/rt[1],G[2]=H[2]/rt[2],G[3]=H[3]/rt[3],G}function T(G,H){return G[0]=Math.ceil(H[0]),G[1]=Math.ceil(H[1]),G[2]=Math.ceil(H[2]),G[3]=Math.ceil(H[3]),G}function O(G,H){return G[0]=Math.floor(H[0]),G[1]=Math.floor(H[1]),G[2]=Math.floor(H[2]),G[3]=Math.floor(H[3]),G}function C(G,H,rt){return G[0]=Math.min(H[0],rt[0]),G[1]=Math.min(H[1],rt[1]),G[2]=Math.min(H[2],rt[2]),G[3]=Math.min(H[3],rt[3]),G}function S(G,H,rt){return G[0]=Math.max(H[0],rt[0]),G[1]=Math.max(H[1],rt[1]),G[2]=Math.max(H[2],rt[2]),G[3]=Math.max(H[3],rt[3]),G}function w(G,H){return G[0]=Math.round(H[0]),G[1]=Math.round(H[1]),G[2]=Math.round(H[2]),G[3]=Math.round(H[3]),G}function d(G,H,rt){return G[0]=H[0]*rt,G[1]=H[1]*rt,G[2]=H[2]*rt,G[3]=H[3]*rt,G}function g(G,H,rt,at){return G[0]=H[0]+rt[0]*at,G[1]=H[1]+rt[1]*at,G[2]=H[2]+rt[2]*at,G[3]=H[3]+rt[3]*at,G}function p(G,H){var rt=H[0]-G[0],at=H[1]-G[1],z=H[2]-G[2],j=H[3]-G[3];return Math.hypot(rt,at,z,j)}function P(G,H){var rt=H[0]-G[0],at=H[1]-G[1],z=H[2]-G[2],j=H[3]-G[3];return rt*rt+at*at+z*z+j*j}function A(G){var H=G[0],rt=G[1],at=G[2],z=G[3];return Math.hypot(H,rt,at,z)}function R(G){var H=G[0],rt=G[1],at=G[2],z=G[3];return H*H+rt*rt+at*at+z*z}function D(G,H){return G[0]=-H[0],G[1]=-H[1],G[2]=-H[2],G[3]=-H[3],G}function U(G,H){return G[0]=1/H[0],G[1]=1/H[1],G[2]=1/H[2],G[3]=1/H[3],G}function L(G,H){var rt=H[0],at=H[1],z=H[2],j=H[3],I=rt*rt+at*at+z*z+j*j;return I>0&&(I=1/Math.sqrt(I)),G[0]=rt*I,G[1]=at*I,G[2]=z*I,G[3]=j*I,G}function W(G,H){return G[0]*H[0]+G[1]*H[1]+G[2]*H[2]+G[3]*H[3]}function Y(G,H,rt,at){var z=rt[0]*at[1]-rt[1]*at[0],j=rt[0]*at[2]-rt[2]*at[0],I=rt[0]*at[3]-rt[3]*at[0],M=rt[1]*at[2]-rt[2]*at[1],X=rt[1]*at[3]-rt[3]*at[1],Z=rt[2]*at[3]-rt[3]*at[2],q=H[0],nt=H[1],ct=H[2],Pt=H[3];return G[0]=nt*Z-ct*X+Pt*M,G[1]=-(q*Z)+ct*I-Pt*j,G[2]=q*X-nt*I+Pt*z,G[3]=-(q*M)+nt*j-ct*z,G}function B(G,H,rt,at){var z=H[0],j=H[1],I=H[2],M=H[3];return G[0]=z+at*(rt[0]-z),G[1]=j+at*(rt[1]-j),G[2]=I+at*(rt[2]-I),G[3]=M+at*(rt[3]-M),G}function N(G,H){H=H||1;var rt,at,z,j,I,M;do rt=r.RANDOM()*2-1,at=r.RANDOM()*2-1,I=rt*rt+at*at;while(I>=1);do z=r.RANDOM()*2-1,j=r.RANDOM()*2-1,M=z*z+j*j;while(M>=1);var X=Math.sqrt((1-I)/M);return G[0]=H*rt,G[1]=H*at,G[2]=H*z*X,G[3]=H*j*X,G}function $(G,H,rt){var at=H[0],z=H[1],j=H[2],I=H[3];return G[0]=rt[0]*at+rt[4]*z+rt[8]*j+rt[12]*I,G[1]=rt[1]*at+rt[5]*z+rt[9]*j+rt[13]*I,G[2]=rt[2]*at+rt[6]*z+rt[10]*j+rt[14]*I,G[3]=rt[3]*at+rt[7]*z+rt[11]*j+rt[15]*I,G}function J(G,H,rt){var at=H[0],z=H[1],j=H[2],I=rt[0],M=rt[1],X=rt[2],Z=rt[3],q=Z*at+M*j-X*z,nt=Z*z+X*at-I*j,ct=Z*j+I*z-M*at,Pt=-I*at-M*z-X*j;return G[0]=q*Z+Pt*-I+nt*-X-ct*-M,G[1]=nt*Z+Pt*-M+ct*-I-q*-X,G[2]=ct*Z+Pt*-X+q*-M-nt*-I,G[3]=H[3],G}function et(G){return G[0]=0,G[1]=0,G[2]=0,G[3]=0,G}function ot(G){return"vec4("+G[0]+", "+G[1]+", "+G[2]+", "+G[3]+")"}function ut(G,H){return G[0]===H[0]&&G[1]===H[1]&&G[2]===H[2]&&G[3]===H[3]}function K(G,H){var rt=G[0],at=G[1],z=G[2],j=G[3],I=H[0],M=H[1],X=H[2],Z=H[3];return Math.abs(rt-I)<=r.EPSILON*Math.max(1,Math.abs(rt),Math.abs(I))&&Math.abs(at-M)<=r.EPSILON*Math.max(1,Math.abs(at),Math.abs(M))&&Math.abs(z-X)<=r.EPSILON*Math.max(1,Math.abs(z),Math.abs(X))&&Math.abs(j-Z)<=r.EPSILON*Math.max(1,Math.abs(j),Math.abs(Z))}var Q=v,ft=h,mt=y,yt=p,Et=P,ht=A,Nt=R,Bt=function(){var G=n();return function(H,rt,at,z,j,I){var M,X;for(rt||(rt=4),at||(at=0),z?X=Math.min(z*rt+at,H.length):X=H.length,M=at;M<X;M+=rt)G[0]=H[M],G[1]=H[M+1],G[2]=H[M+2],G[3]=H[M+3],j(G,G,I),H[M]=G[0],H[M+1]=G[1],H[M+2]=G[2],H[M+3]=G[3];return H}}()},function(i,e,t){t.r(e),t.d(e,"create",function(){return c}),t.d(e,"clone",function(){return l}),t.d(e,"fromValues",function(){return f}),t.d(e,"fromRotationTranslationValues",function(){return u}),t.d(e,"fromRotationTranslation",function(){return v}),t.d(e,"fromTranslation",function(){return h}),t.d(e,"fromRotation",function(){return y}),t.d(e,"fromMat4",function(){return T}),t.d(e,"copy",function(){return O}),t.d(e,"identity",function(){return C}),t.d(e,"set",function(){return S}),t.d(e,"getReal",function(){return w}),t.d(e,"getDual",function(){return d}),t.d(e,"setReal",function(){return g}),t.d(e,"setDual",function(){return p}),t.d(e,"getTranslation",function(){return P}),t.d(e,"translate",function(){return A}),t.d(e,"rotateX",function(){return R}),t.d(e,"rotateY",function(){return D}),t.d(e,"rotateZ",function(){return U}),t.d(e,"rotateByQuatAppend",function(){return L}),t.d(e,"rotateByQuatPrepend",function(){return W}),t.d(e,"rotateAroundAxis",function(){return Y}),t.d(e,"add",function(){return B}),t.d(e,"multiply",function(){return N}),t.d(e,"mul",function(){return $}),t.d(e,"scale",function(){return J}),t.d(e,"dot",function(){return et}),t.d(e,"lerp",function(){return ot}),t.d(e,"invert",function(){return ut}),t.d(e,"conjugate",function(){return K}),t.d(e,"length",function(){return Q}),t.d(e,"len",function(){return ft}),t.d(e,"squaredLength",function(){return mt}),t.d(e,"sqrLen",function(){return yt}),t.d(e,"normalize",function(){return Et}),t.d(e,"str",function(){return ht}),t.d(e,"exactEquals",function(){return Nt}),t.d(e,"equals",function(){return Bt});var r=t(2),n=t(7),s=t(6);function c(){var G=new r.ARRAY_TYPE(8);return r.ARRAY_TYPE!=Float32Array&&(G[0]=0,G[1]=0,G[2]=0,G[4]=0,G[5]=0,G[6]=0,G[7]=0),G[3]=1,G}function l(G){var H=new r.ARRAY_TYPE(8);return H[0]=G[0],H[1]=G[1],H[2]=G[2],H[3]=G[3],H[4]=G[4],H[5]=G[5],H[6]=G[6],H[7]=G[7],H}function f(G,H,rt,at,z,j,I,M){var X=new r.ARRAY_TYPE(8);return X[0]=G,X[1]=H,X[2]=rt,X[3]=at,X[4]=z,X[5]=j,X[6]=I,X[7]=M,X}function u(G,H,rt,at,z,j,I){var M=new r.ARRAY_TYPE(8);M[0]=G,M[1]=H,M[2]=rt,M[3]=at;var X=z*.5,Z=j*.5,q=I*.5;return M[4]=X*at+Z*rt-q*H,M[5]=Z*at+q*G-X*rt,M[6]=q*at+X*H-Z*G,M[7]=-X*G-Z*H-q*rt,M}function v(G,H,rt){var at=rt[0]*.5,z=rt[1]*.5,j=rt[2]*.5,I=H[0],M=H[1],X=H[2],Z=H[3];return G[0]=I,G[1]=M,G[2]=X,G[3]=Z,G[4]=at*Z+z*X-j*M,G[5]=z*Z+j*I-at*X,G[6]=j*Z+at*M-z*I,G[7]=-at*I-z*M-j*X,G}function h(G,H){return G[0]=0,G[1]=0,G[2]=0,G[3]=1,G[4]=H[0]*.5,G[5]=H[1]*.5,G[6]=H[2]*.5,G[7]=0,G}function y(G,H){return G[0]=H[0],G[1]=H[1],G[2]=H[2],G[3]=H[3],G[4]=0,G[5]=0,G[6]=0,G[7]=0,G}function T(G,H){var rt=n.create();s.getRotation(rt,H);var at=new r.ARRAY_TYPE(3);return s.getTranslation(at,H),v(G,rt,at),G}function O(G,H){return G[0]=H[0],G[1]=H[1],G[2]=H[2],G[3]=H[3],G[4]=H[4],G[5]=H[5],G[6]=H[6],G[7]=H[7],G}function C(G){return G[0]=0,G[1]=0,G[2]=0,G[3]=1,G[4]=0,G[5]=0,G[6]=0,G[7]=0,G}function S(G,H,rt,at,z,j,I,M,X){return G[0]=H,G[1]=rt,G[2]=at,G[3]=z,G[4]=j,G[5]=I,G[6]=M,G[7]=X,G}var w=n.copy;function d(G,H){return G[0]=H[4],G[1]=H[5],G[2]=H[6],G[3]=H[7],G}var g=n.copy;function p(G,H){return G[4]=H[0],G[5]=H[1],G[6]=H[2],G[7]=H[3],G}function P(G,H){var rt=H[4],at=H[5],z=H[6],j=H[7],I=-H[0],M=-H[1],X=-H[2],Z=H[3];return G[0]=(rt*Z+j*I+at*X-z*M)*2,G[1]=(at*Z+j*M+z*I-rt*X)*2,G[2]=(z*Z+j*X+rt*M-at*I)*2,G}function A(G,H,rt){var at=H[0],z=H[1],j=H[2],I=H[3],M=rt[0]*.5,X=rt[1]*.5,Z=rt[2]*.5,q=H[4],nt=H[5],ct=H[6],Pt=H[7];return G[0]=at,G[1]=z,G[2]=j,G[3]=I,G[4]=I*M+z*Z-j*X+q,G[5]=I*X+j*M-at*Z+nt,G[6]=I*Z+at*X-z*M+ct,G[7]=-at*M-z*X-j*Z+Pt,G}function R(G,H,rt){var at=-H[0],z=-H[1],j=-H[2],I=H[3],M=H[4],X=H[5],Z=H[6],q=H[7],nt=M*I+q*at+X*j-Z*z,ct=X*I+q*z+Z*at-M*j,Pt=Z*I+q*j+M*z-X*at,Ct=q*I-M*at-X*z-Z*j;return n.rotateX(G,H,rt),at=G[0],z=G[1],j=G[2],I=G[3],G[4]=nt*I+Ct*at+ct*j-Pt*z,G[5]=ct*I+Ct*z+Pt*at-nt*j,G[6]=Pt*I+Ct*j+nt*z-ct*at,G[7]=Ct*I-nt*at-ct*z-Pt*j,G}function D(G,H,rt){var at=-H[0],z=-H[1],j=-H[2],I=H[3],M=H[4],X=H[5],Z=H[6],q=H[7],nt=M*I+q*at+X*j-Z*z,ct=X*I+q*z+Z*at-M*j,Pt=Z*I+q*j+M*z-X*at,Ct=q*I-M*at-X*z-Z*j;return n.rotateY(G,H,rt),at=G[0],z=G[1],j=G[2],I=G[3],G[4]=nt*I+Ct*at+ct*j-Pt*z,G[5]=ct*I+Ct*z+Pt*at-nt*j,G[6]=Pt*I+Ct*j+nt*z-ct*at,G[7]=Ct*I-nt*at-ct*z-Pt*j,G}function U(G,H,rt){var at=-H[0],z=-H[1],j=-H[2],I=H[3],M=H[4],X=H[5],Z=H[6],q=H[7],nt=M*I+q*at+X*j-Z*z,ct=X*I+q*z+Z*at-M*j,Pt=Z*I+q*j+M*z-X*at,Ct=q*I-M*at-X*z-Z*j;return n.rotateZ(G,H,rt),at=G[0],z=G[1],j=G[2],I=G[3],G[4]=nt*I+Ct*at+ct*j-Pt*z,G[5]=ct*I+Ct*z+Pt*at-nt*j,G[6]=Pt*I+Ct*j+nt*z-ct*at,G[7]=Ct*I-nt*at-ct*z-Pt*j,G}function L(G,H,rt){var at=rt[0],z=rt[1],j=rt[2],I=rt[3],M=H[0],X=H[1],Z=H[2],q=H[3];return G[0]=M*I+q*at+X*j-Z*z,G[1]=X*I+q*z+Z*at-M*j,G[2]=Z*I+q*j+M*z-X*at,G[3]=q*I-M*at-X*z-Z*j,M=H[4],X=H[5],Z=H[6],q=H[7],G[4]=M*I+q*at+X*j-Z*z,G[5]=X*I+q*z+Z*at-M*j,G[6]=Z*I+q*j+M*z-X*at,G[7]=q*I-M*at-X*z-Z*j,G}function W(G,H,rt){var at=H[0],z=H[1],j=H[2],I=H[3],M=rt[0],X=rt[1],Z=rt[2],q=rt[3];return G[0]=at*q+I*M+z*Z-j*X,G[1]=z*q+I*X+j*M-at*Z,G[2]=j*q+I*Z+at*X-z*M,G[3]=I*q-at*M-z*X-j*Z,M=rt[4],X=rt[5],Z=rt[6],q=rt[7],G[4]=at*q+I*M+z*Z-j*X,G[5]=z*q+I*X+j*M-at*Z,G[6]=j*q+I*Z+at*X-z*M,G[7]=I*q-at*M-z*X-j*Z,G}function Y(G,H,rt,at){if(Math.abs(at)<r.EPSILON)return O(G,H);var z=Math.hypot(rt[0],rt[1],rt[2]);at=at*.5;var j=Math.sin(at),I=j*rt[0]/z,M=j*rt[1]/z,X=j*rt[2]/z,Z=Math.cos(at),q=H[0],nt=H[1],ct=H[2],Pt=H[3];G[0]=q*Z+Pt*I+nt*X-ct*M,G[1]=nt*Z+Pt*M+ct*I-q*X,G[2]=ct*Z+Pt*X+q*M-nt*I,G[3]=Pt*Z-q*I-nt*M-ct*X;var Ct=H[4],At=H[5],bt=H[6],wt=H[7];return G[4]=Ct*Z+wt*I+At*X-bt*M,G[5]=At*Z+wt*M+bt*I-Ct*X,G[6]=bt*Z+wt*X+Ct*M-At*I,G[7]=wt*Z-Ct*I-At*M-bt*X,G}function B(G,H,rt){return G[0]=H[0]+rt[0],G[1]=H[1]+rt[1],G[2]=H[2]+rt[2],G[3]=H[3]+rt[3],G[4]=H[4]+rt[4],G[5]=H[5]+rt[5],G[6]=H[6]+rt[6],G[7]=H[7]+rt[7],G}function N(G,H,rt){var at=H[0],z=H[1],j=H[2],I=H[3],M=rt[4],X=rt[5],Z=rt[6],q=rt[7],nt=H[4],ct=H[5],Pt=H[6],Ct=H[7],At=rt[0],bt=rt[1],wt=rt[2],Ot=rt[3];return G[0]=at*Ot+I*At+z*wt-j*bt,G[1]=z*Ot+I*bt+j*At-at*wt,G[2]=j*Ot+I*wt+at*bt-z*At,G[3]=I*Ot-at*At-z*bt-j*wt,G[4]=at*q+I*M+z*Z-j*X+nt*Ot+Ct*At+ct*wt-Pt*bt,G[5]=z*q+I*X+j*M-at*Z+ct*Ot+Ct*bt+Pt*At-nt*wt,G[6]=j*q+I*Z+at*X-z*M+Pt*Ot+Ct*wt+nt*bt-ct*At,G[7]=I*q-at*M-z*X-j*Z+Ct*Ot-nt*At-ct*bt-Pt*wt,G}var $=N;function J(G,H,rt){return G[0]=H[0]*rt,G[1]=H[1]*rt,G[2]=H[2]*rt,G[3]=H[3]*rt,G[4]=H[4]*rt,G[5]=H[5]*rt,G[6]=H[6]*rt,G[7]=H[7]*rt,G}var et=n.dot;function ot(G,H,rt,at){var z=1-at;return et(H,rt)<0&&(at=-at),G[0]=H[0]*z+rt[0]*at,G[1]=H[1]*z+rt[1]*at,G[2]=H[2]*z+rt[2]*at,G[3]=H[3]*z+rt[3]*at,G[4]=H[4]*z+rt[4]*at,G[5]=H[5]*z+rt[5]*at,G[6]=H[6]*z+rt[6]*at,G[7]=H[7]*z+rt[7]*at,G}function ut(G,H){var rt=mt(H);return G[0]=-H[0]/rt,G[1]=-H[1]/rt,G[2]=-H[2]/rt,G[3]=H[3]/rt,G[4]=-H[4]/rt,G[5]=-H[5]/rt,G[6]=-H[6]/rt,G[7]=H[7]/rt,G}function K(G,H){return G[0]=-H[0],G[1]=-H[1],G[2]=-H[2],G[3]=H[3],G[4]=-H[4],G[5]=-H[5],G[6]=-H[6],G[7]=H[7],G}var Q=n.length,ft=Q,mt=n.squaredLength,yt=mt;function Et(G,H){var rt=mt(H);if(rt>0){rt=Math.sqrt(rt);var at=H[0]/rt,z=H[1]/rt,j=H[2]/rt,I=H[3]/rt,M=H[4],X=H[5],Z=H[6],q=H[7],nt=at*M+z*X+j*Z+I*q;G[0]=at,G[1]=z,G[2]=j,G[3]=I,G[4]=(M-at*nt)/rt,G[5]=(X-z*nt)/rt,G[6]=(Z-j*nt)/rt,G[7]=(q-I*nt)/rt}return G}function ht(G){return"quat2("+G[0]+", "+G[1]+", "+G[2]+", "+G[3]+", "+G[4]+", "+G[5]+", "+G[6]+", "+G[7]+")"}function Nt(G,H){return G[0]===H[0]&&G[1]===H[1]&&G[2]===H[2]&&G[3]===H[3]&&G[4]===H[4]&&G[5]===H[5]&&G[6]===H[6]&&G[7]===H[7]}function Bt(G,H){var rt=G[0],at=G[1],z=G[2],j=G[3],I=G[4],M=G[5],X=G[6],Z=G[7],q=H[0],nt=H[1],ct=H[2],Pt=H[3],Ct=H[4],At=H[5],bt=H[6],wt=H[7];return Math.abs(rt-q)<=r.EPSILON*Math.max(1,Math.abs(rt),Math.abs(q))&&Math.abs(at-nt)<=r.EPSILON*Math.max(1,Math.abs(at),Math.abs(nt))&&Math.abs(z-ct)<=r.EPSILON*Math.max(1,Math.abs(z),Math.abs(ct))&&Math.abs(j-Pt)<=r.EPSILON*Math.max(1,Math.abs(j),Math.abs(Pt))&&Math.abs(I-Ct)<=r.EPSILON*Math.max(1,Math.abs(I),Math.abs(Ct))&&Math.abs(M-At)<=r.EPSILON*Math.max(1,Math.abs(M),Math.abs(At))&&Math.abs(X-bt)<=r.EPSILON*Math.max(1,Math.abs(X),Math.abs(bt))&&Math.abs(Z-wt)<=r.EPSILON*Math.max(1,Math.abs(Z),Math.abs(wt))}},function(i,e,t){t.r(e),t.d(e,"create",function(){return n}),t.d(e,"clone",function(){return s}),t.d(e,"fromValues",function(){return c}),t.d(e,"copy",function(){return l}),t.d(e,"set",function(){return f}),t.d(e,"add",function(){return u}),t.d(e,"subtract",function(){return v}),t.d(e,"multiply",function(){return h}),t.d(e,"divide",function(){return y}),t.d(e,"ceil",function(){return T}),t.d(e,"floor",function(){return O}),t.d(e,"min",function(){return C}),t.d(e,"max",function(){return S}),t.d(e,"round",function(){return w}),t.d(e,"scale",function(){return d}),t.d(e,"scaleAndAdd",function(){return g}),t.d(e,"distance",function(){return p}),t.d(e,"squaredDistance",function(){return P}),t.d(e,"length",function(){return A}),t.d(e,"squaredLength",function(){return R}),t.d(e,"negate",function(){return D}),t.d(e,"inverse",function(){return U}),t.d(e,"normalize",function(){return L}),t.d(e,"dot",function(){return W}),t.d(e,"cross",function(){return Y}),t.d(e,"lerp",function(){return B}),t.d(e,"random",function(){return N}),t.d(e,"transformMat2",function(){return $}),t.d(e,"transformMat2d",function(){return J}),t.d(e,"transformMat3",function(){return et}),t.d(e,"transformMat4",function(){return ot}),t.d(e,"rotate",function(){return ut}),t.d(e,"angle",function(){return K}),t.d(e,"zero",function(){return Q}),t.d(e,"str",function(){return ft}),t.d(e,"exactEquals",function(){return mt}),t.d(e,"equals",function(){return yt}),t.d(e,"len",function(){return Et}),t.d(e,"sub",function(){return ht}),t.d(e,"mul",function(){return Nt}),t.d(e,"div",function(){return Bt}),t.d(e,"dist",function(){return G}),t.d(e,"sqrDist",function(){return H}),t.d(e,"sqrLen",function(){return rt}),t.d(e,"forEach",function(){return at});var r=t(2);function n(){var z=new r.ARRAY_TYPE(2);return r.ARRAY_TYPE!=Float32Array&&(z[0]=0,z[1]=0),z}function s(z){var j=new r.ARRAY_TYPE(2);return j[0]=z[0],j[1]=z[1],j}function c(z,j){var I=new r.ARRAY_TYPE(2);return I[0]=z,I[1]=j,I}function l(z,j){return z[0]=j[0],z[1]=j[1],z}function f(z,j,I){return z[0]=j,z[1]=I,z}function u(z,j,I){return z[0]=j[0]+I[0],z[1]=j[1]+I[1],z}function v(z,j,I){return z[0]=j[0]-I[0],z[1]=j[1]-I[1],z}function h(z,j,I){return z[0]=j[0]*I[0],z[1]=j[1]*I[1],z}function y(z,j,I){return z[0]=j[0]/I[0],z[1]=j[1]/I[1],z}function T(z,j){return z[0]=Math.ceil(j[0]),z[1]=Math.ceil(j[1]),z}function O(z,j){return z[0]=Math.floor(j[0]),z[1]=Math.floor(j[1]),z}function C(z,j,I){return z[0]=Math.min(j[0],I[0]),z[1]=Math.min(j[1],I[1]),z}function S(z,j,I){return z[0]=Math.max(j[0],I[0]),z[1]=Math.max(j[1],I[1]),z}function w(z,j){return z[0]=Math.round(j[0]),z[1]=Math.round(j[1]),z}function d(z,j,I){return z[0]=j[0]*I,z[1]=j[1]*I,z}function g(z,j,I,M){return z[0]=j[0]+I[0]*M,z[1]=j[1]+I[1]*M,z}function p(z,j){var I=j[0]-z[0],M=j[1]-z[1];return Math.hypot(I,M)}function P(z,j){var I=j[0]-z[0],M=j[1]-z[1];return I*I+M*M}function A(z){var j=z[0],I=z[1];return Math.hypot(j,I)}function R(z){var j=z[0],I=z[1];return j*j+I*I}function D(z,j){return z[0]=-j[0],z[1]=-j[1],z}function U(z,j){return z[0]=1/j[0],z[1]=1/j[1],z}function L(z,j){var I=j[0],M=j[1],X=I*I+M*M;return X>0&&(X=1/Math.sqrt(X)),z[0]=j[0]*X,z[1]=j[1]*X,z}function W(z,j){return z[0]*j[0]+z[1]*j[1]}function Y(z,j,I){var M=j[0]*I[1]-j[1]*I[0];return z[0]=z[1]=0,z[2]=M,z}function B(z,j,I,M){var X=j[0],Z=j[1];return z[0]=X+M*(I[0]-X),z[1]=Z+M*(I[1]-Z),z}function N(z,j){j=j||1;var I=r.RANDOM()*2*Math.PI;return z[0]=Math.cos(I)*j,z[1]=Math.sin(I)*j,z}function $(z,j,I){var M=j[0],X=j[1];return z[0]=I[0]*M+I[2]*X,z[1]=I[1]*M+I[3]*X,z}function J(z,j,I){var M=j[0],X=j[1];return z[0]=I[0]*M+I[2]*X+I[4],z[1]=I[1]*M+I[3]*X+I[5],z}function et(z,j,I){var M=j[0],X=j[1];return z[0]=I[0]*M+I[3]*X+I[6],z[1]=I[1]*M+I[4]*X+I[7],z}function ot(z,j,I){var M=j[0],X=j[1];return z[0]=I[0]*M+I[4]*X+I[12],z[1]=I[1]*M+I[5]*X+I[13],z}function ut(z,j,I,M){var X=j[0]-I[0],Z=j[1]-I[1],q=Math.sin(M),nt=Math.cos(M);return z[0]=X*nt-Z*q+I[0],z[1]=X*q+Z*nt+I[1],z}function K(z,j){var I=z[0],M=z[1],X=j[0],Z=j[1],q=Math.sqrt(I*I+M*M)*Math.sqrt(X*X+Z*Z),nt=q&&(I*X+M*Z)/q;return Math.acos(Math.min(Math.max(nt,-1),1))}function Q(z){return z[0]=0,z[1]=0,z}function ft(z){return"vec2("+z[0]+", "+z[1]+")"}function mt(z,j){return z[0]===j[0]&&z[1]===j[1]}function yt(z,j){var I=z[0],M=z[1],X=j[0],Z=j[1];return Math.abs(I-X)<=r.EPSILON*Math.max(1,Math.abs(I),Math.abs(X))&&Math.abs(M-Z)<=r.EPSILON*Math.max(1,Math.abs(M),Math.abs(Z))}var Et=A,ht=v,Nt=h,Bt=y,G=p,H=P,rt=R,at=function(){var z=n();return function(j,I,M,X,Z,q){var nt,ct;for(I||(I=2),M||(M=0),X?ct=Math.min(X*I+M,j.length):ct=j.length,nt=M;nt<ct;nt+=I)z[0]=j[nt],z[1]=j[nt+1],Z(z,z,q),j[nt]=z[0],j[nt+1]=z[1];return j}}()},function(i,e,t){t.r(e);var r=t(13);t.d(e,"Renderer",function(){return r.default});var n=t(40);t.d(e,"Figure2D",function(){return n.default});var s=t(56);t.d(e,"Mesh2D",function(){return s.default});var c=t(29);t.d(e,"MeshCloud",function(){return c.default});var l=t(23);t.d(e,"parseFont",function(){return l.default});var f=t(31);t.d(e,"parseColor",function(){return f.default});var u=t(21);t.d(e,"ENV",function(){return u.default}),t(1).glMatrix.setMatrixArrayType(Array)},function(i,e,t){t.r(e),t.d(e,"default",function(){return U});var r=t(14),n=t(1),s=t(20),c=t(27),l=t(25),f=t(40),u=t(56),v=t(29),h=t(59),y=t(21),T=t(63);t(1).glMatrix.setMatrixArrayType(Array);const O={autoUpdate:!1,preserveDrawingBuffer:!1,bufferSize:1500},C=`attribute vec3 a_vertexPosition;
|
|
2
|
+
attribute vec3 a_vertexTextureCoord;
|
|
3
|
+
varying vec3 vTextureCoord;
|
|
4
|
+
uniform mat3 viewMatrix;
|
|
5
|
+
uniform mat3 projectionMatrix;
|
|
6
|
+
|
|
7
|
+
void main() {
|
|
8
|
+
gl_PointSize = 1.0;
|
|
9
|
+
vec3 pos = projectionMatrix * viewMatrix * vec3(a_vertexPosition.xy, 1.0);
|
|
10
|
+
gl_Position = vec4(pos.xy, 1.0, 1.0);
|
|
11
|
+
vTextureCoord = a_vertexTextureCoord;
|
|
12
|
+
}
|
|
13
|
+
`,S=`precision mediump float;
|
|
14
|
+
varying vec3 vTextureCoord;
|
|
15
|
+
uniform sampler2D u_texSampler;
|
|
16
|
+
void main() {
|
|
17
|
+
gl_FragColor = texture2D(u_texSampler, vTextureCoord.xy);
|
|
18
|
+
}
|
|
19
|
+
`,w=Symbol("glRenderer"),d=Symbol("canvasRenderer"),g=Symbol("options"),p=Symbol("globalTransform"),P=Symbol("applyGlobalTransform"),A=Symbol("canvas");function R(L){const W=L.gl,Y=L.fbo;Y&&W.bindFramebuffer(W.FRAMEBUFFER,Y),L._draw(),Y&&W.bindFramebuffer(W.FRAMEBUFFER,null)}function D(L,W,Y,B){const N=L.createTexture(W.canvas),$=[[[0,0],[Y,0],[Y,B],[0,B],[0,0]]];$.closed=!0;const J=new u.default({contours:$});J.setTexture(N),L.setMeshData([J.meshData]),R(L),N.delete(),W.clearRect(0,0,Y,B),delete W._filter}class U{constructor(W,Y={}){let B=Y.contextType;if(B||(typeof WebGL2RenderingContext=="function"?B="webgl2":typeof WebGLRenderingContext=="function"?B="webgl":B="2d"),!W.getContext){const N=W;W={getContext(){return N},width:Y.width,height:Y.height},N.canvas=W,B="2d"}if(this[A]=W,B!=="webgl"&&B!=="webgl2"&&B!=="2d")throw new Error(`Unknown context type ${B}`);if(Y.contextType=B,this[g]=Object.assign({},O,Y),B==="webgl"||B==="webgl2"){B==="webgl2"&&(this[g].webgl2=!0);const N=new r.default(W,this[g]);B==="webgl2"&&!N.isWebGL2&&(Y.contextType="webgl"),Object(T.createShaders)(N),Object(T.applyShader)(N),Object(T.createCloudShaders)(N);const $=N.gl;$.clearColor(0,0,0,0),$.blendFuncSeparate($.SRC_ALPHA,$.ONE_MINUS_SRC_ALPHA,$.ONE,$.ONE_MINUS_SRC_ALPHA),this[w]=N}else this[d]=new s.default(W,this[g]);this[p]=[1,0,0,0,1,0,0,0,1],this.updateResolution()}get canvas(){return this[A]}get canvasRenderer(){return this[d]}get glRenderer(){return this[w]}get isWebGL2(){return this[w]&&this[w].isWebGL2}get options(){return this[g]}get globalTransformMatrix(){const W=this[p];return[W[0],W[1],W[3],W[4],W[6],W[7]]}get viewMatrix(){return this[p]}[P](){const W=this[w]||this[d];if(this[w]){const{width:Y,height:B}=this.canvas;W.uniforms.viewMatrix=this.viewMatrix,W.uniforms.projectionMatrix=this.projectionMatrix,W.uniforms.u_resolution=[Y,B]}}updateResolution(){const{width:W,height:Y}=this.canvas,B=[1,0,0,0,1,0,-W/2,-Y/2,1],N=[2/W,0,0,0,-2/Y,0,0,0,1],$=n.mat3.multiply(Array.of(0,0,0,0,0,0,0,0,0),N,B);this.projectionMatrix=$,this[w]&&this[w].gl.viewport(0,0,W,Y)}createTexture(W,Y){return(this[w]||this[d]).createTexture(W,Y)}loadTexture(W,{useImageBitmap:Y=!1}={}){return(this[w]||this[d]).loadTexture(W,{useImageBitmap:Y})}createText(W,{font:Y="16px arial",fillColor:B=null,strokeColor:N=null,strokeWidth:$=1}={}){if(this[w]){const J=y.default.createText(W,{font:Y,fillColor:B,strokeColor:N,strokeWidth:$});return{image:this.createTexture(J.image),rect:J.rect}}return{_img:{font:Y,fillColor:B,strokeColor:N,strokeWidth:$,text:W}}}createProgram({vertex:W,fragment:Y,options:B}={}){if(this[w]){const N=this[w].compileSync(Y,W);return N._attribOpts=B,N}throw new Error("Context 2D cannot create webgl program.")}createPassProgram({vertex:W=C,fragment:Y=S,options:B}={}){return this.createProgram({vertex:W,fragment:Y,options:B})}useProgram(W,Y={}){if(this[w]){const B=Object.assign({},W._attribOpts,Y);return this[w].useProgram(W,B)}throw new Error("Context 2D cannot use webgl program.")}deleteTexture(W){return(this[w]||this[d]).deleteTexture(W)}clear(...W){if(this[w]){const Y=this[w].gl;Y.clear(Y.COLOR_BUFFER_BIT)}else this[d].clear(...W)}drawMeshCloud(W,{clear:Y=!1,program:B=null}={}){const N=this[w]||this[d],$=B||W.program;if(this[w]){const J=N.gl;if(Y&&J.clear(J.COLOR_BUFFER_BIT),$)N.program!==$&&this.useProgram($,{a_color:{type:"UNSIGNED_BYTE",normalize:!0},a_fillCloudColor:{type:"UNSIGNED_BYTE",normalize:!0},a_strokeCloudColor:{type:"UNSIGNED_BYTE",normalize:!0},a_frameIndex:{type:"UNSIGNED_BYTE",normalize:!1}});else{const et=W.mesh.meshData,ot=!!et.uniforms.u_texSampler,ut=!!et.uniforms.u_filterFlag,K=!!et.uniforms.u_radialGradientVector,Q=W.hasCloudColor,ft=W.hasCloudFilter,mt=!!et.uniforms.u_clipSampler;Object(T.applyCloudShader)(N,{hasTexture:ot,hasFilter:ut,hasGradient:K,hasCloudColor:Q,hasCloudFilter:ft,hasClipPath:mt})}this[P](),N.setMeshData([W.meshData]),W.beforeRender&&W.beforeRender(J,W),R(N),W.afterRender&&W.afterRender(J,W)}else N.setTransform(this.globalTransformMatrix),N.drawMeshCloud(W,{clear:Y,hook:!1})}drawMeshes(W,{clear:Y=!1,program:B=null}={}){const N=this[w]||this[d];if(this[w]){const $=N.fbo,J=Object(c.default)(this,W,B==null),et=N.gl;Y&&et.clear(et.COLOR_BUFFER_BIT);const ot=!Object(h.isUnitTransform)(this.globalTransformMatrix);this._drawCalls=0;for(const ut of J){this._drawCalls++;const K=B||ut.program;if(ut instanceof v.default)this.drawMeshCloud(ut,{clear:Y,program:K});else{const{width:Q,height:ft}=this.canvas;if(ut.beforeRender&&ut.beforeRender(et,ut),ut.pass.length&&((!this.fbo||this.fbo.width!==Q||this.fbo.height!==ft)&&(this.fbo={width:Q,height:ft,target:N.createFBO(),buffer:N.createFBO(),swap(){[this.target,this.buffer]=[this.buffer,this.target]}}),N.bindFBO(this.fbo.target)),!K&&ut.filterCanvas){Object(T.applyShader)(N,{hasTexture:!0});let mt=this.filterContext;mt||(mt=y.default.createCanvas(Q,ft).getContext("2d"),this.filterContext=mt);const yt=W[ut.packIndex],Et=yt.filter,ht=W[ut.packIndex+1],Nt=W[ut.packIndex-1];(!Nt||!Nt.filterCanvas||Nt.filter!==Et)&&(!ht||!ht.filterCanvas||ht.filter!==Et)?(ot?(mt.save(),Object(l.drawMesh2D)(yt,mt,!1),mt.restore(),Object(l.applyFilter)(mt,Et)):Object(l.drawMesh2D)(yt,mt,!0),this[P](),D(N,mt,Q,ft)):(ot&&mt.save(),Object(l.drawMesh2D)(yt,mt,!1),ot&&mt.restore(),(!ht||!ht.filterCanvas||yt.filter!==ht.filter)&&(Object(l.applyFilter)(mt,Et),this[P](),D(N,mt,Q,ft)))}else{if(K)N.program!==K&&this.useProgram(K,{a_color:{type:"UNSIGNED_BYTE",normalize:!0}});else{const mt=!!ut.uniforms.u_texSampler,yt=!!ut.uniforms.u_filterFlag,Et=!!ut.uniforms.u_radialGradientVector,ht=!!ut.uniforms.u_clipSampler;Object(T.applyShader)(N,{hasTexture:mt,hasFilter:yt,hasGradient:Et,hasClipPath:ht})}ut.filterCanvas&&console.warn("User program ignored some filter effects."),this[P](),N.setMeshData([ut]),R(N)}if(ut.pass.length){const mt=ut.pass.length;ut.pass.forEach((yt,Et)=>{yt.blend=ut.enableBlend,yt.setTexture(N.fbo.texture),Et===mt-1?N.bindFBO($):(this.fbo.swap(),N.bindFBO(this.fbo.target)),yt.program?N.useProgram(yt.program):(this.defaultPassProgram=this.defaultPassProgram||this.createPassProgram(),N.useProgram(this.defaultPassProgram)),N.setMeshData([yt.meshData]),et.clear(et.COLOR_BUFFER_BIT),R(N)})}ut.afterRender&&ut.afterRender(et,ut)}}}else N.setTransform(this.globalTransformMatrix),N.drawMeshes(W,{clear:Y})}drawImage(W,...Y){const B=Y.length;if(B<2)throw new TypeError(`Failed to execute 'drawImage' on 'Renderer': 3 arguments required, but only ${Y.length+1} present.`);if(B!==2&&B!==4&&B!==8)throw new TypeError(`Failed to execute 'drawImage' on 'Renderer': Valid arities are: [3, 5, 9], but ${Y.length+1} arguments provided.`);let N=null,$=null;B===2?N=[Y[0],Y[1],W.width,W.height]:B===4?N=Y:B===8&&($=Y.slice(0,4),N=Y.slice(4));const J=this.createTexture(W),{width:et,height:ot}=this.canvas,ut=new f.default;ut.rect(N[0],N[1],et,ot);const K=new u.default(ut,{width:et,height:ot});K.setTexture(J,{rect:N,srcRect:$}),this.drawMeshes([K]),this.deleteTexture(J)}setGlobalTransform(...W){return this[p]=[W[0],W[1],0,W[2],W[3],0,W[4],W[5],1],this}globalTransform(...W){const Y=this[p];return this[p]=n.mat3.multiply(Array.of(0,0,0,0,0,0,0,0,0),Y,W),this}globalTranslate(W,Y){let B=n.mat3.create();return B=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),B,[W,Y]),this.globalTransform(...B)}globalRotate(W,[Y,B]=[0,0]){let N=n.mat3.create();return N=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),N,[Y,B]),N=n.mat3.rotate(Array.of(0,0,0,0,0,0,0,0,0),N,W),N=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),N,[-Y,-B]),this.globalTransform(...N)}globalScale(W,Y=W,[B,N]=[0,0]){let $=n.mat3.create();return $=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),$,[B,N]),$=n.mat3.scale(Array.of(0,0,0,0,0,0,0,0,0),$,[W,Y]),$=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),$,[-B,-N]),this.globalTransform(...$)}globalSkew(W,Y=W,[B,N]=[0,0]){let $=n.mat3.create();return $=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),$,[B,N]),$=n.mat3.multiply(Array.of(0,0,0,0,0,0,0,0,0),$,n.mat3.fromValues(1,Math.tan(Y),Math.tan(W),1,0,0)),$=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),$,[-B,-N]),this.globalTransform(...$)}transformPoint(W,Y,B){let N=this.globalTransformMatrix;B&&(N=n.mat3.multiply(Array.of(0,0,0,0,0,0,0,0,0),N,B));const $=W*N[0]+Y*N[2]+N[4],J=W*N[1]+Y*N[3]+N[5];return[$,J]}}},function(i,e,t){t.r(e);var r=t(15);t(1).glMatrix.setMatrixArrayType(Array),e.default=r.default},function(i,e,t){t.r(e),t.d(e,"default",function(){return T});var r=t(16),n=t(17),s=t(18),c=t(19);t(1).glMatrix.setMatrixArrayType(Array);function l(O,C,S){return C in O?Object.defineProperty(O,C,{value:S,enumerable:!0,configurable:!0,writable:!0}):O[C]=S,O}const f={};function u(O,C=3){const S=[],w=O.length;for(let d=0;d<w;d++)d%C<2&&S.push(.5*(O[d]+1));return S}function v(O,C){const S=C._buffers;Object.values(S).forEach(w=>{O.deleteBuffer(w)}),C._buffers={}}function h(O,C,S){return O.activeTexture(O.TEXTURE0+S),Array.isArray(C._img)?O.bindTexture(O.TEXTURE_CUBE_MAP,C):O.bindTexture(O.TEXTURE_2D,C),C}const y={int:"1i",ivec2:"2i",ivec3:"3i",ivec4:"4i",float:"1f",vec2:"2f",vec3:"3f",vec4:"4f",mat2:"Matrix2fv",mat3:"Matrix3fv",mat4:"Matrix4fv",sampler1D:"sampler1D",sampler2D:"sampler2D",sampler3D:"sampler3D",samplerCube:"samplerCube",sampler1DShadow:"sampler1DShadow",sampler2DShadow:"sampler2DShadow",sampler2DRect:"sampler2DRect",sampler2DRectShadow:"sampler2DRectShadow"};class T{static addLibs(C={}){Object.assign(f,C)}static FLOAT(C,S){return Object(r.pointsToBuffer)(C,Float32Array,S)}static UNSIGNED_BYTE(C,S){return Object(r.pointsToBuffer)(C,Uint8Array,S)}static UNSIGNED_SHORT(C,S){return Object(r.pointsToBuffer)(C,Uint16Array,S)}static BYTE(C,S){return Object(r.pointsToBuffer)(C,Int8Array,S)}static SHORT(C,S){return Object(r.pointsToBuffer)(C,Int16Array,S)}constructor(C,S={}){this.options=Object.assign({},T.defaultOptions,S),this.canvas=C;let w;this.options.webgl2&&(w=C.getContext("webgl2",this.options)),w==null&&(w=Object(r.setupWebGL)(C,this.options),this.aia_ext=w.getExtension("ANGLE_instanced_arrays")),this.gl=w,w.viewport(0,0,C.width,C.height),w.clearColor(0,0,0,0),w.blendFuncSeparate(w.SRC_ALPHA,w.ONE_MINUS_SRC_ALPHA,w.ONE,w.ONE_MINUS_SRC_ALPHA),this.programs=[],this._events={}}get program(){const C=this.gl;return C.getParameter(C.CURRENT_PROGRAM)}_declareUniform(C,S,w="1f"){const d=this.gl,g=d.getUniformLocation(C,S);let p;const P=this;if(/^sampler/.test(w)){const A=C._samplerMap,R=C._bindTextures;Object.defineProperty(C.uniforms,S,{get(){return p},set(D){p=D;const U=A[S]!=null?A[S]:R.length;R[U]=D,h(d,D,U),A[S]||(A[S]=U,d.uniform1i(g,U)),P.options.autoUpdate&&P.update()},configurable:!1,enumerable:!0})}else{const A=w.indexOf("Matrix")===0,R=!A&&/v$/.test(w),D=d[`uniform${w}`].bind(d);Object.defineProperty(C.uniforms,S,{get(){return p},set(U){p=U,typeof U=="number"&&(U=[U]),A?D(g,!1,U):R?D(g,U):D(g,...U),P.options.autoUpdate&&P.update()},configurable:!1,enumerable:!0})}}_draw(){const C=this.program;C.meshData.forEach((S,w)=>{const{positions:d,cells:g,instanceCount:p,cellsCount:P,attributes:A,uniforms:R,textureCoord:D,enableBlend:U}=S,L=this.gl;let W=S.mode!=null?S.mode:L.TRIANGLES;typeof W=="string"&&(W=L[W]),U?L.enable(L.BLEND):L.disable(L.BLEND),L.bindBuffer(L.ARRAY_BUFFER,C._buffers.verticesBuffer),L.bufferData(L.ARRAY_BUFFER,d,L.STATIC_DRAW),g&&(L.bindBuffer(L.ELEMENT_ARRAY_BUFFER,C._buffers.cellsBuffer),L.bufferData(L.ELEMENT_ARRAY_BUFFER,g,L.STATIC_DRAW));const Y=[];A&&Object.values(A).forEach(({name:N,data:$,divisor:J})=>{if(L.bindBuffer(L.ARRAY_BUFFER,C._buffers[N]),L.bufferData(L.ARRAY_BUFFER,$,L.STATIC_DRAW),J!=null){const et=L.getAttribLocation(C,N);et>=0&&(L.enableVertexAttribArray(et),Y.push(et),L.vertexAttribDivisor?L.vertexAttribDivisor(et,J):this.aia_ext&&this.aia_ext.vertexAttribDivisorANGLE(et,J))}}),R&&Object.entries(R).forEach(([N,$])=>{this.uniforms[N]=$});let B;if(!g){const N=C._dimension;B=d.length/N}if(C._enableTextures&&C._buffers.texCoordBuffer){const N=D||u(d,C._dimension);L.bindBuffer(L.ARRAY_BUFFER,C._buffers.texCoordBuffer),L.bufferData(L.ARRAY_BUFFER,T.FLOAT(N),L.STATIC_DRAW)}p!=null?(g?L.drawElementsInstanced?L.drawElementsInstanced(W,P,L.UNSIGNED_SHORT,0,p):this.aia_ext&&this.aia_ext.drawElementsInstancedANGLE(W,P,L.UNSIGNED_SHORT,0,p):L.drawArraysInstanced?L.drawArraysInstanced(W,0,B,p):this.aia_ext.drawArraysInstancedANGLE(W,0,B,p),Y.forEach(N=>{L.vertexAttribDivisor?L.vertexAttribDivisor(N,null):this.aia_ext&&this.aia_ext.vertexAttribDivisorANGLE(N,null)})):g?L.drawElements(W,P,L.UNSIGNED_SHORT,0):L.drawArrays(W,0,B)})}get isWebGL2(){return typeof WebGL2RenderingContext<"u"&&this.gl instanceof WebGL2RenderingContext}get enableTextures(){return this.program&&this.program._enableTextures}get uniforms(){const C=this.program;if(!C||!C.uniforms)throw Error("No avaliable program.");return C.uniforms}deleteProgram(C){const S=this.gl;this.program===C&&(this.startRender=!1,this._renderFrameID&&(cancelAnimationFrame(this._renderFrameID),delete this._renderFrameID),S.useProgram(null));const w=this.programs.indexOf(C);w>=0&&this.programs.splice(w,1),v(S,C),S.deleteProgram(C)}setMeshData(C){Array.isArray(C)||(C=[C]);const S=this.program;S.meshData=C.map(({mode:w,positions:d,instanceCount:g,cells:p,cellsCount:P,attributes:A,uniforms:R,textureCoord:D,enableBlend:U})=>{const L={positions:T.FLOAT(d),uniforms:R,enableBlend:!!U,textureCoord:T.FLOAT(D)};if(p&&(L.cells=T.USHORT(p),L.cellsCount=P||L.cells.length),w!=null&&(L.mode=w),g!=null){if(!this.isWebGL2&&!this.aia_ext)throw new Error("Cannot use instanceCount in this rendering context, use webgl2 context instead.");L.instanceCount=g}if(A){const W={};Object.entries(A).forEach(([Y,B])=>{if(!S._attribute[Y])S._attribute[Y]="ignored";else if(S._attribute[Y]!=="ignored"){const{name:N,type:$}=S._attribute[Y];let J=B.data||B;if(Array.isArray(J)&&(J=T[$](J)),W[Y]={name:N,data:J},B.divisor!=null){if(!this.isWebGL2&&!this.aia_ext)throw new Error("Cannot use divisor in this rendering context, use webgl2 context instead.");W[Y].divisor=B.divisor}}}),L.attributes=W}return L}),this.options.autoUpdate&&this.update()}createProgram(C,S){const w=/^\s*uniform\s+sampler/mg.test(C);C==null&&(C=s.default),S==null&&(S=w?c.default:n.default);const d=this.gl,g=Object(r.createProgram)(d,S,C);g.shaderText={vertexShader:S,fragmentShader:C},g._buffers={},g._attribute={},g.uniforms={},g._samplerMap={},g._bindTextures=[];const p=new RegExp(`(?:attribute|in) vec(\\d) ${this.options.vertexPosition}`,"im");let P=S.match(p);P&&(g._dimension=Number(P[1]));const A=new RegExp(`(?:attribute|in) vec(\\d) ${this.options.vertexTextureCoord}`,"im");P=S.match(A),P&&(g._texCoordSize=Number(P[1]));const R=/^\s*(?:attribute|in) (\w+?)(\d*) (\w+)/gim;if(P=S.match(R),P)for(let L=0;L<P.length;L++){const W=/^\s*(?:attribute|in) (\w+?)(\d*) (\w+)/im,Y=P[L].match(W);if(Y&&Y[3]!==this.options.vertexPosition&&Y[3]!==this.options.vertexTextureCoord){let[,B,N,$]=Y;B==="mat"&&(N**=2),g._buffers[$]=d.createBuffer(),g._attribute[$]={name:$,type:B,size:Number(N)||1}}}const D=/^\s*uniform\s+(\w+)\s+(\w+)(\[\d+\])?/mg;P=S.match(D)||[],P=P.concat(C.match(D)||[]),P.forEach(L=>{const W=L.match(/^\s*uniform\s+(\w+)\s+(\w+)(\[\d+\])?/);let[Y,B,N]=W.slice(1);Y=y[Y],N=!!N,Y.indexOf("Matrix")!==0&&N&&(Y+="v"),this._declareUniform(g,B,Y)}),g._buffers.verticesBuffer=d.createBuffer(),g._buffers.cellsBuffer=d.createBuffer();const U=d.getAttribLocation(g,this.options.vertexTextureCoord);return g._enableTextures=U>=0,g._enableTextures&&(g._buffers.texCoordBuffer=d.createBuffer()),this.programs.push(g),g}useProgram(C,S={}){this.startRender=!1,this._renderFrameID&&(cancelAnimationFrame(this._renderFrameID),delete this._renderFrameID);const w=this.gl;w.useProgram(C);const d=C._dimension;w.bindBuffer(w.ARRAY_BUFFER,C._buffers.verticesBuffer);const g=w.getAttribLocation(C,this.options.vertexPosition);if(w.vertexAttribPointer(g,d,w.FLOAT,!1,0,0),w.enableVertexAttribArray(g),C._enableTextures){w.bindBuffer(w.ARRAY_BUFFER,C._buffers.texCoordBuffer);const p=w.getAttribLocation(C,this.options.vertexTextureCoord);w.vertexAttribPointer(p,C._texCoordSize||2,w.FLOAT,!1,0,0),w.enableVertexAttribArray(p)}if(Object.entries(C._attribute).forEach(([p,P])=>{if(P!=="ignored"){const A=P.size,R=S[p]||{},D=!!R.normalize;let U=R.type||"FLOAT";const L=R.key||p;U==="UBYTE"&&(U="UNSIGNED_BYTE"),U==="USHORT"&&(U="UNSIGNED_SHORT"),P.type=U,L&&L!==p&&(C._attribute[L]=P),w.bindBuffer(w.ARRAY_BUFFER,C._buffers[p]);const W=w.getAttribLocation(C,p);W>=0&&(w.vertexAttribPointer(W,A,w[U],D,0,0),w.enableVertexAttribArray(W))}}),!C.meshData){const p=[[-1,-1,0,1].slice(0,d),[1,-1,0,1].slice(0,d),[1,1,0,1].slice(0,d),[-1,1,0,1].slice(0,d)],P=[[0,1,3],[3,1,2]];this.setMeshData({positions:p,cells:P})}return C}compileSync(C,S){C=C||s.default;const w={};function d(A){A=A.replace(/^\s*/mg,"");const R=[],D=A.match(/^#pragma\s+include\s+.*/mg);if(D){for(let U=0;U<D.length;U++){const W=D[U].match(/(?:<|")(.*)(?:>|")/);if(W){const Y=W[0].indexOf("<")===0?"lib":"link";let B=W[1];if(B==="graph"&&(B="graphics"),w[B])R.push(`/* included ${B} */`);else if(w[B]=!0,Y==="lib"){const N=d(f[B]);R.push(N)}else if(Y==="link")throw new Error("Cannot load external links synchronously. Use compile instead of compileSync.")}}R.forEach(U=>{A=A.replace(/^#pragma\s+include\s+.*/m,U)})}return A}const g=d(C),p=S?d(S):null;return this.createProgram(g,p)}async compile(C,S){C=C||s.default;const w={};async function d(A){A=A.replace(/^\s*/mg,"");const R=[],D=A.match(/^#pragma\s+include\s+.*/mg);if(D){for(let U=0;U<D.length;U++){const W=D[U].match(/(?:<|")(.*)(?:>|")/);if(W){const Y=W[0].indexOf("<")===0?"lib":"link";let B=W[1];if(B==="graph"&&(B="graphics"),w[B])R.push(`/* included ${B} */`);else if(w[B]=!0,Y==="lib"){const N=await d(f[B]);R.push(N)}else if(Y==="link"){let N=await T.fetchShader(B);N=await d(N),R.push(N)}}}R.forEach(U=>{A=A.replace(/^#pragma\s+include\s+.*/m,U)})}return A}const g=await d(C),p=S?await d(S):null;return this.createProgram(g,p)}async load(C,S=null){return C=await T.fetchShader(C),S&&(S=await T.fetchShader(S)),this.compile(C,S)}createTexture(C=null,{wrapS:S=this.gl.CLAMP_TO_EDGE,wrapT:w=this.gl.CLAMP_TO_EDGE,minFilter:d=this.gl.LINEAR,magFilter:g=this.gl.LINEAR}={}){const p=this.gl,P=Array.isArray(C)?p.TEXTURE_CUBE_MAP:p.TEXTURE_2D;this._max_texture_image_units=this._max_texture_image_units||p.getParameter(p.MAX_COMBINED_TEXTURE_IMAGE_UNITS),p.activeTexture(p.TEXTURE0+this._max_texture_image_units-1);const A=p.createTexture();p.bindTexture(P,A),p.pixelStorei(p.UNPACK_FLIP_Y_WEBGL,!0);const{width:R,height:D}=this.canvas;if(C)if(P===p.TEXTURE_CUBE_MAP)for(let U=0;U<6;U++)p.texImage2D(p.TEXTURE_CUBE_MAP_POSITIVE_X+U,0,p.RGBA,p.RGBA,p.UNSIGNED_BYTE,C[U]);else p.texImage2D(P,0,p.RGBA,p.RGBA,p.UNSIGNED_BYTE,C);else if(P===p.TEXTURE_CUBE_MAP)for(let U=0;U<6;U++)this.gl.texImage2D(this.gl.TEXTURE_CUBE_MAP_POSITIVE_X+U,0,p.RGBA,R,D,0,p.RGBA,p.UNSIGNED_BYTE,null);else p.texImage2D(P,0,p.RGBA,R,D,0,p.RGBA,p.UNSIGNED_BYTE,null);return p.texParameteri(P,p.TEXTURE_MIN_FILTER,d),p.texParameteri(P,p.TEXTURE_MAG_FILTER,g),p.texParameteri(P,p.TEXTURE_WRAP_S,S),p.texParameteri(P,p.TEXTURE_WRAP_T,w),P===p.TEXTURE_CUBE_MAP&&(C.width=C[0].width,C.height=C[0].height),p.bindTexture(P,null),A._img=C||{width:R,height:D},A.delete=()=>{this.deleteTexture(A)},A}deleteTexture(C){const S=C._img;this.gl.deleteTexture(C),typeof S.close=="function"&&S.close()}async loadTexture(C,{useImageBitmap:S=!0}={}){const w=await T.loadImage(C,{useImageBitmap:S});return this.createTexture(w)}createFBO({color:C=1,blend:S=!1,depth:w=this.options.depth!==!1,stencil:d=!!this.options.stencil}={}){const g=this.gl,p=g.createFramebuffer();g.bindFramebuffer(g.FRAMEBUFFER,p);const P=[];for(let D=0;D<C;D++){const U=this.createTexture();g.framebufferTexture2D(g.FRAMEBUFFER,g.COLOR_ATTACHMENT0+D,g.TEXTURE_2D,U,0),P.push(U)}p.textures=P,p.texture=P[0],p.blend=S;const{width:A,height:R}=this.canvas;return w&&!d&&(p.depthBuffer=g.createRenderbuffer(),g.bindRenderbuffer(g.RENDERBUFFER,p.depthBuffer),g.renderbufferStorage(g.RENDERBUFFER,g.DEPTH_COMPONENT16,A,R),g.framebufferRenderbuffer(g.FRAMEBUFFER,g.DEPTH_ATTACHMENT,g.RENDERBUFFER,p.depthBuffer)),d&&!w&&(p.stencilBuffer=g.createRenderbuffer(),g.bindRenderbuffer(g.RENDERBUFFER,p.stencilBuffer),g.renderbufferStorage(g.RENDERBUFFER,g.STENCIL_INDEX8,A,R),g.framebufferRenderbuffer(g.FRAMEBUFFER,g.STENCIL_ATTACHMENT,g.RENDERBUFFER,p.stencilBuffer)),w&&d&&(p.depthStencilBuffer=g.createRenderbuffer(),g.bindRenderbuffer(g.RENDERBUFFER,p.depthStencilBuffer),g.renderbufferStorage(g.RENDERBUFFER,g.DEPTH_STENCIL,A,R),g.framebufferRenderbuffer(g.FRAMEBUFFER,g.DEPTH_STENCIL_ATTACHMENT,g.RENDERBUFFER,p.depthStencilBuffer)),g.bindFramebuffer(g.FRAMEBUFFER,null),p}bindFBO(C=null){this.fbo=C}render({clearBuffer:C=!0}={}){this.startRender=!0;const S=this.gl;let w=this.program;w||(w=this.createProgram(),this.useProgram(w)),this.fbo&&S.bindFramebuffer(S.FRAMEBUFFER,this.fbo);const d=this.options.depth;d&&S.enable(S.DEPTH_TEST),this.gl.clear(this.gl.COLOR_BUFFER_BIT|(d?this.gl.DEPTH_BUFFER_BIT:0)|(this.options.stencil?this.gl.STENCIL_BUFFER_BIT:0));const g=this._renderFrameID;this._draw(),this.fbo&&S.bindFramebuffer(S.FRAMEBUFFER,null),this._renderFrameID===g&&(this._renderFrameID=null)}update(){this.startRender&&this._renderFrameID==null&&(this._renderFrameID=requestAnimationFrame(this.render.bind(this)))}}l(T,"defaultOptions",{preserveDrawingBuffer:!0,autoUpdate:!0,vertexPosition:"a_vertexPosition",vertexTextureCoord:"a_vertexTextureCoord",webgl2:!1}),l(T,"UBYTE",T.UNSIGNED_BYTE),l(T,"USHORT",T.UNSIGNED_SHORT),l(T,"fetchShader",r.fetchShader),l(T,"loadImage",r.loadImage)},function(i,e,t){t.r(e),t.d(e,"setupWebGL",function(){return n}),t.d(e,"createProgram",function(){return s}),t.d(e,"pointsToBuffer",function(){return c}),t.d(e,"loadImage",function(){return f}),t.d(e,"fetchShader",function(){return v}),t(1).glMatrix.setMatrixArrayType(Array);function r(h,y){const T=["webgl","experimental-webgl","webkit-3d","moz-webgl"];let O=null;for(let C=0;C<T.length;++C){try{O=h.getContext(T[C],y)}catch{}if(O)break}return O}function n(h,y){const T=r(h,y);if(!T)throw new Error("Sorry, your browser doesn't support WebGL.");return T}function s(h,y,T){const O=h.createShader(h.VERTEX_SHADER);if(h.shaderSource(O,y),h.compileShader(O),!h.getShaderParameter(O,h.COMPILE_STATUS)){const w=`Vertex shader failed to compile. The error log is:${h.getShaderInfoLog(O)}`;throw new Error(w)}const C=h.createShader(h.FRAGMENT_SHADER);if(h.shaderSource(C,T),h.compileShader(C),!h.getShaderParameter(C,h.COMPILE_STATUS)){const w=`Fragment shader failed to compile. The error log is:${h.getShaderInfoLog(C)}`;throw new Error(w)}const S=h.createProgram();if(h.attachShader(S,O),h.attachShader(S,C),h.linkProgram(S),!h.getProgramParameter(S,h.LINK_STATUS)){const w=`Shader program failed to link. The error log is:${h.getProgramInfoLog(S)}`;throw new Error(w)}return h.deleteShader(O),h.deleteShader(C),S}function c(h,y=Float32Array,T=null){if(T&&!(T instanceof y))throw new TypeError("Wrong buffer type.");if(h==null||h instanceof y)return h;if(h[0]==null||h[0].length==null)return T?(T.set(h,0),T):new y(h);const O=h[0].length,C=h.length;T||(T=new y(O*C));let S=0;for(let w=0;w<C;w++)for(let d=0;d<O;d++)T[S++]=h[w][d];return T}const l={};function f(h,{useImageBitmap:y=!0,alias:T=null}={}){if(!l[h]){if(typeof Image=="function"){const O=new Image;typeof h=="string"&&!(typeof location=="object"&&/^file:/.test(location.href))&&!/^data:/.test(h)&&(O.crossOrigin="anonymous"),l[h]=new Promise(C=>{O.onload=function(){y&&typeof createImageBitmap=="function"?createImageBitmap(O,{imageOrientation:"flipY"}).then(S=>{l[h]=S,T&&(l[T]=S),C(S)}):(l[h]=O,T&&(l[T]=O),C(O))},O.src=h}),T&&(l[T]=l[h])}else if(typeof fetch=="function")return fetch(h,{method:"GET",mode:"cors",cache:"default"}).then(O=>O.blob()).then(O=>createImageBitmap(O,{imageOrientation:"flipY"}).then(C=>(l[h]=C,T&&(l[T]=C),C)))}return l[h]}const u={};async function v(h){if(u[h])return u[h];const y=await fetch(h);if(y.status>=200&&y.status<300){const T=await y.text();return u[h]=T,T}throw new Error("Shader loaded error.")}},function(i,e,t){t.r(e),e.default=`attribute vec3 a_vertexPosition;
|
|
20
|
+
|
|
21
|
+
void main() {
|
|
22
|
+
gl_PointSize = 1.0;
|
|
23
|
+
gl_Position = vec4(a_vertexPosition, 1);
|
|
24
|
+
}`},function(i,e,t){t.r(e),e.default=`#ifdef GL_ES
|
|
25
|
+
precision mediump float;
|
|
26
|
+
#endif
|
|
27
|
+
|
|
28
|
+
void main() {
|
|
29
|
+
gl_FragColor = vec4(0.0, 0.0, 0.0, 0.1);
|
|
30
|
+
}`},function(i,e,t){t.r(e),e.default=`attribute vec4 a_vertexPosition;
|
|
31
|
+
attribute vec2 a_vertexTextureCoord;
|
|
32
|
+
varying vec2 vTextureCoord;
|
|
33
|
+
|
|
34
|
+
void main() {
|
|
35
|
+
gl_PointSize = 1.0;
|
|
36
|
+
gl_Position = a_vertexPosition;
|
|
37
|
+
vTextureCoord = a_vertexTextureCoord;
|
|
38
|
+
}`},function(i,e,t){t.r(e),t.d(e,"default",function(){return c});var r=t(21),n=t(25);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol("transform");class c{constructor(f,u){this.context=f.getContext("2d"),this.options=u,this[s]=[1,0,0,1,0,0]}createTexture(f){return{_img:f}}async loadTexture(f){const u=await r.default.loadImage(f,{useImageBitmap:!1});return this.createTexture(u)}deleteTexture(f){return f}clear(f,u,v,h){const y=this.context;f=f||0,u=u||0,v=v||y.canvas.width-f,h=h||y.canvas.height-u,y.clearRect(f,u,v,h)}drawMeshCloud(f,{clear:u=!1}={}){const v=[];for(let h=0;h<f.amount;h++){const y=f.getTransform(h);let T=f.getTextureFrame(h);T&&(T=T._img);const O=f.getFilter(h),{fill:C,stroke:S}=f.getCloudRGBA(h);v.push({mesh:f.mesh,_cloudOptions:[C,S,T,y,O]})}f.beforeRender&&f.beforeRender(this.context,f),this.drawMeshes(v,{clear:u,hook:!1}),f.afterRender&&f.afterRender(this.context,f)}drawMeshes(f,{clear:u=!1,hook:v=!0}={}){const h=this.context;u&&h.clearRect(0,0,h.canvas.width,h.canvas.height);let y=null;const{width:T,height:O}=h.canvas,C=f.length;f.forEach((S,w)=>{let d,g,p,P,A;v&&S.beforeRender&&S.beforeRender(h,S),S._cloudOptions&&([d,g,p,P,A]=S._cloudOptions,S=S.mesh);let R=S.filter;if(A&&(R=R?`${R} ${A}`:A),R&&!this.filterBuffer&&this.filterBuffer!==!1){const D=r.default.createCanvas(T,O);D?this.filterBuffer=D.getContext("2d"):this.filterBuffer=!1}y&&y!==R&&(Object(n.applyFilter)(this.filterBuffer,y),h.drawImage(this.filterBuffer.canvas,0,0,T,O),this.filterBuffer.clearRect(0,0,T,O),y=null),R&&this.filterBuffer?(this.filterBuffer.save(),this.filterBuffer.transform(...this[s]),Object(n.drawMesh2D)(S,this.filterBuffer,!1,d,g,p,P),this.filterBuffer.restore(),w===C-1?(Object(n.applyFilter)(this.filterBuffer,R),h.drawImage(this.filterBuffer.canvas,0,0,T,O),this.filterBuffer.clearRect(0,0,T,O)):y=R):(h.save(),h.transform(...this[s]),Object(n.drawMesh2D)(S,h,!1,d,g,p,P),h.restore()),v&&S.afterRender&&S.afterRender(h,S)})}setTransform(f){this[s]=f}}},function(i,e,t){t.r(e),(function(r){var n=t(14),s=t(23),c=t(24);t(1).glMatrix.setMatrixArrayType(Array);const l={};function f(T,O){const{style:C,variant:S,weight:w,stretch:d,size:g,pxLineHeight:p,family:P}=T;return d==="normal"?`${C} ${S} ${w} ${g*O}px/${p*O}px ${P}`:`${C} ${S} ${w} ${d} ${g*O}px/${p*O}px ${P}`}function u(T,{font:O,fillColor:C,strokeColor:S,strokeWidth:w,ratio:d=1,textCanvas:g,cachable:p=!1}){let P;if(p){P=[T,O,String(C),String(S),String(w)].join("###");const J=l[P];if(J)return J}g||(g=h(1,1));const A=g.getContext("2d");A.save(),A.font=O;let{width:R}=A.measureText(T);A.restore();const D=Object(s.default)(O),U=Math.max(D.pxLineHeight,D.pxHeight*1.13);/italic|oblique/.test(O)&&(R+=U*Math.tan(15*Math.PI/180)),!C&&!S&&(C="#000");const L=A.canvas,W=Math.ceil(R),Y=Math.ceil(U);L.width=Math.round(W*d),L.height=Math.round(Y*d),A.save(),A.font=f(D,d),A.textAlign="center",A.textBaseline="middle";const B=L.height*.5+D.pxHeight*.05*d,N=L.width*.5;if(C){if(Array.isArray(C))C=Object(c.default)(C);else if(C.vector){let J;const{vector:et,colors:ot}=C;et.length===6?J=A.createRadialGradient(...et):J=A.createLinearGradient(...et),ot.forEach(({offset:ut,color:K})=>{J.addColorStop(ut,K)}),C=J}A.fillStyle=C,A.fillText(T,N,B)}if(S){if(A.lineWidth=w*d,Array.isArray(S))S=Object(c.default)(S);else if(S.vector){let J;const{vector:et,colors:ot}=S;et.length===6?J=A.createRadialGradient(...et):J=A.createLinearGradient(...et),ot.forEach(({offset:ut,color:K})=>{J.addColorStop(ut,K)}),S=J}A.strokeStyle=S,A.strokeText(T,N,B)}A.restore();const $={image:g,rect:[0,0,W,Y]};return p&&(l[P]=$),$}let v=!1;if(typeof navigator=="object"&&typeof navigator.userAgent=="string"){const T=navigator.userAgent.toLowerCase().match(/chrome\/(\d+)/);T&&(v=Number(T[1])<70)}function h(T,O,C={}){const S=C.offscreen||!v&&C.offscreen!==!1;let w;return typeof r<"u"&&typeof r.createCanvas=="function"?w=r.createCanvas(T,O,C):S&&typeof OffscreenCanvas=="function"?w=new OffscreenCanvas(T,O):(w=document.createElement("canvas"),w.width=T,w.height=O),w}const y={createCanvas:h,createText:u,loadImage:n.default.loadImage};e.default=y}).call(this,t(22))},function(i,e){var t;t=function(){return this}();try{t=t||new Function("return this")()}catch{typeof window=="object"&&(t=window)}i.exports=t},function(i,e,t){t.r(e),t.d(e,"default",function(){return C}),t(1).glMatrix.setMatrixArrayType(Array);function r(S,w){if(typeof S=="string"){const p=S.trim().match(/^([\d.]+)(px|pt|pc|in|cm|mm|em|ex|rem|q|vw|vh|vmax|vmin|%)$/);p?S={size:parseFloat(p[1]),unit:p[2]}:S={size:parseInt(S,10),unit:"px"}}let{size:d,unit:g}=S;if(g==="pt")d/=.75;else if(g==="pc")d*=16;else if(g==="in")d*=96;else if(g==="cm")d*=37.79527559055118;else if(g==="mm")d*=3.7795275590551185;else if(g==="em"||g==="rem"||g==="ex"){if(!w&&typeof getComputedStyle=="function"&&typeof document<"u"){const p=getComputedStyle(document.documentElement).fontSize;w=r(p,16)}d*=w,g==="ex"&&(d/=2)}else if(g==="q")d*=.9448818897637796;else if(g==="vw"||g==="vh"){if(typeof document<"u"){const p=g==="vw"?document.documentElement.clientWidth:document.documentElement.clientHeight;d*=p/100}}else if((g==="vmax"||g==="vmin")&&typeof document<"u"){const p=document.documentElement.clientWidth,P=document.documentElement.clientHeight;g==="vmax"?d*=Math.max(p,P)/100:d*=Math.min(p,P)/100}return d}const n="bold|bolder|lighter|[1-9]00",s="italic|oblique",c="small-caps",l="ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded",f="px|pt|pc|in|cm|mm|em|ex|rem|q|vw|vh|vmax|vmin|%",u=`'([^']+)'|"([^"]+)"|([\\w-]|[一-龥])+`,v=new RegExp(`(${n}) +`,"i"),h=new RegExp(`(${s}) +`,"i"),y=new RegExp(`(${c}) +`,"i"),T=new RegExp(`(${l}) +`,"i"),O=new RegExp("([\\d\\.]+)("+f+")(?:\\/([\\d\\.]+)("+f+"))? *((?:"+u+")( *, *(?:"+u+"))*)");function C(S,w){const d=O.exec(S);if(!d)return;const g=parseFloat(d[3]),p={weight:"normal",style:"normal",stretch:"normal",variant:"normal",size:parseFloat(d[1]),unit:d[2],lineHeight:Number.isFinite(g)?g:void 0,lineHeightUnit:d[4],family:d[5].replace(/ *, */g,",")},P=S.substring(0,d.index),A=v.exec(P),R=h.exec(P),D=y.exec(P),U=T.exec(P);return A&&(p.weight=A[1]),R&&(p.style=R[1]),D&&(p.variant=D[1]),U&&(p.stretch=U[1]),p.pxHeight=r({size:p.size,unit:p.unit},w),p.pxLineHeight=r({size:p.lineHeight||p.size,unit:p.lineHeightUnit||p.unit},w),p}},function(i,e,t){t.r(e),t.d(e,"default",function(){return r}),t(1).glMatrix.setMatrixArrayType(Array);function r(n){return`rgba(${n.map((s,c)=>c<3?Math.round(s*255):s).join()})`}},function(i,e,t){t.r(e),t.d(e,"applyFilter",function(){return l}),t.d(e,"drawMesh2D",function(){return u});var r=t(1),n=t(24),s=t(23),c=t(26);t(1).glMatrix.setMatrixArrayType(Array);function l(v,h){const y=v.canvas;v.save(),v.filter=h,v.drawImage(y,0,0,y.width,y.height),v.restore()}function f(v,h){const y=/rgba\((\d+),(\d+),(\d+),(\d+)\)/;v=v.match(y).slice(1,5).map(Number),h=h.match(y).slice(1,5).map(Number);const T=[],O=h[3];for(let C=0;C<4;C++)T[C]=Object(c.mix)(v[C],h[C],O);return`rgba(${T.join()})`}function u(v,h,y=!0,T=null,O=null,C=null,S=null){h.save();let w=!1,d=!1;if(h.globalAlpha=v.getOpacity(),v._updateMatrix&&v.transformScale/v.contours.scale>1.5&&v.accurate(v.transformScale),v.lineWidth){let P=v.gradient&&v.gradient.stroke;if(P){const{vector:A,colors:R}=P;if(A.length===6)P=h.createRadialGradient(...A);else if(A.length===4)P=h.createLinearGradient(...A);else if(A.length===3)P=h.createCircularGradient(...A);else throw new TypeError("Invalid vector dimension.");R.forEach(({offset:D,color:U})=>{let L=Object(n.default)(U);O&&(L=f(L,O)),P.addColorStop(D,L)}),h.strokeStyle=P,w=!0}else v.strokeStyle&&(O?h.strokeStyle=f(v.strokeStyle,O):h.strokeStyle=v.strokeStyle,w=!0)}w&&(h.lineWidth=v.lineWidth,h.lineJoin=v.lineJoin,h.lineCap=v.lineCap,h.miterLimit=v.miterLimit,v.lineDash&&(h.setLineDash(v.lineDash),v.lineDashOffset&&(h.lineDashOffset=v.lineDashOffset)));let g=v.gradient&&v.gradient.fill;if(g){const{vector:P,colors:A}=g;if(P.length===6)g=h.createRadialGradient(...P);else if(P.length===4)g=h.createLinearGradient(...P);else if(P.length===3)g=h.createCircularGradient(...P);else throw new TypeError("Invalid vector dimension.");A.forEach(({offset:R,color:D})=>{let U=Object(n.default)(D);O&&(U=f(U,O)),g.addColorStop(R,U)}),h.fillStyle=g,d=!0}else v.fillStyle&&(T?h.fillStyle=f(v.fillStyle,T):h.fillStyle=v.fillStyle,d=!0);if(S&&h.transform(...S),h.transform(...v.transformMatrix),v.clipPath){const P=v.clipPath,A=new Path2D(P);h.clip(A)}const p=v.contours.length;if(v.contours.forEach((P,A)=>{const R=P.length,D=R>1&&r.vec2.equals(P[0],P[R-1]),U=A===p-1&&v.texture;if(P&&R>0){if(d||w||U){h.beginPath(),h.moveTo(...P[0]);for(let L=1;L<R;L++)L===R-1&&D?h.closePath():h.lineTo(...P[L])}if(d&&h.fill(v.fillRule),U){h.save(),h.clip();let{image:L,options:W}=v.texture;if(C&&(L=C),W.repeat&&console.warn("Context 2D not supported image repeat yet."),L.font){W.scale&&console.warn("Context 2D not supported text scale yet."),W.srcRect&&console.warn("Context 2D not supported text srcRect yet.");let{font:Y,fillColor:B,strokeColor:N,strokeWidth:$,text:J}=L;!B&&!N&&(B="#000"),Array.isArray(B)&&(B=Object(n.default)(B)),Array.isArray(N)&&(N=Object(n.default)(N)),h.font=Y;const{width:et}=h.measureText(J),ot=Object(s.default)(Y),ut=Math.max(ot.pxLineHeight,ot.pxHeight*1.13);h.textAlign="center",h.textBaseline="middle";const K=W.rect,Q=K[0]+ut*.5+ot.pxHeight*.06,ft=K[1]+et*.5;K[2]!=null&&h.scale(K[2]/et,K[3]/ut),B&&(h.fillStyle=B,h.fillText(J,ft,Q)),N&&(h.lineWidth=$,h.strokeStyle=N,h.strokeText(J,ft,Q))}else{let Y=W.rect;const B=W.srcRect;W.scale&&(Y=[0,0,h.canvas.width,h.canvas.height]),W.rotated&&Y&&(Y=[-Y[1],Y[0],Y[3],Y[2]]),B&&(Y=Y||[0,0,B[2],B[3]]),W.rotated&&(h.translate(0,Y?Y[2]:L.width),h.rotate(-.5*Math.PI)),B?h.drawImage(L,...B,...Y):Y?h.drawImage(L,...Y):h.drawImage(L,0,0)}h.restore()}w&&h.stroke()}}),h.restore(),y){const P=v.filter;P&&l(h,P)}}},function(i,e,t){t.r(e),t.d(e,"clamp",function(){return r}),t.d(e,"mix",function(){return n}),t.d(e,"transformPoint",function(){return s}),t(1).glMatrix.setMatrixArrayType(Array);function r(c,l,f){return l>f&&([l,f]=[f,l]),c<l?l:c>f?f:c}function n(c,l,f){return c*(1-f)+l*f}function s(c,l){const[f,u]=c;return[f*l[0]+u*l[2]+l[4],f*l[1]+u*l[3]+l[5]]}},function(i,e,t){t.r(e),t.d(e,"default",function(){return f});var r=t(28),n=t(29);t(1).glMatrix.setMatrixArrayType(Array);function s(u,v,h){const y=u.uniforms||{},T=v.uniforms||{};if(y.u_texSampler&&T.u_texSampler&&y.u_texSampler!==T.u_texSampler)return!1;const O=Object.keys(y),C=Object.keys(T),S=O.indexOf("u_texSampler"),w=C.indexOf("u_texSampler");if(S>=0&&O.splice(S,1),w>=0&&C.splice(w,1),O.length!==C.length)return!1;const d=O.every(g=>{const p=y[g],P=T[g];if(p===P)return!0;if(p.length&&P.length&&p.length===P.length){for(let A=0;A<p.length;A++)if(p[A]!==P[A])return!1;return!0}return!1});if(d){if(y.u_texSampler&&!T.u_texSampler)v.setTexture(y.u_texSampler,{hidden:!0});else if(!y.u_texSampler&&T.u_texSampler)for(let g=0;g<h.length;g++)h[g].setTexture(T.u_texSampler,{hidden:!0})}return d}const c={};function l(u,v){if(u.length){const h=Object(r.default)(u,c);return h.enableBlend=v,u[0].filterCanvas&&(h.filterCanvas=!0),h.packIndex=u[0].packIndex,h.packLength=u.length,h.beforeRender=u[0].beforeRender,h.pass=u[0].pass,h.afterRender=u[u.length-1].afterRender,u.length=0,h}}function*f(u,v,h=!1){const y=[],T=u.options.bufferSize;let O=0,C=!1;for(let S=0;S<v.length;S++){const w=v[S];if(w instanceof n.default)y.length&&(yield l(y,C)),O=0,C=!1,yield w;else{const d=w.meshData;if(d.clipPath&&!d.uniforms.u_clipSampler){const p=u.createTexture(d.clipPath);d.uniforms.u_clipSampler=p}let g=0;if((!h||!w.canIgnore())&&d&&d.positions.length){w.packIndex=S;const p=w.filterCanvas;if(g=d.positions.length,p||O+g>T)y.length&&(yield l(y,C)),O=0,C=!1;else if(O){const P=y[y.length-1];P&&(P.filterCanvas||P.afterRender||w.beforeRender||P.pass.length||w.pass.length||P.program!==w.program||!s(P,w,y))&&(yield l(y,C),O=0,C=!1)}y.push(w),C=C||w.enableBlend,O+=g}S===v.length-1&&y.length&&(yield l(y,C))}}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return s}),t(1).glMatrix.setMatrixArrayType(Array);const r={UNSIGNED_BYTE:Uint8Array,UNSIGNED_SHORT:Uint16Array,BYTE:Int8Array,SHORT:Int16Array,FLOAT:Float32Array};function n(c,l){let f=0,u=0,v=0,h=0,y=0,T=0,O=0;const C=c[0].program;for(let S=0;S<c.length;S++){const w=c[S].meshData;if(w){O+=w.positions.length;const d=w.positions[0].length;f+=w.positions.length*d,u+=w.cells.length*3,T+=w.attributes.a_color.length*4;const g=w.textureCoord;g&&(v+=g.length*g[0].length);const p=w.attributes.a_sourceRect;p&&(h+=p.length*4);const P=w.attributes.a_clipUV;P&&(y+=P.length*2)}}if((!l.positions||l.positions.length<f)&&(l.positions=new Float32Array(f)),(!l.cells||l.cells.length<u)&&(l.cells=new Uint16Array(u)),v&&(!l.textureCoord||l.textureCoord.length<v)&&(l.textureCoord=new Float32Array(v)),(!l.a_color||l.a_color.length<T)&&(l.a_color=new Uint8Array(T)),h&&(!l.a_sourceRect||l.a_sourceRect.length<h)&&(l.a_sourceRect=new Float32Array(h)),y&&(!l.a_clipUV||l.a_clipUV.length<y)&&(l.a_clipUV=new Float32Array(y)),C){const S=Object.entries(C._attribute),w=C._attribOpts||{};for(let d=0;d<S.length;d++){const[g,p]=S[d];if(g!=="a_color"&&g!=="a_sourceRect"&&p!=="ignored"){const P=w[g]?w[g].type:"FLOAT",A=r[P],R=p.size*O;(!l[g]||l[g].length<R)&&(l[g]=new A(R))}}}return l}function s(c,l){let f=[],u=[],v=[],h=[],y=[],T=[],O=0,C=0;const S=c[0]?c[0].uniforms||{}:{},w=c[0]?c[0].program:null;l&&(n(c,l),u=l.cells,f=l.positions,v=l.textureCoord,h=l.a_color,y=l.a_sourceRect,T=l.a_clipUV);let d=!1,g=!1;const p={};for(let A=0;A<c.length;A++){let R=c[A];if(R){if(R.meshData&&(R=R.meshData),l){const U=R.positions;for(let L=0;L<U.length;L++){const W=U[L],Y=3*(O+L);for(let B=0;B<W.length;B++)f[Y+B]=W[B]}}else f.push(...R.positions);const D=R.cells;for(let U=0;U<D.length;U++){const L=D[U];if(l){const W=3*(C+U);u[W]=L[0]+O,u[W+1]=L[1]+O,u[W+2]=L[2]+O}else u.push([L[0]+O,L[1]+O,L[2]+O])}if(l){const U=R.attributes.a_color;for(let L=0;L<U.length;L++){const W=U[L],Y=4*(O+L);h[Y]=W[0],h[Y+1]=W[1],h[Y+2]=W[2],h[Y+3]=W[3]}}else h.push(...R.attributes.a_color);if(R.attributes.a_sourceRect)if(d=!0,l){const U=R.attributes.a_sourceRect;for(let L=0;L<U.length;L++){const W=U[L],Y=4*(O+L);y[Y]=W[0],y[Y+1]=W[1],y[Y+2]=W[2],y[Y+3]=W[3]}}else y.push(...R.attributes.a_sourceRect);if(R.attributes.a_clipUV)if(g=!0,l){const U=R.attributes.a_clipUV;for(let L=0;L<U.length;L++){const W=U[L],Y=2*(O+L);T[Y]=W[0],T[Y+1]=W[1]}}else T.push(...R.attributes.a_clipUV);if(R.textureCoord)if(l){const U=R.textureCoord;for(let L=0;L<U.length;L++){const W=U[L],Y=3*(O+L);for(let B=0;B<W.length;B++)v[Y+B]=W[B]}}else v.push(...R.textureCoord);if(w){const U=Object.entries(w._attribute);for(let L=0;L<U.length;L++){const[W,Y]=U[L];if(W!=="a_color"&&W!=="a_sourceRect"&&Y!=="ignored")if(p[W]=[],l){p[W]=l[W];const B=R.attributes[W],N=B[0].length;for(let $=0;$<B.length;$++){const J=B[$],et=N*(O+$);for(let ot=0;ot<J.length;ot++)p[W][et+ot]=J[ot]}}else p[W].push(...R.attributes[W])}}O+=R.positions.length,C+=R.cells.length}}p.a_color=h,d&&y&&y.length>0&&(p.a_sourceRect=y);const P={positions:f,cells:u,attributes:p,uniforms:S,cellsCount:C*3,program:w};return v&&v.length&&(P.textureCoord=v),g&&T.length>0&&(p.a_clipUV=T),P}},function(i,e,t){t.r(e);var r=t(1),n=t(30),s=t(26),c=t(31);t(1).glMatrix.setMatrixArrayType(Array);function l(p,P){var A=Object.keys(p);if(Object.getOwnPropertySymbols){var R=Object.getOwnPropertySymbols(p);P&&(R=R.filter(function(D){return Object.getOwnPropertyDescriptor(p,D).enumerable})),A.push.apply(A,R)}return A}function f(p){for(var P=1;P<arguments.length;P++){var A=arguments[P]!=null?arguments[P]:{};P%2?l(Object(A),!0).forEach(function(R){u(p,R,A[R])}):Object.getOwnPropertyDescriptors?Object.defineProperties(p,Object.getOwnPropertyDescriptors(A)):l(Object(A)).forEach(function(R){Object.defineProperty(p,R,Object.getOwnPropertyDescriptor(A,R))})}return p}function u(p,P,A){return P in p?Object.defineProperty(p,P,{value:A,enumerable:!0,configurable:!0,writable:!0}):p[P]=A,p}const v=Symbol("mesh"),h=Symbol("count"),y=Symbol("blend"),T=Symbol("filter"),O=Symbol("textures"),C=Symbol("textureOptions"),S=Symbol("cloudColor"),w=Symbol("cloudFilter"),d=Symbol("buffer");function g(p,P=null){const A=new Float32Array(3*p),R=new Float32Array(3*p),D=new Float32Array(4*p),U=new Float32Array(4*p),L=new Float32Array(4*p),W=new Float32Array(4*p),Y=new Float32Array(4*p),B=new Uint8Array(p),N=new Uint8Array(4*p),$=new Uint8Array(4*p);return P&&(A.set(P.transform0,0),R.set(P.transform1,0),D.set(P.color0,0),U.set(P.color1,0),L.set(P.color2,0),W.set(P.color3,0),Y.set(P.color4,0),B.set(P.frameIndex,0),N.set(P.fillColor,0),$.set(P.strokeColor,0)),{bufferSize:p,transform0:A,transform1:R,color0:D,color1:U,color2:L,color3:W,color4:Y,frameIndex:B,fillColor:N,strokeColor:$}}e.default=class{constructor(p,P=1,{buffer:A=1e3}={}){A=Math.max(A,P),this[h]=P,this[v]=p,this[d]=g(A),this[O]=[],this[T]=[],this[S]=!1,this[w]=!1,this[y]=!1,this.initBuffer()}initBuffer(p=0){const P=this[h];for(let A=p;A<P;A++)this[d].transform0.set([1,0,0],A*3),this[d].transform1.set([0,1,0],A*3),this[d].frameIndex.set([-1],A),this[d].fillColor.set([0,0,0,0],A*4),this[d].strokeColor.set([0,0,0,0],A*4),this.setColorTransform(A,null)}get bufferSize(){return this[d].bufferSize}get mesh(){return this[v]}set mesh(p){this[v]=p,this[O]&&this.setTextureFrames(this[O],this[C])}get hasCloudColor(){return this[S]}get hasCloudFilter(){return this[w]}_getFilter(p){return this[T][p]=this[T][p]||[],this[T][p]}getFilter(p){return this._getFilter(p).join(" ")}get enableBlend(){return this[v].enableBlend||this[y]}canIgnore(){return this[v].canIgnore()}delete(p){if(p>=this[h]||p<0)throw new Error("Out of range.");const{transform0:P,transform1:A,color0:R,color1:D,color2:U,color3:L,color4:W,frameIndex:Y,fillColor:B,strokeColor:N}=this[d];P.set(P.subarray(3*(p+1)),3*p),A.set(A.subarray(3*(p+1)),3*p),R.set(R.subarray(4*(p+1)),4*p),D.set(D.subarray(4*(p+1)),4*p),U.set(U.subarray(4*(p+1)),4*p),L.set(L.subarray(4*(p+1)),4*p),W.set(W.subarray(4*(p+1)),4*p),Y.set(Y.subarray(p+1),p),B.set(B.subarray(4*(p+1)),4*p),N.set(N.subarray(4*(p+1)),4*p);for(const $ in this[T])$===p?delete this[T][$]:$>p&&(this[T][$-1]=this[T][$],delete this[T][$]);this[h]--}setColorTransform(p,P){if(p>=this[h]||p<0)throw new Error("Out of range.");p*=4;const{color0:A,color1:R,color2:D,color3:U,color4:L}=this[d];return P!=null?(A.set([P[0],P[5],P[10],P[15]],p),R.set([P[1],P[6],P[11],P[16]],p),D.set([P[2],P[7],P[12],P[17]],p),U.set([P[3],P[8],P[13],P[18]],p),L.set([P[4],P[9],P[14],P[19]],p),this[y]=this[y]||P[18]<1,this[w]=!0):(A.set([1,0,0,0],p),R.set([0,1,0,0],p),D.set([0,0,1,0],p),U.set([0,0,0,1],p),L.set([0,0,0,0],p)),this}getColorTransform(p){if(p>=this[h]||p<0)throw new Error("Out of range.");p*=4;const{color0:P,color1:A,color2:R,color3:D,color4:U}=this[d];return[P[p],A[p],R[p],D[p],U[p],P[p+1],A[p+1],R[p+1],D[p+1],U[p+1],P[p+2],A[p+2],R[p+2],D[p+2],U[p+2],P[p+3],A[p+3],R[p+3],D[p+3],U[p+3]]}transformColor(p,P){let A=this.getColorTransform(p);return A=Object(n.multiply)(A,P),this.setColorTransform(p,A),this}setFillColor(p,P){if(p>=this[h]||p<0)throw new Error("Out of range.");typeof P=="string"&&(P=Object(c.default)(P)),P[3]>0&&(this[S]=!0),this[d].fillColor.set(P.map(A=>Math.round(255*A)),4*p)}setStrokeColor(p,P){if(p>=this[h]||p<0)throw new Error("Out of range.");typeof P=="string"&&(P=Object(c.default)(P)),P[3]>0&&(this[S]=!0),this[d].strokeColor.set(P.map(A=>Math.round(255*A)),4*p)}getCloudRGBA(p){if(p>=this[h]||p<0)throw new Error("Out of range.");p*=4;const{fillColor:P,strokeColor:A}=this[d],R=[P[p],P[p+1],P[p+2],P[p+3]],D=[A[p],A[p+1],A[p+2],A[p+3]];return R[3]/=255,D[3]/=255,{fill:`rgba(${R.join()})`,stroke:`rgba(${D.join()})`}}grayscale(p,P){this.transformColor(p,Object(n.grayscale)(P)),this._getFilter(p).push(`grayscale(${100*P}%)`)}brightness(p,P){this.transformColor(p,Object(n.brightness)(P)),this._getFilter(p).push(`brightness(${100*P}%)`)}saturate(p,P){this.transformColor(p,Object(n.saturate)(P)),this._getFilter(p).push(`saturate(${100*P}%)`)}contrast(p,P){this.transformColor(p,Object(n.contrast)(P)),this._getFilter(p).push(`contrast(${100*P}%)`)}invert(p,P){this.transformColor(p,Object(n.invert)(P)),this._getFilter(p).push(`invert(${100*P}%)`)}sepia(p,P){this.transformColor(p,Object(n.sepia)(P)),this._getFilter(p).push(`sepia(${100*P}%)`)}opacity(p,P){this.transformColor(p,Object(n.opacity)(P)),this._getFilter(p).push(`opacity(${100*P}%)`)}hueRotate(p,P){this.transformColor(p,Object(n.hueRotate)(P)),this._getFilter(p).push(`hue-rotate(${P}deg)`)}setTransform(p,P){if(p>=this[h]||p<0)throw new Error("Out of range.");p*=3,P==null&&(P=[1,0,0,1,0,0]);const{transform0:A,transform1:R}=this[d];return A.set([P[0],P[2],P[4]],p),R.set([P[1],P[3],P[5]],p),this}getTransform(p){if(p>=this[h]||p<0)throw new Error("Out of range.");p*=3;const{transform0:P,transform1:A}=this[d];return[P[p],A[p],P[p+1],A[p+1],P[p+2],A[p+2]]}getTextureFrame(p){return this[O][this[d].frameIndex[p]]}setTextureFrames(p=[],P={}){if(p.length>12)throw new Error("Max frames exceed. Allow 12 frames.");p.length&&this[v].setTexture(p[0],P),this[O]=p,this[C]=P}setFrameIndex(p,P){if(p>=this[h]||p<0)throw new Error("Out of range.");const A=this[O].length;if(A<=0)throw new Error("No frames");this[d].frameIndex[p]=P%A}get amount(){return this[h]}set amount(p){const P=this[h];p!==P&&(p>this[d].bufferSize&&(this[d]=g(Math.max(p,this[d].bufferSize+1e3),this[d])),this[h]=p,p>P&&this.initBuffer(P))}get meshData(){const{attributes:p,cells:P,positions:A,textureCoord:R,uniforms:D}=this[v].meshData,U=this[O],L={attributes:f({},p),cells:P,positions:A,textureCoord:R,uniforms:f({},D),instanceCount:this[h],enableBlend:this.enableBlend};U.length&&U.forEach((Q,ft)=>{L.uniforms[`u_texFrame${ft}`]=Q});const{transform0:W,transform1:Y,color0:B,color1:N,color2:$,color3:J,color4:et,fillColor:ot,strokeColor:ut,frameIndex:K}=this[d];return this[v].uniforms.u_texSampler&&(L.attributes.a_frameIndex={data:K,divisor:1}),L.attributes.a_transform0={data:W,divisor:1},L.attributes.a_transform1={data:Y,divisor:1},L.attributes.a_colorCloud0={data:B,divisor:1},L.attributes.a_colorCloud1={data:N,divisor:1},L.attributes.a_colorCloud2={data:$,divisor:1},L.attributes.a_colorCloud3={data:J,divisor:1},L.attributes.a_colorCloud4={data:et,divisor:1},this.hasCloudColor&&(L.attributes.a_fillCloudColor={data:ot,divisor:1},L.attributes.a_strokeCloudColor={data:ut,divisor:1}),L}setProgram(p){this[v].setProgram(p)}get program(){return this[v].program}transform(p,P){const A=this.getTransform(p);return P=r.mat2d.multiply(Array.of(0,0,0,0,0,0),A,P),this.setTransform(p,P),this}translate(p,[P,A]){let R=r.mat2d.create();return R=r.mat2d.translate(Array.of(0,0,0,0,0,0),R,[P,A]),this.transform(p,R)}rotate(p,P,[A,R]=[0,0]){let D=r.mat2d.create();return D=r.mat2d.translate(Array.of(0,0,0,0,0,0),D,[A,R]),D=r.mat2d.rotate(Array.of(0,0,0,0,0,0),D,P),D=r.mat2d.translate(Array.of(0,0,0,0,0,0),D,[-A,-R]),this.transform(p,D)}scale(p,[P,A=P],[R,D]=[0,0]){let U=r.mat2d.create();return U=r.mat2d.translate(Array.of(0,0,0,0,0,0),U,[R,D]),U=r.mat2d.scale(Array.of(0,0,0,0,0,0),U,[P,A]),U=r.mat2d.translate(Array.of(0,0,0,0,0,0),U,[-R,-D]),this.transform(p,U)}skew(p,[P,A=P],[R,D]=[0,0]){let U=r.mat2d.create();return U=r.mat2d.translate(Array.of(0,0,0,0,0,0),U,[R,D]),U=r.mat2d.multiply(Array.of(0,0,0,0,0,0),U,r.mat2d.fromValues(1,Math.tan(A),Math.tan(P),1,0,0)),U=r.mat2d.translate(Array.of(0,0,0,0,0,0),U,[-R,-D]),this.transform(p,U)}isPointCollision(p,[P,A],R="both"){const D=this.getTransform(p),U=Object(s.transformPoint)([P,A],r.mat2d.invert(Array.of(0,0,0,0,0,0),D));return this[v].isPointCollision(...U,R)}isPointInFill(p,[P,A]){return this.isPointCollision(p,[P,A],"fill")}isPointInStroke(p,[P,A]){return this.isPointCollision(p,[P,A],"stroke")}}},function(i,e,t){t.r(e),t.d(e,"multiply",function(){return n}),t.d(e,"grayscale",function(){return s}),t.d(e,"brightness",function(){return c}),t.d(e,"saturate",function(){return l}),t.d(e,"contrast",function(){return f}),t.d(e,"invert",function(){return u}),t.d(e,"sepia",function(){return v}),t.d(e,"opacity",function(){return h}),t.d(e,"hueRotate",function(){return y});var r=t(26);t(1).glMatrix.setMatrixArrayType(Array);function n(T,O){const C=[],S=T[0],w=T[1],d=T[2],g=T[3],p=T[4],P=T[5],A=T[6],R=T[7],D=T[8],U=T[9],L=T[10],W=T[11],Y=T[12],B=T[13],N=T[14],$=T[15],J=T[16],et=T[17],ot=T[18],ut=T[19];let K=O[0],Q=O[1],ft=O[2],mt=O[3],yt=O[4];return C[0]=K*S+Q*P+ft*L+mt*$,C[1]=K*w+Q*A+ft*W+mt*J,C[2]=K*d+Q*R+ft*Y+mt*et,C[3]=K*g+Q*D+ft*B+mt*ot,C[4]=K*p+Q*U+ft*N+mt*ut+yt,K=O[5],Q=O[6],ft=O[7],mt=O[8],yt=O[9],C[5]=K*S+Q*P+ft*L+mt*$,C[6]=K*w+Q*A+ft*W+mt*J,C[7]=K*d+Q*R+ft*Y+mt*et,C[8]=K*g+Q*D+ft*B+mt*ot,C[9]=K*p+Q*U+ft*N+mt*ut+yt,K=O[10],Q=O[11],ft=O[12],mt=O[13],yt=O[14],C[10]=K*S+Q*P+ft*L+mt*$,C[11]=K*w+Q*A+ft*W+mt*J,C[12]=K*d+Q*R+ft*Y+mt*et,C[13]=K*g+Q*D+ft*B+mt*ot,C[14]=K*p+Q*U+ft*N+mt*ut+yt,K=O[15],Q=O[16],ft=O[17],mt=O[18],yt=O[19],C[15]=K*S+Q*P+ft*L+mt*$,C[16]=K*w+Q*A+ft*W+mt*J,C[17]=K*d+Q*R+ft*Y+mt*et,C[18]=K*g+Q*D+ft*B+mt*ot,C[19]=K*p+Q*U+ft*N+mt*ut+yt,C}function s(T){T=Object(r.clamp)(0,1,T);const O=.2126*T,C=.7152*T,S=.0722*T;return[O+1-T,C,S,0,0,O,C+1-T,S,0,0,O,C,S+1-T,0,0,0,0,0,1,0]}function c(T){return[T,0,0,0,0,0,T,0,0,0,0,0,T,0,0,0,0,0,1,0]}function l(T){const O=.2126*(1-T),C=.7152*(1-T),S=.0722*(1-T);return[O+T,C,S,0,0,O,C+T,S,0,0,O,C,S+T,0,0,0,0,0,1,0]}function f(T){const O=.5*(1-T);return[T,0,0,0,O,0,T,0,0,O,0,0,T,0,O,0,0,0,1,0]}function u(T){const O=1-2*T;return[O,0,0,0,T,0,O,0,0,T,0,0,O,0,T,0,0,0,1,0]}function v(T){return[1-.607*T,.769*T,.189*T,0,0,.349*T,1-.314*T,.168*T,0,0,.272*T,.534*T,1-.869*T,0,0,0,0,0,1,0]}function h(T){return[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,T,0]}function y(T){const O=T/180*Math.PI,C=Math.cos(O),S=Math.sin(O),w=.2126,d=.7152,g=.0722;return[w+C*(1-w)+S*-w,d+C*-d+S*-d,g+C*-g+S*(1-g),0,0,w+C*-w+S*.143,d+C*(1-d)+S*.14,g+C*-g+S*-.283,0,0,w+C*-w+S*-.7874,d+C*-d+S*d,g+C*(1-g)+S*g,0,0,0,0,0,1,0]}},function(i,e,t){t.r(e),t.d(e,"default",function(){return s});var r=t(32),n=t.n(r);t(1).glMatrix.setMatrixArrayType(Array);function s(c){const l=n()(c);if(!l||!l.length)throw new TypeError("Invalid color value.");return[l[0]/255,l[1]/255,l[2]/255,l[3]]}},function(i,e,t){var r=t(33),n=t(37),s=t(39);i.exports=function(l){var f,u=r(l);return u.space?(f=Array(3),f[0]=s(u.values[0],0,255),f[1]=s(u.values[1],0,255),f[2]=s(u.values[2],0,255),u.space[0]==="h"&&(f=n.rgb(f)),f.push(s(u.alpha,0,1)),f):[]}},function(i,e,t){(function(r){var n=t(34),s=t(35),c=t(36);i.exports=f;var l={red:0,orange:60,yellow:120,green:180,blue:240,purple:300};function f(u){var v,h=[],y=1,T;if(typeof u=="string")if(n[u])h=n[u].slice(),T="rgb";else if(u==="transparent")y=0,T="rgb",h=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(u)){var O=u.slice(1),C=O.length,S=C<=4;y=1,S?(h=[parseInt(O[0]+O[0],16),parseInt(O[1]+O[1],16),parseInt(O[2]+O[2],16)],C===4&&(y=parseInt(O[3]+O[3],16)/255)):(h=[parseInt(O[0]+O[1],16),parseInt(O[2]+O[3],16),parseInt(O[4]+O[5],16)],C===8&&(y=parseInt(O[6]+O[7],16)/255)),h[0]||(h[0]=0),h[1]||(h[1]=0),h[2]||(h[2]=0),T="rgb"}else if(v=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(u)){var w=v[1],d=w==="rgb",O=w.replace(/a$/,"");T=O;var C=O==="cmyk"?4:O==="gray"?1:3;h=v[2].trim().split(/\s*,\s*/).map(function(A,R){if(/%$/.test(A))return R===C?parseFloat(A)/100:O==="rgb"?parseFloat(A)*255/100:parseFloat(A);if(O[R]==="h"){if(/deg$/.test(A))return parseFloat(A);if(l[A]!==void 0)return l[A]}return parseFloat(A)}),w===O&&h.push(1),y=d||h[C]===void 0?1:h[C],h=h.slice(0,C)}else u.length>10&&/[0-9](?:\s|\/)/.test(u)&&(h=u.match(/([0-9]+)/g).map(function(p){return parseFloat(p)}),T=u.match(/([a-z])/ig).join("").toLowerCase());else if(!isNaN(u))T="rgb",h=[u>>>16,(u&65280)>>>8,u&255];else if(s(u)){var g=c(u.r,u.red,u.R,null);g!==null?(T="rgb",h=[g,c(u.g,u.green,u.G),c(u.b,u.blue,u.B)]):(T="hsl",h=[c(u.h,u.hue,u.H),c(u.s,u.saturation,u.S),c(u.l,u.lightness,u.L,u.b,u.brightness)]),y=c(u.a,u.alpha,u.opacity,1),u.opacity!=null&&(y/=100)}else(Array.isArray(u)||r.ArrayBuffer&&ArrayBuffer.isView&&ArrayBuffer.isView(u))&&(h=[u[0],u[1],u[2]],T="rgb",y=u.length===4?u[3]:1);return{space:T,values:h,alpha:y}}}).call(this,t(22))},function(i,e,t){i.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},function(i,e,t){var r=Object.prototype.toString;i.exports=function(n){var s;return r.call(n)==="[object Object]"&&(s=Object.getPrototypeOf(n),s===null||s===Object.getPrototypeOf({}))}},function(i,e){i.exports=function(){for(var t=0;t<arguments.length;t++)if(arguments[t]!==void 0)return arguments[t]}},function(i,e,t){var r=t(38);i.exports={name:"hsl",min:[0,0,0],max:[360,100,100],channel:["hue","saturation","lightness"],alias:["HSL"],rgb:function(n){var s=n[0]/360,c=n[1]/100,l=n[2]/100,f,u,v,h,y;if(c===0)return y=l*255,[y,y,y];l<.5?u=l*(1+c):u=l+c-l*c,f=2*l-u,h=[0,0,0];for(var T=0;T<3;T++)v=s+.3333333333333333*-(T-1),v<0?v++:v>1&&v--,6*v<1?y=f+(u-f)*6*v:2*v<1?y=u:3*v<2?y=f+(u-f)*(.6666666666666666-v)*6:y=f,h[T]=y*255;return h}},r.hsl=function(n){var s=n[0]/255,c=n[1]/255,l=n[2]/255,f=Math.min(s,c,l),u=Math.max(s,c,l),v=u-f,h,y,T;return u===f?h=0:s===u?h=(c-l)/v:c===u?h=2+(l-s)/v:l===u&&(h=4+(s-c)/v),h=Math.min(h*60,360),h<0&&(h+=360),T=(f+u)/2,u===f?y=0:T<=.5?y=v/(u+f):y=v/(2-u-f),[h,y*100,T*100]}},function(i,e,t){i.exports={name:"rgb",min:[0,0,0],max:[255,255,255],channel:["red","green","blue"],alias:["RGB"]}},function(i,e){i.exports=t;function t(r,n,s){return n<s?r<n?n:r>s?s:r:r<s?s:r>n?n:r}},function(i,e,t){t.r(e),t.d(e,"default",function(){return g});var r=t(41),n=t.n(r),s=t(42),c=t.n(s),l=t(43),f=t.n(l),u=t(44),v=t(46),h=t.n(v),y=t(53),T=t(55);t(1).glMatrix.setMatrixArrayType(Array);const O=Symbol("contours"),C=Symbol("path"),S=Symbol("simplify"),w=Symbol("scale"),d=2*Math.PI;class g{constructor(P={}){typeof P=="string"&&(P={path:P}),P.path?this[C]=n()(P.path):this[C]=[],this[O]=null,this[S]=P.simplify!=null?P.simplify:0,this[w]=P.scale!=null?P.scale:2}get contours(){let P=null;if(!this[O]&&this[C]){const A=Object(u.default)(f()(this[C]));this[O]=h()(A,this[w],this[S]),this[O].path=A,this[O].simplify=this[S],this[O].scale=this[w]}return this[O]&&(P=this[O].map(A=>[...A]),P.path=this[O].path,P.simplify=this[O].simplify,P.scale=this[O].scale),P}get path(){return this[C]}get simplify(){return this[S]}get boundingBox(){const P=this.contours;if(P&&P.length){const A=P.reduce((R,D)=>[...R,...D]);return c()(A)}return[[0,0],[0,0]]}get boundingCenter(){const P=this.boundingBox;return P?[.5*(P[0][0]+P[1][0]),.5*(P[0][1]+P[1][1])]:[0,0]}normalize(P=0,A=0){const R=Object(u.default)(f()(this[C])).map(([D,...U])=>{const L=[D];for(let W=0;W<U.length;W+=2){const Y=U[W]-P,B=U[W+1]-A;L.push(Y,B)}return L});return this.beginPath(),this[C].push(...R),this}getPointAtLength(P){return this.contours?Object(y.getPointAtLength)(this[O],P):null}getTotalLength(){return this.contours?Object(y.getTotalLength)(this[O]):0}addPath(P){this[O]=null,typeof P=="string"&&(P=n()(P)),this[C].push(...P)}beginPath(){this[C]=[],this[O]=null}clear(){this.beginPath()}ellipse(P,A,R,D,U,L,W,Y=0){if(L+=U,W+=U,R<=0||D<=0||W===L)return;W<L&&(W=L+d+(W-L)%d),W-L>d&&(W=L+d);const B=W-L;B>=d&&(W-=.001);let N=this[C].length>0&&B<d?"L":"M";const $=Object(T.getPoint)(P,A,R,D,L),J=Object(T.getPoint)(P,A,R,D,W),et=+!Y;let ot=B>Math.PI?1:0;Y&&(ot=1-ot),N+=$.join(" "),N+=`A${R} ${D} 0 ${ot} ${et} ${J.join(" ")}`,B>=d&&(N+="Z"),this.addPath(N)}arc(P,A,R,D,U,L=0){return this.ellipse(P,A,R,R,0,D,U,L)}arcTo(P,A,R,D,U,L,W){this[O]=null,this[C].push(["A",P,A,R,D,U,L,W])}moveTo(P,A){this[O]=null,this[C].push(["M",P,A])}lineTo(P,A){this[O]=null,this[C].push(["L",P,A])}bezierCurveTo(P,A,R,D,U,L){this[O]=null,this[C].push(["C",P,A,R,D,U,L])}quadraticCurveTo(P,A,R,D){this[O]=null,this[C].push(["Q",P,A,R,D])}rect(P,A,R,D){const U=`M${P} ${A}L${P+R} ${A}L${P+R} ${A+D}L${P} ${A+D}Z`;this.addPath(U)}closePath(){this[O]=null;let P=[];const A=this[C].length;A>0&&(P=this[C][A-1]),P[0]!=="Z"&&P[0]!=="z"&&this[C].push(["Z"])}}},function(i,e){i.exports=n;var t={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},r=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function n(l){var f=[];return l.replace(r,function(u,v,h){var y=v.toLowerCase();for(h=c(h),y=="m"&&h.length>2&&(f.push([v].concat(h.splice(0,2))),y="l",v=v=="m"?"l":"L");;){if(h.length==t[y])return h.unshift(v),f.push(h);if(h.length<t[y])throw new Error("malformed path data");f.push([v].concat(h.splice(0,t[y])))}}),f}var s=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function c(l){var f=l.match(s);return f?f.map(Number):[]}},function(i,e,t){i.exports=r;function r(n){var s=n.length;if(s===0)return[[],[]];for(var c=n[0].length,l=n[0].slice(),f=n[0].slice(),u=1;u<s;++u)for(var v=n[u],h=0;h<c;++h){var y=v[h];l[h]=Math.min(l[h],y),f[h]=Math.max(f[h],y)}return[l,f]}},function(i,e){i.exports=t;function t(r){var n=0,s=0,c=0,l=0;return r.map(function(f){f=f.slice();var u=f[0],v=u.toUpperCase();if(u!=v)switch(f[0]=v,u){case"a":f[6]+=c,f[7]+=l;break;case"v":f[1]+=l;break;case"h":f[1]+=c;break;default:for(var h=1;h<f.length;)f[h++]+=c,f[h++]+=l}switch(v){case"Z":c=n,l=s;break;case"H":c=f[1];break;case"V":l=f[1];break;case"M":c=n=f[1],l=s=f[2];break;default:c=f[f.length-2],l=f[f.length-1]}return f})}},function(i,e,t){t.r(e),t.d(e,"default",function(){return n});var r=t(45);t(1).glMatrix.setMatrixArrayType(Array);function n(l){for(var f,u=[],v=0,h=0,y=0,T=0,O=null,C=null,S=0,w=0,d=0,g=l.length;d<g;d++){var p=l[d],P=p[0];switch(P){case"M":y=p[1],T=p[2];break;case"A":var A=Object(r.default)(S,w,p[6],p[7],p[4],p[5],p[1],p[2],p[3]);if(!A.length)continue;A=A.map(W=>{const[Y,B,N,$,J,et,ot,ut]=W;return{x1:N,y1:$,x2:J,y2:et,x:ot,y:ut}});for(var R=0,D;R<A.length;R++)D=A[R],p=["C",D.x1,D.y1,D.x2,D.y2,D.x,D.y],R<A.length-1&&u.push(p);break;case"S":var U=S,L=w;(f=="C"||f=="S")&&(U+=U-v,L+=L-h),p=["C",U,L,p[1],p[2],p[3],p[4]];break;case"T":f=="Q"||f=="T"?(O=S*2-O,C=w*2-C):(O=S,C=w),p=c(S,w,O,C,p[1],p[2]);break;case"Q":O=p[1],C=p[2],p=c(S,w,p[1],p[2],p[3],p[4]);break;case"L":p=s(S,w,p[1],p[2]);break;case"H":p=s(S,w,p[1],w);break;case"V":p=s(S,w,S,p[1]);break;case"Z":p=s(S,w,y,T);break}f=P,S=p[p.length-2],w=p[p.length-1],p.length>4?(v=p[p.length-4],h=p[p.length-3]):(v=S,h=w),u.push(p)}return u}function s(l,f,u,v){return["C",l,f,u,v,u,v]}function c(l,f,u,v,h,y){return["C",l/3+.6666666666666666*u,f/3+.6666666666666666*v,h/3+.6666666666666666*u,y/3+.6666666666666666*v,h,y]}},function(i,e,t){t.r(e),t.d(e,"default",function(){return l}),t(1).glMatrix.setMatrixArrayType(Array);const r=Math.PI*2;function n(f,u,v,h){const y=f*h-u*v<0?-1:1;let T=f*v+u*h;return T>1&&(T=1),T<-1&&(T=-1),y*Math.acos(T)}function s(f,u,v,h,y,T,O,C,S,w){const d=w*(f-v)/2+S*(u-h)/2,g=-S*(f-v)/2+w*(u-h)/2,p=O*O,P=C*C,A=d*d,R=g*g;let D=p*P-p*R-P*A;D<0&&(D=0),D/=p*R+P*A,D=Math.sqrt(D)*(y===T?-1:1);const U=D*O/C*g,L=D*-C/O*d,W=w*U-S*L+(f+v)/2,Y=S*U+w*L+(u+h)/2,B=(d-U)/O,N=(g-L)/C,$=(-d-U)/O,J=(-g-L)/C,et=n(1,0,B,N);let ot=n(B,N,$,J);return T===0&&ot>0&&(ot-=r),T===1&&ot<0&&(ot+=r),[W,Y,et,ot]}function c(f,u){const v=1.3333333333333333*Math.tan(u/4),h=Math.cos(f),y=Math.sin(f),T=Math.cos(f+u),O=Math.sin(f+u);return[h,y,h-y*v,y+h*v,T+O*v,O-T*v,T,O]}function l(f,u,v,h,y,T,O,C,S){const w=Math.sin(S*r/360),d=Math.cos(S*r/360),g=d*(f-v)/2+w*(u-h)/2,p=-w*(f-v)/2+d*(u-h)/2;if(g===0&&p===0)return[];if(O===0||C===0)return[];O=Math.abs(O),C=Math.abs(C);const P=g*g/(O*O)+p*p/(C*C);P>1&&(O*=Math.sqrt(P),C*=Math.sqrt(P));const A=s(f,u,v,h,y,T,O,C,w,d),R=[];let D=A[2],U=A[3];const L=Math.max(Math.ceil(Math.abs(U)/(r/4)),1);U/=L;for(let W=0;W<L;W++)R.push(c(D,U)),D+=U;return R.map(W=>{for(let Y=0;Y<W.length;Y+=2){let B=W[Y+0],N=W[Y+1];B*=O,N*=C;const $=d*B-w*N,J=w*B+d*N;W[Y+0]=$+A[0],W[Y+1]=J+A[1]}return W})}},function(i,e,t){t(1).glMatrix.setMatrixArrayType(Array);var r=t(47),{copy:n}=t(49),s=t(50);function c(h,y,T){return h[0]=y,h[1]=T,h}var l=[0,0],f=[0,0],u=[0,0];function v(h,y,T,O){r(T,c(l,O[1],O[2]),c(f,O[3],O[4]),c(u,O[5],O[6]),y,h)}i.exports=function(y,T,O){var C=[],S=[],w=[0,0];return y.forEach(function(d,g,p){if(d[0]==="M")n(w,d.slice(1)),S.length>0&&(C.push(S),S=[]);else if(d[0]==="C")v(S,T,w,d),c(w,d[5],d[6]);else throw new Error("illegal type in SVG: "+d[0])}),S.length>0&&C.push(S),C.map(function(d){return s(d,O||0)})}},function(i,e,t){i.exports=t(48)()},function(i,e){function t(n){return[n[0],n[1]]}function r(n,s){return[n,s]}i.exports=function(s){s=s||{};var c=typeof s.recursion=="number"?s.recursion:8,l=typeof s.epsilon=="number"?s.epsilon:11920929e-14,f=typeof s.pathEpsilon=="number"?s.pathEpsilon:1,u=typeof s.angleEpsilon=="number"?s.angleEpsilon:.01,v=s.angleTolerance||0,h=s.cuspLimit||0;return function(C,S,w,d,g,p){p||(p=[]),g=typeof g=="number"?g:1;var P=f/g;return P*=P,y(C,S,w,d,p,P),p};function y(O,C,S,w,d,g){d.push(t(O));var p=O[0],P=O[1],A=C[0],R=C[1],D=S[0],U=S[1],L=w[0],W=w[1];T(p,P,A,R,D,U,L,W,d,g,0),d.push(t(w))}function T(O,C,S,w,d,g,p,P,A,R,D){if(!(D>c)){var U=Math.PI,L=(O+S)/2,W=(C+w)/2,Y=(S+d)/2,B=(w+g)/2,N=(d+p)/2,$=(g+P)/2,J=(L+Y)/2,et=(W+B)/2,ot=(Y+N)/2,ut=(B+$)/2,K=(J+ot)/2,Q=(et+ut)/2;if(D>0){var ft=p-O,mt=P-C,yt=Math.abs((S-p)*mt-(w-P)*ft),Et=Math.abs((d-p)*mt-(g-P)*ft),ht,Nt;if(yt>l&&Et>l){if((yt+Et)*(yt+Et)<=R*(ft*ft+mt*mt)){if(v<u){A.push(r(K,Q));return}var Bt=Math.atan2(g-w,d-S);if(ht=Math.abs(Bt-Math.atan2(w-C,S-O)),Nt=Math.abs(Math.atan2(P-g,p-d)-Bt),ht>=U&&(ht=2*U-ht),Nt>=U&&(Nt=2*U-Nt),ht+Nt<v){A.push(r(K,Q));return}if(h!==0){if(ht>h){A.push(r(S,w));return}if(Nt>h){A.push(r(d,g));return}}}}else if(yt>l){if(yt*yt<=R*(ft*ft+mt*mt)){if(v<u){A.push(r(K,Q));return}if(ht=Math.abs(Math.atan2(g-w,d-S)-Math.atan2(w-C,S-O)),ht>=U&&(ht=2*U-ht),ht<v){A.push(r(S,w)),A.push(r(d,g));return}if(h!==0&&ht>h){A.push(r(S,w));return}}}else if(Et>l){if(Et*Et<=R*(ft*ft+mt*mt)){if(v<u){A.push(r(K,Q));return}if(ht=Math.abs(Math.atan2(P-g,p-d)-Math.atan2(g-w,d-S)),ht>=U&&(ht=2*U-ht),ht<v){A.push(r(S,w)),A.push(r(d,g));return}if(h!==0&&ht>h){A.push(r(d,g));return}}}else if(ft=K-(O+p)/2,mt=Q-(C+P)/2,ft*ft+mt*mt<=R){A.push(r(K,Q));return}}T(O,C,L,W,J,et,K,Q,A,R,D+1),T(K,Q,ot,ut,N,$,p,P,A,R,D+1)}}}},function(i,e,t){t.r(e),t.d(e,"create",function(){return s}),t.d(e,"clone",function(){return n}),t.d(e,"copy",function(){return c}),t.d(e,"scaleAndAdd",function(){return l}),t.d(e,"dot",function(){return f}),t.d(e,"rotate",function(){return u}),t.d(e,"cross",function(){return v}),t.d(e,"sub",function(){return h}),t.d(e,"add",function(){return y}),t.d(e,"computeMiter",function(){return S}),t.d(e,"normal",function(){return w}),t.d(e,"direction",function(){return d});var r=t(1);t(1).glMatrix.setMatrixArrayType(Array);function n(g){return[g[0],g[1]]}function s(){return[0,0]}const c=r.vec2.copy,l=r.vec2.scaleAndAdd,f=r.vec2.dot,u=r.vec2.rotate,v=r.vec2.cross,h=r.vec2.sub,y=r.vec2.add,T=r.vec2.normalize,O=r.vec2.set,C=s();function S(g,p,P,A,R){y(g,P,A),T(g,g),O(p,-g[1],g[0]),O(C,-P[1],P[0]);const D=R/f(p,C);return Math.abs(D)}function w(g,p){return O(g,-p[1],p[0]),g}function d(g,p,P){return h(g,p,P),T(g,g),g}},function(i,e,t){var r=t(51),n=t(52);i.exports=function(c,l){return c=r(c,l),c=n(c,l),c},i.exports.radialDistance=r,i.exports.douglasPeucker=n},function(i,e){function t(r,n){var s=r[0]-n[0],c=r[1]-n[1];return s*s+c*c}i.exports=function(n,s){if(n.length<=1)return n;s=typeof s=="number"?s:1;for(var c=s*s,l=n[0],f=[l],u,v=1,h=n.length;v<h;v++)u=n[v],t(u,l)>c&&(f.push(u),l=u);return l!==u&&f.push(u),f}},function(i,e){function t(n,s,c){var l=s[0],f=s[1],u=c[0]-l,v=c[1]-f;if(u!==0||v!==0){var h=((n[0]-l)*u+(n[1]-f)*v)/(u*u+v*v);h>1?(l=c[0],f=c[1]):h>0&&(l+=u*h,f+=v*h)}return u=n[0]-l,v=n[1]-f,u*u+v*v}function r(n,s,c,l,f){for(var u=l,v,h=s+1;h<c;h++){var y=t(n[h],n[s],n[c]);y>u&&(v=h,u=y)}u>l&&(v-s>1&&r(n,s,v,l,f),f.push(n[v]),c-v>1&&r(n,v,c,l,f))}i.exports=function(s,c){if(s.length<=1)return s;c=typeof c=="number"?c:1;var l=c*c,f=s.length-1,u=[s[0]];return r(s,0,f,l,u),u.push(s[f]),u}},function(i,e,t){t.r(e),t.d(e,"getTotalLength",function(){return n}),t.d(e,"getPointAtLength",function(){return c}),t.d(e,"getDashContours",function(){return l});var r=t(54);t(1).glMatrix.setMatrixArrayType(Array);function n(f){if(f.totalLength!=null)return f.totalLength;let u=0;return f.forEach(v=>{let h=v[0];for(let y=1;y<v.length;y++){const T=v[y];u+=Object(r.distance)(h,T),h=T}}),f.totalLength=u,u}function s(f,u,v=!0){if(u=Number(u),!Number.isFinite(u))throw new TypeError("Failed to execute 'getPointAtLength' on figure: The provided float value is non-finite.");if(u<=0)throw new TypeError("Length must > 0");const h=n(f);if(u>=h){const T=f[f.length-1],O=T[T.length-2],C=T[T.length-1],S=Math.atan2(C[1]-O[1],C[0]-O[0]);return{current:f.map(w=>[...w]),point:{x:C[0],y:C[1],angle:S}}}const y=[];for(let T=0;T<f.length;T++){y[T]=[];const O=f[T];let C=O[0];for(let S=1;S<O.length;S++){const w=O[S],d=Object(r.distance)(C,w);if(u<d){const g=u/d,p=Math.atan2(w[1]-C[1],w[0]-C[0]),P={x:C[0]*(1-g)+w[0]*g,y:C[1]*(1-g)+w[1]*g,angle:p};if(y[T].push(C),u>0&&y[T].push([P.x,P.y]),!v)return{current:y,point:P};const A=[],R=T;for(;T<f.length;T++){for(A[T-R]=[],T===R&&A[0].push([P.x,P.y]);S<O.length;S++)A[T-R].push(O[S]);S=0}return{current:y,point:P,rest:A}}u-=d,y[T].push(C),C=w}}}function c(f,u){if(u=Number(u),!Number.isFinite(u))throw new TypeError("Failed to execute 'getPointAtLength' on figure: The provided float value is non-finite.");if(f.length<=0)return{x:0,y:0,angle:0};if(u<=0){const v=f[0][0],h=f[0][1],y=Math.atan2(h[1]-v[1],h[0]-v[0]);return{x:v[0],y:v[1],angle:y}}return s(f,u,!1).point}function l(f,u,v){let h=0,y=u[0],T=f;const O=[],C=u.length;if(v>0){do v-=u[h%C],h++;while(v>0);v<0&&(y=-v,h--)}else if(v<0){h=-1;do v+=u[h%C+C-1],h--;while(v<0);v>=0&&(h++,y=u[h%C+C-1]-v)}do{const S=s(T,y);T=S.rest,++h%2&&O.push(...S.current);let w=h%C;w<0&&(w+=C),y=u[w]}while(T);return O}},function(i,e,t){t.r(e),t.d(e,"normalize",function(){return r}),t.d(e,"distance",function(){return n}),t(1).glMatrix.setMatrixArrayType(Array);function r([s,c,l],f,u,v){return s=s*2/f-1,c=1-c*2/u,Number.isFinite(v)?(l=l*2/v-1,[s,c,l]):[s,c]}function n([s,c,l=0],[f,u,v=0]){return Math.hypot(f-s,u-c,v-l)}},function(i,e,t){t.r(e),t.d(e,"getPoint",function(){return n}),t(1).glMatrix.setMatrixArrayType(Array);const r=Math.PI*2;function n(s,c,l,f,u){u%=r,u<0&&(u+=r);const v=Math.tan(u);if(Math.abs(v)<1e5){const h=c-v*s,y=1/l**2+v**2/f**2;let T=-1;(u<=Math.PI/2||u>3*Math.PI/2)&&(T=1);const O=T*Math.sqrt(1/y)+s,C=v*O+h;return[O,C]}return u<Math.PI?[s,c+f]:[s,c-f]}},function(i,e,t){t.r(e),t.d(e,"default",function(){return rt});var r=t(1),n=t(42),s=t.n(n),c=t(57),l=t(28),f=t(24),u=t(30),v=t(59),h=t(53),y=t(60),T=t.n(y),O=t(46),C=t.n(O),S=t(31),w=t(40),d=t(21);t(1).glMatrix.setMatrixArrayType(Array);function g(at,z){if(at==null)return{};var j=p(at,z),I,M;if(Object.getOwnPropertySymbols){var X=Object.getOwnPropertySymbols(at);for(M=0;M<X.length;M++)I=X[M],!(z.indexOf(I)>=0)&&Object.prototype.propertyIsEnumerable.call(at,I)&&(j[I]=at[I])}return j}function p(at,z){if(at==null)return{};var j={},I=Object.keys(at),M,X;for(X=0;X<I.length;X++)M=I[X],!(z.indexOf(M)>=0)&&(j[M]=at[M]);return j}const P=Symbol("mesh"),A=Symbol("contours"),R=Symbol("stroke"),D=Symbol("fill"),U=Symbol("strokeColor"),L=Symbol("fillColor"),W=Symbol("transform"),Y=Symbol("invertTransform"),B=Symbol("uniforms"),N=Symbol("texOptions"),$=Symbol("blend"),J=Symbol("applyTexture"),et=Symbol("applyTransform"),ot=Symbol("applyGradientTransform"),ut=Symbol("applyProgram"),K=Symbol("gradient"),Q=Symbol("filter"),ft=Symbol("opacity"),mt=Symbol("program"),yt=Symbol("attributes"),Et=Symbol("pass"),ht=Symbol("clipContext"),Nt=Symbol("applyClipPath");function Bt(at,z){const[j,I]=[at[1][0]-at[0][0],at[1][1]-at[0][1]],M=[];for(let X=0;X<z.length;X++){const Z=z[X],q=[(Z[0]-at[0][0])/j,1-(Z[1]-at[0][1])/I];M.push(q)}return M}function G([at,z],[j,I,M,X],{scale:Z}){return Z||(at/=M,z=1-z/X,at-=j,z+=I),[at,z,0]}function H(at,z,j){const I=C()(at,z,j);return I.path=at,I.simplify=j,I.scale=z,I}class rt{constructor(z){this[R]=null,this[D]=null,this[W]=[1,0,0,1,0,0],this[ft]=1,this[B]={},this[Q]=[],this[$]=null,this[N]={},this.contours=z.contours,this[mt]=null,this[yt]={},this[Et]=[]}get contours(){return this[A]}set contours(z){this[P]=null,this[A]=z;const j=z.scale;this.transformScale/j>1.5&&this.accurate(this.transformScale)}setProgram(z){this[mt]=z,this[P]&&this[ut](z)}get program(){return this[mt]}setAttribute(z,j){j==null?delete this[yt][z]:this[yt][z]=j}getOpacity(){return this[ft]}setOpacity(z){if(z<0||z>1)throw new TypeError("Invalid opacity value.");this[P]&&this[P].positions.forEach(j=>{j[2]=1/j[2]>0?z:-z}),this[ft]=z}setClipPath(z){this.clipPath=z,this[B].u_clipSampler&&this[B].u_clipSampler.delete(),this.setUniforms({u_clipSampler:null}),this[P]&&delete this[P].attributes.a_clipUV,z&&this[P]&&this[Nt]()}[Nt](){if(this.clipPath){this[ht]||(this[ht]=d.default.createCanvas(1,1));const[[z,j],[I,M]]=this.boundingBox;I&&M&&(this[ht].width=I-z,this[ht].height=M-j);const X=this[ht].getContext("2d"),Z=new Path2D(this.clipPath);X.clearRect(0,0,this[ht].width,this[ht].height),X.save(),X.translate(-z,-j),X.fillStyle="white",X.fill(Z),X.restore(),this[P].clipPath=this[ht];const q=Bt(this.boundingBox,this[P].position0);this[P].attributes.a_clipUV=q}}getPointAtLength(z){return Object(h.getPointAtLength)(this[A],z)}getTotalLength(){return Object(h.getTotalLength)(this[A])}get blend(){return this[$]==null?"auto":this[$]}set blend(z){this[$]=z,this[P]&&(this[P].enableBlend=this.enableBlend)}get boundingBox(){if(this[P]&&this[P].boundingBox)return this[P].boundingBox;const z=this.meshData;if(z){const j=z.position0;if(j.length)z.boundingBox=s()(j);else return[[0,0],[0,0]];return z.boundingBox}return[[0,0],[0,0]]}get boundingCenter(){const z=this.boundingBox;return z?[.5*(z[0][0]+z[1][0]),.5*(z[0][1]+z[1][1])]:[0,0]}get fillRule(){return this[D]?this[D].rule:"nonzero"}get lineWidth(){return this[R]?this[R].lineWidth:0}get lineCap(){return this[R]?this[R].lineCap:""}get lineJoin(){return this[R]?this[R].lineJoin:""}get miterLimit(){return this[R]?this[R].miterLimit:0}get strokeStyle(){return this[U]&&this[U][3]!==0?Object(f.default)(this[U]):""}get lineDash(){return this[R]?this[R].lineDash:null}get lineDashOffset(){return this[R]?this[R].lineDashOffset:0}get fillStyle(){return this[L]&&this[L][3]!==0?Object(f.default)(this[L]):""}get gradient(){return this[K]}get texture(){return this[B].u_texSampler?{image:this[B].u_texSampler._img,options:this[N]}:null}get enableBlend(){return this[$]===!0||this[$]===!1?this[$]:this[ft]<1||this[U]!=null&&this[U][3]<1||this[L]!=null&&this[L][3]<1||this[B].u_colorMatrix!=null&&this[B].u_colorMatrix[18]<1||this[B].u_radialGradientVector!=null||this.beforeRender||this.afterRender}get filterCanvas(){return/blur|drop-shadow|url/.test(this.filter)}get filter(){return this[Q].join(" ")}get transformMatrix(){return this[W]}get invertMatrix(){if(!this[Y]){const z=r.mat2d.invert(Array.of(0,0,0,0,0,0),this[W]);this[Y]=z}return this[Y]}get transformScale(){const z=this[W];return Math.max(Math.hypot(z[0],z[1]),Math.hypot(z[2],z[3]))}get uniforms(){return this[B]}get pass(){return this[Et]}[ut](z){const j=this[yt],I=this[P].position0,M=Object.entries(z._attribute);for(let X=0;X<M.length;X++){const[Z,q]=M[X];if(Z!=="a_color"&&Z!=="a_sourceRect"&&q!=="ignored"){const nt=j[Z];if(Z==="uv"&&!nt){const ct=this[P].boundingBox||s()(I);this[P].attributes[Z]=Bt(ct,I)}else{this[P].attributes[Z]=[];for(let ct=0;ct<I.length;ct++){const Pt=I[ct];this[P].attributes[Z].push(nt?nt(Pt,X,I):Array(q.size).fill(0))}}}}}get meshData(){if(this._updateMatrix&&this.transformScale/this.contours.scale>1.5&&this.accurate(this.transformScale),!this[P]){!this[D]&&!this[R]&&this.setFill();const z=this[A],j={};if(z&&z.length){if(this[D])try{const X=T()(z,this[D]);X.positions=X.positions.map(Z=>(Z.push(this[ft]),Z)),X.attributes={a_color:Array.from({length:X.positions.length}).map(()=>this[L].map(Z=>Math.round(255*Z)))},j.fill=X}catch{}if(this[R]){const X=this[R].lineDash;let Z=z;if(X){const nt=this[R].lineDashOffset;Z=Object(h.getDashContours)(z,X,nt)}const q=Z.map((nt,ct)=>{const Pt=nt.length>1&&r.vec2.equals(nt[0],nt[nt.length-1]),Ct=this[R].build(nt,Pt);return T()([Ct])});q.forEach(nt=>{nt.positions=nt.positions.map(ct=>(ct.push(-this[ft]),ct)),nt.attributes={a_color:Array.from({length:nt.positions.length}).map(()=>this[U].map(ct=>Math.round(255*ct)))}}),j.stroke=Object(l.default)(q)}}const I=Object(l.default)([j.fill,j.stroke]);I.fillPointCount=j.fill?j.fill.positions.length:0,I.enableBlend=this.enableBlend,I.position0=I.positions.map(([X,Z,q])=>[X,Z,q]),I.uniforms=this[B],this[P]=I,this[B].u_texSampler&&this[J](I,this[N]);const M=this[W];Object(v.isUnitTransform)(M)||(this[et](I,M),this[B].u_radialGradientVector&&this[ot]()),this.clipPath&&this[Nt](),this[mt]&&this[ut](this[mt])}return this._updateMatrix&&(this[P].matrix=this[W],this[et](this[P],this[W]),this[B].u_radialGradientVector&&this[ot]()),this[P]}[et](z,j){const{positions:I,position0:M}=z;for(let X=0;X<I.length;X++){const[Z,q]=M[X],nt=I[X];nt[0]=Z*j[0]+q*j[2]+j[4],nt[1]=Z*j[1]+q*j[3]+j[5]}this._updateMatrix=!1}[ot](){const z=this[W],j=[...this._radialGradientVector];if(j){const[I,M,,X,Z]=j;j[0]=I*z[0]+M*z[2]+z[4],j[1]=I*z[1]+M*z[3]+z[5],j[3]=X*z[0]+Z*z[2]+z[4],j[4]=X*z[1]+Z*z[3]+z[5],this[B].u_radialGradientVector=j}}[J](z,j){function I(ct,Pt){return ct==null&&Pt==null?!0:ct==null||Pt==null?!1:ct[0]===Pt[0]&&ct[1]===Pt[1]&&ct[2]===Pt[2]&&ct[3]===Pt[3]}const M=this[B].u_texSampler;if(!M)return;const{width:X,height:Z}=M._img,q=j.srcRect;let nt=j.rect||[0,0];if(j.rotated&&(nt=[-nt[1],nt[0],nt[3],nt[2]]),nt[2]==null&&(nt[2]=q?q[2]:X),nt[3]==null&&(nt[3]=q?q[3]:Z),j.hidden)z.textureCoord=z.positions.map(()=>[-1,-1,-1]);else if(!z.textureCoord||!I(this[N].rect,j.rect)||this[N].hidden!==j.hidden||this[N].rotated!==j.rotated){let ct=null;j.rotated&&(ct=r.mat2d.rotate(Array.of(0,0,0,0,0,0),r.mat2d.fromValues(1,0,0,1,0,0),.5*Math.PI),ct=r.mat2d.translate(Array.of(0,0,0,0,0,0),ct,[0,-nt[2]])),z.textureCoord=z.position0.map(([Pt,Ct,At])=>{if(1/At>0){if(j.rotated){const wt=Pt*ct[0]+Ct*ct[2]+ct[4],Ot=Pt*ct[1]+Ct*ct[3]+ct[5];[Pt,Ct]=[wt,Ot]}const bt=G([Pt,Ct],[nt[0]/nt[2],nt[1]/nt[3],nt[2],nt[3]],j);return j.repeat&&(bt[2]=1),bt}return[-1,-1,-1]})}if(q){const ct=[q[0]/X,q[1]/Z,q[2]/X,q[3]/Z];z.attributes.a_sourceRect=z.positions.map(()=>[...ct])}else z.attributes.a_sourceRect=z.positions.map(()=>[0,0,0,0])}accurate(z){if(!this.contours)return;if(this.contours.path){const I=this.contours.simplify,M=H(this.contours.path,2*z,I);this[P]=null,this[A]=M}}canIgnore(){const z=this[R]==null||this[R].lineWidth===0||this[U][3]===0,j=this[D]==null||this[L][3]===0,I=this[B].u_radialGradientVector==null,M=this[B].u_texSampler==null;return this[ft]===0||this[mt]==null&&z&&j&&I&&M&&!this.beforeRender&&!this.afterRender}setStroke({thickness:z=1,cap:j="butt",join:I="miter",miterLimit:M=10,color:X=[0,0,0,0],lineDash:Z=null,lineDashOffset:q=0,roundSegments:nt=20}={}){return this[P]=null,this[R]=new c.default({lineWidth:z,lineCap:j,lineJoin:I,miterLimit:M,roundSegments:nt}),typeof X=="string"&&(X=Object(S.default)(X)),this[U]=X,this[R].lineDash=Z,this[R].lineDashOffset=q,this}setFill({rule:z=this.fillRule,color:j=[0,0,0,0]}={}){return this[P]=null,this[D]={rule:z},typeof j=="string"&&(j=Object(S.default)(j)),this[L]=j,this}setTexture(z,j={}){if(z&&z.image){const{image:I,rect:M}=z;if(z=I,j.rect)for(let X=0;X<j.rect.length;X++)M[X]=j.rect[X];j.rect=M}return this[D]||this.setFill(),this.setUniforms({u_texSampler:z}),this[P]&&this[J](this[P],j),this[N]=j,this}setCircularGradient({vector:z,colors:j,type:I="fill"}={}){if(z.length!==3)throw new TypeError("Invalid linearGradient.");this.setGradient({vector:z,colors:j,type:I})}setLinearGradient({vector:z,colors:j,type:I="fill"}={}){if(z.length!==4)throw new TypeError("Invalid linearGradient.");this.setGradient({vector:z,colors:j,type:I})}setRadialGradient({vector:z,colors:j,type:I="fill"}={}){if(z.length!==6)throw new TypeError("Invalid radialGradient.");this.setGradient({vector:z,colors:j,type:I})}setGradient({vector:z,colors:j,type:I="fill"}={}){j=j.map(({offset:Z,color:q})=>(typeof q=="string"&&(q=Object(S.default)(q)),{offset:Z,color:q})),this[K]=this[K]||{},this[K][I]={vector:z,colors:j},j.sort((Z,q)=>Z.offset-q.offset);const M=[];j.forEach(({offset:Z,color:q})=>{M.push(Z,...q)});let X;if(z.length===4?X=[z[0],z[1],0,z[2],z[3],0]:X=[...z],M.length<40&&M.push(-1),M.length>40)throw new Error("Too many colors, should be less than 8 colors");return this._radialGradientVector=X,this[B].u_colorSteps=M,I==="fill"?this[B].u_gradientType=1:this[B].u_gradientType=0,this[ot](),this}setUniforms(z={}){return Object.assign(this[B],z),this}setTransform(...z){const j=this[W];return r.mat2d.equals(z,j)||(this[W]=z,delete this[Y],this._updateMatrix=!0),this}transform(...z){const j=this[W];return this[W]=r.mat2d.multiply(Array.of(0,0,0,0,0,0),j,z),delete this[Y],this._updateMatrix=!0,this}translate(z,j){let I=r.mat2d.create();return I=r.mat2d.translate(Array.of(0,0,0,0,0,0),I,[z,j]),this.transform(...I)}rotate(z,[j,I]=[0,0]){let M=r.mat2d.create();return M=r.mat2d.translate(Array.of(0,0,0,0,0,0),M,[j,I]),M=r.mat2d.rotate(Array.of(0,0,0,0,0,0),M,z),M=r.mat2d.translate(Array.of(0,0,0,0,0,0),M,[-j,-I]),this.transform(...M)}scale(z,j=z,[I,M]=[0,0]){let X=r.mat2d.create();return X=r.mat2d.translate(Array.of(0,0,0,0,0,0),X,[I,M]),X=r.mat2d.scale(Array.of(0,0,0,0,0,0),X,[z,j]),X=r.mat2d.translate(Array.of(0,0,0,0,0,0),X,[-I,-M]),this.transform(...X)}skew(z,j=z,[I,M]=[0,0]){let X=r.mat2d.create();return X=r.mat2d.translate(Array.of(0,0,0,0,0,0),X,[I,M]),X=r.mat2d.multiply(Array.of(0,0,0,0,0,0),X,r.mat2d.fromValues(1,Math.tan(j),Math.tan(z),1,0,0)),X=r.mat2d.translate(Array.of(0,0,0,0,0,0),X,[-I,-M]),this.transform(...X)}clearFilter(){return this.setColorTransform(null),this[Q].length=0,this}setColorTransform(...z){return z[0]===null?this.setUniforms({u_filterFlag:0,u_colorMatrix:0}):this.setUniforms({u_filterFlag:1,u_colorMatrix:z}),this}transformColor(...z){let j=this.uniforms.u_colorMatrix;return j?j=Object(u.multiply)(j,z):j=z,this.setColorTransform(...j),this}blur(z){return this[Q].push(`blur(${z}px)`),this}brightness(z=1){return this[Q].push(`brightness(${100*z}%)`),this.transformColor(...Object(u.brightness)(z))}contrast(z=1){return this[Q].push(`contrast(${100*z}%)`),this.transformColor(...Object(u.contrast)(z))}dropShadow(z,j,I=0,M=[0,0,0,1]){return Array.isArray(M)&&(M=Object(f.default)(M)),this[Q].push(`drop-shadow(${z}px ${j}px ${I}px ${M})`),this}grayscale(z=1){return this[Q].push(`grayscale(${100*z}%)`),this.transformColor(...Object(u.grayscale)(z))}hueRotate(z=0){return this[Q].push(`hue-rotate(${z}deg)`),this.transformColor(...Object(u.hueRotate)(z))}invert(z=1){return this[Q].push(`invert(${100*z}%)`),this.transformColor(...Object(u.invert)(z))}opacity(z=1){return this[Q].push(`opacity(${100*z}%)`),this.transformColor(...Object(u.opacity)(z))}saturate(z=1){return this[Q].push(`saturate(${100*z}%)`),this.transformColor(...Object(u.saturate)(z))}sepia(z=1){return this[Q].push(`sepia(${100*z}%)`),this.transformColor(...Object(u.sepia)(z))}url(z){return this[Q].push(`url(${z})`),this}isPointCollision(z,j,I="both"){const M=this.meshData,{positions:X,cells:Z}=M,q=this.invertMatrix,nt=q[0]*z+q[2]*j+q[4],ct=q[1]*z+q[3]*j+q[5],Pt=this.boundingBox;if(nt<Pt[0][0]||nt>Pt[1][0]||ct<Pt[0][1]||ct>Pt[1][1])return!1;function Ct([At,bt],[wt,Ot],[Lt,Yt]){const $t=Lt-wt,Wt=Yt-Ot,Qt=((At-wt)*$t+(bt-Ot)*Wt)/($t**2+Wt**2);return Qt>=0&&Qt<=1}for(let At=0;At<Z.length;At++){const bt=Z[At];if(I==="fill"&&bt[0]>=M.fillPointCount)break;if(I==="stroke"&&bt[0]<M.fillPointCount)continue;const[[wt,Ot],[Lt,Yt],[$t,Wt]]=bt.map(ne=>X[ne]),Qt=Math.sign((z-wt)*(Yt-Ot)-(Lt-wt)*(j-Ot));if(Qt===0&&Ct([z,j],[wt,Ot],[Lt,Yt]))return!0;const ue=Math.sign((z-Lt)*(Wt-Yt)-($t-Lt)*(j-Yt));if(ue===0&&Ct([z,j],[Lt,Yt],[$t,Wt]))return!0;const ie=Math.sign((z-$t)*(Ot-Wt)-(wt-$t)*(j-Wt));if(ie===0&&Ct([z,j],[$t,Wt],[wt,Ot])||Qt===1&&ue===1&&ie===1||Qt===-1&&ue===-1&&ie===-1)return!0}return!1}isPointInFill(z,j){return this.isPointCollision(z,j,"fill")}isPointInStroke(z,j){return this.isPointCollision(z,j,"stroke")}addPass(z,j={}){let{width:I,height:M}=j,X=g(j,["width","height"]);const Z=new w.default;Z.rect(0,0,I,M);const q=new rt(Z,{width:I,height:M});q.setUniforms(X),q.setProgram(z),this[Et].push(q)}}},function(i,e,t){t.r(e);var r=t(58);t(1).glMatrix.setMatrixArrayType(Array),e.default=r.Stroke},function(i,e,t){t.r(e),t.d(e,"Stroke",function(){return v});var r=t(49);t(1).glMatrix.setMatrixArrayType(Array);const n=Object(r.create)(),s=Object(r.create)(),c=Object(r.create)(),l=Object(r.create)(),f=Object(r.create)(),u=1e20;class v{constructor({lineWidth:C=1,lineJoin:S="miter",miterLimit:w=10,lineCap:d="butt",roundSegments:g=20}={}){this.lineWidth=C,this.lineJoin=S,this.miterLimit=w,this.lineCap=d,this.roundSegments=g,this._normal=null}build(C,S=!1){let w=C.length;if(C=[...C],w<2)return C;S&&((C[0][0]!==C[w-1][0]||C[0][1]!==C[w-1][1])&&C.push([...C[0]]),C.push([...C[1]])),w=C.length,this._normal=null;const d={left:[],right:[]},g=this.lineWidth/2,p=this.lineCap;if(!S&&p==="square"){Object(r.direction)(s,C[0],C[1]),Object(r.scaleAndAdd)(C[0],C[0],s,g);const A=C.length-1;Object(r.direction)(s,C[A],C[A-1]),Object(r.scaleAndAdd)(C[A],C[A],s,g)}for(let A=1;A<w;A++){const R=C[A-1],D=C[A],U=C[A+1];this._seg(d,R,D,U,g,S)}return!S&&p==="round"&&T(d,this.roundSegments),[...d.left,...d.right.reverse()]}_seg(C,S,w,d,g,p){const P=this.lineJoin==="bevel",A=this.lineJoin==="round";if(Object(r.direction)(s,w,S),this._normal||(this._normal=Object(r.create)(),Object(r.normal)(this._normal,s)),C.left.length||y(C,S,this._normal,g),!d)Object(r.normal)(this._normal,s),p?y(C,S,this._normal,g):y(C,w,this._normal,g);else{Object(r.direction)(c,d,w);let R=Object(r.computeMiter)(l,f,s,c,g);R=Math.min(R,u);const D=Object(r.dot)(l,this._normal)<0?-1:1;let U=P||A;if(!U&&this.lineJoin==="miter"&&R/g>this.miterLimit&&(U=!0),U){Object(r.scaleAndAdd)(n,w,this._normal,-g*D),h(C,n,D);let L=1/0;S&&(L=Math.min(L,Math.hypot(w[0]-S[0],w[1]-S[1]))),d&&(L=Math.min(L,Math.hypot(d[0]-w[0],d[1]-w[1])));const W=Math.max(g,Math.min(R,L));if(Object(r.scaleAndAdd)(n,w,f,W*D),h(C,n,-D),d)if(Object(r.normal)(n,c),Object(r.copy)(this._normal,n),Object(r.scaleAndAdd)(n,w,n,-g*D),A){const Y=Object(r.clone)(n),B=D>0?C.left[C.left.length-1]:C.right[C.right.length-1],N=Object(r.clone)(w),$=Object(r.sub)(Object(r.create)(),B,N),J=Object(r.sub)(Object(r.create)(),Y,N),et=Math.PI/this.roundSegments;for(let ot=0;ot<this.roundSegments&&(Object(r.rotate)($,$,[0,0],D*et),Math.sign(Object(r.cross)(n,$,J)[2])===D);ot++)Object(r.add)(n,$,N),h(C,n,D);h(C,Y,D)}else h(C,n,D)}else y(C,w,f,R),Object(r.copy)(this._normal,f)}}}function h(O,C,S){S>0?O.left.push(Object(r.clone)(C)):O.right.push(Object(r.clone)(C))}function y(O,C,S,w,d=-1){Object(r.scaleAndAdd)(n,C,S,-w),h(O,n,-d),Object(r.scaleAndAdd)(n,C,S,w),h(O,n,d)}function T({left:O,right:C},S){const w=Object(r.create)(),d=Object(r.create)();let g=O[0],p=C[0],P=[.5*(g[0]+p[0]),.5*(g[1]+p[1])];Object(r.sub)(d,g,P);for(let A=1;A<=S;A++){const R=-1*Math.PI*A/S;Object(r.rotate)(w,d,[0,0],R),Object(r.add)(n,P,w),O.unshift(Object(r.clone)(n))}g=C[C.length-1],p=O[O.length-1],P=[.5*(g[0]+p[0]),.5*(g[1]+p[1])],Object(r.sub)(d,g,P);for(let A=1;A<=S;A++){const R=-1*Math.PI*A/S;Object(r.rotate)(w,d,[0,0],R),Object(r.add)(n,P,w),C.push(Object(r.clone)(n))}}},function(i,e,t){t.r(e),t.d(e,"isUnitTransform",function(){return r}),t(1).glMatrix.setMatrixArrayType(Array);function r(n){return n[0]===1&&n[1]===0&&n[2]===0&&n[3]===1&&n[4]===0&&n[5]===0}},function(i,e,t){t(1).glMatrix.setMatrixArrayType(Array);var r=t(61),n=t(62);i.exports=function(s,c){if(c=c||{},s=s.filter(function(S){return S.length>2}),s.length===0)return{positions:[],cells:[]};typeof c.vertexSize!="number"&&(c.vertexSize=s[0][0].length),s=s.map(function(S){return S.reduce(function(w,d){return w.concat(d)})});const l=c.rule==="evenodd"?r.WINDING_ODD:r.WINDING_NONZERO;for(var f=r.tesselate(n({contours:s,windingRule:l,elementType:r.POLYGONS,polySize:3,vertexSize:2},c)),u=[],v=0;v<f.vertices.length;v+=c.vertexSize){var h=f.vertices.slice(v,v+c.vertexSize);u.push(h)}var y=[];for(v=0;v<f.elements.length;v+=3){var T=f.elements[v],O=f.elements[v+1],C=f.elements[v+2];y.push([T,O,C])}return{positions:u,cells:y}}},function(i,e,t){t(1).glMatrix.setMatrixArrayType(Array);var r={},n={};i.exports=r,r.WINDING_ODD=0,r.WINDING_NONZERO=1,r.WINDING_POSITIVE=2,r.WINDING_NEGATIVE=3,r.WINDING_ABS_GEQ_TWO=4,r.POLYGONS=0,r.CONNECTED_POLYGONS=1,r.BOUNDARY_CONTOURS=2,r.tesselate=function(d){for(var g=d.debug||!1,p=new w,P=0;P<d.contours.length;P++)p.addContour(d.vertexSize||2,d.contours[P]);return p.tesselate(d.windingRule||r.WINDING_ODD,d.elementType||r.POLYGONS,d.polySize||3,d.vertexSize||2,d.normal||[0,0,1]),{vertices:p.vertices,vertexIndices:p.vertexIndices,vertexCount:p.vertexCount,elements:p.elements,elementCount:p.elementCount,mesh:g?p.mesh:void 0}};var s=function(d){if(!d)throw"Assertion Failed!"};function c(){this.next=null,this.prev=null,this.anEdge=null,this.coords=[0,0,0],this.s=0,this.t=0,this.pqHandle=0,this.n=0,this.idx=0}function l(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}function f(d){this.next=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Org=null,this.Lface=null,this.activeRegion=null,this.winding=0,this.side=d}f.prototype={get Rface(){return this.Sym.Lface},set Rface(d){this.Sym.Lface=d},get Dst(){return this.Sym.Org},set Dst(d){this.Sym.Org=d},get Oprev(){return this.Sym.Lnext},set Oprev(d){this.Sym.Lnext=d},get Lprev(){return this.Onext.Sym},set Lprev(d){this.Onext.Sym=d},get Dprev(){return this.Lnext.Sym},set Dprev(d){this.Lnext.Sym=d},get Rprev(){return this.Sym.Onext},set Rprev(d){this.Sym.Onext=d},get Dnext(){return this.Sym.Onext.Sym},set Dnext(d){this.Sym.Onext.Sym=d},get Rnext(){return this.Sym.Lnext.Sym},set Rnext(d){this.Sym.Lnext.Sym=d}};function u(){var d=new c,g=new l,p=new f(0),P=new f(1);d.next=d.prev=d,d.anEdge=null,g.next=g.prev=g,g.anEdge=null,g.trail=null,g.marked=!1,g.inside=!1,p.next=p,p.Sym=P,p.Onext=null,p.Lnext=null,p.Org=null,p.Lface=null,p.winding=0,p.activeRegion=null,P.next=P,P.Sym=p,P.Onext=null,P.Lnext=null,P.Org=null,P.Lface=null,P.winding=0,P.activeRegion=null,this.vHead=d,this.fHead=g,this.eHead=p,this.eHeadSym=P}u.prototype={makeEdge_:function(d){var g=new f(0),p=new f(1);d.Sym.side<d.side&&(d=d.Sym);var P=d.Sym.next;return p.next=P,P.Sym.next=g,g.next=d,d.Sym.next=p,g.Sym=p,g.Onext=g,g.Lnext=p,g.Org=null,g.Lface=null,g.winding=0,g.activeRegion=null,p.Sym=g,p.Onext=p,p.Lnext=g,p.Org=null,p.Lface=null,p.winding=0,p.activeRegion=null,g},splice_:function(d,g){var p=d.Onext,P=g.Onext;p.Sym.Lnext=g,P.Sym.Lnext=d,d.Onext=P,g.Onext=p},makeVertex_:function(d,g,p){var P=d;s(P!==null);var A=p.prev;P.prev=A,A.next=P,P.next=p,p.prev=P,P.anEdge=g;var R=g;do R.Org=P,R=R.Onext;while(R!==g)},makeFace_:function(d,g,p){var P=d;s(P!==null);var A=p.prev;P.prev=A,A.next=P,P.next=p,p.prev=P,P.anEdge=g,P.trail=null,P.marked=!1,P.inside=p.inside;var R=g;do R.Lface=P,R=R.Lnext;while(R!==g)},killEdge_:function(d){d.Sym.side<d.side&&(d=d.Sym);var g=d.next,p=d.Sym.next;g.Sym.next=p,p.Sym.next=g},killVertex_:function(d,g){var p=d.anEdge,P=p;do P.Org=g,P=P.Onext;while(P!==p);var A=d.prev,R=d.next;R.prev=A,A.next=R},killFace_:function(d,g){var p=d.anEdge,P=p;do P.Lface=g,P=P.Lnext;while(P!==p);var A=d.prev,R=d.next;R.prev=A,A.next=R},makeEdge:function(){var d=new c,g=new c,p=new l,P=this.makeEdge_(this.eHead);return this.makeVertex_(d,P,this.vHead),this.makeVertex_(g,P.Sym,this.vHead),this.makeFace_(p,P,this.fHead),P},splice:function(d,g){var p=!1,P=!1;if(d!==g){if(g.Org!==d.Org&&(P=!0,this.killVertex_(g.Org,d.Org)),g.Lface!==d.Lface&&(p=!0,this.killFace_(g.Lface,d.Lface)),this.splice_(g,d),!P){var A=new c;this.makeVertex_(A,g,d.Org),d.Org.anEdge=d}if(!p){var R=new l;this.makeFace_(R,g,d.Lface),d.Lface.anEdge=d}}},delete:function(d){var g=d.Sym,p=!1;if(d.Lface!==d.Rface&&(p=!0,this.killFace_(d.Lface,d.Rface)),d.Onext===d)this.killVertex_(d.Org,null);else if(d.Rface.anEdge=d.Oprev,d.Org.anEdge=d.Onext,this.splice_(d,d.Oprev),!p){var P=new l;this.makeFace_(P,d,d.Lface)}g.Onext===g?(this.killVertex_(g.Org,null),this.killFace_(g.Lface,null)):(d.Lface.anEdge=g.Oprev,g.Org.anEdge=g.Onext,this.splice_(g,g.Oprev)),this.killEdge_(d)},addEdgeVertex:function(d){var g=this.makeEdge_(d),p=g.Sym;this.splice_(g,d.Lnext),g.Org=d.Dst;var P=new c;return this.makeVertex_(P,p,g.Org),g.Lface=p.Lface=d.Lface,g},splitEdge:function(d,g){var p=this.addEdgeVertex(d),P=p.Sym;return this.splice_(d.Sym,d.Sym.Oprev),this.splice_(d.Sym,P),d.Dst=P.Org,P.Dst.anEdge=P.Sym,P.Rface=d.Rface,P.winding=d.winding,P.Sym.winding=d.Sym.winding,P},connect:function(d,g){var p=!1,P=this.makeEdge_(d),A=P.Sym;if(g.Lface!==d.Lface&&(p=!0,this.killFace_(g.Lface,d.Lface)),this.splice_(P,d.Lnext),this.splice_(A,g),P.Org=d.Dst,A.Org=g.Org,P.Lface=A.Lface=d.Lface,d.Lface.anEdge=A,!p){var R=new l;this.makeFace_(R,P,d.Lface)}return P},zapFace:function(d){var g=d.anEdge,p,P,A,R,D;P=g.Lnext;do p=P,P=p.Lnext,p.Lface=null,p.Rface===null&&(p.Onext===p?this.killVertex_(p.Org,null):(p.Org.anEdge=p.Onext,this.splice_(p,p.Oprev)),A=p.Sym,A.Onext===A?this.killVertex_(A.Org,null):(A.Org.anEdge=A.Onext,this.splice_(A,A.Oprev)),this.killEdge_(p));while(p!=g);R=d.prev,D=d.next,D.prev=R,R.next=D},countFaceVerts_:function(d){var g=d.anEdge,p=0;do p++,g=g.Lnext;while(g!==d.anEdge);return p},mergeConvexFaces:function(d){var g,p,P,A,R,D,U;for(g=this.fHead.next;g!==this.fHead;g=g.next)if(g.inside)for(p=g.anEdge,R=p.Org;P=p.Lnext,A=p.Sym,A&&A.Lface&&A.Lface.inside&&(D=this.countFaceVerts_(g),U=this.countFaceVerts_(A.Lface),D+U-2<=d&&n.vertCCW(p.Lprev.Org,p.Org,A.Lnext.Lnext.Org)&&n.vertCCW(A.Lprev.Org,A.Org,p.Lnext.Lnext.Org)&&(P=A.Lnext,this.delete(A),p=null,A=null)),!(p&&p.Lnext.Org===R);)p=P;return!0},check:function(){var d=this.fHead,g=this.vHead,p=this.eHead,P,A,R,D,U,L;for(A=d,A=d;(P=A.next)!==d;A=P){s(P.prev===A),U=P.anEdge;do s(U.Sym!==U),s(U.Sym.Sym===U),s(U.Lnext.Onext.Sym===U),s(U.Onext.Sym.Lnext===U),s(U.Lface===P),U=U.Lnext;while(U!==P.anEdge)}for(s(P.prev===A&&P.anEdge===null),D=g,D=g;(R=D.next)!==g;D=R){s(R.prev===D),U=R.anEdge;do s(U.Sym!==U),s(U.Sym.Sym===U),s(U.Lnext.Onext.Sym===U),s(U.Onext.Sym.Lnext===U),s(U.Org===R),U=U.Onext;while(U!==R.anEdge)}for(s(R.prev===D&&R.anEdge===null),L=p,L=p;(U=L.next)!==p;L=U)s(U.Sym.next===L.Sym),s(U.Sym!==U),s(U.Sym.Sym===U),s(U.Org!==null),s(U.Dst!==null),s(U.Lnext.Onext.Sym===U),s(U.Onext.Sym.Lnext===U);s(U.Sym.next===L.Sym&&U.Sym===this.eHeadSym&&U.Sym.Sym===U&&U.Org===null&&U.Dst===null&&U.Lface===null&&U.Rface===null)}},n.vertEq=function(d,g){return d.s===g.s&&d.t===g.t},n.vertLeq=function(d,g){return d.s<g.s||d.s===g.s&&d.t<=g.t},n.transLeq=function(d,g){return d.t<g.t||d.t===g.t&&d.s<=g.s},n.edgeGoesLeft=function(d){return n.vertLeq(d.Dst,d.Org)},n.edgeGoesRight=function(d){return n.vertLeq(d.Org,d.Dst)},n.vertL1dist=function(d,g){return Math.abs(d.s-g.s)+Math.abs(d.t-g.t)},n.edgeEval=function(d,g,p){s(n.vertLeq(d,g)&&n.vertLeq(g,p));var P=g.s-d.s,A=p.s-g.s;return P+A>0?P<A?g.t-d.t+(d.t-p.t)*(P/(P+A)):g.t-p.t+(p.t-d.t)*(A/(P+A)):0},n.edgeSign=function(d,g,p){s(n.vertLeq(d,g)&&n.vertLeq(g,p));var P=g.s-d.s,A=p.s-g.s;return P+A>0?(g.t-p.t)*P+(g.t-d.t)*A:0},n.transEval=function(d,g,p){s(n.transLeq(d,g)&&n.transLeq(g,p));var P=g.t-d.t,A=p.t-g.t;return P+A>0?P<A?g.s-d.s+(d.s-p.s)*(P/(P+A)):g.s-p.s+(p.s-d.s)*(A/(P+A)):0},n.transSign=function(d,g,p){s(n.transLeq(d,g)&&n.transLeq(g,p));var P=g.t-d.t,A=p.t-g.t;return P+A>0?(g.s-p.s)*P+(g.s-d.s)*A:0},n.vertCCW=function(d,g,p){return d.s*(g.t-p.t)+g.s*(p.t-d.t)+p.s*(d.t-g.t)>=0},n.interpolate=function(d,g,p,P){return d=d<0?0:d,p=p<0?0:p,d<=p?p===0?(g+P)/2:g+(P-g)*(d/(d+p)):P+(g-P)*(p/(d+p))},n.intersect=function(d,g,p,P,A){var R,D,U;n.vertLeq(d,g)||(U=d,d=g,g=U),n.vertLeq(p,P)||(U=p,p=P,P=U),n.vertLeq(d,p)||(U=d,d=p,p=U,U=g,g=P,P=U),n.vertLeq(p,g)?n.vertLeq(g,P)?(R=n.edgeEval(d,p,g),D=n.edgeEval(p,g,P),R+D<0&&(R=-R,D=-D),A.s=n.interpolate(R,p.s,D,g.s)):(R=n.edgeSign(d,p,g),D=-n.edgeSign(d,P,g),R+D<0&&(R=-R,D=-D),A.s=n.interpolate(R,p.s,D,P.s)):A.s=(p.s+g.s)/2,n.transLeq(d,g)||(U=d,d=g,g=U),n.transLeq(p,P)||(U=p,p=P,P=U),n.transLeq(d,p)||(U=d,d=p,p=U,U=g,g=P,P=U),n.transLeq(p,g)?n.transLeq(g,P)?(R=n.transEval(d,p,g),D=n.transEval(p,g,P),R+D<0&&(R=-R,D=-D),A.t=n.interpolate(R,p.t,D,g.t)):(R=n.transSign(d,p,g),D=-n.transSign(d,P,g),R+D<0&&(R=-R,D=-D),A.t=n.interpolate(R,p.t,D,P.t)):A.t=(p.t+g.t)/2};function v(){this.key=null,this.next=null,this.prev=null}function h(d,g){this.head=new v,this.head.next=this.head,this.head.prev=this.head,this.frame=d,this.leq=g}h.prototype={min:function(){return this.head.next},max:function(){return this.head.prev},insert:function(d){return this.insertBefore(this.head,d)},search:function(d){var g=this.head;do g=g.next;while(g.key!==null&&!this.leq(this.frame,d,g.key));return g},insertBefore:function(d,g){do d=d.prev;while(d.key!==null&&!this.leq(this.frame,d.key,g));var p=new v;return p.key=g,p.next=d.next,d.next.prev=p,p.prev=d,d.next=p,p},delete:function(d){d.next.prev=d.prev,d.prev.next=d.next}};function y(){this.handle=null}function T(){this.key=null,this.node=null}function O(d,g){this.size=0,this.max=d,this.nodes=[],this.nodes.length=d+1;var p;for(p=0;p<this.nodes.length;p++)this.nodes[p]=new y;for(this.handles=[],this.handles.length=d+1,p=0;p<this.handles.length;p++)this.handles[p]=new T;this.initialized=!1,this.freeList=0,this.leq=g,this.nodes[1].handle=1,this.handles[1].key=null}O.prototype={floatDown_:function(d){var g=this.nodes,p=this.handles,P,A,R;for(P=g[d].handle;;){if(R=d<<1,R<this.size&&this.leq(p[g[R+1].handle].key,p[g[R].handle].key)&&++R,s(R<=this.max),A=g[R].handle,R>this.size||this.leq(p[P].key,p[A].key)){g[d].handle=P,p[P].node=d;break}g[d].handle=A,p[A].node=d,d=R}},floatUp_:function(d){var g=this.nodes,p=this.handles,P,A,R;for(P=g[d].handle;;){if(R=d>>1,A=g[R].handle,R===0||this.leq(p[A].key,p[P].key)){g[d].handle=P,p[P].node=d;break}g[d].handle=A,p[A].node=d,d=R}},init:function(){for(var d=this.size;d>=1;--d)this.floatDown_(d);this.initialized=!0},min:function(){return this.handles[this.nodes[1].handle].key},insert:function(d){var g,p;if(g=++this.size,g*2>this.max){this.max*=2;var P,A;for(A=this.nodes.length,this.nodes.length=this.max+1,P=A;P<this.nodes.length;P++)this.nodes[P]=new y;for(A=this.handles.length,this.handles.length=this.max+1,P=A;P<this.handles.length;P++)this.handles[P]=new T}return this.freeList===0?p=g:(p=this.freeList,this.freeList=this.handles[p].node),this.nodes[g].handle=p,this.handles[p].node=g,this.handles[p].key=d,this.initialized&&this.floatUp_(g),p},extractMin:function(){var d=this.nodes,g=this.handles,p=d[1].handle,P=g[p].key;return this.size>0&&(d[1].handle=d[this.size].handle,g[d[1].handle].node=1,g[p].key=null,g[p].node=this.freeList,this.freeList=p,--this.size,this.size>0&&this.floatDown_(1)),P},delete:function(d){var g=this.nodes,p=this.handles,P;s(d>=1&&d<=this.max&&p[d].key!==null),P=p[d].node,g[P].handle=g[this.size].handle,p[g[P].handle].node=P,--this.size,P<=this.size&&(P<=1||this.leq(p[g[P>>1].handle].key,p[g[P].handle].key)?this.floatDown_(P):this.floatUp_(P)),p[d].key=null,p[d].node=this.freeList,this.freeList=d}};function C(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}var S={};S.regionBelow=function(d){return d.nodeUp.prev.key},S.regionAbove=function(d){return d.nodeUp.next.key},S.debugEvent=function(d){},S.addWinding=function(d,g){d.winding+=g.winding,d.Sym.winding+=g.Sym.winding},S.edgeLeq=function(d,g,p){var P=d.event,D,U,A=g.eUp,R=p.eUp;if(A.Dst===P)return R.Dst===P?n.vertLeq(A.Org,R.Org)?n.edgeSign(R.Dst,A.Org,R.Org)<=0:n.edgeSign(A.Dst,R.Org,A.Org)>=0:n.edgeSign(R.Dst,P,R.Org)<=0;if(R.Dst===P)return n.edgeSign(A.Dst,P,A.Org)>=0;var D=n.edgeEval(A.Dst,P,A.Org),U=n.edgeEval(R.Dst,P,R.Org);return D>=U},S.deleteRegion=function(d,g){g.fixUpperEdge&&s(g.eUp.winding===0),g.eUp.activeRegion=null,d.dict.delete(g.nodeUp)},S.fixUpperEdge=function(d,g,p){s(g.fixUpperEdge),d.mesh.delete(g.eUp),g.fixUpperEdge=!1,g.eUp=p,p.activeRegion=g},S.topLeftRegion=function(d,g){var p=g.eUp.Org,P;do g=S.regionAbove(g);while(g.eUp.Org===p);if(g.fixUpperEdge){if(P=d.mesh.connect(S.regionBelow(g).eUp.Sym,g.eUp.Lnext),P===null)return null;S.fixUpperEdge(d,g,P),g=S.regionAbove(g)}return g},S.topRightRegion=function(d){var g=d.eUp.Dst;do d=S.regionAbove(d);while(d.eUp.Dst===g);return d},S.addRegionBelow=function(d,g,p){var P=new C;return P.eUp=p,P.nodeUp=d.dict.insertBefore(g.nodeUp,P),P.fixUpperEdge=!1,P.sentinel=!1,P.dirty=!1,p.activeRegion=P,P},S.isWindingInside=function(d,g){switch(d.windingRule){case r.WINDING_ODD:return(g&1)!==0;case r.WINDING_NONZERO:return g!==0;case r.WINDING_POSITIVE:return g>0;case r.WINDING_NEGATIVE:return g<0;case r.WINDING_ABS_GEQ_TWO:return g>=2||g<=-2}return s(!1),!1},S.computeWinding=function(d,g){g.windingNumber=S.regionAbove(g).windingNumber+g.eUp.winding,g.inside=S.isWindingInside(d,g.windingNumber)},S.finishRegion=function(d,g){var p=g.eUp,P=p.Lface;P.inside=g.inside,P.anEdge=p,S.deleteRegion(d,g)},S.finishLeftRegions=function(d,g,p){for(var P,D,A=null,R=g,D=g.eUp;R!==p;){if(R.fixUpperEdge=!1,A=S.regionBelow(R),P=A.eUp,P.Org!=D.Org){if(!A.fixUpperEdge){S.finishRegion(d,R);break}P=d.mesh.connect(D.Lprev,P.Sym),S.fixUpperEdge(d,A,P)}D.Onext!==P&&(d.mesh.splice(P.Oprev,P),d.mesh.splice(D,P)),S.finishRegion(d,R),D=A.eUp,R=A}return D},S.addRightEdges=function(d,g,p,P,A,R){var D,U,L,W,Y=!0;L=p;do s(n.vertLeq(L.Org,L.Dst)),S.addRegionBelow(d,g,L.Sym),L=L.Onext;while(L!==P);for(A===null&&(A=S.regionBelow(g).eUp.Rprev),U=g,W=A;D=S.regionBelow(U),L=D.eUp.Sym,L.Org===W.Org;)L.Onext!==W&&(d.mesh.splice(L.Oprev,L),d.mesh.splice(W.Oprev,L)),D.windingNumber=U.windingNumber-L.winding,D.inside=S.isWindingInside(d,D.windingNumber),U.dirty=!0,!Y&&S.checkForRightSplice(d,U)&&(S.addWinding(L,W),S.deleteRegion(d,U),d.mesh.delete(W)),Y=!1,U=D,W=L;U.dirty=!0,s(U.windingNumber-L.winding===D.windingNumber),R&&S.walkDirtyRegions(d,U)},S.spliceMergeVertices=function(d,g,p){d.mesh.splice(g,p)},S.vertexWeights=function(d,g,p){var P=n.vertL1dist(g,d),A=n.vertL1dist(p,d),R=.5*A/(P+A),D=.5*P/(P+A);d.coords[0]+=R*g.coords[0]+D*p.coords[0],d.coords[1]+=R*g.coords[1]+D*p.coords[1],d.coords[2]+=R*g.coords[2]+D*p.coords[2]},S.getIntersectData=function(d,g,p,P,A,R){g.coords[0]=g.coords[1]=g.coords[2]=0,g.idx=-1,S.vertexWeights(g,p,P),S.vertexWeights(g,A,R)},S.checkForRightSplice=function(d,g){var p=S.regionBelow(g),P=g.eUp,A=p.eUp;if(n.vertLeq(P.Org,A.Org)){if(n.edgeSign(A.Dst,P.Org,A.Org)>0)return!1;n.vertEq(P.Org,A.Org)?P.Org!==A.Org&&(d.pq.delete(P.Org.pqHandle),S.spliceMergeVertices(d,A.Oprev,P)):(d.mesh.splitEdge(A.Sym),d.mesh.splice(P,A.Oprev),g.dirty=p.dirty=!0)}else{if(n.edgeSign(P.Dst,A.Org,P.Org)<0)return!1;S.regionAbove(g).dirty=g.dirty=!0,d.mesh.splitEdge(P.Sym),d.mesh.splice(A.Oprev,P)}return!0},S.checkForLeftSplice=function(d,g){var p=S.regionBelow(g),P=g.eUp,A=p.eUp,R;if(s(!n.vertEq(P.Dst,A.Dst)),n.vertLeq(P.Dst,A.Dst)){if(n.edgeSign(P.Dst,A.Dst,P.Org)<0)return!1;S.regionAbove(g).dirty=g.dirty=!0,R=d.mesh.splitEdge(P),d.mesh.splice(A.Sym,R),R.Lface.inside=g.inside}else{if(n.edgeSign(A.Dst,P.Dst,A.Org)>0)return!1;g.dirty=p.dirty=!0,R=d.mesh.splitEdge(A),d.mesh.splice(P.Lnext,A.Sym),R.Rface.inside=g.inside}return!0},S.checkForIntersect=function(d,g){var p=S.regionBelow(g),P=g.eUp,A=p.eUp,R=P.Org,D=A.Org,U=P.Dst,L=A.Dst,W,Y,B=new c,N,$;if(s(!n.vertEq(L,U)),s(n.edgeSign(U,d.event,R)<=0),s(n.edgeSign(L,d.event,D)>=0),s(R!==d.event&&D!==d.event),s(!g.fixUpperEdge&&!p.fixUpperEdge),R===D||(W=Math.min(R.t,U.t),Y=Math.max(D.t,L.t),W>Y))return!1;if(n.vertLeq(R,D)){if(n.edgeSign(L,R,D)>0)return!1}else if(n.edgeSign(U,D,R)<0)return!1;return S.debugEvent(d),n.intersect(U,R,L,D,B),s(Math.min(R.t,U.t)<=B.t),s(B.t<=Math.max(D.t,L.t)),s(Math.min(L.s,U.s)<=B.s),s(B.s<=Math.max(D.s,R.s)),n.vertLeq(B,d.event)&&(B.s=d.event.s,B.t=d.event.t),N=n.vertLeq(R,D)?R:D,n.vertLeq(N,B)&&(B.s=N.s,B.t=N.t),n.vertEq(B,R)||n.vertEq(B,D)?(S.checkForRightSplice(d,g),!1):!n.vertEq(U,d.event)&&n.edgeSign(U,d.event,B)>=0||!n.vertEq(L,d.event)&&n.edgeSign(L,d.event,B)<=0?L===d.event?(d.mesh.splitEdge(P.Sym),d.mesh.splice(A.Sym,P),g=S.topLeftRegion(d,g),P=S.regionBelow(g).eUp,S.finishLeftRegions(d,S.regionBelow(g),p),S.addRightEdges(d,g,P.Oprev,P,P,!0),!0):U===d.event?(d.mesh.splitEdge(A.Sym),d.mesh.splice(P.Lnext,A.Oprev),p=g,g=S.topRightRegion(g),$=S.regionBelow(g).eUp.Rprev,p.eUp=A.Oprev,A=S.finishLeftRegions(d,p,null),S.addRightEdges(d,g,A.Onext,P.Rprev,$,!0),!0):(n.edgeSign(U,d.event,B)>=0&&(S.regionAbove(g).dirty=g.dirty=!0,d.mesh.splitEdge(P.Sym),P.Org.s=d.event.s,P.Org.t=d.event.t),n.edgeSign(L,d.event,B)<=0&&(g.dirty=p.dirty=!0,d.mesh.splitEdge(A.Sym),A.Org.s=d.event.s,A.Org.t=d.event.t),!1):(d.mesh.splitEdge(P.Sym),d.mesh.splitEdge(A.Sym),d.mesh.splice(A.Oprev,P),P.Org.s=B.s,P.Org.t=B.t,P.Org.pqHandle=d.pq.insert(P.Org),S.getIntersectData(d,P.Org,R,U,D,L),S.regionAbove(g).dirty=g.dirty=p.dirty=!0,!1)},S.walkDirtyRegions=function(d,g){for(var p=S.regionBelow(g),P,A;;){for(;p.dirty;)g=p,p=S.regionBelow(p);if(!g.dirty&&(p=g,g=S.regionAbove(g),g===null||!g.dirty))return;if(g.dirty=!1,P=g.eUp,A=p.eUp,P.Dst!==A.Dst&&S.checkForLeftSplice(d,g)&&(p.fixUpperEdge?(S.deleteRegion(d,p),d.mesh.delete(A),p=S.regionBelow(g),A=p.eUp):g.fixUpperEdge&&(S.deleteRegion(d,g),d.mesh.delete(P),g=S.regionAbove(p),P=g.eUp)),P.Org!==A.Org)if(P.Dst!==A.Dst&&!g.fixUpperEdge&&!p.fixUpperEdge&&(P.Dst===d.event||A.Dst===d.event)){if(S.checkForIntersect(d,g))return}else S.checkForRightSplice(d,g);P.Org===A.Org&&P.Dst===A.Dst&&(S.addWinding(A,P),S.deleteRegion(d,g),d.mesh.delete(P),g=S.regionAbove(p))}},S.connectRightVertex=function(d,g,p){var P,A=p.Onext,R=S.regionBelow(g),D=g.eUp,U=R.eUp,L=!1;if(D.Dst!==U.Dst&&S.checkForIntersect(d,g),n.vertEq(D.Org,d.event)&&(d.mesh.splice(A.Oprev,D),g=S.topLeftRegion(d,g),A=S.regionBelow(g).eUp,S.finishLeftRegions(d,S.regionBelow(g),R),L=!0),n.vertEq(U.Org,d.event)&&(d.mesh.splice(p,U.Oprev),p=S.finishLeftRegions(d,R,null),L=!0),L){S.addRightEdges(d,g,p.Onext,A,A,!0);return}n.vertLeq(U.Org,D.Org)?P=U.Oprev:P=D,P=d.mesh.connect(p.Lprev,P),S.addRightEdges(d,g,P,P.Onext,P.Onext,!1),P.Sym.activeRegion.fixUpperEdge=!0,S.walkDirtyRegions(d,g)},S.connectLeftDegenerate=function(d,g,p){var P,A,R,D,U;if(P=g.eUp,n.vertEq(P.Org,p)){s(!1),S.spliceMergeVertices(d,P,p.anEdge);return}if(!n.vertEq(P.Dst,p)){d.mesh.splitEdge(P.Sym),g.fixUpperEdge&&(d.mesh.delete(P.Onext),g.fixUpperEdge=!1),d.mesh.splice(p.anEdge,P),S.sweepEvent(d,p);return}s(!1),g=S.topRightRegion(g),U=S.regionBelow(g),R=U.eUp.Sym,A=D=R.Onext,U.fixUpperEdge&&(s(A!==R),S.deleteRegion(d,U),d.mesh.delete(R),R=A.Oprev),d.mesh.splice(p.anEdge,R),n.edgeGoesLeft(A)||(A=null),S.addRightEdges(d,g,R.Onext,D,A,!0)},S.connectLeftVertex=function(d,g){var p,P,A,R,D,U,L=new C;if(L.eUp=g.anEdge.Sym,p=d.dict.search(L).key,P=S.regionBelow(p),!!P){if(R=p.eUp,D=P.eUp,n.edgeSign(R.Dst,g,R.Org)===0){S.connectLeftDegenerate(d,p,g);return}if(A=n.vertLeq(D.Dst,R.Dst)?p:P,p.inside||A.fixUpperEdge){if(A===p)U=d.mesh.connect(g.anEdge.Sym,R.Lnext);else{var W=d.mesh.connect(D.Dnext,g.anEdge);U=W.Sym}A.fixUpperEdge?S.fixUpperEdge(d,A,U):S.computeWinding(d,S.addRegionBelow(d,p,U)),S.sweepEvent(d,g)}else S.addRightEdges(d,p,g.anEdge,g.anEdge,null,!0)}},S.sweepEvent=function(d,g){d.event=g,S.debugEvent(d);for(var p=g.anEdge;p.activeRegion===null;)if(p=p.Onext,p===g.anEdge){S.connectLeftVertex(d,g);return}var P=S.topLeftRegion(d,p.activeRegion);s(P!==null);var A=S.regionBelow(P),R=A.eUp,D=S.finishLeftRegions(d,A,null);D.Onext===R?S.connectRightVertex(d,P,D):S.addRightEdges(d,P,D.Onext,R,R,!0)},S.addSentinel=function(d,g,p,P){var A=new C,R=d.mesh.makeEdge();R.Org.s=p,R.Org.t=P,R.Dst.s=g,R.Dst.t=P,d.event=R.Dst,A.eUp=R,A.windingNumber=0,A.inside=!1,A.fixUpperEdge=!1,A.sentinel=!0,A.dirty=!1,A.nodeUp=d.dict.insert(A)},S.initEdgeDict=function(d){d.dict=new h(d,S.edgeLeq);var g=d.bmax[0]-d.bmin[0],p=d.bmax[1]-d.bmin[1],P=d.bmin[0]-g,A=d.bmax[0]+g,R=d.bmin[1]-p,D=d.bmax[1]+p;S.addSentinel(d,P,A,R),S.addSentinel(d,P,A,D)},S.doneEdgeDict=function(d){for(var g,p=0;(g=d.dict.min().key)!==null;)g.sentinel||(s(g.fixUpperEdge),s(++p===1)),s(g.windingNumber===0),S.deleteRegion(d,g)},S.removeDegenerateEdges=function(d){var g,p,P,A=d.mesh.eHead;for(g=A.next;g!==A;g=p)p=g.next,P=g.Lnext,n.vertEq(g.Org,g.Dst)&&g.Lnext.Lnext!==g&&(S.spliceMergeVertices(d,P,g),d.mesh.delete(g),g=P,P=g.Lnext),P.Lnext===g&&(P!==g&&((P===p||P===p.Sym)&&(p=p.next),d.mesh.delete(P)),(g===p||g===p.Sym)&&(p=p.next),d.mesh.delete(g))},S.initPriorityQ=function(d){var g,p,P,A=0;for(P=d.mesh.vHead,p=P.next;p!==P;p=p.next)A++;for(A+=8,g=d.pq=new O(A,n.vertLeq),P=d.mesh.vHead,p=P.next;p!==P;p=p.next)p.pqHandle=g.insert(p);return p!==P?!1:(g.init(),!0)},S.donePriorityQ=function(d){d.pq=null},S.removeDegenerateFaces=function(d,g){var p,P,A;for(p=g.fHead.next;p!==g.fHead;p=P)P=p.next,A=p.anEdge,s(A.Lnext!==A),A.Lnext.Lnext===A&&(S.addWinding(A.Onext,A),d.mesh.delete(A));return!0},S.computeInterior=function(d){var g,p;if(S.removeDegenerateEdges(d),!S.initPriorityQ(d))return!1;for(S.initEdgeDict(d);(g=d.pq.extractMin())!==null;){for(;p=d.pq.min(),!(p===null||!n.vertEq(p,g));)p=d.pq.extractMin(),S.spliceMergeVertices(d,g.anEdge,p.anEdge);S.sweepEvent(d,g)}return d.event=d.dict.min().key.eUp.Org,S.debugEvent(d),S.doneEdgeDict(d),S.donePriorityQ(d),S.removeDegenerateFaces(d,d.mesh)?(d.mesh.check(),!0):!1};function w(){this.mesh=null,this.normal=[0,0,0],this.sUnit=[0,0,0],this.tUnit=[0,0,0],this.bmin=[0,0],this.bmax=[0,0],this.windingRule=r.WINDING_ODD,this.dict=null,this.pq=null,this.event=null,this.vertexIndexCounter=0,this.vertices=[],this.vertexIndices=[],this.vertexCount=0,this.elements=[],this.elementCount=0}w.prototype={dot_:function(d,g){return d[0]*g[0]+d[1]*g[1]+d[2]*g[2]},normalize_:function(d){var g=d[0]*d[0]+d[1]*d[1]+d[2]*d[2];s(g>0),g=Math.sqrt(g),d[0]/=g,d[1]/=g,d[2]/=g},longAxis_:function(d){var g=0;return Math.abs(d[1])>Math.abs(d[0])&&(g=1),Math.abs(d[2])>Math.abs(d[g])&&(g=2),g},computeNormal_:function(d){var g,p,P,A,R,D,U=[0,0,0],L=[0,0,0],W=[0,0,0],Y=[0,0,0],B=[0,0,0],N=[null,null,null],$=[null,null,null],J=this.mesh.vHead,et;for(g=J.next,et=0;et<3;++et)A=g.coords[et],L[et]=A,$[et]=g,U[et]=A,N[et]=g;for(g=J.next;g!==J;g=g.next)for(et=0;et<3;++et)A=g.coords[et],A<L[et]&&(L[et]=A,$[et]=g),A>U[et]&&(U[et]=A,N[et]=g);if(et=0,U[1]-L[1]>U[0]-L[0]&&(et=1),U[2]-L[2]>U[et]-L[et]&&(et=2),L[et]>=U[et]){d[0]=0,d[1]=0,d[2]=1;return}for(D=0,p=$[et],P=N[et],W[0]=p.coords[0]-P.coords[0],W[1]=p.coords[1]-P.coords[1],W[2]=p.coords[2]-P.coords[2],g=J.next;g!==J;g=g.next)Y[0]=g.coords[0]-P.coords[0],Y[1]=g.coords[1]-P.coords[1],Y[2]=g.coords[2]-P.coords[2],B[0]=W[1]*Y[2]-W[2]*Y[1],B[1]=W[2]*Y[0]-W[0]*Y[2],B[2]=W[0]*Y[1]-W[1]*Y[0],R=B[0]*B[0]+B[1]*B[1]+B[2]*B[2],R>D&&(D=R,d[0]=B[0],d[1]=B[1],d[2]=B[2]);D<=0&&(d[0]=d[1]=d[2]=0,d[this.longAxis_(W)]=1)},checkOrientation_:function(){var d,g,p=this.mesh.fHead,P,A=this.mesh.vHead,R;for(d=0,g=p.next;g!==p;g=g.next)if(R=g.anEdge,!(R.winding<=0))do d+=(R.Org.s-R.Dst.s)*(R.Org.t+R.Dst.t),R=R.Lnext;while(R!==g.anEdge);if(d<0){for(P=A.next;P!==A;P=P.next)P.t=-P.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},projectPolygon_:function(){var d,g=this.mesh.vHead,p=[0,0,0],P,A,R,D,U=!1;for(p[0]=this.normal[0],p[1]=this.normal[1],p[2]=this.normal[2],p[0]===0&&p[1]===0&&p[2]===0&&(this.computeNormal_(p),U=!0),P=this.sUnit,A=this.tUnit,R=this.longAxis_(p),P[R]=0,P[(R+1)%3]=1,P[(R+2)%3]=0,A[R]=0,A[(R+1)%3]=0,A[(R+2)%3]=p[R]>0?1:-1,d=g.next;d!==g;d=d.next)d.s=this.dot_(d.coords,P),d.t=this.dot_(d.coords,A);for(U&&this.checkOrientation_(),D=!0,d=g.next;d!==g;d=d.next)D?(this.bmin[0]=this.bmax[0]=d.s,this.bmin[1]=this.bmax[1]=d.t,D=!1):(d.s<this.bmin[0]&&(this.bmin[0]=d.s),d.s>this.bmax[0]&&(this.bmax[0]=d.s),d.t<this.bmin[1]&&(this.bmin[1]=d.t),d.t>this.bmax[1]&&(this.bmax[1]=d.t))},addWinding_:function(d,g){d.winding+=g.winding,d.Sym.winding+=g.Sym.winding},tessellateMonoRegion_:function(d,g){var p,P;for(p=g.anEdge,s(p.Lnext!==p&&p.Lnext.Lnext!==p);n.vertLeq(p.Dst,p.Org);p=p.Lprev);for(;n.vertLeq(p.Org,p.Dst);p=p.Lnext);for(P=p.Lprev;p.Lnext!==P;)if(n.vertLeq(p.Dst,P.Org)){for(;P.Lnext!==p&&(n.edgeGoesLeft(P.Lnext)||n.edgeSign(P.Org,P.Dst,P.Lnext.Dst)<=0);){var A=d.connect(P.Lnext,P);P=A.Sym}P=P.Lprev}else{for(;P.Lnext!==p&&(n.edgeGoesRight(p.Lprev)||n.edgeSign(p.Dst,p.Org,p.Lprev.Org)>=0);){var A=d.connect(p,p.Lprev);p=A.Sym}p=p.Lnext}for(s(P.Lnext!==p);P.Lnext.Lnext!==p;){var A=d.connect(P.Lnext,P);P=A.Sym}return!0},tessellateInterior_:function(d){var g,p;for(g=d.fHead.next;g!==d.fHead;g=p)if(p=g.next,g.inside&&!this.tessellateMonoRegion_(d,g))return!1;return!0},discardExterior_:function(d){var g,p;for(g=d.fHead.next;g!==d.fHead;g=p)p=g.next,g.inside||d.zapFace(g)},setWindingNumber_:function(d,g,p){var P,A;for(P=d.eHead.next;P!==d.eHead;P=A)A=P.next,P.Rface.inside!==P.Lface.inside?P.winding=P.Lface.inside?g:-g:p?d.delete(P):P.winding=0},getNeighbourFace_:function(d){return!d.Rface||!d.Rface.inside?-1:d.Rface.n},outputPolymesh_:function(d,g,p,P){var A,R,D,U=0,L=0,W,Y;for(p>3&&d.mergeConvexFaces(p),A=d.vHead.next;A!==d.vHead;A=A.next)A.n=-1;for(R=d.fHead.next;R!==d.fHead;R=R.next)if(R.n=-1,!!R.inside){D=R.anEdge,W=0;do A=D.Org,A.n===-1&&(A.n=L,L++),W++,D=D.Lnext;while(D!==R.anEdge);s(W<=p),R.n=U,++U}for(this.elementCount=U,g===r.CONNECTED_POLYGONS&&(U*=2),this.elements=[],this.elements.length=U*p,this.vertexCount=L,this.vertices=[],this.vertices.length=L*P,this.vertexIndices=[],this.vertexIndices.length=L,A=d.vHead.next;A!==d.vHead;A=A.next)if(A.n!==-1){var B=A.n*P;this.vertices[B+0]=A.coords[0],this.vertices[B+1]=A.coords[1],P>2&&(this.vertices[B+2]=A.coords[2]),this.vertexIndices[A.n]=A.idx}var N=0;for(R=d.fHead.next;R!==d.fHead;R=R.next)if(R.inside){D=R.anEdge,W=0;do A=D.Org,this.elements[N++]=A.n,W++,D=D.Lnext;while(D!==R.anEdge);for(Y=W;Y<p;++Y)this.elements[N++]=-1;if(g===r.CONNECTED_POLYGONS){D=R.anEdge;do this.elements[N++]=this.getNeighbourFace_(D),D=D.Lnext;while(D!==R.anEdge);for(Y=W;Y<p;++Y)this.elements[N++]=-1}}},outputContours_:function(d,g){var p,P,A,R=0,D=0;for(this.vertexCount=0,this.elementCount=0,p=d.fHead.next;p!==d.fHead;p=p.next)if(p.inside){A=P=p.anEdge;do this.vertexCount++,P=P.Lnext;while(P!==A);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*g,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var U=0,L=0,W=0;for(R=0,p=d.fHead.next;p!==d.fHead;p=p.next)if(p.inside){D=0,A=P=p.anEdge;do this.vertices[U++]=P.Org.coords[0],this.vertices[U++]=P.Org.coords[1],g>2&&(this.vertices[U++]=P.Org.coords[2]),this.vertexIndices[L++]=P.Org.idx,D++,P=P.Lnext;while(P!==A);this.elements[W++]=R,this.elements[W++]=D,R+=D}},addContour:function(d,g){var p,P;for(this.mesh===null&&(this.mesh=new u),d<2&&(d=2),d>3&&(d=3),p=null,P=0;P<g.length;P+=d)p===null?(p=this.mesh.makeEdge(),this.mesh.splice(p,p.Sym)):(this.mesh.splitEdge(p),p=p.Lnext),p.Org.coords[0]=g[P+0],p.Org.coords[1]=g[P+1],d>2?p.Org.coords[2]=g[P+2]:p.Org.coords[2]=0,p.Org.idx=this.vertexIndexCounter++,p.winding=1,p.Sym.winding=-1},tesselate:function(d,g,p,P,A){if(this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,A&&(this.normal[0]=A[0],this.normal[1]=A[1],this.normal[2]=A[2]),this.windingRule=d,P<2&&(P=2),P>3&&(P=3),!this.mesh)return!1;this.projectPolygon_(),S.computeInterior(this);var R=this.mesh;return g===r.BOUNDARY_CONTOURS?this.setWindingNumber_(R,1,!0):this.tessellateInterior_(R),R.check(),g===r.BOUNDARY_CONTOURS?this.outputContours_(R,P):this.outputPolymesh_(R,g,p,P),!0}}},function(i,e){i.exports=r;var t=Object.prototype.hasOwnProperty;function r(){for(var n={},s=0;s<arguments.length;s++){var c=arguments[s];for(var l in c)t.call(c,l)&&(n[l]=c[l])}return n}},function(i,e,t){t.r(e),t.d(e,"createShaders",function(){return f}),t.d(e,"applyShader",function(){return u}),t.d(e,"createCloudShaders",function(){return h}),t.d(e,"applyCloudShader",function(){return y});var r=t(64),n=t(65),s=t(66),c=t(67);t(1).glMatrix.setMatrixArrayType(Array);const l=Symbol("shaders");function f(T){T[l]=[];for(let O=0;O<16;O++){const C=[],S=!!(O&1),w=!!(O&2),d=!!(O&4),g=!!(O&8);S&&C.push("#define TEXTURE 1"),w&&C.push("#define FILTER 1"),d&&C.push("#define GRADIENT 1"),g&&C.push("#define CLIPPATH 1");const p=`${C.join(`
|
|
39
|
+
`)}
|
|
40
|
+
`,P=[];S&&P.push("uniform sampler2D u_texSampler;"),g&&P.push("uniform sampler2D u_clipSampler;"),T[l][O]=[p+P.join(`
|
|
41
|
+
`)+n.default,p+r.default]}}function u(T,{hasTexture:O=!1,hasFilter:C=!1,hasGradient:S=!1,hasClipPath:w=!1}={}){const d=O|C<<1|S<<2|w<<3;let g=T[l][d];Array.isArray(g)&&(g=T.createProgram(...g),T[l][d]=g),T.program!==g&&T.useProgram(g,{a_color:{type:"UNSIGNED_BYTE",normalize:!0}})}const v=[];function h(T){for(let O=0;O<64;O++){const C=[],S=!!(O&1),w=!!(O&2),d=!!(O&4),g=!!(O&8),p=!!(O&16),P=!!(O&32);S&&C.push("#define TEXTURE 1"),w&&C.push("#define FILTER 1"),d&&C.push("#define GRADIENT 1"),g&&C.push("#define CLOUDCOLOR 1"),p&&C.push("#define CLOUDFILTER 1"),P&&C.push("#define CLIPPATH 1");const A=`${C.join(`
|
|
42
|
+
`)}
|
|
43
|
+
`,R=[];if(S){R.push("uniform sampler2D u_texSampler;");for(let D=0;D<12;D++)R.push(`uniform sampler2D u_texFrame${D};`)}P&&R.push("uniform sampler2D u_clipSampler;"),v[O]=[A+R.join(`
|
|
44
|
+
`)+c.default,A+s.default]}}function y(T,{hasTexture:O=!1,hasFilter:C=!1,hasGradient:S=!1,hasCloudColor:w=!1,hasCloudFilter:d=!1,hasClipPath:g=!1}={}){const p=O|C<<1|S<<2|w<<3|d<<4|g<<5;let P=v[p];Array.isArray(P)&&(P=T.createProgram(...P),v[p]=P),T.program!==P&&T.useProgram(P,{a_color:{type:"UNSIGNED_BYTE",normalize:!0},a_fillCloudColor:{type:"UNSIGNED_BYTE",normalize:!0},a_strokeCloudColor:{type:"UNSIGNED_BYTE",normalize:!0},a_frameIndex:{type:"UNSIGNED_BYTE",normalize:!1}})}},function(i,e,t){t.r(e),e.default=`attribute vec3 a_vertexPosition;
|
|
45
|
+
attribute vec4 a_color;
|
|
46
|
+
varying vec4 vColor;
|
|
47
|
+
varying float flagBackground;
|
|
48
|
+
uniform vec2 u_resolution;
|
|
49
|
+
uniform mat3 viewMatrix;
|
|
50
|
+
uniform mat3 projectionMatrix;
|
|
51
|
+
|
|
52
|
+
#ifdef TEXTURE
|
|
53
|
+
attribute vec3 a_vertexTextureCoord;
|
|
54
|
+
varying vec3 vTextureCoord;
|
|
55
|
+
attribute vec4 a_sourceRect;
|
|
56
|
+
varying vec4 vSourceRect;
|
|
57
|
+
#endif
|
|
58
|
+
|
|
59
|
+
#ifdef CLIPPATH
|
|
60
|
+
attribute vec2 a_clipUV;
|
|
61
|
+
varying vec2 vClipUV;
|
|
62
|
+
#endif
|
|
63
|
+
|
|
64
|
+
#ifdef GRADIENT
|
|
65
|
+
uniform float u_radialGradientVector[6];
|
|
66
|
+
varying vec3 vGradientVector1;
|
|
67
|
+
varying vec3 vGradientVector2;
|
|
68
|
+
#endif
|
|
69
|
+
|
|
70
|
+
void main() {
|
|
71
|
+
gl_PointSize = 1.0;
|
|
72
|
+
|
|
73
|
+
vec3 pos = projectionMatrix * viewMatrix * vec3(a_vertexPosition.xy, 1.0);
|
|
74
|
+
gl_Position = vec4(pos.xy, 1.0, 1.0);
|
|
75
|
+
|
|
76
|
+
#ifdef GRADIENT
|
|
77
|
+
vec3 vg1 = viewMatrix * vec3(u_radialGradientVector[0], u_radialGradientVector[1], 1.0);
|
|
78
|
+
vec3 vg2 = viewMatrix * vec3(u_radialGradientVector[3], u_radialGradientVector[4], 1.0);
|
|
79
|
+
float h = u_resolution.y;
|
|
80
|
+
vg1.y = h - vg1.y;
|
|
81
|
+
vg2.y = h - vg2.y;
|
|
82
|
+
vGradientVector1 = vec3(vg1.xy, u_radialGradientVector[2]);
|
|
83
|
+
vGradientVector2 = vec3(vg2.xy, u_radialGradientVector[5]);
|
|
84
|
+
#endif
|
|
85
|
+
|
|
86
|
+
flagBackground = a_vertexPosition.z;
|
|
87
|
+
vColor = a_color;
|
|
88
|
+
|
|
89
|
+
#ifdef TEXTURE
|
|
90
|
+
vTextureCoord = a_vertexTextureCoord;
|
|
91
|
+
vSourceRect = a_sourceRect;
|
|
92
|
+
#endif
|
|
93
|
+
|
|
94
|
+
#ifdef CLIPPATH
|
|
95
|
+
vClipUV = a_clipUV;
|
|
96
|
+
#endif
|
|
97
|
+
}`},function(i,e,t){t.r(e),e.default=`precision mediump float;
|
|
98
|
+
|
|
99
|
+
varying vec4 vColor;
|
|
100
|
+
varying float flagBackground;
|
|
101
|
+
|
|
102
|
+
#ifdef TEXTURE
|
|
103
|
+
varying vec3 vTextureCoord;
|
|
104
|
+
varying vec4 vSourceRect;
|
|
105
|
+
#endif
|
|
106
|
+
|
|
107
|
+
#ifdef CLIPPATH
|
|
108
|
+
varying vec2 vClipUV;
|
|
109
|
+
#endif
|
|
110
|
+
|
|
111
|
+
#ifdef FILTER
|
|
112
|
+
uniform int u_filterFlag;
|
|
113
|
+
uniform float u_colorMatrix[20];
|
|
114
|
+
#endif
|
|
115
|
+
|
|
116
|
+
#ifdef GRADIENT
|
|
117
|
+
varying vec3 vGradientVector1;
|
|
118
|
+
varying vec3 vGradientVector2;
|
|
119
|
+
uniform float u_colorSteps[40];
|
|
120
|
+
uniform int u_gradientType;
|
|
121
|
+
// uniform float u_radialGradientVector[6];
|
|
122
|
+
|
|
123
|
+
void gradient(inout vec4 color, vec3 gv1, vec3 gv2, float colorSteps[40]) {
|
|
124
|
+
float t;
|
|
125
|
+
// center circle radius
|
|
126
|
+
float cr = gv1.z;
|
|
127
|
+
// focal circle radius
|
|
128
|
+
float fr = gv2.z;
|
|
129
|
+
|
|
130
|
+
if(cr > 0.0 || fr > 0.0) {
|
|
131
|
+
// radial gradient
|
|
132
|
+
vec2 center = gv1.xy;
|
|
133
|
+
vec2 focal = gv2.xy;
|
|
134
|
+
float x = focal.x - gl_FragCoord.x;
|
|
135
|
+
float y = focal.y - gl_FragCoord.y;
|
|
136
|
+
float dx = focal.x - center.x;
|
|
137
|
+
float dy = focal.y - center.y;
|
|
138
|
+
float dr = cr - fr;
|
|
139
|
+
float a = dx * dx + dy * dy - dr * dr;
|
|
140
|
+
float b = -2.0 * (y * dy + x * dx + fr * dr);
|
|
141
|
+
float c = x * x + y * y - fr * fr;
|
|
142
|
+
t = 1.0 - 0.5 * (1.0 / a) * (-b + sqrt(b * b - 4.0 * a * c));
|
|
143
|
+
} else {
|
|
144
|
+
// linear gradient
|
|
145
|
+
vec2 v1 = gl_FragCoord.xy - gv1.xy;
|
|
146
|
+
vec2 v2 = gv2.xy - gv1.xy;
|
|
147
|
+
t = (v1.x * v2.x + v1.y * v2.y) / (v2.x * v2.x + v2.y * v2.y);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
vec4 colors[8];
|
|
151
|
+
colors[0] = vec4(colorSteps[1], colorSteps[2], colorSteps[3], colorSteps[4]);
|
|
152
|
+
colors[1] = vec4(colorSteps[6], colorSteps[7], colorSteps[8], colorSteps[9]);
|
|
153
|
+
colors[2] = vec4(colorSteps[11], colorSteps[12], colorSteps[13], colorSteps[14]);
|
|
154
|
+
colors[3] = vec4(colorSteps[16], colorSteps[17], colorSteps[18], colorSteps[19]);
|
|
155
|
+
colors[4] = vec4(colorSteps[21], colorSteps[22], colorSteps[23], colorSteps[24]);
|
|
156
|
+
colors[5] = vec4(colorSteps[26], colorSteps[27], colorSteps[28], colorSteps[29]);
|
|
157
|
+
colors[6] = vec4(colorSteps[31], colorSteps[32], colorSteps[33], colorSteps[34]);
|
|
158
|
+
colors[7] = vec4(colorSteps[36], colorSteps[37], colorSteps[38], colorSteps[39]);
|
|
159
|
+
|
|
160
|
+
float steps[8];
|
|
161
|
+
steps[0] = colorSteps[0];
|
|
162
|
+
steps[1] = colorSteps[5];
|
|
163
|
+
steps[2] = colorSteps[10];
|
|
164
|
+
steps[3] = colorSteps[15];
|
|
165
|
+
steps[4] = colorSteps[20];
|
|
166
|
+
steps[5] = colorSteps[25];
|
|
167
|
+
steps[6] = colorSteps[30];
|
|
168
|
+
steps[7] = colorSteps[35];
|
|
169
|
+
|
|
170
|
+
color = colors[0];
|
|
171
|
+
for (int i = 1; i < 8; i++) {
|
|
172
|
+
if (steps[i] < 0.0 || steps[i] > 1.0) {
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
if(steps[i] == steps[i - 1]) {
|
|
176
|
+
color = colors[i];
|
|
177
|
+
} else {
|
|
178
|
+
color = mix(color, colors[i], clamp((t - steps[i - 1]) / (steps[i] - steps[i - 1]), 0.0, 1.0));
|
|
179
|
+
}
|
|
180
|
+
if (steps[i] >= t) {
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
#endif
|
|
186
|
+
|
|
187
|
+
#ifdef FILTER
|
|
188
|
+
void transformColor(inout vec4 color, in float colorMatrix[20]) {
|
|
189
|
+
float r = color.r, g = color.g, b = color.b, a = color.a;
|
|
190
|
+
color[0] = colorMatrix[0] * r + colorMatrix[1] * g + colorMatrix[2] * b + colorMatrix[3] * a + colorMatrix[4];
|
|
191
|
+
color[1] = colorMatrix[5] * r + colorMatrix[6] * g + colorMatrix[7] * b + colorMatrix[8] * a + colorMatrix[9];
|
|
192
|
+
color[2] = colorMatrix[10] * r + colorMatrix[11] * g + colorMatrix[12] * b + colorMatrix[13] * a + colorMatrix[14];
|
|
193
|
+
color[3] = colorMatrix[15] * r + colorMatrix[16] * g + colorMatrix[17] * b + colorMatrix[18] * a + colorMatrix[19];
|
|
194
|
+
}
|
|
195
|
+
#endif
|
|
196
|
+
|
|
197
|
+
void main() {
|
|
198
|
+
vec4 color = vColor;
|
|
199
|
+
float opacity = abs(flagBackground);
|
|
200
|
+
|
|
201
|
+
#ifdef GRADIENT
|
|
202
|
+
if(u_gradientType > 0 && flagBackground > 0.0 || u_gradientType == 0 && flagBackground <= 0.0) {
|
|
203
|
+
gradient(color, vGradientVector1, vGradientVector2, u_colorSteps);
|
|
204
|
+
}
|
|
205
|
+
#endif
|
|
206
|
+
|
|
207
|
+
if(opacity < 1.0) {
|
|
208
|
+
color.a *= opacity;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
#ifdef TEXTURE
|
|
212
|
+
if(flagBackground > 0.0) {
|
|
213
|
+
vec3 texCoord = vTextureCoord;
|
|
214
|
+
|
|
215
|
+
if(texCoord.z == 1.0) {
|
|
216
|
+
texCoord = fract(texCoord);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
if(texCoord.x <= 1.0 && texCoord.x >= 0.0
|
|
220
|
+
&& texCoord.y <= 1.0 && texCoord.y >= 0.0) {
|
|
221
|
+
if(vSourceRect.z > 0.0) {
|
|
222
|
+
texCoord.x = vSourceRect.x + texCoord.x * vSourceRect.z;
|
|
223
|
+
texCoord.y = 1.0 - (vSourceRect.y + (1.0 - texCoord.y) * vSourceRect.w);
|
|
224
|
+
}
|
|
225
|
+
vec4 texColor = texture2D(u_texSampler, texCoord.xy);
|
|
226
|
+
float alpha = texColor.a;
|
|
227
|
+
if(opacity < 1.0) {
|
|
228
|
+
texColor.a *= opacity;
|
|
229
|
+
alpha *= mix(0.465, 1.0, opacity);
|
|
230
|
+
}
|
|
231
|
+
// color = mix(color, texColor, texColor.a);
|
|
232
|
+
color.rgb = mix(color.rgb, texColor.rgb, alpha);
|
|
233
|
+
// color.rgb = mix(texColor.rgb, color.rgb, color.a);
|
|
234
|
+
color.rgb = mix(texColor.rgb, color.rgb, clamp(color.a / max(0.0001, texColor.a), 0.0, 1.0));
|
|
235
|
+
color.a = texColor.a + (1.0 - texColor.a) * color.a;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
#endif
|
|
239
|
+
|
|
240
|
+
#ifdef FILTER
|
|
241
|
+
if(u_filterFlag > 0) {
|
|
242
|
+
transformColor(color, u_colorMatrix);
|
|
243
|
+
}
|
|
244
|
+
#endif
|
|
245
|
+
|
|
246
|
+
#ifdef CLIPPATH
|
|
247
|
+
float clip = texture2D(u_clipSampler, vClipUV).r;
|
|
248
|
+
color *= clip;
|
|
249
|
+
#endif
|
|
250
|
+
|
|
251
|
+
gl_FragColor = color;
|
|
252
|
+
}`},function(i,e,t){t.r(e),e.default=`attribute vec3 a_vertexPosition;
|
|
253
|
+
attribute vec4 a_color;
|
|
254
|
+
varying vec4 vColor;
|
|
255
|
+
varying float flagBackground;
|
|
256
|
+
attribute vec3 a_transform0;
|
|
257
|
+
attribute vec3 a_transform1;
|
|
258
|
+
uniform vec2 u_resolution;
|
|
259
|
+
uniform mat3 viewMatrix;
|
|
260
|
+
uniform mat3 projectionMatrix;
|
|
261
|
+
|
|
262
|
+
#ifdef TEXTURE
|
|
263
|
+
attribute vec3 a_vertexTextureCoord;
|
|
264
|
+
varying vec3 vTextureCoord;
|
|
265
|
+
attribute float a_frameIndex;
|
|
266
|
+
varying float frameIndex;
|
|
267
|
+
attribute vec4 a_sourceRect;
|
|
268
|
+
varying vec4 vSourceRect;
|
|
269
|
+
#endif
|
|
270
|
+
|
|
271
|
+
#ifdef CLIPPATH
|
|
272
|
+
attribute vec2 a_clipUV;
|
|
273
|
+
varying vec2 vClipUV;
|
|
274
|
+
#endif
|
|
275
|
+
|
|
276
|
+
#ifdef CLOUDFILTER
|
|
277
|
+
attribute vec4 a_colorCloud0;
|
|
278
|
+
attribute vec4 a_colorCloud1;
|
|
279
|
+
attribute vec4 a_colorCloud2;
|
|
280
|
+
attribute vec4 a_colorCloud3;
|
|
281
|
+
attribute vec4 a_colorCloud4;
|
|
282
|
+
varying vec4 colorCloud0;
|
|
283
|
+
varying vec4 colorCloud1;
|
|
284
|
+
varying vec4 colorCloud2;
|
|
285
|
+
varying vec4 colorCloud3;
|
|
286
|
+
varying vec4 colorCloud4;
|
|
287
|
+
#endif
|
|
288
|
+
|
|
289
|
+
#ifdef CLOUDCOLOR
|
|
290
|
+
attribute vec4 a_fillCloudColor;
|
|
291
|
+
attribute vec4 a_strokeCloudColor;
|
|
292
|
+
#endif
|
|
293
|
+
|
|
294
|
+
#ifdef GRADIENT
|
|
295
|
+
uniform float u_radialGradientVector[6];
|
|
296
|
+
varying vec3 vGradientVector1;
|
|
297
|
+
varying vec3 vGradientVector2;
|
|
298
|
+
#endif
|
|
299
|
+
|
|
300
|
+
void main() {
|
|
301
|
+
gl_PointSize = 1.0;
|
|
302
|
+
|
|
303
|
+
mat3 modelMatrix = mat3(
|
|
304
|
+
a_transform0.x, a_transform1.x, 0,
|
|
305
|
+
a_transform0.y, a_transform1.y, 0,
|
|
306
|
+
a_transform0.z, a_transform1.z, 1
|
|
307
|
+
);
|
|
308
|
+
|
|
309
|
+
vec3 pos = projectionMatrix * viewMatrix * modelMatrix * vec3(a_vertexPosition.xy, 1.0);
|
|
310
|
+
gl_Position = vec4(pos.xy, 1.0, 1.0);
|
|
311
|
+
|
|
312
|
+
#ifdef GRADIENT
|
|
313
|
+
vec3 vg1 = viewMatrix * vec3(u_radialGradientVector[0], u_radialGradientVector[1], 1.0);
|
|
314
|
+
vec3 vg2 = viewMatrix * vec3(u_radialGradientVector[3], u_radialGradientVector[4], 1.0);
|
|
315
|
+
float h = u_resolution.y;
|
|
316
|
+
vg1.y = h - vg1.y;
|
|
317
|
+
vg2.y = h - vg2.y;
|
|
318
|
+
vGradientVector1 = vec3(vg1.xy, u_radialGradientVector[2]);
|
|
319
|
+
vGradientVector2 = vec3(vg2.xy, u_radialGradientVector[5]);
|
|
320
|
+
#endif
|
|
321
|
+
|
|
322
|
+
flagBackground = a_vertexPosition.z;
|
|
323
|
+
|
|
324
|
+
#ifdef CLOUDCOLOR
|
|
325
|
+
if(flagBackground > 0.0) {
|
|
326
|
+
vColor = mix(a_color, a_fillCloudColor, a_fillCloudColor.a);
|
|
327
|
+
} else {
|
|
328
|
+
vColor = mix(a_color, a_strokeCloudColor, a_strokeCloudColor.a);
|
|
329
|
+
}
|
|
330
|
+
#else
|
|
331
|
+
vColor = a_color;
|
|
332
|
+
#endif
|
|
333
|
+
|
|
334
|
+
#ifdef TEXTURE
|
|
335
|
+
vTextureCoord = a_vertexTextureCoord;
|
|
336
|
+
frameIndex = a_frameIndex;
|
|
337
|
+
vSourceRect = a_sourceRect;
|
|
338
|
+
#endif
|
|
339
|
+
|
|
340
|
+
#ifdef CLIPPATH
|
|
341
|
+
vClipUV = a_clipUV;
|
|
342
|
+
#endif
|
|
343
|
+
|
|
344
|
+
#ifdef CLOUDFILTER
|
|
345
|
+
colorCloud0 = a_colorCloud0;
|
|
346
|
+
colorCloud1 = a_colorCloud1;
|
|
347
|
+
colorCloud2 = a_colorCloud2;
|
|
348
|
+
colorCloud3 = a_colorCloud3;
|
|
349
|
+
colorCloud4 = a_colorCloud4;
|
|
350
|
+
#endif
|
|
351
|
+
}`},function(i,e,t){t.r(e),e.default=`precision mediump float;
|
|
352
|
+
|
|
353
|
+
varying vec4 vColor;
|
|
354
|
+
varying float flagBackground;
|
|
355
|
+
|
|
356
|
+
#ifdef TEXTURE
|
|
357
|
+
varying float frameIndex;
|
|
358
|
+
varying vec3 vTextureCoord;
|
|
359
|
+
varying vec4 vSourceRect;
|
|
360
|
+
#endif
|
|
361
|
+
|
|
362
|
+
#ifdef CLIPPATH
|
|
363
|
+
varying vec2 vClipUV;
|
|
364
|
+
#endif
|
|
365
|
+
|
|
366
|
+
#ifdef FILTER
|
|
367
|
+
uniform int u_filterFlag;
|
|
368
|
+
uniform float u_colorMatrix[20];
|
|
369
|
+
#endif
|
|
370
|
+
|
|
371
|
+
#ifdef CLOUDFILTER
|
|
372
|
+
varying vec4 colorCloud0;
|
|
373
|
+
varying vec4 colorCloud1;
|
|
374
|
+
varying vec4 colorCloud2;
|
|
375
|
+
varying vec4 colorCloud3;
|
|
376
|
+
varying vec4 colorCloud4;
|
|
377
|
+
#endif
|
|
378
|
+
|
|
379
|
+
#ifdef GRADIENT
|
|
380
|
+
varying vec3 vGradientVector1;
|
|
381
|
+
varying vec3 vGradientVector2;
|
|
382
|
+
uniform float u_colorSteps[40];
|
|
383
|
+
uniform int u_gradientType;
|
|
384
|
+
|
|
385
|
+
void gradient(inout vec4 color, vec3 gv1, vec3 gv2, float colorSteps[40]) {
|
|
386
|
+
float t;
|
|
387
|
+
// center circle radius
|
|
388
|
+
float cr = gv1.z;
|
|
389
|
+
// focal circle radius
|
|
390
|
+
float fr = gv2.z;
|
|
391
|
+
|
|
392
|
+
if(cr > 0.0 || fr > 0.0) {
|
|
393
|
+
// radial gradient
|
|
394
|
+
vec2 center = gv1.xy;
|
|
395
|
+
vec2 focal = gv2.xy;
|
|
396
|
+
float x = focal.x - gl_FragCoord.x;
|
|
397
|
+
float y = focal.y - gl_FragCoord.y;
|
|
398
|
+
float dx = focal.x - center.x;
|
|
399
|
+
float dy = focal.y - center.y;
|
|
400
|
+
float dr = cr - fr;
|
|
401
|
+
float a = dx * dx + dy * dy - dr * dr;
|
|
402
|
+
float b = -2.0 * (y * dy + x * dx + fr * dr);
|
|
403
|
+
float c = x * x + y * y - fr * fr;
|
|
404
|
+
t = 1.0 - 0.5 * (1.0 / a) * (-b + sqrt(b * b - 4.0 * a * c));
|
|
405
|
+
} else {
|
|
406
|
+
// linear gradient
|
|
407
|
+
vec2 v1 = gl_FragCoord.xy - gv1.xy;
|
|
408
|
+
vec2 v2 = gv2.xy - gv1.xy;
|
|
409
|
+
t = (v1.x * v2.x + v1.y * v2.y) / (v2.x * v2.x + v2.y * v2.y);
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
vec4 colors[8];
|
|
413
|
+
colors[0] = vec4(colorSteps[1], colorSteps[2], colorSteps[3], colorSteps[4]);
|
|
414
|
+
colors[1] = vec4(colorSteps[6], colorSteps[7], colorSteps[8], colorSteps[9]);
|
|
415
|
+
colors[2] = vec4(colorSteps[11], colorSteps[12], colorSteps[13], colorSteps[14]);
|
|
416
|
+
colors[3] = vec4(colorSteps[16], colorSteps[17], colorSteps[18], colorSteps[19]);
|
|
417
|
+
colors[4] = vec4(colorSteps[21], colorSteps[22], colorSteps[23], colorSteps[24]);
|
|
418
|
+
colors[5] = vec4(colorSteps[26], colorSteps[27], colorSteps[28], colorSteps[29]);
|
|
419
|
+
colors[6] = vec4(colorSteps[31], colorSteps[32], colorSteps[33], colorSteps[34]);
|
|
420
|
+
colors[7] = vec4(colorSteps[36], colorSteps[37], colorSteps[38], colorSteps[39]);
|
|
421
|
+
|
|
422
|
+
float steps[8];
|
|
423
|
+
steps[0] = colorSteps[0];
|
|
424
|
+
steps[1] = colorSteps[5];
|
|
425
|
+
steps[2] = colorSteps[10];
|
|
426
|
+
steps[3] = colorSteps[15];
|
|
427
|
+
steps[4] = colorSteps[20];
|
|
428
|
+
steps[5] = colorSteps[25];
|
|
429
|
+
steps[6] = colorSteps[30];
|
|
430
|
+
steps[7] = colorSteps[35];
|
|
431
|
+
|
|
432
|
+
color = colors[0];
|
|
433
|
+
for (int i = 1; i < 8; i++) {
|
|
434
|
+
if (steps[i] < 0.0 || steps[i] > 1.0) {
|
|
435
|
+
break;
|
|
436
|
+
}
|
|
437
|
+
if(steps[i] == steps[i - 1]) {
|
|
438
|
+
color = colors[i];
|
|
439
|
+
} else {
|
|
440
|
+
color = mix(color, colors[i], clamp((t - steps[i - 1]) / (steps[i] - steps[i - 1]), 0.0, 1.0));
|
|
441
|
+
}
|
|
442
|
+
if (steps[i] >= t) {
|
|
443
|
+
break;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
#endif
|
|
448
|
+
|
|
449
|
+
void transformColor(inout vec4 color, in float colorMatrix[20]) {
|
|
450
|
+
float r = color.r, g = color.g, b = color.b, a = color.a;
|
|
451
|
+
color[0] = colorMatrix[0] * r + colorMatrix[1] * g + colorMatrix[2] * b + colorMatrix[3] * a + colorMatrix[4];
|
|
452
|
+
color[1] = colorMatrix[5] * r + colorMatrix[6] * g + colorMatrix[7] * b + colorMatrix[8] * a + colorMatrix[9];
|
|
453
|
+
color[2] = colorMatrix[10] * r + colorMatrix[11] * g + colorMatrix[12] * b + colorMatrix[13] * a + colorMatrix[14];
|
|
454
|
+
color[3] = colorMatrix[15] * r + colorMatrix[16] * g + colorMatrix[17] * b + colorMatrix[18] * a + colorMatrix[19];
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
#ifdef CLOUDFILTER
|
|
458
|
+
void buildCloudColor(inout float colorCloudMatrix[20]) {
|
|
459
|
+
colorCloudMatrix[0] = colorCloud0[0];
|
|
460
|
+
colorCloudMatrix[1] = colorCloud1[0];
|
|
461
|
+
colorCloudMatrix[2] = colorCloud2[0];
|
|
462
|
+
colorCloudMatrix[3] = colorCloud3[0];
|
|
463
|
+
colorCloudMatrix[4] = colorCloud4[0];
|
|
464
|
+
|
|
465
|
+
colorCloudMatrix[5] = colorCloud0[1];
|
|
466
|
+
colorCloudMatrix[6] = colorCloud1[1];
|
|
467
|
+
colorCloudMatrix[7] = colorCloud2[1];
|
|
468
|
+
colorCloudMatrix[8] = colorCloud3[1];
|
|
469
|
+
colorCloudMatrix[9] = colorCloud4[1];
|
|
470
|
+
|
|
471
|
+
colorCloudMatrix[10] = colorCloud0[2];
|
|
472
|
+
colorCloudMatrix[11] = colorCloud1[2];
|
|
473
|
+
colorCloudMatrix[12] = colorCloud2[2];
|
|
474
|
+
colorCloudMatrix[13] = colorCloud3[2];
|
|
475
|
+
colorCloudMatrix[14] = colorCloud4[2];
|
|
476
|
+
|
|
477
|
+
colorCloudMatrix[15] = colorCloud0[3];
|
|
478
|
+
colorCloudMatrix[16] = colorCloud1[3];
|
|
479
|
+
colorCloudMatrix[17] = colorCloud2[3];
|
|
480
|
+
colorCloudMatrix[18] = colorCloud3[3];
|
|
481
|
+
colorCloudMatrix[19] = colorCloud4[3];
|
|
482
|
+
}
|
|
483
|
+
#endif
|
|
484
|
+
|
|
485
|
+
void main() {
|
|
486
|
+
vec4 color = vColor;
|
|
487
|
+
float opacity = abs(flagBackground);
|
|
488
|
+
|
|
489
|
+
#ifdef GRADIENT
|
|
490
|
+
if(u_gradientType > 0 && flagBackground > 0.0 || u_gradientType == 0 && flagBackground <= 0.0) {
|
|
491
|
+
gradient(color, vGradientVector1, vGradientVector2, u_colorSteps);
|
|
492
|
+
}
|
|
493
|
+
#endif
|
|
494
|
+
|
|
495
|
+
if(opacity < 1.0) {
|
|
496
|
+
color.a *= opacity;
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
#ifdef TEXTURE
|
|
500
|
+
if(flagBackground > 0.0) {
|
|
501
|
+
vec3 texCoord = vTextureCoord;
|
|
502
|
+
|
|
503
|
+
if(texCoord.z == 1.0) {
|
|
504
|
+
texCoord = fract(texCoord);
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
if(texCoord.x <= 1.0 && texCoord.x >= 0.0
|
|
508
|
+
&& texCoord.y <= 1.0 && texCoord.y >= 0.0) {
|
|
509
|
+
if(vSourceRect.z > 0.0) {
|
|
510
|
+
texCoord.x = vSourceRect.x + texCoord.x * vSourceRect.z;
|
|
511
|
+
texCoord.y = 1.0 - (vSourceRect.y + (1.0 - texCoord.y) * vSourceRect.w);
|
|
512
|
+
}
|
|
513
|
+
if(frameIndex < 0.0) {
|
|
514
|
+
vec4 texColor = texture2D(u_texSampler, texCoord.xy);
|
|
515
|
+
color = mix(color, texColor, texColor.a);
|
|
516
|
+
} else {
|
|
517
|
+
int index = int(floor(clamp(0.0, 11.0, frameIndex)));
|
|
518
|
+
vec4 texColor;
|
|
519
|
+
if(index == 0) texColor = texture2D(u_texFrame0, texCoord.xy);
|
|
520
|
+
else if(index == 1) texColor = texture2D(u_texFrame1, texCoord.xy);
|
|
521
|
+
else if(index == 2) texColor = texture2D(u_texFrame2, texCoord.xy);
|
|
522
|
+
else if(index == 3) texColor = texture2D(u_texFrame3, texCoord.xy);
|
|
523
|
+
else if(index == 4) texColor = texture2D(u_texFrame4, texCoord.xy);
|
|
524
|
+
else if(index == 5) texColor = texture2D(u_texFrame5, texCoord.xy);
|
|
525
|
+
else if(index == 6) texColor = texture2D(u_texFrame6, texCoord.xy);
|
|
526
|
+
else if(index == 7) texColor = texture2D(u_texFrame7, texCoord.xy);
|
|
527
|
+
else if(index == 8) texColor = texture2D(u_texFrame8, texCoord.xy);
|
|
528
|
+
else if(index == 9) texColor = texture2D(u_texFrame9, texCoord.xy);
|
|
529
|
+
else if(index == 10) texColor = texture2D(u_texFrame10, texCoord.xy);
|
|
530
|
+
else texColor = texture2D(u_texFrame11, texCoord.xy);
|
|
531
|
+
float alpha = texColor.a;
|
|
532
|
+
if(opacity < 1.0) {
|
|
533
|
+
texColor.a *= opacity;
|
|
534
|
+
alpha *= mix(0.465, 1.0, opacity);
|
|
535
|
+
}
|
|
536
|
+
// color = mix(color, texColor, texColor.a);
|
|
537
|
+
color.rgb = mix(color.rgb, texColor.rgb, alpha);
|
|
538
|
+
// color.rgb = mix(texColor.rgb, color.rgb, color.a);
|
|
539
|
+
color.rgb = mix(texColor.rgb, color.rgb, clamp(color.a / max(0.0001, texColor.a), 0.0, 1.0));
|
|
540
|
+
color.a = texColor.a + (1.0 - texColor.a) * color.a;
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
#endif
|
|
545
|
+
|
|
546
|
+
#ifdef FILTER
|
|
547
|
+
if(u_filterFlag > 0) {
|
|
548
|
+
transformColor(color, u_colorMatrix);
|
|
549
|
+
}
|
|
550
|
+
#endif
|
|
551
|
+
|
|
552
|
+
#ifdef CLOUDFILTER
|
|
553
|
+
float colorCloudMatrix[20];
|
|
554
|
+
buildCloudColor(colorCloudMatrix);
|
|
555
|
+
transformColor(color, colorCloudMatrix);
|
|
556
|
+
#endif
|
|
557
|
+
|
|
558
|
+
#ifdef CLIPPATH
|
|
559
|
+
float clip = texture2D(u_clipSampler, vClipUV).r;
|
|
560
|
+
color *= clip;
|
|
561
|
+
#endif
|
|
562
|
+
|
|
563
|
+
gl_FragColor = color;
|
|
564
|
+
}`},function(i,e,t){t.r(e),(function(r,n){t.d(e,"requestAnimationFrame",function(){return c}),t.d(e,"cancelAnimationFrame",function(){return l}),t(1).glMatrix.setMatrixArrayType(Array);function s(){if(typeof performance<"u"&&performance.now)return performance.now();if(typeof r<"u"&&r.hrtime){const[f,u]=r.hrtime();return f*1e3+u*1e-6}return Date.now?Date.now():new Date().getTime()}let c,l;typeof n<"u"&&typeof n.requestAnimationFrame=="function"?(c=n.requestAnimationFrame,l=n.cancelAnimationFrame):(c=function(f){return setTimeout(()=>{f(s())},16)},l=function(f){return clearTimeout(f)})}).call(this,t(69),t(22))},function(i,e){var t=i.exports={},r,n;function s(){throw new Error("setTimeout has not been defined")}function c(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?r=setTimeout:r=s}catch{r=s}try{typeof clearTimeout=="function"?n=clearTimeout:n=c}catch{n=c}})();function l(w){if(r===setTimeout)return setTimeout(w,0);if((r===s||!r)&&setTimeout)return r=setTimeout,setTimeout(w,0);try{return r(w,0)}catch{try{return r.call(null,w,0)}catch{return r.call(this,w,0)}}}function f(w){if(n===clearTimeout)return clearTimeout(w);if((n===c||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(w);try{return n(w)}catch{try{return n.call(null,w)}catch{return n.call(this,w)}}}var u=[],v=!1,h,y=-1;function T(){!v||!h||(v=!1,h.length?u=h.concat(u):y=-1,u.length&&O())}function O(){if(!v){var w=l(T);v=!0;for(var d=u.length;d;){for(h=u,u=[];++y<d;)h&&h[y].run();y=-1,d=u.length}h=null,v=!1,f(w)}}t.nextTick=function(w){var d=new Array(arguments.length-1);if(arguments.length>1)for(var g=1;g<arguments.length;g++)d[g-1]=arguments[g];u.push(new C(w,d)),u.length===1&&!v&&l(O)};function C(w,d){this.fun=w,this.array=d}C.prototype.run=function(){this.fun.apply(null,this.array)},t.title="browser",t.browser=!0,t.env={},t.argv=[],t.version="",t.versions={};function S(){}t.on=S,t.addListener=S,t.once=S,t.off=S,t.removeListener=S,t.removeAllListeners=S,t.emit=S,t.prependListener=S,t.prependOnceListener=S,t.listeners=function(w){return[]},t.binding=function(w){throw new Error("process.binding is not supported")},t.cwd=function(){return"/"},t.chdir=function(w){throw new Error("process.chdir is not supported")},t.umask=function(){return 0}},function(i,e,t){t.r(e),t.d(e,"default",function(){return D});var r=t(1),n=t(71),s=t(73),c=t(213),l=t(214),f=t(215),u=t(216);t(1).glMatrix.setMatrixArrayType(Array);function v(U,L){var W=Object.keys(U);if(Object.getOwnPropertySymbols){var Y=Object.getOwnPropertySymbols(U);L&&(Y=Y.filter(function(B){return Object.getOwnPropertyDescriptor(U,B).enumerable})),W.push.apply(W,Y)}return W}function h(U){for(var L=1;L<arguments.length;L++){var W=arguments[L]!=null?arguments[L]:{};L%2?v(Object(W),!0).forEach(function(Y){y(U,Y,W[Y])}):Object.getOwnPropertyDescriptors?Object.defineProperties(U,Object.getOwnPropertyDescriptors(W)):v(Object(W)).forEach(function(Y){Object.defineProperty(U,Y,Object.getOwnPropertyDescriptor(W,Y))})}return U}function y(U,L,W){return L in U?Object.defineProperty(U,L,{value:W,enumerable:!0,configurable:!0,writable:!0}):U[L]=W,U}const T=Symbol.for("spritejs_changedAttrs"),O=Symbol.for("spritejs_attributes"),C=Symbol("resolution"),S=Symbol("animations"),w=Symbol("eventListeners"),d=Symbol("captureEventListeners"),g=Symbol("filters"),p=Symbol("display"),P=Symbol("program"),A=Symbol("shaderAttrs"),R=Symbol("uniforms");class D{constructor(L={}){this.attributes=new this.constructor.Attr(this),this[C]={width:300,height:150},Object.assign(this.attributes,L),this[S]=new Set,this[w]={},this[d]={}}get ancestors(){let L=this.parent;const W=[];for(;L;)W.push(L),L=L.parent;return W}get animations(){return this[S]}get filters(){return this[g]||this.parent&&this.parent.filters}get isVisible(){return!1}get layer(){return this.parent?this.parent.layer:null}get localMatrix(){const L=this.transformMatrix,{x:W,y:Y}=this.attributes;return L[4]+=W,L[5]+=Y,L}get opacity(){let L=this.attributes.opacity;return this.parent&&this.parent.opacity!=null&&(L*=this.parent.opacity),L}get parentNode(){return this.parent}get nextSibling(){return this.getNodeNearBy(1)}get previousSibling(){return this.getNodeNearBy(-1)}get program(){return this[P]}get renderer(){return this.parent?this.parent.renderer:null}get renderMatrix(){if(this.__cacheRenderMatrix)return this.__cacheRenderMatrix;let L=this.localMatrix;const W=this.parent;if(W){const Y=W.__cacheRenderMatrix||W.renderMatrix;Y&&(L=r.mat2d.multiply(Array.of(0,0,0,0,0,0),Y,L))}return L}get worldScaling(){const L=this.renderMatrix;return[Math.hypot(L[0],L[1]),Math.hypot(L[2],L[3])]}get worldRotation(){const L=this.renderMatrix;return Math.atan2(L[1],L[3])}get worldPosition(){const L=this.renderMatrix;return[L[4],L[5]]}get uniforms(){return this[R]}get className(){return this.attributes.className}set className(L){this.attributes.className=L}get id(){return this.attributes.id}set id(L){this.attributes.id=L}get name(){return this.attributes.name}set name(L){this.attributes.name=L}get zIndex(){return this.attributes.zIndex}set zIndex(L){this.attributes.zIndex=L}get mesh(){return null}get shaderAttrs(){return this[A]||{}}activateAnimations(){const L=this.layer;if(L){const W=this[S];W.forEach(B=>{B.baseTimeline=L.timeline,B.play(),B.finished.then(()=>{W.delete(B)})});const Y=this.children;Y&&Y.forEach(B=>{B.activateAnimations&&B.activateAnimations()})}}addEventListener(L,W,Y={}){L==="mousewheel"&&(L="wheel"),typeof Y=="boolean"&&(Y={capture:Y});const{capture:B,once:N}=Y,$=B?d:w;return this[$][L]=this[$][L]||[],this[$][L].push({listener:W,once:N}),this}animate(L,W){const Y=new s.default(this,L,W);return this.effects&&Y.applyEffects(this.effects),this.layer&&(Y.baseTimeline=this.layer.timeline,Y.play(),Y.finished.then(()=>{this[S].delete(Y)})),this[S].add(Y),Y}attr(...L){if(L.length===0)return this.attributes[O];if(L.length>1){let[W,Y]=L;return typeof Y=="function"&&(Y=Y(this.attr(W))),this.setAttribute(W,Y),this}return typeof L[0]=="string"?this.getAttribute(L[0]):(Object.assign(this.attributes,L[0]),this)}cloneNode(){const L=new this.constructor,W=this.attributes[T];return L.attr(W),L}connect(L,W){Object.defineProperty(this,"parent",{value:L,writable:!1,configurable:!0}),Object.defineProperty(this,"zOrder",{value:W,writable:!1,configurable:!0}),L.timeline&&this.activateAnimations(),this.setResolution(L.getResolution()),this.forceUpdate(),this.dispatchEvent({type:"append",detail:{parent:L,zOrder:W}})}contains(L){for(;L&&this!==L;)L=L.parent;return!!L}deactivateAnimations(){this[S].forEach(W=>W.cancel());const L=this.children;L&&L.forEach(W=>{W.deactivateAnimations&&W.deactivateAnimations()})}disconnect(){const{parent:L,zOrder:W}=this;delete this.parent,delete this.zOrder,this.deactivateAnimations(),this.dispatchEvent({type:"remove",detail:{parent:L,zOrder:W}}),L&&L.forceUpdate()}dispatchEvent(L){L instanceof l.default||(L=new l.default(L)),L.target=this;let W=L.type;W==="mousewheel"&&(W="wheel");const Y=[this];let B=this.parent;for(;L.bubbles&&B;)Y.push(B),B=B.parent;for(let N=Y.length-1;N>=0;N--){const $=Y[N],J=$[d]&&$[d][W];if(J&&J.length&&(L.currentTarget=$,J.forEach(({listener:et,once:ot})=>{et.call(this,L),ot&&Y.removeEventListener(et)}),delete L.currentTarget),!L.bubbles&&L.cancelBubble)break}if(!L.cancelBubble)for(let N=0;N<Y.length;N++){const $=Y[N],J=$[w]&&$[w][W];if(J&&J.length&&(L.currentTarget=$,J.forEach(({listener:et,once:ot})=>{et.call(this,L),ot&&Y.removeEventListener(et)}),delete L.currentTarget),!L.bubbles||L.cancelBubble)break}}dispatchPointerEvent(L){const{layerX:W,layerY:Y}=L;return this.isPointCollision(W,Y)?(this.dispatchEvent(L),!0):!1}draw(L=[]){const W=this.mesh;if(W){if(Object(f.applyFilters)(W,this.filters),L.push(W),this[P]){W.setProgram(this[P]);const Y=this[A];Y&&Object.entries(Y).forEach(([N,$])=>{W.setAttribute(N,$)});const B=this[R];if(this[R]){const N={};Object.entries(B).forEach(([$,J])=>{typeof J=="function"&&(J=J(this,$)),N[$]=J}),W.setUniforms(N)}}Object(u.default)(this,W)}return L}forceUpdate(){this.parent&&this.parent.forceUpdate()}getAttribute(L){return this.attributes[L]}getListeners(L,{capture:W=!1}={}){return[...this[W?d:w][L]||[]]}getNodeNearBy(L=1){if(!this.parent)return null;if(L===0)return this;const W=this.parent.children,Y=W.indexOf(this);return W[Y+L]}getWorldPosition(L,W){const Y=this.renderMatrix,B=L*Y[0]+W*Y[2]+Y[4],N=L*Y[1]+W*Y[3]+Y[5];return[B,N]}getOffsetPosition(L,W){const Y=r.mat2d.invert(Array.of(0,0,0,0,0,0),this.renderMatrix),B=L*Y[0]+W*Y[2]+Y[4],N=L*Y[1]+W*Y[3]+Y[5];return[B,N]}getResolution(){return h({},this[C])}isPointCollision(L,W){if(!this.mesh)return!1;const Y=this.attributes.pointerEvents;if(Y==="none"||Y!=="all"&&!this.isVisible)return!1;let B="both";return Y==="visibleFill"&&(B="fill"),Y==="visibleStroke"&&(B="stroke"),this.mesh.isPointCollision(L,W,B)}onPropertyChange(L,W,Y){L!=="id"&&L!=="name"&&L!=="className"&&L!=="pointerEvents"&&L!=="passEvents"&&this.forceUpdate(),L==="filter"&&(this[g]=Object(f.parseFilterString)(W)),L==="zIndex"&&this.parent&&this.parent.reorder()}setAttribute(L,W){L==="attrs"&&this.attr(W),this.attributes[L]=W}setMouseCapture(){this.layer&&(this.layer.__mouseCapturedTarget=this)}setProgram(L){this[P]=L,this.forceUpdate()}setShaderAttribute(L,W){this[A]=this[A]||{},this[A][L]=W,this.forceUpdate()}setUniforms(L){this[R]=this[R]||{},Object.assign(this[R],L),this.forceUpdate()}setResolution({width:L,height:W}){const{width:Y,height:B}=this[C];(Y!==L||B!==W)&&(this[C]={width:L,height:W},this.forceUpdate(),this.dispatchEvent({type:"resolutionchange",detail:{width:L,height:W}}))}show(){this.attributes.display==="none"&&(this.attributes.display=this[p]||"")}hide(){this.attributes.display!=="none"&&(this[p]=this.attributes.display,this.attributes.display="none")}releaseMouseCapture(){this.layer&&this.layer.__mouseCapturedTarget===this&&(this.layer.__mouseCapturedTarget=null)}remove(){return this.parent&&this.parent.removeChild?(this.parent.removeChild(this),!0):!1}removeAllListeners(L,W={}){typeof W=="boolean"&&(W={capture:W});const B=W.capture?d:w;return this[B][L]&&(this[B][L]=[]),this}removeAttribute(L){this.setAttribute(L,null)}removeEventListener(L,W,Y={}){typeof Y=="boolean"&&(Y={capture:Y});const N=Y.capture?d:w;if(this[N][L]){const $=this[N][L];if($)for(let J=0;J<$.length;J++){const{listener:et}=$[J];if(et===W){this[N][L].splice(J,1);break}}}return this}transition(L,W="linear"){const Y=this,B=Symbol("animation");W=W||"linear";let N=0;return typeof L=="object"&&(N=L.delay||0,L=L.duration),{[B]:null,cancel($=!1){const J=this[B];J&&J.cancel($)},end(){const $=this[B];$&&($.playState==="running"||$.playState==="pending")&&$.finish()},reverse(){const $=this[B];if($)if($.playState==="running"||$.playState==="pending")$.playbackRate=-$.playbackRate;else{const J=$.timing.direction;$.timing.direction=J==="reverse"?"normal":"reverse",$.play()}return $.finished},attr($,J){return this.end(),typeof $=="string"&&($={[$]:J}),Object.entries($).forEach(([et,ot])=>{typeof ot=="function"&&($[et]=ot(Y.attr(et)))}),this[B]=Y.animate([$],{duration:L*1e3,delay:N*1e3,fill:"forwards",easing:W}),this[B].finished}}}updateContours(){}}y(D,"Attr",n.default),c.default.registerNode(D,"node")},function(i,e,t){t.r(e),t.d(e,"default",function(){return D});var r=t(1),n=t(12),s=t(72);t(1).glMatrix.setMatrixArrayType(Array);const c=Symbol.for("spritejs_setAttributeDefault"),l=Symbol.for("spritejs_declareAlias"),f=Symbol.for("spritejs_setAttribute"),u=Symbol.for("spritejs_getAttribute"),v=Symbol.for("spritejs_attributes"),h=Symbol.for("spritejs_changedAttrs"),y=Symbol("subject"),T=Symbol("attr"),O=Symbol("default"),C=Symbol("alias");function S(U,[L,W]){let Y=r.mat2d.fromValues(1,0,0,1,0,0);return[...U].forEach(([B,N])=>{if((L||W)&&(Y=r.mat2d.translate(Array.of(0,0,0,0,0,0),Y,[L,W])),B==="matrix")Y=r.mat2d.multiply(Y,Y,N);else if(B==="offsetTranslate")Y[4]+=N[0],Y[5]+=N[1];else if(B==="offsetRotate")Y=r.mat2d.rotate(Array.of(0,0,0,0,0,0),Y,N);else if(B==="skew"){const[$,J]=N;Y=r.mat2d.multiply(Y,Y,r.mat2d.fromValues(1,Math.tan(J),Math.tan($),1,0,0))}else r.mat2d[B](Y,Y,N);(L||W)&&(Y=r.mat2d.translate(Array.of(0,0,0,0,0,0),Y,[-L,-W]))}),Y}const w=Symbol("transformMatrix"),d=Symbol("transforms"),g=Symbol("changedAttrs"),p=Symbol("lastChangedAttr"),P=Symbol("offsetFigure");function A(U,L,W){const Y=U[T][L];if(U[f](L,W,!1)||U[p]!==L){const N=U[d];N.has(L)&&N.delete(L),W&&(L==="rotate"&&(W=Math.PI*W/180),L==="scale"&&(W=W.map($=>Math.abs($)>1e-5?$:1/$>0?1e-5:-1e-5)),N.set(L,W)),U[w]=null,U[y].onPropertyChange(L,W,Y,U)}}function R(U){const L=U[P],W=U.offsetDistance*L.getTotalLength(),Y=L.getPointAtLength(W);if(Y){const B=U[d];let N=U.offsetRotate;N==="auto"?N=Y.angle:N==="reverse"?N=Math.PI+Y.angle:N=Math.PI*N/180,B.set("offsetRotate",N),B.set("offsetTranslate",[Y.x,Y.y]),U[w]=null}}class D{static setDefault(L,...W){return L[c](...W)}static declareAlias(L,...W){return L[l](...W)}static setAttribute(L,...W){return L[f](...W)}static getAttribute(L,...W){return L[u](...W)}static getAttributes(L){return L[v]}static getChangedAttributes(L){return L[h]}constructor(L){this[y]=L,this[T]={},this[w]=r.mat2d.fromValues(1,0,0,1,0,0),this[d]=new Map,this[O]={},this[C]=[],Object.defineProperty(L,"transformMatrix",{get:()=>(this[w]||(this[w]=S(this[d],this.transformOrigin)),[...this[w]])}),this[c]({id:"",name:"",className:"",x:0,y:0,transformOrigin:[0,0],transform:"",translate:[0,0],rotate:0,scale:[1,1],skew:[0,0],opacity:1,zIndex:0,offsetPath:void 0,offsetDistance:0,offsetRotate:"auto",pointerEvents:"visible",filter:"none",display:""}),this[l]("class","pos"),this[g]=new Set,this[P]=new n.Figure2D({scale:5,simplify:0})}get[h](){const L={};return[...this[g]].forEach(W=>{L[W]=this[T][W]}),L}get[v](){const L=Object.assign({},this[T]);for(let W=0;W<this[C].length;W++){const Y=this[C][W];L[Y]=this[Y]}return L}[c](L){Object.assign(this[O],L),Object.assign(this[T],L)}[l](...L){this[C].push(...L)}[f](L,W,Y=!0){const B=this[T][L],N=this[y];return W==null&&(W=this[O][L]),Object(s.compareValue)(B,W)?!1:(this[T][L]=W,this[g].has(L)&&this[g].delete(L),this[g].add(L),this[p]=L,Y&&N.onPropertyChange(L,W,B,this),!0)}[u](L){return this[T][L]}set id(L){this[f]("id",L)}get id(){return this[u]("id")}set name(L){this[f]("name",L)}get name(){return this[u]("name")}set className(L){this[f]("className",L)}get className(){return this[u]("className")}set class(L){this.className=L}get class(){return this.className}get x(){return this[u]("x")}set x(L){this[f]("x",Object(s.toNumber)(L))}get y(){return this[u]("y")}set y(L){this[f]("y",Object(s.toNumber)(L))}get pos(){return[this.x,this.y]}set pos(L){L=Object(s.toArray)(L),Array.isArray(L)||(L=[L,L]),this.x=L[0],this.y=L[1]}get transform(){return this[u]("transform")}set transform(L){let W=null;if(Array.isArray(L)&&(W=L,L=`matrix(${L.map(s.toNumber).join()})`),typeof L=="string")L=L.replace(/\s*,\s*/g,",");else if(L!=null)throw new TypeError("Invalid transform value.");const Y=this[T].transform;if(this[f]("transform",L,!1)){const B=this[d];if(B.has("matrix")&&B.delete("matrix"),W)B.set("matrix",W);else if(L){const N=L.match(/(matrix|translate|rotate|scale|skew)\([^()]+\)/g);if(N){let $=r.mat2d.fromValues(1,0,0,1,0,0);for(let J=0;J<N.length;J++){const ot=N[J].match(/^(matrix|translate|rotate|scale|skew)\(([^()]+)\)/);if(ot){let[,ut,K]=ot;ut==="rotate"?K=Math.PI*parseFloat(K)/180:K=K.trim().split(/[\s,]+/).map(Q=>Object(s.toNumber)(Q)),ut==="matrix"?$=r.mat2d.multiply($,$,K):ut==="skew"?$=r.mat2d.multiply($,$,r.mat2d.fromValues(1,Math.tan(K[1]),Math.tan(K[0]),1,0,0)):r.mat2d[ut]($,$,K),B.set("matrix",$)}}}else throw new TypeError("Invalid transform value.")}this[w]=null,this[y].onPropertyChange("transform",L,Y,this)}}get transformOrigin(){return this[u]("transformOrigin")}set transformOrigin(L){L=Object(s.toArray)(L,!0),L!=null&&!Array.isArray(L)&&(L=[L,L]),this[f]("transformOrigin",L)&&(this[w]=null)}get rotate(){return this[u]("rotate")}set rotate(L){A(this,"rotate",L)}get translate(){return this[u]("translate")}set translate(L){L=Object(s.toArray)(L,!0),L!=null&&!Array.isArray(L)&&(L=[L,L]),A(this,"translate",L)}get scale(){return this[u]("scale")}set scale(L){L=Object(s.toArray)(L,!0),L!=null&&!Array.isArray(L)&&(L=[L,L]),A(this,"scale",L)}get skew(){return this[u]("skew")}set skew(L){L=Object(s.toArray)(L,!0),L!=null&&!Array.isArray(L)&&(L=[L,L]),A(this,"skew",L)}get opacity(){return this[u]("opacity")}set opacity(L){L!=null&&(L=Number(L)),this[f]("opacity",L)}get zIndex(){return this[u]("zIndex")}set zIndex(L){L!=null&&(L=Number(L)),this[f]("zIndex",L)}get offsetPath(){return this[u]("offsetPath")}set offsetPath(L){this[f]("offsetPath",L)&&(this[P].beginPath(),L!=null&&this[P].addPath(L),R(this))}get offsetDistance(){return this[u]("offsetDistance")}set offsetDistance(L){this[f]("offsetDistance",Object(s.toNumber)(L))&&R(this)}get offsetRotate(){return this[u]("offsetRotate")}set offsetRotate(L){this[f]("offsetRotate",L),R(this)}get pointerEvents(){return this[u]("pointerEvents")}set pointerEvents(L){if(L!=null&&L!=="none"&&L!=="visible"&&L!=="visibleFill"&&L!=="visibleStroke"&&L!=="all")throw new TypeError("Invalid pointerEvents type.");this[f]("pointerEvents",L)}get filter(){return this[u]("filter")}set filter(L){this[f]("filter",L)}get display(){return this[u]("display")}set display(L){this[f]("display",L)}set offset(L){}}},function(i,e,t){t.r(e),t.d(e,"sizeToPixel",function(){return r}),t.d(e,"toString",function(){return n}),t.d(e,"toNumber",function(){return s}),t.d(e,"toArray",function(){return c}),t.d(e,"compareValue",function(){return l}),t(1).glMatrix.setMatrixArrayType(Array);function r(f,u){const v=f.trim().match(/^([\d.]+)(px|pt|pc|in|cm|mm|em|ex|rem|q|vw|vh|vmax|vmin)$/);v?f={size:parseFloat(v[1]),unit:v[2]}:f={size:parseFloat(f),unit:"px"};let{size:h,unit:y}=f;if(y==="pt")h/=.75;else if(y==="pc")h*=16;else if(y==="in")h*=96;else if(y==="cm")h*=37.79527559055118;else if(y==="mm")h*=3.7795275590551185;else if(y==="em"||y==="rem"||y==="ex"){if(!u&&typeof getComputedStyle=="function"&&typeof document<"u"){const T=getComputedStyle(document.documentElement).fontSize;T?u=r(T,16):u=16}h*=u,y==="ex"&&(h/=2)}else if(y==="q")h*=.9448818897637796;else if(y==="vw"||y==="vh"){if(typeof document<"u"){const T=y==="vw"?window.innerWidth||document.documentElement.clientWidth:window.innerHeight||document.documentElement.clientHeight;h*=T/100}}else if((y==="vmax"||y==="vmin")&&typeof document<"u"){const T=window.innerWidth||document.documentElement.clientWidth,O=window.innerHeight||document.documentElement.clientHeight;y==="vmax"?h*=Math.max(T,O)/100:h*=Math.min(T,O)/100}return h}function n(f){return f==null?f:String(f)}function s(f){if(f==null)return f;if(typeof f=="string"&&(f=r(f)),!Number.isFinite(f))throw new TypeError("Invalid value");return f}function c(f,u=!1){return f===""?null:(typeof f=="string"&&(f=f.split(/[\s,]+/g)),Array.isArray(f)&&(u&&(f=f.map(s)),f.length===1)?f[0]:f)}function l(f,u){if(Array.isArray(f)&&Array.isArray(u)){if(f.length!==u.length)return!1;for(let v=0;v<f.length;v++)if(f[v]!==u[v])return!1;return!0}return f==null&&u==null||f===u}},function(i,e,t){t.r(e),t.d(e,"default",function(){return y});var r=t(74),n=t(32),s=t.n(n),c=t(68),l=t(72);t(1).glMatrix.setMatrixArrayType(Array);function f(){return f=Object.assign||function(T){for(var O=1;O<arguments.length;O++){var C=arguments[O];for(var S in C)Object.prototype.hasOwnProperty.call(C,S)&&(T[S]=C[S])}return T},f.apply(this,arguments)}function u(T){if(typeof T=="string"){if(T=T.trim(),/^[0-9.]+%$/.test(T))return parseFloat(T)/100;if(/^([\d.]+)(px|pt|pc|in|cm|mm|em|ex|rem|q|vw|vh|vmax|vmin)$/.test(T))return Object(l.sizeToPixel)(T)}return T}function v(T,O,C,S,w){return typeof T=="string"&&(T=s()(T)),typeof O=="string"&&(O=s()(O)),r.Effects.default(T,O,C,S,w)}function h(T,O,C,S,w){return r.Effects.default(T,O,C,S,w)}r.Effects.default=function(T,O,C,S,w){return Array.isArray(T)&&Array.isArray(O)?T.map((d,g)=>d+(C-S)/(w-S)*(O[g]-d)):typeof T=="number"&&typeof O=="number"?T+(C-S)/(w-S)*(O-T):C-S>w-C?O:T},r.Effects.fillColor=v,r.Effects.strokeColor=v,r.Effects.bgcolor=v,r.Effects.borderColor=v,r.Effects.text=h;class y extends r.Animator{constructor(O,C,S){const w=O.attr();Object.entries(w).forEach(([d,g])=>{w[d]=r.Effects[d]?g:u(g)}),C=C.map(d=>{let g=f({},d);const p={};return Object.entries(g).forEach(([P,A])=>{p[P]=r.Effects[P]?A:u(A)}),p}),super(w,C,S),this.target=O,this.setter=function(d,g){g.attr(d)}}get playState(){return this.target.parent?super.playState:"idle"}get finished(){return super.finished.then(()=>{const O=this;return new Promise(C=>{function S(){O.setter(O.frame,O.target);const w=O.playState;w==="finished"||w==="idle"?(Object(c.cancelAnimationFrame)(O.requestId),C()):Object(c.requestAnimationFrame)(S)}S()})})}finish(){super.finish(),Object(c.cancelAnimationFrame)(this.requestId),this.setter(this.frame,this.target)}play(){if(!this.target.parent||this.playState==="running")return;super.play(),this.setter(this.frame,this.target);const O=this;this.ready.then(()=>{O.setter(O.frame,O.target),O.requestId=Object(c.requestAnimationFrame)(function C(){const S=O.target;if(typeof document<"u"&&document.documentElement&&document.documentElement.contains&&S.layer&&S.layer.canvas&&!document.documentElement.contains(S.layer.canvas)){O.cancel();return}const w=O.playState;O.setter(O.frame,O.target),w!=="idle"&&(w==="running"?O.requestId=Object(c.requestAnimationFrame)(C):(w==="paused"||w==="pending"&&O.timeline.currentTime<0)&&O.ready.then(()=>{O.setter(O.frame,O.target),O.requestId=Object(c.requestAnimationFrame)(C)}))})})}cancel(O=!1){Object(c.cancelAnimationFrame)(this.requestId),O?(this.setter(this.frame,this.target),super.cancel()):(super.cancel(),this.setter(this.frame,this.target))}}},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.Timeline=e.Effects=e.Easings=e.Animator=void 0;var r=t(75),n=v(r),s=t(187),c=v(s),l=t(188),f=t(190),u=v(f);function v(h){return h&&h.__esModule?h:{default:h}}e.Animator=u.default,e.Easings=l.Easings,e.Effects=c.default,e.Timeline=n.default},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0});var r=t(76),n=d(r),s=t(133),c=d(s),l=t(141),f=d(l),u=t(164),v=d(u),h=t(170),y=d(h),T=t(171),O=d(T),C=t(175),S=d(C),w=t(186);function d(Y){return Y&&Y.__esModule?Y:{default:Y}}var g=(0,w.createNowTime)(),p={originTime:0,playbackRate:1},P=(0,S.default)("timeMark"),A=(0,S.default)("playbackRate"),R=(0,S.default)("timers"),D=(0,S.default)("originTime"),U=(0,S.default)("setTimer"),L=(0,S.default)("parent"),W=function(){function Y(B,N){(0,y.default)(this,Y),B instanceof Y&&(N=B,B={}),B=(0,v.default)({},p,B),N&&(this[L]=N);var $=B.nowtime||g;if(N)Object.defineProperty(this,"globalTime",{get:function(){return N.currentTime}});else{var J=$();Object.defineProperty(this,"globalTime",{get:function(){return $()-J}})}this[P]=[{globalTime:this.globalTime,localTime:-B.originTime,entropy:-B.originTime,playbackRate:B.playbackRate,globalEntropy:0}],this[L]&&(this[P][0].globalEntropy=this[L].entropy),this[D]=B.originTime,this[A]=B.playbackRate,this[R]=new f.default}return(0,O.default)(Y,[{key:"markTime",value:function(){var N=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},$=N.time,J=$===void 0?this.currentTime:$,et=N.entropy,ot=et===void 0?this.entropy:et,ut=N.playbackRate,K=ut===void 0?this.playbackRate:ut,Q={globalTime:this.globalTime,localTime:J,entropy:ot,playbackRate:K,globalEntropy:this.globalEntropy};this[P].push(Q)}},{key:"fork",value:function(N){return new Y(N,this)}},{key:"seekGlobalTime",value:function(N){var $=this.seekTimeMark(N),J=this[P][$],et=J.entropy,ot=J.playbackRate,ut=J.globalTime;return ut+(N-et)/Math.abs(ot)}},{key:"seekLocalTime",value:function(N){var $=this.seekTimeMark(N),J=this[P][$],et=J.localTime,ot=J.entropy,ut=J.playbackRate;return ut>0?et+(N-ot):et-(N-ot)}},{key:"seekTimeMark",value:function(N){var $=this[P],J=0,et=$.length-1;if(N<=$[J].entropy)return J;if(N>=$[et].entropy)return et;for(var ot=Math.floor((J+et)/2);ot>J&&ot<et;){if(N===$[ot].entropy)return ot;N<$[ot].entropy?et=ot:N>$[ot].entropy&&(J=ot),ot=Math.floor((J+et)/2)}return J}},{key:"updateTimers",value:function(){var N=this,$=[].concat((0,c.default)(this[R]));$.forEach(function(J){var et=(0,n.default)(J,2),ot=et[0],ut=et[1];N[U](ut.handler,ut.time,ot)})}},{key:"clearTimeout",value:function(B){function N($){return B.apply(this,arguments)}return N.toString=function(){return B.toString()},N}(function(B){var N=this[R].get(B);N&&N.timerID!=null&&(this[L]?this[L].clearTimeout(N.timerID):clearTimeout(N.timerID)),this[R].delete(B)})},{key:"clearInterval",value:function(N){return this.clearTimeout(N)}},{key:"clear",value:function(){var N=this,$=this[R];[].concat((0,c.default)($.keys())).forEach(function(J){N.clearTimeout(J)})}},{key:"setTimeout",value:function(N){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{delay:0};return this[U](N,$)}},{key:"setInterval",value:function(N){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{delay:0},J=this,et=this[U](function ot(){J[U](ot,$,et),N()},$);return et}},{key:U,value:function(N,$){var J=this,et=arguments.length>2&&arguments[2]!==void 0?arguments[2]:(0,S.default)("timerID");$=(0,w.formatDelay)($);var ot=this[R].get(et),ut=void 0,K=null,Q=void 0,ft=void 0;ot?(this.clearTimeout(et),$.isEntropy?ut=($.delay-(this.entropy-ot.startEntropy))/Math.abs(this.playbackRate):ut=($.delay-(this.currentTime-ot.startTime))/this.playbackRate,Q=ot.startTime,ft=ot.startEntropy):(ut=$.delay/($.isEntropy?Math.abs(this.playbackRate):this.playbackRate),Q=this.currentTime,ft=this.entropy);var mt=this[L],yt=mt?mt.setTimeout.bind(mt):setTimeout,Et=$.heading;return!mt&&Et===!1&&ut<0&&(ut=1/0),(isFinite(ut)||mt)&&(ut=Math.ceil(ut),yt!==setTimeout&&(ut={delay:ut,heading:Et}),K=yt(function(){J[R].delete(et),N()},ut)),this[R].set(et,{timerID:K,handler:N,time:$,startTime:Q,startEntropy:ft}),et}},{key:"parent",get:function(){return this[L]}},{key:"lastTimeMark",get:function(){return this[P][this[P].length-1]}},{key:"currentTime",get:function(){var N=this.lastTimeMark,$=N.localTime,J=N.globalTime;return $+(this.globalTime-J)*this.playbackRate},set:function(N){var $=this,J=this.currentTime,et=N,ot=this[R];this.markTime({time:N}),[].concat((0,c.default)(ot)).forEach(function(ut){var K=(0,n.default)(ut,2),Q=K[0],ft=K[1];if(ot.has(Q)){var mt=ft.time,yt=mt.isEntropy,Et=mt.delay,ht=mt.heading,Nt=ft.handler,Bt=ft.startTime;if(yt)Et===0&&(Nt(),$.clearTimeout(Q));else{var G=Bt+Et;(Et===0||ht!==!1&&(et-J)*Et<=0||J<=G&&G<=et||J>=G&&G>=et)&&(Nt(),$.clearTimeout(Q))}}}),this.updateTimers()}},{key:"entropy",get:function(){var N=this.lastTimeMark,$=N.entropy,J=N.globalEntropy;return $+Math.abs((this.globalEntropy-J)*this.playbackRate)},set:function(N){if(this.entropy>N){var $=this.seekTimeMark(N);this[P].length=$+1}this.markTime({entropy:N}),this.updateTimers()}},{key:"globalEntropy",get:function(){return this[L]?this[L].entropy:this.globalTime}},{key:"playbackRate",get:function(){return this[A]},set:function(N){N!==this.playbackRate&&(this.markTime({playbackRate:N}),this[A]=N,this.updateTimers())}},{key:"paused",get:function(){if(this.playbackRate===0)return!0;for(var N=this.parent;N;){if(N.playbackRate===0)return!0;N=N.parent}return!1}}]),Y}();e.default=W},function(i,e,t){e.__esModule=!0;var r=t(77),n=l(r),s=t(129),c=l(s);function l(f){return f&&f.__esModule?f:{default:f}}e.default=function(){function f(u,v){var h=[],y=!0,T=!1,O=void 0;try{for(var C=(0,c.default)(u),S;!(y=(S=C.next()).done)&&(h.push(S.value),!(v&&h.length===v));y=!0);}catch(w){T=!0,O=w}finally{try{!y&&C.return&&C.return()}finally{if(T)throw O}}return h}return function(u,v){if(Array.isArray(u))return u;if((0,n.default)(Object(u)))return f(u,v);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(i,e,t){i.exports={default:t(78),__esModule:!0}},function(i,e,t){t(79),t(125),i.exports=t(127)},function(i,e,t){t(80);for(var r=t(91),n=t(95),s=t(83),c=t(122)("toStringTag"),l="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),f=0;f<l.length;f++){var u=l[f],v=r[u],h=v&&v.prototype;h&&!h[c]&&n(h,c,u),s[u]=s.Array}},function(i,e,t){var r=t(81),n=t(82),s=t(83),c=t(84);i.exports=t(88)(Array,"Array",function(l,f){this._t=c(l),this._i=0,this._k=f},function(){var l=this._t,f=this._k,u=this._i++;return!l||u>=l.length?(this._t=void 0,n(1)):f=="keys"?n(0,u):f=="values"?n(0,l[u]):n(0,[u,l[u]])},"values"),s.Arguments=s.Array,r("keys"),r("values"),r("entries")},function(i,e){i.exports=function(){}},function(i,e){i.exports=function(t,r){return{value:r,done:!!t}}},function(i,e){i.exports={}},function(i,e,t){var r=t(85),n=t(87);i.exports=function(s){return r(n(s))}},function(i,e,t){var r=t(86);i.exports=Object("z").propertyIsEnumerable(0)?Object:function(n){return r(n)=="String"?n.split(""):Object(n)}},function(i,e){var t={}.toString;i.exports=function(r){return t.call(r).slice(8,-1)}},function(i,e){i.exports=function(t){if(t==null)throw TypeError("Can't call method on "+t);return t}},function(i,e,t){var r=t(89),n=t(90),s=t(106),c=t(95),l=t(83),f=t(107),u=t(121),v=t(123),h=t(122)("iterator"),y=!([].keys&&"next"in[].keys()),T="@@iterator",O="keys",C="values",S=function(){return this};i.exports=function(w,d,g,p,P,A,R){f(g,d,p);var D=function(K){if(!y&&K in Y)return Y[K];switch(K){case O:return function(){return new g(this,K)};case C:return function(){return new g(this,K)}}return function(){return new g(this,K)}},U=d+" Iterator",L=P==C,W=!1,Y=w.prototype,B=Y[h]||Y[T]||P&&Y[P],N=B||D(P),$=P?L?D("entries"):N:void 0,J=d=="Array"&&Y.entries||B,et,ot,ut;if(J&&(ut=v(J.call(new w)),ut!==Object.prototype&&ut.next&&(u(ut,U,!0),!r&&typeof ut[h]!="function"&&c(ut,h,S))),L&&B&&B.name!==C&&(W=!0,N=function(){return B.call(this)}),(!r||R)&&(y||W||!Y[h])&&c(Y,h,N),l[d]=N,l[U]=S,P)if(et={values:L?N:D(C),keys:A?N:D(O),entries:$},R)for(ot in et)ot in Y||s(Y,ot,et[ot]);else n(n.P+n.F*(y||W),d,et);return et}},function(i,e){i.exports=!0},function(i,e,t){var r=t(91),n=t(92),s=t(93),c=t(95),l=t(105),f="prototype",u=function(v,h,y){var T=v&u.F,O=v&u.G,C=v&u.S,S=v&u.P,w=v&u.B,d=v&u.W,g=O?n:n[h]||(n[h]={}),p=g[f],P=O?r:C?r[h]:(r[h]||{})[f],A,R,D;O&&(y=h);for(A in y)R=!T&&P&&P[A]!==void 0,!(R&&l(g,A))&&(D=R?P[A]:y[A],g[A]=O&&typeof P[A]!="function"?y[A]:w&&R?s(D,r):d&&P[A]==D?function(U){var L=function(W,Y,B){if(this instanceof U){switch(arguments.length){case 0:return new U;case 1:return new U(W);case 2:return new U(W,Y)}return new U(W,Y,B)}return U.apply(this,arguments)};return L[f]=U[f],L}(D):S&&typeof D=="function"?s(Function.call,D):D,S&&((g.virtual||(g.virtual={}))[A]=D,v&u.R&&p&&!p[A]&&c(p,A,D)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,i.exports=u},function(i,e){var t=i.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=t)},function(i,e){var t=i.exports={version:"2.6.11"};typeof __e=="number"&&(__e=t)},function(i,e,t){var r=t(94);i.exports=function(n,s,c){if(r(n),s===void 0)return n;switch(c){case 1:return function(l){return n.call(s,l)};case 2:return function(l,f){return n.call(s,l,f)};case 3:return function(l,f,u){return n.call(s,l,f,u)}}return function(){return n.apply(s,arguments)}}},function(i,e){i.exports=function(t){if(typeof t!="function")throw TypeError(t+" is not a function!");return t}},function(i,e,t){var r=t(96),n=t(104);i.exports=t(100)?function(s,c,l){return r.f(s,c,n(1,l))}:function(s,c,l){return s[c]=l,s}},function(i,e,t){var r=t(97),n=t(99),s=t(103),c=Object.defineProperty;e.f=t(100)?Object.defineProperty:function(f,u,v){if(r(f),u=s(u,!0),r(v),n)try{return c(f,u,v)}catch{}if("get"in v||"set"in v)throw TypeError("Accessors not supported!");return"value"in v&&(f[u]=v.value),f}},function(i,e,t){var r=t(98);i.exports=function(n){if(!r(n))throw TypeError(n+" is not an object!");return n}},function(i,e){i.exports=function(t){return typeof t=="object"?t!==null:typeof t=="function"}},function(i,e,t){i.exports=!t(100)&&!t(101)(function(){return Object.defineProperty(t(102)("div"),"a",{get:function(){return 7}}).a!=7})},function(i,e,t){i.exports=!t(101)(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7})},function(i,e){i.exports=function(t){try{return!!t()}catch{return!0}}},function(i,e,t){var r=t(98),n=t(91).document,s=r(n)&&r(n.createElement);i.exports=function(c){return s?n.createElement(c):{}}},function(i,e,t){var r=t(98);i.exports=function(n,s){if(!r(n))return n;var c,l;if(s&&typeof(c=n.toString)=="function"&&!r(l=c.call(n))||typeof(c=n.valueOf)=="function"&&!r(l=c.call(n))||!s&&typeof(c=n.toString)=="function"&&!r(l=c.call(n)))return l;throw TypeError("Can't convert object to primitive value")}},function(i,e){i.exports=function(t,r){return{enumerable:!(t&1),configurable:!(t&2),writable:!(t&4),value:r}}},function(i,e){var t={}.hasOwnProperty;i.exports=function(r,n){return t.call(r,n)}},function(i,e,t){i.exports=t(95)},function(i,e,t){var r=t(108),n=t(104),s=t(121),c={};t(95)(c,t(122)("iterator"),function(){return this}),i.exports=function(l,f,u){l.prototype=r(c,{next:n(1,u)}),s(l,f+" Iterator")}},function(i,e,t){var r=t(97),n=t(109),s=t(119),c=t(116)("IE_PROTO"),l=function(){},f="prototype",u=function(){var v=t(102)("iframe"),h=s.length,y="<",T=">",O;for(v.style.display="none",t(120).appendChild(v),v.src="javascript:",O=v.contentWindow.document,O.open(),O.write(y+"script"+T+"document.F=Object"+y+"/script"+T),O.close(),u=O.F;h--;)delete u[f][s[h]];return u()};i.exports=Object.create||function(h,y){var T;return h!==null?(l[f]=r(h),T=new l,l[f]=null,T[c]=h):T=u(),y===void 0?T:n(T,y)}},function(i,e,t){var r=t(96),n=t(97),s=t(110);i.exports=t(100)?Object.defineProperties:function(l,f){n(l);for(var u=s(f),v=u.length,h=0,y;v>h;)r.f(l,y=u[h++],f[y]);return l}},function(i,e,t){var r=t(111),n=t(119);i.exports=Object.keys||function(c){return r(c,n)}},function(i,e,t){var r=t(105),n=t(84),s=t(112)(!1),c=t(116)("IE_PROTO");i.exports=function(l,f){var u=n(l),v=0,h=[],y;for(y in u)y!=c&&r(u,y)&&h.push(y);for(;f.length>v;)r(u,y=f[v++])&&(~s(h,y)||h.push(y));return h}},function(i,e,t){var r=t(84),n=t(113),s=t(115);i.exports=function(c){return function(l,f,u){var v=r(l),h=n(v.length),y=s(u,h),T;if(c&&f!=f){for(;h>y;)if(T=v[y++],T!=T)return!0}else for(;h>y;y++)if((c||y in v)&&v[y]===f)return c||y||0;return!c&&-1}}},function(i,e,t){var r=t(114),n=Math.min;i.exports=function(s){return s>0?n(r(s),9007199254740991):0}},function(i,e){var t=Math.ceil,r=Math.floor;i.exports=function(n){return isNaN(n=+n)?0:(n>0?r:t)(n)}},function(i,e,t){var r=t(114),n=Math.max,s=Math.min;i.exports=function(c,l){return c=r(c),c<0?n(c+l,0):s(c,l)}},function(i,e,t){var r=t(117)("keys"),n=t(118);i.exports=function(s){return r[s]||(r[s]=n(s))}},function(i,e,t){var r=t(92),n=t(91),s="__core-js_shared__",c=n[s]||(n[s]={});(i.exports=function(l,f){return c[l]||(c[l]=f!==void 0?f:{})})("versions",[]).push({version:r.version,mode:t(89)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(i,e){var t=0,r=Math.random();i.exports=function(n){return"Symbol(".concat(n===void 0?"":n,")_",(++t+r).toString(36))}},function(i,e){i.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(i,e,t){var r=t(91).document;i.exports=r&&r.documentElement},function(i,e,t){var r=t(96).f,n=t(105),s=t(122)("toStringTag");i.exports=function(c,l,f){c&&!n(c=f?c:c.prototype,s)&&r(c,s,{configurable:!0,value:l})}},function(i,e,t){var r=t(117)("wks"),n=t(118),s=t(91).Symbol,c=typeof s=="function",l=i.exports=function(f){return r[f]||(r[f]=c&&s[f]||(c?s:n)("Symbol."+f))};l.store=r},function(i,e,t){var r=t(105),n=t(124),s=t(116)("IE_PROTO"),c=Object.prototype;i.exports=Object.getPrototypeOf||function(l){return l=n(l),r(l,s)?l[s]:typeof l.constructor=="function"&&l instanceof l.constructor?l.constructor.prototype:l instanceof Object?c:null}},function(i,e,t){var r=t(87);i.exports=function(n){return Object(r(n))}},function(i,e,t){var r=t(126)(!0);t(88)(String,"String",function(n){this._t=String(n),this._i=0},function(){var n=this._t,s=this._i,c;return s>=n.length?{value:void 0,done:!0}:(c=r(n,s),this._i+=c.length,{value:c,done:!1})})},function(i,e,t){var r=t(114),n=t(87);i.exports=function(s){return function(c,l){var f=String(n(c)),u=r(l),v=f.length,h,y;return u<0||u>=v?s?"":void 0:(h=f.charCodeAt(u),h<55296||h>56319||u+1===v||(y=f.charCodeAt(u+1))<56320||y>57343?s?f.charAt(u):h:s?f.slice(u,u+2):(h-55296<<10)+(y-56320)+65536)}}},function(i,e,t){var r=t(128),n=t(122)("iterator"),s=t(83);i.exports=t(92).isIterable=function(c){var l=Object(c);return l[n]!==void 0||"@@iterator"in l||s.hasOwnProperty(r(l))}},function(i,e,t){var r=t(86),n=t(122)("toStringTag"),s=r(function(){return arguments}())=="Arguments",c=function(l,f){try{return l[f]}catch{}};i.exports=function(l){var f,u,v;return l===void 0?"Undefined":l===null?"Null":typeof(u=c(f=Object(l),n))=="string"?u:s?r(f):(v=r(f))=="Object"&&typeof f.callee=="function"?"Arguments":v}},function(i,e,t){i.exports={default:t(130),__esModule:!0}},function(i,e,t){t(79),t(125),i.exports=t(131)},function(i,e,t){var r=t(97),n=t(132);i.exports=t(92).getIterator=function(s){var c=n(s);if(typeof c!="function")throw TypeError(s+" is not iterable!");return r(c.call(s))}},function(i,e,t){var r=t(128),n=t(122)("iterator"),s=t(83);i.exports=t(92).getIteratorMethod=function(c){if(c!=null)return c[n]||c["@@iterator"]||s[r(c)]}},function(i,e,t){e.__esModule=!0;var r=t(134),n=s(r);function s(c){return c&&c.__esModule?c:{default:c}}e.default=function(c){if(Array.isArray(c)){for(var l=0,f=Array(c.length);l<c.length;l++)f[l]=c[l];return f}else return(0,n.default)(c)}},function(i,e,t){i.exports={default:t(135),__esModule:!0}},function(i,e,t){t(125),t(136),i.exports=t(92).Array.from},function(i,e,t){var r=t(93),n=t(90),s=t(124),c=t(137),l=t(138),f=t(113),u=t(139),v=t(132);n(n.S+n.F*!t(140)(function(h){Array.from(h)}),"Array",{from:function(y){var T=s(y),O=typeof this=="function"?this:Array,C=arguments.length,S=C>1?arguments[1]:void 0,w=S!==void 0,d=0,g=v(T),p,P,A,R;if(w&&(S=r(S,C>2?arguments[2]:void 0,2)),g!=null&&!(O==Array&&l(g)))for(R=g.call(T),P=new O;!(A=R.next()).done;d++)u(P,d,w?c(R,S,[A.value,d],!0):A.value);else for(p=f(T.length),P=new O(p);p>d;d++)u(P,d,w?S(T[d],d):T[d]);return P.length=d,P}})},function(i,e,t){var r=t(97);i.exports=function(n,s,c,l){try{return l?s(r(c)[0],c[1]):s(c)}catch(u){var f=n.return;throw f!==void 0&&r(f.call(n)),u}}},function(i,e,t){var r=t(83),n=t(122)("iterator"),s=Array.prototype;i.exports=function(c){return c!==void 0&&(r.Array===c||s[n]===c)}},function(i,e,t){var r=t(96),n=t(104);i.exports=function(s,c,l){c in s?r.f(s,c,n(0,l)):s[c]=l}},function(i,e,t){var r=t(122)("iterator"),n=!1;try{var s=[7][r]();s.return=function(){n=!0},Array.from(s,function(){throw 2})}catch{}i.exports=function(c,l){if(!l&&!n)return!1;var f=!1;try{var u=[7],v=u[r]();v.next=function(){return{done:f=!0}},u[r]=function(){return v},c(u)}catch{}return f}},function(i,e,t){i.exports={default:t(142),__esModule:!0}},function(i,e,t){t(143),t(125),t(79),t(144),t(157),t(160),t(162),i.exports=t(92).Map},function(i,e){},function(i,e,t){var r=t(145),n=t(151),s="Map";i.exports=t(152)(s,function(c){return function(){return c(this,arguments.length>0?arguments[0]:void 0)}},{get:function(l){var f=r.getEntry(n(this,s),l);return f&&f.v},set:function(l,f){return r.def(n(this,s),l===0?0:l,f)}},r,!0)},function(i,e,t){var r=t(96).f,n=t(108),s=t(146),c=t(93),l=t(147),f=t(148),u=t(88),v=t(82),h=t(149),y=t(100),T=t(150).fastKey,O=t(151),C=y?"_s":"size",S=function(w,d){var g=T(d),p;if(g!=="F")return w._i[g];for(p=w._f;p;p=p.n)if(p.k==d)return p};i.exports={getConstructor:function(w,d,g,p){var P=w(function(A,R){l(A,P,d,"_i"),A._t=d,A._i=n(null),A._f=void 0,A._l=void 0,A[C]=0,R!=null&&f(R,g,A[p],A)});return s(P.prototype,{clear:function(){for(var R=O(this,d),D=R._i,U=R._f;U;U=U.n)U.r=!0,U.p&&(U.p=U.p.n=void 0),delete D[U.i];R._f=R._l=void 0,R[C]=0},delete:function(A){var R=O(this,d),D=S(R,A);if(D){var U=D.n,L=D.p;delete R._i[D.i],D.r=!0,L&&(L.n=U),U&&(U.p=L),R._f==D&&(R._f=U),R._l==D&&(R._l=L),R[C]--}return!!D},forEach:function(R){O(this,d);for(var D=c(R,arguments.length>1?arguments[1]:void 0,3),U;U=U?U.n:this._f;)for(D(U.v,U.k,this);U&&U.r;)U=U.p},has:function(R){return!!S(O(this,d),R)}}),y&&r(P.prototype,"size",{get:function(){return O(this,d)[C]}}),P},def:function(w,d,g){var p=S(w,d),P,A;return p?p.v=g:(w._l=p={i:A=T(d,!0),k:d,v:g,p:P=w._l,n:void 0,r:!1},w._f||(w._f=p),P&&(P.n=p),w[C]++,A!=="F"&&(w._i[A]=p)),w},getEntry:S,setStrong:function(w,d,g){u(w,d,function(p,P){this._t=O(p,d),this._k=P,this._l=void 0},function(){for(var p=this,P=p._k,A=p._l;A&&A.r;)A=A.p;return!p._t||!(p._l=A=A?A.n:p._t._f)?(p._t=void 0,v(1)):P=="keys"?v(0,A.k):P=="values"?v(0,A.v):v(0,[A.k,A.v])},g?"entries":"values",!g,!0),h(d)}}},function(i,e,t){var r=t(95);i.exports=function(n,s,c){for(var l in s)c&&n[l]?n[l]=s[l]:r(n,l,s[l]);return n}},function(i,e){i.exports=function(t,r,n,s){if(!(t instanceof r)||s!==void 0&&s in t)throw TypeError(n+": incorrect invocation!");return t}},function(i,h,t){var r=t(93),n=t(137),s=t(138),c=t(97),l=t(113),f=t(132),u={},v={},h=i.exports=function(y,T,O,C,S){var w=S?function(){return y}:f(y),d=r(O,C,T?2:1),g=0,p,P,A,R;if(typeof w!="function")throw TypeError(y+" is not iterable!");if(s(w)){for(p=l(y.length);p>g;g++)if(R=T?d(c(P=y[g])[0],P[1]):d(y[g]),R===u||R===v)return R}else for(A=w.call(y);!(P=A.next()).done;)if(R=n(A,d,P.value,T),R===u||R===v)return R};h.BREAK=u,h.RETURN=v},function(i,e,t){var r=t(91),n=t(92),s=t(96),c=t(100),l=t(122)("species");i.exports=function(f){var u=typeof n[f]=="function"?n[f]:r[f];c&&u&&!u[l]&&s.f(u,l,{configurable:!0,get:function(){return this}})}},function(i,e,t){var r=t(118)("meta"),n=t(98),s=t(105),c=t(96).f,l=0,f=Object.isExtensible||function(){return!0},u=!t(101)(function(){return f(Object.preventExtensions({}))}),v=function(C){c(C,r,{value:{i:"O"+ ++l,w:{}}})},h=function(C,S){if(!n(C))return typeof C=="symbol"?C:(typeof C=="string"?"S":"P")+C;if(!s(C,r)){if(!f(C))return"F";if(!S)return"E";v(C)}return C[r].i},y=function(C,S){if(!s(C,r)){if(!f(C))return!0;if(!S)return!1;v(C)}return C[r].w},T=function(C){return u&&O.NEED&&f(C)&&!s(C,r)&&v(C),C},O=i.exports={KEY:r,NEED:!1,fastKey:h,getWeak:y,onFreeze:T}},function(i,e,t){var r=t(98);i.exports=function(n,s){if(!r(n)||n._t!==s)throw TypeError("Incompatible receiver, "+s+" required!");return n}},function(i,e,t){var r=t(91),n=t(90),s=t(150),c=t(101),l=t(95),f=t(146),u=t(148),v=t(147),h=t(98),y=t(121),T=t(96).f,O=t(153)(0),C=t(100);i.exports=function(S,w,d,g,p,P){var A=r[S],R=A,D=p?"set":"add",U=R&&R.prototype,L={};return!C||typeof R!="function"||!(P||U.forEach&&!c(function(){new R().entries().next()}))?(R=g.getConstructor(w,S,p,D),f(R.prototype,d),s.NEED=!0):(R=w(function(W,Y){v(W,R,S,"_c"),W._c=new A,Y!=null&&u(Y,p,W[D],W)}),O("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(W){var Y=W=="add"||W=="set";W in U&&!(P&&W=="clear")&&l(R.prototype,W,function(B,N){if(v(this,R,W),!Y&&P&&!h(B))return W=="get"?void 0:!1;var $=this._c[W](B===0?0:B,N);return Y?this:$})}),P||T(R.prototype,"size",{get:function(){return this._c.size}})),y(R,S),L[S]=R,n(n.G+n.W+n.F,L),P||g.setStrong(R,S,p),R}},function(i,e,t){var r=t(93),n=t(85),s=t(124),c=t(113),l=t(154);i.exports=function(f,u){var v=f==1,h=f==2,y=f==3,T=f==4,O=f==6,C=f==5||O,S=u||l;return function(w,d,g){for(var p=s(w),P=n(p),A=r(d,g,3),R=c(P.length),D=0,U=v?S(w,R):h?S(w,0):void 0,L,W;R>D;D++)if((C||D in P)&&(L=P[D],W=A(L,D,p),f)){if(v)U[D]=W;else if(W)switch(f){case 3:return!0;case 5:return L;case 6:return D;case 2:U.push(L)}else if(T)return!1}return O?-1:y||T?T:U}}},function(i,e,t){var r=t(155);i.exports=function(n,s){return new(r(n))(s)}},function(i,e,t){var r=t(98),n=t(156),s=t(122)("species");i.exports=function(c){var l;return n(c)&&(l=c.constructor,typeof l=="function"&&(l===Array||n(l.prototype))&&(l=void 0),r(l)&&(l=l[s],l===null&&(l=void 0))),l===void 0?Array:l}},function(i,e,t){var r=t(86);i.exports=Array.isArray||function(s){return r(s)=="Array"}},function(i,e,t){var r=t(90);r(r.P+r.R,"Map",{toJSON:t(158)("Map")})},function(i,e,t){var r=t(128),n=t(159);i.exports=function(s){return function(){if(r(this)!=s)throw TypeError(s+"#toJSON isn't generic");return n(this)}}},function(i,e,t){var r=t(148);i.exports=function(n,s){var c=[];return r(n,!1,c.push,c,s),c}},function(i,e,t){t(161)("Map")},function(i,e,t){var r=t(90);i.exports=function(n){r(r.S,n,{of:function(){for(var c=arguments.length,l=new Array(c);c--;)l[c]=arguments[c];return new this(l)}})}},function(i,e,t){t(163)("Map")},function(i,e,t){var r=t(90),n=t(94),s=t(93),c=t(148);i.exports=function(l){r(r.S,l,{from:function(u){var v=arguments[1],h,y,T,O;return n(this),h=v!==void 0,h&&n(v),u==null?new this:(y=[],h?(T=0,O=s(v,arguments[2],2),c(u,!1,function(C){y.push(O(C,T++))})):c(u,!1,y.push,y),new this(y))}})}},function(i,e,t){i.exports={default:t(165),__esModule:!0}},function(i,e,t){t(166),i.exports=t(92).Object.assign},function(i,e,t){var r=t(90);r(r.S+r.F,"Object",{assign:t(167)})},function(i,e,t){var r=t(100),n=t(110),s=t(168),c=t(169),l=t(124),f=t(85),u=Object.assign;i.exports=!u||t(101)(function(){var v={},h={},y=Symbol(),T="abcdefghijklmnopqrst";return v[y]=7,T.split("").forEach(function(O){h[O]=O}),u({},v)[y]!=7||Object.keys(u({},h)).join("")!=T})?function(h,y){for(var T=l(h),O=arguments.length,C=1,S=s.f,w=c.f;O>C;)for(var d=f(arguments[C++]),g=S?n(d).concat(S(d)):n(d),p=g.length,P=0,A;p>P;)A=g[P++],(!r||w.call(d,A))&&(T[A]=d[A]);return T}:u},function(i,e){e.f=Object.getOwnPropertySymbols},function(i,e){e.f={}.propertyIsEnumerable},function(i,e,t){e.__esModule=!0,e.default=function(r,n){if(!(r instanceof n))throw new TypeError("Cannot call a class as a function")}},function(i,e,t){e.__esModule=!0;var r=t(172),n=s(r);function s(c){return c&&c.__esModule?c:{default:c}}e.default=function(){function c(l,f){for(var u=0;u<f.length;u++){var v=f[u];v.enumerable=v.enumerable||!1,v.configurable=!0,"value"in v&&(v.writable=!0),(0,n.default)(l,v.key,v)}}return function(l,f,u){return f&&c(l.prototype,f),u&&c(l,u),l}}()},function(i,e,t){i.exports={default:t(173),__esModule:!0}},function(i,e,t){t(174);var r=t(92).Object;i.exports=function(s,c,l){return r.defineProperty(s,c,l)}},function(i,e,t){var r=t(90);r(r.S+r.F*!t(100),"Object",{defineProperty:t(96).f})},function(i,e,t){i.exports={default:t(176),__esModule:!0}},function(i,e,t){t(177),t(143),t(184),t(185),i.exports=t(92).Symbol},function(i,e,t){var r=t(91),n=t(105),s=t(100),c=t(90),l=t(106),f=t(150).KEY,u=t(101),v=t(117),h=t(121),y=t(118),T=t(122),O=t(178),C=t(179),S=t(180),w=t(156),d=t(97),g=t(98),p=t(124),P=t(84),A=t(103),R=t(104),D=t(108),U=t(181),L=t(183),W=t(168),Y=t(96),B=t(110),N=L.f,$=Y.f,J=U.f,et=r.Symbol,ot=r.JSON,ut=ot&&ot.stringify,K="prototype",Q=T("_hidden"),ft=T("toPrimitive"),mt={}.propertyIsEnumerable,yt=v("symbol-registry"),Et=v("symbols"),ht=v("op-symbols"),Nt=Object[K],Bt=typeof et=="function"&&!!W.f,G=r.QObject,H=!G||!G[K]||!G[K].findChild,rt=s&&u(function(){return D($({},"a",{get:function(){return $(this,"a",{value:7}).a}})).a!=7})?function(wt,Ot,Lt){var Yt=N(Nt,Ot);Yt&&delete Nt[Ot],$(wt,Ot,Lt),Yt&&wt!==Nt&&$(Nt,Ot,Yt)}:$,at=function(wt){var Ot=Et[wt]=D(et[K]);return Ot._k=wt,Ot},z=Bt&&typeof et.iterator=="symbol"?function(wt){return typeof wt=="symbol"}:function(wt){return wt instanceof et},j=function(Ot,Lt,Yt){return Ot===Nt&&j(ht,Lt,Yt),d(Ot),Lt=A(Lt,!0),d(Yt),n(Et,Lt)?(Yt.enumerable?(n(Ot,Q)&&Ot[Q][Lt]&&(Ot[Q][Lt]=!1),Yt=D(Yt,{enumerable:R(0,!1)})):(n(Ot,Q)||$(Ot,Q,R(1,{})),Ot[Q][Lt]=!0),rt(Ot,Lt,Yt)):$(Ot,Lt,Yt)},I=function(Ot,Lt){d(Ot);for(var Yt=S(Lt=P(Lt)),$t=0,Wt=Yt.length,Qt;Wt>$t;)j(Ot,Qt=Yt[$t++],Lt[Qt]);return Ot},M=function(Ot,Lt){return Lt===void 0?D(Ot):I(D(Ot),Lt)},X=function(Ot){var Lt=mt.call(this,Ot=A(Ot,!0));return this===Nt&&n(Et,Ot)&&!n(ht,Ot)?!1:Lt||!n(this,Ot)||!n(Et,Ot)||n(this,Q)&&this[Q][Ot]?Lt:!0},Z=function(Ot,Lt){if(Ot=P(Ot),Lt=A(Lt,!0),!(Ot===Nt&&n(Et,Lt)&&!n(ht,Lt))){var Yt=N(Ot,Lt);return Yt&&n(Et,Lt)&&!(n(Ot,Q)&&Ot[Q][Lt])&&(Yt.enumerable=!0),Yt}},q=function(Ot){for(var Lt=J(P(Ot)),Yt=[],$t=0,Wt;Lt.length>$t;)!n(Et,Wt=Lt[$t++])&&Wt!=Q&&Wt!=f&&Yt.push(Wt);return Yt},nt=function(Ot){for(var Lt=Ot===Nt,Yt=J(Lt?ht:P(Ot)),$t=[],Wt=0,Qt;Yt.length>Wt;)n(Et,Qt=Yt[Wt++])&&(!Lt||n(Nt,Qt))&&$t.push(Et[Qt]);return $t};Bt||(et=function(){if(this instanceof et)throw TypeError("Symbol is not a constructor!");var Ot=y(arguments.length>0?arguments[0]:void 0),Lt=function(Yt){this===Nt&&Lt.call(ht,Yt),n(this,Q)&&n(this[Q],Ot)&&(this[Q][Ot]=!1),rt(this,Ot,R(1,Yt))};return s&&H&&rt(Nt,Ot,{configurable:!0,set:Lt}),at(Ot)},l(et[K],"toString",function(){return this._k}),L.f=Z,Y.f=j,t(182).f=U.f=q,t(169).f=X,W.f=nt,s&&!t(89)&&l(Nt,"propertyIsEnumerable",X,!0),O.f=function(wt){return at(T(wt))}),c(c.G+c.W+c.F*!Bt,{Symbol:et});for(var ct="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),Pt=0;ct.length>Pt;)T(ct[Pt++]);for(var Ct=B(T.store),At=0;Ct.length>At;)C(Ct[At++]);c(c.S+c.F*!Bt,"Symbol",{for:function(wt){return n(yt,wt+="")?yt[wt]:yt[wt]=et(wt)},keyFor:function(Ot){if(!z(Ot))throw TypeError(Ot+" is not a symbol!");for(var Lt in yt)if(yt[Lt]===Ot)return Lt},useSetter:function(){H=!0},useSimple:function(){H=!1}}),c(c.S+c.F*!Bt,"Object",{create:M,defineProperty:j,defineProperties:I,getOwnPropertyDescriptor:Z,getOwnPropertyNames:q,getOwnPropertySymbols:nt});var bt=u(function(){W.f(1)});c(c.S+c.F*bt,"Object",{getOwnPropertySymbols:function(Ot){return W.f(p(Ot))}}),ot&&c(c.S+c.F*(!Bt||u(function(){var wt=et();return ut([wt])!="[null]"||ut({a:wt})!="{}"||ut(Object(wt))!="{}"})),"JSON",{stringify:function(Ot){for(var Lt=[Ot],Yt=1,$t,Wt;arguments.length>Yt;)Lt.push(arguments[Yt++]);if(Wt=$t=Lt[1],!(!g($t)&&Ot===void 0||z(Ot)))return w($t)||($t=function(Qt,ue){if(typeof Wt=="function"&&(ue=Wt.call(this,Qt,ue)),!z(ue))return ue}),Lt[1]=$t,ut.apply(ot,Lt)}}),et[K][ft]||t(95)(et[K],ft,et[K].valueOf),h(et,"Symbol"),h(Math,"Math",!0),h(r.JSON,"JSON",!0)},function(i,e,t){e.f=t(122)},function(i,e,t){var r=t(91),n=t(92),s=t(89),c=t(178),l=t(96).f;i.exports=function(f){var u=n.Symbol||(n.Symbol=s?{}:r.Symbol||{});f.charAt(0)!="_"&&!(f in u)&&l(u,f,{value:c.f(f)})}},function(i,e,t){var r=t(110),n=t(168),s=t(169);i.exports=function(c){var l=r(c),f=n.f;if(f)for(var u=f(c),v=s.f,h=0,y;u.length>h;)v.call(c,y=u[h++])&&l.push(y);return l}},function(i,e,t){var r=t(84),n=t(182).f,s={}.toString,c=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],l=function(f){try{return n(f)}catch{return c.slice()}};i.exports.f=function(u){return c&&s.call(u)=="[object Window]"?l(u):n(r(u))}},function(i,e,t){var r=t(111),n=t(119).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(c){return r(c,n)}},function(i,e,t){var r=t(169),n=t(104),s=t(84),c=t(103),l=t(105),f=t(99),u=Object.getOwnPropertyDescriptor;e.f=t(100)?u:function(h,y){if(h=s(h),y=c(y,!0),f)try{return u(h,y)}catch{}if(l(h,y))return n(!r.f.call(h,y),h[y])}},function(i,e,t){t(179)("asyncIterator")},function(i,e,t){t(179)("observable")},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.createNowTime=r,e.formatDelay=n;function r(){var s=null;return Date.now?s=Date.now:s=function(){return new Date().getTime()},s}function n(s){return typeof s=="number"?s={delay:s}:"entropy"in s&&(s={delay:s.entropy,isEntropy:!0}),s}},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default={default:function(n,s,c,l,f){return typeof n=="number"&&typeof s=="number"?n+(c-l)/(f-l)*(s-n):c-l>f-c?s:n}}},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.parseEasing=e.Easings=void 0;var r=t(76),n=u(r),s=t(133),c=u(s),l=t(141),f=u(l);function u(w){return w&&w.__esModule?w:{default:w}}var v=t(189),h=new f.default;function y(){for(var w=arguments.length,d=Array(w),g=0;g<w;g++)d[g]=arguments[g];var p=h.get(d);return p||(p=v.apply(void 0,d),h.set(d,p),p)}function T(w){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"end";return function(g,p){for(var P=1;P<p.length;P++){var A=p[P].offset;if(g<=A){var R=p[P-1].offset,D=A,U=(g-R)/(D-R),L=1/w,W=U/L;return d==="end"?W=Math.floor(W):W=Math.ceil(W),L*W*(D-R)+R}}return 0}}function O(w){var d=/^cubic-bezier\((.*)\)/,g=w.match(d);if(g){var p=g[1].trim();return p=p.split(",").map(function(L){return parseFloat(L.trim())}),y.apply(void 0,(0,c.default)(p))}if(d=/^steps\((.*)\)/,g=w.match(d),g){var P=g[1].trim();P=P.split(",").map(function(L){return L.trim()});var A=P,R=(0,n.default)(A,2),D=R[0],U=R[1];return T(parseInt(D,10),U)}return w}var C={linear:function(d){return d},ease:y(.25,.1,.25,1),"ease-in":y(.42,0,1,1),"ease-out":y(0,0,.58,1),"ease-in-out":y(.42,0,.58,1),"step-start":T(1,"start"),"step-end":T(1,"end")};function S(w){return typeof w=="string"?C[w]?w=C[w]:w=O(w):w.type==="cubic-bezier"?w=y.apply(void 0,(0,c.default)(w.value)):w.type==="steps"&&(w=T(w.step,w.pos)),w}e.Easings=C,e.parseEasing=S},function(i,e){var t=4,r=.001,n=1e-7,s=10,c=11,l=1/(c-1),f=typeof Float32Array=="function";function u(w,d){return 1-3*d+3*w}function v(w,d){return 3*d-6*w}function h(w){return 3*w}function y(w,d,g){return((u(d,g)*w+v(d,g))*w+h(d))*w}function T(w,d,g){return 3*u(d,g)*w*w+2*v(d,g)*w+h(d)}function O(w,d,g,p,P){var A,R,D=0;do R=d+(g-d)/2,A=y(R,p,P)-w,A>0?g=R:d=R;while(Math.abs(A)>n&&++D<s);return R}function C(w,d,g,p){for(var P=0;P<t;++P){var A=T(d,g,p);if(A===0)return d;var R=y(d,g,p)-w;d-=R/A}return d}function S(w){return w}i.exports=function(d,g,p,P){if(!(0<=d&&d<=1&&0<=p&&p<=1))throw new Error("bezier x values must be in [0, 1] range");if(d===g&&p===P)return S;for(var A=f?new Float32Array(c):new Array(c),R=0;R<c;++R)A[R]=y(R*l,d,p);function D(U){for(var L=0,W=1,Y=c-1;W!==Y&&A[W]<=U;++W)L+=l;--W;var B=(U-A[W])/(A[W+1]-A[W]),N=L+B*l,$=T(N,d,p);return $>=r?C(U,N,d,p):$===0?N:O(U,L,L+l,d,p)}return function(L){return L===0?0:L===1?1:y(D(L),g,P)}}},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0});var r=t(191),n=g(r),s=t(204),c=g(s),l=t(164),f=g(l),u=t(170),v=g(u),h=t(171),y=g(h),T=t(175),O=g(T),C=t(75),S=g(C),w=t(208),d=t(188);function g($){return $&&$.__esModule?$:{default:$}}var p=(0,O.default)("timing"),P=(0,O.default)("keyframes"),A=(0,O.default)("initState"),R=(0,O.default)("readyDefer"),D=(0,O.default)("finishedDefer"),U=(0,O.default)("effects"),L=(0,O.default)("activeReadyTimer"),W=(0,O.default)("activeFinishTimer"),Y=(0,O.default)("removeDefer"),B={delay:0,endDelay:0,fill:"auto",iterations:1,playbackRate:1,direction:"normal",easing:"linear",effect:null},N=function(){function $(J,et,ot){var ut=this;if((0,v.default)(this,$),Array.isArray(J)){var K=[J[0],J,et];J=K[0],et=K[1],ot=K[2]}typeof ot=="number"&&(ot={duration:ot}),this[p]=(0,f.default)({},B,ot),this[p].easing=(0,d.parseEasing)(this[p].easing),this[P]=(0,w.calculateFramesOffset)(et);var Q=this[P][this[P].length-1];this[A]={},(0,c.default)(Q).forEach(function(ft){Object.prototype.hasOwnProperty.call(J,ft)&&ft!=="easing"&&ft!=="offset"&&(ut[A][ft]=J[ft])}),this[P]=this[P].map(function(ft){return(0,f.default)({},ut[A],ft)}),this[P][0].offset!==0&&this[P].unshift((0,f.default)({},this[A],{offset:0})),Q.offset<1&&this[P].push((0,f.default)({},Q,{offset:1})),this[U]={},this.timeline=null}return(0,y.default)($,[{key:"pause",value:function(){this.timeline.playbackRate=0}},{key:L,value:function(){var et=this;this[R]&&!this[R].timerID&&(this.timeline.currentTime<0?this[R].timerID=this.timeline.setTimeout(function(){et[R].resolve(),delete et[R]},{delay:-this.timeline.currentTime,heading:!1}):this[R].timerID=this.timeline.setTimeout(function(){et[R].resolve(),delete et[R]},{delay:0,isEntropy:!0}))}},{key:W,value:function(){var et=this,ot=this[p],ut=ot.duration,K=ot.iterations,Q=ot.endDelay,ft=Math.ceil(ut*K+Q-this.timeline.currentTime)+1;this[D]&&!this[D].timerID&&(this[D].timerID=this.timeline.setTimeout(function(){et[D].resolve(),et[Y](R),et[Y](D)},{delay:ft,heading:!1}),this[D].reverseTimerID=this.timeline.setTimeout(function(){et[D].resolve(),et[Y](R),et[Y](D),et.timeline=null},{delay:-this[p].delay-1,heading:!1}))}},{key:"play",value:function(){if(this.playState==="finished"&&this.cancel(),this.playState==="idle"){if(this.playbackRate<=0)return;var et=this[p],ot=et.delay,ut=et.playbackRate,K=et.timeline;this.timeline=new S.default({originTime:ot,playbackRate:ut},K),this[L](),this[W]()}else this.playState==="paused"&&(this.timeline.playbackRate=this.playbackRate,this[L]())}},{key:Y,value:function(et){var ot=this[et],ut=this.timeline;ot&&ut&&(ut.clearTimeout(ot.timerID),ot.reverseTimerID&&ut.clearTimeout(ot.reverseTimerID)),delete this[et]}},{key:"cancel",value:function(){this[Y](R),this[Y](D),this.timeline=null}},{key:"finish",value:function(){this.timeline&&(this.timeline.currentTime=1/0/this.playbackRate),this[Y](R),this[Y](D)}},{key:"applyEffects",value:function(et){return(0,f.default)(this[U],et)}},{key:"playbackRate",get:function(){return this[p].playbackRate},set:function(et){this.timeline&&(this.timeline.playbackRate=et),this[p].playbackRate=et}},{key:"playState",get:function(){var et=this.timeline,ot=this[p],ut=ot.iterations,K=ot.duration,Q=ot.endDelay,ft="running";if(et==null)ft="idle";else if(et.paused)ft="paused";else if(et.currentTime<0)ft="pending";else{var mt=et.currentTime-ut*K;mt>0&&mt<Q?ft="pending":mt>=Q&&(ft="finished")}return ft}},{key:"progress",get:function(){if(!this.timeline)return 0;var et=this[p],ot=et.duration,ut=et.iterations,K=this.timeline,Q=this.playState,ft=void 0;if(Q==="idle")ft=0;else if(Q==="paused"&&K.currentTime<0)ft=0;else if(Q==="pending")if(K.currentTime<0)ft=0;else{var mt=K.seekLocalTime(ut*ot);ft=(0,w.periodicity)(mt,ot)[1]/ot}else(Q==="running"||Q==="paused")&&(ft=(0,w.periodicity)(K.currentTime,ot)[1]/ot);return Q==="finished"&&(ft=(0,w.periodicity)(ut,1)[1]),ft}},{key:"frame",get:function(){var et=this.playState,ot=this[A],ut=this[p].fill;if(et==="idle")return ot;var K=this.timeline.currentTime,Q=this[P].slice(0),ft=(0,w.getProgress)(this.timeline,this[p],this.progress),mt=ft.p,yt=ft.inverted,Et=ot;return K<0&&et==="pending"?(ut==="backwards"||ut==="both")&&(Et=yt?Q[Q.length-1]:Q[0]):(et!=="pending"&&et!=="finished"||ut==="forwards"||ut==="both")&&(Et=(0,w.getCurrentFrame)(this[p],Q,this[U],mt)),Et}},{key:"timing",get:function(){return this[p]}},{key:"effects",get:function(){return this[U]}},{key:"baseTimeline",set:function(et){this[p].timeline=et},get:function(){return this[p].timeline}},{key:"ready",get:function(){return this[R]?this[R].promise:this.timeline&&this.timeline.currentTime>=0&&this.playState!=="paused"?n.default.resolve():(this[R]=(0,w.defer)(),this.timeline&&this[L](),this[R]?this[R].promise:n.default.resolve())}},{key:"finished",get:function(){return this.playState==="finished"?n.default.resolve():(this[D]||(this[D]=(0,w.defer)(),this.timeline&&this[W]()),this[D].promise)}}]),$}();e.default=N},function(i,e,t){i.exports={default:t(192),__esModule:!0}},function(i,e,t){t(143),t(125),t(79),t(193),t(202),t(203),i.exports=t(92).Promise},function(i,e,t){var r=t(89),n=t(91),s=t(93),c=t(128),l=t(90),f=t(98),u=t(94),v=t(147),h=t(148),y=t(194),T=t(195).set,O=t(197)(),C=t(198),S=t(199),w=t(200),d=t(201),g="Promise",p=n.TypeError,P=n.process,A=P&&P.versions,R=A&&A.v8||"",D=n[g],U=c(P)=="process",L=function(){},W,Y,B,N,$=Y=C.f,J=!!function(){try{var yt=D.resolve(1),Et=(yt.constructor={})[t(122)("species")]=function(ht){ht(L,L)};return(U||typeof PromiseRejectionEvent=="function")&&yt.then(L)instanceof Et&&R.indexOf("6.6")!==0&&w.indexOf("Chrome/66")===-1}catch{}}(),et=function(yt){var Et;return f(yt)&&typeof(Et=yt.then)=="function"?Et:!1},ot=function(yt,Et){if(!yt._n){yt._n=!0;var ht=yt._c;O(function(){for(var Nt=yt._v,Bt=yt._s==1,G=0,H=function(rt){var at=Bt?rt.ok:rt.fail,z=rt.resolve,j=rt.reject,I=rt.domain,M,X,Z;try{at?(Bt||(yt._h==2&&Q(yt),yt._h=1),at===!0?M=Nt:(I&&I.enter(),M=at(Nt),I&&(I.exit(),Z=!0)),M===rt.promise?j(p("Promise-chain cycle")):(X=et(M))?X.call(M,z,j):z(M)):j(Nt)}catch(q){I&&!Z&&I.exit(),j(q)}};ht.length>G;)H(ht[G++]);yt._c=[],yt._n=!1,Et&&!yt._h&&ut(yt)})}},ut=function(yt){T.call(n,function(){var Et=yt._v,ht=K(yt),Nt,Bt,G;if(ht&&(Nt=S(function(){U?P.emit("unhandledRejection",Et,yt):(Bt=n.onunhandledrejection)?Bt({promise:yt,reason:Et}):(G=n.console)&&G.error&&G.error("Unhandled promise rejection",Et)}),yt._h=U||K(yt)?2:1),yt._a=void 0,ht&&Nt.e)throw Nt.v})},K=function(yt){return yt._h!==1&&(yt._a||yt._c).length===0},Q=function(yt){T.call(n,function(){var Et;U?P.emit("rejectionHandled",yt):(Et=n.onrejectionhandled)&&Et({promise:yt,reason:yt._v})})},ft=function(yt){var Et=this;Et._d||(Et._d=!0,Et=Et._w||Et,Et._v=yt,Et._s=2,Et._a||(Et._a=Et._c.slice()),ot(Et,!0))},mt=function(yt){var Et=this,ht;if(!Et._d){Et._d=!0,Et=Et._w||Et;try{if(Et===yt)throw p("Promise can't be resolved itself");(ht=et(yt))?O(function(){var Nt={_w:Et,_d:!1};try{ht.call(yt,s(mt,Nt,1),s(ft,Nt,1))}catch(Bt){ft.call(Nt,Bt)}}):(Et._v=yt,Et._s=1,ot(Et,!1))}catch(Nt){ft.call({_w:Et,_d:!1},Nt)}}};J||(D=function(Et){v(this,D,g,"_h"),u(Et),W.call(this);try{Et(s(mt,this,1),s(ft,this,1))}catch(ht){ft.call(this,ht)}},W=function(Et){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},W.prototype=t(146)(D.prototype,{then:function(Et,ht){var Nt=$(y(this,D));return Nt.ok=typeof Et=="function"?Et:!0,Nt.fail=typeof ht=="function"&&ht,Nt.domain=U?P.domain:void 0,this._c.push(Nt),this._a&&this._a.push(Nt),this._s&&ot(this,!1),Nt.promise},catch:function(yt){return this.then(void 0,yt)}}),B=function(){var yt=new W;this.promise=yt,this.resolve=s(mt,yt,1),this.reject=s(ft,yt,1)},C.f=$=function(yt){return yt===D||yt===N?new B(yt):Y(yt)}),l(l.G+l.W+l.F*!J,{Promise:D}),t(121)(D,g),t(149)(g),N=t(92)[g],l(l.S+l.F*!J,g,{reject:function(Et){var ht=$(this),Nt=ht.reject;return Nt(Et),ht.promise}}),l(l.S+l.F*(r||!J),g,{resolve:function(Et){return d(r&&this===N?D:this,Et)}}),l(l.S+l.F*!(J&&t(140)(function(yt){D.all(yt).catch(L)})),g,{all:function(Et){var ht=this,Nt=$(ht),Bt=Nt.resolve,G=Nt.reject,H=S(function(){var rt=[],at=0,z=1;h(Et,!1,function(j){var I=at++,M=!1;rt.push(void 0),z++,ht.resolve(j).then(function(X){M||(M=!0,rt[I]=X,--z||Bt(rt))},G)}),--z||Bt(rt)});return H.e&&G(H.v),Nt.promise},race:function(Et){var ht=this,Nt=$(ht),Bt=Nt.reject,G=S(function(){h(Et,!1,function(H){ht.resolve(H).then(Nt.resolve,Bt)})});return G.e&&Bt(G.v),Nt.promise}})},function(i,e,t){var r=t(97),n=t(94),s=t(122)("species");i.exports=function(c,l){var f=r(c).constructor,u;return f===void 0||(u=r(f)[s])==null?l:n(u)}},function(i,e,t){var r=t(93),n=t(196),s=t(120),c=t(102),l=t(91),f=l.process,u=l.setImmediate,v=l.clearImmediate,h=l.MessageChannel,y=l.Dispatch,T=0,O={},C="onreadystatechange",S,w,d,g=function(){var P=+this;if(O.hasOwnProperty(P)){var A=O[P];delete O[P],A()}},p=function(P){g.call(P.data)};(!u||!v)&&(u=function(A){for(var R=[],D=1;arguments.length>D;)R.push(arguments[D++]);return O[++T]=function(){n(typeof A=="function"?A:Function(A),R)},S(T),T},v=function(A){delete O[A]},t(86)(f)=="process"?S=function(P){f.nextTick(r(g,P,1))}:y&&y.now?S=function(P){y.now(r(g,P,1))}:h?(w=new h,d=w.port2,w.port1.onmessage=p,S=r(d.postMessage,d,1)):l.addEventListener&&typeof postMessage=="function"&&!l.importScripts?(S=function(P){l.postMessage(P+"","*")},l.addEventListener("message",p,!1)):C in c("script")?S=function(P){s.appendChild(c("script"))[C]=function(){s.removeChild(this),g.call(P)}}:S=function(P){setTimeout(r(g,P,1),0)}),i.exports={set:u,clear:v}},function(i,e){i.exports=function(t,r,n){var s=n===void 0;switch(r.length){case 0:return s?t():t.call(n);case 1:return s?t(r[0]):t.call(n,r[0]);case 2:return s?t(r[0],r[1]):t.call(n,r[0],r[1]);case 3:return s?t(r[0],r[1],r[2]):t.call(n,r[0],r[1],r[2]);case 4:return s?t(r[0],r[1],r[2],r[3]):t.call(n,r[0],r[1],r[2],r[3])}return t.apply(n,r)}},function(i,e,t){var r=t(91),n=t(195).set,s=r.MutationObserver||r.WebKitMutationObserver,c=r.process,l=r.Promise,f=t(86)(c)=="process";i.exports=function(){var u,v,h,y=function(){var S,w;for(f&&(S=c.domain)&&S.exit();u;){w=u.fn,u=u.next;try{w()}catch(d){throw u?h():v=void 0,d}}v=void 0,S&&S.enter()};if(f)h=function(){c.nextTick(y)};else if(s&&!(r.navigator&&r.navigator.standalone)){var T=!0,O=document.createTextNode("");new s(y).observe(O,{characterData:!0}),h=function(){O.data=T=!T}}else if(l&&l.resolve){var C=l.resolve(void 0);h=function(){C.then(y)}}else h=function(){n.call(r,y)};return function(S){var w={fn:S,next:void 0};v&&(v.next=w),u||(u=w,h()),v=w}}},function(i,e,t){var r=t(94);function n(s){var c,l;this.promise=new s(function(f,u){if(c!==void 0||l!==void 0)throw TypeError("Bad Promise constructor");c=f,l=u}),this.resolve=r(c),this.reject=r(l)}i.exports.f=function(s){return new n(s)}},function(i,e){i.exports=function(t){try{return{e:!1,v:t()}}catch(r){return{e:!0,v:r}}}},function(i,e,t){var r=t(91),n=r.navigator;i.exports=n&&n.userAgent||""},function(i,e,t){var r=t(97),n=t(98),s=t(198);i.exports=function(c,l){if(r(c),n(l)&&l.constructor===c)return l;var f=s.f(c),u=f.resolve;return u(l),f.promise}},function(i,e,t){var r=t(90),n=t(92),s=t(91),c=t(194),l=t(201);r(r.P+r.R,"Promise",{finally:function(f){var u=c(this,n.Promise||s.Promise),v=typeof f=="function";return this.then(v?function(h){return l(u,f()).then(function(){return h})}:f,v?function(h){return l(u,f()).then(function(){throw h})}:f)}})},function(i,e,t){var r=t(90),n=t(198),s=t(199);r(r.S,"Promise",{try:function(c){var l=n.f(this),f=s(c);return(f.e?l.reject:l.resolve)(f.v),l.promise}})},function(i,e,t){i.exports={default:t(205),__esModule:!0}},function(i,e,t){t(206),i.exports=t(92).Object.keys},function(i,e,t){var r=t(124),n=t(110);t(207)("keys",function(){return function(c){return n(r(c))}})},function(i,e,t){var r=t(90),n=t(92),s=t(101);i.exports=function(c,l){var f=(n.Object||{})[c]||Object[c],u={};u[c]=l(f),r(r.S+r.F*s(function(){f(1)}),"Object",u)}},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0});var r=t(76),n=O(r),s=t(209),c=O(s),l=t(164),f=O(l),u=t(191),v=O(u);e.defer=C,e.periodicity=S,e.calculateFramesOffset=w,e.getProgress=d,e.getCurrentFrame=p;var h=t(188),y=t(187),T=O(y);function O(P){return P&&P.__esModule?P:{default:P}}function C(){var P={};return P.promise=new v.default(function(A,R){P.resolve=A,P.reject=R}),P}function S(P,A){var R=Math.floor(P/A),D=P-R*A;return D===0&&R>0&&(D=A,R--),[R,D]}function w(P){P=P.slice(0);var A=P[0],R=P[P.length-1];R.offset=R.offset||1,A.offset=A.offset||0;for(var D=0,U=-1,L=0;L<P.length;L++){var W=P[L];if(W.offset!=null){var Y=L-U;if(Y>1)for(var B=(W.offset-D)/Y,N=0;N<Y-1;N++)P[U+N+1].offset=D+B*(N+1);D=W.offset,U=L}if(W.easing!=null&&(W.easing=(0,h.parseEasing)(W.easing)),L>0){var $=P[L].easing!=null;P[L]=(0,f.default)({},P[L-1],P[L]),$||delete P[L].easing}}return P}function d(P,A,R){var D=P.currentTime,U=A.direction,L=A.duration,W=!1;if(U==="reverse")R=1-R,W=!0;else if(U==="alternate"||U==="alternate-reverse"){var Y=Math.floor(D/L);R===1&&Y--,Y%2^U==="alternate-reverse"&&(R=1-R,W=!0)}return{p:R,inverted:W}}function g(P,A,R,D){var U={};return(0,c.default)(A).forEach(function(L){var W=(0,n.default)(L,2),Y=W[0],B=W[1];if(Y!=="offset"&&Y!=="easing"){var N=R[Y]||R.default,$=N(P[Y],B,D,P.offset,A.offset);$!=null&&(U[Y]=$)}}),U}function p(P,A,R,D){var U=P.easing,L=P.effect;L||(R=(0,f.default)({},T.default,R));var W={};D=U(D,A);for(var Y=1;Y<A.length;Y++){var B=A[Y],N=B.offset;if(N>=D||Y===A.length-1){var $=A[Y-1],J=$.offset,et=$.easing,ot=D;if(et){var ut=N-J;ot=et((D-J)/ut)*ut+J}L?W=L($,B,ot,J,N):W=g($,B,R,ot);break}}return W}},function(i,e,t){i.exports={default:t(210),__esModule:!0}},function(i,e,t){t(211),i.exports=t(92).Object.entries},function(i,e,t){var r=t(90),n=t(212)(!0);r(r.S,"Object",{entries:function(c){return n(c)}})},function(i,e,t){var r=t(100),n=t(110),s=t(84),c=t(169).f;i.exports=function(l){return function(f){for(var u=s(f),v=n(u),h=v.length,y=0,T=[],O;h>y;)O=v[y++],(!r||c.call(u,O))&&T.push(l?[O,u[O]]:u[O]);return T}}},function(i,e,t){t.r(e),t(1).glMatrix.setMatrixArrayType(Array);const r=new Map;function n(c,l={},f=[]){c=c.toLowerCase();const u=r.get(c);if(!u)throw new TypeError(`Invalid node: ${c}`);const v=new u(l);return f.forEach(h=>{v.appendChild(h)}),v}const s={registerNode(c,l,f=100){if(l=l.toLowerCase(),r.has(l))throw new TypeError(`Cannot registerNode, ${l} has been taken.`);r.set(l,c),Object.defineProperties(c.prototype,{nodeType:{value:f},tagName:{value:l.toUpperCase()},nodeName:{value:l},ownerDocument:{value:s},namespaceURI:{value:`http://spritejs.com/${l}`}})},createElement:n,createElementNS(c,l){return n(l)},isSpriteNode(c){return r.has(c.toLowerCase())}};e.default=s},function(i,e,t){t.r(e),t.d(e,"default",function(){return l}),t(1).glMatrix.setMatrixArrayType(Array);const r=Symbol("type"),n=Symbol("bubbles"),s=Symbol("originalEvent"),c=Symbol("detail");class l{constructor(u,{bubbles:v=null}={}){if(typeof u=="string"?(this[r]=u,this[n]=!!v):(this[r]=u.type,this[s]=u,this[n]=v!=null?!!v:!!u.bubbles,u.detail&&(this[c]=u.detail)),!this[r])throw new TypeError("Invalid event type.");this.cancelBubble=!1}setOriginalEvent(u){this[s]=u}get originalEvent(){return this[s]}get type(){return this[r]}get bubbles(){return this[n]}get detail(){return this[c]}stopPropagation(){this.cancelBubble=!0}}},function(i,e,t){t.r(e),t.d(e,"parseFilterString",function(){return n}),t.d(e,"applyFilters",function(){return s});var r=t(72);t(1).glMatrix.setMatrixArrayType(Array);function n(c){if(c=c.trim(),!c||c==="none")return null;const l=/^(?:(url|blur|brightness|contrast|drop-shadow|grayscale|hue-rotate|invert|opacity|saturate|sepia)\(([^()]*(?:\(.*\))*[^()]*)\))+$/i,f=c.match(/(?:(url|blur|brightness|contrast|drop-shadow|grayscale|hue-rotate|invert|opacity|saturate|sepia)\(([^()]*(?:\(.*\))*[^()]*)\))+?/ig),u=[];return f&&f.forEach(v=>{const h=v.match(l);if(!h)throw new TypeError("Invalid fitler string.");let[,y,T]=h;y=y.toLowerCase(),T=T.trim().match(/([^( )]+|([^( )]+\(.*\)))(?=\s|$)/g).map((O,C)=>{let S;return y==="url"||y==="drop-shadow"&&C===3?S=O:S=Object(r.toNumber)(O),/%$/.test(O)&&(S/=100),S}),u.push({type:y,args:T})}),u}function s(c,l){c.clearFilter(),l&&l.forEach(({type:f,args:u})=>{let v=f;v==="drop-shadow"?v="dropShadow":v==="hue-rotate"&&(v="hueRotate"),c[v](...u)})}},function(i,e,t){t.r(e),t.d(e,"default",function(){return r}),t(1).glMatrix.setMatrixArrayType(Array);function r(n,s){if(!s)return;const c=n.getListeners("beforerender"),l=n.getListeners("afterrender");c.length&&!s.beforeRender?s.beforeRender=f=>{n.dispatchEvent({type:"beforerender",detail:{context:f}})}:c.length||(s.beforeRender=null),l.length&&!s.afterRender?s.afterRender=f=>{n.dispatchEvent({type:"afterrender",detail:{context:f}})}:l.length||(s.afterRender=null)}},function(i,e,t){t.r(e),t.d(e,"default",function(){return u});var r=t(12),n=t(218),s=t(70),c=t(213);t(1).glMatrix.setMatrixArrayType(Array);const l=Symbol("amount"),f=Symbol("meshCloud");class u extends s.default{constructor(h,y=1){super(),this.meshNode=h,h.connect(this),this[l]=y,this[f]=null}get meshCloud(){const h=this.meshNode,y=this[l];return!this[f]&&h.mesh&&(this[f]=new r.MeshCloud(h.mesh,y)),this[f]}get isVisible(){return!!this.meshNode&&this.meshNode.isVisible}get amount(){return this[l]}set amount(h){this[l]=h,this[f]&&(this[f].amount=h)}brightness(h,y){this.meshCloud&&(this.meshCloud.brightness(h,y),this.forceUpdate())}contrast(h,y){this.meshCloud&&(this.meshCloud.contrast(h,y),this.forceUpdate())}delete(h){this.meshCloud&&(this.meshCloud.delete(h),this[l]--,this.forceUpdate())}draw(h=[]){if(super.draw(h),this.meshCloud){if(this.program){this.meshCloud.setProgram(this.program);const y=this.shaderAttrs;y&&Object.entries(y).forEach(([O,C])=>{this.meshCloud.mesh.setAttribute(O,C)});const T=this.uniforms;if(this.uniforms){const O={};Object.entries(T).forEach(([C,S])=>{typeof S=="function"&&(S=S(this,C)),O[C]=S}),this.meshCloud.mesh.setUniforms(O)}}this.meshNode.textureImage&&Object(n.drawTexture)(this.meshNode,this.meshNode.mesh),h.push(this.meshCloud)}return h}getTransform(h){if(this.meshCloud)return this.meshCloud.getTransform(h)}grayscale(h,y){this.meshCloud&&(this.meshCloud.grayscale(h,y),this.forceUpdate())}hueRotate(h,y){this.meshCloud&&(this.meshCloud.hueRotate(h,y),this.forceUpdate())}invert(h,y){this.meshCloud&&(this.meshCloud.invert(h,y),this.forceUpdate())}isPointCollision(h,y){if(!this.meshCloud)return!1;const T=this.attributes.pointerEvents;if(T==="none"||T!=="all"&&!this.isVisible)return!1;let O="both";T==="visibleFill"&&(O="fill"),T==="visibleStroke"&&(O="stroke");for(let C=0;C<this[l];C++)if(!this.meshCloud.isPointCollision(C,[h,y],O))return!1;return!0}setOpacity(h,y){this.meshCloud&&(this.meshCloud.opacity(h,y),this.forceUpdate())}rotate(h,y,[T,O]=[0,0]){const C=Math.PI*y/180;if(this.meshCloud){const{x:S,y:w}=this.meshNode.attributes;this.meshCloud.rotate(h,C,[T+S,O+w]),this.forceUpdate()}}saturate(h,y){this.meshCloud&&(this.meshCloud.saturate(h,y),this.forceUpdate())}scale(h,[y,T=y],[O,C]=[0,0]){if(this.meshCloud){const{x:S,y:w}=this.meshNode.attributes,d=1e-5;Math.abs(y)<d&&(y=1/y>0?d:-d),Math.abs(T)<d&&(T=1/T>0?d:-d),this.meshCloud.scale(h,[y,T],[O+S,C+w]),this.forceUpdate()}}setColorTransform(h,y){this.meshCloud&&(this.meshCloud.setColorTransform(h,y),this.forceUpdate())}setFillColor(h,y){this.meshCloud&&(Array.isArray(y)&&(y=[...y],y[0]/=255,y[1]/=255,y[2]/=255),this.meshCloud.setFillColor(h,y),this.forceUpdate())}sepia(h,y){this.meshCloud&&(this.meshCloud.sepia(h,y),this.forceUpdate())}setResolution({width:h,height:y}){super.setResolution({width:h,height:y}),this.meshNode.setResolution({width:h,height:y})}setStrokeColor(h,y){this.meshCloud&&(Array.isArray(y)&&(y=[...y],y[0]/=255,y[1]/=255,y[2]/=255),this.meshCloud.setStrokeColor(h,y),this.forceUpdate())}setTransform(h,y){this.meshCloud&&(this.meshCloud.setTransform(h,y),this.forceUpdate())}skew(h,[y,T=y],[O,C]=[0,0]){if(this.meshCloud){const{x:S,y:w}=this.meshNode.attributes;this.meshCloud.skew(h,[y,T],[O+S,C+w]),this.forceUpdate()}}transform(h,y){this.meshCloud&&(this.meshCloud.transform(h,y),this.forceUpdate())}transformColor(h,y){this.meshCloud&&(this.meshCloud.transformColor(h,y),this.forceUpdate())}translate(h,[y,T]){this.meshCloud&&(this.meshCloud.translate(h,[y,T]),this.forceUpdate())}updateMesh(){this[f]&&(this[f].mesh=this.meshNode.mesh,this.forceUpdate())}}c.default.registerNode(u,"cloud")},function(i,e,t){t.r(e),t.d(e,"loadTexture",function(){return c}),t.d(e,"applyTexture",function(){return l}),t.d(e,"createTexture",function(){return u}),t.d(e,"deleteTexture",function(){return v}),t.d(e,"drawTexture",function(){return y}),t.d(e,"loadFrames",function(){return T});var r=t(12),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s={};function c(O,C){if(s[O])return s[O];const S=r.ENV.loadImage(O,{alias:C,useImageBitmap:!1});return S??O}async function l(O,C,S){let w=C;if(typeof C=="string"&&(w=c(C)),w&&typeof w.then=="function"&&(w=await w),C===O.attributes.texture){w&&w.image&&(w.sourceRect&&(O.attributes.sourceRect=w.sourceRect),O.textureImageRotated=!!w.rotated,w=w.image);const{width:d,height:g,textureRect:p}=O.attributes,P=O.textureImage;O.textureImage=w,S&&P!==w&&!p&&(d==null||g==null)&&O.updateContours(),O.forceUpdate()}return w}const f=Symbol("textureMap");function u(O,C){if(C[f]=C[f]||new Map,C[f].has(O))return C[f].get(O);const S=C.createTexture(O);return!/^blob:/.test(O.src)&&typeof O.getContext!="function"&&C[f].set(O,S),S}function v(O,C){if(C[f]&&C[f].has(O)){const S=C[f].get(O);return C.deleteTexture(S),C[f].delete(O),!0}return!1}const h=Symbol("textureContext");function y(O,C){const S=O.textureImage instanceof String?String(O.textureImage):O.textureImage,w=O.textureImageRotated,d=C.texture,g=O.renderer;if(S){const p=O.originalContentRect;let P=O.attributes.textureRect;const A=O.attributes.textureRepeat,R=O.attributes.sourceRect;if(!d||O[h]&&O[h]!==g||d.image!==S||d.options.repeat!==A||!Object(n.compareValue)(d.options.rect,P)||!Object(n.compareValue)(d.options.srcRect,R)){const D=u(S,g);P?(P[0]+=p[0],P[1]+=p[1]):P=p;let U=null;d&&!g[f].has(d.image)&&(!d.options||!d.options.hidden)&&(U=C.uniforms.u_texSampler),C.setTexture(D,{rect:P,repeat:A,srcRect:R,rotated:w}),U&&U.delete&&U.delete(),O[h]=g}}else if(d){let p=null;!g[f].has(d.image)&&(!d.options||!d.options.hidden)&&(p=C.uniforms.u_texSampler),C.setTexture(null),p&&p.delete&&p.delete()}}async function T(O,C){typeof C=="string"&&(C=await(await fetch(C,{method:"GET",mode:"cors",cache:"default"})).json());const S=await c(O),w=C.frames;return Object.entries(w).forEach(([d,g])=>{const{x:p,y:P,w:A,h:R}=g.frame;let D=[p,P,A,R];const U=g.rotated;U&&(D=[D[0],D[1],D[3],D[2]]),s[d]={image:S,sourceRect:D,rotated:U}}),S}},function(i,e,t){t.r(e),t.d(e,"default",function(){return T});var r=t(1),n=t(12),s=t(70),c=t(220),l=t(221),f=t(222),u=t(213),v=t(223);t(1).glMatrix.setMatrixArrayType(Array);function h(O,C,S){return C in O?Object.defineProperty(O,C,{value:S,enumerable:!0,configurable:!0,writable:!0}):O[C]=S,O}const y=Symbol("mesh");class T extends s.default{constructor(C={}){super(C)}get borderSize(){const{paddingTop:C,paddingRight:S,paddingBottom:w,paddingLeft:d,borderWidth:g}=this.attributes,[p,P]=this.contentSize;return[d+p+S+g,C+P+w+g]}get clientSize(){const{paddingTop:C,paddingRight:S,paddingBottom:w,paddingLeft:d}=this.attributes,[g,p]=this.contentSize;return[d+g+S,C+p+w]}get contentSize(){let{width:C,height:S,boxSizing:w,paddingTop:d,paddingRight:g,paddingBottom:p,paddingLeft:P}=this.attributes;if(C=C||0,S=S||0,w==="border-box"){const A=2*this.attributes.borderWidth;C-=A+g+P,S-=A+d+p,C=Math.max(0,C),S=Math.max(0,S)}return[C,S]}get hasBorder(){return this.attributes.borderWidth>0}get isVisible(){const[C,S]=this.borderSize;return C>0&&S>0}get mesh(){if(this.attributes.display==="none")return null;const C=this.clientBox;if(C){let S=this[y];if(S)S.box!==C&&(S.contours=C.contours,S.box=C);else{S=new n.Mesh2D(C),S.box=C;const d=this.attributes.bgcolor;if(Object(l.setFillColor)(S,{color:d}),this.hasBorder){const{borderColor:p,borderWidth:P,borderDash:A,borderDashOffset:R}=this.attributes;Object(l.setStrokeColor)(S,{color:p,lineWidth:P,lineDash:A,lineDashOffset:R})}this[y]=S;const g=this.attributes.clipPath;g&&this[y].setClipPath(g)}const w=this.opacity;return S.getOpacity()!==w&&S.setOpacity(w),S.setTransform(...this.renderMatrix),S}return null}get offsetSize(){const{paddingTop:C,paddingRight:S,paddingBottom:w,paddingLeft:d,borderWidth:g}=this.attributes,[p,P]=this.contentSize,A=2*g;return[d+p+S+A,C+P+w+A]}get originalClientRect(){if(this.mesh){const C=this.mesh.boundingBox;return[C[0][0],C[0][1],C[1][0]-C[0][0],C[1][1]-C[0][1]]}return[0,0,0,0]}get originalContentRect(){const[C,S,w,d]=this.originalClientRect,g=this.attributes.padding;return[C+g[0],S+g[1],w-g[0]-g[2],d-g[1]-g[3]]}getBoundingClientRect(){let C=this.renderMatrix;this.layer&&this.layer.layerTransformInvert&&(C=r.mat2d.multiply(Array.of(0,0,0,0,0,0),this.layer.transformMatrix,C));let S=null;if(this.mesh){S=[...this.mesh.boundingBox];const w=this.attributes.borderWidth;w&&(S[0]=[S[0][0]-w,S[0][1]-w],S[1]=[S[1][0]+w,S[1][1]+w])}return Object(v.default)(S,C)}onPropertyChange(C,S,w){if(super.onPropertyChange(C,S,w),(C==="anchorX"||C==="anchorY"||C==="boxSizing"||C==="width"||C==="height"||C==="borderWidth"||C==="paddingLeft"||C==="paddingRight"||C==="paddingTop"||C==="paddingBottom"||/^border(TopLeft|TopRight|BottomRight|BottomLeft)Radius$/.test(C))&&this.updateContours(),this[y]&&C==="clipPath"&&this[y].setClipPath(S),this[y]&&C==="bgcolor"&&Object(l.setFillColor)(this[y],{color:S}),this[y]&&(C==="borderColor"||C==="borderWidth"||C==="borderDash"||C==="borderDashOffset")){const{borderColor:d,borderWidth:g,borderDash:p,borderDashOffset:P}=this.attributes;Object(l.setStrokeColor)(this[y],{color:d,lineWidth:g,lineDash:g?p:0,lineDashOffset:P})}}updateContours(){const{anchorX:C,anchorY:S,borderWidth:w,borderRadius:d}=this.attributes,[g,p]=this.borderSize,P=this.offsetSize,A=.5*w,R=-C*P[0]+A,D=-S*P[1]+A;this.clientBox=new n.Figure2D,Object(f.createRadiusBox)(this.clientBox,[R,D,g,p],d)}}h(T,"Attr",c.default),u.default.registerNode(T,"block")},function(i,e,t){t.r(e),t.d(e,"default",function(){return v});var r=t(71),n=t(72),s=t(221);t(1).glMatrix.setMatrixArrayType(Array);const c=Symbol.for("spritejs_setAttribute"),l=Symbol.for("spritejs_getAttribute"),f=Symbol.for("spritejs_setAttributeDefault"),u=Symbol.for("spritejs_declareAlias");class v extends r.default{constructor(y){super(y),this[f]({anchorX:0,anchorY:0,width:void 0,height:void 0,borderWidth:0,borderColor:"rgba(0,0,0,1)",borderDash:void 0,borderDashOffset:0,borderTopLeftRadius:[0,0],borderTopRightRadius:[0,0],borderBottomRightRadius:[0,0],borderBottomLeftRadius:[0,0],bgcolor:"rgba(0,0,0,0)",paddingTop:0,paddingRight:0,paddingBottom:0,paddingLeft:0,boxSizing:"content-box",clipPath:void 0}),this[u]("anchor","size","border","borderRadius","padding")}get anchorX(){return this[l]("anchorX")}set anchorX(y){this[c]("anchorX",Object(n.toNumber)(y))}get anchorY(){return this[l]("anchorY")}set anchorY(y){this[c]("anchorY",Object(n.toNumber)(y))}get anchor(){return[this.anchorX,this.anchorY]}set anchor(y){y=Object(n.toArray)(y),Array.isArray(y)||(y=[y,y]),this.anchorX=y[0],this.anchorY=y[1]}get width(){return this[l]("width")}set width(y){this[c]("width",Object(n.toNumber)(y))}get height(){return this[l]("height")}set height(y){this[c]("height",Object(n.toNumber)(y))}get size(){return[this.width,this.height]}set size(y){y=Object(n.toArray)(y),Array.isArray(y)||(y=[y,y]),this.width=y[0],this.height=y[1]}get borderWidth(){return this[l]("borderWidth")}set borderWidth(y){this[c]("borderWidth",Object(n.toNumber)(y))}get borderColor(){return this[l]("borderColor")}set borderColor(y){this[c]("borderColor",Object(s.parseColor)(y))}get border(){return[this.borderWidth,this.borderColor]}set border(y){y=Object(n.toArray)(y),Array.isArray(y)||(y=[y]),this.borderWidth=y[0],y[1]!=null&&(this.borderColor=y[1])}get borderDash(){return this[l]("borderDash")}set borderDash(y){y=Object(n.toArray)(y,!0),y!=null&&!Array.isArray(y)&&(y=[y]),this[c]("borderDash",y?y.map(n.toNumber):null)}get borderDashOffset(){return this[l]("borderDashOffset")}set borderDashOffset(y){this[c]("borderDashOffset",Object(n.toNumber)(y))}get borderTopLeftRadius(){return this[l]("borderTopLeftRadius")}set borderTopLeftRadius(y){y=Object(n.toArray)(y,!0),Array.isArray(y)||(y=[y,y]),this[c]("borderTopLeftRadius",y.map(n.toNumber))}get borderTopRightRadius(){return this[l]("borderTopRightRadius")}set borderTopRightRadius(y){y=Object(n.toArray)(y,!0),Array.isArray(y)||(y=[y,y]),this[c]("borderTopRightRadius",y.map(n.toNumber))}get borderBottomRightRadius(){return this[l]("borderBottomRightRadius")}set borderBottomRightRadius(y){y=Object(n.toArray)(y,!0),Array.isArray(y)||(y=[y,y]),this[c]("borderBottomRightRadius",y.map(n.toNumber))}get borderBottomLeftRadius(){return this[l]("borderBottomLeftRadius")}set borderBottomLeftRadius(y){y=Object(n.toArray)(y,!0),Array.isArray(y)||(y=[y,y]),this[c]("borderBottomLeftRadius",y.map(n.toNumber))}get borderRadius(){return[...this.borderTopLeftRadius,...this.borderTopRightRadius,...this.borderBottomRightRadius,...this.borderBottomLeftRadius]}set borderRadius(y){if(y=Object(n.toArray)(y),!Array.isArray(y))y=Array(8).fill(y);else if(y.length===2)y=[y[0],y[1],y[0],y[1],y[0],y[1],y[0],y[1]];else if(y.length===4)y=[y[0],y[1],y[2],y[3],y[0],y[1],y[2],y[3]];else if(y.length===6)y=[y[0],y[1],y[2],y[3],y[4],y[5],y[2],y[3]];else if(y.length!==8)throw new TypeError("Invalid borderRadius value.");this.borderTopLeftRadius=[y[0],y[1]],this.borderTopRightRadius=[y[2],y[3]],this.borderBottomRightRadius=[y[4],y[5]],this.borderBottomLeftRadius=[y[6],y[7]]}get bgcolor(){return this[l]("bgcolor")}set bgcolor(y){this[c]("bgcolor",Object(s.parseColor)(y))}get paddingTop(){return this[l]("paddingTop")}set paddingTop(y){this[c]("paddingTop",Object(n.toNumber)(y))}get paddingRight(){return this[l]("paddingRight")}set paddingRight(y){this[c]("paddingRight",Object(n.toNumber)(y))}get paddingBottom(){return this[l]("paddingBottom")}set paddingBottom(y){this[c]("paddingBottom",Object(n.toNumber)(y))}get paddingLeft(){return this[l]("paddingLeft")}set paddingLeft(y){this[c]("paddingLeft",Object(n.toNumber)(y))}get padding(){return[this.paddingTop,this.paddingRight,this.paddingBottom,this.paddingLeft]}set padding(y){y=Object(n.toArray)(y),Array.isArray(y)?y.length===2?y=[y[0],y[1],y[0],y[1]]:y.length===3&&(y=[y[0],y[1],y[2],y[1]]):y=[y,y,y,y],this.paddingTop=y[0],this.paddingRight=y[1],this.paddingBottom=y[2],this.paddingLeft=y[3]}get clipPath(){return this[l]("clipPath")}set clipPath(y){this[c]("clipPath",y)}get boxSizing(){return this[l]("boxSizing")}set boxSizing(y){if(y!=null&&y!=="border-box"&&y!=="content-box")throw new TypeError("Invalid boxSizing type.");this[c]("boxSizing",y)}}},function(i,e,t){t.r(e),t.d(e,"Gradient",function(){return s}),t.d(e,"isTransparent",function(){return c}),t.d(e,"parseColor",function(){return l}),t.d(e,"setFillColor",function(){return u}),t.d(e,"setStrokeColor",function(){return v}),t.d(e,"Color",function(){return h});var r=t(32),n=t.n(r);t(1).glMatrix.setMatrixArrayType(Array);class s{constructor({vector:T,colors:O}){if(!Array.isArray(T)||T.length!==4&&T.length!==6&&T.length!==3)throw new TypeError("Invalid gradient");this.vector=T,this.colors=O.map(({offset:C,color:S})=>({offset:C,color:l(S)}))}toString(){return JSON.stringify({vector:this.vector,colors:this.colors})}}function c(y){return y instanceof s?!1:y==null?!0:n()(y)[3]===0}function l(y){if(y==null||(y||(y="transparent"),y instanceof s))return y;const T=n()(y);if(!T||!T.length)throw new TypeError("Invalid color value.");return`rgba(${T.join()})`}function f(y,T,O){const C=y.boundingBox[0];if(O.vector){let{vector:S,colors:w}=O;S.length===4?(S=[S[0]+C[0],S[1]+C[1],S[2]+C[0],S[3]+C[1]],y.setLinearGradient({vector:S,colors:w,type:T})):S.length===3?(S=[S[0]+C[0],S[1]+C[1],S[2]],y.setCircularGradient({vector:S,colors:w,type:T})):(S=[S[0]+C[0],S[1]+C[1],S[2],S[3]+C[0],S[4]+C[1],S[5]],y.setRadialGradient({vector:S,colors:w,type:T}))}else y.gradient&&y.gradient[T]&&(delete y.gradient[T],delete y.uniforms.u_radialGradientVector)}function u(y,{color:T,rule:O="nonzero"}){return f(y,"fill",T),T.vector||y.setFill({color:T,rule:O}),y}function v(y,{color:T,lineWidth:O,lineCap:C,lineJoin:S,lineDash:w,lineDashOffset:d,miterLimit:g,roundSegments:p}){f(y,"stroke",T),T.vector&&(T=[0,0,0,1]),y.setStroke({color:T,thickness:O,cap:C,join:S,miterLimit:g,lineDash:w,lineDashOffset:d,roundSegments:p})}class h extends Array{constructor(T=0,O=0,C=0,S=0){return Array.isArray(T)&&([T,O,C,S]=T),typeof T=="string"&&([T,O,C,S]=n()(T),T/=255,O/=255,C/=255),super(T,O,C,S),this}get r(){return Math.round(this[0]*255)}set r(T){this[0]=T/255}get g(){return Math.round(this[1]*255)}set g(T){this[1]=T/255}get b(){return Math.round(this[2]*255)}set b(T){this[2]=T/255}get a(){return this[3]}set a(T){this[3]=T}get hex(){const T=`0${this.r.toString(16)}`.slice(-2),O=`0${this.g.toString(16)}`.slice(-2),C=`0${this.b.toString(16)}`.slice(-2);let S;return this.a<1&&(S=Math.round(this[3]*255),S=`0${S.toString(16)}`.slice(-2)),`#${T}${O}${C}${S||""}`}get rgba(){return`rgba(${this.r},${this.g},${this.b},${this.a})`}fromColor(T){return typeof T=="string"&&(T=n()(T),T[0]/=255,T[1]/=255,T[2]/=255),this[0]=T[0],this[1]=T[1],this[2]=T[2],this[3]=T[3],this}}},function(i,e,t){t.r(e),t.d(e,"createRadiusBox",function(){return n}),t(1).glMatrix.setMatrixArrayType(Array);function r(s,c,l,f,u,v="leftTop"){const h=.5522848,y=f/2*h,T=u/2*h,O=c+f,C=l+u,S=c+f/2,w=l+u/2;v==="leftTop"?(s.moveTo(c,w),s.bezierCurveTo(c,w-T,S-y,l,S,l)):v==="rightTop"?s.bezierCurveTo(S+y,l,O,w-T,O,w):v==="rightBottom"?s.bezierCurveTo(O,w+T,S+y,C,S,C):v==="leftBottom"&&s.bezierCurveTo(S-y,C,c,w+T,c,w)}function n(s,[c,l,f,u],v){if(!v||Array.isArray(v)&&v.every(h=>h===0))s.beginPath(),s.rect(c,l,f,u);else{typeof v=="number"&&(v=Array(8).fill(v));const[h,y,T,O,C,S,w,d]=v.map((g,p)=>p%2?Math.min(g,u/2):Math.min(g,f/2));s.beginPath(),s.moveTo(c,l+y),r(s,c,l,h*2,y*2,"leftTop"),s.lineTo(c+f-T,l),r(s,c+f-T*2,l,T*2,O*2,"rightTop"),s.lineTo(c+f,l+u-S),r(s,c+f-C*2,l+u-S*2,C*2,S*2,"rightBottom"),s.lineTo(c+w,l+u),r(s,c,l+u-d*2,w*2,d*2,"leftBottom"),s.closePath()}return s}},function(i,e,t){t.r(e),t(1).glMatrix.setMatrixArrayType(Array),e.default=function(r,n){if(!r)return{x:0,y:0,width:0,height:0,left:0,top:0,right:0,bottom:0};const[[s,c],[l,f]]=r,u=s*n[0]+c*n[2]+n[4],v=s*n[1]+c*n[3]+n[5],h=l*n[0]+c*n[2]+n[4],y=l*n[1]+c*n[3]+n[5],T=l*n[0]+f*n[2]+n[4],O=l*n[1]+f*n[3]+n[5],C=s*n[0]+f*n[2]+n[4],S=s*n[1]+f*n[3]+n[5],w=Math.min(u,h,T,C),d=Math.min(v,y,O,S),g=Math.max(u,h,T,C),p=Math.max(v,y,O,S);return{x:w,y:d,width:g-w,height:p-d,left:w,top:d,right:g,bottom:p}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return u});var r=t(218),n=t(219),s=t(225),c=t(213);t(1).glMatrix.setMatrixArrayType(Array);function l(v,h,y){return h in v?Object.defineProperty(v,h,{value:y,enumerable:!0,configurable:!0,writable:!0}):v[h]=y,v}const f=Symbol("textureTask");class u extends n.default{constructor(h={}){typeof h=="string"&&(h={texture:h}),super(h)}get contentSize(){let[h,y]=super.contentSize;const{width:T,height:O}=this.attributes;if(T==null||O==null){const C=this.textureImage,S=this.attributes.textureRect,w=this.attributes.sourceRect;if(S)T==null&&(h=S[0]+S[2]),O==null&&(y=S[1]+S[3]);else if(w){const d=this.layer?this.layer.displayRatio:1;T==null&&(h=w[2]/d),O==null&&(y=w[3]/d)}else if(C){const d=this.layer?this.layer.displayRatio:1;T==null&&(h=C.width/d),O==null&&(y=C.height/d)}}return[h,y]}get textureImageReady(){return this[f]||Promise.resolve()}draw(h=[]){super.draw(h);const y=this.mesh;return y&&Object(r.drawTexture)(this,y),h}onPropertyChange(h,y,T){if(super.onPropertyChange(h,y,T),h==="texture"&&(this[f]=Object(r.applyTexture)(this,y,!0)),h==="textureRect"){const{width:O,height:C}=this.attributes;(O==null||C==null)&&this.updateContours()}}}l(u,"Attr",s.default),c.default.registerNode(u,"sprite")},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(220);t(1).glMatrix.setMatrixArrayType(Array);const n=Symbol.for("spritejs_setAttributeDefault"),s=Symbol.for("spritejs_setAttribute"),c=Symbol.for("spritejs_getAttribute");class l extends r.default{constructor(u){super(u),this[n]({texture:void 0,textureRect:void 0,textureRepeat:!1,sourceRect:void 0})}get texture(){return this[c]("texture")}set texture(u){this[s]("texture",u)}get textureRect(){return this[c]("textureRect")}set textureRect(u){this[s]("textureRect",u)}get sourceRect(){return this[c]("sourceRect")}set sourceRect(u){this[s]("sourceRect",u)}get textureRepeat(){return this[c]("textureRepeat")}set textureRepeat(u){this[s]("textureRepeat",!!u)}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return O});var r=t(12),n=t(227),s=t.n(n),c=t(70),l=t(228),f=t(221),u=t(218),v=t(213),h=t(223);t(1).glMatrix.setMatrixArrayType(Array);function y(C,S,w){return S in C?Object.defineProperty(C,S,{value:w,enumerable:!0,configurable:!0,writable:!0}):C[S]=w,C}const T=Symbol("mesh");class O extends c.default{constructor(S={}){typeof S=="string"&&(S={d:S}),super(S),this.effects={d(w,d,g,p,P){const A=(g-p)/(P-p);if(A<=0)return w;if(A>=1)return d;const R=s.a._preprocessing(s.a.path2shapes(w),s.a.path2shapes(d)),D=s.a._lerp(...R,A)[0];return D.reduce((L,W)=>`${L}${W.slice(2).join(" ")} `,`M${D[0][0]} ${D[0][1]}C`).trim()}}}get isVisible(){return!!this.d}get mesh(){if(this.attributes.display==="none")return null;const S=this.path;if(S){let w=this[T];if(w)w.path!==S&&(w.contours=S.contours,w.path=S);else{w=new r.Mesh2D(this.path),w.path=S;const g=this.attributes.fillColor,p=this.attributes.fillRule;g&&Object(f.setFillColor)(w,{color:g,rule:p});const P=this.attributes.lineWidth,A=this.attributes.strokeColor;if(A&&P>0){const{lineCap:D,lineJoin:U,miterLimit:L,lineDash:W,lineDashOffset:Y,roundSegments:B}=this.attributes;Object(f.setStrokeColor)(w,{color:A,lineWidth:P,lineCap:D,lineJoin:U,miterLimit:L,lineDash:W,lineDashOffset:Y,roundSegments:B})}this[T]=w;const R=this.attributes.clipPath;R&&this[T].setClipPath(R)}const d=this.opacity;return w.getOpacity()!==d&&w.setOpacity(d),w.setTransform(...this.renderMatrix),w}return null}get originalContentRect(){if(this.path){const S=this.path.boundingBox;return[S[0][0],S[0][1],S[1][0]-S[0][0],S[1][1]-S[0][1]]}return[0,0,0,0]}get originalClientRect(){if(this.mesh){const S=this.mesh.boundingBox;return[S[0][0],S[0][1],S[1][0]-S[0][0],S[1][1]-S[0][1]]}return[0,0,0,0]}get originalClientCenter(){return this.mesh?this.mesh.boundingCenter:[0,0]}set d(S){this.attributes.d=S}get d(){return this.attributes.d}draw(S=[]){super.draw(S);const w=this.mesh;return w&&Object(u.drawTexture)(this,w),S}getBoundingClientRect(){let S=null;return this.mesh&&(S=this.mesh.boundingBox),Object(h.default)(S,this.renderMatrix)}getPathLength(){return this.mesh?this.mesh.getTotalLength():0}getPointAtLength(S){if(this.mesh){const w=this.mesh.getPointAtLength(S);if(w)return[w.x,w.y]}return[0,0]}onPropertyChange(S,w,d){if(super.onPropertyChange(S,w,d),(S==="d"||S==="normalize")&&this.updateContours(),this[T]&&(S==="fillColor"||S==="fillRule")){const{fillColor:g,fillRule:p}=this.attributes;Object(f.setFillColor)(this[T],{color:g,rule:p})}if(this[T]&&(S==="strokeColor"||S==="lineWidth"||S==="lineCap"||S==="lineJoin"||S==="lineDash"||S==="lineDashOffset"||S==="roundSegments")){const{strokeColor:g,lineWidth:p}=this.attributes;if(g&&p>0){const{lineCap:P,lineJoin:A,lineDash:R,lineDashOffset:D,miterLimit:U,roundSegments:L}=this.attributes;Object(f.setStrokeColor)(this[T],{color:g,lineCap:P,lineJoin:A,lineWidth:p,lineDash:R,lineDashOffset:D,miterLimit:U,roundSegments:L})}}this[T]&&S==="clipPath"&&this[T].setClipPath(w),S==="texture"&&Object(u.applyTexture)(this,w)}updateContours(){this.path=new r.Figure2D,this.path.addPath(this.attributes.d),this.attributes.normalize&&this.path.normalize(...this.path.boundingCenter)}}y(O,"Attr",l.default),v.default.registerNode(O,"path")},function(i,e,t){(function(r,n){i.exports=n()})(this,function(){var r=function(){function W(Y,B){var N=[],$=!0,J=!1,et=void 0;try{for(var ot=Y[Symbol.iterator](),ut;!($=(ut=ot.next()).done)&&(N.push(ut.value),!(B&&N.length===B));$=!0);}catch(K){J=!0,et=K}finally{try{!$&&ot.return&&ot.return()}finally{if(J)throw et}}return N}return function(Y,B){if(Array.isArray(Y))return Y;if(Symbol.iterator in Object(Y))return W(Y,B);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),n=Math.PI*2,s=function(Y,B,N,$,J,et,ot){var ut=Y.x,K=Y.y;ut*=B,K*=N;var Q=$*ut-J*K,ft=J*ut+$*K;return{x:Q+et,y:ft+ot}},c=function(Y,B){var N=1.3333333333333333*Math.tan(B/4),$=Math.cos(Y),J=Math.sin(Y),et=Math.cos(Y+B),ot=Math.sin(Y+B);return[{x:$-J*N,y:J+$*N},{x:et+ot*N,y:ot-et*N},{x:et,y:ot}]},l=function(Y,B,N,$){var J=Y*$-B*N<0?-1:1,et=Math.sqrt(Y*Y+B*B),ot=Math.sqrt(Y*Y+B*B),ut=Y*N+B*$,K=ut/(et*ot);return K>1&&(K=1),K<-1&&(K=-1),J*Math.acos(K)},f=function(Y,B,N,$,J,et,ot,ut,K,Q,ft,mt){var yt=Math.pow(J,2),Et=Math.pow(et,2),ht=Math.pow(ft,2),Nt=Math.pow(mt,2),Bt=yt*Et-yt*Nt-Et*ht;Bt<0&&(Bt=0),Bt/=yt*Nt+Et*ht,Bt=Math.sqrt(Bt)*(ot===ut?-1:1);var G=Bt*J/et*mt,H=Bt*-et/J*ft,rt=Q*G-K*H+(Y+N)/2,at=K*G+Q*H+(B+$)/2,z=(ft-G)/J,j=(mt-H)/et,I=(-ft-G)/J,M=(-mt-H)/et,X=l(1,0,z,j),Z=l(z,j,I,M);return ut===0&&Z>0&&(Z-=n),ut===1&&Z<0&&(Z+=n),[rt,at,X,Z]},u=function(Y){var B=Y.px,N=Y.py,$=Y.cx,J=Y.cy,et=Y.rx,ot=Y.ry,ut=Y.xAxisRotation,K=ut===void 0?0:ut,Q=Y.largeArcFlag,ft=Q===void 0?0:Q,mt=Y.sweepFlag,yt=mt===void 0?0:mt,Et=[];if(et===0||ot===0)return[];var ht=Math.sin(K*n/360),Nt=Math.cos(K*n/360),Bt=Nt*(B-$)/2+ht*(N-J)/2,G=-ht*(B-$)/2+Nt*(N-J)/2;if(Bt===0&&G===0)return[];et=Math.abs(et),ot=Math.abs(ot);var H=Math.pow(Bt,2)/Math.pow(et,2)+Math.pow(G,2)/Math.pow(ot,2);H>1&&(et*=Math.sqrt(H),ot*=Math.sqrt(H));var rt=f(B,N,$,J,et,ot,ft,yt,ht,Nt,Bt,G),at=r(rt,4),z=at[0],j=at[1],I=at[2],M=at[3],X=Math.max(Math.ceil(Math.abs(M)/(n/4)),1);M/=X;for(var Z=0;Z<X;Z++)Et.push(c(I,M)),I+=M;return Et.map(function(q){var nt=s(q[0],et,ot,Nt,ht,z,j),ct=nt.x,Pt=nt.y,Ct=s(q[1],et,ot,Nt,ht,z,j),At=Ct.x,bt=Ct.y,wt=s(q[2],et,ot,Nt,ht,z,j),Ot=wt.x,Lt=wt.y;return{x1:ct,y1:Pt,x2:At,y2:bt,x:Ot,y:Lt}})},v={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},h=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function y(W){var Y=[];return W.replace(h,function(B,N,$){var J=N.toLowerCase();for($=O($),J=="m"&&$.length>2&&(Y.push([N].concat($.splice(0,2))),J="l",N=N=="m"?"l":"L");;){if($.length==v[J])return $.unshift(N),Y.push($);if($.length<v[J])throw new Error("malformed path data");Y.push([N].concat($.splice(0,v[J])))}}),Y}var T=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function O(W){var Y=W.match(T);return Y?Y.map(Number):[]}function C(W){var Y=W[0][0],B=W[0][1],N=Y,$=B;return W.forEach(function(J){var et=J[0],ot=J[2],ut=J[4],K=J[6],Q=J[1],ft=J[3],mt=J[5],yt=J[7];Y=Math.min(Y,et,ot,ut,K),B=Math.min(B,Q,ft,mt,yt),N=Math.max(N,et,ot,ut,K),$=Math.max($,Q,ft,mt,yt)}),[Y,B,N,$]}function S(W,Y){return Math.sqrt(Math.pow(W[0]-Y[0],2)+Math.pow(W[1]-Y[1],2))+Math.sqrt(Math.pow(W[2]-Y[2],2)+Math.pow(W[3]-Y[3],2))}function w(W,Y){var B=W[0],N=W[2],$=W[4],J=W[6],et=W[1],ot=W[3],ut=W[5],K=W[7],Q=Y[0],ft=Y[2],mt=Y[4],yt=Y[6],Et=Y[1],ht=Y[3],Nt=Y[5],Bt=Y[7];return Math.sqrt(Math.pow(Q-B,2)+Math.pow(Et-et,2))+Math.sqrt(Math.pow(ft-N,2)+Math.pow(ht-ot,2))+Math.sqrt(Math.pow(mt-$,2)+Math.pow(Nt-ut,2))+Math.sqrt(Math.pow(yt-J,2)+Math.pow(Bt-K,2))}function d(W,Y){var B=p(W.length),N=[];B.forEach(function(J){var et=0,ot=0;J.forEach(function(ut){et+=w(W[ut],Y[ot++])}),N.push({index:J,distance:et})}),N.sort(function(J,et){return J.distance-et.distance});var $=[];return N[0].index.forEach(function(J){$.push(W[J])}),$}function g(W,Y){var B=P(W.length),N=[];B.forEach(function(J){var et=0;J.forEach(function(ot){et+=S(C(W[ot]),C(Y[ot]))}),N.push({index:J,distance:et})}),N.sort(function(J,et){return J.distance-et.distance});var $=[];return N[0].index.forEach(function(J){$.push(W[J])}),$}function p(W){for(var Y=[],B=0;B<W;B++){for(var N=[],$=0;$<W;$++){var J=$+B;J>W-1&&(J-=W),N[J]=$}Y.push(N)}return Y}function P(W){for(var Y=[],B=0;B<W;B++)Y.push(B);return A(Y)}function A(W){var Y=[],B=[];function N($){var J,et;for(J=0;J<$.length;J++)et=$.splice(J,1)[0],B.push(et),$.length==0&&Y.push(B.slice()),N($),$.splice(J,0,et),B.pop();return Y}return N(W)}var R={};R.parser=y,R.lerpCurve=function(W,Y,B){return R.lerpPoints(W[0],W[1],Y[0],Y[1],B).concat(R.lerpPoints(W[2],W[3],Y[2],Y[3],B)).concat(R.lerpPoints(W[4],W[5],Y[4],Y[5],B)).concat(R.lerpPoints(W[6],W[7],Y[6],Y[7],B))},R.lerpPoints=function(W,Y,B,N,$){return[W+(B-W)*$,Y+(N-Y)*$]},R.q2b=function(W,Y,B,N,$,J){return[W,Y,(W+2*B)/3,(Y+2*N)/3,($+2*B)/3,(J+2*N)/3,$,J]},R.path2shapes=function(W){for(var Y=R.parser(W),B=0,N=0,$=0,J=Y.length,et=[],ot=null,ut=void 0,K=void 0,Q=void 0,ft=void 0,mt=void 0,yt=void 0,Et=void 0;$<J;$++){var ht=Y[$],Nt=ht[0],Bt=Y[$-1];switch(Nt){case"m":mt=et.length,et[mt]=[],ot=et[mt],B=B+ht[1],N=N+ht[2];break;case"M":mt=et.length,et[mt]=[],ot=et[mt],B=ht[1],N=ht[2];break;case"l":ot.push([B,N,B,N,B,N,B+ht[1],N+ht[2]]),B+=ht[1],N+=ht[2];break;case"L":ot.push([B,N,ht[1],ht[2],ht[1],ht[2],ht[1],ht[2]]),B=ht[1],N=ht[2];break;case"h":ot.push([B,N,B,N,B,N,B+ht[1],N]),B+=ht[1];break;case"H":ot.push([B,N,ht[1],N,ht[1],N,ht[1],N]),B=ht[1];break;case"v":ot.push([B,N,B,N,B,N,B,N+ht[1]]),N+=ht[1];break;case"V":ot.push([B,N,B,ht[1],B,ht[1],B,ht[1]]),N=ht[1];break;case"C":ot.push([B,N,ht[1],ht[2],ht[3],ht[4],ht[5],ht[6]]),B=ht[5],N=ht[6];break;case"S":Bt[0]==="C"||Bt[0]==="c"?ot.push([B,N,B+Bt[5]-Bt[3],N+Bt[6]-Bt[4],ht[1],ht[2],ht[3],ht[4]]):(Bt[0]==="S"||Bt[0]==="s")&&ot.push([B,N,B+Bt[3]-Bt[1],N+Bt[4]-Bt[2],ht[1],ht[2],ht[3],ht[4]]),B=ht[3],N=ht[4];break;case"c":ot.push([B,N,B+ht[1],N+ht[2],B+ht[3],N+ht[4],B+ht[5],N+ht[6]]),B=B+ht[5],N=N+ht[6];break;case"s":Bt[0]==="C"||Bt[0]==="c"?ot.push([B,N,B+Bt[5]-Bt[3],N+Bt[6]-Bt[4],B+ht[1],N+ht[2],B+ht[3],N+ht[4]]):(Bt[0]==="S"||Bt[0]==="s")&&ot.push([B,N,B+Bt[3]-Bt[1],N+Bt[4]-Bt[2],B+ht[1],N+ht[2],B+ht[3],N+ht[4]]),B=B+ht[3],N=N+ht[4];break;case"a":yt=u({rx:ht[1],ry:ht[2],px:B,py:N,xAxisRotation:ht[3],largeArcFlag:ht[4],sweepFlag:ht[5],cx:B+ht[6],cy:N+ht[7]}),Et=yt[yt.length-1],yt.forEach(function(G,H){H===0?ot.push([B,N,G.x1,G.y1,G.x2,G.y2,G.x,G.y]):ot.push([yt[H-1].x,yt[H-1].y,G.x1,G.y1,G.x2,G.y2,G.x,G.y])}),B=Et.x,N=Et.y;break;case"A":yt=u({rx:ht[1],ry:ht[2],px:B,py:N,xAxisRotation:ht[3],largeArcFlag:ht[4],sweepFlag:ht[5],cx:ht[6],cy:ht[7]}),Et=yt[yt.length-1],yt.forEach(function(G,H){H===0?ot.push([B,N,G.x1,G.y1,G.x2,G.y2,G.x,G.y]):ot.push([yt[H-1].x,yt[H-1].y,G.x1,G.y1,G.x2,G.y2,G.x,G.y])}),B=Et.x,N=Et.y;break;case"Q":ot.push(R.q2b(B,N,ht[1],ht[2],ht[3],ht[4])),B=ht[3],N=ht[4];break;case"q":ot.push(R.q2b(B,N,B+ht[1],N+ht[2],ht[3]+B,ht[4]+N)),B+=ht[3],N+=ht[4];break;case"T":Bt[0]==="Q"||Bt[0]==="q"?(Q=B+Bt[3]-Bt[1],ft=N+Bt[4]-Bt[2],ot.push(R.q2b(B,N,Q,ft,ht[1],ht[2]))):(Bt[0]==="T"||Bt[0]==="t")&&(ot.push(R.q2b(B,N,B+B-Q,N+N-ft,ht[1],ht[2])),Q=B+B-Q,ft=N+N-ft),B=ht[1],N=ht[2];break;case"t":Bt[0]==="Q"||Bt[0]==="q"?(Q=B+Bt[3]-Bt[1],ft=N+Bt[4]-Bt[2],ot.push(R.q2b(B,N,Q,ft,B+ht[1],N+ht[2]))):(Bt[0]==="T"||Bt[0]==="t")&&(ot.push(R.q2b(B,N,B+B-Q,N+N-ft,B+ht[1],N+ht[2])),Q=B+B-Q,ft=N+N-ft),B+=ht[1],N+=ht[2];break;case"Z":ut=ot[0][0],K=ot[0][1],ot.push([B,N,ut,K,ut,K,ut,K]);break;case"z":ut=ot[0][0],K=ot[0][1],ot.push([B,N,ut,K,ut,K,ut,K]);break}}return et},R._upCurves=function(W,Y){for(var B=0,N=0,$=W.length;B<Y;B++)W.push(W[N].slice(0)),N++,N>$-1&&(N-=$)};function D(W,Y,B,N,$,J,et,ot,ut){return{left:U(W,Y,B,N,$,J,et,ot,ut),right:U(et,ot,$,J,B,N,W,Y,1-ut,!0)}}function U(W,Y,B,N,$,J,et,ot,ut,K){var Q=(B-W)*ut+W,ft=(N-Y)*ut+Y,mt=($-B)*ut+B,yt=(J-N)*ut+N,Et=(et-$)*ut+$,ht=(ot-J)*ut+J,Nt=(mt-Q)*ut+Q,Bt=(yt-ft)*ut+ft,G=(Et-mt)*ut+mt,H=(ht-yt)*ut+yt,rt=(G-Nt)*ut+Nt,at=(H-Bt)*ut+Bt;return K?[rt,at,Nt,Bt,Q,ft,W,Y]:[W,Y,Q,ft,Nt,Bt,rt,at]}R._splitCurves=function(W,Y){for(var B=0,N=0;B<Y;B++){var $=W[N],J=D($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],.5);W.splice(N,1),W.splice(N,0,J.left,J.right),N+=2,N>=W.length-1&&(N=0)}};function L(W,Y){for(var B=function(J){var et=W[W.length-1],ot=[];et.forEach(function(ut){ot.push(ut.slice(0))}),W.push(ot)},N=0;N<Y;N++)B()}return R.lerp=function(W,Y,B){return R._lerp(R.path2shapes(W),R.path2shapes(Y),B)},R.MIM_CURVES_COUNT=100,R._preprocessing=function(W,Y){var B=W.length,N=Y.length,$=JSON.parse(JSON.stringify(W)),J=JSON.parse(JSON.stringify(Y));return B>N?L(J,B-N):B<N&&L($,N-B),$=g($,J),$.forEach(function(et,ot){var ut=et.length,K=J[ot].length;ut>K?ut<R.MIM_CURVES_COUNT?(R._splitCurves(et,R.MIM_CURVES_COUNT-ut),R._splitCurves(J[ot],R.MIM_CURVES_COUNT-K)):R._splitCurves(J[ot],ut-K):ut<K&&(K<R.MIM_CURVES_COUNT?(R._splitCurves(et,R.MIM_CURVES_COUNT-ut),R._splitCurves(J[ot],R.MIM_CURVES_COUNT-K)):R._splitCurves(et,K-ut))}),$.forEach(function(et,ot){$[ot]=d(et,J[ot])}),[$,J]},R._lerp=function(W,Y,B){var N=[];return W.forEach(function($,J){var et=[];$.forEach(function(ot,ut){et.push(R.lerpCurve(ot,Y[J][ut],B))}),N.push(et)}),N},R.animate=function(W){var Y=R.path2shapes(W.from),B=R.path2shapes(W.to),N=R._preprocessing(Y,B),$=new Date,J=W.end||function(){},et=W.progress||function(){},ot=W.begin||function(){},ut=W.easing||function(yt){return yt},K=null,Q=null,ft=W.time;ot(Y);var mt=function yt(){var Et=new Date-$;if(Et>=ft){Q=B,et(Q,1),J(Q),cancelAnimationFrame(K);return}var ht=ut(Et/ft);Q=R._lerp(N[0],N[1],ht),et(Q,ht),K=requestAnimationFrame(yt)};mt()},R})},function(i,e,t){t.r(e),t.d(e,"default",function(){return u});var r=t(71),n=t(221),s=t(72);t(1).glMatrix.setMatrixArrayType(Array);const c=Symbol.for("spritejs_setAttributeDefault"),l=Symbol.for("spritejs_setAttribute"),f=Symbol.for("spritejs_getAttribute");class u extends r.default{constructor(h){super(h),this[c]({d:"",normalize:!1,fillColor:void 0,fillRule:"nonzero",strokeColor:void 0,lineWidth:1,lineJoin:"miter",lineCap:"butt",roundSegments:20,lineDash:void 0,lineDashOffset:0,miterLimit:10,texture:void 0,textureRect:void 0,textureRepeat:!1,sourceRect:void 0,clipPath:void 0})}get d(){return this[f]("d")}set d(h){this[l]("d",h)}get normalize(){return this[f]("normalize")}set normalize(h){this[l]("normalize",!!h)}get fillColor(){return this[f]("fillColor")}set fillColor(h){this[l]("fillColor",Object(n.parseColor)(h))}get fillRule(){return this[f]("fillRule")}set fillRule(h){if(h!=null&&h!=="nonzero"&&h!=="evenodd")throw new TypeError("Invalid fill rule.");this[l]("fillRule",h)}get strokeColor(){return this[f]("strokeColor")}set strokeColor(h){this[l]("strokeColor",Object(n.parseColor)(h))}get lineWidth(){return this[f]("lineWidth")}set lineWidth(h){this[l]("lineWidth",Object(s.toNumber)(h))}get lineJoin(){return this[f]("lineJoin")}set lineJoin(h){if(h!=null&&h!=="miter"&&h!=="bevel"&&h!=="round")throw new TypeError("Invalid lineJoin type.");this[l]("lineJoin",h)}get lineCap(){return this[f]("lineCap")}set lineCap(h){if(h!=null&&h!=="butt"&&h!=="square"&&h!=="round")throw new TypeError("Invalid lineCap type.");this[l]("lineCap",h)}get lineDash(){return this[f]("lineDash")}set lineDash(h){h=Object(s.toArray)(h,!0),h!=null&&!Array.isArray(h)&&(h=[h]),this[l]("lineDash",h?h.map(s.toNumber):null)}get lineDashOffset(){return this[f]("lineDashOffset")}set lineDashOffset(h){this[l]("lineDashOffset",Object(s.toNumber)(h))}get miterLimit(){return this[f]("miterLimit")}set miterLimit(h){this[l]("miterLimit",Object(s.toNumber)(h))}get roundSegments(){return this[f]("roundSegments")}set roundSegments(h){this[l]("roundSegments",h)}get texture(){return this[f]("texture")}set texture(h){this[l]("texture",h)}get textureRect(){return this[f]("textureRect")}set textureRect(h){this[l]("textureRect",h)}get sourceRect(){return this[f]("sourceRect")}set sourceRect(h){this[l]("sourceRect",h)}get textureRepeat(){return this[f]("textureRepeat")}set textureRepeat(h){this[l]("textureRepeat",!!h)}get clipPath(){return this[f]("clipPath")}set clipPath(h){this[l]("clipPath",h)}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(226),n=t(213),s=t(230);t(1).glMatrix.setMatrixArrayType(Array);function c(f,u,v){return u in f?Object.defineProperty(f,u,{value:v,enumerable:!0,configurable:!0,writable:!0}):f[u]=v,f}class l extends r.default{get isVisible(){const{width:u,height:v}=this.attributes;return u>0&&v>0&&super.isVisible}}c(l,"Attr",s.default),n.default.registerNode(l,"rect")},function(i,e,t){t.r(e),t.d(e,"default",function(){return v});var r=t(228),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),c=Symbol.for("spritejs_setAttribute"),l=Symbol.for("spritejs_getAttribute"),f=Symbol.for("spritejs_declareAlias");function u(h){const{width:y,height:T}=h;return`M0 0L${y} 0L${y} ${T}L0 ${T}Z`}class v extends r.default{constructor(y){super(y),this[s]({width:0,height:0}),this[f]("size")}get d(){return this[l]("d")}set d(y){}get width(){return this[l]("width")}set width(y){if(y=Object(n.toNumber)(y),this[c]("width",y)){const T=u(this);this[c]("d",T)}}get height(){return this[l]("height")}set height(y){if(y=Object(n.toNumber)(y),this[c]("height",y)){const T=u(this);this[c]("d",T)}}get size(){return[this.width,this.height]}set size(y){y=Object(n.toArray)(y),Array.isArray(y)||(y=[y,y]),this.width=y[0],this.height=y[1]}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(232),n=t(213),s=t(235);t(1).glMatrix.setMatrixArrayType(Array);function c(f,u,v){return u in f?Object.defineProperty(f,u,{value:v,enumerable:!0,configurable:!0,writable:!0}):f[u]=v,f}class l extends r.default{get isVisible(){const{sides:u}=this.attributes;return u[0]>0&&u[1]>0&&super.isVisible}}c(l,"Attr",s.default),n.default.registerNode(l,"triangle")},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(226),n=t(213),s=t(233);t(1).glMatrix.setMatrixArrayType(Array);function c(f,u,v){return u in f?Object.defineProperty(f,u,{value:v,enumerable:!0,configurable:!0,writable:!0}):f[u]=v,f}class l extends r.default{get isVisible(){const{points:u}=this.attributes;return u.length>0&&super.isVisible}}c(l,"Attr",s.default),n.default.registerNode(l,"polyline")},function(i,e,t){t.r(e),t.d(e,"default",function(){return h});var r=t(228),n=t(72),s=t(234);t(1).glMatrix.setMatrixArrayType(Array);const c=Symbol.for("spritejs_setAttributeDefault"),l=Symbol.for("spritejs_setAttribute"),f=Symbol.for("spritejs_getAttribute"),u=Symbol.for("spritejs_declareAlias");function v(y){const{points:T,smooth:O,smoothRange:C,close:S}=y,w=[];for(let g=0;g<T.length;g+=2)w.push([T[g],T[g+1]]);let d="";return O?d=Object(s.makeSmoothCurveLine)(w,C):w.length&&(d=`M${w.map(g=>g.join(" ")).join("L")}`),d&&S&&(d+="Z"),d}class h extends r.default{constructor(T){super(T),this[c]({points:[],smooth:!1,smoothRange:[0],closeType:"none"}),this[u]("close")}get d(){return this[f]("d")}set d(T){}get close(){return this.closeType!=="none"}set close(T){T=T?"normal":"none",this.closeType=T}get closeType(){return this[f]("closeType")}set closeType(T){if(T!=null&&T!=="none"&&T!=="normal")throw new TypeError("Invalid closeType type.");if(this[l]("closeType",T)){const O=v(this);this[l]("d",O)}}get smooth(){return this[f]("smooth")}set smooth(T){if(this[l]("smooth",T)){const O=v(this);this[l]("d",O)}}get smoothRange(){return this[f]("smoothRange")}set smoothRange(T){if(T&&!Array.isArray(T)&&(T=[T]),this[l]("smoothRange",T)&&this.smooth){const O=v(this);this[l]("d",O)}}get points(){return this[f]("points")}set points(T){if(T=Object(n.toArray)(T),Array.isArray(T)&&(T=T.reduce((O,C)=>Array.isArray(C)?[...O,...C.map(S=>Object(n.toNumber)(S))]:[...O,Object(n.toNumber)(C)],[])),this[l]("points",T)){const O=v(this);this[l]("d",O)}}}},function(i,e,t){t.r(e),t.d(e,"makeSmoothCurveLine",function(){return r}),t(1).glMatrix.setMatrixArrayType(Array);function r(n,s=[0]){function c(u,v=.168,h=.168){let y,T,O,C;if((n[u].x===n[u+1].x||n[u].y===n[u+1].y)&&(v=0,h=0),u<1?(y=n[0].x+(n[1].x-n[0].x)*v,T=n[0].y+(n[1].y-n[0].y)*v):(y=n[u].x+(n[u+1].x-n[u-1].x)*v,T=n[u].y+(n[u+1].y-n[u-1].y)*v),u>n.length-3){const S=n.length-1;O=n[S].x-(n[S].x-n[S-1].x)*h,C=n[S].y-(n[S].y-n[S-1].y)*h}else O=n[u+1].x-(n[u+2].x-n[u].x)*h,C=n[u+1].y-(n[u+2].y-n[u].y)*h;return[{x:y,y:T},{x:O,y:C}]}n=n.map(([u,v])=>({x:u,y:v}));let l="",f=0;return n.forEach((u,v)=>{if(v===0)l+=`M${u.x} ${u.y}`;else{for(;v>s[f];)f++;if(f%2){const[h,y]=c(v-1);l+=`C${[h.x,h.y,y.x,y.y,u.x,u.y].join(" ")}`}else l+=`L${u.x} ${u.y}`}}),l}},function(i,e,t){t.r(e),t.d(e,"default",function(){return u});var r=t(233),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),c=Symbol.for("spritejs_setAttribute"),l=Symbol.for("spritejs_getAttribute");function f(v){const[h,y]=v.sides;let T=v.angle%360;return T<0&&(T+=360),T=Math.PI*T/180,[0,0,h,0,y*Math.cos(T),y*Math.sin(T)]}class u extends r.default{constructor(h){super(h),this[s]({sides:[0,0],angle:60,closeType:"normal"})}get points(){return super.points}set points(h){}get sides(){return this[l]("sides")}set sides(h){if(h=Object(n.toArray)(h,!0),h!=null&&!Array.isArray(h)&&(h=[h,h]),this[c]("sides",h)){const y=f(this);super.points=y}}get angle(){return this[l]("angle")}set angle(h){if(h=Object(n.toNumber)(h),this[c]("angle",h)){const y=f(this);super.points=y}}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(232),n=t(213),s=t(237);t(1).glMatrix.setMatrixArrayType(Array);function c(f,u,v){return u in f?Object.defineProperty(f,u,{value:v,enumerable:!0,configurable:!0,writable:!0}):f[u]=v,f}class l extends r.default{get isVisible(){const{sides:u}=this.attributes;return u[0]>0&&u[1]>0&&super.isVisible}}c(l,"Attr",s.default),n.default.registerNode(l,"parallel")},function(i,e,t){t.r(e),t.d(e,"default",function(){return u});var r=t(233),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),c=Symbol.for("spritejs_setAttribute"),l=Symbol.for("spritejs_getAttribute");function f(v){const[h,y]=v.sides;let T=v.angle%360;T<0&&(T+=360),T=Math.PI*T/180;const O=y*Math.cos(T),C=y*Math.sin(T);return[0,0,h,0,O+h,C,O,C]}class u extends r.default{constructor(h){super(h),this[s]({sides:[0,0],angle:90,closeType:"normal"})}get points(){return super.points}set points(h){}get sides(){return this[l]("sides")}set sides(h){if(h=Object(n.toArray)(h,!0),h!=null&&!Array.isArray(h)&&(h=[h,h]),this[c]("sides",h)){const y=f(this);super.points=y}}get angle(){return this[l]("angle")}set angle(h){if(h=Object(n.toNumber)(h),this[c]("angle",h)){const y=f(this);super.points=y}}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(232),n=t(213),s=t(239);t(1).glMatrix.setMatrixArrayType(Array);function c(f,u,v){return u in f?Object.defineProperty(f,u,{value:v,enumerable:!0,configurable:!0,writable:!0}):f[u]=v,f}class l extends r.default{}c(l,"Attr",s.default),n.default.registerNode(l,"regular")},function(i,e,t){t.r(e),t.d(e,"default",function(){return u});var r=t(233),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),c=Symbol.for("spritejs_setAttribute"),l=Symbol.for("spritejs_getAttribute");function f(v){const{edges:h,radius:y,offsetAngle:T}=v,O=Math.PI*T/180-.5*Math.PI;if(h<3||y<=0)return[];const C=[];for(let S=0;S<h;S++){const w=S*2*Math.PI/h+O,d=y*Math.cos(w),g=y*Math.sin(w);C.push(d,g)}return C}class u extends r.default{constructor(h){super(h),this[s]({edges:3,radius:0,offsetAngle:0,closeType:"normal"})}get points(){return super.points}set points(h){}get edges(){return this[l]("edges")}set edges(h){if(h=Object(n.toNumber)(h),this[c]("edges",h)){const y=f(this);super.points=y}}get radius(){return this[l]("radius")}set radius(h){if(h=Object(n.toNumber)(h),this[c]("radius",h)){const y=f(this);super.points=y}}get offsetAngle(){return this[l]("offsetAngle")}set offsetAngle(h){if(h=Object(n.toNumber)(h),this[c]("offsetAngle",h)){const y=f(this);super.points=y}}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(232),n=t(213),s=t(241);t(1).glMatrix.setMatrixArrayType(Array);function c(f,u,v){return u in f?Object.defineProperty(f,u,{value:v,enumerable:!0,configurable:!0,writable:!0}):f[u]=v,f}class l extends r.default{}c(l,"Attr",s.default),n.default.registerNode(l,"star")},function(i,e,t){t.r(e),t.d(e,"default",function(){return u});var r=t(233),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),c=Symbol.for("spritejs_setAttribute"),l=Symbol.for("spritejs_getAttribute");function f(v){const{angles:h,innerRadius:y,outerRadius:T,offsetAngle:O}=v,C=Math.PI*O/180-.5*Math.PI;if(h<3||y<=0||T<=0)return[];const S=[];for(let w=0;w<h*2;w++){const d=w*Math.PI/h+C,g=w%2?y:T,p=g*Math.cos(d),P=g*Math.sin(d);S.push(p,P)}return S}class u extends r.default{constructor(h){super(h),this[s]({angles:5,innerRadius:0,outerRadius:0,offsetAngle:0,closeType:"normal"})}get points(){return super.points}set points(h){}get angles(){return this[l]("angles")}set angles(h){if(h=Object(n.toNumber)(h),this[c]("angles",h)){const y=f(this);super.points=y}}get innerRadius(){return this[l]("innerRadius")}set innerRadius(h){if(h=Object(n.toNumber)(h),this[c]("innerRadius",h)){const y=f(this);super.points=y}}get outerRadius(){return this[l]("outerRadius")}set outerRadius(h){if(h=Object(n.toNumber)(h),this[c]("outerRadius",h)){const y=f(this);super.points=y}}get radius(){return[this.innerRadius,this.outerRadius]}set radius(h){h=Object(n.toArray)(h,!0),Array.isArray(h)||(h=[h,h]),this.innerRadius=h[0],this.outerRadius=h[1]}get offsetAngle(){return this[l]("offsetAngle")}set offsetAngle(h){if(h=Object(n.toNumber)(h),this[c]("offsetAngle",h)){const y=f(this);super.points=y}}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(226),n=t(213),s=t(243);t(1).glMatrix.setMatrixArrayType(Array);function c(f,u,v){return u in f?Object.defineProperty(f,u,{value:v,enumerable:!0,configurable:!0,writable:!0}):f[u]=v,f}class l extends r.default{get isVisible(){const{radiusX:u,radiusY:v,startAngle:h,endAngle:y}=this.attributes;return u>0&&v>0&&h!==y&&super.isVisible}}c(l,"Attr",s.default),n.default.registerNode(l,"ellipse")},function(i,e,t){t.r(e),t.d(e,"default",function(){return h});var r=t(12),n=t(228),s=t(72);t(1).glMatrix.setMatrixArrayType(Array);const c=Symbol.for("spritejs_setAttributeDefault"),l=Symbol.for("spritejs_setAttribute"),f=Symbol.for("spritejs_getAttribute"),u=Symbol.for("spritejs_declareAlias");function v(y){const{radiusX:T,radiusY:O,startAngle:C,endAngle:S,direction:w,closeType:d}=y,g=w==="anitclockwise",p=new r.Figure2D;return d==="sector"&&p.moveTo(0,0),p.ellipse(0,0,T,O,0,Math.PI*C/180,Math.PI*S/180,g),d!=="none"&&p.closePath(),p.path.reduce((R,D)=>R+D.join(" "),"")}class h extends n.default{constructor(T){super(T),this[c]({radiusX:0,radiusY:0,startAngle:0,endAngle:360,direction:"clockwise",closeType:"none"}),this[u]("radius","angle")}get d(){return this[f]("d")}set d(T){}get radiusX(){return this[f]("radiusX")}set radiusX(T){if(T=Object(s.toNumber)(T),this[l]("radiusX",T)){const O=v(this);this[l]("d",O)}}get radiusY(){return this[f]("radiusY")}set radiusY(T){if(T=Object(s.toNumber)(T),this[l]("radiusY",T)){const O=v(this);this[l]("d",O)}}get radius(){return[this.radiusX,this.radiusY]}set radius(T){T=Object(s.toArray)(T,!0),Array.isArray(T)||(T=[T,T]),this.radiusX=T[0],this.radiusY=T[1]}get angle(){return[this.startAngle,this.endAngle]}set angle(T){T=Object(s.toArray)(T),Array.isArray(T)||(T=[T,T]),this.startAngle=T[0],this.endAngle=T[1]}get direction(){return this[f]("direction")}set direction(T){if(T!=null&&T!=="clockwise"&&T!=="anticlockwise")throw new TypeError("Invalid direction type.");this[l]("direction",T)}get startAngle(){return this[f]("startAngle")}set startAngle(T){if(T=Object(s.toNumber)(T),this[l]("startAngle",T)){const O=v(this);this[l]("d",O)}}get endAngle(){return this[f]("endAngle")}set endAngle(T){if(T=Object(s.toNumber)(T),this[l]("endAngle",T)){const O=v(this);this[l]("d",O)}}get closeType(){return this[f]("closeType")}set closeType(T){if(T!=null&&T!=="none"&&T!=="sector"&&T!=="normal")throw new TypeError("Invalid closeType type.");if(this[l]("closeType",T)){const O=v(this);this[l]("d",O)}}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(242),n=t(213),s=t(245);t(1).glMatrix.setMatrixArrayType(Array);function c(f,u,v){return u in f?Object.defineProperty(f,u,{value:v,enumerable:!0,configurable:!0,writable:!0}):f[u]=v,f}class l extends r.default{}c(l,"Attr",s.default),n.default.registerNode(l,"arc")},function(i,e,t){t.r(e),t.d(e,"default",function(){return s});var r=t(243),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);class s extends r.default{get radius(){return super.radiusX}set radius(l){l=Object(n.toNumber)(l),super.radiusX=l,super.radiusY=l}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(226),n=t(213),s=t(247);t(1).glMatrix.setMatrixArrayType(Array);function c(f,u,v){return u in f?Object.defineProperty(f,u,{value:v,enumerable:!0,configurable:!0,writable:!0}):f[u]=v,f}class l extends r.default{get isVisible(){const{innerRadius:u,outerRadius:v,startAngle:h,endAngle:y}=this.attributes;return(u>0||v>0)&&h!==y&&super.isVisible}}c(l,"Attr",s.default),n.default.registerNode(l,"ring")},function(i,e,t){t.r(e),t.d(e,"default",function(){return h});var r=t(12),n=t(228),s=t(72);t(1).glMatrix.setMatrixArrayType(Array);const c=Symbol.for("spritejs_setAttributeDefault"),l=Symbol.for("spritejs_setAttribute"),f=Symbol.for("spritejs_getAttribute"),u=Symbol.for("spritejs_declareAlias");function v(y){let{innerRadius:T,outerRadius:O,startAngle:C,endAngle:S}=y;const w=new r.Figure2D;if(C=Math.PI*C/180,S=Math.PI*S/180,T>O&&([T,O]=[O,T]),T<=0&&w.moveTo(0,0),w.arc(0,0,O,C,S,!1),T>0){const p=Math.PI*2;S<C&&(S=C+p+(S-C)%p),S-C>=p&&(S=C+p-1e-6),w.arc(0,0,T,S,C,!0)}return w.closePath(),w.path.reduce((p,P)=>p+P.join(" "),"")}class h extends n.default{constructor(T){super(T),this[c]({innerRadius:0,outerRadius:0,startAngle:0,endAngle:360}),this[u]("radius","angle")}get d(){return this[f]("d")}set d(T){}get innerRadius(){return this[f]("innerRadius")}set innerRadius(T){if(T=Object(s.toNumber)(T),this[l]("innerRadius",T)){const O=v(this);this[l]("d",O)}}get outerRadius(){return this[f]("outerRadius")}set outerRadius(T){if(T=Object(s.toNumber)(T),this[l]("outerRadius",T)){const O=v(this);this[l]("d",O)}}get radius(){return[this.innerRadius,this.outerRadius]}set radius(T){T=Object(s.toArray)(T,!0),Array.isArray(T)||(T=[T,T]),this.innerRadius=T[0],this.outerRadius=T[1]}get startAngle(){return this[f]("startAngle")}set startAngle(T){if(T=Object(s.toNumber)(T),this[l]("startAngle",T)){const O=v(this);this[l]("d",O)}}get endAngle(){return this[f]("endAngle")}set endAngle(T){if(T=Object(s.toNumber)(T),this[l]("endAngle",T)){const O=v(this);this[l]("d",O)}}get angle(){return[this.startAngle,this.endAngle]}set angle(T){T=Object(s.toArray)(T),Array.isArray(T)||(T=[T,T]),this.startAngle=T[0],this.endAngle=T[1]}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return O});var r=t(12),n=t(218),s=t(219),c=t(249),l=t(213);t(1).glMatrix.setMatrixArrayType(Array);function f(C,S,w){return S in C?Object.defineProperty(C,S,{value:w,enumerable:!0,configurable:!0,writable:!0}):C[S]=w,C}const u=Symbol("textImage"),v=Symbol("textImageTask"),h=Symbol("textureContext"),y=Symbol("updateTextureRect"),T=Symbol("textCanvas");class O extends s.default{constructor(S={}){typeof S=="string"&&(S={text:S}),super(S)}get contentSize(){let[S,w]=super.contentSize;const{width:d,height:g}=this.attributes;if(d==null||g==null){const p=this[u];p&&(d==null&&(S=p.rect[2]),g==null&&(w=p.rect[3]))}return[S,w]}get text(){return this.attributes.text}set text(S){this.attributes.text=S}get textContent(){return this.attributes.text}set textContent(S){this.attributes.text=S}get textImage(){return this[u]||{}}get textImageReady(){return this[v]||Promise.resolve()}draw(S){super.draw(S);const w=this.mesh;if(w){const d=this[u];if(d){let g=w.texture;if(!g||this[h]&&this[h]!==this.renderer||d.needsUpdate?(d.needsUpdate=!1,Object(n.deleteTexture)(d.image,this.renderer),g=Object(n.createTexture)(d.image,this.renderer),this[y]=!0):g=w.uniforms.u_texSampler,this[y]){const[p,P]=d.rect.slice(2),[A,R]=this.contentSize,D=this.attributes.textAlign,U=this.attributes.verticalAlign;let L=0;D==="center"?L=(A-p)/2:(D==="right"||D==="end")&&(L=A-p);const W=this.attributes.fontSize,Y=this.attributes.lineHeight;let B=0;U==="top"?B=(W-Y)/2:U==="bottom"&&(B=(Y-W)/2);const{paddingLeft:N,paddingTop:$}=this.attributes,{borderWidth:J}=this.attributes;L+=N+J,B+=$+J;const{anchorX:et,anchorY:ot}=this.attributes;L-=this.offsetSize[0]*et,B-=this.offsetSize[1]*ot,w.setTexture(g,{rect:[L,B,p,P]}),this[y]=!1,this[h]=this.renderer}}}return S}onPropertyChange(S,w,d){S==="text"||S==="fontSize"||S==="fontFamily"||S==="fontStyle"||S==="fontVariant"||S==="fontWeight"||S==="fontStretch"||S==="lineHeight"||S==="strokeColor"||S==="fillColor"||S==="strokeWidth"?this.updateText():((S==="textAlign"||S==="verticalAlign")&&(this[y]=!0),super.onPropertyChange(S,w,d))}updateContours(){super.updateContours(),this[y]=!0}updateText(){this[v]||(this[v]=Promise.resolve().then(()=>{this[v]=null;const{text:S,font:w,fillColor:d,strokeColor:g,strokeWidth:p}=this.attributes,P=this.layer?this.layer.displayRatio:1;return this[T]=this[T]||r.ENV.createCanvas(1,1),this[u]=r.ENV.createText(S,{font:w,fillColor:d,strokeColor:g,strokeWidth:p,parseFont:r.parseFont,ratio:P,textCanvas:this[T]}),this[u].needsUpdate=!0,this.updateContours(),this.forceUpdate(),this[u]}))}}f(O,"Attr",c.default),l.default.registerNode(O,"label")},function(i,e,t){t.r(e),t.d(e,"default",function(){return h});var r=t(12),n=t(72),s=t(221),c=t(220);t(1).glMatrix.setMatrixArrayType(Array);const l=Symbol.for("spritejs_setAttributeDefault"),f=Symbol.for("spritejs_setAttribute"),u=Symbol.for("spritejs_getAttribute"),v=Symbol.for("spritejs_declareAlias");class h extends c.default{constructor(T){super(T),this[l]({text:"",fontSize:16,fontFamily:"Helvetica,Arial,sans-serif",fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",fontStretch:"normal",lineHeight:"",textAlign:"left",strokeColor:void 0,strokeWidth:1,fillColor:void 0,verticalAlign:"middle"}),this[v]("font")}get text(){return this[u]("text")||" "}set text(T){this[f]("text",T)}get fontSize(){return this[u]("fontSize")}set fontSize(T){this[f]("fontSize",Object(n.toNumber)(T))}get fontFamily(){return this[u]("fontFamily")}set fontFamily(T){this[f]("fontFamily",T)}get fontStyle(){return this[u]("fontStyle")}set fontStyle(T){this[f]("fontStyle",T)}get fontVariant(){return this[u]("fontVariant")}set fontVariant(T){this[f]("fontVariant",T)}get fontWeight(){return this[u]("fontWeight")}set fontWeight(T){this[f]("fontWeight",T)}get fontStretch(){return this[u]("fontStretch")}set fontStretch(T){this[f]("fontStretch",T)}get lineHeight(){return this[u]("lineHeight")||this.fontSize}set lineHeight(T){this[f]("lineHeight",Object(n.toNumber)(T))}get textAlign(){return this[u]("textAlign")}set textAlign(T){this[f]("textAlign",T)}get strokeColor(){return this[u]("strokeColor")}set strokeColor(T){this[f]("strokeColor",Object(s.parseColor)(T))}get strokeWidth(){return this[u]("strokeWidth")}set strokeWidth(T){this[f]("strokeWidth",Object(n.toNumber)(T))}get verticalAlign(){return this[u]("verticalAlign")}set verticalAlign(T){this[f]("verticalAlign",T)}get fillColor(){return this[u]("fillColor")}set fillColor(T){this[f]("fillColor",Object(s.parseColor)(T))}get font(){const{fontStyle:T,fontVariant:O,fontWeight:C,fontStretch:S,fontSize:w,lineHeight:d,fontFamily:g}=this;return`${T} ${O} ${C} ${S} ${w}px/${d}px ${g}`}set font(T){if(T==null)this.fontStyle=null,this.fontVariant=null,this.fontWeight=null,this.fontStretch=null,this.fontSize=null,this.lineHeight=null,this.fontFamily=null;else{const O=Object(r.parseFont)(T);this.fontStyle=O.style,this.fontVariant=O.variant,this.fontWeight=O.weight,this.fontStretch=O.stretch,this.fontSize=Object(n.toNumber)(`${O.size}${O.unit}`),O.lineHeight&&(this.lineHeight=O.pxLineHeight),this.fontFamily=O.family}}}},function(i,e,t){t.r(e),t.d(e,"default",function(){return T});var r=t(12),n=t(219),s=t(251),c=t(213),l=t(252);t(1).glMatrix.setMatrixArrayType(Array);function f(O,C,S){return C in O?Object.defineProperty(O,C,{value:S,enumerable:!0,configurable:!0,writable:!0}):O[C]=S,O}const u=Symbol("zOrder"),v=Symbol("ordered"),h=Symbol("children"),y=Symbol("sealed");class T extends n.default{constructor(C={}){super(C),this[h]=[],this[v]=null,this[u]=0}get childNodes(){return this[h]}get children(){return this[h]}get orderedChildren(){return this[v]||(this[v]=[...this[h]],this[v].sort((C,S)=>C.zIndex-S.zIndex||C.zOrder-S.zOrder)),this[v]}append(...C){return C.map(S=>this.appendChild(S))}appendChild(C){return C.remove(),this[h].push(C),C.connect(this,this[u]++),this[v]&&(this[v].length&&C.zIndex<this[v][this[v].length-1].zIndex?this.reorder():this[v].push(C)),C}cloneNode(C=!1){const S=super.cloneNode();return C&&this[h].forEach(w=>{const d=w.cloneNode(C);S.appendChild(d)}),S}dispatchPointerEvent(C){const S=this.orderedChildren;for(let w=S.length-1;w>=0;w--)if(S[w].dispatchPointerEvent(C))return!0;return super.dispatchPointerEvent(C)}draw(C=[]){if(this.__cacheRenderMatrix=this.renderMatrix,super.draw(C),!this[y]&&this.attributes.display!=="none"){const S=this.orderedChildren;for(let w=0;w<S.length;w++)S[w].draw(C)}return this.__cacheRenderMatrix=null,C}getElementById(C){return Object(l.querySelector)(`#${C}`,this)}getElementsByClassName(C){return Object(l.querySelectorAll)(`.${C}`,this)}getElementsByName(C){return Object(l.querySelectorAll)(`[name="${C}"]`,this)}getElementsByTagName(C){return Object(l.querySelectorAll)(C,this)}insertBefore(C,S){if(S==null)return this.appendChild(C);C.remove();const w=this[h].indexOf(S);if(w<0)throw new Error("Invalid reference node.");const d=S.zOrder;for(let g=w;g<this[h].length;g++){const p=this[h][g].zOrder,P=this[h][g];delete P.zOrder,Object.defineProperty(P,"zOrder",{value:p+1,writable:!1,configurable:!0})}if(this[h].splice(w,0,C),C.connect(this,d),this[v])if(C.zIndex!==S.zIndex)this.reorder();else{const g=this[v].indexOf(S);this[v].splice(g,0,C)}return C}querySelector(C){return Object(l.querySelector)(C,this)}querySelectorAll(C){return Object(l.querySelectorAll)(C,this)}replaceChild(C,S){C.remove();const w=this[h].indexOf(S);if(w<0)throw new Error("Invalid reference node.");if(this[h][w]=C,C.connect(this,S.zOrder),this[v])if(C.zIndex!==S.zIndex)this.reorder();else{const d=this[v].indexOf(S);this[v][d]=C}return S.disconnect(this),C}removeAllChildren(){const C=this[h];for(let S=C.length-1;S>=0;S--)C[S].remove()}removeChild(C){const S=this[h].indexOf(C);if(S>=0){if(this[h].splice(S,1),this[v]){const w=this[v].indexOf(C);this[v].splice(w,1)}return C.disconnect(this),C}return null}reorder(){this[v]=null}seal(){function C(g,p){const P=[];for(let A=0;A<g.length;A++){const R=[...g[A]];for(let D=1;D<R.length;D+=2){const U=R[D],L=R[D+1];R[D]=U*p[0]+L*p[2]+p[4],R[D+1]=U*p[1]+L*p[3]+p[5]}P.push(R)}return P}const S=this.orderedChildren,w=new r.Figure2D,d=this.localMatrix;for(let g=0;g<S.length;g++){let p=S[g];if(p instanceof T&&(p=p.seal()),p.clientBox){let P=p.clientBox.contours.path;P=C(P,p.localMatrix),w.addPath(P)}if(p.path){let P=p.path.contours.path;P=C(P,p.localMatrix),w.addPath(P)}}return this[y]=!0,this.clientBox=w,{clientBox:w,localMatrix:d}}setResolution({width:C,height:S}){super.setResolution({width:C,height:S}),this[h].forEach(w=>{w.setResolution({width:C,height:S})})}updateContours(){this[y]||super.updateContours()}}f(T,"Attr",s.default),c.default.registerNode(T,"group")},function(i,e,t){t.r(e),t.d(e,"default",function(){return n});var r=t(220);t(1).glMatrix.setMatrixArrayType(Array);class n extends r.default{}},function(i,e,t){t.r(e),t.d(e,"querySelectorAll",function(){return y}),t.d(e,"querySelector",function(){return T}),t.d(e,"isMatched",function(){return O}),t.d(e,"compile",function(){return C});var r=t(221),n=t(213);t(1).glMatrix.setMatrixArrayType(Array);const s=t(253);function c(S){return S.nodeType===1||n.default.isSpriteNode(S.nodeName)}function l(S){return Array.from(S.childNodes||[])}function f(S){return n.default.isSpriteNode(S.nodeName)?S.parent||S.canvas||S.container:S.parentElement}function u(S){let w=S.length,d,g,p;for(;--w>-1;){for(d=g=S[w],S[w]=null,p=!0;g;){if(S.indexOf(g)>-1){p=!1,S.splice(w,1);break}g=f(g)}p&&(S[w]=d)}return S}const v={isTag:c,existsOne(S,w){return w.some(d=>c(d)?S(d)||v.existsOne(S,l(d)):!1)},getSiblings(S){const w=f(S);return w&&l(w)},getChildren:l,getParent:f,getAttributeValue(S,w){if(S.nodeType===1&&w==="class"||w==="id")return S[w];if(this.hasAttrib(S,w)){let d=S.attributes[w];return Array.isArray(d)&&(d=`[${d.join()}]`),String(d)}},hasAttrib(S,w){return S.attributes[w]!=null},removeSubsets:u,getName(S){return S.tagName?S.tagName.toLowerCase():null},findOne:function S(w,d){let g=null;for(let p=0,P=d.length;p<P&&!g;p++)if(w(d[p]))g=d[p];else{const A=l(d[p]);A&&A.length>0&&(g=S(w,A))}return g},findAll:function S(w,d){let g=[];for(let p=0,P=d.length;p<P;p++){if(!c(d[p]))continue;w(d[p])&&g.push(d[p]);const A=l(d[p]);A&&(g=g.concat(S(w,A)))}return g},getText:function S(w){return Array.isArray(w)?w.map(S).join(""):c(w)?S(l(w)):w.nodeType===3?w.nodeValue:n.default.isSpriteNode(w.nodeName)?w.text:""}};function h(S){if(typeof S!="string")return S;let w=S.match(/\[(bgcolor|fillColor|strokeColor|color)\s*=\s*['"]?\w+['"]?\]/g);return w&&(w=w.map(d=>{const g=d.slice(1,-1).split("="),p=Object(r.parseColor)(g[1].replace(/['"]/g,""));return[d,`[${g[0]}="${p}"]`]}),w.forEach(([d,g])=>{S=S.replace(d,g)})),w=S.match(/\[\w+\s*=\s*['"]\[.+?\]['"]\]/g),w&&(w=w.map(d=>{const g=d.slice(1,-1).split("="),p=g[1].slice(2,-2).split(/,/g).map(P=>P.trim());return[d,`[${g[0]}="[${p}]"]`]}),w.forEach(([d,g])=>{S=S.replace(d,g)})),S}function y(S,w){return s.selectAll(h(S),w,{adapter:v})}function T(S,w){return s.selectOne(h(S),w,{adapter:v})}function O(S,w){return s.is(S,h(w),{adapter:v})}function C(S){return s.compile(h(S),{adapter:v})}},function(i,e,t){i.exports=C;var r=t(254),n=t(273).falseFunc,s=t(274);function c(S){return function(d,g,p){return g=g||{},g.adapter=g.adapter||r,S(d,g,p)}}var l=c(s),f=c(s.compileUnsafe);function u(S){return function(d,g,p){return p=p||{},p.adapter=p.adapter||r,typeof d!="function"&&(d=f(d,p,g)),d.shouldTestNextSiblings&&(g=h(p&&p.context||g,p.adapter)),Array.isArray(g)?g=p.adapter.removeSubsets(g):g=p.adapter.getChildren(g),S(d,g,p)}}function v(S,w){var d=w.getSiblings(S);if(!Array.isArray(d))return[];for(d=d.slice(0);d.shift()!==S;);return d}function h(S,w){Array.isArray(S)||(S=[S]);for(var d=S.slice(0),g=0,p=S.length;g<p;g++){var P=v(d[g],w);d.push.apply(d,P)}return d}var y=u(function(w,d,g){return w===n||!d||d.length===0?[]:g.adapter.findAll(w,d)}),T=u(function(w,d,g){return w===n||!d||d.length===0?null:g.adapter.findOne(w,d)});function O(S,w,d){return d=d||{},d.adapter=d.adapter||r,(typeof w=="function"?w:l(w,d))(S)}function C(S,w,d){return y(S,w,d)}C.compile=l,C.filters=s.Pseudos.filters,C.pseudos=s.Pseudos.pseudos,C.selectAll=y,C.selectOne=T,C.is=O,C.parse=l,C.iterate=y,C._compileUnsafe=f,C._compileToken=s.compileToken},function(i,e,t){var r=i.exports;[t(255),t(268),t(269),t(270),t(271),t(272)].forEach(function(n){Object.keys(n).forEach(function(s){r[s]=n[s].bind(r)})})},function(i,e,t){var r=t(256),n=t(257),s=r.isTag;i.exports={getInnerHTML:c,getOuterHTML:n,getText:l};function c(f,u){return f.children?f.children.map(function(v){return n(v,u)}).join(""):""}function l(f){return Array.isArray(f)?f.map(l).join(""):s(f)?f.name==="br"?`
|
|
565
|
+
`:l(f.children):f.type===r.CDATA?l(f.children):f.type===r.Text?f.data:""}},function(i,e){i.exports={Text:"text",Directive:"directive",Comment:"comment",Script:"script",Style:"style",Tag:"tag",CDATA:"cdata",Doctype:"doctype",isTag:function(t){return t.type==="tag"||t.type==="script"||t.type==="style"}}},function(i,e,t){var r=t(258),n=t(259),s=t(267);s.elementNames.__proto__=null,s.attributeNames.__proto__=null;var c={__proto__:null,style:!0,script:!0,xmp:!0,iframe:!0,noembed:!0,noframes:!0,plaintext:!0,noscript:!0};function l(S,w){if(S){var d="",g;for(var p in S)g=S[p],d&&(d+=" "),w.xmlMode==="foreign"&&(p=s.attributeNames[p]||p),d+=p,(g!==null&&g!==""||w.xmlMode)&&(d+='="'+(w.decodeEntities?n.encodeXML(g):g.replace(/\"/g,"""))+'"');return d}}var f={__proto__:null,area:!0,base:!0,basefont:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,isindex:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},u=i.exports=function(S,w){!Array.isArray(S)&&!S.cheerio&&(S=[S]),w=w||{};for(var d="",g=0;g<S.length;g++){var p=S[g];p.type==="root"?d+=u(p.children,w):r.isTag(p)?d+=h(p,w):p.type===r.Directive?d+=y(p):p.type===r.Comment?d+=C(p):p.type===r.CDATA?d+=O(p):d+=T(p,w)}return d},v=["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"];function h(S,w){w.xmlMode==="foreign"&&(S.name=s.elementNames[S.name]||S.name,S.parent&&v.indexOf(S.parent.name)>=0&&(w=Object.assign({},w,{xmlMode:!1}))),!w.xmlMode&&["svg","math"].indexOf(S.name)>=0&&(w=Object.assign({},w,{xmlMode:"foreign"}));var d="<"+S.name,g=l(S.attribs,w);return g&&(d+=" "+g),w.xmlMode&&(!S.children||S.children.length===0)?d+="/>":(d+=">",S.children&&(d+=u(S.children,w)),(!f[S.name]||w.xmlMode)&&(d+="</"+S.name+">")),d}function y(S){return"<"+S.data+">"}function T(S,w){var d=S.data||"";return w.decodeEntities&&!(S.parent&&S.parent.name in c)&&(d=n.encodeXML(d)),d}function O(S){return"<![CDATA["+S.children[0].data+"]]>"}function C(S){return"<!--"+S.data+"-->"}},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0});function r(n){return n.type==="tag"||n.type==="script"||n.type==="style"}e.isTag=r,e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.encode=e.decodeStrict=e.decode=void 0;var r=t(260),n=t(266);function s(v,h){return(!h||h<=0?r.decodeXML:r.decodeHTML)(v)}e.decode=s;function c(v,h){return(!h||h<=0?r.decodeXML:r.decodeHTMLStrict)(v)}e.decodeStrict=c;function l(v,h){return(!h||h<=0?n.encodeXML:n.encodeHTML)(v)}e.encode=l;var f=t(266);Object.defineProperty(e,"encodeXML",{enumerable:!0,get:function(){return f.encodeXML}}),Object.defineProperty(e,"encodeHTML",{enumerable:!0,get:function(){return f.encodeHTML}}),Object.defineProperty(e,"escape",{enumerable:!0,get:function(){return f.escape}}),Object.defineProperty(e,"encodeHTML4",{enumerable:!0,get:function(){return f.encodeHTML}}),Object.defineProperty(e,"encodeHTML5",{enumerable:!0,get:function(){return f.encodeHTML}});var u=t(260);Object.defineProperty(e,"decodeXML",{enumerable:!0,get:function(){return u.decodeXML}}),Object.defineProperty(e,"decodeHTML",{enumerable:!0,get:function(){return u.decodeHTML}}),Object.defineProperty(e,"decodeHTMLStrict",{enumerable:!0,get:function(){return u.decodeHTMLStrict}}),Object.defineProperty(e,"decodeHTML4",{enumerable:!0,get:function(){return u.decodeHTML}}),Object.defineProperty(e,"decodeHTML5",{enumerable:!0,get:function(){return u.decodeHTML}}),Object.defineProperty(e,"decodeHTML4Strict",{enumerable:!0,get:function(){return u.decodeHTMLStrict}}),Object.defineProperty(e,"decodeHTML5Strict",{enumerable:!0,get:function(){return u.decodeHTMLStrict}}),Object.defineProperty(e,"decodeXMLStrict",{enumerable:!0,get:function(){return u.decodeXML}})},function(i,e,t){var r=this&&this.__importDefault||function(h){return h&&h.__esModule?h:{default:h}};Object.defineProperty(e,"__esModule",{value:!0}),e.decodeHTML=e.decodeHTMLStrict=e.decodeXML=void 0;var n=r(t(261)),s=r(t(262)),c=r(t(263)),l=r(t(264));e.decodeXML=f(c.default),e.decodeHTMLStrict=f(n.default);function f(h){var y=Object.keys(h).join("|"),T=v(h);y+="|#[xX][\\da-fA-F]+|#\\d+";var O=new RegExp("&(?:"+y+");","g");return function(C){return String(C).replace(O,T)}}var u=function(h,y){return h<y?1:-1};e.decodeHTML=function(){for(var h=Object.keys(s.default).sort(u),y=Object.keys(n.default).sort(u),T=0,O=0;T<y.length;T++)h[O]===y[T]?(y[T]+=";?",O++):y[T]+=";";var C=new RegExp("&(?:"+y.join("|")+"|#[xX][\\da-fA-F]+;?|#\\d+;?)","g"),S=v(n.default);function w(d){return d.substr(-1)!==";"&&(d+=";"),S(d)}return function(d){return String(d).replace(C,w)}}();function v(h){return function(T){if(T.charAt(1)==="#"){var O=T.charAt(2);return O==="X"||O==="x"?l.default(parseInt(T.substr(3),16)):l.default(parseInt(T.substr(2),10))}return h[T.slice(1,-1)]}}},function(i){i.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"","InvisibleTimes":"","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"","NegativeThickSpace":"","NegativeThinSpace":"","NegativeVeryThinSpace":"","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":" ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"","zwnj":""}')},function(i){i.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Acirc":"Â","acirc":"â","acute":"´","AElig":"Æ","aelig":"æ","Agrave":"À","agrave":"à","amp":"&","AMP":"&","Aring":"Å","aring":"å","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","brvbar":"¦","Ccedil":"Ç","ccedil":"ç","cedil":"¸","cent":"¢","copy":"©","COPY":"©","curren":"¤","deg":"°","divide":"÷","Eacute":"É","eacute":"é","Ecirc":"Ê","ecirc":"ê","Egrave":"È","egrave":"è","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","frac12":"½","frac14":"¼","frac34":"¾","gt":">","GT":">","Iacute":"Í","iacute":"í","Icirc":"Î","icirc":"î","iexcl":"¡","Igrave":"Ì","igrave":"ì","iquest":"¿","Iuml":"Ï","iuml":"ï","laquo":"«","lt":"<","LT":"<","macr":"¯","micro":"µ","middot":"·","nbsp":" ","not":"¬","Ntilde":"Ñ","ntilde":"ñ","Oacute":"Ó","oacute":"ó","Ocirc":"Ô","ocirc":"ô","Ograve":"Ò","ograve":"ò","ordf":"ª","ordm":"º","Oslash":"Ø","oslash":"ø","Otilde":"Õ","otilde":"õ","Ouml":"Ö","ouml":"ö","para":"¶","plusmn":"±","pound":"£","quot":"\\"","QUOT":"\\"","raquo":"»","reg":"®","REG":"®","sect":"§","shy":"","sup1":"¹","sup2":"²","sup3":"³","szlig":"ß","THORN":"Þ","thorn":"þ","times":"×","Uacute":"Ú","uacute":"ú","Ucirc":"Û","ucirc":"û","Ugrave":"Ù","ugrave":"ù","uml":"¨","Uuml":"Ü","uuml":"ü","Yacute":"Ý","yacute":"ý","yen":"¥","yuml":"ÿ"}')},function(i){i.exports=JSON.parse(`{"amp":"&","apos":"'","gt":">","lt":"<","quot":"\\""}`)},function(i,e,t){var r=this&&this.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(e,"__esModule",{value:!0});var n=r(t(265));function s(c){if(c>=55296&&c<=57343||c>1114111)return"�";c in n.default&&(c=n.default[c]);var l="";return c>65535&&(c-=65536,l+=String.fromCharCode(c>>>10&1023|55296),c=56320|c&1023),l+=String.fromCharCode(c),l}e.default=s},function(i){i.exports=JSON.parse('{"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}')},function(i,e,t){var r=this&&this.__importDefault||function(w){return w&&w.__esModule?w:{default:w}};Object.defineProperty(e,"__esModule",{value:!0}),e.escape=e.encodeHTML=e.encodeXML=void 0;var n=r(t(263)),s=v(n.default),c=h(s);e.encodeXML=O(s,c);var l=r(t(261)),f=v(l.default),u=h(f);e.encodeHTML=O(f,u);function v(w){return Object.keys(w).sort().reduce(function(d,g){return d[w[g]]="&"+g+";",d},{})}function h(w){for(var d=[],g=[],p=0,P=Object.keys(w);p<P.length;p++){var A=P[p];A.length===1?d.push("\\"+A):g.push(A)}d.sort();for(var R=0;R<d.length-1;R++){for(var D=R;D<d.length-1&&d[D].charCodeAt(1)+1===d[D+1].charCodeAt(1);)D+=1;var U=1+D-R;U<3||d.splice(R,U,d[R]+"-"+d[D])}return g.unshift("["+d.join("")+"]"),new RegExp(g.join("|"),"g")}var y=/(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g;function T(w){return"&#x"+w.codePointAt(0).toString(16).toUpperCase()+";"}function O(w,d){return function(g){return g.replace(d,function(p){return w[p]}).replace(y,T)}}var C=h(s);function S(w){return w.replace(C,T).replace(y,T)}e.escape=S},function(i){i.exports=JSON.parse('{"elementNames":{"altglyph":"altGlyph","altglyphdef":"altGlyphDef","altglyphitem":"altGlyphItem","animatecolor":"animateColor","animatemotion":"animateMotion","animatetransform":"animateTransform","clippath":"clipPath","feblend":"feBlend","fecolormatrix":"feColorMatrix","fecomponenttransfer":"feComponentTransfer","fecomposite":"feComposite","feconvolvematrix":"feConvolveMatrix","fediffuselighting":"feDiffuseLighting","fedisplacementmap":"feDisplacementMap","fedistantlight":"feDistantLight","fedropshadow":"feDropShadow","feflood":"feFlood","fefunca":"feFuncA","fefuncb":"feFuncB","fefuncg":"feFuncG","fefuncr":"feFuncR","fegaussianblur":"feGaussianBlur","feimage":"feImage","femerge":"feMerge","femergenode":"feMergeNode","femorphology":"feMorphology","feoffset":"feOffset","fepointlight":"fePointLight","fespecularlighting":"feSpecularLighting","fespotlight":"feSpotLight","fetile":"feTile","feturbulence":"feTurbulence","foreignobject":"foreignObject","glyphref":"glyphRef","lineargradient":"linearGradient","radialgradient":"radialGradient","textpath":"textPath"},"attributeNames":{"definitionurl":"definitionURL","attributename":"attributeName","attributetype":"attributeType","basefrequency":"baseFrequency","baseprofile":"baseProfile","calcmode":"calcMode","clippathunits":"clipPathUnits","diffuseconstant":"diffuseConstant","edgemode":"edgeMode","filterunits":"filterUnits","glyphref":"glyphRef","gradienttransform":"gradientTransform","gradientunits":"gradientUnits","kernelmatrix":"kernelMatrix","kernelunitlength":"kernelUnitLength","keypoints":"keyPoints","keysplines":"keySplines","keytimes":"keyTimes","lengthadjust":"lengthAdjust","limitingconeangle":"limitingConeAngle","markerheight":"markerHeight","markerunits":"markerUnits","markerwidth":"markerWidth","maskcontentunits":"maskContentUnits","maskunits":"maskUnits","numoctaves":"numOctaves","pathlength":"pathLength","patterncontentunits":"patternContentUnits","patterntransform":"patternTransform","patternunits":"patternUnits","pointsatx":"pointsAtX","pointsaty":"pointsAtY","pointsatz":"pointsAtZ","preservealpha":"preserveAlpha","preserveaspectratio":"preserveAspectRatio","primitiveunits":"primitiveUnits","refx":"refX","refy":"refY","repeatcount":"repeatCount","repeatdur":"repeatDur","requiredextensions":"requiredExtensions","requiredfeatures":"requiredFeatures","specularconstant":"specularConstant","specularexponent":"specularExponent","spreadmethod":"spreadMethod","startoffset":"startOffset","stddeviation":"stdDeviation","stitchtiles":"stitchTiles","surfacescale":"surfaceScale","systemlanguage":"systemLanguage","tablevalues":"tableValues","targetx":"targetX","targety":"targetY","textlength":"textLength","viewbox":"viewBox","viewtarget":"viewTarget","xchannelselector":"xChannelSelector","ychannelselector":"yChannelSelector","zoomandpan":"zoomAndPan"}}')},function(i,e){var t=e.getChildren=function(n){return n.children},r=e.getParent=function(n){return n.parent};e.getSiblings=function(n){var s=r(n);return s?t(s):[n]},e.getAttributeValue=function(n,s){return n.attribs&&n.attribs[s]},e.hasAttrib=function(n,s){return!!n.attribs&&hasOwnProperty.call(n.attribs,s)},e.getName=function(n){return n.name}},function(i,e){e.removeElement=function(t){if(t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t.parent){var r=t.parent.children;r.splice(r.lastIndexOf(t),1)}},e.replaceElement=function(t,r){var n=r.prev=t.prev;n&&(n.next=r);var s=r.next=t.next;s&&(s.prev=r);var c=r.parent=t.parent;if(c){var l=c.children;l[l.lastIndexOf(t)]=r}},e.appendChild=function(t,r){if(r.parent=t,t.children.push(r)!==1){var n=t.children[t.children.length-2];n.next=r,r.prev=n,r.next=null}},e.append=function(t,r){var n=t.parent,s=t.next;if(r.next=s,r.prev=t,t.next=r,r.parent=n,s){if(s.prev=r,n){var c=n.children;c.splice(c.lastIndexOf(s),0,r)}}else n&&n.children.push(r)},e.prepend=function(t,r){var n=t.parent;if(n){var s=n.children;s.splice(s.lastIndexOf(t),0,r)}t.prev&&(t.prev.next=r),r.parent=n,r.prev=t.prev,r.next=t,t.prev=r}},function(i,e,t){var r=t(256).isTag;i.exports={filter:n,find:s,findOneChild:c,findOne:l,existsOne:f,findAll:u};function n(v,h,y,T){return Array.isArray(h)||(h=[h]),(typeof T!="number"||!isFinite(T))&&(T=1/0),s(v,h,y!==!1,T)}function s(v,h,y,T){for(var O=[],C,S=0,w=h.length;S<w&&!(v(h[S])&&(O.push(h[S]),--T<=0)||(C=h[S].children,y&&C&&C.length>0&&(C=s(v,C,y,T),O=O.concat(C),T-=C.length,T<=0)));S++);return O}function c(v,h){for(var y=0,T=h.length;y<T;y++)if(v(h[y]))return h[y];return null}function l(v,h){for(var y=null,T=0,O=h.length;T<O&&!y;T++)if(r(h[T]))v(h[T])?y=h[T]:h[T].children.length>0&&(y=l(v,h[T].children));else continue;return y}function f(v,h){for(var y=0,T=h.length;y<T;y++)if(r(h[y])&&(v(h[y])||h[y].children.length>0&&f(v,h[y].children)))return!0;return!1}function u(v,h){for(var y=[],T=h.slice();T.length;){var O=T.shift();r(O)&&(O.children&&O.children.length>0&&T.unshift.apply(T,O.children),v(O)&&y.push(O))}return y}},function(i,e,t){var r=t(256),n=e.isTag=r.isTag;e.testElement=function(f,u){for(var v in f)if(f.hasOwnProperty(v)){if(v==="tag_name"){if(!n(u)||!f.tag_name(u.name))return!1}else if(v==="tag_type"){if(!f.tag_type(u.type))return!1}else if(v==="tag_contains"){if(n(u)||!f.tag_contains(u.data))return!1}else if(!u.attribs||!f[v](u.attribs[v]))return!1}return!0};var s={tag_name:function(f){return typeof f=="function"?function(u){return n(u)&&f(u.name)}:f==="*"?n:function(u){return n(u)&&u.name===f}},tag_type:function(f){return typeof f=="function"?function(u){return f(u.type)}:function(u){return u.type===f}},tag_contains:function(f){return typeof f=="function"?function(u){return!n(u)&&f(u.data)}:function(u){return!n(u)&&u.data===f}}};function c(f,u){return typeof u=="function"?function(v){return v.attribs&&u(v.attribs[f])}:function(v){return v.attribs&&v.attribs[f]===u}}function l(f,u){return function(v){return f(v)||u(v)}}e.getElements=function(f,u,v,h){var y=Object.keys(f).map(function(T){var O=f[T];return T in s?s[T](O):c(T,O)});return y.length===0?[]:this.filter(y.reduce(l),u,v,h)},e.getElementById=function(f,u,v){return Array.isArray(u)||(u=[u]),this.findOne(c("id",f),u,v!==!1)},e.getElementsByTagName=function(f,u,v,h){return this.filter(s.tag_name(f),u,v,h)},e.getElementsByTagType=function(f,u,v,h){return this.filter(s.tag_type(f),u,v,h)}},function(i,e){e.removeSubsets=function(n){for(var s=n.length,c,l,f;--s>-1;){for(c=l=n[s],n[s]=null,f=!0;l;){if(n.indexOf(l)>-1){f=!1,n.splice(s,1);break}l=l.parent}f&&(n[s]=c)}return n};var t={DISCONNECTED:1,PRECEDING:2,FOLLOWING:4,CONTAINS:8,CONTAINED_BY:16},r=e.compareDocumentPosition=function(n,s){var c=[],l=[],f,u,v,h,y,T;if(n===s)return 0;for(f=n;f;)c.unshift(f),f=f.parent;for(f=s;f;)l.unshift(f),f=f.parent;for(T=0;c[T]===l[T];)T++;return T===0?t.DISCONNECTED:(u=c[T-1],v=u.children,h=c[T],y=l[T],v.indexOf(h)>v.indexOf(y)?u===s?t.FOLLOWING|t.CONTAINED_BY:t.FOLLOWING:u===n?t.PRECEDING|t.CONTAINS:t.PRECEDING)};e.uniqueSort=function(n){var s=n.length,c,l;for(n=n.slice();--s>-1;)c=n[s],l=n.indexOf(c),l>-1&&l<s&&n.splice(s,1);return n.sort(function(f,u){var v=r(f,u);return v&t.PRECEDING?-1:v&t.FOLLOWING?1:0}),n}},function(i,e){i.exports={trueFunc:function(){return!0},falseFunc:function(){return!1}}},function(i,e,t){i.exports=y;var r=t(275).parse,n=t(273),s=t(278),c=t(279),l=t(280),f=t(282),u=n.trueFunc,v=n.falseFunc,h=f.filters;function y(L,W,Y){var B=O(L,W,Y);return T(B,W)}function T(L,W){var Y=W.adapter;return function(N){return Y.isTag(N)&&L(N)}}function O(L,W,Y){var B=r(L,W);return P(B,W,Y)}function C(L){return L.type==="pseudo"&&(L.name==="scope"||Array.isArray(L.data)&&L.data.some(function(W){return W.some(C)}))}var S={type:"descendant"},w={type:"_flexibleDescendant"},d={type:"pseudo",name:"scope"},g={};function p(L,W,Y){var B=W.adapter,N=!!Y&&!!Y.length&&Y.every(function($){return $===g||!!B.getParent($)});L.forEach(function($){if(!($.length>0&&A($[0])&&$[0].type!=="descendant"))if(N&&!(Array.isArray($)?$.some(C):C($)))$.unshift(S);else return;$.unshift(d)})}function P(L,W,Y){L=L.filter(function(J){return J.length>0}),L.forEach(s);var B=Array.isArray(Y);Y=W&&W.context||Y,Y&&!B&&(Y=[Y]),p(L,W,Y);var N=!1,$=L.map(function(J){if(J[0]&&J[1]&&J[0].name==="scope"){var et=J[1].type;B&&et==="descendant"?J[1]=w:(et==="adjacent"||et==="sibling")&&(N=!0)}return R(J,W,Y)}).reduce(D,v);return $.shouldTestNextSiblings=N,$}function A(L){return c[L.type]<0}function R(L,W,Y){return L.reduce(function(B,N){if(B===v)return B;if(!(N.type in l))throw new Error("Rule type "+N.type+" is not supported by css-select");return l[N.type](B,N,W,Y)},W&&W.rootFunc||u)}function D(L,W){return W===v||L===u?L:L===v||W===u?W:function(B){return L(B)||W(B)}}function U(L){return L.some(A)}h.not=function(L,W,Y,B){var N={xmlMode:!!(Y&&Y.xmlMode),strict:!!(Y&&Y.strict),adapter:Y.adapter};if(N.strict&&(W.length>1||W.some(U)))throw new Error("complex selectors in :not aren't allowed in strict mode");var $=P(W,N,B);return $===v?L:$===u?v:function(et){return!$(et)&&L(et)}},h.has=function(L,W,Y){var B=Y.adapter,N={xmlMode:!!(Y&&Y.xmlMode),strict:!!(Y&&Y.strict),adapter:B},$=W.some(U)?[g]:null,J=P(W,N,$);return J===v?v:J===u?function(ot){return B.getChildren(ot).some(B.isTag)&&L(ot)}:(J=T(J,Y),$?function(ot){return L(ot)&&($[0]=ot,B.existsOne(J,B.getChildren(ot)))}:function(ot){return L(ot)&&B.existsOne(J,B.getChildren(ot))})},h.matches=function(L,W,Y,B){var N={xmlMode:!!(Y&&Y.xmlMode),strict:!!(Y&&Y.strict),rootFunc:L,adapter:Y.adapter};return P(W,N,B)},y.compileToken=P,y.compileUnsafe=O,y.Pseudos=f},function(i,e,t){var r=this&&this.__createBinding||(Object.create?function(l,f,u,v){v===void 0&&(v=u),Object.defineProperty(l,v,{enumerable:!0,get:function(){return f[u]}})}:function(l,f,u,v){v===void 0&&(v=u),l[v]=f[u]}),n=this&&this.__exportStar||function(l,f){for(var u in l)u!=="default"&&!f.hasOwnProperty(u)&&r(f,l,u)};Object.defineProperty(e,"__esModule",{value:!0}),n(t(276),e);var s=t(276);Object.defineProperty(e,"parse",{enumerable:!0,get:function(){return s.default}});var c=t(277);Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return c.default}})},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=C;var r=/^[^\\]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/,n=/\\([\da-f]{1,6}\s?|(\s)|.)/gi,s=/^\s*((?:\\.|[\w\u00b0-\uFFFF-])+)\s*(?:(\S?)=\s*(?:(['"])([^]*?)\3|(#?(?:\\.|[\w\u00b0-\uFFFF-])*)|)|)\s*(i)?\]/,c={undefined:"exists","":"equals","~":"element","^":"start",$:"end","*":"any","!":"not","|":"hyphen"},l={">":"child","<":"parent","~":"sibling","+":"adjacent"},f={"#":["id","equals"],".":["class","element"]},u=new Set(["has","not","matches"]),v=new Set(["contains","icontains"]),h=new Set(['"',"'"]);function y(d,g,p){var P=parseInt(g,16)-65536;return P!==P||p?g:P<0?String.fromCharCode(P+65536):String.fromCharCode(P>>10|55296,P&1023|56320)}function T(d){return d.replace(n,y)}function O(d){return d===" "||d===`
|
|
566
|
+
`||d===" "||d==="\f"||d==="\r"}function C(d,g){var p=[];if(d=S(p,""+d,g),d!=="")throw new Error("Unmatched selector: "+d);return p}function S(d,g,p){var P=[],A=!1;function R(){var ft=g.match(r);if(!ft)throw new Error("Expected name, found "+g);var mt=ft[0];return g=g.substr(mt.length),T(mt)}function D(ft){for(;O(g.charAt(ft));)ft++;g=g.substr(ft)}function U(ft){for(var mt=0;g.charAt(--ft)==="\\";)mt++;return(mt&1)===1}for(D(0);g!=="";){var L=g.charAt(0);if(O(L))A=!0,D(1);else if(L in l)P.push({type:l[L]}),A=!1,D(1);else if(L===","){if(P.length===0)throw new Error("Empty sub-selector");d.push(P),P=[],A=!1,D(1)}else if(A&&(P.length>0&&P.push({type:"descendant"}),A=!1),L==="*")g=g.substr(1),P.push({type:"universal"});else if(L in f){var W=f[L],Y=W[0],B=W[1];g=g.substr(1),P.push({type:"attribute",name:Y,action:B,value:R(),ignoreCase:!1})}else if(L==="["){g=g.substr(1);var N=g.match(s);if(!N)throw new Error("Malformed attribute selector: "+g);g=g.substr(N[0].length);var $=T(N[1]);(!p||("lowerCaseAttributeNames"in p?p.lowerCaseAttributeNames:!p.xmlMode))&&($=$.toLowerCase()),P.push({type:"attribute",name:$,action:c[N[2]],value:T(N[4]||N[5]||""),ignoreCase:!!N[6]})}else if(L===":"){if(g.charAt(1)===":"){g=g.substr(2),P.push({type:"pseudo-element",name:R().toLowerCase()});continue}g=g.substr(1);var J=R().toLowerCase(),N=null;if(g.charAt(0)==="(")if(u.has(J)){var et=g.charAt(1),ot=h.has(et);if(g=g.substr(ot?2:1),N=[],g=S(N,g,p),ot){if(g.charAt(0)!==et)throw new Error("Unmatched quotes in :"+J);g=g.substr(1)}if(g.charAt(0)!==")")throw new Error("Missing closing parenthesis in :"+J+" ("+g+")");g=g.substr(1)}else{for(var ut=1,K=1;K>0&&ut<g.length;ut++)g.charAt(ut)==="("&&!U(ut)?K++:g.charAt(ut)===")"&&!U(ut)&&K--;if(K)throw new Error("Parenthesis not matched");if(N=g.substr(1,ut-2),g=g.substr(ut),v.has(J)){var et=N.charAt(0);et===N.slice(-1)&&h.has(et)&&(N=N.slice(1,-1)),N=T(N)}}P.push({type:"pseudo",name:J,data:N})}else if(r.test(g)){var Q=R();(!p||("lowerCaseTags"in p?p.lowerCaseTags:!p.xmlMode))&&(Q=Q.toLowerCase()),P.push({type:"tag",name:Q})}else return P.length&&P[P.length-1].type==="descendant"&&P.pop(),w(d,P),g}return w(d,P),g}function w(d,g){if(d.length>0&&g.length===0)throw new Error("Empty sub-selector");d.push(g)}},function(i,e,t){Object.defineProperty(e,"__esModule",{value:!0});var r={equals:"",element:"~",start:"^",end:"$",any:"*",not:"!",hyphen:"|"};function n(f){return f.map(s).join(", ")}e.default=n;function s(f){return f.map(c).join("")}function c(f){switch(f.type){case"child":return" > ";case"parent":return" < ";case"sibling":return" ~ ";case"adjacent":return" + ";case"descendant":return" ";case"universal":return"*";case"tag":return f.name;case"pseudo-element":return"::"+f.name;case"pseudo":return f.data===null?":"+f.name:typeof f.data=="string"?":"+f.name+"("+f.data+")":":"+f.name+"("+n(f.data)+")";case"attribute":return f.action==="exists"?"["+f.name+"]":f.name==="id"&&f.action==="equals"&&!f.ignoreCase?"#"+f.value:f.name==="class"&&f.action==="element"&&!f.ignoreCase?"."+f.value:"["+f.name+r[f.action]+"='"+f.value+"'"+(f.ignoreCase?"i":"")+"]";default:throw new Error("Unknown type")}}function l(f){return f}},function(i,e,t){i.exports=s;var r=t(279),n={__proto__:null,exists:10,equals:8,not:7,start:6,end:6,any:5,hyphen:4,element:4};function s(l){for(var f=l.map(c),u=1;u<l.length;u++){var v=f[u];if(!(v<0))for(var h=u-1;h>=0&&v<f[h];h--){var y=l[h+1];l[h+1]=l[h],l[h]=y,f[h+1]=f[h],f[h]=v}}}function c(l){var f=r[l.type];if(f===r.attribute)f=n[l.action],f===n.equals&&l.name==="id"&&(f=9),l.ignoreCase&&(f>>=1);else if(f===r.pseudo)if(!l.data)f=3;else if(l.name==="has"||l.name==="contains")f=0;else if(l.name==="matches"||l.name==="not"){f=0;for(var u=0;u<l.data.length;u++)if(l.data[u].length===1){var v=c(l.data[u][0]);if(v===0){f=0;break}v>f&&(f=v)}l.data.length>1&&f>0&&(f-=1)}else f=1;return f}},function(i){i.exports=JSON.parse('{"universal":50,"tag":30,"attribute":1,"pseudo":0,"descendant":-1,"child":-1,"parent":-1,"sibling":-1,"adjacent":-1}')},function(i,e,t){var r=t(281),n=t(282);i.exports={__proto__:null,attribute:r.compile,pseudo:n.compile,tag:function(s,c,l){var f=c.name,u=l.adapter;return function(h){return u.getName(h)===f&&s(h)}},descendant:function(s,c,l){var f=typeof WeakSet<"u"?new WeakSet:null,u=l.adapter;return function(h){for(var y=!1;!y&&(h=u.getParent(h));)(!f||!f.has(h))&&(y=s(h),!y&&f&&f.add(h));return y}},_flexibleDescendant:function(s,c,l){var f=l.adapter;return function(v){for(var h=s(v);!h&&(v=f.getParent(v));)h=s(v);return h}},parent:function(s,c,l){if(l&&l.strict)throw new Error("Parent selector isn't part of CSS3");var f=l.adapter;return function(h){return f.getChildren(h).some(u)};function u(v){return f.isTag(v)&&s(v)}},child:function(s,c,l){var f=l.adapter;return function(v){var h=f.getParent(v);return!!h&&s(h)}},sibling:function(s,c,l){var f=l.adapter;return function(v){for(var h=f.getSiblings(v),y=0;y<h.length;y++)if(f.isTag(h[y])){if(h[y]===v)break;if(s(h[y]))return!0}return!1}},adjacent:function(s,c,l){var f=l.adapter;return function(v){for(var h=f.getSiblings(v),y,T=0;T<h.length;T++)if(f.isTag(h[T])){if(h[T]===v)break;y=h[T]}return!!y&&s(y)}},universal:function(s){return s}}},function(i,e,t){var r=t(273).falseFunc,n=/[-[\]{}()*+?.,\\^$|#\s]/g,s={__proto__:null,equals:function(c,l,f){var u=l.name,v=l.value,h=f.adapter;return l.ignoreCase?(v=v.toLowerCase(),function(T){var O=h.getAttributeValue(T,u);return O!=null&&O.toLowerCase()===v&&c(T)}):function(T){return h.getAttributeValue(T,u)===v&&c(T)}},hyphen:function(c,l,f){var u=l.name,v=l.value,h=v.length,y=f.adapter;return l.ignoreCase?(v=v.toLowerCase(),function(O){var C=y.getAttributeValue(O,u);return C!=null&&(C.length===h||C.charAt(h)==="-")&&C.substr(0,h).toLowerCase()===v&&c(O)}):function(O){var C=y.getAttributeValue(O,u);return C!=null&&C.substr(0,h)===v&&(C.length===h||C.charAt(h)==="-")&&c(O)}},element:function(c,l,f){var u=l.name,v=l.value,h=f.adapter;if(/\s/.test(v))return r;v=v.replace(n,"\\$&");var y="(?:^|\\s)"+v+"(?:$|\\s)",T=l.ignoreCase?"i":"",O=new RegExp(y,T);return function(S){var w=h.getAttributeValue(S,u);return w!=null&&O.test(w)&&c(S)}},exists:function(c,l,f){var u=l.name,v=f.adapter;return function(y){return v.hasAttrib(y,u)&&c(y)}},start:function(c,l,f){var u=l.name,v=l.value,h=v.length,y=f.adapter;return h===0?r:l.ignoreCase?(v=v.toLowerCase(),function(O){var C=y.getAttributeValue(O,u);return C!=null&&C.substr(0,h).toLowerCase()===v&&c(O)}):function(O){var C=y.getAttributeValue(O,u);return C!=null&&C.substr(0,h)===v&&c(O)}},end:function(c,l,f){var u=l.name,v=l.value,h=-v.length,y=f.adapter;return h===0?r:l.ignoreCase?(v=v.toLowerCase(),function(O){var C=y.getAttributeValue(O,u);return C!=null&&C.substr(h).toLowerCase()===v&&c(O)}):function(O){var C=y.getAttributeValue(O,u);return C!=null&&C.substr(h)===v&&c(O)}},any:function(c,l,f){var u=l.name,v=l.value,h=f.adapter;if(v==="")return r;if(l.ignoreCase){var y=new RegExp(v.replace(n,"\\$&"),"i");return function(O){var C=h.getAttributeValue(O,u);return C!=null&&y.test(C)&&c(O)}}return function(O){var C=h.getAttributeValue(O,u);return C!=null&&C.indexOf(v)>=0&&c(O)}},not:function(c,l,f){var u=l.name,v=l.value,h=f.adapter;return v===""?function(T){return!!h.getAttributeValue(T,u)&&c(T)}:l.ignoreCase?(v=v.toLowerCase(),function(T){var O=h.getAttributeValue(T,u);return O!=null&&O.toLowerCase()!==v&&c(T)}):function(T){return h.getAttributeValue(T,u)!==v&&c(T)}}};i.exports={compile:function(c,l,f){if(f&&f.strict&&(l.ignoreCase||l.action==="not"))throw new Error("Unsupported attribute selector");return s[l.action](c,l,f)},rules:s}},function(i,e,t){var r=t(283),n=t(273),s=t(281),c=n.trueFunc,l=n.falseFunc,f=s.rules.equals;function u(w,d){var g={name:w,value:d};return function(P,A,R){return f(P,g,R)}}function v(w,d){return function(g){return!!d.getParent(g)&&w(g)}}var h={contains:function(w,d,g){var p=g.adapter;return function(A){return w(A)&&p.getText(A).indexOf(d)>=0}},icontains:function(w,d,g){var p=d.toLowerCase(),P=g.adapter;return function(R){return w(R)&&P.getText(R).toLowerCase().indexOf(p)>=0}},"nth-child":function(w,d,g){var p=r(d),P=g.adapter;return p===l?p:p===c?v(w,P):function(R){for(var D=P.getSiblings(R),U=0,L=0;U<D.length;U++)if(P.isTag(D[U])){if(D[U]===R)break;L++}return p(L)&&w(R)}},"nth-last-child":function(w,d,g){var p=r(d),P=g.adapter;return p===l?p:p===c?v(w,P):function(R){for(var D=P.getSiblings(R),U=0,L=D.length-1;L>=0;L--)if(P.isTag(D[L])){if(D[L]===R)break;U++}return p(U)&&w(R)}},"nth-of-type":function(w,d,g){var p=r(d),P=g.adapter;return p===l?p:p===c?v(w,P):function(R){for(var D=P.getSiblings(R),U=0,L=0;L<D.length;L++)if(P.isTag(D[L])){if(D[L]===R)break;P.getName(D[L])===P.getName(R)&&U++}return p(U)&&w(R)}},"nth-last-of-type":function(w,d,g){var p=r(d),P=g.adapter;return p===l?p:p===c?v(w,P):function(R){for(var D=P.getSiblings(R),U=0,L=D.length-1;L>=0;L--)if(P.isTag(D[L])){if(D[L]===R)break;P.getName(D[L])===P.getName(R)&&U++}return p(U)&&w(R)}},root:function(w,d,g){var p=g.adapter;return function(P){return!p.getParent(P)&&w(P)}},scope:function(w,d,g,p){var P=g.adapter;if(!p||p.length===0)return h.root(w,d,g);function A(R,D){return typeof P.equals=="function"?P.equals(R,D):R===D}return p.length===1?function(R){return A(p[0],R)&&w(R)}:function(R){return p.indexOf(R)>=0&&w(R)}},checkbox:u("type","checkbox"),file:u("type","file"),password:u("type","password"),radio:u("type","radio"),reset:u("type","reset"),image:u("type","image"),submit:u("type","submit"),hover:function(w,d,g){var p=g.adapter;return typeof p.isHovered=="function"?function(A){return w(A)&&p.isHovered(A)}:l},visited:function(w,d,g){var p=g.adapter;return typeof p.isVisited=="function"?function(A){return w(A)&&p.isVisited(A)}:l},active:function(w,d,g){var p=g.adapter;return typeof p.isActive=="function"?function(A){return w(A)&&p.isActive(A)}:l}};function y(w,d){for(var g=0;w&&g<w.length;g++)if(d.isTag(w[g]))return w[g]}var T={empty:function(w,d){return!d.getChildren(w).some(function(g){return d.isTag(g)||g.type==="text"})},"first-child":function(w,d){return y(d.getSiblings(w),d)===w},"last-child":function(w,d){for(var g=d.getSiblings(w),p=g.length-1;p>=0;p--){if(g[p]===w)return!0;if(d.isTag(g[p]))break}return!1},"first-of-type":function(w,d){for(var g=d.getSiblings(w),p=0;p<g.length;p++)if(d.isTag(g[p])){if(g[p]===w)return!0;if(d.getName(g[p])===d.getName(w))break}return!1},"last-of-type":function(w,d){for(var g=d.getSiblings(w),p=g.length-1;p>=0;p--)if(d.isTag(g[p])){if(g[p]===w)return!0;if(d.getName(g[p])===d.getName(w))break}return!1},"only-of-type":function(w,d){for(var g=d.getSiblings(w),p=0,P=g.length;p<P;p++)if(d.isTag(g[p])){if(g[p]===w)continue;if(d.getName(g[p])===d.getName(w))return!1}return!0},"only-child":function(w,d){for(var g=d.getSiblings(w),p=0;p<g.length;p++)if(d.isTag(g[p])&&g[p]!==w)return!1;return!0},link:function(w,d){return d.hasAttrib(w,"href")},selected:function(w,d){if(d.hasAttrib(w,"selected"))return!0;if(d.getName(w)!=="option")return!1;var g=d.getParent(w);if(!g||d.getName(g)!=="select"||d.hasAttrib(g,"multiple"))return!1;for(var p=d.getChildren(g),P=!1,A=0;A<p.length;A++)if(d.isTag(p[A]))if(p[A]===w)P=!0;else if(P){if(d.hasAttrib(p[A],"selected"))return!1}else return!1;return P},disabled:function(w,d){return d.hasAttrib(w,"disabled")},enabled:function(w,d){return!d.hasAttrib(w,"disabled")},checked:function(w,d){return d.hasAttrib(w,"checked")||T.selected(w,d)},required:function(w,d){return d.hasAttrib(w,"required")},optional:function(w,d){return!d.hasAttrib(w,"required")},parent:function(w,d){return!T.empty(w,d)},header:O(["h1","h2","h3","h4","h5","h6"]),button:function(w,d){var g=d.getName(w);return g==="button"||g==="input"&&d.getAttributeValue(w,"type")==="button"},input:O(["input","textarea","select","button"]),text:function(w,d){var g;return d.getName(w)==="input"&&(!(g=d.getAttributeValue(w,"type"))||g.toLowerCase()==="text")}};function O(w){if(typeof Set<"u"){var d=new Set(w);return function(g,p){return d.has(p.getName(g))}}return function(g,p){return w.indexOf(p.getName(g))>=0}}function C(w,d,g){if(g===null){if(w.length>2&&d!=="scope")throw new Error("pseudo-selector :"+d+" requires an argument")}else if(w.length===2)throw new Error("pseudo-selector :"+d+" doesn't have any arguments")}var S=/^(?:(?:nth|last|first|only)-(?:child|of-type)|root|empty|(?:en|dis)abled|checked|not)$/;i.exports={compile:function(w,d,g,p){var P=d.name,A=d.data,R=g.adapter;if(g&&g.strict&&!S.test(P))throw new Error(":"+P+" isn't part of CSS3");if(typeof h[P]=="function")return h[P](w,A,g,p);if(typeof T[P]=="function"){var D=T[P];return C(D,P,A),D===l?D:w===c?function(L){return D(L,R,A)}:function(L){return D(L,R,A)&&w(L)}}else throw new Error("unmatched pseudo-class :"+P)},filters:h,pseudos:T}},function(i,e,t){var r=t(284),n=t(285);i.exports=function(c){return n(r(c))},i.exports.parse=r,i.exports.compile=n},function(i,e){i.exports=r;var t=/^([+\-]?\d*n)?\s*(?:([+\-]?)\s*(\d+))?$/;function r(n){if(n=n.trim().toLowerCase(),n==="even")return[2,0];if(n==="odd")return[2,1];var s=n.match(t);if(!s)throw new SyntaxError("n-th rule couldn't be parsed ('"+n+"')");var c;return s[1]?(c=parseInt(s[1],10),isNaN(c)&&(s[1].charAt(0)==="-"?c=-1:c=1)):c=0,[c,s[3]?parseInt((s[2]||"")+s[3],10):0]}},function(i,e,t){i.exports=c;var r=t(273),n=r.trueFunc,s=r.falseFunc;function c(l){var f=l[0],u=l[1]-1;if(u<0&&f<=0)return s;if(f===-1)return function(h){return h<=u};if(f===0)return function(h){return h===u};if(f===1)return u<0?n:function(h){return h>=u};var v=u%f;return v<0&&(v+=f),f>1?function(h){return h>=u&&h%f===v}:(f*=-1,function(h){return h<=u&&h%f===v})}},function(i,e,t){t.r(e),t.d(e,"default",function(){return A});var r=t(12),n=t(74),s=t(1),c=t(68),l=t(250),f=t(213),u=t(218);t(1).glMatrix.setMatrixArrayType(Array);function v(R,D){if(R==null)return{};var U=h(R,D),L,W;if(Object.getOwnPropertySymbols){var Y=Object.getOwnPropertySymbols(R);for(W=0;W<Y.length;W++)L=Y[W],!(D.indexOf(L)>=0)&&Object.prototype.propertyIsEnumerable.call(R,L)&&(U[L]=R[L])}return U}function h(R,D){if(R==null)return{};var U={},L=Object.keys(R),W,Y;for(Y=0;Y<L.length;Y++)W=L[Y],!(D.indexOf(W)>=0)&&(U[W]=R[W]);return U}const y={antialias:!0,autoRender:!0,alpha:!0},T=Symbol("autoRender"),O=Symbol("renderer"),C=Symbol("timeline"),S=Symbol("prepareRender"),w=Symbol("tickRender"),d=Symbol("pass"),g=Symbol("fbo"),p=Symbol("tickers"),P=Symbol("layerTransformInvert");class A extends l.default{constructor(D={}){if(super(),!D.canvas){const{width:Y,height:B}=this.getResolution(),N=r.ENV.createCanvas(Y,B,{offscreen:!!D.offscreen,id:D.id,extra:D.extra});N.style&&(N.style.position="absolute"),N.dataset&&(N.dataset.layerId=D.id),N.contextType&&(D.contextType=N.contextType),D.canvas=N}const U=D.canvas,L=Object.assign({},y,D);this[T]=L.autoRender,delete D.autoRender;const W=L.Renderer||r.Renderer;this[O]=new W(U,L),this.options=D,this.id=D.id,this[d]=[],this.setResolution(U),this.canvas=U,this[C]=new n.Timeline,this.__mouseCapturedTarget=null,this[P]=null}get autoRender(){return this[T]}get displayRatio(){return this.parent&&this.parent.options?this.parent.options.displayRatio:1}get height(){const{height:D}=this.getResolution();return D/this.displayRatio}get gl(){return this.renderer.glRenderer?this.renderer.glRenderer.gl:null}get layer(){return this}get offscreen(){return!!this.options.offscreen||this.canvas._offscreen}get pass(){return this[d]}get prepareRender(){return this[S]?this[S]:Promise.resolve()}get renderer(){return this[O]}get renderOffset(){if(this.parent&&this.parent.options){const{left:D,top:U}=this.parent.options;return[D,U]}return[this.options.left|0,this.options.top|0]}get timeline(){return this[C]}get width(){const{width:D}=this.getResolution();return D/this.displayRatio}get localMatrix(){const{x:D,y:U}=this.attributes;return[1,0,0,1,D,U]}get layerTransformInvert(){if(this[P])return this[P];const D=this.transformMatrix;return D[0]===1&&D[1]===0&&D[2]===0&&D[3]===1&&D[4]===0&&D[5]===0?null:(this[P]=s.mat2d.invert(Array.of(0,0,0,0,0,0),D),this[P])}forceContextLoss(){const D=this.renderer.glRenderer;if(D){const U=D.getExtension("WEBGL_lose_context");if(U)return U.loseContext(),!0}return!1}addPass({vertex:D,fragment:U,options:L,uniforms:W}={}){if(this.renderer.glRenderer){const{width:Y,height:B}=this.getResolution(),N=this.renderer.createPassProgram({vertex:D,fragment:U,options:L}),$=new r.Figure2D;$.rect(0,0,Y/this.displayRatio,B/this.displayRatio);const J=new r.Mesh2D($);return J.setUniforms(W),J.setProgram(N),this[d].push(J),this.forceUpdate(),J}return null}deleteTexture(D){return Object(u.deleteTexture)(D,this.renderer)}dispatchPointerEvent(D){const U=D.type;if(U==="mousedown"||U==="mouseup"||U==="mousemove"){const N=this.__mouseCapturedTarget;if(N){if(N.layer===this)return N.dispatchEvent(D),!0;this.__mouseCapturedTarget=null}}let L,W;const Y=this.layerTransformInvert;if(Y){L=D.x,W=D.y;const N=Y,$=N[0]*L+N[2]*W+N[4],J=N[1]*L+N[3]*W+N[5];delete D.x,delete D.y,delete D.layerX,delete D.layerY,Object.defineProperties(D,{layerX:{value:$,configurable:!0},layerY:{value:J,configurable:!0},x:{value:$,configurable:!0},y:{value:J,configurable:!0}})}const B=super.dispatchPointerEvent(D);return Y&&Object.defineProperties(D,{layerX:{value:L,configurable:!0},layerY:{value:W,configurable:!0},x:{value:L,configurable:!0},y:{value:W,configurable:!0}}),B}forceUpdate(){if(!this[S])if(this.parent&&this.parent.hasOffscreenCanvas){this.parent.forceUpdate();let D=null;const U=new Promise(L=>{D=L});U._resolve=D,this[S]=U}else{let D=null,U=null;const L=new Promise(W=>{D=W,this[T]&&(U=Object(c.requestAnimationFrame)(()=>{delete L._requestID,this.render()}))});L._resolve=D,L._requestID=U,this[S]=L}}getFBO(){const D=this.renderer.glRenderer,{width:U,height:L}=this.getResolution();return D&&(!this[g]||this[g].width!==U||this[g].height!==L)?(this[g]={width:U,height:L,target:D.createFBO(),buffer:D.createFBO(),swap(){[this.target,this.buffer]=[this.buffer,this.target]}},this[g]):this[g]?this[g]:null}updateGlobalTransform(){if(this.layerTransformInvert){const D=this.renderer,U=D.__globalTransformMatrix||D.globalTransformMatrix;D.__globalTransformMatrix=U;const L=s.mat2d.fromValues(1,0,0,1,0,0);D.setGlobalTransform(...s.mat2d.multiply(L,U,this.transformMatrix))}}onPropertyChange(D,U,L){if(super.onPropertyChange(D,U,L),D==="zIndex"&&(this.canvas.style.zIndex=U),D==="transform"||D==="translate"||D==="rotate"||D==="scale"||D==="skew"){const W=this[P];if(this[P]=null,this.updateGlobalTransform(),W&&!this.layerTransformInvert){const Y=this.renderer,B=Y.__globalTransformMatrix||Y.globalTransformMatrix;Y.setGlobalTransform(...B)}}}_prepareRenderFinished(){this[S]&&(this[S]._requestID&&Object(c.cancelAnimationFrame)(this[S]._requestID),this[S]._resolve(),delete this[S])}render({clear:D=!0}={}){const U=this[d].length?this.getFBO():null;U&&this.renderer.glRenderer.bindFBO(U.target),D&&this[O].clear();const L=this.draw();if(L&&L.length&&(this.renderer.drawMeshes(L),this.canvas.draw&&this.canvas.draw()),U){const W=this.renderer.glRenderer,Y=this[d].length,{width:B,height:N}=this.getResolution(),$=[0,0,B/this.displayRatio,N/this.displayRatio];this[d].forEach((J,et)=>{J.blend=!0,J.setTexture(U.target.texture,{rect:$}),et===Y-1?W.bindFBO(null):(U.swap(),W.bindFBO(U.target)),this[O].clear(),this.renderer.drawMeshes([J])})}this._prepareRenderFinished()}setResolution({width:D,height:U}){const L=this.renderer,W=L.__globalTransformMatrix||L.globalTransformMatrix,Y=W[4],B=W[5],N=W[0],{width:$,height:J}=this.getResolution();($!==D||J!==U)&&(super.setResolution({width:D,height:U}),this.canvas&&(this.canvas.width=D,this.canvas.height=U,L.updateResolution&&L.updateResolution()),this.attributes.size=[D,U],this[d].length&&this[d].forEach(K=>{const Q=new r.Figure2D;Q.rect(0,0,D/this.displayRatio,U/this.displayRatio),K.contours=Q.contours}));const[et,ot]=this.renderOffset,ut=this.displayRatio;(Y!==et||B!==ot||N!==ut)&&(L.setGlobalTransform(ut,0,0,ut,et,ot),L.__globalTransformMatrix=null,this[P]=null,this.updateGlobalTransform(),this.forceUpdate())}tick(D=null,U={}){let{duration:L=1/0}=U,W=v(U,["duration"]);const Y=this.timeline.fork(W),B=this;this[p]=this[p]||[],this[p].push({handler:D,duration:L});const N=()=>{let $=null,J=null;const et=()=>{const ot=this[p].map(({handler:ut,duration:K})=>{const Q=Math.min(1,Y.currentTime/K);return{value:ut?ut(Y.currentTime,Q):null,p:Q}});B[w]||(B[w]=Promise.resolve().then(()=>{B[T]&&B.render(),delete B[w];for(let ut=ot.length-1;ut>=0;ut--){const{value:K,p:Q}=ot[ut];(K===!1||Q>=1)&&this[p].splice(ut,1)}this[p].length>0&&N()}))};if(this[S]&&this[S]._type!=="ticker"&&(Object(c.cancelAnimationFrame)(this[S]._requestID),delete this[S]),!this[S]){const ot=new Promise(ut=>{$=ut,J=Object(c.requestAnimationFrame)(et)});ot._resolve=$,ot._requestID=J,ot._type="ticker",this[S]=ot}};N()}toGlobalPos(D,U){if(this.layerTransformInvert){const $=this.transformMatrix;D=$[0]*D+$[2]*U+$[4],U=$[1]*D+$[3]*U+$[5]}const{width:L,height:W}=this.getResolution(),Y=this.renderOffset,B=[this.canvas.clientWidth,this.canvas.clientHeight];D=D*B[0]/L+Y[0],U=U*B[1]/W+Y[1];const N=this.displayRatio;return D*=N,U*=N,[D,U]}toLocalPos(D,U){const{width:L,height:W}=this.getResolution(),Y=this.renderOffset,B=[this.canvas.clientWidth,this.canvas.clientHeight];D=D*L/B[0]-Y[0],U=U*W/B[1]-Y[1];const N=this.displayRatio;D/=N,U/=N;const $=this.layerTransformInvert;return $&&(D=$[0]*D+$[2]*U+$[4],U=$[1]*D+$[3]*U+$[5]),[D,U]}}f.default.registerNode(A,"layer")},function(i,e,t){t.r(e),t.d(e,"default",function(){return S});var r=t(224),n=t(288),s=t(213),c=t(252),l=t(72);t(1).glMatrix.setMatrixArrayType(Array);function f(w,d){if(w==null)return{};var g=u(w,d),p,P;if(Object.getOwnPropertySymbols){var A=Object.getOwnPropertySymbols(w);for(P=0;P<A.length;P++)p=A[P],!(d.indexOf(p)>=0)&&Object.prototype.propertyIsEnumerable.call(w,p)&&(g[p]=w[p])}return g}function u(w,d){if(w==null)return{};var g={},p=Object.keys(w),P,A;for(A=0;A<p.length;A++)P=p[A],!(d.indexOf(P)>=0)&&(g[P]=w[P]);return g}function v(w,d,g){return d in w?Object.defineProperty(w,d,{value:g,enumerable:!0,configurable:!0,writable:!0}):w[d]=g,w}const h="http://www.w3.org/2000/svg",y=Symbol.for("spritejs_setAttribute"),T=Symbol("root"),O=Symbol("task");function C(w,d=!0){const g=w[T];if(g&&g.children[0]){const p=w.svg,P=w.layer?w.layer.displayRatio:1;if(!p.hasAttribute("data-original-width")){let D=p.getAttribute("width");D=D?Object(l.sizeToPixel)(D):300;let U=p.getAttribute("height");U=U?Object(l.sizeToPixel)(U):150,p.hasAttribute("viewBox")||p.setAttribute("viewBox",`0 0 ${Math.round(D)} ${Math.round(U)}`),p.setAttribute("data-original-width",D),p.setAttribute("data-original-height",U)}let A=w.attributes.width||Number(p.getAttribute("data-original-width")),R=w.attributes.height||Number(p.getAttribute("data-original-height"));if(A*=P,R*=P,d&&w.attributes.flexible){const D=w.attributes.scale[0];if(A*=D,R*=D,p.setAttribute("width",A),p.setAttribute("height",R),A&&R&&w.textureImage){const U=w.textureImage.width,L=w.textureImage.height,W=w.clientSize;w.attributes.textureRect=[0,0,Math.round(W[0]*U/A),Math.round(W[1]*L/R)]}}else w[O]||(p.setAttribute("width",A),p.setAttribute("height",R),w[O]=Promise.resolve().then(()=>{delete w[O];const D=g.innerHTML,U=new Blob([D],{type:"image/svg+xml"}),L=URL.createObjectURL(U),W=new Image;W.onload=function(){W.width&&W.height?(w.attributes[y]("texture",W),w.attributes.flexible&&(w.attributes.textureRect=null)):w.attributes[y]("texture",null)},W.src=L}))}}class S extends r.default{constructor(d={}){typeof d=="string"&&(d={svgText:d});let{svgText:g}=d,p=f(d,["svgText"]);if(super(p),this[T]=document.createElement("div"),g){this[T].innerHTML=g;const P=this[T].children[0];P?P.setAttribute("xmlns",h):(fetch(g).then(A=>A.text()).then(A=>{this[T].innerHTML=A,(!this.observer||this.attributes.flexible)&&C(this)}),g=null)}if(!g){const P=document.createElementNS(h,"svg");P.setAttribute("xmlns",h),this[T].appendChild(P)}if(typeof MutationObserver=="function"){const P=new MutationObserver(A=>{C(this,!1)});P.observe(this[T],{attributes:!0,subtree:!0,characterData:!0,childList:!0}),this.observer=P}}get children(){return[this.svg]}get childNodes(){return[this.svg]}get svg(){return this[T]?this[T].children[0]:null}setResolution({width:d,height:g}){super.setResolution({width:d,height:g}),C(this)}dispatchPointerEvent(d){const g=super.dispatchPointerEvent(d);if(g&&this.attributes.passEvents&&typeof MouseEvent=="function"){const{x:p,y:P}=d;let[A,R]=this.getOffsetPosition(p,P);const D=d.originalEvent,U=this.attributes.anchor,L=this.clientSize;A=(A+U[0]*L[0])/2,R=(R+U[1]*L[1])/2;const W=d.type;if(W===D.type){let Y=null;if(D instanceof MouseEvent)Y=new MouseEvent(W,{screenX:A,screenY:R,clientX:A,clientY:R,bubbles:D.bubbles,button:D.button,buttons:D.buttons,cancelBubble:D.cancelBubble,cancelable:D.cancelable,currentTarget:D.currentTarget,fromElement:D.fromElement,relatedTarget:D.relatedTarget,returnValue:D.returnValue,srcElement:D.srcElement,target:D.target,toElement:D.toElement,which:D.witch});else if(D instanceof TouchEvent){let B=null;const N=D.changedTouches||[D];for(let $=0;$<N.length;$++){const J=N[$];if(d.identifier===J.identifier){B=J;break}}if(B){const $=new Touch({identifier:B.identifier,target:B.target,clientX:A,clientY:R,screenX:A,screenY:R,pageX:A,pageY:R,radiusX:B.radiusX,radiusY:B.radiusY,rotationAngle:B.rotationAngle,force:B.force});Y=new TouchEvent(W,{cancelable:D.cancelable,bubbles:D.bubbles,composed:D.composed,touches:[$],targetTouches:[$],changedTouches:[$]})}}else Y=D;Y&&this.svg.dispatchEvent(Y)}}return g}getElementById(d){return Object(c.querySelector)(`#${d}`,this)}getElementsByClassName(d){return Object(c.querySelectorAll)(`.${d}`,this)}getElementsByName(d){return Object(c.querySelectorAll)(`[name="${d}"]`,this)}getElementsByTagName(d){return Object(c.querySelectorAll)(d,this)}querySelector(d){return Object(c.querySelector)(d,this)}querySelectorAll(d){return Object(c.querySelectorAll)(d,this)}onPropertyChange(d,g,p){super.onPropertyChange(d,g,p),d==="flexible"&&C(this),this.attributes.flexible&&(d==="width"||d==="height"||d==="scale"||d==="transform")&&C(this)}}v(S,"Attr",n.default),s.default.registerNode(S,"spritesvg")},function(i,e,t){t.r(e),t.d(e,"default",function(){return l});var r=t(225);t(1).glMatrix.setMatrixArrayType(Array);const n=Symbol.for("spritejs_getAttribute"),s=Symbol.for("spritejs_setAttribute"),c=Symbol.for("spritejs_setAttributeDefault");class l extends r.default{constructor(u){super(u),this[c]({passEvents:!1,flexible:!1})}get texture(){return this[n]("texture")}set texture(u){}get passEvents(){return this[n]("passEvents")}set passEvents(u){return this[s]("passEvents",u)}get flexible(){return this[n]("flexible")}set flexible(u){return this[s]("flexible",u)}}},function(i,e,t){t.r(e);var r=t(12);t(1).glMatrix.setMatrixArrayType(Array);function n(u,v){var h=Object.keys(u);if(Object.getOwnPropertySymbols){var y=Object.getOwnPropertySymbols(u);v&&(y=y.filter(function(T){return Object.getOwnPropertyDescriptor(u,T).enumerable})),h.push.apply(h,y)}return h}function s(u){for(var v=1;v<arguments.length;v++){var h=arguments[v]!=null?arguments[v]:{};v%2?n(Object(h),!0).forEach(function(y){c(u,y,h[y])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(h)):n(Object(h)).forEach(function(y){Object.defineProperty(u,y,Object.getOwnPropertyDescriptor(h,y))})}return u}function c(u,v,h){return v in u?Object.defineProperty(u,v,{value:h,enumerable:!0,configurable:!0,writable:!0}):u[v]=h,u}const l=Symbol("inited");let f=null;typeof Worker=="function"&&(f=class extends Worker{constructor(u){if(u.worker===!0&&(u.worker=`./${u.id}.worker.js`),super(u.worker),this.options=u,!u.canvas){const{width:v,height:h}=this.getResolution(),y=r.ENV.createCanvas(v,h,{offscreen:!1});y.style&&(y.style.position="absolute"),y.dataset&&(y.dataset.layerId=u.id),u.canvas=y}this.canvas=u.canvas}get id(){return this.options.id}setResolution({width:u,height:v}){if(this[l])this.postMessage({type:"resolution_change",width:u,height:v});else{this.canvas.width=u,this.canvas.height=v;const h=this.options,y=h.canvas.transferControlToOffscreen(),T=s({},h);delete T.container,T.canvas=y,this.postMessage({type:"create",options:T},[y]),this[l]=!0}}getResolution(){if(this.canvas){const{width:u,height:v}=this.canvas;return{width:u,height:v}}return{width:300,height:150}}remove(){return this.parent&&this.parent.removeChild?(this.parent.removeChild(this),!0):!1}connect(u,v){Object.defineProperty(this,"parent",{value:u,writable:!1,configurable:!0}),Object.defineProperty(this,"zOrder",{value:v,writable:!1,configurable:!0})}disconnect(){delete this.parent,delete this.zOrder}dispatchPointerEvent(u){this.postMessage({type:"event",event:{cancelBubble:u.cancelBubble,bubbles:u.bubbles,detail:u.detail,identifier:u.identifier,layerX:u.layerX,layerY:u.layerY,originalX:u.originalX,originalY:u.originalY,type:u.type,x:u.x,y:u.y}})}}),e.default=f},function(i,e,t){t.r(e),(function(r){t.d(e,"default",function(){return A});var n=t(12),s=t(68),c=t(70),l=t(286),f=t(289),u=t(250),v=t(291),h=t(214),y=t(218),T=t(213);t(1).glMatrix.setMatrixArrayType(Array);const O=Symbol("enteredTargets");function C(R){return R.id=R.id||`_layer${Math.random().toString(36).slice(2,12)}`,R.dataset||(R.dataset={}),R.dataset.layerId=R.id,R.connect=(D,U)=>{R.parent=D,Object.defineProperty(R,"zOrder",{value:U,writable:!1,configurable:!0})},R.disconnect=D=>{delete R.zOrder},R.canvas=R,R.getResolution=()=>({width:0,height:0}),R.setResolution=()=>!1,R.options={handleEvent:!1},R}function S(R,D){const U=R.children;let L=null;for(let W=0;W<U.length;W++){const Y=U[W];if((D===Y||L!=null)&&(L=Y),L&&L!==D&&!L.offscreen)return L.canvas}return null}function w(R,D){const[U,L]=R.renderOffset,{width:W,height:Y}=R.getResolution(),B=R.displayRatio;R.renderer.drawImage(D.canvas,-U/B,-L/B,W/B,Y/B)}const d={};function g(R){const D=["mousedown","mouseup","mousemove","mousewheel","wheel","touchstart","touchend","touchmove","touchcancel","click","dblclick","longpress","tap","contextmenu"],U=R.container;U.addEventListener("mouseleave",L=>{const W=R[O];if(W.size){const Y=new h.default("mouseleave");Y.setOriginalEvent(L),[...W].forEach(B=>{B.dispatchEvent(Y)}),R[O].clear()}},{passive:!0}),D.forEach(L=>{U.addEventListener(L,W=>{const{left:Y,top:B,displayRatio:N}=R.options,$=R.orderedChildren;Object(v.default)(W,{offsetLeft:Y,offsetTop:B,displayRatio:N}).forEach(et=>{const ot=et.identifier;if(et.type==="touchmove"||et.type==="touchend"){const K=d[ot];K&&K.dispatchEvent(et),et.type==="touchend"&&delete d[ot]}else{for(let K=$.length-1;K>=0;K--){const Q=$[K];if(Q.options.handleEvent!==!1){if(Q.dispatchPointerEvent(et)&&et.target!==Q)break;et.cancelBubble=!1}}if(et.target===$[0])for(let K=$.length-1;K>=0;K--){const Q=$[K];if(Q.options.handleEvent!==!1){et.target=Q;break}}}const ut=et.target;if(et.type==="touchstart"&&(d[ot]=et.target),et.type==="mousemove"){const K=R[O];let Q;if(ut){const yt=ut.ancestors||[];Q=new Set([ut,...yt])}else Q=new Set;const ft=Object.entries(W);if(!K.has(ut)&&ut){const yt=new h.default("mouseenter");yt.setOriginalEvent(W),ft.forEach(([ht,Nt])=>{yt[ht]=Nt}),K.add(ut),ut.dispatchEvent(yt);const Et=ut.ancestors;Et&&Et.forEach(ht=>{ht instanceof c.default&&!K.has(ht)&&(K.add(ht),ht.dispatchEvent(yt))})}const mt=new h.default("mouseleave");mt.setOriginalEvent(W),ft.forEach(([yt,Et])=>{mt[yt]=Et}),[...K].forEach(yt=>{Q.has(yt)||(K.delete(yt),yt.dispatchEvent(mt))})}})},{passive:L!=="contextmenu"})})}function p(R,D){if(D&&D.style){let{width:U,height:L,mode:W,container:Y}=R;const{clientWidth:B,clientHeight:N}=Y;U=U||B,L=L||N,W==="static"?(D.style.width=`${U}px`,D.style.height=`${L}px`):(D.style.top="0",D.style.left="0",D.style.width=`${B}px`,D.style.height=`${N}px`,D.style.transform="",D.style.webkitTransform="")}}const P=Symbol("offscreenLayerCount");class A extends u.default{constructor(D={}){if(super(),!D.container)if(typeof n.ENV.Container=="function")D.container=new n.ENV.Container(D.width||300,D.height||150);else throw new Error("No container specified.");if(this.container=D.container,this.container.style&&(this.container.style.overflow||(this.container.style.overflow="hidden"),this.container.style.position||(this.container.style.position="relative")),this.options=D,D.displayRatio=D.displayRatio||1,D.mode=D.mode||"scale",D.left=0,D.top=0,D.autoResize=D.autoResize!==!1,D.autoResize){let U;if(typeof globalThis<"u"?U=globalThis:U=typeof window<"u"?window:r,U.addEventListener){const L=this;U.addEventListener("resize",function W(){typeof document<"u"&&document.contains(L.container)?L.resize():U.removeEventListener("resize",W)})}}this[O]=new Set,this.setResolution(D),g(this),this[P]=0}get hasOffscreenCanvas(){return this[P]>0}set displayRatio(D){this.options.displayRatio!==D&&(this.options.displayRatio=D,this.resize())}get displayRatio(){return this.options.displayRatio}set height(D){this.options.height!==D&&(this.options.height=D,this.resize())}get height(){return this.options.height}set mode(D){this.options.mode!==D&&(this.options.mode=D,this.resize())}get mode(){return this.options.mode}set width(D){this.options.width!==D&&(this.options.width=D,this.resize())}get width(){return this.options.width}appendChild(D){!(D instanceof l.default)&&!(D instanceof f.default)&&C(D);const U=super.appendChild(D),L=D.canvas;return D.offscreen?this[P]++:this.container.appendChild(L),p(this.options,L),D.setResolution(this.getResolution()),U}forceUpdate(){this.hasOffscreenCanvas&&!this._requestID&&(this._requestID=Object(s.requestAnimationFrame)(()=>{delete this._requestID,this.render()}))}insertBefore(D,U){!(D instanceof l.default)&&!(D instanceof f.default)&&C(D);const L=super.insertBefore(D,U),W=D.canvas;if(!D.offscreen){const Y=S(this,D);this.container.insertBefore(W,Y)}return p(this.options,W),D.setResolution(this.getResolution()),L}layer(D="default",U={}){U=Object.assign({},this.options,U),U.id=D;const L=this.orderedChildren;for(let B=0;B<L.length;B++)if(L[B].id===D)return L[B];const W=U.worker;let Y;return W?Y=new f.default(U):Y=new l.default(U),this.appendChild(Y),Y}async preload(...D){const U=[],L=[],W=[];for(let Y=0;Y<D.length;Y++){const B=D[Y];let N;if(typeof B=="string")N=Object(y.loadTexture)(B);else if(Array.isArray(B))N=Object(y.loadFrames)(...B);else{const{id:$,src:J}=B;N=Object(y.loadTexture)(J,$)}N instanceof Promise||(N=Promise.resolve(N)),L.push(N.then($=>{U.push($),W[Y]=$;const J=new h.default({type:"preload",detail:{current:$,loaded:U,resources:D}});this.dispatchEvent(J)}))}return await Promise.all(L),W}removeChild(D){const U=super.removeChild(D);if(U){D._prepareRenderFinished&&D._prepareRenderFinished();const L=D.canvas;L&&L.remove&&L.remove(),D.offscreen&&this[P]--}return U}render(){const D=this.orderedChildren;let U=null;const L=[];for(let W=0;W<D.length;W++){const Y=D[W],B=L.length>0;if(Y instanceof l.default&&!Y.offscreen)if(!Y.autoRender)B&&(console.warn("Some offscreen canvas will not be rendered."),L.length=0);else if(U=Y,B){Y.renderer.clear();for(let N=0;N<L.length;N++){const $=L[N];$.render(),w(Y,$)}L.length=0,Y.render({clear:!1})}else Y.prepareRender&&Y.render();else Y.offscreen?U?(Y.prepareRender&&Y.render(),w(U,Y)):L.push(Y):Y instanceof f.default&&B&&(console.warn("Some offscreen canvas will not be rendered."),L.length=0)}}replaceChild(D,U){const L=super.replaceChild(D,U);U.canvas.remove&&U.canvas.remove(),U.offscreen&&this[P]--;const W=D.canvas;if(!D.offscreen){const Y=S(this,D);this.container.insertBefore(W,Y)}return p(this.options,W),D.setResolution(this.getResolution()),L}resize(){const D=this.options;this.children.forEach(U=>{p(D,U.canvas)}),this.setResolution(D),this.dispatchEvent({type:"resize"})}setResolution({width:D,height:U}={}){const L=this.container,{clientWidth:W,clientHeight:Y}=L;(D==null||U==null)&&(D=D??W,U=U??Y);const{mode:B,displayRatio:N}=this.options;if(D*=N,U*=N,this.options.left=0,this.options.top=0,B==="stickyHeight"||B==="stickyLeft"||B==="stickyRight"){const $=D;D=W*U/Y,B==="stickyHeight"&&(this.options.left=.5*(D-$)),B==="stickyRight"&&(this.options.left=D-$)}else if(B==="stickyWidth"||B==="stickyTop"||B==="stickyBottom"){const $=U;U=Y*D/W,B==="stickyWidth"&&(this.options.top=.5*(U-$)),B==="stickyBottom"&&(this.options.top=U-$)}super.setResolution({width:D,height:U})}snapshot({offscreen:D=!1,layers:U}={}){const L=D?"snapshotOffScreenCanvas":"snapshotCanvas",{width:W,height:Y}=this.getResolution();this[L]=this[L]||n.ENV.createCanvas(W,Y,{offscreen:D});const B=this[L].getContext("2d");U=U||this.orderedChildren,this[L].width=W,this[L].height=Y;for(let N=0;N<U.length;N++){const $=U[N];if(!$.options.ignoreSnapshot){$.render&&$.render();const J=$.canvas;J&&J!==$&&B.drawImage(J,0,0,W,Y)}}return this[L]}}typeof document<"u"&&(A.prototype.layer3d=function(R,D={}){const U=D.url||"https://unpkg.com/sprite-extend-3d/dist/sprite-extend-3d.min.js";return new Promise((L,W)=>{const Y=document.createElement("script");Y.async=!1,Y.src=U,Y.onload=()=>{try{L(this.layer3d(R,D))}catch(B){W(B)}},document.documentElement.appendChild(Y)})}),T.default.registerNode(A,"scene")}).call(this,t(22))},function(i,e,t){t.r(e),t.d(e,"default",function(){return n});var r=t(214);t(1).glMatrix.setMatrixArrayType(Array);function n(s,{offsetTop:c=0,offsetLeft:l=0,displayRatio:f=1}={}){let u,v;const h=[],{left:y,top:T,width:O,height:C}=s.target.getBoundingClientRect(),S=s.target.width,w=s.target.height,d=s.changedTouches||[s];for(let p=0;p<d.length;p++){const P=d[p],A=P.identifier,{clientX:R,clientY:D}=P;R!=null&&D!=null&&h.push({x:Math.round((R|0)-y),y:Math.round((D|0)-T),identifier:A})}h.length<=0&&h.push({x:u,y:v});const g=[];return h.forEach(p=>{p.x!=null&&p.y!=null&&(u=(p.x*S/O-l)/f,v=(p.y*w/C-c)/f);const P=new r.default(s);Object.defineProperties(P,{layerX:{value:u,configurable:!0},layerY:{value:v,configurable:!0},originalX:{value:p.x},originalY:{value:p.y},x:{value:u,configurable:!0},y:{value:v,configurable:!0},identifier:{value:p.identifier}}),g.push(P)}),g}}]);Ie.version,Ie.Arc,Ie.Block,Ie.Cloud,Ie.Color;const rn=Ie.Ellipse;Ie.Gradient;const Je=Ie.Group,cd=Ie.Label,wo=Ie.Layer;Ie.LayerWorker,Ie.Node,Ie.Parallel;const gn=Ie.Path,nn=Ie.Polyline,Oo=Ie.Rect;Ie.Regular,Ie.Ring;const Wl=Ie.Scene,Fl=Ie.Sprite;Ie.SpriteSvg,Ie.Star,Ie.Triangle,Ie.helpers,Ie.createElement,Ie.isSpriteNode,Ie.registerNode,Ie.requestAnimationFrame,Ie.cancelAnimationFrame,Ie.ENV;var Ae=(i=>(i.Normal="Normal",i.Stroke="Stroke",i.Dotted="Dotted",i.LongDotted="LongDotted",i))(Ae||{}),he=(i=>(i.None="None",i.ShowFloatBar="ShowFloatBar",i.ZIndexFloatBar="ZIndexFloatBar",i.DeleteNode="DeleteNode",i.CopyNode="CopyNode",i.ZIndexNode="ZIndexNode",i.ZIndexBackgroundSVG="ZIndexBackgroundSVG",i.RotateNode="RotateNode",i.SetColorNode="SetColorNode",i.TranslateNode="TranslateNode",i.ScaleNode="ScaleNode",i.OriginalEvent="OriginalEvent",i.CreateScene="CreateScene",i.ActiveCursor="ActiveCursor",i.MoveCursor="MoveCursor",i.CommandEditor="CommandEditor",i.SetEditorData="SetEditorData",i.SetFontStyle="SetFontStyle",i.SetPoint="SetPoint",i.SetLock="SetLock",i.SetShapeOpt="SetShapeOpt",i.CameraChange="CameraChange",i.ActiveMethod="ActiveMethod",i.HidFloatBarBtn="HidFloatBarBtn",i.SelectMethod="SelectMethod",i))(he||{}),xt=(i=>(i[i.Pencil=1]="Pencil",i[i.Eraser=2]="Eraser",i[i.PencilEraser=3]="PencilEraser",i[i.BitMapEraser=4]="BitMapEraser",i[i.Selector=5]="Selector",i[i.Clicker=6]="Clicker",i[i.Arrow=7]="Arrow",i[i.Hand=8]="Hand",i[i.LaserPen=9]="LaserPen",i[i.Text=10]="Text",i[i.Straight=11]="Straight",i[i.Rectangle=12]="Rectangle",i[i.Ellipse=13]="Ellipse",i[i.Star=14]="Star",i[i.Triangle=15]="Triangle",i[i.Rhombus=16]="Rhombus",i[i.Polygon=17]="Polygon",i[i.SpeechBalloon=18]="SpeechBalloon",i[i.Image=19]="Image",i[i.BackgroundSVG=20]="BackgroundSVG",i))(xt||{}),Kt=(i=>(i[i.Local=1]="Local",i[i.Service=2]="Service",i[i.Worker=3]="Worker",i))(Kt||{}),qt=(i=>(i[i.Pending=0]="Pending",i[i.Start=1]="Start",i[i.Doing=2]="Doing",i[i.Done=3]="Done",i[i.Unwritable=4]="Unwritable",i))(qt||{}),vt=(i=>(i[i.None=0]="None",i[i.Init=1]="Init",i[i.UpdateCamera=2]="UpdateCamera",i[i.UpdateTools=3]="UpdateTools",i[i.CreateWork=4]="CreateWork",i[i.DrawWork=5]="DrawWork",i[i.FullWork=6]="FullWork",i[i.UpdateNode=7]="UpdateNode",i[i.RemoveNode=8]="RemoveNode",i[i.Clear=9]="Clear",i[i.Select=10]="Select",i[i.Destroy=11]="Destroy",i[i.Snapshot=12]="Snapshot",i[i.BoundingBox=13]="BoundingBox",i[i.Cursor=14]="Cursor",i[i.TextUpdate=15]="TextUpdate",i[i.GetTextActive=16]="GetTextActive",i[i.TasksQueue=17]="TasksQueue",i[i.CursorHover=18]="CursorHover",i[i.CursorBlur=19]="CursorBlur",i[i.Console=20]="Console",i[i.GetImageBitMap=23]="GetImageBitMap",i[i.AuthWriter=24]="AuthWriter",i[i.AuthReader=25]="AuthReader",i[i.AuthClear=26]="AuthClear",i[i.AuthPage=27]="AuthPage",i[i.GetVNodeInfo=28]="GetVNodeInfo",i[i.UpdateDpr=29]="UpdateDpr",i[i.SetFontFace=30]="SetFontFace",i[i.ReportError=31]="ReportError",i[i.ReportLog=32]="ReportLog",i[i.BackgroundSVGUpdate=33]="BackgroundSVGUpdate",i[i.BackgroundSVGDelete=34]="BackgroundSVGDelete",i[i.SelectorTransform=35]="SelectorTransform",i[i.CheckFontFace=36]="CheckFontFace",i[i.RefreshTextRender=37]="RefreshTextRender",i))(vt||{}),Ut=(i=>(i[i.None=0]="None",i[i.Bg=1]="Bg",i[i.ServiceFloat=2]="ServiceFloat",i[i.Float=3]="Float",i[i.TopFloat=4]="TopFloat",i))(Ut||{}),Te=(i=>(i[i.none=1]="none",i[i.all=2]="all",i[i.both=3]="both",i[i.proportional=4]="proportional",i))(Te||{}),yr=(i=>(i[i.inside=0]="inside",i[i.outside=1]="outside",i[i.intersect=2]="intersect",i))(yr||{}),es=(i=>(i.Image="image",i.Iconify="iconify",i))(es||{});class Kr{constructor(){dt(this,"localWork");dt(this,"serviceWork");dt(this,"threadEngine")}registerForWorker(e){return this.threadEngine=e,this.localWork=e.localWork,this.serviceWork=e.serviceWork,this}}class ud extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",he.CopyNode)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.FullWork&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var n;const{workId:r}=t;r&&await((n=this.localWork)==null?void 0:n.consumeFull(t))}}const Vn="++",Me="selector",hd="all";class dd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",he.SetColorNode)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var h;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,textUpdateForWoker:f,needUndoTicker:u,requestId:v}=t;r===Me&&n&&await((h=this.localWork)==null?void 0:h.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,emitEventType:this.emitEventType,requestId:v,textUpdateForWoker:f,callback:this.updateSelectorCallback,needUndoTicker:u}))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s}=t,{willSyncService:c,isSync:l,textUpdateForWoker:f,needUndoTicker:u,requestId:v,emitEventType:h}=r,y=n.render||[],T=n.sp||[];if(c)for(const[O,C]of s.entries())f&&C.toolsType===xt.Text?T.push({...C,workId:O,type:vt.TextUpdate,dataType:Kt.Local,willSyncService:!0,emitEventType:h,requestId:v,needUndoTicker:u}):T.push({...C,workId:O,type:vt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:l,emitEventType:h,requestId:v,needUndoTicker:u});return u&&T.push({type:vt.None,needUndoTicker:u}),{render:y,sp:T}}}class pd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",he.ZIndexNode)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var v;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,needUndoTicker:f,requestId:u}=t;r===Me&&n&&await((v=this.localWork)==null?void 0:v.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,emitEventType:this.emitEventType,requestId:u,callback:this.updateSelectorCallback,needUndoTicker:f}))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s}=t,{willSyncService:c,isSync:l,needUndoTicker:f,requestId:u,emitEventType:v}=r,h=n.render||[],y=n.sp||[];if(c&&y)for(const[T,O]of s.entries())O.toolsType===xt.BackgroundSVG&&y.push({...O,workId:T,type:vt.BackgroundSVGUpdate,dataType:Kt.Local,updateNodeOpt:{useAnimation:!1},needUndoTicker:f,emitEventType:v,requestId:u}),y.push({...O,workId:T,type:vt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:l,emitEventType:v,requestId:u,needUndoTicker:f});return f&&y.push({type:vt.None,needUndoTicker:f}),{render:h,sp:y}}}class vd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",he.TranslateNode);dt(this,"updateSelectorCallback",t=>{const{param:r,postData:n,newServiceStore:s,workShapeNode:c,res:l,smoothSync:f}=t,{willSyncService:u,isSync:v,updateSelectorOpt:h,textUpdateForWoker:y,needUndoTicker:T}=r,O=h.workState,C=n.render||[],S=n.sp||[];if(O===qt.Start)return{sp:[{type:vt.SelectorTransform,emitEventType:this.emitEventType,workState:O}],render:[]};const w=l==null?void 0:l.selectRect;if(u){const d=O===qt.Done?T:void 0;S.push({type:vt.Select,selectIds:c.selectIds,selectRect:w,willSyncService:O===qt.Done?!0:f,isSync:!0,points:O===qt.Done&&c.getChildrenPoints()||void 0,textOpt:c.textOpt,needUndoTicker:d,emitEventType:this.emitEventType});const g={workState:O,useAnimation:h.useAnimation||!1};h.uid&&(g.uid=h.uid);for(const[p,P]of s.entries())P.toolsType===xt.BackgroundSVG&&S.push({...P,workId:p,type:vt.BackgroundSVGUpdate,dataType:Kt.Local,willSyncService:O===qt.Done?!0:f,updateNodeOpt:g,needUndoTicker:d,emitEventType:this.emitEventType}),y&&P.toolsType===xt.Text?S.push({...P,workId:p,type:vt.TextUpdate,dataType:Kt.Local,willSyncService:O===qt.Done?!0:f,updateNodeOpt:g,needUndoTicker:d,emitEventType:this.emitEventType}):(f||O===qt.Done)&&S.push({...P,workId:p,type:vt.UpdateNode,updateNodeOpt:g,isSync:v,needUndoTicker:d,emitEventType:this.emitEventType})}return T&&S.push({type:vt.None,needUndoTicker:T}),S.push({type:vt.SelectorTransform,emitEventType:this.emitEventType,workState:O}),{render:C,sp:S}})}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var y,T;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,textUpdateForWoker:f,emitEventType:u,smoothSync:v,needUndoTicker:h}=t;r===Me&&n&&(n.workState===qt.Done&&(n!=null&&n.translate)&&(n.translate[0]||n.translate[1])||n.workState!==qt.Done?await((y=this.localWork)==null?void 0:y.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,isSync:!0,textUpdateForWoker:f,emitEventType:u,callback:this.updateSelectorCallback,smoothSync:v,needUndoTicker:h})):n.workState===qt.Done&&((T=this.localWork)==null||T.vNodes.deleteLastTarget()))}}class gd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",he.ScaleNode);dt(this,"updateSelectorCallback",t=>{const{param:r,postData:n,workShapeNode:s,res:c,newServiceStore:l,smoothSync:f}=t,{updateSelectorOpt:u,willSyncService:v,needUndoTicker:h}=r,y=u.workState,T=n.render||[],O=n.sp||[],C=c==null?void 0:c.selectRect,S=y===qt.Done?h:void 0;if(y===qt.Start)return{sp:[{type:vt.SelectorTransform,emitEventType:this.emitEventType,workState:y}],render:[]};if(v){O.push({type:vt.Select,selectIds:s.selectIds,selectRect:C,willSyncService:y===qt.Done?!0:f,isSync:!0,points:y===qt.Done&&s.getChildrenPoints()||void 0,textOpt:s.textOpt});const w={useAnimation:u.useAnimation||!1};u.uid&&(w.uid=u.uid);for(const[d,g]of l.entries())g.toolsType===xt.BackgroundSVG&&O.push({...g,workId:d,type:vt.BackgroundSVGUpdate,dataType:Kt.Local,willSyncService:y===qt.Done?!0:f,updateNodeOpt:w,needUndoTicker:S,emitEventType:this.emitEventType}),g.toolsType===xt.Text?O.push({...g,workId:d,type:vt.TextUpdate,dataType:Kt.Local,willSyncService:y===qt.Done?!0:f,updateNodeOpt:w,needUndoTicker:S,emitEventType:this.emitEventType}):(f||y===qt.Done)&&O.push({...g,workId:d,type:vt.UpdateNode,updateNodeOpt:w,isSync:!0,needUndoTicker:S,emitEventType:this.emitEventType})}return h&&O.push({type:vt.None,needUndoTicker:h}),O.push({type:vt.SelectorTransform,emitEventType:this.emitEventType,workState:y}),{render:T,sp:O}})}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var u;const{workId:r,updateNodeOpt:n,willSyncService:s,willSerializeData:c,smoothSync:l,needUndoTicker:f}=t;r===Me&&n&&await((u=this.localWork)==null?void 0:u.updateSelector({updateSelectorOpt:n,willSyncService:s,willSerializeData:c,isSync:!0,callback:this.updateSelectorCallback.bind(this),smoothSync:l,needUndoTicker:f}))}}class md extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",he.RotateNode);dt(this,"updateSelectorCallback",t=>{const{param:r,postData:n,workShapeNode:s,res:c,newServiceStore:l,smoothSync:f}=t,{updateSelectorOpt:u,willSyncService:v,willSerializeData:h,isSync:y,needUndoTicker:T}=r,O=u.workState,C=n.render||[],S=n.sp||[],w=c==null?void 0:c.selectRect,d=O===qt.Done?T:void 0;if(v){h&&O===qt.Done&&S.push({type:vt.Select,selectIds:s.selectIds,selectRect:w,willSyncService:!0,isSync:y,points:s.getChildrenPoints(),textOpt:s.textOpt,selectorColor:s.selectorColor,strokeColor:s.strokeColor,fillColor:s.fillColor,canTextEdit:s.canTextEdit,canRotate:s.canRotate,scaleType:s.scaleType,opt:s.getWorkOptions()||void 0,canLock:s.canLock,isLocked:s.isLocked,toolsTypes:s.toolsTypes,shapeOpt:s.shapeOpt,thickness:s.thickness,useStroke:s.useStroke,strokeType:s.strokeType});const g={useAnimation:u.useAnimation||!1};if(u.uid&&(g.uid=u.uid),f||O===qt.Done)for(const[p,P]of l.entries())S.push({...P,workId:p,type:vt.UpdateNode,updateNodeOpt:g,isSync:y,needUndoTicker:d,emitEventType:this.emitEventType})}return T&&S.push({type:vt.None,needUndoTicker:T}),S.push({type:vt.SelectorTransform,emitEventType:this.emitEventType,workState:O}),{render:C,sp:S}})}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var h;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,emitEventType:f,smoothSync:u,needUndoTicker:v}=t;r===Me&&n&&await((h=this.localWork)==null?void 0:h.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,emitEventType:f,isSync:!0,callback:this.updateSelectorCallback,smoothSync:u,needUndoTicker:v}))}}class yd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",he.SetFontStyle)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var v;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,textUpdateForWoker:f,requestId:u}=t;r===Me&&n&&await((v=this.localWork)==null?void 0:v.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,emitEventType:this.emitEventType,requestId:u,textUpdateForWoker:f,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s,workShapeNode:c,res:l}=t,{willSyncService:f,isSync:u,updateSelectorOpt:v,textUpdateForWoker:h,requestId:y,emitEventType:T}=r,O=n.render||[],C=n.sp||[],S=l==null?void 0:l.selectRect;if(f&&C){v.fontSize&&C.push({type:vt.Select,selectIds:c.selectIds,selectRect:S,willSyncService:f,isSync:u,points:c.getChildrenPoints()});for(const[w,d]of s.entries())h&&d.toolsType===xt.Text?C.push({...d,workId:w,type:vt.TextUpdate,dataType:Kt.Local,willSyncService:!0,emitEventType:T,requestId:y}):C.push({...d,workId:w,type:vt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:u,emitEventType:T,requestId:y})}return{render:O,sp:C}}}class Sd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",he.SetPoint);dt(this,"updateSelectorCallback",t=>{const{param:r,postData:n,newServiceStore:s,workShapeNode:c,res:l}=t,{willSyncService:f,isSync:u,needUndoTicker:v}=r,h=n.render||[],y=n.sp||[],T=l==null?void 0:l.selectRect;if(f&&y){for(const[O,C]of s.entries())y.push({...C,workId:O,type:vt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:u,needUndoTicker:v,emitEventType:this.emitEventType});y.push({type:vt.Select,selectIds:c.selectIds,selectRect:T,willSyncService:f,isSync:u,points:c.getChildrenPoints()})}return v&&y.push({type:vt.None,needUndoTicker:v}),y.push({type:vt.SelectorTransform,emitEventType:this.emitEventType,workState:r.updateSelectorOpt.workState}),{render:h,sp:y}})}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var v;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,textUpdateForWoker:f,needUndoTicker:u}=t;r===Me&&n&&await((v=this.localWork)==null?void 0:v.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,emitEventType:this.emitEventType,willSerializeData:l,isSync:!0,textUpdateForWoker:f,callback:this.updateSelectorCallback,needUndoTicker:u}))}}class Pd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",he.SetLock)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var v;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,needUndoTicker:f,requestId:u}=t;r===Me&&n&&await((v=this.localWork)==null?void 0:v.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,emitEventType:this.emitEventType,requestId:u,callback:this.updateSelectorCallback,needUndoTicker:f}))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s,workShapeNode:c,res:l}=t,{willSyncService:f,isSync:u,updateSelectorOpt:v,needUndoTicker:h,requestId:y,emitEventType:T}=r,O=n.render||[],C=n.sp||[],S=l==null?void 0:l.selectRect;if(f&&C){for(const[w,d]of s.entries())C.push({...d,workId:w,type:vt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:u,emitEventType:T,requestId:y});C.push({isLocked:v.isLocked,selectorColor:c.selectorColor,scaleType:c.scaleType,canRotate:c.canRotate,type:vt.Select,selectIds:c.selectIds,selectRect:S,willSyncService:f,isSync:u})}return h&&C.push({type:vt.None,needUndoTicker:h}),{render:O,sp:C}}}class xd extends Kr{constructor(){super(...arguments);dt(this,"emitEventType",he.SetShapeOpt)}consume(t){const{msgType:r,dataType:n,emitEventType:s}=t;if(r===vt.UpdateNode&&n===Kt.Local&&s===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var v;const{workId:r,updateNodeOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,needUndoTicker:f,requestId:u}=t;r===Me&&n&&await((v=this.localWork)==null?void 0:v.updateSelector({updateSelectorOpt:n,willRefreshSelector:s,willSyncService:c,willSerializeData:l,emitEventType:this.emitEventType,requestId:u,callback:this.updateSelectorCallback,needUndoTicker:f}))}updateSelectorCallback(t){const{param:r,postData:n,newServiceStore:s}=t,{willSyncService:c,isSync:l,needUndoTicker:f,requestId:u,emitEventType:v}=r,h=n.render||[],y=n.sp||[];if(c&&y)for(const[T,O]of s.entries())y.push({...O,workId:T,type:vt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:l,emitEventType:v,requestId:u});return f&&y.push({type:vt.None,needUndoTicker:f}),{render:h,sp:y}}}class Ul{constructor(e){dt(this,"builders",new Map);this.builders=new Map(e.map(t=>[t,this.build(t)]))}build(e){switch(e){case he.TranslateNode:return new vd;case he.ZIndexNode:return new pd;case he.CopyNode:return new ud;case he.SetColorNode:return new dd;case he.ScaleNode:return new gd;case he.RotateNode:return new md;case he.SetFontStyle:return new yd;case he.SetPoint:return new Sd;case he.SetLock:return new Pd;case he.SetShapeOpt:return new xd}}registerForWorker(e){return this.builders.forEach(t=>{t&&t.registerForWorker(e)}),this}consumeForWorker(e){for(const t of this.builders.values())if(t!=null&&t.consume(e))return!0;return!1}}const Td={linear:i=>i,easeInQuad:i=>i*i,easeOutQuad:i=>i*(2-i),easeInOutQuad:i=>i<.5?2*i*i:-1+(4-2*i)*i,easeInCubic:i=>i*i*i,easeOutCubic:i=>--i*i*i+1,easeInOutCubic:i=>i<.5?4*i*i*i:(i-1)*(2*i-2)*(2*i-2)+1,easeInQuart:i=>i*i*i*i,easeOutQuart:i=>1- --i*i*i*i,easeInOutQuart:i=>i<.5?8*i*i*i*i:1-8*--i*i*i*i,easeInQuint:i=>i*i*i*i*i,easeOutQuint:i=>1+--i*i*i*i*i,easeInOutQuint:i=>i<.5?16*i*i*i*i*i:1+16*--i*i*i*i*i,easeInSine:i=>1-Math.cos(i*Math.PI/2),easeOutSine:i=>Math.sin(i*Math.PI/2),easeInOutSine:i=>-(Math.cos(Math.PI*i)-1)/2,easeInExpo:i=>i<=0?0:Math.pow(2,10*i-10),easeOutExpo:i=>i>=1?1:1-Math.pow(2,-10*i),easeInOutExpo:i=>i<=0?0:i>=1?1:i<.5?Math.pow(2,20*i-10)/2:(2-Math.pow(2,-20*i+10))/2};class pt{constructor(e=0,t=0,r=1){this.x=e,this.y=t,this.z=r}get XY(){return[this.x,this.y]}setz(e){return this.z=e,this}setXY(e=this.x,t=this.y){return this.x=e,this.y=t,this}set(e=this.x,t=this.y,r=this.z){return this.x=e,this.y=t,this.z=r,this}setTo({x:e=0,y:t=0,z:r=1}){return this.x=e,this.y=t,this.z=r,this}rot(e){if(e===0)return this;const{x:t,y:r}=this,n=Math.sin(e),s=Math.cos(e);return this.x=t*s-r*n,this.y=t*n+r*s,this}rotWith(e,t){if(t===0)return this;const r=this.x-e.x,n=this.y-e.y,s=Math.sin(t),c=Math.cos(t);return this.x=e.x+(r*c-n*s),this.y=e.y+(r*s+n*c),this}clone(){const{x:e,y:t,z:r}=this;return new pt(e,t,r)}sub(e){return this.x-=e.x,this.y-=e.y,this}subXY(e,t){return this.x-=e,this.y-=t,this}subScalar(e){return this.x-=e,this.y-=e,this}add(e){return this.x+=e.x,this.y+=e.y,this}addXY(e,t){return this.x+=e,this.y+=t,this}addScalar(e){return this.x+=e,this.y+=e,this}clamp(e,t){return this.x=Math.max(this.x,e),this.y=Math.max(this.y,e),t!==void 0&&(this.x=Math.min(this.x,t),this.y=Math.min(this.y,t)),this}div(e){return this.x/=e,this.y/=e,this}divV(e){return this.x/=e.x,this.y/=e.y,this}mul(e){return this.x*=e,this.y*=e,this}mulV(e){return this.x*=e.x,this.y*=e.y,this}abs(){return this.x=Math.abs(this.x),this.y=Math.abs(this.y),this}nudge(e,t){const r=pt.Tan(e,this);return this.add(r.mul(t))}neg(){return this.x*=-1,this.y*=-1,this}cross(e){return this.x=this.y*e.z-this.z*e.y,this.y=this.z*e.x-this.x*e.z,this}dpr(e){return pt.Dpr(this,e)}cpr(e){return pt.Cpr(this,e)}len2(){return pt.Len2(this)}len(){return pt.Len(this)}pry(e){return pt.Pry(this,e)}per(){const{x:e,y:t}=this;return this.x=t,this.y=-e,this}uni(){return pt.Uni(this)}tan(e){return pt.Tan(this,e)}dist(e){return pt.Dist(this,e)}distanceToLineSegment(e,t){return pt.DistanceToLineSegment(e,t,this)}slope(e){return pt.Slope(this,e)}snapToGrid(e){return this.x=Math.round(this.x/e)*e,this.y=Math.round(this.y/e)*e,this}angle(e){return pt.Angle(this,e)}toAngle(){return pt.ToAngle(this)}lrp(e,t){return this.x=this.x+(e.x-this.x)*t,this.y=this.y+(e.y-this.y)*t,this}equals(e,t){return pt.Equals(this,e,t)}equalsXY(e,t){return pt.EqualsXY(this,e,t)}norm(){const e=this.len();return this.x=e===0?0:this.x/e,this.y=e===0?0:this.y/e,this}toFixed(){return pt.ToFixed(this)}toString(){return pt.ToString(pt.ToFixed(this))}toJson(){return pt.ToJson(this)}toArray(){return pt.ToArray(this)}static Add(e,t){return new pt(e.x+t.x,e.y+t.y)}static AddXY(e,t,r){return new pt(e.x+t,e.y+r)}static Sub(e,t){return new pt(e.x-t.x,e.y-t.y)}static SubXY(e,t,r){return new pt(e.x-t,e.y-r)}static AddScalar(e,t){return new pt(e.x+t,e.y+t)}static SubScalar(e,t){return new pt(e.x-t,e.y-t)}static Div(e,t){return new pt(e.x/t,e.y/t)}static Mul(e,t){return new pt(e.x*t,e.y*t)}static DivV(e,t){return new pt(e.x/t.x,e.y/t.y)}static MulV(e,t){return new pt(e.x*t.x,e.y*t.y)}static Neg(e){return new pt(-e.x,-e.y)}static Per(e){return new pt(e.y,-e.x)}static Dist2(e,t){return pt.Sub(e,t).len2()}static Abs(e){return new pt(Math.abs(e.x),Math.abs(e.y))}static Dist(e,t){return Math.hypot(e.y-t.y,e.x-t.x)}static Dpr(e,t){return e.x*t.x+e.y*t.y}static Cross(e,t){return new pt(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z)}static Cpr(e,t){return e.x*t.y-t.x*e.y}static Len2(e){return e.x*e.x+e.y*e.y}static Len(e){return Math.hypot(e.x,e.y)}static Pry(e,t){return pt.Dpr(e,t)/pt.Len(t)}static Uni(e){return pt.Div(e,pt.Len(e))}static Tan(e,t){return pt.Uni(pt.Sub(e,t))}static Min(e,t){return new pt(Math.min(e.x,t.x),Math.min(e.y,t.y))}static Max(e,t){return new pt(Math.max(e.x,t.x),Math.max(e.y,t.y))}static From(e){return new pt().add(e)}static FromArray(e){return new pt(e[0],e[1])}static Rot(e,t=0){const r=Math.sin(t),n=Math.cos(t);return new pt(e.x*n-e.y*r,e.x*r+e.y*n)}static RotWith(e,t,r){const n=e.x-t.x,s=e.y-t.y,c=Math.sin(r),l=Math.cos(r);return new pt(t.x+(n*l-s*c),t.y+(n*c+s*l))}static NearestPointOnLineThroughPoint(e,t,r){return pt.Mul(t,pt.Sub(r,e).pry(t)).add(e)}static NearestPointOnLineSegment(e,t,r,n=!0){const s=pt.Tan(t,e),c=pt.Add(e,pt.Mul(s,pt.Sub(r,e).pry(s)));if(n){if(c.x<Math.min(e.x,t.x))return pt.Cast(e.x<t.x?e:t);if(c.x>Math.max(e.x,t.x))return pt.Cast(e.x>t.x?e:t);if(c.y<Math.min(e.y,t.y))return pt.Cast(e.y<t.y?e:t);if(c.y>Math.max(e.y,t.y))return pt.Cast(e.y>t.y?e:t)}return c}static DistanceToLineThroughPoint(e,t,r){return pt.Dist(r,pt.NearestPointOnLineThroughPoint(e,t,r))}static DistanceToLineSegment(e,t,r,n=!0){return pt.Dist(r,pt.NearestPointOnLineSegment(e,t,r,n))}static Snap(e,t=1){return new pt(Math.round(e.x/t)*t,Math.round(e.y/t)*t)}static Cast(e){return e instanceof pt?e:pt.From(e)}static Slope(e,t){return e.x===t.y?NaN:(e.y-t.y)/(e.x-t.x)}static Angle(e,t){return Math.atan2(t.y-e.y,t.x-e.x)}static Lrp(e,t,r){return pt.Sub(t,e).mul(r).add(e)}static Med(e,t){return new pt((e.x+t.x)/2,(e.y+t.y)/2)}static Equals(e,t,r=1e-4){return Math.abs(e.x-t.x)<r&&Math.abs(e.y-t.y)<r}static EqualsXY(e,t,r){return e.x===t&&e.y===r}static EqualsXYZ(e,t,r=1e-4){return pt.Equals(e,t,r)&&Math.abs((e.z||0)-(t.z||0))<r}static Clockwise(e,t,r){return(r.x-e.x)*(t.y-e.y)-(t.x-e.x)*(r.y-e.y)<0}static Rescale(e,t){const r=pt.Len(e);return new pt(t*e.x/r,t*e.y/r)}static ScaleWithOrigin(e,t,r){return pt.Sub(e,r).mul(t).add(r)}static ScaleWOrigin(e,t,r){return pt.Sub(e,r).mulV(t).add(r)}static ToFixed(e,t=2){return new pt(+e.x.toFixed(t),+e.y.toFixed(t),+e.z.toFixed(t))}static Nudge(e,t,r){return pt.Add(e,pt.Tan(t,e).mul(r))}static ToString(e){return`${e.x}, ${e.y}`}static ToAngle(e){let t=Math.atan2(e.y,e.x);return t<0&&(t+=Math.PI*2),t}static FromAngle(e,t=1){return new pt(Math.cos(e)*t,Math.sin(e)*t)}static ToArray(e){return[e.x,e.y,e.z]}static ToJson(e){const{x:t,y:r,z:n}=e;return{x:t,y:r,z:n}}static Average(e){const t=e.length,r=new pt(0,0);for(let n=0;n<t;n++)r.add(e[n]);return r.div(t)}static Clamp(e,t,r){return r===void 0?new pt(Math.min(Math.max(e.x,t)),Math.min(Math.max(e.y,t))):new pt(Math.min(Math.max(e.x,t),r),Math.min(Math.max(e.y,t),r))}static PointsBetween(e,t,r=6){const n=[];for(let s=0;s<r;s++){const c=Td.easeInQuad(s/(r-1)),l=pt.Lrp(e,t,c);l.z=Math.min(1,.5+Math.abs(.5-Cd(c))*.65),n.push(l)}return n}static SnapToGrid(e,t=8){return new pt(Math.round(e.x/t)*t,Math.round(e.y/t)*t)}}const Cd=i=>i<.5?2*i*i:-1+(4-2*i)*i;class Jt extends pt{constructor(e=0,t=0,r=0,n={x:0,y:0},s=0,c=0){super(e,t,r),this.x=e,this.y=t,this.z=r,this.v=n,this.t=s,this.a=c}get timestamp(){return this.t}get pressure(){return this.z}get angleNum(){return this.a}get XY(){return[this.x,this.y]}setA(e){this.a=e}setT(e){this.t=e}setv(e){return this.v={x:e.x,y:e.y},this}set(e=this.x,t=this.y,r=this.z,n=this.v,s=this.t,c=this.a){return this.x=e,this.y=t,this.z=r,this.v=n,this.t=s,this.a=c,this}clone(){const{x:e,y:t,z:r,v:n,t:s,a:c}=this,l={x:n.x,y:n.y};return new Jt(e,t,r,l,s,c)}distance(e){return Jt.GetDistance(this,e)}isNear(e,t){return Jt.IsNear(this,e,t)}getAngleByPoints(e,t){return Jt.GetAngleByPoints(e,this,t)}static Sub(e,t){return new Jt(e.x-t.x,e.y-t.y)}static Add(e,t){return new Jt(e.x+t.x,e.y+t.y)}static GetDistance(e,t){return Jt.Len(e.clone().sub(t))}static GetAngleByPoints(e,t,r){const n=t.x-e.x,s=r.x-t.x,c=t.y-e.y,l=r.y-t.y;let f=0;const u=Math.sqrt(n*n+c*c),v=Math.sqrt(s*s+l*l);if(u&&v){const h=n*s+c*l;f=Math.acos(h/(u*v)),f=f/Math.PI*180;let y=n*l-c*s;y=y>0?1:-1,f=180+y*f}return f}static IsNear(e,t,r){return Jt.Len(e.clone().sub(t))<r}static RotWith(e,t,r,n=2){const s=e.x-t.x,c=e.y-t.y,l=Math.sin(r),f=Math.cos(r),u=Math.pow(10,n),v=Math.floor((t.x+(s*f-c*l))*u)/u,h=Math.floor((t.y+(s*l+c*f))*u)/u;return new Jt(v,h)}static GetDotStroke(e,t,r=16){const n=new pt(1,1),s=Math.PI+.001,c=Jt.Add(e,Jt.Sub(e,n).uni().per().mul(-t)),l=[];for(let f=1/r,u=f;u<=1;u+=f)l.push(Jt.RotWith(c,e,s*2*u));return l}static GetSemicircleStroke(e,t,r=-1,n=8){const s=r*(Math.PI+.001),c=[];for(let l=1/n,f=l;f<=1;f+=l)c.push(Jt.RotWith(t,e,s*f));return c}}var sn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function mn(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var Id=typeof sn=="object"&&sn&&sn.Object===Object&&sn,Yl=Id,wd=Yl,Od=typeof self=="object"&&self&&self.Object===Object&&self,Ed=wd||Od||Function("return this")(),Zr=Ed,Ad=Zr,Md=Ad.Symbol,wi=Md,Xl=wi,zl=Object.prototype,Ld=zl.hasOwnProperty,Rd=zl.toString,Oi=Xl?Xl.toStringTag:void 0;function bd(i){var e=Ld.call(i,Oi),t=i[Oi];try{i[Oi]=void 0;var r=!0}catch{}var n=Rd.call(i);return r&&(e?i[Oi]=t:delete i[Oi]),n}var Dd=bd,Nd=Object.prototype,Bd=Nd.toString;function Wd(i){return Bd.call(i)}var Fd=Wd,$l=wi,Ud=Dd,Yd=Fd,Xd="[object Null]",zd="[object Undefined]",jl=$l?$l.toStringTag:void 0;function $d(i){return i==null?i===void 0?zd:Xd:jl&&jl in Object(i)?Ud(i):Yd(i)}var Kn=$d;function jd(i){return i!=null&&typeof i=="object"}var on=jd,kd=Kn,Gd=on,Hd="[object Number]";function Vd(i){return typeof i=="number"||Gd(i)&&kd(i)==Hd}var Kd=Vd,Qe=mn(Kd);function Zd(){this.__data__=[],this.size=0}var Jd=Zd;function Qd(i,e){return i===e||i!==i&&e!==e}var Eo=Qd,qd=Eo;function _d(i,e){for(var t=i.length;t--;)if(qd(i[t][0],e))return t;return-1}var rs=_d,tp=rs,ep=Array.prototype,rp=ep.splice;function np(i){var e=this.__data__,t=tp(e,i);if(t<0)return!1;var r=e.length-1;return t==r?e.pop():rp.call(e,t,1),--this.size,!0}var ip=np,sp=rs;function op(i){var e=this.__data__,t=sp(e,i);return t<0?void 0:e[t][1]}var ap=op,lp=rs;function fp(i){return lp(this.__data__,i)>-1}var cp=fp,up=rs;function hp(i,e){var t=this.__data__,r=up(t,i);return r<0?(++this.size,t.push([i,e])):t[r][1]=e,this}var dp=hp,pp=Jd,vp=ip,gp=ap,mp=cp,yp=dp;function Zn(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var r=i[e];this.set(r[0],r[1])}}Zn.prototype.clear=pp,Zn.prototype.delete=vp,Zn.prototype.get=gp,Zn.prototype.has=mp,Zn.prototype.set=yp;var ns=Zn,Sp=ns;function Pp(){this.__data__=new Sp,this.size=0}var xp=Pp;function Tp(i){var e=this.__data__,t=e.delete(i);return this.size=e.size,t}var Cp=Tp;function Ip(i){return this.__data__.get(i)}var wp=Ip;function Op(i){return this.__data__.has(i)}var Ep=Op;function Ap(i){var e=typeof i;return i!=null&&(e=="object"||e=="function")}var Ei=Ap,Mp=Kn,Lp=Ei,Rp="[object AsyncFunction]",bp="[object Function]",Dp="[object GeneratorFunction]",Np="[object Proxy]";function Bp(i){if(!Lp(i))return!1;var e=Mp(i);return e==bp||e==Dp||e==Rp||e==Np}var kl=Bp,Wp=Zr,Fp=Wp["__core-js_shared__"],Up=Fp,Ao=Up,Gl=function(){var i=/[^.]+$/.exec(Ao&&Ao.keys&&Ao.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function Yp(i){return!!Gl&&Gl in i}var Xp=Yp,zp=Function.prototype,$p=zp.toString;function jp(i){if(i!=null){try{return $p.call(i)}catch{}try{return i+""}catch{}}return""}var Hl=jp,kp=kl,Gp=Xp,Hp=Ei,Vp=Hl,Kp=/[\\^$.*+?()[\]{}|]/g,Zp=/^\[object .+?Constructor\]$/,Jp=Function.prototype,Qp=Object.prototype,qp=Jp.toString,_p=Qp.hasOwnProperty,t0=RegExp("^"+qp.call(_p).replace(Kp,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function e0(i){if(!Hp(i)||Gp(i))return!1;var e=kp(i)?t0:Zp;return e.test(Vp(i))}var r0=e0;function n0(i,e){return i==null?void 0:i[e]}var i0=n0,s0=r0,o0=i0;function a0(i,e){var t=o0(i,e);return s0(t)?t:void 0}var Dn=a0,l0=Dn,f0=Zr,c0=l0(f0,"Map"),Mo=c0,u0=Dn,h0=u0(Object,"create"),is=h0,Vl=is;function d0(){this.__data__=Vl?Vl(null):{},this.size=0}var p0=d0;function v0(i){var e=this.has(i)&&delete this.__data__[i];return this.size-=e?1:0,e}var g0=v0,m0=is,y0="__lodash_hash_undefined__",S0=Object.prototype,P0=S0.hasOwnProperty;function x0(i){var e=this.__data__;if(m0){var t=e[i];return t===y0?void 0:t}return P0.call(e,i)?e[i]:void 0}var T0=x0,C0=is,I0=Object.prototype,w0=I0.hasOwnProperty;function O0(i){var e=this.__data__;return C0?e[i]!==void 0:w0.call(e,i)}var E0=O0,A0=is,M0="__lodash_hash_undefined__";function L0(i,e){var t=this.__data__;return this.size+=this.has(i)?0:1,t[i]=A0&&e===void 0?M0:e,this}var R0=L0,b0=p0,D0=g0,N0=T0,B0=E0,W0=R0;function Jn(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var r=i[e];this.set(r[0],r[1])}}Jn.prototype.clear=b0,Jn.prototype.delete=D0,Jn.prototype.get=N0,Jn.prototype.has=B0,Jn.prototype.set=W0;var F0=Jn,Kl=F0,U0=ns,Y0=Mo;function X0(){this.size=0,this.__data__={hash:new Kl,map:new(Y0||U0),string:new Kl}}var z0=X0;function $0(i){var e=typeof i;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?i!=="__proto__":i===null}var j0=$0,k0=j0;function G0(i,e){var t=i.__data__;return k0(e)?t[typeof e=="string"?"string":"hash"]:t.map}var ss=G0,H0=ss;function V0(i){var e=H0(this,i).delete(i);return this.size-=e?1:0,e}var K0=V0,Z0=ss;function J0(i){return Z0(this,i).get(i)}var Q0=J0,q0=ss;function _0(i){return q0(this,i).has(i)}var tv=_0,ev=ss;function rv(i,e){var t=ev(this,i),r=t.size;return t.set(i,e),this.size+=t.size==r?0:1,this}var nv=rv,iv=z0,sv=K0,ov=Q0,av=tv,lv=nv;function Qn(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var r=i[e];this.set(r[0],r[1])}}Qn.prototype.clear=iv,Qn.prototype.delete=sv,Qn.prototype.get=ov,Qn.prototype.has=av,Qn.prototype.set=lv;var Zl=Qn,fv=ns,cv=Mo,uv=Zl,hv=200;function dv(i,e){var t=this.__data__;if(t instanceof fv){var r=t.__data__;if(!cv||r.length<hv-1)return r.push([i,e]),this.size=++t.size,this;t=this.__data__=new uv(r)}return t.set(i,e),this.size=t.size,this}var pv=dv,vv=ns,gv=xp,mv=Cp,yv=wp,Sv=Ep,Pv=pv;function qn(i){var e=this.__data__=new vv(i);this.size=e.size}qn.prototype.clear=gv,qn.prototype.delete=mv,qn.prototype.get=yv,qn.prototype.has=Sv,qn.prototype.set=Pv;var Jl=qn;function xv(i,e){for(var t=-1,r=i==null?0:i.length;++t<r&&e(i[t],t,i)!==!1;);return i}var Tv=xv,Cv=Dn,Iv=function(){try{var i=Cv(Object,"defineProperty");return i({},"",{}),i}catch{}}(),Ql=Iv,ql=Ql;function wv(i,e,t){e=="__proto__"&&ql?ql(i,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):i[e]=t}var _l=wv,Ov=_l,Ev=Eo,Av=Object.prototype,Mv=Av.hasOwnProperty;function Lv(i,e,t){var r=i[e];(!(Mv.call(i,e)&&Ev(r,t))||t===void 0&&!(e in i))&&Ov(i,e,t)}var tf=Lv,Rv=tf,bv=_l;function Dv(i,e,t,r){var n=!t;t||(t={});for(var s=-1,c=e.length;++s<c;){var l=e[s],f=r?r(t[l],i[l],l,t,i):void 0;f===void 0&&(f=i[l]),n?bv(t,l,f):Rv(t,l,f)}return t}var os=Dv;function Nv(i,e){for(var t=-1,r=Array(i);++t<i;)r[t]=e(t);return r}var Bv=Nv,Wv=Kn,Fv=on,Uv="[object Arguments]";function Yv(i){return Fv(i)&&Wv(i)==Uv}var Xv=Yv,ef=Xv,zv=on,rf=Object.prototype,$v=rf.hasOwnProperty,jv=rf.propertyIsEnumerable,kv=ef(function(){return arguments}())?ef:function(i){return zv(i)&&$v.call(i,"callee")&&!jv.call(i,"callee")},nf=kv,Gv=Array.isArray,Ai=Gv,as={exports:{}};function Hv(){return!1}var Vv=Hv;as.exports,function(i,e){var t=Zr,r=Vv,n=e&&!e.nodeType&&e,s=n&&!0&&i&&!i.nodeType&&i,c=s&&s.exports===n,l=c?t.Buffer:void 0,f=l?l.isBuffer:void 0,u=f||r;i.exports=u}(as,as.exports);var Lo=as.exports,Kv=9007199254740991,Zv=/^(?:0|[1-9]\d*)$/;function Jv(i,e){var t=typeof i;return e=e??Kv,!!e&&(t=="number"||t!="symbol"&&Zv.test(i))&&i>-1&&i%1==0&&i<e}var Qv=Jv,qv=9007199254740991;function _v(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=qv}var sf=_v,tg=Kn,eg=sf,rg=on,ng="[object Arguments]",ig="[object Array]",sg="[object Boolean]",og="[object Date]",ag="[object Error]",lg="[object Function]",fg="[object Map]",cg="[object Number]",ug="[object Object]",hg="[object RegExp]",dg="[object Set]",pg="[object String]",vg="[object WeakMap]",gg="[object ArrayBuffer]",mg="[object DataView]",yg="[object Float32Array]",Sg="[object Float64Array]",Pg="[object Int8Array]",xg="[object Int16Array]",Tg="[object Int32Array]",Cg="[object Uint8Array]",Ig="[object Uint8ClampedArray]",wg="[object Uint16Array]",Og="[object Uint32Array]",Xe={};Xe[yg]=Xe[Sg]=Xe[Pg]=Xe[xg]=Xe[Tg]=Xe[Cg]=Xe[Ig]=Xe[wg]=Xe[Og]=!0,Xe[ng]=Xe[ig]=Xe[gg]=Xe[sg]=Xe[mg]=Xe[og]=Xe[ag]=Xe[lg]=Xe[fg]=Xe[cg]=Xe[ug]=Xe[hg]=Xe[dg]=Xe[pg]=Xe[vg]=!1;function Eg(i){return rg(i)&&eg(i.length)&&!!Xe[tg(i)]}var Ag=Eg;function Mg(i){return function(e){return i(e)}}var ls=Mg,fs={exports:{}};fs.exports,function(i,e){var t=Yl,r=e&&!e.nodeType&&e,n=r&&!0&&i&&!i.nodeType&&i,s=n&&n.exports===r,c=s&&t.process,l=function(){try{var f=n&&n.require&&n.require("util").types;return f||c&&c.binding&&c.binding("util")}catch{}}();i.exports=l}(fs,fs.exports);var Ro=fs.exports,Lg=Ag,Rg=ls,of=Ro,af=of&&of.isTypedArray,bg=af?Rg(af):Lg,lf=bg,Dg=Bv,Ng=nf,Bg=Ai,Wg=Lo,Fg=Qv,Ug=lf,Yg=Object.prototype,Xg=Yg.hasOwnProperty;function zg(i,e){var t=Bg(i),r=!t&&Ng(i),n=!t&&!r&&Wg(i),s=!t&&!r&&!n&&Ug(i),c=t||r||n||s,l=c?Dg(i.length,String):[],f=l.length;for(var u in i)(e||Xg.call(i,u))&&!(c&&(u=="length"||n&&(u=="offset"||u=="parent")||s&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Fg(u,f)))&&l.push(u);return l}var ff=zg,$g=Object.prototype;function jg(i){var e=i&&i.constructor,t=typeof e=="function"&&e.prototype||$g;return i===t}var bo=jg;function kg(i,e){return function(t){return i(e(t))}}var cf=kg,Gg=cf,Hg=Gg(Object.keys,Object),Vg=Hg,Kg=bo,Zg=Vg,Jg=Object.prototype,Qg=Jg.hasOwnProperty;function qg(i){if(!Kg(i))return Zg(i);var e=[];for(var t in Object(i))Qg.call(i,t)&&t!="constructor"&&e.push(t);return e}var _g=qg,tm=kl,em=sf;function rm(i){return i!=null&&em(i.length)&&!tm(i)}var Do=rm,nm=ff,im=_g,sm=Do;function om(i){return sm(i)?nm(i):im(i)}var No=om,am=os,lm=No;function fm(i,e){return i&&am(e,lm(e),i)}var cm=fm;function um(i){var e=[];if(i!=null)for(var t in Object(i))e.push(t);return e}var hm=um,dm=Ei,pm=bo,vm=hm,gm=Object.prototype,mm=gm.hasOwnProperty;function ym(i){if(!dm(i))return vm(i);var e=pm(i),t=[];for(var r in i)r=="constructor"&&(e||!mm.call(i,r))||t.push(r);return t}var Sm=ym,Pm=ff,xm=Sm,Tm=Do;function Cm(i){return Tm(i)?Pm(i,!0):xm(i)}var Bo=Cm,Im=os,wm=Bo;function Om(i,e){return i&&Im(e,wm(e),i)}var Em=Om,cs={exports:{}};cs.exports,function(i,e){var t=Zr,r=e&&!e.nodeType&&e,n=r&&!0&&i&&!i.nodeType&&i,s=n&&n.exports===r,c=s?t.Buffer:void 0,l=c?c.allocUnsafe:void 0;function f(u,v){if(v)return u.slice();var h=u.length,y=l?l(h):new u.constructor(h);return u.copy(y),y}i.exports=f}(cs,cs.exports);var Am=cs.exports;function Mm(i,e){var t=-1,r=i.length;for(e||(e=Array(r));++t<r;)e[t]=i[t];return e}var Lm=Mm;function Rm(i,e){for(var t=-1,r=i==null?0:i.length,n=0,s=[];++t<r;){var c=i[t];e(c,t,i)&&(s[n++]=c)}return s}var uf=Rm;function bm(){return[]}var hf=bm,Dm=uf,Nm=hf,Bm=Object.prototype,Wm=Bm.propertyIsEnumerable,df=Object.getOwnPropertySymbols,Fm=df?function(i){return i==null?[]:(i=Object(i),Dm(df(i),function(e){return Wm.call(i,e)}))}:Nm,Wo=Fm,Um=os,Ym=Wo;function Xm(i,e){return Um(i,Ym(i),e)}var zm=Xm;function $m(i,e){for(var t=-1,r=e.length,n=i.length;++t<r;)i[n+t]=e[t];return i}var Fo=$m,jm=cf,km=jm(Object.getPrototypeOf,Object),pf=km,Gm=Fo,Hm=pf,Vm=Wo,Km=hf,Zm=Object.getOwnPropertySymbols,Jm=Zm?function(i){for(var e=[];i;)Gm(e,Vm(i)),i=Hm(i);return e}:Km,vf=Jm,Qm=os,qm=vf;function _m(i,e){return Qm(i,qm(i),e)}var ty=_m,ey=Fo,ry=Ai;function ny(i,e,t){var r=e(i);return ry(i)?r:ey(r,t(i))}var gf=ny,iy=gf,sy=Wo,oy=No;function ay(i){return iy(i,oy,sy)}var mf=ay,ly=gf,fy=vf,cy=Bo;function uy(i){return ly(i,cy,fy)}var hy=uy,dy=Dn,py=Zr,vy=dy(py,"DataView"),gy=vy,my=Dn,yy=Zr,Sy=my(yy,"Promise"),Py=Sy,xy=Dn,Ty=Zr,Cy=xy(Ty,"Set"),yf=Cy,Iy=Dn,wy=Zr,Oy=Iy(wy,"WeakMap"),Ey=Oy,Uo=gy,Yo=Mo,Xo=Py,zo=yf,$o=Ey,Sf=Kn,_n=Hl,Pf="[object Map]",Ay="[object Object]",xf="[object Promise]",Tf="[object Set]",Cf="[object WeakMap]",If="[object DataView]",My=_n(Uo),Ly=_n(Yo),Ry=_n(Xo),by=_n(zo),Dy=_n($o),Nn=Sf;(Uo&&Nn(new Uo(new ArrayBuffer(1)))!=If||Yo&&Nn(new Yo)!=Pf||Xo&&Nn(Xo.resolve())!=xf||zo&&Nn(new zo)!=Tf||$o&&Nn(new $o)!=Cf)&&(Nn=function(i){var e=Sf(i),t=e==Ay?i.constructor:void 0,r=t?_n(t):"";if(r)switch(r){case My:return If;case Ly:return Pf;case Ry:return xf;case by:return Tf;case Dy:return Cf}return e});var us=Nn,Ny=Object.prototype,By=Ny.hasOwnProperty;function Wy(i){var e=i.length,t=new i.constructor(e);return e&&typeof i[0]=="string"&&By.call(i,"index")&&(t.index=i.index,t.input=i.input),t}var Fy=Wy,Uy=Zr,Yy=Uy.Uint8Array,wf=Yy,Of=wf;function Xy(i){var e=new i.constructor(i.byteLength);return new Of(e).set(new Of(i)),e}var jo=Xy,zy=jo;function $y(i,e){var t=e?zy(i.buffer):i.buffer;return new i.constructor(t,i.byteOffset,i.byteLength)}var jy=$y,ky=/\w*$/;function Gy(i){var e=new i.constructor(i.source,ky.exec(i));return e.lastIndex=i.lastIndex,e}var Hy=Gy,Ef=wi,Af=Ef?Ef.prototype:void 0,Mf=Af?Af.valueOf:void 0;function Vy(i){return Mf?Object(Mf.call(i)):{}}var Ky=Vy,Zy=jo;function Jy(i,e){var t=e?Zy(i.buffer):i.buffer;return new i.constructor(t,i.byteOffset,i.length)}var Qy=Jy,qy=jo,_y=jy,t1=Hy,e1=Ky,r1=Qy,n1="[object Boolean]",i1="[object Date]",s1="[object Map]",o1="[object Number]",a1="[object RegExp]",l1="[object Set]",f1="[object String]",c1="[object Symbol]",u1="[object ArrayBuffer]",h1="[object DataView]",d1="[object Float32Array]",p1="[object Float64Array]",v1="[object Int8Array]",g1="[object Int16Array]",m1="[object Int32Array]",y1="[object Uint8Array]",S1="[object Uint8ClampedArray]",P1="[object Uint16Array]",x1="[object Uint32Array]";function T1(i,e,t){var r=i.constructor;switch(e){case u1:return qy(i);case n1:case i1:return new r(+i);case h1:return _y(i,t);case d1:case p1:case v1:case g1:case m1:case y1:case S1:case P1:case x1:return r1(i,t);case s1:return new r;case o1:case f1:return new r(i);case a1:return t1(i);case l1:return new r;case c1:return e1(i)}}var C1=T1,I1=Ei,Lf=Object.create,w1=function(){function i(){}return function(e){if(!I1(e))return{};if(Lf)return Lf(e);i.prototype=e;var t=new i;return i.prototype=void 0,t}}(),O1=w1,E1=O1,A1=pf,M1=bo;function L1(i){return typeof i.constructor=="function"&&!M1(i)?E1(A1(i)):{}}var R1=L1,b1=us,D1=on,N1="[object Map]";function B1(i){return D1(i)&&b1(i)==N1}var W1=B1,F1=W1,U1=ls,Rf=Ro,bf=Rf&&Rf.isMap,Y1=bf?U1(bf):F1,X1=Y1,z1=us,$1=on,j1="[object Set]";function k1(i){return $1(i)&&z1(i)==j1}var G1=k1,H1=G1,V1=ls,Df=Ro,Nf=Df&&Df.isSet,K1=Nf?V1(Nf):H1,Bf=K1,Z1=mn(Bf),J1=Jl,Q1=Tv,q1=tf,_1=cm,tS=Em,eS=Am,rS=Lm,nS=zm,iS=ty,sS=mf,oS=hy,aS=us,lS=Fy,fS=C1,cS=R1,uS=Ai,hS=Lo,dS=X1,pS=Ei,vS=Bf,gS=No,mS=Bo,yS=1,SS=2,PS=4,Wf="[object Arguments]",xS="[object Array]",TS="[object Boolean]",CS="[object Date]",IS="[object Error]",Ff="[object Function]",wS="[object GeneratorFunction]",OS="[object Map]",ES="[object Number]",Uf="[object Object]",AS="[object RegExp]",MS="[object Set]",LS="[object String]",RS="[object Symbol]",bS="[object WeakMap]",DS="[object ArrayBuffer]",NS="[object DataView]",BS="[object Float32Array]",WS="[object Float64Array]",FS="[object Int8Array]",US="[object Int16Array]",YS="[object Int32Array]",XS="[object Uint8Array]",zS="[object Uint8ClampedArray]",$S="[object Uint16Array]",jS="[object Uint32Array]",We={};We[Wf]=We[xS]=We[DS]=We[NS]=We[TS]=We[CS]=We[BS]=We[WS]=We[FS]=We[US]=We[YS]=We[OS]=We[ES]=We[Uf]=We[AS]=We[MS]=We[LS]=We[RS]=We[XS]=We[zS]=We[$S]=We[jS]=!0,We[IS]=We[Ff]=We[bS]=!1;function hs(i,e,t,r,n,s){var c,l=e&yS,f=e&SS,u=e&PS;if(t&&(c=n?t(i,r,n,s):t(i)),c!==void 0)return c;if(!pS(i))return i;var v=uS(i);if(v){if(c=lS(i),!l)return rS(i,c)}else{var h=aS(i),y=h==Ff||h==wS;if(hS(i))return eS(i,l);if(h==Uf||h==Wf||y&&!n){if(c=f||y?{}:cS(i),!l)return f?iS(i,tS(c,i)):nS(i,_1(c,i))}else{if(!We[h])return n?i:{};c=fS(i,h,l)}}s||(s=new J1);var T=s.get(i);if(T)return T;s.set(i,c),vS(i)?i.forEach(function(S){c.add(hs(S,e,t,S,i,s))}):dS(i)&&i.forEach(function(S,w){c.set(w,hs(S,e,t,w,i,s))});var O=u?f?oS:sS:f?mS:gS,C=v?void 0:O(i);return Q1(C||i,function(S,w){C&&(w=S,S=i[w]),q1(c,w,hs(S,e,t,w,i,s))}),c}var kS=hs,GS=kS,HS=1,VS=4;function KS(i){return GS(i,HS|VS)}var ZS=KS,ar=mn(ZS);const Yf="1.1.38-beta.2",JS="@netless/appliance-plugin";if(typeof window<"u"){let i=window.__netlessUA||"";i+=` ${JS}@${Yf}`,window.__netlessUA=i}const ur={syncOpt:{interval:300},bufferSize:{full:2e4,sub:600},bezier:{combineUnitTime:300},pencilEraser:{maxImageWidth:1920,maxImageHeight:1920,maxCombineTime:500}};function yn(i,e=!0){const t=i.length;if(t<2)return"";let r=i[0],n=i[1];if(t===2)return`M${ni(r)}L${ni(n)}`;let s="";for(let c=2,l=t-1;c<l;c++)r=i[c],n=i[c+1],s+=ii(r,n);return e?`M${ii(i[0],i[1])}Q${ni(i[1])}${ii(i[1],i[2])}T${s}${ii(i[t-1],i[0])}${ii(i[0],i[1])}Z`:`M${ni(i[0])}Q${ni(i[1])}${ii(i[1],i[2])}${i.length>3?"T":""}${s}L${ni(i[t-1])}`}const Ir=class Ir{constructor(e){dt(this,"maxImageWidth",ur.pencilEraser.maxImageWidth);dt(this,"maxImageHeight",ur.pencilEraser.maxImageHeight);dt(this,"syncUnitTime",ur.syncOpt.interval);dt(this,"vNodes");dt(this,"drawLayer");dt(this,"fullLayer");dt(this,"workId");dt(this,"isDelete",!1);const{vNodes:t,fullLayer:r,drawLayer:n,workId:s,toolsOpt:c}=e;this.vNodes=t,this.fullLayer=r,this.drawLayer=n,this.workId=s,this.syncUnitTime=c.syncUnitTime||this.syncUnitTime}get baseConsumeResult(){return{workId:this.workId,toolsType:this.toolsType,opt:this.workOptions}}filterSamePoints(e,t=.01){return e.reduce((r,n)=>{const s=r[r.length-1];return(n&&!s||n&&s&&!n.isNear(s,t))&&r.push(n),r},[])}setWorkId(e){this.workId=e}getWorkId(){return this.workId}getWorkOptions(){return this.workOptions}setWorkOptions(e){var n,s,c;this.workOptions=e,this.syncUnitTime=e.syncUnitTime||this.syncUnitTime;const t=(n=this.workId)==null?void 0:n.toString(),r=t&&((s=this.vNodes)==null?void 0:s.get(t))||void 0;t&&r&&(r.opt=e,(c=this.vNodes)==null||c.setInfo(t,r))}updataOptService(e){var n,s;let t;const r=(n=this.workId)==null?void 0:n.toString();if(r&&e){const c=this.fullLayer.getElementsByName(r)||this.drawLayer&&this.drawLayer.getElementsByName(r)||[];if(c.length!==1)return;const l=c[0],{pos:f,zIndex:u,scale:v,angle:h,translate:y}=e,T={};Qe(u)&&(T.zIndex=u),f&&(T.pos=[f[0],f[1]]),v&&(T.scale=v),h&&(T.rotate=h),y&&(T.translate=y),l.attr(T);const O=l==null?void 0:l.getBoundingClientRect();return O&&(t=Zt(t,{x:Math.floor(O.x-Ir.SafeBorderPadding),y:Math.floor(O.y-Ir.SafeBorderPadding),w:Math.floor(O.width+Ir.SafeBorderPadding*2),h:Math.floor(O.height+Ir.SafeBorderPadding*2)})),(s=this.vNodes)==null||s.setInfo(r,{rect:t,centerPos:f}),t}}drawEraserlines(e,t){const{group:r,eraserlines:n,pos:s,layer:c}=e,l=c.parent;if(t)try{const u=(c.renderer.glRenderer||c.renderer.canvasRenderer).options.displayRatio,v=r.getBoundingClientRect(),h=v.width*u*c.worldScaling[0],y=v.height*u*c.worldScaling[1];let T=1;(h>this.maxImageWidth||y>this.maxImageHeight)&&(T=Math.min(this.maxImageWidth/h,this.maxImageHeight/y));let O=c.getAttribute("scale");O=[O[0]*T,O[1]*T];const C=c.parent.parent,S=c.getAttribute("translate"),w=this.createVmRenderNode(`${this.workId}_bitMapLayer`,C,{offscreen:l.offscreen,width:l.width,height:l.height,contextType:"2d",autoRender:!1,bufferSize:500},O,S),d=r.cloneNode(!0);if(!n||!n.length)return;this.addEraserlines(d,n,s,!1),w.appendChild(d);const g=w.parent;g.render();const p=w.renderer.canvasRenderer,P=p.context;if(!P)return;const A=p.options.displayRatio,R=d.getBoundingClientRect(),D={x:R.x,y:R.y,w:R.width,h:R.height},U={x:0,y:0,w:C.width,h:C.height};if(Bi(D,U)===yr.outside){Cr(d,g),C.removeChild(g),this.isDelete=!0;return}const W=ar(D);W.x=Math.floor(Math.max(D.x,0)),W.y=Math.floor(Math.max(D.y,0)),W.w=Math.min(D.x+D.w,C.width)-W.x,W.h=Math.min(D.y+D.h,C.height)-W.y;const Y=this.getGroupRect(W,A),B=Y.x,N=Y.y,$=Y.w,J=Y.h;let et=P.getImageData(B,N,$,J);if(this.isTransparentRectByCanvas(et)){Cr(d,g),C.removeChild(g),this.isDelete=!0,et=null;return}Cr(r,l);const ut=this.createSpriteNode({imageData:et,safariRect:W,originRect:D,worldScaling:w.worldScaling});ut&&r.append(ut),Cr(d,g),C.removeChild(g),l.deleteTexture(et),et=null}catch(f){console.error("[BaseShapeTool] drawEraserlines error:",f);return}}createVmRenderNode(e,t,r,n,s){const{width:c,height:l}=r,f=`bitMap-${e}`,u=t.layer(f,r),v=new Je({anchor:[.5,.5],pos:[c*.5,l*.5],size:[c,l],name:"viewport",id:e});return v.setAttribute("scale",n),v.setAttribute("translate",s),u.append(v),v}getGroupRect(e,t){const r=Math.floor(e.x*t),n=Math.floor(e.y*t),s=Math.floor(e.w*t),c=Math.floor(e.h*t);return{x:r,y:n,w:s,h:c}}addEraserlines(e,t,r,n=!0){for(const s of t){const{thickness:c,op:l}=s;for(const f of l){const u=f.map((O,C)=>C%2?O-r[1]:O-r[0]),v=this.computEraserPoints(u,c),h=yn(v,!0),y={pos:[0,0],d:h,fillColor:"rgba(0,0,0,1)"},T=new gn(y);T.addEventListener("beforerender",({detail:O})=>{const C=O.context;n?C.blendFuncSeparate(C.ZERO,C.ZERO,C.ZERO,C.ZERO):C.globalCompositeOperation="destination-out"}),T.addEventListener("afterrender",({detail:O})=>{const C=O.context;n?C.blendFuncSeparate(C.SRC_ALPHA,C.ONE_MINUS_SRC_ALPHA,C.ONE,C.ONE_MINUS_SRC_ALPHA):C.globalCompositeOperation="source-over"}),e.append(T)}}}isTransparentRectByCanvas(e){let t=!0;for(let r=0;r<e.data.length;r+=4)if(e.data[r+3]!==0){t=!1;break}return t}createSpriteNode(e){const{imageData:t,worldScaling:r,safariRect:n,originRect:s}=e;let c;if(typeof OffscreenCanvas=="function"){c=new OffscreenCanvas(t.width,t.height);const v=c.getContext("2d");v&&v.putImageData(t,0,0)}else if(typeof document<"u"){c=document.createElement("canvas"),c.width=t.width,c.height=t.height;const v=c.getContext("2d");v&&v.putImageData(t,0,0)}if(!c)return console.warn("Failed to create imageEraserBitmap Sprite"),null;const l=[Math.floor(s.w/r[0]),Math.floor(s.h/r[1])],f=[Math.floor((n.x-s.x)/r[0]),Math.floor((n.y-s.y)/r[1]),Math.floor(n.w/r[0]),Math.floor(n.h/r[1])],u={name:"eraserTexture",anchor:[.5,.5],pos:[0,0],size:l,texture:c,textureRect:f};return new Fl(u)}computEraserPoints(e,t){const r=Math.ceil(t/2);return e.length===2?this.computDot(e,r):this.computLine(e,r)}computDot(e,t){const r=new Jt(e[0],e[1]);return Jt.GetDotStroke(r,t,8)}computLine(e,t){const r=[],n=[];let s,c;for(let l=0;l<e.length;l+=2){const f=new Jt(e[l],e[l+1]);let u;if(l==e.length-2){const v=new Jt(e[l-2],e[l-1]);u=pt.Sub(f,v).uni(),s=f}else{l===0&&(c=f);const v=new Jt(e[l+2],e[l+3]);u=pt.Sub(v,f).uni()}if(u){const v=pt.Per(u).mul(t);r.push(Jt.Sub(f,v)),n.push(Jt.Add(f,v))}}if(s&&c){const l=Jt.GetSemicircleStroke(s,r[r.length-1],-1,8),f=Jt.GetSemicircleStroke(c,n[0],-1,8);return r.concat(l,n.reverse(),f)}return[]}replace(e,t,r){var s;if(!t){r&&e.append(r);return}const n=e.getElementsByName(t);if(n.length)for(const c of n)r?pT(r,c,e):(c.remove(),dr(c,e.parent));else r&&e.append(r);this.fullLayer!==this.drawLayer&&(this.fullLayer===e?(s=this.drawLayer)==null||s.getElementsByName(t).forEach(l=>{var f;l.remove(),dr(l,(f=this.drawLayer)==null?void 0:f.parent)}):this.fullLayer.getElementsByName(t).forEach(l=>{l.remove(),dr(l,this.fullLayer.parent)}))}removeDrawCountNodes(e,t){const r=[];e.getElementsByName(this.workId).forEach(n=>{n.id&&t&&Number(n.id)<t&&r.push(n)});for(const n of r)n.remove(),dr(n,e.parent)}static updateNodeOpt(e){var d;const{node:t,opt:r,vNodes:n,willSerializeData:s,targetNode:c}=e,{zIndex:l,translate:f,angle:u,originPoint:v,scenePoint:h,scale:y,pointMap:T,thickness:O}=r;let C;const S=c&&ar(c)||n.get(t.name);if(!S)return;Qe(l)&&(t.setAttribute("zIndex",l),S.opt.zIndex=l);const w=t.parent;if(w){if(v&&y&&c){const g=[S.op[0],S.op[1]];S.toolsType,xt.Pencil,As(S.op,h,y,f);const p=[S.op[0],S.op[1]];S.toolsType,xt.Pencil;const P=[p[0]-g[0],p[1]-g[1]];if(S.centerPos=[S.centerPos[0]+P[0],S.centerPos[1]+P[1]],S.opt.translate=void 0,S.opt.scale=void 0,S.opt.eraserlines)for(let A=0;A<S.opt.eraserlines.length;A++){const{op:R,thickness:D}=S.opt.eraserlines[A];S.opt.eraserlines[A].thickness=Math.round(D*Math.max(y[0],y[1]));for(let U=0;U<R.length;U++)na(R[U],h,y,f)}}else if(f)if(t.setAttribute("translate",f),S.opt.translate=f,c){const g=[f[0]*w.worldScaling[0],f[1]*w.worldScaling[1]];C=Ni(S.rect,g),S.rect=C}else{const g=Ir.getRectFromLayer(w,t.name);S.rect=g||S.rect}else if(Qe(u))if(t.setAttribute("rotate",u),S.opt.rotate=u,c)C=ra(S.rect,u),S.rect=C;else{const g=Ir.getRectFromLayer(w,t.name);S.rect=g||S.rect}if(T){const g=T.get(t.name);if(g)for(let p=0,P=0;p<S.op.length;p+=3,P++)S.op[p]=g[P][0],S.op[p+1]=g[P][1]}if(O&&((d=S==null?void 0:S.opt)!=null&&d.thickness)&&(S.opt.thickness=O),s&&!(v&&y&&c)){if(f){const g=S.op.map((p,P)=>{const A=P%3;return A===0?p+f[0]:A===1?p+f[1]:p});if(S.op=g,S.centerPos=[S.centerPos[0]+f[0],S.centerPos[1]+f[1]],S!=null&&S.opt&&(S.opt.translate=void 0),S.opt.eraserlines)for(let p=0;p<S.opt.eraserlines.length;p++){const{op:P}=S.opt.eraserlines[p];for(let A=0;A<P.length;A++){const R=P[A].map((D,U)=>U%2?D+f[1]:D+f[0]);S.opt.eraserlines[p].op[A]=R}}}else if(Qe(u)){const g=S.op;if(oT(g,S.centerPos,u),S.op=g,S!=null&&S.opt&&(S.opt.rotate=void 0),S.opt.eraserlines)for(let p=0;p<S.opt.eraserlines.length;p++){const{op:P}=S.opt.eraserlines[p];for(let A=0;A<P.length;A++)aT(P[A],S.centerPos,u)}}}S&&n.setInfo(t.name,S)}}static getCenterPos(e,t){const{worldPosition:r,worldScaling:n}=t;return[(e.x+e.w/2-r[0])/n[0],(e.y+e.h/2-r[1])/n[1]]}static getRectFromLayer(e,t){const r=e.getElementsByName(t)[0];if(r){const n=r.getBoundingClientRect();return{x:Math.floor(n.x-Ir.SafeBorderPadding),y:Math.floor(n.y-Ir.SafeBorderPadding),w:Math.floor(n.width+Ir.SafeBorderPadding*2),h:Math.floor(n.height+Ir.SafeBorderPadding*2)}}}static isWillRefresh(e){const{toolsType:t,opt:r,node:n,updateOpt:s,willSerializeData:c}=e;return!!(c&&(s.angle||s.translate)||s.thickness&&r.thickness&&r.thickness!==s.thickness||s.strokeType&&r.strokeType&&r.strokeType!==s.strokeType||s.originPoint&&s.scenePoint&&s.scale||s.pointMap&&s.pointMap.has(n.name)||t===xt.Text&&(s.fontSize||s.translate||s.textInfos&&s.textInfos.get(n.name))||t===xt.BackgroundSVG&&(s.translate||s.scale)||t===xt.Image&&(s.angle||s.translate||s.scale||s.strokeColor&&r.type===es.Iconify)||t===s.toolsType&&s.willRefresh||r.eraserlines&&r.eraserlines.length&&(s.strokeColor||s.fillColor))}};dt(Ir,"SafeBorderPadding",10);let Xt=Ir;const ko=Object.freeze([Object.freeze({width:18,height:26}),Object.freeze({width:26,height:34}),Object.freeze({width:34,height:50}),Object.freeze({width:48,height:74})]);var Xf={exports:{}};(function(i){var e=function(){var t=String.fromCharCode,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",s={};function c(f,u){if(!s[f]){s[f]={};for(var v=0;v<f.length;v++)s[f][f.charAt(v)]=v}return s[f][u]}var l={compressToBase64:function(f){if(f==null)return"";var u=l._compress(f,6,function(v){return r.charAt(v)});switch(u.length%4){default:case 0:return u;case 1:return u+"===";case 2:return u+"==";case 3:return u+"="}},decompressFromBase64:function(f){return f==null?"":f==""?null:l._decompress(f.length,32,function(u){return c(r,f.charAt(u))})},compressToUTF16:function(f){return f==null?"":l._compress(f,15,function(u){return t(u+32)})+" "},decompressFromUTF16:function(f){return f==null?"":f==""?null:l._decompress(f.length,16384,function(u){return f.charCodeAt(u)-32})},compressToUint8Array:function(f){for(var u=l.compress(f),v=new Uint8Array(u.length*2),h=0,y=u.length;h<y;h++){var T=u.charCodeAt(h);v[h*2]=T>>>8,v[h*2+1]=T%256}return v},decompressFromUint8Array:function(f){if(f==null)return l.decompress(f);for(var u=new Array(f.length/2),v=0,h=u.length;v<h;v++)u[v]=f[v*2]*256+f[v*2+1];var y=[];return u.forEach(function(T){y.push(t(T))}),l.decompress(y.join(""))},compressToEncodedURIComponent:function(f){return f==null?"":l._compress(f,6,function(u){return n.charAt(u)})},decompressFromEncodedURIComponent:function(f){return f==null?"":f==""?null:(f=f.replace(/ /g,"+"),l._decompress(f.length,32,function(u){return c(n,f.charAt(u))}))},compress:function(f){return l._compress(f,16,function(u){return t(u)})},_compress:function(f,u,v){if(f==null)return"";var h,y,T={},O={},C="",S="",w="",d=2,g=3,p=2,P=[],A=0,R=0,D;for(D=0;D<f.length;D+=1)if(C=f.charAt(D),Object.prototype.hasOwnProperty.call(T,C)||(T[C]=g++,O[C]=!0),S=w+C,Object.prototype.hasOwnProperty.call(T,S))w=S;else{if(Object.prototype.hasOwnProperty.call(O,w)){if(w.charCodeAt(0)<256){for(h=0;h<p;h++)A=A<<1,R==u-1?(R=0,P.push(v(A)),A=0):R++;for(y=w.charCodeAt(0),h=0;h<8;h++)A=A<<1|y&1,R==u-1?(R=0,P.push(v(A)),A=0):R++,y=y>>1}else{for(y=1,h=0;h<p;h++)A=A<<1|y,R==u-1?(R=0,P.push(v(A)),A=0):R++,y=0;for(y=w.charCodeAt(0),h=0;h<16;h++)A=A<<1|y&1,R==u-1?(R=0,P.push(v(A)),A=0):R++,y=y>>1}d--,d==0&&(d=Math.pow(2,p),p++),delete O[w]}else for(y=T[w],h=0;h<p;h++)A=A<<1|y&1,R==u-1?(R=0,P.push(v(A)),A=0):R++,y=y>>1;d--,d==0&&(d=Math.pow(2,p),p++),T[S]=g++,w=String(C)}if(w!==""){if(Object.prototype.hasOwnProperty.call(O,w)){if(w.charCodeAt(0)<256){for(h=0;h<p;h++)A=A<<1,R==u-1?(R=0,P.push(v(A)),A=0):R++;for(y=w.charCodeAt(0),h=0;h<8;h++)A=A<<1|y&1,R==u-1?(R=0,P.push(v(A)),A=0):R++,y=y>>1}else{for(y=1,h=0;h<p;h++)A=A<<1|y,R==u-1?(R=0,P.push(v(A)),A=0):R++,y=0;for(y=w.charCodeAt(0),h=0;h<16;h++)A=A<<1|y&1,R==u-1?(R=0,P.push(v(A)),A=0):R++,y=y>>1}d--,d==0&&(d=Math.pow(2,p),p++),delete O[w]}else for(y=T[w],h=0;h<p;h++)A=A<<1|y&1,R==u-1?(R=0,P.push(v(A)),A=0):R++,y=y>>1;d--,d==0&&(d=Math.pow(2,p),p++)}for(y=2,h=0;h<p;h++)A=A<<1|y&1,R==u-1?(R=0,P.push(v(A)),A=0):R++,y=y>>1;for(;;)if(A=A<<1,R==u-1){P.push(v(A));break}else R++;return P.join("")},decompress:function(f){return f==null?"":f==""?null:l._decompress(f.length,32768,function(u){return f.charCodeAt(u)})},_decompress:function(f,u,v){var h=[],y=4,T=4,O=3,C="",S=[],w,d,g,p,P,A,R,D={val:v(0),position:u,index:1};for(w=0;w<3;w+=1)h[w]=w;for(g=0,P=Math.pow(2,2),A=1;A!=P;)p=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=v(D.index++)),g|=(p>0?1:0)*A,A<<=1;switch(g){case 0:for(g=0,P=Math.pow(2,8),A=1;A!=P;)p=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=v(D.index++)),g|=(p>0?1:0)*A,A<<=1;R=t(g);break;case 1:for(g=0,P=Math.pow(2,16),A=1;A!=P;)p=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=v(D.index++)),g|=(p>0?1:0)*A,A<<=1;R=t(g);break;case 2:return""}for(h[3]=R,d=R,S.push(R);;){if(D.index>f)return"";for(g=0,P=Math.pow(2,O),A=1;A!=P;)p=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=v(D.index++)),g|=(p>0?1:0)*A,A<<=1;switch(R=g){case 0:for(g=0,P=Math.pow(2,8),A=1;A!=P;)p=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=v(D.index++)),g|=(p>0?1:0)*A,A<<=1;h[T++]=t(g),R=T-1,y--;break;case 1:for(g=0,P=Math.pow(2,16),A=1;A!=P;)p=D.val&D.position,D.position>>=1,D.position==0&&(D.position=u,D.val=v(D.index++)),g|=(p>0?1:0)*A,A<<=1;h[T++]=t(g),R=T-1,y--;break;case 2:return S.join("")}if(y==0&&(y=Math.pow(2,O),O++),h[R])C=h[R];else if(R===T)C=d+d.charAt(0);else return null;S.push(C),h[T++]=d+C.charAt(0),y--,d=C,y==0&&(y=Math.pow(2,O),O++)}}};return l}();i!=null?i.exports=e:typeof angular<"u"&&angular!=null&&angular.module("LZString",[]).factory("LZString",function(){return e})})(Xf);var zf=Xf.exports;function ti(i){return JSON.parse(zf.decompress(i))}function hr(i){return zf.compress(JSON.stringify(i))}var $f={exports:{}};(function(i){(function(){var e={};e.version="6.4.2.2",e.use_lines=!0,e.use_xyz=!1;var t=!1;i.exports?(i.exports=e,t=!0):typeof document<"u"?window.ClipperLib=e:self.ClipperLib=e;var r;if(t){var n="chrome";r="Netscape"}else{var n=navigator.userAgent.toString().toLowerCase();r=navigator.appName}var s={};n.indexOf("chrome")!=-1&&n.indexOf("chromium")==-1?s.chrome=1:s.chrome=0,n.indexOf("chromium")!=-1?s.chromium=1:s.chromium=0,n.indexOf("safari")!=-1&&n.indexOf("chrome")==-1&&n.indexOf("chromium")==-1?s.safari=1:s.safari=0,n.indexOf("firefox")!=-1?s.firefox=1:s.firefox=0,n.indexOf("firefox/17")!=-1?s.firefox17=1:s.firefox17=0,n.indexOf("firefox/15")!=-1?s.firefox15=1:s.firefox15=0,n.indexOf("firefox/3")!=-1?s.firefox3=1:s.firefox3=0,n.indexOf("opera")!=-1?s.opera=1:s.opera=0,n.indexOf("msie 10")!=-1?s.msie10=1:s.msie10=0,n.indexOf("msie 9")!=-1?s.msie9=1:s.msie9=0,n.indexOf("msie 8")!=-1?s.msie8=1:s.msie8=0,n.indexOf("msie 7")!=-1?s.msie7=1:s.msie7=0,n.indexOf("msie ")!=-1?s.msie=1:s.msie=0,e.biginteger_used=null;var c;function l(a,x,E){e.biginteger_used=1,a!=null&&(typeof a=="number"&&typeof x>"u"?this.fromInt(a):typeof a=="number"?this.fromNumber(a,x,E):x==null&&typeof a!="string"?this.fromString(a,256):this.fromString(a,x))}function f(){return new l(null,void 0,void 0)}function u(a,x,E,F,k,_){for(;--_>=0;){var it=x*this[a++]+E[F]+k;k=Math.floor(it/67108864),E[F++]=it&67108863}return k}function v(a,x,E,F,k,_){for(var it=x&32767,St=x>>15;--_>=0;){var Tt=this[a]&32767,Dt=this[a++]>>15,Ht=St*Tt+Dt*it;Tt=it*Tt+((Ht&32767)<<15)+E[F]+(k&1073741823),k=(Tt>>>30)+(Ht>>>15)+St*Dt+(k>>>30),E[F++]=Tt&1073741823}return k}function h(a,x,E,F,k,_){for(var it=x&16383,St=x>>14;--_>=0;){var Tt=this[a]&16383,Dt=this[a++]>>14,Ht=St*Tt+Dt*it;Tt=it*Tt+((Ht&16383)<<14)+E[F]+k,k=(Tt>>28)+(Ht>>14)+St*Dt,E[F++]=Tt&268435455}return k}r=="Microsoft Internet Explorer"?(l.prototype.am=v,c=30):r!="Netscape"?(l.prototype.am=u,c=26):(l.prototype.am=h,c=28),l.prototype.DB=c,l.prototype.DM=(1<<c)-1,l.prototype.DV=1<<c;var y=52;l.prototype.FV=Math.pow(2,y),l.prototype.F1=y-c,l.prototype.F2=2*c-y;var T="0123456789abcdefghijklmnopqrstuvwxyz",O=new Array,C,S;for(C=48,S=0;S<=9;++S)O[C++]=S;for(C=97,S=10;S<36;++S)O[C++]=S;for(C=65,S=10;S<36;++S)O[C++]=S;function w(a){return T.charAt(a)}function d(a,x){var E=O[a.charCodeAt(x)];return E??-1}function g(a){for(var x=this.t-1;x>=0;--x)a[x]=this[x];a.t=this.t,a.s=this.s}function p(a){this.t=1,this.s=a<0?-1:0,a>0?this[0]=a:a<-1?this[0]=a+this.DV:this.t=0}function P(a){var x=f();return x.fromInt(a),x}function A(a,x){var E;if(x==16)E=4;else if(x==8)E=3;else if(x==256)E=8;else if(x==2)E=1;else if(x==32)E=5;else if(x==4)E=2;else{this.fromRadix(a,x);return}this.t=0,this.s=0;for(var F=a.length,k=!1,_=0;--F>=0;){var it=E==8?a[F]&255:d(a,F);if(it<0){a.charAt(F)=="-"&&(k=!0);continue}k=!1,_==0?this[this.t++]=it:_+E>this.DB?(this[this.t-1]|=(it&(1<<this.DB-_)-1)<<_,this[this.t++]=it>>this.DB-_):this[this.t-1]|=it<<_,_+=E,_>=this.DB&&(_-=this.DB)}E==8&&a[0]&128&&(this.s=-1,_>0&&(this[this.t-1]|=(1<<this.DB-_)-1<<_)),this.clamp(),k&&l.ZERO.subTo(this,this)}function R(){for(var a=this.s&this.DM;this.t>0&&this[this.t-1]==a;)--this.t}function D(a){if(this.s<0)return"-"+this.negate().toString(a);var x;if(a==16)x=4;else if(a==8)x=3;else if(a==2)x=1;else if(a==32)x=5;else if(a==4)x=2;else return this.toRadix(a);var E=(1<<x)-1,F,k=!1,_="",it=this.t,St=this.DB-it*this.DB%x;if(it-- >0)for(St<this.DB&&(F=this[it]>>St)>0&&(k=!0,_=w(F));it>=0;)St<x?(F=(this[it]&(1<<St)-1)<<x-St,F|=this[--it]>>(St+=this.DB-x)):(F=this[it]>>(St-=x)&E,St<=0&&(St+=this.DB,--it)),F>0&&(k=!0),k&&(_+=w(F));return k?_:"0"}function U(){var a=f();return l.ZERO.subTo(this,a),a}function L(){return this.s<0?this.negate():this}function W(a){var x=this.s-a.s;if(x!=0)return x;var E=this.t;if(x=E-a.t,x!=0)return this.s<0?-x:x;for(;--E>=0;)if((x=this[E]-a[E])!=0)return x;return 0}function Y(a){var x=1,E;return(E=a>>>16)!=0&&(a=E,x+=16),(E=a>>8)!=0&&(a=E,x+=8),(E=a>>4)!=0&&(a=E,x+=4),(E=a>>2)!=0&&(a=E,x+=2),(E=a>>1)!=0&&(a=E,x+=1),x}function B(){return this.t<=0?0:this.DB*(this.t-1)+Y(this[this.t-1]^this.s&this.DM)}function N(a,x){var E;for(E=this.t-1;E>=0;--E)x[E+a]=this[E];for(E=a-1;E>=0;--E)x[E]=0;x.t=this.t+a,x.s=this.s}function $(a,x){for(var E=a;E<this.t;++E)x[E-a]=this[E];x.t=Math.max(this.t-a,0),x.s=this.s}function J(a,x){var E=a%this.DB,F=this.DB-E,k=(1<<F)-1,_=Math.floor(a/this.DB),it=this.s<<E&this.DM,St;for(St=this.t-1;St>=0;--St)x[St+_+1]=this[St]>>F|it,it=(this[St]&k)<<E;for(St=_-1;St>=0;--St)x[St]=0;x[_]=it,x.t=this.t+_+1,x.s=this.s,x.clamp()}function et(a,x){x.s=this.s;var E=Math.floor(a/this.DB);if(E>=this.t){x.t=0;return}var F=a%this.DB,k=this.DB-F,_=(1<<F)-1;x[0]=this[E]>>F;for(var it=E+1;it<this.t;++it)x[it-E-1]|=(this[it]&_)<<k,x[it-E]=this[it]>>F;F>0&&(x[this.t-E-1]|=(this.s&_)<<k),x.t=this.t-E,x.clamp()}function ot(a,x){for(var E=0,F=0,k=Math.min(a.t,this.t);E<k;)F+=this[E]-a[E],x[E++]=F&this.DM,F>>=this.DB;if(a.t<this.t){for(F-=a.s;E<this.t;)F+=this[E],x[E++]=F&this.DM,F>>=this.DB;F+=this.s}else{for(F+=this.s;E<a.t;)F-=a[E],x[E++]=F&this.DM,F>>=this.DB;F-=a.s}x.s=F<0?-1:0,F<-1?x[E++]=this.DV+F:F>0&&(x[E++]=F),x.t=E,x.clamp()}function ut(a,x){var E=this.abs(),F=a.abs(),k=E.t;for(x.t=k+F.t;--k>=0;)x[k]=0;for(k=0;k<F.t;++k)x[k+E.t]=E.am(0,F[k],x,k,0,E.t);x.s=0,x.clamp(),this.s!=a.s&&l.ZERO.subTo(x,x)}function K(a){for(var x=this.abs(),E=a.t=2*x.t;--E>=0;)a[E]=0;for(E=0;E<x.t-1;++E){var F=x.am(E,x[E],a,2*E,0,1);(a[E+x.t]+=x.am(E+1,2*x[E],a,2*E+1,F,x.t-E-1))>=x.DV&&(a[E+x.t]-=x.DV,a[E+x.t+1]=1)}a.t>0&&(a[a.t-1]+=x.am(E,x[E],a,2*E,0,1)),a.s=0,a.clamp()}function Q(a,x,E){var F=a.abs();if(!(F.t<=0)){var k=this.abs();if(k.t<F.t){x!=null&&x.fromInt(0),E!=null&&this.copyTo(E);return}E==null&&(E=f());var _=f(),it=this.s,St=a.s,Tt=this.DB-Y(F[F.t-1]);Tt>0?(F.lShiftTo(Tt,_),k.lShiftTo(Tt,E)):(F.copyTo(_),k.copyTo(E));var Dt=_.t,Ht=_[Dt-1];if(Ht!=0){var jt=Ht*(1<<this.F1)+(Dt>1?_[Dt-2]>>this.F2:0),_t=this.FV/jt,oe=(1<<this.F1)/jt,me=1<<this.F2,Se=E.t,be=Se-Dt,lr=x??f();for(_.dlShiftTo(be,lr),E.compareTo(lr)>=0&&(E[E.t++]=1,E.subTo(lr,E)),l.ONE.dlShiftTo(Dt,lr),lr.subTo(_,_);_.t<Dt;)_[_.t++]=0;for(;--be>=0;){var Dr=E[--Se]==Ht?this.DM:Math.floor(E[Se]*_t+(E[Se-1]+me)*oe);if((E[Se]+=_.am(0,Dr,E,be,0,Dt))<Dr)for(_.dlShiftTo(be,lr),E.subTo(lr,E);E[Se]<--Dr;)E.subTo(lr,E)}x!=null&&(E.drShiftTo(Dt,x),it!=St&&l.ZERO.subTo(x,x)),E.t=Dt,E.clamp(),Tt>0&&E.rShiftTo(Tt,E),it<0&&l.ZERO.subTo(E,E)}}}function ft(a){var x=f();return this.abs().divRemTo(a,null,x),this.s<0&&x.compareTo(l.ZERO)>0&&a.subTo(x,x),x}function mt(a){this.m=a}function yt(a){return a.s<0||a.compareTo(this.m)>=0?a.mod(this.m):a}function Et(a){return a}function ht(a){a.divRemTo(this.m,null,a)}function Nt(a,x,E){a.multiplyTo(x,E),this.reduce(E)}function Bt(a,x){a.squareTo(x),this.reduce(x)}mt.prototype.convert=yt,mt.prototype.revert=Et,mt.prototype.reduce=ht,mt.prototype.mulTo=Nt,mt.prototype.sqrTo=Bt;function G(){if(this.t<1)return 0;var a=this[0];if(!(a&1))return 0;var x=a&3;return x=x*(2-(a&15)*x)&15,x=x*(2-(a&255)*x)&255,x=x*(2-((a&65535)*x&65535))&65535,x=x*(2-a*x%this.DV)%this.DV,x>0?this.DV-x:-x}function H(a){this.m=a,this.mp=a.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<a.DB-15)-1,this.mt2=2*a.t}function rt(a){var x=f();return a.abs().dlShiftTo(this.m.t,x),x.divRemTo(this.m,null,x),a.s<0&&x.compareTo(l.ZERO)>0&&this.m.subTo(x,x),x}function at(a){var x=f();return a.copyTo(x),this.reduce(x),x}function z(a){for(;a.t<=this.mt2;)a[a.t++]=0;for(var x=0;x<this.m.t;++x){var E=a[x]&32767,F=E*this.mpl+((E*this.mph+(a[x]>>15)*this.mpl&this.um)<<15)&a.DM;for(E=x+this.m.t,a[E]+=this.m.am(0,F,a,x,0,this.m.t);a[E]>=a.DV;)a[E]-=a.DV,a[++E]++}a.clamp(),a.drShiftTo(this.m.t,a),a.compareTo(this.m)>=0&&a.subTo(this.m,a)}function j(a,x){a.squareTo(x),this.reduce(x)}function I(a,x,E){a.multiplyTo(x,E),this.reduce(E)}H.prototype.convert=rt,H.prototype.revert=at,H.prototype.reduce=z,H.prototype.mulTo=I,H.prototype.sqrTo=j;function M(){return(this.t>0?this[0]&1:this.s)==0}function X(a,x){if(a>4294967295||a<1)return l.ONE;var E=f(),F=f(),k=x.convert(this),_=Y(a)-1;for(k.copyTo(E);--_>=0;)if(x.sqrTo(E,F),(a&1<<_)>0)x.mulTo(F,k,E);else{var it=E;E=F,F=it}return x.revert(E)}function Z(a,x){var E;return a<256||x.isEven()?E=new mt(x):E=new H(x),this.exp(a,E)}l.prototype.copyTo=g,l.prototype.fromInt=p,l.prototype.fromString=A,l.prototype.clamp=R,l.prototype.dlShiftTo=N,l.prototype.drShiftTo=$,l.prototype.lShiftTo=J,l.prototype.rShiftTo=et,l.prototype.subTo=ot,l.prototype.multiplyTo=ut,l.prototype.squareTo=K,l.prototype.divRemTo=Q,l.prototype.invDigit=G,l.prototype.isEven=M,l.prototype.exp=X,l.prototype.toString=D,l.prototype.negate=U,l.prototype.abs=L,l.prototype.compareTo=W,l.prototype.bitLength=B,l.prototype.mod=ft,l.prototype.modPowInt=Z,l.ZERO=P(0),l.ONE=P(1);function q(){var a=f();return this.copyTo(a),a}function nt(){if(this.s<0){if(this.t==1)return this[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this[0];if(this.t==0)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]}function ct(){return this.t==0?this.s:this[0]<<24>>24}function Pt(){return this.t==0?this.s:this[0]<<16>>16}function Ct(a){return Math.floor(Math.LN2*this.DB/Math.log(a))}function At(){return this.s<0?-1:this.t<=0||this.t==1&&this[0]<=0?0:1}function bt(a){if(a==null&&(a=10),this.signum()==0||a<2||a>36)return"0";var x=this.chunkSize(a),E=Math.pow(a,x),F=P(E),k=f(),_=f(),it="";for(this.divRemTo(F,k,_);k.signum()>0;)it=(E+_.intValue()).toString(a).substr(1)+it,k.divRemTo(F,k,_);return _.intValue().toString(a)+it}function wt(a,x){this.fromInt(0),x==null&&(x=10);for(var E=this.chunkSize(x),F=Math.pow(x,E),k=!1,_=0,it=0,St=0;St<a.length;++St){var Tt=d(a,St);if(Tt<0){a.charAt(St)=="-"&&this.signum()==0&&(k=!0);continue}it=x*it+Tt,++_>=E&&(this.dMultiply(F),this.dAddOffset(it,0),_=0,it=0)}_>0&&(this.dMultiply(Math.pow(x,_)),this.dAddOffset(it,0)),k&&l.ZERO.subTo(this,this)}function Ot(a,x,E){if(typeof x=="number")if(a<2)this.fromInt(1);else for(this.fromNumber(a,E),this.testBit(a-1)||this.bitwiseTo(l.ONE.shiftLeft(a-1),ne,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(x);)this.dAddOffset(2,0),this.bitLength()>a&&this.subTo(l.ONE.shiftLeft(a-1),this);else{var F=new Array,k=a&7;F.length=(a>>3)+1,x.nextBytes(F),k>0?F[0]&=(1<<k)-1:F[0]=0,this.fromString(F,256)}}function Lt(){var a=this.t,x=new Array;x[0]=this.s;var E=this.DB-a*this.DB%8,F,k=0;if(a-- >0)for(E<this.DB&&(F=this[a]>>E)!=(this.s&this.DM)>>E&&(x[k++]=F|this.s<<this.DB-E);a>=0;)E<8?(F=(this[a]&(1<<E)-1)<<8-E,F|=this[--a]>>(E+=this.DB-8)):(F=this[a]>>(E-=8)&255,E<=0&&(E+=this.DB,--a)),F&128&&(F|=-256),k==0&&(this.s&128)!=(F&128)&&++k,(k>0||F!=this.s)&&(x[k++]=F);return x}function Yt(a){return this.compareTo(a)==0}function $t(a){return this.compareTo(a)<0?this:a}function Wt(a){return this.compareTo(a)>0?this:a}function Qt(a,x,E){var F,k,_=Math.min(a.t,this.t);for(F=0;F<_;++F)E[F]=x(this[F],a[F]);if(a.t<this.t){for(k=a.s&this.DM,F=_;F<this.t;++F)E[F]=x(this[F],k);E.t=this.t}else{for(k=this.s&this.DM,F=_;F<a.t;++F)E[F]=x(k,a[F]);E.t=a.t}E.s=x(this.s,a.s),E.clamp()}function ue(a,x){return a&x}function ie(a){var x=f();return this.bitwiseTo(a,ue,x),x}function ne(a,x){return a|x}function ae(a){var x=f();return this.bitwiseTo(a,ne,x),x}function se(a,x){return a^x}function Fe(a){var x=f();return this.bitwiseTo(a,se,x),x}function Ue(a,x){return a&~x}function ze(a){var x=f();return this.bitwiseTo(a,Ue,x),x}function $e(){for(var a=f(),x=0;x<this.t;++x)a[x]=this.DM&~this[x];return a.t=this.t,a.s=~this.s,a}function Ge(a){var x=f();return a<0?this.rShiftTo(-a,x):this.lShiftTo(a,x),x}function He(a){var x=f();return a<0?this.lShiftTo(-a,x):this.rShiftTo(a,x),x}function qe(a){if(a==0)return-1;var x=0;return a&65535||(a>>=16,x+=16),a&255||(a>>=8,x+=8),a&15||(a>>=4,x+=4),a&3||(a>>=2,x+=2),a&1||++x,x}function Oe(){for(var a=0;a<this.t;++a)if(this[a]!=0)return a*this.DB+qe(this[a]);return this.s<0?this.t*this.DB:-1}function pr(a){for(var x=0;a!=0;)a&=a-1,++x;return x}function an(){for(var a=0,x=this.s&this.DM,E=0;E<this.t;++E)a+=pr(this[E]^x);return a}function qr(a){var x=Math.floor(a/this.DB);return x>=this.t?this.s!=0:(this[x]&1<<a%this.DB)!=0}function li(a,x){var E=l.ONE.shiftLeft(a);return this.bitwiseTo(E,x,E),E}function fi(a){return this.changeBit(a,ne)}function oa(a){return this.changeBit(a,Ue)}function Wi(a){return this.changeBit(a,se)}function aa(a,x){for(var E=0,F=0,k=Math.min(a.t,this.t);E<k;)F+=this[E]+a[E],x[E++]=F&this.DM,F>>=this.DB;if(a.t<this.t){for(F+=a.s;E<this.t;)F+=this[E],x[E++]=F&this.DM,F>>=this.DB;F+=this.s}else{for(F+=this.s;E<a.t;)F+=a[E],x[E++]=F&this.DM,F>>=this.DB;F+=a.s}x.s=F<0?-1:0,F>0?x[E++]=F:F<-1&&(x[E++]=this.DV+F),x.t=E,x.clamp()}function Fi(a){var x=f();return this.addTo(a,x),x}function la(a){var x=f();return this.subTo(a,x),x}function fa(a){var x=f();return this.multiplyTo(a,x),x}function ca(){var a=f();return this.squareTo(a),a}function ua(a){var x=f();return this.divRemTo(a,x,null),x}function ha(a){var x=f();return this.divRemTo(a,null,x),x}function bs(a){var x=f(),E=f();return this.divRemTo(a,x,E),new Array(x,E)}function da(a){this[this.t]=this.am(0,a-1,this,0,0,this.t),++this.t,this.clamp()}function pa(a,x){if(a!=0){for(;this.t<=x;)this[this.t++]=0;for(this[x]+=a;this[x]>=this.DV;)this[x]-=this.DV,++x>=this.t&&(this[this.t++]=0),++this[x]}}function xn(){}function Ds(a){return a}function va(a,x,E){a.multiplyTo(x,E)}function ga(a,x){a.squareTo(x)}xn.prototype.convert=Ds,xn.prototype.revert=Ds,xn.prototype.mulTo=va,xn.prototype.sqrTo=ga;function ma(a){return this.exp(a,new xn)}function ya(a,x,E){var F=Math.min(this.t+a.t,x);for(E.s=0,E.t=F;F>0;)E[--F]=0;var k;for(k=E.t-this.t;F<k;++F)E[F+this.t]=this.am(0,a[F],E,F,0,this.t);for(k=Math.min(a.t,x);F<k;++F)this.am(0,a[F],E,F,0,x-F);E.clamp()}function Sa(a,x,E){--x;var F=E.t=this.t+a.t-x;for(E.s=0;--F>=0;)E[F]=0;for(F=Math.max(x-this.t,0);F<a.t;++F)E[this.t+F-x]=this.am(x-F,a[F],E,0,0,this.t+F-x);E.clamp(),E.drShiftTo(1,E)}function $r(a){this.r2=f(),this.q3=f(),l.ONE.dlShiftTo(2*a.t,this.r2),this.mu=this.r2.divide(a),this.m=a}function Pa(a){if(a.s<0||a.t>2*this.m.t)return a.mod(this.m);if(a.compareTo(this.m)<0)return a;var x=f();return a.copyTo(x),this.reduce(x),x}function ci(a){return a}function xa(a){for(a.drShiftTo(this.m.t-1,this.r2),a.t>this.m.t+1&&(a.t=this.m.t+1,a.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);a.compareTo(this.r2)<0;)a.dAddOffset(1,this.m.t+1);for(a.subTo(this.r2,a);a.compareTo(this.m)>=0;)a.subTo(this.m,a)}function Ta(a,x){a.squareTo(x),this.reduce(x)}function Ca(a,x,E){a.multiplyTo(x,E),this.reduce(E)}$r.prototype.convert=Pa,$r.prototype.revert=ci,$r.prototype.reduce=xa,$r.prototype.mulTo=Ca,$r.prototype.sqrTo=Ta;function Ns(a,x){var E=a.bitLength(),F,k=P(1),_;if(E<=0)return k;E<18?F=1:E<48?F=3:E<144?F=4:E<768?F=5:F=6,E<8?_=new mt(x):x.isEven()?_=new $r(x):_=new H(x);var it=new Array,St=3,Tt=F-1,Dt=(1<<F)-1;if(it[1]=_.convert(this),F>1){var Ht=f();for(_.sqrTo(it[1],Ht);St<=Dt;)it[St]=f(),_.mulTo(Ht,it[St-2],it[St]),St+=2}var jt=a.t-1,_t,oe=!0,me=f(),Se;for(E=Y(a[jt])-1;jt>=0;){for(E>=Tt?_t=a[jt]>>E-Tt&Dt:(_t=(a[jt]&(1<<E+1)-1)<<Tt-E,jt>0&&(_t|=a[jt-1]>>this.DB+E-Tt)),St=F;!(_t&1);)_t>>=1,--St;if((E-=St)<0&&(E+=this.DB,--jt),oe)it[_t].copyTo(k),oe=!1;else{for(;St>1;)_.sqrTo(k,me),_.sqrTo(me,k),St-=2;St>0?_.sqrTo(k,me):(Se=k,k=me,me=Se),_.mulTo(me,it[_t],k)}for(;jt>=0&&!(a[jt]&1<<E);)_.sqrTo(k,me),Se=k,k=me,me=Se,--E<0&&(E=this.DB-1,--jt)}return _.revert(k)}function Bs(a){var x=this.s<0?this.negate():this.clone(),E=a.s<0?a.negate():a.clone();if(x.compareTo(E)<0){var F=x;x=E,E=F}var k=x.getLowestSetBit(),_=E.getLowestSetBit();if(_<0)return x;for(k<_&&(_=k),_>0&&(x.rShiftTo(_,x),E.rShiftTo(_,E));x.signum()>0;)(k=x.getLowestSetBit())>0&&x.rShiftTo(k,x),(k=E.getLowestSetBit())>0&&E.rShiftTo(k,E),x.compareTo(E)>=0?(x.subTo(E,x),x.rShiftTo(1,x)):(E.subTo(x,E),E.rShiftTo(1,E));return _>0&&E.lShiftTo(_,E),E}function Ws(a){if(a<=0)return 0;var x=this.DV%a,E=this.s<0?a-1:0;if(this.t>0)if(x==0)E=this[0]%a;else for(var F=this.t-1;F>=0;--F)E=(x*E+this[F])%a;return E}function Ia(a){var x=a.isEven();if(this.isEven()&&x||a.signum()==0)return l.ZERO;for(var E=a.clone(),F=this.clone(),k=P(1),_=P(0),it=P(0),St=P(1);E.signum()!=0;){for(;E.isEven();)E.rShiftTo(1,E),x?((!k.isEven()||!_.isEven())&&(k.addTo(this,k),_.subTo(a,_)),k.rShiftTo(1,k)):_.isEven()||_.subTo(a,_),_.rShiftTo(1,_);for(;F.isEven();)F.rShiftTo(1,F),x?((!it.isEven()||!St.isEven())&&(it.addTo(this,it),St.subTo(a,St)),it.rShiftTo(1,it)):St.isEven()||St.subTo(a,St),St.rShiftTo(1,St);E.compareTo(F)>=0?(E.subTo(F,E),x&&k.subTo(it,k),_.subTo(St,_)):(F.subTo(E,F),x&&it.subTo(k,it),St.subTo(_,St))}if(F.compareTo(l.ONE)!=0)return l.ZERO;if(St.compareTo(a)>=0)return St.subtract(a);if(St.signum()<0)St.addTo(a,St);else return St;return St.signum()<0?St.add(a):St}var ir=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],wa=(1<<26)/ir[ir.length-1];function Oa(a){var x,E=this.abs();if(E.t==1&&E[0]<=ir[ir.length-1]){for(x=0;x<ir.length;++x)if(E[0]==ir[x])return!0;return!1}if(E.isEven())return!1;for(x=1;x<ir.length;){for(var F=ir[x],k=x+1;k<ir.length&&F<wa;)F*=ir[k++];for(F=E.modInt(F);x<k;)if(F%ir[x++]==0)return!1}return E.millerRabin(a)}function Fs(a){var x=this.subtract(l.ONE),E=x.getLowestSetBit();if(E<=0)return!1;var F=x.shiftRight(E);a=a+1>>1,a>ir.length&&(a=ir.length);for(var k=f(),_=0;_<a;++_){k.fromInt(ir[Math.floor(Math.random()*ir.length)]);var it=k.modPow(F,this);if(it.compareTo(l.ONE)!=0&&it.compareTo(x)!=0){for(var St=1;St++<E&&it.compareTo(x)!=0;)if(it=it.modPowInt(2,this),it.compareTo(l.ONE)==0)return!1;if(it.compareTo(x)!=0)return!1}}return!0}l.prototype.chunkSize=Ct,l.prototype.toRadix=bt,l.prototype.fromRadix=wt,l.prototype.fromNumber=Ot,l.prototype.bitwiseTo=Qt,l.prototype.changeBit=li,l.prototype.addTo=aa,l.prototype.dMultiply=da,l.prototype.dAddOffset=pa,l.prototype.multiplyLowerTo=ya,l.prototype.multiplyUpperTo=Sa,l.prototype.modInt=Ws,l.prototype.millerRabin=Fs,l.prototype.clone=q,l.prototype.intValue=nt,l.prototype.byteValue=ct,l.prototype.shortValue=Pt,l.prototype.signum=At,l.prototype.toByteArray=Lt,l.prototype.equals=Yt,l.prototype.min=$t,l.prototype.max=Wt,l.prototype.and=ie,l.prototype.or=ae,l.prototype.xor=Fe,l.prototype.andNot=ze,l.prototype.not=$e,l.prototype.shiftLeft=Ge,l.prototype.shiftRight=He,l.prototype.getLowestSetBit=Oe,l.prototype.bitCount=an,l.prototype.testBit=qr,l.prototype.setBit=fi,l.prototype.clearBit=oa,l.prototype.flipBit=Wi,l.prototype.add=Fi,l.prototype.subtract=la,l.prototype.multiply=fa,l.prototype.divide=ua,l.prototype.remainder=ha,l.prototype.divideAndRemainder=bs,l.prototype.modPow=Ns,l.prototype.modInverse=Ia,l.prototype.pow=ma,l.prototype.gcd=Bs,l.prototype.isProbablePrime=Oa,l.prototype.square=ca;var ge=l;ge.prototype.IsNegative=function(){return this.compareTo(ge.ZERO)==-1},ge.op_Equality=function(a,x){return a.compareTo(x)==0},ge.op_Inequality=function(a,x){return a.compareTo(x)!=0},ge.op_GreaterThan=function(a,x){return a.compareTo(x)>0},ge.op_LessThan=function(a,x){return a.compareTo(x)<0},ge.op_Addition=function(a,x){return new ge(a,void 0,void 0).add(new ge(x,void 0,void 0))},ge.op_Subtraction=function(a,x){return new ge(a,void 0,void 0).subtract(new ge(x,void 0,void 0))},ge.Int128Mul=function(a,x){return new ge(a,void 0,void 0).multiply(new ge(x,void 0,void 0))},ge.op_Division=function(a,x){return a.divide(x)},ge.prototype.ToDouble=function(){return parseFloat(this.toString())};var Ui=function(a,x){var E;if(typeof Object.getOwnPropertyNames>"u"){for(E in x.prototype)(typeof a.prototype[E]>"u"||a.prototype[E]===Object.prototype[E])&&(a.prototype[E]=x.prototype[E]);for(E in x)typeof a[E]>"u"&&(a[E]=x[E]);a.$baseCtor=x}else{for(var F=Object.getOwnPropertyNames(x.prototype),k=0;k<F.length;k++)typeof Object.getOwnPropertyDescriptor(a.prototype,F[k])>"u"&&Object.defineProperty(a.prototype,F[k],Object.getOwnPropertyDescriptor(x.prototype,F[k]));for(E in x)typeof a[E]>"u"&&(a[E]=x[E]);a.$baseCtor=x}};e.Path=function(){return[]},e.Path.prototype.push=Array.prototype.push,e.Paths=function(){return[]},e.Paths.prototype.push=Array.prototype.push,e.DoublePoint=function(){var a=arguments;this.X=0,this.Y=0,a.length===1?(this.X=a[0].X,this.Y=a[0].Y):a.length===2&&(this.X=a[0],this.Y=a[1])},e.DoublePoint0=function(){this.X=0,this.Y=0},e.DoublePoint0.prototype=e.DoublePoint.prototype,e.DoublePoint1=function(a){this.X=a.X,this.Y=a.Y},e.DoublePoint1.prototype=e.DoublePoint.prototype,e.DoublePoint2=function(a,x){this.X=a,this.Y=x},e.DoublePoint2.prototype=e.DoublePoint.prototype,e.PolyNode=function(){this.m_Parent=null,this.m_polygon=new e.Path,this.m_Index=0,this.m_jointype=0,this.m_endtype=0,this.m_Childs=[],this.IsOpen=!1},e.PolyNode.prototype.IsHoleNode=function(){for(var a=!0,x=this.m_Parent;x!==null;)a=!a,x=x.m_Parent;return a},e.PolyNode.prototype.ChildCount=function(){return this.m_Childs.length},e.PolyNode.prototype.Contour=function(){return this.m_polygon},e.PolyNode.prototype.AddChild=function(a){var x=this.m_Childs.length;this.m_Childs.push(a),a.m_Parent=this,a.m_Index=x},e.PolyNode.prototype.GetNext=function(){return this.m_Childs.length>0?this.m_Childs[0]:this.GetNextSiblingUp()},e.PolyNode.prototype.GetNextSiblingUp=function(){return this.m_Parent===null?null:this.m_Index===this.m_Parent.m_Childs.length-1?this.m_Parent.GetNextSiblingUp():this.m_Parent.m_Childs[this.m_Index+1]},e.PolyNode.prototype.Childs=function(){return this.m_Childs},e.PolyNode.prototype.Parent=function(){return this.m_Parent},e.PolyNode.prototype.IsHole=function(){return this.IsHoleNode()},e.PolyTree=function(){this.m_AllPolys=[],e.PolyNode.call(this)},e.PolyTree.prototype.Clear=function(){for(var a=0,x=this.m_AllPolys.length;a<x;a++)this.m_AllPolys[a]=null;this.m_AllPolys.length=0,this.m_Childs.length=0},e.PolyTree.prototype.GetFirst=function(){return this.m_Childs.length>0?this.m_Childs[0]:null},e.PolyTree.prototype.Total=function(){var a=this.m_AllPolys.length;return a>0&&this.m_Childs[0]!==this.m_AllPolys[0]&&a--,a},Ui(e.PolyTree,e.PolyNode),e.Math_Abs_Int64=e.Math_Abs_Int32=e.Math_Abs_Double=function(a){return Math.abs(a)},e.Math_Max_Int32_Int32=function(a,x){return Math.max(a,x)},s.msie||s.opera||s.safari?e.Cast_Int32=function(a){return a|0}:e.Cast_Int32=function(a){return~~a},typeof Number.toInteger>"u"&&(Number.toInteger=null),s.chrome?e.Cast_Int64=function(a){return a<-2147483648||a>2147483647?a<0?Math.ceil(a):Math.floor(a):~~a}:s.firefox&&typeof Number.toInteger=="function"?e.Cast_Int64=function(a){return Number.toInteger(a)}:s.msie7||s.msie8?e.Cast_Int64=function(a){return parseInt(a,10)}:s.msie?e.Cast_Int64=function(a){return a<-2147483648||a>2147483647?a<0?Math.ceil(a):Math.floor(a):a|0}:e.Cast_Int64=function(a){return a<0?Math.ceil(a):Math.floor(a)},e.Clear=function(a){a.length=0},e.PI=3.141592653589793,e.PI2=2*3.141592653589793,e.IntPoint=function(){var a=arguments,x=a.length;if(this.X=0,this.Y=0,e.use_xyz)if(this.Z=0,x===3)this.X=a[0],this.Y=a[1],this.Z=a[2];else if(x===2)this.X=a[0],this.Y=a[1],this.Z=0;else if(x===1)if(a[0]instanceof e.DoublePoint){var E=a[0];this.X=e.Clipper.Round(E.X),this.Y=e.Clipper.Round(E.Y),this.Z=0}else{var F=a[0];typeof F.Z>"u"&&(F.Z=0),this.X=F.X,this.Y=F.Y,this.Z=F.Z}else this.X=0,this.Y=0,this.Z=0;else if(x===2)this.X=a[0],this.Y=a[1];else if(x===1)if(a[0]instanceof e.DoublePoint){var E=a[0];this.X=e.Clipper.Round(E.X),this.Y=e.Clipper.Round(E.Y)}else{var F=a[0];this.X=F.X,this.Y=F.Y}else this.X=0,this.Y=0},e.IntPoint.op_Equality=function(a,x){return a.X===x.X&&a.Y===x.Y},e.IntPoint.op_Inequality=function(a,x){return a.X!==x.X||a.Y!==x.Y},e.IntPoint0=function(){this.X=0,this.Y=0,e.use_xyz&&(this.Z=0)},e.IntPoint0.prototype=e.IntPoint.prototype,e.IntPoint1=function(a){this.X=a.X,this.Y=a.Y,e.use_xyz&&(typeof a.Z>"u"?this.Z=0:this.Z=a.Z)},e.IntPoint1.prototype=e.IntPoint.prototype,e.IntPoint1dp=function(a){this.X=e.Clipper.Round(a.X),this.Y=e.Clipper.Round(a.Y),e.use_xyz&&(this.Z=0)},e.IntPoint1dp.prototype=e.IntPoint.prototype,e.IntPoint2=function(a,x,E){this.X=a,this.Y=x,e.use_xyz&&(typeof E>"u"?this.Z=0:this.Z=E)},e.IntPoint2.prototype=e.IntPoint.prototype,e.IntRect=function(){var a=arguments,x=a.length;if(x===4)this.left=a[0],this.top=a[1],this.right=a[2],this.bottom=a[3];else if(x===1){var E=a[0];this.left=E.left,this.top=E.top,this.right=E.right,this.bottom=E.bottom}else this.left=0,this.top=0,this.right=0,this.bottom=0},e.IntRect0=function(){this.left=0,this.top=0,this.right=0,this.bottom=0},e.IntRect0.prototype=e.IntRect.prototype,e.IntRect1=function(a){this.left=a.left,this.top=a.top,this.right=a.right,this.bottom=a.bottom},e.IntRect1.prototype=e.IntRect.prototype,e.IntRect4=function(a,x,E,F){this.left=a,this.top=x,this.right=E,this.bottom=F},e.IntRect4.prototype=e.IntRect.prototype,e.ClipType={ctIntersection:0,ctUnion:1,ctDifference:2,ctXor:3},e.PolyType={ptSubject:0,ptClip:1},e.PolyFillType={pftEvenOdd:0,pftNonZero:1,pftPositive:2,pftNegative:3},e.JoinType={jtSquare:0,jtRound:1,jtMiter:2},e.EndType={etOpenSquare:0,etOpenRound:1,etOpenButt:2,etClosedLine:3,etClosedPolygon:4},e.EdgeSide={esLeft:0,esRight:1},e.Direction={dRightToLeft:0,dLeftToRight:1},e.TEdge=function(){this.Bot=new e.IntPoint0,this.Curr=new e.IntPoint0,this.Top=new e.IntPoint0,this.Delta=new e.IntPoint0,this.Dx=0,this.PolyTyp=e.PolyType.ptSubject,this.Side=e.EdgeSide.esLeft,this.WindDelta=0,this.WindCnt=0,this.WindCnt2=0,this.OutIdx=0,this.Next=null,this.Prev=null,this.NextInLML=null,this.NextInAEL=null,this.PrevInAEL=null,this.NextInSEL=null,this.PrevInSEL=null},e.IntersectNode=function(){this.Edge1=null,this.Edge2=null,this.Pt=new e.IntPoint0},e.MyIntersectNodeSort=function(){},e.MyIntersectNodeSort.Compare=function(a,x){var E=x.Pt.Y-a.Pt.Y;return E>0?1:E<0?-1:0},e.LocalMinima=function(){this.Y=0,this.LeftBound=null,this.RightBound=null,this.Next=null},e.Scanbeam=function(){this.Y=0,this.Next=null},e.Maxima=function(){this.X=0,this.Next=null,this.Prev=null},e.OutRec=function(){this.Idx=0,this.IsHole=!1,this.IsOpen=!1,this.FirstLeft=null,this.Pts=null,this.BottomPt=null,this.PolyNode=null},e.OutPt=function(){this.Idx=0,this.Pt=new e.IntPoint0,this.Next=null,this.Prev=null},e.Join=function(){this.OutPt1=null,this.OutPt2=null,this.OffPt=new e.IntPoint0},e.ClipperBase=function(){this.m_MinimaList=null,this.m_CurrentLM=null,this.m_edges=new Array,this.m_UseFullRange=!1,this.m_HasOpenPaths=!1,this.PreserveCollinear=!1,this.m_Scanbeam=null,this.m_PolyOuts=null,this.m_ActiveEdges=null},e.ClipperBase.horizontal=-9007199254740992,e.ClipperBase.Skip=-2,e.ClipperBase.Unassigned=-1,e.ClipperBase.tolerance=1e-20,e.ClipperBase.loRange=47453132,e.ClipperBase.hiRange=0xfffffffffffff,e.ClipperBase.near_zero=function(a){return a>-e.ClipperBase.tolerance&&a<e.ClipperBase.tolerance},e.ClipperBase.IsHorizontal=function(a){return a.Delta.Y===0},e.ClipperBase.prototype.PointIsVertex=function(a,x){var E=x;do{if(e.IntPoint.op_Equality(E.Pt,a))return!0;E=E.Next}while(E!==x);return!1},e.ClipperBase.prototype.PointOnLineSegment=function(a,x,E,F){return F?a.X===x.X&&a.Y===x.Y||a.X===E.X&&a.Y===E.Y||a.X>x.X==a.X<E.X&&a.Y>x.Y==a.Y<E.Y&&ge.op_Equality(ge.Int128Mul(a.X-x.X,E.Y-x.Y),ge.Int128Mul(E.X-x.X,a.Y-x.Y)):a.X===x.X&&a.Y===x.Y||a.X===E.X&&a.Y===E.Y||a.X>x.X==a.X<E.X&&a.Y>x.Y==a.Y<E.Y&&(a.X-x.X)*(E.Y-x.Y)===(E.X-x.X)*(a.Y-x.Y)},e.ClipperBase.prototype.PointOnPolygon=function(a,x,E){for(var F=x;;){if(this.PointOnLineSegment(a,F.Pt,F.Next.Pt,E))return!0;if(F=F.Next,F===x)break}return!1},e.ClipperBase.prototype.SlopesEqual=e.ClipperBase.SlopesEqual=function(){var a=arguments,x=a.length,E,F,k,_,it,St,Tt;return x===3?(E=a[0],F=a[1],Tt=a[2],Tt?ge.op_Equality(ge.Int128Mul(E.Delta.Y,F.Delta.X),ge.Int128Mul(E.Delta.X,F.Delta.Y)):e.Cast_Int64(E.Delta.Y*F.Delta.X)===e.Cast_Int64(E.Delta.X*F.Delta.Y)):x===4?(k=a[0],_=a[1],it=a[2],Tt=a[3],Tt?ge.op_Equality(ge.Int128Mul(k.Y-_.Y,_.X-it.X),ge.Int128Mul(k.X-_.X,_.Y-it.Y)):e.Cast_Int64((k.Y-_.Y)*(_.X-it.X))-e.Cast_Int64((k.X-_.X)*(_.Y-it.Y))===0):(k=a[0],_=a[1],it=a[2],St=a[3],Tt=a[4],Tt?ge.op_Equality(ge.Int128Mul(k.Y-_.Y,it.X-St.X),ge.Int128Mul(k.X-_.X,it.Y-St.Y)):e.Cast_Int64((k.Y-_.Y)*(it.X-St.X))-e.Cast_Int64((k.X-_.X)*(it.Y-St.Y))===0)},e.ClipperBase.SlopesEqual3=function(a,x,E){return E?ge.op_Equality(ge.Int128Mul(a.Delta.Y,x.Delta.X),ge.Int128Mul(a.Delta.X,x.Delta.Y)):e.Cast_Int64(a.Delta.Y*x.Delta.X)===e.Cast_Int64(a.Delta.X*x.Delta.Y)},e.ClipperBase.SlopesEqual4=function(a,x,E,F){return F?ge.op_Equality(ge.Int128Mul(a.Y-x.Y,x.X-E.X),ge.Int128Mul(a.X-x.X,x.Y-E.Y)):e.Cast_Int64((a.Y-x.Y)*(x.X-E.X))-e.Cast_Int64((a.X-x.X)*(x.Y-E.Y))===0},e.ClipperBase.SlopesEqual5=function(a,x,E,F,k){return k?ge.op_Equality(ge.Int128Mul(a.Y-x.Y,E.X-F.X),ge.Int128Mul(a.X-x.X,E.Y-F.Y)):e.Cast_Int64((a.Y-x.Y)*(E.X-F.X))-e.Cast_Int64((a.X-x.X)*(E.Y-F.Y))===0},e.ClipperBase.prototype.Clear=function(){this.DisposeLocalMinimaList();for(var a=0,x=this.m_edges.length;a<x;++a){for(var E=0,F=this.m_edges[a].length;E<F;++E)this.m_edges[a][E]=null;e.Clear(this.m_edges[a])}e.Clear(this.m_edges),this.m_UseFullRange=!1,this.m_HasOpenPaths=!1},e.ClipperBase.prototype.DisposeLocalMinimaList=function(){for(;this.m_MinimaList!==null;){var a=this.m_MinimaList.Next;this.m_MinimaList=null,this.m_MinimaList=a}this.m_CurrentLM=null},e.ClipperBase.prototype.RangeTest=function(a,x){x.Value?(a.X>e.ClipperBase.hiRange||a.Y>e.ClipperBase.hiRange||-a.X>e.ClipperBase.hiRange||-a.Y>e.ClipperBase.hiRange)&&e.Error("Coordinate outside allowed range in RangeTest()."):(a.X>e.ClipperBase.loRange||a.Y>e.ClipperBase.loRange||-a.X>e.ClipperBase.loRange||-a.Y>e.ClipperBase.loRange)&&(x.Value=!0,this.RangeTest(a,x))},e.ClipperBase.prototype.InitEdge=function(a,x,E,F){a.Next=x,a.Prev=E,a.Curr.X=F.X,a.Curr.Y=F.Y,e.use_xyz&&(a.Curr.Z=F.Z),a.OutIdx=-1},e.ClipperBase.prototype.InitEdge2=function(a,x){a.Curr.Y>=a.Next.Curr.Y?(a.Bot.X=a.Curr.X,a.Bot.Y=a.Curr.Y,e.use_xyz&&(a.Bot.Z=a.Curr.Z),a.Top.X=a.Next.Curr.X,a.Top.Y=a.Next.Curr.Y,e.use_xyz&&(a.Top.Z=a.Next.Curr.Z)):(a.Top.X=a.Curr.X,a.Top.Y=a.Curr.Y,e.use_xyz&&(a.Top.Z=a.Curr.Z),a.Bot.X=a.Next.Curr.X,a.Bot.Y=a.Next.Curr.Y,e.use_xyz&&(a.Bot.Z=a.Next.Curr.Z)),this.SetDx(a),a.PolyTyp=x},e.ClipperBase.prototype.FindNextLocMin=function(a){for(var x;;){for(;e.IntPoint.op_Inequality(a.Bot,a.Prev.Bot)||e.IntPoint.op_Equality(a.Curr,a.Top);)a=a.Next;if(a.Dx!==e.ClipperBase.horizontal&&a.Prev.Dx!==e.ClipperBase.horizontal)break;for(;a.Prev.Dx===e.ClipperBase.horizontal;)a=a.Prev;for(x=a;a.Dx===e.ClipperBase.horizontal;)a=a.Next;if(a.Top.Y!==a.Prev.Bot.Y){x.Prev.Bot.X<a.Bot.X&&(a=x);break}}return a},e.ClipperBase.prototype.ProcessBound=function(a,x){var E,F=a,k;if(F.OutIdx===e.ClipperBase.Skip){if(a=F,x){for(;a.Top.Y===a.Next.Bot.Y;)a=a.Next;for(;a!==F&&a.Dx===e.ClipperBase.horizontal;)a=a.Prev}else{for(;a.Top.Y===a.Prev.Bot.Y;)a=a.Prev;for(;a!==F&&a.Dx===e.ClipperBase.horizontal;)a=a.Next}if(a===F)x?F=a.Next:F=a.Prev;else{x?a=F.Next:a=F.Prev;var _=new e.LocalMinima;_.Next=null,_.Y=a.Bot.Y,_.LeftBound=null,_.RightBound=a,a.WindDelta=0,F=this.ProcessBound(a,x),this.InsertLocalMinima(_)}return F}if(a.Dx===e.ClipperBase.horizontal&&(x?E=a.Prev:E=a.Next,E.Dx===e.ClipperBase.horizontal?E.Bot.X!==a.Bot.X&&E.Top.X!==a.Bot.X&&this.ReverseHorizontal(a):E.Bot.X!==a.Bot.X&&this.ReverseHorizontal(a)),E=a,x){for(;F.Top.Y===F.Next.Bot.Y&&F.Next.OutIdx!==e.ClipperBase.Skip;)F=F.Next;if(F.Dx===e.ClipperBase.horizontal&&F.Next.OutIdx!==e.ClipperBase.Skip){for(k=F;k.Prev.Dx===e.ClipperBase.horizontal;)k=k.Prev;k.Prev.Top.X>F.Next.Top.X&&(F=k.Prev)}for(;a!==F;)a.NextInLML=a.Next,a.Dx===e.ClipperBase.horizontal&&a!==E&&a.Bot.X!==a.Prev.Top.X&&this.ReverseHorizontal(a),a=a.Next;a.Dx===e.ClipperBase.horizontal&&a!==E&&a.Bot.X!==a.Prev.Top.X&&this.ReverseHorizontal(a),F=F.Next}else{for(;F.Top.Y===F.Prev.Bot.Y&&F.Prev.OutIdx!==e.ClipperBase.Skip;)F=F.Prev;if(F.Dx===e.ClipperBase.horizontal&&F.Prev.OutIdx!==e.ClipperBase.Skip){for(k=F;k.Next.Dx===e.ClipperBase.horizontal;)k=k.Next;(k.Next.Top.X===F.Prev.Top.X||k.Next.Top.X>F.Prev.Top.X)&&(F=k.Next)}for(;a!==F;)a.NextInLML=a.Prev,a.Dx===e.ClipperBase.horizontal&&a!==E&&a.Bot.X!==a.Next.Top.X&&this.ReverseHorizontal(a),a=a.Prev;a.Dx===e.ClipperBase.horizontal&&a!==E&&a.Bot.X!==a.Next.Top.X&&this.ReverseHorizontal(a),F=F.Prev}return F},e.ClipperBase.prototype.AddPath=function(a,x,E){e.use_lines?!E&&x===e.PolyType.ptClip&&e.Error("AddPath: Open paths must be subject."):E||e.Error("AddPath: Open paths have been disabled.");var F=a.length-1;if(E)for(;F>0&&e.IntPoint.op_Equality(a[F],a[0]);)--F;for(;F>0&&e.IntPoint.op_Equality(a[F],a[F-1]);)--F;if(E&&F<2||!E&&F<1)return!1;for(var k=new Array,_=0;_<=F;_++)k.push(new e.TEdge);var it=!0;k[1].Curr.X=a[1].X,k[1].Curr.Y=a[1].Y,e.use_xyz&&(k[1].Curr.Z=a[1].Z);var St={Value:this.m_UseFullRange};this.RangeTest(a[0],St),this.m_UseFullRange=St.Value,St.Value=this.m_UseFullRange,this.RangeTest(a[F],St),this.m_UseFullRange=St.Value,this.InitEdge(k[0],k[1],k[F],a[0]),this.InitEdge(k[F],k[0],k[F-1],a[F]);for(var _=F-1;_>=1;--_)St.Value=this.m_UseFullRange,this.RangeTest(a[_],St),this.m_UseFullRange=St.Value,this.InitEdge(k[_],k[_+1],k[_-1],a[_]);for(var Tt=k[0],Dt=Tt,Ht=Tt;;){if(Dt.Curr===Dt.Next.Curr&&(E||Dt.Next!==Tt)){if(Dt===Dt.Next)break;Dt===Tt&&(Tt=Dt.Next),Dt=this.RemoveEdge(Dt),Ht=Dt;continue}if(Dt.Prev===Dt.Next)break;if(E&&e.ClipperBase.SlopesEqual4(Dt.Prev.Curr,Dt.Curr,Dt.Next.Curr,this.m_UseFullRange)&&(!this.PreserveCollinear||!this.Pt2IsBetweenPt1AndPt3(Dt.Prev.Curr,Dt.Curr,Dt.Next.Curr))){Dt===Tt&&(Tt=Dt.Next),Dt=this.RemoveEdge(Dt),Dt=Dt.Prev,Ht=Dt;continue}if(Dt=Dt.Next,Dt===Ht||!E&&Dt.Next===Tt)break}if(!E&&Dt===Dt.Next||E&&Dt.Prev===Dt.Next)return!1;E||(this.m_HasOpenPaths=!0,Tt.Prev.OutIdx=e.ClipperBase.Skip),Dt=Tt;do this.InitEdge2(Dt,x),Dt=Dt.Next,it&&Dt.Curr.Y!==Tt.Curr.Y&&(it=!1);while(Dt!==Tt);if(it){if(E)return!1;Dt.Prev.OutIdx=e.ClipperBase.Skip;var jt=new e.LocalMinima;for(jt.Next=null,jt.Y=Dt.Bot.Y,jt.LeftBound=null,jt.RightBound=Dt,jt.RightBound.Side=e.EdgeSide.esRight,jt.RightBound.WindDelta=0;Dt.Bot.X!==Dt.Prev.Top.X&&this.ReverseHorizontal(Dt),Dt.Next.OutIdx!==e.ClipperBase.Skip;)Dt.NextInLML=Dt.Next,Dt=Dt.Next;return this.InsertLocalMinima(jt),this.m_edges.push(k),!0}this.m_edges.push(k);var _t,oe=null;for(e.IntPoint.op_Equality(Dt.Prev.Bot,Dt.Prev.Top)&&(Dt=Dt.Next);Dt=this.FindNextLocMin(Dt),Dt!==oe;){oe===null&&(oe=Dt);var jt=new e.LocalMinima;jt.Next=null,jt.Y=Dt.Bot.Y,Dt.Dx<Dt.Prev.Dx?(jt.LeftBound=Dt.Prev,jt.RightBound=Dt,_t=!1):(jt.LeftBound=Dt,jt.RightBound=Dt.Prev,_t=!0),jt.LeftBound.Side=e.EdgeSide.esLeft,jt.RightBound.Side=e.EdgeSide.esRight,E?jt.LeftBound.Next===jt.RightBound?jt.LeftBound.WindDelta=-1:jt.LeftBound.WindDelta=1:jt.LeftBound.WindDelta=0,jt.RightBound.WindDelta=-jt.LeftBound.WindDelta,Dt=this.ProcessBound(jt.LeftBound,_t),Dt.OutIdx===e.ClipperBase.Skip&&(Dt=this.ProcessBound(Dt,_t));var me=this.ProcessBound(jt.RightBound,!_t);me.OutIdx===e.ClipperBase.Skip&&(me=this.ProcessBound(me,!_t)),jt.LeftBound.OutIdx===e.ClipperBase.Skip?jt.LeftBound=null:jt.RightBound.OutIdx===e.ClipperBase.Skip&&(jt.RightBound=null),this.InsertLocalMinima(jt),_t||(Dt=me)}return!0},e.ClipperBase.prototype.AddPaths=function(a,x,E){for(var F=!1,k=0,_=a.length;k<_;++k)this.AddPath(a[k],x,E)&&(F=!0);return F},e.ClipperBase.prototype.Pt2IsBetweenPt1AndPt3=function(a,x,E){return e.IntPoint.op_Equality(a,E)||e.IntPoint.op_Equality(a,x)||e.IntPoint.op_Equality(E,x)?!1:a.X!==E.X?x.X>a.X==x.X<E.X:x.Y>a.Y==x.Y<E.Y},e.ClipperBase.prototype.RemoveEdge=function(a){a.Prev.Next=a.Next,a.Next.Prev=a.Prev;var x=a.Next;return a.Prev=null,x},e.ClipperBase.prototype.SetDx=function(a){a.Delta.X=a.Top.X-a.Bot.X,a.Delta.Y=a.Top.Y-a.Bot.Y,a.Delta.Y===0?a.Dx=e.ClipperBase.horizontal:a.Dx=a.Delta.X/a.Delta.Y},e.ClipperBase.prototype.InsertLocalMinima=function(a){if(this.m_MinimaList===null)this.m_MinimaList=a;else if(a.Y>=this.m_MinimaList.Y)a.Next=this.m_MinimaList,this.m_MinimaList=a;else{for(var x=this.m_MinimaList;x.Next!==null&&a.Y<x.Next.Y;)x=x.Next;a.Next=x.Next,x.Next=a}},e.ClipperBase.prototype.PopLocalMinima=function(a,x){return x.v=this.m_CurrentLM,this.m_CurrentLM!==null&&this.m_CurrentLM.Y===a?(this.m_CurrentLM=this.m_CurrentLM.Next,!0):!1},e.ClipperBase.prototype.ReverseHorizontal=function(a){var x=a.Top.X;a.Top.X=a.Bot.X,a.Bot.X=x,e.use_xyz&&(x=a.Top.Z,a.Top.Z=a.Bot.Z,a.Bot.Z=x)},e.ClipperBase.prototype.Reset=function(){if(this.m_CurrentLM=this.m_MinimaList,this.m_CurrentLM!==null){this.m_Scanbeam=null;for(var a=this.m_MinimaList;a!==null;){this.InsertScanbeam(a.Y);var x=a.LeftBound;x!==null&&(x.Curr.X=x.Bot.X,x.Curr.Y=x.Bot.Y,e.use_xyz&&(x.Curr.Z=x.Bot.Z),x.OutIdx=e.ClipperBase.Unassigned),x=a.RightBound,x!==null&&(x.Curr.X=x.Bot.X,x.Curr.Y=x.Bot.Y,e.use_xyz&&(x.Curr.Z=x.Bot.Z),x.OutIdx=e.ClipperBase.Unassigned),a=a.Next}this.m_ActiveEdges=null}},e.ClipperBase.prototype.InsertScanbeam=function(a){if(this.m_Scanbeam===null)this.m_Scanbeam=new e.Scanbeam,this.m_Scanbeam.Next=null,this.m_Scanbeam.Y=a;else if(a>this.m_Scanbeam.Y){var x=new e.Scanbeam;x.Y=a,x.Next=this.m_Scanbeam,this.m_Scanbeam=x}else{for(var E=this.m_Scanbeam;E.Next!==null&&a<=E.Next.Y;)E=E.Next;if(a===E.Y)return;var F=new e.Scanbeam;F.Y=a,F.Next=E.Next,E.Next=F}},e.ClipperBase.prototype.PopScanbeam=function(a){return this.m_Scanbeam===null?(a.v=0,!1):(a.v=this.m_Scanbeam.Y,this.m_Scanbeam=this.m_Scanbeam.Next,!0)},e.ClipperBase.prototype.LocalMinimaPending=function(){return this.m_CurrentLM!==null},e.ClipperBase.prototype.CreateOutRec=function(){var a=new e.OutRec;return a.Idx=e.ClipperBase.Unassigned,a.IsHole=!1,a.IsOpen=!1,a.FirstLeft=null,a.Pts=null,a.BottomPt=null,a.PolyNode=null,this.m_PolyOuts.push(a),a.Idx=this.m_PolyOuts.length-1,a},e.ClipperBase.prototype.DisposeOutRec=function(a){var x=this.m_PolyOuts[a];x.Pts=null,x=null,this.m_PolyOuts[a]=null},e.ClipperBase.prototype.UpdateEdgeIntoAEL=function(a){a.NextInLML===null&&e.Error("UpdateEdgeIntoAEL: invalid call");var x=a.PrevInAEL,E=a.NextInAEL;return a.NextInLML.OutIdx=a.OutIdx,x!==null?x.NextInAEL=a.NextInLML:this.m_ActiveEdges=a.NextInLML,E!==null&&(E.PrevInAEL=a.NextInLML),a.NextInLML.Side=a.Side,a.NextInLML.WindDelta=a.WindDelta,a.NextInLML.WindCnt=a.WindCnt,a.NextInLML.WindCnt2=a.WindCnt2,a=a.NextInLML,a.Curr.X=a.Bot.X,a.Curr.Y=a.Bot.Y,a.PrevInAEL=x,a.NextInAEL=E,e.ClipperBase.IsHorizontal(a)||this.InsertScanbeam(a.Top.Y),a},e.ClipperBase.prototype.SwapPositionsInAEL=function(a,x){if(!(a.NextInAEL===a.PrevInAEL||x.NextInAEL===x.PrevInAEL)){if(a.NextInAEL===x){var E=x.NextInAEL;E!==null&&(E.PrevInAEL=a);var F=a.PrevInAEL;F!==null&&(F.NextInAEL=x),x.PrevInAEL=F,x.NextInAEL=a,a.PrevInAEL=x,a.NextInAEL=E}else if(x.NextInAEL===a){var k=a.NextInAEL;k!==null&&(k.PrevInAEL=x);var _=x.PrevInAEL;_!==null&&(_.NextInAEL=a),a.PrevInAEL=_,a.NextInAEL=x,x.PrevInAEL=a,x.NextInAEL=k}else{var it=a.NextInAEL,St=a.PrevInAEL;a.NextInAEL=x.NextInAEL,a.NextInAEL!==null&&(a.NextInAEL.PrevInAEL=a),a.PrevInAEL=x.PrevInAEL,a.PrevInAEL!==null&&(a.PrevInAEL.NextInAEL=a),x.NextInAEL=it,x.NextInAEL!==null&&(x.NextInAEL.PrevInAEL=x),x.PrevInAEL=St,x.PrevInAEL!==null&&(x.PrevInAEL.NextInAEL=x)}a.PrevInAEL===null?this.m_ActiveEdges=a:x.PrevInAEL===null&&(this.m_ActiveEdges=x)}},e.ClipperBase.prototype.DeleteFromAEL=function(a){var x=a.PrevInAEL,E=a.NextInAEL;x===null&&E===null&&a!==this.m_ActiveEdges||(x!==null?x.NextInAEL=E:this.m_ActiveEdges=E,E!==null&&(E.PrevInAEL=x),a.NextInAEL=null,a.PrevInAEL=null)},e.Clipper=function(a){typeof a>"u"&&(a=0),this.m_PolyOuts=null,this.m_ClipType=e.ClipType.ctIntersection,this.m_Scanbeam=null,this.m_Maxima=null,this.m_ActiveEdges=null,this.m_SortedEdges=null,this.m_IntersectList=null,this.m_IntersectNodeComparer=null,this.m_ExecuteLocked=!1,this.m_ClipFillType=e.PolyFillType.pftEvenOdd,this.m_SubjFillType=e.PolyFillType.pftEvenOdd,this.m_Joins=null,this.m_GhostJoins=null,this.m_UsingPolyTree=!1,this.ReverseSolution=!1,this.StrictlySimple=!1,e.ClipperBase.call(this),this.m_Scanbeam=null,this.m_Maxima=null,this.m_ActiveEdges=null,this.m_SortedEdges=null,this.m_IntersectList=new Array,this.m_IntersectNodeComparer=e.MyIntersectNodeSort.Compare,this.m_ExecuteLocked=!1,this.m_UsingPolyTree=!1,this.m_PolyOuts=new Array,this.m_Joins=new Array,this.m_GhostJoins=new Array,this.ReverseSolution=(1&a)!==0,this.StrictlySimple=(2&a)!==0,this.PreserveCollinear=(4&a)!==0,e.use_xyz&&(this.ZFillFunction=null)},e.Clipper.ioReverseSolution=1,e.Clipper.ioStrictlySimple=2,e.Clipper.ioPreserveCollinear=4,e.Clipper.prototype.Clear=function(){this.m_edges.length!==0&&(this.DisposeAllPolyPts(),e.ClipperBase.prototype.Clear.call(this))},e.Clipper.prototype.InsertMaxima=function(a){var x=new e.Maxima;if(x.X=a,this.m_Maxima===null)this.m_Maxima=x,this.m_Maxima.Next=null,this.m_Maxima.Prev=null;else if(a<this.m_Maxima.X)x.Next=this.m_Maxima,x.Prev=null,this.m_Maxima=x;else{for(var E=this.m_Maxima;E.Next!==null&&a>=E.Next.X;)E=E.Next;if(a===E.X)return;x.Next=E.Next,x.Prev=E,E.Next!==null&&(E.Next.Prev=x),E.Next=x}},e.Clipper.prototype.Execute=function(){var a=arguments,x=a.length,E=a[1]instanceof e.PolyTree;if(x===4&&!E){var F=a[0],k=a[1],_=a[2],it=a[3];if(this.m_ExecuteLocked)return!1;this.m_HasOpenPaths&&e.Error("Error: PolyTree struct is needed for open path clipping."),this.m_ExecuteLocked=!0,e.Clear(k),this.m_SubjFillType=_,this.m_ClipFillType=it,this.m_ClipType=F,this.m_UsingPolyTree=!1;try{var St=this.ExecuteInternal();St&&this.BuildResult(k)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return St}else if(x===4&&E){var F=a[0],Tt=a[1],_=a[2],it=a[3];if(this.m_ExecuteLocked)return!1;this.m_ExecuteLocked=!0,this.m_SubjFillType=_,this.m_ClipFillType=it,this.m_ClipType=F,this.m_UsingPolyTree=!0;try{var St=this.ExecuteInternal();St&&this.BuildResult2(Tt)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return St}else if(x===2&&!E){var F=a[0],k=a[1];return this.Execute(F,k,e.PolyFillType.pftEvenOdd,e.PolyFillType.pftEvenOdd)}else if(x===2&&E){var F=a[0],Tt=a[1];return this.Execute(F,Tt,e.PolyFillType.pftEvenOdd,e.PolyFillType.pftEvenOdd)}},e.Clipper.prototype.FixHoleLinkage=function(a){if(!(a.FirstLeft===null||a.IsHole!==a.FirstLeft.IsHole&&a.FirstLeft.Pts!==null)){for(var x=a.FirstLeft;x!==null&&(x.IsHole===a.IsHole||x.Pts===null);)x=x.FirstLeft;a.FirstLeft=x}},e.Clipper.prototype.ExecuteInternal=function(){try{this.Reset(),this.m_SortedEdges=null,this.m_Maxima=null;var a={},x={};if(!this.PopScanbeam(a))return!1;for(this.InsertLocalMinimaIntoAEL(a.v);this.PopScanbeam(x)||this.LocalMinimaPending();){if(this.ProcessHorizontals(),this.m_GhostJoins.length=0,!this.ProcessIntersections(x.v))return!1;this.ProcessEdgesAtTopOfScanbeam(x.v),a.v=x.v,this.InsertLocalMinimaIntoAEL(a.v)}var E,F,k;for(F=0,k=this.m_PolyOuts.length;F<k;F++)E=this.m_PolyOuts[F],!(E.Pts===null||E.IsOpen)&&(E.IsHole^this.ReverseSolution)==this.Area$1(E)>0&&this.ReversePolyPtLinks(E.Pts);for(this.JoinCommonEdges(),F=0,k=this.m_PolyOuts.length;F<k;F++)E=this.m_PolyOuts[F],E.Pts!==null&&(E.IsOpen?this.FixupOutPolyline(E):this.FixupOutPolygon(E));return this.StrictlySimple&&this.DoSimplePolygons(),!0}finally{this.m_Joins.length=0,this.m_GhostJoins.length=0}},e.Clipper.prototype.DisposeAllPolyPts=function(){for(var a=0,x=this.m_PolyOuts.length;a<x;++a)this.DisposeOutRec(a);e.Clear(this.m_PolyOuts)},e.Clipper.prototype.AddJoin=function(a,x,E){var F=new e.Join;F.OutPt1=a,F.OutPt2=x,F.OffPt.X=E.X,F.OffPt.Y=E.Y,e.use_xyz&&(F.OffPt.Z=E.Z),this.m_Joins.push(F)},e.Clipper.prototype.AddGhostJoin=function(a,x){var E=new e.Join;E.OutPt1=a,E.OffPt.X=x.X,E.OffPt.Y=x.Y,e.use_xyz&&(E.OffPt.Z=x.Z),this.m_GhostJoins.push(E)},e.Clipper.prototype.SetZ=function(a,x,E){if(this.ZFillFunction!==null){if(a.Z!==0||this.ZFillFunction===null)return;e.IntPoint.op_Equality(a,x.Bot)?a.Z=x.Bot.Z:e.IntPoint.op_Equality(a,x.Top)?a.Z=x.Top.Z:e.IntPoint.op_Equality(a,E.Bot)?a.Z=E.Bot.Z:e.IntPoint.op_Equality(a,E.Top)?a.Z=E.Top.Z:this.ZFillFunction(x.Bot,x.Top,E.Bot,E.Top,a)}},e.Clipper.prototype.InsertLocalMinimaIntoAEL=function(a){for(var x={},E,F;this.PopLocalMinima(a,x);){E=x.v.LeftBound,F=x.v.RightBound;var k=null;if(E===null?(this.InsertEdgeIntoAEL(F,null),this.SetWindingCount(F),this.IsContributing(F)&&(k=this.AddOutPt(F,F.Bot))):F===null?(this.InsertEdgeIntoAEL(E,null),this.SetWindingCount(E),this.IsContributing(E)&&(k=this.AddOutPt(E,E.Bot)),this.InsertScanbeam(E.Top.Y)):(this.InsertEdgeIntoAEL(E,null),this.InsertEdgeIntoAEL(F,E),this.SetWindingCount(E),F.WindCnt=E.WindCnt,F.WindCnt2=E.WindCnt2,this.IsContributing(E)&&(k=this.AddLocalMinPoly(E,F,E.Bot)),this.InsertScanbeam(E.Top.Y)),F!==null&&(e.ClipperBase.IsHorizontal(F)?(F.NextInLML!==null&&this.InsertScanbeam(F.NextInLML.Top.Y),this.AddEdgeToSEL(F)):this.InsertScanbeam(F.Top.Y)),!(E===null||F===null)){if(k!==null&&e.ClipperBase.IsHorizontal(F)&&this.m_GhostJoins.length>0&&F.WindDelta!==0)for(var _=0,it=this.m_GhostJoins.length;_<it;_++){var St=this.m_GhostJoins[_];this.HorzSegmentsOverlap(St.OutPt1.Pt.X,St.OffPt.X,F.Bot.X,F.Top.X)&&this.AddJoin(St.OutPt1,k,St.OffPt)}if(E.OutIdx>=0&&E.PrevInAEL!==null&&E.PrevInAEL.Curr.X===E.Bot.X&&E.PrevInAEL.OutIdx>=0&&e.ClipperBase.SlopesEqual5(E.PrevInAEL.Curr,E.PrevInAEL.Top,E.Curr,E.Top,this.m_UseFullRange)&&E.WindDelta!==0&&E.PrevInAEL.WindDelta!==0){var Tt=this.AddOutPt(E.PrevInAEL,E.Bot);this.AddJoin(k,Tt,E.Top)}if(E.NextInAEL!==F){if(F.OutIdx>=0&&F.PrevInAEL.OutIdx>=0&&e.ClipperBase.SlopesEqual5(F.PrevInAEL.Curr,F.PrevInAEL.Top,F.Curr,F.Top,this.m_UseFullRange)&&F.WindDelta!==0&&F.PrevInAEL.WindDelta!==0){var Tt=this.AddOutPt(F.PrevInAEL,F.Bot);this.AddJoin(k,Tt,F.Top)}var Dt=E.NextInAEL;if(Dt!==null)for(;Dt!==F;)this.IntersectEdges(F,Dt,E.Curr),Dt=Dt.NextInAEL}}}},e.Clipper.prototype.InsertEdgeIntoAEL=function(a,x){if(this.m_ActiveEdges===null)a.PrevInAEL=null,a.NextInAEL=null,this.m_ActiveEdges=a;else if(x===null&&this.E2InsertsBeforeE1(this.m_ActiveEdges,a))a.PrevInAEL=null,a.NextInAEL=this.m_ActiveEdges,this.m_ActiveEdges.PrevInAEL=a,this.m_ActiveEdges=a;else{for(x===null&&(x=this.m_ActiveEdges);x.NextInAEL!==null&&!this.E2InsertsBeforeE1(x.NextInAEL,a);)x=x.NextInAEL;a.NextInAEL=x.NextInAEL,x.NextInAEL!==null&&(x.NextInAEL.PrevInAEL=a),a.PrevInAEL=x,x.NextInAEL=a}},e.Clipper.prototype.E2InsertsBeforeE1=function(a,x){return x.Curr.X===a.Curr.X?x.Top.Y>a.Top.Y?x.Top.X<e.Clipper.TopX(a,x.Top.Y):a.Top.X>e.Clipper.TopX(x,a.Top.Y):x.Curr.X<a.Curr.X},e.Clipper.prototype.IsEvenOddFillType=function(a){return a.PolyTyp===e.PolyType.ptSubject?this.m_SubjFillType===e.PolyFillType.pftEvenOdd:this.m_ClipFillType===e.PolyFillType.pftEvenOdd},e.Clipper.prototype.IsEvenOddAltFillType=function(a){return a.PolyTyp===e.PolyType.ptSubject?this.m_ClipFillType===e.PolyFillType.pftEvenOdd:this.m_SubjFillType===e.PolyFillType.pftEvenOdd},e.Clipper.prototype.IsContributing=function(a){var x,E;switch(a.PolyTyp===e.PolyType.ptSubject?(x=this.m_SubjFillType,E=this.m_ClipFillType):(x=this.m_ClipFillType,E=this.m_SubjFillType),x){case e.PolyFillType.pftEvenOdd:if(a.WindDelta===0&&a.WindCnt!==1)return!1;break;case e.PolyFillType.pftNonZero:if(Math.abs(a.WindCnt)!==1)return!1;break;case e.PolyFillType.pftPositive:if(a.WindCnt!==1)return!1;break;default:if(a.WindCnt!==-1)return!1;break}switch(this.m_ClipType){case e.ClipType.ctIntersection:switch(E){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return a.WindCnt2!==0;case e.PolyFillType.pftPositive:return a.WindCnt2>0;default:return a.WindCnt2<0}case e.ClipType.ctUnion:switch(E){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return a.WindCnt2===0;case e.PolyFillType.pftPositive:return a.WindCnt2<=0;default:return a.WindCnt2>=0}case e.ClipType.ctDifference:if(a.PolyTyp===e.PolyType.ptSubject)switch(E){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return a.WindCnt2===0;case e.PolyFillType.pftPositive:return a.WindCnt2<=0;default:return a.WindCnt2>=0}else switch(E){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return a.WindCnt2!==0;case e.PolyFillType.pftPositive:return a.WindCnt2>0;default:return a.WindCnt2<0}case e.ClipType.ctXor:if(a.WindDelta===0)switch(E){case e.PolyFillType.pftEvenOdd:case e.PolyFillType.pftNonZero:return a.WindCnt2===0;case e.PolyFillType.pftPositive:return a.WindCnt2<=0;default:return a.WindCnt2>=0}else return!0}return!0},e.Clipper.prototype.SetWindingCount=function(a){for(var x=a.PrevInAEL;x!==null&&(x.PolyTyp!==a.PolyTyp||x.WindDelta===0);)x=x.PrevInAEL;if(x===null){var E=a.PolyTyp===e.PolyType.ptSubject?this.m_SubjFillType:this.m_ClipFillType;a.WindDelta===0?a.WindCnt=E===e.PolyFillType.pftNegative?-1:1:a.WindCnt=a.WindDelta,a.WindCnt2=0,x=this.m_ActiveEdges}else if(a.WindDelta===0&&this.m_ClipType!==e.ClipType.ctUnion)a.WindCnt=1,a.WindCnt2=x.WindCnt2,x=x.NextInAEL;else if(this.IsEvenOddFillType(a)){if(a.WindDelta===0){for(var F=!0,k=x.PrevInAEL;k!==null;)k.PolyTyp===x.PolyTyp&&k.WindDelta!==0&&(F=!F),k=k.PrevInAEL;a.WindCnt=F?0:1}else a.WindCnt=a.WindDelta;a.WindCnt2=x.WindCnt2,x=x.NextInAEL}else x.WindCnt*x.WindDelta<0?Math.abs(x.WindCnt)>1?x.WindDelta*a.WindDelta<0?a.WindCnt=x.WindCnt:a.WindCnt=x.WindCnt+a.WindDelta:a.WindCnt=a.WindDelta===0?1:a.WindDelta:a.WindDelta===0?a.WindCnt=x.WindCnt<0?x.WindCnt-1:x.WindCnt+1:x.WindDelta*a.WindDelta<0?a.WindCnt=x.WindCnt:a.WindCnt=x.WindCnt+a.WindDelta,a.WindCnt2=x.WindCnt2,x=x.NextInAEL;if(this.IsEvenOddAltFillType(a))for(;x!==a;)x.WindDelta!==0&&(a.WindCnt2=a.WindCnt2===0?1:0),x=x.NextInAEL;else for(;x!==a;)a.WindCnt2+=x.WindDelta,x=x.NextInAEL},e.Clipper.prototype.AddEdgeToSEL=function(a){this.m_SortedEdges===null?(this.m_SortedEdges=a,a.PrevInSEL=null,a.NextInSEL=null):(a.NextInSEL=this.m_SortedEdges,a.PrevInSEL=null,this.m_SortedEdges.PrevInSEL=a,this.m_SortedEdges=a)},e.Clipper.prototype.PopEdgeFromSEL=function(a){if(a.v=this.m_SortedEdges,a.v===null)return!1;var x=a.v;return this.m_SortedEdges=a.v.NextInSEL,this.m_SortedEdges!==null&&(this.m_SortedEdges.PrevInSEL=null),x.NextInSEL=null,x.PrevInSEL=null,!0},e.Clipper.prototype.CopyAELToSEL=function(){var a=this.m_ActiveEdges;for(this.m_SortedEdges=a;a!==null;)a.PrevInSEL=a.PrevInAEL,a.NextInSEL=a.NextInAEL,a=a.NextInAEL},e.Clipper.prototype.SwapPositionsInSEL=function(a,x){if(!(a.NextInSEL===null&&a.PrevInSEL===null)&&!(x.NextInSEL===null&&x.PrevInSEL===null)){if(a.NextInSEL===x){var E=x.NextInSEL;E!==null&&(E.PrevInSEL=a);var F=a.PrevInSEL;F!==null&&(F.NextInSEL=x),x.PrevInSEL=F,x.NextInSEL=a,a.PrevInSEL=x,a.NextInSEL=E}else if(x.NextInSEL===a){var E=a.NextInSEL;E!==null&&(E.PrevInSEL=x);var F=x.PrevInSEL;F!==null&&(F.NextInSEL=a),a.PrevInSEL=F,a.NextInSEL=x,x.PrevInSEL=a,x.NextInSEL=E}else{var E=a.NextInSEL,F=a.PrevInSEL;a.NextInSEL=x.NextInSEL,a.NextInSEL!==null&&(a.NextInSEL.PrevInSEL=a),a.PrevInSEL=x.PrevInSEL,a.PrevInSEL!==null&&(a.PrevInSEL.NextInSEL=a),x.NextInSEL=E,x.NextInSEL!==null&&(x.NextInSEL.PrevInSEL=x),x.PrevInSEL=F,x.PrevInSEL!==null&&(x.PrevInSEL.NextInSEL=x)}a.PrevInSEL===null?this.m_SortedEdges=a:x.PrevInSEL===null&&(this.m_SortedEdges=x)}},e.Clipper.prototype.AddLocalMaxPoly=function(a,x,E){this.AddOutPt(a,E),x.WindDelta===0&&this.AddOutPt(x,E),a.OutIdx===x.OutIdx?(a.OutIdx=-1,x.OutIdx=-1):a.OutIdx<x.OutIdx?this.AppendPolygon(a,x):this.AppendPolygon(x,a)},e.Clipper.prototype.AddLocalMinPoly=function(a,x,E){var F,k,_;if(e.ClipperBase.IsHorizontal(x)||a.Dx>x.Dx?(F=this.AddOutPt(a,E),x.OutIdx=a.OutIdx,a.Side=e.EdgeSide.esLeft,x.Side=e.EdgeSide.esRight,k=a,k.PrevInAEL===x?_=x.PrevInAEL:_=k.PrevInAEL):(F=this.AddOutPt(x,E),a.OutIdx=x.OutIdx,a.Side=e.EdgeSide.esRight,x.Side=e.EdgeSide.esLeft,k=x,k.PrevInAEL===a?_=a.PrevInAEL:_=k.PrevInAEL),_!==null&&_.OutIdx>=0&&_.Top.Y<E.Y&&k.Top.Y<E.Y){var it=e.Clipper.TopX(_,E.Y),St=e.Clipper.TopX(k,E.Y);if(it===St&&k.WindDelta!==0&&_.WindDelta!==0&&e.ClipperBase.SlopesEqual5(new e.IntPoint2(it,E.Y),_.Top,new e.IntPoint2(St,E.Y),k.Top,this.m_UseFullRange)){var Tt=this.AddOutPt(_,E);this.AddJoin(F,Tt,k.Top)}}return F},e.Clipper.prototype.AddOutPt=function(a,x){if(a.OutIdx<0){var E=this.CreateOutRec();E.IsOpen=a.WindDelta===0;var F=new e.OutPt;return E.Pts=F,F.Idx=E.Idx,F.Pt.X=x.X,F.Pt.Y=x.Y,e.use_xyz&&(F.Pt.Z=x.Z),F.Next=F,F.Prev=F,E.IsOpen||this.SetHoleState(a,E),a.OutIdx=E.Idx,F}else{var E=this.m_PolyOuts[a.OutIdx],k=E.Pts,_=a.Side===e.EdgeSide.esLeft;if(_&&e.IntPoint.op_Equality(x,k.Pt))return k;if(!_&&e.IntPoint.op_Equality(x,k.Prev.Pt))return k.Prev;var F=new e.OutPt;return F.Idx=E.Idx,F.Pt.X=x.X,F.Pt.Y=x.Y,e.use_xyz&&(F.Pt.Z=x.Z),F.Next=k,F.Prev=k.Prev,F.Prev.Next=F,k.Prev=F,_&&(E.Pts=F),F}},e.Clipper.prototype.GetLastOutPt=function(a){var x=this.m_PolyOuts[a.OutIdx];return a.Side===e.EdgeSide.esLeft?x.Pts:x.Pts.Prev},e.Clipper.prototype.SwapPoints=function(a,x){var E=new e.IntPoint1(a.Value);a.Value.X=x.Value.X,a.Value.Y=x.Value.Y,e.use_xyz&&(a.Value.Z=x.Value.Z),x.Value.X=E.X,x.Value.Y=E.Y,e.use_xyz&&(x.Value.Z=E.Z)},e.Clipper.prototype.HorzSegmentsOverlap=function(a,x,E,F){var k;return a>x&&(k=a,a=x,x=k),E>F&&(k=E,E=F,F=k),a<F&&E<x},e.Clipper.prototype.SetHoleState=function(a,x){for(var E=a.PrevInAEL,F=null;E!==null;)E.OutIdx>=0&&E.WindDelta!==0&&(F===null?F=E:F.OutIdx===E.OutIdx&&(F=null)),E=E.PrevInAEL;F===null?(x.FirstLeft=null,x.IsHole=!1):(x.FirstLeft=this.m_PolyOuts[F.OutIdx],x.IsHole=!x.FirstLeft.IsHole)},e.Clipper.prototype.GetDx=function(a,x){return a.Y===x.Y?e.ClipperBase.horizontal:(x.X-a.X)/(x.Y-a.Y)},e.Clipper.prototype.FirstIsBottomPt=function(a,x){for(var E=a.Prev;e.IntPoint.op_Equality(E.Pt,a.Pt)&&E!==a;)E=E.Prev;var F=Math.abs(this.GetDx(a.Pt,E.Pt));for(E=a.Next;e.IntPoint.op_Equality(E.Pt,a.Pt)&&E!==a;)E=E.Next;var k=Math.abs(this.GetDx(a.Pt,E.Pt));for(E=x.Prev;e.IntPoint.op_Equality(E.Pt,x.Pt)&&E!==x;)E=E.Prev;var _=Math.abs(this.GetDx(x.Pt,E.Pt));for(E=x.Next;e.IntPoint.op_Equality(E.Pt,x.Pt)&&E!==x;)E=E.Next;var it=Math.abs(this.GetDx(x.Pt,E.Pt));return Math.max(F,k)===Math.max(_,it)&&Math.min(F,k)===Math.min(_,it)?this.Area(a)>0:F>=_&&F>=it||k>=_&&k>=it},e.Clipper.prototype.GetBottomPt=function(a){for(var x=null,E=a.Next;E!==a;)E.Pt.Y>a.Pt.Y?(a=E,x=null):E.Pt.Y===a.Pt.Y&&E.Pt.X<=a.Pt.X&&(E.Pt.X<a.Pt.X?(x=null,a=E):E.Next!==a&&E.Prev!==a&&(x=E)),E=E.Next;if(x!==null)for(;x!==E;)for(this.FirstIsBottomPt(E,x)||(a=x),x=x.Next;e.IntPoint.op_Inequality(x.Pt,a.Pt);)x=x.Next;return a},e.Clipper.prototype.GetLowermostRec=function(a,x){a.BottomPt===null&&(a.BottomPt=this.GetBottomPt(a.Pts)),x.BottomPt===null&&(x.BottomPt=this.GetBottomPt(x.Pts));var E=a.BottomPt,F=x.BottomPt;return E.Pt.Y>F.Pt.Y?a:E.Pt.Y<F.Pt.Y?x:E.Pt.X<F.Pt.X?a:E.Pt.X>F.Pt.X||E.Next===E?x:F.Next===F||this.FirstIsBottomPt(E,F)?a:x},e.Clipper.prototype.OutRec1RightOfOutRec2=function(a,x){do if(a=a.FirstLeft,a===x)return!0;while(a!==null);return!1},e.Clipper.prototype.GetOutRec=function(a){for(var x=this.m_PolyOuts[a];x!==this.m_PolyOuts[x.Idx];)x=this.m_PolyOuts[x.Idx];return x},e.Clipper.prototype.AppendPolygon=function(a,x){var E=this.m_PolyOuts[a.OutIdx],F=this.m_PolyOuts[x.OutIdx],k;this.OutRec1RightOfOutRec2(E,F)?k=F:this.OutRec1RightOfOutRec2(F,E)?k=E:k=this.GetLowermostRec(E,F);var _=E.Pts,it=_.Prev,St=F.Pts,Tt=St.Prev;a.Side===e.EdgeSide.esLeft?x.Side===e.EdgeSide.esLeft?(this.ReversePolyPtLinks(St),St.Next=_,_.Prev=St,it.Next=Tt,Tt.Prev=it,E.Pts=Tt):(Tt.Next=_,_.Prev=Tt,St.Prev=it,it.Next=St,E.Pts=St):x.Side===e.EdgeSide.esRight?(this.ReversePolyPtLinks(St),it.Next=Tt,Tt.Prev=it,St.Next=_,_.Prev=St):(it.Next=St,St.Prev=it,_.Prev=Tt,Tt.Next=_),E.BottomPt=null,k===F&&(F.FirstLeft!==E&&(E.FirstLeft=F.FirstLeft),E.IsHole=F.IsHole),F.Pts=null,F.BottomPt=null,F.FirstLeft=E;var Dt=a.OutIdx,Ht=x.OutIdx;a.OutIdx=-1,x.OutIdx=-1;for(var jt=this.m_ActiveEdges;jt!==null;){if(jt.OutIdx===Ht){jt.OutIdx=Dt,jt.Side=a.Side;break}jt=jt.NextInAEL}F.Idx=E.Idx},e.Clipper.prototype.ReversePolyPtLinks=function(a){if(a!==null){var x,E;x=a;do E=x.Next,x.Next=x.Prev,x.Prev=E,x=E;while(x!==a)}},e.Clipper.SwapSides=function(a,x){var E=a.Side;a.Side=x.Side,x.Side=E},e.Clipper.SwapPolyIndexes=function(a,x){var E=a.OutIdx;a.OutIdx=x.OutIdx,x.OutIdx=E},e.Clipper.prototype.IntersectEdges=function(a,x,E){var F=a.OutIdx>=0,k=x.OutIdx>=0;if(e.use_xyz&&this.SetZ(E,a,x),e.use_lines&&(a.WindDelta===0||x.WindDelta===0)){if(a.WindDelta===0&&x.WindDelta===0)return;a.PolyTyp===x.PolyTyp&&a.WindDelta!==x.WindDelta&&this.m_ClipType===e.ClipType.ctUnion?a.WindDelta===0?k&&(this.AddOutPt(a,E),F&&(a.OutIdx=-1)):F&&(this.AddOutPt(x,E),k&&(x.OutIdx=-1)):a.PolyTyp!==x.PolyTyp&&(a.WindDelta===0&&Math.abs(x.WindCnt)===1&&(this.m_ClipType!==e.ClipType.ctUnion||x.WindCnt2===0)?(this.AddOutPt(a,E),F&&(a.OutIdx=-1)):x.WindDelta===0&&Math.abs(a.WindCnt)===1&&(this.m_ClipType!==e.ClipType.ctUnion||a.WindCnt2===0)&&(this.AddOutPt(x,E),k&&(x.OutIdx=-1)));return}if(a.PolyTyp===x.PolyTyp)if(this.IsEvenOddFillType(a)){var _=a.WindCnt;a.WindCnt=x.WindCnt,x.WindCnt=_}else a.WindCnt+x.WindDelta===0?a.WindCnt=-a.WindCnt:a.WindCnt+=x.WindDelta,x.WindCnt-a.WindDelta===0?x.WindCnt=-x.WindCnt:x.WindCnt-=a.WindDelta;else this.IsEvenOddFillType(x)?a.WindCnt2=a.WindCnt2===0?1:0:a.WindCnt2+=x.WindDelta,this.IsEvenOddFillType(a)?x.WindCnt2=x.WindCnt2===0?1:0:x.WindCnt2-=a.WindDelta;var it,St,Tt,Dt;a.PolyTyp===e.PolyType.ptSubject?(it=this.m_SubjFillType,Tt=this.m_ClipFillType):(it=this.m_ClipFillType,Tt=this.m_SubjFillType),x.PolyTyp===e.PolyType.ptSubject?(St=this.m_SubjFillType,Dt=this.m_ClipFillType):(St=this.m_ClipFillType,Dt=this.m_SubjFillType);var Ht,jt;switch(it){case e.PolyFillType.pftPositive:Ht=a.WindCnt;break;case e.PolyFillType.pftNegative:Ht=-a.WindCnt;break;default:Ht=Math.abs(a.WindCnt);break}switch(St){case e.PolyFillType.pftPositive:jt=x.WindCnt;break;case e.PolyFillType.pftNegative:jt=-x.WindCnt;break;default:jt=Math.abs(x.WindCnt);break}if(F&&k)Ht!==0&&Ht!==1||jt!==0&&jt!==1||a.PolyTyp!==x.PolyTyp&&this.m_ClipType!==e.ClipType.ctXor?this.AddLocalMaxPoly(a,x,E):(this.AddOutPt(a,E),this.AddOutPt(x,E),e.Clipper.SwapSides(a,x),e.Clipper.SwapPolyIndexes(a,x));else if(F)(jt===0||jt===1)&&(this.AddOutPt(a,E),e.Clipper.SwapSides(a,x),e.Clipper.SwapPolyIndexes(a,x));else if(k)(Ht===0||Ht===1)&&(this.AddOutPt(x,E),e.Clipper.SwapSides(a,x),e.Clipper.SwapPolyIndexes(a,x));else if((Ht===0||Ht===1)&&(jt===0||jt===1)){var _t,oe;switch(Tt){case e.PolyFillType.pftPositive:_t=a.WindCnt2;break;case e.PolyFillType.pftNegative:_t=-a.WindCnt2;break;default:_t=Math.abs(a.WindCnt2);break}switch(Dt){case e.PolyFillType.pftPositive:oe=x.WindCnt2;break;case e.PolyFillType.pftNegative:oe=-x.WindCnt2;break;default:oe=Math.abs(x.WindCnt2);break}if(a.PolyTyp!==x.PolyTyp)this.AddLocalMinPoly(a,x,E);else if(Ht===1&&jt===1)switch(this.m_ClipType){case e.ClipType.ctIntersection:_t>0&&oe>0&&this.AddLocalMinPoly(a,x,E);break;case e.ClipType.ctUnion:_t<=0&&oe<=0&&this.AddLocalMinPoly(a,x,E);break;case e.ClipType.ctDifference:(a.PolyTyp===e.PolyType.ptClip&&_t>0&&oe>0||a.PolyTyp===e.PolyType.ptSubject&&_t<=0&&oe<=0)&&this.AddLocalMinPoly(a,x,E);break;case e.ClipType.ctXor:this.AddLocalMinPoly(a,x,E);break}else e.Clipper.SwapSides(a,x)}},e.Clipper.prototype.DeleteFromSEL=function(a){var x=a.PrevInSEL,E=a.NextInSEL;x===null&&E===null&&a!==this.m_SortedEdges||(x!==null?x.NextInSEL=E:this.m_SortedEdges=E,E!==null&&(E.PrevInSEL=x),a.NextInSEL=null,a.PrevInSEL=null)},e.Clipper.prototype.ProcessHorizontals=function(){for(var a={};this.PopEdgeFromSEL(a);)this.ProcessHorizontal(a.v)},e.Clipper.prototype.GetHorzDirection=function(a,x){a.Bot.X<a.Top.X?(x.Left=a.Bot.X,x.Right=a.Top.X,x.Dir=e.Direction.dLeftToRight):(x.Left=a.Top.X,x.Right=a.Bot.X,x.Dir=e.Direction.dRightToLeft)},e.Clipper.prototype.ProcessHorizontal=function(a){var x={Dir:null,Left:null,Right:null};this.GetHorzDirection(a,x);for(var E=x.Dir,F=x.Left,k=x.Right,_=a.WindDelta===0,it=a,St=null;it.NextInLML!==null&&e.ClipperBase.IsHorizontal(it.NextInLML);)it=it.NextInLML;it.NextInLML===null&&(St=this.GetMaximaPair(it));var Tt=this.m_Maxima;if(Tt!==null)if(E===e.Direction.dLeftToRight){for(;Tt!==null&&Tt.X<=a.Bot.X;)Tt=Tt.Next;Tt!==null&&Tt.X>=it.Top.X&&(Tt=null)}else{for(;Tt.Next!==null&&Tt.Next.X<a.Bot.X;)Tt=Tt.Next;Tt.X<=it.Top.X&&(Tt=null)}for(var Dt=null;;){for(var Ht=a===it,jt=this.GetNextInAEL(a,E);jt!==null;){if(Tt!==null)if(E===e.Direction.dLeftToRight)for(;Tt!==null&&Tt.X<jt.Curr.X;)a.OutIdx>=0&&!_&&this.AddOutPt(a,new e.IntPoint2(Tt.X,a.Bot.Y)),Tt=Tt.Next;else for(;Tt!==null&&Tt.X>jt.Curr.X;)a.OutIdx>=0&&!_&&this.AddOutPt(a,new e.IntPoint2(Tt.X,a.Bot.Y)),Tt=Tt.Prev;if(E===e.Direction.dLeftToRight&&jt.Curr.X>k||E===e.Direction.dRightToLeft&&jt.Curr.X<F||jt.Curr.X===a.Top.X&&a.NextInLML!==null&&jt.Dx<a.NextInLML.Dx)break;if(a.OutIdx>=0&&!_){e.use_xyz&&(E===e.Direction.dLeftToRight?this.SetZ(jt.Curr,a,jt):this.SetZ(jt.Curr,jt,a)),Dt=this.AddOutPt(a,jt.Curr);for(var _t=this.m_SortedEdges;_t!==null;){if(_t.OutIdx>=0&&this.HorzSegmentsOverlap(a.Bot.X,a.Top.X,_t.Bot.X,_t.Top.X)){var oe=this.GetLastOutPt(_t);this.AddJoin(oe,Dt,_t.Top)}_t=_t.NextInSEL}this.AddGhostJoin(Dt,a.Bot)}if(jt===St&&Ht){a.OutIdx>=0&&this.AddLocalMaxPoly(a,St,a.Top),this.DeleteFromAEL(a),this.DeleteFromAEL(St);return}if(E===e.Direction.dLeftToRight){var me=new e.IntPoint2(jt.Curr.X,a.Curr.Y);this.IntersectEdges(a,jt,me)}else{var me=new e.IntPoint2(jt.Curr.X,a.Curr.Y);this.IntersectEdges(jt,a,me)}var Se=this.GetNextInAEL(jt,E);this.SwapPositionsInAEL(a,jt),jt=Se}if(a.NextInLML===null||!e.ClipperBase.IsHorizontal(a.NextInLML))break;a=this.UpdateEdgeIntoAEL(a),a.OutIdx>=0&&this.AddOutPt(a,a.Bot),x={Dir:E,Left:F,Right:k},this.GetHorzDirection(a,x),E=x.Dir,F=x.Left,k=x.Right}if(a.OutIdx>=0&&Dt===null){Dt=this.GetLastOutPt(a);for(var _t=this.m_SortedEdges;_t!==null;){if(_t.OutIdx>=0&&this.HorzSegmentsOverlap(a.Bot.X,a.Top.X,_t.Bot.X,_t.Top.X)){var oe=this.GetLastOutPt(_t);this.AddJoin(oe,Dt,_t.Top)}_t=_t.NextInSEL}this.AddGhostJoin(Dt,a.Top)}if(a.NextInLML!==null)if(a.OutIdx>=0){if(Dt=this.AddOutPt(a,a.Top),a=this.UpdateEdgeIntoAEL(a),a.WindDelta===0)return;var be=a.PrevInAEL,Se=a.NextInAEL;if(be!==null&&be.Curr.X===a.Bot.X&&be.Curr.Y===a.Bot.Y&&be.WindDelta===0&&be.OutIdx>=0&&be.Curr.Y>be.Top.Y&&e.ClipperBase.SlopesEqual3(a,be,this.m_UseFullRange)){var oe=this.AddOutPt(be,a.Bot);this.AddJoin(Dt,oe,a.Top)}else if(Se!==null&&Se.Curr.X===a.Bot.X&&Se.Curr.Y===a.Bot.Y&&Se.WindDelta!==0&&Se.OutIdx>=0&&Se.Curr.Y>Se.Top.Y&&e.ClipperBase.SlopesEqual3(a,Se,this.m_UseFullRange)){var oe=this.AddOutPt(Se,a.Bot);this.AddJoin(Dt,oe,a.Top)}}else a=this.UpdateEdgeIntoAEL(a);else a.OutIdx>=0&&this.AddOutPt(a,a.Top),this.DeleteFromAEL(a)},e.Clipper.prototype.GetNextInAEL=function(a,x){return x===e.Direction.dLeftToRight?a.NextInAEL:a.PrevInAEL},e.Clipper.prototype.IsMinima=function(a){return a!==null&&a.Prev.NextInLML!==a&&a.Next.NextInLML!==a},e.Clipper.prototype.IsMaxima=function(a,x){return a!==null&&a.Top.Y===x&&a.NextInLML===null},e.Clipper.prototype.IsIntermediate=function(a,x){return a.Top.Y===x&&a.NextInLML!==null},e.Clipper.prototype.GetMaximaPair=function(a){return e.IntPoint.op_Equality(a.Next.Top,a.Top)&&a.Next.NextInLML===null?a.Next:e.IntPoint.op_Equality(a.Prev.Top,a.Top)&&a.Prev.NextInLML===null?a.Prev:null},e.Clipper.prototype.GetMaximaPairEx=function(a){var x=this.GetMaximaPair(a);return x===null||x.OutIdx===e.ClipperBase.Skip||x.NextInAEL===x.PrevInAEL&&!e.ClipperBase.IsHorizontal(x)?null:x},e.Clipper.prototype.ProcessIntersections=function(a){if(this.m_ActiveEdges===null)return!0;try{if(this.BuildIntersectList(a),this.m_IntersectList.length===0)return!0;if(this.m_IntersectList.length===1||this.FixupIntersectionOrder())this.ProcessIntersectList();else return!1}catch{this.m_SortedEdges=null,this.m_IntersectList.length=0,e.Error("ProcessIntersections error")}return this.m_SortedEdges=null,!0},e.Clipper.prototype.BuildIntersectList=function(a){if(this.m_ActiveEdges!==null){var x=this.m_ActiveEdges;for(this.m_SortedEdges=x;x!==null;)x.PrevInSEL=x.PrevInAEL,x.NextInSEL=x.NextInAEL,x.Curr.X=e.Clipper.TopX(x,a),x=x.NextInAEL;for(var E=!0;E&&this.m_SortedEdges!==null;){for(E=!1,x=this.m_SortedEdges;x.NextInSEL!==null;){var F=x.NextInSEL,k=new e.IntPoint0;if(x.Curr.X>F.Curr.X){this.IntersectPoint(x,F,k),k.Y<a&&(k=new e.IntPoint2(e.Clipper.TopX(x,a),a));var _=new e.IntersectNode;_.Edge1=x,_.Edge2=F,_.Pt.X=k.X,_.Pt.Y=k.Y,e.use_xyz&&(_.Pt.Z=k.Z),this.m_IntersectList.push(_),this.SwapPositionsInSEL(x,F),E=!0}else x=F}if(x.PrevInSEL!==null)x.PrevInSEL.NextInSEL=null;else break}this.m_SortedEdges=null}},e.Clipper.prototype.EdgesAdjacent=function(a){return a.Edge1.NextInSEL===a.Edge2||a.Edge1.PrevInSEL===a.Edge2},e.Clipper.IntersectNodeSort=function(a,x){return x.Pt.Y-a.Pt.Y},e.Clipper.prototype.FixupIntersectionOrder=function(){this.m_IntersectList.sort(this.m_IntersectNodeComparer),this.CopyAELToSEL();for(var a=this.m_IntersectList.length,x=0;x<a;x++){if(!this.EdgesAdjacent(this.m_IntersectList[x])){for(var E=x+1;E<a&&!this.EdgesAdjacent(this.m_IntersectList[E]);)E++;if(E===a)return!1;var F=this.m_IntersectList[x];this.m_IntersectList[x]=this.m_IntersectList[E],this.m_IntersectList[E]=F}this.SwapPositionsInSEL(this.m_IntersectList[x].Edge1,this.m_IntersectList[x].Edge2)}return!0},e.Clipper.prototype.ProcessIntersectList=function(){for(var a=0,x=this.m_IntersectList.length;a<x;a++){var E=this.m_IntersectList[a];this.IntersectEdges(E.Edge1,E.Edge2,E.Pt),this.SwapPositionsInAEL(E.Edge1,E.Edge2)}this.m_IntersectList.length=0};var Yi=function(a){return a<0?Math.ceil(a-.5):Math.round(a)},Ea=function(a){return a<0?Math.ceil(a-.5):Math.floor(a+.5)},Us=function(a){return a<0?-Math.round(Math.abs(a)):Math.round(a)},ui=function(a){return a<0?(a-=.5,a<-2147483648?Math.ceil(a):a|0):(a+=.5,a>2147483647?Math.floor(a):a|0)};s.msie?e.Clipper.Round=Yi:s.chromium?e.Clipper.Round=Us:s.safari?e.Clipper.Round=ui:e.Clipper.Round=Ea,e.Clipper.TopX=function(a,x){return x===a.Top.Y?a.Top.X:a.Bot.X+e.Clipper.Round(a.Dx*(x-a.Bot.Y))},e.Clipper.prototype.IntersectPoint=function(a,x,E){E.X=0,E.Y=0;var F,k;if(a.Dx===x.Dx){E.Y=a.Curr.Y,E.X=e.Clipper.TopX(a,E.Y);return}if(a.Delta.X===0)E.X=a.Bot.X,e.ClipperBase.IsHorizontal(x)?E.Y=x.Bot.Y:(k=x.Bot.Y-x.Bot.X/x.Dx,E.Y=e.Clipper.Round(E.X/x.Dx+k));else if(x.Delta.X===0)E.X=x.Bot.X,e.ClipperBase.IsHorizontal(a)?E.Y=a.Bot.Y:(F=a.Bot.Y-a.Bot.X/a.Dx,E.Y=e.Clipper.Round(E.X/a.Dx+F));else{F=a.Bot.X-a.Bot.Y*a.Dx,k=x.Bot.X-x.Bot.Y*x.Dx;var _=(k-F)/(a.Dx-x.Dx);E.Y=e.Clipper.Round(_),Math.abs(a.Dx)<Math.abs(x.Dx)?E.X=e.Clipper.Round(a.Dx*_+F):E.X=e.Clipper.Round(x.Dx*_+k)}if(E.Y<a.Top.Y||E.Y<x.Top.Y){if(a.Top.Y>x.Top.Y)return E.Y=a.Top.Y,E.X=e.Clipper.TopX(x,a.Top.Y),E.X<a.Top.X;E.Y=x.Top.Y,Math.abs(a.Dx)<Math.abs(x.Dx)?E.X=e.Clipper.TopX(a,E.Y):E.X=e.Clipper.TopX(x,E.Y)}E.Y>a.Curr.Y&&(E.Y=a.Curr.Y,Math.abs(a.Dx)>Math.abs(x.Dx)?E.X=e.Clipper.TopX(x,E.Y):E.X=e.Clipper.TopX(a,E.Y))},e.Clipper.prototype.ProcessEdgesAtTopOfScanbeam=function(a){for(var x=this.m_ActiveEdges;x!==null;){var E=this.IsMaxima(x,a);if(E){var F=this.GetMaximaPairEx(x);E=F===null||!e.ClipperBase.IsHorizontal(F)}if(E){this.StrictlySimple&&this.InsertMaxima(x.Top.X);var k=x.PrevInAEL;this.DoMaxima(x),k===null?x=this.m_ActiveEdges:x=k.NextInAEL}else{if(this.IsIntermediate(x,a)&&e.ClipperBase.IsHorizontal(x.NextInLML)?(x=this.UpdateEdgeIntoAEL(x),x.OutIdx>=0&&this.AddOutPt(x,x.Bot),this.AddEdgeToSEL(x)):(x.Curr.X=e.Clipper.TopX(x,a),x.Curr.Y=a),e.use_xyz&&(x.Top.Y===a?x.Curr.Z=x.Top.Z:x.Bot.Y===a?x.Curr.Z=x.Bot.Z:x.Curr.Z=0),this.StrictlySimple){var k=x.PrevInAEL;if(x.OutIdx>=0&&x.WindDelta!==0&&k!==null&&k.OutIdx>=0&&k.Curr.X===x.Curr.X&&k.WindDelta!==0){var _=new e.IntPoint1(x.Curr);e.use_xyz&&this.SetZ(_,k,x);var it=this.AddOutPt(k,_),St=this.AddOutPt(x,_);this.AddJoin(it,St,_)}}x=x.NextInAEL}}for(this.ProcessHorizontals(),this.m_Maxima=null,x=this.m_ActiveEdges;x!==null;){if(this.IsIntermediate(x,a)){var it=null;x.OutIdx>=0&&(it=this.AddOutPt(x,x.Top)),x=this.UpdateEdgeIntoAEL(x);var k=x.PrevInAEL,Tt=x.NextInAEL;if(k!==null&&k.Curr.X===x.Bot.X&&k.Curr.Y===x.Bot.Y&&it!==null&&k.OutIdx>=0&&k.Curr.Y===k.Top.Y&&e.ClipperBase.SlopesEqual5(x.Curr,x.Top,k.Curr,k.Top,this.m_UseFullRange)&&x.WindDelta!==0&&k.WindDelta!==0){var St=this.AddOutPt(ePrev2,x.Bot);this.AddJoin(it,St,x.Top)}else if(Tt!==null&&Tt.Curr.X===x.Bot.X&&Tt.Curr.Y===x.Bot.Y&&it!==null&&Tt.OutIdx>=0&&Tt.Curr.Y===Tt.Top.Y&&e.ClipperBase.SlopesEqual5(x.Curr,x.Top,Tt.Curr,Tt.Top,this.m_UseFullRange)&&x.WindDelta!==0&&Tt.WindDelta!==0){var St=this.AddOutPt(Tt,x.Bot);this.AddJoin(it,St,x.Top)}}x=x.NextInAEL}},e.Clipper.prototype.DoMaxima=function(a){var x=this.GetMaximaPairEx(a);if(x===null){a.OutIdx>=0&&this.AddOutPt(a,a.Top),this.DeleteFromAEL(a);return}for(var E=a.NextInAEL;E!==null&&E!==x;)this.IntersectEdges(a,E,a.Top),this.SwapPositionsInAEL(a,E),E=a.NextInAEL;a.OutIdx===-1&&x.OutIdx===-1?(this.DeleteFromAEL(a),this.DeleteFromAEL(x)):a.OutIdx>=0&&x.OutIdx>=0?(a.OutIdx>=0&&this.AddLocalMaxPoly(a,x,a.Top),this.DeleteFromAEL(a),this.DeleteFromAEL(x)):e.use_lines&&a.WindDelta===0?(a.OutIdx>=0&&(this.AddOutPt(a,a.Top),a.OutIdx=e.ClipperBase.Unassigned),this.DeleteFromAEL(a),x.OutIdx>=0&&(this.AddOutPt(x,a.Top),x.OutIdx=e.ClipperBase.Unassigned),this.DeleteFromAEL(x)):e.Error("DoMaxima error")},e.Clipper.ReversePaths=function(a){for(var x=0,E=a.length;x<E;x++)a[x].reverse()},e.Clipper.Orientation=function(a){return e.Clipper.Area(a)>=0},e.Clipper.prototype.PointCount=function(a){if(a===null)return 0;var x=0,E=a;do x++,E=E.Next;while(E!==a);return x},e.Clipper.prototype.BuildResult=function(a){e.Clear(a);for(var x=0,E=this.m_PolyOuts.length;x<E;x++){var F=this.m_PolyOuts[x];if(F.Pts!==null){var k=F.Pts.Prev,_=this.PointCount(k);if(!(_<2)){for(var it=new Array(_),St=0;St<_;St++)it[St]=k.Pt,k=k.Prev;a.push(it)}}}},e.Clipper.prototype.BuildResult2=function(a){a.Clear();for(var x=0,E=this.m_PolyOuts.length;x<E;x++){var F=this.m_PolyOuts[x],k=this.PointCount(F.Pts);if(!(F.IsOpen&&k<2||!F.IsOpen&&k<3)){this.FixHoleLinkage(F);var _=new e.PolyNode;a.m_AllPolys.push(_),F.PolyNode=_,_.m_polygon.length=k;for(var it=F.Pts.Prev,St=0;St<k;St++)_.m_polygon[St]=it.Pt,it=it.Prev}}for(var x=0,E=this.m_PolyOuts.length;x<E;x++){var F=this.m_PolyOuts[x];F.PolyNode!==null&&(F.IsOpen?(F.PolyNode.IsOpen=!0,a.AddChild(F.PolyNode)):F.FirstLeft!==null&&F.FirstLeft.PolyNode!==null?F.FirstLeft.PolyNode.AddChild(F.PolyNode):a.AddChild(F.PolyNode))}},e.Clipper.prototype.FixupOutPolyline=function(a){for(var x=a.Pts,E=x.Prev;x!==E;)if(x=x.Next,e.IntPoint.op_Equality(x.Pt,x.Prev.Pt)){x===E&&(E=x.Prev);var F=x.Prev;F.Next=x.Next,x.Next.Prev=F,x=F}x===x.Prev&&(a.Pts=null)},e.Clipper.prototype.FixupOutPolygon=function(a){var x=null;a.BottomPt=null;for(var E=a.Pts,F=this.PreserveCollinear||this.StrictlySimple;;){if(E.Prev===E||E.Prev===E.Next){a.Pts=null;return}if(e.IntPoint.op_Equality(E.Pt,E.Next.Pt)||e.IntPoint.op_Equality(E.Pt,E.Prev.Pt)||e.ClipperBase.SlopesEqual4(E.Prev.Pt,E.Pt,E.Next.Pt,this.m_UseFullRange)&&(!F||!this.Pt2IsBetweenPt1AndPt3(E.Prev.Pt,E.Pt,E.Next.Pt)))x=null,E.Prev.Next=E.Next,E.Next.Prev=E.Prev,E=E.Prev;else{if(E===x)break;x===null&&(x=E),E=E.Next}}a.Pts=E},e.Clipper.prototype.DupOutPt=function(a,x){var E=new e.OutPt;return E.Pt.X=a.Pt.X,E.Pt.Y=a.Pt.Y,e.use_xyz&&(E.Pt.Z=a.Pt.Z),E.Idx=a.Idx,x?(E.Next=a.Next,E.Prev=a,a.Next.Prev=E,a.Next=E):(E.Prev=a.Prev,E.Next=a,a.Prev.Next=E,a.Prev=E),E},e.Clipper.prototype.GetOverlap=function(a,x,E,F,k){return a<x?E<F?(k.Left=Math.max(a,E),k.Right=Math.min(x,F)):(k.Left=Math.max(a,F),k.Right=Math.min(x,E)):E<F?(k.Left=Math.max(x,E),k.Right=Math.min(a,F)):(k.Left=Math.max(x,F),k.Right=Math.min(a,E)),k.Left<k.Right},e.Clipper.prototype.JoinHorz=function(a,x,E,F,k,_){var it=a.Pt.X>x.Pt.X?e.Direction.dRightToLeft:e.Direction.dLeftToRight,St=E.Pt.X>F.Pt.X?e.Direction.dRightToLeft:e.Direction.dLeftToRight;if(it===St)return!1;if(it===e.Direction.dLeftToRight){for(;a.Next.Pt.X<=k.X&&a.Next.Pt.X>=a.Pt.X&&a.Next.Pt.Y===k.Y;)a=a.Next;_&&a.Pt.X!==k.X&&(a=a.Next),x=this.DupOutPt(a,!_),e.IntPoint.op_Inequality(x.Pt,k)&&(a=x,a.Pt.X=k.X,a.Pt.Y=k.Y,e.use_xyz&&(a.Pt.Z=k.Z),x=this.DupOutPt(a,!_))}else{for(;a.Next.Pt.X>=k.X&&a.Next.Pt.X<=a.Pt.X&&a.Next.Pt.Y===k.Y;)a=a.Next;!_&&a.Pt.X!==k.X&&(a=a.Next),x=this.DupOutPt(a,_),e.IntPoint.op_Inequality(x.Pt,k)&&(a=x,a.Pt.X=k.X,a.Pt.Y=k.Y,e.use_xyz&&(a.Pt.Z=k.Z),x=this.DupOutPt(a,_))}if(St===e.Direction.dLeftToRight){for(;E.Next.Pt.X<=k.X&&E.Next.Pt.X>=E.Pt.X&&E.Next.Pt.Y===k.Y;)E=E.Next;_&&E.Pt.X!==k.X&&(E=E.Next),F=this.DupOutPt(E,!_),e.IntPoint.op_Inequality(F.Pt,k)&&(E=F,E.Pt.X=k.X,E.Pt.Y=k.Y,e.use_xyz&&(E.Pt.Z=k.Z),F=this.DupOutPt(E,!_))}else{for(;E.Next.Pt.X>=k.X&&E.Next.Pt.X<=E.Pt.X&&E.Next.Pt.Y===k.Y;)E=E.Next;!_&&E.Pt.X!==k.X&&(E=E.Next),F=this.DupOutPt(E,_),e.IntPoint.op_Inequality(F.Pt,k)&&(E=F,E.Pt.X=k.X,E.Pt.Y=k.Y,e.use_xyz&&(E.Pt.Z=k.Z),F=this.DupOutPt(E,_))}return it===e.Direction.dLeftToRight===_?(a.Prev=E,E.Next=a,x.Next=F,F.Prev=x):(a.Next=E,E.Prev=a,x.Prev=F,F.Next=x),!0},e.Clipper.prototype.JoinPoints=function(a,x,E){var F=a.OutPt1,k=new e.OutPt,_=a.OutPt2,it=new e.OutPt,St=a.OutPt1.Pt.Y===a.OffPt.Y;if(St&&e.IntPoint.op_Equality(a.OffPt,a.OutPt1.Pt)&&e.IntPoint.op_Equality(a.OffPt,a.OutPt2.Pt)){if(x!==E)return!1;for(k=a.OutPt1.Next;k!==F&&e.IntPoint.op_Equality(k.Pt,a.OffPt);)k=k.Next;var Tt=k.Pt.Y>a.OffPt.Y;for(it=a.OutPt2.Next;it!==_&&e.IntPoint.op_Equality(it.Pt,a.OffPt);)it=it.Next;var Dt=it.Pt.Y>a.OffPt.Y;return Tt===Dt?!1:Tt?(k=this.DupOutPt(F,!1),it=this.DupOutPt(_,!0),F.Prev=_,_.Next=F,k.Next=it,it.Prev=k,a.OutPt1=F,a.OutPt2=k,!0):(k=this.DupOutPt(F,!0),it=this.DupOutPt(_,!1),F.Next=_,_.Prev=F,k.Prev=it,it.Next=k,a.OutPt1=F,a.OutPt2=k,!0)}else if(St){for(k=F;F.Prev.Pt.Y===F.Pt.Y&&F.Prev!==k&&F.Prev!==_;)F=F.Prev;for(;k.Next.Pt.Y===k.Pt.Y&&k.Next!==F&&k.Next!==_;)k=k.Next;if(k.Next===F||k.Next===_)return!1;for(it=_;_.Prev.Pt.Y===_.Pt.Y&&_.Prev!==it&&_.Prev!==k;)_=_.Prev;for(;it.Next.Pt.Y===it.Pt.Y&&it.Next!==_&&it.Next!==F;)it=it.Next;if(it.Next===_||it.Next===F)return!1;var Ht={Left:null,Right:null};if(!this.GetOverlap(F.Pt.X,k.Pt.X,_.Pt.X,it.Pt.X,Ht))return!1;var jt=Ht.Left,_t=Ht.Right,oe=new e.IntPoint0,me;return F.Pt.X>=jt&&F.Pt.X<=_t?(oe.X=F.Pt.X,oe.Y=F.Pt.Y,e.use_xyz&&(oe.Z=F.Pt.Z),me=F.Pt.X>k.Pt.X):_.Pt.X>=jt&&_.Pt.X<=_t?(oe.X=_.Pt.X,oe.Y=_.Pt.Y,e.use_xyz&&(oe.Z=_.Pt.Z),me=_.Pt.X>it.Pt.X):k.Pt.X>=jt&&k.Pt.X<=_t?(oe.X=k.Pt.X,oe.Y=k.Pt.Y,e.use_xyz&&(oe.Z=k.Pt.Z),me=k.Pt.X>F.Pt.X):(oe.X=it.Pt.X,oe.Y=it.Pt.Y,e.use_xyz&&(oe.Z=it.Pt.Z),me=it.Pt.X>_.Pt.X),a.OutPt1=F,a.OutPt2=_,this.JoinHorz(F,k,_,it,oe,me)}else{for(k=F.Next;e.IntPoint.op_Equality(k.Pt,F.Pt)&&k!==F;)k=k.Next;var Se=k.Pt.Y>F.Pt.Y||!e.ClipperBase.SlopesEqual4(F.Pt,k.Pt,a.OffPt,this.m_UseFullRange);if(Se){for(k=F.Prev;e.IntPoint.op_Equality(k.Pt,F.Pt)&&k!==F;)k=k.Prev;if(k.Pt.Y>F.Pt.Y||!e.ClipperBase.SlopesEqual4(F.Pt,k.Pt,a.OffPt,this.m_UseFullRange))return!1}for(it=_.Next;e.IntPoint.op_Equality(it.Pt,_.Pt)&&it!==_;)it=it.Next;var be=it.Pt.Y>_.Pt.Y||!e.ClipperBase.SlopesEqual4(_.Pt,it.Pt,a.OffPt,this.m_UseFullRange);if(be){for(it=_.Prev;e.IntPoint.op_Equality(it.Pt,_.Pt)&&it!==_;)it=it.Prev;if(it.Pt.Y>_.Pt.Y||!e.ClipperBase.SlopesEqual4(_.Pt,it.Pt,a.OffPt,this.m_UseFullRange))return!1}return k===F||it===_||k===it||x===E&&Se===be?!1:Se?(k=this.DupOutPt(F,!1),it=this.DupOutPt(_,!0),F.Prev=_,_.Next=F,k.Next=it,it.Prev=k,a.OutPt1=F,a.OutPt2=k,!0):(k=this.DupOutPt(F,!0),it=this.DupOutPt(_,!1),F.Next=_,_.Prev=F,k.Prev=it,it.Next=k,a.OutPt1=F,a.OutPt2=k,!0)}},e.Clipper.GetBounds=function(a){for(var x=0,E=a.length;x<E&&a[x].length===0;)x++;if(x===E)return new e.IntRect(0,0,0,0);var F=new e.IntRect;for(F.left=a[x][0].X,F.right=F.left,F.top=a[x][0].Y,F.bottom=F.top;x<E;x++)for(var k=0,_=a[x].length;k<_;k++)a[x][k].X<F.left?F.left=a[x][k].X:a[x][k].X>F.right&&(F.right=a[x][k].X),a[x][k].Y<F.top?F.top=a[x][k].Y:a[x][k].Y>F.bottom&&(F.bottom=a[x][k].Y);return F},e.Clipper.prototype.GetBounds2=function(a){var x=a,E=new e.IntRect;for(E.left=a.Pt.X,E.right=a.Pt.X,E.top=a.Pt.Y,E.bottom=a.Pt.Y,a=a.Next;a!==x;)a.Pt.X<E.left&&(E.left=a.Pt.X),a.Pt.X>E.right&&(E.right=a.Pt.X),a.Pt.Y<E.top&&(E.top=a.Pt.Y),a.Pt.Y>E.bottom&&(E.bottom=a.Pt.Y),a=a.Next;return E},e.Clipper.PointInPolygon=function(a,x){var E=0,F=x.length;if(F<3)return 0;for(var k=x[0],_=1;_<=F;++_){var it=_===F?x[0]:x[_];if(it.Y===a.Y&&(it.X===a.X||k.Y===a.Y&&it.X>a.X==k.X<a.X))return-1;if(k.Y<a.Y!=it.Y<a.Y){if(k.X>=a.X)if(it.X>a.X)E=1-E;else{var St=(k.X-a.X)*(it.Y-a.Y)-(it.X-a.X)*(k.Y-a.Y);if(St===0)return-1;St>0==it.Y>k.Y&&(E=1-E)}else if(it.X>a.X){var St=(k.X-a.X)*(it.Y-a.Y)-(it.X-a.X)*(k.Y-a.Y);if(St===0)return-1;St>0==it.Y>k.Y&&(E=1-E)}}k=it}return E},e.Clipper.prototype.PointInPolygon=function(a,x){var E=0,F=x,k=a.X,_=a.Y,it=x.Pt.X,St=x.Pt.Y;do{x=x.Next;var Tt=x.Pt.X,Dt=x.Pt.Y;if(Dt===_&&(Tt===k||St===_&&Tt>k==it<k))return-1;if(St<_!=Dt<_){if(it>=k)if(Tt>k)E=1-E;else{var Ht=(it-k)*(Dt-_)-(Tt-k)*(St-_);if(Ht===0)return-1;Ht>0==Dt>St&&(E=1-E)}else if(Tt>k){var Ht=(it-k)*(Dt-_)-(Tt-k)*(St-_);if(Ht===0)return-1;Ht>0==Dt>St&&(E=1-E)}}it=Tt,St=Dt}while(F!==x);return E},e.Clipper.prototype.Poly2ContainsPoly1=function(a,x){var E=a;do{var F=this.PointInPolygon(E.Pt,x);if(F>=0)return F>0;E=E.Next}while(E!==a);return!0},e.Clipper.prototype.FixupFirstLefts1=function(a,x){for(var E,F,k=0,_=this.m_PolyOuts.length;k<_;k++)E=this.m_PolyOuts[k],F=e.Clipper.ParseFirstLeft(E.FirstLeft),E.Pts!==null&&F===a&&this.Poly2ContainsPoly1(E.Pts,x.Pts)&&(E.FirstLeft=x)},e.Clipper.prototype.FixupFirstLefts2=function(a,x){for(var E=x.FirstLeft,F,k,_=0,it=this.m_PolyOuts.length;_<it;_++)F=this.m_PolyOuts[_],!(F.Pts===null||F===x||F===a)&&(k=e.Clipper.ParseFirstLeft(F.FirstLeft),!(k!==E&&k!==a&&k!==x)&&(this.Poly2ContainsPoly1(F.Pts,a.Pts)?F.FirstLeft=a:this.Poly2ContainsPoly1(F.Pts,x.Pts)?F.FirstLeft=x:(F.FirstLeft===a||F.FirstLeft===x)&&(F.FirstLeft=E)))},e.Clipper.prototype.FixupFirstLefts3=function(a,x){for(var E,F,k=0,_=this.m_PolyOuts.length;k<_;k++)E=this.m_PolyOuts[k],F=e.Clipper.ParseFirstLeft(E.FirstLeft),E.Pts!==null&&F===a&&(E.FirstLeft=x)},e.Clipper.ParseFirstLeft=function(a){for(;a!==null&&a.Pts===null;)a=a.FirstLeft;return a},e.Clipper.prototype.JoinCommonEdges=function(){for(var a=0,x=this.m_Joins.length;a<x;a++){var E=this.m_Joins[a],F=this.GetOutRec(E.OutPt1.Idx),k=this.GetOutRec(E.OutPt2.Idx);if(!(F.Pts===null||k.Pts===null)&&!(F.IsOpen||k.IsOpen)){var _;F===k?_=F:this.OutRec1RightOfOutRec2(F,k)?_=k:this.OutRec1RightOfOutRec2(k,F)?_=F:_=this.GetLowermostRec(F,k),this.JoinPoints(E,F,k)&&(F===k?(F.Pts=E.OutPt1,F.BottomPt=null,k=this.CreateOutRec(),k.Pts=E.OutPt2,this.UpdateOutPtIdxs(k),this.Poly2ContainsPoly1(k.Pts,F.Pts)?(k.IsHole=!F.IsHole,k.FirstLeft=F,this.m_UsingPolyTree&&this.FixupFirstLefts2(k,F),(k.IsHole^this.ReverseSolution)==this.Area$1(k)>0&&this.ReversePolyPtLinks(k.Pts)):this.Poly2ContainsPoly1(F.Pts,k.Pts)?(k.IsHole=F.IsHole,F.IsHole=!k.IsHole,k.FirstLeft=F.FirstLeft,F.FirstLeft=k,this.m_UsingPolyTree&&this.FixupFirstLefts2(F,k),(F.IsHole^this.ReverseSolution)==this.Area$1(F)>0&&this.ReversePolyPtLinks(F.Pts)):(k.IsHole=F.IsHole,k.FirstLeft=F.FirstLeft,this.m_UsingPolyTree&&this.FixupFirstLefts1(F,k))):(k.Pts=null,k.BottomPt=null,k.Idx=F.Idx,F.IsHole=_.IsHole,_===k&&(F.FirstLeft=k.FirstLeft),k.FirstLeft=F,this.m_UsingPolyTree&&this.FixupFirstLefts3(k,F)))}}},e.Clipper.prototype.UpdateOutPtIdxs=function(a){var x=a.Pts;do x.Idx=a.Idx,x=x.Prev;while(x!==a.Pts)},e.Clipper.prototype.DoSimplePolygons=function(){for(var a=0;a<this.m_PolyOuts.length;){var x=this.m_PolyOuts[a++],E=x.Pts;if(!(E===null||x.IsOpen))do{for(var F=E.Next;F!==x.Pts;){if(e.IntPoint.op_Equality(E.Pt,F.Pt)&&F.Next!==E&&F.Prev!==E){var k=E.Prev,_=F.Prev;E.Prev=_,_.Next=E,F.Prev=k,k.Next=F,x.Pts=E;var it=this.CreateOutRec();it.Pts=F,this.UpdateOutPtIdxs(it),this.Poly2ContainsPoly1(it.Pts,x.Pts)?(it.IsHole=!x.IsHole,it.FirstLeft=x,this.m_UsingPolyTree&&this.FixupFirstLefts2(it,x)):this.Poly2ContainsPoly1(x.Pts,it.Pts)?(it.IsHole=x.IsHole,x.IsHole=!it.IsHole,it.FirstLeft=x.FirstLeft,x.FirstLeft=it,this.m_UsingPolyTree&&this.FixupFirstLefts2(x,it)):(it.IsHole=x.IsHole,it.FirstLeft=x.FirstLeft,this.m_UsingPolyTree&&this.FixupFirstLefts1(x,it)),F=E}F=F.Next}E=E.Next}while(E!==x.Pts)}},e.Clipper.Area=function(a){if(!Array.isArray(a))return 0;var x=a.length;if(x<3)return 0;for(var E=0,F=0,k=x-1;F<x;++F)E+=(a[k].X+a[F].X)*(a[k].Y-a[F].Y),k=F;return-E*.5},e.Clipper.prototype.Area=function(a){var x=a;if(a===null)return 0;var E=0;do E=E+(a.Prev.Pt.X+a.Pt.X)*(a.Prev.Pt.Y-a.Pt.Y),a=a.Next;while(a!==x);return E*.5},e.Clipper.prototype.Area$1=function(a){return this.Area(a.Pts)},e.Clipper.SimplifyPolygon=function(a,x){var E=new Array,F=new e.Clipper(0);return F.StrictlySimple=!0,F.AddPath(a,e.PolyType.ptSubject,!0),F.Execute(e.ClipType.ctUnion,E,x,x),E},e.Clipper.SimplifyPolygons=function(a,x){typeof x>"u"&&(x=e.PolyFillType.pftEvenOdd);var E=new Array,F=new e.Clipper(0);return F.StrictlySimple=!0,F.AddPaths(a,e.PolyType.ptSubject,!0),F.Execute(e.ClipType.ctUnion,E,x,x),E},e.Clipper.DistanceSqrd=function(a,x){var E=a.X-x.X,F=a.Y-x.Y;return E*E+F*F},e.Clipper.DistanceFromLineSqrd=function(a,x,E){var F=x.Y-E.Y,k=E.X-x.X,_=F*x.X+k*x.Y;return _=F*a.X+k*a.Y-_,_*_/(F*F+k*k)},e.Clipper.SlopesNearCollinear=function(a,x,E,F){return Math.abs(a.X-x.X)>Math.abs(a.Y-x.Y)?a.X>x.X==a.X<E.X?e.Clipper.DistanceFromLineSqrd(a,x,E)<F:x.X>a.X==x.X<E.X?e.Clipper.DistanceFromLineSqrd(x,a,E)<F:e.Clipper.DistanceFromLineSqrd(E,a,x)<F:a.Y>x.Y==a.Y<E.Y?e.Clipper.DistanceFromLineSqrd(a,x,E)<F:x.Y>a.Y==x.Y<E.Y?e.Clipper.DistanceFromLineSqrd(x,a,E)<F:e.Clipper.DistanceFromLineSqrd(E,a,x)<F},e.Clipper.PointsAreClose=function(a,x,E){var F=a.X-x.X,k=a.Y-x.Y;return F*F+k*k<=E},e.Clipper.ExcludeOp=function(a){var x=a.Prev;return x.Next=a.Next,a.Next.Prev=x,x.Idx=0,x},e.Clipper.CleanPolygon=function(a,x){typeof x>"u"&&(x=1.415);var E=a.length;if(E===0)return new Array;for(var F=new Array(E),k=0;k<E;++k)F[k]=new e.OutPt;for(var k=0;k<E;++k)F[k].Pt=a[k],F[k].Next=F[(k+1)%E],F[k].Next.Prev=F[k],F[k].Idx=0;for(var _=x*x,it=F[0];it.Idx===0&&it.Next!==it.Prev;)e.Clipper.PointsAreClose(it.Pt,it.Prev.Pt,_)?(it=e.Clipper.ExcludeOp(it),E--):e.Clipper.PointsAreClose(it.Prev.Pt,it.Next.Pt,_)?(e.Clipper.ExcludeOp(it.Next),it=e.Clipper.ExcludeOp(it),E-=2):e.Clipper.SlopesNearCollinear(it.Prev.Pt,it.Pt,it.Next.Pt,_)?(it=e.Clipper.ExcludeOp(it),E--):(it.Idx=1,it=it.Next);E<3&&(E=0);for(var St=new Array(E),k=0;k<E;++k)St[k]=new e.IntPoint1(it.Pt),it=it.Next;return F=null,St},e.Clipper.CleanPolygons=function(a,x){for(var E=new Array(a.length),F=0,k=a.length;F<k;F++)E[F]=e.Clipper.CleanPolygon(a[F],x);return E},e.Clipper.Minkowski=function(a,x,E,F){var k=F?1:0,_=a.length,it=x.length,St=new Array;if(E)for(var Tt=0;Tt<it;Tt++){for(var Dt=new Array(_),Ht=0,jt=a.length,_t=a[Ht];Ht<jt;Ht++,_t=a[Ht])Dt[Ht]=new e.IntPoint2(x[Tt].X+_t.X,x[Tt].Y+_t.Y);St.push(Dt)}else for(var Tt=0;Tt<it;Tt++){for(var Dt=new Array(_),Ht=0,jt=a.length,_t=a[Ht];Ht<jt;Ht++,_t=a[Ht])Dt[Ht]=new e.IntPoint2(x[Tt].X-_t.X,x[Tt].Y-_t.Y);St.push(Dt)}for(var oe=new Array,Tt=0;Tt<it-1+k;Tt++)for(var Ht=0;Ht<_;Ht++){var me=new Array;me.push(St[Tt%it][Ht%_]),me.push(St[(Tt+1)%it][Ht%_]),me.push(St[(Tt+1)%it][(Ht+1)%_]),me.push(St[Tt%it][(Ht+1)%_]),e.Clipper.Orientation(me)||me.reverse(),oe.push(me)}return oe},e.Clipper.MinkowskiSum=function(a,x,E){if(x[0]instanceof Array){for(var k=x,it=new e.Paths,_=new e.Clipper,St=0;St<k.length;++St){var Tt=e.Clipper.Minkowski(a,k[St],!0,E);if(_.AddPaths(Tt,e.PolyType.ptSubject,!0),E){var F=e.Clipper.TranslatePath(k[St],a[0]);_.AddPath(F,e.PolyType.ptClip,!0)}}return _.Execute(e.ClipType.ctUnion,it,e.PolyFillType.pftNonZero,e.PolyFillType.pftNonZero),it}else{var F=x,k=e.Clipper.Minkowski(a,F,!0,E),_=new e.Clipper;return _.AddPaths(k,e.PolyType.ptSubject,!0),_.Execute(e.ClipType.ctUnion,k,e.PolyFillType.pftNonZero,e.PolyFillType.pftNonZero),k}},e.Clipper.TranslatePath=function(a,x){for(var E=new e.Path,F=0;F<a.length;F++)E.push(new e.IntPoint2(a[F].X+x.X,a[F].Y+x.Y));return E},e.Clipper.MinkowskiDiff=function(a,x){var E=e.Clipper.Minkowski(a,x,!1,!0),F=new e.Clipper;return F.AddPaths(E,e.PolyType.ptSubject,!0),F.Execute(e.ClipType.ctUnion,E,e.PolyFillType.pftNonZero,e.PolyFillType.pftNonZero),E},e.Clipper.PolyTreeToPaths=function(a){var x=new Array;return e.Clipper.AddPolyNodeToPaths(a,e.Clipper.NodeType.ntAny,x),x},e.Clipper.AddPolyNodeToPaths=function(a,x,E){var F=!0;switch(x){case e.Clipper.NodeType.ntOpen:return;case e.Clipper.NodeType.ntClosed:F=!a.IsOpen;break}a.m_polygon.length>0&&F&&E.push(a.m_polygon);for(var k=0,_=a.Childs(),it=_.length,St=_[k];k<it;k++,St=_[k])e.Clipper.AddPolyNodeToPaths(St,x,E)},e.Clipper.OpenPathsFromPolyTree=function(a){for(var x=new e.Paths,E=0,F=a.ChildCount();E<F;E++)a.Childs()[E].IsOpen&&x.push(a.Childs()[E].m_polygon);return x},e.Clipper.ClosedPathsFromPolyTree=function(a){var x=new e.Paths;return e.Clipper.AddPolyNodeToPaths(a,e.Clipper.NodeType.ntClosed,x),x},Ui(e.Clipper,e.ClipperBase),e.Clipper.NodeType={ntAny:0,ntOpen:1,ntClosed:2},e.ClipperOffset=function(a,x){typeof a>"u"&&(a=2),typeof x>"u"&&(x=e.ClipperOffset.def_arc_tolerance),this.m_destPolys=new e.Paths,this.m_srcPoly=new e.Path,this.m_destPoly=new e.Path,this.m_normals=new Array,this.m_delta=0,this.m_sinA=0,this.m_sin=0,this.m_cos=0,this.m_miterLim=0,this.m_StepsPerRad=0,this.m_lowest=new e.IntPoint0,this.m_polyNodes=new e.PolyNode,this.MiterLimit=a,this.ArcTolerance=x,this.m_lowest.X=-1},e.ClipperOffset.two_pi=6.28318530717959,e.ClipperOffset.def_arc_tolerance=.25,e.ClipperOffset.prototype.Clear=function(){e.Clear(this.m_polyNodes.Childs()),this.m_lowest.X=-1},e.ClipperOffset.Round=e.Clipper.Round,e.ClipperOffset.prototype.AddPath=function(a,x,E){var F=a.length-1;if(!(F<0)){var k=new e.PolyNode;if(k.m_jointype=x,k.m_endtype=E,E===e.EndType.etClosedLine||E===e.EndType.etClosedPolygon)for(;F>0&&e.IntPoint.op_Equality(a[0],a[F]);)F--;k.m_polygon.push(a[0]);for(var _=0,it=0,St=1;St<=F;St++)e.IntPoint.op_Inequality(k.m_polygon[_],a[St])&&(_++,k.m_polygon.push(a[St]),(a[St].Y>k.m_polygon[it].Y||a[St].Y===k.m_polygon[it].Y&&a[St].X<k.m_polygon[it].X)&&(it=_));if(!(E===e.EndType.etClosedPolygon&&_<2)&&(this.m_polyNodes.AddChild(k),E===e.EndType.etClosedPolygon))if(this.m_lowest.X<0)this.m_lowest=new e.IntPoint2(this.m_polyNodes.ChildCount()-1,it);else{var Tt=this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon[this.m_lowest.Y];(k.m_polygon[it].Y>Tt.Y||k.m_polygon[it].Y===Tt.Y&&k.m_polygon[it].X<Tt.X)&&(this.m_lowest=new e.IntPoint2(this.m_polyNodes.ChildCount()-1,it))}}},e.ClipperOffset.prototype.AddPaths=function(a,x,E){for(var F=0,k=a.length;F<k;F++)this.AddPath(a[F],x,E)},e.ClipperOffset.prototype.FixOrientations=function(){if(this.m_lowest.X>=0&&!e.Clipper.Orientation(this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon))for(var a=0;a<this.m_polyNodes.ChildCount();a++){var x=this.m_polyNodes.Childs()[a];(x.m_endtype===e.EndType.etClosedPolygon||x.m_endtype===e.EndType.etClosedLine&&e.Clipper.Orientation(x.m_polygon))&&x.m_polygon.reverse()}else for(var a=0;a<this.m_polyNodes.ChildCount();a++){var x=this.m_polyNodes.Childs()[a];x.m_endtype===e.EndType.etClosedLine&&!e.Clipper.Orientation(x.m_polygon)&&x.m_polygon.reverse()}},e.ClipperOffset.GetUnitNormal=function(a,x){var E=x.X-a.X,F=x.Y-a.Y;if(E===0&&F===0)return new e.DoublePoint2(0,0);var k=1/Math.sqrt(E*E+F*F);return E*=k,F*=k,new e.DoublePoint2(F,-E)},e.ClipperOffset.prototype.DoOffset=function(a){if(this.m_destPolys=new Array,this.m_delta=a,e.ClipperBase.near_zero(a)){for(var x=0;x<this.m_polyNodes.ChildCount();x++){var E=this.m_polyNodes.Childs()[x];E.m_endtype===e.EndType.etClosedPolygon&&this.m_destPolys.push(E.m_polygon)}return}this.MiterLimit>2?this.m_miterLim=2/(this.MiterLimit*this.MiterLimit):this.m_miterLim=.5;var F;this.ArcTolerance<=0?F=e.ClipperOffset.def_arc_tolerance:this.ArcTolerance>Math.abs(a)*e.ClipperOffset.def_arc_tolerance?F=Math.abs(a)*e.ClipperOffset.def_arc_tolerance:F=this.ArcTolerance;var k=3.14159265358979/Math.acos(1-F/Math.abs(a));this.m_sin=Math.sin(e.ClipperOffset.two_pi/k),this.m_cos=Math.cos(e.ClipperOffset.two_pi/k),this.m_StepsPerRad=k/e.ClipperOffset.two_pi,a<0&&(this.m_sin=-this.m_sin);for(var x=0;x<this.m_polyNodes.ChildCount();x++){var E=this.m_polyNodes.Childs()[x];this.m_srcPoly=E.m_polygon;var _=this.m_srcPoly.length;if(!(_===0||a<=0&&(_<3||E.m_endtype!==e.EndType.etClosedPolygon))){if(this.m_destPoly=new Array,_===1){if(E.m_jointype===e.JoinType.jtRound)for(var it=1,St=0,Tt=1;Tt<=k;Tt++){this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[0].X+it*a),e.ClipperOffset.Round(this.m_srcPoly[0].Y+St*a)));var Dt=it;it=it*this.m_cos-this.m_sin*St,St=Dt*this.m_sin+St*this.m_cos}else for(var it=-1,St=-1,Tt=0;Tt<4;++Tt)this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[0].X+it*a),e.ClipperOffset.Round(this.m_srcPoly[0].Y+St*a))),it<0?it=1:St<0?St=1:it=-1;this.m_destPolys.push(this.m_destPoly);continue}this.m_normals.length=0;for(var Tt=0;Tt<_-1;Tt++)this.m_normals.push(e.ClipperOffset.GetUnitNormal(this.m_srcPoly[Tt],this.m_srcPoly[Tt+1]));if(E.m_endtype===e.EndType.etClosedLine||E.m_endtype===e.EndType.etClosedPolygon?this.m_normals.push(e.ClipperOffset.GetUnitNormal(this.m_srcPoly[_-1],this.m_srcPoly[0])):this.m_normals.push(new e.DoublePoint1(this.m_normals[_-2])),E.m_endtype===e.EndType.etClosedPolygon){for(var Ht=_-1,Tt=0;Tt<_;Tt++)Ht=this.OffsetPoint(Tt,Ht,E.m_jointype);this.m_destPolys.push(this.m_destPoly)}else if(E.m_endtype===e.EndType.etClosedLine){for(var Ht=_-1,Tt=0;Tt<_;Tt++)Ht=this.OffsetPoint(Tt,Ht,E.m_jointype);this.m_destPolys.push(this.m_destPoly),this.m_destPoly=new Array;for(var jt=this.m_normals[_-1],Tt=_-1;Tt>0;Tt--)this.m_normals[Tt]=new e.DoublePoint2(-this.m_normals[Tt-1].X,-this.m_normals[Tt-1].Y);this.m_normals[0]=new e.DoublePoint2(-jt.X,-jt.Y),Ht=0;for(var Tt=_-1;Tt>=0;Tt--)Ht=this.OffsetPoint(Tt,Ht,E.m_jointype);this.m_destPolys.push(this.m_destPoly)}else{for(var Ht=0,Tt=1;Tt<_-1;++Tt)Ht=this.OffsetPoint(Tt,Ht,E.m_jointype);var _t;if(E.m_endtype===e.EndType.etOpenButt){var Tt=_-1;_t=new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[Tt].X+this.m_normals[Tt].X*a),e.ClipperOffset.Round(this.m_srcPoly[Tt].Y+this.m_normals[Tt].Y*a)),this.m_destPoly.push(_t),_t=new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[Tt].X-this.m_normals[Tt].X*a),e.ClipperOffset.Round(this.m_srcPoly[Tt].Y-this.m_normals[Tt].Y*a)),this.m_destPoly.push(_t)}else{var Tt=_-1;Ht=_-2,this.m_sinA=0,this.m_normals[Tt]=new e.DoublePoint2(-this.m_normals[Tt].X,-this.m_normals[Tt].Y),E.m_endtype===e.EndType.etOpenSquare?this.DoSquare(Tt,Ht):this.DoRound(Tt,Ht)}for(var Tt=_-1;Tt>0;Tt--)this.m_normals[Tt]=new e.DoublePoint2(-this.m_normals[Tt-1].X,-this.m_normals[Tt-1].Y);this.m_normals[0]=new e.DoublePoint2(-this.m_normals[1].X,-this.m_normals[1].Y),Ht=_-1;for(var Tt=Ht-1;Tt>0;--Tt)Ht=this.OffsetPoint(Tt,Ht,E.m_jointype);E.m_endtype===e.EndType.etOpenButt?(_t=new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[0].X-this.m_normals[0].X*a),e.ClipperOffset.Round(this.m_srcPoly[0].Y-this.m_normals[0].Y*a)),this.m_destPoly.push(_t),_t=new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[0].X+this.m_normals[0].X*a),e.ClipperOffset.Round(this.m_srcPoly[0].Y+this.m_normals[0].Y*a)),this.m_destPoly.push(_t)):(Ht=1,this.m_sinA=0,E.m_endtype===e.EndType.etOpenSquare?this.DoSquare(0,1):this.DoRound(0,1)),this.m_destPolys.push(this.m_destPoly)}}}},e.ClipperOffset.prototype.Execute=function(){var a=arguments,x=a[0]instanceof e.PolyTree;if(x){var E=a[0],F=a[1];E.Clear(),this.FixOrientations(),this.DoOffset(F);var k=new e.Clipper(0);if(k.AddPaths(this.m_destPolys,e.PolyType.ptSubject,!0),F>0)k.Execute(e.ClipType.ctUnion,E,e.PolyFillType.pftPositive,e.PolyFillType.pftPositive);else{var _=e.Clipper.GetBounds(this.m_destPolys),it=new e.Path;if(it.push(new e.IntPoint2(_.left-10,_.bottom+10)),it.push(new e.IntPoint2(_.right+10,_.bottom+10)),it.push(new e.IntPoint2(_.right+10,_.top-10)),it.push(new e.IntPoint2(_.left-10,_.top-10)),k.AddPath(it,e.PolyType.ptSubject,!0),k.ReverseSolution=!0,k.Execute(e.ClipType.ctUnion,E,e.PolyFillType.pftNegative,e.PolyFillType.pftNegative),E.ChildCount()===1&&E.Childs()[0].ChildCount()>0){var St=E.Childs()[0];E.Childs()[0]=St.Childs()[0],E.Childs()[0].m_Parent=E;for(var Tt=1;Tt<St.ChildCount();Tt++)E.AddChild(St.Childs()[Tt])}else E.Clear()}}else{var E=a[0],F=a[1];e.Clear(E),this.FixOrientations(),this.DoOffset(F);var k=new e.Clipper(0);if(k.AddPaths(this.m_destPolys,e.PolyType.ptSubject,!0),F>0)k.Execute(e.ClipType.ctUnion,E,e.PolyFillType.pftPositive,e.PolyFillType.pftPositive);else{var _=e.Clipper.GetBounds(this.m_destPolys),it=new e.Path;it.push(new e.IntPoint2(_.left-10,_.bottom+10)),it.push(new e.IntPoint2(_.right+10,_.bottom+10)),it.push(new e.IntPoint2(_.right+10,_.top-10)),it.push(new e.IntPoint2(_.left-10,_.top-10)),k.AddPath(it,e.PolyType.ptSubject,!0),k.ReverseSolution=!0,k.Execute(e.ClipType.ctUnion,E,e.PolyFillType.pftNegative,e.PolyFillType.pftNegative),E.length>0&&E.splice(0,1)}}},e.ClipperOffset.prototype.OffsetPoint=function(a,x,E){if(this.m_sinA=this.m_normals[x].X*this.m_normals[a].Y-this.m_normals[a].X*this.m_normals[x].Y,Math.abs(this.m_sinA*this.m_delta)<1){var F=this.m_normals[x].X*this.m_normals[a].X+this.m_normals[a].Y*this.m_normals[x].Y;if(F>0)return this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_normals[x].X*this.m_delta),e.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_normals[x].Y*this.m_delta))),x}else this.m_sinA>1?this.m_sinA=1:this.m_sinA<-1&&(this.m_sinA=-1);if(this.m_sinA*this.m_delta<0)this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_normals[x].X*this.m_delta),e.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_normals[x].Y*this.m_delta))),this.m_destPoly.push(new e.IntPoint1(this.m_srcPoly[a])),this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_normals[a].X*this.m_delta),e.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_normals[a].Y*this.m_delta)));else switch(E){case e.JoinType.jtMiter:{var k=1+(this.m_normals[a].X*this.m_normals[x].X+this.m_normals[a].Y*this.m_normals[x].Y);k>=this.m_miterLim?this.DoMiter(a,x,k):this.DoSquare(a,x);break}case e.JoinType.jtSquare:this.DoSquare(a,x);break;case e.JoinType.jtRound:this.DoRound(a,x);break}return x=a,x},e.ClipperOffset.prototype.DoSquare=function(a,x){var E=Math.tan(Math.atan2(this.m_sinA,this.m_normals[x].X*this.m_normals[a].X+this.m_normals[x].Y*this.m_normals[a].Y)/4);this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_delta*(this.m_normals[x].X-this.m_normals[x].Y*E)),e.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_delta*(this.m_normals[x].Y+this.m_normals[x].X*E)))),this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_delta*(this.m_normals[a].X+this.m_normals[a].Y*E)),e.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_delta*(this.m_normals[a].Y-this.m_normals[a].X*E))))},e.ClipperOffset.prototype.DoMiter=function(a,x,E){var F=this.m_delta/E;this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+(this.m_normals[x].X+this.m_normals[a].X)*F),e.ClipperOffset.Round(this.m_srcPoly[a].Y+(this.m_normals[x].Y+this.m_normals[a].Y)*F)))},e.ClipperOffset.prototype.DoRound=function(a,x){for(var E=Math.atan2(this.m_sinA,this.m_normals[x].X*this.m_normals[a].X+this.m_normals[x].Y*this.m_normals[a].Y),F=Math.max(e.Cast_Int32(e.ClipperOffset.Round(this.m_StepsPerRad*Math.abs(E))),1),k=this.m_normals[x].X,_=this.m_normals[x].Y,it,St=0;St<F;++St)this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+k*this.m_delta),e.ClipperOffset.Round(this.m_srcPoly[a].Y+_*this.m_delta))),it=k,k=k*this.m_cos-this.m_sin*_,_=it*this.m_sin+_*this.m_cos;this.m_destPoly.push(new e.IntPoint2(e.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_normals[a].X*this.m_delta),e.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_normals[a].Y*this.m_delta)))},e.Error=function(a){try{throw new Error(a)}catch(x){alert(x.message)}},e.JS={},e.JS.AreaOfPolygon=function(a,x){return x||(x=1),e.Clipper.Area(a)/(x*x)},e.JS.AreaOfPolygons=function(a,x){x||(x=1);for(var E=0,F=0;F<a.length;F++)E+=e.Clipper.Area(a[F]);return E/(x*x)},e.JS.BoundsOfPath=function(a,x){return e.JS.BoundsOfPaths([a],x)},e.JS.BoundsOfPaths=function(a,x){x||(x=1);var E=e.Clipper.GetBounds(a);return E.left/=x,E.bottom/=x,E.right/=x,E.top/=x,E},e.JS.Clean=function(F,x){if(!(F instanceof Array))return[];var E=F[0]instanceof Array,F=e.JS.Clone(F);if(typeof x!="number"||x===null)return e.Error("Delta is not a number in Clean()."),F;if(F.length===0||F.length===1&&F[0].length===0||x<0)return F;E||(F=[F]);for(var k=F.length,_,it,St,Tt,Dt,Ht,jt,_t=[],oe=0;oe<k;oe++)if(it=F[oe],_=it.length,_!==0){if(_<3){St=it,_t.push(St);continue}for(St=it,Tt=x*x,Dt=it[0],Ht=1,jt=1;jt<_;jt++)(it[jt].X-Dt.X)*(it[jt].X-Dt.X)+(it[jt].Y-Dt.Y)*(it[jt].Y-Dt.Y)<=Tt||(St[Ht]=it[jt],Dt=it[jt],Ht++);Dt=it[Ht-1],(it[0].X-Dt.X)*(it[0].X-Dt.X)+(it[0].Y-Dt.Y)*(it[0].Y-Dt.Y)<=Tt&&Ht--,Ht<_&&St.splice(Ht,_-Ht),St.length&&_t.push(St)}return!E&&_t.length?_t=_t[0]:!E&&_t.length===0?_t=[]:E&&_t.length===0&&(_t=[[]]),_t},e.JS.Clone=function(a){if(!(a instanceof Array))return[];if(a.length===0)return[];if(a.length===1&&a[0].length===0)return[[]];var x=a[0]instanceof Array;x||(a=[a]);var E=a.length,F,k,_,it,St=new Array(E);for(k=0;k<E;k++){for(F=a[k].length,it=new Array(F),_=0;_<F;_++)it[_]={X:a[k][_].X,Y:a[k][_].Y};St[k]=it}return x||(St=St[0]),St},e.JS.Lighten=function(a,x){if(!(a instanceof Array))return[];if(typeof x!="number"||x===null)return e.Error("Tolerance is not a number in Lighten()."),e.JS.Clone(a);if(a.length===0||a.length===1&&a[0].length===0||x<0)return e.JS.Clone(a);var E=a[0]instanceof Array;E||(a=[a]);var F,k,_,it,St,Tt,Dt,Ht,jt,_t,oe,me,Se,be,lr,Dr,Tn,Ys=a.length,Aa=x*x,Cn=[];for(F=0;F<Ys;F++)if(_=a[F],Tt=_.length,Tt!==0){for(it=0;it<1e6;it++){for(St=[],Tt=_.length,_[Tt-1].X!==_[0].X||_[Tt-1].Y!==_[0].Y?(me=1,_.push({X:_[0].X,Y:_[0].Y}),Tt=_.length):me=0,oe=[],k=0;k<Tt-2;k++)Dt=_[k],jt=_[k+1],Ht=_[k+2],Dr=Dt.X,Tn=Dt.Y,Se=Ht.X-Dr,be=Ht.Y-Tn,(Se!==0||be!==0)&&(lr=((jt.X-Dr)*Se+(jt.Y-Tn)*be)/(Se*Se+be*be),lr>1?(Dr=Ht.X,Tn=Ht.Y):lr>0&&(Dr+=Se*lr,Tn+=be*lr)),Se=jt.X-Dr,be=jt.Y-Tn,_t=Se*Se+be*be,_t<=Aa&&(oe[k+1]=1,k++);for(St.push({X:_[0].X,Y:_[0].Y}),k=1;k<Tt-1;k++)oe[k]||St.push({X:_[k].X,Y:_[k].Y});if(St.push({X:_[Tt-1].X,Y:_[Tt-1].Y}),me&&_.pop(),oe.length)_=St;else break}Tt=St.length,St[Tt-1].X===St[0].X&&St[Tt-1].Y===St[0].Y&&St.pop(),St.length>2&&Cn.push(St)}return E||(Cn=Cn[0]),typeof Cn>"u"&&(Cn=[]),Cn},e.JS.PerimeterOfPath=function(a,x,E){if(typeof a>"u")return 0;var F=Math.sqrt,k=0,_,it,St=0,Tt=0,Dt=0,Ht=0,jt=a.length;if(jt<2)return 0;for(x&&(a[jt]=a[0],jt++);--jt;)_=a[jt],St=_.X,Tt=_.Y,it=a[jt-1],Dt=it.X,Ht=it.Y,k+=F((St-Dt)*(St-Dt)+(Tt-Ht)*(Tt-Ht));return x&&a.pop(),k/E},e.JS.PerimeterOfPaths=function(a,x,E){E||(E=1);for(var F=0,k=0;k<a.length;k++)F+=e.JS.PerimeterOfPath(a[k],x,E);return F},e.JS.ScaleDownPath=function(a,x){var E,F;for(x||(x=1),E=a.length;E--;)F=a[E],F.X=F.X/x,F.Y=F.Y/x},e.JS.ScaleDownPaths=function(a,x){var E,F,k;for(x||(x=1),E=a.length;E--;)for(F=a[E].length;F--;)k=a[E][F],k.X=k.X/x,k.Y=k.Y/x},e.JS.ScaleUpPath=function(a,x){var E,F,k=Math.round;for(x||(x=1),E=a.length;E--;)F=a[E],F.X=k(F.X*x),F.Y=k(F.Y*x)},e.JS.ScaleUpPaths=function(a,x){var E,F,k,_=Math.round;for(x||(x=1),E=a.length;E--;)for(F=a[E].length;F--;)k=a[E][F],k.X=_(k.X*x),k.Y=_(k.Y*x)},e.ExPolygons=function(){return[]},e.ExPolygon=function(){this.outer=null,this.holes=null},e.JS.AddOuterPolyNodeToExPolygons=function(a,x){var E=new e.ExPolygon;E.outer=a.Contour();var F=a.Childs(),k=F.length;E.holes=new Array(k);var _,it,St,Tt,Dt,Ht;for(St=0;St<k;St++)for(_=F[St],E.holes[St]=_.Contour(),Tt=0,Dt=_.Childs(),Ht=Dt.length;Tt<Ht;Tt++)it=Dt[Tt],e.JS.AddOuterPolyNodeToExPolygons(it,x);x.push(E)},e.JS.ExPolygonsToPaths=function(a){var x,E,F,k,_=new e.Paths;for(x=0,F=a.length;x<F;x++)for(_.push(a[x].outer),E=0,k=a[x].holes.length;E<k;E++)_.push(a[x].holes[E]);return _},e.JS.PolyTreeToExPolygons=function(a){var x=new e.ExPolygons,E,F,k,_;for(F=0,k=a.Childs(),_=k.length;F<_;F++)E=k[F],e.JS.AddOuterPolyNodeToExPolygons(E,x);return x}})()})($f);var QS=$f.exports,Jr=mn(QS);function jf(i,e,t=.01){return Math.abs(i[0]-e[0])<t&&Math.abs(i[1]-e[1])<t}function qS(i,e=.01){if(i.length===0)return[];const t=[[i[0][0],i[0][1]]];for(let r=1;r<i.length;r++)jf([i[r][0],i[r][1]],t[t.length-1],e)||t.push([i[r][0],i[r][1]]);return t}function _S(i,e=.01){if(i.length<=2)return i;const t=i[0],r=i[i.length-1];return jf(t,r,e)?i.slice(0,-1):i}function tP(i){const e=i.reduce((r,n)=>r+n[0],0)/i.length,t=i.reduce((r,n)=>r+n[1],0)/i.length;return[e,t]}function kf(i,e){return Math.atan2(e[1]-i[1],e[0]-i[0])}function eP(i,e=.01){if(i.length<=2)return i;const t=[];for(const n of i)t.some(c=>Math.abs(c[0]-n[0])<e&&Math.abs(c[1]-n[1])<e)||t.push([n[0],n[1]]);const r=tP(t);return t.sort((n,s)=>{const c=kf(r,n),l=kf(r,s);return c-l})}function rP(i,e){const t=e[0].x<e[e.length-1].x;return i.map(n=>{const c=n.map(l=>{let f=-1,u=1/0,v=0;for(let h=0;h<e.length;h++){const y=e[h],T=Math.sqrt(Math.pow(y.x-l[0],2)+Math.pow(y.y-l[1],2));T<u&&(u=T,f=h,v=y.z)}return{point:l,index:f,bestZ:v}}).sort((l,f)=>l.index-f.index).map(l=>[...l.point,l.bestZ]);return t&&c[0][0]>c[c.length-1][0]||!t&&c[0][0]<c[c.length-1][0]?c.reverse():c}).sort((n,s)=>{const c=n[0][0],l=s[0][0];return t?c-l:l-c})}function nP(i,e,t=.01){const n=i.map(h=>[h.x,h.y]),s=(h,y)=>h.map(([T,O])=>({X:Math.round(T*y),Y:Math.round(O*y)})),c=new Jr.ClipperOffset;c.AddPath(s(n,1e3),Jr.JoinType.jtRound,Jr.EndType.etOpenButt);const l=[];c.Execute(l,1);const f=new Jr.Clipper;f.AddPaths(l,Jr.PolyType.ptSubject,!0),e.forEach(h=>{f.AddPath(s(h,1e3),Jr.PolyType.ptClip,!0)});const u=new Jr.Paths;f.Execute(Jr.ClipType.ctDifference,u,Jr.PolyFillType.pftNonZero,Jr.PolyFillType.pftNonZero);const v=u.map(h=>_S(eP(qS(h.map(y=>[y.X/1e3,y.Y/1e3]),t),t),t)).filter(h=>h.length>=2);return rP(v,i)}class Gf extends Xt{constructor(t){super(t);dt(this,"canRotate",!0);dt(this,"scaleType",Te.all);dt(this,"toolsType",xt.Pencil);dt(this,"syncTimestamp");dt(this,"syncIndex",0);dt(this,"tmpPoints",[]);dt(this,"MAX_REPEAR",10);dt(this,"uniThickness");dt(this,"workOptions");dt(this,"centerPos",[0,0]);this.workOptions=t.toolsOpt,this.uniThickness=this.MAX_REPEAR/this.workOptions.thickness/10,this.syncTimestamp=0}setPointVector(t,r){if(!r)return!1;const n=t.x-r.x,s=t.y-r.y;if(n===0&&s===0)return!1;const c=pt.Sub(t,r).uni();return!Number.isFinite(c.x)||!Number.isFinite(c.y)?!1:(t.setv(c),!0)}combineConsume(){var l;const t=(l=this.workId)==null?void 0:l.toString();if(this.tmpPoints.length<2)return{type:vt.None};const r=this.transformDataAll(!0),n={name:t};let s;const c=this.drawLayer||this.fullLayer;return r.length&&(s=this.draw({attrs:n,tasks:r,replaceId:t,layer:c})),{rect:s,type:vt.DrawWork,dataType:Kt.Local}}setWorkOptions(t){super.setWorkOptions(t),this.syncTimestamp=Date.now()}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,drawCount:l,removeDrawCount:f,isSimpleWorker:u}=t,{workId:v,syncUnitTime:h}=r;h&&(this.syncUnitTime=h);const{tasks:y,effects:T,consumeIndex:O}=this.transformData(r,!1);this.syncIndex=Math.min(this.syncIndex,O,Math.max(0,this.tmpPoints.length-2));const C={name:v,id:Qe(l)&&l.toString()||void 0};let S,w=!1;const d=this.syncIndex;if(this.syncTimestamp===0&&(this.syncTimestamp=Date.now()),y.length&&(y[0].taskId-this.syncTimestamp>this.syncUnitTime&&(w=!0,this.syncTimestamp=y[0].taskId,this.syncIndex=this.tmpPoints.length),s||c||u)){const P=n?this.fullLayer:this.drawLayer||this.fullLayer;S=this.draw({attrs:C,tasks:y,effects:T,layer:P,removeDrawCount:f})}if(u){const P=[];this.tmpPoints.slice(d).forEach(R=>{P.push(R.x,R.y,this.computRadius(R.z,this.workOptions.thickness))});const A=!this.workOptions.previewLocalOnly&&w;return{...this.baseConsumeResult,type:vt.DrawWork,dataType:Kt.Local,op:A?P:void 0,index:A?d*3:void 0,rect:S,updateNodeOpt:{useAnimation:!0}}}if(s)return O>10&&this.tmpPoints.splice(0,O-10),{rect:S,type:vt.DrawWork,dataType:Kt.Local};const g=[];this.tmpPoints.slice(d).forEach(P=>{g.push(P.x,P.y,this.computRadius(P.z,this.workOptions.thickness))});const p=!this.workOptions.previewLocalOnly&&w;return{...this.baseConsumeResult,type:vt.DrawWork,dataType:Kt.Local,rect:S,op:p?g:void 0,index:p?d*3:void 0,updateNodeOpt:{useAnimation:!0}}}consumeAll(t){var v;const r=this.workId;if(t.data){const{op:h,workState:y}=t.data;h!=null&&h.length&&y===qt.Done&&this.workOptions.strokeType===Ae.Stroke&&this.updateTempPointsWithPressureWhenDone(h)}const n=this.transformDataAll(!0),s={name:r};let c;const l=this.fullLayer;if(n.length&&(c=this.draw({attrs:s,tasks:n,replaceId:r,layer:l})),this.tmpPoints.length<2)return this.replace(l,r),{type:vt.RemoveNode,removeIds:[r],rect:c};const f=[];this.tmpPoints.map(h=>{f.push(h.x,h.y,h.z)}),this.syncTimestamp=0,delete this.workOptions.syncUnitTime;const u=hr(f);return(v=this.vNodes)==null||v.setInfo(r,{rect:c,op:f,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:c&&Xt.getCenterPos(c,l)}),{...this.baseConsumeResult,rect:c,type:vt.FullWork,dataType:Kt.Local,ops:u,updateNodeOpt:{pos:this.centerPos,useAnimation:!0}}}clearTmpPoints(){this.tmpPoints.length=0,this.syncTimestamp=0,this.syncIndex=0}consumeService(t){var h,y;const{op:r,isFullWork:n,replaceId:s,workState:c=qt.Done}=t;this.tmpPoints.length=0;for(let T=0;T<r.length;T+=3){const O=new Jt(r[T],r[T+1],r[T+2]);if(this.tmpPoints.length>0){const C=this.tmpPoints[this.tmpPoints.length-1];if(!this.setPointVector(O,C))continue}this.tmpPoints.push(O)}if(this.tmpPoints.length<2)return;const l=this.transformDataAll(!0),f=(h=this.workId)==null?void 0:h.toString(),u={name:f};let v;if(f&&l.length){const T=n?this.fullLayer:this.drawLayer||this.fullLayer;v=this.draw({attrs:u,tasks:l,replaceId:s,layer:T,isDrawEraserlines:c===qt.Done}),(y=this.vNodes)==null||y.setInfo(f,{rect:v,op:r,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:v&&Xt.getCenterPos(v,T)})}return v}computPencilPoints(t){const r=[],{op:n,eraserPolylines:s,eraserThickness:c}=t;this.tmpPoints.length=0;for(let f=0;f<n.length;f+=3){const u=new Jt(n[f],n[f+1],n[f+2]);if(this.tmpPoints.length>0){const v=this.tmpPoints[this.tmpPoints.length-1];if(!this.setPointVector(u,v))continue}this.tmpPoints.push(u)}if(this.tmpPoints.length<2)return;const l=this.transformDataAll(!0);if(l.length)for(let f=0;f<l.length;f++){const{pos:u,points:v}=l[f],h=v.map(O=>O.point.addXY(u[0],u[1])),y=[];for(const O of s){const C=[];for(let w=0;w<O.length;w+=2){const d=new Jt(O[w],O[w+1]);if(C.length>0){const g=C[C.length-1].point;if(!this.setPointVector(d,g))continue}C.push({point:d,radius:c})}const{ps:S}=this.computStroke(C,!1);y.push(S.map(w=>w.XY))}nP(h,y,.01).forEach(O=>{r.push(O.map(C=>[C[0],C[1],C[2]]).flat(1))})}return r}transformDataAll(t=!0){return this.getTaskPoints(this.tmpPoints,t&&this.workOptions.thickness||void 0)}draw(t){const{attrs:r,tasks:n,replaceId:s,effects:c,layer:l,removeDrawCount:f,isDrawEraserlines:u=!0}=t,{strokeColor:v,strokeType:h,thickness:y,zIndex:T,scale:O,rotate:C,translate:S,eraserlines:w,lineCap:d,lineDash:g}=this.workOptions;c!=null&&c.size&&(c.forEach(U=>{var L;(L=l.getElementById(U+""))==null||L.remove()}),c.clear()),f&&this.removeDrawCountNodes(l,f);let p;const P=[],A=l.worldPosition,R=l.worldScaling;for(let U=0;U<n.length;U++){const{pos:L,points:W}=n[U],{ps:Y,rect:B}=this.computDrawPoints(W);let N;const $=W.length===1;h===Ae.Stroke||$?N=yn(Y,!0):N=yn(Y,!1);const J={pos:L,d:N,fillColor:h===Ae.Stroke||$?v:void 0,lineDash:$?void 0:h===Ae.Dotted?[g&&g[0]||1,(g&&g[1]||2)*y]:h===Ae.LongDotted?[(g&&g[0]||1)*y,(g&&g[1]||2)*y]:void 0,strokeColor:v,lineCap:$?void 0:d,lineWidth:h===Ae.Stroke||$?0:y};p=Zt(p,{x:Math.floor((B.x+L[0])*R[0]+A[0]-Xt.SafeBorderPadding),y:Math.floor((B.y+L[1])*R[1]+A[1]-Xt.SafeBorderPadding),w:Math.floor(B.w*R[0]+2*Xt.SafeBorderPadding),h:Math.floor(B.h*R[1]+2*Xt.SafeBorderPadding)}),P.push(J)}O&&(r.scale=O),C&&(r.rotate=C),S&&(r.translate=S);const D=new Je;if(p){this.centerPos=Xt.getCenterPos(p,l);const U=h===Ae.Stroke&&!w;D.attr({...r,normalize:!0,anchor:[.5,.5],bgcolor:U?v:void 0,pos:this.centerPos,size:[(p.w-2*Xt.SafeBorderPadding)/R[0],(p.h-2*Xt.SafeBorderPadding)/R[1]],zIndex:T});const L=P.map(W=>(W.pos=[W.pos[0]-this.centerPos[0],W.pos[1]-this.centerPos[1]],new gn(W)));D.append(...L),U&&D.seal(),w&&(this.scaleType=Te.proportional,this.drawEraserlines({group:D,eraserlines:w,pos:this.centerPos,layer:l},u)),this.replace(l,s,D)}if(O||C||S){const U=D==null?void 0:D.getBoundingClientRect();U&&(p={x:Math.floor(U.x-Xt.SafeBorderPadding),y:Math.floor(U.y-Xt.SafeBorderPadding),w:Math.floor(U.width+Xt.SafeBorderPadding*2),h:Math.floor(U.height+Xt.SafeBorderPadding*2)})}return this.isDelete&&D.setAttribute("opacity",0),p}computDrawPoints(t){return this.workOptions.strokeType===Ae.Stroke||t.length===1?this.computStroke(t):this.computNomal(t)}computNomal(t){let r=this.workOptions.thickness;const n=t.map(s=>(r=Math.max(r,s.radius),s.point));return{ps:n,rect:Re(n,r)}}computStroke(t,r=!0){return t.length===1?this.computDotStroke(t[0]):this.computLineStroke(t,r)}computLineStroke(t,r=!0){const n=[],s=[];for(let f=0;f<t.length;f++){const{point:u,radius:v}=t[f];let h=u.v;f===0&&t.length>1&&(h=t[f+1].point.v);const y=pt.Per(h).mul(v);n.push(Jt.Sub(u,y)),s.push(Jt.Add(u,y))}const c=t[t.length-1];if(r){const f=Jt.GetSemicircleStroke(c.point,n[n.length-1],-1,8),u=Jt.GetSemicircleStroke(t[0].point,s[0],-1,8),v=n.concat(f,s.reverse(),u);return{ps:v,rect:Re(v)}}const l=n.concat(s.reverse());return{ps:l,rect:Re(l)}}computDotStroke(t){const{point:r,radius:n}=t,s={x:r.x-n,y:r.y-n,w:n*2,h:n*2};return{ps:Jt.GetDotStroke(r,n,8),rect:s}}transformData(t,r){const{op:n,workState:s}=t;let c=this.tmpPoints.length-1,l=[];if(n!=null&&n.length&&s){const{strokeType:f,thickness:u}=this.workOptions,v=new Set;c=f===Ae.Stroke?this.updateTempPointsWithPressure(n,u,v):this.updateTempPoints(n,u,v);const h=r?this.tmpPoints:this.tmpPoints.slice(c);return l=this.getTaskPoints(h,u),{tasks:l,effects:v,consumeIndex:c}}return{tasks:l,consumeIndex:c}}computRadius(t,r){return t*.03*r+r*.5}getMinZ(t,r){return((r||Math.max(1,Math.floor(t*.3)))-t*.5)*100/t/3}getTaskPoints(t,r){var h;const n=[];if(t.length===0)return[];let s=0,c=t[0].x,l=t[0].y,f=[c,l],u=[],v=t[0].t;for(;s<t.length;){const y=t[s],T=y.x-c,O=y.y-l,C=y.z,S=r?this.computRadius(C,r):C;if(u.push({point:new Jt(T,O,C,t[s].v),radius:S}),s>0&&s<t.length-1){const w=t[s].getAngleByPoints(t[s-1],t[s+1]);if(w<60||w>300){const d=(h=u.pop())==null?void 0:h.point.clone();d&&n.push({taskId:v,pos:f,points:[...u,{point:d,radius:S}]}),c=t[s].x,l=t[s].y,f=[c,l];const g=y.x-c,p=y.y-l;u=[{point:new Jt(g,p,C),radius:S}],v=Date.now()}}s++}return n.push({taskId:v,pos:f,points:u}),n}updateTempPointsWithPressure(t,r,n){const s=Date.now(),c=this.tmpPoints.length;let l=c;for(let u=0;u<t.length;u+=2){l=Math.min(l,c);const v=this.tmpPoints.length,h=new Jt(t[u],t[u+1]);if(v===0){this.tmpPoints.push(h);continue}const y=v-1,T=this.tmpPoints[y],O=pt.Sub(h,T).uni();if(h.isNear(T,r)){if(T.z<this.MAX_REPEAR){if(T.setz(Math.min(T.z+1,this.MAX_REPEAR)),l=Math.min(l,y),v>1){let w=v-1;for(;w>0;){const d=this.tmpPoints[w].distance(this.tmpPoints[w-1]),g=Math.max(this.tmpPoints[w].z-this.uniThickness*d,0);if(this.tmpPoints[w-1].z>=g)break;this.tmpPoints[w-1].setz(g),l=Math.min(l,w-1),w--}}}else l=1/0;continue}h.setv(O);const C=h.distance(T),S=Math.max(T.z-this.uniThickness*C,0);v>1&&pt.Equals(O,T.v,.02)&&(S>0||T.z<=0)&&(n&&T.t&&n.add(T.t),this.tmpPoints.pop(),l=Math.min(y,l)),h.setz(S),this.tmpPoints.push(h)}if(l===1/0)return this.tmpPoints.length;let f=c;if(l===c){f=Math.max(f-1,0);const u=this.tmpPoints[f].t;u&&(n==null||n.add(u))}else{let u=c-1;for(f=l;u>=0;){const v=this.tmpPoints[u].t;if(v&&(n==null||n.add(v),u<=l)){f=u,u=-1;break}u--}}return this.tmpPoints[f].setT(s),f}updateTempPoints(t,r,n){var u;const s=Date.now(),c=this.tmpPoints.length;let l=c;for(let v=0;v<t.length;v+=2){const h=this.tmpPoints.length,y=new Jt(t[v],t[v+1]);if(h===0){this.tmpPoints.push(y);continue}const T=h-1,O=this.tmpPoints[T],C=pt.Sub(y,O).uni();if(y.isNear(O,r/2)){l=Math.min(T,l);continue}pt.Equals(C,O.v,.02)&&(n&&O.t&&n.add(O.t),this.tmpPoints.pop(),l=Math.min(T,l)),y.setv(C),this.tmpPoints.push(y)}let f=c;if(l===c){f=Math.max(f-1,0);const v=this.tmpPoints[f].t;v&&(n==null||n.add(v))}else{let v=Math.min(c-1,l);for(f=l;v>=0;){const h=(u=this.tmpPoints[v])==null?void 0:u.t;if(h&&(n==null||n.add(h),v<=l)){f=v,v=-1;break}v--}}return this.tmpPoints[f].setT(s),f}updateTempPointsWithPressureWhenDone(t){const{thickness:r}=this.workOptions,n=t.length,s=this.getMinZ(r);for(let c=0;c<n;c+=2){const l=this.tmpPoints.length,f=new Jt(t[c],t[c+1]);if(l===0){this.tmpPoints.push(f);continue}const u=l-1,v=this.tmpPoints[u],h=pt.Sub(f,v).uni(),y=f.distance(v);if(l>1&&v.z===s)break;if(f.isNear(v,r/2)){if(n<3&&v.z<this.MAX_REPEAR&&(v.setz(Math.min(v.z+1,this.MAX_REPEAR)),l>1)){let O=l-1;for(;O>0;){const C=this.tmpPoints[O].distance(this.tmpPoints[O-1]),S=Math.max(this.tmpPoints[O].z-this.uniThickness*C,-r/4);if(this.tmpPoints[O-1].z>=S)break;this.tmpPoints[O-1].setz(S),O--}}continue}f.setv(h);const T=Math.max(v.z-this.uniThickness*y,s);l>1&&pt.Equals(h,v.v,.02)&&v.z<=0&&this.tmpPoints.pop(),f.setz(T),this.tmpPoints.push(f)}}static updateNodeOpt(t){var h,y;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,strokeType:l,lineCap:f,lineDash:u}=n,v=s.get(r.name);return c&&(r.tagName==="GROUP"?dT(r)?r.setAttribute("bgcolor",c):r.children.forEach(T=>{T.setAttribute("strokeColor",c),T.getAttribute("fillColor")&&T.setAttribute("fillColor",c)}):(r.setAttribute("strokeColor",c),r.setAttribute("fillColor",c)),(h=v==null?void 0:v.opt)!=null&&h.strokeColor&&(v.opt.strokeColor=c)),l&&(v!=null&&v.opt)&&((y=v.opt)!=null&&y.strokeType)&&(v.opt.strokeType=l),f&&(v!=null&&v.opt)&&(v.opt.lineCap=f),u&&(v!=null&&v.opt)&&(v.opt.lineDash=u),v&&s.setInfo(r.name,v),Xt.updateNodeOpt(t)}}class Hf extends Xt{constructor(t){super(t);dt(this,"toolsType",xt.LaserPen);dt(this,"canRotate",!1);dt(this,"scaleType",Te.none);dt(this,"syncTimestamp");dt(this,"syncIndex",0);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"consumeIndex",0);this.workOptions=t.toolsOpt,this.syncTimestamp=0}combineConsume(){}setWorkOptions(t){super.setWorkOptions(t),this.syncTimestamp=Date.now()}consume(t){const{data:r,isSubWorker:n}=t,{workId:s,op:c,syncUnitTime:l}=r;if((c==null?void 0:c.length)===0)return{type:vt.None};if(l&&(this.syncUnitTime=l),this.updateTempPoints(c||[]),this.consumeIndex>this.tmpPoints.length-4)return{type:vt.None};const{strokeColor:f,thickness:u,strokeType:v,lineDash:h,lineCap:y}=this.workOptions,T=Re(this.tmpPoints,u);let O=!1;const C=this.syncIndex,S=this.tmpPoints.slice(this.consumeIndex);this.consumeIndex=this.tmpPoints.length-1,this.syncTimestamp===0&&(this.syncTimestamp=Date.now());const w={name:s==null?void 0:s.toString(),opacity:1,lineDash:v===Ae.Dotted?[h&&h[0]||1,(h&&h[1]||2)*u]:v===Ae.LongDotted?[(h&&h[0]||1)*u,(h&&h[1]||2)*u]:void 0,strokeColor:f,lineCap:y,lineWidth:u,anchor:[.5,.5]},d=this.getTaskPoints(S);if(d.length){const p=Date.now();p-this.syncTimestamp>this.syncUnitTime&&(O=!0,this.syncTimestamp=p,this.syncIndex=this.tmpPoints.length),n&&this.draw({attrs:w,tasks:d,isDot:!1,layer:this.drawLayer||this.fullLayer})}const g=[];return this.tmpPoints.slice(C).forEach(p=>{g.push(p.x,p.y)}),{rect:{x:T.x*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],y:T.y*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1],w:T.w*this.fullLayer.worldScaling[0],h:T.h*this.fullLayer.worldScaling[1]},type:vt.DrawWork,dataType:Kt.Local,op:O?g:void 0,index:O?C*2:void 0,...this.baseConsumeResult}}consumeAll(){var c;const t=(c=this.workId)==null?void 0:c.toString();let r;if(this.tmpPoints.length-1>this.consumeIndex){let l=this.tmpPoints.slice(this.consumeIndex);const f=l.length===1,{strokeColor:u,thickness:v,strokeType:h}=this.workOptions;if(f){const O=this.computDotStroke({point:l[0],radius:v/2});l=O.ps,r=O.rect}else r=Re(this.tmpPoints,v);const y={name:t==null?void 0:t.toString(),fillColor:f?u:void 0,opacity:1,lineDash:h===Ae.Dotted&&!f?[1,v*2]:h===Ae.LongDotted&&!f?[v,v*2]:void 0,strokeColor:u,lineCap:f?void 0:"round",lineWidth:f?0:v,anchor:[.5,.5]},T=this.getTaskPoints(l);T.length&&this.draw({attrs:y,tasks:T,isDot:f,layer:this.drawLayer||this.fullLayer})}const n=[];this.tmpPoints.forEach(l=>{n.push(l.x,l.y)});const s=hr(n);return{rect:r&&{x:r.x*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],y:r.y*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1],w:r.w*this.fullLayer.worldScaling[0],h:r.h*this.fullLayer.worldScaling[1]},type:vt.FullWork,dataType:Kt.Local,ops:s,index:this.syncIndex*2,...this.baseConsumeResult}}clearTmpPoints(){this.tmpPoints.length=0,this.syncTimestamp=0,this.syncIndex=0}consumeService(t){var C;const{op:r,replaceId:n,isFullWork:s}=t,{strokeColor:c,thickness:l,strokeType:f}=this.workOptions;if(!r.length){const S=Re(this.tmpPoints,l);return{x:S.x*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],y:S.y*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1],w:S.w*this.fullLayer.worldScaling[0],h:S.h*this.fullLayer.worldScaling[1]}}const u=Math.max(0,this.tmpPoints.length-1);this.updateTempPoints(r||[]);let v,h=this.tmpPoints.slice(u);const y=h.length===1;if(y){const S=this.computDotStroke({point:h[0],radius:l/2});h=S.ps,v=S.rect}else v=Re(this.tmpPoints,l);const T={name:(C=this.workId)==null?void 0:C.toString(),fillColor:y?c:void 0,opacity:1,lineDash:f===Ae.Dotted&&!y?[1,l*2]:f===Ae.LongDotted&&!y?[l,l*2]:void 0,strokeColor:c,lineCap:y?void 0:"round",lineWidth:y?0:l,anchor:[.5,.5]},O=this.getTaskPoints(h);if(O.length){const S=s?this.fullLayer:this.drawLayer||this.fullLayer;this.draw({attrs:T,tasks:O,isDot:y,replaceId:n,layer:S})}return{x:v.x*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],y:v.y*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1],w:v.w*this.fullLayer.worldScaling[0],h:v.h*this.fullLayer.worldScaling[1]}}computDotStroke(t){const{point:r,radius:n}=t,s={x:r.x-n,y:r.y-n,w:n*2,h:n*2};return{ps:Jt.GetDotStroke(r,n,8),rect:s}}updateTempPoints(t){const r=this.tmpPoints.length;for(let n=0;n<t.length;n+=2){if(r){const s=this.tmpPoints.slice(-1)[0];s&&s.x===t[n]&&s.y===t[n+1]&&this.tmpPoints.pop()}this.tmpPoints.push(new Jt(t[n],t[n+1]))}}async draw(t){const{attrs:r,tasks:n,isDot:s,layer:c}=t,{duration:l}=this.workOptions;for(const f of n){const u=new gn,{pos:v,points:h}=f;let y;s?y=yn(h,!0):y=yn(h,!1),u.attr({...r,pos:v,d:y}),c.appendChild(u),u.transition(l).attr({scale:s?[.1,.1]:[1,1],lineWidth:s?0:1}).then(()=>{u.remove()})}}getTaskPoints(t){var u;const r=[];if(t.length===0)return[];let n=0,s=t[0].x,c=t[0].y,l=[s,c],f=[];for(;n<t.length;){const v=t[n],h=v.x-s,y=v.y-c;if(f.push(new Jt(h,y)),n>0&&n<t.length-1){const T=t[n].getAngleByPoints(t[n-1],t[n+1]);if(T<60||T>300){const O=(u=f.pop())==null?void 0:u.clone();O&&r.push({pos:l,points:[...f,O]}),s=t[n].x,c=t[n].y,l=[s,c];const C=v.x-s,S=v.y-c;f=[new Jt(C,S)]}}n++}return r.push({pos:l,points:f}),r}removeLocal(){}removeService(t){let r;const n=[];return this.fullLayer.getElementsByName(t).forEach(s=>{if(s.name===t){const c=s.getBoundingClientRect();r=Zt(r,{x:c.x,y:c.y,w:c.width,h:c.height}),n.push(s)}}),n.length&&n.forEach(s=>s.remove()),r}}var iP=ds;ds.polyline=ds,ds.polygon=sP;function ds(i,e,t){var r=i.length,n=ei(i[0],e),s=[],c,l,f,u,v;for(t||(t=[]),c=1;c<r;c++){for(l=i[c-1],f=i[c],u=v=ei(f,e);;)if(n|u){if(n&u)break;n?(l=Go(l,f,n,e),n=ei(l,e)):(f=Go(l,f,u,e),u=ei(f,e))}else{s.push(l),u!==v?(s.push(f),c<r-1&&(t.push(s),s=[])):c===r-1&&s.push(f);break}n=v}return s.length&&t.push(s),t}function sP(i,e){var t,r,n,s,c,l,f;for(r=1;r<=8;r*=2){for(t=[],n=i[i.length-1],s=!(ei(n,e)&r),c=0;c<i.length;c++)l=i[c],f=!(ei(l,e)&r),f!==s&&t.push(Go(n,l,r,e)),f&&t.push(l),n=l,s=f;if(i=t,!i.length)break}return t}function Go(i,e,t,r){return t&8?[i[0]+(e[0]-i[0])*(r[3]-i[1])/(e[1]-i[1]),r[3]]:t&4?[i[0]+(e[0]-i[0])*(r[1]-i[1])/(e[1]-i[1]),r[1]]:t&2?[r[2],i[1]+(e[1]-i[1])*(r[2]-i[0])/(e[0]-i[0])]:t&1?[r[0],i[1]+(e[1]-i[1])*(r[0]-i[0])/(e[0]-i[0])]:null}function ei(i,e){var t=0;return i[0]<e[0]?t|=1:i[0]>e[2]&&(t|=2),i[1]<e[1]?t|=4:i[1]>e[3]&&(t|=8),t}var Ho=mn(iP);const si=class si extends Xt{constructor(t,r){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.none);dt(this,"toolsType",xt.Eraser);dt(this,"serviceWork");dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"worldPosition");dt(this,"worldScaling");dt(this,"eraserRect");dt(this,"eraserPolyline");this.serviceWork=r,this.workOptions=t.toolsOpt,this.worldPosition=this.fullLayer.worldPosition,this.worldScaling=this.fullLayer.worldScaling}combineConsume(){}consumeService(){}setWorkOptions(t){super.setWorkOptions(t)}createEraserRect(t){const r=t[0]*this.worldScaling[0]+this.worldPosition[0],n=t[1]*this.worldScaling[1]+this.worldPosition[1],{width:s,height:c}=si.eraserSizes[this.workOptions.thickness];this.eraserRect={x:r-s*.5,y:n-c*.5,w:s,h:c},this.eraserPolyline=[this.eraserRect.x,this.eraserRect.y,this.eraserRect.x+this.eraserRect.w,this.eraserRect.y+this.eraserRect.h]}computRectCenterPoints(){const t=this.tmpPoints.slice(-2);if(this.tmpPoints.length===4){const r=new pt(this.tmpPoints[0],this.tmpPoints[1]),n=new pt(this.tmpPoints[2],this.tmpPoints[3]),s=pt.Sub(n,r).uni(),c=pt.Dist(r,n),{width:l,height:f}=si.eraserSizes[this.workOptions.thickness],u=Math.min(l,f),v=Math.round(c/u);if(v>1){const h=[];for(let y=0;y<v;y++){const T=pt.Mul(s,y*u);h.push(this.tmpPoints[0]+T.x,this.tmpPoints[1]+T.y)}return h.concat(t)}}return t}isNear(t,r){const n=new pt(t[0],t[1]),s=new pt(r[0],r[1]),{width:c,height:l}=si.eraserSizes[this.workOptions.thickness];return pt.Dist(n,s)<Math.hypot(c,l)*.5}remove(t){const{curNodeMap:r,removeIds:n}=t;let s;for(const c of r.values())if(c.rect&&this.eraserRect&&this.eraserPolyline&&ea(this.eraserRect,c.rect)){const{op:l}=c,f=[],u=[];for(let h=0;h<l.length;h+=3){const y=new pt(l[h]*this.worldScaling[0]+this.worldPosition[0],l[h+1]*this.worldScaling[1]+this.worldPosition[1],l[h+2]);u.push(y),f.push(new Jt(y.x,y.y))}const v=f.length&&Re(f)||c.rect;ea(v,this.eraserRect)&&(u.length>1?Ho.polyline(u.map(y=>y.XY),this.eraserPolyline).length&&n.add(c.name):n.add(c.name),s=Zt(s,c.rect||v))}return n.forEach(c=>{var f;const l=this.fullLayer.getElementsByName(c);l[0]&&(l[0].remove(),dr(l[0],this.fullLayer.parent),(f=this.vNodes)==null||f.delete(c))}),s&&(s.x-=Xt.SafeBorderPadding,s.y-=Xt.SafeBorderPadding,s.w+=Xt.SafeBorderPadding*2,s.h+=Xt.SafeBorderPadding*2),s}consume(t){const{op:r,disableEraseImage:n,disableEraseText:s}=t.data;if(!r||r.length===0)return{type:vt.None,...this.baseConsumeResult};const c=this.tmpPoints.length;if(c>1&&this.isNear([r[0],r[1]],[this.tmpPoints[c-2],this.tmpPoints[c-1]]))return{type:vt.None,...this.baseConsumeResult};c<3?this.tmpPoints.push(r[0],r[1]):this.tmpPoints.splice(2,2,r[0],r[1]);const l=this.computRectCenterPoints();let f;const u=new Set;if(!this.vNodes)return{type:vt.None,...this.baseConsumeResult};const v=this.getCanEraserNodeMap(this.vNodes.getCanEraserNodes(this.vNodes.curNodeMap,{disableEraseImage:n,disableEraseText:s}));for(let h=0;h<l.length-1;h+=2){this.createEraserRect(l.slice(h,h+2));const y=this.remove({curNodeMap:v,removeIds:u});f=Zt(f,y)}return f&&u.size?{type:vt.RemoveNode,rect:f,removeIds:[...u]}:{type:vt.None,...this.baseConsumeResult}}consumeAll(t){return this.consume(t)}clearTmpPoints(){this.tmpPoints.length=0}getCanEraserNodeMap(t){var r;if(this.serviceWork){const n=new Map(t),s=this.serviceWork.selectorWorkShapes,c=this.serviceWork.workShapes;for(const l of s.values())if((r=l.selectIds)!=null&&r.length)for(const f of l.selectIds)n.delete(f);for(const l of c.keys())n.delete(l);return n}return t}};dt(si,"eraserSizes",ko);let ps=si;var oP="__lodash_hash_undefined__";function aP(i){return this.__data__.set(i,oP),this}var lP=aP;function fP(i){return this.__data__.has(i)}var cP=fP,uP=Zl,hP=lP,dP=cP;function vs(i){var e=-1,t=i==null?0:i.length;for(this.__data__=new uP;++e<t;)this.add(i[e])}vs.prototype.add=vs.prototype.push=hP,vs.prototype.has=dP;var Vo=vs;function pP(i,e){for(var t=-1,r=i==null?0:i.length;++t<r;)if(e(i[t],t,i))return!0;return!1}var vP=pP;function gP(i,e){return i.has(e)}var Ko=gP,mP=Vo,yP=vP,SP=Ko,PP=1,xP=2;function TP(i,e,t,r,n,s){var c=t&PP,l=i.length,f=e.length;if(l!=f&&!(c&&f>l))return!1;var u=s.get(i),v=s.get(e);if(u&&v)return u==e&&v==i;var h=-1,y=!0,T=t&xP?new mP:void 0;for(s.set(i,e),s.set(e,i);++h<l;){var O=i[h],C=e[h];if(r)var S=c?r(C,O,h,e,i,s):r(O,C,h,i,e,s);if(S!==void 0){if(S)continue;y=!1;break}if(T){if(!yP(e,function(w,d){if(!SP(T,d)&&(O===w||n(O,w,t,r,s)))return T.push(d)})){y=!1;break}}else if(!(O===C||n(O,C,t,r,s))){y=!1;break}}return s.delete(i),s.delete(e),y}var Vf=TP;function CP(i){var e=-1,t=Array(i.size);return i.forEach(function(r,n){t[++e]=[n,r]}),t}var IP=CP;function wP(i){var e=-1,t=Array(i.size);return i.forEach(function(r){t[++e]=r}),t}var Zo=wP,Kf=wi,Zf=wf,OP=Eo,EP=Vf,AP=IP,MP=Zo,LP=1,RP=2,bP="[object Boolean]",DP="[object Date]",NP="[object Error]",BP="[object Map]",WP="[object Number]",FP="[object RegExp]",UP="[object Set]",YP="[object String]",XP="[object Symbol]",zP="[object ArrayBuffer]",$P="[object DataView]",Jf=Kf?Kf.prototype:void 0,Jo=Jf?Jf.valueOf:void 0;function jP(i,e,t,r,n,s,c){switch(t){case $P:if(i.byteLength!=e.byteLength||i.byteOffset!=e.byteOffset)return!1;i=i.buffer,e=e.buffer;case zP:return!(i.byteLength!=e.byteLength||!s(new Zf(i),new Zf(e)));case bP:case DP:case WP:return OP(+i,+e);case NP:return i.name==e.name&&i.message==e.message;case FP:case YP:return i==e+"";case BP:var l=AP;case UP:var f=r&LP;if(l||(l=MP),i.size!=e.size&&!f)return!1;var u=c.get(i);if(u)return u==e;r|=RP,c.set(i,e);var v=EP(l(i),l(e),r,n,s,c);return c.delete(i),v;case XP:if(Jo)return Jo.call(i)==Jo.call(e)}return!1}var kP=jP,Qf=mf,GP=1,HP=Object.prototype,VP=HP.hasOwnProperty;function KP(i,e,t,r,n,s){var c=t&GP,l=Qf(i),f=l.length,u=Qf(e),v=u.length;if(f!=v&&!c)return!1;for(var h=f;h--;){var y=l[h];if(!(c?y in e:VP.call(e,y)))return!1}var T=s.get(i),O=s.get(e);if(T&&O)return T==e&&O==i;var C=!0;s.set(i,e),s.set(e,i);for(var S=c;++h<f;){y=l[h];var w=i[y],d=e[y];if(r)var g=c?r(d,w,y,e,i,s):r(w,d,y,i,e,s);if(!(g===void 0?w===d||n(w,d,t,r,s):g)){C=!1;break}S||(S=y=="constructor")}if(C&&!S){var p=i.constructor,P=e.constructor;p!=P&&"constructor"in i&&"constructor"in e&&!(typeof p=="function"&&p instanceof p&&typeof P=="function"&&P instanceof P)&&(C=!1)}return s.delete(i),s.delete(e),C}var ZP=KP,Qo=Jl,JP=Vf,QP=kP,qP=ZP,qf=us,_f=Ai,tc=Lo,_P=lf,tx=1,ec="[object Arguments]",rc="[object Array]",gs="[object Object]",ex=Object.prototype,nc=ex.hasOwnProperty;function rx(i,e,t,r,n,s){var c=_f(i),l=_f(e),f=c?rc:qf(i),u=l?rc:qf(e);f=f==ec?gs:f,u=u==ec?gs:u;var v=f==gs,h=u==gs,y=f==u;if(y&&tc(i)){if(!tc(e))return!1;c=!0,v=!1}if(y&&!v)return s||(s=new Qo),c||_P(i)?JP(i,e,t,r,n,s):QP(i,e,f,t,r,n,s);if(!(t&tx)){var T=v&&nc.call(i,"__wrapped__"),O=h&&nc.call(e,"__wrapped__");if(T||O){var C=T?i.value():i,S=O?e.value():e;return s||(s=new Qo),n(C,S,t,r,s)}}return y?(s||(s=new Qo),qP(i,e,t,r,n,s)):!1}var nx=rx,ix=nx,ic=on;function sc(i,e,t,r,n){return i===e?!0:i==null||e==null||!ic(i)&&!ic(e)?i!==i&&e!==e:ix(i,e,t,r,sc,n)}var sx=sc,ox=sx;function ax(i,e){return ox(i,e)}var lx=ax,Qr=mn(lx);function oc(i,e,t,r=1){return`rgba(${i},${e},${t},${r})`}function fx(i){const e=i.split(","),t=parseInt(e[0].split("(")[1]),r=parseInt(e[1]),n=parseInt(e[2]),s=Number(e[3].split(")")[0]);return[t,r,n,s]}const Rs=class Rs extends Xt{constructor(t){super(t);dt(this,"toolsType",xt.Selector);dt(this,"tmpPoints",[]);dt(this,"subTmpPoints",[]);dt(this,"workOptions");dt(this,"vNodes");dt(this,"selectIds");dt(this,"selectorColor");dt(this,"strokeColor");dt(this,"fillColor");dt(this,"oldSelectRect");dt(this,"oldSubSelectRect");dt(this,"canRotate",!1);dt(this,"canTextEdit",!1);dt(this,"canLock",!1);dt(this,"scaleType",Te.all);dt(this,"toolsTypes");dt(this,"shapeOpt");dt(this,"textOpt");dt(this,"isLocked");dt(this,"thickness");dt(this,"strokeType");dt(this,"useStroke");this.workOptions=t.toolsOpt,this.vNodes=t.vNodes}computSelector(t=!0){const r=Re(this.tmpPoints);if(r.w===0||r.h===0)return{selectIds:[],intersectRect:void 0,subNodeMap:new Map};const{rectRange:n,nodeRange:s}=this.vNodes.getRectIntersectRange(r,t);return{selectIds:[...s.keys()],intersectRect:n,subNodeMap:s}}updateTempPoints(t){const r=this.tmpPoints.length,n=t.length;if(n>1){const s=new Jt(t[n-2]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],t[n-1]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[1]);r===2?this.tmpPoints.splice(1,1,s):this.tmpPoints.push(s)}}drawSelector(t){const{drawRect:r,subNodeMap:n,selectorId:s,layer:c,isService:l}=t,f=new Je({pos:[r.x,r.y],anchor:[0,0],size:[r.w,r.h],id:s,name:s,zIndex:9999}),u=[];if(l){const v=new Oo({normalize:!0,pos:[r.w/2,r.h/2],lineWidth:1,strokeColor:this.selectorColor||this.workOptions.strokeColor,width:r.w,height:r.h,name:Rs.selectorBorderId});u.push(v)}n.forEach((v,h)=>{const y=[v.rect.x+v.rect.w/2-r.x,v.rect.y+v.rect.h/2-r.y],T=new Oo({normalize:!0,pos:y,lineWidth:1,strokeColor:n.size>1?this.selectorColor||this.workOptions.strokeColor:void 0,width:v.rect.w,height:v.rect.h,id:`selector-${h}`,name:`selector-${h}`});u.push(T)}),u&&f.append(...u),(c==null?void 0:c.parent).appendChild(f)}draw(t,r,n,s=!1){var f,u;const{intersectRect:c,subNodeMap:l}=n;(u=(f=r.parent)==null?void 0:f.getElementById(t))==null||u.remove(),c&&this.drawSelector({drawRect:c,subNodeMap:l,selectorId:t,layer:r,isService:s})}getSelecteorInfo(t){this.scaleType=Te.all,this.canRotate=!1,this.textOpt=void 0,this.strokeColor=void 0,this.fillColor=void 0,this.canTextEdit=!1,this.canLock=!1,this.isLocked=!1,this.toolsTypes=void 0,this.shapeOpt=void 0,this.thickness=void 0,this.strokeType=void 0,this.useStroke=!1;const r=new Set;let n,s=!0;for(const c of t.values()){const{opt:l,canRotate:f,scaleType:u,toolsType:v}=c;this.selectorColor=this.workOptions.strokeColor,l.strokeColor&&(this.strokeColor=l.strokeColor),l.fillColor&&(this.fillColor=l.fillColor),l.textOpt&&(this.textOpt=l.textOpt),l.thickness&&(this.thickness=l.thickness),v!==xt.Pencil&&(s=!1),l.strokeType&&(this.strokeType=l.strokeType),v===xt.SpeechBalloon&&(r.add(v),this.shapeOpt||(this.shapeOpt={}),this.shapeOpt.placement=l.placement),v===xt.Polygon&&(r.add(v),this.shapeOpt||(this.shapeOpt={}),this.shapeOpt.vertices=l.vertices),v===xt.Star&&(r.add(v),this.shapeOpt||(this.shapeOpt={}),this.shapeOpt.vertices=l.vertices,this.shapeOpt.innerRatio=l.innerRatio,this.shapeOpt.innerVerticeStep=l.innerVerticeStep),v===xt.Text&&(this.textOpt=l),t.size===1&&(this.textOpt&&(this.canTextEdit=!0),this.canRotate=f,this.scaleType=u),(v===xt.Image||v===xt.BackgroundSVG)&&(n=c),(u===Te.proportional&&this.scaleType!==Te.none||u===Te.none)&&(this.scaleType=u)}s&&(this.useStroke=!0),r.size&&(this.toolsTypes=[...r]),n&&(t.size===1?(this.canLock=!0,n.opt.locked&&(this.isLocked=!0,this.scaleType=Te.none,this.canRotate=!1,this.textOpt=void 0,this.fillColor=void 0,this.selectorColor="rgb(177,177,177)",this.strokeColor=void 0,this.canTextEdit=!1,this.thickness=void 0,this.strokeType=void 0,this.useStroke=void 0)):t.size>1&&!n.opt.locked&&(this.canLock=!1,this.canRotate=!1))}getChildrenPoints(){var t,r;if(this.scaleType===Te.both&&((t=this.selectIds)==null?void 0:t.length)===1){const n=this.selectIds[0],s=(r=this.vNodes.get(n))==null?void 0:r.op;if(s){const c=[];for(let l=0;l<s.length;l+=3)c.push([s[l],s[l+1]]);return c}}}consume(t){if(t.isSubWorker)return this.subWorkerConsume(t);let r={type:vt.Select,dataType:Kt.Local,...this.baseConsumeResult};if(t.isSimpleWorker){const v=this.subWorkerConsume(t);r.subRect=v.rect}const{op:n,workState:s}=t.data;let c=this.oldSelectRect;if(s===qt.Start&&(c=this.unSelectedAllIds()),!(n!=null&&n.length)||!this.vNodes.curNodeMap.size)return t.isSimpleWorker?r:{type:vt.None};this.updateTempPoints(n);const l=this.computSelector();if(this.selectIds&&Qr(this.selectIds,l.selectIds))return t.isSimpleWorker?r:{type:vt.None};this.selectIds=l.selectIds;const f=l.intersectRect;this.getSelecteorInfo(l.subNodeMap),this.draw(Me,this.fullLayer,l),this.oldSelectRect=f;const u=this.getChildrenPoints();return r={...r,rect:Zt(f,c),selectIds:l.selectIds,selectRect:f,selectorColor:this.selectorColor,strokeColor:this.strokeColor,fillColor:this.fillColor,textOpt:this.textOpt,canTextEdit:this.canTextEdit,canRotate:this.canRotate,canLock:this.canLock,scaleType:this.scaleType,willSyncService:!0,points:u,isLocked:this.isLocked,toolsTypes:this.toolsTypes,shapeOpt:this.shapeOpt,thickness:this.thickness,useStroke:this.useStroke,strokeType:this.strokeType},r}consumeAll(){var r,n;let t=this.oldSelectRect;if(!((r=this.selectIds)!=null&&r.length)&&this.tmpPoints[0]&&this.selectSingleTool(this.tmpPoints[0].XY,Me,!1),(n=this.selectIds)!=null&&n.length&&(t=this.selectedByIds(this.selectIds)),t){const s=this.getChildrenPoints();return{type:vt.Select,dataType:Kt.Local,rect:this.oldSelectRect,selectIds:this.selectIds,selectorColor:this.selectorColor,selectRect:this.oldSelectRect,strokeColor:this.strokeColor,fillColor:this.fillColor,textOpt:this.textOpt,canTextEdit:this.canTextEdit,canRotate:this.canRotate,canLock:this.canLock,scaleType:this.scaleType,willSyncService:!0,points:s,isLocked:this.isLocked,toolsTypes:this.toolsTypes,shapeOpt:this.shapeOpt,thickness:this.thickness,useStroke:this.useStroke,strokeType:this.strokeType,...this.baseConsumeResult}}return{type:vt.Select,dataType:Kt.Local,...this.baseConsumeResult}}consumeService(){}updateTempPointsForSubWorker(t){const r=t.slice(-2),n=new Jt(r[0],r[1]);if(this.subTmpPoints[0].isNear(n,1))return!1;if(this.subTmpPoints.length===2){if(n.isNear(this.subTmpPoints[1],1))return!1;this.subTmpPoints[1]=n}else this.subTmpPoints.push(n);return!0}computDrawPoints(t){const{thickness:r}=this.workOptions,n=[];for(const l of t)n.push(new pt(...l));const s=Re(n,r),c=[s.x+s.w/2,s.y+s.h/2];return{rect:s,pos:c,points:n.map(l=>l.XY).flat(1)}}drawForSubWorker(t){const{workId:r,layer:n,ps:s}=t,{strokeColor:c,scale:l,rotate:f,translate:u}=this.workOptions,v=n.worldPosition,h=n.worldScaling,{points:y,rect:T,pos:O}=this.computDrawPoints(s),C=1/n.worldScaling[0],S=c&&fx(c)||[0,0,0,0],w={close:!0,normalize:!0,points:y,lineWidth:C,fillColor:oc(S[0],S[1],S[2],.1),strokeColor:oc(S[0],S[1],S[2],1),lineJoin:"round",lineCap:"round"};let d={x:Math.floor(T.x*h[0]+v[0]-Xt.SafeBorderPadding),y:Math.floor(T.y*h[1]+v[1]-Xt.SafeBorderPadding),w:Math.floor(T.w*h[0]+2*Xt.SafeBorderPadding),h:Math.floor(T.h*h[0]+2*Xt.SafeBorderPadding)};const g=new Je({name:r,id:r,pos:O,anchor:[.5,.5],size:[T.w,T.h],scale:l,rotate:f,translate:u}),p=new nn({...w,pos:[0,0]});if(g.appendChild(p),this.replace(n,r,g),l||f||u){const P=g.getBoundingClientRect();d={x:Math.floor(P.x-Xt.SafeBorderPadding),y:Math.floor(P.y-Xt.SafeBorderPadding),w:Math.floor(P.width+2*Xt.SafeBorderPadding),h:Math.floor(P.height+2*Xt.SafeBorderPadding)}}return d}transformData(t){const r=Re(t);return[[r.x,r.y,0],[r.x+r.w,r.y,0],[r.x+r.w,r.y+r.h,0],[r.x,r.y+r.h,0]]}subWorkerConsume(t){const{data:r,isFullWork:n}=t,{op:s,syncUnitTime:c}=r;c&&(this.syncUnitTime=c);const l=s==null?void 0:s.length;if(!l||l<2)return{type:vt.None,rect:void 0};let f;if(this.subTmpPoints.length===0?(this.subTmpPoints=[new Jt(s[0],s[1])],f=!1):f=this.updateTempPointsForSubWorker(s),!f)return{type:vt.None,rect:void 0};const u=this.transformData(this.subTmpPoints),v=n?this.fullLayer:this.drawLayer||this.fullLayer,h=this.drawForSubWorker({ps:u,workId:this.workId,layer:v}),y=Zt(h,this.oldSubSelectRect);return this.oldSubSelectRect=h,{rect:y,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult}}subWorkerConsumeAll(t){const{isFullWork:r}=t,n=r?this.fullLayer:this.drawLayer||this.fullLayer;return this.replace(n,this.workId),{rect:this.oldSelectRect,type:vt.FullWork,dataType:Kt.Local,...this.baseConsumeResult}}clearSubTmpPoints(){this.subTmpPoints.length=0}clearTmpPoints(){this.tmpPoints.length=0,this.clearSubTmpPoints()}clearSubSelectData(){this.oldSubSelectRect=void 0}clearSelectData(){this.selectIds=void 0,this.oldSelectRect=void 0,this.clearSubSelectData()}selectSingleTool(t,r=Me,n=!1){if(t.length===2){const s=t[0],c=t[1];let l;const{nodeRange:f}=this.vNodes.getRectIntersectRange({x:s,y:c,w:0,h:0},!1),u=[...f.values()].sort((v,h)=>(h.opt.zIndex||0)-(v.opt.zIndex||0));for(const v of u){const h=this.fullLayer.getElementsByName(v.name);if(Bc(h).find(T=>T.isPointCollision(s,c))){l=v;break}}if(l){const v=l.name;if(!Qr(this.oldSelectRect,l.rect)){const h=new Map([[v,l]]);this.getSelecteorInfo(h),this.draw(r,this.fullLayer,{intersectRect:l.rect,subNodeMap:h,selectIds:this.selectIds||[]},n)}this.selectIds=[v],this.oldSelectRect=l.rect}}}unSelectedAllIds(){let t;for(const[r,n]of this.vNodes.curNodeMap.entries())n.isSelected&&(t=Zt(t,n.rect),this.vNodes.unSelected(r));return t}unSelectedByIds(t){let r;for(const n of t){const s=this.vNodes.get(n);s&&s.isSelected&&(r=Zt(r,s.rect),this.vNodes.unSelected(n))}return r}selectedByIds(t){let r;for(const n of t){const s=this.vNodes.get(n);s&&(r=Zt(r,s.rect),this.vNodes.selected(n))}return r}getSelectorRect(t,r){var l;let n;const s=(l=t.parent)==null?void 0:l.getElementById(r),c=s==null?void 0:s.getBoundingClientRect();return c&&(n=Zt(n,{x:Math.floor(c.x),y:Math.floor(c.y),w:Math.floor(c.width+1),h:Math.floor(c.height+1)})),n}isCanFillColor(t){return t===xt.Ellipse||t===xt.Triangle||t===xt.Rectangle||t===xt.Polygon||t===xt.Star||t===xt.SpeechBalloon}async updateSelector(t){const{updateSelectorOpt:r,selectIds:n,vNodes:s,willSerializeData:c,worker:l,offset:f}=t,u=this.fullLayer;if(!u)return;let v;const h=new Map,{originPoint:y,workState:T,angle:O,translate:C,dir:S,scale:w}=r;f&&(C?r.translate=[C[0]+f[0],C[1]+f[1]]:r.translate=f);let d;if(y||C||Qe(O)){if(T===qt.Start&&n)return s.setTargetAssignKeys(n),{type:vt.Select,dataType:Kt.Local,selectRect:this.oldSelectRect,rect:this.oldSelectRect};if(d=s.getLastTarget(),!d)return}if(n)for(const P of n){const A=s.get(P);if(A){const{toolsType:R,opt:D}=A,U=(u==null?void 0:u.getElementsByName(P))[0];if(U){const L={...r};let W;const Y=Xt.isWillRefresh({toolsType:R,opt:D,updateOpt:L,vNodes:s,node:U,willSerializeData:c});if(R){W=d==null?void 0:d.get(P);const B=Nc(R);if(B==null||B.updateNodeOpt({node:U,opt:L,vNodes:s,willSerializeData:c,targetNode:W}),A&&l&&Y){const N=l.createWorkShapeNode({workId:P,toolsType:R,toolsOpt:A.opt});N==null||N.setWorkId(P);let $;if(R===xt.BackgroundSVG)$=N.consumeService({isFullWork:!0,replaceId:P});else if(R===xt.Image)$=await N.consumeServiceAsync({isFullWork:!0,replaceId:P,worker:l});else if(R===xt.Text)$=await N.consumeServiceAsync({isFullWork:!0,replaceId:P,isDrawLabel:!0});else try{$=N==null?void 0:N.consumeService({op:A.op,isFullWork:!0,replaceId:P,workState:T})}catch(J){console.error("consumeService error",J);continue}$&&(A.rect=$)}A&&(h.set(P,A),v=Zt(v,A.rect))}}}}d&&T===qt.Done&&(s.deleteLastTarget(),d=void 0);const g=v;if(y&&C&&w&&S&&g&&!f){const P=[[g.x,g.y],[g.x+g.w,g.y],[g.x+g.w,g.y+g.h],[g.x,g.y+g.h]];let A;switch(S){case"top":case"topLeft":case"left":C[0]>0&&C[1]>0?A=P[0]:C[0]>0?A=P[3]:C[1]>0?A=P[1]:A=P[2];break;case"topRight":C[0]<0&&C[1]>0?A=P[1]:C[0]<0?A=P[2]:C[1]>0?A=P[0]:A=P[3];break;case"right":case"bottomRight":case"bottom":C[0]<0&&C[1]<0?A=P[2]:C[0]<0?A=P[1]:C[1]<0?A=P[3]:A=P[0];break;case"bottomLeft":C[0]>0&&C[1]<0?A=P[3]:C[0]>0?A=P[0]:C[1]<0?A=P[2]:A=P[1];break}const R=A&&[y[0]-A[0],y[1]-A[1]]||[0,0];if(!Qr(R,[0,0]))return await this.updateSelector({...t,updateSelectorOpt:{workState:T},offset:R})}this.getSelecteorInfo(h),this.draw(Me,u,{selectIds:n||[],subNodeMap:h,intersectRect:g});const p=Zt(this.oldSelectRect,g);return this.oldSelectRect=g,{type:vt.Select,dataType:Kt.Local,selectRect:g,renderRect:v,rect:Zt(p,g),selectIds:n}}blurSelector(){const t=this.unSelectedAllIds();return{type:vt.Select,dataType:Kt.Local,rect:t,selectIds:[],willSyncService:!0}}getRightServiceId(t){return t.replace(Vn,"-")}selectServiceNode(t,r,n){const{selectIds:s}=r,c=this.getRightServiceId(t),l=this.getSelectorRect(this.fullLayer,c);let f;const u=new Map;return s==null||s.forEach(v=>{const h=this.vNodes.get(v);h&&(f=Zt(f,h.rect),u.set(v,h))}),this.getSelecteorInfo(u),this.draw(c,this.fullLayer,{intersectRect:f,selectIds:s||[],subNodeMap:u},n),Zt(f,l)}reRenderSelector(){var n;let t;const r=new Map;return(n=this.selectIds)==null||n.forEach(s=>{const c=this.vNodes.get(s);c&&(t=Zt(t,c.rect),r.set(s,c))},this),this.getSelecteorInfo(r),this.draw(Me,this.fullLayer,{intersectRect:t,subNodeMap:r,selectIds:this.selectIds||[]}),this.oldSelectRect=t,t}updateSelectIds(t){var c;let r;const n=(c=this.selectIds)==null?void 0:c.filter(l=>!t.includes(l));if(n!=null&&n.length&&(r=this.unSelectedByIds(n)),t.length){const l=this.selectedByIds(t);r=Zt(r,l)}this.selectIds=t;const s=this.reRenderSelector();return{bgRect:r,selectRect:s}}cursorHover(t){var c,l;const r=this.oldSelectRect;this.selectIds=[];const n=(c=this.workId)==null?void 0:c.toString(),s=[t[0]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],t[1]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[1]];if(this.selectSingleTool(s,n,!0),this.oldSelectRect&&!Qr(r,this.oldSelectRect))return{type:vt.CursorHover,dataType:Kt.Local,rect:Zt(r,this.oldSelectRect),selectorColor:this.selectorColor,willSyncService:!1};if((l=this.selectIds)!=null&&l.length||(this.oldSelectRect=void 0),r&&!this.oldSelectRect)return this.cursorBlur(),{type:vt.CursorHover,dataType:Kt.Local,rect:r,selectorColor:this.selectorColor,willSyncService:!1}}cursorBlur(){var r,n;this.selectIds=[];const t=(r=this.workId)==null?void 0:r.toString();((n=this.fullLayer)==null?void 0:n.parent).children.forEach(s=>{s.name===t&&s.remove()})}};dt(Rs,"selectorBorderId","selector-border");let Mi=Rs;class ac extends Xt{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.both);dt(this,"toolsType",xt.Arrow);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"arrowTipWidth");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.arrowTipWidth=this.workOptions.thickness*4,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,u=this.workId,{op:v,syncUnitTime:h}=r;h&&(this.syncUnitTime=h);const y=v==null?void 0:v.length;if(!y||y<2)return{type:vt.None};let T;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(v[0],v[1])],T=!1):T=this.updateTempPoints(v),!T)return{type:vt.None};let O;if(s||c||f){const S=n?this.fullLayer:this.drawLayer||this.fullLayer;O=this.draw({workId:u,layer:S})}if(f){const S=Zt(O,this.oldRect);this.oldRect=O;const w={rect:S,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult};if(l){const d=Date.now();d-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=d,w.op=this.tmpPoints.map(g=>[...g.XY,0]).flat(1),w.index=0,w.isSync=!0)}return w}if(!s&&l){const S=Date.now();return S-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=S,{...this.baseConsumeResult,type:vt.DrawWork,dataType:Kt.Local,op:this.tmpPoints.map(w=>[...w.XY,0]).flat(1),isSync:!0,index:0}):{type:vt.None}}const C=Zt(O,this.oldRect);return this.oldRect=O,{rect:C,...this.baseConsumeResult,type:vt.DrawWork,dataType:Kt.Local}}consumeAll(){var l;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.fullLayer,n=this.draw({workId:t,layer:r});this.oldRect=n;const s=this.tmpPoints.map(f=>[...f.XY,0]).flat(1),c=hr(s);return(l=this.vNodes)==null||l.setInfo(t,{rect:n,op:s,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:Xt.getCenterPos(n,r)}),{rect:n,...this.baseConsumeResult,type:vt.FullWork,dataType:Kt.Local,ops:c,isSync:!0,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawEraserlines:s}=t,{strokeColor:c,thickness:l,zIndex:f,scale:u,rotate:v,translate:h,strokeType:y,eraserlines:T,lineDash:O,lineCap:C}=this.workOptions,S=n.worldPosition,w=n.worldScaling,{points:d,pos:g,rect:p,isTriangle:P,trianglePoints:A,trianglePos:R}=this.computDrawPoints(l),D=[p.x+p.w/2,p.y+p.h/2],U={pos:D,name:r,id:r,zIndex:f,anchor:[.5,.5],size:[p.w,p.h]};u&&(U.scale=u),v&&(U.rotate=v),h&&(U.translate=h);const L=new Je(U),W={points:A,pos:[R[0]-D[0],R[1]-D[1]],fillColor:c,strokeColor:c,lineWidth:0,normalize:!1},Y=new nn(W);if(L.append(Y),!P&&d&&g){const N={points:d,pos:[g[0]-D[0],g[1]-D[1]],fillColor:c,strokeColor:c,lineDash:y===Ae.Dotted?[O&&O[0]||1,(O&&O[1]||2)*l]:y===Ae.LongDotted?[(O&&O[0]||1)*l,(O&&O[1]||2)*l]:void 0,lineCap:y===Ae.Normal?void 0:C,lineWidth:l,normalize:!1},$=new nn(N);L.append($)}T&&(this.scaleType=Te.proportional,this.drawEraserlines({group:L,eraserlines:T,pos:D,layer:n},s)),this.replace(n,r,L);let B={x:Math.floor(p.x*w[0]+S[0]-Xt.SafeBorderPadding),y:Math.floor(p.y*w[1]+S[1]-Xt.SafeBorderPadding),w:Math.floor(p.w*w[0]+2*Xt.SafeBorderPadding),h:Math.floor(p.h*w[1]+2*Xt.SafeBorderPadding)};if(u||v||h){const N=L.getBoundingClientRect();B={x:Math.floor(N.x-Xt.SafeBorderPadding),y:Math.floor(N.y-Xt.SafeBorderPadding),w:Math.floor(N.width+Xt.SafeBorderPadding*2),h:Math.floor(N.height+Xt.SafeBorderPadding*2)}}return this.isDelete&&L.setAttribute("opacity",0),B}computDrawPoints(t){return this.tmpPoints[1].distance(this.tmpPoints[0])>this.arrowTipWidth?this.computFullArrowPoints(t):this.computTrianglePoints()}computFullArrowPoints(t){const r=pt.Sub(this.tmpPoints[1],this.tmpPoints[0]).uni(),n=pt.Per(r).mul(t/2),s=Jt.Sub(this.tmpPoints[0],n),c=Jt.Add(this.tmpPoints[0],n),l=pt.Mul(r,this.arrowTipWidth),f=pt.Sub(this.tmpPoints[1],l),u=Jt.Sub(f,n),v=Jt.Add(f,n),h=pt.Per(r).mul(t*1.5),y=Jt.Sub(f,h),T=Jt.Add(f,h),O=[this.tmpPoints[0],f],C=[y,this.tmpPoints[1],T],S=[s,c,...C,u,v];return{trianglePoints:C.map(w=>Jt.Sub(w,this.tmpPoints[1]).XY).flat(1),trianglePos:this.tmpPoints[1].XY,points:O.map(w=>Jt.Sub(w,this.tmpPoints[0]).XY).flat(1),rect:Re(S),isTriangle:!1,pos:this.tmpPoints[0].XY}}computTrianglePoints(){const t=pt.Sub(this.tmpPoints[1],this.tmpPoints[0]).uni(),r=this.tmpPoints[1].distance(this.tmpPoints[0]),n=pt.Per(t).mul(Math.floor(r*3/8)),s=Jt.Sub(this.tmpPoints[0],n),c=Jt.Add(this.tmpPoints[0],n),l=[s,this.tmpPoints[1],c];return{trianglePoints:l.map(f=>Jt.Sub(f,this.tmpPoints[1]).XY).flat(1),trianglePos:this.tmpPoints[1].XY,rect:Re(l),isTriangle:!0}}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var u,v;const{op:r,isFullWork:n,workState:s=qt.Done}=t,c=(u=this.workId)==null?void 0:u.toString();if(!c)return;this.tmpPoints.length=0;for(let h=0;h<r.length;h+=3)this.tmpPoints.push(new Jt(r[h],r[h+1],r[h+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({workId:c,layer:l,isDrawEraserlines:s===qt.Done});return this.oldRect=f,(v=this.vNodes)==null||v.setInfo(c,{rect:f,op:r,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:Xt.getCenterPos(f,l)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var u,v;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,strokeType:l}=n,f=s.get(r.name);return c&&(r.tagName==="GROUP"?r.children.forEach(h=>{h.setAttribute("strokeColor",c),h.getAttribute("fillColor")&&h.setAttribute("fillColor",c)}):(r.setAttribute("strokeColor",c),r.setAttribute("fillColor",c)),(u=f==null?void 0:f.opt)!=null&&u.strokeColor&&(f.opt.strokeColor=c)),l&&(f!=null&&f.opt)&&((v=f.opt)!=null&&v.strokeType)&&(f.opt.strokeType=l),f&&s.setInfo(r.name,f),Xt.updateNodeOpt(t)}}class lc extends Xt{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.all);dt(this,"toolsType",xt.Ellipse);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,u=this.workId,{op:v,syncUnitTime:h}=r;h&&(this.syncUnitTime=h);const y=v==null?void 0:v.length;if(!y||y<2)return{type:vt.None};let T;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(v[0],v[1])],T=!1):T=this.updateTempPoints(v),!T)return{type:vt.None};let O;if(s||c||f){const C=n?this.fullLayer:this.drawLayer||this.fullLayer;O=this.draw({workId:u,layer:C,isDrawing:!0});const S=C.parent.parent,w={x:0,y:0,w:Math.floor(S.width),h:Math.floor(S.height)},d={type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult};if(Bi(O,w)!==yr.outside){const p=Zt(O,this.oldRect);if(this.oldRect=O,d.rect=p,!f)return d}if(f){const p=Date.now();return p-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=p,d.op=this.tmpPoints.map(P=>[...P.XY,0]).flat(1),d.index=0,d.isSync=!0),d}return{type:vt.None}}if(!s&&!c&&!f&&l){const C=Date.now();return C-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=C,{type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult,op:this.tmpPoints.map(S=>[...S.XY,0]).flat(1),isSync:!0,index:0}):{type:vt.None}}return{type:vt.None}}consumeAll(){var l;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.fullLayer,n=this.draw({workId:t,layer:r,isDrawing:!1});this.oldRect=n;const s=this.tmpPoints.map(f=>[...f.XY,0]).flat(1),c=hr(s);return(l=this.vNodes)==null||l.setInfo(t,{rect:n,op:s,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:n&&Xt.getCenterPos(n,r)}),{rect:n,type:vt.FullWork,dataType:Kt.Local,...this.baseConsumeResult,ops:c,isSync:!0,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawing:s,isDrawEraserlines:c}=t,{strokeColor:l,fillColor:f,thickness:u,zIndex:v,scale:h,rotate:y,translate:T,strokeType:O,eraserlines:C,lineDash:S,lineCap:w}=this.workOptions,d=n.worldScaling,{radius:g,rect:p,pos:P}=this.computDrawPoints(u),A={closeType:"normal",radius:g,lineWidth:u,fillColor:f!=="transparent"&&f||void 0,strokeColor:l,normalize:!0,lineCap:w,lineDash:O===Ae.Dotted?[S&&S[0]||1,(S&&S[1]||2)*u]:O===Ae.LongDotted?[(S&&S[0]||1)*u,(S&&S[1]||2)*u]:void 0},R={name:r,id:r,zIndex:v,pos:P,anchor:[.5,.5],size:[p.w,p.h]};h&&(R.scale=h),y&&(R.rotate=y),T&&(R.translate=T);const D=new Je(R);if(s){const W=new gn({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:l,lineWidth:1,scale:[1/d[0],1/d[1]]});D.append(W)}const U=new rn({...A,pos:[0,0]});D.append(U),C&&(this.scaleType=Te.proportional,this.drawEraserlines({group:D,eraserlines:C,pos:P,layer:n},c)),this.replace(n,r,D);const L=D.getBoundingClientRect();return this.isDelete&&D.setAttribute("opacity",0),{x:Math.floor(L.x-Xt.SafeBorderPadding),y:Math.floor(L.y-Xt.SafeBorderPadding),w:Math.floor(L.width+Xt.SafeBorderPadding*2),h:Math.floor(L.height+Xt.SafeBorderPadding*2)}}computDrawPoints(t){const r=Re(this.tmpPoints),n=Re(this.tmpPoints,t),s=[Math.floor(r.x+r.w/2),Math.floor(r.y+r.h/2)];return{rect:n,pos:s,radius:[Math.floor(r.w/2),Math.floor(r.h/2)]}}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var u,v;const{op:r,isFullWork:n,workState:s=qt.Done}=t,c=(u=this.workId)==null?void 0:u.toString();if(!c)return;this.tmpPoints.length=0;for(let h=0;h<r.length;h+=3)this.tmpPoints.push(new Jt(r[h],r[h+1],r[h+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({workId:c,layer:l,isDrawing:!1,isDrawEraserlines:s===qt.Done});return this.oldRect=f,(v=this.vNodes)==null||v.setInfo(c,{rect:f,op:r,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:Xt.getCenterPos(f,l)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var h,y,T;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,fillColor:l,strokeType:f}=n,u=s.get(r.name);let v=r;return r.tagName==="GROUP"&&(v=r.children[0]),c&&(v.setAttribute("strokeColor",c),(h=u==null?void 0:u.opt)!=null&&h.strokeColor&&(u.opt.strokeColor=c)),l&&(l==="transparent"?v.setAttribute("fillColor","rgba(0,0,0,0)"):v.setAttribute("fillColor",l),(y=u==null?void 0:u.opt)!=null&&y.fillColor&&(u.opt.fillColor=l)),f&&(u!=null&&u.opt)&&((T=u.opt)!=null&&T.strokeType)&&(u.opt.strokeType=f),u&&s.setInfo(r.name,u),Xt.updateNodeOpt(t)}}class fc extends Xt{constructor(t){super(t);dt(this,"canRotate",!0);dt(this,"scaleType",Te.all);dt(this,"toolsType",xt.Rectangle);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}transformData(){const t=Re(this.tmpPoints);return[[t.x,t.y,0],[t.x+t.w,t.y,0],[t.x+t.w,t.y+t.h,0],[t.x,t.y+t.h,0]]}computDrawPoints(t){const{thickness:r}=this.workOptions,n=[];for(const l of t)n.push(new pt(...l));const s=Re(n,r),c=[s.x+s.w/2,s.y+s.h/2];return{rect:s,pos:c,points:n.map(l=>l.XY).flat(1)}}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,u=this.workId,{op:v}=r,h=v==null?void 0:v.length;if(!h||h<2)return{type:vt.None};let y;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(v[0],v[1])],y=!1):y=this.updateTempPoints(v),!y)return{type:vt.None};const T=this.transformData();let O;if(s||c||f){const S=n?this.fullLayer:this.drawLayer||this.fullLayer;O=this.draw({ps:T,workId:u,layer:S,isDrawing:!0})}if(f){const S=Zt(O,this.oldRect);this.oldRect=O;const w={rect:S,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult};if(l){const d=Date.now();d-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=d,w.op=T.flat(1),w.index=0,w.isSync=!0)}return w}if(!s&&l){const S=Date.now();return S-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=S,{type:vt.DrawWork,dataType:Kt.Local,op:T.flat(1),isSync:!0,index:0,...this.baseConsumeResult}):{type:vt.None}}const C=Zt(O,this.oldRect);return this.oldRect=O,{rect:C,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult}}consumeAll(){var f;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.transformData(),n=this.fullLayer,s=this.draw({ps:r,workId:t,layer:n,isDrawing:!1});this.oldRect=s;const c=r.flat(1),l=hr(c);return(f=this.vNodes)==null||f.setInfo(t,{rect:s,op:c,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:s&&Xt.getCenterPos(s,n)}),{rect:s,type:vt.FullWork,dataType:Kt.Local,ops:l,isSync:!0,...this.baseConsumeResult,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawing:s,ps:c,replaceId:l,isDrawEraserlines:f=!0}=t,{strokeColor:u,fillColor:v,thickness:h,zIndex:y,scale:T,rotate:O,translate:C,strokeType:S,eraserlines:w,lineCap:d,lineDash:g}=this.workOptions,p=n.worldPosition,P=n.worldScaling,{points:A,rect:R,pos:D}=this.computDrawPoints(c),U={close:!0,normalize:!0,points:A,lineWidth:h,fillColor:v!=="transparent"&&v||void 0,strokeColor:u,lineCap:d,lineDash:S===Ae.Dotted?[g&&g[0]||1,(g&&g[1]||2)*h]:S===Ae.LongDotted?[(g&&g[0]||1)*h,(g&&g[1]||2)*h]:void 0};let L={x:Math.floor(R.x*P[0]+p[0]-Xt.SafeBorderPadding),y:Math.floor(R.y*P[1]+p[1]-Xt.SafeBorderPadding),w:Math.floor(R.w*P[0]+2*Xt.SafeBorderPadding),h:Math.floor(R.h*P[0]+2*Xt.SafeBorderPadding)};const W=new Je({name:r,id:r,zIndex:y,pos:D,anchor:[.5,.5],size:[R.w,R.h],scale:T,rotate:O,translate:C}),Y=new nn({...U,pos:[0,0]});if(W.appendChild(Y),s){const B=new gn({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:u,lineWidth:1,scale:[1/P[0],1/P[1]]});W.appendChild(B)}if(w&&(this.scaleType=Te.proportional,this.drawEraserlines({group:W,eraserlines:w,pos:D,layer:n},f)),this.replace(n,l||r,W),T||O||C){const B=W.getBoundingClientRect();L={x:Math.floor(B.x-Xt.SafeBorderPadding),y:Math.floor(B.y-Xt.SafeBorderPadding),w:Math.floor(B.width+2*Xt.SafeBorderPadding),h:Math.floor(B.height+2*Xt.SafeBorderPadding)}}return this.isDelete&&W.setAttribute("opacity",0),L}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var h,y;const{op:r,isFullWork:n,replaceId:s,workState:c=qt.Done}=t,l=(h=this.workId)==null?void 0:h.toString();if(!l)return;const f=[];for(let T=0;T<r.length;T+=3)f.push([r[T],r[T+1],r[T+2]]);const u=n?this.fullLayer:this.drawLayer||this.fullLayer,v=this.draw({ps:f,workId:l,layer:u,isDrawing:!1,replaceId:s,isDrawEraserlines:c===qt.Done});return this.oldRect=v,(y=this.vNodes)==null||y.setInfo(l,{rect:v,op:r,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:v&&Xt.getCenterPos(v,u)}),v}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var h,y,T;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,fillColor:l,strokeType:f}=n,u=s.get(r.name);let v=r;return r.tagName==="GROUP"&&(v=r.children[0]),c&&(v.setAttribute("strokeColor",c),(h=u==null?void 0:u.opt)!=null&&h.strokeColor&&(u.opt.strokeColor=c)),l&&(l==="transparent"?v.setAttribute("fillColor","rgba(0,0,0,0)"):v.setAttribute("fillColor",l),(y=u==null?void 0:u.opt)!=null&&y.fillColor&&(u.opt.fillColor=l)),f&&(u!=null&&u.opt)&&((T=u.opt)!=null&&T.strokeType)&&(u.opt.strokeType=f),u&&s.setInfo(r.name,u),Xt.updateNodeOpt(t)}}class cc extends Xt{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.all);dt(this,"toolsType",xt.Star);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,u=this.workId,{op:v,syncUnitTime:h}=r,y=v==null?void 0:v.length;if(!y||y<2)return{type:vt.None};h&&(this.syncUnitTime=h);let T;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(v[0],v[1])],T=!1):T=this.updateTempPoints(v),!T)return{type:vt.None};let O;if(s||c||f){const S=n?this.fullLayer:this.drawLayer||this.fullLayer;O=this.draw({workId:u,layer:S,isDrawing:!0})}if(f){const S=Zt(O,this.oldRect);this.oldRect=O;const w={rect:S,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult};if(l){const d=Date.now();d-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=d,w.op=this.tmpPoints.map(g=>[...g.XY,0]).flat(1),w.index=0,w.isSync=!0)}return w}if(!s&&l){const S=Date.now();return S-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=S,{type:vt.DrawWork,dataType:Kt.Local,op:this.tmpPoints.map(w=>[...w.XY,0]).flat(1),isSync:!0,index:0,...this.baseConsumeResult}):{type:vt.None}}const C=Zt(O,this.oldRect);return this.oldRect=O,{rect:C,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult}}consumeAll(){var l;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.fullLayer,n=this.draw({workId:t,layer:r,isDrawing:!1});this.oldRect=n;const s=this.tmpPoints.map(f=>[...f.XY,0]).flat(1),c=hr(s);return(l=this.vNodes)==null||l.setInfo(t,{rect:n,op:s,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:n&&Xt.getCenterPos(n,r)}),{rect:n,type:vt.FullWork,dataType:Kt.Local,ops:c,isSync:!0,...this.baseConsumeResult,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawing:s,isDrawEraserlines:c=!0}=t,{strokeColor:l,fillColor:f,thickness:u,zIndex:v,vertices:h,innerVerticeStep:y,innerRatio:T,scale:O,rotate:C,translate:S,strokeType:w,eraserlines:d,lineDash:g,lineCap:p}=this.workOptions,P=n.worldScaling,{rect:A,pos:R,points:D}=this.computDrawPoints(u,h,y,T),U={close:!0,points:D,lineWidth:u,fillColor:f!=="transparent"&&f||void 0,strokeColor:l,normalize:!0,lineCap:p,lineDash:w===Ae.Dotted?[g&&g[0]||1,(g&&g[1]||2)*u]:w===Ae.LongDotted?[(g&&g[0]||1)*u,(g&&g[1]||2)*u]:void 0},L={name:r,id:r,zIndex:v,pos:R,anchor:[.5,.5],size:[A.w,A.h]};O&&(L.scale=O),C&&(L.rotate=C),S&&(L.translate=S);const W=new Je(L);if(s){const N=new gn({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:l,lineWidth:1,scale:[1/P[0],1/P[1]]});W.append(N)}const Y=new nn({...U,pos:[0,0]});W.append(Y),d&&(this.scaleType=Te.proportional,this.drawEraserlines({group:W,eraserlines:d,pos:R,layer:n},c)),this.replace(n,r,W);const B=W.getBoundingClientRect();return this.isDelete&&W.setAttribute("opacity",0),{x:Math.floor(B.x-Xt.SafeBorderPadding),y:Math.floor(B.y-Xt.SafeBorderPadding),w:Math.floor(B.width+Xt.SafeBorderPadding*2),h:Math.floor(B.height+Xt.SafeBorderPadding*2)}}computDrawPoints(t,r,n,s){const c=Re(this.tmpPoints),l=[Math.floor(c.x+c.w/2),Math.floor(c.y+c.h/2)],f=Fc(c.w,c.h),u=Math.floor(Math.min(c.w,c.h)/2),v=s*u,h=[],y=2*Math.PI/r;for(let O=0;O<r;O++){const C=O*y-.5*Math.PI;let S,w;O%n===1?(S=v*f[0]*Math.cos(C),w=v*f[1]*Math.sin(C)):(S=u*f[0]*Math.cos(C),w=u*f[1]*Math.sin(C),h.push(S,w)),h.push(S,w)}return{rect:Re(this.tmpPoints,t),pos:l,points:h}}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c)||Jt.Sub(s,n).XY.includes(0))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var u,v;const{op:r,isFullWork:n,workState:s=qt.Done}=t,c=(u=this.workId)==null?void 0:u.toString();if(!c)return;this.tmpPoints.length=0;for(let h=0;h<r.length;h+=3)this.tmpPoints.push(new Jt(r[h],r[h+1],r[h+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({workId:c,layer:l,isDrawing:!1,isDrawEraserlines:s===qt.Done});return this.oldRect=f,(v=this.vNodes)==null||v.setInfo(c,{rect:f,op:r,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:f&&Xt.getCenterPos(f,l)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var S;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,fillColor:l,toolsType:f,vertices:u,innerVerticeStep:v,innerRatio:h,strokeType:y}=n,T=s.get(r.name),O=T==null?void 0:T.opt;let C=r;return r.tagName==="GROUP"&&(C=r.children[0]),c&&(C.setAttribute("strokeColor",c),O!=null&&O.strokeColor&&(O.strokeColor=c)),l&&(l==="transparent"?C.setAttribute("fillColor","rgba(0,0,0,0)"):C.setAttribute("fillColor",l),O!=null&&O.fillColor&&(O.fillColor=l)),f===xt.Star&&(u&&(O.vertices=u),v&&(O.innerVerticeStep=v),h&&(O.innerRatio=h)),y&&(T!=null&&T.opt)&&((S=T.opt)!=null&&S.strokeType)&&(T.opt.strokeType=y),T&&s.setInfo(r.name,{...T,opt:O}),Xt.updateNodeOpt(t)}}class uc extends Xt{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.all);dt(this,"toolsType",xt.Polygon);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,{op:u,syncUnitTime:v}=r;v&&(this.syncUnitTime=v);const h=this.workId,y=u==null?void 0:u.length;if(!y||y<2)return{type:vt.None};let T;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(u[0],u[1])],T=!1):T=this.updateTempPoints(u),!T)return{type:vt.None};let O;if(s||c||f){const S=n?this.fullLayer:this.drawLayer||this.fullLayer;O=this.draw({workId:h,layer:S,isDrawing:!0})}if(f){const S=Zt(O,this.oldRect);this.oldRect=O;const w={type:vt.DrawWork,rect:S,dataType:Kt.Local,...this.baseConsumeResult};if(l){const d=Date.now();d-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=d,w.op=this.tmpPoints.map(g=>[...g.XY,0]).flat(1),w.index=0,w.isSync=!0)}return w}if(!s&&l){const S=Date.now();return S-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=S,{type:vt.DrawWork,dataType:Kt.Local,op:this.tmpPoints.map(w=>[...w.XY,0]).flat(1),isSync:!0,index:0,...this.baseConsumeResult}):{type:vt.None}}const C=Zt(O,this.oldRect);return this.oldRect=O,{rect:C,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult}}consumeAll(){var l;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.fullLayer,n=this.draw({workId:t,layer:r,isDrawing:!1});this.oldRect=n;const s=this.tmpPoints.map(f=>[...f.XY,0]).flat(1),c=hr(s);return(l=this.vNodes)==null||l.setInfo(t,{rect:n,op:s,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:n&&Xt.getCenterPos(n,r)}),{rect:n,type:vt.FullWork,dataType:Kt.Local,ops:c,isSync:!0,...this.baseConsumeResult,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawing:s,isDrawEraserlines:c=!0}=t,{strokeColor:l,fillColor:f,thickness:u,zIndex:v,vertices:h,scale:y,rotate:T,translate:O,strokeType:C,eraserlines:S,lineCap:w,lineDash:d}=this.workOptions,g=n.worldScaling,{rect:p,pos:P,points:A}=this.computDrawPoints(u,h),R={close:!0,points:A,lineWidth:u,fillColor:f!=="transparent"&&f||void 0,strokeColor:l,normalize:!0,lineCap:w,lineDash:C===Ae.Dotted?[d&&d[0]||1,(d&&d[1]||2)*u]:C===Ae.LongDotted?[(d&&d[0]||1)*u,(d&&d[1]||2)*u]:void 0},D={name:r,id:r,zIndex:v,pos:P,anchor:[.5,.5],size:[p.w,p.h]};y&&(D.scale=y),T&&(D.rotate=T),O&&(D.translate=O);const U=new Je(D);if(s){const Y=new gn({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:l,lineWidth:1,scale:[1/g[0],1/g[1]]});U.append(Y)}const L=new nn({...R,pos:[0,0]});U.append(L),S&&(this.scaleType=Te.proportional,this.drawEraserlines({group:U,eraserlines:S,pos:P,layer:n},c)),this.replace(n,r,U);const W=U.getBoundingClientRect();return this.isDelete&&U.setAttribute("opacity",0),{x:Math.floor(W.x-Xt.SafeBorderPadding),y:Math.floor(W.y-Xt.SafeBorderPadding),w:Math.floor(W.width+Xt.SafeBorderPadding*2),h:Math.floor(W.height+Xt.SafeBorderPadding*2)}}computDrawPoints(t,r){const n=Re(this.tmpPoints),s=[Math.floor(n.x+n.w/2),Math.floor(n.y+n.h/2)],c=Fc(n.w,n.h),l=Math.floor(Math.min(n.w,n.h)/2),f=[],u=2*Math.PI/r;for(let h=0;h<r;h++){const y=h*u-.5*Math.PI,T=l*c[0]*Math.cos(y),O=l*c[1]*Math.sin(y);f.push(T,O)}return{rect:Re(this.tmpPoints,t),pos:s,points:f}}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c)||Jt.Sub(s,n).XY.includes(0))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var u,v;const{op:r,isFullWork:n,workState:s=qt.Done}=t,c=(u=this.workId)==null?void 0:u.toString();if(!c)return;this.tmpPoints.length=0;for(let h=0;h<r.length;h+=3)this.tmpPoints.push(new Jt(r[h],r[h+1],r[h+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({workId:c,layer:l,isDrawing:!1,isDrawEraserlines:s===qt.Done});return this.oldRect=f,(v=this.vNodes)==null||v.setInfo(c,{rect:f,op:r,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:f&&Xt.getCenterPos(f,l)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var O;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,fillColor:l,toolsType:f,vertices:u,strokeType:v}=n,h=s.get(r.name),y=h==null?void 0:h.opt;let T=r;return r.tagName==="GROUP"&&(T=r.children[0]),c&&(T.setAttribute("strokeColor",c),y!=null&&y.strokeColor&&(y.strokeColor=c)),l&&(l==="transparent"?T.setAttribute("fillColor","rgba(0,0,0,0)"):T.setAttribute("fillColor",l),y!=null&&y.fillColor&&(y.fillColor=l)),f===xt.Polygon&&u&&(y.vertices=u),v&&(h!=null&&h.opt)&&((O=h.opt)!=null&&O.strokeType)&&(h.opt.strokeType=v),h&&s.setInfo(r.name,{...h,opt:y}),Xt.updateNodeOpt(t)}}class zr{static bezier(e,t){const r=[];for(let n=0;n<t.length;n+=4){const s=t[n],c=t[n+1],l=t[n+2],f=t[n+3];s&&c&&l&&f?r.push(...zr.getBezierPoints(e,s,c,l,f)):s&&c&&l?r.push(...zr.getBezierPoints(e,s,c,l)):s&&c?r.push(...zr.getBezierPoints(e,s,c)):s&&r.push(s)}return r}static getBezierPoints(e=10,t,r,n,s){let c=null;const l=[];!n&&!s?c=zr.oneBezier:n&&!s?c=zr.twoBezier:n&&s&&(c=zr.threeBezier);for(let f=0;f<e;f++)c&&l.push(c(f/e,t,r,n,s));return s?l.push(s):n&&l.push(n),l}static oneBezier(e,t,r){const n=t.x+(r.x-t.x)*e,s=t.y+(r.y-t.y)*e;return new pt(n,s)}static twoBezier(e,t,r,n){const s=(1-e)*(1-e)*t.x+2*e*(1-e)*r.x+e*e*n.x,c=(1-e)*(1-e)*t.y+2*e*(1-e)*r.y+e*e*n.y;return new pt(s,c)}static threeBezier(e,t,r,n,s){const c=t.x*(1-e)*(1-e)*(1-e)+3*r.x*e*(1-e)*(1-e)+3*n.x*e*e*(1-e)+s.x*e*e*e,l=t.y*(1-e)*(1-e)*(1-e)+3*r.y*e*(1-e)*(1-e)+3*n.y*e*e*(1-e)+s.y*e*e*e;return new pt(c,l)}}class hc extends Xt{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.all);dt(this,"toolsType",xt.SpeechBalloon);dt(this,"ratio",.8);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){var C;const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,u=(C=r==null?void 0:r.workId)==null?void 0:C.toString();if(!u)return{type:vt.None};const{op:v}=r,h=v==null?void 0:v.length;if(!h||h<2)return{type:vt.None};let y;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(v[0],v[1])],y=!1):y=this.updateTempPoints(v),!y)return{type:vt.None};let T;if(s||c||f){const S=n?this.fullLayer:this.drawLayer||this.fullLayer;T=this.draw({workId:u,layer:S,isDrawing:!0})}if(f){const S=Zt(T,this.oldRect);this.oldRect=T;const w={rect:S,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult};if(l){const d=Date.now();d-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=d,w.op=this.tmpPoints.map(g=>[...g.XY,0]).flat(1),w.index=0,w.isSync=!0)}return w}if(!s&&l){const S=Date.now();return S-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=S,{type:vt.DrawWork,dataType:Kt.Local,op:this.tmpPoints.map(w=>[...w.XY,0]).flat(1),isSync:!0,index:0,...this.baseConsumeResult}):{type:vt.None}}const O=Zt(T,this.oldRect);return this.oldRect=T,{rect:O,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult}}consumeAll(){var l;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.fullLayer,n=this.draw({workId:t,layer:r,isDrawing:!1});this.oldRect=n;const s=this.tmpPoints.map(f=>[...f.XY,0]).flat(1),c=hr(s);return(l=this.vNodes)==null||l.setInfo(t,{rect:n,op:s,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:n&&Xt.getCenterPos(n,r)}),{rect:n,type:vt.FullWork,dataType:Kt.Local,ops:c,isSync:!0,...this.baseConsumeResult,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawEraserlines:s=!0}=t,{strokeColor:c,fillColor:l,thickness:f,zIndex:u,placement:v,scale:h,rotate:y,translate:T,strokeType:O,eraserlines:C,lineDash:S,lineCap:w}=this.workOptions,{rect:d,pos:g,points:p}=this.computDrawPoints(f,v),P={points:p.map(L=>L.XY),lineWidth:f,fillColor:l!=="transparent"&&l||void 0,strokeColor:c,normalize:!0,className:`${g[0]},${g[1]}`,close:!0,lineCap:w,lineDash:O===Ae.Dotted?[S&&S[0]||1,(S&&S[1]||2)*f]:O===Ae.LongDotted?[(S&&S[0]||1)*f,(S&&S[1]||2)*f]:void 0},A={name:r,id:r,zIndex:u,pos:g,anchor:[.5,.5],size:[d.w,d.h]};h&&(A.scale=h),y&&(A.rotate=y),T&&(A.translate=T);const R=new Je(A),D=new nn({...P,pos:[0,0]});R.append(D),C&&(this.scaleType=Te.proportional,this.drawEraserlines({group:R,eraserlines:C,pos:g,layer:n},s)),this.replace(n,r,R);const U=R.getBoundingClientRect();return this.isDelete&&R.setAttribute("opacity",0),{x:Math.floor(U.x-Xt.SafeBorderPadding),y:Math.floor(U.y-Xt.SafeBorderPadding),w:Math.floor(U.width+Xt.SafeBorderPadding*2),h:Math.floor(U.height+Xt.SafeBorderPadding*2)}}transformControlPoints(t){const r=Re(this.tmpPoints);switch(t){case"bottom":case"bottomLeft":case"bottomRight":{const n=r.y+r.h*this.ratio;return[new pt(r.x,r.y,0),new pt(r.x+r.w,r.y,0),new pt(r.x+r.w,n,0),new pt(r.x,n,0)]}case"top":case"topLeft":case"topRight":{const n=r.y+r.h*(1-this.ratio);return[new pt(r.x,n,0),new pt(r.x+r.w,n,0),new pt(r.x+r.w,r.y+r.h,0),new pt(r.x,r.y+r.h,0)]}case"left":case"leftBottom":case"leftTop":{const n=r.x+r.w*(1-this.ratio);return[new pt(n,r.y,0),new pt(r.x+r.w,r.y,0),new pt(r.x+r.w,r.y+r.h,0),new pt(n,r.y+r.h,0)]}case"right":case"rightBottom":case"rightTop":{const n=r.x+r.w*this.ratio;return[new pt(r.x,r.y,0),new pt(n,r.y,0),new pt(n,r.y+r.h,0),new pt(r.x,r.y+r.h,0)]}}}computDrawPoints(t,r){const n=Re(this.tmpPoints),s=this.transformControlPoints(r),c=Math.floor(n.w*.1),l=Math.floor(n.h*.1),f=[],u=pt.Add(s[0],new pt(0,l,0)),v=pt.Add(s[0],new pt(c,0,0)),h=zr.getBezierPoints(10,u,s[0],v),y=pt.Sub(s[1],new pt(c,0,0)),T=pt.Add(s[1],new pt(0,l,0)),O=zr.getBezierPoints(10,y,s[1],T),C=pt.Sub(s[2],new pt(0,l,0)),S=pt.Sub(s[2],new pt(c,0,0)),w=zr.getBezierPoints(10,C,s[2],S),d=pt.Add(s[3],new pt(c,0,0)),g=pt.Sub(s[3],new pt(0,l,0)),p=zr.getBezierPoints(10,d,s[3],g),P=c*(1-this.ratio)*10,A=l*(1-this.ratio)*10;switch(r){case"bottom":{const U=pt.Sub(s[2],new pt(c*5-P/2,0,0)),L=pt.Sub(s[2],new pt(c*5,-A,0)),W=pt.Sub(s[2],new pt(c*5+P/2,0,0));f.push(L,W,...p,...h,...O,...w,U);break}case"bottomRight":{const U=pt.Sub(s[2],new pt(c*1.1,0,0)),L=pt.Sub(s[2],new pt(c*1.1+P/2,-A,0)),W=pt.Sub(s[2],new pt(c*1.1+P,0,0));f.push(L,W,...p,...h,...O,...w,U);break}case"bottomLeft":{const U=pt.Add(s[3],new pt(c*1.1+P,0,0)),L=pt.Add(s[3],new pt(c*1.1+P/2,A,0)),W=pt.Add(s[3],new pt(c*1.1,0,0));f.push(L,W,...p,...h,...O,...w,U);break}case"top":{const U=pt.Sub(s[1],new pt(c*5-P/2,0,0)),L=pt.Sub(s[1],new pt(c*5,A,0)),W=pt.Sub(s[1],new pt(c*5+P/2,0,0));f.push(L,U,...O,...w,...p,...h,W);break}case"topRight":{const U=pt.Sub(s[1],new pt(c*1.1,0,0)),L=pt.Sub(s[1],new pt(c*1.1+P/2,A,0)),W=pt.Sub(s[1],new pt(c*1.1+P,0,0));f.push(L,U,...O,...w,...p,...h,W);break}case"topLeft":{const U=pt.Add(s[0],new pt(c*1.1+P,0,0)),L=pt.Add(s[0],new pt(c*1.1+P/2,-A,0)),W=pt.Add(s[0],new pt(c*1.1,0,0));f.push(L,U,...O,...w,...p,...h,W);break}case"left":{const U=pt.Add(s[0],new pt(0,l*5-A/2,0)),L=pt.Add(s[0],new pt(-P,l*5,0)),W=pt.Add(s[0],new pt(0,l*5+A/2,0));f.push(L,U,...h,...O,...w,...p,W);break}case"leftTop":{const U=pt.Add(s[0],new pt(0,l*1.1,0)),L=pt.Add(s[0],new pt(-P,l*1.1+A/2,0)),W=pt.Add(s[0],new pt(0,l*1.1+A,0));f.push(L,U,...h,...O,...w,...p,W);break}case"leftBottom":{const U=pt.Sub(s[3],new pt(0,l*1.1+A,0)),L=pt.Sub(s[3],new pt(P,l*1.1+A/2,0)),W=pt.Sub(s[3],new pt(0,l*1.1,0));f.push(L,U,...h,...O,...w,...p,W);break}case"right":{const U=pt.Add(s[1],new pt(0,l*5-A/2,0)),L=pt.Add(s[1],new pt(P,l*5,0)),W=pt.Add(s[1],new pt(0,l*5+A/2,0));f.push(L,W,...w,...p,...h,...O,U);break}case"rightTop":{const U=pt.Add(s[1],new pt(0,l*1.1,0)),L=pt.Add(s[1],new pt(P,l*1.1+A/2,0)),W=pt.Add(s[1],new pt(0,l*1.1+A,0));f.push(L,W,...w,...p,...h,...O,U);break}case"rightBottom":{const U=pt.Sub(s[2],new pt(0,l*1.1+A,0)),L=pt.Sub(s[2],new pt(-P,l*1.1+A/2,0)),W=pt.Sub(s[2],new pt(0,l*1.1,0));f.push(L,W,...w,...p,...h,...O,U);break}}const R=Re(this.tmpPoints,t),D=[Math.floor(R.x+R.w/2),Math.floor(R.y+R.h/2)];return{rect:R,pos:D,points:f}}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c)||Jt.Sub(s,n).XY.includes(0))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var u,v;const{op:r,isFullWork:n,workState:s=qt.Done}=t,c=(u=this.workId)==null?void 0:u.toString();if(!c)return;this.tmpPoints.length=0;for(let h=0;h<r.length;h+=3)this.tmpPoints.push(new Jt(r[h],r[h+1],r[h+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({workId:c,layer:l,isDrawing:!1,isDrawEraserlines:s===qt.Done});return this.oldRect=f,(v=this.vNodes)==null||v.setInfo(c,{rect:f,op:r,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:f&&Xt.getCenterPos(f,l)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var O;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,fillColor:l,toolsType:f,placement:u,strokeType:v}=n,h=s.get(r.name),y=h==null?void 0:h.opt;let T=r;return r.tagName==="GROUP"&&(T=r.children[0]),c&&(T.setAttribute("strokeColor",c),y!=null&&y.strokeColor&&(y.strokeColor=c)),l&&(l==="transparent"?T.setAttribute("fillColor","rgba(0,0,0,0)"):T.setAttribute("fillColor",l),y!=null&&y.fillColor&&(y.fillColor=l)),f===xt.SpeechBalloon&&u&&(y.placement=u),v&&(h!=null&&h.opt)&&((O=h.opt)!=null&&O.strokeType)&&(h.opt.strokeType=v),h&&s.setInfo(r.name,{...h,opt:y}),Xt.updateNodeOpt(t)}}var cx=Kn,ux=on,hx="[object Boolean]";function dx(i){return i===!0||i===!1||ux(i)&&cx(i)==hx}var px=dx,Bn=mn(px);class Li extends Xt{constructor(t){super(t);dt(this,"canRotate",!0);dt(this,"scaleType",Te.all);dt(this,"toolsType",xt.Image);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");this.workOptions=t.toolsOpt,this.scaleType=Li.getScaleType(this.workOptions)}consume(){return{type:vt.None}}consumeAll(){return{type:vt.None}}draw(t){const{layer:r,workId:n,replaceId:s,imageBitmap:c}=t,{centerX:l,centerY:f,width:u,height:v,rotate:h,zIndex:y,eraserlines:T}=this.workOptions,O=new Je({anchor:[.5,.5],pos:[l,f],name:n,size:[u,v],zIndex:y,rotate:h}),C={anchor:[.5,.5],pos:[0,0],size:[u,v],texture:c};c||(C.bgcolor="rgba(0,0,0,0.3)");const S=new Fl(C);O.append(S),T&&this.drawEraserlines({group:O,eraserlines:T,pos:[l,f],layer:r}),this.replace(r,s||n,O);const w=O.getBoundingClientRect();if(w)return{x:Math.floor(w.x-Xt.SafeBorderPadding),y:Math.floor(w.y-Xt.SafeBorderPadding),w:Math.floor(w.width+Xt.SafeBorderPadding*2),h:Math.floor(w.height+Xt.SafeBorderPadding*2)}}consumeService(){}async consumeServiceAsync(t){var v,h,y,T;const{isFullWork:r,replaceId:n,worker:s}=t,{src:c,uuid:l}=this.workOptions,f=((v=this.workId)==null?void 0:v.toString())||l,u=r?this.fullLayer:this.drawLayer||this.fullLayer;if(c){const O=await s.loadImageBitMap({toolsType:this.toolsType,opt:this.workOptions,workId:f,isSubWorker:s instanceof _c});if(O){const C=this.draw({workId:f,layer:u,replaceId:n,imageBitmap:O});return this.oldRect=f&&((y=(h=this.vNodes)==null?void 0:h.get(f))==null?void 0:y.rect)||void 0,(T=this.vNodes)==null||T.setInfo(f,{rect:C,op:[],opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:C&&Xt.getCenterPos(C,u)}),C}}}clearTmpPoints(){this.tmpPoints.length=0}static getScaleType(t){const{uniformScale:r,rotate:n}=t;return r!==!1||n&&Math.abs(n)%90>0?Te.proportional:Te.all}static updateNodeOpt(t){const{node:r,opt:n,vNodes:s,targetNode:c}=t,{translate:l,originPoint:f,scenePoint:u,scale:v,angle:h,isLocked:y,zIndex:T,strokeColor:O}=n,C=c&&ar(c)||s.get(r.name);if(!C)return;const S=r.parent;if(S){if(O&&(C.opt.strokeColor=O),Qe(T)&&(r.setAttribute("zIndex",T),C.opt.zIndex=T),Bn(y)&&(C.opt.locked=y),f&&u&&v&&l){const{centerX:w,centerY:d,width:g,height:p,uniformScale:P}=C.opt,A=P!==!1?[v[0],v[0]]:v,R=[w,d],D=[w,d];As(D,u,A,l);const U=[D[0]-R[0],D[1]-R[1]];if(C.centerPos=[C.centerPos[0]+U[0],C.centerPos[1]+U[1]],C.opt.width=Math.round(g*A[0]),C.opt.height=Math.round(p*A[1]),C.opt.centerX=D[0],C.opt.centerY=D[1],C.opt.eraserlines)for(const L of C.opt.eraserlines){const{op:W,thickness:Y}=L;L.thickness=Math.round(Y*Math.max(v[0],v[1]));for(let B=0;B<W.length;B++)na(W[B],u,v,l)}}else if(l){if(C.opt.centerX=C.opt.centerX+l[0],C.opt.centerY=C.opt.centerY+l[1],C.centerPos=[C.centerPos[0]+l[0],C.centerPos[1]+l[1]],C.opt.eraserlines)for(const w of C.opt.eraserlines){const{op:d}=w;for(let g=0;g<d.length;g++){const p=d[g].map((P,A)=>A%2?P+l[1]:P+l[0]);w.op[g]=p}}}else if(Qe(h))if(C.opt.rotate=h,C.scaleType=Li.getScaleType(C.opt),c){const w=ra(C.rect,h);C.rect=w}else{const w=Xt.getRectFromLayer(S,r.name);C.rect=w||C.rect}return C&&s.setInfo(r.name,C),C==null?void 0:C.rect}}}class dc extends Xt{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.both);dt(this,"toolsType",xt.Straight);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");dt(this,"straightTipWidth");dt(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.straightTipWidth=this.workOptions.thickness/2,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){const{data:r,isFullWork:n,isSubWorker:s,isMainThread:c,smoothSync:l,isSimpleWorker:f}=t,u=this.workId,{op:v,syncUnitTime:h}=r,y=v==null?void 0:v.length;if(!y||y<2)return{type:vt.None};h&&(this.syncUnitTime=h);let T;if(this.tmpPoints.length===0?(this.tmpPoints=[new Jt(v[0],v[1])],T=!1):T=this.updateTempPoints(v),!T)return{type:vt.None};let O;if(s||c||f){const S=n?this.fullLayer:this.drawLayer||this.fullLayer;O=this.draw({workId:u,layer:S})}if(f){const S=Zt(O,this.oldRect);this.oldRect=O;const w={rect:S,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult};if(l){const d=Date.now();d-this.syncTimestamp>this.syncUnitTime&&(this.syncTimestamp=d,w.op=this.tmpPoints.map(g=>[...g.XY,0]).flat(1),w.index=0,w.isSync=!0)}return w}if(!s&&l){const S=Date.now();return S-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=S,{type:vt.DrawWork,dataType:Kt.Local,op:this.tmpPoints.map(w=>[...w.XY,0]).flat(1),isSync:!0,index:0,...this.baseConsumeResult}):{type:vt.None}}const C=Zt(O,this.oldRect);return this.oldRect=O,{rect:C,type:vt.DrawWork,dataType:Kt.Local,...this.baseConsumeResult}}consumeAll(){var l;const t=this.workId;if(this.tmpPoints.length<2)return{type:vt.RemoveNode,removeIds:[t]};const r=this.fullLayer,n=this.draw({workId:t,layer:r});this.oldRect=n;const s=this.tmpPoints.map(f=>[...f.XY,0]).flat(1),c=hr(s);return(l=this.vNodes)==null||l.setInfo(t,{rect:n,op:s,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:n&&Xt.getCenterPos(n,r)}),{rect:n,type:vt.FullWork,dataType:Kt.Local,ops:c,isSync:!0,...this.baseConsumeResult,updateNodeOpt:{useAnimation:!0}}}draw(t){const{workId:r,layer:n,isDrawEraserlines:s=!0}=t,{strokeColor:c,thickness:l,zIndex:f,scale:u,rotate:v,translate:h,strokeType:y,eraserlines:T,lineCap:O,lineDash:C}=this.workOptions,S=n.worldPosition,w=n.worldScaling,{d,rect:g,isDot:p}=this.computDrawPoints(l,y),P=[g.x+g.w/2,g.y+g.h/2],A=new Je({pos:P,anchor:[.5,.5],size:[g.w,g.h],name:r,id:r,normalize:!0,zIndex:f}),R={pos:[0,0],normalize:!0,d,fillColor:c,strokeColor:c,lineDash:p?void 0:y===Ae.Dotted?[C&&C[0]||1,(C&&C[1]||2)*l]:y===Ae.LongDotted?[(C&&C[0]||1)*l,(C&&C[1]||2)*l]:void 0,lineCap:p?void 0:O,lineWidth:y===Ae.Normal||p?0:l};u&&(R.scale=u),v&&(R.rotate=v),h&&(R.translate=h);const D=new gn(R);A.append(D),T&&(this.scaleType=Te.proportional,this.drawEraserlines({group:A,eraserlines:T,pos:P,layer:n},s)),this.replace(n,r,A);let U={x:Math.floor(g.x*w[0]+S[0]-Xt.SafeBorderPadding),y:Math.floor(g.y*w[1]+S[1]-Xt.SafeBorderPadding),w:Math.floor(g.w*w[0]+2*Xt.SafeBorderPadding),h:Math.floor(g.h*w[1]+2*Xt.SafeBorderPadding)};if(v||u||h){const L=D.getBoundingClientRect();U={x:Math.floor(L.x-Xt.SafeBorderPadding),y:Math.floor(L.y-Xt.SafeBorderPadding),w:Math.floor(L.width+Xt.SafeBorderPadding*2),h:Math.floor(L.height+Xt.SafeBorderPadding*2)}}return this.isDelete&&A.setAttribute("opacity",0),U}computDrawPoints(t,r){return this.tmpPoints[1].distance(this.tmpPoints[0])>this.straightTipWidth?this.computFullPoints(t,r):this.computDotPoints(t)}computFullPoints(t,r){const n=pt.Sub(this.tmpPoints[1],this.tmpPoints[0]).uni(),s=pt.Per(n).mul(t/2),c=Jt.Sub(this.tmpPoints[0],s),l=Jt.Add(this.tmpPoints[0],s),f=Jt.Sub(this.tmpPoints[1],s),u=Jt.Add(this.tmpPoints[1],s),v=Jt.GetSemicircleStroke(this.tmpPoints[1],f,-1,8),h=Jt.GetSemicircleStroke(this.tmpPoints[0],l,-1,8),y=[c,f,...v,u,l,...h];let T;return r!==Ae.Normal?T=yn(this.tmpPoints,!1):T=yn(y,!0),{d:T,rect:Re(y),isDot:!1,pos:this.tmpPoints[0].XY}}computDotPoints(t){const r=Jt.GetDotStroke(this.tmpPoints[0],t/2,8);return{d:yn(r,!0),rect:Re(r),isDot:!0,pos:this.tmpPoints[0].XY}}updateTempPoints(t){const r=t.slice(-2),n=new Jt(r[0],r[1]),s=this.tmpPoints[0],{thickness:c}=this.workOptions;if(s.isNear(n,c))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var u,v;const{op:r,isFullWork:n,workState:s=qt.Done}=t,c=(u=this.workId)==null?void 0:u.toString();if(!c)return;this.tmpPoints.length=0;for(let h=0;h<r.length;h+=3)this.tmpPoints.push(new Jt(r[h],r[h+1],r[h+2]));const l=n?this.fullLayer:this.drawLayer||this.fullLayer,f=this.draw({workId:c,layer:l,isDrawEraserlines:s===qt.Done});return this.oldRect=f,(v=this.vNodes)==null||v.setInfo(c,{rect:f,op:r,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:f&&Xt.getCenterPos(f,l)}),f}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var u,v;const{node:r,opt:n,vNodes:s}=t,{strokeColor:c,strokeType:l}=n,f=s.get(r.name);return c&&(r.tagName==="GROUP"?r.children.forEach(h=>{h.setAttribute("strokeColor",c),h.getAttribute("fillColor")&&h.setAttribute("fillColor",c)}):(r.setAttribute("strokeColor",c),r.setAttribute("fillColor",c)),(u=f==null?void 0:f.opt)!=null&&u.strokeColor&&(f.opt.strokeColor=c)),l&&(f!=null&&f.opt)&&((v=f.opt)!=null&&v.strokeType)&&(f.opt.strokeType=l),f&&s.setInfo(r.name,f),Xt.updateNodeOpt(t)}}const ri="cursorhover",pc=20,Wn="mainView";var vc={exports:{}},ke={},qo={exports:{}},Fn={};function gc(){var i={};return i["align-content"]=!1,i["align-items"]=!1,i["align-self"]=!1,i["alignment-adjust"]=!1,i["alignment-baseline"]=!1,i.all=!1,i["anchor-point"]=!1,i.animation=!1,i["animation-delay"]=!1,i["animation-direction"]=!1,i["animation-duration"]=!1,i["animation-fill-mode"]=!1,i["animation-iteration-count"]=!1,i["animation-name"]=!1,i["animation-play-state"]=!1,i["animation-timing-function"]=!1,i.azimuth=!1,i["backface-visibility"]=!1,i.background=!0,i["background-attachment"]=!0,i["background-clip"]=!0,i["background-color"]=!0,i["background-image"]=!0,i["background-origin"]=!0,i["background-position"]=!0,i["background-repeat"]=!0,i["background-size"]=!0,i["baseline-shift"]=!1,i.binding=!1,i.bleed=!1,i["bookmark-label"]=!1,i["bookmark-level"]=!1,i["bookmark-state"]=!1,i.border=!0,i["border-bottom"]=!0,i["border-bottom-color"]=!0,i["border-bottom-left-radius"]=!0,i["border-bottom-right-radius"]=!0,i["border-bottom-style"]=!0,i["border-bottom-width"]=!0,i["border-collapse"]=!0,i["border-color"]=!0,i["border-image"]=!0,i["border-image-outset"]=!0,i["border-image-repeat"]=!0,i["border-image-slice"]=!0,i["border-image-source"]=!0,i["border-image-width"]=!0,i["border-left"]=!0,i["border-left-color"]=!0,i["border-left-style"]=!0,i["border-left-width"]=!0,i["border-radius"]=!0,i["border-right"]=!0,i["border-right-color"]=!0,i["border-right-style"]=!0,i["border-right-width"]=!0,i["border-spacing"]=!0,i["border-style"]=!0,i["border-top"]=!0,i["border-top-color"]=!0,i["border-top-left-radius"]=!0,i["border-top-right-radius"]=!0,i["border-top-style"]=!0,i["border-top-width"]=!0,i["border-width"]=!0,i.bottom=!1,i["box-decoration-break"]=!0,i["box-shadow"]=!0,i["box-sizing"]=!0,i["box-snap"]=!0,i["box-suppress"]=!0,i["break-after"]=!0,i["break-before"]=!0,i["break-inside"]=!0,i["caption-side"]=!1,i.chains=!1,i.clear=!0,i.clip=!1,i["clip-path"]=!1,i["clip-rule"]=!1,i.color=!0,i["color-interpolation-filters"]=!0,i["column-count"]=!1,i["column-fill"]=!1,i["column-gap"]=!1,i["column-rule"]=!1,i["column-rule-color"]=!1,i["column-rule-style"]=!1,i["column-rule-width"]=!1,i["column-span"]=!1,i["column-width"]=!1,i.columns=!1,i.contain=!1,i.content=!1,i["counter-increment"]=!1,i["counter-reset"]=!1,i["counter-set"]=!1,i.crop=!1,i.cue=!1,i["cue-after"]=!1,i["cue-before"]=!1,i.cursor=!1,i.direction=!1,i.display=!0,i["display-inside"]=!0,i["display-list"]=!0,i["display-outside"]=!0,i["dominant-baseline"]=!1,i.elevation=!1,i["empty-cells"]=!1,i.filter=!1,i.flex=!1,i["flex-basis"]=!1,i["flex-direction"]=!1,i["flex-flow"]=!1,i["flex-grow"]=!1,i["flex-shrink"]=!1,i["flex-wrap"]=!1,i.float=!1,i["float-offset"]=!1,i["flood-color"]=!1,i["flood-opacity"]=!1,i["flow-from"]=!1,i["flow-into"]=!1,i.font=!0,i["font-family"]=!0,i["font-feature-settings"]=!0,i["font-kerning"]=!0,i["font-language-override"]=!0,i["font-size"]=!0,i["font-size-adjust"]=!0,i["font-stretch"]=!0,i["font-style"]=!0,i["font-synthesis"]=!0,i["font-variant"]=!0,i["font-variant-alternates"]=!0,i["font-variant-caps"]=!0,i["font-variant-east-asian"]=!0,i["font-variant-ligatures"]=!0,i["font-variant-numeric"]=!0,i["font-variant-position"]=!0,i["font-weight"]=!0,i.grid=!1,i["grid-area"]=!1,i["grid-auto-columns"]=!1,i["grid-auto-flow"]=!1,i["grid-auto-rows"]=!1,i["grid-column"]=!1,i["grid-column-end"]=!1,i["grid-column-start"]=!1,i["grid-row"]=!1,i["grid-row-end"]=!1,i["grid-row-start"]=!1,i["grid-template"]=!1,i["grid-template-areas"]=!1,i["grid-template-columns"]=!1,i["grid-template-rows"]=!1,i["hanging-punctuation"]=!1,i.height=!0,i.hyphens=!1,i.icon=!1,i["image-orientation"]=!1,i["image-resolution"]=!1,i["ime-mode"]=!1,i["initial-letters"]=!1,i["inline-box-align"]=!1,i["justify-content"]=!1,i["justify-items"]=!1,i["justify-self"]=!1,i.left=!1,i["letter-spacing"]=!0,i["lighting-color"]=!0,i["line-box-contain"]=!1,i["line-break"]=!1,i["line-grid"]=!1,i["line-height"]=!1,i["line-snap"]=!1,i["line-stacking"]=!1,i["line-stacking-ruby"]=!1,i["line-stacking-shift"]=!1,i["line-stacking-strategy"]=!1,i["list-style"]=!0,i["list-style-image"]=!0,i["list-style-position"]=!0,i["list-style-type"]=!0,i.margin=!0,i["margin-bottom"]=!0,i["margin-left"]=!0,i["margin-right"]=!0,i["margin-top"]=!0,i["marker-offset"]=!1,i["marker-side"]=!1,i.marks=!1,i.mask=!1,i["mask-box"]=!1,i["mask-box-outset"]=!1,i["mask-box-repeat"]=!1,i["mask-box-slice"]=!1,i["mask-box-source"]=!1,i["mask-box-width"]=!1,i["mask-clip"]=!1,i["mask-image"]=!1,i["mask-origin"]=!1,i["mask-position"]=!1,i["mask-repeat"]=!1,i["mask-size"]=!1,i["mask-source-type"]=!1,i["mask-type"]=!1,i["max-height"]=!0,i["max-lines"]=!1,i["max-width"]=!0,i["min-height"]=!0,i["min-width"]=!0,i["move-to"]=!1,i["nav-down"]=!1,i["nav-index"]=!1,i["nav-left"]=!1,i["nav-right"]=!1,i["nav-up"]=!1,i["object-fit"]=!1,i["object-position"]=!1,i.opacity=!1,i.order=!1,i.orphans=!1,i.outline=!1,i["outline-color"]=!1,i["outline-offset"]=!1,i["outline-style"]=!1,i["outline-width"]=!1,i.overflow=!1,i["overflow-wrap"]=!1,i["overflow-x"]=!1,i["overflow-y"]=!1,i.padding=!0,i["padding-bottom"]=!0,i["padding-left"]=!0,i["padding-right"]=!0,i["padding-top"]=!0,i.page=!1,i["page-break-after"]=!1,i["page-break-before"]=!1,i["page-break-inside"]=!1,i["page-policy"]=!1,i.pause=!1,i["pause-after"]=!1,i["pause-before"]=!1,i.perspective=!1,i["perspective-origin"]=!1,i.pitch=!1,i["pitch-range"]=!1,i["play-during"]=!1,i.position=!1,i["presentation-level"]=!1,i.quotes=!1,i["region-fragment"]=!1,i.resize=!1,i.rest=!1,i["rest-after"]=!1,i["rest-before"]=!1,i.richness=!1,i.right=!1,i.rotation=!1,i["rotation-point"]=!1,i["ruby-align"]=!1,i["ruby-merge"]=!1,i["ruby-position"]=!1,i["shape-image-threshold"]=!1,i["shape-outside"]=!1,i["shape-margin"]=!1,i.size=!1,i.speak=!1,i["speak-as"]=!1,i["speak-header"]=!1,i["speak-numeral"]=!1,i["speak-punctuation"]=!1,i["speech-rate"]=!1,i.stress=!1,i["string-set"]=!1,i["tab-size"]=!1,i["table-layout"]=!1,i["text-align"]=!0,i["text-align-last"]=!0,i["text-combine-upright"]=!0,i["text-decoration"]=!0,i["text-decoration-color"]=!0,i["text-decoration-line"]=!0,i["text-decoration-skip"]=!0,i["text-decoration-style"]=!0,i["text-emphasis"]=!0,i["text-emphasis-color"]=!0,i["text-emphasis-position"]=!0,i["text-emphasis-style"]=!0,i["text-height"]=!0,i["text-indent"]=!0,i["text-justify"]=!0,i["text-orientation"]=!0,i["text-overflow"]=!0,i["text-shadow"]=!0,i["text-space-collapse"]=!0,i["text-transform"]=!0,i["text-underline-position"]=!0,i["text-wrap"]=!0,i.top=!1,i.transform=!1,i["transform-origin"]=!1,i["transform-style"]=!1,i.transition=!1,i["transition-delay"]=!1,i["transition-duration"]=!1,i["transition-property"]=!1,i["transition-timing-function"]=!1,i["unicode-bidi"]=!1,i["vertical-align"]=!1,i.visibility=!1,i["voice-balance"]=!1,i["voice-duration"]=!1,i["voice-family"]=!1,i["voice-pitch"]=!1,i["voice-range"]=!1,i["voice-rate"]=!1,i["voice-stress"]=!1,i["voice-volume"]=!1,i.volume=!1,i["white-space"]=!1,i.widows=!1,i.width=!0,i["will-change"]=!1,i["word-break"]=!0,i["word-spacing"]=!0,i["word-wrap"]=!0,i["wrap-flow"]=!1,i["wrap-through"]=!1,i["writing-mode"]=!1,i["z-index"]=!1,i}function vx(i,e,t){}function gx(i,e,t){}var mx=/javascript\s*\:/img;function yx(i,e){return mx.test(e)?"":e}Fn.whiteList=gc(),Fn.getDefaultWhiteList=gc,Fn.onAttr=vx,Fn.onIgnoreAttr=gx,Fn.safeAttrValue=yx;var Sx={indexOf:function(i,e){var t,r;if(Array.prototype.indexOf)return i.indexOf(e);for(t=0,r=i.length;t<r;t++)if(i[t]===e)return t;return-1},forEach:function(i,e,t){var r,n;if(Array.prototype.forEach)return i.forEach(e,t);for(r=0,n=i.length;r<n;r++)e.call(t,i[r],r,i)},trim:function(i){return String.prototype.trim?i.trim():i.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(i){return String.prototype.trimRight?i.trimRight():i.replace(/(\s*$)/g,"")}},Ri=Sx;function Px(i,e){i=Ri.trimRight(i),i[i.length-1]!==";"&&(i+=";");var t=i.length,r=!1,n=0,s=0,c="";function l(){if(!r){var v=Ri.trim(i.slice(n,s)),h=v.indexOf(":");if(h!==-1){var y=Ri.trim(v.slice(0,h)),T=Ri.trim(v.slice(h+1));if(y){var O=e(n,c.length,y,T,v);O&&(c+=O+"; ")}}}n=s+1}for(;s<t;s++){var f=i[s];if(f==="/"&&i[s+1]==="*"){var u=i.indexOf("*/",s+2);if(u===-1)break;s=u+1,n=s+1,r=!1}else f==="("?r=!0:f===")"?r=!1:f===";"?r||l():f===`
|
|
567
|
+
`&&l()}return Ri.trim(c)}var xx=Px,ms=Fn,Tx=xx;function mc(i){return i==null}function Cx(i){var e={};for(var t in i)e[t]=i[t];return e}function yc(i){i=Cx(i||{}),i.whiteList=i.whiteList||ms.whiteList,i.onAttr=i.onAttr||ms.onAttr,i.onIgnoreAttr=i.onIgnoreAttr||ms.onIgnoreAttr,i.safeAttrValue=i.safeAttrValue||ms.safeAttrValue,this.options=i}yc.prototype.process=function(i){if(i=i||"",i=i.toString(),!i)return"";var e=this,t=e.options,r=t.whiteList,n=t.onAttr,s=t.onIgnoreAttr,c=t.safeAttrValue,l=Tx(i,function(f,u,v,h,y){var T=r[v],O=!1;if(T===!0?O=T:typeof T=="function"?O=T(h):T instanceof RegExp&&(O=T.test(h)),O!==!0&&(O=!1),h=c(v,h),!!h){var C={position:u,sourcePosition:f,source:y,isWhite:O};if(O){var S=n(v,h,C);return mc(S)?v+":"+h:S}else{var S=s(v,h,C);if(!mc(S))return S}}});return l};var Ix=yc;(function(i,e){var t=Fn,r=Ix;function n(c,l){var f=new r(l);return f.process(c)}e=i.exports=n,e.FilterCSS=r;for(var s in t)e[s]=t[s];typeof window<"u"&&(window.filterCSS=i.exports)})(qo,qo.exports);var _o=qo.exports,ta={indexOf:function(i,e){var t,r;if(Array.prototype.indexOf)return i.indexOf(e);for(t=0,r=i.length;t<r;t++)if(i[t]===e)return t;return-1},forEach:function(i,e,t){var r,n;if(Array.prototype.forEach)return i.forEach(e,t);for(r=0,n=i.length;r<n;r++)e.call(t,i[r],r,i)},trim:function(i){return String.prototype.trim?i.trim():i.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(i){var e=/\s|\n|\t/,t=e.exec(i);return t?t.index:-1}},wx=_o.FilterCSS,Ox=_o.getDefaultWhiteList,ys=ta;function Sc(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],figcaption:[],figure:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height","loading"],ins:["datetime"],kbd:[],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],summary:[],sup:[],strong:[],strike:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","crossorigin","loop","muted","playsinline","poster","preload","src","height","width"]}}var Pc=new wx;function Ex(i,e,t){}function Ax(i,e,t){}function Mx(i,e,t){}function Lx(i,e,t){}function xc(i){return i.replace(bx,"<").replace(Dx,">")}function Rx(i,e,t,r){if(t=Mc(t),e==="href"||e==="src"){if(t=ys.trim(t),t==="#")return"#";if(!(t.substr(0,7)==="http://"||t.substr(0,8)==="https://"||t.substr(0,7)==="mailto:"||t.substr(0,4)==="tel:"||t.substr(0,11)==="data:image/"||t.substr(0,6)==="ftp://"||t.substr(0,2)==="./"||t.substr(0,3)==="../"||t[0]==="#"||t[0]==="/"))return""}else if(e==="background"){if(Ss.lastIndex=0,Ss.test(t))return""}else if(e==="style"){if(Tc.lastIndex=0,Tc.test(t)||(Cc.lastIndex=0,Cc.test(t)&&(Ss.lastIndex=0,Ss.test(t))))return"";r!==!1&&(r=r||Pc,t=r.process(t))}return t=Lc(t),t}var bx=/</g,Dx=/>/g,Nx=/"/g,Bx=/"/g,Wx=/&#([a-zA-Z0-9]*);?/gim,Fx=/:?/gim,Ux=/&newline;?/gim,Ss=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a):/gi,Tc=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,Cc=/u\s*r\s*l\s*\(.*/gi;function Ic(i){return i.replace(Nx,""")}function wc(i){return i.replace(Bx,'"')}function Oc(i){return i.replace(Wx,function(t,r){return r[0]==="x"||r[0]==="X"?String.fromCharCode(parseInt(r.substr(1),16)):String.fromCharCode(parseInt(r,10))})}function Ec(i){return i.replace(Fx,":").replace(Ux," ")}function Ac(i){for(var e="",t=0,r=i.length;t<r;t++)e+=i.charCodeAt(t)<32?" ":i.charAt(t);return ys.trim(e)}function Mc(i){return i=wc(i),i=Oc(i),i=Ec(i),i=Ac(i),i}function Lc(i){return i=Ic(i),i=xc(i),i}function Yx(){return""}function Xx(i,e){typeof e!="function"&&(e=function(){});var t=!Array.isArray(i);function r(c){return t?!0:ys.indexOf(i,c)!==-1}var n=[],s=!1;return{onIgnoreTag:function(c,l,f){if(r(c))if(f.isClosing){var u="[/removed]",v=f.position+u.length;return n.push([s!==!1?s:f.position,v]),s=!1,u}else return s||(s=f.position),"[removed]";else return e(c,l,f)},remove:function(c){var l="",f=0;return ys.forEach(n,function(u){l+=c.slice(f,u[0]),f=u[1]}),l+=c.slice(f),l}}}function zx(i){for(var e="",t=0;t<i.length;){var r=i.indexOf("<!--",t);if(r===-1){e+=i.slice(t);break}e+=i.slice(t,r);var n=i.indexOf("-->",r);if(n===-1)break;t=n+3}return e}function $x(i){var e=i.split("");return e=e.filter(function(t){var r=t.charCodeAt(0);return r===127?!1:r<=31?r===10||r===13:!0}),e.join("")}ke.whiteList=Sc(),ke.getDefaultWhiteList=Sc,ke.onTag=Ex,ke.onIgnoreTag=Ax,ke.onTagAttr=Mx,ke.onIgnoreTagAttr=Lx,ke.safeAttrValue=Rx,ke.escapeHtml=xc,ke.escapeQuote=Ic,ke.unescapeQuote=wc,ke.escapeHtmlEntities=Oc,ke.escapeDangerHtml5Entities=Ec,ke.clearNonPrintableCharacter=Ac,ke.friendlyAttrValue=Mc,ke.escapeAttrValue=Lc,ke.onIgnoreTagStripAll=Yx,ke.StripTagBody=Xx,ke.stripCommentTag=zx,ke.stripBlankChar=$x,ke.attributeWrapSign='"',ke.cssFilter=Pc,ke.getDefaultCSSWhiteList=Ox;var Ps={},Sn=ta;function jx(i){var e=Sn.spaceIndex(i),t;return e===-1?t=i.slice(1,-1):t=i.slice(1,e+1),t=Sn.trim(t).toLowerCase(),t.slice(0,1)==="/"&&(t=t.slice(1)),t.slice(-1)==="/"&&(t=t.slice(0,-1)),t}function kx(i){return i.slice(0,2)==="</"}function Gx(i,e,t){var r="",n=0,s=!1,c=!1,l=0,f=i.length,u="",v="";t:for(l=0;l<f;l++){var h=i.charAt(l);if(s===!1){if(h==="<"){s=l;continue}}else if(c===!1){if(h==="<"){r+=t(i.slice(n,l)),s=l,n=l;continue}if(h===">"||l===f-1){r+=t(i.slice(n,s)),v=i.slice(s,l+1),u=jx(v),r+=e(s,r.length,u,v,kx(v)),n=l+1,s=!1;continue}if(h==='"'||h==="'")for(var y=1,T=i.charAt(l-y);T.trim()===""||T==="=";){if(T==="="){c=h;continue t}T=i.charAt(l-++y)}}else if(h===c){c=!1;continue}}return n<f&&(r+=t(i.substr(n))),r}var Hx=/[^a-zA-Z0-9\\_:.-]/gim;function Vx(i,e){var t=0,r=0,n=[],s=!1,c=i.length;function l(y,T){if(y=Sn.trim(y),y=y.replace(Hx,"").toLowerCase(),!(y.length<1)){var O=e(y,T||"");O&&n.push(O)}}for(var f=0;f<c;f++){var u=i.charAt(f),v,h;if(s===!1&&u==="="){s=i.slice(t,f),t=f+1,r=i.charAt(t)==='"'||i.charAt(t)==="'"?t:Zx(i,f+1);continue}if(s!==!1&&f===r){if(h=i.indexOf(u,f+1),h===-1)break;v=Sn.trim(i.slice(r+1,h)),l(s,v),s=!1,f=h,t=f+1;continue}if(/\s|\n|\t/.test(u))if(i=i.replace(/\s|\n|\t/g," "),s===!1)if(h=Kx(i,f),h===-1){v=Sn.trim(i.slice(t,f)),l(v),s=!1,t=f+1;continue}else{f=h-1;continue}else if(h=Jx(i,f-1),h===-1){v=Sn.trim(i.slice(t,f)),v=Rc(v),l(s,v),s=!1,t=f+1;continue}else continue}return t<i.length&&(s===!1?l(i.slice(t)):l(s,Rc(Sn.trim(i.slice(t))))),Sn.trim(n.join(" "))}function Kx(i,e){for(;e<i.length;e++){var t=i[e];if(t!==" ")return t==="="?e:-1}}function Zx(i,e){for(;e<i.length;e++){var t=i[e];if(t!==" ")return t==="'"||t==='"'?e:-1}}function Jx(i,e){for(;e>0;e--){var t=i[e];if(t!==" ")return t==="="?e:-1}}function Qx(i){return i[0]==='"'&&i[i.length-1]==='"'||i[0]==="'"&&i[i.length-1]==="'"}function Rc(i){return Qx(i)?i.substr(1,i.length-2):i}Ps.parseTag=Gx,Ps.parseAttr=Vx;var qx=_o.FilterCSS,br=ke,bc=Ps,_x=bc.parseTag,tT=bc.parseAttr,xs=ta;function Ts(i){return i==null}function eT(i){var e=xs.spaceIndex(i);if(e===-1)return{html:"",closing:i[i.length-2]==="/"};i=xs.trim(i.slice(e+1,-1));var t=i[i.length-1]==="/";return t&&(i=xs.trim(i.slice(0,-1))),{html:i,closing:t}}function rT(i){var e={};for(var t in i)e[t]=i[t];return e}function nT(i){var e={};for(var t in i)Array.isArray(i[t])?e[t.toLowerCase()]=i[t].map(function(r){return r.toLowerCase()}):e[t.toLowerCase()]=i[t];return e}function Dc(i){i=rT(i||{}),i.stripIgnoreTag&&(i.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),i.onIgnoreTag=br.onIgnoreTagStripAll),i.whiteList||i.allowList?i.whiteList=nT(i.whiteList||i.allowList):i.whiteList=br.whiteList,this.attributeWrapSign=i.singleQuotedAttributeValue===!0?"'":br.attributeWrapSign,i.onTag=i.onTag||br.onTag,i.onTagAttr=i.onTagAttr||br.onTagAttr,i.onIgnoreTag=i.onIgnoreTag||br.onIgnoreTag,i.onIgnoreTagAttr=i.onIgnoreTagAttr||br.onIgnoreTagAttr,i.safeAttrValue=i.safeAttrValue||br.safeAttrValue,i.escapeHtml=i.escapeHtml||br.escapeHtml,this.options=i,i.css===!1?this.cssFilter=!1:(i.css=i.css||{},this.cssFilter=new qx(i.css))}Dc.prototype.process=function(i){if(i=i||"",i=i.toString(),!i)return"";var e=this,t=e.options,r=t.whiteList,n=t.onTag,s=t.onIgnoreTag,c=t.onTagAttr,l=t.onIgnoreTagAttr,f=t.safeAttrValue,u=t.escapeHtml,v=e.attributeWrapSign,h=e.cssFilter;t.stripBlankChar&&(i=br.stripBlankChar(i)),t.allowCommentTag||(i=br.stripCommentTag(i));var y=!1;t.stripIgnoreTagBody&&(y=br.StripTagBody(t.stripIgnoreTagBody,s),s=y.onIgnoreTag);var T=_x(i,function(O,C,S,w,d){var g={sourcePosition:O,position:C,isClosing:d,isWhite:Object.prototype.hasOwnProperty.call(r,S)},p=n(S,w,g);if(!Ts(p))return p;if(g.isWhite){if(g.isClosing)return"</"+S+">";var P=eT(w),A=r[S],R=tT(P.html,function(D,U){var L=xs.indexOf(A,D)!==-1,W=c(S,D,U,L);return Ts(W)?L?(U=f(S,D,U,h),U?D+"="+v+U+v:D):(W=l(S,D,U,L),Ts(W)?void 0:W):W});return w="<"+S,R&&(w+=" "+R),P.closing&&(w+=" /"),w+=">",w}else return p=s(S,w,g),Ts(p)?u(w):p},u);return y&&(T=y.remove(T)),T};var iT=Dc;(function(i,e){var t=ke,r=Ps,n=iT;function s(l,f){var u=new n(f);return u.process(l)}e=i.exports=s,e.filterXSS=s,e.FilterXSS=n,function(){for(var l in t)e[l]=t[l];for(var f in r)e[f]=r[f]}(),typeof window<"u"&&(window.filterXSS=i.exports);function c(){return typeof self<"u"&&typeof DedicatedWorkerGlobalScope<"u"&&self instanceof DedicatedWorkerGlobalScope}c()&&(self.filterXSS=i.exports)})(vc,vc.exports);var Cs={exports:{}};/**
|
|
568
|
+
* @license
|
|
569
|
+
* Lodash <https://lodash.com/>
|
|
570
|
+
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
571
|
+
* Released under MIT license <https://lodash.com/license>
|
|
572
|
+
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
|
573
|
+
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
574
|
+
*/Cs.exports,function(i,e){(function(){var t,r="4.18.1",n=200,s="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",c="Expected a function",l="Invalid `variable` option passed into `_.template`",f="Invalid `imports` option passed into `_.template`",u="__lodash_hash_undefined__",v=500,h="__lodash_placeholder__",y=1,T=2,O=4,C=1,S=2,w=1,d=2,g=4,p=8,P=16,A=32,R=64,D=128,U=256,L=512,W=30,Y="...",B=800,N=16,$=1,J=2,et=3,ot=1/0,ut=9007199254740991,K=17976931348623157e292,Q=NaN,ft=4294967295,mt=ft-1,yt=ft>>>1,Et=[["ary",D],["bind",w],["bindKey",d],["curry",p],["curryRight",P],["flip",L],["partial",A],["partialRight",R],["rearg",U]],ht="[object Arguments]",Nt="[object Array]",Bt="[object AsyncFunction]",G="[object Boolean]",H="[object Date]",rt="[object DOMException]",at="[object Error]",z="[object Function]",j="[object GeneratorFunction]",I="[object Map]",M="[object Number]",X="[object Null]",Z="[object Object]",q="[object Promise]",nt="[object Proxy]",ct="[object RegExp]",Pt="[object Set]",Ct="[object String]",At="[object Symbol]",bt="[object Undefined]",wt="[object WeakMap]",Ot="[object WeakSet]",Lt="[object ArrayBuffer]",Yt="[object DataView]",$t="[object Float32Array]",Wt="[object Float64Array]",Qt="[object Int8Array]",ue="[object Int16Array]",ie="[object Int32Array]",ne="[object Uint8Array]",ae="[object Uint8ClampedArray]",se="[object Uint16Array]",Fe="[object Uint32Array]",Ue=/\b__p \+= '';/g,ze=/\b(__p \+=) '' \+/g,$e=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ge=/&(?:amp|lt|gt|quot|#39);/g,He=/[&<>"']/g,qe=RegExp(Ge.source),Oe=RegExp(He.source),pr=/<%-([\s\S]+?)%>/g,an=/<%([\s\S]+?)%>/g,qr=/<%=([\s\S]+?)%>/g,li=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,fi=/^\w*$/,oa=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Wi=/[\\^$.*+?()[\]{}|]/g,aa=RegExp(Wi.source),Fi=/^\s+/,la=/\s/,fa=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ca=/\{\n\/\* \[wrapped with (.+)\] \*/,ua=/,? & /,ha=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,bs=/[()=,{}\[\]\/\s]/,da=/\\(\\)?/g,pa=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,xn=/\w*$/,Ds=/^[-+]0x[0-9a-f]+$/i,va=/^0b[01]+$/i,ga=/^\[object .+?Constructor\]$/,ma=/^0o[0-7]+$/i,ya=/^(?:0|[1-9]\d*)$/,Sa=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,$r=/($^)/,Pa=/['\n\r\u2028\u2029\\]/g,ci="\\ud800-\\udfff",xa="\\u0300-\\u036f",Ta="\\ufe20-\\ufe2f",Ca="\\u20d0-\\u20ff",Ns=xa+Ta+Ca,Bs="\\u2700-\\u27bf",Ws="a-z\\xdf-\\xf6\\xf8-\\xff",Ia="\\xac\\xb1\\xd7\\xf7",ir="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",wa="\\u2000-\\u206f",Oa=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Fs="A-Z\\xc0-\\xd6\\xd8-\\xde",ge="\\ufe0e\\ufe0f",Ui=Ia+ir+wa+Oa,Yi="['’]",Ea="["+ci+"]",Us="["+Ui+"]",ui="["+Ns+"]",a="\\d+",x="["+Bs+"]",E="["+Ws+"]",F="[^"+ci+Ui+a+Bs+Ws+Fs+"]",k="\\ud83c[\\udffb-\\udfff]",_="(?:"+ui+"|"+k+")",it="[^"+ci+"]",St="(?:\\ud83c[\\udde6-\\uddff]){2}",Tt="[\\ud800-\\udbff][\\udc00-\\udfff]",Dt="["+Fs+"]",Ht="\\u200d",jt="(?:"+E+"|"+F+")",_t="(?:"+Dt+"|"+F+")",oe="(?:"+Yi+"(?:d|ll|m|re|s|t|ve))?",me="(?:"+Yi+"(?:D|LL|M|RE|S|T|VE))?",Se=_+"?",be="["+ge+"]?",lr="(?:"+Ht+"(?:"+[it,St,Tt].join("|")+")"+be+Se+")*",Dr="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Tn="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Ys=be+Se+lr,Aa="(?:"+[x,St,Tt].join("|")+")"+Ys,Cn="(?:"+[it+ui+"?",ui,St,Tt,Ea].join("|")+")",iI=RegExp(Yi,"g"),sI=RegExp(ui,"g"),Ma=RegExp(k+"(?="+k+")|"+Cn+Ys,"g"),oI=RegExp([Dt+"?"+E+"+"+oe+"(?="+[Us,Dt,"$"].join("|")+")",_t+"+"+me+"(?="+[Us,Dt+jt,"$"].join("|")+")",Dt+"?"+jt+"+"+oe,Dt+"+"+me,Tn,Dr,a,Aa].join("|"),"g"),aI=RegExp("["+Ht+ci+Ns+ge+"]"),lI=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,fI=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],cI=-1,je={};je[$t]=je[Wt]=je[Qt]=je[ue]=je[ie]=je[ne]=je[ae]=je[se]=je[Fe]=!0,je[ht]=je[Nt]=je[Lt]=je[G]=je[Yt]=je[H]=je[at]=je[z]=je[I]=je[M]=je[Z]=je[ct]=je[Pt]=je[Ct]=je[wt]=!1;var Ye={};Ye[ht]=Ye[Nt]=Ye[Lt]=Ye[Yt]=Ye[G]=Ye[H]=Ye[$t]=Ye[Wt]=Ye[Qt]=Ye[ue]=Ye[ie]=Ye[I]=Ye[M]=Ye[Z]=Ye[ct]=Ye[Pt]=Ye[Ct]=Ye[At]=Ye[ne]=Ye[ae]=Ye[se]=Ye[Fe]=!0,Ye[at]=Ye[z]=Ye[wt]=!1;var uI={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},hI={"&":"&","<":"<",">":">",'"':""","'":"'"},dI={"&":"&","<":"<",">":">",""":'"',"'":"'"},pI={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},vI=parseFloat,gI=parseInt,ru=typeof sn=="object"&&sn&&sn.Object===Object&&sn,mI=typeof self=="object"&&self&&self.Object===Object&&self,sr=ru||mI||Function("return this")(),La=e&&!e.nodeType&&e,Un=La&&!0&&i&&!i.nodeType&&i,nu=Un&&Un.exports===La,Ra=nu&&ru.process,Nr=function(){try{var Mt=Un&&Un.require&&Un.require("util").types;return Mt||Ra&&Ra.binding&&Ra.binding("util")}catch{}}(),iu=Nr&&Nr.isArrayBuffer,su=Nr&&Nr.isDate,ou=Nr&&Nr.isMap,au=Nr&&Nr.isRegExp,lu=Nr&&Nr.isSet,fu=Nr&&Nr.isTypedArray;function wr(Mt,zt,Ft){switch(Ft.length){case 0:return Mt.call(zt);case 1:return Mt.call(zt,Ft[0]);case 2:return Mt.call(zt,Ft[0],Ft[1]);case 3:return Mt.call(zt,Ft[0],Ft[1],Ft[2])}return Mt.apply(zt,Ft)}function yI(Mt,zt,Ft,ee){for(var de=-1,Le=Mt==null?0:Mt.length;++de<Le;){var er=Mt[de];zt(ee,er,Ft(er),Mt)}return ee}function Or(Mt,zt){for(var Ft=-1,ee=Mt==null?0:Mt.length;++Ft<ee&&zt(Mt[Ft],Ft,Mt)!==!1;);return Mt}function SI(Mt,zt){for(var Ft=Mt==null?0:Mt.length;Ft--&&zt(Mt[Ft],Ft,Mt)!==!1;);return Mt}function cu(Mt,zt){for(var Ft=-1,ee=Mt==null?0:Mt.length;++Ft<ee;)if(!zt(Mt[Ft],Ft,Mt))return!1;return!0}function In(Mt,zt){for(var Ft=-1,ee=Mt==null?0:Mt.length,de=0,Le=[];++Ft<ee;){var er=Mt[Ft];zt(er,Ft,Mt)&&(Le[de++]=er)}return Le}function Xs(Mt,zt){var Ft=Mt==null?0:Mt.length;return!!Ft&&hi(Mt,zt,0)>-1}function ba(Mt,zt,Ft){for(var ee=-1,de=Mt==null?0:Mt.length;++ee<de;)if(Ft(zt,Mt[ee]))return!0;return!1}function Ve(Mt,zt){for(var Ft=-1,ee=Mt==null?0:Mt.length,de=Array(ee);++Ft<ee;)de[Ft]=zt(Mt[Ft],Ft,Mt);return de}function wn(Mt,zt){for(var Ft=-1,ee=zt.length,de=Mt.length;++Ft<ee;)Mt[de+Ft]=zt[Ft];return Mt}function Da(Mt,zt,Ft,ee){var de=-1,Le=Mt==null?0:Mt.length;for(ee&&Le&&(Ft=Mt[++de]);++de<Le;)Ft=zt(Ft,Mt[de],de,Mt);return Ft}function PI(Mt,zt,Ft,ee){var de=Mt==null?0:Mt.length;for(ee&&de&&(Ft=Mt[--de]);de--;)Ft=zt(Ft,Mt[de],de,Mt);return Ft}function Na(Mt,zt){for(var Ft=-1,ee=Mt==null?0:Mt.length;++Ft<ee;)if(zt(Mt[Ft],Ft,Mt))return!0;return!1}var xI=Ba("length");function TI(Mt){return Mt.split("")}function CI(Mt){return Mt.match(ha)||[]}function uu(Mt,zt,Ft){var ee;return Ft(Mt,function(de,Le,er){if(zt(de,Le,er))return ee=Le,!1}),ee}function zs(Mt,zt,Ft,ee){for(var de=Mt.length,Le=Ft+(ee?1:-1);ee?Le--:++Le<de;)if(zt(Mt[Le],Le,Mt))return Le;return-1}function hi(Mt,zt,Ft){return zt===zt?BI(Mt,zt,Ft):zs(Mt,hu,Ft)}function II(Mt,zt,Ft,ee){for(var de=Ft-1,Le=Mt.length;++de<Le;)if(ee(Mt[de],zt))return de;return-1}function hu(Mt){return Mt!==Mt}function du(Mt,zt){var Ft=Mt==null?0:Mt.length;return Ft?Fa(Mt,zt)/Ft:Q}function Ba(Mt){return function(zt){return zt==null?t:zt[Mt]}}function Wa(Mt){return function(zt){return Mt==null?t:Mt[zt]}}function pu(Mt,zt,Ft,ee,de){return de(Mt,function(Le,er,Be){Ft=ee?(ee=!1,Le):zt(Ft,Le,er,Be)}),Ft}function wI(Mt,zt){var Ft=Mt.length;for(Mt.sort(zt);Ft--;)Mt[Ft]=Mt[Ft].value;return Mt}function Fa(Mt,zt){for(var Ft,ee=-1,de=Mt.length;++ee<de;){var Le=zt(Mt[ee]);Le!==t&&(Ft=Ft===t?Le:Ft+Le)}return Ft}function Ua(Mt,zt){for(var Ft=-1,ee=Array(Mt);++Ft<Mt;)ee[Ft]=zt(Ft);return ee}function OI(Mt,zt){return Ve(zt,function(Ft){return[Ft,Mt[Ft]]})}function vu(Mt){return Mt&&Mt.slice(0,Su(Mt)+1).replace(Fi,"")}function Er(Mt){return function(zt){return Mt(zt)}}function Ya(Mt,zt){return Ve(zt,function(Ft){return Mt[Ft]})}function Xi(Mt,zt){return Mt.has(zt)}function gu(Mt,zt){for(var Ft=-1,ee=Mt.length;++Ft<ee&&hi(zt,Mt[Ft],0)>-1;);return Ft}function mu(Mt,zt){for(var Ft=Mt.length;Ft--&&hi(zt,Mt[Ft],0)>-1;);return Ft}function EI(Mt,zt){for(var Ft=Mt.length,ee=0;Ft--;)Mt[Ft]===zt&&++ee;return ee}var AI=Wa(uI),MI=Wa(hI);function LI(Mt){return"\\"+pI[Mt]}function RI(Mt,zt){return Mt==null?t:Mt[zt]}function di(Mt){return aI.test(Mt)}function bI(Mt){return lI.test(Mt)}function DI(Mt){for(var zt,Ft=[];!(zt=Mt.next()).done;)Ft.push(zt.value);return Ft}function Xa(Mt){var zt=-1,Ft=Array(Mt.size);return Mt.forEach(function(ee,de){Ft[++zt]=[de,ee]}),Ft}function yu(Mt,zt){return function(Ft){return Mt(zt(Ft))}}function On(Mt,zt){for(var Ft=-1,ee=Mt.length,de=0,Le=[];++Ft<ee;){var er=Mt[Ft];(er===zt||er===h)&&(Mt[Ft]=h,Le[de++]=Ft)}return Le}function $s(Mt){var zt=-1,Ft=Array(Mt.size);return Mt.forEach(function(ee){Ft[++zt]=ee}),Ft}function NI(Mt){var zt=-1,Ft=Array(Mt.size);return Mt.forEach(function(ee){Ft[++zt]=[ee,ee]}),Ft}function BI(Mt,zt,Ft){for(var ee=Ft-1,de=Mt.length;++ee<de;)if(Mt[ee]===zt)return ee;return-1}function WI(Mt,zt,Ft){for(var ee=Ft+1;ee--;)if(Mt[ee]===zt)return ee;return ee}function pi(Mt){return di(Mt)?UI(Mt):xI(Mt)}function jr(Mt){return di(Mt)?YI(Mt):TI(Mt)}function Su(Mt){for(var zt=Mt.length;zt--&&la.test(Mt.charAt(zt)););return zt}var FI=Wa(dI);function UI(Mt){for(var zt=Ma.lastIndex=0;Ma.test(Mt);)++zt;return zt}function YI(Mt){return Mt.match(Ma)||[]}function XI(Mt){return Mt.match(oI)||[]}var zI=function Mt(zt){zt=zt==null?sr:vi.defaults(sr.Object(),zt,vi.pick(sr,fI));var Ft=zt.Array,ee=zt.Date,de=zt.Error,Le=zt.Function,er=zt.Math,Be=zt.Object,za=zt.RegExp,$I=zt.String,Br=zt.TypeError,js=Ft.prototype,jI=Le.prototype,gi=Be.prototype,ks=zt["__core-js_shared__"],Gs=jI.toString,De=gi.hasOwnProperty,kI=0,Pu=function(){var o=/[^.]+$/.exec(ks&&ks.keys&&ks.keys.IE_PROTO||"");return o?"Symbol(src)_1."+o:""}(),Hs=gi.toString,GI=Gs.call(Be),HI=sr._,VI=za("^"+Gs.call(De).replace(Wi,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Vs=nu?zt.Buffer:t,En=zt.Symbol,Ks=zt.Uint8Array,xu=Vs?Vs.allocUnsafe:t,Zs=yu(Be.getPrototypeOf,Be),Tu=Be.create,Cu=gi.propertyIsEnumerable,Js=js.splice,Iu=En?En.isConcatSpreadable:t,zi=En?En.iterator:t,Yn=En?En.toStringTag:t,Qs=function(){try{var o=kn(Be,"defineProperty");return o({},"",{}),o}catch{}}(),KI=zt.clearTimeout!==sr.clearTimeout&&zt.clearTimeout,ZI=ee&&ee.now!==sr.Date.now&&ee.now,JI=zt.setTimeout!==sr.setTimeout&&zt.setTimeout,qs=er.ceil,_s=er.floor,$a=Be.getOwnPropertySymbols,QI=Vs?Vs.isBuffer:t,wu=zt.isFinite,qI=js.join,_I=yu(Be.keys,Be),rr=er.max,fr=er.min,tw=ee.now,ew=zt.parseInt,Ou=er.random,rw=js.reverse,ja=kn(zt,"DataView"),$i=kn(zt,"Map"),ka=kn(zt,"Promise"),mi=kn(zt,"Set"),ji=kn(zt,"WeakMap"),ki=kn(Be,"create"),to=ji&&new ji,yi={},nw=Gn(ja),iw=Gn($i),sw=Gn(ka),ow=Gn(mi),aw=Gn(ji),eo=En?En.prototype:t,Gi=eo?eo.valueOf:t,Eu=eo?eo.toString:t;function st(o){if(Ze(o)&&!pe(o)&&!(o instanceof we)){if(o instanceof Wr)return o;if(De.call(o,"__wrapped__"))return Ah(o)}return new Wr(o)}var Si=function(){function o(){}return function(m){if(!Ke(m))return{};if(Tu)return Tu(m);o.prototype=m;var b=new o;return o.prototype=t,b}}();function ro(){}function Wr(o,m){this.__wrapped__=o,this.__actions__=[],this.__chain__=!!m,this.__index__=0,this.__values__=t}st.templateSettings={escape:pr,evaluate:an,interpolate:qr,variable:"",imports:{_:st}},st.prototype=ro.prototype,st.prototype.constructor=st,Wr.prototype=Si(ro.prototype),Wr.prototype.constructor=Wr;function we(o){this.__wrapped__=o,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=ft,this.__views__=[]}function lw(){var o=new we(this.__wrapped__);return o.__actions__=Sr(this.__actions__),o.__dir__=this.__dir__,o.__filtered__=this.__filtered__,o.__iteratees__=Sr(this.__iteratees__),o.__takeCount__=this.__takeCount__,o.__views__=Sr(this.__views__),o}function fw(){if(this.__filtered__){var o=new we(this);o.__dir__=-1,o.__filtered__=!0}else o=this.clone(),o.__dir__*=-1;return o}function cw(){var o=this.__wrapped__.value(),m=this.__dir__,b=pe(o),V=m<0,tt=b?o.length:0,lt=TO(0,tt,this.__views__),gt=lt.start,It=lt.end,Rt=It-gt,kt=V?It:gt-1,Gt=this.__iteratees__,Vt=Gt.length,te=0,re=fr(Rt,this.__takeCount__);if(!b||!V&&tt==Rt&&re==Rt)return Qu(o,this.__actions__);var ce=[];t:for(;Rt--&&te<re;){kt+=m;for(var Pe=-1,le=o[kt];++Pe<Vt;){var Ce=Gt[Pe],Ee=Ce.iteratee,Lr=Ce.type,mr=Ee(le);if(Lr==J)le=mr;else if(!mr){if(Lr==$)continue t;break t}}ce[te++]=le}return ce}we.prototype=Si(ro.prototype),we.prototype.constructor=we;function Xn(o){var m=-1,b=o==null?0:o.length;for(this.clear();++m<b;){var V=o[m];this.set(V[0],V[1])}}function uw(){this.__data__=ki?ki(null):{},this.size=0}function hw(o){var m=this.has(o)&&delete this.__data__[o];return this.size-=m?1:0,m}function dw(o){var m=this.__data__;if(ki){var b=m[o];return b===u?t:b}return De.call(m,o)?m[o]:t}function pw(o){var m=this.__data__;return ki?m[o]!==t:De.call(m,o)}function vw(o,m){var b=this.__data__;return this.size+=this.has(o)?0:1,b[o]=ki&&m===t?u:m,this}Xn.prototype.clear=uw,Xn.prototype.delete=hw,Xn.prototype.get=dw,Xn.prototype.has=pw,Xn.prototype.set=vw;function ln(o){var m=-1,b=o==null?0:o.length;for(this.clear();++m<b;){var V=o[m];this.set(V[0],V[1])}}function gw(){this.__data__=[],this.size=0}function mw(o){var m=this.__data__,b=no(m,o);if(b<0)return!1;var V=m.length-1;return b==V?m.pop():Js.call(m,b,1),--this.size,!0}function yw(o){var m=this.__data__,b=no(m,o);return b<0?t:m[b][1]}function Sw(o){return no(this.__data__,o)>-1}function Pw(o,m){var b=this.__data__,V=no(b,o);return V<0?(++this.size,b.push([o,m])):b[V][1]=m,this}ln.prototype.clear=gw,ln.prototype.delete=mw,ln.prototype.get=yw,ln.prototype.has=Sw,ln.prototype.set=Pw;function fn(o){var m=-1,b=o==null?0:o.length;for(this.clear();++m<b;){var V=o[m];this.set(V[0],V[1])}}function xw(){this.size=0,this.__data__={hash:new Xn,map:new($i||ln),string:new Xn}}function Tw(o){var m=go(this,o).delete(o);return this.size-=m?1:0,m}function Cw(o){return go(this,o).get(o)}function Iw(o){return go(this,o).has(o)}function ww(o,m){var b=go(this,o),V=b.size;return b.set(o,m),this.size+=b.size==V?0:1,this}fn.prototype.clear=xw,fn.prototype.delete=Tw,fn.prototype.get=Cw,fn.prototype.has=Iw,fn.prototype.set=ww;function zn(o){var m=-1,b=o==null?0:o.length;for(this.__data__=new fn;++m<b;)this.add(o[m])}function Ow(o){return this.__data__.set(o,u),this}function Ew(o){return this.__data__.has(o)}zn.prototype.add=zn.prototype.push=Ow,zn.prototype.has=Ew;function kr(o){var m=this.__data__=new ln(o);this.size=m.size}function Aw(){this.__data__=new ln,this.size=0}function Mw(o){var m=this.__data__,b=m.delete(o);return this.size=m.size,b}function Lw(o){return this.__data__.get(o)}function Rw(o){return this.__data__.has(o)}function bw(o,m){var b=this.__data__;if(b instanceof ln){var V=b.__data__;if(!$i||V.length<n-1)return V.push([o,m]),this.size=++b.size,this;b=this.__data__=new fn(V)}return b.set(o,m),this.size=b.size,this}kr.prototype.clear=Aw,kr.prototype.delete=Mw,kr.prototype.get=Lw,kr.prototype.has=Rw,kr.prototype.set=bw;function Au(o,m){var b=pe(o),V=!b&&Hn(o),tt=!b&&!V&&bn(o),lt=!b&&!V&&!tt&&Ci(o),gt=b||V||tt||lt,It=gt?Ua(o.length,$I):[],Rt=It.length;for(var kt in o)(m||De.call(o,kt))&&!(gt&&(kt=="length"||tt&&(kt=="offset"||kt=="parent")||lt&&(kt=="buffer"||kt=="byteLength"||kt=="byteOffset")||hn(kt,Rt)))&&It.push(kt);return It}function Mu(o){var m=o.length;return m?o[el(0,m-1)]:t}function Dw(o,m){return mo(Sr(o),$n(m,0,o.length))}function Nw(o){return mo(Sr(o))}function Ga(o,m,b){(b!==t&&!Hr(o[m],b)||b===t&&!(m in o))&&_r(o,m,b)}function Hi(o,m,b){var V=o[m];(!(De.call(o,m)&&Hr(V,b))||b===t&&!(m in o))&&_r(o,m,b)}function no(o,m){for(var b=o.length;b--;)if(Hr(o[b][0],m))return b;return-1}function Bw(o,m,b,V){return An(o,function(tt,lt,gt){m(V,tt,b(tt),gt)}),V}function Lu(o,m){return o&&en(m,nr(m),o)}function Ww(o,m){return o&&en(m,xr(m),o)}function _r(o,m,b){m=="__proto__"&&Qs?Qs(o,m,{configurable:!0,enumerable:!0,value:b,writable:!0}):o[m]=b}function Ha(o,m){for(var b=-1,V=m.length,tt=Ft(V),lt=o==null;++b<V;)tt[b]=lt?t:El(o,m[b]);return tt}function $n(o,m,b){return o===o&&(b!==t&&(o=o<=b?o:b),m!==t&&(o=o>=m?o:m)),o}function Fr(o,m,b,V,tt,lt){var gt,It=m&y,Rt=m&T,kt=m&O;if(b&&(gt=tt?b(o,V,tt,lt):b(o)),gt!==t)return gt;if(!Ke(o))return o;var Gt=pe(o);if(Gt){if(gt=IO(o),!It)return Sr(o,gt)}else{var Vt=cr(o),te=Vt==z||Vt==j;if(bn(o))return th(o,It);if(Vt==Z||Vt==ht||te&&!tt){if(gt=Rt||te?{}:Sh(o),!It)return Rt?dO(o,Ww(gt,o)):hO(o,Lu(gt,o))}else{if(!Ye[Vt])return tt?o:{};gt=wO(o,Vt,It)}}lt||(lt=new kr);var re=lt.get(o);if(re)return re;lt.set(o,gt),Kh(o)?o.forEach(function(le){gt.add(Fr(le,m,b,le,o,lt))}):Hh(o)&&o.forEach(function(le,Ce){gt.set(Ce,Fr(le,m,b,Ce,o,lt))});var ce=kt?Rt?hl:ul:Rt?xr:nr,Pe=Gt?t:ce(o);return Or(Pe||o,function(le,Ce){Pe&&(Ce=le,le=o[Ce]),Hi(gt,Ce,Fr(le,m,b,Ce,o,lt))}),gt}function Fw(o){var m=nr(o);return function(b){return Ru(b,o,m)}}function Ru(o,m,b){var V=b.length;if(o==null)return!V;for(o=Be(o);V--;){var tt=b[V],lt=m[tt],gt=o[tt];if(gt===t&&!(tt in o)||!lt(gt))return!1}return!0}function bu(o,m,b){if(typeof o!="function")throw new Br(c);return _i(function(){o.apply(t,b)},m)}function Vi(o,m,b,V){var tt=-1,lt=Xs,gt=!0,It=o.length,Rt=[],kt=m.length;if(!It)return Rt;b&&(m=Ve(m,Er(b))),V?(lt=ba,gt=!1):m.length>=n&&(lt=Xi,gt=!1,m=new zn(m));t:for(;++tt<It;){var Gt=o[tt],Vt=b==null?Gt:b(Gt);if(Gt=V||Gt!==0?Gt:0,gt&&Vt===Vt){for(var te=kt;te--;)if(m[te]===Vt)continue t;Rt.push(Gt)}else lt(m,Vt,V)||Rt.push(Gt)}return Rt}var An=sh(tn),Du=sh(Ka,!0);function Uw(o,m){var b=!0;return An(o,function(V,tt,lt){return b=!!m(V,tt,lt),b}),b}function io(o,m,b){for(var V=-1,tt=o.length;++V<tt;){var lt=o[V],gt=m(lt);if(gt!=null&&(It===t?gt===gt&&!Mr(gt):b(gt,It)))var It=gt,Rt=lt}return Rt}function Yw(o,m,b,V){var tt=o.length;for(b=ye(b),b<0&&(b=-b>tt?0:tt+b),V=V===t||V>tt?tt:ye(V),V<0&&(V+=tt),V=b>V?0:Jh(V);b<V;)o[b++]=m;return o}function Nu(o,m){var b=[];return An(o,function(V,tt,lt){m(V,tt,lt)&&b.push(V)}),b}function or(o,m,b,V,tt){var lt=-1,gt=o.length;for(b||(b=EO),tt||(tt=[]);++lt<gt;){var It=o[lt];m>0&&b(It)?m>1?or(It,m-1,b,V,tt):wn(tt,It):V||(tt[tt.length]=It)}return tt}var Va=oh(),Bu=oh(!0);function tn(o,m){return o&&Va(o,m,nr)}function Ka(o,m){return o&&Bu(o,m,nr)}function so(o,m){return In(m,function(b){return dn(o[b])})}function jn(o,m){m=Ln(m,o);for(var b=0,V=m.length;o!=null&&b<V;)o=o[Gr(m[b++])];return b&&b==V?o:t}function Wu(o,m,b){var V=m(o);return pe(o)?V:wn(V,b(o))}function vr(o){return o==null?o===t?bt:X:Yn&&Yn in Be(o)?xO(o):NO(o)}function Za(o,m){return o>m}function Xw(o,m){return o!=null&&De.call(o,m)}function zw(o,m){return o!=null&&m in Be(o)}function $w(o,m,b){return o>=fr(m,b)&&o<rr(m,b)}function Ja(o,m,b){for(var V=b?ba:Xs,tt=o[0].length,lt=o.length,gt=lt,It=Ft(lt),Rt=1/0,kt=[];gt--;){var Gt=o[gt];gt&&m&&(Gt=Ve(Gt,Er(m))),Rt=fr(Gt.length,Rt),It[gt]=!b&&(m||tt>=120&&Gt.length>=120)?new zn(gt&&Gt):t}Gt=o[0];var Vt=-1,te=It[0];t:for(;++Vt<tt&&kt.length<Rt;){var re=Gt[Vt],ce=m?m(re):re;if(re=b||re!==0?re:0,!(te?Xi(te,ce):V(kt,ce,b))){for(gt=lt;--gt;){var Pe=It[gt];if(!(Pe?Xi(Pe,ce):V(o[gt],ce,b)))continue t}te&&te.push(ce),kt.push(re)}}return kt}function jw(o,m,b,V){return tn(o,function(tt,lt,gt){m(V,b(tt),lt,gt)}),V}function Ki(o,m,b){m=Ln(m,o),o=Ch(o,m);var V=o==null?o:o[Gr(Yr(m))];return V==null?t:wr(V,o,b)}function Fu(o){return Ze(o)&&vr(o)==ht}function kw(o){return Ze(o)&&vr(o)==Lt}function Gw(o){return Ze(o)&&vr(o)==H}function Zi(o,m,b,V,tt){return o===m?!0:o==null||m==null||!Ze(o)&&!Ze(m)?o!==o&&m!==m:Hw(o,m,b,V,Zi,tt)}function Hw(o,m,b,V,tt,lt){var gt=pe(o),It=pe(m),Rt=gt?Nt:cr(o),kt=It?Nt:cr(m);Rt=Rt==ht?Z:Rt,kt=kt==ht?Z:kt;var Gt=Rt==Z,Vt=kt==Z,te=Rt==kt;if(te&&bn(o)){if(!bn(m))return!1;gt=!0,Gt=!1}if(te&&!Gt)return lt||(lt=new kr),gt||Ci(o)?gh(o,m,b,V,tt,lt):SO(o,m,Rt,b,V,tt,lt);if(!(b&C)){var re=Gt&&De.call(o,"__wrapped__"),ce=Vt&&De.call(m,"__wrapped__");if(re||ce){var Pe=re?o.value():o,le=ce?m.value():m;return lt||(lt=new kr),tt(Pe,le,b,V,lt)}}return te?(lt||(lt=new kr),PO(o,m,b,V,tt,lt)):!1}function Vw(o){return Ze(o)&&cr(o)==I}function Qa(o,m,b,V){var tt=b.length,lt=tt,gt=!V;if(o==null)return!lt;for(o=Be(o);tt--;){var It=b[tt];if(gt&&It[2]?It[1]!==o[It[0]]:!(It[0]in o))return!1}for(;++tt<lt;){It=b[tt];var Rt=It[0],kt=o[Rt],Gt=It[1];if(gt&&It[2]){if(kt===t&&!(Rt in o))return!1}else{var Vt=new kr;if(V)var te=V(kt,Gt,Rt,o,m,Vt);if(!(te===t?Zi(Gt,kt,C|S,V,Vt):te))return!1}}return!0}function Uu(o){if(!Ke(o)||MO(o))return!1;var m=dn(o)?VI:ga;return m.test(Gn(o))}function Kw(o){return Ze(o)&&vr(o)==ct}function Zw(o){return Ze(o)&&cr(o)==Pt}function Jw(o){return Ze(o)&&Co(o.length)&&!!je[vr(o)]}function Yu(o){return typeof o=="function"?o:o==null?Tr:typeof o=="object"?pe(o)?$u(o[0],o[1]):zu(o):ld(o)}function qa(o){if(!qi(o))return _I(o);var m=[];for(var b in Be(o))De.call(o,b)&&b!="constructor"&&m.push(b);return m}function Qw(o){if(!Ke(o))return DO(o);var m=qi(o),b=[];for(var V in o)V=="constructor"&&(m||!De.call(o,V))||b.push(V);return b}function _a(o,m){return o<m}function Xu(o,m){var b=-1,V=Pr(o)?Ft(o.length):[];return An(o,function(tt,lt,gt){V[++b]=m(tt,lt,gt)}),V}function zu(o){var m=pl(o);return m.length==1&&m[0][2]?xh(m[0][0],m[0][1]):function(b){return b===o||Qa(b,o,m)}}function $u(o,m){return gl(o)&&Ph(m)?xh(Gr(o),m):function(b){var V=El(b,o);return V===t&&V===m?Al(b,o):Zi(m,V,C|S)}}function oo(o,m,b,V,tt){o!==m&&Va(m,function(lt,gt){if(tt||(tt=new kr),Ke(lt))qw(o,m,gt,b,oo,V,tt);else{var It=V?V(yl(o,gt),lt,gt+"",o,m,tt):t;It===t&&(It=lt),Ga(o,gt,It)}},xr)}function qw(o,m,b,V,tt,lt,gt){var It=yl(o,b),Rt=yl(m,b),kt=gt.get(Rt);if(kt){Ga(o,b,kt);return}var Gt=lt?lt(It,Rt,b+"",o,m,gt):t,Vt=Gt===t;if(Vt){var te=pe(Rt),re=!te&&bn(Rt),ce=!te&&!re&&Ci(Rt);Gt=Rt,te||re||ce?pe(It)?Gt=It:_e(It)?Gt=Sr(It):re?(Vt=!1,Gt=th(Rt,!0)):ce?(Vt=!1,Gt=eh(Rt,!0)):Gt=[]:ts(Rt)||Hn(Rt)?(Gt=It,Hn(It)?Gt=Qh(It):(!Ke(It)||dn(It))&&(Gt=Sh(Rt))):Vt=!1}Vt&&(gt.set(Rt,Gt),tt(Gt,Rt,V,lt,gt),gt.delete(Rt)),Ga(o,b,Gt)}function ju(o,m){var b=o.length;if(b)return m+=m<0?b:0,hn(m,b)?o[m]:t}function ku(o,m,b){m.length?m=Ve(m,function(lt){return pe(lt)?function(gt){return jn(gt,lt.length===1?lt[0]:lt)}:lt}):m=[Tr];var V=-1;m=Ve(m,Er(fe()));var tt=Xu(o,function(lt,gt,It){var Rt=Ve(m,function(kt){return kt(lt)});return{criteria:Rt,index:++V,value:lt}});return wI(tt,function(lt,gt){return uO(lt,gt,b)})}function _w(o,m){return Gu(o,m,function(b,V){return Al(o,V)})}function Gu(o,m,b){for(var V=-1,tt=m.length,lt={};++V<tt;){var gt=m[V],It=jn(o,gt);b(It,gt)&&Ji(lt,Ln(gt,o),It)}return lt}function tO(o){return function(m){return jn(m,o)}}function tl(o,m,b,V){var tt=V?II:hi,lt=-1,gt=m.length,It=o;for(o===m&&(m=Sr(m)),b&&(It=Ve(o,Er(b)));++lt<gt;)for(var Rt=0,kt=m[lt],Gt=b?b(kt):kt;(Rt=tt(It,Gt,Rt,V))>-1;)It!==o&&Js.call(It,Rt,1),Js.call(o,Rt,1);return o}function Hu(o,m){for(var b=o?m.length:0,V=b-1;b--;){var tt=m[b];if(b==V||tt!==lt){var lt=tt;hn(tt)?Js.call(o,tt,1):il(o,tt)}}return o}function el(o,m){return o+_s(Ou()*(m-o+1))}function eO(o,m,b,V){for(var tt=-1,lt=rr(qs((m-o)/(b||1)),0),gt=Ft(lt);lt--;)gt[V?lt:++tt]=o,o+=b;return gt}function rl(o,m){var b="";if(!o||m<1||m>ut)return b;do m%2&&(b+=o),m=_s(m/2),m&&(o+=o);while(m);return b}function xe(o,m){return Sl(Th(o,m,Tr),o+"")}function rO(o){return Mu(Ii(o))}function nO(o,m){var b=Ii(o);return mo(b,$n(m,0,b.length))}function Ji(o,m,b,V){if(!Ke(o))return o;m=Ln(m,o);for(var tt=-1,lt=m.length,gt=lt-1,It=o;It!=null&&++tt<lt;){var Rt=Gr(m[tt]),kt=b;if(Rt==="__proto__"||Rt==="constructor"||Rt==="prototype")return o;if(tt!=gt){var Gt=It[Rt];kt=V?V(Gt,Rt,It):t,kt===t&&(kt=Ke(Gt)?Gt:hn(m[tt+1])?[]:{})}Hi(It,Rt,kt),It=It[Rt]}return o}var Vu=to?function(o,m){return to.set(o,m),o}:Tr,iO=Qs?function(o,m){return Qs(o,"toString",{configurable:!0,enumerable:!1,value:Ll(m),writable:!0})}:Tr;function sO(o){return mo(Ii(o))}function Ur(o,m,b){var V=-1,tt=o.length;m<0&&(m=-m>tt?0:tt+m),b=b>tt?tt:b,b<0&&(b+=tt),tt=m>b?0:b-m>>>0,m>>>=0;for(var lt=Ft(tt);++V<tt;)lt[V]=o[V+m];return lt}function oO(o,m){var b;return An(o,function(V,tt,lt){return b=m(V,tt,lt),!b}),!!b}function ao(o,m,b){var V=0,tt=o==null?V:o.length;if(typeof m=="number"&&m===m&&tt<=yt){for(;V<tt;){var lt=V+tt>>>1,gt=o[lt];gt!==null&&!Mr(gt)&&(b?gt<=m:gt<m)?V=lt+1:tt=lt}return tt}return nl(o,m,Tr,b)}function nl(o,m,b,V){var tt=0,lt=o==null?0:o.length;if(lt===0)return 0;m=b(m);for(var gt=m!==m,It=m===null,Rt=Mr(m),kt=m===t;tt<lt;){var Gt=_s((tt+lt)/2),Vt=b(o[Gt]),te=Vt!==t,re=Vt===null,ce=Vt===Vt,Pe=Mr(Vt);if(gt)var le=V||ce;else kt?le=ce&&(V||te):It?le=ce&&te&&(V||!re):Rt?le=ce&&te&&!re&&(V||!Pe):re||Pe?le=!1:le=V?Vt<=m:Vt<m;le?tt=Gt+1:lt=Gt}return fr(lt,mt)}function Ku(o,m){for(var b=-1,V=o.length,tt=0,lt=[];++b<V;){var gt=o[b],It=m?m(gt):gt;if(!b||!Hr(It,Rt)){var Rt=It;lt[tt++]=gt===0?0:gt}}return lt}function Zu(o){return typeof o=="number"?o:Mr(o)?Q:+o}function Ar(o){if(typeof o=="string")return o;if(pe(o))return Ve(o,Ar)+"";if(Mr(o))return Eu?Eu.call(o):"";var m=o+"";return m=="0"&&1/o==-ot?"-0":m}function Mn(o,m,b){var V=-1,tt=Xs,lt=o.length,gt=!0,It=[],Rt=It;if(b)gt=!1,tt=ba;else if(lt>=n){var kt=m?null:mO(o);if(kt)return $s(kt);gt=!1,tt=Xi,Rt=new zn}else Rt=m?[]:It;t:for(;++V<lt;){var Gt=o[V],Vt=m?m(Gt):Gt;if(Gt=b||Gt!==0?Gt:0,gt&&Vt===Vt){for(var te=Rt.length;te--;)if(Rt[te]===Vt)continue t;m&&Rt.push(Vt),It.push(Gt)}else tt(Rt,Vt,b)||(Rt!==It&&Rt.push(Vt),It.push(Gt))}return It}function il(o,m){m=Ln(m,o);var b=-1,V=m.length;if(!V)return!0;for(;++b<V;){var tt=Gr(m[b]);if(tt==="__proto__"&&!De.call(o,"__proto__")||(tt==="constructor"||tt==="prototype")&&b<V-1)return!1}var lt=Ch(o,m);return lt==null||delete lt[Gr(Yr(m))]}function Ju(o,m,b,V){return Ji(o,m,b(jn(o,m)),V)}function lo(o,m,b,V){for(var tt=o.length,lt=V?tt:-1;(V?lt--:++lt<tt)&&m(o[lt],lt,o););return b?Ur(o,V?0:lt,V?lt+1:tt):Ur(o,V?lt+1:0,V?tt:lt)}function Qu(o,m){var b=o;return b instanceof we&&(b=b.value()),Da(m,function(V,tt){return tt.func.apply(tt.thisArg,wn([V],tt.args))},b)}function sl(o,m,b){var V=o.length;if(V<2)return V?Mn(o[0]):[];for(var tt=-1,lt=Ft(V);++tt<V;)for(var gt=o[tt],It=-1;++It<V;)It!=tt&&(lt[tt]=Vi(lt[tt]||gt,o[It],m,b));return Mn(or(lt,1),m,b)}function qu(o,m,b){for(var V=-1,tt=o.length,lt=m.length,gt={};++V<tt;){var It=V<lt?m[V]:t;b(gt,o[V],It)}return gt}function ol(o){return _e(o)?o:[]}function al(o){return typeof o=="function"?o:Tr}function Ln(o,m){return pe(o)?o:gl(o,m)?[o]:Eh(Ne(o))}var aO=xe;function Rn(o,m,b){var V=o.length;return b=b===t?V:b,!m&&b>=V?o:Ur(o,m,b)}var _u=KI||function(o){return sr.clearTimeout(o)};function th(o,m){if(m)return o.slice();var b=o.length,V=xu?xu(b):new o.constructor(b);return o.copy(V),V}function ll(o){var m=new o.constructor(o.byteLength);return new Ks(m).set(new Ks(o)),m}function lO(o,m){var b=m?ll(o.buffer):o.buffer;return new o.constructor(b,o.byteOffset,o.byteLength)}function fO(o){var m=new o.constructor(o.source,xn.exec(o));return m.lastIndex=o.lastIndex,m}function cO(o){return Gi?Be(Gi.call(o)):{}}function eh(o,m){var b=m?ll(o.buffer):o.buffer;return new o.constructor(b,o.byteOffset,o.length)}function rh(o,m){if(o!==m){var b=o!==t,V=o===null,tt=o===o,lt=Mr(o),gt=m!==t,It=m===null,Rt=m===m,kt=Mr(m);if(!It&&!kt&&!lt&&o>m||lt&>&&Rt&&!It&&!kt||V&>&&Rt||!b&&Rt||!tt)return 1;if(!V&&!lt&&!kt&&o<m||kt&&b&&tt&&!V&&!lt||It&&b&&tt||!gt&&tt||!Rt)return-1}return 0}function uO(o,m,b){for(var V=-1,tt=o.criteria,lt=m.criteria,gt=tt.length,It=b.length;++V<gt;){var Rt=rh(tt[V],lt[V]);if(Rt){if(V>=It)return Rt;var kt=b[V];return Rt*(kt=="desc"?-1:1)}}return o.index-m.index}function nh(o,m,b,V){for(var tt=-1,lt=o.length,gt=b.length,It=-1,Rt=m.length,kt=rr(lt-gt,0),Gt=Ft(Rt+kt),Vt=!V;++It<Rt;)Gt[It]=m[It];for(;++tt<gt;)(Vt||tt<lt)&&(Gt[b[tt]]=o[tt]);for(;kt--;)Gt[It++]=o[tt++];return Gt}function ih(o,m,b,V){for(var tt=-1,lt=o.length,gt=-1,It=b.length,Rt=-1,kt=m.length,Gt=rr(lt-It,0),Vt=Ft(Gt+kt),te=!V;++tt<Gt;)Vt[tt]=o[tt];for(var re=tt;++Rt<kt;)Vt[re+Rt]=m[Rt];for(;++gt<It;)(te||tt<lt)&&(Vt[re+b[gt]]=o[tt++]);return Vt}function Sr(o,m){var b=-1,V=o.length;for(m||(m=Ft(V));++b<V;)m[b]=o[b];return m}function en(o,m,b,V){var tt=!b;b||(b={});for(var lt=-1,gt=m.length;++lt<gt;){var It=m[lt],Rt=V?V(b[It],o[It],It,b,o):t;Rt===t&&(Rt=o[It]),tt?_r(b,It,Rt):Hi(b,It,Rt)}return b}function hO(o,m){return en(o,vl(o),m)}function dO(o,m){return en(o,mh(o),m)}function fo(o,m){return function(b,V){var tt=pe(b)?yI:Bw,lt=m?m():{};return tt(b,o,fe(V,2),lt)}}function Pi(o){return xe(function(m,b){var V=-1,tt=b.length,lt=tt>1?b[tt-1]:t,gt=tt>2?b[2]:t;for(lt=o.length>3&&typeof lt=="function"?(tt--,lt):t,gt&&gr(b[0],b[1],gt)&&(lt=tt<3?t:lt,tt=1),m=Be(m);++V<tt;){var It=b[V];It&&o(m,It,V,lt)}return m})}function sh(o,m){return function(b,V){if(b==null)return b;if(!Pr(b))return o(b,V);for(var tt=b.length,lt=m?tt:-1,gt=Be(b);(m?lt--:++lt<tt)&&V(gt[lt],lt,gt)!==!1;);return b}}function oh(o){return function(m,b,V){for(var tt=-1,lt=Be(m),gt=V(m),It=gt.length;It--;){var Rt=gt[o?It:++tt];if(b(lt[Rt],Rt,lt)===!1)break}return m}}function pO(o,m,b){var V=m&w,tt=Qi(o);function lt(){var gt=this&&this!==sr&&this instanceof lt?tt:o;return gt.apply(V?b:this,arguments)}return lt}function ah(o){return function(m){m=Ne(m);var b=di(m)?jr(m):t,V=b?b[0]:m.charAt(0),tt=b?Rn(b,1).join(""):m.slice(1);return V[o]()+tt}}function xi(o){return function(m){return Da(od(sd(m).replace(iI,"")),o,"")}}function Qi(o){return function(){var m=arguments;switch(m.length){case 0:return new o;case 1:return new o(m[0]);case 2:return new o(m[0],m[1]);case 3:return new o(m[0],m[1],m[2]);case 4:return new o(m[0],m[1],m[2],m[3]);case 5:return new o(m[0],m[1],m[2],m[3],m[4]);case 6:return new o(m[0],m[1],m[2],m[3],m[4],m[5]);case 7:return new o(m[0],m[1],m[2],m[3],m[4],m[5],m[6])}var b=Si(o.prototype),V=o.apply(b,m);return Ke(V)?V:b}}function vO(o,m,b){var V=Qi(o);function tt(){for(var lt=arguments.length,gt=Ft(lt),It=lt,Rt=Ti(tt);It--;)gt[It]=arguments[It];var kt=lt<3&>[0]!==Rt&>[lt-1]!==Rt?[]:On(gt,Rt);if(lt-=kt.length,lt<b)return hh(o,m,co,tt.placeholder,t,gt,kt,t,t,b-lt);var Gt=this&&this!==sr&&this instanceof tt?V:o;return wr(Gt,this,gt)}return tt}function lh(o){return function(m,b,V){var tt=Be(m);if(!Pr(m)){var lt=fe(b,3);m=nr(m),b=function(It){return lt(tt[It],It,tt)}}var gt=o(m,b,V);return gt>-1?tt[lt?m[gt]:gt]:t}}function fh(o){return un(function(m){var b=m.length,V=b,tt=Wr.prototype.thru;for(o&&m.reverse();V--;){var lt=m[V];if(typeof lt!="function")throw new Br(c);if(tt&&!gt&&vo(lt)=="wrapper")var gt=new Wr([],!0)}for(V=gt?V:b;++V<b;){lt=m[V];var It=vo(lt),Rt=It=="wrapper"?dl(lt):t;Rt&&ml(Rt[0])&&Rt[1]==(D|p|A|U)&&!Rt[4].length&&Rt[9]==1?gt=gt[vo(Rt[0])].apply(gt,Rt[3]):gt=lt.length==1&&ml(lt)?gt[It]():gt.thru(lt)}return function(){var kt=arguments,Gt=kt[0];if(gt&&kt.length==1&&pe(Gt))return gt.plant(Gt).value();for(var Vt=0,te=b?m[Vt].apply(this,kt):Gt;++Vt<b;)te=m[Vt].call(this,te);return te}})}function co(o,m,b,V,tt,lt,gt,It,Rt,kt){var Gt=m&D,Vt=m&w,te=m&d,re=m&(p|P),ce=m&L,Pe=te?t:Qi(o);function le(){for(var Ce=arguments.length,Ee=Ft(Ce),Lr=Ce;Lr--;)Ee[Lr]=arguments[Lr];if(re)var mr=Ti(le),Rr=EI(Ee,mr);if(V&&(Ee=nh(Ee,V,tt,re)),lt&&(Ee=ih(Ee,lt,gt,re)),Ce-=Rr,re&&Ce<kt){var tr=On(Ee,mr);return hh(o,m,co,le.placeholder,b,Ee,tr,It,Rt,kt-Ce)}var Vr=Vt?b:this,vn=te?Vr[o]:o;return Ce=Ee.length,It?Ee=BO(Ee,It):ce&&Ce>1&&Ee.reverse(),Gt&&Rt<Ce&&(Ee.length=Rt),this&&this!==sr&&this instanceof le&&(vn=Pe||Qi(vn)),vn.apply(Vr,Ee)}return le}function ch(o,m){return function(b,V){return jw(b,o,m(V),{})}}function uo(o,m){return function(b,V){var tt;if(b===t&&V===t)return m;if(b!==t&&(tt=b),V!==t){if(tt===t)return V;typeof b=="string"||typeof V=="string"?(b=Ar(b),V=Ar(V)):(b=Zu(b),V=Zu(V)),tt=o(b,V)}return tt}}function fl(o){return un(function(m){return m=Ve(m,Er(fe())),xe(function(b){var V=this;return o(m,function(tt){return wr(tt,V,b)})})})}function ho(o,m){m=m===t?" ":Ar(m);var b=m.length;if(b<2)return b?rl(m,o):m;var V=rl(m,qs(o/pi(m)));return di(m)?Rn(jr(V),0,o).join(""):V.slice(0,o)}function gO(o,m,b,V){var tt=m&w,lt=Qi(o);function gt(){for(var It=-1,Rt=arguments.length,kt=-1,Gt=V.length,Vt=Ft(Gt+Rt),te=this&&this!==sr&&this instanceof gt?lt:o;++kt<Gt;)Vt[kt]=V[kt];for(;Rt--;)Vt[kt++]=arguments[++It];return wr(te,tt?b:this,Vt)}return gt}function uh(o){return function(m,b,V){return V&&typeof V!="number"&&gr(m,b,V)&&(b=V=t),m=pn(m),b===t?(b=m,m=0):b=pn(b),V=V===t?m<b?1:-1:pn(V),eO(m,b,V,o)}}function po(o){return function(m,b){return typeof m=="string"&&typeof b=="string"||(m=Xr(m),b=Xr(b)),o(m,b)}}function hh(o,m,b,V,tt,lt,gt,It,Rt,kt){var Gt=m&p,Vt=Gt?gt:t,te=Gt?t:gt,re=Gt?lt:t,ce=Gt?t:lt;m|=Gt?A:R,m&=~(Gt?R:A),m&g||(m&=-4);var Pe=[o,m,tt,re,Vt,ce,te,It,Rt,kt],le=b.apply(t,Pe);return ml(o)&&Ih(le,Pe),le.placeholder=V,wh(le,o,m)}function cl(o){var m=er[o];return function(b,V){if(b=Xr(b),V=V==null?0:fr(ye(V),292),V&&wu(b)){var tt=(Ne(b)+"e").split("e"),lt=m(tt[0]+"e"+(+tt[1]+V));return tt=(Ne(lt)+"e").split("e"),+(tt[0]+"e"+(+tt[1]-V))}return m(b)}}var mO=mi&&1/$s(new mi([,-0]))[1]==ot?function(o){return new mi(o)}:Dl;function dh(o){return function(m){var b=cr(m);return b==I?Xa(m):b==Pt?NI(m):OI(m,o(m))}}function cn(o,m,b,V,tt,lt,gt,It){var Rt=m&d;if(!Rt&&typeof o!="function")throw new Br(c);var kt=V?V.length:0;if(kt||(m&=-97,V=tt=t),gt=gt===t?gt:rr(ye(gt),0),It=It===t?It:ye(It),kt-=tt?tt.length:0,m&R){var Gt=V,Vt=tt;V=tt=t}var te=Rt?t:dl(o),re=[o,m,b,V,tt,Gt,Vt,lt,gt,It];if(te&&bO(re,te),o=re[0],m=re[1],b=re[2],V=re[3],tt=re[4],It=re[9]=re[9]===t?Rt?0:o.length:rr(re[9]-kt,0),!It&&m&(p|P)&&(m&=-25),!m||m==w)var ce=pO(o,m,b);else m==p||m==P?ce=vO(o,m,It):(m==A||m==(w|A))&&!tt.length?ce=gO(o,m,b,V):ce=co.apply(t,re);var Pe=te?Vu:Ih;return wh(Pe(ce,re),o,m)}function ph(o,m,b,V){return o===t||Hr(o,gi[b])&&!De.call(V,b)?m:o}function vh(o,m,b,V,tt,lt){return Ke(o)&&Ke(m)&&(lt.set(m,o),oo(o,m,t,vh,lt),lt.delete(m)),o}function yO(o){return ts(o)?t:o}function gh(o,m,b,V,tt,lt){var gt=b&C,It=o.length,Rt=m.length;if(It!=Rt&&!(gt&&Rt>It))return!1;var kt=lt.get(o),Gt=lt.get(m);if(kt&&Gt)return kt==m&&Gt==o;var Vt=-1,te=!0,re=b&S?new zn:t;for(lt.set(o,m),lt.set(m,o);++Vt<It;){var ce=o[Vt],Pe=m[Vt];if(V)var le=gt?V(Pe,ce,Vt,m,o,lt):V(ce,Pe,Vt,o,m,lt);if(le!==t){if(le)continue;te=!1;break}if(re){if(!Na(m,function(Ce,Ee){if(!Xi(re,Ee)&&(ce===Ce||tt(ce,Ce,b,V,lt)))return re.push(Ee)})){te=!1;break}}else if(!(ce===Pe||tt(ce,Pe,b,V,lt))){te=!1;break}}return lt.delete(o),lt.delete(m),te}function SO(o,m,b,V,tt,lt,gt){switch(b){case Yt:if(o.byteLength!=m.byteLength||o.byteOffset!=m.byteOffset)return!1;o=o.buffer,m=m.buffer;case Lt:return!(o.byteLength!=m.byteLength||!lt(new Ks(o),new Ks(m)));case G:case H:case M:return Hr(+o,+m);case at:return o.name==m.name&&o.message==m.message;case ct:case Ct:return o==m+"";case I:var It=Xa;case Pt:var Rt=V&C;if(It||(It=$s),o.size!=m.size&&!Rt)return!1;var kt=gt.get(o);if(kt)return kt==m;V|=S,gt.set(o,m);var Gt=gh(It(o),It(m),V,tt,lt,gt);return gt.delete(o),Gt;case At:if(Gi)return Gi.call(o)==Gi.call(m)}return!1}function PO(o,m,b,V,tt,lt){var gt=b&C,It=ul(o),Rt=It.length,kt=ul(m),Gt=kt.length;if(Rt!=Gt&&!gt)return!1;for(var Vt=Rt;Vt--;){var te=It[Vt];if(!(gt?te in m:De.call(m,te)))return!1}var re=lt.get(o),ce=lt.get(m);if(re&&ce)return re==m&&ce==o;var Pe=!0;lt.set(o,m),lt.set(m,o);for(var le=gt;++Vt<Rt;){te=It[Vt];var Ce=o[te],Ee=m[te];if(V)var Lr=gt?V(Ee,Ce,te,m,o,lt):V(Ce,Ee,te,o,m,lt);if(!(Lr===t?Ce===Ee||tt(Ce,Ee,b,V,lt):Lr)){Pe=!1;break}le||(le=te=="constructor")}if(Pe&&!le){var mr=o.constructor,Rr=m.constructor;mr!=Rr&&"constructor"in o&&"constructor"in m&&!(typeof mr=="function"&&mr instanceof mr&&typeof Rr=="function"&&Rr instanceof Rr)&&(Pe=!1)}return lt.delete(o),lt.delete(m),Pe}function un(o){return Sl(Th(o,t,Rh),o+"")}function ul(o){return Wu(o,nr,vl)}function hl(o){return Wu(o,xr,mh)}var dl=to?function(o){return to.get(o)}:Dl;function vo(o){for(var m=o.name+"",b=yi[m],V=De.call(yi,m)?b.length:0;V--;){var tt=b[V],lt=tt.func;if(lt==null||lt==o)return tt.name}return m}function Ti(o){var m=De.call(st,"placeholder")?st:o;return m.placeholder}function fe(){var o=st.iteratee||Rl;return o=o===Rl?Yu:o,arguments.length?o(arguments[0],arguments[1]):o}function go(o,m){var b=o.__data__;return AO(m)?b[typeof m=="string"?"string":"hash"]:b.map}function pl(o){for(var m=nr(o),b=m.length;b--;){var V=m[b],tt=o[V];m[b]=[V,tt,Ph(tt)]}return m}function kn(o,m){var b=RI(o,m);return Uu(b)?b:t}function xO(o){var m=De.call(o,Yn),b=o[Yn];try{o[Yn]=t;var V=!0}catch{}var tt=Hs.call(o);return V&&(m?o[Yn]=b:delete o[Yn]),tt}var vl=$a?function(o){return o==null?[]:(o=Be(o),In($a(o),function(m){return Cu.call(o,m)}))}:Nl,mh=$a?function(o){for(var m=[];o;)wn(m,vl(o)),o=Zs(o);return m}:Nl,cr=vr;(ja&&cr(new ja(new ArrayBuffer(1)))!=Yt||$i&&cr(new $i)!=I||ka&&cr(ka.resolve())!=q||mi&&cr(new mi)!=Pt||ji&&cr(new ji)!=wt)&&(cr=function(o){var m=vr(o),b=m==Z?o.constructor:t,V=b?Gn(b):"";if(V)switch(V){case nw:return Yt;case iw:return I;case sw:return q;case ow:return Pt;case aw:return wt}return m});function TO(o,m,b){for(var V=-1,tt=b.length;++V<tt;){var lt=b[V],gt=lt.size;switch(lt.type){case"drop":o+=gt;break;case"dropRight":m-=gt;break;case"take":m=fr(m,o+gt);break;case"takeRight":o=rr(o,m-gt);break}}return{start:o,end:m}}function CO(o){var m=o.match(ca);return m?m[1].split(ua):[]}function yh(o,m,b){m=Ln(m,o);for(var V=-1,tt=m.length,lt=!1;++V<tt;){var gt=Gr(m[V]);if(!(lt=o!=null&&b(o,gt)))break;o=o[gt]}return lt||++V!=tt?lt:(tt=o==null?0:o.length,!!tt&&Co(tt)&&hn(gt,tt)&&(pe(o)||Hn(o)))}function IO(o){var m=o.length,b=new o.constructor(m);return m&&typeof o[0]=="string"&&De.call(o,"index")&&(b.index=o.index,b.input=o.input),b}function Sh(o){return typeof o.constructor=="function"&&!qi(o)?Si(Zs(o)):{}}function wO(o,m,b){var V=o.constructor;switch(m){case Lt:return ll(o);case G:case H:return new V(+o);case Yt:return lO(o,b);case $t:case Wt:case Qt:case ue:case ie:case ne:case ae:case se:case Fe:return eh(o,b);case I:return new V;case M:case Ct:return new V(o);case ct:return fO(o);case Pt:return new V;case At:return cO(o)}}function OO(o,m){var b=m.length;if(!b)return o;var V=b-1;return m[V]=(b>1?"& ":"")+m[V],m=m.join(b>2?", ":" "),o.replace(fa,`{
|
|
575
|
+
/* [wrapped with `+m+`] */
|
|
576
|
+
`)}function EO(o){return pe(o)||Hn(o)||!!(Iu&&o&&o[Iu])}function hn(o,m){var b=typeof o;return m=m??ut,!!m&&(b=="number"||b!="symbol"&&ya.test(o))&&o>-1&&o%1==0&&o<m}function gr(o,m,b){if(!Ke(b))return!1;var V=typeof m;return(V=="number"?Pr(b)&&hn(m,b.length):V=="string"&&m in b)?Hr(b[m],o):!1}function gl(o,m){if(pe(o))return!1;var b=typeof o;return b=="number"||b=="symbol"||b=="boolean"||o==null||Mr(o)?!0:fi.test(o)||!li.test(o)||m!=null&&o in Be(m)}function AO(o){var m=typeof o;return m=="string"||m=="number"||m=="symbol"||m=="boolean"?o!=="__proto__":o===null}function ml(o){var m=vo(o),b=st[m];if(typeof b!="function"||!(m in we.prototype))return!1;if(o===b)return!0;var V=dl(b);return!!V&&o===V[0]}function MO(o){return!!Pu&&Pu in o}var LO=ks?dn:Bl;function qi(o){var m=o&&o.constructor,b=typeof m=="function"&&m.prototype||gi;return o===b}function Ph(o){return o===o&&!Ke(o)}function xh(o,m){return function(b){return b==null?!1:b[o]===m&&(m!==t||o in Be(b))}}function RO(o){var m=xo(o,function(V){return b.size===v&&b.clear(),V}),b=m.cache;return m}function bO(o,m){var b=o[1],V=m[1],tt=b|V,lt=tt<(w|d|D),gt=V==D&&b==p||V==D&&b==U&&o[7].length<=m[8]||V==(D|U)&&m[7].length<=m[8]&&b==p;if(!(lt||gt))return o;V&w&&(o[2]=m[2],tt|=b&w?0:g);var It=m[3];if(It){var Rt=o[3];o[3]=Rt?nh(Rt,It,m[4]):It,o[4]=Rt?On(o[3],h):m[4]}return It=m[5],It&&(Rt=o[5],o[5]=Rt?ih(Rt,It,m[6]):It,o[6]=Rt?On(o[5],h):m[6]),It=m[7],It&&(o[7]=It),V&D&&(o[8]=o[8]==null?m[8]:fr(o[8],m[8])),o[9]==null&&(o[9]=m[9]),o[0]=m[0],o[1]=tt,o}function DO(o){var m=[];if(o!=null)for(var b in Be(o))m.push(b);return m}function NO(o){return Hs.call(o)}function Th(o,m,b){return m=rr(m===t?o.length-1:m,0),function(){for(var V=arguments,tt=-1,lt=rr(V.length-m,0),gt=Ft(lt);++tt<lt;)gt[tt]=V[m+tt];tt=-1;for(var It=Ft(m+1);++tt<m;)It[tt]=V[tt];return It[m]=b(gt),wr(o,this,It)}}function Ch(o,m){return m.length<2?o:jn(o,Ur(m,0,-1))}function BO(o,m){for(var b=o.length,V=fr(m.length,b),tt=Sr(o);V--;){var lt=m[V];o[V]=hn(lt,b)?tt[lt]:t}return o}function yl(o,m){if(!(m==="constructor"&&typeof o[m]=="function")&&m!="__proto__")return o[m]}var Ih=Oh(Vu),_i=JI||function(o,m){return sr.setTimeout(o,m)},Sl=Oh(iO);function wh(o,m,b){var V=m+"";return Sl(o,OO(V,WO(CO(V),b)))}function Oh(o){var m=0,b=0;return function(){var V=tw(),tt=N-(V-b);if(b=V,tt>0){if(++m>=B)return arguments[0]}else m=0;return o.apply(t,arguments)}}function mo(o,m){var b=-1,V=o.length,tt=V-1;for(m=m===t?V:m;++b<m;){var lt=el(b,tt),gt=o[lt];o[lt]=o[b],o[b]=gt}return o.length=m,o}var Eh=RO(function(o){var m=[];return o.charCodeAt(0)===46&&m.push(""),o.replace(oa,function(b,V,tt,lt){m.push(tt?lt.replace(da,"$1"):V||b)}),m});function Gr(o){if(typeof o=="string"||Mr(o))return o;var m=o+"";return m=="0"&&1/o==-ot?"-0":m}function Gn(o){if(o!=null){try{return Gs.call(o)}catch{}try{return o+""}catch{}}return""}function WO(o,m){return Or(Et,function(b){var V="_."+b[0];m&b[1]&&!Xs(o,V)&&o.push(V)}),o.sort()}function Ah(o){if(o instanceof we)return o.clone();var m=new Wr(o.__wrapped__,o.__chain__);return m.__actions__=Sr(o.__actions__),m.__index__=o.__index__,m.__values__=o.__values__,m}function FO(o,m,b){(b?gr(o,m,b):m===t)?m=1:m=rr(ye(m),0);var V=o==null?0:o.length;if(!V||m<1)return[];for(var tt=0,lt=0,gt=Ft(qs(V/m));tt<V;)gt[lt++]=Ur(o,tt,tt+=m);return gt}function UO(o){for(var m=-1,b=o==null?0:o.length,V=0,tt=[];++m<b;){var lt=o[m];lt&&(tt[V++]=lt)}return tt}function YO(){var o=arguments.length;if(!o)return[];for(var m=Ft(o-1),b=arguments[0],V=o;V--;)m[V-1]=arguments[V];return wn(pe(b)?Sr(b):[b],or(m,1))}var XO=xe(function(o,m){return _e(o)?Vi(o,or(m,1,_e,!0)):[]}),zO=xe(function(o,m){var b=Yr(m);return _e(b)&&(b=t),_e(o)?Vi(o,or(m,1,_e,!0),fe(b,2)):[]}),$O=xe(function(o,m){var b=Yr(m);return _e(b)&&(b=t),_e(o)?Vi(o,or(m,1,_e,!0),t,b):[]});function jO(o,m,b){var V=o==null?0:o.length;return V?(m=b||m===t?1:ye(m),Ur(o,m<0?0:m,V)):[]}function kO(o,m,b){var V=o==null?0:o.length;return V?(m=b||m===t?1:ye(m),m=V-m,Ur(o,0,m<0?0:m)):[]}function GO(o,m){return o&&o.length?lo(o,fe(m,3),!0,!0):[]}function HO(o,m){return o&&o.length?lo(o,fe(m,3),!0):[]}function VO(o,m,b,V){var tt=o==null?0:o.length;return tt?(b&&typeof b!="number"&&gr(o,m,b)&&(b=0,V=tt),Yw(o,m,b,V)):[]}function Mh(o,m,b){var V=o==null?0:o.length;if(!V)return-1;var tt=b==null?0:ye(b);return tt<0&&(tt=rr(V+tt,0)),zs(o,fe(m,3),tt)}function Lh(o,m,b){var V=o==null?0:o.length;if(!V)return-1;var tt=V-1;return b!==t&&(tt=ye(b),tt=b<0?rr(V+tt,0):fr(tt,V-1)),zs(o,fe(m,3),tt,!0)}function Rh(o){var m=o==null?0:o.length;return m?or(o,1):[]}function KO(o){var m=o==null?0:o.length;return m?or(o,ot):[]}function ZO(o,m){var b=o==null?0:o.length;return b?(m=m===t?1:ye(m),or(o,m)):[]}function JO(o){for(var m=-1,b=o==null?0:o.length,V={};++m<b;){var tt=o[m];_r(V,tt[0],tt[1])}return V}function bh(o){return o&&o.length?o[0]:t}function QO(o,m,b){var V=o==null?0:o.length;if(!V)return-1;var tt=b==null?0:ye(b);return tt<0&&(tt=rr(V+tt,0)),hi(o,m,tt)}function qO(o){var m=o==null?0:o.length;return m?Ur(o,0,-1):[]}var _O=xe(function(o){var m=Ve(o,ol);return m.length&&m[0]===o[0]?Ja(m):[]}),tE=xe(function(o){var m=Yr(o),b=Ve(o,ol);return m===Yr(b)?m=t:b.pop(),b.length&&b[0]===o[0]?Ja(b,fe(m,2)):[]}),eE=xe(function(o){var m=Yr(o),b=Ve(o,ol);return m=typeof m=="function"?m:t,m&&b.pop(),b.length&&b[0]===o[0]?Ja(b,t,m):[]});function rE(o,m){return o==null?"":qI.call(o,m)}function Yr(o){var m=o==null?0:o.length;return m?o[m-1]:t}function nE(o,m,b){var V=o==null?0:o.length;if(!V)return-1;var tt=V;return b!==t&&(tt=ye(b),tt=tt<0?rr(V+tt,0):fr(tt,V-1)),m===m?WI(o,m,tt):zs(o,hu,tt,!0)}function iE(o,m){return o&&o.length?ju(o,ye(m)):t}var sE=xe(Dh);function Dh(o,m){return o&&o.length&&m&&m.length?tl(o,m):o}function oE(o,m,b){return o&&o.length&&m&&m.length?tl(o,m,fe(b,2)):o}function aE(o,m,b){return o&&o.length&&m&&m.length?tl(o,m,t,b):o}var lE=un(function(o,m){var b=o==null?0:o.length,V=Ha(o,m);return Hu(o,Ve(m,function(tt){return hn(tt,b)?+tt:tt}).sort(rh)),V});function fE(o,m){var b=[];if(!(o&&o.length))return b;var V=-1,tt=[],lt=o.length;for(m=fe(m,3);++V<lt;){var gt=o[V];m(gt,V,o)&&(b.push(gt),tt.push(V))}return Hu(o,tt),b}function Pl(o){return o==null?o:rw.call(o)}function cE(o,m,b){var V=o==null?0:o.length;return V?(b&&typeof b!="number"&&gr(o,m,b)?(m=0,b=V):(m=m==null?0:ye(m),b=b===t?V:ye(b)),Ur(o,m,b)):[]}function uE(o,m){return ao(o,m)}function hE(o,m,b){return nl(o,m,fe(b,2))}function dE(o,m){var b=o==null?0:o.length;if(b){var V=ao(o,m);if(V<b&&Hr(o[V],m))return V}return-1}function pE(o,m){return ao(o,m,!0)}function vE(o,m,b){return nl(o,m,fe(b,2),!0)}function gE(o,m){var b=o==null?0:o.length;if(b){var V=ao(o,m,!0)-1;if(Hr(o[V],m))return V}return-1}function mE(o){return o&&o.length?Ku(o):[]}function yE(o,m){return o&&o.length?Ku(o,fe(m,2)):[]}function SE(o){var m=o==null?0:o.length;return m?Ur(o,1,m):[]}function PE(o,m,b){return o&&o.length?(m=b||m===t?1:ye(m),Ur(o,0,m<0?0:m)):[]}function xE(o,m,b){var V=o==null?0:o.length;return V?(m=b||m===t?1:ye(m),m=V-m,Ur(o,m<0?0:m,V)):[]}function TE(o,m){return o&&o.length?lo(o,fe(m,3),!1,!0):[]}function CE(o,m){return o&&o.length?lo(o,fe(m,3)):[]}var IE=xe(function(o){return Mn(or(o,1,_e,!0))}),wE=xe(function(o){var m=Yr(o);return _e(m)&&(m=t),Mn(or(o,1,_e,!0),fe(m,2))}),OE=xe(function(o){var m=Yr(o);return m=typeof m=="function"?m:t,Mn(or(o,1,_e,!0),t,m)});function EE(o){return o&&o.length?Mn(o):[]}function AE(o,m){return o&&o.length?Mn(o,fe(m,2)):[]}function ME(o,m){return m=typeof m=="function"?m:t,o&&o.length?Mn(o,t,m):[]}function xl(o){if(!(o&&o.length))return[];var m=0;return o=In(o,function(b){if(_e(b))return m=rr(b.length,m),!0}),Ua(m,function(b){return Ve(o,Ba(b))})}function Nh(o,m){if(!(o&&o.length))return[];var b=xl(o);return m==null?b:Ve(b,function(V){return wr(m,t,V)})}var LE=xe(function(o,m){return _e(o)?Vi(o,m):[]}),RE=xe(function(o){return sl(In(o,_e))}),bE=xe(function(o){var m=Yr(o);return _e(m)&&(m=t),sl(In(o,_e),fe(m,2))}),DE=xe(function(o){var m=Yr(o);return m=typeof m=="function"?m:t,sl(In(o,_e),t,m)}),NE=xe(xl);function BE(o,m){return qu(o||[],m||[],Hi)}function WE(o,m){return qu(o||[],m||[],Ji)}var FE=xe(function(o){var m=o.length,b=m>1?o[m-1]:t;return b=typeof b=="function"?(o.pop(),b):t,Nh(o,b)});function Bh(o){var m=st(o);return m.__chain__=!0,m}function UE(o,m){return m(o),o}function yo(o,m){return m(o)}var YE=un(function(o){var m=o.length,b=m?o[0]:0,V=this.__wrapped__,tt=function(lt){return Ha(lt,o)};return m>1||this.__actions__.length||!(V instanceof we)||!hn(b)?this.thru(tt):(V=V.slice(b,+b+(m?1:0)),V.__actions__.push({func:yo,args:[tt],thisArg:t}),new Wr(V,this.__chain__).thru(function(lt){return m&&!lt.length&<.push(t),lt}))});function XE(){return Bh(this)}function zE(){return new Wr(this.value(),this.__chain__)}function $E(){this.__values__===t&&(this.__values__=Zh(this.value()));var o=this.__index__>=this.__values__.length,m=o?t:this.__values__[this.__index__++];return{done:o,value:m}}function jE(){return this}function kE(o){for(var m,b=this;b instanceof ro;){var V=Ah(b);V.__index__=0,V.__values__=t,m?tt.__wrapped__=V:m=V;var tt=V;b=b.__wrapped__}return tt.__wrapped__=o,m}function GE(){var o=this.__wrapped__;if(o instanceof we){var m=o;return this.__actions__.length&&(m=new we(this)),m=m.reverse(),m.__actions__.push({func:yo,args:[Pl],thisArg:t}),new Wr(m,this.__chain__)}return this.thru(Pl)}function HE(){return Qu(this.__wrapped__,this.__actions__)}var VE=fo(function(o,m,b){De.call(o,b)?++o[b]:_r(o,b,1)});function KE(o,m,b){var V=pe(o)?cu:Uw;return b&&gr(o,m,b)&&(m=t),V(o,fe(m,3))}function ZE(o,m){var b=pe(o)?In:Nu;return b(o,fe(m,3))}var JE=lh(Mh),QE=lh(Lh);function qE(o,m){return or(So(o,m),1)}function _E(o,m){return or(So(o,m),ot)}function t2(o,m,b){return b=b===t?1:ye(b),or(So(o,m),b)}function Wh(o,m){var b=pe(o)?Or:An;return b(o,fe(m,3))}function Fh(o,m){var b=pe(o)?SI:Du;return b(o,fe(m,3))}var e2=fo(function(o,m,b){De.call(o,b)?o[b].push(m):_r(o,b,[m])});function r2(o,m,b,V){o=Pr(o)?o:Ii(o),b=b&&!V?ye(b):0;var tt=o.length;return b<0&&(b=rr(tt+b,0)),Io(o)?b<=tt&&o.indexOf(m,b)>-1:!!tt&&hi(o,m,b)>-1}var n2=xe(function(o,m,b){var V=-1,tt=typeof m=="function",lt=Pr(o)?Ft(o.length):[];return An(o,function(gt){lt[++V]=tt?wr(m,gt,b):Ki(gt,m,b)}),lt}),i2=fo(function(o,m,b){_r(o,b,m)});function So(o,m){var b=pe(o)?Ve:Xu;return b(o,fe(m,3))}function s2(o,m,b,V){return o==null?[]:(pe(m)||(m=m==null?[]:[m]),b=V?t:b,pe(b)||(b=b==null?[]:[b]),ku(o,m,b))}var o2=fo(function(o,m,b){o[b?0:1].push(m)},function(){return[[],[]]});function a2(o,m,b){var V=pe(o)?Da:pu,tt=arguments.length<3;return V(o,fe(m,4),b,tt,An)}function l2(o,m,b){var V=pe(o)?PI:pu,tt=arguments.length<3;return V(o,fe(m,4),b,tt,Du)}function f2(o,m){var b=pe(o)?In:Nu;return b(o,To(fe(m,3)))}function c2(o){var m=pe(o)?Mu:rO;return m(o)}function u2(o,m,b){(b?gr(o,m,b):m===t)?m=1:m=ye(m);var V=pe(o)?Dw:nO;return V(o,m)}function h2(o){var m=pe(o)?Nw:sO;return m(o)}function d2(o){if(o==null)return 0;if(Pr(o))return Io(o)?pi(o):o.length;var m=cr(o);return m==I||m==Pt?o.size:qa(o).length}function p2(o,m,b){var V=pe(o)?Na:oO;return b&&gr(o,m,b)&&(m=t),V(o,fe(m,3))}var v2=xe(function(o,m){if(o==null)return[];var b=m.length;return b>1&&gr(o,m[0],m[1])?m=[]:b>2&&gr(m[0],m[1],m[2])&&(m=[m[0]]),ku(o,or(m,1),[])}),Po=ZI||function(){return sr.Date.now()};function g2(o,m){if(typeof m!="function")throw new Br(c);return o=ye(o),function(){if(--o<1)return m.apply(this,arguments)}}function Uh(o,m,b){return m=b?t:m,m=o&&m==null?o.length:m,cn(o,D,t,t,t,t,m)}function Yh(o,m){var b;if(typeof m!="function")throw new Br(c);return o=ye(o),function(){return--o>0&&(b=m.apply(this,arguments)),o<=1&&(m=t),b}}var Tl=xe(function(o,m,b){var V=w;if(b.length){var tt=On(b,Ti(Tl));V|=A}return cn(o,V,m,b,tt)}),Xh=xe(function(o,m,b){var V=w|d;if(b.length){var tt=On(b,Ti(Xh));V|=A}return cn(m,V,o,b,tt)});function zh(o,m,b){m=b?t:m;var V=cn(o,p,t,t,t,t,t,m);return V.placeholder=zh.placeholder,V}function $h(o,m,b){m=b?t:m;var V=cn(o,P,t,t,t,t,t,m);return V.placeholder=$h.placeholder,V}function jh(o,m,b){var V,tt,lt,gt,It,Rt,kt=0,Gt=!1,Vt=!1,te=!0;if(typeof o!="function")throw new Br(c);m=Xr(m)||0,Ke(b)&&(Gt=!!b.leading,Vt="maxWait"in b,lt=Vt?rr(Xr(b.maxWait)||0,m):lt,te="trailing"in b?!!b.trailing:te);function re(tr){var Vr=V,vn=tt;return V=tt=t,kt=tr,gt=o.apply(vn,Vr),gt}function ce(tr){return kt=tr,It=_i(Ce,m),Gt?re(tr):gt}function Pe(tr){var Vr=tr-Rt,vn=tr-kt,fd=m-Vr;return Vt?fr(fd,lt-vn):fd}function le(tr){var Vr=tr-Rt,vn=tr-kt;return Rt===t||Vr>=m||Vr<0||Vt&&vn>=lt}function Ce(){var tr=Po();if(le(tr))return Ee(tr);It=_i(Ce,Pe(tr))}function Ee(tr){return It=t,te&&V?re(tr):(V=tt=t,gt)}function Lr(){It!==t&&_u(It),kt=0,V=Rt=tt=It=t}function mr(){return It===t?gt:Ee(Po())}function Rr(){var tr=Po(),Vr=le(tr);if(V=arguments,tt=this,Rt=tr,Vr){if(It===t)return ce(Rt);if(Vt)return _u(It),It=_i(Ce,m),re(Rt)}return It===t&&(It=_i(Ce,m)),gt}return Rr.cancel=Lr,Rr.flush=mr,Rr}var m2=xe(function(o,m){return bu(o,1,m)}),y2=xe(function(o,m,b){return bu(o,Xr(m)||0,b)});function S2(o){return cn(o,L)}function xo(o,m){if(typeof o!="function"||m!=null&&typeof m!="function")throw new Br(c);var b=function(){var V=arguments,tt=m?m.apply(this,V):V[0],lt=b.cache;if(lt.has(tt))return lt.get(tt);var gt=o.apply(this,V);return b.cache=lt.set(tt,gt)||lt,gt};return b.cache=new(xo.Cache||fn),b}xo.Cache=fn;function To(o){if(typeof o!="function")throw new Br(c);return function(){var m=arguments;switch(m.length){case 0:return!o.call(this);case 1:return!o.call(this,m[0]);case 2:return!o.call(this,m[0],m[1]);case 3:return!o.call(this,m[0],m[1],m[2])}return!o.apply(this,m)}}function P2(o){return Yh(2,o)}var x2=aO(function(o,m){m=m.length==1&&pe(m[0])?Ve(m[0],Er(fe())):Ve(or(m,1),Er(fe()));var b=m.length;return xe(function(V){for(var tt=-1,lt=fr(V.length,b);++tt<lt;)V[tt]=m[tt].call(this,V[tt]);return wr(o,this,V)})}),Cl=xe(function(o,m){var b=On(m,Ti(Cl));return cn(o,A,t,m,b)}),kh=xe(function(o,m){var b=On(m,Ti(kh));return cn(o,R,t,m,b)}),T2=un(function(o,m){return cn(o,U,t,t,t,m)});function C2(o,m){if(typeof o!="function")throw new Br(c);return m=m===t?m:ye(m),xe(o,m)}function I2(o,m){if(typeof o!="function")throw new Br(c);return m=m==null?0:rr(ye(m),0),xe(function(b){var V=b[m],tt=Rn(b,0,m);return V&&wn(tt,V),wr(o,this,tt)})}function w2(o,m,b){var V=!0,tt=!0;if(typeof o!="function")throw new Br(c);return Ke(b)&&(V="leading"in b?!!b.leading:V,tt="trailing"in b?!!b.trailing:tt),jh(o,m,{leading:V,maxWait:m,trailing:tt})}function O2(o){return Uh(o,1)}function E2(o,m){return Cl(al(m),o)}function A2(){if(!arguments.length)return[];var o=arguments[0];return pe(o)?o:[o]}function M2(o){return Fr(o,O)}function L2(o,m){return m=typeof m=="function"?m:t,Fr(o,O,m)}function R2(o){return Fr(o,y|O)}function b2(o,m){return m=typeof m=="function"?m:t,Fr(o,y|O,m)}function D2(o,m){return m==null||Ru(o,m,nr(m))}function Hr(o,m){return o===m||o!==o&&m!==m}var N2=po(Za),B2=po(function(o,m){return o>=m}),Hn=Fu(function(){return arguments}())?Fu:function(o){return Ze(o)&&De.call(o,"callee")&&!Cu.call(o,"callee")},pe=Ft.isArray,W2=iu?Er(iu):kw;function Pr(o){return o!=null&&Co(o.length)&&!dn(o)}function _e(o){return Ze(o)&&Pr(o)}function F2(o){return o===!0||o===!1||Ze(o)&&vr(o)==G}var bn=QI||Bl,U2=su?Er(su):Gw;function Y2(o){return Ze(o)&&o.nodeType===1&&!ts(o)}function X2(o){if(o==null)return!0;if(Pr(o)&&(pe(o)||typeof o=="string"||typeof o.splice=="function"||bn(o)||Ci(o)||Hn(o)))return!o.length;var m=cr(o);if(m==I||m==Pt)return!o.size;if(qi(o))return!qa(o).length;for(var b in o)if(De.call(o,b))return!1;return!0}function z2(o,m){return Zi(o,m)}function $2(o,m,b){b=typeof b=="function"?b:t;var V=b?b(o,m):t;return V===t?Zi(o,m,t,b):!!V}function Il(o){if(!Ze(o))return!1;var m=vr(o);return m==at||m==rt||typeof o.message=="string"&&typeof o.name=="string"&&!ts(o)}function j2(o){return typeof o=="number"&&wu(o)}function dn(o){if(!Ke(o))return!1;var m=vr(o);return m==z||m==j||m==Bt||m==nt}function Gh(o){return typeof o=="number"&&o==ye(o)}function Co(o){return typeof o=="number"&&o>-1&&o%1==0&&o<=ut}function Ke(o){var m=typeof o;return o!=null&&(m=="object"||m=="function")}function Ze(o){return o!=null&&typeof o=="object"}var Hh=ou?Er(ou):Vw;function k2(o,m){return o===m||Qa(o,m,pl(m))}function G2(o,m,b){return b=typeof b=="function"?b:t,Qa(o,m,pl(m),b)}function H2(o){return Vh(o)&&o!=+o}function V2(o){if(LO(o))throw new de(s);return Uu(o)}function K2(o){return o===null}function Z2(o){return o==null}function Vh(o){return typeof o=="number"||Ze(o)&&vr(o)==M}function ts(o){if(!Ze(o)||vr(o)!=Z)return!1;var m=Zs(o);if(m===null)return!0;var b=De.call(m,"constructor")&&m.constructor;return typeof b=="function"&&b instanceof b&&Gs.call(b)==GI}var wl=au?Er(au):Kw;function J2(o){return Gh(o)&&o>=-ut&&o<=ut}var Kh=lu?Er(lu):Zw;function Io(o){return typeof o=="string"||!pe(o)&&Ze(o)&&vr(o)==Ct}function Mr(o){return typeof o=="symbol"||Ze(o)&&vr(o)==At}var Ci=fu?Er(fu):Jw;function Q2(o){return o===t}function q2(o){return Ze(o)&&cr(o)==wt}function _2(o){return Ze(o)&&vr(o)==Ot}var tA=po(_a),eA=po(function(o,m){return o<=m});function Zh(o){if(!o)return[];if(Pr(o))return Io(o)?jr(o):Sr(o);if(zi&&o[zi])return DI(o[zi]());var m=cr(o),b=m==I?Xa:m==Pt?$s:Ii;return b(o)}function pn(o){if(!o)return o===0?o:0;if(o=Xr(o),o===ot||o===-ot){var m=o<0?-1:1;return m*K}return o===o?o:0}function ye(o){var m=pn(o),b=m%1;return m===m?b?m-b:m:0}function Jh(o){return o?$n(ye(o),0,ft):0}function Xr(o){if(typeof o=="number")return o;if(Mr(o))return Q;if(Ke(o)){var m=typeof o.valueOf=="function"?o.valueOf():o;o=Ke(m)?m+"":m}if(typeof o!="string")return o===0?o:+o;o=vu(o);var b=va.test(o);return b||ma.test(o)?gI(o.slice(2),b?2:8):Ds.test(o)?Q:+o}function Qh(o){return en(o,xr(o))}function rA(o){return o?$n(ye(o),-ut,ut):o===0?o:0}function Ne(o){return o==null?"":Ar(o)}var nA=Pi(function(o,m){if(qi(m)||Pr(m)){en(m,nr(m),o);return}for(var b in m)De.call(m,b)&&Hi(o,b,m[b])}),qh=Pi(function(o,m){en(m,xr(m),o)}),_h=Pi(function(o,m,b,V){en(m,xr(m),o,V)}),Ol=Pi(function(o,m,b,V){en(m,nr(m),o,V)}),iA=un(Ha);function sA(o,m){var b=Si(o);return m==null?b:Lu(b,m)}var oA=xe(function(o,m){o=Be(o);var b=-1,V=m.length,tt=V>2?m[2]:t;for(tt&&gr(m[0],m[1],tt)&&(V=1);++b<V;)for(var lt=m[b],gt=xr(lt),It=-1,Rt=gt.length;++It<Rt;){var kt=gt[It],Gt=o[kt];(Gt===t||Hr(Gt,gi[kt])&&!De.call(o,kt))&&(o[kt]=lt[kt])}return o}),aA=xe(function(o){return o.push(t,vh),wr(td,t,o)});function lA(o,m){return uu(o,fe(m,3),tn)}function fA(o,m){return uu(o,fe(m,3),Ka)}function cA(o,m){return o==null?o:Va(o,fe(m,3),xr)}function uA(o,m){return o==null?o:Bu(o,fe(m,3),xr)}function hA(o,m){return o&&tn(o,fe(m,3))}function dA(o,m){return o&&Ka(o,fe(m,3))}function pA(o){return o==null?[]:so(o,nr(o))}function vA(o){return o==null?[]:so(o,xr(o))}function El(o,m,b){var V=o==null?t:jn(o,m);return V===t?b:V}function gA(o,m){return o!=null&&yh(o,m,Xw)}function Al(o,m){return o!=null&&yh(o,m,zw)}var mA=ch(function(o,m,b){m!=null&&typeof m.toString!="function"&&(m=Hs.call(m)),o[m]=b},Ll(Tr)),yA=ch(function(o,m,b){m!=null&&typeof m.toString!="function"&&(m=Hs.call(m)),De.call(o,m)?o[m].push(b):o[m]=[b]},fe),SA=xe(Ki);function nr(o){return Pr(o)?Au(o):qa(o)}function xr(o){return Pr(o)?Au(o,!0):Qw(o)}function PA(o,m){var b={};return m=fe(m,3),tn(o,function(V,tt,lt){_r(b,m(V,tt,lt),V)}),b}function xA(o,m){var b={};return m=fe(m,3),tn(o,function(V,tt,lt){_r(b,tt,m(V,tt,lt))}),b}var TA=Pi(function(o,m,b){oo(o,m,b)}),td=Pi(function(o,m,b,V){oo(o,m,b,V)}),CA=un(function(o,m){var b={};if(o==null)return b;var V=!1;m=Ve(m,function(lt){return lt=Ln(lt,o),V||(V=lt.length>1),lt}),en(o,hl(o),b),V&&(b=Fr(b,y|T|O,yO));for(var tt=m.length;tt--;)il(b,m[tt]);return b});function IA(o,m){return ed(o,To(fe(m)))}var wA=un(function(o,m){return o==null?{}:_w(o,m)});function ed(o,m){if(o==null)return{};var b=Ve(hl(o),function(V){return[V]});return m=fe(m),Gu(o,b,function(V,tt){return m(V,tt[0])})}function OA(o,m,b){m=Ln(m,o);var V=-1,tt=m.length;for(tt||(tt=1,o=t);++V<tt;){var lt=o==null?t:o[Gr(m[V])];lt===t&&(V=tt,lt=b),o=dn(lt)?lt.call(o):lt}return o}function EA(o,m,b){return o==null?o:Ji(o,m,b)}function AA(o,m,b,V){return V=typeof V=="function"?V:t,o==null?o:Ji(o,m,b,V)}var rd=dh(nr),nd=dh(xr);function MA(o,m,b){var V=pe(o),tt=V||bn(o)||Ci(o);if(m=fe(m,4),b==null){var lt=o&&o.constructor;tt?b=V?new lt:[]:Ke(o)?b=dn(lt)?Si(Zs(o)):{}:b={}}return(tt?Or:tn)(o,function(gt,It,Rt){return m(b,gt,It,Rt)}),b}function LA(o,m){return o==null?!0:il(o,m)}function RA(o,m,b){return o==null?o:Ju(o,m,al(b))}function bA(o,m,b,V){return V=typeof V=="function"?V:t,o==null?o:Ju(o,m,al(b),V)}function Ii(o){return o==null?[]:Ya(o,nr(o))}function DA(o){return o==null?[]:Ya(o,xr(o))}function NA(o,m,b){return b===t&&(b=m,m=t),b!==t&&(b=Xr(b),b=b===b?b:0),m!==t&&(m=Xr(m),m=m===m?m:0),$n(Xr(o),m,b)}function BA(o,m,b){return m=pn(m),b===t?(b=m,m=0):b=pn(b),o=Xr(o),$w(o,m,b)}function WA(o,m,b){if(b&&typeof b!="boolean"&&gr(o,m,b)&&(m=b=t),b===t&&(typeof m=="boolean"?(b=m,m=t):typeof o=="boolean"&&(b=o,o=t)),o===t&&m===t?(o=0,m=1):(o=pn(o),m===t?(m=o,o=0):m=pn(m)),o>m){var V=o;o=m,m=V}if(b||o%1||m%1){var tt=Ou();return fr(o+tt*(m-o+vI("1e-"+((tt+"").length-1))),m)}return el(o,m)}var FA=xi(function(o,m,b){return m=m.toLowerCase(),o+(b?id(m):m)});function id(o){return Ml(Ne(o).toLowerCase())}function sd(o){return o=Ne(o),o&&o.replace(Sa,AI).replace(sI,"")}function UA(o,m,b){o=Ne(o),m=Ar(m);var V=o.length;b=b===t?V:$n(ye(b),0,V);var tt=b;return b-=m.length,b>=0&&o.slice(b,tt)==m}function YA(o){return o=Ne(o),o&&Oe.test(o)?o.replace(He,MI):o}function XA(o){return o=Ne(o),o&&aa.test(o)?o.replace(Wi,"\\$&"):o}var zA=xi(function(o,m,b){return o+(b?"-":"")+m.toLowerCase()}),$A=xi(function(o,m,b){return o+(b?" ":"")+m.toLowerCase()}),jA=ah("toLowerCase");function kA(o,m,b){o=Ne(o),m=ye(m);var V=m?pi(o):0;if(!m||V>=m)return o;var tt=(m-V)/2;return ho(_s(tt),b)+o+ho(qs(tt),b)}function GA(o,m,b){o=Ne(o),m=ye(m);var V=m?pi(o):0;return m&&V<m?o+ho(m-V,b):o}function HA(o,m,b){o=Ne(o),m=ye(m);var V=m?pi(o):0;return m&&V<m?ho(m-V,b)+o:o}function VA(o,m,b){return b||m==null?m=0:m&&(m=+m),ew(Ne(o).replace(Fi,""),m||0)}function KA(o,m,b){return(b?gr(o,m,b):m===t)?m=1:m=ye(m),rl(Ne(o),m)}function ZA(){var o=arguments,m=Ne(o[0]);return o.length<3?m:m.replace(o[1],o[2])}var JA=xi(function(o,m,b){return o+(b?"_":"")+m.toLowerCase()});function QA(o,m,b){return b&&typeof b!="number"&&gr(o,m,b)&&(m=b=t),b=b===t?ft:b>>>0,b?(o=Ne(o),o&&(typeof m=="string"||m!=null&&!wl(m))&&(m=Ar(m),!m&&di(o))?Rn(jr(o),0,b):o.split(m,b)):[]}var qA=xi(function(o,m,b){return o+(b?" ":"")+Ml(m)});function _A(o,m,b){return o=Ne(o),b=b==null?0:$n(ye(b),0,o.length),m=Ar(m),o.slice(b,b+m.length)==m}function tM(o,m,b){var V=st.templateSettings;b&&gr(o,m,b)&&(m=t),o=Ne(o),m=Ol({},m,V,ph);var tt=Ol({},m.imports,V.imports,ph),lt=nr(tt),gt=Ya(tt,lt);Or(lt,function(le){if(bs.test(le))throw new de(f)});var It,Rt,kt=0,Gt=m.interpolate||$r,Vt="__p += '",te=za((m.escape||$r).source+"|"+Gt.source+"|"+(Gt===qr?pa:$r).source+"|"+(m.evaluate||$r).source+"|$","g"),re="//# sourceURL="+(De.call(m,"sourceURL")?(m.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++cI+"]")+`
|
|
577
|
+
`;o.replace(te,function(le,Ce,Ee,Lr,mr,Rr){return Ee||(Ee=Lr),Vt+=o.slice(kt,Rr).replace(Pa,LI),Ce&&(It=!0,Vt+=`' +
|
|
578
|
+
__e(`+Ce+`) +
|
|
579
|
+
'`),mr&&(Rt=!0,Vt+=`';
|
|
580
|
+
`+mr+`;
|
|
581
|
+
__p += '`),Ee&&(Vt+=`' +
|
|
582
|
+
((__t = (`+Ee+`)) == null ? '' : __t) +
|
|
583
|
+
'`),kt=Rr+le.length,le}),Vt+=`';
|
|
584
|
+
`;var ce=De.call(m,"variable")&&m.variable;if(!ce)Vt=`with (obj) {
|
|
585
|
+
`+Vt+`
|
|
586
|
+
}
|
|
587
|
+
`;else if(bs.test(ce))throw new de(l);Vt=(Rt?Vt.replace(Ue,""):Vt).replace(ze,"$1").replace($e,"$1;"),Vt="function("+(ce||"obj")+`) {
|
|
588
|
+
`+(ce?"":`obj || (obj = {});
|
|
589
|
+
`)+"var __t, __p = ''"+(It?", __e = _.escape":"")+(Rt?`, __j = Array.prototype.join;
|
|
590
|
+
function print() { __p += __j.call(arguments, '') }
|
|
591
|
+
`:`;
|
|
592
|
+
`)+Vt+`return __p
|
|
593
|
+
}`;var Pe=ad(function(){return Le(lt,re+"return "+Vt).apply(t,gt)});if(Pe.source=Vt,Il(Pe))throw Pe;return Pe}function eM(o){return Ne(o).toLowerCase()}function rM(o){return Ne(o).toUpperCase()}function nM(o,m,b){if(o=Ne(o),o&&(b||m===t))return vu(o);if(!o||!(m=Ar(m)))return o;var V=jr(o),tt=jr(m),lt=gu(V,tt),gt=mu(V,tt)+1;return Rn(V,lt,gt).join("")}function iM(o,m,b){if(o=Ne(o),o&&(b||m===t))return o.slice(0,Su(o)+1);if(!o||!(m=Ar(m)))return o;var V=jr(o),tt=mu(V,jr(m))+1;return Rn(V,0,tt).join("")}function sM(o,m,b){if(o=Ne(o),o&&(b||m===t))return o.replace(Fi,"");if(!o||!(m=Ar(m)))return o;var V=jr(o),tt=gu(V,jr(m));return Rn(V,tt).join("")}function oM(o,m){var b=W,V=Y;if(Ke(m)){var tt="separator"in m?m.separator:tt;b="length"in m?ye(m.length):b,V="omission"in m?Ar(m.omission):V}o=Ne(o);var lt=o.length;if(di(o)){var gt=jr(o);lt=gt.length}if(b>=lt)return o;var It=b-pi(V);if(It<1)return V;var Rt=gt?Rn(gt,0,It).join(""):o.slice(0,It);if(tt===t)return Rt+V;if(gt&&(It+=Rt.length-It),wl(tt)){if(o.slice(It).search(tt)){var kt,Gt=Rt;for(tt.global||(tt=za(tt.source,Ne(xn.exec(tt))+"g")),tt.lastIndex=0;kt=tt.exec(Gt);)var Vt=kt.index;Rt=Rt.slice(0,Vt===t?It:Vt)}}else if(o.indexOf(Ar(tt),It)!=It){var te=Rt.lastIndexOf(tt);te>-1&&(Rt=Rt.slice(0,te))}return Rt+V}function aM(o){return o=Ne(o),o&&qe.test(o)?o.replace(Ge,FI):o}var lM=xi(function(o,m,b){return o+(b?" ":"")+m.toUpperCase()}),Ml=ah("toUpperCase");function od(o,m,b){return o=Ne(o),m=b?t:m,m===t?bI(o)?XI(o):CI(o):o.match(m)||[]}var ad=xe(function(o,m){try{return wr(o,t,m)}catch(b){return Il(b)?b:new de(b)}}),fM=un(function(o,m){return Or(m,function(b){b=Gr(b),_r(o,b,Tl(o[b],o))}),o});function cM(o){var m=o==null?0:o.length,b=fe();return o=m?Ve(o,function(V){if(typeof V[1]!="function")throw new Br(c);return[b(V[0]),V[1]]}):[],xe(function(V){for(var tt=-1;++tt<m;){var lt=o[tt];if(wr(lt[0],this,V))return wr(lt[1],this,V)}})}function uM(o){return Fw(Fr(o,y))}function Ll(o){return function(){return o}}function hM(o,m){return o==null||o!==o?m:o}var dM=fh(),pM=fh(!0);function Tr(o){return o}function Rl(o){return Yu(typeof o=="function"?o:Fr(o,y))}function vM(o){return zu(Fr(o,y))}function gM(o,m){return $u(o,Fr(m,y))}var mM=xe(function(o,m){return function(b){return Ki(b,o,m)}}),yM=xe(function(o,m){return function(b){return Ki(o,b,m)}});function bl(o,m,b){var V=nr(m),tt=so(m,V);b==null&&!(Ke(m)&&(tt.length||!V.length))&&(b=m,m=o,o=this,tt=so(m,nr(m)));var lt=!(Ke(b)&&"chain"in b)||!!b.chain,gt=dn(o);return Or(tt,function(It){var Rt=m[It];o[It]=Rt,gt&&(o.prototype[It]=function(){var kt=this.__chain__;if(lt||kt){var Gt=o(this.__wrapped__),Vt=Gt.__actions__=Sr(this.__actions__);return Vt.push({func:Rt,args:arguments,thisArg:o}),Gt.__chain__=kt,Gt}return Rt.apply(o,wn([this.value()],arguments))})}),o}function SM(){return sr._===this&&(sr._=HI),this}function Dl(){}function PM(o){return o=ye(o),xe(function(m){return ju(m,o)})}var xM=fl(Ve),TM=fl(cu),CM=fl(Na);function ld(o){return gl(o)?Ba(Gr(o)):tO(o)}function IM(o){return function(m){return o==null?t:jn(o,m)}}var wM=uh(),OM=uh(!0);function Nl(){return[]}function Bl(){return!1}function EM(){return{}}function AM(){return""}function MM(){return!0}function LM(o,m){if(o=ye(o),o<1||o>ut)return[];var b=ft,V=fr(o,ft);m=fe(m),o-=ft;for(var tt=Ua(V,m);++b<o;)m(b);return tt}function RM(o){return pe(o)?Ve(o,Gr):Mr(o)?[o]:Sr(Eh(Ne(o)))}function bM(o){var m=++kI;return Ne(o)+m}var DM=uo(function(o,m){return o+m},0),NM=cl("ceil"),BM=uo(function(o,m){return o/m},1),WM=cl("floor");function FM(o){return o&&o.length?io(o,Tr,Za):t}function UM(o,m){return o&&o.length?io(o,fe(m,2),Za):t}function YM(o){return du(o,Tr)}function XM(o,m){return du(o,fe(m,2))}function zM(o){return o&&o.length?io(o,Tr,_a):t}function $M(o,m){return o&&o.length?io(o,fe(m,2),_a):t}var jM=uo(function(o,m){return o*m},1),kM=cl("round"),GM=uo(function(o,m){return o-m},0);function HM(o){return o&&o.length?Fa(o,Tr):0}function VM(o,m){return o&&o.length?Fa(o,fe(m,2)):0}return st.after=g2,st.ary=Uh,st.assign=nA,st.assignIn=qh,st.assignInWith=_h,st.assignWith=Ol,st.at=iA,st.before=Yh,st.bind=Tl,st.bindAll=fM,st.bindKey=Xh,st.castArray=A2,st.chain=Bh,st.chunk=FO,st.compact=UO,st.concat=YO,st.cond=cM,st.conforms=uM,st.constant=Ll,st.countBy=VE,st.create=sA,st.curry=zh,st.curryRight=$h,st.debounce=jh,st.defaults=oA,st.defaultsDeep=aA,st.defer=m2,st.delay=y2,st.difference=XO,st.differenceBy=zO,st.differenceWith=$O,st.drop=jO,st.dropRight=kO,st.dropRightWhile=GO,st.dropWhile=HO,st.fill=VO,st.filter=ZE,st.flatMap=qE,st.flatMapDeep=_E,st.flatMapDepth=t2,st.flatten=Rh,st.flattenDeep=KO,st.flattenDepth=ZO,st.flip=S2,st.flow=dM,st.flowRight=pM,st.fromPairs=JO,st.functions=pA,st.functionsIn=vA,st.groupBy=e2,st.initial=qO,st.intersection=_O,st.intersectionBy=tE,st.intersectionWith=eE,st.invert=mA,st.invertBy=yA,st.invokeMap=n2,st.iteratee=Rl,st.keyBy=i2,st.keys=nr,st.keysIn=xr,st.map=So,st.mapKeys=PA,st.mapValues=xA,st.matches=vM,st.matchesProperty=gM,st.memoize=xo,st.merge=TA,st.mergeWith=td,st.method=mM,st.methodOf=yM,st.mixin=bl,st.negate=To,st.nthArg=PM,st.omit=CA,st.omitBy=IA,st.once=P2,st.orderBy=s2,st.over=xM,st.overArgs=x2,st.overEvery=TM,st.overSome=CM,st.partial=Cl,st.partialRight=kh,st.partition=o2,st.pick=wA,st.pickBy=ed,st.property=ld,st.propertyOf=IM,st.pull=sE,st.pullAll=Dh,st.pullAllBy=oE,st.pullAllWith=aE,st.pullAt=lE,st.range=wM,st.rangeRight=OM,st.rearg=T2,st.reject=f2,st.remove=fE,st.rest=C2,st.reverse=Pl,st.sampleSize=u2,st.set=EA,st.setWith=AA,st.shuffle=h2,st.slice=cE,st.sortBy=v2,st.sortedUniq=mE,st.sortedUniqBy=yE,st.split=QA,st.spread=I2,st.tail=SE,st.take=PE,st.takeRight=xE,st.takeRightWhile=TE,st.takeWhile=CE,st.tap=UE,st.throttle=w2,st.thru=yo,st.toArray=Zh,st.toPairs=rd,st.toPairsIn=nd,st.toPath=RM,st.toPlainObject=Qh,st.transform=MA,st.unary=O2,st.union=IE,st.unionBy=wE,st.unionWith=OE,st.uniq=EE,st.uniqBy=AE,st.uniqWith=ME,st.unset=LA,st.unzip=xl,st.unzipWith=Nh,st.update=RA,st.updateWith=bA,st.values=Ii,st.valuesIn=DA,st.without=LE,st.words=od,st.wrap=E2,st.xor=RE,st.xorBy=bE,st.xorWith=DE,st.zip=NE,st.zipObject=BE,st.zipObjectDeep=WE,st.zipWith=FE,st.entries=rd,st.entriesIn=nd,st.extend=qh,st.extendWith=_h,bl(st,st),st.add=DM,st.attempt=ad,st.camelCase=FA,st.capitalize=id,st.ceil=NM,st.clamp=NA,st.clone=M2,st.cloneDeep=R2,st.cloneDeepWith=b2,st.cloneWith=L2,st.conformsTo=D2,st.deburr=sd,st.defaultTo=hM,st.divide=BM,st.endsWith=UA,st.eq=Hr,st.escape=YA,st.escapeRegExp=XA,st.every=KE,st.find=JE,st.findIndex=Mh,st.findKey=lA,st.findLast=QE,st.findLastIndex=Lh,st.findLastKey=fA,st.floor=WM,st.forEach=Wh,st.forEachRight=Fh,st.forIn=cA,st.forInRight=uA,st.forOwn=hA,st.forOwnRight=dA,st.get=El,st.gt=N2,st.gte=B2,st.has=gA,st.hasIn=Al,st.head=bh,st.identity=Tr,st.includes=r2,st.indexOf=QO,st.inRange=BA,st.invoke=SA,st.isArguments=Hn,st.isArray=pe,st.isArrayBuffer=W2,st.isArrayLike=Pr,st.isArrayLikeObject=_e,st.isBoolean=F2,st.isBuffer=bn,st.isDate=U2,st.isElement=Y2,st.isEmpty=X2,st.isEqual=z2,st.isEqualWith=$2,st.isError=Il,st.isFinite=j2,st.isFunction=dn,st.isInteger=Gh,st.isLength=Co,st.isMap=Hh,st.isMatch=k2,st.isMatchWith=G2,st.isNaN=H2,st.isNative=V2,st.isNil=Z2,st.isNull=K2,st.isNumber=Vh,st.isObject=Ke,st.isObjectLike=Ze,st.isPlainObject=ts,st.isRegExp=wl,st.isSafeInteger=J2,st.isSet=Kh,st.isString=Io,st.isSymbol=Mr,st.isTypedArray=Ci,st.isUndefined=Q2,st.isWeakMap=q2,st.isWeakSet=_2,st.join=rE,st.kebabCase=zA,st.last=Yr,st.lastIndexOf=nE,st.lowerCase=$A,st.lowerFirst=jA,st.lt=tA,st.lte=eA,st.max=FM,st.maxBy=UM,st.mean=YM,st.meanBy=XM,st.min=zM,st.minBy=$M,st.stubArray=Nl,st.stubFalse=Bl,st.stubObject=EM,st.stubString=AM,st.stubTrue=MM,st.multiply=jM,st.nth=iE,st.noConflict=SM,st.noop=Dl,st.now=Po,st.pad=kA,st.padEnd=GA,st.padStart=HA,st.parseInt=VA,st.random=WA,st.reduce=a2,st.reduceRight=l2,st.repeat=KA,st.replace=ZA,st.result=OA,st.round=kM,st.runInContext=Mt,st.sample=c2,st.size=d2,st.snakeCase=JA,st.some=p2,st.sortedIndex=uE,st.sortedIndexBy=hE,st.sortedIndexOf=dE,st.sortedLastIndex=pE,st.sortedLastIndexBy=vE,st.sortedLastIndexOf=gE,st.startCase=qA,st.startsWith=_A,st.subtract=GM,st.sum=HM,st.sumBy=VM,st.template=tM,st.times=LM,st.toFinite=pn,st.toInteger=ye,st.toLength=Jh,st.toLower=eM,st.toNumber=Xr,st.toSafeInteger=rA,st.toString=Ne,st.toUpper=rM,st.trim=nM,st.trimEnd=iM,st.trimStart=sM,st.truncate=oM,st.unescape=aM,st.uniqueId=bM,st.upperCase=lM,st.upperFirst=Ml,st.each=Wh,st.eachRight=Fh,st.first=bh,bl(st,function(){var o={};return tn(st,function(m,b){De.call(st.prototype,b)||(o[b]=m)}),o}(),{chain:!1}),st.VERSION=r,Or(["bind","bindKey","curry","curryRight","partial","partialRight"],function(o){st[o].placeholder=st}),Or(["drop","take"],function(o,m){we.prototype[o]=function(b){b=b===t?1:rr(ye(b),0);var V=this.__filtered__&&!m?new we(this):this.clone();return V.__filtered__?V.__takeCount__=fr(b,V.__takeCount__):V.__views__.push({size:fr(b,ft),type:o+(V.__dir__<0?"Right":"")}),V},we.prototype[o+"Right"]=function(b){return this.reverse()[o](b).reverse()}}),Or(["filter","map","takeWhile"],function(o,m){var b=m+1,V=b==$||b==et;we.prototype[o]=function(tt){var lt=this.clone();return lt.__iteratees__.push({iteratee:fe(tt,3),type:b}),lt.__filtered__=lt.__filtered__||V,lt}}),Or(["head","last"],function(o,m){var b="take"+(m?"Right":"");we.prototype[o]=function(){return this[b](1).value()[0]}}),Or(["initial","tail"],function(o,m){var b="drop"+(m?"":"Right");we.prototype[o]=function(){return this.__filtered__?new we(this):this[b](1)}}),we.prototype.compact=function(){return this.filter(Tr)},we.prototype.find=function(o){return this.filter(o).head()},we.prototype.findLast=function(o){return this.reverse().find(o)},we.prototype.invokeMap=xe(function(o,m){return typeof o=="function"?new we(this):this.map(function(b){return Ki(b,o,m)})}),we.prototype.reject=function(o){return this.filter(To(fe(o)))},we.prototype.slice=function(o,m){o=ye(o);var b=this;return b.__filtered__&&(o>0||m<0)?new we(b):(o<0?b=b.takeRight(-o):o&&(b=b.drop(o)),m!==t&&(m=ye(m),b=m<0?b.dropRight(-m):b.take(m-o)),b)},we.prototype.takeRightWhile=function(o){return this.reverse().takeWhile(o).reverse()},we.prototype.toArray=function(){return this.take(ft)},tn(we.prototype,function(o,m){var b=/^(?:filter|find|map|reject)|While$/.test(m),V=/^(?:head|last)$/.test(m),tt=st[V?"take"+(m=="last"?"Right":""):m],lt=V||/^find/.test(m);tt&&(st.prototype[m]=function(){var gt=this.__wrapped__,It=V?[1]:arguments,Rt=gt instanceof we,kt=It[0],Gt=Rt||pe(gt),Vt=function(Ce){var Ee=tt.apply(st,wn([Ce],It));return V&&te?Ee[0]:Ee};Gt&&b&&typeof kt=="function"&&kt.length!=1&&(Rt=Gt=!1);var te=this.__chain__,re=!!this.__actions__.length,ce=lt&&!te,Pe=Rt&&!re;if(!lt&&Gt){gt=Pe?gt:new we(this);var le=o.apply(gt,It);return le.__actions__.push({func:yo,args:[Vt],thisArg:t}),new Wr(le,te)}return ce&&Pe?o.apply(this,It):(le=this.thru(Vt),ce?V?le.value()[0]:le.value():le)})}),Or(["pop","push","shift","sort","splice","unshift"],function(o){var m=js[o],b=/^(?:push|sort|unshift)$/.test(o)?"tap":"thru",V=/^(?:pop|shift)$/.test(o);st.prototype[o]=function(){var tt=arguments;if(V&&!this.__chain__){var lt=this.value();return m.apply(pe(lt)?lt:[],tt)}return this[b](function(gt){return m.apply(pe(gt)?gt:[],tt)})}}),tn(we.prototype,function(o,m){var b=st[m];if(b){var V=b.name+"";De.call(yi,V)||(yi[V]=[]),yi[V].push({name:m,func:b})}}),yi[co(t,d).name]=[{name:"wrapper",func:t}],we.prototype.clone=lw,we.prototype.reverse=fw,we.prototype.value=cw,st.prototype.at=YE,st.prototype.chain=XE,st.prototype.commit=zE,st.prototype.next=$E,st.prototype.plant=kE,st.prototype.reverse=GE,st.prototype.toJSON=st.prototype.valueOf=st.prototype.value=HE,st.prototype.first=st.prototype.head,zi&&(st.prototype[zi]=jE),st},vi=zI();Un?((Un.exports=vi)._=vi,La._=vi):sr._=vi}).call(sn)}(Cs,Cs.exports),Cs.exports;const Is=5,Pn=class Pn extends Xt{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.proportional);dt(this,"toolsType",xt.Text);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");this.workOptions=t.toolsOpt}consume(){return{type:vt.None}}consumeAll(){return{type:vt.None}}consumeService(){}async draw(t){const{workId:r,layer:n,isDrawLabel:s,boxRect:c}=t,{boxSize:l,boxPoint:f,zIndex:u}=this.workOptions,v=n.worldPosition,h=n.worldScaling;if(!f||!l)return;const y={name:r,id:r,pos:[f[0]-Is,f[1]-Is],anchor:[0,0],size:l,zIndex:u},T=new Je(y),O={x:f[0]-Is,y:f[1]-Is,w:l[0],h:l[1]},C={x:Math.floor(O.x*h[0]+v[0]),y:Math.floor(O.y*h[1]+v[1]),w:Math.floor(O.w*h[0])+2,h:Math.floor(O.h*h[1])+2};this.replace(n,r,T);let S;if(c&&(S=Bi(C,c)),(s||c&&S!==yr.outside)&&n&&this.workOptions.text){const w=await Pn.createLabels(this.workOptions,n,C),{labels:d,maxWidth:g}=w;T.append(...d),C.w=Math.ceil(Math.max(g*n.worldScaling[0],C.w))}return C}async consumeServiceAsync(t){var v,h,y,T;const r=(v=this.workId)==null?void 0:v.toString();if(!r)return;const{isFullWork:n,replaceId:s,isDrawLabel:c,boxRect:l}=t;this.oldRect=s&&((y=(h=this.vNodes)==null?void 0:h.get(s))==null?void 0:y.rect)||void 0;const f=n?this.fullLayer:this.drawLayer||this.fullLayer,u=await this.draw({workId:r,layer:f,isDrawLabel:typeof c>"u"&&this.workOptions.workState===qt.Done||c,boxRect:l});return(T=this.vNodes)==null||T.setInfo(r,{rect:u,op:[],opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:u&&Xt.getCenterPos(u,f)}),u}updataOptService(){}async updataOptServiceAsync(t,r,n){var C,S;if(!this.workId)return;const s=this.workId.toString(),{fontColor:c,fontBgColor:l,bold:f,italic:u,lineThrough:v,underline:h,zIndex:y}=t,T=(C=this.vNodes)==null?void 0:C.get(s);if(!T)return;c&&(T.opt.fontColor=c),l&&(T.opt.fontBgColor=l),f&&(T.opt.bold=f),u&&(T.opt.italic=u),Bn(v)&&(T.opt.lineThrough=v),Bn(h)&&(T.opt.underline=h),Qe(y)&&(T.opt.zIndex=y),this.oldRect=T.rect;const O=await this.draw({workId:s,layer:this.fullLayer,isDrawLabel:typeof r>"u"&&this.workOptions.workState===qt.Done||r,boxRect:n});return(S=this.vNodes)==null||S.setInfo(s,{rect:O,op:[],opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:O&&Xt.getCenterPos(O,this.fullLayer)}),O}clearTmpPoints(){this.tmpPoints.length=0}static getSafetySnippetRatio(t){const r=(t==null?void 0:t.parent).displayRatio||1,n=Math.ceil(t.worldScaling[0]*10)/10;let s=n;return n<=2?s=n*r*2:n>2&&n<=3?s=n*r*1.6:n>3&&n<=4?s=n*r*1.2:n>4&&(s=n*r),Math.floor(s*1e3)/1e3}static getSafetySnippetFontLength(t){return Math.floor(Pn.textImageSnippetSize*3/4/t)||1}static async createLabels(t,r,n){var W;const s=[],{x:c,y:l}=n,{width:f,height:u}=(W=r.parent)==null?void 0:W.parent,v=ti(t.text),h=v.length,{fontSize:y,lineHeight:T,bold:O,textAlign:C,italic:S,fontFamily:w,verticalAlign:d,fontColor:g,fontBgColor:p,underline:P,lineThrough:A}=t,R=Pn.getSafetySnippetRatio(r)||1,D=Math.floor(y*R),U=Pn.getSafetySnippetFontLength(D);let L=0;for(let Y=0;Y<h;Y++){const B=v[Y],N=T||D*1.5;if(B){const $=vT(B),J=[0,0],et=[0,y*1.2];d==="middle"&&(J[1]=Math.floor(Y*y*1.2+6+y*(1.1-1)));const ot=[0,Math.floor(-y*.15)];J[0]=6;const ut=Math.sin(Math.PI/180*20);let K=0;const Q=[];let ft=0;for(;ft<$;){C==="left"&&(ot[0]=K),ft===0&&S==="italic"&&(ot[0]=ot[0]-ut/2*y);const yt=B.slice(ft,ft+U),Et={anchor:[0,0],pos:ot,text:yt,fontFamily:w,fontSize:D,lineHeight:N,strokeColor:g,fontWeight:O,fillColor:g,textAlign:C,fontStyle:S,scale:[1/R,1/R]},ht=new cd(Et),Nt=await ht.textImageReady;let Bt=!0;if(Nt){const G=Nt.rect&&Nt.rect[2],H=Nt.rect&&Nt.rect[3];if(G&&H){const rt=G/R,at=H/R;K=rt+K,S==="italic"&&(O==="bold"?K=K-ut*y*1.2:K=K-ut*y),((ot[0]+J[0]+rt)*r.worldScaling[0]+c<=0||(ot[0]+J[0])*r.worldScaling[0]+c>=f||(ot[1]+J[1]+at)*r.worldScaling[1]+l<=0||(ot[1]+J[1])*r.worldScaling[1]+l>=u)&&(ht.disconnect(),Bt=!1),Bt&&Q.push(ht)}}ft+=U}et[0]=K,S==="italic"&&(et[0]=et[0]+ut*y),L=Math.max(L,et[0]);let mt=!0;if(((J[0]+et[0])*r.worldScaling[0]+c<=0||J[0]*r.worldScaling[0]+c>=f||(J[1]+et[1])*r.worldScaling[0]+l<=0||J[1]*r.worldScaling[1]+l>=u)&&(mt=!1),mt){if(P){const ht=Math.floor(y/10),Nt={normalize:!1,pos:[0,y*1.1+ht/2],lineWidth:ht,points:[0,0,Math.ceil(et[0]),0],strokeColor:g,className:"underline"},Bt=new nn(Nt);Q.push(Bt)}if(A){const ht={normalize:!1,pos:[0,y*1.2/2],lineWidth:Math.floor(y/10),points:[0,0,Math.ceil(et[0]),0],strokeColor:g,className:"lineThrough"},Nt=new nn(ht);Q.push(Nt)}const yt={pos:J,anchor:[0,0],size:et,bgcolor:p},Et=new Je(yt);Et.append(...Q),s.push(Et)}}}return{labels:s,maxWidth:L}}static updateNodeOpt(t){const{node:r,opt:n,vNodes:s,targetNode:c}=t,{fontBgColor:l,fontColor:f,translate:u,originPoint:v,scenePoint:h,scale:y,bold:T,italic:O,lineThrough:C,underline:S,fontSize:w,textInfos:d,zIndex:g}=n,p=c&&ar(c)||s.get(r.name);if(!p||!r.parent)return;const A=p.opt;if(Qe(g)&&(r.setAttribute("zIndex",g),p.opt.zIndex=g),f&&A.fontColor&&(A.fontColor=f,r.children.forEach(R=>{R.tagName==="GROUP"&&R.children.forEach(D=>{D.tagName==="LABEL"?(D.setAttribute("fillColor",f),D.setAttribute("strokeColor",f)):D.tagName==="POLYLINE"&&D.setAttribute("strokeColor",f)})})),l&&A.fontBgColor&&(A.fontBgColor=l,r.children.forEach(R=>{R.tagName==="GROUP"&&R.setAttribute("bgcolor",l)})),T&&(A.bold=T),O&&(A.italic=O),Bn(C)&&(A.lineThrough=C),Bn(S)&&(A.underline=S),w&&(A.fontSize=w),v&&h&&y&&c&&A.boxPoint){const R=d==null?void 0:d.get(r.name);if(R){const{fontSize:W,boxSize:Y}=R;A.boxSize=Y||A.boxSize,A.fontSize=W||A.fontSize}const D=[A.boxPoint[0],A.boxPoint[1]];As(A.boxPoint,h,y,u);const U=[p.op[0],p.op[1]],L=[U[0]-D[0],U[1]-D[1]];if(p.centerPos=[p.centerPos[0]+L[0],p.centerPos[1]+L[1]],p.opt.eraserlines)for(const W of p.opt.eraserlines){const{op:Y,thickness:B}=W;W.thickness=Math.round(B*Math.max(y[0],y[1]));for(let N=0;N<Y.length;N++)na(Y[N],h,y,u)}}else if(u&&A.boxPoint&&(A.boxPoint=[Math.round(A.boxPoint[0]+u[0]),Math.round(A.boxPoint[1]+u[1])],p.centerPos=[p.centerPos[0]+u[0],p.centerPos[1]+u[1]],p.opt.eraserlines))for(const R of p.opt.eraserlines){const{op:D}=R;for(let U=0;U<D.length;U++){const L=D[U].map((W,Y)=>Y%2?W+u[1]:W+u[0]);R.op[U]=L}}return p&&s.setInfo(r.name,p),p==null?void 0:p.rect}static getRectFromLayer(t,r){const n=t.getElementsByName(r)[0];if(n){const s=n.getBoundingClientRect();let c={x:Math.floor(s.x),y:Math.floor(s.y),w:Math.floor(s.width+2),h:Math.floor(s.height+2)};return n.children.forEach(l=>{if(l.tagName==="GROUP"){const f=n.getBoundingClientRect();c=Zt(c,{x:Math.floor(f.x),y:Math.floor(f.y),w:Math.floor(f.width+2),h:Math.floor(f.height+2)})}}),c}}};dt(Pn,"textImageSnippetSize",1024*4),dt(Pn,"SafeBorderPadding",30);let bi=Pn;const oi=class oi extends Xt{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.none);dt(this,"toolsType",xt.PencilEraser);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"worldPosition");dt(this,"worldScaling");dt(this,"eraserRect");dt(this,"eraserPolyline");this.workOptions=t.toolsOpt,this.worldPosition=this.fullLayer.worldPosition,this.worldScaling=this.fullLayer.worldScaling}combineConsume(t){const{workerEngine:r}=t;if(this.tmpPoints.length<2)return{type:vt.None};const{thickness:n}=this.workOptions,{width:s,height:c}=oi.eraserSizes[n],l=Math.round(Math.max(s,c)/this.worldScaling[0]),{rect:f,willNewNodes:u,willDeleteNodes:v}=this.getChangeNodes(l,r);return{...this.baseConsumeResult,type:vt.DrawWork,rect:f,willNewNodes:u,willDeleteNodes:v}}consumeService(){}updateTempPoints(t,r){let n=this.tmpPoints.length-1;const s=Date.now();for(let c=0;c<t.length;c+=2){const l=this.tmpPoints.length,f=new Jt(t[c],t[c+1]);if(l===0){this.tmpPoints.push(f);continue}const u=l-1,v=this.tmpPoints[u],h=pt.Sub(f,v).uni();f.isNear(v,r/2)||(pt.Equals(h,v.v,.02)&&(this.tmpPoints.pop(),n--),f.setv(h),f.setT(s),this.tmpPoints.push(f))}return Math.max(n,0)}getChangeNodes(t,r){const n=new Map,s=new Set;let c;if(!this.vNodes)return{willDeleteNodes:s,willNewNodes:n,rect:c};const l=this.worldPosition;let f=Re(this.tmpPoints,t);f=Ni(f,l),f=Wc(f,this.worldScaling,l);const{nodeRange:u}=this.vNodes.getRectIntersectRange(f);if(!u.size)return{willDeleteNodes:s,willNewNodes:n,rect:c};const v=this.computEraserPointLines(this.tmpPoints,90);for(const[h,y]of u.entries()){if(y.toolsType!==xt.Pencil)continue;let T=Ni(y.rect,[-l[0],-l[1]]);T={x:T.x/this.worldScaling[0],y:T.y/this.worldScaling[1],w:T.w/this.worldScaling[0],h:T.h/this.worldScaling[1]};const O=[T.x,T.y,T.x+T.w,T.y+T.h],C=[],S=[];for(const w of v)Ho.polyline(w,O,C);if(C.length&&y.opt)for(const w of C){const d=[];for(let g=0;g<w.length;g++)g!==0&&Qr(w[g],w[g-1])||d.push(...w[g]);S.push(d)}if(S.length&&r){const w=r.createWorkShapeNode({workId:h,toolsType:xt.Pencil,toolsOpt:y.opt});w.setWorkId(h);const d=w==null?void 0:w.computPencilPoints({op:y.op,eraserPolylines:S,eraserThickness:t});if(c=Zt(c,y.rect),s.add(h),r.removeNode(h),d.length)for(let g=0;g<d.length;g++){const p=`${h}_${Date.now()}_${g}`,P=p,R=r.setFullWork({workId:P,opt:y.opt,toolsType:xt.Pencil}).consumeService({op:d[g],isFullWork:!0,replaceId:P});r.clearWorkShapeNodeCache(P),c=Zt(c,R),n.set(p,{...y,toolsType:xt.Pencil,rect:R??y.rect,name:p,op:d[g]})}}}return{willNewNodes:n,willDeleteNodes:s,rect:c}}consume(t){const{data:r}=t,{op:n}=r;if(!n||n.length===0)return{type:vt.None,...this.baseConsumeResult};const{thickness:s}=this.workOptions,{width:c,height:l}=oi.eraserSizes[s],f=Math.max(c,l)/this.worldScaling[0];return this.updateTempPoints(n,f),{type:vt.None,...this.baseConsumeResult}}computEraserPointLines(t,r=60){const n=[];let s=0;const c=360-r;for(let l=1;l<t.length;l++){const f=t[l-1],u=t[l];if(l===1&&s===0&&(n[s]=[f.XY]),n[s].push(u.XY),l<t.length-1){const v=u.getAngleByPoints(f,t[l+1]);(v<r||v>c)&&(s++,n[s]=[u.XY])}}return t.length===1&&n.length===0&&n.push([t[0].XY,t[0].XY]),n}consumeAll(t){const{workerEngine:r}=t;if(this.replace(this.fullLayer,this.workId),!this.tmpPoints.length)return{type:vt.None,...this.baseConsumeResult};const{thickness:n}=this.workOptions,{width:s,height:c}=oi.eraserSizes[n],l=Math.max(s,c)/this.worldScaling[0],{willDeleteNodes:f,willNewNodes:u,rect:v}=this.getChangeNodes(l,r);if(f.size===0&&u.size===0)return{type:vt.FullWork,...this.baseConsumeResult,rect:v};const h=[];this.tmpPoints.map(T=>{h.push(T.x,T.y,l/2)});const y=hr(h);return{...this.baseConsumeResult,type:vt.FullWork,dataType:Kt.Local,rect:v,ops:y,willNewNodes:u,willDeleteNodes:f}}clearTmpPoints(){this.tmpPoints.length=0}};dt(oi,"eraserSizes",ko);let ws=oi;const ai=class ai extends Xt{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.none);dt(this,"toolsType",xt.BitMapEraser);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"worldPosition");dt(this,"worldScaling");dt(this,"eraserRect");dt(this,"eraserPolyline");dt(this,"oldRect");this.workOptions=t.toolsOpt,this.worldPosition=this.fullLayer.worldPosition,this.worldScaling=this.fullLayer.worldScaling}combineConsume(t){const{workerEngine:r}=t;if(this.tmpPoints.length<2)return{type:vt.None};const{thickness:n}=this.workOptions,{width:s,height:c}=ai.eraserSizes[n],l=Math.round(Math.max(s,c)/this.worldScaling[0]),{willDeleteNodes:f,rect:u}=this.getChangeNodes(l,r);return{...this.baseConsumeResult,type:vt.DrawWork,rect:u,willDeleteNodes:f}}consumeService(){}updateTempPoints(t,r){let n=this.tmpPoints.length-1;const s=Date.now();for(let c=0;c<t.length;c+=2){const l=this.tmpPoints.length,f=new Jt(t[c],t[c+1]);if(l===0){this.tmpPoints.push(f);continue}const u=l-1,v=this.tmpPoints[u],h=pt.Sub(f,v).uni();f.isNear(v,r/2)||(pt.Equals(h,v.v,.02)&&(this.tmpPoints.pop(),n--),f.setv(h),f.setT(s),this.tmpPoints.push(f))}return Math.max(n,0)}getChangeNodes(t,r){const n=new Map,s=new Set;let c;if(!this.vNodes)return{willDeleteNodes:s,willUpdateNodes:n,rect:c};const l=this.worldPosition;let f=Re(this.tmpPoints,t);f=Ni(f,l),f=Wc(f,this.worldScaling,l);const{nodeRange:u}=this.vNodes.getRectIntersectRange(f);if(!u.size)return{willDeleteNodes:s,willUpdateNodes:n,rect:c};const v=this.computEraserPointLines(this.tmpPoints,120);for(const[h,y]of u.entries()){if(y.toolsType===xt.Text||y.toolsType===xt.Image)continue;let T=Ni(y.rect,[-l[0],-l[1]]);T={x:T.x/this.worldScaling[0],y:T.y/this.worldScaling[1],w:T.w/this.worldScaling[0],h:T.h/this.worldScaling[1]};const O=[T.x,T.y,T.x+T.w,T.y+T.h],C=[],S=[];for(const g of v)Ho.polyline(g,O,C);if(C.length&&y.opt)for(const g of C){const p=[];for(let P=0;P<g.length&&!(isNaN(g[P][0])||isNaN(g[P][1]));P++){const A=g[P].map(R=>Math.round(R*100)/100);if(P!==0){const R=g[P-1].map(D=>Math.round(D*100)/100);if(Qr(A,R))continue}p.push(...A)}p.length!==0&&S.push(p)}if(!S.length)continue;const w=y.opt.eraserlines?y.opt.eraserlines:[],d=w.find(g=>g.workId===this.workId);if(d?d.op=S:w.push({workId:this.workId,op:S,thickness:t}),y.opt.eraserlines=w,r){const{toolsType:g}=y,p=r.createWorkShapeNode({workId:h,toolsType:g,toolsOpt:y.opt});p==null||p.setWorkId(h);const P=p==null?void 0:p.consumeService({op:y.op,isFullWork:!0,replaceId:h});if(c=Zt(c,P),p!=null&&p.isDelete){r.removeNode(h),s.add(h);continue}}n.set(h,y)}return{willUpdateNodes:n,willDeleteNodes:s,rect:c}}consume(t){const{data:r}=t,{op:n}=r;if(!n||n.length===0)return{type:vt.None,...this.baseConsumeResult};const{thickness:s}=this.workOptions,{width:c,height:l}=ai.eraserSizes[s],f=Math.round(Math.max(c,l)/this.worldScaling[0]);return this.updateTempPoints(n,f),{type:vt.None,...this.baseConsumeResult}}computEraserPointLines(t,r=60){const n=[];let s=0;const c=360-r;for(let l=1;l<t.length;l++){const f=t[l-1],u=t[l];if(l===1&&s===0&&(n[s]=[f.XY]),n[s].push(u.XY),l<t.length-1){const v=u.getAngleByPoints(f,t[l+1]);(v<r||v>c)&&(s++,n[s]=[u.XY])}}return t.length===1&&n.length===0&&n.push([t[0].XY,t[0].XY]),n}consumeAll(t){const{workerEngine:r}=t;if(this.replace(this.fullLayer,this.workId),!this.tmpPoints.length)return{type:vt.None,...this.baseConsumeResult};const{thickness:n}=this.workOptions,{width:s,height:c}=ai.eraserSizes[n],l=Math.round(Math.max(s,c)/this.worldScaling[0]),{willDeleteNodes:f,willUpdateNodes:u,rect:v}=this.getChangeNodes(l,r);if(f.size===0&&u.size===0)return{type:vt.FullWork,...this.baseConsumeResult,rect:v};const h=[];this.tmpPoints.map(T=>{h.push(T.x,T.y,l/2)});const y=hr(h);return{...this.baseConsumeResult,type:vt.FullWork,dataType:Kt.Local,rect:v,ops:y,willUpdateNodes:u,willDeleteNodes:f}}clearTmpPoints(){this.tmpPoints.length=0}};dt(ai,"eraserSizes",ko);let Os=ai;class Di extends Xt{constructor(t){super(t);dt(this,"canRotate",!1);dt(this,"scaleType",Te.all);dt(this,"toolsType",xt.BackgroundSVG);dt(this,"tmpPoints",[]);dt(this,"workOptions");dt(this,"oldRect");this.workOptions=t.toolsOpt,this.scaleType=Di.getScaleType(this.workOptions)}consume(){return{type:vt.None}}consumeAll(){return{type:vt.None}}draw(t){const{layer:r,workId:n,replaceId:s}=t,{centerX:c,centerY:l,width:f,height:u,rotate:v,zIndex:h}=this.workOptions,y=(h||0)-100,T=new Je({anchor:[.5,.5],pos:[c,l],name:n,size:[f,u],zIndex:y,rotate:v}),O=new Oo({normalize:!0,pos:[0,0],width:f,height:u});T.appendChild(O),this.replace(r,s||n,T);const C=T.getBoundingClientRect();if(C)return{x:Math.floor(C.x-Xt.SafeBorderPadding),y:Math.floor(C.y-Xt.SafeBorderPadding),w:Math.floor(C.width+Xt.SafeBorderPadding*2),h:Math.floor(C.height+Xt.SafeBorderPadding*2)}}consumeService(t){var c;const{replaceId:r}=t,n=this.workId,s=this.draw({workId:n,layer:this.fullLayer,replaceId:r});return(c=this.vNodes)==null||c.setInfo(n,{rect:s,op:[],opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:s&&Xt.getCenterPos(s,this.fullLayer)}),s}clearTmpPoints(){this.tmpPoints.length=0}static getScaleType(t){const{uniformScale:r,rotate:n}=t;return r!==!1||n&&Math.abs(n)%90>0?Te.proportional:Te.all}static updateNodeOpt(t){const{node:r,opt:n,vNodes:s,targetNode:c}=t,{translate:l,originPoint:f,scenePoint:u,scale:v,angle:h,isLocked:y,zIndexForBackgroundSVG:T}=n,O=c&&ar(c)||s.get(r.name);if(!O)return;const C=r.parent;if(C){if(Qe(T)){const S=(T||0)-100;r.setAttribute("zIndex",S),O.opt.zIndex=T}if(Bn(y)&&(O.opt.locked=y),f&&u&&v&&l){const{centerX:S,centerY:w,width:d,height:g,uniformScale:p}=O.opt,P=p!==!1?[v[0],v[0]]:v,A=[S,w],R=[S,w];As(R,u,P,l);const D=[R[0]-A[0],R[1]-A[1]];O.centerPos=[O.centerPos[0]+D[0],O.centerPos[1]+D[1]],O.opt.width=Math.round(d*P[0]),O.opt.height=Math.round(g*P[1]),O.opt.centerX=R[0],O.opt.centerY=R[1]}else if(l)O.opt.centerX=O.opt.centerX+l[0],O.opt.centerY=O.opt.centerY+l[1],O.centerPos=[O.centerPos[0]+l[0],O.centerPos[1]+l[1]];else if(Qe(h))if(O.opt.rotate=h,O.scaleType=Di.getScaleType(O.opt),c){const S=ra(O.rect,h);O.rect=S}else{const S=Xt.getRectFromLayer(C,r.name);O.rect=S||O.rect}return O&&s.setInfo(r.name,O),O==null?void 0:O.rect}}}function Nc(i){switch(i){case xt.Arrow:return ac;case xt.Pencil:return Gf;case xt.Straight:return dc;case xt.Ellipse:return lc;case xt.Polygon:case xt.Triangle:return uc;case xt.Star:case xt.Rhombus:return cc;case xt.Rectangle:return fc;case xt.SpeechBalloon:return hc;case xt.Text:return bi;case xt.LaserPen:return Hf;case xt.Eraser:return ps;case xt.PencilEraser:return ws;case xt.BitMapEraser:return Os;case xt.Selector:return Mi;case xt.Image:return Li;case xt.BackgroundSVG:return Di}}function Es(i,e){const{toolsType:t,...r}=i;switch(t){case xt.Arrow:return new ac(r);case xt.Pencil:return new Gf(r);case xt.Straight:return new dc(r);case xt.Ellipse:return new lc(r);case xt.Polygon:case xt.Triangle:return new uc(r);case xt.Star:case xt.Rhombus:return new cc(r);case xt.Rectangle:return new fc(r);case xt.SpeechBalloon:return new hc(r);case xt.Text:return new bi(r);case xt.LaserPen:return new Hf(r);case xt.Eraser:return new ps(r,e);case xt.BitMapEraser:return new Os(r);case xt.PencilEraser:return new ws(r);case xt.Selector:return r.vNodes?new Mi({...r,vNodes:r.vNodes,drawLayer:r.fullLayer}):void 0;case xt.Image:return new Li(r);case xt.BackgroundSVG:return new Di({...r,toolsOpt:r.toolsOpt});default:return}}function Bc(i){const e=[],t=["PATH","SPRITE","POLYLINE","RECT","ELLIPSE","LABEL","SPRITESVG"];for(const r of i){if(r.tagName==="GROUP"&&r.children.length){const n=Bc(r.children);e.push(...n)}r.tagName&&t.includes(r.tagName)&&e.push(r)}return e}function Zt(i,e){if(i&&e){const t=Math.min(i.x,e.x),r=Math.min(i.y,e.y),n=Math.max(i.x+i.w,e.x+e.w),s=Math.max(i.y+i.h,e.y+e.h),c=n-t,l=s-r;return{x:t,y:r,w:c,h:l}}return e||i}function Re(i,e=0){const t={x:0,y:0,w:0,h:0};let r=1/0,n=1/0,s=-1/0,c=-1/0;return i.forEach(l=>{const[f,u]=l.XY;r=Math.min(r,f-e),n=Math.min(n,u-e),s=Math.max(s,f+e),c=Math.max(c,u+e)}),t.x=r,t.y=n,t.w=s-r,t.h=c-n,t}function ea(i,e){return!(i.x+i.w<e.x||i.x>e.x+e.w||i.y+i.h<e.y||i.y>e.y+e.h)}function ve(i,e=10){return{x:Math.floor(i.x-e),y:Math.floor(i.y-e),w:Math.ceil(i.w+e*2),h:Math.ceil(i.h+e*2)}}function Ni(i,e){return{x:i.x+e[0],y:i.y+e[1],w:i.w,h:i.h}}function sT(i,e){const t=new pt(i.x,i.y),r=new pt(i.x+i.w,i.y),n=new pt(i.x+i.w,i.y+i.h),s=new pt(i.x,i.y+i.h),c=new pt(i.x+i.w/2,i.y+i.h/2),l=Math.PI*e/180,f=pt.RotWith(t,c,l),u=pt.RotWith(r,c,l),v=pt.RotWith(n,c,l),h=pt.RotWith(s,c,l);return[f,u,v,h]}function ra(i,e){const t=sT(i,e);return Re(t)}function Wc(i,e,t){const r=new pt(i.x,i.y),n=new pt(i.x+i.w,i.y),s=new pt(i.x+i.w,i.y+i.h),c=new pt(i.x,i.y+i.h),l=new pt(t[0],t[1]),f=new pt(e[0],e[1]),u=pt.ScaleWOrigin(r,f,l),v=pt.ScaleWOrigin(n,f,l),h=pt.ScaleWOrigin(s,f,l),y=pt.ScaleWOrigin(c,f,l);return Re([u,v,h,y])}function oT(i,e,t){const r=new pt(e[0],e[1]);for(let n=0;n<i.length;n+=3){const s=new pt(i[n],i[n+1]),c=Math.PI*t/180,l=pt.RotWith(s,r,c);i[n]=l.x,i[n+1]=l.y}}function aT(i,e,t){const r=new pt(e[0],e[1]);for(let n=0;n<i.length;n+=2){const s=new pt(i[n],i[n+1]),c=Math.PI*t/180,l=pt.RotWith(s,r,c);i[n]=l.x,i[n+1]=l.y}}function As(i,e,t,r=[0,0]){const n=new pt(e[0],e[1]);for(let s=0;s<i.length;s+=3){const c=new pt(i[s],i[s+1]),l=new pt(t[0],t[1]),f=pt.ScaleWOrigin(c,l,n);i[s]=f.x+r[0],i[s+1]=f.y+r[1]}}function na(i,e,t,r=[0,0]){const n=new pt(e[0],e[1]);for(let s=0;s<i.length;s+=2){const c=new pt(i[s],i[s+1]),l=new pt(t[0],t[1]),f=pt.ScaleWOrigin(c,l,n);i[s]=f.x+r[0],i[s+1]=f.y+r[1]}}function lT(i,e){return i[0]>=e.x&&i[0]<=e.x+e.w&&i[1]>=e.y&&i[1]<=e.y+e.h}function Fc(i,e){const t=i<=e?1:i/e,r=e<=i?1:e/i;return[t,r]}function fT(i){for(const e of i)if(isNaN(e)||e===1/0||e===-1/0)return!1;return!0}function cT(i){return i!==Math.floor(i)}function uT(i){const e=i.toString();return e.indexOf(".")!==-1?e.split(".")[1].length:0}function hT(i,e){for(;e!==0;)[i,e]=[e,i%e];return i}const dT=i=>{if(i.tagName==="GROUP"){const e=Object.getOwnPropertySymbols(i).find(t=>t.toString()==="Symbol(sealed)");if(e&&i[e])return!0}return!1},dr=(i,e)=>{if(i.mesh&&i.mesh.texture&&i.name==="eraserTexture"){const t=i.mesh.texture.image;e.deleteTexture(t)}else if(i.tagName==="GROUP"&&i&&i.children)for(const t of i.children)dr(t,e)},Cr=(i,e)=>{dr(i,e),i.removeAllChildren()},pT=(i,e,t)=>{const r=t.parent;if(e){const n=e.children;if(n){for(const s of n)if(dr(s,r),s.tagName==="GROUP")for(const c of s.children)dr(c,r)}}e.parent.replaceChild(i,e)},Uc=(i,e,t)=>{if(i.w+i.x<=0||i.h+i.y<=0||i.w<=0||i.h<=0)return;const r=e.width,n=e.height,s={x:Math.floor(Math.max(0,i.x)),y:Math.floor(Math.max(0,i.y)),w:Math.floor(Math.min(r,i.w)),h:Math.floor(Math.min(n,i.h))};if(s.x+s.w>r&&(s.w=Math.floor(r-s.x)),s.y+s.h>n&&(s.h=Math.floor(n-s.y)),cT(t)){const c=uT(t),l=Math.pow(10,c),f=hT(l,t*l),u=s.x%f,v=s.x-u;v>=0?(s.x=v,s.w=s.w+u):(s.x=0,s.w=s.w+u-v);const h=s.y%f,y=s.y-h;y>=0?(s.y=y,s.h=s.h+h):(s.y=0,s.h=s.h+h-y)}return s};function ni(i){return`${Ms(i.x)},${Ms(i.y)} `}function ii(i,e){return`${Ms((i.x+e.x)/2)},${Ms((i.y+e.y)/2)} `}function Ms(i){return+i.toFixed(4)}const Bi=(i,e)=>i.x+i.w<e.x||i.x>e.x+e.w||i.y+i.h<e.y||i.y>e.y+e.h?yr.outside:i.x>=e.x&&i.y>=e.y&&i.x+i.w<=e.x+e.w&&i.y+i.h<=e.y+e.h?yr.inside:yr.intersect;function vT(i){let e=0;for(let t=0;t<i.length;t++){const r=i.charCodeAt(t);r>=1&&r<=126||65376<=r&&r<=65439?e++:e+=2}return e}class Yc{constructor(e){dt(this,"_map");dt(this,"_observers",new Set);this._map=new Map(e)}notifyObservers(e,t,r){for(const n of this._observers)n(e,t,r)}observe(e){this._observers.add(e)}unobserve(e){this._observers.delete(e)}get(e){return this._map.get(e)}set(e,t,r=!0){const n=this._map.has(e)?"update":"add";return this._map.set(e,t),r&&this.notifyObservers(n,e,t),this}has(e){return this._map.has(e)}delete(e,t=!0){const r=this._map.get(e),n=this._map.delete(e);return t&&r&&this.notifyObservers("delete",e,r),n}clear(e=!0){const t=this._map.keys();if(this._map.clear(),e)for(const r of t)this.notifyObservers("clear",r,void 0)}get size(){return this._map.size}keys(){return this._map.keys()}values(){return this._map.values()}entries(){return this._map.entries()}forEach(e,t){this._map.forEach(e,t)}}class gT{constructor(e,t){dt(this,"viewId");dt(this,"scene");dt(this,"fullLayer");dt(this,"curNodeMap");dt(this,"targetNodeMap",[]);dt(this,"highLevelIds");dt(this,"canClearUids");dt(this,"localUid");this.viewId=e,this.scene=t,this.curNodeMap=new Yc}init(e){this.fullLayer=e}get(e){return this.curNodeMap.get(e)}setLocalUid(e){this.localUid=e}getLocalUid(){return this.localUid}setCanClearUids(e){this.canClearUids=e}getCanClearUids(){return this.canClearUids}getCanEraserNodes(e,t){const r=new Map;for(const[n,s]of e.entries())s.toolsType!==xt.BackgroundSVG&&(s.toolsType===xt.Image&&s.opt.type===es.Image&&(s.opt.locked||t&&t.disableEraseImage)||s.toolsType===xt.Text&&(s.opt.workState===qt.Doing||s.opt.workState===qt.Start||t&&t.disableEraseText)||this.isCanClearWorkId(n)&&r.set(n,s));return r}getNodesByType(e){const t=new Map;return this.curNodeMap.forEach((r,n)=>{r.toolsType===e&&t.set(n,r)}),t}gethasEraserNodes(){const e=new Map;return this.curNodeMap.forEach((t,r)=>{var n;(n=t.opt.eraserlines)!=null&&n.length&&e.set(r,t)}),e}hasRenderNodes(){return!0}has(e){return this.curNodeMap.has(e)}setInfo(e,t){const r=this.curNodeMap.get(e)||{name:e,rect:t.rect};t.rect&&(r.rect=ar(t.rect)),t.op&&fT(t.op)&&(r.op=ar(t.op)),t.canRotate&&(r.canRotate=t.canRotate),t.scaleType&&(r.scaleType=t.scaleType),t.opt&&(r.opt=ar(t.opt)),t.toolsType&&(r.toolsType=t.toolsType),t.centerPos&&(r.centerPos=ar(t.centerPos)),Bn(t.isSelected)&&(r.isSelected=t.isSelected),r.rect?this.curNodeMap.set(e,r):this.curNodeMap.delete(e)}selected(e){this.setInfo(e,{isSelected:!0})}unSelected(e){this.setInfo(e,{isSelected:!1})}delete(e){this.curNodeMap.delete(e)}clear(){this.curNodeMap.clear(),this.targetNodeMap.length=0}getRectIntersectRange(e,t=!0,r=!0){let n;const s=new Map;for(const[c,l]of this.curNodeMap.entries())if(ea(e,l.rect)){if(t&&l.toolsType===xt.Image&&l.opt.locked||r&&l.toolsType===xt.Text&&(l.opt.workState===qt.Doing||l.opt.workState===qt.Start))continue;n=Zt(n,l.rect),s.set(c,l)}return{rectRange:n,nodeRange:s}}getNodeRectFormShape(e,t){const r=Nc(t.toolsType);return this.fullLayer&&(r==null?void 0:r.getRectFromLayer(this.fullLayer,e))}updateNodeRect(e){const t=this.curNodeMap.get(e);if(t){const r=this.getNodeRectFormShape(e,t);if(!r){this.curNodeMap.delete(e);return}t.rect=r,this.curNodeMap.set(e,t)}}updateHighLevelNodesRect(e){this.highLevelIds=e;for(const t of this.highLevelIds.keys())this.updateNodeRect(t)}updateLowLevelNodesRect(){var e;for(const t of this.curNodeMap.keys())(e=this.highLevelIds)!=null&&e.has(t)||this.updateNodeRect(t)}clearHighLevelIds(){this.highLevelIds=void 0}setTargetAssignKeys(e){const t=new Yc;for(const r of e){const n=this.curNodeMap.get(r);n&&t.set(r,ar(n))}return this.targetNodeMap.push(ar(t)),this.targetNodeMap.length-1}setTarget(){const e=this.curNodeMap.keys();return this.setTargetAssignKeys(Array.from(e))}getLastTarget(){return this.targetNodeMap[this.targetNodeMap.length-1]}deleteLastTarget(){this.targetNodeMap.length&&(this.targetNodeMap.length=this.targetNodeMap.length-1)}getTarget(e){return this.targetNodeMap[e]}deleteTarget(e){this.targetNodeMap.length=e}clearTarget(){this.targetNodeMap.length=0}isLocalWorkId(e){return e.split(Vn).length===1}isCanClearWorkId(e){if(this.canClearUids===void 0||this.canClearUids===!0)return!0;if(Z1(this.canClearUids)){const t=e.split(Vn);if(t.length===1)return this.canClearUids.has("localSelf")||this.localUid&&this.canClearUids.has(this.localUid);if(t.length===2)return this.canClearUids.has(t[0])}return!1}}class Xc{constructor(e,t,r){dt(this,"viewId");dt(this,"type");dt(this,"scene");dt(this,"fullLayer");dt(this,"vNodes");dt(this,"dpr");dt(this,"contextType");dt(this,"opt");dt(this,"cameraOpt");dt(this,"isSafari",!1);dt(this,"combinePostMsg",new Set);dt(this,"workerTaskId");dt(this,"protectedTask");dt(this,"delayPostDoneResolve");dt(this,"cacheImages",new Map);dt(this,"imageResolveMap",new Map);dt(this,"taskUpdateCameraId");dt(this,"debounceUpdateCameraId");var n,s;if(this.viewId=e,this.type=r,this.opt=t,this.dpr=t.dpr,this.contextType=this.getSupportContextType(r,(n=t==null?void 0:t.offscreenCanvasOpt)==null?void 0:n.contextType),!this.contextType)throw new Error("Sorry, your browser doesn't support canvas context type 2d or webgl");try{this.scene=this.createScene(t),this.createRenderLayer(this.scene,t)}catch(c){if(this.contextType!=="2d")this.contextType="2d",(s=this.scene)==null||s.disconnect(),this.scene=this.createScene(t),this.createRenderLayer(this.scene,t);else throw c}this.vNodes=new gT(e,this.scene)}createRenderLayer(e,t){const r=ur.bufferSize.full,n=ur.bufferSize.sub;this.fullLayer=this.createLayer("fullLayer",e,{...t.layerOpt,bufferSize:this.viewId===Wn?r:n*2})}async updateDpr(e){this.dpr=e,this.scene.displayRatio=e}getCachedImages(e){var t;return(t=this.cacheImages.get(e))==null?void 0:t.imageBitmap}getCachedImagesByWorkId(e){for(const[t,r]of this.cacheImages.entries())if(t===e&&r.imageBitmap)return r.imageBitmap}deleteCachedImagesByWorkId(e,t){for(const[r,n]of this.cacheImages.entries())t&&r===t||n.workId===e&&(n.imageBitmap.close(),this.cacheImages.delete(r))}clearCacheImages(){this.cacheImages.forEach(e=>e.imageBitmap.close()),this.cacheImages.clear()}clearImageResolveMap(){this.imageResolveMap.forEach(({timer:e})=>{e&&clearTimeout(e)}),this.imageResolveMap.clear()}setIsSafari(e){this.isSafari=e}async on(e){const{msgType:t,toolsType:r,opt:n,imageSrc:s,imageBitmap:c,workId:l,dpr:f}=e;switch(t){case vt.UpdateDpr:{Qe(f)&&await this.updateDpr(f);break}case vt.UpdateCamera:{await this.updateCamera(e);break}case vt.Destroy:{this.destroy();break}case vt.Clear:{await this.clearAll();break}case vt.UpdateTools:{if(r&&n){const u={toolsType:r,toolsOpt:n,combineUnitTime:e.combineUnitTime,maxCombineEraserTime:e.maxCombineEraserTime};this.localWork.setToolsOpt(u)}break}case vt.GetImageBitMap:{if(s&&c&&l){const u=l.toString();this.cacheImages.set(s,{imageBitmap:c,workId:u});const v=this.imageResolveMap.get(s);if(v){const{resolve:h,timer:y}=v;y&&clearTimeout(y),h&&h(s)}this.deleteCachedImagesByWorkId(u,s)}break}}}getIconSize(e,t,r){const n=e*r,s=t*r;return n<=50||s<=50?[50,50]:n<=100||s<=100?[100,100]:n<=200||s<=200?[200,200]:n<=400||s<=400?[400,400]:n<=800||s<=800?[800,800]:[1600,1600]}async loadImageBitMap(e){const{toolsType:t,opt:r,workId:n,isSubWorker:s}=e;if(t===xt.Image&&r&&n){const c=n.toString(),{src:l,type:f,width:u,height:v,strokeColor:h}=r;if(!l||!f||!u||!v)return;let y=l;if(f===es.Iconify){const[S,w]=this.getIconSize(u,v,this.dpr);y=`${l}?width=${S}&height=${w}&color=${h}`}if(this.cacheImages.has(y)){const S=this.getCachedImages(y);if(S)return S}if(this.imageResolveMap.has(y)){const S=this.getCachedImagesByWorkId(c);if(S)return S}const C=await new Promise(S=>{const w=this.imageResolveMap.get(y)||{resolve:void 0,timer:void 0};w.timer&&clearTimeout(w.timer),w.resolve=S,w.timer=setTimeout(()=>{const d=this.imageResolveMap.get(y);d!=null&&d.resolve&&d.resolve(y)},5e3),this.imageResolveMap.set(y,w),this._post({sp:[{imageSrc:y,workId:c,viewId:this.viewId,isgl:!!this.fullLayer.parent.gl,isSubWorker:s,type:vt.GetImageBitMap}]})});return this.imageResolveMap.delete(C),this.getCachedImages(y)}}createLocalWork(e){const{workId:t,opt:r,toolsType:n}=e;t&&r&&(!this.localWork.getToolsOpt()&&n&&this.setToolsOpt({toolsType:n,toolsOpt:r}),this.setWorkOpt({workId:t,toolsOpt:r}))}updateScene(e,t,r){e.attr({...t});const{width:n,height:s}=t;e.container.width=n,e.container.height=s,e.width=n,e.height=s,this.updateLayer({width:n,height:s},r)}updateLayer(e,t){const{width:r,height:n}=e,s=t||this.fullLayer;s&&(s.parent.setAttribute("width",r),s.parent.setAttribute("height",n),s.setAttribute("size",[r,n]),s.setAttribute("pos",[r*.5,n*.5]))}getSupportContextType(e,t){const r=new OffscreenCanvas(100,100);let n=["2d"];e===Ls.Full&&this.viewId===Wn&&(n=["webgl2","webgl","2d"],t&&n.unshift(t));for(const s of n)try{if(r.getContext(s))return s}catch(c){throw c}}createScene(e){const{offscreenCanvasOpt:t}=e,{width:r,height:n}=t,s=new OffscreenCanvas(r,n);t.contextType&&delete t.contextType;const c=new Wl({container:s,displayRatio:this.dpr,depth:!1,desynchronized:!0,failIfMajorPerformanceCaveat:!0,...t,contextType:this.contextType,id:this.viewId});return c.setAttribute("id",this.viewId),c}createLayer(e,t,r,n){const s=`offscreen-${e}`,{width:c,height:l}=r;n&&(r.offscreen=!0,r.canvas=n);const f=t.layer(s,r),u=new Je({anchor:[.5,.5],pos:[c*.5,l*.5],size:[c,l],name:"viewport",id:e});return f.append(u),u}async clearAll(){var e;this.fullLayer&&(this.fullLayer.parent.children.forEach(t=>{t.name!=="viewport"&&t.remove()}),Cr(this.fullLayer,this.fullLayer.parent)),this.taskUpdateCameraId&&(clearTimeout(this.taskUpdateCameraId),this.taskUpdateCameraId=void 0),this.debounceUpdateCameraId&&(clearTimeout(this.debounceUpdateCameraId),this.debounceUpdateCameraId=void 0),this.clearCacheImages(),this.clearImageResolveMap(),this.localWork.destroy(),(e=this.serviceWork)==null||e.destroy()}setToolsOpt(e){this.localWork.setToolsOpt(e)}setWorkOpt(e){const{workId:t,toolsOpt:r}=e;t&&r&&this.localWork.setWorkOptions(t.toString(),r)}destroy(){var e;this.vNodes.clear(),this.fullLayer.remove(),dr(this.fullLayer,this.fullLayer.parent),this.clearCacheImages(),this.clearImageResolveMap(),this.scene.remove(),this.localWork.destroy(),(e=this.serviceWork)==null||e.destroy()}async post(e){this.combinePostMsg.add(e),await this.runBatchPostData()}async runBatchPostData(){this.workerTaskId||(this.workerTaskId=setTimeout(()=>{this.workerTaskId=void 0,this.combinePost()},16)),this.type===Ls.Full&&!this.delayPostDoneResolve&&await new Promise(t=>{this.delayPostDoneResolve=t})&&(this.delayPostDoneResolve=void 0)}combinePostData(){var l,f;this.workerTaskId=void 0;const e=[],t=[];let r,n,s;const c=new Set;for(const u of this.combinePostMsg.values()){if((l=u.render)!=null&&l.length)for(const v of u.render){let h=!1;if(v.workId&&c.add(v.workId),v.isClearAll&&(v.rect=this.getSceneRect(),v.isClear=!0,delete v.isClearAll),v.drawCanvas){const y=this.getLayer(v.drawCanvas);if(!y||!(y.parent instanceof wo))continue;if(y.parent.render(),v.isDrawAll){const T=this.getSceneRect();v.rect=T,delete v.isDrawAll}}for(const y of e)if(v.viewId===y.viewId){v.isClear&&y.clearCanvas&&y.isClear&&y.clearCanvas===v.clearCanvas&&(y.rect=Zt(y.rect,v.rect),h=!0),y.drawCanvas&&y.drawCanvas===v.drawCanvas&&(y.rect=Zt(y.rect,v.rect),h=!0);continue}h||(v.isClear&&!v.drawCanvas?e.unshift(v):e.push(v))}if((f=u.sp)!=null&&f.length)for(const v of u.sp){let h=!1;for(const y of t)if(Qr(v,y)){h=!0;break}h||t.push(v)}Qe(u.fullWorkerDrawCount)&&(r=u.fullWorkerDrawCount),Qe(u.subWorkerDrawCount)&&(n=u.subWorkerDrawCount),Qe(u.consumeCount)&&(s=u.consumeCount)}return this.combinePostMsg.clear(),{render:e,sp:t,fullWorkerDrawCount:r,subWorkerDrawCount:n,consumeCount:s,workIds:c,viewId:this.viewId}}getSceneRect(){const{width:e,height:t}=this.scene;return{x:0,y:0,w:Math.floor(e),h:Math.floor(t)}}}class ia{constructor(e){dt(this,"viewId");dt(this,"vNodes");dt(this,"thread");dt(this,"fullLayer");dt(this,"drawLayer");dt(this,"_post");dt(this,"tmpOpt");dt(this,"workShapes",new Map);dt(this,"drawCount",0);dt(this,"consumeCount",0);dt(this,"syncUnitTime",ur.syncOpt.interval);dt(this,"combineUnitTime",ur.bezier.combineUnitTime);dt(this,"maxCombineEraserTime",ur.pencilEraser.maxCombineTime);this.thread=e.thread,this.viewId=e.viewId,this.vNodes=e.vNodes,this.fullLayer=e.fullLayer,this.drawLayer=e.drawLayer,this._post=this.thread.post.bind(e.thread)}setmaxCombineEraserTime(e){this.maxCombineEraserTime=e}setCombineUnitTime(e){this.combineUnitTime=e}setSyncUnitTime(e){this.syncUnitTime=e}destroy(){this.workShapes.clear()}getWorkShapes(){return this.workShapes}getWorkShape(e){return this.workShapes.get(e)}createWorkShape(e,t){if(e&&this.tmpOpt){const r={toolsType:this.tmpOpt.toolsType,toolsOpt:t||this.tmpOpt.toolsOpt},n=this.createWorkShapeNode({...r,workId:e});n&&this.workShapes.set(e,n)}}setWorkOptions(e,t){const r=this.getWorkShape(e);r||this.createWorkShape(e,t),r==null||r.setWorkOptions(t)}createWorkShapeNode(e){var t;return Es({...e,vNodes:this.vNodes,fullLayer:this.fullLayer,drawLayer:this.drawLayer},(t=this.thread)==null?void 0:t.serviceWork)}setToolsOpt(e){var t,r,n;((t=this.tmpOpt)==null?void 0:t.toolsType)!==e.toolsType&&(r=this.tmpOpt)!=null&&r.toolsType&&this.clearAllWorkShapesCache(),this.tmpOpt=e,(n=e.toolsOpt)!=null&&n.syncUnitTime&&(this.syncUnitTime=e.toolsOpt.syncUnitTime),e.combineUnitTime&&(this.combineUnitTime=e.combineUnitTime),e.maxCombineEraserTime&&(this.maxCombineEraserTime=e.maxCombineEraserTime)}getToolsOpt(){return this.tmpOpt}clearWorkShapeNodeCache(e){var t;(t=this.getWorkShape(e))==null||t.clearTmpPoints(),this.workShapes.delete(e)}clearAllWorkShapesCache(){this.workShapes.forEach(e=>e.clearTmpPoints()),this.workShapes.clear()}setFullWork(e){const{workId:t,opt:r,toolsType:n}=e;if(t&&r&&n){const s=t.toString();let c;return t&&this.workShapes.has(s)?(c=this.workShapes.get(s),(c==null?void 0:c.toolsType)!==n?(c==null||c.clearTmpPoints(),this.workShapes.delete(s),c=void 0):c==null||c.setWorkOptions(r)):c=this.createWorkShapeNode({toolsOpt:r,toolsType:n,workId:s}),c||(c=this.createWorkShapeNode({toolsOpt:r,toolsType:n,workId:s})),c?(this.workShapes.set(s,c),c):void 0}}}function mT(i){return i}var zc=mT;function yT(i,e,t){switch(t.length){case 0:return i.call(e);case 1:return i.call(e,t[0]);case 2:return i.call(e,t[0],t[1]);case 3:return i.call(e,t[0],t[1],t[2])}return i.apply(e,t)}var ST=yT,PT=ST,$c=Math.max;function xT(i,e,t){return e=$c(e===void 0?i.length-1:e,0),function(){for(var r=arguments,n=-1,s=$c(r.length-e,0),c=Array(s);++n<s;)c[n]=r[e+n];n=-1;for(var l=Array(e+1);++n<e;)l[n]=r[n];return l[e]=t(c),PT(i,this,l)}}var TT=xT;function CT(i){return function(){return i}}var IT=CT,wT=IT,jc=Ql,OT=zc,ET=jc?function(i,e){return jc(i,"toString",{configurable:!0,enumerable:!1,value:wT(e),writable:!0})}:OT,AT=ET,MT=800,LT=16,RT=Date.now;function bT(i){var e=0,t=0;return function(){var r=RT(),n=LT-(r-t);if(t=r,n>0){if(++e>=MT)return arguments[0]}else e=0;return i.apply(void 0,arguments)}}var DT=bT,NT=AT,BT=DT,WT=BT(NT),FT=WT,UT=zc,YT=TT,XT=FT;function zT(i,e){return XT(YT(i,e,UT),i+"")}var $T=zT;function jT(i,e,t,r){for(var n=i.length,s=t+(r?1:-1);r?s--:++s<n;)if(e(i[s],s,i))return s;return-1}var kT=jT;function GT(i){return i!==i}var HT=GT;function VT(i,e,t){for(var r=t-1,n=i.length;++r<n;)if(i[r]===e)return r;return-1}var KT=VT,ZT=kT,JT=HT,QT=KT;function qT(i,e,t){return e===e?QT(i,e,t):ZT(i,JT,t)}var _T=qT,tC=_T;function eC(i,e){var t=i==null?0:i.length;return!!t&&tC(i,e,0)>-1}var kc=eC;function rC(i,e,t){for(var r=-1,n=i==null?0:i.length;++r<n;)if(t(e,i[r]))return!0;return!1}var Gc=rC;function nC(i,e){for(var t=-1,r=i==null?0:i.length,n=Array(r);++t<r;)n[t]=e(i[t],t,i);return n}var iC=nC,sC=Vo,oC=kc,aC=Gc,lC=iC,fC=ls,cC=Ko,uC=200;function hC(i,e,t,r){var n=-1,s=oC,c=!0,l=i.length,f=[],u=e.length;if(!l)return f;t&&(e=lC(e,fC(t))),r?(s=aC,c=!1):e.length>=uC&&(s=cC,c=!1,e=new sC(e));t:for(;++n<l;){var v=i[n],h=t==null?v:t(v);if(v=r||v!==0?v:0,c&&h===h){for(var y=u;y--;)if(e[y]===h)continue t;f.push(v)}else s(e,h,r)||f.push(v)}return f}var dC=hC,Hc=wi,pC=nf,vC=Ai,Vc=Hc?Hc.isConcatSpreadable:void 0;function gC(i){return vC(i)||pC(i)||!!(Vc&&i&&i[Vc])}var mC=gC,yC=Fo,SC=mC;function Kc(i,e,t,r,n){var s=-1,c=i.length;for(t||(t=SC),n||(n=[]);++s<c;){var l=i[s];e>0&&t(l)?e>1?Kc(l,e-1,t,r,n):yC(n,l):r||(n[n.length]=l)}return n}var PC=Kc;function xC(){}var TC=xC,sa=yf,CC=TC,IC=Zo,wC=1/0,OC=sa&&1/IC(new sa([,-0]))[1]==wC?function(i){return new sa(i)}:CC,EC=OC,AC=Vo,MC=kc,LC=Gc,RC=Ko,bC=EC,DC=Zo,NC=200;function BC(i,e,t){var r=-1,n=MC,s=i.length,c=!0,l=[],f=l;if(t)c=!1,n=LC;else if(s>=NC){var u=e?null:bC(i);if(u)return DC(u);c=!1,n=RC,f=new AC}else f=e?[]:l;t:for(;++r<s;){var v=i[r],h=e?e(v):v;if(v=t||v!==0?v:0,c&&h===h){for(var y=f.length;y--;)if(f[y]===h)continue t;e&&f.push(h),l.push(v)}else n(f,h,t)||(f!==l&&f.push(h),l.push(v))}return l}var WC=BC,FC=dC,UC=PC,Zc=WC;function YC(i,e,t){var r=i.length;if(r<2)return r?Zc(i[0]):[];for(var n=-1,s=Array(r);++n<r;)for(var c=i[n],l=-1;++l<r;)l!=n&&(s[n]=FC(s[n]||c,i[l],e,t));return Zc(UC(s,1),e,t)}var XC=YC,zC=Do,$C=on;function jC(i){return $C(i)&&zC(i)}var kC=jC,GC=uf,HC=$T,VC=XC,KC=kC,ZC=HC(function(i){return VC(GC(i,KC))}),JC=ZC,QC=mn(JC);class Jc extends ia{constructor(t){super(t);dt(this,"_type","full");dt(this,"combineTimerId");dt(this,"combineDrawResolve");dt(this,"combineDrawActiveId");dt(this,"drawWorkActiveId");dt(this,"effectSelectNodeData",new Set)}async loadImageBitMap(t){return await this.thread.loadImageBitMap(t)}async consumeDraw(t,r){const{op:n,workId:s,scenePath:c,postCount:l,smoothSync:f}=t;if(n!=null&&n.length&&s){const u=s.toString(),v=this.getWorkShape(u);if(!v)return;const h=v.toolsType;if(h===xt.LaserPen)return;this.combineDrawActiveId&&this.combineDrawActiveId!==u&&(this.combineTimerId&&(clearTimeout(this.combineTimerId),this.combineTimerId=void 0,this.combineDrawResolve&&this.combineDrawResolve(!1),this.combineDrawActiveId=void 0),await this.consumeDrawAll({workId:this.combineDrawActiveId,scenePath:c,viewId:this.viewId,msgType:vt.DrawWork,dataType:Kt.Local},r)),this.drawWorkActiveId&&this.drawWorkActiveId!==u&&(await this.consumeDrawAll({workId:this.drawWorkActiveId,scenePath:c,viewId:this.viewId,msgType:vt.DrawWork,dataType:Kt.Local},r),this.drawWorkActiveId=void 0),!this.drawWorkActiveId&&u!==Me&&(this.drawWorkActiveId=u),Qe(l)&&(this.consumeCount=l);const y=v.consume({data:t,isFullWork:!0,smoothSync:f});switch(h){case xt.Selector:y.type===vt.Select&&(y.selectIds&&r.runReverseSelectWork(y.selectIds),await this.drawSelector({...y,isSelecting:!0},t.workState||qt.Doing));break;case xt.PencilEraser:case xt.BitMapEraser:this.drawCount++,this.combineTimerId||(this.combineTimerId=1,this.combineDrawActiveId=u,this.drawEraserCombine(u,this.drawCount,t.needUndoTicker,t.collectUndoTicker).then(()=>{this.combineTimerId=void 0}));break;case xt.Eraser:await this.drawEraser(y,void 0,t.needUndoTicker,t.collectUndoTicker);break;case xt.Arrow:case xt.Straight:case xt.Ellipse:case xt.Rectangle:case xt.Star:case xt.Polygon:case xt.SpeechBalloon:y&&(this.drawCount++,await this.drawShape(y));break;case xt.Pencil:{this.drawCount++,!this.combineTimerId&&this.combineUnitTime!==1/0&&new Promise(T=>{this.combineDrawActiveId=u,this.combineDrawResolve=T,this.combineTimerId=setTimeout(()=>{this.combineTimerId=void 0,this.combineDrawResolve&&this.combineDrawResolve(!0)},this.combineUnitTime)}).then(T=>{T&&this.drawPencilCombine(u,this.drawCount),this.combineDrawResolve=void 0}),y&&await this.drawPencil(y);break}}}}async consumeDrawAll(t,r){var l,f,u;this.combineTimerId&&(clearTimeout(this.combineTimerId),this.combineTimerId=void 0,this.combineDrawResolve&&this.combineDrawResolve(!1),this.combineDrawActiveId=void 0);const{workId:n,scenePath:s,isLockSentEventCursor:c}=t;if(n){const v=n.toString();this.drawWorkActiveId===v&&(this.drawWorkActiveId=void 0);const h=this.workShapes.get(v);if(!h)return;const y=h.toolsType;if(y===xt.LaserPen)return;const T=this.workShapes.get(ri),O=(l=T==null?void 0:T.selectIds)==null?void 0:l[0],C=h.consumeAll({data:t,workerEngine:this});switch(y){case xt.Selector:C.selectIds&&O&&((f=C.selectIds)!=null&&f.includes(O))&&T.cursorBlur(),C.selectIds&&r.runReverseSelectWork(C.selectIds),await this.drawSelector({...C,scenePath:s,isSelecting:!1},qt.Done,c),(u=h.selectIds)!=null&&u.length?h.clearTmpPoints():this.clearWorkShapeNodeCache(v);break;case xt.PencilEraser:case xt.BitMapEraser:await this.drawEraserFull(h,{...C,scenePath:s},c,t.needUndoTicker),this.drawCount=0,this.clearWorkShapeNodeCache(v);break;case xt.Eraser:this.drawEraser({...C,scenePath:s},c,t.needUndoTicker,t.collectUndoTicker),h.clearTmpPoints();break;case xt.Arrow:case xt.Straight:case xt.Ellipse:case xt.Rectangle:case xt.Star:case xt.Polygon:case xt.SpeechBalloon:await this.drawPencilFull({...C,scenePath:s},c,t.needUndoTicker),this.drawCount=0,this.clearWorkShapeNodeCache(v);break;case xt.Pencil:await this.drawPencilFull({...C,scenePath:s},c,t.needUndoTicker),this.drawCount=0,this.clearWorkShapeNodeCache(v);break}}}async workShapesDone(t,r){for(const n of this.workShapes.keys())await this.consumeDrawAll({workId:n,scenePath:t,viewId:this.viewId,msgType:vt.DrawWork,dataType:Kt.Local},r)}async consumeFull(t){var s,c;const r=this.setFullWork(t),n=t.ops&&ti(t.ops)||t.op;if(r){const l=(s=t.workId)==null?void 0:s.toString();if(!l)return;const f=(c=this.vNodes.get(l))==null?void 0:c.rect;let u,v;r.toolsType===xt.BackgroundSVG?u=r.consumeService({isFullWork:!0,replaceId:l}):r.toolsType===xt.Image?(u=await r.consumeServiceAsync({isFullWork:!0,replaceId:l,worker:this}),v=(t==null?void 0:t.updateNodeOpt)&&r.updataOptService(t.updateNodeOpt)):r.toolsType===xt.Text?u=await r.consumeServiceAsync({isFullWork:!0,replaceId:l,boxRect:this.thread.getSceneRect()}):(u=r.consumeService({op:n,isFullWork:!0,replaceId:l}),v=(t==null?void 0:t.updateNodeOpt)&&r.updataOptService(t.updateNodeOpt)),u=Zt(u,v);const h=[],y=[];if(t.workId&&this.workShapes.delete(t.workId.toString()),t.clearPreviewLocalWork&&h.push({isClearAll:!0,clearCanvas:Ut.Float,viewId:this.viewId}),u&&t.willRefresh&&(f&&(h.push({rect:ve(f),isClear:!0,clearCanvas:Ut.Bg,viewId:this.viewId}),u=Zt(u,f)),h.push({rect:ve(u),drawCanvas:Ut.Bg,viewId:this.viewId})),t.willSyncService&&y.push({opt:t.opt,toolsType:t.toolsType,type:vt.FullWork,workId:t.workId,ops:t.ops,updateNodeOpt:t.updateNodeOpt,viewId:this.viewId,needUndoTicker:t.needUndoTicker,requestId:t.requestId,emitEventType:t.emitEventType}),t.isLockSentEventCursor&&y.push({type:vt.None,isLockSentEventCursor:!0}),t.needUndoTicker&&y.push({type:vt.None,needUndoTicker:t.needUndoTicker,emitEventType:t.emitEventType,requestId:t.requestId}),h.length||y.length){const T={render:h,sp:y};t.needUndoTicker,await this._post(T)}}}async removeSelector(t,r){const{willSyncService:n,needUndoTicker:s}=t,c=[],l=[],f=[],u=this.workShapes.get(Me);if(!u)return;const v=u.selectIds&&[...u.selectIds]||[];for(const h of v){const y=this.vNodes.get(h);if(y)switch(y.toolsType){case xt.Text:{c.push({type:vt.TextUpdate,toolsType:xt.Text,workId:h,dataType:Kt.Local});break}case xt.BackgroundSVG:c.push({type:vt.BackgroundSVGDelete,toolsType:xt.BackgroundSVG,workId:h,dataType:Kt.Local,viewId:this.viewId});break}const T=this._removeWork(h);T.length&&l.push(...T),r==null||r.deleteCachedImagesByWorkId(h),f.push(h)}f.length&&c.push({type:vt.RemoveNode,removeIds:f,needUndoTicker:s,emitEventType:t.emitEventType,requestId:t.requestId}),c.push({type:vt.Select,selectIds:[],willSyncService:n}),await this.blurSelector(),s&&c.push({type:vt.None,needUndoTicker:s}),(l.length||c.length)&&await this._post({render:l,sp:c})}async removeWork(t){const{workId:r}=t,n=r==null?void 0:r.toString();if(n){const s=this._removeWork(n);s.length&&await this._post({render:s})}}removeNode(t){var s,c,l;const r=this.vNodes.get(t);r&&(r.toolsType===xt.BackgroundSVG&&this._post({sp:[{type:vt.BackgroundSVGDelete,toolsType:xt.BackgroundSVG,workId:t,dataType:Kt.Local,viewId:this.viewId}]}),(s=this.fullLayer)==null||s.getElementsByName(t).forEach(f=>{f.remove(),dr(f,this.fullLayer.parent)}),this.vNodes.delete(t));const n=this.drawLayer&&Xt.getRectFromLayer(this.drawLayer,t);if(n){const f=(c=this.drawLayer)==null?void 0:c.getElementsByName(t)[0];f&&(f.remove(),dr(f,(l=this.drawLayer)==null?void 0:l.parent))}return this.getWorkShape(t)&&this.clearWorkShapeNodeCache(t),{fullRect:r==null?void 0:r.rect,drawRect:n}}_removeWork(t){const{fullRect:r,drawRect:n}=this.removeNode(t),s=[];return r&&s.push({rect:ve(r),clearCanvas:Ut.Bg,isClear:!0,viewId:this.viewId},{rect:ve(r),drawCanvas:Ut.Bg,viewId:this.viewId}),n&&s.push({rect:ve(n),clearCanvas:Ut.Float,isClear:!0,viewId:this.viewId},{rect:ve(n),drawCanvas:Ut.Float,viewId:this.viewId}),s}async checkTextActive(t){const{op:r,viewId:n,dataType:s}=t;if(r!=null&&r.length){let c,l;const f=r[0]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],u=r[1]*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1];for(const v of this.vNodes.curNodeMap.values()){const{rect:h,name:y,toolsType:T,opt:O}=v;if(T===xt.Text&&O.workState===qt.Done&&lT([f,u],h)){c=y,l=this.setFullWork({workId:y,toolsType:T,opt:O});break}}if(c){let v;l&&(v=await l.consumeServiceAsync({isFullWork:!0,replaceId:l.getWorkId(),boxRect:this.thread.getSceneRect()})),await this.blurSelector({viewId:n,msgType:vt.Select,dataType:s,isSync:!0}),await this._post({render:v&&[{rect:ve(v),clearCanvas:Ut.Bg,isClear:!0,viewId:this.viewId},{rect:ve(v),drawCanvas:Ut.Bg,viewId:this.viewId}],sp:[{type:vt.GetTextActive,toolsType:xt.Text,workId:c}]})}}}async colloctEffectSelectWork(t){const r=this.workShapes.get(Me),{workId:n,msgType:s}=t;if(r&&n&&r.selectIds&&r.selectIds.includes(n.toString())){s===vt.RemoveNode?r.selectIds=r.selectIds.filter(c=>c!==n.toString()):this.effectSelectNodeData.add(t),await this.runEffectSelectWork(!0);return}return t}async updateSelector(t){var C;const r=this.workShapes.get(Me);if(!((C=r==null?void 0:r.selectIds)!=null&&C.length))return;const{callback:n,...s}=t,{updateSelectorOpt:c,willSerializeData:l,smoothSync:f}=s,u=await(r==null?void 0:r.updateSelector({updateSelectorOpt:c,selectIds:ar(r.selectIds),vNodes:this.vNodes,willSerializeData:l,worker:this})),v=new Map;let h;u!=null&&u.selectIds&&(h=QC(r.selectIds,u.selectIds),u.selectIds.forEach(S=>{const w=this.vNodes.get(S);if(w){const{toolsType:d,op:g,opt:p}=w;v.set(S,{opt:p,toolsType:d,ops:(g==null?void 0:g.length)&&hr(g)||void 0})}}),r.selectIds=u.selectIds);const y=[],T=[];u!=null&&u.rect&&y.push({rect:ve(u.rect),clearCanvas:Ut.Bg,isClear:!0,viewId:this.viewId},{rect:ve(u.rect),drawCanvas:Ut.Bg,viewId:this.viewId});const O=n&&n({res:u,workShapeNode:r,param:s,postData:{render:y,sp:T},newServiceStore:v,smoothSync:f})||{render:y,sp:T};h&&O.sp.push({type:vt.RemoveNode,removeIds:h,viewId:this.viewId}),(O.render.length||O.sp.length)&&await this._post(O)}async blurSelector(t){var s;const r=this.workShapes.get(Me),n=r==null?void 0:r.blurSelector();if(this.clearWorkShapeNodeCache(Me),((s=this.fullLayer)==null?void 0:s.parent).children.forEach(c=>{c.name===Me&&c.remove()}),n){const c=[];c.push({...n,isSync:t==null?void 0:t.isSync}),await this._post({render:(n==null?void 0:n.rect)&&[{rect:ve(n.rect),clearCanvas:Ut.Bg,isClear:!0,viewId:this.viewId},{rect:ve(n.rect),drawCanvas:Ut.Bg,viewId:this.viewId}],sp:c})}}hasSelector(){return this.workShapes.has(Me)}getSelector(){return this.workShapes.get(Me)}async reRenderSelector(t=!1){var c;const r=this.workShapes.get(Me);if(!r)return;if(r&&!((c=r.selectIds)!=null&&c.length)){await this.blurSelector();return}const n=r.oldSelectRect,s=r.reRenderSelector();if(s){const l=Zt(n,s)||s;await this._post({render:[{rect:ve(l),clearCanvas:Ut.Bg,isClear:!0,viewId:this.viewId},{rect:ve(l),drawCanvas:Ut.Bg,viewId:this.viewId}],sp:[{type:vt.Select,selectIds:r.selectIds,selectRect:s,willSyncService:t,viewId:this.viewId,points:r.getChildrenPoints(),textOpt:r.textOpt,selectorColor:r.selectorColor,strokeColor:r.strokeColor,fillColor:r.fillColor,canTextEdit:r.canTextEdit,canRotate:r.canRotate,scaleType:r.scaleType,opt:r.getWorkOptions()||void 0,canLock:r.canLock,isLocked:r.isLocked,toolsTypes:r.toolsTypes,shapeOpt:r.shapeOpt,thickness:r.thickness,useStroke:r.useStroke,strokeType:r.strokeType}]})}}async updateFullSelectWork(t){var s,c,l,f,u,v,h;const r=this.workShapes.get(Me),{selectIds:n}=t;if(!(n!=null&&n.length)){await this.blurSelector(t);return}if(!r){!this.setFullWork(t)&&t.workId&&((s=this.tmpOpt)==null?void 0:s.toolsType)===xt.Selector&&this.createWorkShape(t.workId.toString()),await this.updateFullSelectWork(t);return}if(r&&(n!=null&&n.length)){const{bgRect:y,selectRect:T}=r.updateSelectIds(n),O={render:[],sp:[]};y&&((c=O.render)==null||c.push({rect:ve(y),clearCanvas:Ut.Bg,isClear:!0,viewId:this.viewId},{rect:ve(y),drawCanvas:Ut.Bg,viewId:this.viewId})),(h=O.sp)==null||h.push({selectorColor:((l=t.opt)==null?void 0:l.strokeColor)||r.selectorColor,strokeColor:((f=t.opt)==null?void 0:f.strokeColor)||r.strokeColor,fillColor:((u=t.opt)==null?void 0:u.fillColor)||r.fillColor,textOpt:((v=t.opt)==null?void 0:v.textOpt)||r.textOpt,canTextEdit:r.canTextEdit,canRotate:r.canRotate,scaleType:r.scaleType,type:vt.Select,viewId:this.viewId,dataType:Kt.Local,selectIds:t.selectIds,selectRect:T,points:r.getChildrenPoints(),willSyncService:(t==null?void 0:t.willSyncService)||!1,opt:(t==null?void 0:t.willSyncService)&&r.getWorkOptions()||void 0,canLock:r.canLock,isLocked:r.isLocked,toolsTypes:r.toolsTypes,shapeOpt:r.shapeOpt,thickness:r.thickness,useStroke:r.useStroke,strokeType:r.strokeType}),await this._post(O)}}destroy(){this.combineTimerId&&(clearTimeout(this.combineTimerId),this.combineTimerId=void 0,this.combineDrawResolve&&this.combineDrawResolve(!1)),super.destroy(),this.effectSelectNodeData.clear()}async drawEraserCombine(t,r,n,s){var l,f,u,v,h,y;const c=(l=this.workShapes.get(t))==null?void 0:l.combineConsume({workerEngine:this});if(c){const{willDeleteNodes:T,willNewNodes:O}=c,C=[...T?Array.from(T):[]],S={render:[],fullWorkerDrawCount:r,sp:[]};if(c!=null&&c.rect){const w=ve(c.rect);(f=S.render)==null||f.push({rect:w,isClear:!0,clearCanvas:Ut.Bg,viewId:this.viewId},{rect:w,drawCanvas:Ut.Bg,viewId:this.viewId})}if(s&&C.length&&((u=this.getWorkShape(t))==null?void 0:u.toolsType)===xt.BitMapEraser&&((v=S.sp)==null||v.push({type:vt.None,collectUndoTicker:s,undoScopeIds:C,undoScopePhase:"collect"})),T!=null&&T.size&&((h=S.sp)==null||h.push({type:vt.RemoveNode,removeIds:[...T],viewId:this.thread.viewId,needUndoTicker:n,collectUndoTicker:s})),O!=null&&O.size)for(const[w,d]of O)(y=S.sp)==null||y.push({type:vt.FullWork,dataType:Kt.Local,toolsType:xt.Pencil,ops:hr(d.op),opt:d.opt,workId:w,updateNodeOpt:{useAnimation:!1},needUndoTicker:n,collectUndoTicker:s});await this._post(S)}}async drawPencilCombine(t,r){var s,c,l;const n=(s=this.workShapes.get(t))==null?void 0:s.combineConsume();if(n){const f={render:[],fullWorkerDrawCount:r};if(n!=null&&n.rect){const u=ve(n.rect);(c=f.render)==null||c.push({rect:u,isClear:!0,clearCanvas:Ut.Float,viewId:this.viewId}),(l=f.render)==null||l.push({rect:u,drawCanvas:Ut.Float,viewId:this.viewId})}await this._post(f)}}async drawSelector(t,r,n){var c,l,f;const s={render:[],sp:[t]};(c=s.sp)==null||c.push({type:vt.SelectorTransform,emitEventType:he.SelectMethod,workState:r}),n&&((l=s.sp)==null||l.push({type:vt.None,isLockSentEventCursor:n})),t.rect&&((f=s.render)==null||f.push({rect:ve(t.rect),clearCanvas:Ut.Bg,isClear:!0,viewId:this.viewId},{rect:ve(t.rect),drawCanvas:Ut.Bg,viewId:this.viewId})),await this._post(s)}async drawPencilFull(t,r,n){var c,l,f;const s={fullWorkerDrawCount:1/0,render:[],sp:[{...t,needUndoTicker:n}]};r&&((c=s.sp)==null||c.push({type:vt.None,isLockSentEventCursor:r})),t!=null&&t.rect&&((l=s.render)==null||l.push({isClearAll:!0,clearCanvas:Ut.Float,viewId:this.viewId},{rect:t.rect,isClear:!0,clearCanvas:Ut.Bg,viewId:this.viewId},{rect:t.rect,drawCanvas:Ut.Bg,viewId:this.viewId})),n&&((f=s.sp)==null||f.push({type:vt.None,needUndoTicker:n})),await this._post(s)}async drawEraserFull(t,r,n,s){const{rect:c,willUpdateNodes:l,willDeleteNodes:f,willNewNodes:u}=r,v=t.getWorkId(),h=[...l?Array.from(l.keys()).map(O=>String(O)):[],...f?Array.from(f):[],...u?Array.from(u.keys()).map(O=>String(O)):[]],y=[];if(s&&h.length&&y.push({type:vt.None,needUndoTicker:s,undoScopeIds:h,undoScopePhase:"finalize"}),y.push({type:vt.RemoveNode,removeIds:[v],viewId:this.viewId,needUndoTicker:s}),n&&y.push({type:vt.None,isLockSentEventCursor:n}),l!=null&&l.size||f!=null&&f.size||u!=null&&u.size){if(l!=null&&l.size)for(const[O,C]of l)y.push({type:vt.UpdateNode,dataType:Kt.Local,opt:C.opt,workId:O,updateNodeOpt:{useAnimation:!1},needUndoTicker:s});if(f!=null&&f.size&&y.push({type:vt.RemoveNode,removeIds:[...f],viewId:this.thread.viewId,needUndoTicker:s}),u!=null&&u.size)for(const[O,C]of u)y.push({type:vt.FullWork,dataType:Kt.Local,toolsType:C.toolsType,ops:hr(C.op),opt:C.opt,workId:O,updateNodeOpt:{useAnimation:!1},needUndoTicker:s})}const T=[{isClearAll:!0,clearCanvas:Ut.Float,viewId:this.viewId}];c&&T.push({rect:c,isClear:!0,clearCanvas:Ut.Bg,viewId:this.viewId},{rect:c,drawCanvas:Ut.Bg,viewId:this.viewId}),await this._post({sp:y,render:T,fullWorkerDrawCount:1/0})}async drawEraser(t,r,n,s){const c=[],l=[],f=t.removeIds||[];s&&f.length&&c.push({type:vt.None,collectUndoTicker:s,undoScopeIds:f,undoScopePhase:"collect"}),r&&c.push({type:vt.None,isLockSentEventCursor:r}),t.removeIds&&c.push({...t,needUndoTicker:n,collectUndoTicker:s}),t.rect&&l.push({rect:t.rect,isClear:!0,clearCanvas:Ut.Bg,viewId:this.viewId},{rect:t.rect,drawCanvas:Ut.Bg,viewId:this.viewId}),n&&c.push({type:vt.None,needUndoTicker:n,undoScopePhase:"finalize"}),await this._post({sp:c,render:l,consumeCount:this.consumeCount})}async drawShape(t){await this._post({fullWorkerDrawCount:this.drawCount,sp:(t==null?void 0:t.op)&&[t]})}async drawPencil(t){await this._post({sp:(t==null?void 0:t.op)&&[t]})}async runEffectSelectWork(t){var r;for(const n of this.effectSelectNodeData.values()){const s=this.setFullWork(n);if(s){const c=(r=s.getWorkId())==null?void 0:r.toString();if(s.toolsType===xt.BackgroundSVG)s.consumeService({isFullWork:!0,replaceId:c});else if(s.toolsType===xt.Image)await s.consumeServiceAsync({isFullWork:!0,replaceId:c,worker:this});else if(s.toolsType===xt.Text)await s.consumeServiceAsync({isFullWork:!0,replaceId:c,boxRect:this.thread.getSceneRect()});else{const l=n.ops&&ti(n.ops);s.consumeService({op:l,isFullWork:!0,replaceId:c}),n!=null&&n.updateNodeOpt&&s.updataOptService(n.updateNodeOpt)}n.workId&&this.workShapes.delete(n.workId.toString())}this.effectSelectNodeData.delete(n)}await this.reRenderSelector(t)}async cursorHover(t){var l;const{opt:r,toolsType:n,point:s}=t,c=this.setFullWork({workId:ri,toolsType:n,opt:r});if(c&&s){const f=c.cursorHover(s),u={render:[]};f&&f.type===vt.CursorHover&&f.rect&&((l=u.render)==null||l.push({rect:ve(f.rect),clearCanvas:Ut.Bg,isClear:!0,viewId:this.viewId},{rect:ve(f.rect),drawCanvas:Ut.Bg,viewId:this.viewId}),await this._post(u))}}async cursorBlur(){var n;const t=this.getWorkShape(ri);let r;t&&((n=t.selectIds)!=null&&n.length)&&(r=t.oldSelectRect,t.cursorBlur(),this.clearWorkShapeNodeCache(ri),r&&await this._post({render:[{rect:ve(r),clearCanvas:Ut.Bg,isClear:!0,viewId:this.viewId},{rect:ve(r),drawCanvas:Ut.Bg,viewId:this.viewId}]})),this.fullLayer.parent.children.forEach(s=>{s.name==="Cursor_Hover_Id"&&s.remove()})}}class Qc{constructor(e){dt(this,"viewId");dt(this,"vNodes");dt(this,"fullLayer");dt(this,"drawLayer");dt(this,"workShapes",new Map);dt(this,"selectorWorkShapes",new Map);dt(this,"thread");dt(this,"animationId");dt(this,"willRunEffectSelectorIds",new Set);dt(this,"runEffectId");dt(this,"noAnimationRect");dt(this,"syncUnitTime",ur.syncOpt.interval);dt(this,"post");this.viewId=e.viewId,this.vNodes=e.vNodes,this.fullLayer=e.fullLayer,this.drawLayer=e.drawLayer,this.thread=e.thread,this.post=e.thread.post.bind(e.thread)}destroy(){this.workShapes.clear(),this.selectorWorkShapes.clear(),this.willRunEffectSelectorIds.clear()}async consumeDraw(e){this.activeWorkShape(e),this.runAnimation()}consumeFull(e){if(this.activeWorkShape(e),e.refreshTextRender){this.animationId&&(clearTimeout(this.animationId),this.animationId=void 0),this.animationDraw();return}this.runAnimation()}runSelectWork(e){this.activeSelectorShape(e);const{workId:t}=e,r=t==null?void 0:t.toString();r&&this.willRunEffectSelectorIds.add(r),this.runEffect()}setNodeKey(e,t,r,n){return t.toolsType=r,t.node=Es({workId:e,toolsType:r,toolsOpt:n,vNodes:this.vNodes,fullLayer:this.fullLayer,drawLayer:this.drawLayer},this),t}runReverseSelectWork(e){e.forEach(t=>{this.selectorWorkShapes.forEach((r,n)=>{var s;if((s=r.selectIds)!=null&&s.length){const c=r.selectIds.indexOf(t);c>-1&&(r.selectIds.splice(c,1),this.willRunEffectSelectorIds.add(n))}})}),this.willRunEffectSelectorIds.size&&this.runEffect()}async removeWork(e){const{workId:t}=e,r=t==null?void 0:t.toString();if(r){const n=this.workShapes.get(r);if(n){this.workShapes.delete(r),await this.removeNode(r,e,n==null?void 0:n.totalRect,!1);return}await this.removeNode(r,e)}}removeSelectWork(e){const{workId:t}=e,r=t==null?void 0:t.toString();r&&(this.activeSelectorShape(e),this.willRunEffectSelectorIds.add(r)),this.runEffect()}async removeNode(e,t,r,n=!0){var v;e.indexOf(Me)>-1&&this.removeSelectWork(t);let s=r;const c=(v=this.vNodes.get(e))==null?void 0:v.rect;c&&(s=Zt(c,s));const l=this.fullLayer&&Xt.getRectFromLayer(this.fullLayer,e);s=Zt(s,l);const f=this.drawLayer&&Xt.getRectFromLayer(this.drawLayer,e);s=Zt(s,f),this.fullLayer.getElementsByName(e).forEach(h=>{h.remove(),dr(h,this.fullLayer.parent)}),this.drawLayer.getElementsByName(e).forEach(h=>{h.remove(),dr(h,this.drawLayer.parent)});const u=this.vNodes.get(e);u&&u.toolsType===xt.BackgroundSVG&&this.post({sp:[{type:vt.BackgroundSVGDelete,toolsType:xt.BackgroundSVG,workId:e,dataType:Kt.Service,viewId:this.viewId}]}),this.vNodes.delete(e),s&&await this.post({render:[{rect:ve(s),isClear:!0,clearCanvas:n?Ut.Bg:Ut.ServiceFloat,workerType:n?void 0:Kt.Service,viewId:this.viewId},{rect:ve(s),drawCanvas:n?Ut.Bg:Ut.ServiceFloat,workerType:n?void 0:Kt.Service,viewId:this.viewId}]})}activeWorkShape(e){var S,w,d,g;const{workId:t,opt:r,toolsType:n,type:s,updateNodeOpt:c,ops:l,op:f,useAnimation:u,isEnableCursor:v,requestId:h,refreshTextRender:y}=e;if(!t)return;const T=t.toString(),O=(S=this.vNodes.get(T))==null?void 0:S.rect;if(!((w=this.workShapes)!=null&&w.has(T))){let p={toolsType:n,animationWorkData:f||[],animationIndex:0,type:s,updateNodeOpt:c,ops:l,useAnimation:typeof u<"u"?u:typeof(c==null?void 0:c.useAnimation)<"u"?c==null?void 0:c.useAnimation:!0,oldRect:O,isDiff:!1,isEnableCursor:v};n&&r&&(p=this.setNodeKey(T,p,n,r)),(d=this.workShapes)==null||d.set(T,p)}const C=(g=this.workShapes)==null?void 0:g.get(T);C.isEnableCursor=v,C.requestId=h,C.refreshTextRender=!!y,s&&(C.type=s),l&&(C.animationWorkData=ti(l),C.ops=l),c&&(C.updateNodeOpt=c),f&&(C.isDiff=this.hasDiffData(C.animationWorkData||[],f,C.toolsType),C.toolsType,xt.Pencil,C.animationWorkData=f),C.node&&C.node.getWorkId()!==T&&C.node.setWorkId(T),O&&(C.oldRect=O),n&&r&&(r.syncUnitTime&&(this.syncUnitTime=r.syncUnitTime),C.toolsType!==n&&n&&r&&this.setNodeKey(T,C,n,r),C.node&&C.node.setWorkOptions(r))}hasDiffData(e,t,r){const n=e.length;if(t.length<n)return!0;switch(r){case xt.Pencil:{for(let s=0;s<n;s+=3)if(t[s]!==e[s]||t[s+1]!==e[s+1])return!0;break}case xt.LaserPen:{for(let s=0;s<n;s+=2)if(t[s]!==e[s]||t[s+1]!==e[s+1])return!0;break}}return!1}async animationDraw(){var n,s,c,l,f,u,v,h,y,T,O,C,S,w,d,g,p,P,A,R,D,U,L,W,Y,B,N,$,J,et,ot,ut,K,Q,ft,mt,yt,Et,ht,Nt,Bt,G,H,rt,at;this.animationId=void 0;let e=!1;const t={render:[]},r=new Map;for(const[z,j]of this.workShapes.entries())switch(j.toolsType){case xt.BackgroundSVG:{const I=j.oldRect;I&&((n=t.render)==null||n.push({rect:I,isClear:!0,clearCanvas:Ut.Bg,viewId:this.viewId}),(s=t.render)==null||s.push({rect:I,drawCanvas:Ut.Bg,viewId:this.viewId}));const M=(c=j.node)==null?void 0:c.consumeService({isFullWork:!0,replaceId:z});this.selectorWorkShapes.forEach((X,Z)=>{var q;(q=X.selectIds)!=null&&q.includes(z)&&(this.willRunEffectSelectorIds.add(Z),this.noAnimationRect=Zt(this.noAnimationRect,I),this.noAnimationRect=Zt(this.noAnimationRect,M),this.runEffect())}),this.workShapes.delete(z),(l=t.render)==null||l.push({rect:M,drawCanvas:Ut.Bg,viewId:this.viewId});break}case xt.Image:{const I=j.oldRect;I&&((f=t.render)==null||f.push({rect:I,isClear:!0,clearCanvas:Ut.Bg,viewId:this.viewId}),(u=t.render)==null||u.push({rect:I,drawCanvas:Ut.Bg,viewId:this.viewId}));const M=await((v=j.node)==null?void 0:v.consumeServiceAsync({isFullWork:!0,worker:this.thread}));this.selectorWorkShapes.forEach((X,Z)=>{var q;(q=X.selectIds)!=null&&q.includes(z)&&(this.willRunEffectSelectorIds.add(Z),this.noAnimationRect=Zt(this.noAnimationRect,I),this.noAnimationRect=Zt(this.noAnimationRect,M),this.runEffect())}),this.workShapes.delete(z),(h=t.render)==null||h.push({rect:M,drawCanvas:Ut.Bg,viewId:this.viewId});break}case xt.Text:{if(j.node){const I=j.oldRect;I&&((y=t.render)==null||y.push({rect:I,isClear:!0,clearCanvas:Ut.Bg,viewId:this.viewId}),(T=t.render)==null||T.push({rect:I,drawCanvas:Ut.Bg,viewId:this.viewId}));const M=await j.node.consumeServiceAsync({isFullWork:!0,replaceId:z,boxRect:this.thread.getSceneRect()});this.selectorWorkShapes.forEach((X,Z)=>{var q;(q=X.selectIds)!=null&&q.includes(z)&&(this.willRunEffectSelectorIds.add(Z),this.noAnimationRect=Zt(this.noAnimationRect,I),this.noAnimationRect=Zt(this.noAnimationRect,M),this.runEffect())}),j.refreshTextRender&&j.requestId&&(t.sp=t.sp||[],t.sp.push({type:vt.RefreshTextRender,requestId:j.requestId,workId:z,viewId:this.viewId})),(O=j.node)==null||O.clearTmpPoints(),this.workShapes.delete(z),(C=t.render)==null||C.push({rect:M,drawCanvas:Ut.Bg,viewId:this.viewId})}break}case xt.Arrow:case xt.Straight:case xt.Rectangle:case xt.Ellipse:case xt.Star:case xt.Polygon:case xt.SpeechBalloon:{const I=!!j.ops;if((S=j.animationWorkData)!=null&&S.length){const M=j.oldRect,X=j.node.oldRect;M&&((w=t.render)==null||w.push({rect:M,isClear:!0,clearCanvas:Ut.Bg,viewId:this.viewId}),(d=t.render)==null||d.push({rect:M,drawCanvas:Ut.Bg,viewId:this.viewId})),X&&((g=t.render)==null||g.push({rect:X,isClear:!0,clearCanvas:Ut.ServiceFloat,viewId:this.viewId}));const Z=(p=j.node)==null?void 0:p.consumeService({op:j.animationWorkData,isFullWork:I});j.isEnableCursor?r.set(z,{workState:M?j.ops?qt.Done:qt.Doing:qt.Start,op:j.animationWorkData.slice(-3,-1)}):I&&!j.useAnimation&&((P=j.updateNodeOpt)!=null&&P.useAnimation)&&r.set(z,{workState:qt.Done,op:j.animationWorkData.slice(-3,-1),uid:(A=j.updateNodeOpt)==null?void 0:A.uid}),I?(this.selectorWorkShapes.forEach((q,nt)=>{var ct;(ct=q.selectIds)!=null&&ct.includes(z)&&(this.willRunEffectSelectorIds.add(nt),this.noAnimationRect=Zt(this.noAnimationRect,M),this.noAnimationRect=Zt(this.noAnimationRect,X),this.noAnimationRect=Zt(this.noAnimationRect,Z),this.runEffect())}),(R=j.node)==null||R.clearTmpPoints(),this.workShapes.delete(z),(D=t.render)==null||D.push({rect:Z,drawCanvas:Ut.Bg,viewId:this.viewId})):(U=t.render)==null||U.push({rect:Z,drawCanvas:Ut.ServiceFloat,workerType:I?void 0:Kt.Service,viewId:this.viewId}),j.animationWorkData.length=0}break}case xt.Pencil:{if(j.useAnimation){if(j.useAnimation){if(j.isDel){(ft=j.node)==null||ft.clearTmpPoints(),this.workShapes.delete(z);break}const I=3,M=this.computNextAnimationIndex(j,I),X=j.isDiff?0:Math.max(0,(j.animationIndex||0)-I),Z=(j.animationWorkData||[]).slice(0,M),q=(yt=(mt=j.node)==null?void 0:mt.getWorkId())==null?void 0:yt.toString();if((j.animationIndex||0)<M||j.isDiff){const nt=(Et=j.node)==null?void 0:Et.consumeService({op:Z,isFullWork:!1,replaceId:q});if((ht=t.render)==null||ht.push({isClear:!0,rect:nt,clearCanvas:Ut.ServiceFloat,viewId:this.viewId}),(Nt=t.render)==null||Nt.push({rect:nt,drawCanvas:Ut.ServiceFloat,viewId:this.viewId}),j.animationIndex=M,j.isDiff&&(j.isDiff=!1),Z.length&&j.isEnableCursor){const ct=Z.slice(-3,-1);r.set(z,{workState:X===0?qt.Start:M===((Bt=j.animationWorkData)==null?void 0:Bt.length)?qt.Done:qt.Doing,op:ct})}}else if(j.ops){const nt=(G=j.node)==null?void 0:G.consumeService({op:j.animationWorkData||[],isFullWork:!0,replaceId:q});j.isDel=!0,(H=t.render)==null||H.push({isClear:!0,rect:nt,clearCanvas:Ut.ServiceFloat,viewId:this.viewId},{rect:nt,drawCanvas:Ut.ServiceFloat,viewId:this.viewId},{isClear:!0,rect:nt,clearCanvas:Ut.Bg,viewId:this.viewId},{rect:nt,drawCanvas:Ut.Bg,viewId:this.viewId}),j.isEnableCursor&&r.set(z,{workState:qt.Done,op:Z.slice(-3,-1)})}e=!0;break}}else{const I=!!j.ops;let M=(L=j.node)==null?void 0:L.consumeService({op:j.animationWorkData||[],isFullWork:I,replaceId:z});const X=(W=j.node)==null?void 0:W.updataOptService(j.updateNodeOpt);if(I){if(M=Zt(M,X),(Y=t.render)==null||Y.push({isClear:!0,rect:Zt(j.oldRect,M),clearCanvas:Ut.Bg,viewId:this.viewId}),(B=t.render)==null||B.push({rect:Zt(j.oldRect,M),drawCanvas:Ut.Bg,viewId:this.viewId}),(N=j.updateNodeOpt)!=null&&N.useAnimation&&(($=t.render)==null||$.push({isClear:!0,rect:Zt(j.oldRect,M),clearCanvas:Ut.ServiceFloat,viewId:this.viewId}),(J=t.render)==null||J.push({rect:Zt(j.oldRect,M),drawCanvas:Ut.ServiceFloat,viewId:this.viewId}),!j.isEnableCursor&&((et=j.animationWorkData)!=null&&et.length))){const Z=j.animationWorkData.slice(-3,-1);r.set(z,{workState:qt.Done,op:Z,uid:(ot=j.updateNodeOpt)==null?void 0:ot.uid})}this.selectorWorkShapes.forEach((Z,q)=>{var nt;(nt=Z.selectIds)!=null&&nt.includes(z)&&(this.willRunEffectSelectorIds.add(q),this.noAnimationRect=Zt(this.noAnimationRect,M),this.runEffect())}),(ut=j.node)==null||ut.clearTmpPoints(),this.workShapes.delete(z)}else M=Zt(M,X),(K=t.render)==null||K.push({isClear:!0,rect:Zt(j.oldRect,M),clearCanvas:Ut.ServiceFloat,viewId:this.viewId}),(Q=t.render)==null||Q.push({rect:Zt(j.oldRect,M),drawCanvas:Ut.ServiceFloat,viewId:this.viewId})}break}}e&&this.runAnimation(),r.size&&(t.sp=t.sp||[],r.forEach((z,j)=>{var I;(I=t.sp)==null||I.push({type:vt.Cursor,uid:z.uid||j.split(Vn)[0],op:z.op,workState:z.workState,viewId:this.viewId})})),((rt=t.render)!=null&&rt.length||(at=t.sp)!=null&&at.length)&&await this.post(t)}runAnimation(){this.animationId||(this.animationId=setTimeout(()=>{this.animationId=void 0,this.animationDraw()},16))}computNextAnimationIndex(e,t){const r=Math.floor((e.animationWorkData||[]).slice(e.animationIndex).length*48/t/this.syncUnitTime)*t;return Math.min((e.animationIndex||0)+(r||t),(e.animationWorkData||[]).length)}runEffect(){this.runEffectId||(this.runEffectId=setTimeout(this.effectRunSelector.bind(this),0))}async effectRunSelector(){this.runEffectId=void 0;let e=this.noAnimationRect;this.willRunEffectSelectorIds.forEach(t=>{var s,c;const r=this.selectorWorkShapes.get(t),n=r&&r.selectIds&&((s=r.node)==null?void 0:s.selectServiceNode(t,r,!0));e=Zt(e,n),(c=r==null?void 0:r.selectIds)!=null&&c.length||this.selectorWorkShapes.delete(t)}),e&&await this.post({render:[{rect:ve(e),isClear:!0,clearCanvas:Ut.Bg,viewId:this.viewId},{rect:ve(e),drawCanvas:Ut.Bg,viewId:this.viewId}]}),this.willRunEffectSelectorIds.clear(),this.noAnimationRect=void 0}activeSelectorShape(e){var v,h,y;const{workId:t,opt:r,toolsType:n,type:s,selectIds:c,imageBitmap:l}=e;if(!t)return;const f=t.toString();if(!((v=this.selectorWorkShapes)!=null&&v.has(f))){let T={toolsType:n,selectIds:c,type:s,opt:r,imageBitmap:l};n&&r&&(T=this.setNodeKey(f,T,n,r)),(h=this.selectorWorkShapes)==null||h.set(f,T)}const u=(y=this.selectorWorkShapes)==null?void 0:y.get(f);s&&(u.type=s),u.node&&u.node.getWorkId()!==f&&u.node.setWorkId(f),l&&(u.imageBitmap=l),u.selectIds=c||[]}}class qC extends ia{constructor(t){super(t);dt(this,"drawWorkActiveId")}runSelectWork(t){var n;const r=this.setFullWork(t);r&&((n=t.selectIds)!=null&&n.length)&&t.workId&&r.selectServiceNode(t.workId.toString(),{selectIds:t.selectIds},!1)}workShapesDone(){for(const t of this.workShapes.keys())this.clearWorkShapeNodeCache(t);Cr(this.fullLayer,this.fullLayer.parent)}async consumeDraw(t){const{workId:r,fullWorkerDrawCount:n,postCount:s}=t,c=r==null?void 0:r.toString(),l=c&&this.workShapes.get(c);if(!l)return;this.drawWorkActiveId&&this.drawWorkActiveId!==c&&(await this.consumeDrawAll({workId:this.drawWorkActiveId,viewId:this.viewId,msgType:vt.DrawWork,dataType:Kt.Local}),this.drawWorkActiveId=void 0),!this.drawWorkActiveId&&c!==Me&&(this.drawWorkActiveId=c);const f=l.toolsType;Qe(s)&&(this.consumeCount=s);const u=l.consume({data:t,drawCount:this.drawCount,isFullWork:!0,isSubWorker:!0,removeDrawCount:n});switch(f){case xt.Selector:u&&(this.drawCount++,await this.drawSelector(u));break;case xt.Ellipse:case xt.Arrow:case xt.Straight:case xt.Rectangle:case xt.Star:case xt.Polygon:case xt.SpeechBalloon:{u&&(this.drawCount++,await this.drawShape(u));break}case xt.Pencil:{u&&(this.drawCount++,await this.drawPencil(u,r==null?void 0:r.toString()));break}case xt.BitMapEraser:case xt.PencilEraser:{u&&(this.drawCount++,await this._post({subWorkerDrawCount:this.drawCount,consumeCount:this.consumeCount}));break}}}async consumeDrawAll(t){const{workId:r}=t;if(r){const n=r.toString();this.drawWorkActiveId===n&&(this.drawWorkActiveId=void 0);const s=this.workShapes.get(n);if(!s)return;switch(s.toolsType){case xt.Selector:this.drawCount=0,Cr(this.fullLayer,this.fullLayer.parent),this.clearWorkShapeNodeCache(n),this._post({render:[{isClearAll:!0,clearCanvas:Ut.Float,viewId:this.viewId}]});break;case xt.Arrow:case xt.Straight:case xt.Ellipse:case xt.Pencil:case xt.Rectangle:case xt.Star:case xt.Polygon:case xt.SpeechBalloon:case xt.BitMapEraser:case xt.PencilEraser:this.drawCount=0,Cr(this.fullLayer,this.fullLayer.parent),this.clearWorkShapeNodeCache(n);break}}}async removeWork(t){const{workId:r}=t,n=r==null?void 0:r.toString();if(n){const s=this.removeNode(n);if(s){const c=[];c.push({rect:ve(s),clearCanvas:Ut.Float,isClear:!0,viewId:this.viewId},{rect:ve(s),drawCanvas:Ut.Float,viewId:this.viewId}),await this._post({render:c})}}}removeNode(t){const r=this.workShapes.has(t);let n;return r&&(this.fullLayer.getElementsByName(t).forEach(s=>{const c=s.getBoundingClientRect();n=Zt(n,{x:c.x-Xt.SafeBorderPadding,y:c.y-Xt.SafeBorderPadding,w:c.width+Xt.SafeBorderPadding*2,h:c.height+Xt.SafeBorderPadding*2}),s.remove(),dr(s,this.fullLayer.parent)}),n&&this.clearWorkShapeNodeCache(t)),n}async drawPencil(t,r){await this._post({subWorkerDrawCount:this.drawCount,consumeCount:this.consumeCount,render:[{rect:t==null?void 0:t.rect,workId:r,drawCanvas:Ut.Float,viewId:this.viewId}],sp:(t==null?void 0:t.op)&&[t]})}async drawShape(t){await this._post({subWorkerDrawCount:this.drawCount,consumeCount:this.consumeCount,render:[{rect:(t==null?void 0:t.rect)&&ve(t.rect),isClear:!0,clearCanvas:Ut.Float,viewId:this.viewId},{rect:(t==null?void 0:t.rect)&&ve(t.rect),drawCanvas:Ut.Float,viewId:this.viewId}]})}async drawSelector(t){await this._post({subWorkerDrawCount:this.drawCount,consumeCount:this.consumeCount,render:[{rect:(t==null?void 0:t.rect)&&ve(t.rect),isClear:!0,clearCanvas:Ut.Float,viewId:this.viewId},{rect:(t==null?void 0:t.rect)&&ve(t.rect),drawCanvas:Ut.Float,viewId:this.viewId}]})}}class _C{constructor(e){dt(this,"viewId");dt(this,"vNodes");dt(this,"topLayer");dt(this,"thread");dt(this,"post");dt(this,"serviceWorkShapes",new Map);dt(this,"localWorkShapes",new Map);dt(this,"tmpOpt");dt(this,"syncUnitTime",ur.syncOpt.interval);dt(this,"animationId");this.viewId=e.viewId,this.vNodes=e.vNodes,this.topLayer=e.topLayer,this.thread=e.thread,this.post=e.thread.post.bind(e.thread)}canUseTopLayer(e){return e===xt.LaserPen}getWorkShape(e){return this.localWorkShapes.get(e)}createWorkShape(e,t){if(e&&this.tmpOpt){const r={toolsType:this.tmpOpt.toolsType,toolsOpt:t||this.tmpOpt.toolsOpt},n=this.createWorkShapeNode({...r,workId:e});return n&&this.localWorkShapes.set(e,{node:n,toolsType:n.toolsType,workState:qt.Start}),n}}setWorkOptions(e,t){var n;const r=(n=this.localWorkShapes.get(e))==null?void 0:n.node;r||this.createWorkShape(e,t),r==null||r.setWorkOptions(t)}createWorkShapeNode(e){const{toolsType:t}=e;if(t===xt.LaserPen)return Es({...e,vNodes:this.vNodes,fullLayer:this.topLayer,drawLayer:this.topLayer})}clearAllWorkShapesCache(){this.localWorkShapes.forEach(e=>{var t;return(t=e.node)==null?void 0:t.clearTmpPoints()}),this.localWorkShapes.clear()}setToolsOpt(e){var t;this.tmpOpt=e,(t=e.toolsOpt)!=null&&t.syncUnitTime&&(this.syncUnitTime=e.toolsOpt.syncUnitTime)}getToolsOpt(){return this.tmpOpt}consumeDraw(e){const{workId:t,dataType:r}=e;if(r===Kt.Service)this.activeServiceWorkShape(e);else{const n=t==null?void 0:t.toString(),s=n&&this.localWorkShapes.get(n);if(!s)return;const c=s.node.consume({data:e,isFullWork:!1,isSubWorker:!0});c.rect&&(s.totalRect=Zt(c.rect,s.totalRect),s.result=c,s.workState=qt.Doing,n&&this.localWorkShapes.set(n,s))}this.runAnimation()}consumeDrawAll(e){const{workId:t,dataType:r}=e;if(r===Kt.Service)this.activeServiceWorkShape(e);else{const n=t==null?void 0:t.toString(),s=n&&this.localWorkShapes.get(n);if(!s)return;const c=s.node.consumeAll({data:e});s.totalRect=Zt(c.rect,s.totalRect),s.result=c,s.workState=qt.Done,n&&this.localWorkShapes.set(n,s)}this.runAnimation()}destroy(){this.serviceWorkShapes.clear(),this.localWorkShapes.clear()}setNodeKey(e,t,r,n){return t.toolsType=r,t.node=this.createWorkShapeNode({workId:e,toolsType:r,toolsOpt:n}),t}activeServiceWorkShape(e){var y,T;const{workId:t,opt:r,toolsType:n,type:s,updateNodeOpt:c,ops:l,op:f}=e;if(!t)return;const u=t.toString(),v=(y=this.vNodes.get(u))==null?void 0:y.rect;if(!((T=this.serviceWorkShapes)!=null&&T.has(u))){let O={toolsType:n,animationWorkData:f||[],animationIndex:0,type:s,updateNodeOpt:c,ops:l,oldRect:v};n&&r&&(O=this.setNodeKey(u,O,n,r)),this.serviceWorkShapes.set(u,O)}const h=this.serviceWorkShapes.get(u);s&&(h.type=s),l&&(h.animationWorkData=ti(l),h.ops=l),c&&(h.updateNodeOpt=c),f&&(h.animationWorkData=f),h.node&&h.node.getWorkId()!==u&&h.node.setWorkId(u),v&&(h.oldRect=v),n&&r&&(h.toolsType!==n&&n&&r&&this.setNodeKey(u,h,n,r),h.node&&h.node.setWorkOptions(r))}computNextAnimationIndex(e,t){const r=Math.floor((e.animationWorkData||[]).slice(e.animationIndex).length*32/t/this.syncUnitTime)*t;return Math.min((e.animationIndex||0)+(r||t),(e.animationWorkData||[]).length)}async animationDraw(){var c,l,f,u;this.animationId=void 0;let e=!1;const t=new Map,r=[],n=[],s=[];for(const[v,h]of this.serviceWorkShapes.entries())switch(h.toolsType){case xt.LaserPen:{const T=this.computNextAnimationIndex(h,8),O=Math.max(0,h.animationIndex||0),C=(h.animationWorkData||[]).slice(O,T);if((h.animationIndex||0)<T){const S=(c=h.node)==null?void 0:c.consumeService({op:C,isFullWork:!1});h.totalRect=Zt(h.totalRect,S),h.animationIndex=T,C.length&&t.set(v,{workState:O===0?qt.Start:T===((l=h.animationWorkData)==null?void 0:l.length)?qt.Done:qt.Doing,op:C.slice(-2)})}if(n.push({isClear:!0,rect:h.totalRect,clearCanvas:Ut.TopFloat,viewId:this.viewId}),r.push({rect:h.totalRect,drawCanvas:Ut.TopFloat,viewId:this.viewId}),h.isDel){(f=h.node)==null||f.clearTmpPoints(),this.serviceWorkShapes.delete(v);break}h.ops&&h.animationIndex===((u=h.animationWorkData)==null?void 0:u.length)&&!h.isDel&&(this.topLayer.getElementsByName(v.toString())[0]||(h.isDel=!0,this.serviceWorkShapes.set(v,h))),e=!0;break}}for(const[v,h]of this.localWorkShapes.entries()){const{result:y,toolsType:T,totalRect:O,isDel:C,workState:S}=h;switch(T){case xt.LaserPen:{if(O&&(n.push({isClear:!0,rect:O,clearCanvas:Ut.TopFloat,viewId:this.viewId}),r.push({rect:O,drawCanvas:Ut.TopFloat,viewId:this.viewId})),C){h.node.clearTmpPoints(),this.localWorkShapes.delete(v),s.push({removeIds:[v.toString()],viewId:this.viewId,type:vt.RemoveNode});break}y&&((y.op||y.ops)&&s.push(y),h.result=void 0),!this.topLayer.getElementsByName(v.toString())[0]&&S===qt.Done&&(h.isDel=!0,this.localWorkShapes.set(v,h)),e=!0;break}}}e&&this.runAnimation(),t.size&&t.forEach((v,h)=>{s.push({type:vt.Cursor,uid:h.split(Vn)[0],op:v.op,workState:v.workState,viewId:this.viewId})}),(r.length||n.length||s.length)&&this.post({render:[...n,...r],sp:s})}runAnimation(){this.animationId||(this.animationId=setTimeout(()=>{this.animationId=void 0,this.animationDraw()},16))}}class tI extends Jc{constructor(t){super(t);dt(this,"_type","simple")}createWorkShapeNode(t){var n;const{toolsType:r}=t;return r===xt.Selector?this.vNodes?new Mi({...t,fullLayer:this.fullLayer,vNodes:this.vNodes,drawLayer:this.drawLayer}):void 0:Es({...t,vNodes:this.vNodes,fullLayer:this.fullLayer,drawLayer:this.drawLayer},(n=this.thread)==null?void 0:n.serviceWork)}async drawPencil(t,r){await this._post({consumeCount:this.consumeCount,render:[{rect:t==null?void 0:t.rect,workId:r,drawCanvas:Ut.Float,viewId:this.viewId}],sp:(t==null?void 0:t.op)&&[t]})}async drawShape(t){await this._post({consumeCount:this.consumeCount,sp:(t==null?void 0:t.op)&&[t],render:[{rect:(t==null?void 0:t.rect)&&ve(t.rect),isClear:!0,clearCanvas:Ut.Float,viewId:this.viewId},{rect:(t==null?void 0:t.rect)&&ve(t.rect),drawCanvas:Ut.Float,viewId:this.viewId}]})}async drawSelector(t,r,n,s=[]){var l,f,u,v;const c={render:s,sp:[t],consumeCount:this.consumeCount};(l=c.sp)==null||l.push({type:vt.SelectorTransform,emitEventType:he.SelectMethod,workState:r}),n&&((f=c.sp)==null||f.push({type:vt.None,isLockSentEventCursor:n})),t.subRect&&((u=c.render)==null||u.push({rect:ve(t.subRect),isClear:!0,clearCanvas:Ut.Float,viewId:this.viewId},{rect:ve(t.subRect),drawCanvas:Ut.Float,viewId:this.viewId})),t.rect&&((v=c.render)==null||v.push({rect:ve(t.rect),clearCanvas:Ut.Bg,isClear:!0,viewId:this.viewId},{rect:ve(t.rect),drawCanvas:Ut.Bg,viewId:this.viewId})),await this._post(c)}async drawEraserCombine(t){var n,s,c,l;const r=(n=this.workShapes.get(t))==null?void 0:n.combineConsume({workerEngine:this});if(r){const{willDeleteNodes:f,willNewNodes:u}=r,v={render:[],sp:[]};if(r!=null&&r.rect){const h=ve(r.rect);(s=v.render)==null||s.push({rect:h,isClear:!0,clearCanvas:Ut.Bg,viewId:this.viewId},{rect:h,drawCanvas:Ut.Bg,viewId:this.viewId})}if(f!=null&&f.size&&((c=v.sp)==null||c.push({type:vt.RemoveNode,removeIds:[...f],viewId:this.thread.viewId})),u!=null&&u.size)for(const[h,y]of u)(l=v.sp)==null||l.push({type:vt.FullWork,dataType:Kt.Local,toolsType:xt.Pencil,ops:hr(y.op),opt:y.opt,workId:h,updateNodeOpt:{useAnimation:!1}});await this._post(v)}}async consumeDraw(t,r){const{op:n,workId:s,scenePath:c,postCount:l,smoothSync:f}=t;if(n!=null&&n.length&&s){const u=s.toString(),v=this.getWorkShape(u);if(!v)return;const h=v.toolsType;if(h===xt.LaserPen)return;this.drawWorkActiveId&&this.drawWorkActiveId!==u&&(await this.consumeDrawAll({workId:this.drawWorkActiveId,scenePath:c,viewId:this.viewId,msgType:vt.DrawWork,dataType:Kt.Local},r),this.drawWorkActiveId=void 0),!this.drawWorkActiveId&&u!==Me&&(this.drawWorkActiveId=u),Qe(l)&&(this.consumeCount=l);const y=v.consume({data:t,isSimpleWorker:!0,smoothSync:f});switch(h){case xt.Selector:this.drawCount++,y.type===vt.Select&&y.selectIds&&r.runReverseSelectWork(y.selectIds),await this.drawSelector({...y,isSelecting:!0},t.workState||qt.Doing);break;case xt.PencilEraser:case xt.BitMapEraser:this.drawCount++,this.combineTimerId||(this.combineTimerId=1,this.combineDrawActiveId=u,this.drawEraserCombine(u).then(()=>{this.combineTimerId=void 0})),await this._post({consumeCount:this.consumeCount});break;case xt.Eraser:await this.drawEraser(y);break;case xt.Arrow:case xt.Straight:case xt.Ellipse:case xt.Rectangle:case xt.Star:case xt.Polygon:case xt.SpeechBalloon:y&&(this.drawCount++,await this.drawShape(y));break;case xt.Pencil:{this.drawCount++,await this.drawPencil(y,u);break}}}}async consumeDrawAll(t,r){var l,f,u;this.combineTimerId&&(clearTimeout(this.combineTimerId),this.combineTimerId=void 0,this.combineDrawResolve&&this.combineDrawResolve(!1),this.combineDrawActiveId=void 0);const{workId:n,scenePath:s,isLockSentEventCursor:c}=t;if(n){const v=n.toString();this.drawWorkActiveId===v&&(this.drawWorkActiveId=void 0);const h=this.workShapes.get(v);if(!h)return;const y=h.toolsType;if(y===xt.LaserPen)return;const T=this.workShapes.get(ri),O=(l=T==null?void 0:T.selectIds)==null?void 0:l[0],C=h.consumeAll({data:t,workerEngine:this});switch(y){case xt.Selector:const S=[];this.drawLayer&&(this.drawCount=0,Cr(this.drawLayer,this.drawLayer.parent),this.getWorkShape(v).clearSubTmpPoints(),S.push({isClearAll:!0,clearCanvas:Ut.Float,viewId:this.viewId})),C.selectIds&&O&&((f=C.selectIds)!=null&&f.includes(O))&&T.cursorBlur(),C.selectIds&&r.runReverseSelectWork(C.selectIds),await this.drawSelector({...C,scenePath:s,isSelecting:!1},qt.Done,c,S),(u=h.selectIds)!=null&&u.length?h.clearTmpPoints():this.clearWorkShapeNodeCache(v);break;case xt.PencilEraser:case xt.BitMapEraser:await this.drawEraserFull(h,{...C,scenePath:s},c,t.needUndoTicker),this.drawCount=0,this.clearWorkShapeNodeCache(v);break;case xt.Eraser:this.drawEraser({...C,scenePath:s},c,t.needUndoTicker),h.clearTmpPoints();break;case xt.Arrow:case xt.Straight:case xt.Ellipse:case xt.Rectangle:case xt.Star:case xt.Polygon:case xt.SpeechBalloon:case xt.Pencil:await this.drawPencilFull({...C,scenePath:s},c,t.needUndoTicker),this.drawCount=0,this.clearWorkShapeNodeCache(v);break}}}}class eI extends Qc{constructor(t){super(t);dt(this,"_type","simple")}async animationDraw(){var s,c,l,f,u,v,h,y,T,O,C,S,w,d,g,p,P,A,R,D,U,L,W,Y,B,N,$,J,et,ot,ut,K,Q,ft,mt,yt,Et,ht,Nt,Bt,G,H,rt,at;this.animationId=void 0;let t=!1;const r={render:[]},n=new Map;for(const[z,j]of this.workShapes.entries())switch(j.toolsType){case xt.BackgroundSVG:{const I=j.oldRect;I&&((s=r.render)==null||s.push({rect:I,isClear:!0,clearCanvas:Ut.Bg,viewId:this.viewId}),(c=r.render)==null||c.push({rect:I,drawCanvas:Ut.Bg,viewId:this.viewId}));const M=j.node.consumeService({isFullWork:!0,replaceId:z});this.selectorWorkShapes.forEach((X,Z)=>{var q;(q=X.selectIds)!=null&&q.includes(z)&&(this.willRunEffectSelectorIds.add(Z),this.noAnimationRect=Zt(this.noAnimationRect,I),this.noAnimationRect=Zt(this.noAnimationRect,M),this.runEffect())}),this.workShapes.delete(z),(l=r.render)==null||l.push({rect:M,drawCanvas:Ut.Bg,viewId:this.viewId});break}case xt.Image:{const I=j.oldRect;I&&((f=r.render)==null||f.push({rect:I,isClear:!0,clearCanvas:Ut.Bg,viewId:this.viewId}),(u=r.render)==null||u.push({rect:I,drawCanvas:Ut.Bg,viewId:this.viewId}));const M=await((v=j.node)==null?void 0:v.consumeServiceAsync({isFullWork:!0,worker:this.thread}));this.selectorWorkShapes.forEach((X,Z)=>{var q;(q=X.selectIds)!=null&&q.includes(z)&&(this.willRunEffectSelectorIds.add(Z),this.noAnimationRect=Zt(this.noAnimationRect,I),this.noAnimationRect=Zt(this.noAnimationRect,M),this.runEffect())}),this.workShapes.delete(z),(h=r.render)==null||h.push({rect:M,drawCanvas:Ut.Bg,viewId:this.viewId});break}case xt.Text:{if(j.node){const I=j.oldRect;I&&((y=r.render)==null||y.push({rect:I,isClear:!0,clearCanvas:Ut.Bg,viewId:this.viewId}),(T=r.render)==null||T.push({rect:I,drawCanvas:Ut.Bg,viewId:this.viewId}));const M=await j.node.consumeServiceAsync({isFullWork:!0,replaceId:z,boxRect:this.thread.getSceneRect()});this.selectorWorkShapes.forEach((X,Z)=>{var q;(q=X.selectIds)!=null&&q.includes(z)&&(this.willRunEffectSelectorIds.add(Z),this.noAnimationRect=Zt(this.noAnimationRect,I),this.noAnimationRect=Zt(this.noAnimationRect,M),this.runEffect())}),j.refreshTextRender&&j.requestId&&(r.sp=r.sp||[],r.sp.push({type:vt.RefreshTextRender,requestId:j.requestId,workId:z,viewId:this.viewId})),(O=j.node)==null||O.clearTmpPoints(),this.workShapes.delete(z),(C=r.render)==null||C.push({rect:M,drawCanvas:Ut.Bg,viewId:this.viewId})}break}case xt.Arrow:case xt.Straight:case xt.Rectangle:case xt.Ellipse:case xt.Star:case xt.Polygon:case xt.SpeechBalloon:{const I=!!j.ops;if((S=j.animationWorkData)!=null&&S.length){const M=j.oldRect,X=j.node.oldRect;M&&((w=r.render)==null||w.push({rect:M,isClear:!0,clearCanvas:Ut.Bg,viewId:this.viewId}),(d=r.render)==null||d.push({rect:M,drawCanvas:Ut.Bg,viewId:this.viewId})),X&&((g=r.render)==null||g.push({rect:X,isClear:!0,clearCanvas:Ut.ServiceFloat,viewId:this.viewId}));const Z=(p=j.node)==null?void 0:p.consumeService({op:j.animationWorkData,isFullWork:I});j.isEnableCursor?n.set(z,{workState:M?j.ops?qt.Done:qt.Doing:qt.Start,op:j.animationWorkData.slice(-3,-1)}):I&&!j.useAnimation&&((P=j.updateNodeOpt)!=null&&P.useAnimation)&&n.set(z,{workState:qt.Done,op:j.animationWorkData.slice(-3,-1),uid:(A=j.updateNodeOpt)==null?void 0:A.uid}),I?(this.selectorWorkShapes.forEach((q,nt)=>{var ct;(ct=q.selectIds)!=null&&ct.includes(z)&&(this.willRunEffectSelectorIds.add(nt),this.noAnimationRect=Zt(this.noAnimationRect,M),this.noAnimationRect=Zt(this.noAnimationRect,X),this.noAnimationRect=Zt(this.noAnimationRect,Z),this.runEffect())}),(R=j.node)==null||R.clearTmpPoints(),this.workShapes.delete(z),(D=r.render)==null||D.push({rect:Z,drawCanvas:Ut.Bg,viewId:this.viewId})):(U=r.render)==null||U.push({rect:Z,drawCanvas:Ut.ServiceFloat,workerType:I?void 0:Kt.Service,viewId:this.viewId}),j.animationWorkData.length=0}break}case xt.Pencil:{if(j.useAnimation){if(j.useAnimation){if(j.isDel){(ft=j.node)==null||ft.clearTmpPoints(),this.workShapes.delete(z);break}const I=3,M=this.computNextAnimationIndex(j,I),X=j.isDiff?0:Math.max(0,(j.animationIndex||0)-I),Z=(j.animationWorkData||[]).slice(0,M),q=(yt=(mt=j.node)==null?void 0:mt.getWorkId())==null?void 0:yt.toString();if((j.animationIndex||0)<M||j.isDiff){const nt=(Et=j.node)==null?void 0:Et.consumeService({op:Z,isFullWork:!1,replaceId:q});if((ht=r.render)==null||ht.push({isClear:!0,rect:nt,clearCanvas:Ut.ServiceFloat,viewId:this.viewId}),(Nt=r.render)==null||Nt.push({rect:nt,drawCanvas:Ut.ServiceFloat,viewId:this.viewId}),j.animationIndex=M,j.isDiff&&(j.isDiff=!1),Z.length&&j.isEnableCursor){const ct=Z.slice(-3,-1);n.set(z,{workState:X===0?qt.Start:M===((Bt=j.animationWorkData)==null?void 0:Bt.length)?qt.Done:qt.Doing,op:ct})}}else if(j.ops){const nt=(G=j.node)==null?void 0:G.consumeService({op:j.animationWorkData||[],isFullWork:!0,replaceId:q});j.isDel=!0,(H=r.render)==null||H.push({isClear:!0,rect:nt,clearCanvas:Ut.ServiceFloat,viewId:this.viewId},{rect:nt,drawCanvas:Ut.ServiceFloat,viewId:this.viewId},{isClear:!0,rect:nt,clearCanvas:Ut.Bg,viewId:this.viewId},{rect:nt,drawCanvas:Ut.Bg,viewId:this.viewId}),j.isEnableCursor&&n.set(z,{workState:qt.Done,op:Z.slice(-3,-1)})}t=!0;break}}else{const I=!!j.ops;let M=(L=j.node)==null?void 0:L.consumeService({op:j.animationWorkData||[],isFullWork:I,replaceId:z});const X=(W=j.node)==null?void 0:W.updataOptService(j.updateNodeOpt);if(I){if(M=Zt(M,X),(Y=r.render)==null||Y.push({isClear:!0,rect:Zt(j.oldRect,M),clearCanvas:Ut.Bg,viewId:this.viewId}),(B=r.render)==null||B.push({rect:Zt(j.oldRect,M),drawCanvas:Ut.Bg,viewId:this.viewId}),(N=j.updateNodeOpt)!=null&&N.useAnimation&&(($=r.render)==null||$.push({isClear:!0,rect:Zt(j.oldRect,M),clearCanvas:Ut.ServiceFloat,viewId:this.viewId}),(J=r.render)==null||J.push({rect:Zt(j.oldRect,M),drawCanvas:Ut.ServiceFloat,viewId:this.viewId}),!j.isEnableCursor&&((et=j.animationWorkData)!=null&&et.length))){const Z=j.animationWorkData.slice(-3,-1);n.set(z,{workState:qt.Done,op:Z,uid:(ot=j.updateNodeOpt)==null?void 0:ot.uid})}this.selectorWorkShapes.forEach((Z,q)=>{var nt;(nt=Z.selectIds)!=null&&nt.includes(z)&&(this.willRunEffectSelectorIds.add(q),this.noAnimationRect=Zt(this.noAnimationRect,M),this.runEffect())}),(ut=j.node)==null||ut.clearTmpPoints(),this.workShapes.delete(z)}else M=Zt(M,X),(K=r.render)==null||K.push({isClear:!0,rect:Zt(j.oldRect,M),clearCanvas:Ut.ServiceFloat,viewId:this.viewId}),(Q=r.render)==null||Q.push({rect:Zt(j.oldRect,M),drawCanvas:Ut.ServiceFloat,viewId:this.viewId})}break}}t&&this.runAnimation(),n.size&&(r.sp=r.sp||[],n.forEach((z,j)=>{var I;(I=r.sp)==null||I.push({type:vt.Cursor,uid:z.uid||j.split(Vn)[0],op:z.op,workState:z.workState,viewId:this.viewId})})),((rt=r.render)!=null&&rt.length||(at=r.sp)!=null&&at.length)&&await this.post(r)}}class qc extends ia{constructor(t){super(t);dt(this,"opt");dt(this,"scene");dt(this,"cameraOpt");dt(this,"vNodes");this.opt=t,this.vNodes=void 0}createSnapshotFullLayer(t,r){this.scene=this.opt.createScene(t),this.fullLayer=this.opt.createLayer("snapshotFullLayer",this.scene,r)}destroySnapshotFullLayer(){var t,r,n;Cr(this.fullLayer,this.fullLayer.parent),(t=this.fullLayer)==null||t.disconnect(),(r=this.fullLayer)==null||r.remove(),(n=this.scene)==null||n.remove(),this.scene=void 0}updateScene(t){if(!this.scene)throw new Error("SnapshotWork scene is not initialized");this.scene.attr({...t});const{width:r,height:n}=t;this.scene.width=r,this.scene.height=n,this.updateLayer({width:r,height:n})}updateLayer(t){if(!this.fullLayer)throw new Error("SnapshotWork snapshotFullLayer is not initialized");const{width:r,height:n}=t;this.fullLayer.parent.setAttribute("width",r),this.fullLayer.parent.setAttribute("height",n),this.fullLayer.setAttribute("size",[r,n]),this.fullLayer.setAttribute("pos",[r*.5,n*.5])}setCameraOpt(t){this.cameraOpt=t;const{scale:r,centerX:n,centerY:s,width:c,height:l}=t;if(!this.scene)throw new Error("SnapshotWork scene is not initialized");if(!this.fullLayer)throw new Error("SnapshotWork snapshotFullLayer is not initialized");(c!==this.scene.width||l!==this.scene.height)&&this.updateScene({width:c,height:l}),this.fullLayer.setAttribute("scale",[r,r]),this.fullLayer.setAttribute("translate",[-n,-s])}getOffscreen(){var r;return((r=this.fullLayer)==null?void 0:r.parent).canvas}getRectImageBitmap(t,r){const{rect:n}=t,s=this.thread.dpr,c=Math.floor(n.x*s),l=Math.floor(n.y*s),f=Math.floor(n.w*s),u=Math.floor(n.h*s);return createImageBitmap(this.getOffscreen(),c,l,f,u,r)}async getSnapshot(t){const{scenePath:r,scenes:n,cameraOpt:s,w:c,h:l}=t;if(r&&n&&s&&this.fullLayer){this.setCameraOpt(s);for(const[u,v]of Object.entries(n))if(v!=null&&v.type)switch(v==null?void 0:v.type){case vt.UpdateNode:case vt.FullWork:{const{opt:h}=v,y={...v,opt:h,workId:u,msgType:vt.FullWork,dataType:Kt.Service,viewId:this.viewId};await this.runFullWork(y);break}}let f;c&&l&&(f={resizeWidth:c,resizeHeight:l});try{await this.getSnapshotRender({scenePath:r,options:f})}catch(u){const v=u&&u instanceof Error?u.message:u==null?void 0:u.toString();console.error("[SnapshotWork] getSnapshotRender error",v),this.thread._post({sp:[{type:vt.ReportError,reportString:`[SnapshotWork] getSnapshotRender error: ${v}`}]})}}}async runFullWork(t){var s;const r=this.setFullWork(t),n=t.ops&&ti(t.ops);if(r){let c,l;const f=(s=r.getWorkId())==null?void 0:s.toString();return r.toolsType===xt.BackgroundSVG?c=r.consumeService({isFullWork:!0,replaceId:f}):r.toolsType===xt.Image?c=await r.consumeServiceAsync({isFullWork:!0,worker:this.thread}):r.toolsType===xt.Text?c=await r.consumeServiceAsync({isFullWork:!0,replaceId:f,isDrawLabel:!0}):(c=r.consumeService({op:n,isFullWork:!0,replaceId:f}),l=(t==null?void 0:t.updateNodeOpt)&&r.updataOptService(t.updateNodeOpt)),t.workId&&this.workShapes.delete(t.workId.toString()),Zt(c,l)}}getSceneRect(){if(!this.scene)throw new Error("SnapshotWork scene is not initialized");const{width:t,height:r}=this.scene;return{x:0,y:0,w:Math.floor(t),h:Math.floor(r)}}async getSnapshotRender(t){var c;const{scenePath:r,options:n}=t;((c=this.fullLayer)==null?void 0:c.parent).render();const s=await this.getRectImageBitmap({rect:this.getSceneRect(),drawCanvas:Ut.None},n);s&&(this.thread._post({sp:[{type:vt.Snapshot,scenePath:r,imageBitmap:s,viewId:this.viewId,index:0}]},[s]),s.close())}async getBoundingRect(t){const{scenePath:r,scenes:n,cameraOpt:s}=t;if(r&&n&&s&&this.fullLayer){this.setCameraOpt(s);let c;for(const[l,f]of Object.entries(n))if(f!=null&&f.type)switch(f==null?void 0:f.type){case vt.UpdateNode:case vt.FullWork:{const u=await this.runFullWork({...f,workId:l,msgType:vt.FullWork,dataType:Kt.Service,viewId:this.viewId});c=Zt(c,u);break}}c&&this.thread._post({sp:[{type:vt.BoundingBox,scenePath:r,rect:c,viewId:this.viewId}]})}}}var Ls=(i=>(i.Full="full",i.Sub="sub",i))(Ls||{});class rI{constructor(e,t){dt(this,"_self");dt(this,"version",Yf);dt(this,"type");dt(this,"workThreadMap",new Map);dt(this,"post",(e,t)=>{t?this._self.postMessage(e,t):this._self.postMessage(e)});this._self=e,this.type=t,this.register()}init(e){const{viewId:t,dpr:r,offscreenCanvasOpt:n,layerOpt:s,isSafari:c,combineUnitTime:l,syncUnitTime:f,maxCombineEraserTime:u,offscreenCanvas:v,isUseSimple:h}=e;if(!r||!n||!s)return;let y;this.type==="full"&&(h?y=new nI(t,{dpr:r,offscreenCanvasOpt:n,layerOpt:s,combineUnitTime:l,syncUnitTime:f,maxCombineEraserTime:u,offscreenCanvas:v},this.post):y=new tu(t,{dpr:r,offscreenCanvasOpt:n,layerOpt:s,combineUnitTime:l,syncUnitTime:f,maxCombineEraserTime:u},this.post)),this.type==="sub"&&!h&&(y=new _c(t,{dpr:r,offscreenCanvasOpt:n,layerOpt:s,isUseSimple:h},this.post)),y&&c&&y.setIsSafari(c),y&&e.cameraOpt&&y.setCameraOpt(e.cameraOpt);const T=this.workThreadMap.get(t);T==null||T.destroy(),y&&this.workThreadMap.set(t,y)}getFontFaceCssValue(e){return`12px "${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}async setFontFaces(e,t){const r=[],n=[];for(const s of e){const{fontFamily:c,buffer:l}=s;try{if(!l||l.byteLength===0)throw new Error(`Invalid font data for ${c}: empty buffer`);let f;try{f=new FontFace(c,l)}catch{const v=new Uint8Array(l);f=new FontFace(c,v)}const u=this._self.fonts;if(!u)throw new Error("Worker FontFaceSet is unavailable");await f.load(),u.add(f);try{await f.loaded,r.push(c)}catch(v){const h=this._self.fonts;if(h&&typeof h.load=="function")try{const y=h.load(this.getFontFaceCssValue(c)),T=new Promise((C,S)=>setTimeout(()=>S(new Error(`Font load timeout for ${c}`)),5e3)),O=await Promise.race([y,T]);if(O&&O.length>0)r.push(c);else throw new Error(`Font ${c} load returned empty result`)}catch(y){if(await this.isFontAvailable(c))r.push(c);else throw y}else if(await this.isFontAvailable(c))r.push(c);else throw v}}catch(f){console.error(`Font ${c} load error: ${f}`),n.push(c)}}this.post({sp:[{type:vt.SetFontFace,requestId:t,setFontFaceResult:n.length===0,failedFonts:n.length>0?n:void 0}]})}async isFontAvailable(e){try{const t=this._self.fonts;if(!t)return!1;let r=!1,n=null;for(const s of t)if(s.family===e){r=!0,n=s;break}if(!r||!n)return!1;if(n.status==="loaded")return!0;try{return await n.loaded,!0}catch{if(t&&typeof t.load=="function")try{const s=await t.load(this.getFontFaceCssValue(e));return s&&s.length>0}catch{return!1}else return!0}}catch{return!1}}async areFontFacesAvailable(e=[]){for(const t of e)if(!await this.isFontAvailable(t.fontFamily))return!1;return!0}register(){onmessage=async e=>{const t=e.data;if(t)for await(const r of t.values()){const{msgType:n,viewId:s,tasksqueue:c,mainTasksqueueCount:l,fontBuffers:f,fontFaces:u,requestId:v}=r;if(n===vt.CheckFontFace){const y=await this.areFontFacesAvailable(u);this.post({sp:[{type:vt.CheckFontFace,requestId:v,fontFaceCheckResult:y}]});continue}if(f){this.setFontFaces(f,v);continue}if(n===vt.Console){console.log(this);continue}if(n===vt.Init){this.init(r);continue}if(n===vt.TasksQueue&&(c!=null&&c.size)){for(const[y,T]of this.workThreadMap.entries()){const O=c.get(y);O&&T.on(O)}this.type==="full"&&Qe(l)&&this.post({workerTasksqueueCount:l});continue}if(s===hd){for(const y of this.workThreadMap.values())await y.on(r);n===vt.Destroy&&this.workThreadMap.clear();continue}const h=this.workThreadMap.get(s);h&&(await h.on(r),n===vt.Destroy&&this.workThreadMap.delete(s))}}}}class _c extends Xc{constructor(t,r,n){super(t,r,"sub");dt(this,"type","sub");dt(this,"_post");dt(this,"topLayer");dt(this,"serviceWork");dt(this,"localWork");dt(this,"topLayerWork");dt(this,"snapshotWork");this._post=n;const s=ur.bufferSize.sub;this.topLayer=r.isUseSimple?void 0:this.createLayer("topLayer",this.scene,{...r.layerOpt,bufferSize:s,contextType:"2d"});const c={thread:this,viewId:this.viewId,vNodes:this.vNodes,fullLayer:this.fullLayer,topLayer:this.topLayer,isUseSimple:r.isUseSimple};this.localWork=new qC(c),r.isUseSimple||(this.topLayerWork=new _C(c)),this.snapshotWork=new qc({...c,createScene:this.createScene.bind(this),createLayer:this.createLayer.bind(this)}),this.vNodes.init(this.fullLayer)}async combinePost(){var c,l;const{render:t,...r}=this.combinePostData();let n;if(t!=null&&t.length){const f=[];for(const u of t)if(u.rect){if(u.rect=Uc(ar(u.rect),this.scene,this.dpr),!u.rect)continue;if(u.drawCanvas&&u.rect&&u.rect.w>0&&u.rect.h>0){const v=await this.getRectImageBitmap(u);u.imageBitmap=v,n||(n=[]),n.push(v)}f.push(u)}r.render=f}const s=(c=r.sp)==null?void 0:c.filter(f=>f.type!==vt.None||f.isLockSentEventCursor||f.needUndoTicker||f.collectUndoTicker);s!=null&&s.length?r.sp=s.map(f=>({...f,viewId:this.viewId})):delete r.sp,r.consumeCount===void 0&&delete r.consumeCount,r.subWorkerDrawCount===void 0&&delete r.subWorkerDrawCount,(s!=null&&s.length||r.consumeCount||r.subWorkerDrawCount||(l=r==null?void 0:r.render)!=null&&l.length)&&this._post(r,n),this.delayPostDoneResolve&&this.delayPostDoneResolve(!0)}async on(t){var u,v;const{msgType:r,toolsType:n,opt:s,dataType:c,workState:l,isLockSentEventCursor:f}=t;switch(r){case vt.UpdateTools:{if(n&&((u=this.topLayerWork)!=null&&u.canUseTopLayer(n))&&s){const h={toolsType:n,toolsOpt:s};this.topLayerWork.setToolsOpt(h);return}break}case vt.CreateWork:{this.createLocalWork(t);return}case vt.DrawWork:{l===qt.Done&&c===Kt.Local?(await this.consumeDrawAll(c,t),n===xt.LaserPen&&f&&this.post({sp:[{type:vt.None,isLockSentEventCursor:f}]})):this.consumeDraw(c,t);return}case vt.RemoveNode:{await this.removeNode(t);return}case vt.FullWork:{n&&((v=this.topLayerWork)!=null&&v.canUseTopLayer(n))?await this.consumeDrawAll(c,t):c===Kt.Local&&t.clearPreviewLocalWork&&t.workId&&await this.localWork.consumeDrawAll({...t,msgType:vt.DrawWork,workState:qt.Done});return}case vt.Snapshot:{this.snapshotWork.createSnapshotFullLayer(this.opt,{...this.opt.layerOpt,bufferSize:this.viewId===Wn?6e3:3e3,contextType:"2d"}),await this.snapshotWork.getSnapshot(t),this.snapshotWork.destroySnapshotFullLayer();return}case vt.BoundingBox:{this.snapshotWork.createSnapshotFullLayer(this.opt,{...this.opt.layerOpt,bufferSize:this.viewId===Wn?6e3:3e3,contextType:"2d"}),await this.snapshotWork.getBoundingRect(t),this.snapshotWork.destroySnapshotFullLayer();return}}await super.on(t)}createLocalWork(t){var c;const{workId:r,toolsType:n,opt:s}=t;if(n&&((c=this.topLayerWork)!=null&&c.canUseTopLayer(n))&&r&&s){this.topLayerWork.getToolsOpt()||this.topLayerWork.setToolsOpt({toolsType:n,toolsOpt:s}),this.topLayerWork.setWorkOptions(r.toString(),s);return}n&&super.createLocalWork(t)}async removeNode(t){const{dataType:r}=t;r===Kt.Local&&await this.localWork.removeWork(t)}getLayer(t){switch(t){case Ut.TopFloat:return this.topLayer||this.fullLayer;default:return this.fullLayer}}getOffscreen(t){var n;return((n=this.getLayer(t))==null?void 0:n.parent).canvas}async consumeDraw(t,r){var c;const{workId:n,toolsType:s}=r;if(n){if(s&&((c=this.topLayerWork)!=null&&c.canUseTopLayer(s))){t===Kt.Local&&(this.topLayerWork.getWorkShape(n.toString())||this.createLocalWork(r)),this.topLayerWork.consumeDraw(r);return}s&&(this.localWork.getWorkShape(n.toString())||this.createLocalWork(r),await this.localWork.consumeDraw(r));return}}async consumeDrawAll(t,r){var l;const{workId:n,toolsType:s,dataType:c}=r;if(n){const f=n.toString();if(s&&((l=this.topLayerWork)!=null&&l.canUseTopLayer(s))){c===Kt.Local&&(this.topLayerWork.getWorkShape(f)||this.createLocalWork(r)),this.topLayerWork.consumeDrawAll(r);return}s&&(this.localWork.getWorkShape(f)||super.createLocalWork(r),this.localWork.consumeDrawAll(r));return}}async clearAll(){this.vNodes.clear(),super.clearAll(),this.topLayer&&(this.topLayer.parent.children.forEach(t=>{t.name!=="viewport"&&t.remove()}),Cr(this.topLayer,this.topLayer.parent)),await this.post({render:[{isClearAll:!0,clearCanvas:Ut.TopFloat,viewId:this.viewId}],sp:[{type:vt.Clear}]})}getRectImageBitmap(t,r){const{rect:n,drawCanvas:s}=t,c=Math.floor(n.x*this.dpr),l=Math.floor(n.y*this.dpr),f=Math.floor(n.w*this.dpr||1),u=Math.floor(n.h*this.dpr||1);return createImageBitmap(this.getOffscreen(s),c,l,f,u,r)}updateLayer(t){const{width:r,height:n}=t;super.updateLayer(t),this.topLayer&&(this.topLayer.parent.setAttribute("width",r),this.topLayer.parent.setAttribute("height",n),this.topLayer.setAttribute("size",[r,n]),this.topLayer.setAttribute("pos",[r*.5,n*.5]))}async updateDpr(t){super.updateDpr(t);const r=this.topLayerWork&&!!this.topLayerWork.localWorkShapes.size||!1,n=!!this.localWork.getWorkShapes().size,s=[];n&&s.push({isClearAll:!0,clearCanvas:Ut.Float,viewId:this.viewId}),r&&s.push({isClearAll:!0,clearCanvas:Ut.TopFloat,viewId:this.viewId}),s.length&&await this.post({render:s})}async updateCamera(t){var s;const r=[],{cameraOpt:n}=t;if(n&&!Qr(this.cameraOpt,n)){const c=this.topLayerWork&&!!this.topLayerWork.localWorkShapes.size||!1,l=!!this.localWork.getWorkShapes().size;if(l&&this.localWork.workShapesDone(),this.setCameraOpt(n),l&&r.push({isClearAll:!0,clearCanvas:Ut.Float,viewId:this.viewId}),c&&this.topLayerWork){r.push({isClearAll:!0,clearCanvas:Ut.TopFloat,viewId:this.viewId});for(const[f,u]of this.topLayerWork.localWorkShapes.entries()||[])if(u.totalRect){let v;(s=this.topLayer)==null||s.getElementsByName(f.toString()).forEach(h=>{const y=h.getBoundingClientRect(),T=ve({x:y.x,y:y.y,w:y.width,h:y.height});v=Zt(v,T)}),u.totalRect=v,this.topLayerWork.localWorkShapes.set(f,u)}}r.length&&await this.post({render:r})}}setCameraOpt(t,r){var u,v;this.cameraOpt=t;const{scale:n,centerX:s,centerY:c,width:l,height:f}=t;(l!==this.scene.width||f!==this.scene.height)&&this.updateScene(this.scene,{width:l,height:f}),r?(r.setAttribute("scale",[n,n]),r.setAttribute("translate",[-s,-c])):(this.fullLayer.setAttribute("scale",[n,n]),this.fullLayer.setAttribute("translate",[-s,-c]),(u=this.topLayer)==null||u.setAttribute("scale",[n,n]),(v=this.topLayer)==null||v.setAttribute("translate",[-s,-c]))}}class tu extends Xc{constructor(t,r,n){super(t,r,"full");dt(this,"serviceDrawLayer");dt(this,"localDrawLayer");dt(this,"snapshotFullLayer");dt(this,"methodBuilder");dt(this,"localWork");dt(this,"serviceWork");dt(this,"_post");dt(this,"debounceUpdateCache",new Set);this._post=n;const s=ur.bufferSize.sub;this.serviceDrawLayer=this.createLayer("serviceDrawLayer",this.scene,{...r.layerOpt,bufferSize:s,contextType:"2d"}),this.localDrawLayer=this.createLayer("localDrawLayer",this.scene,{...r.layerOpt,bufferSize:s,contextType:"2d"});const c={thread:this,viewId:this.viewId,vNodes:this.vNodes,fullLayer:this.fullLayer};this.localWork=new Jc({...c,drawLayer:this.localDrawLayer}),r.combineUnitTime&&this.localWork.setCombineUnitTime(r.combineUnitTime),r.maxCombineEraserTime&&this.localWork.setmaxCombineEraserTime(r.maxCombineEraserTime),r.syncUnitTime&&this.localWork.setSyncUnitTime(r.syncUnitTime),this.serviceWork=new Qc({...c,drawLayer:this.serviceDrawLayer}),this.methodBuilder=new Ul([he.CopyNode,he.SetColorNode,he.DeleteNode,he.RotateNode,he.ScaleNode,he.TranslateNode,he.ZIndexNode,he.SetFontStyle,he.SetPoint,he.SetLock,he.SetShapeOpt]).registerForWorker(this),this.vNodes.init(this.fullLayer)}async combinePost(){var c,l;const{render:t,...r}=this.combinePostData();let n;if(t!=null&&t.length){const f=[];for(const u of t)if(u.rect){if(u.rect=Uc(ar(u.rect),this.scene,this.dpr),!u.rect)continue;if(u.drawCanvas&&u.rect&&u.rect.w>0&&u.rect.h>0){const v=await this.getRectImageBitmap(u);u.imageBitmap=v,n||(n=[]),n.push(v)}f.push(u)}r.render=f}const s=(c=r.sp)==null?void 0:c.filter(f=>f.type!==vt.None||f.isLockSentEventCursor||f.needUndoTicker||f.collectUndoTicker);s!=null&&s.length?r.sp=s.map(f=>({...f,viewId:this.viewId})):delete r.sp,r.fullWorkerDrawCount===void 0&&delete r.fullWorkerDrawCount,r.consumeCount===void 0&&delete r.consumeCount,(r!=null&&r.fullWorkerDrawCount||r.consumeCount||s!=null&&s.length||(l=r.render)!=null&&l.length)&&this._post(r,n),this.delayPostDoneResolve&&this.delayPostDoneResolve(!0)}async on(t){if(this.methodBuilder.consumeForWorker(t))return;const{msgType:r,dataType:n,workId:s,toolsType:c,workState:l,workIds:f}=t;switch(r){case vt.AuthClear:{const{clearUids:u,localUid:v}=t;this.vNodes.setCanClearUids(u),this.vNodes.setLocalUid(v);break}case vt.CreateWork:c!==xt.LaserPen&&this.createLocalWork(t);break;case vt.DrawWork:c!==xt.LaserPen&&(l===qt.Done&&n===Kt.Local?await this.consumeDrawAll(n,t):this.consumeDraw(n,t));break;case vt.Select:s===Me?await this.localWork.updateFullSelectWork(t):this.serviceWork.runSelectWork(t);return;case vt.UpdateNode:case vt.FullWork:{this.consumeFull(n,t);return}case vt.RemoveNode:await this.removeNode(t);return;case vt.GetTextActive:await this.checkTextActive(t);return;case vt.CursorHover:await this.cursorHover(t);return;case vt.CursorBlur:await this.cursorBlur();return;case vt.GetVNodeInfo:if(s&&f){const u=f.map(v=>this.vNodes.get(v));this.post({sp:[{type:vt.GetVNodeInfo,dataType:Kt.Worker,workId:s,vInfo:u}]})}break}await super.on(t)}async removeNode(t){const{dataType:r,workId:n,removeIds:s}=t,c=[],l=s||[];if(n&&l.push(n.toString()),l.length){for(const f of l)f===Me?c.push(this.localWork.removeSelector(t,this)):r===Kt.Local?c.push(this.localWork.removeWork(t).then(()=>{this.localWork.colloctEffectSelectWork(t),this.deleteCachedImagesByWorkId(f)})):r===Kt.Service&&c.push(this.serviceWork.removeWork(t).then(()=>{this.localWork.colloctEffectSelectWork(t),this.deleteCachedImagesByWorkId(f)}));await Promise.all(c)}}async checkTextActive(t){const{dataType:r}=t;r===Kt.Local&&await this.localWork.checkTextActive(t)}async clearAll(){this.vNodes.clear(),super.clearAll(),this.localDrawLayer&&(this.localDrawLayer.parent.children.forEach(t=>{t.name!=="viewport"&&t.remove()}),Cr(this.localDrawLayer,this.localDrawLayer.parent)),this.serviceDrawLayer&&(this.serviceDrawLayer.parent.children.forEach(t=>{t.name!=="viewport"&&t.remove()}),Cr(this.serviceDrawLayer,this.serviceDrawLayer.parent)),await this.post({render:[{isClearAll:!0,clearCanvas:Ut.Bg,viewId:this.viewId},{isClearAll:!0,clearCanvas:Ut.ServiceFloat,viewId:this.viewId},{isClearAll:!0,clearCanvas:Ut.Float,viewId:this.viewId}],sp:[{type:vt.Clear}]})}updateLayer(t){const{width:r,height:n}=t;super.updateLayer(t),this.localDrawLayer&&(this.localDrawLayer.parent.setAttribute("width",r),this.localDrawLayer.parent.setAttribute("height",n),this.localDrawLayer.setAttribute("size",[r,n]),this.localDrawLayer.setAttribute("pos",[r*.5,n*.5])),this.serviceDrawLayer&&(this.serviceDrawLayer.parent.setAttribute("width",r),this.serviceDrawLayer.parent.setAttribute("height",n),this.serviceDrawLayer.setAttribute("size",[r,n]),this.serviceDrawLayer.setAttribute("pos",[r*.5,n*.5]))}setCameraOpt(t){this.cameraOpt=t;const{scale:r,centerX:n,centerY:s,width:c,height:l}=t;(c!==this.scene.width||l!==this.scene.height)&&this.updateScene(this.scene,{width:c,height:l}),this.fullLayer&&(this.fullLayer.setAttribute("scale",[r,r]),this.fullLayer.setAttribute("translate",[-n,-s])),this.localDrawLayer&&(this.localDrawLayer.setAttribute("scale",[r,r]),this.localDrawLayer.setAttribute("translate",[-n,-s])),this.serviceDrawLayer&&(this.serviceDrawLayer.setAttribute("scale",[r,r]),this.serviceDrawLayer.setAttribute("translate",[-n,-s]))}getLayer(t){switch(t){case Ut.Bg:return this.fullLayer;case Ut.ServiceFloat:return this.serviceDrawLayer;case Ut.Float:return this.localDrawLayer}}getOffscreen(t){return this.getLayer(t).parent.canvas}async consumeFull(t,r){const n=await this.localWork.colloctEffectSelectWork(r);n&&t===Kt.Local&&await this.localWork.consumeFull(n),n&&t===Kt.Service&&this.serviceWork.consumeFull(n)}async consumeDraw(t,r){const{workId:n}=r;t===Kt.Local&&n&&(this.localWork.getWorkShape(n.toString())||this.createLocalWork(r),await this.localWork.consumeDraw(r,this.serviceWork)),t===Kt.Service&&this.serviceWork.consumeDraw(r)}async consumeDrawAll(t,r){const{workId:n}=r;t===Kt.Local&&n&&(this.localWork.getWorkShape(n.toString())||this.createLocalWork(r),await this.localWork.consumeDrawAll(r,this.serviceWork))}async updateDpr(t){super.updateDpr(t),await this.post({render:[{isClearAll:!0,clearCanvas:Ut.Bg,viewId:this.viewId},{isDrawAll:!0,drawCanvas:Ut.Bg,viewId:this.viewId}]})}async updateCamera(t){var c,l,f,u,v;const r=[],{cameraOpt:n,scenePath:s}=t;if(n&&!Qr(this.cameraOpt,n)){this.taskUpdateCameraId&&(clearTimeout(this.taskUpdateCameraId),this.taskUpdateCameraId=void 0);const h=!!this.serviceDrawLayer.children.length;if(s){let S=!1;for(const[w,d]of this.localWork.getWorkShapes().entries())switch(d.toolsType){case xt.Text:case xt.PencilEraser:case xt.Eraser:case xt.Selector:case xt.LaserPen:break;default:w!==ri&&w!==Me&&(S=!0);break}if(S){this.taskUpdateCameraId=setTimeout(()=>{this.taskUpdateCameraId=void 0,this.updateCamera(t)},pc);return}}const y=new Map;for(const[S,w]of this.vNodes.getNodesByType(xt.Text).entries()){const d=w.rect;y.set(S,{rect:ar(d),scale:(c=this.cameraOpt)==null?void 0:c.scale})}for(const[S,w]of this.vNodes.gethasEraserNodes().entries()){const d=w.rect;y.set(S,{rect:ar(d),scale:(l=this.cameraOpt)==null?void 0:l.scale})}const T=new Set(y.keys());let O=!1;if(this.localWork.hasSelector()){const S=(f=this.localWork.getSelector())==null?void 0:f.selectIds;if(S){O=!0;for(const w of S)T.add(w)}}let C=!1;if(this.serviceWork.selectorWorkShapes.size)for(const S of this.serviceWork.selectorWorkShapes.values()){const w=S.selectIds;if(w){C=!0;for(const d of w)T.add(d)}}if(this.setCameraOpt(n),this.vNodes.curNodeMap.size){this.vNodes.clearTarget(),this.vNodes.updateHighLevelNodesRect(T),this.debounceUpdateCameraId&&clearTimeout(this.debounceUpdateCameraId);for(const[S,{rect:w,scale:d}]of y.entries()){const g=this.vNodes.get(S);if(g){const p=w,P=g.rect,A=this.getSceneRect(),R=Bi(p,A),D=Bi(P,A),{toolsType:U,opt:L}=g;let W=!1;(R!==D||p.w!==P.w||p.h!==P.h||D===yr.intersect)&&(W=!0),U===xt.Text&&W&&this.debounceUpdateCache.add(S);let Y=!1;d&&((u=this.cameraOpt)!=null&&u.scale)&&d>this.cameraOpt.scale?D!==yr.outside&&R!==yr.inside&&(Y=!0):d&&((v=this.cameraOpt)!=null&&v.scale)&&d===this.cameraOpt.scale&&(p.x!==P.x||p.y!==P.y)&&(D===yr.inside&&R!==yr.inside||D===yr.intersect&&R===yr.intersect)&&(Y=!0),L.eraserlines&&L.eraserlines.length&&Y&&!this.debounceUpdateCache.has(S)&&this.debounceUpdateCache.add(S)}}if(O&&this.localWork.reRenderSelector(),C)for(const[S,w]of this.serviceWork.selectorWorkShapes.entries())this.serviceWork.runSelectWork({workId:S,selectIds:w.selectIds,msgType:vt.Select,dataType:Kt.Service,viewId:this.viewId});this.debounceUpdateCameraId=setTimeout(()=>{var w;this.debounceUpdateCameraId=void 0;const S=[];for(const d of this.debounceUpdateCache.values()){const g=this.vNodes.get(d);if(g){const{toolsType:p,opt:P,op:A}=g,R=this.localWork.setFullWork({toolsType:p,opt:P,workId:d});R&&(p===xt.Text?(w=this.fullLayer)!=null&&w.getElementsByName(d)[0]&&R instanceof bi&&S.push(R.consumeServiceAsync({isFullWork:!0,replaceId:d,boxRect:this.getSceneRect()})):P.eraserlines&&P.eraserlines.length&&S.push(new Promise(D=>{const U=R.consumeService({op:A,isFullWork:!0,replaceId:d,workState:qt.Done});this.localWork.clearWorkShapeNodeCache(d),D(U)})))}this.debounceUpdateCache.delete(d)}S.length?Promise.all(S).then(()=>{const d=[];d.push({isClearAll:!0,clearCanvas:Ut.Bg,viewId:this.viewId},{isDrawAll:!0,drawCanvas:Ut.Bg,viewId:this.viewId}),d.length&&this.post({render:d}),this.vNodes.updateLowLevelNodesRect(),this.vNodes.clearHighLevelIds()}):(this.vNodes.updateLowLevelNodesRect(),this.vNodes.clearHighLevelIds())},pc*5)}h&&r.push({isClearAll:!0,clearCanvas:Ut.ServiceFloat,viewId:this.viewId}),this.vNodes.hasRenderNodes()&&r.push({isClearAll:!0,clearCanvas:Ut.Bg,viewId:this.viewId},{isDrawAll:!0,drawCanvas:Ut.Bg,viewId:this.viewId}),r.length&&this.post({render:r})}}getRectImageBitmap(t){const{rect:r,drawCanvas:n}=t,s=Math.floor(r.x*this.dpr),c=Math.floor(r.y*this.dpr),l=Math.floor(r.w*this.dpr||1),f=Math.floor(r.h*this.dpr||1);return createImageBitmap(this.getOffscreen(n),s,c,l,f,{resizeQuality:"low"})}async cursorHover(t){await this.localWork.cursorHover(t)}async cursorBlur(){await this.localWork.cursorBlur()}destroy(){super.destroy()}}class nI extends tu{constructor(t,r,n){var c,l,f,u;super(t,r,n);dt(this,"snapshotWork");dt(this,"localDrawScene");dt(this,"serviceDrawScene");dt(this,"offscreenCanvas");dt(this,"localWork");dt(this,"serviceWork");if(this._post=n,r.offscreenCanvas){this.offscreenCanvas=r.offscreenCanvas,this.localDrawScene=this.createScene(r,(c=this.offscreenCanvas)==null?void 0:c.localCanvas),this.serviceDrawScene=this.createScene(r,(l=this.offscreenCanvas)==null?void 0:l.serviceCanvas);const v=ur.bufferSize.sub;this.serviceDrawLayer=this.createLayer("serviceDrawLayer",this.serviceDrawScene||this.scene,{...r.layerOpt,bufferSize:v,contextType:"2d"},(f=this.offscreenCanvas)==null?void 0:f.serviceCanvas),this.localDrawLayer=this.createLayer("localDrawLayer",this.localDrawScene||this.scene,{...r.layerOpt,bufferSize:v,contextType:"2d"},(u=this.offscreenCanvas)==null?void 0:u.localCanvas)}const s={thread:this,viewId:this.viewId,vNodes:this.vNodes,fullLayer:this.fullLayer};this.localWork=new tI({...s,drawLayer:this.localDrawLayer}),r.combineUnitTime&&this.localWork.setCombineUnitTime(r.combineUnitTime),r.maxCombineEraserTime&&this.localWork.setmaxCombineEraserTime(r.maxCombineEraserTime),r.syncUnitTime&&this.localWork.setSyncUnitTime(r.syncUnitTime),this.serviceWork=new eI({...s,drawLayer:this.serviceDrawLayer}),this.snapshotWork=new qc({...s,createScene:this.createScene.bind(this),createLayer:this.createLayer.bind(this)}),this.methodBuilder=new Ul([he.CopyNode,he.SetColorNode,he.DeleteNode,he.RotateNode,he.ScaleNode,he.TranslateNode,he.ZIndexNode,he.SetFontStyle,he.SetPoint,he.SetLock,he.SetShapeOpt]).registerForWorker(this)}createRenderLayer(t,r,n){var l;const s=ur.bufferSize.full,c=ur.bufferSize.sub;this.fullLayer=this.createLayer("fullLayer",t,{...r.layerOpt,bufferSize:this.viewId===Wn?s:c*2},n||((l=r.offscreenCanvas)==null?void 0:l.bgCanvas))}createScene(t,r){const{offscreenCanvas:n,offscreenCanvasOpt:s}=t,{width:c,height:l}=s,f=r||(n==null?void 0:n.bgCanvas)||new OffscreenCanvas(c,l);s.contextType&&delete s.contextType;const u=new Wl({container:f,displayRatio:this.dpr,depth:!1,desynchronized:!0,failIfMajorPerformanceCaveat:!0,...s,contextType:this.contextType,id:this.viewId});return u.setAttribute("id",this.viewId),u}combinePostData(){var c,l;this.workerTaskId=void 0;const t=[],r=[];let n;const s=new Set;for(const f of this.combinePostMsg.values()){if((c=f.render)!=null&&c.length)try{if(this.offscreenCanvas)for(const u of f.render){u.workId&&s.add(u.workId);const v=u.drawCanvas||u.clearCanvas;if(v){const h=this.getLayer(v);if(!h||!(h.parent instanceof wo))continue;h.parent.render()}}else for(const u of f.render){let v=!1;if(u.workId&&s.add(u.workId),u.isClearAll&&(u.rect=this.getSceneRect(),u.isClear=!0,delete u.isClearAll),u.drawCanvas){const h=this.getLayer(u.drawCanvas);if(!h||!(h.parent instanceof wo))continue;if(h.parent.render(),u.isDrawAll){const y=this.getSceneRect();u.rect=y,delete u.isDrawAll}}for(const h of t)if(u.viewId===h.viewId){u.isClear&&h.clearCanvas&&h.isClear&&h.clearCanvas===u.clearCanvas&&(h.rect=Zt(h.rect,u.rect),v=!0),h.drawCanvas&&h.drawCanvas===u.drawCanvas&&(h.rect=Zt(h.rect,u.rect),v=!0);continue}v||(u.isClear&&!u.drawCanvas?t.unshift(u):t.push(u))}}catch(u){const v=u&&u instanceof Error?u.message:u==null?void 0:u.toString();console.error("[WorkThreadEngineForSimpleWorker] combinePostData error",v),r.push({type:vt.ReportError,reportString:`[WorkThreadEngineForSimpleWorker] combinePostData error: ${v}`})}if((l=f.sp)!=null&&l.length)for(const u of f.sp){let v=!1;for(const h of r)if(Qr(u,h)){v=!0;break}v||r.push(u)}Qe(f.consumeCount)&&(n=f.consumeCount)}return this.combinePostMsg.clear(),{render:t,sp:r,consumeCount:n,workIds:s,viewId:this.viewId}}async on(t){if(this.methodBuilder.consumeForWorker(t))return;const{msgType:r}=t;switch(r){case vt.Snapshot:this.snapshotWork.createSnapshotFullLayer(this.opt,{...this.opt.layerOpt,bufferSize:this.viewId===Wn?6e3:3e3,contextType:"2d"}),await this.snapshotWork.getSnapshot(t),this.snapshotWork.destroySnapshotFullLayer();return;case vt.BoundingBox:this.snapshotWork.createSnapshotFullLayer(this.opt,{...this.opt.layerOpt,bufferSize:this.viewId===Wn?6e3:3e3,contextType:"2d"}),await this.snapshotWork.getBoundingRect(t),this.snapshotWork.destroySnapshotFullLayer();return}await super.on(t)}setCameraOpt(t){if(this.localDrawScene&&this.serviceDrawScene){const{width:r,height:n}=t;(r!==this.localDrawScene.width||n!==this.localDrawScene.height)&&this.updateScene(this.localDrawScene,{width:r,height:n},this.localDrawLayer),(r!==this.serviceDrawScene.width||n!==this.serviceDrawScene.height)&&this.updateScene(this.serviceDrawScene,{width:r,height:n},this.serviceDrawLayer)}super.setCameraOpt(t)}async updateDpr(t){this.localDrawScene&&this.serviceDrawScene&&(this.localDrawScene.displayRatio=t,this.serviceDrawScene.displayRatio=t),super.updateDpr(t)}}const eu=self;eu.full=new rI(eu,Ls.Full)})();
|