main-BVJfb_x5.js 177 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473
  1. import"./modulepreload-polyfill-B5Qt9EMX.js";class ue{constructor(t,e){this.x=t,this.y=e}}class At{constructor(t,e,r,h){this.x=t,this.y=e,this.width=r,this.height=h}get center(){return new ue(this.x+this.width/2,this.y+this.height/2)}static fromCenter(t,e,r){return new At(t.x-e/2,t.y-r/2,e,r)}toString(){return`Rect(${this.x}, ${this.y},${this.width}, ${this.height})`}vertex(){var t=this.x,e=this.x+this.width,r=this.y,h=this.y+this.height;return[t,r,e,r,t,h,t,h,e,r,e,h]}coverRadius(t,e){var r,h;t>this.x+this.width/2?r=this.x:r=this.x+this.width,e>this.y+this.height/2?h=this.y:h=this.y+this.height;var a=t-r,n=e-h;return Math.sqrt(a*a+n*n)}centerFitTo(t){const e=Math.min(t.width/this.width,t.height/this.height),r=e*this.width,h=e*this.height,a=t.width/2-r/2,n=t.height/2-h/2;return new At(t.x+a,t.y+n,r,h)}}function jt(l,t,e){var r,h;t>l.x+l.width/2?r=l.x:r=l.x+l.width,e>l.y+l.height/2?h=l.y:h=l.y+l.height;var a=t-r,n=e-h;return Math.sqrt(a*a+n*n)}function pt(l,t,e,r,h,a){l[t]=e,l[t+1]=r,l[t+2]=e+h,l[t+3]=r,l[t+4]=e,l[t+5]=r+a,l[t+6]=e,l[t+7]=r+a,l[t+8]=e+h,l[t+9]=r,l[t+10]=e+h,l[t+11]=r+a}function Pt(l,t,e,r){const h=new Float32Array(12),a=0;return h[a]=l,h[a+1]=t,h[a+2]=l+e,h[a+3]=t,h[a+4]=l,h[a+5]=t+r,h[a+6]=l,h[a+7]=t+r,h[a+8]=l+e,h[a+9]=t,h[a+10]=l+e,h[a+11]=t+r,h}class re{constructor(t,e,r,h){this.duration=t,this.onUpdate=e,this.onEnd=r,this.interpolator=h,this.startTime=new Date().getTime(),this._progress=0,this.running=!0,this.ended=!1,this.canceled=!1}get progress(){return this._progress}update(){if(this.removable())return;const t=new Date().getTime()-this.startTime;t<this.duration?(this._progress=t/this.duration,this.onUpdate(this)):t>=this.duration&&(this.running?(this._progress=1,this.onUpdate(this),this.running=!1):this.end())}removable(){return this.ended||this.canceled}cancel(){this.canceled||(this.canceled=!0,this.end())}end(){this.ended||(this.onEnd(this),this.ended=!0)}value(){return this.interpolator!=null?this.interpolator.getInterpolation(this._progress):this._progress}}class fe{constructor(t,e){this.touches=[],this.distance=0,this.callbacks=e,this.el=t}removeTouch(t){let e=this.touches.findIndex(r=>r.identifier==t);e>=0&&this.touches.splice(e,1)}getTouch(t){let e=this.touches.findIndex(r=>r.identifier==t);return e>=0?this.touches[e]:null}getX(t){return t.pageX}getY(t){return t.pageY}start(t){for(var e=0;e<t.length;e++){let r=t[e];this.removeTouch(r.identifier),this.touches.push({lastX:this.getX(r),lastY:this.getY(r),dx:0,dy:0,identifier:r.identifier})}this.touches.length==1&&(this.distance=0),this.updateFocus()}updateFocus(){if(this.touches.length<2){this.scaleTracker=void 0;return}let t=this.touches[0],e=this.touches[1],r=(t.lastX+e.lastX)/2,h=(t.lastY+e.lastY)/2,a=Math.sqrt(Math.pow(e.lastX-t.lastX,2)+Math.pow(e.lastY-t.lastY,2));this.scaleTracker={focusX:r,focusY:h,distance:a}}end(t){var r,h;console.log("end");for(var e=0;e<t.length;e++)this.removeTouch(t[e].identifier);if(this.updateFocus(),this.touches.length<=0&&this.distance==0){let a=t[0];a.target,(h=(r=this.callbacks)==null?void 0:r.tap)==null||h.call(r,a.clientX,a.clientY)}}move(t){var r,h,a,n,o,i;for(var e=0;e<t.length;e++){let b=t[e],g=this.getTouch(b.identifier);if(g!=null)if(g.dx=this.getX(b)-g.lastX,g.dy=this.getY(b)-g.lastY,g.lastX=this.getX(b),g.lastY=this.getY(b),this.scaleTracker){let _=this.touches[0],y=this.touches[1],m=(_.lastX+y.lastX)/2,p=(_.lastY+y.lastY)/2,c=Math.sqrt(Math.pow(y.lastX-_.lastX,2)+Math.pow(y.lastY-_.lastY,2)),f=m-this.scaleTracker.focusX,d=p-this.scaleTracker.focusY,v=c/this.scaleTracker.distance;console.log(`dx=${f}, dy=${d}, scale=${v}, distance=${c}`),(h=(r=this.callbacks).drag)==null||h.call(r,f,d),(n=(a=this.callbacks).zoom)==null||n.call(a,v,m,p),this.scaleTracker.focusX=m,this.scaleTracker.focusY=p,this.scaleTracker.distance=c,this.distance+=Math.abs(f)+Math.abs(d)}else(i=(o=this.callbacks).drag)==null||i.call(o,g.dx,g.dy),this.distance+=Math.abs(g.dx)+Math.abs(g.dy)}}}class de{constructor(t,e){var r,h,a=!1,n=0,o=0,i=0;t.addEventListener("mousedown",g=>{a=!0,n=g.clientX,o=g.clientY,i=0}),document.addEventListener("mouseup",g=>{var _;a=!1,i==0&&g.target==t&&((_=e.tap)==null||_.call(e,g.offsetX,g.offsetY))}),document.addEventListener("mousemove",g=>{var _;a&&(g.preventDefault(),r=g.clientX-n,h=g.clientY-o,n=g.clientX,o=g.clientY,i+=Math.abs(r)+Math.abs(h),(_=e==null?void 0:e.drag)==null||_.call(e,r,h))}),t.addEventListener("wheel",g=>{var y;g.preventDefault();let _=g.deltaY*-.01+1;(y=e.zoom)==null||y.call(e,_,g.offsetX,g.offsetY)}),t.addEventListener("click",g=>{g.preventDefault()});const b=new fe(t,e);t.addEventListener("touchstart",g=>{g.preventDefault(),b.start(g.changedTouches)}),t.addEventListener("touchmove",g=>{b.move(g.changedTouches)}),t.addEventListener("touchend",g=>{b.end(g.changedTouches)}),t.addEventListener("touchcancel",g=>{b.end(g.changedTouches)})}}var lt;(l=>{let t=Float32Array;function e(p,c,f=null){f=f||new t(16);var d=c[0*4+0],v=c[0*4+1],w=c[0*4+2],R=c[0*4+3],C=c[1*4+0],U=c[1*4+1],k=c[1*4+2],O=c[1*4+3],B=c[2*4+0],P=c[2*4+1],$=c[2*4+2],E=c[2*4+3],I=c[3*4+0],u=c[3*4+1],z=c[3*4+2],K=c[3*4+3],G=p[0*4+0],tt=p[0*4+1],j=p[0*4+2],J=p[0*4+3],L=p[1*4+0],F=p[1*4+1],q=p[1*4+2],V=p[1*4+3],Y=p[2*4+0],at=p[2*4+1],st=p[2*4+2],et=p[2*4+3],rt=p[3*4+0],ot=p[3*4+1],nt=p[3*4+2],ft=p[3*4+3];return f[0]=d*G+v*L+w*Y+R*rt,f[1]=d*tt+v*F+w*at+R*ot,f[2]=d*j+v*q+w*st+R*nt,f[3]=d*J+v*V+w*et+R*ft,f[4]=C*G+U*L+k*Y+O*rt,f[5]=C*tt+U*F+k*at+O*ot,f[6]=C*j+U*q+k*st+O*nt,f[7]=C*J+U*V+k*et+O*ft,f[8]=B*G+P*L+$*Y+E*rt,f[9]=B*tt+P*F+$*at+E*ot,f[10]=B*j+P*q+$*st+E*nt,f[11]=B*J+P*V+$*et+E*ft,f[12]=I*G+u*L+z*Y+K*rt,f[13]=I*tt+u*F+z*at+K*ot,f[14]=I*j+u*q+z*st+K*nt,f[15]=I*J+u*V+z*et+K*ft,f}l.multiply=e;function r(p=null){return p=p||new t(16),p[0]=1,p[1]=0,p[2]=0,p[3]=0,p[4]=0,p[5]=1,p[6]=0,p[7]=0,p[8]=0,p[9]=0,p[10]=1,p[11]=0,p[12]=0,p[13]=0,p[14]=0,p[15]=1,p}l.identity=r;function h(p,c,f,d=null){return d=d||new t(16),d[0]=1,d[1]=0,d[2]=0,d[3]=0,d[4]=0,d[5]=1,d[6]=0,d[7]=0,d[8]=0,d[9]=0,d[10]=1,d[11]=0,d[12]=p,d[13]=c,d[14]=f,d[15]=1,d}l.translation=h;function a(p,c,f,d){return d=d||new t(16),d[0]=p,d[1]=0,d[2]=0,d[3]=0,d[4]=0,d[5]=c,d[6]=0,d[7]=0,d[8]=0,d[9]=0,d[10]=f,d[11]=0,d[12]=0,d[13]=0,d[14]=0,d[15]=1,d}l.scaling=a;function n(p,c,f,d,v){return v=v||new t(16),v[0]=c*p[0*4+0],v[1]=c*p[0*4+1],v[2]=c*p[0*4+2],v[3]=c*p[0*4+3],v[4]=f*p[1*4+0],v[5]=f*p[1*4+1],v[6]=f*p[1*4+2],v[7]=f*p[1*4+3],v[8]=d*p[2*4+0],v[9]=d*p[2*4+1],v[10]=d*p[2*4+2],v[11]=d*p[2*4+3],p!==v&&(v[12]=p[12],v[13]=p[13],v[14]=p[14],v[15]=p[15]),v}l.scale=n;function o(p,c=null){c=c||new t(16);var f=p[0*4+0],d=p[0*4+1],v=p[0*4+2],w=p[0*4+3],R=p[1*4+0],C=p[1*4+1],U=p[1*4+2],k=p[1*4+3],O=p[2*4+0],B=p[2*4+1],P=p[2*4+2],$=p[2*4+3],E=p[3*4+0],I=p[3*4+1],u=p[3*4+2],z=p[3*4+3],K=P*z,G=u*$,tt=U*z,j=u*k,J=U*$,L=P*k,F=v*z,q=u*w,V=v*$,Y=P*w,at=v*k,st=U*w,et=O*I,rt=E*B,ot=R*I,nt=E*C,ft=R*B,dt=O*C,s=f*I,M=E*d,D=f*B,A=O*d,x=f*C,T=R*d,N=K*C+j*B+J*I-(G*C+tt*B+L*I),W=G*d+F*B+Y*I-(K*d+q*B+V*I),S=tt*d+q*C+at*I-(j*d+F*C+st*I),X=L*d+V*C+st*B-(J*d+Y*C+at*B),H=1/(f*N+R*W+O*S+E*X);return c[0]=H*N,c[1]=H*W,c[2]=H*S,c[3]=H*X,c[4]=H*(G*R+tt*O+L*E-(K*R+j*O+J*E)),c[5]=H*(K*f+q*O+V*E-(G*f+F*O+Y*E)),c[6]=H*(j*f+F*R+st*E-(tt*f+q*R+at*E)),c[7]=H*(J*f+Y*R+at*O-(L*f+V*R+st*O)),c[8]=H*(et*k+nt*$+ft*z-(rt*k+ot*$+dt*z)),c[9]=H*(rt*w+s*$+A*z-(et*w+M*$+D*z)),c[10]=H*(ot*w+M*k+x*z-(nt*w+s*k+T*z)),c[11]=H*(dt*w+D*k+T*$-(ft*w+A*k+x*$)),c[12]=H*(ot*P+dt*u+rt*U-(ft*u+et*U+nt*P)),c[13]=H*(D*u+et*v+M*P-(s*P+A*u+rt*v)),c[14]=H*(s*U+T*u+nt*v-(x*u+ot*v+M*U)),c[15]=H*(x*P+ft*v+A*U-(D*U+T*P+dt*v)),c}l.inverse=o;function i(p,c,f=null){f=f||new t(3);var d=c[0],v=c[1],w=c[2],R=d*p[0*4+3]+v*p[1*4+3]+w*p[2*4+3]+p[3*4+3];return f[0]=(d*p[0*4+0]+v*p[1*4+0]+w*p[2*4+0]+p[3*4+0])/R,f[1]=(d*p[0*4+1]+v*p[1*4+1]+w*p[2*4+1]+p[3*4+1])/R,f[2]=(d*p[0*4+2]+v*p[1*4+2]+w*p[2*4+2]+p[3*4+2])/R,f}l.transformPoint=i;function b(p,c=null){return c=c||new t(16),c[0]=p[0],c[1]=p[1],c[2]=p[2],c[3]=p[3],c[4]=p[4],c[5]=p[5],c[6]=p[6],c[7]=p[7],c[8]=p[8],c[9]=p[9],c[10]=p[10],c[11]=p[11],c[12]=p[12],c[13]=p[13],c[14]=p[14],c[15]=p[15],c}l.copy=b;function g(p,c,f=null){return f=r(f),f[0]=2/p,f[5]=-2/c,f[12]=-1,f[13]=1,f}l.projection=g;function _(p,c,f=null){return f=r(f),f[0]=2/p,f[5]=2/c,f[12]=-1,f[13]=-1,f}l.projectionNoflipY=_;function y(p,c,f,d){let v=r();return v[0]=p,v[5]=c,v[12]=-p*f+f,v[13]=-c*d+d,v}l.scaleAt=y;function m(p,c,f,d){for(var v=0;v<16;v++)f[v]=p[v]+(c[v]-p[v])*d}l.lerp=m})(lt||(lt={}));class yt{preDraw(){}draw(){}tap(t,e,r,h){}scale(t){}dispose(){}}class ie{constructor(t,e,r,h){this.left=t,this.top=e,this.right=r,this.bottom=h}equals(t){return this.left==t.left&&this.top==t.top&&this.right==t.right&&this.bottom==t.bottom}}class pe{constructor(t,e,r=window){this.gl=t,this.ratio=e,this.animationFrameProvider=r,this.layers=[],this.testLayers=[],this.animators=[],this.userMat=lt.identity(),this.bestFitMat=lt.identity(),this.projectionMat=lt.identity(),this.resultMat=lt.identity(),this.width=0,this.height=0,this.contentWidth=0,this.contentHeight=0,this.padding=new ie(0,0,0,0),this.pendingDraw=!1,this.isBestMatSet=!1,this.updateViewport();let h=this;window&&new de(t.canvas,{drag:h.drag.bind(h),zoom:h.scaleAt.bind(h),tap:h.tap.bind(h)}),lt.identity()}updateViewport(){console.log("viewport update.");const e=this.gl.canvas;this.invalidate(),(e.width!=this.width||e.height!=this.height)&&(this.width=e.width,this.height=e.height,lt.projection(this.width,this.height,this.projectionMat),this.updateBestFit(),this.updateResultMat())}updateBestFit(){if(this.contentWidth==0||this.width==0)return;const t=new At(this.padding.left,this.padding.top,this.width-this.padding.right-this.padding.left,this.height-this.padding.top-this.padding.bottom),e=Math.min(t.width/this.contentWidth,t.height/this.contentHeight),r=t.center.x-this.contentWidth*e/2,h=t.center.y-this.contentHeight*e/2;lt.identity(this.bestFitMat),this.bestFitMat[0]=e,this.bestFitMat[5]=e,this.bestFitMat[12]=r,this.bestFitMat[13]=h,this.isBestMatSet||(lt.copy(this.bestFitMat,this.userMat),this.invalidate(),this.isBestMatSet=!0)}updateResultMat(){if(this.contentWidth==0||this.width==0)return;const t=new At(this.padding.left,this.padding.top,this.width-this.padding.right-this.padding.left,this.height-this.padding.top-this.padding.bottom);let e=this.width>this.height?.6:.7,r=this.width*e/this.contentWidth,h=this.height*e/this.contentHeight,a=Math.min(r,h);const n=t.center.x-this.contentWidth*a/2,o=t.center.y-this.contentHeight*a/(this.width>this.height?1.5:1.2);lt.identity(this.resultMat),this.resultMat[0]=a,this.resultMat[5]=a,this.resultMat[12]=n,this.resultMat[13]=o}setContentPadding(t){this.padding.equals(t)||(this.padding=t,this.updateBestFit(),this.updateResultMat())}setContentSize(t,e){(t!=this.contentWidth||e!=this.contentWidth)&&(this.contentWidth=t,this.contentHeight=e,this.updateBestFit(),this.updateResultMat())}addLayer(t){this.layers.push(t),this.invalidate()}invalidate(){this.pendingDraw||(this.pendingDraw=!0,this.animationFrameProvider.requestAnimationFrame(()=>{this.draw()}))}draw(){this.animators.forEach(r=>r.update()),this.layers.forEach(r=>r.preDraw());const t=this.gl;t.viewport(0,0,this.width,this.height);let e=239/255;t.clearColor(e,e,e,1),t.clear(t.COLOR_BUFFER_BIT),t.blendFunc(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA),t.enable(t.BLEND),t.disable(t.DEPTH_TEST),this.layers.forEach(r=>r.draw()),this.pendingDraw=!1,this.animators=this.animators.filter(r=>!r.removable()),this.animators.length>0&&this.invalidate()}get drawMatrix(){return lt.multiply(this.projectionMat,this.userMat)}drag(t,e){let r=lt.translation(t*this.ratio,e*this.ratio,0);this.userMat=lt.multiply(r,this.userMat),this.invalidate()}scaleAt(t,e,r){e*=this.ratio,r*=this.ratio;let h=lt.scaleAt(t,t,e,r);this.userMat=lt.multiply(h,this.userMat),this.layers.forEach(a=>a.scale(this.userMat[0])),this.invalidate()}tap(t,e){let r=t*this.ratio,h=e*this.ratio,[a,n]=lt.transformPoint(lt.inverse(this.userMat),new Float32Array([r,h,0]));this.layers.forEach(o=>o.tap(a,n,r,h))}addAnimator(t){this.animators.push(t),this.invalidate()}addTestLayer(t){this.testLayers.push(t),this.testLayers.length<=1&&this.layers.push(t),this.invalidate()}toggleTestLayer(){if(this.testLayers.length==0)return;let t=this.testLayers.findIndex(h=>this.layers.indexOf(h)>=0),e=(t+1)%this.testLayers.length,r=this.testLayers[e];t>=0&&(this.layers=this.layers.filter(h=>h!=this.testLayers[t])),console.log(`toggleTestLayer, layer=${r}`),this.layers.push(r),this.invalidate()}setScale(t){lt.scaling(t,t,1,this.userMat),this.invalidate()}updateUserMat(t){lt.copy(t,this.userMat),this.invalidate()}matrixAnimationTo(t,e,r,h){const a=lt.copy(this.userMat),n=new Float32Array(16),o=new re(e,()=>{lt.lerp(a,t,n,o.value()),this.updateUserMat(n)},()=>{h==null||h()},r);this.addAnimator(o)}resetToBestFit(){this.matrixAnimationTo(this.bestFitMat,600)}dispose(){for(;this.layers.length>0;){let t=this.layers.pop();t==null||t.dispose()}}}function ct(l,t,e){var r=l.createShader(t);l.shaderSource(r,e),l.compileShader(r);var h=l.getShaderParameter(r,l.COMPILE_STATUS);if(h)return r;console.log("error",l.getShaderInfoLog(r)),l.deleteShader(r)}function vt(l,t,e){var r=l.createProgram();l.attachShader(r,t),l.attachShader(r,e),l.linkProgram(r);var h=l.getProgramParameter(r,l.LINK_STATUS);if(h)return r;console.log("error",l.getProgramInfoLog(r)),l.deleteProgram(r)}function Ct(l){return new Promise((t,e)=>{let r=new Image;r.src=l,r.onload=()=>t(r),r.onerror=e})}function me(l,t,e){return l<t?t:l>e?e:l}function ge(l){const[t,e,r,h]=l.map(g=>g/255),a=Math.max(t,e,r),n=Math.min(t,e,r);let o,i,b=(a+n)/2;if(a===n)o=i=0;else{const g=a-n;switch(i=b>.5?g/(2-a-n):g/(a+n),a){case t:o=(e-r)/g+(e<r?6:0);break;case e:o=(r-t)/g+2;break;case r:o=(t-e)/g+4;break}o/=6}return[o*360,i*100,b*100,h]}function _e(l){let[t,e,r,h]=l;e/=100,r/=100;const a=(1-Math.abs(2*r-1))*e,n=a*(1-Math.abs(t/60%2-1)),o=r-a/2;let i,b,g;return 0<=t&&t<60?(i=a,b=n,g=0):60<=t&&t<120?(i=n,b=a,g=0):120<=t&&t<180?(i=0,b=a,g=n):180<=t&&t<240?(i=0,b=n,g=a):240<=t&&t<300?(i=n,b=0,g=a):300<=t&&t<360&&(i=a,b=0,g=n),[Math.round((i+o)*255),Math.round((b+o)*255),Math.round((g+o)*255),h]}function ve(l){const t=/rgba\((\d+),\s*(\d+),\s*(\d+),\s*([\d.]+)\)/,e=l.match(t);return e?e.slice(1).map(Number):null}function be(l){return`rgba(${l[0]}, ${l[1]}, ${l[2]}, ${l[3]})`}function xe(l,t){const e=ve(l);if(!e)return[];const r=ge(e),h=[];for(let a=0;a<t;a++){const n=Math.random()*60-30,o=Math.random()*40-20,i=Math.random()*40-20,b=(r[0]+n)%360,g=Math.max(0,Math.min(100,r[1]+o)),_=Math.max(0,Math.min(100,r[2]+i));h.push(be(_e([b,g,_,r[3]])))}return h}var ae=(l=>(l[l.FitCenter=0]="FitCenter",l[l.Repeat=1]="Repeat",l))(ae||{});class ye extends yt{constructor(t,e,r,h,a=0,n=e.width,o=e.height){super(),this.scene=t,this.image=e,this.width=r,this.height=h,this.texWidth=n,this.texHeight=o,this.vertexShaderCode=`
  2. attribute vec2 a_position;
  3. attribute vec2 a_texCoord;
  4. uniform mat4 u_matrix;
  5. varying vec2 v_texCoord;
  6. void main() {
  7. gl_Position = u_matrix * vec4(a_position, 0, 1);
  8. v_texCoord = a_texCoord;
  9. }
  10. `,this.fragmentShaderCode=`
  11. precision mediump float;
  12. uniform sampler2D u_image;
  13. varying vec2 v_texCoord;
  14. void main() {
  15. vec4 color = texture2D(u_image, v_texCoord);
  16. gl_FragColor = color;
  17. }
  18. `,this.vertexArray=new Float32Array(12),this.texCoordArray=new Float32Array(12);const i=t.gl;if(this.program=vt(i,ct(i,i.VERTEX_SHADER,this.vertexShaderCode),ct(i,i.FRAGMENT_SHADER,this.fragmentShaderCode)),this.aPositionLoc=i.getAttribLocation(this.program,"a_position"),this.aTexcoordLoc=i.getAttribLocation(this.program,"a_texCoord"),this.uMatrixLoc=i.getUniformLocation(this.program,"u_matrix"),pt(this.vertexArray,0,0,0,r,h),a==0){const b=new At(0,0,r,h),g=new At(0,0,n,o),_=b.centerFitTo(g);pt(this.texCoordArray,0,_.x/n,_.y/o,_.width/n,_.height/o)}else pt(this.texCoordArray,0,0,0,r/n,h/o);this.vertexBuffer=i.createBuffer(),i.bindBuffer(i.ARRAY_BUFFER,this.vertexBuffer),i.bufferData(i.ARRAY_BUFFER,this.vertexArray,i.STATIC_DRAW),this.texcoordBuffer=i.createBuffer(),i.bindBuffer(i.ARRAY_BUFFER,this.texcoordBuffer),i.bufferData(i.ARRAY_BUFFER,this.texCoordArray,i.STATIC_DRAW),this.texture=i.createTexture(),i.bindTexture(i.TEXTURE_2D,this.texture),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.REPEAT),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.REPEAT),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,e)}draw(){const t=this.scene.gl;t.useProgram(this.program),t.enableVertexAttribArray(this.aPositionLoc),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.vertexAttribPointer(this.aPositionLoc,2,t.FLOAT,!1,0,0),t.enableVertexAttribArray(this.aTexcoordLoc),t.bindBuffer(t.ARRAY_BUFFER,this.texcoordBuffer),t.vertexAttribPointer(this.aTexcoordLoc,2,t.FLOAT,!1,0,0),t.uniformMatrix4fv(this.uMatrixLoc,!1,this.scene.projectionMat),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this.texture),t.drawArrays(t.TRIANGLES,0,6)}}class gt{constructor(t){this.color=t,this.parts=new Uint8Array(4);let e=new Uint32Array(this.parts.buffer);e[0]=t}toFloatArray(){let t=this.parts,e=new Float32Array(4);return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e[3]=t[3]/255,e}fillFloatArray(t,e,r=1){let h=this.parts;const a=h[0]/255,n=h[1]/255,o=h[2]/255,i=h[3]/255;for(var b=0;b<r;b++)t[e+4*b]=a,t[e+4*b+1]=n,t[e+4*b+2]=o,t[e+4*b+3]=i}css(){let t=this.parts;return`rgba(${t[0]},${t[1]},${t[2]},${t[3]})`}get gray(){let t=this.parts,e=t[0]*.299,r=t[1]*.587,h=t[2]*.114;return e+r+h}}class Ae{constructor(t,e,r,h){this.center=t,this.rect=e,this.id=r,this.colored=h}}class we{constructor(t,e){this.areas=t,this.color=e}get isAllColored(){return this.areas.every(t=>t.colored)}get firstUncoloredArea(){return this.areas.find(t=>!t.colored)}get progressPercent(){let t=this.areas.filter(h=>h.colored).length,e=this.areas.length;return t*100/e}}class Ee{constructor(t){this.areaGroups=t,this.areaHash=new Map,this.groupHash=new Map,t.forEach(e=>{Object.setPrototypeOf(e,we.prototype),e.areas.forEach(r=>{Object.setPrototypeOf(r,Ae.prototype),this.areaHash.set(r.id,r),this.groupHash.set(r.id,e)})})}get areaCount(){return this.areaGroups.reduce((t,e)=>t+e.areas.length,0)}get maxAreaCountOfGroup(){return this.areaGroups.reduce((t,e)=>Math.max(t,e.areas.length),0)}groupAreaHash(t){return t.areas.reduce((e,r)=>e.set(r.id,r),new Map)}get coloredPercent(){let t=[...this.areaHash.values()].reduce((e,r)=>r.colored===!0?e+1:e,0);return Math.round(t*100/this.areaHash.size)}}function zt(l,t,e=l.NEAREST){let r=l.createTexture();return l.bindTexture(l.TEXTURE_2D,r),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_WRAP_S,l.CLAMP_TO_EDGE),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_WRAP_T,l.CLAMP_TO_EDGE),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_MIN_FILTER,e),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_MAG_FILTER,e),l.texImage2D(l.TEXTURE_2D,0,l.RGBA,l.RGBA,l.UNSIGNED_BYTE,t),r}function Re(l,t){let e=l.createFramebuffer();l.bindFramebuffer(l.FRAMEBUFFER,e),l.framebufferTexture2D(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0,l.TEXTURE_2D,t,0);let r=l.checkFramebufferStatus(l.FRAMEBUFFER)==l.FRAMEBUFFER_COMPLETE;return console.log(`canRead=${r}`),l.bindFramebuffer(l.FRAMEBUFFER,null),e}function Xt(l,t,e,r,h){let a=Pt(t,e,r,h),n=l.createBuffer();return l.bindBuffer(l.ARRAY_BUFFER,n),l.bufferData(l.ARRAY_BUFFER,a,l.STATIC_DRAW),l.bindBuffer(l.ARRAY_BUFFER,null),n}class Ce extends yt{constructor(t,e,r,h,a,n=4294901760,o=1){super(),this.scene=t,this.x=e,this.y=r,this.width=h,this.height=a,this.color=n,this.lineWidth=o,this.vertexShaderCode=`
  19. attribute vec2 a_position;
  20. uniform mat4 u_matrix;
  21. void main() {
  22. gl_Position = u_matrix * vec4(a_position, 0, 1);
  23. }
  24. `,this.fragmentShaderCode=`
  25. precision mediump float;
  26. uniform vec4 u_color;
  27. void main() {
  28. gl_FragColor = u_color;
  29. }
  30. `;const i=t.gl;this.program=vt(i,ct(i,i.VERTEX_SHADER,this.vertexShaderCode),ct(i,i.FRAGMENT_SHADER,this.fragmentShaderCode)),this.aPositionLoc=i.getAttribLocation(this.program,"a_position"),this.uMatrixLoc=i.getUniformLocation(this.program,"u_matrix"),this.uColorLoc=i.getUniformLocation(this.program,"u_color"),this.vertexArray=new Float32Array([e,r,e,r+a,e+h,r+a,e+h,r]),this.vertexBuffer=i.createBuffer(),i.bindBuffer(i.ARRAY_BUFFER,this.vertexBuffer),i.bufferData(i.ARRAY_BUFFER,this.vertexArray,i.STATIC_DRAW),this.colorArray=new gt(n).toFloatArray()}draw(){const t=this.scene.gl;t.useProgram(this.program),t.enableVertexAttribArray(this.aPositionLoc),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.vertexAttribPointer(this.aPositionLoc,2,t.FLOAT,!1,0,0),t.uniformMatrix4fv(this.uMatrixLoc,!1,this.scene.drawMatrix),t.uniform4fv(this.uColorLoc,this.colorArray),t.lineWidth(this.lineWidth),t.drawArrays(t.LINE_LOOP,0,4)}}class Te extends yt{constructor(t,e,r,h,a,n=4294967295,o=null){super(),this.scene=t,this.x=e,this.y=r,this.width=h,this.height=a,this.color=n,this.fragmentShader=o,this.vertexShaderCode=`
  31. attribute vec2 a_position;
  32. uniform mat4 u_matrix;
  33. void main() {
  34. gl_Position = u_matrix * vec4(a_position, 0, 1);
  35. }
  36. `,this.fragmentShaderCode=`
  37. precision mediump float;
  38. uniform vec4 u_color;
  39. void main() {
  40. gl_FragColor = u_color;
  41. }
  42. `,this.vertexArray=new Float32Array(12);const i=t.gl;this.program=vt(i,ct(i,i.VERTEX_SHADER,this.vertexShaderCode),ct(i,i.FRAGMENT_SHADER,o||this.fragmentShaderCode)),this.aPositionLoc=i.getAttribLocation(this.program,"a_position"),this.uMatrixLoc=i.getUniformLocation(this.program,"u_matrix"),this.uColorLoc=i.getUniformLocation(this.program,"u_color"),pt(this.vertexArray,0,e,r,h,a),this.vertexBuffer=i.createBuffer(),i.bindBuffer(i.ARRAY_BUFFER,this.vertexBuffer),i.bufferData(i.ARRAY_BUFFER,this.vertexArray,i.STATIC_DRAW),this.colorArray=new gt(n).toFloatArray()}draw(){const t=this.scene.gl;t.useProgram(this.program),t.enableVertexAttribArray(this.aPositionLoc),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.vertexAttribPointer(this.aPositionLoc,2,t.FLOAT,!1,0,0),t.uniformMatrix4fv(this.uMatrixLoc,!1,this.scene.drawMatrix),t.uniform4fv(this.uColorLoc,this.colorArray),t.drawArrays(t.TRIANGLES,0,6)}toString(){return"BoxLayer()"}}class Se extends yt{constructor(t,e,r,h,a,n=4294901760,o=30){super(),this.scene=t,this.x=e,this.y=r,this.width=h,this.height=a,this.color=n,this.lineWidth=o,this.vertexShaderCode=`
  43. attribute vec2 a_position;
  44. uniform mat4 u_matrix;
  45. void main() {
  46. gl_Position = u_matrix * vec4(a_position, 0, 1);
  47. }
  48. `,this.fragmentShaderCode=`
  49. precision mediump float;
  50. uniform vec4 u_color;
  51. void main() {
  52. gl_FragColor = u_color;
  53. }
  54. `;const i=t.gl;this.program=vt(i,ct(i,i.VERTEX_SHADER,this.vertexShaderCode),ct(i,i.FRAGMENT_SHADER,this.fragmentShaderCode)),this.aPositionLoc=i.getAttribLocation(this.program,"a_position"),this.uMatrixLoc=i.getUniformLocation(this.program,"u_matrix"),this.uColorLoc=i.getUniformLocation(this.program,"u_color"),this.vertexArray=this.generateThickBorderVertices(e,r,h,a,o),this.vertexBuffer=i.createBuffer(),i.bindBuffer(i.ARRAY_BUFFER,this.vertexBuffer),i.bufferData(i.ARRAY_BUFFER,this.vertexArray,i.STATIC_DRAW),this.colorArray=new gt(n).toFloatArray()}generateThickBorderVertices(t,e,r,h,a){const n=a/2;return new Float32Array([t-n,e-n,t+r+n,e-n,t-n,e+n,t+r+n,e+n,t+r-n,e-n,t+r+n,e-n,t+r-n,e+h+n,t+r+n,e+h+n,t+r+n,e+h-n,t-n,e+h-n,t+r+n,e+h+n,t-n,e+h+n,t+n,e+h,t-n,e+h,t+n,e,t-n,e])}draw(){const t=this.scene.gl;t.useProgram(this.program),t.enableVertexAttribArray(this.aPositionLoc),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.vertexAttribPointer(this.aPositionLoc,2,t.FLOAT,!1,0,0),t.uniformMatrix4fv(this.uMatrixLoc,!1,this.scene.drawMatrix),t.uniform4fv(this.uColorLoc,this.colorArray),t.drawArrays(t.TRIANGLE_STRIP,0,16)}}var Bt=(l=>(l[l.ColorDone=0]="ColorDone",l[l.AllDone=1]="AllDone",l[l.Hint=2]="Hint",l))(Bt||{});class Fe{constructor(){this.audioColorDone=new Audio("/assets/sound/section_done.mp3"),this.audioAllDone=new Audio("/assets/sound/color_done_02.mp3"),this.audioHint=new Audio("/assets/sound/sound_hint.mp3")}playAudio(t){switch(console.log(`play sound ${t}`),t){case 0:this.audioColorDone.play();break;case 1:this.audioAllDone.play();break;case 2:this.audioHint.play();break}}}class ke{constructor(t,e,r,h,a,n,o){this.x=e,this.y=r,this.r=h,this.dx=a,this.dy=n,this.color=o,this.a=1,this.ctx=t}draw(){let t=this.ctx;t.save(),t.globalAlpha=this.a,t.fillStyle=this.color,t.beginPath(),t.arc(this.x,this.y,this.r,0,Math.PI*2,!1),t.fill(),t.restore()}update(){this.draw(),this.a-=1/120,this.x+=this.dx,this.y+=this.dy}}class Be{constructor(t,e,r,h){this.particles=[],this.canvas=t,this.canvas.width=Math.floor(this.canvas.offsetWidth*window.devicePixelRatio),this.canvas.height=Math.floor(this.canvas.offsetHeight*window.devicePixelRatio),this.ctx=this.canvas.getContext("2d"),this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),this.initParticles(e,r),this.onend=h}explode(){if(this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),this.particles.forEach((t,e)=>{t.a<=0?this.particles.splice(e,1):t.update()}),this.particles.length==0){this.onend&&this.onend();return}requestAnimationFrame(this.explode.bind(this))}initParticles(t,e){let r=xe(t,e);for(let h=0;h<e;h++){let a=this.canvas.width/2+(Math.random()-.5)*(Math.random()*10),n=this.canvas.height/2+(Math.random()-.5)*(Math.random()*10),o=(Math.floor(Math.random()*4)+1)*window.devicePixelRatio,i=(Math.random()-.5)*(Math.random()*8)*window.devicePixelRatio,b=(Math.random()-.5)*(Math.random()*6)*window.devicePixelRatio,g=r[h],_=new ke(this.ctx,a,n,o,i,b,g);this.particles.push(_)}}}function Le(l,t,e,r,h){const o=vt(l,ct(l,l.VERTEX_SHADER,`
  55. attribute vec2 a_position;
  56. attribute vec2 a_texCoord;
  57. attribute vec4 a_color;
  58. attribute vec4 a_destColor;
  59. uniform mat4 u_matrix;
  60. varying vec2 v_texCoord;
  61. varying vec4 v_color;
  62. varying vec4 v_destColor;
  63. void main() {
  64. gl_Position = u_matrix * vec4(a_position, 0, 1);
  65. v_texCoord = a_texCoord;
  66. v_color = a_color;
  67. v_destColor = a_destColor;
  68. }
  69. `),ct(l,l.FRAGMENT_SHADER,`
  70. precision mediump float;
  71. uniform sampler2D u_image;
  72. //uniform vec4 u_color;
  73. varying vec2 v_texCoord;
  74. varying vec4 v_color;
  75. varying vec4 v_destColor;
  76. void main() {
  77. vec4 color = texture2D(u_image, v_texCoord);
  78. float dist = distance(color, v_color);
  79. if(dist < 0.001) {
  80. gl_FragColor = v_destColor;
  81. }else{
  82. gl_FragColor = vec4(0,0,0,0);
  83. }
  84. }
  85. `)),i=l.createTexture();l.bindTexture(l.TEXTURE_2D,i),l.texImage2D(l.TEXTURE_2D,0,l.RGBA,r,h,0,l.RGBA,l.UNSIGNED_BYTE,null),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_MAG_FILTER,l.LINEAR),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_MIN_FILTER,l.LINEAR),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_WRAP_S,l.CLAMP_TO_EDGE),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_WRAP_T,l.CLAMP_TO_EDGE);const b=l.createFramebuffer();l.bindFramebuffer(l.FRAMEBUFFER,b),l.framebufferTexture2D(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0,l.TEXTURE_2D,i,0);let g=l.getAttribLocation(o,"a_position"),_=l.getAttribLocation(o,"a_texCoord"),y=l.getAttribLocation(o,"a_color"),m=l.getAttribLocation(o,"a_destColor"),p=l.getUniformLocation(o,"u_matrix");const c=e.areaCount,f=new Float32Array(12*c),d=new Float32Array(12*c),v=new Float32Array(24*c),w=new Float32Array(24*c);for(var R=0,C=0,U=0;U<e.areaGroups.length;U++)for(var k=e.areaGroups[U],O=new gt(k.color),B=0;B<k.areas.length;B++){var P=k.areas[B];pt(f,R,P.rect.x,P.rect.y,P.rect.width,P.rect.height),pt(d,R,P.rect.x/r,P.rect.y/h,P.rect.width/r,P.rect.height/h);var $=new gt(P.id);$.fillFloatArray(v,C,6),O.fillFloatArray(w,C,6),R+=12,C+=24}l.useProgram(o);let E=l.createBuffer();l.bindBuffer(l.ARRAY_BUFFER,E),l.bufferData(l.ARRAY_BUFFER,v,l.STATIC_DRAW),l.enableVertexAttribArray(y),l.vertexAttribPointer(y,4,l.FLOAT,!1,0,0);let I=l.createBuffer();l.bindBuffer(l.ARRAY_BUFFER,I),l.bufferData(l.ARRAY_BUFFER,w,l.STATIC_DRAW),l.enableVertexAttribArray(m),l.vertexAttribPointer(m,4,l.FLOAT,!1,0,0);let u=l.createBuffer();l.bindBuffer(l.ARRAY_BUFFER,u),l.bufferData(l.ARRAY_BUFFER,f,l.STATIC_DRAW),l.enableVertexAttribArray(g),l.vertexAttribPointer(g,2,l.FLOAT,!1,0,0);let z=l.createBuffer();return l.bindBuffer(l.ARRAY_BUFFER,z),l.bufferData(l.ARRAY_BUFFER,d,l.STATIC_DRAW),l.enableVertexAttribArray(_),l.vertexAttribPointer(_,2,l.FLOAT,!1,0,0),l.viewport(0,0,r,h),l.uniformMatrix4fv(p,!1,lt.projectionNoflipY(r,h)),l.activeTexture(l.TEXTURE0),l.bindTexture(l.TEXTURE_2D,t),l.blendFunc(l.SRC_ALPHA,l.ONE_MINUS_SRC_ALPHA),l.enable(l.BLEND),l.disable(l.DEPTH_TEST),l.drawArrays(l.TRIANGLES,0,f.length/2),l.disableVertexAttribArray(y),l.disableVertexAttribArray(_),l.disableVertexAttribArray(g),l.disableVertexAttribArray(m),l.deleteBuffer(u),l.deleteBuffer(z),l.deleteBuffer(E),l.deleteBuffer(I),l.bindFramebuffer(l.FRAMEBUFFER,null),l.deleteFramebuffer(b),i}class ne{constructor(t,e,r,h,a,n,o){this.config=t,this.page=e,this.map=r,this.numberImage=h,this.taskList=a,this.special=n,this.bg=o,this.fillAreaInfo(t)}fillAreaInfo(t){for(var e=0;e<t.length;e++)for(var r=t[e],h=`${e+1}`,a=0;a<r.areas.length;a++){var n=r.areas[a];n.center.label=h,n.center.offset=0,n.center.fontHeight=0,n.colored=!1}}}class Ie{constructor(t,e=10,r=30,h=4292730333,a=4289374890){this.settings=t,this.maxScale=e,this.visibleFontSize=r,this.hintColorDark=h,this.hintColorLight=a}}class De{constructor(t,e,r,h=[],a=null){this.config=t,this.gl=r,this.taskList=h,this.callback=a,this.listeners=[],this._currentGroup=null,this.width=e.map.width,this.height=e.map.height,this.mapTexure=zt(r,e.map,r.NEAREST),this.data=new Ee(e.config),this.colored=e.special?zt(r,e.special,r.LINEAR):Le(r,this.mapTexure,this.data,this.width,this.height),this.fb=Re(r,this.mapTexure);for(let o of h){let i=this.data.areaHash.get(o);i&&(i.colored=!0)}let n=this.data.areaGroups.find(o=>!o.isAllColored);n&&(this.currentGroup=n)}get currentGroup(){return this._currentGroup}set currentGroup(t){this._currentGroup=t,this.listeners.forEach(e=>e.onGroupChange(t))}get currentGroupIndex(){return this.currentGroup?this.data.areaGroups.findIndex(t=>t==this.currentGroup):-1}get doneBeforeCount(){let t=0;for(let e=0;e<this.currentGroupIndex;e++)this.data.areaGroups[e].isAllColored&&t++;return t}addListener(t){this.listeners.push(t)}setCurrentGroup(t){this.currentGroup=this.data.areaGroups[t]}setColored(t,e,r,h){t.colored=!0,this.taskList.push(t.id)}switchToNextGroup(){if(!this.currentGroup)return null;let t=this.data.areaGroups.findIndex(r=>r==this.currentGroup),e=!1;for(let r=0;r<this.data.areaGroups.length;r++)if(this.data.areaGroups[t].isAllColored)t=++t%this.data.areaGroups.length;else{e=!0;break}return e?(this.currentGroup=this.data.areaGroups[t],this.currentGroup):null}getArea(t,e,r,h){t=Math.round(t),e=Math.round(e);let a=t-r,n=e-r,o=r*2+1,i=r*2+1,b=o*i,g=new Uint8Array(b*4),_=r,y=r,m=this.gl,p=this.fb;m.bindFramebuffer(m.FRAMEBUFFER,p),m.readPixels(a,n,o,i,m.RGBA,m.UNSIGNED_BYTE,g),m.bindFramebuffer(m.FRAMEBUFFER,null);let c=new Uint32Array(g.buffer),f=new Map;for(var d=0,v=0,w=0,R=0,C=0,U=0,k=0,O=0;O<c.length;O++)if(k=c[O],k!=0&&(d=O%o,v=Math.floor(O/o),w=d-_,R=v-y,C=Math.sqrt(w*w+R*R),!(C>r))){U=1/Math.exp(C);var B=f.get(k);B==null?f.set(k,U):f.set(k,U+B)}let P=0,$;return f.forEach((E,I)=>{console.log(`id=${I}, count=${E}`);var u=h.get(I);u!=null&&!u.colored&&E>P&&($=u,P=E)}),console.log("Area hit:",$),$}dispose(){this.gl.deleteFramebuffer(this.fb),this.gl.deleteTexture(this.colored),this.gl.deleteTexture(this.mapTexure),this.listeners=[]}}class Ue extends pe{constructor(t,e,r=window){super(t,e,r)}focusToArea(t){if(this.fillerData==null)return;const e=t.center.radius*4,r=me(Math.min(this.width/e,this.height/e),1,this.fillerData.config.maxScale),h=this.width/2,a=this.height/2,n=lt.identity();n[0]=r,n[5]=r,n[12]=-r*t.center.x+h,n[13]=-r*t.center.y+a,this.matrixAnimationTo(n,600)}resetToResult(){this.matrixAnimationTo(this.resultMat,800)}hint(){if(console.log("hint"),this.fillerData==null||this.fillerData.currentGroup==null)return;let e=this.fillerData.currentGroup.firstUncoloredArea;e&&(console.log("find area:",e),this.focusToArea(e))}}class Pe{constructor(t,e){this.gl=t,this.fillerData=e,this.vertexShaderCode=`
  86. attribute vec2 a_position;
  87. attribute vec2 a_texCoord;
  88. attribute vec4 a_colorId;
  89. uniform mat4 u_matrix;
  90. varying vec2 v_texCoord;
  91. varying vec4 v_colorId;
  92. void main() {
  93. gl_Position = u_matrix * vec4(a_position, 0, 1);
  94. v_texCoord = a_texCoord;
  95. v_colorId = a_colorId;
  96. }
  97. `,this.fragmentShaderCode=`
  98. precision mediump float;
  99. uniform sampler2D u_map;
  100. varying vec2 v_texCoord;
  101. varying vec4 v_colorId;
  102. void main() {
  103. vec4 mapColor = texture2D(u_map, v_texCoord);
  104. float dist = distance(mapColor, v_colorId);
  105. if(dist < 0.001) {
  106. gl_FragColor = vec4(1, 1, 0, 1);
  107. }else{
  108. gl_FragColor = vec4(0, 0, 0, 0);
  109. }
  110. }
  111. `,this.pendingAreas=[],this.program=vt(t,ct(t,t.VERTEX_SHADER,this.vertexShaderCode),ct(t,t.FRAGMENT_SHADER,this.fragmentShaderCode)),this.aPositionLoc=t.getAttribLocation(this.program,"a_position"),this.aTexcoordLoc=t.getAttribLocation(this.program,"a_texCoord"),this.aColorIdLoc=t.getAttribLocation(this.program,"a_colorId"),this.uMatrixLoc=t.getUniformLocation(this.program,"u_matrix"),this.positionBuffer=t.createBuffer(),this.texCoordBuffer=t.createBuffer(),this.colorIdBuffer=t.createBuffer(),this.matrix=lt.projectionNoflipY(e.width,e.height),this.texture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.texture),t.texImage2D(t.TEXTURE_2D,0,t.RGB,this.fillerData.width,this.fillerData.height,0,t.RGB,t.UNSIGNED_SHORT_5_6_5,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.fb=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.fb),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.texture,0),t.bindFramebuffer(t.FRAMEBUFFER,null)}get width(){return this.fillerData.width}get height(){return this.fillerData.height}dispose(){this.gl.deleteTexture(this.texture),this.gl.deleteFramebuffer(this.fb),this.gl.deleteBuffer(this.positionBuffer),this.gl.deleteBuffer(this.texCoordBuffer),this.gl.deleteBuffer(this.colorIdBuffer),this.gl.deleteProgram(this.program)}addArea(t){this.pendingAreas.push(t)}flush(t=!1){if(this.pendingAreas.length<=0)return;const e=new Float32Array(12*this.pendingAreas.length),r=new Float32Array(12*this.pendingAreas.length),h=new Float32Array(24*this.pendingAreas.length);var a=0,n=0;const o=this.fillerData.width,i=this.fillerData.height;for(var b=0;b<this.pendingAreas.length;b++){var g=this.pendingAreas[b];pt(e,a,g.rect.x,g.rect.y,g.rect.width,g.rect.height),pt(r,a,g.rect.x/o,g.rect.y/i,g.rect.width/o,g.rect.height/i);var _=new gt(g.id);_.fillFloatArray(h,n,6),a+=12,n+=24}const y=this.gl;y.bindBuffer(y.ARRAY_BUFFER,this.positionBuffer),y.bufferData(y.ARRAY_BUFFER,e,y.STATIC_DRAW),y.bindBuffer(y.ARRAY_BUFFER,this.texCoordBuffer),y.bufferData(y.ARRAY_BUFFER,r,y.STATIC_DRAW),y.bindBuffer(y.ARRAY_BUFFER,this.colorIdBuffer),y.bufferData(y.ARRAY_BUFFER,h,y.STATIC_DRAW),this.draw(this.pendingAreas.length*6,t),this.pendingAreas=[]}draw(t,e=!1){const r=this.gl;r.bindFramebuffer(r.FRAMEBUFFER,this.fb),console.log("mask.fb=",this.fb),r.useProgram(this.program),r.viewport(0,0,this.fillerData.width,this.fillerData.height),e&&(r.clearColor(0,0,0,0),r.clear(r.COLOR_BUFFER_BIT)),r.enableVertexAttribArray(this.aPositionLoc),r.bindBuffer(r.ARRAY_BUFFER,this.positionBuffer),r.vertexAttribPointer(this.aPositionLoc,2,r.FLOAT,!1,0,0),r.enableVertexAttribArray(this.aTexcoordLoc),r.bindBuffer(r.ARRAY_BUFFER,this.texCoordBuffer),r.vertexAttribPointer(this.aTexcoordLoc,2,r.FLOAT,!1,0,0),r.enableVertexAttribArray(this.aColorIdLoc),r.bindBuffer(r.ARRAY_BUFFER,this.colorIdBuffer),r.vertexAttribPointer(this.aColorIdLoc,4,r.FLOAT,!1,0,0),r.uniformMatrix4fv(this.uMatrixLoc,!1,this.matrix),r.bindTexture(r.TEXTURE_2D,this.fillerData.mapTexure),r.drawArrays(r.TRIANGLES,0,t),r.bindFramebuffer(r.FRAMEBUFFER,null)}}class ze extends yt{constructor(t,e){super(),this.scene=t,this.fillerData=e,this.vertexShaderCode=`
  112. attribute vec2 a_position;
  113. attribute vec2 a_texCoord;
  114. uniform mat4 u_matrix;
  115. varying vec2 v_texCoord;
  116. void main() {
  117. gl_Position = u_matrix * vec4(a_position, 0, 1);
  118. v_texCoord = a_texCoord;
  119. }
  120. `,this.fragmentShaderCode=`
  121. precision mediump float;
  122. uniform sampler2D u_hint;
  123. uniform sampler2D u_mask;
  124. uniform vec2 u_pixelSize;
  125. uniform vec4 u_scale;
  126. uniform vec4 u_colorDark;
  127. uniform vec4 u_colorLight;
  128. varying vec2 v_texCoord;
  129. const float w1 = 0.147761;
  130. const float w2 = 0.118318;
  131. const float w3 = 0.0947416;
  132. vec4 GaussianBlur(in sampler2D image, in vec2 texCoord, in vec2 pixelSize) {
  133. vec4 C00 = texture2D(image, texCoord + vec2(-pixelSize.x, -pixelSize.y)) * w3 ;
  134. vec4 C01 = texture2D(image, texCoord + vec2(0.0, -pixelSize.y)) * w2;
  135. vec4 C02 = texture2D(image, texCoord + vec2(pixelSize.x, -pixelSize.y)) * w3 ;
  136. vec4 C10 = texture2D(image, texCoord + vec2(-pixelSize.x, 0.0)) * w2;
  137. vec4 C11 = texture2D(image, texCoord + vec2(0.0, 0.0)) * w1;
  138. vec4 C12 = texture2D(image, texCoord + vec2(pixelSize.x, 0.0)) * w2;
  139. vec4 C20 = texture2D(image, texCoord + vec2(-pixelSize.x, pixelSize.y)) * w3;
  140. vec4 C21 = texture2D(image, texCoord + vec2(0.0, pixelSize.y)) * w2;
  141. vec4 C22 = texture2D(image, texCoord + vec2(pixelSize.x, pixelSize.y)) * w3;
  142. return
  143. C00 + C01 + C02 +
  144. C10 + C11 + C12 +
  145. C20 + C21 + C22 ;
  146. }
  147. void main() {
  148. vec4 hint = texture2D(u_hint, v_texCoord);
  149. vec4 mask = GaussianBlur(u_mask, v_texCoord, u_pixelSize);
  150. if(mask.r >= 0.4) {
  151. //gl_FragColor = hint;
  152. if(hint.r > 0.5) {
  153. gl_FragColor = u_colorDark;
  154. //gl_FragColor = vec4(1, 0, 0, 1);
  155. }else{
  156. gl_FragColor = u_colorLight;
  157. //gl_FragColor = vec4(0, 1, 0, 1);
  158. }
  159. }else {
  160. gl_FragColor = vec4(0,0,0,0);
  161. }
  162. }
  163. `,this.colorDarkArray=new Float32Array(4),this.colorLightArray=new Float32Array(4),this.fillerData.addListener(this);const r=t.gl;this.program=vt(r,ct(r,r.VERTEX_SHADER,this.vertexShaderCode),ct(r,r.FRAGMENT_SHADER,this.fragmentShaderCode)),this.aPositionLoc=r.getAttribLocation(this.program,"a_position"),this.aTexcoordLoc=r.getAttribLocation(this.program,"a_texCoord"),this.uMatrixLoc=r.getUniformLocation(this.program,"u_matrix"),this.uScaleLoc=r.getUniformLocation(this.program,"u_scale"),this.uPixelSizeLoc=r.getUniformLocation(this.program,"u_pixelSize"),this.uHintLoc=r.getUniformLocation(this.program,"u_hint"),this.uMaskLoc=r.getUniformLocation(this.program,"u_mask"),this.uColorDarkLoc=r.getUniformLocation(this.program,"u_colorDark"),this.uColorLightLoc=r.getUniformLocation(this.program,"u_colorLight"),this.vertexArray=Pt(0,0,e.width,e.height),this.texCoordArray=Pt(0,0,1,1),this.vertexBuffer=r.createBuffer(),r.bindBuffer(r.ARRAY_BUFFER,this.vertexBuffer),r.bufferData(r.ARRAY_BUFFER,this.vertexArray,r.STATIC_DRAW),this.texcoordBuffer=r.createBuffer(),r.bindBuffer(r.ARRAY_BUFFER,this.texcoordBuffer),r.bufferData(r.ARRAY_BUFFER,this.texCoordArray,r.STATIC_DRAW),this.mask=new Pe(r,e),this.hintTexture=this.createHintTexture(r,e.width,e.height),this.fillerData.currentGroup&&this.setGroup(this.fillerData.currentGroup)}dispose(){this.mask.dispose();let t=this.scene.gl;t.deleteProgram(this.program),t.deleteBuffer(this.vertexBuffer),t.deleteBuffer(this.texcoordBuffer),t.deleteTexture(this.hintTexture)}createHintTexture(t,e,r){let h=t.createTexture();t.bindTexture(t.TEXTURE_2D,h);const a=10,n=Math.floor(e/a),o=Math.floor(r/a),i=new Uint8Array(n*o);for(var b=0;b<o;b++){let _=b%2==0;for(var g=0;g<n;g++){_=!_;let y=b*n+g;i[y]=_?0:255}}return t.pixelStorei(t.UNPACK_ALIGNMENT,1),t.texImage2D(t.TEXTURE_2D,0,t.LUMINANCE,n,o,0,t.LUMINANCE,t.UNSIGNED_BYTE,i),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),h}setGroup(t){for(var e=0;e<t.areas.length;e++)this.mask.addArea(t.areas[e]);this.mask.flush(!0),this.scene.invalidate()}onGroupChange(t){var e;console.log("onGroupChange",t),t!=null&&this.setGroup(t),(e=this.fillerData.callback)==null||e.onSwitchGroup()}draw(){const t=this.scene.gl;t.useProgram(this.program),t.enableVertexAttribArray(this.aPositionLoc),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.vertexAttribPointer(this.aPositionLoc,2,t.FLOAT,!1,0,0),t.enableVertexAttribArray(this.aTexcoordLoc),t.bindBuffer(t.ARRAY_BUFFER,this.texcoordBuffer),t.vertexAttribPointer(this.aTexcoordLoc,2,t.FLOAT,!1,0,0),t.uniformMatrix4fv(this.uMatrixLoc,!1,this.scene.drawMatrix),t.uniform1f(this.uScaleLoc,this.scene.userMat[0]),t.uniform2f(this.uPixelSizeLoc,1/this.mask.width,1/this.mask.height),new gt(this.fillerData.config.hintColorDark).fillFloatArray(this.colorDarkArray,0),new gt(this.fillerData.config.hintColorLight).fillFloatArray(this.colorLightArray,0),t.uniform4fv(this.uColorDarkLoc,this.colorDarkArray),t.uniform4fv(this.uColorLightLoc,this.colorLightArray),t.uniform1i(this.uHintLoc,0),t.uniform1i(this.uMaskLoc,1),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this.hintTexture),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,this.mask.texture),t.drawArrays(t.TRIANGLES,0,6)}toString(){return"HintLayer()"}}class Me extends yt{constructor(t,e,r,h,a,n,o=null){super(),this.scene=t,this.texture=e,this.texWidth=r,this.texHeight=h,this.width=a,this.height=n,this.fragmentShader=o,this.vertexShaderCode=`
  164. attribute vec2 a_position;
  165. attribute vec2 a_texCoord;
  166. uniform mat4 u_matrix;
  167. varying vec2 v_texCoord;
  168. void main() {
  169. gl_Position = u_matrix * vec4(a_position, 0, 1);
  170. v_texCoord = a_texCoord;
  171. }
  172. `,this.fragmentShaderCode=`
  173. precision mediump float;
  174. uniform sampler2D u_image;
  175. varying vec2 v_texCoord;
  176. void main() {
  177. vec4 color = texture2D(u_image, v_texCoord);
  178. gl_FragColor = color;
  179. }
  180. `,this.vertexArray=new Float32Array(12),this.texCoordArray=new Float32Array(12);const i=t.gl;this.program=vt(i,ct(i,i.VERTEX_SHADER,this.vertexShaderCode),ct(i,i.FRAGMENT_SHADER,o||this.fragmentShaderCode)),this.aPositionLoc=i.getAttribLocation(this.program,"a_position"),this.aTexcoordLoc=i.getAttribLocation(this.program,"a_texCoord"),this.uMatrixLoc=i.getUniformLocation(this.program,"u_matrix"),this.uScaleLoc=i.getUniformLocation(this.program,"u_scale"),this.uTexSizeLoc=i.getUniformLocation(this.program,"u_texSize"),pt(this.vertexArray,0,0,0,a,n),pt(this.texCoordArray,0,0,0,1,1),this.vertexBuffer=i.createBuffer(),i.bindBuffer(i.ARRAY_BUFFER,this.vertexBuffer),i.bufferData(i.ARRAY_BUFFER,this.vertexArray,i.STATIC_DRAW),this.texcoordBuffer=i.createBuffer(),i.bindBuffer(i.ARRAY_BUFFER,this.texcoordBuffer),i.bufferData(i.ARRAY_BUFFER,this.texCoordArray,i.STATIC_DRAW)}dispose(){let t=this.scene.gl;t.deleteProgram(this.program),t.deleteTexture(this.texture),t.deleteBuffer(this.texcoordBuffer),t.deleteBuffer(this.vertexBuffer)}get currentScale(){return this.scene.userMat[0]*(this.width/this.texWidth)}draw(){const t=this.scene.gl;t.useProgram(this.program),t.enableVertexAttribArray(this.aPositionLoc),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.vertexAttribPointer(this.aPositionLoc,2,t.FLOAT,!1,0,0),t.enableVertexAttribArray(this.aTexcoordLoc),t.bindBuffer(t.ARRAY_BUFFER,this.texcoordBuffer),t.vertexAttribPointer(this.aTexcoordLoc,2,t.FLOAT,!1,0,0),t.uniformMatrix4fv(this.uMatrixLoc,!1,this.scene.drawMatrix),t.uniform1f(this.uScaleLoc,this.currentScale),t.uniform2f(this.uTexSizeLoc,1/this.texWidth,1/this.texHeight),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this.texture),t.drawArrays(t.TRIANGLES,0,6)}scale(t){}toString(){return"TextureLayer()"}}const Oe=`
  181. precision highp float;
  182. uniform sampler2D u_image;
  183. uniform float u_scale;
  184. uniform vec2 u_texSize;
  185. varying vec2 v_texCoord;
  186. const float w1 = 0.147761;
  187. const float w2 = 0.118318;
  188. const float w3 = 0.0947416;
  189. vec4 GaussianBlur(in sampler2D image, in vec2 texCoord, in vec2 pixelSize) {
  190. vec4 C00 = texture2D(image, texCoord + vec2(-pixelSize.x, -pixelSize.y)) * w3 ;
  191. vec4 C01 = texture2D(image, texCoord + vec2(0.0, -pixelSize.y)) * w2;
  192. vec4 C02 = texture2D(image, texCoord + vec2(pixelSize.x, -pixelSize.y)) * w3 ;
  193. vec4 C10 = texture2D(image, texCoord + vec2(-pixelSize.x, 0.0)) * w2;
  194. vec4 C11 = texture2D(image, texCoord + vec2(0.0, 0.0)) * w1;
  195. vec4 C12 = texture2D(image, texCoord + vec2(pixelSize.x, 0.0)) * w2;
  196. vec4 C20 = texture2D(image, texCoord + vec2(-pixelSize.x, pixelSize.y)) * w3;
  197. vec4 C21 = texture2D(image, texCoord + vec2(0.0, pixelSize.y)) * w2;
  198. vec4 C22 = texture2D(image, texCoord + vec2(pixelSize.x, pixelSize.y)) * w3;
  199. return
  200. C00 + C01 + C02 +
  201. C10 + C11 + C12 +
  202. C20 + C21 + C22 ;
  203. }
  204. void main() {
  205. vec4 color = GaussianBlur(u_image, v_texCoord, u_texSize);
  206. //vec4 color = texture2D(u_image, v_texCoord);
  207. //if(u_scale > 100. ) {
  208. if(color.a >= 0.4) {
  209. gl_FragColor = vec4(0.15, 0.15, 0.15, 1);
  210. }else{
  211. gl_FragColor = vec4(0, 0, 0, 0);
  212. }
  213. //}else{
  214. // gl_FragColor = vec4(.15, 0.15, 0.15, color.a);
  215. //}
  216. }
  217. `;class Ne extends Me{constructor(t,e,r,h){const a=t.gl;let n=a.createTexture();a.bindTexture(a.TEXTURE_2D,n),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR),a.texImage2D(a.TEXTURE_2D,0,a.ALPHA,a.ALPHA,a.UNSIGNED_BYTE,e),super(t,n,e.width,e.height,r,h,Oe)}}var Ft=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ge(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l}function kt(l){throw new Error('Could not dynamically require "'+l+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var oe={exports:{}};/*!
  218. JSZip v3.10.1 - A JavaScript class for generating and reading zip files
  219. <http://stuartk.com/jszip>
  220. (c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
  221. Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.
  222. JSZip uses the library pako released under the MIT license :
  223. https://github.com/nodeca/pako/blob/main/LICENSE
  224. */(function(l,t){(function(e){l.exports=e()})(function(){return function e(r,h,a){function n(b,g){if(!h[b]){if(!r[b]){var _=typeof kt=="function"&&kt;if(!g&&_)return _(b,!0);if(o)return o(b,!0);var y=new Error("Cannot find module '"+b+"'");throw y.code="MODULE_NOT_FOUND",y}var m=h[b]={exports:{}};r[b][0].call(m.exports,function(p){var c=r[b][1][p];return n(c||p)},m,m.exports,e,r,h,a)}return h[b].exports}for(var o=typeof kt=="function"&&kt,i=0;i<a.length;i++)n(a[i]);return n}({1:[function(e,r,h){var a=e("./utils"),n=e("./support"),o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";h.encode=function(i){for(var b,g,_,y,m,p,c,f=[],d=0,v=i.length,w=v,R=a.getTypeOf(i)!=="string";d<i.length;)w=v-d,_=R?(b=i[d++],g=d<v?i[d++]:0,d<v?i[d++]:0):(b=i.charCodeAt(d++),g=d<v?i.charCodeAt(d++):0,d<v?i.charCodeAt(d++):0),y=b>>2,m=(3&b)<<4|g>>4,p=1<w?(15&g)<<2|_>>6:64,c=2<w?63&_:64,f.push(o.charAt(y)+o.charAt(m)+o.charAt(p)+o.charAt(c));return f.join("")},h.decode=function(i){var b,g,_,y,m,p,c=0,f=0,d="data:";if(i.substr(0,d.length)===d)throw new Error("Invalid base64 input, it looks like a data url.");var v,w=3*(i=i.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(i.charAt(i.length-1)===o.charAt(64)&&w--,i.charAt(i.length-2)===o.charAt(64)&&w--,w%1!=0)throw new Error("Invalid base64 input, bad content length.");for(v=n.uint8array?new Uint8Array(0|w):new Array(0|w);c<i.length;)b=o.indexOf(i.charAt(c++))<<2|(y=o.indexOf(i.charAt(c++)))>>4,g=(15&y)<<4|(m=o.indexOf(i.charAt(c++)))>>2,_=(3&m)<<6|(p=o.indexOf(i.charAt(c++))),v[f++]=b,m!==64&&(v[f++]=g),p!==64&&(v[f++]=_);return v}},{"./support":30,"./utils":32}],2:[function(e,r,h){var a=e("./external"),n=e("./stream/DataWorker"),o=e("./stream/Crc32Probe"),i=e("./stream/DataLengthProbe");function b(g,_,y,m,p){this.compressedSize=g,this.uncompressedSize=_,this.crc32=y,this.compression=m,this.compressedContent=p}b.prototype={getContentWorker:function(){var g=new n(a.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new i("data_length")),_=this;return g.on("end",function(){if(this.streamInfo.data_length!==_.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),g},getCompressedWorker:function(){return new n(a.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},b.createWorkerFrom=function(g,_,y){return g.pipe(new o).pipe(new i("uncompressedSize")).pipe(_.compressWorker(y)).pipe(new i("compressedSize")).withStreamInfo("compression",_)},r.exports=b},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,r,h){var a=e("./stream/GenericWorker");h.STORE={magic:"\0\0",compressWorker:function(){return new a("STORE compression")},uncompressWorker:function(){return new a("STORE decompression")}},h.DEFLATE=e("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,r,h){var a=e("./utils"),n=function(){for(var o,i=[],b=0;b<256;b++){o=b;for(var g=0;g<8;g++)o=1&o?3988292384^o>>>1:o>>>1;i[b]=o}return i}();r.exports=function(o,i){return o!==void 0&&o.length?a.getTypeOf(o)!=="string"?function(b,g,_,y){var m=n,p=y+_;b^=-1;for(var c=y;c<p;c++)b=b>>>8^m[255&(b^g[c])];return-1^b}(0|i,o,o.length,0):function(b,g,_,y){var m=n,p=y+_;b^=-1;for(var c=y;c<p;c++)b=b>>>8^m[255&(b^g.charCodeAt(c))];return-1^b}(0|i,o,o.length,0):0}},{"./utils":32}],5:[function(e,r,h){h.base64=!1,h.binary=!1,h.dir=!1,h.createFolders=!0,h.date=null,h.compression=null,h.compressionOptions=null,h.comment=null,h.unixPermissions=null,h.dosPermissions=null},{}],6:[function(e,r,h){var a=null;a=typeof Promise<"u"?Promise:e("lie"),r.exports={Promise:a}},{lie:37}],7:[function(e,r,h){var a=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",n=e("pako"),o=e("./utils"),i=e("./stream/GenericWorker"),b=a?"uint8array":"array";function g(_,y){i.call(this,"FlateWorker/"+_),this._pako=null,this._pakoAction=_,this._pakoOptions=y,this.meta={}}h.magic="\b\0",o.inherits(g,i),g.prototype.processChunk=function(_){this.meta=_.meta,this._pako===null&&this._createPako(),this._pako.push(o.transformTo(b,_.data),!1)},g.prototype.flush=function(){i.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},g.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this._pako=null},g.prototype._createPako=function(){this._pako=new n[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var _=this;this._pako.onData=function(y){_.push({data:y,meta:_.meta})}},h.compressWorker=function(_){return new g("Deflate",_)},h.uncompressWorker=function(){return new g("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,r,h){function a(m,p){var c,f="";for(c=0;c<p;c++)f+=String.fromCharCode(255&m),m>>>=8;return f}function n(m,p,c,f,d,v){var w,R,C=m.file,U=m.compression,k=v!==b.utf8encode,O=o.transformTo("string",v(C.name)),B=o.transformTo("string",b.utf8encode(C.name)),P=C.comment,$=o.transformTo("string",v(P)),E=o.transformTo("string",b.utf8encode(P)),I=B.length!==C.name.length,u=E.length!==P.length,z="",K="",G="",tt=C.dir,j=C.date,J={crc32:0,compressedSize:0,uncompressedSize:0};p&&!c||(J.crc32=m.crc32,J.compressedSize=m.compressedSize,J.uncompressedSize=m.uncompressedSize);var L=0;p&&(L|=8),k||!I&&!u||(L|=2048);var F=0,q=0;tt&&(F|=16),d==="UNIX"?(q=798,F|=function(Y,at){var st=Y;return Y||(st=at?16893:33204),(65535&st)<<16}(C.unixPermissions,tt)):(q=20,F|=function(Y){return 63&(Y||0)}(C.dosPermissions)),w=j.getUTCHours(),w<<=6,w|=j.getUTCMinutes(),w<<=5,w|=j.getUTCSeconds()/2,R=j.getUTCFullYear()-1980,R<<=4,R|=j.getUTCMonth()+1,R<<=5,R|=j.getUTCDate(),I&&(K=a(1,1)+a(g(O),4)+B,z+="up"+a(K.length,2)+K),u&&(G=a(1,1)+a(g($),4)+E,z+="uc"+a(G.length,2)+G);var V="";return V+=`
  225. \0`,V+=a(L,2),V+=U.magic,V+=a(w,2),V+=a(R,2),V+=a(J.crc32,4),V+=a(J.compressedSize,4),V+=a(J.uncompressedSize,4),V+=a(O.length,2),V+=a(z.length,2),{fileRecord:_.LOCAL_FILE_HEADER+V+O+z,dirRecord:_.CENTRAL_FILE_HEADER+a(q,2)+V+a($.length,2)+"\0\0\0\0"+a(F,4)+a(f,4)+O+z+$}}var o=e("../utils"),i=e("../stream/GenericWorker"),b=e("../utf8"),g=e("../crc32"),_=e("../signature");function y(m,p,c,f){i.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=p,this.zipPlatform=c,this.encodeFileName=f,this.streamFiles=m,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}o.inherits(y,i),y.prototype.push=function(m){var p=m.meta.percent||0,c=this.entriesCount,f=this._sources.length;this.accumulate?this.contentBuffer.push(m):(this.bytesWritten+=m.data.length,i.prototype.push.call(this,{data:m.data,meta:{currentFile:this.currentFile,percent:c?(p+100*(c-f-1))/c:100}}))},y.prototype.openedSource=function(m){this.currentSourceOffset=this.bytesWritten,this.currentFile=m.file.name;var p=this.streamFiles&&!m.file.dir;if(p){var c=n(m,p,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:c.fileRecord,meta:{percent:0}})}else this.accumulate=!0},y.prototype.closedSource=function(m){this.accumulate=!1;var p=this.streamFiles&&!m.file.dir,c=n(m,p,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(c.dirRecord),p)this.push({data:function(f){return _.DATA_DESCRIPTOR+a(f.crc32,4)+a(f.compressedSize,4)+a(f.uncompressedSize,4)}(m),meta:{percent:100}});else for(this.push({data:c.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},y.prototype.flush=function(){for(var m=this.bytesWritten,p=0;p<this.dirRecords.length;p++)this.push({data:this.dirRecords[p],meta:{percent:100}});var c=this.bytesWritten-m,f=function(d,v,w,R,C){var U=o.transformTo("string",C(R));return _.CENTRAL_DIRECTORY_END+"\0\0\0\0"+a(d,2)+a(d,2)+a(v,4)+a(w,4)+a(U.length,2)+U}(this.dirRecords.length,c,m,this.zipComment,this.encodeFileName);this.push({data:f,meta:{percent:100}})},y.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},y.prototype.registerPrevious=function(m){this._sources.push(m);var p=this;return m.on("data",function(c){p.processChunk(c)}),m.on("end",function(){p.closedSource(p.previous.streamInfo),p._sources.length?p.prepareNextSource():p.end()}),m.on("error",function(c){p.error(c)}),this},y.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},y.prototype.error=function(m){var p=this._sources;if(!i.prototype.error.call(this,m))return!1;for(var c=0;c<p.length;c++)try{p[c].error(m)}catch{}return!0},y.prototype.lock=function(){i.prototype.lock.call(this);for(var m=this._sources,p=0;p<m.length;p++)m[p].lock()},r.exports=y},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(e,r,h){var a=e("../compressions"),n=e("./ZipFileWorker");h.generateWorker=function(o,i,b){var g=new n(i.streamFiles,b,i.platform,i.encodeFileName),_=0;try{o.forEach(function(y,m){_++;var p=function(v,w){var R=v||w,C=a[R];if(!C)throw new Error(R+" is not a valid compression method !");return C}(m.options.compression,i.compression),c=m.options.compressionOptions||i.compressionOptions||{},f=m.dir,d=m.date;m._compressWorker(p,c).withStreamInfo("file",{name:y,dir:f,date:d,comment:m.comment||"",unixPermissions:m.unixPermissions,dosPermissions:m.dosPermissions}).pipe(g)}),g.entriesCount=_}catch(y){g.error(y)}return g}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(e,r,h){function a(){if(!(this instanceof a))return new a;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var n=new a;for(var o in this)typeof this[o]!="function"&&(n[o]=this[o]);return n}}(a.prototype=e("./object")).loadAsync=e("./load"),a.support=e("./support"),a.defaults=e("./defaults"),a.version="3.10.1",a.loadAsync=function(n,o){return new a().loadAsync(n,o)},a.external=e("./external"),r.exports=a},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(e,r,h){var a=e("./utils"),n=e("./external"),o=e("./utf8"),i=e("./zipEntries"),b=e("./stream/Crc32Probe"),g=e("./nodejsUtils");function _(y){return new n.Promise(function(m,p){var c=y.decompressed.getContentWorker().pipe(new b);c.on("error",function(f){p(f)}).on("end",function(){c.streamInfo.crc32!==y.decompressed.crc32?p(new Error("Corrupted zip : CRC32 mismatch")):m()}).resume()})}r.exports=function(y,m){var p=this;return m=a.extend(m||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:o.utf8decode}),g.isNode&&g.isStream(y)?n.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):a.prepareContent("the loaded zip file",y,!0,m.optimizedBinaryString,m.base64).then(function(c){var f=new i(m);return f.load(c),f}).then(function(c){var f=[n.Promise.resolve(c)],d=c.files;if(m.checkCRC32)for(var v=0;v<d.length;v++)f.push(_(d[v]));return n.Promise.all(f)}).then(function(c){for(var f=c.shift(),d=f.files,v=0;v<d.length;v++){var w=d[v],R=w.fileNameStr,C=a.resolve(w.fileNameStr);p.file(C,w.decompressed,{binary:!0,optimizedBinaryString:!0,date:w.date,dir:w.dir,comment:w.fileCommentStr.length?w.fileCommentStr:null,unixPermissions:w.unixPermissions,dosPermissions:w.dosPermissions,createFolders:m.createFolders}),w.dir||(p.file(C).unsafeOriginalName=R)}return f.zipComment.length&&(p.comment=f.zipComment),p})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(e,r,h){var a=e("../utils"),n=e("../stream/GenericWorker");function o(i,b){n.call(this,"Nodejs stream input adapter for "+i),this._upstreamEnded=!1,this._bindStream(b)}a.inherits(o,n),o.prototype._bindStream=function(i){var b=this;(this._stream=i).pause(),i.on("data",function(g){b.push({data:g,meta:{percent:0}})}).on("error",function(g){b.isPaused?this.generatedError=g:b.error(g)}).on("end",function(){b.isPaused?b._upstreamEnded=!0:b.end()})},o.prototype.pause=function(){return!!n.prototype.pause.call(this)&&(this._stream.pause(),!0)},o.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},r.exports=o},{"../stream/GenericWorker":28,"../utils":32}],13:[function(e,r,h){var a=e("readable-stream").Readable;function n(o,i,b){a.call(this,i),this._helper=o;var g=this;o.on("data",function(_,y){g.push(_)||g._helper.pause(),b&&b(y)}).on("error",function(_){g.emit("error",_)}).on("end",function(){g.push(null)})}e("../utils").inherits(n,a),n.prototype._read=function(){this._helper.resume()},r.exports=n},{"../utils":32,"readable-stream":16}],14:[function(e,r,h){r.exports={isNode:typeof Buffer<"u",newBufferFrom:function(a,n){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(a,n);if(typeof a=="number")throw new Error('The "data" argument must not be a number');return new Buffer(a,n)},allocBuffer:function(a){if(Buffer.alloc)return Buffer.alloc(a);var n=new Buffer(a);return n.fill(0),n},isBuffer:function(a){return Buffer.isBuffer(a)},isStream:function(a){return a&&typeof a.on=="function"&&typeof a.pause=="function"&&typeof a.resume=="function"}}},{}],15:[function(e,r,h){function a(C,U,k){var O,B=o.getTypeOf(U),P=o.extend(k||{},g);P.date=P.date||new Date,P.compression!==null&&(P.compression=P.compression.toUpperCase()),typeof P.unixPermissions=="string"&&(P.unixPermissions=parseInt(P.unixPermissions,8)),P.unixPermissions&&16384&P.unixPermissions&&(P.dir=!0),P.dosPermissions&&16&P.dosPermissions&&(P.dir=!0),P.dir&&(C=d(C)),P.createFolders&&(O=f(C))&&v.call(this,O,!0);var $=B==="string"&&P.binary===!1&&P.base64===!1;k&&k.binary!==void 0||(P.binary=!$),(U instanceof _&&U.uncompressedSize===0||P.dir||!U||U.length===0)&&(P.base64=!1,P.binary=!0,U="",P.compression="STORE",B="string");var E=null;E=U instanceof _||U instanceof i?U:p.isNode&&p.isStream(U)?new c(C,U):o.prepareContent(C,U,P.binary,P.optimizedBinaryString,P.base64);var I=new y(C,E,P);this.files[C]=I}var n=e("./utf8"),o=e("./utils"),i=e("./stream/GenericWorker"),b=e("./stream/StreamHelper"),g=e("./defaults"),_=e("./compressedObject"),y=e("./zipObject"),m=e("./generate"),p=e("./nodejsUtils"),c=e("./nodejs/NodejsStreamInputAdapter"),f=function(C){C.slice(-1)==="/"&&(C=C.substring(0,C.length-1));var U=C.lastIndexOf("/");return 0<U?C.substring(0,U):""},d=function(C){return C.slice(-1)!=="/"&&(C+="/"),C},v=function(C,U){return U=U!==void 0?U:g.createFolders,C=d(C),this.files[C]||a.call(this,C,null,{dir:!0,createFolders:U}),this.files[C]};function w(C){return Object.prototype.toString.call(C)==="[object RegExp]"}var R={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(C){var U,k,O;for(U in this.files)O=this.files[U],(k=U.slice(this.root.length,U.length))&&U.slice(0,this.root.length)===this.root&&C(k,O)},filter:function(C){var U=[];return this.forEach(function(k,O){C(k,O)&&U.push(O)}),U},file:function(C,U,k){if(arguments.length!==1)return C=this.root+C,a.call(this,C,U,k),this;if(w(C)){var O=C;return this.filter(function(P,$){return!$.dir&&O.test(P)})}var B=this.files[this.root+C];return B&&!B.dir?B:null},folder:function(C){if(!C)return this;if(w(C))return this.filter(function(B,P){return P.dir&&C.test(B)});var U=this.root+C,k=v.call(this,U),O=this.clone();return O.root=k.name,O},remove:function(C){C=this.root+C;var U=this.files[C];if(U||(C.slice(-1)!=="/"&&(C+="/"),U=this.files[C]),U&&!U.dir)delete this.files[C];else for(var k=this.filter(function(B,P){return P.name.slice(0,C.length)===C}),O=0;O<k.length;O++)delete this.files[k[O].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(C){var U,k={};try{if((k=o.extend(C||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:n.utf8encode})).type=k.type.toLowerCase(),k.compression=k.compression.toUpperCase(),k.type==="binarystring"&&(k.type="string"),!k.type)throw new Error("No output type specified.");o.checkSupport(k.type),k.platform!=="darwin"&&k.platform!=="freebsd"&&k.platform!=="linux"&&k.platform!=="sunos"||(k.platform="UNIX"),k.platform==="win32"&&(k.platform="DOS");var O=k.comment||this.comment||"";U=m.generateWorker(this,k,O)}catch(B){(U=new i("error")).error(B)}return new b(U,k.type||"string",k.mimeType)},generateAsync:function(C,U){return this.generateInternalStream(C).accumulate(U)},generateNodeStream:function(C,U){return(C=C||{}).type||(C.type="nodebuffer"),this.generateInternalStream(C).toNodejsStream(U)}};r.exports=R},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(e,r,h){r.exports=e("stream")},{stream:void 0}],17:[function(e,r,h){var a=e("./DataReader");function n(o){a.call(this,o);for(var i=0;i<this.data.length;i++)o[i]=255&o[i]}e("../utils").inherits(n,a),n.prototype.byteAt=function(o){return this.data[this.zero+o]},n.prototype.lastIndexOfSignature=function(o){for(var i=o.charCodeAt(0),b=o.charCodeAt(1),g=o.charCodeAt(2),_=o.charCodeAt(3),y=this.length-4;0<=y;--y)if(this.data[y]===i&&this.data[y+1]===b&&this.data[y+2]===g&&this.data[y+3]===_)return y-this.zero;return-1},n.prototype.readAndCheckSignature=function(o){var i=o.charCodeAt(0),b=o.charCodeAt(1),g=o.charCodeAt(2),_=o.charCodeAt(3),y=this.readData(4);return i===y[0]&&b===y[1]&&g===y[2]&&_===y[3]},n.prototype.readData=function(o){if(this.checkOffset(o),o===0)return[];var i=this.data.slice(this.zero+this.index,this.zero+this.index+o);return this.index+=o,i},r.exports=n},{"../utils":32,"./DataReader":18}],18:[function(e,r,h){var a=e("../utils");function n(o){this.data=o,this.length=o.length,this.index=0,this.zero=0}n.prototype={checkOffset:function(o){this.checkIndex(this.index+o)},checkIndex:function(o){if(this.length<this.zero+o||o<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+o+"). Corrupted zip ?")},setIndex:function(o){this.checkIndex(o),this.index=o},skip:function(o){this.setIndex(this.index+o)},byteAt:function(){},readInt:function(o){var i,b=0;for(this.checkOffset(o),i=this.index+o-1;i>=this.index;i--)b=(b<<8)+this.byteAt(i);return this.index+=o,b},readString:function(o){return a.transformTo("string",this.readData(o))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var o=this.readInt(4);return new Date(Date.UTC(1980+(o>>25&127),(o>>21&15)-1,o>>16&31,o>>11&31,o>>5&63,(31&o)<<1))}},r.exports=n},{"../utils":32}],19:[function(e,r,h){var a=e("./Uint8ArrayReader");function n(o){a.call(this,o)}e("../utils").inherits(n,a),n.prototype.readData=function(o){this.checkOffset(o);var i=this.data.slice(this.zero+this.index,this.zero+this.index+o);return this.index+=o,i},r.exports=n},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,r,h){var a=e("./DataReader");function n(o){a.call(this,o)}e("../utils").inherits(n,a),n.prototype.byteAt=function(o){return this.data.charCodeAt(this.zero+o)},n.prototype.lastIndexOfSignature=function(o){return this.data.lastIndexOf(o)-this.zero},n.prototype.readAndCheckSignature=function(o){return o===this.readData(4)},n.prototype.readData=function(o){this.checkOffset(o);var i=this.data.slice(this.zero+this.index,this.zero+this.index+o);return this.index+=o,i},r.exports=n},{"../utils":32,"./DataReader":18}],21:[function(e,r,h){var a=e("./ArrayReader");function n(o){a.call(this,o)}e("../utils").inherits(n,a),n.prototype.readData=function(o){if(this.checkOffset(o),o===0)return new Uint8Array(0);var i=this.data.subarray(this.zero+this.index,this.zero+this.index+o);return this.index+=o,i},r.exports=n},{"../utils":32,"./ArrayReader":17}],22:[function(e,r,h){var a=e("../utils"),n=e("../support"),o=e("./ArrayReader"),i=e("./StringReader"),b=e("./NodeBufferReader"),g=e("./Uint8ArrayReader");r.exports=function(_){var y=a.getTypeOf(_);return a.checkSupport(y),y!=="string"||n.uint8array?y==="nodebuffer"?new b(_):n.uint8array?new g(a.transformTo("uint8array",_)):new o(a.transformTo("array",_)):new i(_)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,r,h){h.LOCAL_FILE_HEADER="PK",h.CENTRAL_FILE_HEADER="PK",h.CENTRAL_DIRECTORY_END="PK",h.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",h.ZIP64_CENTRAL_DIRECTORY_END="PK",h.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(e,r,h){var a=e("./GenericWorker"),n=e("../utils");function o(i){a.call(this,"ConvertWorker to "+i),this.destType=i}n.inherits(o,a),o.prototype.processChunk=function(i){this.push({data:n.transformTo(this.destType,i.data),meta:i.meta})},r.exports=o},{"../utils":32,"./GenericWorker":28}],25:[function(e,r,h){var a=e("./GenericWorker"),n=e("../crc32");function o(){a.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}e("../utils").inherits(o,a),o.prototype.processChunk=function(i){this.streamInfo.crc32=n(i.data,this.streamInfo.crc32||0),this.push(i)},r.exports=o},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,r,h){var a=e("../utils"),n=e("./GenericWorker");function o(i){n.call(this,"DataLengthProbe for "+i),this.propName=i,this.withStreamInfo(i,0)}a.inherits(o,n),o.prototype.processChunk=function(i){if(i){var b=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=b+i.data.length}n.prototype.processChunk.call(this,i)},r.exports=o},{"../utils":32,"./GenericWorker":28}],27:[function(e,r,h){var a=e("../utils"),n=e("./GenericWorker");function o(i){n.call(this,"DataWorker");var b=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,i.then(function(g){b.dataIsReady=!0,b.data=g,b.max=g&&g.length||0,b.type=a.getTypeOf(g),b.isPaused||b._tickAndRepeat()},function(g){b.error(g)})}a.inherits(o,n),o.prototype.cleanUp=function(){n.prototype.cleanUp.call(this),this.data=null},o.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,a.delay(this._tickAndRepeat,[],this)),!0)},o.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(a.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},o.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var i=null,b=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":i=this.data.substring(this.index,b);break;case"uint8array":i=this.data.subarray(this.index,b);break;case"array":case"nodebuffer":i=this.data.slice(this.index,b)}return this.index=b,this.push({data:i,meta:{percent:this.max?this.index/this.max*100:0}})},r.exports=o},{"../utils":32,"./GenericWorker":28}],28:[function(e,r,h){function a(n){this.name=n||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}a.prototype={push:function(n){this.emit("data",n)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(n){this.emit("error",n)}return!0},error:function(n){return!this.isFinished&&(this.isPaused?this.generatedError=n:(this.isFinished=!0,this.emit("error",n),this.previous&&this.previous.error(n),this.cleanUp()),!0)},on:function(n,o){return this._listeners[n].push(o),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(n,o){if(this._listeners[n])for(var i=0;i<this._listeners[n].length;i++)this._listeners[n][i].call(this,o)},pipe:function(n){return n.registerPrevious(this)},registerPrevious:function(n){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=n.streamInfo,this.mergeStreamInfo(),this.previous=n;var o=this;return n.on("data",function(i){o.processChunk(i)}),n.on("end",function(){o.end()}),n.on("error",function(i){o.error(i)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var n=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),n=!0),this.previous&&this.previous.resume(),!n},flush:function(){},processChunk:function(n){this.push(n)},withStreamInfo:function(n,o){return this.extraStreamInfo[n]=o,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var n in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,n)&&(this.streamInfo[n]=this.extraStreamInfo[n])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var n="Worker "+this.name;return this.previous?this.previous+" -> "+n:n}},r.exports=a},{}],29:[function(e,r,h){var a=e("../utils"),n=e("./ConvertWorker"),o=e("./GenericWorker"),i=e("../base64"),b=e("../support"),g=e("../external"),_=null;if(b.nodestream)try{_=e("../nodejs/NodejsStreamOutputAdapter")}catch{}function y(p,c){return new g.Promise(function(f,d){var v=[],w=p._internalType,R=p._outputType,C=p._mimeType;p.on("data",function(U,k){v.push(U),c&&c(k)}).on("error",function(U){v=[],d(U)}).on("end",function(){try{var U=function(k,O,B){switch(k){case"blob":return a.newBlob(a.transformTo("arraybuffer",O),B);case"base64":return i.encode(O);default:return a.transformTo(k,O)}}(R,function(k,O){var B,P=0,$=null,E=0;for(B=0;B<O.length;B++)E+=O[B].length;switch(k){case"string":return O.join("");case"array":return Array.prototype.concat.apply([],O);case"uint8array":for($=new Uint8Array(E),B=0;B<O.length;B++)$.set(O[B],P),P+=O[B].length;return $;case"nodebuffer":return Buffer.concat(O);default:throw new Error("concat : unsupported type '"+k+"'")}}(w,v),C);f(U)}catch(k){d(k)}v=[]}).resume()})}function m(p,c,f){var d=c;switch(c){case"blob":case"arraybuffer":d="uint8array";break;case"base64":d="string"}try{this._internalType=d,this._outputType=c,this._mimeType=f,a.checkSupport(d),this._worker=p.pipe(new n(d)),p.lock()}catch(v){this._worker=new o("error"),this._worker.error(v)}}m.prototype={accumulate:function(p){return y(this,p)},on:function(p,c){var f=this;return p==="data"?this._worker.on(p,function(d){c.call(f,d.data,d.meta)}):this._worker.on(p,function(){a.delay(c,arguments,f)}),this},resume:function(){return a.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(p){if(a.checkSupport("nodestream"),this._outputType!=="nodebuffer")throw new Error(this._outputType+" is not supported by this method");return new _(this,{objectMode:this._outputType!=="nodebuffer"},p)}},r.exports=m},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(e,r,h){if(h.base64=!0,h.array=!0,h.string=!0,h.arraybuffer=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u",h.nodebuffer=typeof Buffer<"u",h.uint8array=typeof Uint8Array<"u",typeof ArrayBuffer>"u")h.blob=!1;else{var a=new ArrayBuffer(0);try{h.blob=new Blob([a],{type:"application/zip"}).size===0}catch{try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);n.append(a),h.blob=n.getBlob("application/zip").size===0}catch{h.blob=!1}}}try{h.nodestream=!!e("readable-stream").Readable}catch{h.nodestream=!1}},{"readable-stream":16}],31:[function(e,r,h){for(var a=e("./utils"),n=e("./support"),o=e("./nodejsUtils"),i=e("./stream/GenericWorker"),b=new Array(256),g=0;g<256;g++)b[g]=252<=g?6:248<=g?5:240<=g?4:224<=g?3:192<=g?2:1;b[254]=b[254]=1;function _(){i.call(this,"utf-8 decode"),this.leftOver=null}function y(){i.call(this,"utf-8 encode")}h.utf8encode=function(m){return n.nodebuffer?o.newBufferFrom(m,"utf-8"):function(p){var c,f,d,v,w,R=p.length,C=0;for(v=0;v<R;v++)(64512&(f=p.charCodeAt(v)))==55296&&v+1<R&&(64512&(d=p.charCodeAt(v+1)))==56320&&(f=65536+(f-55296<<10)+(d-56320),v++),C+=f<128?1:f<2048?2:f<65536?3:4;for(c=n.uint8array?new Uint8Array(C):new Array(C),v=w=0;w<C;v++)(64512&(f=p.charCodeAt(v)))==55296&&v+1<R&&(64512&(d=p.charCodeAt(v+1)))==56320&&(f=65536+(f-55296<<10)+(d-56320),v++),f<128?c[w++]=f:(f<2048?c[w++]=192|f>>>6:(f<65536?c[w++]=224|f>>>12:(c[w++]=240|f>>>18,c[w++]=128|f>>>12&63),c[w++]=128|f>>>6&63),c[w++]=128|63&f);return c}(m)},h.utf8decode=function(m){return n.nodebuffer?a.transformTo("nodebuffer",m).toString("utf-8"):function(p){var c,f,d,v,w=p.length,R=new Array(2*w);for(c=f=0;c<w;)if((d=p[c++])<128)R[f++]=d;else if(4<(v=b[d]))R[f++]=65533,c+=v-1;else{for(d&=v===2?31:v===3?15:7;1<v&&c<w;)d=d<<6|63&p[c++],v--;1<v?R[f++]=65533:d<65536?R[f++]=d:(d-=65536,R[f++]=55296|d>>10&1023,R[f++]=56320|1023&d)}return R.length!==f&&(R.subarray?R=R.subarray(0,f):R.length=f),a.applyFromCharCode(R)}(m=a.transformTo(n.uint8array?"uint8array":"array",m))},a.inherits(_,i),_.prototype.processChunk=function(m){var p=a.transformTo(n.uint8array?"uint8array":"array",m.data);if(this.leftOver&&this.leftOver.length){if(n.uint8array){var c=p;(p=new Uint8Array(c.length+this.leftOver.length)).set(this.leftOver,0),p.set(c,this.leftOver.length)}else p=this.leftOver.concat(p);this.leftOver=null}var f=function(v,w){var R;for((w=w||v.length)>v.length&&(w=v.length),R=w-1;0<=R&&(192&v[R])==128;)R--;return R<0||R===0?w:R+b[v[R]]>w?R:w}(p),d=p;f!==p.length&&(n.uint8array?(d=p.subarray(0,f),this.leftOver=p.subarray(f,p.length)):(d=p.slice(0,f),this.leftOver=p.slice(f,p.length))),this.push({data:h.utf8decode(d),meta:m.meta})},_.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:h.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},h.Utf8DecodeWorker=_,a.inherits(y,i),y.prototype.processChunk=function(m){this.push({data:h.utf8encode(m.data),meta:m.meta})},h.Utf8EncodeWorker=y},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,r,h){var a=e("./support"),n=e("./base64"),o=e("./nodejsUtils"),i=e("./external");function b(c){return c}function g(c,f){for(var d=0;d<c.length;++d)f[d]=255&c.charCodeAt(d);return f}e("setimmediate"),h.newBlob=function(c,f){h.checkSupport("blob");try{return new Blob([c],{type:f})}catch{try{var d=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return d.append(c),d.getBlob(f)}catch{throw new Error("Bug : can't construct the Blob.")}}};var _={stringifyByChunk:function(c,f,d){var v=[],w=0,R=c.length;if(R<=d)return String.fromCharCode.apply(null,c);for(;w<R;)f==="array"||f==="nodebuffer"?v.push(String.fromCharCode.apply(null,c.slice(w,Math.min(w+d,R)))):v.push(String.fromCharCode.apply(null,c.subarray(w,Math.min(w+d,R)))),w+=d;return v.join("")},stringifyByChar:function(c){for(var f="",d=0;d<c.length;d++)f+=String.fromCharCode(c[d]);return f},applyCanBeUsed:{uint8array:function(){try{return a.uint8array&&String.fromCharCode.apply(null,new Uint8Array(1)).length===1}catch{return!1}}(),nodebuffer:function(){try{return a.nodebuffer&&String.fromCharCode.apply(null,o.allocBuffer(1)).length===1}catch{return!1}}()}};function y(c){var f=65536,d=h.getTypeOf(c),v=!0;if(d==="uint8array"?v=_.applyCanBeUsed.uint8array:d==="nodebuffer"&&(v=_.applyCanBeUsed.nodebuffer),v)for(;1<f;)try{return _.stringifyByChunk(c,d,f)}catch{f=Math.floor(f/2)}return _.stringifyByChar(c)}function m(c,f){for(var d=0;d<c.length;d++)f[d]=c[d];return f}h.applyFromCharCode=y;var p={};p.string={string:b,array:function(c){return g(c,new Array(c.length))},arraybuffer:function(c){return p.string.uint8array(c).buffer},uint8array:function(c){return g(c,new Uint8Array(c.length))},nodebuffer:function(c){return g(c,o.allocBuffer(c.length))}},p.array={string:y,array:b,arraybuffer:function(c){return new Uint8Array(c).buffer},uint8array:function(c){return new Uint8Array(c)},nodebuffer:function(c){return o.newBufferFrom(c)}},p.arraybuffer={string:function(c){return y(new Uint8Array(c))},array:function(c){return m(new Uint8Array(c),new Array(c.byteLength))},arraybuffer:b,uint8array:function(c){return new Uint8Array(c)},nodebuffer:function(c){return o.newBufferFrom(new Uint8Array(c))}},p.uint8array={string:y,array:function(c){return m(c,new Array(c.length))},arraybuffer:function(c){return c.buffer},uint8array:b,nodebuffer:function(c){return o.newBufferFrom(c)}},p.nodebuffer={string:y,array:function(c){return m(c,new Array(c.length))},arraybuffer:function(c){return p.nodebuffer.uint8array(c).buffer},uint8array:function(c){return m(c,new Uint8Array(c.length))},nodebuffer:b},h.transformTo=function(c,f){if(f=f||"",!c)return f;h.checkSupport(c);var d=h.getTypeOf(f);return p[d][c](f)},h.resolve=function(c){for(var f=c.split("/"),d=[],v=0;v<f.length;v++){var w=f[v];w==="."||w===""&&v!==0&&v!==f.length-1||(w===".."?d.pop():d.push(w))}return d.join("/")},h.getTypeOf=function(c){return typeof c=="string"?"string":Object.prototype.toString.call(c)==="[object Array]"?"array":a.nodebuffer&&o.isBuffer(c)?"nodebuffer":a.uint8array&&c instanceof Uint8Array?"uint8array":a.arraybuffer&&c instanceof ArrayBuffer?"arraybuffer":void 0},h.checkSupport=function(c){if(!a[c.toLowerCase()])throw new Error(c+" is not supported by this platform")},h.MAX_VALUE_16BITS=65535,h.MAX_VALUE_32BITS=-1,h.pretty=function(c){var f,d,v="";for(d=0;d<(c||"").length;d++)v+="\\x"+((f=c.charCodeAt(d))<16?"0":"")+f.toString(16).toUpperCase();return v},h.delay=function(c,f,d){setImmediate(function(){c.apply(d||null,f||[])})},h.inherits=function(c,f){function d(){}d.prototype=f.prototype,c.prototype=new d},h.extend=function(){var c,f,d={};for(c=0;c<arguments.length;c++)for(f in arguments[c])Object.prototype.hasOwnProperty.call(arguments[c],f)&&d[f]===void 0&&(d[f]=arguments[c][f]);return d},h.prepareContent=function(c,f,d,v,w){return i.Promise.resolve(f).then(function(R){return a.blob&&(R instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(R))!==-1)&&typeof FileReader<"u"?new i.Promise(function(C,U){var k=new FileReader;k.onload=function(O){C(O.target.result)},k.onerror=function(O){U(O.target.error)},k.readAsArrayBuffer(R)}):R}).then(function(R){var C=h.getTypeOf(R);return C?(C==="arraybuffer"?R=h.transformTo("uint8array",R):C==="string"&&(w?R=n.decode(R):d&&v!==!0&&(R=function(U){return g(U,a.uint8array?new Uint8Array(U.length):new Array(U.length))}(R))),R):i.Promise.reject(new Error("Can't read the data of '"+c+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(e,r,h){var a=e("./reader/readerFor"),n=e("./utils"),o=e("./signature"),i=e("./zipEntry"),b=e("./support");function g(_){this.files=[],this.loadOptions=_}g.prototype={checkSignature:function(_){if(!this.reader.readAndCheckSignature(_)){this.reader.index-=4;var y=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+n.pretty(y)+", expected "+n.pretty(_)+")")}},isSignature:function(_,y){var m=this.reader.index;this.reader.setIndex(_);var p=this.reader.readString(4)===y;return this.reader.setIndex(m),p},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var _=this.reader.readData(this.zipCommentLength),y=b.uint8array?"uint8array":"array",m=n.transformTo(y,_);this.zipComment=this.loadOptions.decodeFileName(m)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var _,y,m,p=this.zip64EndOfCentralSize-44;0<p;)_=this.reader.readInt(2),y=this.reader.readInt(4),m=this.reader.readData(y),this.zip64ExtensibleData[_]={id:_,length:y,value:m}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var _,y;for(_=0;_<this.files.length;_++)y=this.files[_],this.reader.setIndex(y.localHeaderOffset),this.checkSignature(o.LOCAL_FILE_HEADER),y.readLocalPart(this.reader),y.handleUTF8(),y.processAttributes()},readCentralDir:function(){var _;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(o.CENTRAL_FILE_HEADER);)(_=new i({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(_);if(this.centralDirRecords!==this.files.length&&this.centralDirRecords!==0&&this.files.length===0)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var _=this.reader.lastIndexOfSignature(o.CENTRAL_DIRECTORY_END);if(_<0)throw this.isSignature(0,o.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(_);var y=_;if(this.checkSignature(o.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===n.MAX_VALUE_16BITS||this.diskWithCentralDirStart===n.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===n.MAX_VALUE_16BITS||this.centralDirRecords===n.MAX_VALUE_16BITS||this.centralDirSize===n.MAX_VALUE_32BITS||this.centralDirOffset===n.MAX_VALUE_32BITS){if(this.zip64=!0,(_=this.reader.lastIndexOfSignature(o.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(_),this.checkSignature(o.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,o.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(o.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(o.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var m=this.centralDirOffset+this.centralDirSize;this.zip64&&(m+=20,m+=12+this.zip64EndOfCentralSize);var p=y-m;if(0<p)this.isSignature(y,o.CENTRAL_FILE_HEADER)||(this.reader.zero=p);else if(p<0)throw new Error("Corrupted zip: missing "+Math.abs(p)+" bytes.")},prepareReader:function(_){this.reader=a(_)},load:function(_){this.prepareReader(_),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},r.exports=g},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(e,r,h){var a=e("./reader/readerFor"),n=e("./utils"),o=e("./compressedObject"),i=e("./crc32"),b=e("./utf8"),g=e("./compressions"),_=e("./support");function y(m,p){this.options=m,this.loadOptions=p}y.prototype={isEncrypted:function(){return(1&this.bitFlag)==1},useUTF8:function(){return(2048&this.bitFlag)==2048},readLocalPart:function(m){var p,c;if(m.skip(22),this.fileNameLength=m.readInt(2),c=m.readInt(2),this.fileName=m.readData(this.fileNameLength),m.skip(c),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if((p=function(f){for(var d in g)if(Object.prototype.hasOwnProperty.call(g,d)&&g[d].magic===f)return g[d];return null}(this.compressionMethod))===null)throw new Error("Corrupted zip : compression "+n.pretty(this.compressionMethod)+" unknown (inner file : "+n.transformTo("string",this.fileName)+")");this.decompressed=new o(this.compressedSize,this.uncompressedSize,this.crc32,p,m.readData(this.compressedSize))},readCentralPart:function(m){this.versionMadeBy=m.readInt(2),m.skip(2),this.bitFlag=m.readInt(2),this.compressionMethod=m.readString(2),this.date=m.readDate(),this.crc32=m.readInt(4),this.compressedSize=m.readInt(4),this.uncompressedSize=m.readInt(4);var p=m.readInt(2);if(this.extraFieldsLength=m.readInt(2),this.fileCommentLength=m.readInt(2),this.diskNumberStart=m.readInt(2),this.internalFileAttributes=m.readInt(2),this.externalFileAttributes=m.readInt(4),this.localHeaderOffset=m.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");m.skip(p),this.readExtraFields(m),this.parseZIP64ExtraField(m),this.fileComment=m.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var m=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),m==0&&(this.dosPermissions=63&this.externalFileAttributes),m==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var m=a(this.extraFields[1].value);this.uncompressedSize===n.MAX_VALUE_32BITS&&(this.uncompressedSize=m.readInt(8)),this.compressedSize===n.MAX_VALUE_32BITS&&(this.compressedSize=m.readInt(8)),this.localHeaderOffset===n.MAX_VALUE_32BITS&&(this.localHeaderOffset=m.readInt(8)),this.diskNumberStart===n.MAX_VALUE_32BITS&&(this.diskNumberStart=m.readInt(4))}},readExtraFields:function(m){var p,c,f,d=m.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});m.index+4<d;)p=m.readInt(2),c=m.readInt(2),f=m.readData(c),this.extraFields[p]={id:p,length:c,value:f};m.setIndex(d)},handleUTF8:function(){var m=_.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=b.utf8decode(this.fileName),this.fileCommentStr=b.utf8decode(this.fileComment);else{var p=this.findExtraFieldUnicodePath();if(p!==null)this.fileNameStr=p;else{var c=n.transformTo(m,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(c)}var f=this.findExtraFieldUnicodeComment();if(f!==null)this.fileCommentStr=f;else{var d=n.transformTo(m,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(d)}}},findExtraFieldUnicodePath:function(){var m=this.extraFields[28789];if(m){var p=a(m.value);return p.readInt(1)!==1||i(this.fileName)!==p.readInt(4)?null:b.utf8decode(p.readData(m.length-5))}return null},findExtraFieldUnicodeComment:function(){var m=this.extraFields[25461];if(m){var p=a(m.value);return p.readInt(1)!==1||i(this.fileComment)!==p.readInt(4)?null:b.utf8decode(p.readData(m.length-5))}return null}},r.exports=y},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(e,r,h){function a(p,c,f){this.name=p,this.dir=f.dir,this.date=f.date,this.comment=f.comment,this.unixPermissions=f.unixPermissions,this.dosPermissions=f.dosPermissions,this._data=c,this._dataBinary=f.binary,this.options={compression:f.compression,compressionOptions:f.compressionOptions}}var n=e("./stream/StreamHelper"),o=e("./stream/DataWorker"),i=e("./utf8"),b=e("./compressedObject"),g=e("./stream/GenericWorker");a.prototype={internalStream:function(p){var c=null,f="string";try{if(!p)throw new Error("No output type specified.");var d=(f=p.toLowerCase())==="string"||f==="text";f!=="binarystring"&&f!=="text"||(f="string"),c=this._decompressWorker();var v=!this._dataBinary;v&&!d&&(c=c.pipe(new i.Utf8EncodeWorker)),!v&&d&&(c=c.pipe(new i.Utf8DecodeWorker))}catch(w){(c=new g("error")).error(w)}return new n(c,f,"")},async:function(p,c){return this.internalStream(p).accumulate(c)},nodeStream:function(p,c){return this.internalStream(p||"nodebuffer").toNodejsStream(c)},_compressWorker:function(p,c){if(this._data instanceof b&&this._data.compression.magic===p.magic)return this._data.getCompressedWorker();var f=this._decompressWorker();return this._dataBinary||(f=f.pipe(new i.Utf8EncodeWorker)),b.createWorkerFrom(f,p,c)},_decompressWorker:function(){return this._data instanceof b?this._data.getContentWorker():this._data instanceof g?this._data:new o(this._data)}};for(var _=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],y=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},m=0;m<_.length;m++)a.prototype[_[m]]=y;r.exports=a},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(e,r,h){(function(a){var n,o,i=a.MutationObserver||a.WebKitMutationObserver;if(i){var b=0,g=new i(p),_=a.document.createTextNode("");g.observe(_,{characterData:!0}),n=function(){_.data=b=++b%2}}else if(a.setImmediate||a.MessageChannel===void 0)n="document"in a&&"onreadystatechange"in a.document.createElement("script")?function(){var c=a.document.createElement("script");c.onreadystatechange=function(){p(),c.onreadystatechange=null,c.parentNode.removeChild(c),c=null},a.document.documentElement.appendChild(c)}:function(){setTimeout(p,0)};else{var y=new a.MessageChannel;y.port1.onmessage=p,n=function(){y.port2.postMessage(0)}}var m=[];function p(){var c,f;o=!0;for(var d=m.length;d;){for(f=m,m=[],c=-1;++c<d;)f[c]();d=m.length}o=!1}r.exports=function(c){m.push(c)!==1||o||n()}}).call(this,typeof Ft<"u"?Ft:typeof self<"u"?self:typeof window<"u"?window:{})},{}],37:[function(e,r,h){var a=e("immediate");function n(){}var o={},i=["REJECTED"],b=["FULFILLED"],g=["PENDING"];function _(d){if(typeof d!="function")throw new TypeError("resolver must be a function");this.state=g,this.queue=[],this.outcome=void 0,d!==n&&c(this,d)}function y(d,v,w){this.promise=d,typeof v=="function"&&(this.onFulfilled=v,this.callFulfilled=this.otherCallFulfilled),typeof w=="function"&&(this.onRejected=w,this.callRejected=this.otherCallRejected)}function m(d,v,w){a(function(){var R;try{R=v(w)}catch(C){return o.reject(d,C)}R===d?o.reject(d,new TypeError("Cannot resolve promise with itself")):o.resolve(d,R)})}function p(d){var v=d&&d.then;if(d&&(typeof d=="object"||typeof d=="function")&&typeof v=="function")return function(){v.apply(d,arguments)}}function c(d,v){var w=!1;function R(k){w||(w=!0,o.reject(d,k))}function C(k){w||(w=!0,o.resolve(d,k))}var U=f(function(){v(C,R)});U.status==="error"&&R(U.value)}function f(d,v){var w={};try{w.value=d(v),w.status="success"}catch(R){w.status="error",w.value=R}return w}(r.exports=_).prototype.finally=function(d){if(typeof d!="function")return this;var v=this.constructor;return this.then(function(w){return v.resolve(d()).then(function(){return w})},function(w){return v.resolve(d()).then(function(){throw w})})},_.prototype.catch=function(d){return this.then(null,d)},_.prototype.then=function(d,v){if(typeof d!="function"&&this.state===b||typeof v!="function"&&this.state===i)return this;var w=new this.constructor(n);return this.state!==g?m(w,this.state===b?d:v,this.outcome):this.queue.push(new y(w,d,v)),w},y.prototype.callFulfilled=function(d){o.resolve(this.promise,d)},y.prototype.otherCallFulfilled=function(d){m(this.promise,this.onFulfilled,d)},y.prototype.callRejected=function(d){o.reject(this.promise,d)},y.prototype.otherCallRejected=function(d){m(this.promise,this.onRejected,d)},o.resolve=function(d,v){var w=f(p,v);if(w.status==="error")return o.reject(d,w.value);var R=w.value;if(R)c(d,R);else{d.state=b,d.outcome=v;for(var C=-1,U=d.queue.length;++C<U;)d.queue[C].callFulfilled(v)}return d},o.reject=function(d,v){d.state=i,d.outcome=v;for(var w=-1,R=d.queue.length;++w<R;)d.queue[w].callRejected(v);return d},_.resolve=function(d){return d instanceof this?d:o.resolve(new this(n),d)},_.reject=function(d){var v=new this(n);return o.reject(v,d)},_.all=function(d){var v=this;if(Object.prototype.toString.call(d)!=="[object Array]")return this.reject(new TypeError("must be an array"));var w=d.length,R=!1;if(!w)return this.resolve([]);for(var C=new Array(w),U=0,k=-1,O=new this(n);++k<w;)B(d[k],k);return O;function B(P,$){v.resolve(P).then(function(E){C[$]=E,++U!==w||R||(R=!0,o.resolve(O,C))},function(E){R||(R=!0,o.reject(O,E))})}},_.race=function(d){var v=this;if(Object.prototype.toString.call(d)!=="[object Array]")return this.reject(new TypeError("must be an array"));var w=d.length,R=!1;if(!w)return this.resolve([]);for(var C=-1,U=new this(n);++C<w;)k=d[C],v.resolve(k).then(function(O){R||(R=!0,o.resolve(U,O))},function(O){R||(R=!0,o.reject(U,O))});var k;return U}},{immediate:36}],38:[function(e,r,h){var a={};(0,e("./lib/utils/common").assign)(a,e("./lib/deflate"),e("./lib/inflate"),e("./lib/zlib/constants")),r.exports=a},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(e,r,h){var a=e("./zlib/deflate"),n=e("./utils/common"),o=e("./utils/strings"),i=e("./zlib/messages"),b=e("./zlib/zstream"),g=Object.prototype.toString,_=0,y=-1,m=0,p=8;function c(d){if(!(this instanceof c))return new c(d);this.options=n.assign({level:y,method:p,chunkSize:16384,windowBits:15,memLevel:8,strategy:m,to:""},d||{});var v=this.options;v.raw&&0<v.windowBits?v.windowBits=-v.windowBits:v.gzip&&0<v.windowBits&&v.windowBits<16&&(v.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new b,this.strm.avail_out=0;var w=a.deflateInit2(this.strm,v.level,v.method,v.windowBits,v.memLevel,v.strategy);if(w!==_)throw new Error(i[w]);if(v.header&&a.deflateSetHeader(this.strm,v.header),v.dictionary){var R;if(R=typeof v.dictionary=="string"?o.string2buf(v.dictionary):g.call(v.dictionary)==="[object ArrayBuffer]"?new Uint8Array(v.dictionary):v.dictionary,(w=a.deflateSetDictionary(this.strm,R))!==_)throw new Error(i[w]);this._dict_set=!0}}function f(d,v){var w=new c(v);if(w.push(d,!0),w.err)throw w.msg||i[w.err];return w.result}c.prototype.push=function(d,v){var w,R,C=this.strm,U=this.options.chunkSize;if(this.ended)return!1;R=v===~~v?v:v===!0?4:0,typeof d=="string"?C.input=o.string2buf(d):g.call(d)==="[object ArrayBuffer]"?C.input=new Uint8Array(d):C.input=d,C.next_in=0,C.avail_in=C.input.length;do{if(C.avail_out===0&&(C.output=new n.Buf8(U),C.next_out=0,C.avail_out=U),(w=a.deflate(C,R))!==1&&w!==_)return this.onEnd(w),!(this.ended=!0);C.avail_out!==0&&(C.avail_in!==0||R!==4&&R!==2)||(this.options.to==="string"?this.onData(o.buf2binstring(n.shrinkBuf(C.output,C.next_out))):this.onData(n.shrinkBuf(C.output,C.next_out)))}while((0<C.avail_in||C.avail_out===0)&&w!==1);return R===4?(w=a.deflateEnd(this.strm),this.onEnd(w),this.ended=!0,w===_):R!==2||(this.onEnd(_),!(C.avail_out=0))},c.prototype.onData=function(d){this.chunks.push(d)},c.prototype.onEnd=function(d){d===_&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=n.flattenChunks(this.chunks)),this.chunks=[],this.err=d,this.msg=this.strm.msg},h.Deflate=c,h.deflate=f,h.deflateRaw=function(d,v){return(v=v||{}).raw=!0,f(d,v)},h.gzip=function(d,v){return(v=v||{}).gzip=!0,f(d,v)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(e,r,h){var a=e("./zlib/inflate"),n=e("./utils/common"),o=e("./utils/strings"),i=e("./zlib/constants"),b=e("./zlib/messages"),g=e("./zlib/zstream"),_=e("./zlib/gzheader"),y=Object.prototype.toString;function m(c){if(!(this instanceof m))return new m(c);this.options=n.assign({chunkSize:16384,windowBits:0,to:""},c||{});var f=this.options;f.raw&&0<=f.windowBits&&f.windowBits<16&&(f.windowBits=-f.windowBits,f.windowBits===0&&(f.windowBits=-15)),!(0<=f.windowBits&&f.windowBits<16)||c&&c.windowBits||(f.windowBits+=32),15<f.windowBits&&f.windowBits<48&&!(15&f.windowBits)&&(f.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new g,this.strm.avail_out=0;var d=a.inflateInit2(this.strm,f.windowBits);if(d!==i.Z_OK)throw new Error(b[d]);this.header=new _,a.inflateGetHeader(this.strm,this.header)}function p(c,f){var d=new m(f);if(d.push(c,!0),d.err)throw d.msg||b[d.err];return d.result}m.prototype.push=function(c,f){var d,v,w,R,C,U,k=this.strm,O=this.options.chunkSize,B=this.options.dictionary,P=!1;if(this.ended)return!1;v=f===~~f?f:f===!0?i.Z_FINISH:i.Z_NO_FLUSH,typeof c=="string"?k.input=o.binstring2buf(c):y.call(c)==="[object ArrayBuffer]"?k.input=new Uint8Array(c):k.input=c,k.next_in=0,k.avail_in=k.input.length;do{if(k.avail_out===0&&(k.output=new n.Buf8(O),k.next_out=0,k.avail_out=O),(d=a.inflate(k,i.Z_NO_FLUSH))===i.Z_NEED_DICT&&B&&(U=typeof B=="string"?o.string2buf(B):y.call(B)==="[object ArrayBuffer]"?new Uint8Array(B):B,d=a.inflateSetDictionary(this.strm,U)),d===i.Z_BUF_ERROR&&P===!0&&(d=i.Z_OK,P=!1),d!==i.Z_STREAM_END&&d!==i.Z_OK)return this.onEnd(d),!(this.ended=!0);k.next_out&&(k.avail_out!==0&&d!==i.Z_STREAM_END&&(k.avail_in!==0||v!==i.Z_FINISH&&v!==i.Z_SYNC_FLUSH)||(this.options.to==="string"?(w=o.utf8border(k.output,k.next_out),R=k.next_out-w,C=o.buf2string(k.output,w),k.next_out=R,k.avail_out=O-R,R&&n.arraySet(k.output,k.output,w,R,0),this.onData(C)):this.onData(n.shrinkBuf(k.output,k.next_out)))),k.avail_in===0&&k.avail_out===0&&(P=!0)}while((0<k.avail_in||k.avail_out===0)&&d!==i.Z_STREAM_END);return d===i.Z_STREAM_END&&(v=i.Z_FINISH),v===i.Z_FINISH?(d=a.inflateEnd(this.strm),this.onEnd(d),this.ended=!0,d===i.Z_OK):v!==i.Z_SYNC_FLUSH||(this.onEnd(i.Z_OK),!(k.avail_out=0))},m.prototype.onData=function(c){this.chunks.push(c)},m.prototype.onEnd=function(c){c===i.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=n.flattenChunks(this.chunks)),this.chunks=[],this.err=c,this.msg=this.strm.msg},h.Inflate=m,h.inflate=p,h.inflateRaw=function(c,f){return(f=f||{}).raw=!0,p(c,f)},h.ungzip=p},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(e,r,h){var a=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";h.assign=function(i){for(var b=Array.prototype.slice.call(arguments,1);b.length;){var g=b.shift();if(g){if(typeof g!="object")throw new TypeError(g+"must be non-object");for(var _ in g)g.hasOwnProperty(_)&&(i[_]=g[_])}}return i},h.shrinkBuf=function(i,b){return i.length===b?i:i.subarray?i.subarray(0,b):(i.length=b,i)};var n={arraySet:function(i,b,g,_,y){if(b.subarray&&i.subarray)i.set(b.subarray(g,g+_),y);else for(var m=0;m<_;m++)i[y+m]=b[g+m]},flattenChunks:function(i){var b,g,_,y,m,p;for(b=_=0,g=i.length;b<g;b++)_+=i[b].length;for(p=new Uint8Array(_),b=y=0,g=i.length;b<g;b++)m=i[b],p.set(m,y),y+=m.length;return p}},o={arraySet:function(i,b,g,_,y){for(var m=0;m<_;m++)i[y+m]=b[g+m]},flattenChunks:function(i){return[].concat.apply([],i)}};h.setTyped=function(i){i?(h.Buf8=Uint8Array,h.Buf16=Uint16Array,h.Buf32=Int32Array,h.assign(h,n)):(h.Buf8=Array,h.Buf16=Array,h.Buf32=Array,h.assign(h,o))},h.setTyped(a)},{}],42:[function(e,r,h){var a=e("./common"),n=!0,o=!0;try{String.fromCharCode.apply(null,[0])}catch{n=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{o=!1}for(var i=new a.Buf8(256),b=0;b<256;b++)i[b]=252<=b?6:248<=b?5:240<=b?4:224<=b?3:192<=b?2:1;function g(_,y){if(y<65537&&(_.subarray&&o||!_.subarray&&n))return String.fromCharCode.apply(null,a.shrinkBuf(_,y));for(var m="",p=0;p<y;p++)m+=String.fromCharCode(_[p]);return m}i[254]=i[254]=1,h.string2buf=function(_){var y,m,p,c,f,d=_.length,v=0;for(c=0;c<d;c++)(64512&(m=_.charCodeAt(c)))==55296&&c+1<d&&(64512&(p=_.charCodeAt(c+1)))==56320&&(m=65536+(m-55296<<10)+(p-56320),c++),v+=m<128?1:m<2048?2:m<65536?3:4;for(y=new a.Buf8(v),c=f=0;f<v;c++)(64512&(m=_.charCodeAt(c)))==55296&&c+1<d&&(64512&(p=_.charCodeAt(c+1)))==56320&&(m=65536+(m-55296<<10)+(p-56320),c++),m<128?y[f++]=m:(m<2048?y[f++]=192|m>>>6:(m<65536?y[f++]=224|m>>>12:(y[f++]=240|m>>>18,y[f++]=128|m>>>12&63),y[f++]=128|m>>>6&63),y[f++]=128|63&m);return y},h.buf2binstring=function(_){return g(_,_.length)},h.binstring2buf=function(_){for(var y=new a.Buf8(_.length),m=0,p=y.length;m<p;m++)y[m]=_.charCodeAt(m);return y},h.buf2string=function(_,y){var m,p,c,f,d=y||_.length,v=new Array(2*d);for(m=p=0;m<d;)if((c=_[m++])<128)v[p++]=c;else if(4<(f=i[c]))v[p++]=65533,m+=f-1;else{for(c&=f===2?31:f===3?15:7;1<f&&m<d;)c=c<<6|63&_[m++],f--;1<f?v[p++]=65533:c<65536?v[p++]=c:(c-=65536,v[p++]=55296|c>>10&1023,v[p++]=56320|1023&c)}return g(v,p)},h.utf8border=function(_,y){var m;for((y=y||_.length)>_.length&&(y=_.length),m=y-1;0<=m&&(192&_[m])==128;)m--;return m<0||m===0?y:m+i[_[m]]>y?m:y}},{"./common":41}],43:[function(e,r,h){r.exports=function(a,n,o,i){for(var b=65535&a|0,g=a>>>16&65535|0,_=0;o!==0;){for(o-=_=2e3<o?2e3:o;g=g+(b=b+n[i++]|0)|0,--_;);b%=65521,g%=65521}return b|g<<16|0}},{}],44:[function(e,r,h){r.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,r,h){var a=function(){for(var n,o=[],i=0;i<256;i++){n=i;for(var b=0;b<8;b++)n=1&n?3988292384^n>>>1:n>>>1;o[i]=n}return o}();r.exports=function(n,o,i,b){var g=a,_=b+i;n^=-1;for(var y=b;y<_;y++)n=n>>>8^g[255&(n^o[y])];return-1^n}},{}],46:[function(e,r,h){var a,n=e("../utils/common"),o=e("./trees"),i=e("./adler32"),b=e("./crc32"),g=e("./messages"),_=0,y=4,m=0,p=-2,c=-1,f=4,d=2,v=8,w=9,R=286,C=30,U=19,k=2*R+1,O=15,B=3,P=258,$=P+B+1,E=42,I=113,u=1,z=2,K=3,G=4;function tt(s,M){return s.msg=g[M],M}function j(s){return(s<<1)-(4<s?9:0)}function J(s){for(var M=s.length;0<=--M;)s[M]=0}function L(s){var M=s.state,D=M.pending;D>s.avail_out&&(D=s.avail_out),D!==0&&(n.arraySet(s.output,M.pending_buf,M.pending_out,D,s.next_out),s.next_out+=D,M.pending_out+=D,s.total_out+=D,s.avail_out-=D,M.pending-=D,M.pending===0&&(M.pending_out=0))}function F(s,M){o._tr_flush_block(s,0<=s.block_start?s.block_start:-1,s.strstart-s.block_start,M),s.block_start=s.strstart,L(s.strm)}function q(s,M){s.pending_buf[s.pending++]=M}function V(s,M){s.pending_buf[s.pending++]=M>>>8&255,s.pending_buf[s.pending++]=255&M}function Y(s,M){var D,A,x=s.max_chain_length,T=s.strstart,N=s.prev_length,W=s.nice_match,S=s.strstart>s.w_size-$?s.strstart-(s.w_size-$):0,X=s.window,H=s.w_mask,Z=s.prev,Q=s.strstart+P,ht=X[T+N-1],it=X[T+N];s.prev_length>=s.good_match&&(x>>=2),W>s.lookahead&&(W=s.lookahead);do if(X[(D=M)+N]===it&&X[D+N-1]===ht&&X[D]===X[T]&&X[++D]===X[T+1]){T+=2,D++;do;while(X[++T]===X[++D]&&X[++T]===X[++D]&&X[++T]===X[++D]&&X[++T]===X[++D]&&X[++T]===X[++D]&&X[++T]===X[++D]&&X[++T]===X[++D]&&X[++T]===X[++D]&&T<Q);if(A=P-(Q-T),T=Q-P,N<A){if(s.match_start=M,W<=(N=A))break;ht=X[T+N-1],it=X[T+N]}}while((M=Z[M&H])>S&&--x!=0);return N<=s.lookahead?N:s.lookahead}function at(s){var M,D,A,x,T,N,W,S,X,H,Z=s.w_size;do{if(x=s.window_size-s.lookahead-s.strstart,s.strstart>=Z+(Z-$)){for(n.arraySet(s.window,s.window,Z,Z,0),s.match_start-=Z,s.strstart-=Z,s.block_start-=Z,M=D=s.hash_size;A=s.head[--M],s.head[M]=Z<=A?A-Z:0,--D;);for(M=D=Z;A=s.prev[--M],s.prev[M]=Z<=A?A-Z:0,--D;);x+=Z}if(s.strm.avail_in===0)break;if(N=s.strm,W=s.window,S=s.strstart+s.lookahead,X=x,H=void 0,H=N.avail_in,X<H&&(H=X),D=H===0?0:(N.avail_in-=H,n.arraySet(W,N.input,N.next_in,H,S),N.state.wrap===1?N.adler=i(N.adler,W,H,S):N.state.wrap===2&&(N.adler=b(N.adler,W,H,S)),N.next_in+=H,N.total_in+=H,H),s.lookahead+=D,s.lookahead+s.insert>=B)for(T=s.strstart-s.insert,s.ins_h=s.window[T],s.ins_h=(s.ins_h<<s.hash_shift^s.window[T+1])&s.hash_mask;s.insert&&(s.ins_h=(s.ins_h<<s.hash_shift^s.window[T+B-1])&s.hash_mask,s.prev[T&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=T,T++,s.insert--,!(s.lookahead+s.insert<B)););}while(s.lookahead<$&&s.strm.avail_in!==0)}function st(s,M){for(var D,A;;){if(s.lookahead<$){if(at(s),s.lookahead<$&&M===_)return u;if(s.lookahead===0)break}if(D=0,s.lookahead>=B&&(s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+B-1])&s.hash_mask,D=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart),D!==0&&s.strstart-D<=s.w_size-$&&(s.match_length=Y(s,D)),s.match_length>=B)if(A=o._tr_tally(s,s.strstart-s.match_start,s.match_length-B),s.lookahead-=s.match_length,s.match_length<=s.max_lazy_match&&s.lookahead>=B){for(s.match_length--;s.strstart++,s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+B-1])&s.hash_mask,D=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart,--s.match_length!=0;);s.strstart++}else s.strstart+=s.match_length,s.match_length=0,s.ins_h=s.window[s.strstart],s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+1])&s.hash_mask;else A=o._tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++;if(A&&(F(s,!1),s.strm.avail_out===0))return u}return s.insert=s.strstart<B-1?s.strstart:B-1,M===y?(F(s,!0),s.strm.avail_out===0?K:G):s.last_lit&&(F(s,!1),s.strm.avail_out===0)?u:z}function et(s,M){for(var D,A,x;;){if(s.lookahead<$){if(at(s),s.lookahead<$&&M===_)return u;if(s.lookahead===0)break}if(D=0,s.lookahead>=B&&(s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+B-1])&s.hash_mask,D=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart),s.prev_length=s.match_length,s.prev_match=s.match_start,s.match_length=B-1,D!==0&&s.prev_length<s.max_lazy_match&&s.strstart-D<=s.w_size-$&&(s.match_length=Y(s,D),s.match_length<=5&&(s.strategy===1||s.match_length===B&&4096<s.strstart-s.match_start)&&(s.match_length=B-1)),s.prev_length>=B&&s.match_length<=s.prev_length){for(x=s.strstart+s.lookahead-B,A=o._tr_tally(s,s.strstart-1-s.prev_match,s.prev_length-B),s.lookahead-=s.prev_length-1,s.prev_length-=2;++s.strstart<=x&&(s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+B-1])&s.hash_mask,D=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart),--s.prev_length!=0;);if(s.match_available=0,s.match_length=B-1,s.strstart++,A&&(F(s,!1),s.strm.avail_out===0))return u}else if(s.match_available){if((A=o._tr_tally(s,0,s.window[s.strstart-1]))&&F(s,!1),s.strstart++,s.lookahead--,s.strm.avail_out===0)return u}else s.match_available=1,s.strstart++,s.lookahead--}return s.match_available&&(A=o._tr_tally(s,0,s.window[s.strstart-1]),s.match_available=0),s.insert=s.strstart<B-1?s.strstart:B-1,M===y?(F(s,!0),s.strm.avail_out===0?K:G):s.last_lit&&(F(s,!1),s.strm.avail_out===0)?u:z}function rt(s,M,D,A,x){this.good_length=s,this.max_lazy=M,this.nice_length=D,this.max_chain=A,this.func=x}function ot(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=v,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new n.Buf16(2*k),this.dyn_dtree=new n.Buf16(2*(2*C+1)),this.bl_tree=new n.Buf16(2*(2*U+1)),J(this.dyn_ltree),J(this.dyn_dtree),J(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new n.Buf16(O+1),this.heap=new n.Buf16(2*R+1),J(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new n.Buf16(2*R+1),J(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function nt(s){var M;return s&&s.state?(s.total_in=s.total_out=0,s.data_type=d,(M=s.state).pending=0,M.pending_out=0,M.wrap<0&&(M.wrap=-M.wrap),M.status=M.wrap?E:I,s.adler=M.wrap===2?0:1,M.last_flush=_,o._tr_init(M),m):tt(s,p)}function ft(s){var M=nt(s);return M===m&&function(D){D.window_size=2*D.w_size,J(D.head),D.max_lazy_match=a[D.level].max_lazy,D.good_match=a[D.level].good_length,D.nice_match=a[D.level].nice_length,D.max_chain_length=a[D.level].max_chain,D.strstart=0,D.block_start=0,D.lookahead=0,D.insert=0,D.match_length=D.prev_length=B-1,D.match_available=0,D.ins_h=0}(s.state),M}function dt(s,M,D,A,x,T){if(!s)return p;var N=1;if(M===c&&(M=6),A<0?(N=0,A=-A):15<A&&(N=2,A-=16),x<1||w<x||D!==v||A<8||15<A||M<0||9<M||T<0||f<T)return tt(s,p);A===8&&(A=9);var W=new ot;return(s.state=W).strm=s,W.wrap=N,W.gzhead=null,W.w_bits=A,W.w_size=1<<W.w_bits,W.w_mask=W.w_size-1,W.hash_bits=x+7,W.hash_size=1<<W.hash_bits,W.hash_mask=W.hash_size-1,W.hash_shift=~~((W.hash_bits+B-1)/B),W.window=new n.Buf8(2*W.w_size),W.head=new n.Buf16(W.hash_size),W.prev=new n.Buf16(W.w_size),W.lit_bufsize=1<<x+6,W.pending_buf_size=4*W.lit_bufsize,W.pending_buf=new n.Buf8(W.pending_buf_size),W.d_buf=1*W.lit_bufsize,W.l_buf=3*W.lit_bufsize,W.level=M,W.strategy=T,W.method=D,ft(s)}a=[new rt(0,0,0,0,function(s,M){var D=65535;for(D>s.pending_buf_size-5&&(D=s.pending_buf_size-5);;){if(s.lookahead<=1){if(at(s),s.lookahead===0&&M===_)return u;if(s.lookahead===0)break}s.strstart+=s.lookahead,s.lookahead=0;var A=s.block_start+D;if((s.strstart===0||s.strstart>=A)&&(s.lookahead=s.strstart-A,s.strstart=A,F(s,!1),s.strm.avail_out===0)||s.strstart-s.block_start>=s.w_size-$&&(F(s,!1),s.strm.avail_out===0))return u}return s.insert=0,M===y?(F(s,!0),s.strm.avail_out===0?K:G):(s.strstart>s.block_start&&(F(s,!1),s.strm.avail_out),u)}),new rt(4,4,8,4,st),new rt(4,5,16,8,st),new rt(4,6,32,32,st),new rt(4,4,16,16,et),new rt(8,16,32,32,et),new rt(8,16,128,128,et),new rt(8,32,128,256,et),new rt(32,128,258,1024,et),new rt(32,258,258,4096,et)],h.deflateInit=function(s,M){return dt(s,M,v,15,8,0)},h.deflateInit2=dt,h.deflateReset=ft,h.deflateResetKeep=nt,h.deflateSetHeader=function(s,M){return s&&s.state?s.state.wrap!==2?p:(s.state.gzhead=M,m):p},h.deflate=function(s,M){var D,A,x,T;if(!s||!s.state||5<M||M<0)return s?tt(s,p):p;if(A=s.state,!s.output||!s.input&&s.avail_in!==0||A.status===666&&M!==y)return tt(s,s.avail_out===0?-5:p);if(A.strm=s,D=A.last_flush,A.last_flush=M,A.status===E)if(A.wrap===2)s.adler=0,q(A,31),q(A,139),q(A,8),A.gzhead?(q(A,(A.gzhead.text?1:0)+(A.gzhead.hcrc?2:0)+(A.gzhead.extra?4:0)+(A.gzhead.name?8:0)+(A.gzhead.comment?16:0)),q(A,255&A.gzhead.time),q(A,A.gzhead.time>>8&255),q(A,A.gzhead.time>>16&255),q(A,A.gzhead.time>>24&255),q(A,A.level===9?2:2<=A.strategy||A.level<2?4:0),q(A,255&A.gzhead.os),A.gzhead.extra&&A.gzhead.extra.length&&(q(A,255&A.gzhead.extra.length),q(A,A.gzhead.extra.length>>8&255)),A.gzhead.hcrc&&(s.adler=b(s.adler,A.pending_buf,A.pending,0)),A.gzindex=0,A.status=69):(q(A,0),q(A,0),q(A,0),q(A,0),q(A,0),q(A,A.level===9?2:2<=A.strategy||A.level<2?4:0),q(A,3),A.status=I);else{var N=v+(A.w_bits-8<<4)<<8;N|=(2<=A.strategy||A.level<2?0:A.level<6?1:A.level===6?2:3)<<6,A.strstart!==0&&(N|=32),N+=31-N%31,A.status=I,V(A,N),A.strstart!==0&&(V(A,s.adler>>>16),V(A,65535&s.adler)),s.adler=1}if(A.status===69)if(A.gzhead.extra){for(x=A.pending;A.gzindex<(65535&A.gzhead.extra.length)&&(A.pending!==A.pending_buf_size||(A.gzhead.hcrc&&A.pending>x&&(s.adler=b(s.adler,A.pending_buf,A.pending-x,x)),L(s),x=A.pending,A.pending!==A.pending_buf_size));)q(A,255&A.gzhead.extra[A.gzindex]),A.gzindex++;A.gzhead.hcrc&&A.pending>x&&(s.adler=b(s.adler,A.pending_buf,A.pending-x,x)),A.gzindex===A.gzhead.extra.length&&(A.gzindex=0,A.status=73)}else A.status=73;if(A.status===73)if(A.gzhead.name){x=A.pending;do{if(A.pending===A.pending_buf_size&&(A.gzhead.hcrc&&A.pending>x&&(s.adler=b(s.adler,A.pending_buf,A.pending-x,x)),L(s),x=A.pending,A.pending===A.pending_buf_size)){T=1;break}T=A.gzindex<A.gzhead.name.length?255&A.gzhead.name.charCodeAt(A.gzindex++):0,q(A,T)}while(T!==0);A.gzhead.hcrc&&A.pending>x&&(s.adler=b(s.adler,A.pending_buf,A.pending-x,x)),T===0&&(A.gzindex=0,A.status=91)}else A.status=91;if(A.status===91)if(A.gzhead.comment){x=A.pending;do{if(A.pending===A.pending_buf_size&&(A.gzhead.hcrc&&A.pending>x&&(s.adler=b(s.adler,A.pending_buf,A.pending-x,x)),L(s),x=A.pending,A.pending===A.pending_buf_size)){T=1;break}T=A.gzindex<A.gzhead.comment.length?255&A.gzhead.comment.charCodeAt(A.gzindex++):0,q(A,T)}while(T!==0);A.gzhead.hcrc&&A.pending>x&&(s.adler=b(s.adler,A.pending_buf,A.pending-x,x)),T===0&&(A.status=103)}else A.status=103;if(A.status===103&&(A.gzhead.hcrc?(A.pending+2>A.pending_buf_size&&L(s),A.pending+2<=A.pending_buf_size&&(q(A,255&s.adler),q(A,s.adler>>8&255),s.adler=0,A.status=I)):A.status=I),A.pending!==0){if(L(s),s.avail_out===0)return A.last_flush=-1,m}else if(s.avail_in===0&&j(M)<=j(D)&&M!==y)return tt(s,-5);if(A.status===666&&s.avail_in!==0)return tt(s,-5);if(s.avail_in!==0||A.lookahead!==0||M!==_&&A.status!==666){var W=A.strategy===2?function(S,X){for(var H;;){if(S.lookahead===0&&(at(S),S.lookahead===0)){if(X===_)return u;break}if(S.match_length=0,H=o._tr_tally(S,0,S.window[S.strstart]),S.lookahead--,S.strstart++,H&&(F(S,!1),S.strm.avail_out===0))return u}return S.insert=0,X===y?(F(S,!0),S.strm.avail_out===0?K:G):S.last_lit&&(F(S,!1),S.strm.avail_out===0)?u:z}(A,M):A.strategy===3?function(S,X){for(var H,Z,Q,ht,it=S.window;;){if(S.lookahead<=P){if(at(S),S.lookahead<=P&&X===_)return u;if(S.lookahead===0)break}if(S.match_length=0,S.lookahead>=B&&0<S.strstart&&(Z=it[Q=S.strstart-1])===it[++Q]&&Z===it[++Q]&&Z===it[++Q]){ht=S.strstart+P;do;while(Z===it[++Q]&&Z===it[++Q]&&Z===it[++Q]&&Z===it[++Q]&&Z===it[++Q]&&Z===it[++Q]&&Z===it[++Q]&&Z===it[++Q]&&Q<ht);S.match_length=P-(ht-Q),S.match_length>S.lookahead&&(S.match_length=S.lookahead)}if(S.match_length>=B?(H=o._tr_tally(S,1,S.match_length-B),S.lookahead-=S.match_length,S.strstart+=S.match_length,S.match_length=0):(H=o._tr_tally(S,0,S.window[S.strstart]),S.lookahead--,S.strstart++),H&&(F(S,!1),S.strm.avail_out===0))return u}return S.insert=0,X===y?(F(S,!0),S.strm.avail_out===0?K:G):S.last_lit&&(F(S,!1),S.strm.avail_out===0)?u:z}(A,M):a[A.level].func(A,M);if(W!==K&&W!==G||(A.status=666),W===u||W===K)return s.avail_out===0&&(A.last_flush=-1),m;if(W===z&&(M===1?o._tr_align(A):M!==5&&(o._tr_stored_block(A,0,0,!1),M===3&&(J(A.head),A.lookahead===0&&(A.strstart=0,A.block_start=0,A.insert=0))),L(s),s.avail_out===0))return A.last_flush=-1,m}return M!==y?m:A.wrap<=0?1:(A.wrap===2?(q(A,255&s.adler),q(A,s.adler>>8&255),q(A,s.adler>>16&255),q(A,s.adler>>24&255),q(A,255&s.total_in),q(A,s.total_in>>8&255),q(A,s.total_in>>16&255),q(A,s.total_in>>24&255)):(V(A,s.adler>>>16),V(A,65535&s.adler)),L(s),0<A.wrap&&(A.wrap=-A.wrap),A.pending!==0?m:1)},h.deflateEnd=function(s){var M;return s&&s.state?(M=s.state.status)!==E&&M!==69&&M!==73&&M!==91&&M!==103&&M!==I&&M!==666?tt(s,p):(s.state=null,M===I?tt(s,-3):m):p},h.deflateSetDictionary=function(s,M){var D,A,x,T,N,W,S,X,H=M.length;if(!s||!s.state||(T=(D=s.state).wrap)===2||T===1&&D.status!==E||D.lookahead)return p;for(T===1&&(s.adler=i(s.adler,M,H,0)),D.wrap=0,H>=D.w_size&&(T===0&&(J(D.head),D.strstart=0,D.block_start=0,D.insert=0),X=new n.Buf8(D.w_size),n.arraySet(X,M,H-D.w_size,D.w_size,0),M=X,H=D.w_size),N=s.avail_in,W=s.next_in,S=s.input,s.avail_in=H,s.next_in=0,s.input=M,at(D);D.lookahead>=B;){for(A=D.strstart,x=D.lookahead-(B-1);D.ins_h=(D.ins_h<<D.hash_shift^D.window[A+B-1])&D.hash_mask,D.prev[A&D.w_mask]=D.head[D.ins_h],D.head[D.ins_h]=A,A++,--x;);D.strstart=A,D.lookahead=B-1,at(D)}return D.strstart+=D.lookahead,D.block_start=D.strstart,D.insert=D.lookahead,D.lookahead=0,D.match_length=D.prev_length=B-1,D.match_available=0,s.next_in=W,s.input=S,s.avail_in=N,D.wrap=T,m},h.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(e,r,h){r.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(e,r,h){r.exports=function(a,n){var o,i,b,g,_,y,m,p,c,f,d,v,w,R,C,U,k,O,B,P,$,E,I,u,z;o=a.state,i=a.next_in,u=a.input,b=i+(a.avail_in-5),g=a.next_out,z=a.output,_=g-(n-a.avail_out),y=g+(a.avail_out-257),m=o.dmax,p=o.wsize,c=o.whave,f=o.wnext,d=o.window,v=o.hold,w=o.bits,R=o.lencode,C=o.distcode,U=(1<<o.lenbits)-1,k=(1<<o.distbits)-1;t:do{w<15&&(v+=u[i++]<<w,w+=8,v+=u[i++]<<w,w+=8),O=R[v&U];e:for(;;){if(v>>>=B=O>>>24,w-=B,(B=O>>>16&255)===0)z[g++]=65535&O;else{if(!(16&B)){if(!(64&B)){O=R[(65535&O)+(v&(1<<B)-1)];continue e}if(32&B){o.mode=12;break t}a.msg="invalid literal/length code",o.mode=30;break t}P=65535&O,(B&=15)&&(w<B&&(v+=u[i++]<<w,w+=8),P+=v&(1<<B)-1,v>>>=B,w-=B),w<15&&(v+=u[i++]<<w,w+=8,v+=u[i++]<<w,w+=8),O=C[v&k];r:for(;;){if(v>>>=B=O>>>24,w-=B,!(16&(B=O>>>16&255))){if(!(64&B)){O=C[(65535&O)+(v&(1<<B)-1)];continue r}a.msg="invalid distance code",o.mode=30;break t}if($=65535&O,w<(B&=15)&&(v+=u[i++]<<w,(w+=8)<B&&(v+=u[i++]<<w,w+=8)),m<($+=v&(1<<B)-1)){a.msg="invalid distance too far back",o.mode=30;break t}if(v>>>=B,w-=B,(B=g-_)<$){if(c<(B=$-B)&&o.sane){a.msg="invalid distance too far back",o.mode=30;break t}if(I=d,(E=0)===f){if(E+=p-B,B<P){for(P-=B;z[g++]=d[E++],--B;);E=g-$,I=z}}else if(f<B){if(E+=p+f-B,(B-=f)<P){for(P-=B;z[g++]=d[E++],--B;);if(E=0,f<P){for(P-=B=f;z[g++]=d[E++],--B;);E=g-$,I=z}}}else if(E+=f-B,B<P){for(P-=B;z[g++]=d[E++],--B;);E=g-$,I=z}for(;2<P;)z[g++]=I[E++],z[g++]=I[E++],z[g++]=I[E++],P-=3;P&&(z[g++]=I[E++],1<P&&(z[g++]=I[E++]))}else{for(E=g-$;z[g++]=z[E++],z[g++]=z[E++],z[g++]=z[E++],2<(P-=3););P&&(z[g++]=z[E++],1<P&&(z[g++]=z[E++]))}break}}break}}while(i<b&&g<y);i-=P=w>>3,v&=(1<<(w-=P<<3))-1,a.next_in=i,a.next_out=g,a.avail_in=i<b?b-i+5:5-(i-b),a.avail_out=g<y?y-g+257:257-(g-y),o.hold=v,o.bits=w}},{}],49:[function(e,r,h){var a=e("../utils/common"),n=e("./adler32"),o=e("./crc32"),i=e("./inffast"),b=e("./inftrees"),g=1,_=2,y=0,m=-2,p=1,c=852,f=592;function d(E){return(E>>>24&255)+(E>>>8&65280)+((65280&E)<<8)+((255&E)<<24)}function v(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new a.Buf16(320),this.work=new a.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function w(E){var I;return E&&E.state?(I=E.state,E.total_in=E.total_out=I.total=0,E.msg="",I.wrap&&(E.adler=1&I.wrap),I.mode=p,I.last=0,I.havedict=0,I.dmax=32768,I.head=null,I.hold=0,I.bits=0,I.lencode=I.lendyn=new a.Buf32(c),I.distcode=I.distdyn=new a.Buf32(f),I.sane=1,I.back=-1,y):m}function R(E){var I;return E&&E.state?((I=E.state).wsize=0,I.whave=0,I.wnext=0,w(E)):m}function C(E,I){var u,z;return E&&E.state?(z=E.state,I<0?(u=0,I=-I):(u=1+(I>>4),I<48&&(I&=15)),I&&(I<8||15<I)?m:(z.window!==null&&z.wbits!==I&&(z.window=null),z.wrap=u,z.wbits=I,R(E))):m}function U(E,I){var u,z;return E?(z=new v,(E.state=z).window=null,(u=C(E,I))!==y&&(E.state=null),u):m}var k,O,B=!0;function P(E){if(B){var I;for(k=new a.Buf32(512),O=new a.Buf32(32),I=0;I<144;)E.lens[I++]=8;for(;I<256;)E.lens[I++]=9;for(;I<280;)E.lens[I++]=7;for(;I<288;)E.lens[I++]=8;for(b(g,E.lens,0,288,k,0,E.work,{bits:9}),I=0;I<32;)E.lens[I++]=5;b(_,E.lens,0,32,O,0,E.work,{bits:5}),B=!1}E.lencode=k,E.lenbits=9,E.distcode=O,E.distbits=5}function $(E,I,u,z){var K,G=E.state;return G.window===null&&(G.wsize=1<<G.wbits,G.wnext=0,G.whave=0,G.window=new a.Buf8(G.wsize)),z>=G.wsize?(a.arraySet(G.window,I,u-G.wsize,G.wsize,0),G.wnext=0,G.whave=G.wsize):(z<(K=G.wsize-G.wnext)&&(K=z),a.arraySet(G.window,I,u-z,K,G.wnext),(z-=K)?(a.arraySet(G.window,I,u-z,z,0),G.wnext=z,G.whave=G.wsize):(G.wnext+=K,G.wnext===G.wsize&&(G.wnext=0),G.whave<G.wsize&&(G.whave+=K))),0}h.inflateReset=R,h.inflateReset2=C,h.inflateResetKeep=w,h.inflateInit=function(E){return U(E,15)},h.inflateInit2=U,h.inflate=function(E,I){var u,z,K,G,tt,j,J,L,F,q,V,Y,at,st,et,rt,ot,nt,ft,dt,s,M,D,A,x=0,T=new a.Buf8(4),N=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!E||!E.state||!E.output||!E.input&&E.avail_in!==0)return m;(u=E.state).mode===12&&(u.mode=13),tt=E.next_out,K=E.output,J=E.avail_out,G=E.next_in,z=E.input,j=E.avail_in,L=u.hold,F=u.bits,q=j,V=J,M=y;t:for(;;)switch(u.mode){case p:if(u.wrap===0){u.mode=13;break}for(;F<16;){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}if(2&u.wrap&&L===35615){T[u.check=0]=255&L,T[1]=L>>>8&255,u.check=o(u.check,T,2,0),F=L=0,u.mode=2;break}if(u.flags=0,u.head&&(u.head.done=!1),!(1&u.wrap)||(((255&L)<<8)+(L>>8))%31){E.msg="incorrect header check",u.mode=30;break}if((15&L)!=8){E.msg="unknown compression method",u.mode=30;break}if(F-=4,s=8+(15&(L>>>=4)),u.wbits===0)u.wbits=s;else if(s>u.wbits){E.msg="invalid window size",u.mode=30;break}u.dmax=1<<s,E.adler=u.check=1,u.mode=512&L?10:12,F=L=0;break;case 2:for(;F<16;){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}if(u.flags=L,(255&u.flags)!=8){E.msg="unknown compression method",u.mode=30;break}if(57344&u.flags){E.msg="unknown header flags set",u.mode=30;break}u.head&&(u.head.text=L>>8&1),512&u.flags&&(T[0]=255&L,T[1]=L>>>8&255,u.check=o(u.check,T,2,0)),F=L=0,u.mode=3;case 3:for(;F<32;){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}u.head&&(u.head.time=L),512&u.flags&&(T[0]=255&L,T[1]=L>>>8&255,T[2]=L>>>16&255,T[3]=L>>>24&255,u.check=o(u.check,T,4,0)),F=L=0,u.mode=4;case 4:for(;F<16;){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}u.head&&(u.head.xflags=255&L,u.head.os=L>>8),512&u.flags&&(T[0]=255&L,T[1]=L>>>8&255,u.check=o(u.check,T,2,0)),F=L=0,u.mode=5;case 5:if(1024&u.flags){for(;F<16;){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}u.length=L,u.head&&(u.head.extra_len=L),512&u.flags&&(T[0]=255&L,T[1]=L>>>8&255,u.check=o(u.check,T,2,0)),F=L=0}else u.head&&(u.head.extra=null);u.mode=6;case 6:if(1024&u.flags&&(j<(Y=u.length)&&(Y=j),Y&&(u.head&&(s=u.head.extra_len-u.length,u.head.extra||(u.head.extra=new Array(u.head.extra_len)),a.arraySet(u.head.extra,z,G,Y,s)),512&u.flags&&(u.check=o(u.check,z,Y,G)),j-=Y,G+=Y,u.length-=Y),u.length))break t;u.length=0,u.mode=7;case 7:if(2048&u.flags){if(j===0)break t;for(Y=0;s=z[G+Y++],u.head&&s&&u.length<65536&&(u.head.name+=String.fromCharCode(s)),s&&Y<j;);if(512&u.flags&&(u.check=o(u.check,z,Y,G)),j-=Y,G+=Y,s)break t}else u.head&&(u.head.name=null);u.length=0,u.mode=8;case 8:if(4096&u.flags){if(j===0)break t;for(Y=0;s=z[G+Y++],u.head&&s&&u.length<65536&&(u.head.comment+=String.fromCharCode(s)),s&&Y<j;);if(512&u.flags&&(u.check=o(u.check,z,Y,G)),j-=Y,G+=Y,s)break t}else u.head&&(u.head.comment=null);u.mode=9;case 9:if(512&u.flags){for(;F<16;){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}if(L!==(65535&u.check)){E.msg="header crc mismatch",u.mode=30;break}F=L=0}u.head&&(u.head.hcrc=u.flags>>9&1,u.head.done=!0),E.adler=u.check=0,u.mode=12;break;case 10:for(;F<32;){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}E.adler=u.check=d(L),F=L=0,u.mode=11;case 11:if(u.havedict===0)return E.next_out=tt,E.avail_out=J,E.next_in=G,E.avail_in=j,u.hold=L,u.bits=F,2;E.adler=u.check=1,u.mode=12;case 12:if(I===5||I===6)break t;case 13:if(u.last){L>>>=7&F,F-=7&F,u.mode=27;break}for(;F<3;){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}switch(u.last=1&L,F-=1,3&(L>>>=1)){case 0:u.mode=14;break;case 1:if(P(u),u.mode=20,I!==6)break;L>>>=2,F-=2;break t;case 2:u.mode=17;break;case 3:E.msg="invalid block type",u.mode=30}L>>>=2,F-=2;break;case 14:for(L>>>=7&F,F-=7&F;F<32;){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}if((65535&L)!=(L>>>16^65535)){E.msg="invalid stored block lengths",u.mode=30;break}if(u.length=65535&L,F=L=0,u.mode=15,I===6)break t;case 15:u.mode=16;case 16:if(Y=u.length){if(j<Y&&(Y=j),J<Y&&(Y=J),Y===0)break t;a.arraySet(K,z,G,Y,tt),j-=Y,G+=Y,J-=Y,tt+=Y,u.length-=Y;break}u.mode=12;break;case 17:for(;F<14;){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}if(u.nlen=257+(31&L),L>>>=5,F-=5,u.ndist=1+(31&L),L>>>=5,F-=5,u.ncode=4+(15&L),L>>>=4,F-=4,286<u.nlen||30<u.ndist){E.msg="too many length or distance symbols",u.mode=30;break}u.have=0,u.mode=18;case 18:for(;u.have<u.ncode;){for(;F<3;){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}u.lens[N[u.have++]]=7&L,L>>>=3,F-=3}for(;u.have<19;)u.lens[N[u.have++]]=0;if(u.lencode=u.lendyn,u.lenbits=7,D={bits:u.lenbits},M=b(0,u.lens,0,19,u.lencode,0,u.work,D),u.lenbits=D.bits,M){E.msg="invalid code lengths set",u.mode=30;break}u.have=0,u.mode=19;case 19:for(;u.have<u.nlen+u.ndist;){for(;rt=(x=u.lencode[L&(1<<u.lenbits)-1])>>>16&255,ot=65535&x,!((et=x>>>24)<=F);){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}if(ot<16)L>>>=et,F-=et,u.lens[u.have++]=ot;else{if(ot===16){for(A=et+2;F<A;){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}if(L>>>=et,F-=et,u.have===0){E.msg="invalid bit length repeat",u.mode=30;break}s=u.lens[u.have-1],Y=3+(3&L),L>>>=2,F-=2}else if(ot===17){for(A=et+3;F<A;){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}F-=et,s=0,Y=3+(7&(L>>>=et)),L>>>=3,F-=3}else{for(A=et+7;F<A;){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}F-=et,s=0,Y=11+(127&(L>>>=et)),L>>>=7,F-=7}if(u.have+Y>u.nlen+u.ndist){E.msg="invalid bit length repeat",u.mode=30;break}for(;Y--;)u.lens[u.have++]=s}}if(u.mode===30)break;if(u.lens[256]===0){E.msg="invalid code -- missing end-of-block",u.mode=30;break}if(u.lenbits=9,D={bits:u.lenbits},M=b(g,u.lens,0,u.nlen,u.lencode,0,u.work,D),u.lenbits=D.bits,M){E.msg="invalid literal/lengths set",u.mode=30;break}if(u.distbits=6,u.distcode=u.distdyn,D={bits:u.distbits},M=b(_,u.lens,u.nlen,u.ndist,u.distcode,0,u.work,D),u.distbits=D.bits,M){E.msg="invalid distances set",u.mode=30;break}if(u.mode=20,I===6)break t;case 20:u.mode=21;case 21:if(6<=j&&258<=J){E.next_out=tt,E.avail_out=J,E.next_in=G,E.avail_in=j,u.hold=L,u.bits=F,i(E,V),tt=E.next_out,K=E.output,J=E.avail_out,G=E.next_in,z=E.input,j=E.avail_in,L=u.hold,F=u.bits,u.mode===12&&(u.back=-1);break}for(u.back=0;rt=(x=u.lencode[L&(1<<u.lenbits)-1])>>>16&255,ot=65535&x,!((et=x>>>24)<=F);){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}if(rt&&!(240&rt)){for(nt=et,ft=rt,dt=ot;rt=(x=u.lencode[dt+((L&(1<<nt+ft)-1)>>nt)])>>>16&255,ot=65535&x,!(nt+(et=x>>>24)<=F);){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}L>>>=nt,F-=nt,u.back+=nt}if(L>>>=et,F-=et,u.back+=et,u.length=ot,rt===0){u.mode=26;break}if(32&rt){u.back=-1,u.mode=12;break}if(64&rt){E.msg="invalid literal/length code",u.mode=30;break}u.extra=15&rt,u.mode=22;case 22:if(u.extra){for(A=u.extra;F<A;){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}u.length+=L&(1<<u.extra)-1,L>>>=u.extra,F-=u.extra,u.back+=u.extra}u.was=u.length,u.mode=23;case 23:for(;rt=(x=u.distcode[L&(1<<u.distbits)-1])>>>16&255,ot=65535&x,!((et=x>>>24)<=F);){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}if(!(240&rt)){for(nt=et,ft=rt,dt=ot;rt=(x=u.distcode[dt+((L&(1<<nt+ft)-1)>>nt)])>>>16&255,ot=65535&x,!(nt+(et=x>>>24)<=F);){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}L>>>=nt,F-=nt,u.back+=nt}if(L>>>=et,F-=et,u.back+=et,64&rt){E.msg="invalid distance code",u.mode=30;break}u.offset=ot,u.extra=15&rt,u.mode=24;case 24:if(u.extra){for(A=u.extra;F<A;){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}u.offset+=L&(1<<u.extra)-1,L>>>=u.extra,F-=u.extra,u.back+=u.extra}if(u.offset>u.dmax){E.msg="invalid distance too far back",u.mode=30;break}u.mode=25;case 25:if(J===0)break t;if(Y=V-J,u.offset>Y){if((Y=u.offset-Y)>u.whave&&u.sane){E.msg="invalid distance too far back",u.mode=30;break}at=Y>u.wnext?(Y-=u.wnext,u.wsize-Y):u.wnext-Y,Y>u.length&&(Y=u.length),st=u.window}else st=K,at=tt-u.offset,Y=u.length;for(J<Y&&(Y=J),J-=Y,u.length-=Y;K[tt++]=st[at++],--Y;);u.length===0&&(u.mode=21);break;case 26:if(J===0)break t;K[tt++]=u.length,J--,u.mode=21;break;case 27:if(u.wrap){for(;F<32;){if(j===0)break t;j--,L|=z[G++]<<F,F+=8}if(V-=J,E.total_out+=V,u.total+=V,V&&(E.adler=u.check=u.flags?o(u.check,K,V,tt-V):n(u.check,K,V,tt-V)),V=J,(u.flags?L:d(L))!==u.check){E.msg="incorrect data check",u.mode=30;break}F=L=0}u.mode=28;case 28:if(u.wrap&&u.flags){for(;F<32;){if(j===0)break t;j--,L+=z[G++]<<F,F+=8}if(L!==(4294967295&u.total)){E.msg="incorrect length check",u.mode=30;break}F=L=0}u.mode=29;case 29:M=1;break t;case 30:M=-3;break t;case 31:return-4;case 32:default:return m}return E.next_out=tt,E.avail_out=J,E.next_in=G,E.avail_in=j,u.hold=L,u.bits=F,(u.wsize||V!==E.avail_out&&u.mode<30&&(u.mode<27||I!==4))&&$(E,E.output,E.next_out,V-E.avail_out)?(u.mode=31,-4):(q-=E.avail_in,V-=E.avail_out,E.total_in+=q,E.total_out+=V,u.total+=V,u.wrap&&V&&(E.adler=u.check=u.flags?o(u.check,K,V,E.next_out-V):n(u.check,K,V,E.next_out-V)),E.data_type=u.bits+(u.last?64:0)+(u.mode===12?128:0)+(u.mode===20||u.mode===15?256:0),(q==0&&V===0||I===4)&&M===y&&(M=-5),M)},h.inflateEnd=function(E){if(!E||!E.state)return m;var I=E.state;return I.window&&(I.window=null),E.state=null,y},h.inflateGetHeader=function(E,I){var u;return E&&E.state&&2&(u=E.state).wrap?((u.head=I).done=!1,y):m},h.inflateSetDictionary=function(E,I){var u,z=I.length;return E&&E.state?(u=E.state).wrap!==0&&u.mode!==11?m:u.mode===11&&n(1,I,z,0)!==u.check?-3:$(E,I,z,z)?(u.mode=31,-4):(u.havedict=1,y):m},h.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(e,r,h){var a=e("../utils/common"),n=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],o=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],i=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],b=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];r.exports=function(g,_,y,m,p,c,f,d){var v,w,R,C,U,k,O,B,P,$=d.bits,E=0,I=0,u=0,z=0,K=0,G=0,tt=0,j=0,J=0,L=0,F=null,q=0,V=new a.Buf16(16),Y=new a.Buf16(16),at=null,st=0;for(E=0;E<=15;E++)V[E]=0;for(I=0;I<m;I++)V[_[y+I]]++;for(K=$,z=15;1<=z&&V[z]===0;z--);if(z<K&&(K=z),z===0)return p[c++]=20971520,p[c++]=20971520,d.bits=1,0;for(u=1;u<z&&V[u]===0;u++);for(K<u&&(K=u),E=j=1;E<=15;E++)if(j<<=1,(j-=V[E])<0)return-1;if(0<j&&(g===0||z!==1))return-1;for(Y[1]=0,E=1;E<15;E++)Y[E+1]=Y[E]+V[E];for(I=0;I<m;I++)_[y+I]!==0&&(f[Y[_[y+I]]++]=I);if(k=g===0?(F=at=f,19):g===1?(F=n,q-=257,at=o,st-=257,256):(F=i,at=b,-1),E=u,U=c,tt=I=L=0,R=-1,C=(J=1<<(G=K))-1,g===1&&852<J||g===2&&592<J)return 1;for(;;){for(O=E-tt,P=f[I]<k?(B=0,f[I]):f[I]>k?(B=at[st+f[I]],F[q+f[I]]):(B=96,0),v=1<<E-tt,u=w=1<<G;p[U+(L>>tt)+(w-=v)]=O<<24|B<<16|P|0,w!==0;);for(v=1<<E-1;L&v;)v>>=1;if(v!==0?(L&=v-1,L+=v):L=0,I++,--V[E]==0){if(E===z)break;E=_[y+f[I]]}if(K<E&&(L&C)!==R){for(tt===0&&(tt=K),U+=u,j=1<<(G=E-tt);G+tt<z&&!((j-=V[G+tt])<=0);)G++,j<<=1;if(J+=1<<G,g===1&&852<J||g===2&&592<J)return 1;p[R=L&C]=K<<24|G<<16|U-c|0}}return L!==0&&(p[U+L]=E-tt<<24|64<<16|0),d.bits=K,0}},{"../utils/common":41}],51:[function(e,r,h){r.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(e,r,h){var a=e("../utils/common"),n=0,o=1;function i(x){for(var T=x.length;0<=--T;)x[T]=0}var b=0,g=29,_=256,y=_+1+g,m=30,p=19,c=2*y+1,f=15,d=16,v=7,w=256,R=16,C=17,U=18,k=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],O=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],B=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],P=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],$=new Array(2*(y+2));i($);var E=new Array(2*m);i(E);var I=new Array(512);i(I);var u=new Array(256);i(u);var z=new Array(g);i(z);var K,G,tt,j=new Array(m);function J(x,T,N,W,S){this.static_tree=x,this.extra_bits=T,this.extra_base=N,this.elems=W,this.max_length=S,this.has_stree=x&&x.length}function L(x,T){this.dyn_tree=x,this.max_code=0,this.stat_desc=T}function F(x){return x<256?I[x]:I[256+(x>>>7)]}function q(x,T){x.pending_buf[x.pending++]=255&T,x.pending_buf[x.pending++]=T>>>8&255}function V(x,T,N){x.bi_valid>d-N?(x.bi_buf|=T<<x.bi_valid&65535,q(x,x.bi_buf),x.bi_buf=T>>d-x.bi_valid,x.bi_valid+=N-d):(x.bi_buf|=T<<x.bi_valid&65535,x.bi_valid+=N)}function Y(x,T,N){V(x,N[2*T],N[2*T+1])}function at(x,T){for(var N=0;N|=1&x,x>>>=1,N<<=1,0<--T;);return N>>>1}function st(x,T,N){var W,S,X=new Array(f+1),H=0;for(W=1;W<=f;W++)X[W]=H=H+N[W-1]<<1;for(S=0;S<=T;S++){var Z=x[2*S+1];Z!==0&&(x[2*S]=at(X[Z]++,Z))}}function et(x){var T;for(T=0;T<y;T++)x.dyn_ltree[2*T]=0;for(T=0;T<m;T++)x.dyn_dtree[2*T]=0;for(T=0;T<p;T++)x.bl_tree[2*T]=0;x.dyn_ltree[2*w]=1,x.opt_len=x.static_len=0,x.last_lit=x.matches=0}function rt(x){8<x.bi_valid?q(x,x.bi_buf):0<x.bi_valid&&(x.pending_buf[x.pending++]=x.bi_buf),x.bi_buf=0,x.bi_valid=0}function ot(x,T,N,W){var S=2*T,X=2*N;return x[S]<x[X]||x[S]===x[X]&&W[T]<=W[N]}function nt(x,T,N){for(var W=x.heap[N],S=N<<1;S<=x.heap_len&&(S<x.heap_len&&ot(T,x.heap[S+1],x.heap[S],x.depth)&&S++,!ot(T,W,x.heap[S],x.depth));)x.heap[N]=x.heap[S],N=S,S<<=1;x.heap[N]=W}function ft(x,T,N){var W,S,X,H,Z=0;if(x.last_lit!==0)for(;W=x.pending_buf[x.d_buf+2*Z]<<8|x.pending_buf[x.d_buf+2*Z+1],S=x.pending_buf[x.l_buf+Z],Z++,W===0?Y(x,S,T):(Y(x,(X=u[S])+_+1,T),(H=k[X])!==0&&V(x,S-=z[X],H),Y(x,X=F(--W),N),(H=O[X])!==0&&V(x,W-=j[X],H)),Z<x.last_lit;);Y(x,w,T)}function dt(x,T){var N,W,S,X=T.dyn_tree,H=T.stat_desc.static_tree,Z=T.stat_desc.has_stree,Q=T.stat_desc.elems,ht=-1;for(x.heap_len=0,x.heap_max=c,N=0;N<Q;N++)X[2*N]!==0?(x.heap[++x.heap_len]=ht=N,x.depth[N]=0):X[2*N+1]=0;for(;x.heap_len<2;)X[2*(S=x.heap[++x.heap_len]=ht<2?++ht:0)]=1,x.depth[S]=0,x.opt_len--,Z&&(x.static_len-=H[2*S+1]);for(T.max_code=ht,N=x.heap_len>>1;1<=N;N--)nt(x,X,N);for(S=Q;N=x.heap[1],x.heap[1]=x.heap[x.heap_len--],nt(x,X,1),W=x.heap[1],x.heap[--x.heap_max]=N,x.heap[--x.heap_max]=W,X[2*S]=X[2*N]+X[2*W],x.depth[S]=(x.depth[N]>=x.depth[W]?x.depth[N]:x.depth[W])+1,X[2*N+1]=X[2*W+1]=S,x.heap[1]=S++,nt(x,X,1),2<=x.heap_len;);x.heap[--x.heap_max]=x.heap[1],function(it,mt){var wt,bt,Et,ut,Tt,Lt,xt=mt.dyn_tree,Gt=mt.max_code,he=mt.stat_desc.static_tree,le=mt.stat_desc.has_stree,ce=mt.stat_desc.extra_bits,Wt=mt.stat_desc.extra_base,Rt=mt.stat_desc.max_length,St=0;for(ut=0;ut<=f;ut++)it.bl_count[ut]=0;for(xt[2*it.heap[it.heap_max]+1]=0,wt=it.heap_max+1;wt<c;wt++)Rt<(ut=xt[2*xt[2*(bt=it.heap[wt])+1]+1]+1)&&(ut=Rt,St++),xt[2*bt+1]=ut,Gt<bt||(it.bl_count[ut]++,Tt=0,Wt<=bt&&(Tt=ce[bt-Wt]),Lt=xt[2*bt],it.opt_len+=Lt*(ut+Tt),le&&(it.static_len+=Lt*(he[2*bt+1]+Tt)));if(St!==0){do{for(ut=Rt-1;it.bl_count[ut]===0;)ut--;it.bl_count[ut]--,it.bl_count[ut+1]+=2,it.bl_count[Rt]--,St-=2}while(0<St);for(ut=Rt;ut!==0;ut--)for(bt=it.bl_count[ut];bt!==0;)Gt<(Et=it.heap[--wt])||(xt[2*Et+1]!==ut&&(it.opt_len+=(ut-xt[2*Et+1])*xt[2*Et],xt[2*Et+1]=ut),bt--)}}(x,T),st(X,ht,x.bl_count)}function s(x,T,N){var W,S,X=-1,H=T[1],Z=0,Q=7,ht=4;for(H===0&&(Q=138,ht=3),T[2*(N+1)+1]=65535,W=0;W<=N;W++)S=H,H=T[2*(W+1)+1],++Z<Q&&S===H||(Z<ht?x.bl_tree[2*S]+=Z:S!==0?(S!==X&&x.bl_tree[2*S]++,x.bl_tree[2*R]++):Z<=10?x.bl_tree[2*C]++:x.bl_tree[2*U]++,X=S,ht=(Z=0)===H?(Q=138,3):S===H?(Q=6,3):(Q=7,4))}function M(x,T,N){var W,S,X=-1,H=T[1],Z=0,Q=7,ht=4;for(H===0&&(Q=138,ht=3),W=0;W<=N;W++)if(S=H,H=T[2*(W+1)+1],!(++Z<Q&&S===H)){if(Z<ht)for(;Y(x,S,x.bl_tree),--Z!=0;);else S!==0?(S!==X&&(Y(x,S,x.bl_tree),Z--),Y(x,R,x.bl_tree),V(x,Z-3,2)):Z<=10?(Y(x,C,x.bl_tree),V(x,Z-3,3)):(Y(x,U,x.bl_tree),V(x,Z-11,7));X=S,ht=(Z=0)===H?(Q=138,3):S===H?(Q=6,3):(Q=7,4)}}i(j);var D=!1;function A(x,T,N,W){V(x,(b<<1)+(W?1:0),3),function(S,X,H,Z){rt(S),q(S,H),q(S,~H),a.arraySet(S.pending_buf,S.window,X,H,S.pending),S.pending+=H}(x,T,N)}h._tr_init=function(x){D||(function(){var T,N,W,S,X,H=new Array(f+1);for(S=W=0;S<g-1;S++)for(z[S]=W,T=0;T<1<<k[S];T++)u[W++]=S;for(u[W-1]=S,S=X=0;S<16;S++)for(j[S]=X,T=0;T<1<<O[S];T++)I[X++]=S;for(X>>=7;S<m;S++)for(j[S]=X<<7,T=0;T<1<<O[S]-7;T++)I[256+X++]=S;for(N=0;N<=f;N++)H[N]=0;for(T=0;T<=143;)$[2*T+1]=8,T++,H[8]++;for(;T<=255;)$[2*T+1]=9,T++,H[9]++;for(;T<=279;)$[2*T+1]=7,T++,H[7]++;for(;T<=287;)$[2*T+1]=8,T++,H[8]++;for(st($,y+1,H),T=0;T<m;T++)E[2*T+1]=5,E[2*T]=at(T,5);K=new J($,k,_+1,y,f),G=new J(E,O,0,m,f),tt=new J(new Array(0),B,0,p,v)}(),D=!0),x.l_desc=new L(x.dyn_ltree,K),x.d_desc=new L(x.dyn_dtree,G),x.bl_desc=new L(x.bl_tree,tt),x.bi_buf=0,x.bi_valid=0,et(x)},h._tr_stored_block=A,h._tr_flush_block=function(x,T,N,W){var S,X,H=0;0<x.level?(x.strm.data_type===2&&(x.strm.data_type=function(Z){var Q,ht=4093624447;for(Q=0;Q<=31;Q++,ht>>>=1)if(1&ht&&Z.dyn_ltree[2*Q]!==0)return n;if(Z.dyn_ltree[18]!==0||Z.dyn_ltree[20]!==0||Z.dyn_ltree[26]!==0)return o;for(Q=32;Q<_;Q++)if(Z.dyn_ltree[2*Q]!==0)return o;return n}(x)),dt(x,x.l_desc),dt(x,x.d_desc),H=function(Z){var Q;for(s(Z,Z.dyn_ltree,Z.l_desc.max_code),s(Z,Z.dyn_dtree,Z.d_desc.max_code),dt(Z,Z.bl_desc),Q=p-1;3<=Q&&Z.bl_tree[2*P[Q]+1]===0;Q--);return Z.opt_len+=3*(Q+1)+5+5+4,Q}(x),S=x.opt_len+3+7>>>3,(X=x.static_len+3+7>>>3)<=S&&(S=X)):S=X=N+5,N+4<=S&&T!==-1?A(x,T,N,W):x.strategy===4||X===S?(V(x,2+(W?1:0),3),ft(x,$,E)):(V(x,4+(W?1:0),3),function(Z,Q,ht,it){var mt;for(V(Z,Q-257,5),V(Z,ht-1,5),V(Z,it-4,4),mt=0;mt<it;mt++)V(Z,Z.bl_tree[2*P[mt]+1],3);M(Z,Z.dyn_ltree,Q-1),M(Z,Z.dyn_dtree,ht-1)}(x,x.l_desc.max_code+1,x.d_desc.max_code+1,H+1),ft(x,x.dyn_ltree,x.dyn_dtree)),et(x),W&&rt(x)},h._tr_tally=function(x,T,N){return x.pending_buf[x.d_buf+2*x.last_lit]=T>>>8&255,x.pending_buf[x.d_buf+2*x.last_lit+1]=255&T,x.pending_buf[x.l_buf+x.last_lit]=255&N,x.last_lit++,T===0?x.dyn_ltree[2*N]++:(x.matches++,T--,x.dyn_ltree[2*(u[N]+_+1)]++,x.dyn_dtree[2*F(T)]++),x.last_lit===x.lit_bufsize-1},h._tr_align=function(x){V(x,2,3),Y(x,w,$),function(T){T.bi_valid===16?(q(T,T.bi_buf),T.bi_buf=0,T.bi_valid=0):8<=T.bi_valid&&(T.pending_buf[T.pending++]=255&T.bi_buf,T.bi_buf>>=8,T.bi_valid-=8)}(x)}},{"../utils/common":41}],53:[function(e,r,h){r.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,r,h){(function(a){(function(n,o){if(!n.setImmediate){var i,b,g,_,y=1,m={},p=!1,c=n.document,f=Object.getPrototypeOf&&Object.getPrototypeOf(n);f=f&&f.setTimeout?f:n,i={}.toString.call(n.process)==="[object process]"?function(R){process.nextTick(function(){v(R)})}:function(){if(n.postMessage&&!n.importScripts){var R=!0,C=n.onmessage;return n.onmessage=function(){R=!1},n.postMessage("","*"),n.onmessage=C,R}}()?(_="setImmediate$"+Math.random()+"$",n.addEventListener?n.addEventListener("message",w,!1):n.attachEvent("onmessage",w),function(R){n.postMessage(_+R,"*")}):n.MessageChannel?((g=new MessageChannel).port1.onmessage=function(R){v(R.data)},function(R){g.port2.postMessage(R)}):c&&"onreadystatechange"in c.createElement("script")?(b=c.documentElement,function(R){var C=c.createElement("script");C.onreadystatechange=function(){v(R),C.onreadystatechange=null,b.removeChild(C),C=null},b.appendChild(C)}):function(R){setTimeout(v,0,R)},f.setImmediate=function(R){typeof R!="function"&&(R=new Function(""+R));for(var C=new Array(arguments.length-1),U=0;U<C.length;U++)C[U]=arguments[U+1];var k={callback:R,args:C};return m[y]=k,i(y),y++},f.clearImmediate=d}function d(R){delete m[R]}function v(R){if(p)setTimeout(v,0,R);else{var C=m[R];if(C){p=!0;try{(function(U){var k=U.callback,O=U.args;switch(O.length){case 0:k();break;case 1:k(O[0]);break;case 2:k(O[0],O[1]);break;case 3:k(O[0],O[1],O[2]);break;default:k.apply(o,O)}})(C)}finally{d(R),p=!1}}}}function w(R){R.source===n&&typeof R.data=="string"&&R.data.indexOf(_)===0&&v(+R.data.slice(_.length))}})(typeof self>"u"?a===void 0?this:a:self)}).call(this,typeof Ft<"u"?Ft:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(oe);var We=oe.exports;const je=Ge(We);async function Xe(l,t=void 0){let e=await fetch(l);e.headers.get("Content-Length");let r=await e.arrayBuffer();return Ye(r,He(l))}async function Ye(l,t=void 0){var _,y,m,p;let e=new Uint8Array(l);if(console.log("firstByte:",e[0]),e[0]!=80){let c=Ze(t);console.log("key=",t),console.log("keyBuf=",c);let f=0;for(var r=0;r<e.length;r++)f=f%c.length,e[r]=e[r]^c[f],f++}console.log("firstByte:",e[0],"length=",e.length);let h=new je;await h.loadAsync(e);let a=Object.keys(h.files);for(var n,o,i,b,g,r=0;r<a.length;r++){let f=a[r];if(!f.startsWith("__MACOSX")){if(console.log("file=",f),f.startsWith("map")){let d=await((_=h.file(f))==null?void 0:_.async("base64"));n=await It("image/png",d)}else if(f.startsWith("page")){let d=await((y=h.file(f))==null?void 0:y.async("base64"));o=await It("image/png",d)}else if(f.startsWith("special")){let d=await((m=h.file(f))==null?void 0:m.async("base64")),v=f.endsWith("png")?"image/png":"image/jpeg";b=await It(v,d)}else if(f.endsWith("json")){let d=await((p=h.file(f))==null?void 0:p.async("string"));i=JSON.parse(d)}}}return console.log("config:",i),g=await Ct("/assets/fonts/numbers_roboto_500.png"),new ne(i,o,n,g,[],b)}async function It(l,t){return new Promise((e,r)=>{let h=new Image;h.src=`data:${l};base64, ${t}`,h.onload=()=>{e(h)},h.onerror=r})}function He(l){let e=/[0-9a-z]{24}/i.exec(l);if(e!=null)return e[0]}function Ze(l){for(var t=new ArrayBuffer(l.length*2),e=new Uint16Array(t),r=0,h=l.length;r<h;r++)e[r]=l.charCodeAt(r);return e}class Ve extends yt{constructor(t,e,r,h){super(),this.scene=t,this.image=e,this.fillerData=r,this.bestFitScale=h,this.vertexShaderCode=`
  226. attribute vec2 a_position;
  227. attribute vec2 a_texCoord;
  228. uniform mat4 u_matrix;
  229. varying vec2 v_texCoord;
  230. void main() {
  231. gl_Position = u_matrix * vec4(a_position, 0, 1);
  232. v_texCoord = a_texCoord;
  233. }
  234. `,this.fragmentShaderCode=`
  235. precision mediump float;
  236. uniform sampler2D u_image;
  237. varying vec2 v_texCoord;
  238. void main() {
  239. vec4 color = texture2D(u_image, v_texCoord);
  240. gl_FragColor = color;
  241. }
  242. `;const a=t.gl;this.program=vt(a,ct(a,a.VERTEX_SHADER,this.vertexShaderCode),ct(a,a.FRAGMENT_SHADER,this.fragmentShaderCode)),this.aPositionLoc=a.getAttribLocation(this.program,"a_position"),this.aTexcoordLoc=a.getAttribLocation(this.program,"a_texCoord"),this.uMatrixLoc=a.getUniformLocation(this.program,"u_matrix"),this.uScaleLoc=a.getUniformLocation(this.program,"u_scale"),this.uTexSizeLoc=a.getUniformLocation(this.program,"u_texSize"),this.texture=zt(a,e,a.LINEAR);const n=[],o=e.width/10/e.height,i=Array(4);for(var b=0;b<4;b++)i[b]=2/Math.sqrt(b*b*o*o+1);const g=1.2,_=.8;var y=0;const m=r.config,p=r.data.areaGroups;for(var b=0;b<p.length;b++)for(var c=p[b],f=0;f<c.areas.length;f++){var d=c.areas[f];if(!d.colored){y+=d.center.label.length,n.push(d.center);var v=d.center.radius*i[d.center.label.length],w=v*m.maxScale/m.visibleFontSize;w<=1?w*=g:w>1&&w<1/_?w=(1/_-g)/(1/_-1)*(w-1)+g:w>=1/_&&(w=_*w+(1/_-1)),v=w*m.visibleFontSize/m.maxScale,v*this.bestFitScale>m.visibleFontSize*1.2&&(v=m.visibleFontSize*1.2/h),d.center.fontHeight=v}}n.sort((U,k)=>k.fontHeight-U.fontHeight),this.digits=y,this.centers=n,this.vertexArray=new Float32Array(y*12),this.texCoordArray=new Float32Array(y*12);for(var R=0,b=0;b<n.length;b++){var C=n[b];this.fillVertexArray(this.vertexArray,this.texCoordArray,R,C,o),R+=12*C.label.length,C.offset=R/2}this.vertexBuffer=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertexArray,a.STATIC_DRAW),this.texcoordBuffer=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,this.texcoordBuffer),a.bufferData(a.ARRAY_BUFFER,this.texCoordArray,a.STATIC_DRAW)}dispose(){let t=this.scene.gl;t.deleteProgram(this.program),t.deleteBuffer(this.vertexBuffer),t.deleteBuffer(this.texcoordBuffer),t.deleteTexture(this.texture)}draw(){var t=0;const e=this.fillerData.config.maxScale-.2,r=this.scene.userMat[0];if(r>e)t=this.vertexArray.length/2;else for(var h=this.centers.length-1;h>=0;h--)if(this.centers[h].fontHeight*r>this.fillerData.config.visibleFontSize){t=this.centers[h].offset;break}const a=this.scene.gl;a.useProgram(this.program),a.enableVertexAttribArray(this.aPositionLoc),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.vertexAttribPointer(this.aPositionLoc,2,a.FLOAT,!1,0,0),a.enableVertexAttribArray(this.aTexcoordLoc),a.bindBuffer(a.ARRAY_BUFFER,this.texcoordBuffer),a.vertexAttribPointer(this.aTexcoordLoc,2,a.FLOAT,!1,0,0),a.uniformMatrix4fv(this.uMatrixLoc,!1,this.scene.drawMatrix),a.uniform1f(this.uScaleLoc,this.scene.userMat[0]),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,this.texture),a.drawArrays(a.TRIANGLES,0,t)}fillVertexArray(t,e,r,h,a){const n=h.label,o=n.length,i=h.fontHeight*a,b=h.fontHeight,g=i*o,_=h.x-g/2,y=h.y-b/2;for(var m=0;m<o;m++){pt(t,r+12*m,_+m*i,y,i,b);const p=parseInt(n.substring(m,m+1));pt(e,r+12*m,p*.1,0,.1,1)}}toString(){return"NumberLayer()"}}class $e{constructor(t,e,r,h){this.area=t,this.x=e,this.y=r,this.progress=h}}class qe{constructor(t,e){this.scene=t,this.fillerData=e,this.vertexShaderCode=`
  243. attribute vec2 a_position;
  244. attribute vec2 a_texCoord;
  245. attribute vec4 a_areaId;
  246. attribute vec2 a_center;
  247. attribute float a_progress;
  248. attribute float a_maxRadius;
  249. uniform mat4 u_matrix;
  250. varying vec4 v_areaId;
  251. varying vec2 v_center;
  252. varying float v_progress;
  253. varying float v_maxRadius;
  254. varying vec2 v_texCoord;
  255. varying vec2 v_position;
  256. void main() {
  257. gl_Position = u_matrix * vec4(a_position, 0, 1);
  258. v_areaId = a_areaId;
  259. v_center = a_center;
  260. v_progress = a_progress;
  261. v_maxRadius = a_maxRadius;
  262. v_texCoord = a_texCoord;
  263. v_position = a_position;
  264. }
  265. `,this.fragmentShaderCode=`
  266. precision mediump float;
  267. uniform sampler2D u_map;
  268. //uniform sampler2D u_colored;
  269. //uniform sampler2D u_mask;
  270. varying vec4 v_areaId;
  271. varying vec2 v_center;
  272. varying float v_progress;
  273. varying float v_maxRadius;
  274. varying vec2 v_texCoord;
  275. varying vec2 v_position;
  276. void main() {
  277. vec4 map = texture2D(u_map, v_texCoord);
  278. float dist = distance(map, v_areaId);
  279. /*
  280. if(dist < 0.001) {
  281. if(v_progress >= 1.0 ) {
  282. gl_FragColor = vec4(1, 1, 0, 1);
  283. }else{
  284. float dist2 = distance(v_position, v_center);
  285. if(dist2 < v_maxRadius * v_progress) {
  286. gl_FragColor = vec4(1, 1, 0, 1);
  287. }else{
  288. gl_FragColor = vec4(0, 0, 0, 0);
  289. }
  290. }
  291. }else{
  292. gl_FragColor = vec4(0, 0, 0, 0);
  293. }
  294. */
  295. //gl_FragColor = vec4(1, 1, 0, 1);
  296. //gl_FragColor = map;
  297. vec4 colored = vec4(1, 1, 0, 1);
  298. if(dist < 0.001) {
  299. if( v_progress < 1.0 ) {
  300. float dist2 = distance(v_position, v_center);
  301. float r = v_maxRadius * v_progress + 0.001;
  302. if(dist2 < r) {
  303. float f = dist2 / r;
  304. if(f < v_progress) {
  305. gl_FragColor = colored;
  306. }else if(v_progress < 1.0){
  307. float a = (f - 1.0) / (v_progress - 1.0);
  308. gl_FragColor = vec4(colored.xyz, a);
  309. }else{
  310. gl_FragColor = colored;
  311. }
  312. }else {
  313. gl_FragColor = vec4(0,0,0,0);
  314. }
  315. }else{
  316. gl_FragColor = colored;
  317. }
  318. }else{
  319. gl_FragColor = vec4(0, 0, 0, 0);
  320. }
  321. }
  322. `,this.animatingAreas=[];const r=t.gl;this.program=vt(r,ct(r,r.VERTEX_SHADER,this.vertexShaderCode),ct(r,r.FRAGMENT_SHADER,this.fragmentShaderCode)),this.aPositionLoc=r.getAttribLocation(this.program,"a_position"),this.aTexcoordLoc=r.getAttribLocation(this.program,"a_texCoord"),this.aAreaIdLoc=r.getAttribLocation(this.program,"a_areaId"),this.aCenterLoc=r.getAttribLocation(this.program,"a_center"),this.aProgressLoc=r.getAttribLocation(this.program,"a_progress"),this.aMaxRadiusLoc=r.getAttribLocation(this.program,"a_maxRadius"),this.uMatrixLoc=r.getUniformLocation(this.program,"u_matrix"),this.maxCount=e.data.maxAreaCountOfGroup,this.positionBuffer=r.createBuffer(),this.texCoordBuffer=r.createBuffer(),this.areaIdBuffer=r.createBuffer(),this.centerBuffer=r.createBuffer(),this.progressBuffer=r.createBuffer(),this.maxRadiusBuffer=r.createBuffer(),this.matrix=lt.projectionNoflipY(e.width,e.height),this.texture=r.createTexture(),r.bindTexture(r.TEXTURE_2D,this.texture),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,this.fillerData.width,this.fillerData.height,0,r.RGBA,r.UNSIGNED_BYTE,null),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),this.fb=r.createFramebuffer(),r.bindFramebuffer(r.FRAMEBUFFER,this.fb),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,this.texture,0),r.bindFramebuffer(r.FRAMEBUFFER,null),this.positionArray=new Float32Array(this.maxCount*12),this.texCoordArray=new Float32Array(this.maxCount*12),this.areaIdArray=new Float32Array(this.maxCount*24),this.centerArray=new Float32Array(this.maxCount*12),this.progressArray=new Float32Array(this.maxCount*6),this.maxRadiusArray=new Float32Array(this.maxCount*6)}dispose(){let t=this.scene.gl;t.deleteBuffer(this.positionBuffer),t.deleteBuffer(this.texCoordBuffer),t.deleteBuffer(this.areaIdBuffer),t.deleteBuffer(this.centerBuffer),t.deleteBuffer(this.progressBuffer),t.deleteBuffer(this.maxRadiusBuffer),t.deleteProgram(this.program)}get width(){return this.fillerData.width}get height(){return this.fillerData.height}addArea(t,e,r,h=800){let a=new $e(t,e,r,0),n=new re(h,()=>{a.progress=n.value()},()=>{});this.scene.addAnimator(n),this.animatingAreas.push(a)}fillPoint(t,e,r,h,a){for(var n=0;n<a;n++)t[e+n*2]=r,t[e+n*2+1]=h}fillNumber(t,e,r,h){for(var a=0;a<h;a++)t[e+a]=r}flush(){if(this.animatingAreas.length<=0)return;var t=0,e=0,r=0;const h=this.fillerData.width,a=this.fillerData.height;for(var n=0;n<this.animatingAreas.length;n++){var o=this.animatingAreas[n],i=o.area;pt(this.positionArray,t,i.rect.x,i.rect.y,i.rect.width,i.rect.height),pt(this.texCoordArray,t,i.rect.x/h,i.rect.y/a,i.rect.width/h,i.rect.height/a),this.fillPoint(this.centerArray,t,o.x,o.y,6);var b=new gt(i.id);b.fillFloatArray(this.areaIdArray,e,6);var g=jt(i.rect,o.x,o.y);this.fillNumber(this.progressArray,r,o.progress,6),this.fillNumber(this.maxRadiusArray,r,g,6),t+=12,e+=24,r+=6}const _=this.scene.gl;_.bindBuffer(_.ARRAY_BUFFER,this.positionBuffer),_.bufferData(_.ARRAY_BUFFER,this.positionArray,_.STATIC_DRAW),_.bindBuffer(_.ARRAY_BUFFER,this.texCoordBuffer),_.bufferData(_.ARRAY_BUFFER,this.texCoordArray,_.STATIC_DRAW),_.bindBuffer(_.ARRAY_BUFFER,this.areaIdBuffer),_.bufferData(_.ARRAY_BUFFER,this.areaIdArray,_.STATIC_DRAW),_.bindBuffer(_.ARRAY_BUFFER,this.centerBuffer),_.bufferData(_.ARRAY_BUFFER,this.centerArray,_.STATIC_DRAW),_.bindBuffer(_.ARRAY_BUFFER,this.progressBuffer),_.bufferData(_.ARRAY_BUFFER,this.progressArray,_.STATIC_DRAW),_.bindBuffer(_.ARRAY_BUFFER,this.maxRadiusBuffer),_.bufferData(_.ARRAY_BUFFER,this.maxRadiusArray,_.STATIC_DRAW),this.draw(this.animatingAreas.length*6),this.animatingAreas=this.animatingAreas.filter(y=>y.progress<1)}draw(t){const e=this.scene.gl;e.bindFramebuffer(e.FRAMEBUFFER,this.fb),e.useProgram(this.program),e.viewport(0,0,this.fillerData.width,this.fillerData.height),e.enableVertexAttribArray(this.aPositionLoc),e.bindBuffer(e.ARRAY_BUFFER,this.positionBuffer),e.vertexAttribPointer(this.aPositionLoc,2,e.FLOAT,!1,0,0),e.enableVertexAttribArray(this.aTexcoordLoc),e.bindBuffer(e.ARRAY_BUFFER,this.texCoordBuffer),e.vertexAttribPointer(this.aTexcoordLoc,2,e.FLOAT,!1,0,0),e.enableVertexAttribArray(this.aAreaIdLoc),e.bindBuffer(e.ARRAY_BUFFER,this.areaIdBuffer),e.vertexAttribPointer(this.aAreaIdLoc,4,e.FLOAT,!1,0,0),e.enableVertexAttribArray(this.aCenterLoc),e.bindBuffer(e.ARRAY_BUFFER,this.centerBuffer),e.vertexAttribPointer(this.aCenterLoc,2,e.FLOAT,!1,0,0),e.enableVertexAttribArray(this.aProgressLoc),e.bindBuffer(e.ARRAY_BUFFER,this.progressBuffer),e.vertexAttribPointer(this.aProgressLoc,1,e.FLOAT,!1,0,0),e.enableVertexAttribArray(this.aMaxRadiusLoc),e.bindBuffer(e.ARRAY_BUFFER,this.maxRadiusBuffer),e.vertexAttribPointer(this.aMaxRadiusLoc,1,e.FLOAT,!1,0,0),e.uniformMatrix4fv(this.uMatrixLoc,!1,this.matrix),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this.fillerData.mapTexure),e.drawArrays(e.TRIANGLES,0,t),e.bindFramebuffer(e.FRAMEBUFFER,null)}initTask(){let t=this.fillerData.taskList;const e=this.fillerData.width,r=this.fillerData.height;for(let n of t){let o=this.fillerData.data.areaHash.get(n);if(o){pt(this.positionArray,0,o.rect.x,o.rect.y,o.rect.width,o.rect.height),pt(this.texCoordArray,0,o.rect.x/e,o.rect.y/r,o.rect.width/e,o.rect.height/r),this.fillPoint(this.centerArray,0,o.center.x,o.center.y,6);var h=new gt(o.id);h.fillFloatArray(this.areaIdArray,0,6);var a=jt(o.rect,o.center.x,o.center.y);console.log("rect=",o.rect,a,o.center.x,o.center.y),this.fillNumber(this.progressArray,0,1,6),this.fillNumber(this.maxRadiusArray,0,a,6);const i=this.scene.gl;i.bindBuffer(i.ARRAY_BUFFER,this.positionBuffer),i.bufferData(i.ARRAY_BUFFER,this.positionArray,i.STATIC_DRAW),i.bindBuffer(i.ARRAY_BUFFER,this.texCoordBuffer),i.bufferData(i.ARRAY_BUFFER,this.texCoordArray,i.STATIC_DRAW),i.bindBuffer(i.ARRAY_BUFFER,this.areaIdBuffer),i.bufferData(i.ARRAY_BUFFER,this.areaIdArray,i.STATIC_DRAW),i.bindBuffer(i.ARRAY_BUFFER,this.centerBuffer),i.bufferData(i.ARRAY_BUFFER,this.centerArray,i.STATIC_DRAW),i.bindBuffer(i.ARRAY_BUFFER,this.progressBuffer),i.bufferData(i.ARRAY_BUFFER,this.progressArray,i.STATIC_DRAW),i.bindBuffer(i.ARRAY_BUFFER,this.maxRadiusBuffer),i.bufferData(i.ARRAY_BUFFER,this.maxRadiusArray,i.STATIC_DRAW),this.draw(6)}}}}class Je extends yt{constructor(t,e){super(),this.scene=t,this.fillerData=e,this.vertexShaderCode=`
  323. attribute vec2 a_position;
  324. attribute vec2 a_texCoord;
  325. uniform mat4 u_matrix;
  326. varying vec2 v_texCoord;
  327. void main() {
  328. gl_Position = u_matrix * vec4(a_position, 0, 1);
  329. v_texCoord = a_texCoord;
  330. }
  331. `,this.fragmentShaderCode=`
  332. precision mediump float;
  333. uniform sampler2D u_colored;
  334. uniform sampler2D u_mask;
  335. uniform vec2 u_pixelSize;
  336. varying vec2 v_texCoord;
  337. const float w1 = 0.147761;
  338. const float w2 = 0.118318;
  339. const float w3 = 0.0947416;
  340. vec4 GaussianBlur(in sampler2D image, in vec2 texCoord, in vec2 pixelSize) {
  341. vec4 C00 = texture2D(image, texCoord + vec2(-pixelSize.x, -pixelSize.y)) * w3 ;
  342. vec4 C01 = texture2D(image, texCoord + vec2(0.0, -pixelSize.y)) * w2;
  343. vec4 C02 = texture2D(image, texCoord + vec2(pixelSize.x, -pixelSize.y)) * w3 ;
  344. vec4 C10 = texture2D(image, texCoord + vec2(-pixelSize.x, 0.0)) * w2;
  345. vec4 C11 = texture2D(image, texCoord + vec2(0.0, 0.0)) * w1;
  346. vec4 C12 = texture2D(image, texCoord + vec2(pixelSize.x, 0.0)) * w2;
  347. vec4 C20 = texture2D(image, texCoord + vec2(-pixelSize.x, pixelSize.y)) * w3;
  348. vec4 C21 = texture2D(image, texCoord + vec2(0.0, pixelSize.y)) * w2;
  349. vec4 C22 = texture2D(image, texCoord + vec2(pixelSize.x, pixelSize.y)) * w3;
  350. return
  351. C00 + C01 + C02 +
  352. C10 + C11 + C12 +
  353. C20 + C21 + C22 ;
  354. }
  355. vec4 GaussianBlurR(in sampler2D image, in vec2 texCoord, in vec2 pixelSize) {
  356. vec4 C00 = texture2D(image, texCoord + vec2(-pixelSize.x, -pixelSize.y)) * w3 ;
  357. vec4 C01 = texture2D(image, texCoord + vec2(0.0, -pixelSize.y)) * w2;
  358. vec4 C02 = texture2D(image, texCoord + vec2(pixelSize.x, -pixelSize.y)) * w3 ;
  359. vec4 C10 = texture2D(image, texCoord + vec2(-pixelSize.x, 0.0)) * w2;
  360. vec4 C11 = texture2D(image, texCoord + vec2(0.0, 0.0)) * w1;
  361. vec4 C12 = texture2D(image, texCoord + vec2(pixelSize.x, 0.0)) * w2;
  362. vec4 C20 = texture2D(image, texCoord + vec2(-pixelSize.x, pixelSize.y)) * w3;
  363. vec4 C21 = texture2D(image, texCoord + vec2(0.0, pixelSize.y)) * w2;
  364. vec4 C22 = texture2D(image, texCoord + vec2(pixelSize.x, pixelSize.y)) * w3;
  365. vec4 g =
  366. C00 + C01 + C02 +
  367. C10 + C11 + C12 +
  368. C20 + C21 + C22 ;
  369. return g;
  370. }
  371. void main() {
  372. vec4 mask = GaussianBlurR(u_mask, v_texCoord, u_pixelSize);
  373. vec4 colored = GaussianBlur(u_colored, v_texCoord, u_pixelSize);
  374. //vec4 colored = texture2D(u_colored, v_texCoord);
  375. //gl_FragColor = vec4(colored.rgb, mask.a);
  376. if(mask.r >= 0.4) {
  377. gl_FragColor = vec4(colored.rgb, 1);
  378. //gl_FragColor = colored;
  379. }else{
  380. gl_FragColor = vec4(0, 0, 0, 0);
  381. }
  382. }
  383. `,this.animatableMask=new qe(t,e);const r=t.gl;this.program=vt(r,ct(r,r.VERTEX_SHADER,this.vertexShaderCode),ct(r,r.FRAGMENT_SHADER,this.fragmentShaderCode)),this.aPositionLoc=r.getAttribLocation(this.program,"a_position"),this.aTexcoordLoc=r.getAttribLocation(this.program,"a_texCoord"),this.uMatrixLoc=r.getUniformLocation(this.program,"u_matrix"),this.uMaskLoc=r.getUniformLocation(this.program,"u_mask"),this.uColoredLoc=r.getUniformLocation(this.program,"u_colored"),this.uPixelSizeLoc=r.getUniformLocation(this.program,"u_pixelSize"),this.positionBuffer=Xt(r,0,0,e.width,e.height),this.texCoordBuffer=Xt(r,0,0,1,1)}dispose(){let t=this.scene.gl;this.animatableMask.dispose(),t.deleteProgram(this.program),t.deleteBuffer(this.positionBuffer),t.deleteBuffer(this.texCoordBuffer)}initTask(){this.animatableMask.initTask(),this.scene.invalidate()}draw(){console.log("WorkLayer draw()");const t=this.scene.gl;t.useProgram(this.program),t.enableVertexAttribArray(this.aPositionLoc),t.bindBuffer(t.ARRAY_BUFFER,this.positionBuffer),t.vertexAttribPointer(this.aPositionLoc,2,t.FLOAT,!1,0,0),t.enableVertexAttribArray(this.aTexcoordLoc),t.bindBuffer(t.ARRAY_BUFFER,this.texCoordBuffer),t.vertexAttribPointer(this.aTexcoordLoc,2,t.FLOAT,!1,0,0),t.uniformMatrix4fv(this.uMatrixLoc,!1,this.scene.drawMatrix),t.uniform2f(this.uPixelSizeLoc,1/this.fillerData.width,1/this.fillerData.height),t.uniform1i(this.uMaskLoc,0),t.uniform1i(this.uColoredLoc,1),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this.animatableMask.texture),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,this.fillerData.colored),t.drawArrays(t.TRIANGLES,0,6)}preDraw(){this.animatableMask.flush()}tap(t,e,r,h){var i,b,g;let a=this.fillerData;if(a.currentGroup==null){(i=a.callback)==null||i.onFillFailed();return}const n=a.data.groupAreaHash(a.currentGroup);let o=this.fillerData.getArea(t,e,50,n);o!=null&&(this.animatableMask.addArea(o,t,e),a.setColored(o,a.currentGroup.color,t,e),(b=a.callback)==null||b.onFillSuccess(),a.currentGroup.isAllColored&&(a.switchToNextGroup()||(g=a.callback)==null||g.onFinish()))}async replay(){const t=this.scene.gl;t.bindFramebuffer(t.FRAMEBUFFER,this.animatableMask.fb),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.bindFramebuffer(t.FRAMEBUFFER,null);for(let e of this.fillerData.taskList){let r=this.fillerData.data.areaHash.get(e);r&&(this.animatableMask.addArea(r,r.center.x,r.center.y,200),this.scene.invalidate(),await Ke(200))}}}const Ke=l=>new Promise(t=>setTimeout(t,l));class Qe{constructor(t={}){this.startTime=0,this.overlay=document.getElementById("loading-overlay"),this.config={minDisplayTime:500,fadeDuration:300,...t}}show(){this.startTime=Date.now(),this.overlay.classList.add("active")}async hide(){const t=Date.now()-this.startTime,e=Math.max(this.config.minDisplayTime-t,0);await new Promise(r=>setTimeout(r,e)),this.overlay.classList.remove("active"),await new Promise(r=>setTimeout(r,this.config.fadeDuration))}async wrap(t){try{return this.show(),await t}finally{await this.hide()}}}function Ot(l,t){if(!(l instanceof t))throw new TypeError("Cannot call a class as a function")}function tr(l,t){for(var e=0;e<t.length;e++){var r=t[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(l,r.key,r)}}function Nt(l,t,e){return t&&tr(l.prototype,t),l}function Yt(l){return+l.replace(/px/,"")}function er(l){var t=window.devicePixelRatio,e=getComputedStyle(l),r=Yt(e.getPropertyValue("width")),h=Yt(e.getPropertyValue("height"));l.setAttribute("width",(r*t).toString()),l.setAttribute("height",(h*t).toString())}function _t(l,t){var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=Math.random()*(t-l)+l;return Math.floor(r*Math.pow(10,e))/Math.pow(10,e)}function Ht(l){return l[_t(0,l.length)]}var rr=.00125,ir=5e-4,ar=9e-4,nr=1e-5,or=6,sr=80,hr=.9,lr=1.7,cr=.2,ur=.6,fr=.03,dr=.07,Zt=15,Vt=82,pr=150,mr=100,gr=250,_r=40,vr=["#fcf403","#62fc03","#f4fc03","#03e7fc","#03fca5","#a503fc","#fc03ad","#fc03c2"];function $t(l){var t=1920;return Math.log(l)/Math.log(t)}var qt=function(){function l(t){Ot(this,l);var e=t.initialPosition,r=t.direction,h=t.confettiRadius,a=t.confettiColors,n=t.emojis,o=t.emojiSize,i=t.canvasWidth,b=_t(hr,lr,3),g=b*$t(i);this.confettiSpeed={x:g,y:g},this.finalConfettiSpeedX=_t(cr,ur,3),this.rotationSpeed=n.length?.01:_t(fr,dr,3)*$t(i),this.dragForceCoefficient=_t(ir,ar,6),this.radius={x:h,y:h},this.initialRadius=h,this.rotationAngle=r==="left"?_t(0,.2,3):_t(-.2,0,3),this.emojiSize=o,this.emojiRotationAngle=_t(0,2*Math.PI),this.radiusYUpdateDirection="down";var _=r==="left"?_t(Vt,Zt)*Math.PI/180:_t(-Zt,-Vt)*Math.PI/180;this.absCos=Math.abs(Math.cos(_)),this.absSin=Math.abs(Math.sin(_));var y=_t(-pr,0),m={x:e.x+(r==="left"?-y:y)*this.absCos,y:e.y-y*this.absSin};this.currentPosition=Object.assign({},m),this.initialPosition=Object.assign({},m),this.color=n.length?null:Ht(a),this.emoji=n.length?Ht(n):null,this.createdAt=new Date().getTime(),this.direction=r}return Nt(l,[{key:"draw",value:function(e){var r=this.currentPosition,h=this.radius,a=this.color,n=this.emoji,o=this.rotationAngle,i=this.emojiRotationAngle,b=this.emojiSize,g=window.devicePixelRatio;a?(e.fillStyle=a,e.beginPath(),e.ellipse(r.x*g,r.y*g,h.x*g,h.y*g,o,0,2*Math.PI),e.fill()):n&&(e.font="".concat(b,"px serif"),e.save(),e.translate(g*r.x,g*r.y),e.rotate(i),e.textAlign="center",e.fillText(n,0,0),e.restore())}},{key:"updatePosition",value:function(e,r){var h=this.confettiSpeed,a=this.dragForceCoefficient,n=this.finalConfettiSpeedX,o=this.radiusYUpdateDirection,i=this.rotationSpeed,b=this.createdAt,g=this.direction,_=r-b;if(h.x>n&&(this.confettiSpeed.x-=a*e),this.currentPosition.x+=h.x*(g==="left"?-this.absCos:this.absCos)*e,this.currentPosition.y=this.initialPosition.y-h.y*this.absSin*_+rr*Math.pow(_,2)/2,this.rotationSpeed-=this.emoji?1e-4:nr*e,this.rotationSpeed<0&&(this.rotationSpeed=0),this.emoji){this.emojiRotationAngle+=this.rotationSpeed*e%(2*Math.PI);return}o==="down"?(this.radius.y-=e*i,this.radius.y<=0&&(this.radius.y=0,this.radiusYUpdateDirection="up")):(this.radius.y+=e*i,this.radius.y>=this.initialRadius&&(this.radius.y=this.initialRadius,this.radiusYUpdateDirection="down"))}},{key:"getIsVisibleOnCanvas",value:function(e){return this.currentPosition.y<e+mr}}]),l}();function br(){var l=document.createElement("canvas");return l.style.position="fixed",l.style.width="100%",l.style.height="100%",l.style.top="0",l.style.left="0",l.style.zIndex="1000",l.style.pointerEvents="none",document.body.appendChild(l),l}function xr(l){var t=l.confettiRadius,e=t===void 0?or:t,r=l.confettiNumber,h=r===void 0?l.confettiesNumber||(l.emojis?_r:gr):r,a=l.confettiColors,n=a===void 0?vr:a,o=l.emojis,i=o===void 0?l.emojies||[]:o,b=l.emojiSize,g=b===void 0?sr:b;return l.emojies&&console.error("emojies argument is deprecated, please use emojis instead"),l.confettiesNumber&&console.error("confettiesNumber argument is deprecated, please use confettiNumber instead"),{confettiRadius:e,confettiNumber:h,confettiColors:n,emojis:i,emojiSize:g}}var yr=function(){function l(t){var e=this;Ot(this,l),this.canvasContext=t,this.shapes=[],this.promise=new Promise(function(r){return e.resolvePromise=r})}return Nt(l,[{key:"getBatchCompletePromise",value:function(){return this.promise}},{key:"addShapes",value:function(){var e;(e=this.shapes).push.apply(e,arguments)}},{key:"complete",value:function(){var e;return this.shapes.length?!1:((e=this.resolvePromise)===null||e===void 0||e.call(this),!0)}},{key:"processShapes",value:function(e,r,h){var a=this,n=e.timeDelta,o=e.currentTime;this.shapes=this.shapes.filter(function(i){return i.updatePosition(n,o),i.draw(a.canvasContext),h?i.getIsVisibleOnCanvas(r):!0})}}]),l}(),Ar=function(){function l(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ot(this,l),this.activeConfettiBatches=[],this.canvas=t.canvas||br(),this.canvasContext=this.canvas.getContext("2d"),this.requestAnimationFrameRequested=!1,this.lastUpdated=new Date().getTime(),this.iterationIndex=0,this.loop=this.loop.bind(this),requestAnimationFrame(this.loop)}return Nt(l,[{key:"loop",value:function(){this.requestAnimationFrameRequested=!1,er(this.canvas);var e=new Date().getTime(),r=e-this.lastUpdated,h=this.canvas.offsetHeight,a=this.iterationIndex%10===0;this.activeConfettiBatches=this.activeConfettiBatches.filter(function(n){return n.processShapes({timeDelta:r,currentTime:e},h,a),a?!n.complete():!0}),this.iterationIndex++,this.queueAnimationFrameIfNeeded(e)}},{key:"queueAnimationFrameIfNeeded",value:function(e){this.requestAnimationFrameRequested||this.activeConfettiBatches.length<1||(this.requestAnimationFrameRequested=!0,this.lastUpdated=e||new Date().getTime(),requestAnimationFrame(this.loop))}},{key:"addConfetti",value:function(){for(var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=xr(e),h=r.confettiRadius,a=r.confettiNumber,n=r.confettiColors,o=r.emojis,i=r.emojiSize,b=this.canvas.getBoundingClientRect(),g=b.width,_=b.height,y=_*5/7,m={x:0,y},p={x:g,y},c=new yr(this.canvasContext),f=0;f<a/2;f++){var d=new qt({initialPosition:m,direction:"right",confettiRadius:h,confettiColors:n,confettiNumber:a,emojis:o,emojiSize:i,canvasWidth:g}),v=new qt({initialPosition:p,direction:"left",confettiRadius:h,confettiColors:n,confettiNumber:a,emojis:o,emojiSize:i,canvasWidth:g});c.addShapes(d,v)}return this.activeConfettiBatches.push(c),this.queueAnimationFrameIfNeeded(),c.getBatchCompletePromise()}},{key:"clearCanvas",value:function(){this.activeConfettiBatches=[]}},{key:"destroyCanvas",value:function(){this.canvas.remove()}}]),l}();document.body.onload=function(){function l(a){const n=/\/play\/([\w-]+)/,o=a.match(n);return o?o[1]:null}let t=window.location.href;console.log("current url:",t);let e=t.substring(0,t.indexOf("/play")),r=l(t);console.log("host:",e),console.log("id:",r),r||(r="test");let h=`${e}/proxy/zips/v2/number_mini/1501/${r}.zip`;e.includes("art.pcoloring.com")&&(h=`https://pcoloring.com/zips/v2/number_mini/1501/${r}.zip`),wr(r,h)};async function wr(l,t){var R,C,U,k,O,B;console.log(t);const e=new Qe({minDisplayTime:1e3,fadeDuration:300});e.show();let r=document.querySelector("#canvas"),h=r.getContext("webgl2",{premultipliedAlpha:!1}),a=window.devicePixelRatio;r.width=r.clientWidth*a,r.height=r.clientHeight*a;let n=new Ue(h,a),o=new Fe,i={hintStyle:"default",sound:!0,vibrate:!0,autoNext:!0,...JSON.parse(localStorage.getItem("settings")||"{}")};window.addEventListener("resize",()=>n.updateViewport()),(R=document.querySelector("#toggleTestLayer"))==null||R.addEventListener("click",()=>n.toggleTestLayer()),(C=document.querySelector("#reduction"))==null||C.addEventListener("click",()=>n.resetToBestFit()),(U=document.querySelector("#hint"))==null||U.addEventListener("click",()=>Br(o,n)),(k=document.querySelector("#goback"))==null||k.addEventListener("click",()=>Dt(n,w,o)),(O=document.querySelector("#setting"))==null||O.addEventListener("click",()=>Dr()),(B=document.querySelector("#save"))==null||B.addEventListener("click",()=>Qt(l,f)),window.addEventListener("beforeunload",P=>Qt(l,f)),document.addEventListener("click",P=>te(P)),document.addEventListener("touchstart",P=>te(P));let b=document.getElementById("action-sheet");b.addEventListener("click",P=>ee(P)),b.addEventListener("touchstart",P=>ee(P));let g=document.getElementById("sound");g.checked=i.sound,g.addEventListener("click",P=>Ur(P,f));let _=document.getElementById("vibrate");_.checked=i.vibrate,_.addEventListener("click",P=>Pr(P,f));let y=document.getElementById("autonext");y.checked=i.autoNext,y.addEventListener("click",P=>zr(P,f));let m;l=="test"?m=await Er():m=await Xe(t),e.hide();let p=[],c=localStorage.getItem(l);c&&(p=JSON.parse(c));let f=new De(new Ie(i),m,h,p,{onFillFailed(){console.log("填充失败")},onFillSuccess(){var P;console.log("填充成功"),f.config.settings.vibrate&&Lr(),Jt(f.data.coloredPercent),Cr(f.currentGroupIndex,f.currentGroup.progressPercent),(P=f.currentGroup)!=null&&P.isAllColored&&(f.config.settings.sound&&o.playAudio(Bt.ColorDone),kr(f)),Mt=!0},onSwitchGroup(){let P=f.currentGroupIndex;console.log(`切换到下一个group ${P}`),se(P),Sr(f)},onFinish(){Dt(n,w,o)}});n.fillerData=f,console.log("resource",m),n.setContentPadding(new ie(50,50,50,220));let d=f.width,v=f.height;n.setContentSize(d,v),m.bg&&n.addLayer(new ye(n,m.bg,n.width,n.height,ae.Repeat)),n.addLayer(new Te(n,0,0,d,v)),n.addLayer(new ze(n,f)),n.addLayer(new Ve(n,m.numberImage,f,1));let w=new Je(n,f);n.addLayer(w),n.addLayer(new Ne(n,m.page,d,v)),n.addLayer(new Ce(n,0,0,f.width,f.height,4280427042)),Rr(f),Jt(f.data.coloredPercent),w.initTask(),f.data.coloredPercent>=100&&Dt(n,w,null)}async function Er(){let l="/assets/unzipped/friend",t=[fetch(`${l}/config.json`).then(i=>i.json()),Ct(`${l}/page.png`),Ct(`${l}/map.png`),Ct("/assets/fonts/numbers_roboto_500.png"),Ct("/assets/bg/seamless2.png")],[e,r,h,a,n,o]=await Promise.all(t);return new ne(e,r,h,a,[],o,n)}function Rr(l){let t=l.data.areaGroups,e=[],r=[],h=[],a,n;for(var o=0;o<t.length;o++)a=t[o],n=new gt(a.color),a.isAllColored?(r.push(`<div id="color-btn-container-${o}" class="color-btn-container" onclick="selectColor(this, event, ${o})">`),r.push(`<svg id="color-btn-progress-ring-${o}" class="color-btn-progress-ring" viewBox="0 0 48 48"><circle class="color-btn-progress-ring-track" cx="50%" cy="50%" r="45%" fill="transparent" stroke="#fff" stroke-width="5%" /> <circle id="color-btn-progress-ring-value-${o}" class="color-btn-progress-ring-value" cx="50%" cy="50%" r="45%" fill="transparent" stroke="#2ecc71" stroke-width="5%" stroke-linecap="round" /></svg>`),r.push(`<div id="color-btn-${o}" class="color-btn" style="background-color:${n.css()}; color: ${n.gray<192?"white":"black"}">`),r.push("✓"),r.push("</div>"),r.push("</div>")):(a===l.currentGroup||a.progressPercent>0,e.push(`<div id="color-btn-container-${o}" class="color-btn-container" onclick="selectColor(this, event, ${o})">`),e.push(`<svg id="color-btn-progress-ring-${o}" class="color-btn-progress-ring" viewBox="0 0 48 48"><circle class="color-btn-progress-ring-track" cx="50%" cy="50%" r="45%" fill="transparent" stroke="#fff" stroke-width="5%" /> <circle id="color-btn-progress-ring-value-${o}" class="color-btn-progress-ring-value" cx="50%" cy="50%" r="45%" fill="transparent" stroke="#2ecc71" stroke-width="5%" stroke-linecap="round" /></svg>`),e.push(`<div id="color-btn-${o}" class="color-btn" style="background-color:${n.css()}; color: ${n.gray<192?"white":"black"}">`),e.push(`${o+1}`),e.push("</div>"),e.push("</div>"));h=e.concat(r);let i=document.querySelector("#color-btns");i!=null&&(i.innerHTML=h.join("")),se(l.currentGroupIndex);for(var o=0;o<t.length;o++){let _=t[o].progressPercent;Tr(o,_)}window.selectColor=function(b,g,_){console.log("select",b,g,_),l.setCurrentGroup(_),document.querySelectorAll(".color-btn-container").forEach(y=>{y.classList.remove("color-btn-container-selected")}),b.classList.add("color-btn-container-selected")}}function Jt(l){let t=document.getElementById("progress"),e=document.getElementById("percent");e.innerText=`${l}%`,t.style.width=`${l}%`}function se(l){document.querySelectorAll(".color-btn-container").forEach(e=>{e.classList.remove("color-btn-container-selected")});let t=document.getElementById(`color-btn-container-${l}`);t==null||t.classList.add("color-btn-container-selected")}function Cr(l,t){const e=document.getElementById(`color-btn-container-${l}`),r=document.getElementById(`color-btn-progress-ring-value-${l}`),a=e.clientWidth*.45,n=2*Math.PI*a,o=n-t*n/100;if(r.style.strokeDashoffset=o.toString(),t>=100){const i=document.getElementById(`color-btn-${l}`);i.innerText="✓"}}function Tr(l,t){const e=document.getElementById(`color-btn-container-${l}`),r=document.getElementById(`color-btn-progress-ring-value-${l}`),a=e.clientWidth*.45,n=2*Math.PI*a,o=n-t*n/100;r.style.strokeDasharray=`${n} ${n}`,r.style.strokeDashoffset=o.toString()}function Sr(l){let t=document.getElementById("color-btns"),e=document.body.clientWidth/(t.scrollWidth/l.data.areaGroups.length),r=document.body.clientWidth/e,h=t.scrollWidth/l.data.areaGroups.length*(l.currentGroupIndex-l.doneBeforeCount)-e*r/2+r/2;h=h<0?0:h;try{t.scroll({left:h,top:0,behavior:"smooth"})}catch(a){console.log(a),t.scrollLeft=h}}function Fr(l,t,e){let r=document.createElement("canvas");r.className="finish-ani-canvas";let h=l.getBoundingClientRect();r.style.left=`${h.left-50}px`,r.style.top=`${h.top-50}px`,r.style.width=`${h.width+100}px`,r.style.height=`${h.height+100}px`,document.body.append(r),new Be(r,t,50,()=>{e(),r.remove()}).explode()}function kr(l){let t=l.currentGroupIndex,e=new gt(l.currentGroup.color).css(),r=document.getElementById("color-btns"),h=document.getElementById(`color-btn-container-${t}`);setTimeout(()=>{h.style.visibility="hidden",Fr(h,e,()=>{r.lastElementChild.after(h),h.style.visibility="visible"})},300)}function Dt(l,t,e){const r=document.getElementById("toolbar-bottom"),h=document.getElementById("save"),a=document.getElementById("setting"),n=document.getElementById("reduction"),o=document.getElementById("hint");setTimeout(()=>{l.fillerData.config.settings.sound&&(e==null||e.playAudio(Bt.AllDone)),l.resetToResult(),r.classList.add("hidden-toolbar-bottom"),h.classList.add("hidden-toolbar-right"),a.classList.add("hidden-toolbar-right"),n.classList.add("hidden-toolbar-right"),o.classList.add("hidden-toolbar-right"),setTimeout(()=>{h.style.display="none",a.style.display="none",n.style.display="none",o.style.display="none",l.addLayer(new Se(l,-10,-10,l.fillerData.width+20,l.fillerData.height+20,4288401133,40)),t.replay()},1e3)},300);let i=document.getElementById("finish-btn");i.addEventListener("touchmove",_=>_.preventDefault()),i.style.display="flex",document.getElementById("finish-playback").addEventListener("click",()=>t.replay());let g=document.getElementById("finish-continue");g.addEventListener("mouseenter",()=>g.style.backgroundImage="linear-gradient(-180deg, #f6b061, #fe5a2c)"),g.addEventListener("mouseleave",()=>g.style.backgroundImage="linear-gradient(-180deg, #FFC787 12%, #FF9274 90%)"),g.addEventListener("click",()=>Kt()),g.addEventListener("touchstart",()=>g.style.backgroundImage="linear-gradient(-180deg, #f6b061, #fe5a2c)"),g.addEventListener("touchend",_=>{_.preventDefault(),g.style.backgroundImage="linear-gradient(-180deg, #FFC787 12%, #FF9274 90%)",Kt()}),setTimeout(()=>{Ir(),i.style.opacity="1"},1e3)}function Br(l,t){var e;(e=t.fillerData)!=null&&e.config.settings.sound&&l.playAudio(Bt.Hint),t.hint()}function Kt(){document.referrer.includes(window.location.hostname)?window.history.back():window.location.href="/"}function Lr(){var l="vibrate"in navigator;console.log("supportVibrate: "+l),l&&navigator.vibrate(30)}function Ut(l){const t=document.getElementById("toast");t&&(t.textContent=l,t.classList.remove("toast-hidden"),setTimeout(()=>t.classList.add("toast-hidden"),2500))}var Mt=!1;function Qt(l,t){const e="__storage_metadata__",r=n=>{const o=localStorage.getItem(e),i=o?JSON.parse(o):{};i[n]={progress:t.data.coloredPercent,timestamp:Date.now()},localStorage.setItem(e,JSON.stringify(i))},h=()=>{const n=localStorage.getItem(e);if(!n)return;const o=JSON.parse(n);let i;for(let b of Object.entries(o)){if(!i){i=b;continue}b[1].timestamp<i[1].timestamp&&(i=b)}return i?i[0]:void 0},a=n=>{localStorage.removeItem(n);const o=localStorage.getItem(e);if(!o)return;const i=JSON.parse(o);delete i[n],localStorage.setItem(e,JSON.stringify(i))};if(Mt)for(localStorage.setItem(l,JSON.stringify(t.taskList)),Mt=!1;;)try{return localStorage.setItem(l,JSON.stringify(t.taskList)),r(l),Ut("save success"),!0}catch(n){if(n.name==="QuotaExceededError"){const i=h();if(!i||i===l)return console.error("Storage full and cannot free space"),Ut("Storage full and cannot free space"),!1;a(i)}else throw n}t.data.coloredPercent<100&&Ut("nothing to save")}function Ir(){new Ar().addConfetti()}function te(l){let t=l.target,e=document.getElementById("setting");if(e==t||e.contains(t))return;let r=document.getElementById("action-sheet");r.style.bottom=="0px"&&(r.style.bottom="-1000px")}function ee(l){l.stopPropagation()}function Dr(){let l=document.getElementById("action-sheet");l.style.bottom="0px"}function Ur(l,t){if(l.target.id=="sound"){t.config.settings.sound=l.target.checked;let e=localStorage.getItem("settings")||"{}",r=JSON.parse(e);r.sound=t.config.settings.sound,localStorage.setItem("settings",JSON.stringify(r))}}function Pr(l,t){if(l.target.id=="vibrate"){t.config.settings.vibrate=l.target.checked;let e=localStorage.getItem("settings")||"{}",r=JSON.parse(e);r.vibrate=t.config.settings.vibrate,localStorage.setItem("settings",JSON.stringify(r))}}function zr(l,t){if(l.target.id=="autonext"){t.config.settings.autoNext=l.target.checked;let e=localStorage.getItem("settings")||"{}",r=JSON.parse(e);r.autoNext=t.config.settings.autoNext,localStorage.setItem("settings",JSON.stringify(r))}}