@mappedin/maplibre-overlay 6.8.0-beta.0 → 6.9.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/esm/GLTFExporter-SNNLDUNY.js +1 -0
- package/lib/esm/GLTFLoader-BF75UADM.js +1 -0
- package/lib/esm/chunk-5XKORTTD.js +1 -0
- package/lib/esm/chunk-GVLBFV5V.js +1 -0
- package/lib/esm/chunk-UIEGRFHZ.js +1 -0
- package/lib/esm/index.js +1 -1
- package/lib/esm/text3d-CZ4YB7UP.js +1 -0
- package/package.json +2 -2
- package/lib/esm/GLTFExporter-6K4BSJEC.js +0 -1
- package/lib/esm/GLTFLoader-PXZYSKBG.js +0 -1
- package/lib/esm/chunk-GTHSGKQD.js +0 -1
- package/lib/esm/chunk-HVZGK3U6.js +0 -1
- package/lib/esm/chunk-TKKG67HL.js +0 -1
- package/lib/esm/text3d-CBKNK53T.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Z as Mr,qa as Ae}from"./chunk-5XKORTTD.js";import"./chunk-GVLBFV5V.js";import{B as xn,M as Tn,Na as Jt,O as Sr,P as it,Q as kn,T as _n,Ta as An,U as wr,Ua as Dn,X as He,Y as Fr,Z as Un,_ as Mt,a as ze,b as Ze,ba as At,da as Sn,g as _r,ha as Dt,hb as Cn,ja as wn,p as Ur,pb as En,ta as Fn,u as yn,v as bn,va as Mn}from"./chunk-UIEGRFHZ.js";import{a as gn,b as mn,c as v}from"./chunk-LUJQR5EH.js";ze();ze();ze();function ba(){var h=Object.create(null);function r(t,e){var a=t.id,i=t.name,n=t.dependencies;n===void 0&&(n=[]);var o=t.init;o===void 0&&(o=v(function(){},"init"));var s=t.getTransferables;if(s===void 0&&(s=null),!h[a])try{n=n.map(function(u){return u&&u.isWorkerModule&&(r(u,function(d){if(d instanceof Error)throw d}),u=h[u.id].value),u}),o=f("<"+i+">.init",o),s&&(s=f("<"+i+">.getTransferables",s));var l=null;typeof o=="function"?l=o.apply(void 0,n):console.error("worker module init function failed to rehydrate"),h[a]={id:a,value:l,getTransferables:s},e(l)}catch(u){u&&u.noLog||console.error(u),e(u)}}v(r,"registerModule");function c(t,e){var a,i=t.id,n=t.args;(!h[i]||typeof h[i].value!="function")&&e(new Error("Worker module "+i+": not found or its 'init' did not return a function"));try{var o=(a=h[i]).value.apply(a,n);o&&typeof o.then=="function"?o.then(s,function(l){return e(l instanceof Error?l:new Error(""+l))}):s(o)}catch(l){e(l)}function s(l){try{var u=h[i].getTransferables&&h[i].getTransferables(l);(!u||!Array.isArray(u)||!u.length)&&(u=void 0),e(l,u)}catch(d){console.error(d),e(d)}}v(s,"handleResult")}v(c,"callModule");function f(t,e){var a=void 0;self.troikaDefine=function(n){return a=n};var i=URL.createObjectURL(new Blob(["/** "+t.replace(/\*/g,"")+" **/\n\ntroikaDefine(\n"+e+"\n)"],{type:"application/javascript"}));try{importScripts(i)}catch(n){console.error(n)}return URL.revokeObjectURL(i),delete self.troikaDefine,a}v(f,"rehydrate"),self.addEventListener("message",function(t){var e=t.data,a=e.messageId,i=e.action,n=e.data;try{i==="registerModule"&&r(n,function(o){o instanceof Error?postMessage({messageId:a,success:!1,error:o.message}):postMessage({messageId:a,success:!0,result:{isCallable:typeof o=="function"}})}),i==="callModule"&&c(n,function(o,s){o instanceof Error?postMessage({messageId:a,success:!1,error:o.message}):postMessage({messageId:a,success:!0,result:o},s||void 0)})}catch(o){postMessage({messageId:a,success:!1,error:o.stack})}})}v(ba,"workerBootstrap");function xa(h){var r=v(function(){for(var c=[],f=arguments.length;f--;)c[f]=arguments[f];return r._getInitResult().then(function(t){if(typeof t=="function")return t.apply(void 0,c);throw new Error("Worker module function was called but `init` did not return a callable function")})},"moduleFunc");return r._getInitResult=function(){var c=h.dependencies,f=h.init;c=Array.isArray(c)?c.map(function(e){return e&&(e=e.onMainThread||e,e._getInitResult&&(e=e._getInitResult())),e}):[];var t=Promise.all(c).then(function(e){return f.apply(null,e)});return r._getInitResult=function(){return t},t},r}v(xa,"defineMainThreadModule");var On=v(function(){var h=!1;if(typeof window<"u"&&typeof window.document<"u")try{var r=new Worker(URL.createObjectURL(new Blob([""],{type:"application/javascript"})));r.terminate(),h=!0}catch(c){typeof Ze<"u"&&Ze.env.NODE_ENV==="test"||console.log("Troika createWorkerModule: web workers not allowed; falling back to main thread execution. Cause: ["+c.message+"]")}return On=v(function(){return h},"supportsWorkers"),h},"supportsWorkers"),Ta=0,ka=0,Ar=!1,Ct=Object.create(null),Et=Object.create(null),Dr=Object.create(null);function st(h){if((!h||typeof h.init!="function")&&!Ar)throw new Error("requires `options.init` function");var r=h.dependencies,c=h.init,f=h.getTransferables,t=h.workerId,e=xa(h);t==null&&(t="#default");var a="workerModule"+ ++Ta,i=h.name||a,n=null;r=r&&r.map(function(s){return typeof s=="function"&&!s.workerModuleData&&(Ar=!0,s=st({workerId:t,name:"<"+i+"> function dependency: "+s.name,init:"function(){return (\n"+Kt(s)+"\n)}"}),Ar=!1),s&&s.workerModuleData&&(s=s.workerModuleData),s});function o(){for(var s=[],l=arguments.length;l--;)s[l]=arguments[l];if(!On())return e.apply(void 0,s);if(!n){n=Bn(t,"registerModule",o.workerModuleData);var u=v(function(){n=null,Et[t].delete(u)},"unregister");(Et[t]||(Et[t]=new Set)).add(u)}return n.then(function(d){var g=d.isCallable;if(g)return Bn(t,"callModule",{id:a,args:s});throw new Error("Worker module function was called but `init` did not return a callable function")})}return v(o,"moduleFunc"),o.workerModuleData={isWorkerModule:!0,id:a,name:i,dependencies:r,init:Kt(c),getTransferables:f&&Kt(f)},o.onMainThread=e,o}v(st,"defineWorkerModule");function Rn(h){Et[h]&&Et[h].forEach(function(r){r()}),Ct[h]&&(Ct[h].terminate(),delete Ct[h])}v(Rn,"terminateWorker");function Kt(h){var r=h.toString();return!/^function/.test(r)&&/^\w+\s*\(/.test(r)&&(r="function "+r),r}v(Kt,"stringifyFunction");function _a(h){var r=Ct[h];if(!r){var c=Kt(ba);r=Ct[h]=new Worker(URL.createObjectURL(new Blob(["/** Worker Module Bootstrap: "+h.replace(/\*/g,"")+" **/\n\n;("+c+")()"],{type:"application/javascript"}))),r.onmessage=function(f){var t=f.data,e=t.messageId,a=Dr[e];if(!a)throw new Error("WorkerModule response with empty or unknown messageId");delete Dr[e],a(t)}}return r}v(_a,"getWorker");function Bn(h,r,c){return new Promise(function(f,t){var e=++ka;Dr[e]=function(a){a.success?f(a.result):t(new Error("Error in worker "+r+" call: "+a.error))},_a(h).postMessage({messageId:e,action:r,data:c})})}v(Bn,"callWorker");ze();function Cr(){var h=function(r){function c(I,L,p,k,M,C,_,N){var B=1-_;N.x=B*B*I+2*B*_*p+_*_*M,N.y=B*B*L+2*B*_*k+_*_*C}v(c,"pointOnQuadraticBezier");function f(I,L,p,k,M,C,_,N,B,z){var J=1-B;z.x=J*J*J*I+3*J*J*B*p+3*J*B*B*M+B*B*B*_,z.y=J*J*J*L+3*J*J*B*k+3*J*B*B*C+B*B*B*N}v(f,"pointOnCubicBezier");function t(I,L){for(var p=/([MLQCZ])([^MLQCZ]*)/g,k,M,C,_,N;k=p.exec(I);){var B=k[2].replace(/^\s*|\s*$/g,"").split(/[,\s]+/).map(function(z){return parseFloat(z)});switch(k[1]){case"M":_=M=B[0],N=C=B[1];break;case"L":(B[0]!==_||B[1]!==N)&&L("L",_,N,_=B[0],N=B[1]);break;case"Q":{L("Q",_,N,_=B[2],N=B[3],B[0],B[1]);break}case"C":{L("C",_,N,_=B[4],N=B[5],B[0],B[1],B[2],B[3]);break}case"Z":(_!==M||N!==C)&&L("L",_,N,M,C);break}}}v(t,"forEachPathCommand");function e(I,L,p){p===void 0&&(p=16);var k={x:0,y:0};t(I,function(M,C,_,N,B,z,J,ee,H){switch(M){case"L":L(C,_,N,B);break;case"Q":{for(var V=C,ge=_,ce=1;ce<p;ce++)c(C,_,z,J,N,B,ce/(p-1),k),L(V,ge,k.x,k.y),V=k.x,ge=k.y;break}case"C":{for(var q=C,te=_,le=1;le<p;le++)f(C,_,z,J,ee,H,N,B,le/(p-1),k),L(q,te,k.x,k.y),q=k.x,te=k.y;break}}})}v(e,"pathToLineSegments");var a="precision highp float;attribute vec2 aUV;varying vec2 vUV;void main(){vUV=aUV;gl_Position=vec4(mix(vec2(-1.0),vec2(1.0),aUV),0.0,1.0);}",i="precision highp float;uniform sampler2D tex;varying vec2 vUV;void main(){gl_FragColor=texture2D(tex,vUV);}",n=new WeakMap,o={premultipliedAlpha:!1,preserveDrawingBuffer:!0,antialias:!1,depth:!1};function s(I,L){var p=I.getContext?I.getContext("webgl",o):I,k=n.get(p);if(!k){let J=function(q){var te=C[q];if(!te&&(te=C[q]=p.getExtension(q),!te))throw new Error(q+" not supported");return te},ee=function(q,te){var le=p.createShader(te);return p.shaderSource(le,q),p.compileShader(le),le},H=function(q,te,le,X){if(!_[q]){var re={},$={},G=p.createProgram();p.attachShader(G,ee(te,p.VERTEX_SHADER)),p.attachShader(G,ee(le,p.FRAGMENT_SHADER)),p.linkProgram(G),_[q]={program:G,transaction:v(function(Q){p.useProgram(G),Q({setUniform:v(function(K,xe){for(var ae=[],ie=arguments.length-2;ie-- >0;)ae[ie]=arguments[ie+2];var ue=$[xe]||($[xe]=p.getUniformLocation(G,xe));p["uniform"+K].apply(p,[ue].concat(ae))},"setUniform"),setAttribute:v(function(K,xe,ae,ie,ue){var ve=re[K];ve||(ve=re[K]={buf:p.createBuffer(),loc:p.getAttribLocation(G,K),data:null}),p.bindBuffer(p.ARRAY_BUFFER,ve.buf),p.vertexAttribPointer(ve.loc,xe,p.FLOAT,!1,0,0),p.enableVertexAttribArray(ve.loc),M?p.vertexAttribDivisor(ve.loc,ie):J("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(ve.loc,ie),ue!==ve.data&&(p.bufferData(p.ARRAY_BUFFER,ue,ae),ve.data=ue)},"setAttribute")})},"transaction")}}_[q].transaction(X)},V=function(q,te){B++;try{p.activeTexture(p.TEXTURE0+B);var le=N[q];le||(le=N[q]=p.createTexture(),p.bindTexture(p.TEXTURE_2D,le),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_MIN_FILTER,p.NEAREST),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_MAG_FILTER,p.NEAREST)),p.bindTexture(p.TEXTURE_2D,le),te(le,B)}finally{B--}},ge=function(q,te,le){var X=p.createFramebuffer();z.push(X),p.bindFramebuffer(p.FRAMEBUFFER,X),p.activeTexture(p.TEXTURE0+te),p.bindTexture(p.TEXTURE_2D,q),p.framebufferTexture2D(p.FRAMEBUFFER,p.COLOR_ATTACHMENT0,p.TEXTURE_2D,q,0);try{le(X)}finally{p.deleteFramebuffer(X),p.bindFramebuffer(p.FRAMEBUFFER,z[--z.length-1]||null)}},ce=function(){C={},_={},N={},B=-1,z.length=0};v(J,"getExtension"),v(ee,"compileShader"),v(H,"withProgram"),v(V,"withTexture"),v(ge,"withTextureFramebuffer"),v(ce,"handleContextLoss");var M=typeof WebGL2RenderingContext<"u"&&p instanceof WebGL2RenderingContext,C={},_={},N={},B=-1,z=[];p.canvas.addEventListener("webglcontextlost",function(q){ce(),q.preventDefault()},!1),n.set(p,k={gl:p,isWebGL2:M,getExtension:J,withProgram:H,withTexture:V,withTextureFramebuffer:ge,handleContextLoss:ce})}L(k)}v(s,"withWebGLContext");function l(I,L,p,k,M,C,_,N){_===void 0&&(_=15),N===void 0&&(N=null),s(I,function(B){var z=B.gl,J=B.withProgram,ee=B.withTexture;ee("copy",function(H,V){z.texImage2D(z.TEXTURE_2D,0,z.RGBA,M,C,0,z.RGBA,z.UNSIGNED_BYTE,L),J("copy",a,i,function(ge){var ce=ge.setUniform,q=ge.setAttribute;q("aUV",2,z.STATIC_DRAW,0,new Float32Array([0,0,2,0,0,2])),ce("1i","image",V),z.bindFramebuffer(z.FRAMEBUFFER,N||null),z.disable(z.BLEND),z.colorMask(_&8,_&4,_&2,_&1),z.viewport(p,k,M,C),z.scissor(p,k,M,C),z.drawArrays(z.TRIANGLES,0,3)})})})}v(l,"renderImageData");function u(I,L,p){var k=I.width,M=I.height;s(I,function(C){var _=C.gl,N=new Uint8Array(k*M*4);_.readPixels(0,0,k,M,_.RGBA,_.UNSIGNED_BYTE,N),I.width=L,I.height=p,l(_,N,0,0,k,M)})}v(u,"resizeWebGLCanvasWithoutClearing");var d=Object.freeze({__proto__:null,withWebGLContext:s,renderImageData:l,resizeWebGLCanvasWithoutClearing:u});function g(I,L,p,k,M,C){C===void 0&&(C=1);var _=new Uint8Array(I*L),N=k[2]-k[0],B=k[3]-k[1],z=[];e(p,function(q,te,le,X){z.push({x1:q,y1:te,x2:le,y2:X,minX:Math.min(q,le),minY:Math.min(te,X),maxX:Math.max(q,le),maxY:Math.max(te,X)})}),z.sort(function(q,te){return q.maxX-te.maxX});for(var J=0;J<I;J++)for(var ee=0;ee<L;ee++){var H=ge(k[0]+N*(J+.5)/I,k[1]+B*(ee+.5)/L),V=Math.pow(1-Math.abs(H)/M,C)/2;H<0&&(V=1-V),V=Math.max(0,Math.min(255,Math.round(V*255))),_[ee*I+J]=V}return _;function ge(q,te){for(var le=1/0,X=1/0,re=z.length;re--;){var $=z[re];if($.maxX+X<=q)break;if(q+X>$.minX&&te-X<$.maxY&&te+X>$.minY){var G=E(q,te,$.x1,$.y1,$.x2,$.y2);G<le&&(le=G,X=Math.sqrt(le))}}return ce(q,te)&&(X=-X),X}function ce(q,te){for(var le=0,X=z.length;X--;){var re=z[X];if(re.maxX<=q)break;var $=re.y1>te!=re.y2>te&&q<(re.x2-re.x1)*(te-re.y1)/(re.y2-re.y1)+re.x1;$&&(le+=re.y1<re.y2?1:-1)}return le!==0}}v(g,"generate$2");function m(I,L,p,k,M,C,_,N,B,z){C===void 0&&(C=1),N===void 0&&(N=0),B===void 0&&(B=0),z===void 0&&(z=0),y(I,L,p,k,M,C,_,null,N,B,z)}v(m,"generateIntoCanvas$2");function y(I,L,p,k,M,C,_,N,B,z,J){C===void 0&&(C=1),B===void 0&&(B=0),z===void 0&&(z=0),J===void 0&&(J=0);for(var ee=g(I,L,p,k,M,C),H=new Uint8Array(ee.length*4),V=0;V<ee.length;V++)H[V*4+J]=ee[V];l(_,H,B,z,I,L,1<<3-J,N)}v(y,"generateIntoFramebuffer$1");function E(I,L,p,k,M,C){var _=M-p,N=C-k,B=_*_+N*N,z=B?Math.max(0,Math.min(1,((I-p)*_+(L-k)*N)/B)):0,J=I-(p+z*_),ee=L-(k+z*N);return J*J+ee*ee}v(E,"absSquareDistanceToLineSegment");var S=Object.freeze({__proto__:null,generate:g,generateIntoCanvas:m,generateIntoFramebuffer:y}),U="precision highp float;uniform vec4 uGlyphBounds;attribute vec2 aUV;attribute vec4 aLineSegment;varying vec4 vLineSegment;varying vec2 vGlyphXY;void main(){vLineSegment=aLineSegment;vGlyphXY=mix(uGlyphBounds.xy,uGlyphBounds.zw,aUV);gl_Position=vec4(mix(vec2(-1.0),vec2(1.0),aUV),0.0,1.0);}",T="precision highp float;uniform vec4 uGlyphBounds;uniform float uMaxDistance;uniform float uExponent;varying vec4 vLineSegment;varying vec2 vGlyphXY;float absDistToSegment(vec2 point,vec2 lineA,vec2 lineB){vec2 lineDir=lineB-lineA;float lenSq=dot(lineDir,lineDir);float t=lenSq==0.0 ? 0.0 : clamp(dot(point-lineA,lineDir)/lenSq,0.0,1.0);vec2 linePt=lineA+t*lineDir;return distance(point,linePt);}void main(){vec4 seg=vLineSegment;vec2 p=vGlyphXY;float dist=absDistToSegment(p,seg.xy,seg.zw);float val=pow(1.0-clamp(dist/uMaxDistance,0.0,1.0),uExponent)*0.5;bool crossing=(seg.y>p.y!=seg.w>p.y)&&(p.x<(seg.z-seg.x)*(p.y-seg.y)/(seg.w-seg.y)+seg.x);bool crossingUp=crossing&&vLineSegment.y<vLineSegment.w;gl_FragColor=vec4(crossingUp ? 1.0/255.0 : 0.0,crossing&&!crossingUp ? 1.0/255.0 : 0.0,0.0,val);}",w="precision highp float;uniform sampler2D tex;varying vec2 vUV;void main(){vec4 color=texture2D(tex,vUV);bool inside=color.r!=color.g;float val=inside ? 1.0-color.a : color.a;gl_FragColor=vec4(val);}",D=new Float32Array([0,0,2,0,0,2]),x=null,A=!1,W={},O=new WeakMap;function Y(I){if(!A&&!j(I))throw new Error("WebGL generation not supported")}v(Y,"validateSupport");function b(I,L,p,k,M,C,_){if(C===void 0&&(C=1),_===void 0&&(_=null),!_&&(_=x,!_)){var N=typeof OffscreenCanvas=="function"?new OffscreenCanvas(1,1):typeof document<"u"?document.createElement("canvas"):null;if(!N)throw new Error("OffscreenCanvas or DOM canvas not supported");_=x=N.getContext("webgl",{depth:!1})}Y(_);var B=new Uint8Array(I*L*4);s(_,function(H){var V=H.gl,ge=H.withTexture,ce=H.withTextureFramebuffer;ge("readable",function(q,te){V.texImage2D(V.TEXTURE_2D,0,V.RGBA,I,L,0,V.RGBA,V.UNSIGNED_BYTE,null),ce(q,te,function(le){F(I,L,p,k,M,C,V,le,0,0,0),V.readPixels(0,0,I,L,V.RGBA,V.UNSIGNED_BYTE,B)})})});for(var z=new Uint8Array(I*L),J=0,ee=0;J<B.length;J+=4)z[ee++]=B[J];return z}v(b,"generate$1");function R(I,L,p,k,M,C,_,N,B,z){C===void 0&&(C=1),N===void 0&&(N=0),B===void 0&&(B=0),z===void 0&&(z=0),F(I,L,p,k,M,C,_,null,N,B,z)}v(R,"generateIntoCanvas$1");function F(I,L,p,k,M,C,_,N,B,z,J){C===void 0&&(C=1),B===void 0&&(B=0),z===void 0&&(z=0),J===void 0&&(J=0),Y(_);var ee=[];e(p,function(H,V,ge,ce){ee.push(H,V,ge,ce)}),ee=new Float32Array(ee),s(_,function(H){var V=H.gl,ge=H.isWebGL2,ce=H.getExtension,q=H.withProgram,te=H.withTexture,le=H.withTextureFramebuffer,X=H.handleContextLoss;if(te("rawDistances",function(re,$){(I!==re._lastWidth||L!==re._lastHeight)&&V.texImage2D(V.TEXTURE_2D,0,V.RGBA,re._lastWidth=I,re._lastHeight=L,0,V.RGBA,V.UNSIGNED_BYTE,null),q("main",U,T,function(G){var de=G.setAttribute,Q=G.setUniform,oe=!ge&&ce("ANGLE_instanced_arrays"),K=!ge&&ce("EXT_blend_minmax");de("aUV",2,V.STATIC_DRAW,0,D),de("aLineSegment",4,V.DYNAMIC_DRAW,1,ee),Q.apply(void 0,["4f","uGlyphBounds"].concat(k)),Q("1f","uMaxDistance",M),Q("1f","uExponent",C),le(re,$,function(xe){V.enable(V.BLEND),V.colorMask(!0,!0,!0,!0),V.viewport(0,0,I,L),V.scissor(0,0,I,L),V.blendFunc(V.ONE,V.ONE),V.blendEquationSeparate(V.FUNC_ADD,ge?V.MAX:K.MAX_EXT),V.clear(V.COLOR_BUFFER_BIT),ge?V.drawArraysInstanced(V.TRIANGLES,0,3,ee.length/4):oe.drawArraysInstancedANGLE(V.TRIANGLES,0,3,ee.length/4)})}),q("post",a,w,function(G){G.setAttribute("aUV",2,V.STATIC_DRAW,0,D),G.setUniform("1i","tex",$),V.bindFramebuffer(V.FRAMEBUFFER,N),V.disable(V.BLEND),V.colorMask(J===0,J===1,J===2,J===3),V.viewport(B,z,I,L),V.scissor(B,z,I,L),V.drawArrays(V.TRIANGLES,0,3)})}),V.isContextLost())throw X(),new Error("webgl context lost")})}v(F,"generateIntoFramebuffer");function j(I){var L=!I||I===x?W:I.canvas||I,p=O.get(L);if(p===void 0){A=!0;var k=null;try{var M=[97,106,97,61,99,137,118,80,80,118,137,99,61,97,106,97],C=b(4,4,"M8,8L16,8L24,24L16,24Z",[0,0,32,32],24,1,I);p=C&&M.length===C.length&&C.every(function(_,N){return _===M[N]}),p||(k="bad trial run results",console.info(M,C))}catch(_){p=!1,k=_.message}k&&console.warn("WebGL SDF generation not supported:",k),A=!1,O.set(L,p)}return p}v(j,"isSupported");var P=Object.freeze({__proto__:null,generate:b,generateIntoCanvas:R,generateIntoFramebuffer:F,isSupported:j});function Z(I,L,p,k,M,C){M===void 0&&(M=Math.max(k[2]-k[0],k[3]-k[1])/2),C===void 0&&(C=1);try{return b.apply(P,arguments)}catch(_){return console.info("WebGL SDF generation failed, falling back to JS",_),g.apply(S,arguments)}}v(Z,"generate");function ne(I,L,p,k,M,C,_,N,B,z){M===void 0&&(M=Math.max(k[2]-k[0],k[3]-k[1])/2),C===void 0&&(C=1),N===void 0&&(N=0),B===void 0&&(B=0),z===void 0&&(z=0);try{return R.apply(P,arguments)}catch(J){return console.info("WebGL SDF generation failed, falling back to JS",J),m.apply(S,arguments)}}return v(ne,"generateIntoCanvas"),r.forEachPathCommand=t,r.generate=Z,r.generateIntoCanvas=ne,r.javascript=S,r.pathToLineSegments=e,r.webgl=P,r.webglUtils=d,Object.defineProperty(r,"__esModule",{value:!0}),r}({});return h}v(Cr,"SDFGenerator");ze();function Ua(){var h=function(r){var c={R:"13k,1a,2,3,3,2+1j,ch+16,a+1,5+2,2+n,5,a,4,6+16,4+3,h+1b,4mo,179q,2+9,2+11,2i9+7y,2+68,4,3+4,5+13,4+3,2+4k,3+29,8+cf,1t+7z,w+17,3+3m,1t+3z,16o1+5r,8+30,8+mc,29+1r,29+4v,75+73",EN:"1c+9,3d+1,6,187+9,513,4+5,7+9,sf+j,175h+9,qw+q,161f+1d,4xt+a,25i+9",ES:"17,2,6dp+1,f+1,av,16vr,mx+1,4o,2",ET:"z+2,3h+3,b+1,ym,3e+1,2o,p4+1,8,6u,7c,g6,1wc,1n9+4,30+1b,2n,6d,qhx+1,h0m,a+1,49+2,63+1,4+1,6bb+3,12jj",AN:"16o+5,2j+9,2+1,35,ed,1ff2+9,87+u",CS:"18,2+1,b,2u,12k,55v,l,17v0,2,3,53,2+1,b",B:"a,3,f+2,2v,690",S:"9,2,k",WS:"c,k,4f4,1vk+a,u,1j,335",ON:"x+1,4+4,h+5,r+5,r+3,z,5+3,2+1,2+1,5,2+2,3+4,o,w,ci+1,8+d,3+d,6+8,2+g,39+1,9,6+1,2,33,b8,3+1,3c+1,7+1,5r,b,7h+3,sa+5,2,3i+6,jg+3,ur+9,2v,ij+1,9g+9,7+a,8m,4+1,49+x,14u,2+2,c+2,e+2,e+2,e+1,i+n,e+e,2+p,u+2,e+2,36+1,2+3,2+1,b,2+2,6+5,2,2,2,h+1,5+4,6+3,3+f,16+2,5+3l,3+81,1y+p,2+40,q+a,m+13,2r+ch,2+9e,75+hf,3+v,2+2w,6e+5,f+6,75+2a,1a+p,2+2g,d+5x,r+b,6+3,4+o,g,6+1,6+2,2k+1,4,2j,5h+z,1m+1,1e+f,t+2,1f+e,d+3,4o+3,2s+1,w,535+1r,h3l+1i,93+2,2s,b+1,3l+x,2v,4g+3,21+3,kz+1,g5v+1,5a,j+9,n+v,2,3,2+8,2+1,3+2,2,3,46+1,4+4,h+5,r+5,r+a,3h+2,4+6,b+4,78,1r+24,4+c,4,1hb,ey+6,103+j,16j+c,1ux+7,5+g,fsh,jdq+1t,4,57+2e,p1,1m,1m,1m,1m,4kt+1,7j+17,5+2r,d+e,3+e,2+e,2+10,m+4,w,1n+5,1q,4z+5,4b+rb,9+c,4+c,4+37,d+2g,8+b,l+b,5+1j,9+9,7+13,9+t,3+1,27+3c,2+29,2+3q,d+d,3+4,4+2,6+6,a+o,8+6,a+2,e+6,16+42,2+1i",BN:"0+8,6+d,2s+5,2+p,e,4m9,1kt+2,2b+5,5+5,17q9+v,7k,6p+8,6+1,119d+3,440+7,96s+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+75,6p+2rz,1ben+1,1ekf+1,1ekf+1",NSM:"lc+33,7o+6,7c+18,2,2+1,2+1,2,21+a,1d+k,h,2u+6,3+5,3+1,2+3,10,v+q,2k+a,1n+8,a,p+3,2+8,2+2,2+4,18+2,3c+e,2+v,1k,2,5+7,5,4+6,b+1,u,1n,5+3,9,l+1,r,3+1,1m,5+1,5+1,3+2,4,v+1,4,c+1,1m,5+4,2+1,5,l+1,n+5,2,1n,3,2+3,9,8+1,c+1,v,1q,d,1f,4,1m+2,6+2,2+3,8+1,c+1,u,1n,g+1,l+1,t+1,1m+1,5+3,9,l+1,u,21,8+2,2,2j,3+6,d+7,2r,3+8,c+5,23+1,s,2,2,1k+d,2+4,2+1,6+a,2+z,a,2v+3,2+5,2+1,3+1,q+1,5+2,h+3,e,3+1,7,g,jk+2,qb+2,u+2,u+1,v+1,1t+1,2+6,9,3+a,a,1a+2,3c+1,z,3b+2,5+1,a,7+2,64+1,3,1n,2+6,2,2,3+7,7+9,3,1d+g,1s+3,1d,2+4,2,6,15+8,d+1,x+3,3+1,2+2,1l,2+1,4,2+2,1n+7,3+1,49+2,2+c,2+6,5,7,4+1,5j+1l,2+4,k1+w,2db+2,3y,2p+v,ff+3,30+1,n9x+3,2+9,x+1,29+1,7l,4,5,q+1,6,48+1,r+h,e,13+7,q+a,1b+2,1d,3+3,3+1,14,1w+5,3+1,3+1,d,9,1c,1g,2+2,3+1,6+1,2,17+1,9,6n,3,5,fn5,ki+f,h+f,r2,6b,46+4,1af+2,2+1,6+3,15+2,5,4m+1,fy+3,as+1,4a+a,4x,1j+e,1l+2,1e+3,3+1,1y+2,11+4,2+7,1r,d+1,1h+8,b+3,3,2o+2,3,2+1,7,4h,4+7,m+1,1m+1,4,12+6,4+4,5g+7,3+2,2,o,2d+5,2,5+1,2+1,6n+3,7+1,2+1,s+1,2e+7,3,2+1,2z,2,3+5,2,2u+2,3+3,2+4,78+8,2+1,75+1,2,5,41+3,3+1,5,x+5,3+1,15+5,3+3,9,a+5,3+2,1b+c,2+1,bb+6,2+5,2d+l,3+6,2+1,2+1,3f+5,4,2+1,2+6,2,21+1,4,2,9o+1,f0c+4,1o+6,t5,1s+3,2a,f5l+1,43t+2,i+7,3+6,v+3,45+2,1j0+1i,5+1d,9,f,n+4,2+e,11t+6,2+g,3+6,2+1,2+4,7a+6,c6+3,15t+6,32+6,gzhy+6n",AL:"16w,3,2,e+1b,z+2,2+2s,g+1,8+1,b+m,2+t,s+2i,c+e,4h+f,1d+1e,1bwe+dp,3+3z,x+c,2+1,35+3y,2rm+z,5+7,b+5,dt+l,c+u,17nl+27,1t+27,4x+6n,3+d",LRO:"6ct",RLO:"6cu",LRE:"6cq",RLE:"6cr",PDF:"6cs",LRI:"6ee",RLI:"6ef",FSI:"6eg",PDI:"6eh"},f={},t={};f.L=1,t[1]="L",Object.keys(c).forEach(function(X,re){f[X]=1<<re+1,t[f[X]]=X}),Object.freeze(f);var e=f.LRI|f.RLI|f.FSI,a=f.L|f.R|f.AL,i=f.B|f.S|f.WS|f.ON|f.FSI|f.LRI|f.RLI|f.PDI,n=f.BN|f.RLE|f.LRE|f.RLO|f.LRO|f.PDF,o=f.S|f.WS|f.B|e|f.PDI|n,s=null;function l(){if(!s){s=new Map;var X=v(function($){if(c.hasOwnProperty($)){var G=0;c[$].split(",").forEach(function(de){var Q=de.split("+"),oe=Q[0],K=Q[1];oe=parseInt(oe,36),K=K?parseInt(K,36):0,s.set(G+=oe,f[$]);for(var xe=0;xe<K;xe++)s.set(++G,f[$])})}},"loop");for(var re in c)X(re)}}v(l,"parseData");function u(X){return l(),s.get(X.codePointAt(0))||f.L}v(u,"getBidiCharType");function d(X){return t[u(X)]}v(d,"getBidiCharTypeName");var g={pairs:"14>1,1e>2,u>2,2wt>1,1>1,1ge>1,1wp>1,1j>1,f>1,hm>1,1>1,u>1,u6>1,1>1,+5,28>1,w>1,1>1,+3,b8>1,1>1,+3,1>3,-1>-1,3>1,1>1,+2,1s>1,1>1,x>1,th>1,1>1,+2,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,4q>1,1e>2,u>2,2>1,+1",canonical:"6f1>-6dx,6dy>-6dx,6ec>-6ed,6ee>-6ed,6ww>2jj,-2ji>2jj,14r4>-1e7l,1e7m>-1e7l,1e7m>-1e5c,1e5d>-1e5b,1e5c>-14qx,14qy>-14qx,14vn>-1ecg,1ech>-1ecg,1edu>-1ecg,1eci>-1ecg,1eda>-1ecg,1eci>-1ecg,1eci>-168q,168r>-168q,168s>-14ye,14yf>-14ye"};function m(X,re){var $=36,G=0,de=new Map,Q=re&&new Map,oe;return X.split(",").forEach(v(function K(xe){if(xe.indexOf("+")!==-1)for(var ae=+xe;ae--;)K(oe);else{oe=xe;var ie=xe.split(">"),ue=ie[0],ve=ie[1];ue=String.fromCodePoint(G+=parseInt(ue,$)),ve=String.fromCodePoint(G+=parseInt(ve,$)),de.set(ue,ve),re&&Q.set(ve,ue)}},"visit")),{map:de,reverseMap:Q}}v(m,"parseCharacterMap");var y,E,S;function U(){if(!y){var X=m(g.pairs,!0),re=X.map,$=X.reverseMap;y=re,E=$,S=m(g.canonical,!1).map}}v(U,"parse$1");function T(X){return U(),y.get(X)||null}v(T,"openingToClosingBracket");function w(X){return U(),E.get(X)||null}v(w,"closingToOpeningBracket");function D(X){return U(),S.get(X)||null}v(D,"getCanonicalBracket");var x=f.L,A=f.R,W=f.EN,O=f.ES,Y=f.ET,b=f.AN,R=f.CS,F=f.B,j=f.S,P=f.ON,Z=f.BN,ne=f.NSM,I=f.AL,L=f.LRO,p=f.RLO,k=f.LRE,M=f.RLE,C=f.PDF,_=f.LRI,N=f.RLI,B=f.FSI,z=f.PDI;function J(X,re){for(var $=125,G=new Uint32Array(X.length),de=0;de<X.length;de++)G[de]=u(X[de]);var Q=new Map;function oe(Pe,je){var Ie=G[Pe];G[Pe]=je,Q.set(Ie,Q.get(Ie)-1),Ie&i&&Q.set(i,Q.get(i)-1),Q.set(je,(Q.get(je)||0)+1),je&i&&Q.set(i,(Q.get(i)||0)+1)}v(oe,"changeCharType");for(var K=new Uint8Array(X.length),xe=new Map,ae=[],ie=null,ue=0;ue<X.length;ue++)ie||ae.push(ie={start:ue,end:X.length-1,level:re==="rtl"?1:re==="ltr"?0:vn(ue,!1)}),G[ue]&F&&(ie.end=ue,ie=null);for(var ve=M|k|p|L|e|z|C|F,_e=v(function(Pe){return Pe+(Pe&1?1:2)},"nextEven"),De=v(function(Pe){return Pe+(Pe&1?2:1)},"nextOdd"),me=0;me<ae.length;me++){ie=ae[me];var ye=[{_level:ie.level,_override:0,_isolate:0}],fe=void 0,Se=0,we=0,Ge=0;Q.clear();for(var Ue=ie.start;Ue<=ie.end;Ue++){var he=G[Ue];if(fe=ye[ye.length-1],Q.set(he,(Q.get(he)||0)+1),he&i&&Q.set(i,(Q.get(i)||0)+1),he&ve)if(he&(M|k)){K[Ue]=fe._level;var Te=(he===M?De:_e)(fe._level);Te<=$&&!Se&&!we?ye.push({_level:Te,_override:0,_isolate:0}):Se||we++}else if(he&(p|L)){K[Ue]=fe._level;var qe=(he===p?De:_e)(fe._level);qe<=$&&!Se&&!we?ye.push({_level:qe,_override:he&p?A:x,_isolate:0}):Se||we++}else if(he&e){he&B&&(he=vn(Ue+1,!0)===1?N:_),K[Ue]=fe._level,fe._override&&oe(Ue,fe._override);var ke=(he===N?De:_e)(fe._level);ke<=$&&Se===0&&we===0?(Ge++,ye.push({_level:ke,_override:0,_isolate:1,_isolInitIndex:Ue})):Se++}else if(he&z){if(Se>0)Se--;else if(Ge>0){for(we=0;!ye[ye.length-1]._isolate;)ye.pop();var be=ye[ye.length-1]._isolInitIndex;be!=null&&(xe.set(be,Ue),xe.set(Ue,be)),ye.pop(),Ge--}fe=ye[ye.length-1],K[Ue]=fe._level,fe._override&&oe(Ue,fe._override)}else he&C?(Se===0&&(we>0?we--:!fe._isolate&&ye.length>1&&(ye.pop(),fe=ye[ye.length-1])),K[Ue]=fe._level):he&F&&(K[Ue]=ie.level);else K[Ue]=fe._level,fe._override&&he!==Z&&oe(Ue,fe._override)}for(var Ce=[],Fe=null,pe=ie.start;pe<=ie.end;pe++){var Me=G[pe];if(!(Me&n)){var Re=K[pe],Oe=Me&e,Ee=Me===z;Fe&&Re===Fe._level?(Fe._end=pe,Fe._endsWithIsolInit=Oe):Ce.push(Fe={_start:pe,_end:pe,_level:Re,_startsWithPDI:Ee,_endsWithIsolInit:Oe})}}for(var Ne=[],$e=0;$e<Ce.length;$e++){var Je=Ce[$e];if(!Je._startsWithPDI||Je._startsWithPDI&&!xe.has(Je._start)){for(var et=[Fe=Je],at=void 0;Fe&&Fe._endsWithIsolInit&&(at=xe.get(Fe._end))!=null;)for(var Ke=$e+1;Ke<Ce.length;Ke++)if(Ce[Ke]._start===at){et.push(Fe=Ce[Ke]);break}for(var Le=[],ot=0;ot<et.length;ot++)for(var Yr=et[ot],nr=Yr._start;nr<=Yr._end;nr++)Le.push(nr);for(var da=K[Le[0]],Jr=ie.level,Rt=Le[0]-1;Rt>=0;Rt--)if(!(G[Rt]&n)){Jr=K[Rt];break}var ar=Le[Le.length-1],va=K[ar],Kr=ie.level;if(!(G[ar]&e)){for(var Lt=ar+1;Lt<=ie.end;Lt++)if(!(G[Lt]&n)){Kr=K[Lt];break}}Ne.push({_seqIndices:Le,_sosType:Math.max(Jr,da)%2?A:x,_eosType:Math.max(Kr,va)%2?A:x})}}for(var or=0;or<Ne.length;or++){var ir=Ne[or],se=ir._seqIndices,yt=ir._sosType,pa=ir._eosType,ut=K[se[0]]&1?A:x;if(Q.get(ne))for(var Gt=0;Gt<se.length;Gt++){var Zr=se[Gt];if(G[Zr]&ne){for(var sr=yt,Pt=Gt-1;Pt>=0;Pt--)if(!(G[se[Pt]]&n)){sr=G[se[Pt]];break}oe(Zr,sr&(e|z)?P:sr)}}if(Q.get(W))for(var It=0;It<se.length;It++){var Qr=se[It];if(G[Qr]&W)for(var zt=It-1;zt>=-1;zt--){var qr=zt===-1?yt:G[se[zt]];if(qr&a){qr===I&&oe(Qr,b);break}}}if(Q.get(I))for(var lr=0;lr<se.length;lr++){var $r=se[lr];G[$r]&I&&oe($r,A)}if(Q.get(O)||Q.get(R))for(var bt=1;bt<se.length-1;bt++){var fr=se[bt];if(G[fr]&(O|R)){for(var ct=0,ur=0,cr=bt-1;cr>=0&&(ct=G[se[cr]],!!(ct&n));cr--);for(var hr=bt+1;hr<se.length&&(ur=G[se[hr]],!!(ur&n));hr++);ct===ur&&(G[fr]===O?ct===W:ct&(W|b))&&oe(fr,ct)}}if(Q.get(W))for(var Xe=0;Xe<se.length;Xe++){var ga=se[Xe];if(G[ga]&W){for(var Wt=Xe-1;Wt>=0&&G[se[Wt]]&(Y|n);Wt--)oe(se[Wt],W);for(Xe++;Xe<se.length&&G[se[Xe]]&(Y|n|W);Xe++)G[se[Xe]]!==W&&oe(se[Xe],W)}}if(Q.get(Y)||Q.get(O)||Q.get(R))for(var xt=0;xt<se.length;xt++){var en=se[xt];if(G[en]&(Y|O|R)){oe(en,P);for(var Nt=xt-1;Nt>=0&&G[se[Nt]]&n;Nt--)oe(se[Nt],P);for(var Vt=xt+1;Vt<se.length&&G[se[Vt]]&n;Vt++)oe(se[Vt],P)}}if(Q.get(W))for(var dr=0,tn=yt;dr<se.length;dr++){var rn=se[dr],vr=G[rn];vr&W?tn===x&&oe(rn,x):vr&a&&(tn=vr)}if(Q.get(i)){var Tt=A|W|b,nn=Tt|x,jt=[];{for(var ht=[],dt=0;dt<se.length;dt++)if(G[se[dt]]&i){var kt=X[se[dt]],an=void 0;if(T(kt)!==null)if(ht.length<63)ht.push({char:kt,seqIndex:dt});else break;else if((an=w(kt))!==null)for(var _t=ht.length-1;_t>=0;_t--){var pr=ht[_t].char;if(pr===an||pr===w(D(kt))||T(D(pr))===kt){jt.push([ht[_t].seqIndex,dt]),ht.length=_t;break}}}jt.sort(function(Pe,je){return Pe[0]-je[0]})}for(var gr=0;gr<jt.length;gr++){for(var on=jt[gr],Xt=on[0],mr=on[1],sn=!1,Ve=0,yr=Xt+1;yr<mr;yr++){var ln=se[yr];if(G[ln]&nn){sn=!0;var fn=G[ln]&Tt?A:x;if(fn===ut){Ve=fn;break}}}if(sn&&!Ve){Ve=yt;for(var br=Xt-1;br>=0;br--){var un=se[br];if(G[un]&nn){var cn=G[un]&Tt?A:x;cn!==ut?Ve=cn:Ve=ut;break}}}if(Ve){if(G[se[Xt]]=G[se[mr]]=Ve,Ve!==ut){for(var Ut=Xt+1;Ut<se.length;Ut++)if(!(G[se[Ut]]&n)){u(X[se[Ut]])&ne&&(G[se[Ut]]=Ve);break}}if(Ve!==ut){for(var St=mr+1;St<se.length;St++)if(!(G[se[St]]&n)){u(X[se[St]])&ne&&(G[se[St]]=Ve);break}}}}for(var tt=0;tt<se.length;tt++)if(G[se[tt]]&i){for(var hn=tt,xr=tt,Tr=yt,wt=tt-1;wt>=0;wt--)if(G[se[wt]]&n)hn=wt;else{Tr=G[se[wt]]&Tt?A:x;break}for(var dn=pa,Ft=tt+1;Ft<se.length;Ft++)if(G[se[Ft]]&(i|n))xr=Ft;else{dn=G[se[Ft]]&Tt?A:x;break}for(var kr=hn;kr<=xr;kr++)G[se[kr]]=Tr===dn?Tr:ut;tt=xr}}}for(var We=ie.start;We<=ie.end;We++){var ma=K[We],Ht=G[We];if(ma&1?Ht&(x|W|b)&&K[We]++:Ht&A?K[We]++:Ht&(b|W)&&(K[We]+=2),Ht&n&&(K[We]=We===0?ie.level:K[We-1]),We===ie.end||u(X[We])&(j|F))for(var Yt=We;Yt>=0&&u(X[Yt])&o;Yt--)K[Yt]=ie.level}}return{levels:K,paragraphs:ae};function vn(Pe,je){for(var Ie=Pe;Ie<X.length;Ie++){var rt=G[Ie];if(rt&(A|I))return 1;if(rt&(F|x)||je&&rt===z)return 0;if(rt&e){var pn=ya(Ie);Ie=pn===-1?X.length:pn}}return 0}function ya(Pe){for(var je=1,Ie=Pe+1;Ie<X.length;Ie++){var rt=G[Ie];if(rt&F)break;if(rt&z){if(--je===0)return Ie}else rt&e&&je++}return-1}}v(J,"getEmbeddingLevels");var ee="14>1,j>2,t>2,u>2,1a>g,2v3>1,1>1,1ge>1,1wd>1,b>1,1j>1,f>1,ai>3,-2>3,+1,8>1k0,-1jq>1y7,-1y6>1hf,-1he>1h6,-1h5>1ha,-1h8>1qi,-1pu>1,6>3u,-3s>7,6>1,1>1,f>1,1>1,+2,3>1,1>1,+13,4>1,1>1,6>1eo,-1ee>1,3>1mg,-1me>1mk,-1mj>1mi,-1mg>1mi,-1md>1,1>1,+2,1>10k,-103>1,1>1,4>1,5>1,1>1,+10,3>1,1>8,-7>8,+1,-6>7,+1,a>1,1>1,u>1,u6>1,1>1,+5,26>1,1>1,2>1,2>2,8>1,7>1,4>1,1>1,+5,b8>1,1>1,+3,1>3,-2>1,2>1,1>1,+2,c>1,3>1,1>1,+2,h>1,3>1,a>1,1>1,2>1,3>1,1>1,d>1,f>1,3>1,1a>1,1>1,6>1,7>1,13>1,k>1,1>1,+19,4>1,1>1,+2,2>1,1>1,+18,m>1,a>1,1>1,lk>1,1>1,4>1,2>1,f>1,3>1,1>1,+3,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,6>1,4j>1,j>2,t>2,u>2,2>1,+1",H;function V(){if(!H){var X=m(ee,!0),re=X.map,$=X.reverseMap;$.forEach(function(G,de){re.set(de,G)}),H=re}}v(V,"parse");function ge(X){return V(),H.get(X)||null}v(ge,"getMirroredCharacter");function ce(X,re,$,G){var de=X.length;$=Math.max(0,$==null?0:+$),G=Math.min(de-1,G==null?de-1:+G);for(var Q=new Map,oe=$;oe<=G;oe++)if(re[oe]&1){var K=ge(X[oe]);K!==null&&Q.set(oe,K)}return Q}v(ce,"getMirroredCharactersMap");function q(X,re,$,G){var de=X.length;$=Math.max(0,$==null?0:+$),G=Math.min(de-1,G==null?de-1:+G);var Q=[];return re.paragraphs.forEach(function(oe){var K=Math.max($,oe.start),xe=Math.min(G,oe.end);if(K<xe){for(var ae=re.levels.slice(K,xe+1),ie=xe;ie>=K&&u(X[ie])&o;ie--)ae[ie]=oe.level;for(var ue=oe.level,ve=1/0,_e=0;_e<ae.length;_e++){var De=ae[_e];De>ue&&(ue=De),De<ve&&(ve=De|1)}for(var me=ue;me>=ve;me--)for(var ye=0;ye<ae.length;ye++)if(ae[ye]>=me){for(var fe=ye;ye+1<ae.length&&ae[ye+1]>=me;)ye++;ye>fe&&Q.push([fe+K,ye+K])}}}),Q}v(q,"getReorderSegments");function te(X,re,$,G){var de=le(X,re,$,G),Q=[].concat(X);return de.forEach(function(oe,K){Q[K]=(re.levels[oe]&1?ge(X[oe]):null)||X[oe]}),Q.join("")}v(te,"getReorderedString");function le(X,re,$,G){for(var de=q(X,re,$,G),Q=[],oe=0;oe<X.length;oe++)Q[oe]=oe;return de.forEach(function(K){for(var xe=K[0],ae=K[1],ie=Q.slice(xe,ae+1),ue=ie.length;ue--;)Q[ae-ue]=ie[ue]}),Q}return v(le,"getReorderedIndices"),r.closingToOpeningBracket=w,r.getBidiCharType=u,r.getBidiCharTypeName=d,r.getCanonicalBracket=D,r.getEmbeddingLevels=J,r.getMirroredCharacter=ge,r.getMirroredCharactersMap=ce,r.getReorderSegments=q,r.getReorderedIndices=le,r.getReorderedString=te,r.openingToClosingBracket=T,Object.defineProperty(r,"__esModule",{value:!0}),r}({});return h}v(Ua,"bidiFactory");var Ln=Ua;ze();var Br=/\bvoid\s+main\s*\(\s*\)\s*{/g;function Er(h){let r=/^[ \t]*#include +<([\w\d./]+)>/gm;function c(f,t){let e=En[t];return e?Er(e):f}return v(c,"replace"),h.replace(r,c)}v(Er,"expandShaderIncludes");var Be=[];for(let h=0;h<256;h++)Be[h]=(h<16?"0":"")+h.toString(16);function Sa(){let h=Math.random()*4294967295|0,r=Math.random()*4294967295|0,c=Math.random()*4294967295|0,f=Math.random()*4294967295|0;return(Be[h&255]+Be[h>>8&255]+Be[h>>16&255]+Be[h>>24&255]+"-"+Be[r&255]+Be[r>>8&255]+"-"+Be[r>>16&15|64]+Be[r>>24&255]+"-"+Be[c&63|128]+Be[c>>8&255]+"-"+Be[c>>16&255]+Be[c>>24&255]+Be[f&255]+Be[f>>8&255]+Be[f>>16&255]+Be[f>>24&255]).toUpperCase()}v(Sa,"generateUUID");var lt=Object.assign||function(){let h=arguments[0];for(let r=1,c=arguments.length;r<c;r++){let f=arguments[r];if(f)for(let t in f)Object.prototype.hasOwnProperty.call(f,t)&&(h[t]=f[t])}return h},wa=Date.now(),Gn=new WeakMap,Pn=new Map,Fa=1e10;function vt(h,r){let c=Ca(r),f=Gn.get(h);if(f||Gn.set(h,f=Object.create(null)),f[c])return new f[c];let t="_onBeforeCompile".concat(c),e=v(function(o,s){h.onBeforeCompile.call(this,o,s);let l=this.customProgramCacheKey()+"|"+o.vertexShader+"|"+o.fragmentShader,u=Pn[l];if(!u){let d=Ma(this,o,r,c);u=Pn[l]=d}o.vertexShader=u.vertexShader,o.fragmentShader=u.fragmentShader,lt(o.uniforms,this.uniforms),r.timeUniform&&(o.uniforms[r.timeUniform]={get value(){return Date.now()-wa}}),this[t]&&this[t](o)},"onBeforeCompile"),a=v(function(){return i(r.chained?h:h.clone())},"DerivedMaterial"),i=v(function(o){let s=Object.create(o,n);return Object.defineProperty(s,"baseMaterial",{value:h}),Object.defineProperty(s,"id",{value:Fa++}),s.uuid=Sa(),s.uniforms=lt({},o.uniforms,r.uniforms),s.defines=lt({},o.defines,r.defines),s.defines["TROIKA_DERIVED_MATERIAL_".concat(c)]="",s.extensions=lt({},o.extensions,r.extensions),s._listeners=void 0,s},"derive"),n={constructor:{value:a},isDerivedMaterial:{value:!0},type:{get:v(()=>h.type,"get"),set:v(o=>{h.type=o},"set")},isDerivedFrom:{writable:!0,configurable:!0,value:v(function(o){let s=this.baseMaterial;return o===s||s.isDerivedMaterial&&s.isDerivedFrom(o)||!1},"value")},customProgramCacheKey:{writable:!0,configurable:!0,value:v(function(){return h.customProgramCacheKey()+"|"+c},"value")},onBeforeCompile:{get(){return e},set(o){this[t]=o}},copy:{writable:!0,configurable:!0,value:v(function(o){return h.copy.call(this,o),!h.isShaderMaterial&&!h.isDerivedMaterial&&(lt(this.extensions,o.extensions),lt(this.defines,o.defines),lt(this.uniforms,wn.clone(o.uniforms))),this},"value")},clone:{writable:!0,configurable:!0,value:v(function(){let o=new h.constructor;return i(o).copy(this)},"value")},getDepthMaterial:{writable:!0,configurable:!0,value:v(function(){let o=this._depthMaterial;return o||(o=this._depthMaterial=vt(h.isDerivedMaterial?h.getDepthMaterial():new An({depthPacking:xn}),r),o.defines.IS_DEPTH_MATERIAL="",o.uniforms=this.uniforms),o},"value")},getDistanceMaterial:{writable:!0,configurable:!0,value:v(function(){let o=this._distanceMaterial;return o||(o=this._distanceMaterial=vt(h.isDerivedMaterial?h.getDistanceMaterial():new Dn,r),o.defines.IS_DISTANCE_MATERIAL="",o.uniforms=this.uniforms),o},"value")},dispose:{writable:!0,configurable:!0,value(){let{_depthMaterial:o,_distanceMaterial:s}=this;o&&o.dispose(),s&&s.dispose(),h.dispose.call(this)}}};return f[c]=a,new a}v(vt,"createDerivedMaterial");function Ma(h,{vertexShader:r,fragmentShader:c},f,t){let{vertexDefs:e,vertexMainIntro:a,vertexMainOutro:i,vertexTransform:n,fragmentDefs:o,fragmentMainIntro:s,fragmentMainOutro:l,fragmentColorTransform:u,customRewriter:d,timeUniform:g}=f;if(e=e||"",a=a||"",i=i||"",o=o||"",s=s||"",l=l||"",(n||d)&&(r=Er(r)),(u||d)&&(c=c.replace(/^[ \t]*#include <((?:tonemapping|encodings|colorspace|fog|premultiplied_alpha|dithering)_fragment)>/gm,"\n//!BEGIN_POST_CHUNK $1\n$&\n//!END_POST_CHUNK\n"),c=Er(c)),d){let m=d({vertexShader:r,fragmentShader:c});r=m.vertexShader,c=m.fragmentShader}if(u){let m=[];c=c.replace(/^\/\/!BEGIN_POST_CHUNK[^]+?^\/\/!END_POST_CHUNK/gm,y=>(m.push(y),"")),l="".concat(u,"\n").concat(m.join("\n"),"\n").concat(l)}if(g){let m="\nuniform float ".concat(g,";\n");e=m+e,o=m+o}return n&&(r="vec3 troika_position_".concat(t,";\nvec3 troika_normal_").concat(t,";\nvec2 troika_uv_").concat(t,";\n").concat(r,"\n"),e="".concat(e,"\nvoid troikaVertexTransform").concat(t,"(inout vec3 position, inout vec3 normal, inout vec2 uv) {\n ").concat(n,"\n}\n"),a="\ntroika_position_".concat(t," = vec3(position);\ntroika_normal_").concat(t," = vec3(normal);\ntroika_uv_").concat(t," = vec2(uv);\ntroikaVertexTransform").concat(t,"(troika_position_").concat(t,", troika_normal_").concat(t,", troika_uv_").concat(t,");\n").concat(a,"\n"),r=r.replace(/\b(position|normal|uv)\b/g,(m,y,E,S)=>/\battribute\s+vec[23]\s+$/.test(S.substr(0,E))?y:"troika_".concat(y,"_").concat(t)),h.map&&h.map.channel>0||(r=r.replace(/\bMAP_UV\b/g,"troika_uv_".concat(t)))),r=In(r,t,e,a,i),c=In(c,t,o,s,l),{vertexShader:r,fragmentShader:c}}v(Ma,"upgradeShaders");function In(h,r,c,f,t){return(f||t||c)&&(h=h.replace(Br,"\n".concat(c,"\nvoid troikaOrigMain").concat(r,"() {")),h+="\nvoid main() {\n ".concat(f,"\n troikaOrigMain").concat(r,"();\n ").concat(t,"\n}")),h}v(In,"injectIntoShaderCode");function Aa(h,r){return h==="uniforms"?void 0:typeof r=="function"?r.toString():r}v(Aa,"optionsJsonReplacer");var Da=0,zn=new Map;function Ca(h){let r=JSON.stringify(h,Aa),c=zn.get(r);return c==null&&zn.set(r,c=++Da),c}v(Ca,"getKeyForOptions");function Ea(){return typeof window>"u"&&(self.window=self),function(h){var r={parse:v(function(t){var e=r._bin,a=new Uint8Array(t);if(e.readASCII(a,0,4)=="ttcf"){var i=4;e.readUshort(a,i),i+=2,e.readUshort(a,i),i+=2;var n=e.readUint(a,i);i+=4;for(var o=[],s=0;s<n;s++){var l=e.readUint(a,i);i+=4,o.push(r._readFont(a,l))}return o}return[r._readFont(a,0)]},"parse"),_readFont:v(function(t,e){var a=r._bin,i=e;a.readFixed(t,e),e+=4;var n=a.readUshort(t,e);e+=2,a.readUshort(t,e),e+=2,a.readUshort(t,e),e+=2,a.readUshort(t,e),e+=2;for(var o=["cmap","head","hhea","maxp","hmtx","name","OS/2","post","loca","glyf","kern","CFF ","GDEF","GPOS","GSUB","SVG "],s={_data:t,_offset:i},l={},u=0;u<n;u++){var d=a.readASCII(t,e,4);e+=4,a.readUint(t,e),e+=4;var g=a.readUint(t,e);e+=4;var m=a.readUint(t,e);e+=4,l[d]={offset:g,length:m}}for(u=0;u<o.length;u++){var y=o[u];l[y]&&(s[y.trim()]=r[y.trim()].parse(t,l[y].offset,l[y].length,s))}return s},"_readFont"),_tabOffset:v(function(t,e,a){for(var i=r._bin,n=i.readUshort(t,a+4),o=a+12,s=0;s<n;s++){var l=i.readASCII(t,o,4);o+=4,i.readUint(t,o),o+=4;var u=i.readUint(t,o);if(o+=4,i.readUint(t,o),o+=4,l==e)return u}return 0},"_tabOffset")};r._bin={readFixed:v(function(t,e){return(t[e]<<8|t[e+1])+(t[e+2]<<8|t[e+3])/65540},"readFixed"),readF2dot14:v(function(t,e){return r._bin.readShort(t,e)/16384},"readF2dot14"),readInt:v(function(t,e){return r._bin._view(t).getInt32(e)},"readInt"),readInt8:v(function(t,e){return r._bin._view(t).getInt8(e)},"readInt8"),readShort:v(function(t,e){return r._bin._view(t).getInt16(e)},"readShort"),readUshort:v(function(t,e){return r._bin._view(t).getUint16(e)},"readUshort"),readUshorts:v(function(t,e,a){for(var i=[],n=0;n<a;n++)i.push(r._bin.readUshort(t,e+2*n));return i},"readUshorts"),readUint:v(function(t,e){return r._bin._view(t).getUint32(e)},"readUint"),readUint64:v(function(t,e){return 4294967296*r._bin.readUint(t,e)+r._bin.readUint(t,e+4)},"readUint64"),readASCII:v(function(t,e,a){for(var i="",n=0;n<a;n++)i+=String.fromCharCode(t[e+n]);return i},"readASCII"),readUnicode:v(function(t,e,a){for(var i="",n=0;n<a;n++){var o=t[e++]<<8|t[e++];i+=String.fromCharCode(o)}return i},"readUnicode"),_tdec:typeof window<"u"&&window.TextDecoder?new window.TextDecoder:null,readUTF8:v(function(t,e,a){var i=r._bin._tdec;return i&&e==0&&a==t.length?i.decode(t):r._bin.readASCII(t,e,a)},"readUTF8"),readBytes:v(function(t,e,a){for(var i=[],n=0;n<a;n++)i.push(t[e+n]);return i},"readBytes"),readASCIIArray:v(function(t,e,a){for(var i=[],n=0;n<a;n++)i.push(String.fromCharCode(t[e+n]));return i},"readASCIIArray"),_view:v(function(t){return t._dataView||(t._dataView=t.buffer?new DataView(t.buffer,t.byteOffset,t.byteLength):new DataView(new Uint8Array(t).buffer))},"_view")},r._lctf={},r._lctf.parse=function(t,e,a,i,n){var o=r._bin,s={},l=e;o.readFixed(t,e),e+=4;var u=o.readUshort(t,e);e+=2;var d=o.readUshort(t,e);e+=2;var g=o.readUshort(t,e);return e+=2,s.scriptList=r._lctf.readScriptList(t,l+u),s.featureList=r._lctf.readFeatureList(t,l+d),s.lookupList=r._lctf.readLookupList(t,l+g,n),s},r._lctf.readLookupList=function(t,e,a){var i=r._bin,n=e,o=[],s=i.readUshort(t,e);e+=2;for(var l=0;l<s;l++){var u=i.readUshort(t,e);e+=2;var d=r._lctf.readLookupTable(t,n+u,a);o.push(d)}return o},r._lctf.readLookupTable=function(t,e,a){var i=r._bin,n=e,o={tabs:[]};o.ltype=i.readUshort(t,e),e+=2,o.flag=i.readUshort(t,e),e+=2;var s=i.readUshort(t,e);e+=2;for(var l=o.ltype,u=0;u<s;u++){var d=i.readUshort(t,e);e+=2;var g=a(t,l,n+d,o);o.tabs.push(g)}return o},r._lctf.numOfOnes=function(t){for(var e=0,a=0;a<32;a++)(t>>>a&1)!=0&&e++;return e},r._lctf.readClassDef=function(t,e){var a=r._bin,i=[],n=a.readUshort(t,e);if(e+=2,n==1){var o=a.readUshort(t,e);e+=2;var s=a.readUshort(t,e);e+=2;for(var l=0;l<s;l++)i.push(o+l),i.push(o+l),i.push(a.readUshort(t,e)),e+=2}if(n==2){var u=a.readUshort(t,e);for(e+=2,l=0;l<u;l++)i.push(a.readUshort(t,e)),e+=2,i.push(a.readUshort(t,e)),e+=2,i.push(a.readUshort(t,e)),e+=2}return i},r._lctf.getInterval=function(t,e){for(var a=0;a<t.length;a+=3){var i=t[a],n=t[a+1];if(t[a+2],i<=e&&e<=n)return a}return-1},r._lctf.readCoverage=function(t,e){var a=r._bin,i={};i.fmt=a.readUshort(t,e),e+=2;var n=a.readUshort(t,e);return e+=2,i.fmt==1&&(i.tab=a.readUshorts(t,e,n)),i.fmt==2&&(i.tab=a.readUshorts(t,e,3*n)),i},r._lctf.coverageIndex=function(t,e){var a=t.tab;if(t.fmt==1)return a.indexOf(e);if(t.fmt==2){var i=r._lctf.getInterval(a,e);if(i!=-1)return a[i+2]+(e-a[i])}return-1},r._lctf.readFeatureList=function(t,e){var a=r._bin,i=e,n=[],o=a.readUshort(t,e);e+=2;for(var s=0;s<o;s++){var l=a.readASCII(t,e,4);e+=4;var u=a.readUshort(t,e);e+=2;var d=r._lctf.readFeatureTable(t,i+u);d.tag=l.trim(),n.push(d)}return n},r._lctf.readFeatureTable=function(t,e){var a=r._bin,i=e,n={},o=a.readUshort(t,e);e+=2,o>0&&(n.featureParams=i+o);var s=a.readUshort(t,e);e+=2,n.tab=[];for(var l=0;l<s;l++)n.tab.push(a.readUshort(t,e+2*l));return n},r._lctf.readScriptList=function(t,e){var a=r._bin,i=e,n={},o=a.readUshort(t,e);e+=2;for(var s=0;s<o;s++){var l=a.readASCII(t,e,4);e+=4;var u=a.readUshort(t,e);e+=2,n[l.trim()]=r._lctf.readScriptTable(t,i+u)}return n},r._lctf.readScriptTable=function(t,e){var a=r._bin,i=e,n={},o=a.readUshort(t,e);e+=2,o>0&&(n.default=r._lctf.readLangSysTable(t,i+o));var s=a.readUshort(t,e);e+=2;for(var l=0;l<s;l++){var u=a.readASCII(t,e,4);e+=4;var d=a.readUshort(t,e);e+=2,n[u.trim()]=r._lctf.readLangSysTable(t,i+d)}return n},r._lctf.readLangSysTable=function(t,e){var a=r._bin,i={};a.readUshort(t,e),e+=2,i.reqFeature=a.readUshort(t,e),e+=2;var n=a.readUshort(t,e);return e+=2,i.features=a.readUshorts(t,e,n),i},r.CFF={},r.CFF.parse=function(t,e,a){var i=r._bin;(t=new Uint8Array(t.buffer,e,a))[e=0],t[++e],t[++e],t[++e],e++;var n=[];e=r.CFF.readIndex(t,e,n);for(var o=[],s=0;s<n.length-1;s++)o.push(i.readASCII(t,e+n[s],n[s+1]-n[s]));e+=n[n.length-1];var l=[];e=r.CFF.readIndex(t,e,l);var u=[];for(s=0;s<l.length-1;s++)u.push(r.CFF.readDict(t,e+l[s],e+l[s+1]));e+=l[l.length-1];var d=u[0],g=[];e=r.CFF.readIndex(t,e,g);var m=[];for(s=0;s<g.length-1;s++)m.push(i.readASCII(t,e+g[s],g[s+1]-g[s]));if(e+=g[g.length-1],r.CFF.readSubrs(t,e,d),d.CharStrings){e=d.CharStrings,g=[],e=r.CFF.readIndex(t,e,g);var y=[];for(s=0;s<g.length-1;s++)y.push(i.readBytes(t,e+g[s],g[s+1]-g[s]));d.CharStrings=y}if(d.ROS){e=d.FDArray;var E=[];for(e=r.CFF.readIndex(t,e,E),d.FDArray=[],s=0;s<E.length-1;s++){var S=r.CFF.readDict(t,e+E[s],e+E[s+1]);r.CFF._readFDict(t,S,m),d.FDArray.push(S)}e+=E[E.length-1],e=d.FDSelect,d.FDSelect=[];var U=t[e];if(e++,U!=3)throw U;var T=i.readUshort(t,e);for(e+=2,s=0;s<T+1;s++)d.FDSelect.push(i.readUshort(t,e),t[e+2]),e+=3}return d.Encoding&&(d.Encoding=r.CFF.readEncoding(t,d.Encoding,d.CharStrings.length)),d.charset&&(d.charset=r.CFF.readCharset(t,d.charset,d.CharStrings.length)),r.CFF._readFDict(t,d,m),d},r.CFF._readFDict=function(t,e,a){var i;for(var n in e.Private&&(i=e.Private[1],e.Private=r.CFF.readDict(t,i,i+e.Private[0]),e.Private.Subrs&&r.CFF.readSubrs(t,i+e.Private.Subrs,e.Private)),e)["FamilyName","FontName","FullName","Notice","version","Copyright"].indexOf(n)!=-1&&(e[n]=a[e[n]-426+35])},r.CFF.readSubrs=function(t,e,a){var i=r._bin,n=[];e=r.CFF.readIndex(t,e,n);var o,s=n.length;o=s<1240?107:s<33900?1131:32768,a.Bias=o,a.Subrs=[];for(var l=0;l<n.length-1;l++)a.Subrs.push(i.readBytes(t,e+n[l],n[l+1]-n[l]))},r.CFF.tableSE=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,0,111,112,113,114,0,115,116,117,118,119,120,121,122,0,123,0,124,125,126,127,128,129,130,131,0,132,133,0,134,135,136,137,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,0,139,0,0,0,0,140,141,142,143,0,0,0,0,0,144,0,0,0,145,0,0,146,147,148,149,0,0,0,0],r.CFF.glyphByUnicode=function(t,e){for(var a=0;a<t.charset.length;a++)if(t.charset[a]==e)return a;return-1},r.CFF.glyphBySE=function(t,e){return e<0||e>255?-1:r.CFF.glyphByUnicode(t,r.CFF.tableSE[e])},r.CFF.readEncoding=function(t,e,a){r._bin;var i=[".notdef"],n=t[e];if(e++,n!=0)throw"error: unknown encoding format: "+n;var o=t[e];e++;for(var s=0;s<o;s++)i.push(t[e+s]);return i},r.CFF.readCharset=function(t,e,a){var i=r._bin,n=[".notdef"],o=t[e];if(e++,o==0)for(var s=0;s<a;s++){var l=i.readUshort(t,e);e+=2,n.push(l)}else{if(o!=1&&o!=2)throw"error: format: "+o;for(;n.length<a;){l=i.readUshort(t,e),e+=2;var u=0;for(o==1?(u=t[e],e++):(u=i.readUshort(t,e),e+=2),s=0;s<=u;s++)n.push(l),l++}}return n},r.CFF.readIndex=function(t,e,a){var i=r._bin,n=i.readUshort(t,e)+1,o=t[e+=2];if(e++,o==1)for(var s=0;s<n;s++)a.push(t[e+s]);else if(o==2)for(s=0;s<n;s++)a.push(i.readUshort(t,e+2*s));else if(o==3)for(s=0;s<n;s++)a.push(16777215&i.readUint(t,e+3*s-1));else if(n!=1)throw"unsupported offset size: "+o+", count: "+n;return(e+=n*o)-1},r.CFF.getCharString=function(t,e,a){var i=r._bin,n=t[e],o=t[e+1];t[e+2],t[e+3],t[e+4];var s=1,l=null,u=null;n<=20&&(l=n,s=1),n==12&&(l=100*n+o,s=2),21<=n&&n<=27&&(l=n,s=1),n==28&&(u=i.readShort(t,e+1),s=3),29<=n&&n<=31&&(l=n,s=1),32<=n&&n<=246&&(u=n-139,s=1),247<=n&&n<=250&&(u=256*(n-247)+o+108,s=2),251<=n&&n<=254&&(u=256*-(n-251)-o-108,s=2),n==255&&(u=i.readInt(t,e+1)/65535,s=5),a.val=u!=null?u:"o"+l,a.size=s},r.CFF.readCharString=function(t,e,a){for(var i=e+a,n=r._bin,o=[];e<i;){var s=t[e],l=t[e+1];t[e+2],t[e+3],t[e+4];var u=1,d=null,g=null;s<=20&&(d=s,u=1),s==12&&(d=100*s+l,u=2),s!=19&&s!=20||(d=s,u=2),21<=s&&s<=27&&(d=s,u=1),s==28&&(g=n.readShort(t,e+1),u=3),29<=s&&s<=31&&(d=s,u=1),32<=s&&s<=246&&(g=s-139,u=1),247<=s&&s<=250&&(g=256*(s-247)+l+108,u=2),251<=s&&s<=254&&(g=256*-(s-251)-l-108,u=2),s==255&&(g=n.readInt(t,e+1)/65535,u=5),o.push(g!=null?g:"o"+d),e+=u}return o},r.CFF.readDict=function(t,e,a){for(var i=r._bin,n={},o=[];e<a;){var s=t[e],l=t[e+1];t[e+2],t[e+3],t[e+4];var u=1,d=null,g=null;if(s==28&&(g=i.readShort(t,e+1),u=3),s==29&&(g=i.readInt(t,e+1),u=5),32<=s&&s<=246&&(g=s-139,u=1),247<=s&&s<=250&&(g=256*(s-247)+l+108,u=2),251<=s&&s<=254&&(g=256*-(s-251)-l-108,u=2),s==255)throw g=i.readInt(t,e+1)/65535,u=5,"unknown number";if(s==30){var m=[];for(u=1;;){var y=t[e+u];u++;var E=y>>4,S=15&y;if(E!=15&&m.push(E),S!=15&&m.push(S),S==15)break}for(var U="",T=[0,1,2,3,4,5,6,7,8,9,".","e","e-","reserved","-","endOfNumber"],w=0;w<m.length;w++)U+=T[m[w]];g=parseFloat(U)}s<=21&&(d=["version","Notice","FullName","FamilyName","Weight","FontBBox","BlueValues","OtherBlues","FamilyBlues","FamilyOtherBlues","StdHW","StdVW","escape","UniqueID","XUID","charset","Encoding","CharStrings","Private","Subrs","defaultWidthX","nominalWidthX"][s],u=1,s==12&&(d=["Copyright","isFixedPitch","ItalicAngle","UnderlinePosition","UnderlineThickness","PaintType","CharstringType","FontMatrix","StrokeWidth","BlueScale","BlueShift","BlueFuzz","StemSnapH","StemSnapV","ForceBold",0,0,"LanguageGroup","ExpansionFactor","initialRandomSeed","SyntheticBase","PostScript","BaseFontName","BaseFontBlend",0,0,0,0,0,0,"ROS","CIDFontVersion","CIDFontRevision","CIDFontType","CIDCount","UIDBase","FDArray","FDSelect","FontName"][l],u=2)),d!=null?(n[d]=o.length==1?o[0]:o,o=[]):o.push(g),e+=u}return n},r.cmap={},r.cmap.parse=function(t,e,a){t=new Uint8Array(t.buffer,e,a),e=0;var i=r._bin,n={};i.readUshort(t,e),e+=2;var o=i.readUshort(t,e);e+=2;var s=[];n.tables=[];for(var l=0;l<o;l++){var u=i.readUshort(t,e);e+=2;var d=i.readUshort(t,e);e+=2;var g=i.readUint(t,e);e+=4;var m="p"+u+"e"+d,y=s.indexOf(g);if(y==-1){var E;y=n.tables.length,s.push(g);var S=i.readUshort(t,g);S==0?E=r.cmap.parse0(t,g):S==4?E=r.cmap.parse4(t,g):S==6?E=r.cmap.parse6(t,g):S==12?E=r.cmap.parse12(t,g):console.debug("unknown format: "+S,u,d,g),n.tables.push(E)}if(n[m]!=null)throw"multiple tables for one platform+encoding";n[m]=y}return n},r.cmap.parse0=function(t,e){var a=r._bin,i={};i.format=a.readUshort(t,e),e+=2;var n=a.readUshort(t,e);e+=2,a.readUshort(t,e),e+=2,i.map=[];for(var o=0;o<n-6;o++)i.map.push(t[e+o]);return i},r.cmap.parse4=function(t,e){var a=r._bin,i=e,n={};n.format=a.readUshort(t,e),e+=2;var o=a.readUshort(t,e);e+=2,a.readUshort(t,e),e+=2;var s=a.readUshort(t,e);e+=2;var l=s/2;n.searchRange=a.readUshort(t,e),e+=2,n.entrySelector=a.readUshort(t,e),e+=2,n.rangeShift=a.readUshort(t,e),e+=2,n.endCount=a.readUshorts(t,e,l),e+=2*l,e+=2,n.startCount=a.readUshorts(t,e,l),e+=2*l,n.idDelta=[];for(var u=0;u<l;u++)n.idDelta.push(a.readShort(t,e)),e+=2;for(n.idRangeOffset=a.readUshorts(t,e,l),e+=2*l,n.glyphIdArray=[];e<i+o;)n.glyphIdArray.push(a.readUshort(t,e)),e+=2;return n},r.cmap.parse6=function(t,e){var a=r._bin,i={};i.format=a.readUshort(t,e),e+=2,a.readUshort(t,e),e+=2,a.readUshort(t,e),e+=2,i.firstCode=a.readUshort(t,e),e+=2;var n=a.readUshort(t,e);e+=2,i.glyphIdArray=[];for(var o=0;o<n;o++)i.glyphIdArray.push(a.readUshort(t,e)),e+=2;return i},r.cmap.parse12=function(t,e){var a=r._bin,i={};i.format=a.readUshort(t,e),e+=2,e+=2,a.readUint(t,e),e+=4,a.readUint(t,e),e+=4;var n=a.readUint(t,e);e+=4,i.groups=[];for(var o=0;o<n;o++){var s=e+12*o,l=a.readUint(t,s+0),u=a.readUint(t,s+4),d=a.readUint(t,s+8);i.groups.push([l,u,d])}return i},r.glyf={},r.glyf.parse=function(t,e,a,i){for(var n=[],o=0;o<i.maxp.numGlyphs;o++)n.push(null);return n},r.glyf._parseGlyf=function(t,e){var a=r._bin,i=t._data,n=r._tabOffset(i,"glyf",t._offset)+t.loca[e];if(t.loca[e]==t.loca[e+1])return null;var o={};if(o.noc=a.readShort(i,n),n+=2,o.xMin=a.readShort(i,n),n+=2,o.yMin=a.readShort(i,n),n+=2,o.xMax=a.readShort(i,n),n+=2,o.yMax=a.readShort(i,n),n+=2,o.xMin>=o.xMax||o.yMin>=o.yMax)return null;if(o.noc>0){o.endPts=[];for(var s=0;s<o.noc;s++)o.endPts.push(a.readUshort(i,n)),n+=2;var l=a.readUshort(i,n);if(n+=2,i.length-n<l)return null;o.instructions=a.readBytes(i,n,l),n+=l;var u=o.endPts[o.noc-1]+1;for(o.flags=[],s=0;s<u;s++){var d=i[n];if(n++,o.flags.push(d),(8&d)!=0){var g=i[n];n++;for(var m=0;m<g;m++)o.flags.push(d),s++}}for(o.xs=[],s=0;s<u;s++){var y=(2&o.flags[s])!=0,E=(16&o.flags[s])!=0;y?(o.xs.push(E?i[n]:-i[n]),n++):E?o.xs.push(0):(o.xs.push(a.readShort(i,n)),n+=2)}for(o.ys=[],s=0;s<u;s++)y=(4&o.flags[s])!=0,E=(32&o.flags[s])!=0,y?(o.ys.push(E?i[n]:-i[n]),n++):E?o.ys.push(0):(o.ys.push(a.readShort(i,n)),n+=2);var S=0,U=0;for(s=0;s<u;s++)S+=o.xs[s],U+=o.ys[s],o.xs[s]=S,o.ys[s]=U}else{var T;o.parts=[];do{T=a.readUshort(i,n),n+=2;var w={m:{a:1,b:0,c:0,d:1,tx:0,ty:0},p1:-1,p2:-1};if(o.parts.push(w),w.glyphIndex=a.readUshort(i,n),n+=2,1&T){var D=a.readShort(i,n);n+=2;var x=a.readShort(i,n);n+=2}else D=a.readInt8(i,n),n++,x=a.readInt8(i,n),n++;2&T?(w.m.tx=D,w.m.ty=x):(w.p1=D,w.p2=x),8&T?(w.m.a=w.m.d=a.readF2dot14(i,n),n+=2):64&T?(w.m.a=a.readF2dot14(i,n),n+=2,w.m.d=a.readF2dot14(i,n),n+=2):128&T&&(w.m.a=a.readF2dot14(i,n),n+=2,w.m.b=a.readF2dot14(i,n),n+=2,w.m.c=a.readF2dot14(i,n),n+=2,w.m.d=a.readF2dot14(i,n),n+=2)}while(32&T);if(256&T){var A=a.readUshort(i,n);for(n+=2,o.instr=[],s=0;s<A;s++)o.instr.push(i[n]),n++}}return o},r.GDEF={},r.GDEF.parse=function(t,e,a,i){var n=e;e+=4;var o=r._bin.readUshort(t,e);return{glyphClassDef:o===0?null:r._lctf.readClassDef(t,n+o)}},r.GPOS={},r.GPOS.parse=function(t,e,a,i){return r._lctf.parse(t,e,a,i,r.GPOS.subt)},r.GPOS.subt=function(t,e,a,i){var n=r._bin,o=a,s={};if(s.fmt=n.readUshort(t,a),a+=2,e==1||e==2||e==3||e==7||e==8&&s.fmt<=2){var l=n.readUshort(t,a);a+=2,s.coverage=r._lctf.readCoverage(t,l+o)}if(e==1&&s.fmt==1){var u=n.readUshort(t,a);a+=2,u!=0&&(s.pos=r.GPOS.readValueRecord(t,a,u))}else if(e==2&&s.fmt>=1&&s.fmt<=2){u=n.readUshort(t,a),a+=2;var d=n.readUshort(t,a);a+=2;var g=r._lctf.numOfOnes(u),m=r._lctf.numOfOnes(d);if(s.fmt==1){s.pairsets=[];var y=n.readUshort(t,a);a+=2;for(var E=0;E<y;E++){var S=o+n.readUshort(t,a);a+=2;var U=n.readUshort(t,S);S+=2;for(var T=[],w=0;w<U;w++){var D=n.readUshort(t,S);S+=2,u!=0&&(b=r.GPOS.readValueRecord(t,S,u),S+=2*g),d!=0&&(R=r.GPOS.readValueRecord(t,S,d),S+=2*m),T.push({gid2:D,val1:b,val2:R})}s.pairsets.push(T)}}if(s.fmt==2){var x=n.readUshort(t,a);a+=2;var A=n.readUshort(t,a);a+=2;var W=n.readUshort(t,a);a+=2;var O=n.readUshort(t,a);for(a+=2,s.classDef1=r._lctf.readClassDef(t,o+x),s.classDef2=r._lctf.readClassDef(t,o+A),s.matrix=[],E=0;E<W;E++){var Y=[];for(w=0;w<O;w++){var b=null,R=null;u!=0&&(b=r.GPOS.readValueRecord(t,a,u),a+=2*g),d!=0&&(R=r.GPOS.readValueRecord(t,a,d),a+=2*m),Y.push({val1:b,val2:R})}s.matrix.push(Y)}}}else if(e==4&&s.fmt==1)s.markCoverage=r._lctf.readCoverage(t,n.readUshort(t,a)+o),s.baseCoverage=r._lctf.readCoverage(t,n.readUshort(t,a+2)+o),s.markClassCount=n.readUshort(t,a+4),s.markArray=r.GPOS.readMarkArray(t,n.readUshort(t,a+6)+o),s.baseArray=r.GPOS.readBaseArray(t,n.readUshort(t,a+8)+o,s.markClassCount);else if(e==6&&s.fmt==1)s.mark1Coverage=r._lctf.readCoverage(t,n.readUshort(t,a)+o),s.mark2Coverage=r._lctf.readCoverage(t,n.readUshort(t,a+2)+o),s.markClassCount=n.readUshort(t,a+4),s.mark1Array=r.GPOS.readMarkArray(t,n.readUshort(t,a+6)+o),s.mark2Array=r.GPOS.readBaseArray(t,n.readUshort(t,a+8)+o,s.markClassCount);else{if(e==9&&s.fmt==1){var F=n.readUshort(t,a);a+=2;var j=n.readUint(t,a);if(a+=4,i.ltype==9)i.ltype=F;else if(i.ltype!=F)throw"invalid extension substitution";return r.GPOS.subt(t,i.ltype,o+j)}console.debug("unsupported GPOS table LookupType",e,"format",s.fmt)}return s},r.GPOS.readValueRecord=function(t,e,a){var i=r._bin,n=[];return n.push(1&a?i.readShort(t,e):0),e+=1&a?2:0,n.push(2&a?i.readShort(t,e):0),e+=2&a?2:0,n.push(4&a?i.readShort(t,e):0),e+=4&a?2:0,n.push(8&a?i.readShort(t,e):0),e+=8&a?2:0,n},r.GPOS.readBaseArray=function(t,e,a){var i=r._bin,n=[],o=e,s=i.readUshort(t,e);e+=2;for(var l=0;l<s;l++){for(var u=[],d=0;d<a;d++)u.push(r.GPOS.readAnchorRecord(t,o+i.readUshort(t,e))),e+=2;n.push(u)}return n},r.GPOS.readMarkArray=function(t,e){var a=r._bin,i=[],n=e,o=a.readUshort(t,e);e+=2;for(var s=0;s<o;s++){var l=r.GPOS.readAnchorRecord(t,a.readUshort(t,e+2)+n);l.markClass=a.readUshort(t,e),i.push(l),e+=4}return i},r.GPOS.readAnchorRecord=function(t,e){var a=r._bin,i={};return i.fmt=a.readUshort(t,e),i.x=a.readShort(t,e+2),i.y=a.readShort(t,e+4),i},r.GSUB={},r.GSUB.parse=function(t,e,a,i){return r._lctf.parse(t,e,a,i,r.GSUB.subt)},r.GSUB.subt=function(t,e,a,i){var n=r._bin,o=a,s={};if(s.fmt=n.readUshort(t,a),a+=2,e!=1&&e!=2&&e!=4&&e!=5&&e!=6)return null;if(e==1||e==2||e==4||e==5&&s.fmt<=2||e==6&&s.fmt<=2){var l=n.readUshort(t,a);a+=2,s.coverage=r._lctf.readCoverage(t,o+l)}if(e==1&&s.fmt>=1&&s.fmt<=2){if(s.fmt==1)s.delta=n.readShort(t,a),a+=2;else if(s.fmt==2){var u=n.readUshort(t,a);a+=2,s.newg=n.readUshorts(t,a,u),a+=2*s.newg.length}}else if(e==2&&s.fmt==1){u=n.readUshort(t,a),a+=2,s.seqs=[];for(var d=0;d<u;d++){var g=n.readUshort(t,a)+o;a+=2;var m=n.readUshort(t,g);s.seqs.push(n.readUshorts(t,g+2,m))}}else if(e==4)for(s.vals=[],u=n.readUshort(t,a),a+=2,d=0;d<u;d++){var y=n.readUshort(t,a);a+=2,s.vals.push(r.GSUB.readLigatureSet(t,o+y))}else if(e==5&&s.fmt==2){if(s.fmt==2){var E=n.readUshort(t,a);a+=2,s.cDef=r._lctf.readClassDef(t,o+E),s.scset=[];var S=n.readUshort(t,a);for(a+=2,d=0;d<S;d++){var U=n.readUshort(t,a);a+=2,s.scset.push(U==0?null:r.GSUB.readSubClassSet(t,o+U))}}}else if(e==6&&s.fmt==3){if(s.fmt==3){for(d=0;d<3;d++){u=n.readUshort(t,a),a+=2;for(var T=[],w=0;w<u;w++)T.push(r._lctf.readCoverage(t,o+n.readUshort(t,a+2*w)));a+=2*u,d==0&&(s.backCvg=T),d==1&&(s.inptCvg=T),d==2&&(s.ahedCvg=T)}u=n.readUshort(t,a),a+=2,s.lookupRec=r.GSUB.readSubstLookupRecords(t,a,u)}}else{if(e==7&&s.fmt==1){var D=n.readUshort(t,a);a+=2;var x=n.readUint(t,a);if(a+=4,i.ltype==9)i.ltype=D;else if(i.ltype!=D)throw"invalid extension substitution";return r.GSUB.subt(t,i.ltype,o+x)}console.debug("unsupported GSUB table LookupType",e,"format",s.fmt)}return s},r.GSUB.readSubClassSet=function(t,e){var a=r._bin.readUshort,i=e,n=[],o=a(t,e);e+=2;for(var s=0;s<o;s++){var l=a(t,e);e+=2,n.push(r.GSUB.readSubClassRule(t,i+l))}return n},r.GSUB.readSubClassRule=function(t,e){var a=r._bin.readUshort,i={},n=a(t,e),o=a(t,e+=2);e+=2,i.input=[];for(var s=0;s<n-1;s++)i.input.push(a(t,e)),e+=2;return i.substLookupRecords=r.GSUB.readSubstLookupRecords(t,e,o),i},r.GSUB.readSubstLookupRecords=function(t,e,a){for(var i=r._bin.readUshort,n=[],o=0;o<a;o++)n.push(i(t,e),i(t,e+2)),e+=4;return n},r.GSUB.readChainSubClassSet=function(t,e){var a=r._bin,i=e,n=[],o=a.readUshort(t,e);e+=2;for(var s=0;s<o;s++){var l=a.readUshort(t,e);e+=2,n.push(r.GSUB.readChainSubClassRule(t,i+l))}return n},r.GSUB.readChainSubClassRule=function(t,e){for(var a=r._bin,i={},n=["backtrack","input","lookahead"],o=0;o<n.length;o++){var s=a.readUshort(t,e);e+=2,o==1&&s--,i[n[o]]=a.readUshorts(t,e,s),e+=2*i[n[o]].length}return s=a.readUshort(t,e),e+=2,i.subst=a.readUshorts(t,e,2*s),e+=2*i.subst.length,i},r.GSUB.readLigatureSet=function(t,e){var a=r._bin,i=e,n=[],o=a.readUshort(t,e);e+=2;for(var s=0;s<o;s++){var l=a.readUshort(t,e);e+=2,n.push(r.GSUB.readLigature(t,i+l))}return n},r.GSUB.readLigature=function(t,e){var a=r._bin,i={chain:[]};i.nglyph=a.readUshort(t,e),e+=2;var n=a.readUshort(t,e);e+=2;for(var o=0;o<n-1;o++)i.chain.push(a.readUshort(t,e)),e+=2;return i},r.head={},r.head.parse=function(t,e,a){var i=r._bin,n={};return i.readFixed(t,e),e+=4,n.fontRevision=i.readFixed(t,e),e+=4,i.readUint(t,e),e+=4,i.readUint(t,e),e+=4,n.flags=i.readUshort(t,e),e+=2,n.unitsPerEm=i.readUshort(t,e),e+=2,n.created=i.readUint64(t,e),e+=8,n.modified=i.readUint64(t,e),e+=8,n.xMin=i.readShort(t,e),e+=2,n.yMin=i.readShort(t,e),e+=2,n.xMax=i.readShort(t,e),e+=2,n.yMax=i.readShort(t,e),e+=2,n.macStyle=i.readUshort(t,e),e+=2,n.lowestRecPPEM=i.readUshort(t,e),e+=2,n.fontDirectionHint=i.readShort(t,e),e+=2,n.indexToLocFormat=i.readShort(t,e),e+=2,n.glyphDataFormat=i.readShort(t,e),e+=2,n},r.hhea={},r.hhea.parse=function(t,e,a){var i=r._bin,n={};return i.readFixed(t,e),e+=4,n.ascender=i.readShort(t,e),e+=2,n.descender=i.readShort(t,e),e+=2,n.lineGap=i.readShort(t,e),e+=2,n.advanceWidthMax=i.readUshort(t,e),e+=2,n.minLeftSideBearing=i.readShort(t,e),e+=2,n.minRightSideBearing=i.readShort(t,e),e+=2,n.xMaxExtent=i.readShort(t,e),e+=2,n.caretSlopeRise=i.readShort(t,e),e+=2,n.caretSlopeRun=i.readShort(t,e),e+=2,n.caretOffset=i.readShort(t,e),e+=2,e+=8,n.metricDataFormat=i.readShort(t,e),e+=2,n.numberOfHMetrics=i.readUshort(t,e),e+=2,n},r.hmtx={},r.hmtx.parse=function(t,e,a,i){for(var n=r._bin,o={aWidth:[],lsBearing:[]},s=0,l=0,u=0;u<i.maxp.numGlyphs;u++)u<i.hhea.numberOfHMetrics&&(s=n.readUshort(t,e),e+=2,l=n.readShort(t,e),e+=2),o.aWidth.push(s),o.lsBearing.push(l);return o},r.kern={},r.kern.parse=function(t,e,a,i){var n=r._bin,o=n.readUshort(t,e);if(e+=2,o==1)return r.kern.parseV1(t,e-2,a,i);var s=n.readUshort(t,e);e+=2;for(var l={glyph1:[],rval:[]},u=0;u<s;u++){e+=2,a=n.readUshort(t,e),e+=2;var d=n.readUshort(t,e);e+=2;var g=d>>>8;if((g&=15)!=0)throw"unknown kern table format: "+g;e=r.kern.readFormat0(t,e,l)}return l},r.kern.parseV1=function(t,e,a,i){var n=r._bin;n.readFixed(t,e),e+=4;var o=n.readUint(t,e);e+=4;for(var s={glyph1:[],rval:[]},l=0;l<o;l++){n.readUint(t,e),e+=4;var u=n.readUshort(t,e);e+=2,n.readUshort(t,e),e+=2;var d=u>>>8;if((d&=15)!=0)throw"unknown kern table format: "+d;e=r.kern.readFormat0(t,e,s)}return s},r.kern.readFormat0=function(t,e,a){var i=r._bin,n=-1,o=i.readUshort(t,e);e+=2,i.readUshort(t,e),e+=2,i.readUshort(t,e),e+=2,i.readUshort(t,e),e+=2;for(var s=0;s<o;s++){var l=i.readUshort(t,e);e+=2;var u=i.readUshort(t,e);e+=2;var d=i.readShort(t,e);e+=2,l!=n&&(a.glyph1.push(l),a.rval.push({glyph2:[],vals:[]}));var g=a.rval[a.rval.length-1];g.glyph2.push(u),g.vals.push(d),n=l}return e},r.loca={},r.loca.parse=function(t,e,a,i){var n=r._bin,o=[],s=i.head.indexToLocFormat,l=i.maxp.numGlyphs+1;if(s==0)for(var u=0;u<l;u++)o.push(n.readUshort(t,e+(u<<1))<<1);if(s==1)for(u=0;u<l;u++)o.push(n.readUint(t,e+(u<<2)));return o},r.maxp={},r.maxp.parse=function(t,e,a){var i=r._bin,n={},o=i.readUint(t,e);return e+=4,n.numGlyphs=i.readUshort(t,e),e+=2,o==65536&&(n.maxPoints=i.readUshort(t,e),e+=2,n.maxContours=i.readUshort(t,e),e+=2,n.maxCompositePoints=i.readUshort(t,e),e+=2,n.maxCompositeContours=i.readUshort(t,e),e+=2,n.maxZones=i.readUshort(t,e),e+=2,n.maxTwilightPoints=i.readUshort(t,e),e+=2,n.maxStorage=i.readUshort(t,e),e+=2,n.maxFunctionDefs=i.readUshort(t,e),e+=2,n.maxInstructionDefs=i.readUshort(t,e),e+=2,n.maxStackElements=i.readUshort(t,e),e+=2,n.maxSizeOfInstructions=i.readUshort(t,e),e+=2,n.maxComponentElements=i.readUshort(t,e),e+=2,n.maxComponentDepth=i.readUshort(t,e),e+=2),n},r.name={},r.name.parse=function(t,e,a){var i=r._bin,n={};i.readUshort(t,e),e+=2;var o=i.readUshort(t,e);e+=2,i.readUshort(t,e);for(var s,l=["copyright","fontFamily","fontSubfamily","ID","fullName","version","postScriptName","trademark","manufacturer","designer","description","urlVendor","urlDesigner","licence","licenceURL","---","typoFamilyName","typoSubfamilyName","compatibleFull","sampleText","postScriptCID","wwsFamilyName","wwsSubfamilyName","lightPalette","darkPalette"],u=e+=2,d=0;d<o;d++){var g=i.readUshort(t,e);e+=2;var m=i.readUshort(t,e);e+=2;var y=i.readUshort(t,e);e+=2;var E=i.readUshort(t,e);e+=2;var S=i.readUshort(t,e);e+=2;var U=i.readUshort(t,e);e+=2;var T,w=l[E],D=u+12*o+U;if(g==0)T=i.readUnicode(t,D,S/2);else if(g==3&&m==0)T=i.readUnicode(t,D,S/2);else if(m==0)T=i.readASCII(t,D,S);else if(m==1)T=i.readUnicode(t,D,S/2);else if(m==3)T=i.readUnicode(t,D,S/2);else{if(g!=1)throw"unknown encoding "+m+", platformID: "+g;T=i.readASCII(t,D,S),console.debug("reading unknown MAC encoding "+m+" as ASCII")}var x="p"+g+","+y.toString(16);n[x]==null&&(n[x]={}),n[x][w!==void 0?w:E]=T,n[x]._lang=y}for(var A in n)if(n[A].postScriptName!=null&&n[A]._lang==1033)return n[A];for(var A in n)if(n[A].postScriptName!=null&&n[A]._lang==0)return n[A];for(var A in n)if(n[A].postScriptName!=null&&n[A]._lang==3084)return n[A];for(var A in n)if(n[A].postScriptName!=null)return n[A];for(var A in n){s=A;break}return console.debug("returning name table with languageID "+n[s]._lang),n[s]},r["OS/2"]={},r["OS/2"].parse=function(t,e,a){var i=r._bin.readUshort(t,e);e+=2;var n={};if(i==0)r["OS/2"].version0(t,e,n);else if(i==1)r["OS/2"].version1(t,e,n);else if(i==2||i==3||i==4)r["OS/2"].version2(t,e,n);else{if(i!=5)throw"unknown OS/2 table version: "+i;r["OS/2"].version5(t,e,n)}return n},r["OS/2"].version0=function(t,e,a){var i=r._bin;return a.xAvgCharWidth=i.readShort(t,e),e+=2,a.usWeightClass=i.readUshort(t,e),e+=2,a.usWidthClass=i.readUshort(t,e),e+=2,a.fsType=i.readUshort(t,e),e+=2,a.ySubscriptXSize=i.readShort(t,e),e+=2,a.ySubscriptYSize=i.readShort(t,e),e+=2,a.ySubscriptXOffset=i.readShort(t,e),e+=2,a.ySubscriptYOffset=i.readShort(t,e),e+=2,a.ySuperscriptXSize=i.readShort(t,e),e+=2,a.ySuperscriptYSize=i.readShort(t,e),e+=2,a.ySuperscriptXOffset=i.readShort(t,e),e+=2,a.ySuperscriptYOffset=i.readShort(t,e),e+=2,a.yStrikeoutSize=i.readShort(t,e),e+=2,a.yStrikeoutPosition=i.readShort(t,e),e+=2,a.sFamilyClass=i.readShort(t,e),e+=2,a.panose=i.readBytes(t,e,10),e+=10,a.ulUnicodeRange1=i.readUint(t,e),e+=4,a.ulUnicodeRange2=i.readUint(t,e),e+=4,a.ulUnicodeRange3=i.readUint(t,e),e+=4,a.ulUnicodeRange4=i.readUint(t,e),e+=4,a.achVendID=[i.readInt8(t,e),i.readInt8(t,e+1),i.readInt8(t,e+2),i.readInt8(t,e+3)],e+=4,a.fsSelection=i.readUshort(t,e),e+=2,a.usFirstCharIndex=i.readUshort(t,e),e+=2,a.usLastCharIndex=i.readUshort(t,e),e+=2,a.sTypoAscender=i.readShort(t,e),e+=2,a.sTypoDescender=i.readShort(t,e),e+=2,a.sTypoLineGap=i.readShort(t,e),e+=2,a.usWinAscent=i.readUshort(t,e),e+=2,a.usWinDescent=i.readUshort(t,e),e+=2},r["OS/2"].version1=function(t,e,a){var i=r._bin;return e=r["OS/2"].version0(t,e,a),a.ulCodePageRange1=i.readUint(t,e),e+=4,a.ulCodePageRange2=i.readUint(t,e),e+=4},r["OS/2"].version2=function(t,e,a){var i=r._bin;return e=r["OS/2"].version1(t,e,a),a.sxHeight=i.readShort(t,e),e+=2,a.sCapHeight=i.readShort(t,e),e+=2,a.usDefault=i.readUshort(t,e),e+=2,a.usBreak=i.readUshort(t,e),e+=2,a.usMaxContext=i.readUshort(t,e),e+=2},r["OS/2"].version5=function(t,e,a){var i=r._bin;return e=r["OS/2"].version2(t,e,a),a.usLowerOpticalPointSize=i.readUshort(t,e),e+=2,a.usUpperOpticalPointSize=i.readUshort(t,e),e+=2},r.post={},r.post.parse=function(t,e,a){var i=r._bin,n={};return n.version=i.readFixed(t,e),e+=4,n.italicAngle=i.readFixed(t,e),e+=4,n.underlinePosition=i.readShort(t,e),e+=2,n.underlineThickness=i.readShort(t,e),e+=2,n},r==null&&(r={}),r.U==null&&(r.U={}),r.U.codeToGlyph=function(t,e){var a=t.cmap,i=-1;if(a.p0e4!=null?i=a.p0e4:a.p3e1!=null?i=a.p3e1:a.p1e0!=null?i=a.p1e0:a.p0e3!=null&&(i=a.p0e3),i==-1)throw"no familiar platform and encoding!";var n=a.tables[i];if(n.format==0)return e>=n.map.length?0:n.map[e];if(n.format==4){for(var o=-1,s=0;s<n.endCount.length;s++)if(e<=n.endCount[s]){o=s;break}return o==-1||n.startCount[o]>e?0:65535&(n.idRangeOffset[o]!=0?n.glyphIdArray[e-n.startCount[o]+(n.idRangeOffset[o]>>1)-(n.idRangeOffset.length-o)]:e+n.idDelta[o])}if(n.format==12){if(e>n.groups[n.groups.length-1][1])return 0;for(s=0;s<n.groups.length;s++){var l=n.groups[s];if(l[0]<=e&&e<=l[1])return l[2]+(e-l[0])}return 0}throw"unknown cmap table format "+n.format},r.U.glyphToPath=function(t,e){var a={cmds:[],crds:[]};if(t.SVG&&t.SVG.entries[e]){var i=t.SVG.entries[e];return i==null?a:(typeof i=="string"&&(i=r.SVG.toPath(i),t.SVG.entries[e]=i),i)}if(t.CFF){var n={x:0,y:0,stack:[],nStems:0,haveWidth:!1,width:t.CFF.Private?t.CFF.Private.defaultWidthX:0,open:!1},o=t.CFF,s=t.CFF.Private;if(o.ROS){for(var l=0;o.FDSelect[l+2]<=e;)l+=2;s=o.FDArray[o.FDSelect[l+1]].Private}r.U._drawCFF(t.CFF.CharStrings[e],n,o,s,a)}else t.glyf&&r.U._drawGlyf(e,t,a);return a},r.U._drawGlyf=function(t,e,a){var i=e.glyf[t];i==null&&(i=e.glyf[t]=r.glyf._parseGlyf(e,t)),i!=null&&(i.noc>-1?r.U._simpleGlyph(i,a):r.U._compoGlyph(i,e,a))},r.U._simpleGlyph=function(t,e){for(var a=0;a<t.noc;a++){for(var i=a==0?0:t.endPts[a-1]+1,n=t.endPts[a],o=i;o<=n;o++){var s=o==i?n:o-1,l=o==n?i:o+1,u=1&t.flags[o],d=1&t.flags[s],g=1&t.flags[l],m=t.xs[o],y=t.ys[o];if(o==i)if(u){if(!d){r.U.P.moveTo(e,m,y);continue}r.U.P.moveTo(e,t.xs[s],t.ys[s])}else d?r.U.P.moveTo(e,t.xs[s],t.ys[s]):r.U.P.moveTo(e,(t.xs[s]+m)/2,(t.ys[s]+y)/2);u?d&&r.U.P.lineTo(e,m,y):g?r.U.P.qcurveTo(e,m,y,t.xs[l],t.ys[l]):r.U.P.qcurveTo(e,m,y,(m+t.xs[l])/2,(y+t.ys[l])/2)}r.U.P.closePath(e)}},r.U._compoGlyph=function(t,e,a){for(var i=0;i<t.parts.length;i++){var n={cmds:[],crds:[]},o=t.parts[i];r.U._drawGlyf(o.glyphIndex,e,n);for(var s=o.m,l=0;l<n.crds.length;l+=2){var u=n.crds[l],d=n.crds[l+1];a.crds.push(u*s.a+d*s.b+s.tx),a.crds.push(u*s.c+d*s.d+s.ty)}for(l=0;l<n.cmds.length;l++)a.cmds.push(n.cmds[l])}},r.U._getGlyphClass=function(t,e){var a=r._lctf.getInterval(e,t);return a==-1?0:e[a+2]},r.U._applySubs=function(t,e,a,i){for(var n=t.length-e-1,o=0;o<a.tabs.length;o++)if(a.tabs[o]!=null){var s,l=a.tabs[o];if(!l.coverage||(s=r._lctf.coverageIndex(l.coverage,t[e]))!=-1){if(a.ltype==1)t[e],l.fmt==1?t[e]=t[e]+l.delta:t[e]=l.newg[s];else if(a.ltype==4)for(var u=l.vals[s],d=0;d<u.length;d++){var g=u[d],m=g.chain.length;if(!(m>n)){for(var y=!0,E=0,S=0;S<m;S++){for(;t[e+E+(1+S)]==-1;)E++;g.chain[S]!=t[e+E+(1+S)]&&(y=!1)}if(y){for(t[e]=g.nglyph,S=0;S<m+E;S++)t[e+S+1]=-1;break}}}else if(a.ltype==5&&l.fmt==2)for(var U=r._lctf.getInterval(l.cDef,t[e]),T=l.cDef[U+2],w=l.scset[T],D=0;D<w.length;D++){var x=w[D],A=x.input;if(!(A.length>n)){for(y=!0,S=0;S<A.length;S++){var W=r._lctf.getInterval(l.cDef,t[e+1+S]);if(U==-1&&l.cDef[W+2]!=A[S]){y=!1;break}}if(y){var O=x.substLookupRecords;for(d=0;d<O.length;d+=2)O[d],O[d+1]}}}else if(a.ltype==6&&l.fmt==3){if(!r.U._glsCovered(t,l.backCvg,e-l.backCvg.length)||!r.U._glsCovered(t,l.inptCvg,e)||!r.U._glsCovered(t,l.ahedCvg,e+l.inptCvg.length))continue;var Y=l.lookupRec;for(D=0;D<Y.length;D+=2){U=Y[D];var b=i[Y[D+1]];r.U._applySubs(t,e+U,b,i)}}}}},r.U._glsCovered=function(t,e,a){for(var i=0;i<e.length;i++)if(r._lctf.coverageIndex(e[i],t[a+i])==-1)return!1;return!0},r.U.glyphsToPath=function(t,e,a){for(var i={cmds:[],crds:[]},n=0,o=0;o<e.length;o++){var s=e[o];if(s!=-1){for(var l=o<e.length-1&&e[o+1]!=-1?e[o+1]:0,u=r.U.glyphToPath(t,s),d=0;d<u.crds.length;d+=2)i.crds.push(u.crds[d]+n),i.crds.push(u.crds[d+1]);for(a&&i.cmds.push(a),d=0;d<u.cmds.length;d++)i.cmds.push(u.cmds[d]);a&&i.cmds.push("X"),n+=t.hmtx.aWidth[s],o<e.length-1&&(n+=r.U.getPairAdjustment(t,s,l))}}return i},r.U.P={},r.U.P.moveTo=function(t,e,a){t.cmds.push("M"),t.crds.push(e,a)},r.U.P.lineTo=function(t,e,a){t.cmds.push("L"),t.crds.push(e,a)},r.U.P.curveTo=function(t,e,a,i,n,o,s){t.cmds.push("C"),t.crds.push(e,a,i,n,o,s)},r.U.P.qcurveTo=function(t,e,a,i,n){t.cmds.push("Q"),t.crds.push(e,a,i,n)},r.U.P.closePath=function(t){t.cmds.push("Z")},r.U._drawCFF=function(t,e,a,i,n){for(var o=e.stack,s=e.nStems,l=e.haveWidth,u=e.width,d=e.open,g=0,m=e.x,y=e.y,E=0,S=0,U=0,T=0,w=0,D=0,x=0,A=0,W=0,O=0,Y={val:0,size:0};g<t.length;){r.CFF.getCharString(t,g,Y);var b=Y.val;if(g+=Y.size,b=="o1"||b=="o18")o.length%2!=0&&!l&&(u=o.shift()+i.nominalWidthX),s+=o.length>>1,o.length=0,l=!0;else if(b=="o3"||b=="o23")o.length%2!=0&&!l&&(u=o.shift()+i.nominalWidthX),s+=o.length>>1,o.length=0,l=!0;else if(b=="o4")o.length>1&&!l&&(u=o.shift()+i.nominalWidthX,l=!0),d&&r.U.P.closePath(n),y+=o.pop(),r.U.P.moveTo(n,m,y),d=!0;else if(b=="o5")for(;o.length>0;)m+=o.shift(),y+=o.shift(),r.U.P.lineTo(n,m,y);else if(b=="o6"||b=="o7")for(var R=o.length,F=b=="o6",j=0;j<R;j++){var P=o.shift();F?m+=P:y+=P,F=!F,r.U.P.lineTo(n,m,y)}else if(b=="o8"||b=="o24"){R=o.length;for(var Z=0;Z+6<=R;)E=m+o.shift(),S=y+o.shift(),U=E+o.shift(),T=S+o.shift(),m=U+o.shift(),y=T+o.shift(),r.U.P.curveTo(n,E,S,U,T,m,y),Z+=6;b=="o24"&&(m+=o.shift(),y+=o.shift(),r.U.P.lineTo(n,m,y))}else{if(b=="o11")break;if(b=="o1234"||b=="o1235"||b=="o1236"||b=="o1237")b=="o1234"&&(S=y,U=(E=m+o.shift())+o.shift(),O=T=S+o.shift(),D=T,A=y,m=(x=(w=(W=U+o.shift())+o.shift())+o.shift())+o.shift(),r.U.P.curveTo(n,E,S,U,T,W,O),r.U.P.curveTo(n,w,D,x,A,m,y)),b=="o1235"&&(E=m+o.shift(),S=y+o.shift(),U=E+o.shift(),T=S+o.shift(),W=U+o.shift(),O=T+o.shift(),w=W+o.shift(),D=O+o.shift(),x=w+o.shift(),A=D+o.shift(),m=x+o.shift(),y=A+o.shift(),o.shift(),r.U.P.curveTo(n,E,S,U,T,W,O),r.U.P.curveTo(n,w,D,x,A,m,y)),b=="o1236"&&(E=m+o.shift(),S=y+o.shift(),U=E+o.shift(),O=T=S+o.shift(),D=T,x=(w=(W=U+o.shift())+o.shift())+o.shift(),A=D+o.shift(),m=x+o.shift(),r.U.P.curveTo(n,E,S,U,T,W,O),r.U.P.curveTo(n,w,D,x,A,m,y)),b=="o1237"&&(E=m+o.shift(),S=y+o.shift(),U=E+o.shift(),T=S+o.shift(),W=U+o.shift(),O=T+o.shift(),w=W+o.shift(),D=O+o.shift(),x=w+o.shift(),A=D+o.shift(),Math.abs(x-m)>Math.abs(A-y)?m=x+o.shift():y=A+o.shift(),r.U.P.curveTo(n,E,S,U,T,W,O),r.U.P.curveTo(n,w,D,x,A,m,y));else if(b=="o14"){if(o.length>0&&!l&&(u=o.shift()+a.nominalWidthX,l=!0),o.length==4){var ne=o.shift(),I=o.shift(),L=o.shift(),p=o.shift(),k=r.CFF.glyphBySE(a,L),M=r.CFF.glyphBySE(a,p);r.U._drawCFF(a.CharStrings[k],e,a,i,n),e.x=ne,e.y=I,r.U._drawCFF(a.CharStrings[M],e,a,i,n)}d&&(r.U.P.closePath(n),d=!1)}else if(b=="o19"||b=="o20")o.length%2!=0&&!l&&(u=o.shift()+i.nominalWidthX),s+=o.length>>1,o.length=0,l=!0,g+=s+7>>3;else if(b=="o21")o.length>2&&!l&&(u=o.shift()+i.nominalWidthX,l=!0),y+=o.pop(),m+=o.pop(),d&&r.U.P.closePath(n),r.U.P.moveTo(n,m,y),d=!0;else if(b=="o22")o.length>1&&!l&&(u=o.shift()+i.nominalWidthX,l=!0),m+=o.pop(),d&&r.U.P.closePath(n),r.U.P.moveTo(n,m,y),d=!0;else if(b=="o25"){for(;o.length>6;)m+=o.shift(),y+=o.shift(),r.U.P.lineTo(n,m,y);E=m+o.shift(),S=y+o.shift(),U=E+o.shift(),T=S+o.shift(),m=U+o.shift(),y=T+o.shift(),r.U.P.curveTo(n,E,S,U,T,m,y)}else if(b=="o26")for(o.length%2&&(m+=o.shift());o.length>0;)E=m,S=y+o.shift(),m=U=E+o.shift(),y=(T=S+o.shift())+o.shift(),r.U.P.curveTo(n,E,S,U,T,m,y);else if(b=="o27")for(o.length%2&&(y+=o.shift());o.length>0;)S=y,U=(E=m+o.shift())+o.shift(),T=S+o.shift(),m=U+o.shift(),y=T,r.U.P.curveTo(n,E,S,U,T,m,y);else if(b=="o10"||b=="o29"){var C=b=="o10"?i:a;if(o.length==0)console.debug("error: empty stack");else{var _=o.pop(),N=C.Subrs[_+C.Bias];e.x=m,e.y=y,e.nStems=s,e.haveWidth=l,e.width=u,e.open=d,r.U._drawCFF(N,e,a,i,n),m=e.x,y=e.y,s=e.nStems,l=e.haveWidth,u=e.width,d=e.open}}else if(b=="o30"||b=="o31"){var B=o.length,z=(Z=0,b=="o31");for(Z+=B-(R=-3&B);Z<R;)z?(S=y,U=(E=m+o.shift())+o.shift(),y=(T=S+o.shift())+o.shift(),R-Z==5?(m=U+o.shift(),Z++):m=U,z=!1):(E=m,S=y+o.shift(),U=E+o.shift(),T=S+o.shift(),m=U+o.shift(),R-Z==5?(y=T+o.shift(),Z++):y=T,z=!0),r.U.P.curveTo(n,E,S,U,T,m,y),Z+=4}else{if((b+"").charAt(0)=="o")throw console.debug("Unknown operation: "+b,t),b;o.push(b)}}}e.x=m,e.y=y,e.nStems=s,e.haveWidth=l,e.width=u,e.open=d};var c=r,f={Typr:c};return h.Typr=c,h.default=f,Object.defineProperty(h,"__esModule",{value:!0}),h}({}).Typr}v(Ea,"typrFactory");function Ba(){return function(h){var r=Uint8Array,c=Uint16Array,f=Uint32Array,t=new r([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,0,0,0]),e=new r([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,0,0]),a=new r([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),i=v(function(b,R){for(var F=new c(31),j=0;j<31;++j)F[j]=R+=1<<b[j-1];var P=new f(F[30]);for(j=1;j<30;++j)for(var Z=F[j];Z<F[j+1];++Z)P[Z]=Z-F[j]<<5|j;return[F,P]},"f"),n=i(t,2),o=n[0],s=n[1];o[28]=258,s[258]=28;for(var l=i(e,0)[0],u=new c(32768),d=0;d<32768;++d){var g=(43690&d)>>>1|(21845&d)<<1;g=(61680&(g=(52428&g)>>>2|(13107&g)<<2))>>>4|(3855&g)<<4,u[d]=((65280&g)>>>8|(255&g)<<8)>>>1}var m=v(function(b,R,F){for(var j=b.length,P=0,Z=new c(R);P<j;++P)++Z[b[P]-1];var ne,I=new c(R);for(P=0;P<R;++P)I[P]=I[P-1]+Z[P-1]<<1;if(F){ne=new c(1<<R);var L=15-R;for(P=0;P<j;++P)if(b[P])for(var p=P<<4|b[P],k=R-b[P],M=I[b[P]-1]++<<k,C=M|(1<<k)-1;M<=C;++M)ne[u[M]>>>L]=p}else for(ne=new c(j),P=0;P<j;++P)b[P]&&(ne[P]=u[I[b[P]-1]++]>>>15-b[P]);return ne},"w"),y=new r(288);for(d=0;d<144;++d)y[d]=8;for(d=144;d<256;++d)y[d]=9;for(d=256;d<280;++d)y[d]=7;for(d=280;d<288;++d)y[d]=8;var E=new r(32);for(d=0;d<32;++d)E[d]=5;var S=m(y,9,1),U=m(E,5,1),T=v(function(b){for(var R=b[0],F=1;F<b.length;++F)b[F]>R&&(R=b[F]);return R},"y"),w=v(function(b,R,F){var j=R/8|0;return(b[j]|b[j+1]<<8)>>(7&R)&F},"L"),D=v(function(b,R){var F=R/8|0;return(b[F]|b[F+1]<<8|b[F+2]<<16)>>(7&R)},"U"),x=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],A=v(function(b,R,F){var j=new Error(R||x[b]);if(j.code=b,Error.captureStackTrace&&Error.captureStackTrace(j,A),!F)throw j;return j},"T"),W=v(function(b,R,F){var j=b.length;if(!j||F&&!F.l&&j<5)return R||new r(0);var P=!R||F,Z=!F||F.i;F||(F={}),R||(R=new r(3*j));var ne,I=v(function(fe){var Se=R.length;if(fe>Se){var we=new r(Math.max(2*Se,fe));we.set(R),R=we}},"d"),L=F.f||0,p=F.p||0,k=F.b||0,M=F.l,C=F.d,_=F.m,N=F.n,B=8*j;do{if(!M){F.f=L=w(b,p,1);var z=w(b,p+1,3);if(p+=3,!z){var J=b[($=((ne=p)/8|0)+(7&ne&&1)+4)-4]|b[$-3]<<8,ee=$+J;if(ee>j){Z&&A(0);break}P&&I(k+J),R.set(b.subarray($,ee),k),F.b=k+=J,F.p=p=8*ee;continue}if(z==1)M=S,C=U,_=9,N=5;else if(z==2){var H=w(b,p,31)+257,V=w(b,p+10,15)+4,ge=H+w(b,p+5,31)+1;p+=14;for(var ce=new r(ge),q=new r(19),te=0;te<V;++te)q[a[te]]=w(b,p+3*te,7);p+=3*V;var le=T(q),X=(1<<le)-1,re=m(q,le,1);for(te=0;te<ge;){var $,G=re[w(b,p,X)];if(p+=15&G,($=G>>>4)<16)ce[te++]=$;else{var de=0,Q=0;for($==16?(Q=3+w(b,p,3),p+=2,de=ce[te-1]):$==17?(Q=3+w(b,p,7),p+=3):$==18&&(Q=11+w(b,p,127),p+=7);Q--;)ce[te++]=de}}var oe=ce.subarray(0,H),K=ce.subarray(H);_=T(oe),N=T(K),M=m(oe,_,1),C=m(K,N,1)}else A(1);if(p>B){Z&&A(0);break}}P&&I(k+131072);for(var xe=(1<<_)-1,ae=(1<<N)-1,ie=p;;ie=p){var ue=(de=M[D(b,p)&xe])>>>4;if((p+=15&de)>B){Z&&A(0);break}if(de||A(2),ue<256)R[k++]=ue;else{if(ue==256){ie=p,M=null;break}var ve=ue-254;if(ue>264){var _e=t[te=ue-257];ve=w(b,p,(1<<_e)-1)+o[te],p+=_e}var De=C[D(b,p)&ae],me=De>>>4;if(De||A(3),p+=15&De,K=l[me],me>3&&(_e=e[me],K+=D(b,p)&(1<<_e)-1,p+=_e),p>B){Z&&A(0);break}P&&I(k+131072);for(var ye=k+ve;k<ye;k+=4)R[k]=R[k-K],R[k+1]=R[k+1-K],R[k+2]=R[k+2-K],R[k+3]=R[k+3-K];k=ye}}F.l=M,F.p=ie,F.b=k,M&&(L=1,F.m=_,F.d=C,F.n=N)}while(!L);return k==R.length?R:function(fe,Se,we){(Se==null||Se<0)&&(Se=0),(we==null||we>fe.length)&&(we=fe.length);var Ge=new(fe instanceof c?c:fe instanceof f?f:r)(we-Se);return Ge.set(fe.subarray(Se,we)),Ge}(R,0,k)},"O"),O=new r(0),Y=typeof TextDecoder<"u"&&new TextDecoder;try{Y.decode(O,{stream:!0})}catch(b){}return h.convert_streams=function(b){var R=new DataView(b),F=0;function j(){var H=R.getUint16(F);return F+=2,H}v(j,"t");function P(){var H=R.getUint32(F);return F+=4,H}v(P,"a");function Z(H){J.setUint16(ee,H),ee+=2}v(Z,"i");function ne(H){J.setUint32(ee,H),ee+=4}v(ne,"o");for(var I={signature:P(),flavor:P(),length:P(),numTables:j(),reserved:j(),totalSfntSize:P(),majorVersion:j(),minorVersion:j(),metaOffset:P(),metaLength:P(),metaOrigLength:P(),privOffset:P(),privLength:P()},L=0;Math.pow(2,L)<=I.numTables;)L++;L--;for(var p=16*Math.pow(2,L),k=16*I.numTables-p,M=12,C=[],_=0;_<I.numTables;_++)C.push({tag:P(),offset:P(),compLength:P(),origLength:P(),origChecksum:P()}),M+=16;var N,B=new Uint8Array(12+16*C.length+C.reduce(function(H,V){return H+V.origLength+4},0)),z=B.buffer,J=new DataView(z),ee=0;return ne(I.flavor),Z(I.numTables),Z(p),Z(L),Z(k),C.forEach(function(H){ne(H.tag),ne(H.origChecksum),ne(M),ne(H.origLength),H.outOffset=M,(M+=H.origLength)%4!=0&&(M+=4-M%4)}),C.forEach(function(H){var V,ge=b.slice(H.offset,H.offset+H.compLength);if(H.compLength!=H.origLength){var ce=new Uint8Array(H.origLength);V=new Uint8Array(ge,2),W(V,ce)}else ce=new Uint8Array(ge);B.set(ce,H.outOffset);var q=0;(M=H.outOffset+H.origLength)%4!=0&&(q=4-M%4),B.set(new Uint8Array(q).buffer,H.outOffset+H.origLength),N=M+q}),z.slice(0,N)},Object.defineProperty(h,"__esModule",{value:!0}),h}({}).convert_streams}v(Ba,"woff2otfFactory");function Oa(h,r){let c={M:2,L:2,Q:4,C:6,Z:0},f={C:"18g,ca,368,1kz",D:"17k,6,2,2+4,5+c,2+6,2+1,10+1,9+f,j+11,2+1,a,2,2+1,15+2,3,j+2,6+3,2+8,2,2,2+1,w+a,4+e,3+3,2,3+2,3+5,23+w,2f+4,3,2+9,2,b,2+3,3,1k+9,6+1,3+1,2+2,2+d,30g,p+y,1,1+1g,f+x,2,sd2+1d,jf3+4,f+3,2+4,2+2,b+3,42,2,4+2,2+1,2,3,t+1,9f+w,2,el+2,2+g,d+2,2l,2+1,5,3+1,2+1,2,3,6,16wm+1v",R:"17m+3,2,2,6+3,m,15+2,2+2,h+h,13,3+8,2,2,3+1,2,p+1,x,5+4,5,a,2,2,3,u,c+2,g+1,5,2+1,4+1,5j,6+1,2,b,2+2,f,2+1,1s+2,2,3+1,7,1ez0,2,2+1,4+4,b,4,3,b,42,2+2,4,3,2+1,2,o+3,ae,ep,x,2o+2,3+1,3,5+1,6",L:"x9u,jff,a,fd,jv",T:"4t,gj+33,7o+4,1+1,7c+18,2,2+1,2+1,2,21+a,2,1b+k,h,2u+6,3+5,3+1,2+3,y,2,v+q,2k+a,1n+8,a,p+3,2+8,2+2,2+4,18+2,3c+e,2+v,1k,2,5+7,5,4+6,b+1,u,1n,5+3,9,l+1,r,3+1,1m,5+1,5+1,3+2,4,v+1,4,c+1,1m,5+4,2+1,5,l+1,n+5,2,1n,3,2+3,9,8+1,c+1,v,1q,d,1f,4,1m+2,6+2,2+3,8+1,c+1,u,1n,3,7,6+1,l+1,t+1,1m+1,5+3,9,l+1,u,21,8+2,2,2j,3+6,d+7,2r,3+8,c+5,23+1,s,2,2,1k+d,2+4,2+1,6+a,2+z,a,2v+3,2+5,2+1,3+1,q+1,5+2,h+3,e,3+1,7,g,jk+2,qb+2,u+2,u+1,v+1,1t+1,2+6,9,3+a,a,1a+2,3c+1,z,3b+2,5+1,a,7+2,64+1,3,1n,2+6,2,2,3+7,7+9,3,1d+d,1,1+1,1s+3,1d,2+4,2,6,15+8,d+1,x+3,3+1,2+2,1l,2+1,4,2+2,1n+7,3+1,49+2,2+c,2+6,5,7,4+1,5j+1l,2+4,ek,3+1,r+4,1e+4,6+5,2p+c,1+3,1,1+2,1+b,2db+2,3y,2p+v,ff+3,30+1,n9x,1+2,2+9,x+1,29+1,7l,4,5,q+1,6,48+1,r+h,e,13+7,q+a,1b+2,1d,3+3,3+1,14,1w+5,3+1,3+1,d,9,1c,1g,2+2,3+1,6+1,2,17+1,9,6n,3,5,fn5,ki+f,h+f,5s,6y+2,ea,6b,46+4,1af+2,2+1,6+3,15+2,5,4m+1,fy+3,as+1,4a+a,4x,1j+e,1l+2,1e+3,3+1,1y+2,11+4,2+7,1r,d+1,1h+8,b+3,3,2o+2,3,2+1,7,4h,4+7,m+1,1m+1,4,12+6,4+4,5g+7,3+2,2,o,2d+5,2,5+1,2+1,6n+3,7+1,2+1,s+1,2e+7,3,2+1,2z,2,3+5,2,2u+2,3+3,2+4,78+8,2+1,75+1,2,5,41+3,3+1,5,x+9,15+5,3+3,9,a+5,3+2,1b+c,2+1,bb+6,2+5,2,2b+l,3+6,2+1,2+1,3f+5,4,2+1,2+6,2,21+1,4,2,9o+1,470+8,at4+4,1o+6,t5,1s+3,2a,f5l+1,2+3,43o+2,a+7,1+7,3+6,v+3,45+2,1j0+1i,5+1d,9,f,n+4,2+e,11t+6,2+g,3+6,2+1,2+4,7a+6,c6+3,15t+6,32+6,1,gzau,v+2n,3l+6n"},t=1,e=2,a=4,i=8,n=16,o=32,s;function l(x){if(!s){let A={R:e,L:t,D:a,C:n,U:o,T:i};s=new Map;for(let W in f){let O=0;f[W].split(",").forEach(Y=>{let[b,R]=Y.split("+");b=parseInt(b,36),R=R?parseInt(R,36):0,s.set(O+=b,A[W]);for(let F=R;F--;)s.set(++O,A[W])})}}return s.get(x)||o}v(l,"getCharJoiningType");let u=1,d=2,g=3,m=4,y=[null,"isol","init","fina","medi"];function E(x){let A=new Uint8Array(x.length),W=o,O=u,Y=-1;for(let b=0;b<x.length;b++){let R=x.codePointAt(b),F=l(R)|0,j=u;F&i||(W&(t|a|n)?F&(e|a|n)?(j=g,(O===u||O===g)&&A[Y]++):F&(t|o)&&(O===d||O===m)&&A[Y]--:W&(e|o)&&(O===d||O===m)&&A[Y]--,O=A[b]=j,W=F,Y=b,R>65535&&b++)}return A}v(E,"detectJoiningForms");function S(x,A){let W=[];for(let Y=0;Y<A.length;Y++){let b=A.codePointAt(Y);b>65535&&Y++,W.push(h.U.codeToGlyph(x,b))}let O=x.GSUB;if(O){let{lookupList:Y,featureList:b}=O,R,F=/^(rlig|liga|mset|isol|init|fina|medi|half|pres|blws|ccmp)$/,j=[];b.forEach(P=>{if(F.test(P.tag))for(let Z=0;Z<P.tab.length;Z++){if(j[P.tab[Z]])continue;j[P.tab[Z]]=!0;let ne=Y[P.tab[Z]],I=/^(isol|init|fina|medi)$/.test(P.tag);I&&!R&&(R=E(A));for(let L=0;L<W.length;L++)(!R||!I||y[R[L]]===P.tag)&&h.U._applySubs(W,L,ne,Y)}})}return W}v(S,"stringToGlyphs");function U(x,A){let W=new Int16Array(A.length*3),O=0;for(;O<A.length;O++){let F=A[O];if(F===-1)continue;W[O*3+2]=x.hmtx.aWidth[F];let j=x.GPOS;if(j){let P=j.lookupList;for(let Z=0;Z<P.length;Z++){let ne=P[Z];for(let I=0;I<ne.tabs.length;I++){let L=ne.tabs[I];if(ne.ltype===1){if(h._lctf.coverageIndex(L.coverage,F)!==-1&&L.pos){R(L.pos,O);break}}else if(ne.ltype===2){let p=null,k=Y();if(k!==-1){let M=h._lctf.coverageIndex(L.coverage,A[k]);if(M!==-1){if(L.fmt===1){let C=L.pairsets[M];for(let _=0;_<C.length;_++)C[_].gid2===F&&(p=C[_])}else if(L.fmt===2){let C=h.U._getGlyphClass(A[k],L.classDef1),_=h.U._getGlyphClass(F,L.classDef2);p=L.matrix[C][_]}if(p){p.val1&&R(p.val1,k),p.val2&&R(p.val2,O);break}}}}else if(ne.ltype===4){let p=h._lctf.coverageIndex(L.markCoverage,F);if(p!==-1){let k=Y(b),M=k===-1?-1:h._lctf.coverageIndex(L.baseCoverage,A[k]);if(M!==-1){let C=L.markArray[p],_=L.baseArray[M][C.markClass];W[O*3]=_.x-C.x+W[k*3]-W[k*3+2],W[O*3+1]=_.y-C.y+W[k*3+1];break}}}else if(ne.ltype===6){let p=h._lctf.coverageIndex(L.mark1Coverage,F);if(p!==-1){let k=Y();if(k!==-1){let M=A[k];if(T(x,M)===3){let C=h._lctf.coverageIndex(L.mark2Coverage,M);if(C!==-1){let _=L.mark1Array[p],N=L.mark2Array[C][_.markClass];W[O*3]=N.x-_.x+W[k*3]-W[k*3+2],W[O*3+1]=N.y-_.y+W[k*3+1];break}}}}}}}}else if(x.kern&&!x.cff){let P=Y();if(P!==-1){let Z=x.kern.glyph1.indexOf(A[P]);if(Z!==-1){let ne=x.kern.rval[Z].glyph2.indexOf(F);ne!==-1&&(W[P*3+2]+=x.kern.rval[Z].vals[ne])}}}}return W;function Y(F){for(let j=O-1;j>=0;j--)if(A[j]!==-1&&(!F||F(A[j])))return j;return-1}function b(F){return T(x,F)===1}function R(F,j){for(let P=0;P<3;P++)W[j*3+P]+=F[P]||0}}v(U,"calcGlyphPositions");function T(x,A){let W=x.GDEF&&x.GDEF.glyphClassDef;return W?h.U._getGlyphClass(A,W):0}v(T,"getGlyphClass");function w(...x){for(let A=0;A<x.length;A++)if(typeof x[A]=="number")return x[A]}v(w,"firstNum");function D(x){let A=Object.create(null),W=x["OS/2"],O=x.hhea,Y=x.head.unitsPerEm,b=w(W&&W.sTypoAscender,O&&O.ascender,Y),R={unitsPerEm:Y,ascender:b,descender:w(W&&W.sTypoDescender,O&&O.descender,0),capHeight:w(W&&W.sCapHeight,b),xHeight:w(W&&W.sxHeight,b),lineGap:w(W&&W.sTypoLineGap,O&&O.lineGap),supportsCodePoint(F){return h.U.codeToGlyph(x,F)>0},forEachGlyph(F,j,P,Z){let ne=0,I=1/R.unitsPerEm*j,L=S(x,F),p=0,k=U(x,L);return L.forEach((M,C)=>{if(M!==-1){let _=A[M];if(!_){let{cmds:N,crds:B}=h.U.glyphToPath(x,M),z="",J=0;for(let ce=0,q=N.length;ce<q;ce++){let te=c[N[ce]];z+=N[ce];for(let le=1;le<=te;le++)z+=(le>1?",":"")+B[J++]}let ee,H,V,ge;if(B.length){ee=H=1/0,V=ge=-1/0;for(let ce=0,q=B.length;ce<q;ce+=2){let te=B[ce],le=B[ce+1];te<ee&&(ee=te),le<H&&(H=le),te>V&&(V=te),le>ge&&(ge=le)}}else ee=V=H=ge=0;_=A[M]={index:M,advanceWidth:x.hmtx.aWidth[M],xMin:ee,yMin:H,xMax:V,yMax:ge,path:z}}Z.call(null,_,ne+k[C*3]*I,k[C*3+1]*I,p),ne+=k[C*3+2]*I,P&&(ne+=P*j)}p+=F.codePointAt(p)>65535?2:1}),ne}};return R}return v(D,"wrapFontObj"),v(function(A){let W=new Uint8Array(A,0,4),O=h._bin.readASCII(W,0,4);if(O==="wOFF")A=r(A);else if(O==="wOF2")throw new Error("woff2 fonts not supported");return D(h.parse(A)[0])},"parse")}v(Oa,"parserFactory");var Ra=st({name:"Typr Font Parser",dependencies:[Ea,Ba,Oa],init(h,r,c){let f=h(),t=r();return c(f,t)}});function La(){return function(h){var r=v(function(){this.buckets=new Map},"n");r.prototype.add=function(U){var T=U>>5;this.buckets.set(T,(this.buckets.get(T)||0)|1<<(31&U))},r.prototype.has=function(U){var T=this.buckets.get(U>>5);return T!==void 0&&(T&1<<(31&U))!=0},r.prototype.serialize=function(){var U=[];return this.buckets.forEach(function(T,w){U.push((+w).toString(36)+":"+T.toString(36))}),U.join(",")},r.prototype.deserialize=function(U){var T=this;this.buckets.clear(),U.split(",").forEach(function(w){var D=w.split(":");T.buckets.set(parseInt(D[0],36),parseInt(D[1],36))})};var c=Math.pow(2,8),f=c-1,t=~f;function e(U){var T=function(D){return D&t}(U).toString(16),w=function(D){return(D&t)+c-1}(U).toString(16);return"codepoint-index/plane"+(U>>16)+"/"+T+"-"+w+".json"}v(e,"a");function a(U,T){var w=U&f,D=T.codePointAt(w/6|0);return((D=(D||48)-48)&1<<w%6)!=0}v(a,"i");function i(U,T){var w;(w=U,w.replace(/U\+/gi,"").replace(/^,+|,+$/g,"").split(/,+/).map(function(D){return D.split("-").map(function(x){return parseInt(x.trim(),16)})})).forEach(function(D){var x=D[0],A=D[1];A===void 0&&(A=x),T(x,A)})}v(i,"u");function n(U,T){i(U,function(w,D){for(var x=w;x<=D;x++)T(x)})}v(n,"c");var o={},s={},l=new WeakMap,u="https://cdn.jsdelivr.net/gh/lojjic/unicode-font-resolver@v1.0.1/packages/data";function d(U){var T=l.get(U);return T||(T=new r,n(U.ranges,function(w){return T.add(w)}),l.set(U,T)),T}v(d,"d");var g,m=new Map;function y(U,T,w){return U[T]?T:U[w]?w:function(D){for(var x in D)return x}(U)}v(y,"g");function E(U,T){var w=T;if(!U.includes(w)){w=1/0;for(var D=0;D<U.length;D++)Math.abs(U[D]-T)<Math.abs(w-T)&&(w=U[D])}return w}v(E,"w");function S(U){return g||(g=new Set,n("9-D,20,85,A0,1680,2000-200A,2028-202F,205F,3000",function(T){g.add(T)})),g.has(U)}return v(S,"k"),h.CodePointSet=r,h.clearCache=function(){o={},s={}},h.getFontsForString=function(U,T){T===void 0&&(T={});var w,D=T.lang;D===void 0&&(D=new RegExp("\\p{Script=Hangul}","u").test(w=U)?"ko":new RegExp("\\p{Script=Hiragana}|\\p{Script=Katakana}","u").test(w)?"ja":"en");var x=T.category;x===void 0&&(x="sans-serif");var A=T.style;A===void 0&&(A="normal");var W=T.weight;W===void 0&&(W=400);var O=(T.dataUrl||u).replace(/\/$/g,""),Y=new Map,b=new Uint8Array(U.length),R={},F={},j=new Array(U.length),P=new Map,Z=!1;function ne(p){var k=m.get(p);return k||(k=fetch(O+"/"+p).then(function(M){if(!M.ok)throw new Error(M.statusText);return M.json().then(function(C){if(!Array.isArray(C)||C[0]!==1)throw new Error("Incorrect schema version; need 1, got "+C[0]);return C[1]})}).catch(function(M){if(O!==u)return Z||(console.error('unicode-font-resolver: Failed loading from dataUrl "'+O+'", trying default CDN. '+M.message),Z=!0),O=u,m.delete(p),ne(p);throw M}),m.set(p,k)),k}v(ne,"M");for(var I=function(p){var k=U.codePointAt(p),M=e(k);j[p]=M,o[M]||P.has(M)||P.set(M,ne(M).then(function(C){o[M]=C})),k>65535&&(p++,L=p)},L=0;L<U.length;L++)I(L);return Promise.all(P.values()).then(function(){P.clear();for(var p=function(M){var C=U.codePointAt(M),_=null,N=o[j[M]],B=void 0;for(var z in N){var J=F[z];if(J===void 0&&(J=F[z]=new RegExp(z).test(D||"en")),J){for(var ee in B=z,N[z])if(a(C,N[z][ee])){_=ee;break}break}}if(!_){e:for(var H in N)if(H!==B){for(var V in N[H])if(a(C,N[H][V])){_=V;break e}}}_||(console.debug("No font coverage for U+"+C.toString(16)),_="latin"),j[M]=_,s[_]||P.has(_)||P.set(_,ne("font-meta/"+_+".json").then(function(ge){s[_]=ge})),C>65535&&(M++,k=M)},k=0;k<U.length;k++)p(k);return Promise.all(P.values())}).then(function(){for(var p,k=null,M=0;M<U.length;M++){var C=U.codePointAt(M);if(k&&(S(C)||d(k).has(C)))b[M]=b[M-1];else{k=s[j[M]];var _=R[k.id];if(!_){var N=k.typeforms,B=y(N,x,"sans-serif"),z=y(N[B],A,"normal"),J=E((p=N[B])===null||p===void 0?void 0:p[z],W);_=R[k.id]=O+"/font-files/"+k.id+"/"+B+"."+z+"."+J+".woff"}var ee=Y.get(_);ee==null&&(ee=Y.size,Y.set(_,ee)),b[M]=ee}C>65535&&(M++,b[M]=b[M-1])}return{fontUrls:Array.from(Y.keys()),chars:b}})},Object.defineProperty(h,"__esModule",{value:!0}),h}({})}v(La,"unicodeFontResolverClientFactory");function Ga(h,r){let c=Object.create(null),f=Object.create(null);function t(a,i){let n=v(o=>{console.error("Failure loading font ".concat(a),o)},"onError");try{let o=new XMLHttpRequest;o.open("get",a,!0),o.responseType="arraybuffer",o.onload=function(){if(o.status>=400)n(new Error(o.statusText));else if(o.status>0)try{let s=h(o.response);s.src=a,i(s)}catch(s){n(s)}},o.onerror=n,o.send()}catch(o){n(o)}}v(t,"doLoadFont");function e(a,i){let n=c[a];n?i(n):f[a]?f[a].push(i):(f[a]=[i],t(a,o=>{o.src=a,c[a]=o,f[a].forEach(s=>s(o)),delete f[a]}))}return v(e,"loadFont"),function(a,i,{lang:n,fonts:o=[],style:s="normal",weight:l="normal",unicodeFontsURL:u}={}){let d=new Uint8Array(a.length),g=[];a.length||S();let m=new Map,y=[];if(s!=="italic"&&(s="normal"),typeof l!="number"&&(l=l==="bold"?700:400),o&&!Array.isArray(o)&&(o=[o]),o=o.slice().filter(T=>!T.lang||T.lang.test(n)).reverse(),o.length){let x=0;v(function A(W=0){for(let O=W,Y=a.length;O<Y;O++){let b=a.codePointAt(O);if(x===1&&g[d[O-1]].supportsCodePoint(b)||O>0&&/\s/.test(a[O]))d[O]=d[O-1],x===2&&(y[y.length-1][1]=O);else for(let R=d[O],F=o.length;R<=F;R++)if(R===F){let j=x===2?y[y.length-1]:y[y.length]=[O,O];j[1]=O,x=2}else{d[O]=R;let{src:j,unicodeRange:P}=o[R];if(!P||U(b,P)){let Z=c[j];if(!Z){e(j,()=>{A(O)});return}if(Z.supportsCodePoint(b)){let ne=m.get(Z);typeof ne!="number"&&(ne=g.length,g.push(Z),m.set(Z,ne)),d[O]=ne,x=1;break}}}b>65535&&O+1<Y&&(d[O+1]=d[O],O++,x===2&&(y[y.length-1][1]=O))}E()},"resolveUserFonts")()}else y.push([0,a.length-1]),E();function E(){if(y.length){let T=y.map(w=>a.substring(w[0],w[1]+1)).join("\n");r.getFontsForString(T,{lang:n||void 0,style:s,weight:l,dataUrl:u}).then(({fontUrls:w,chars:D})=>{let x=g.length,A=0;y.forEach(O=>{for(let Y=0,b=O[1]-O[0];Y<=b;Y++)d[O[0]+Y]=D[A++]+x;A++});let W=0;w.forEach((O,Y)=>{e(O,b=>{g[Y+x]=b,++W===w.length&&S()})})})}else S()}v(E,"resolveFallbacks");function S(){i({chars:d,fonts:g})}v(S,"allDone");function U(T,w){for(let D=0;D<w.length;D++){let[x,A=x]=w[D];if(x<=T&&T<=A)return!0}return!1}v(U,"isCodeInRanges")}}v(Ga,"createFontResolver");var Pa=st({name:"FontResolver",dependencies:[Ga,Ra,La],init(h,r,c){return h(r,c())}});function Ia(h,r){let f=/[\u00AD\u034F\u061C\u115F-\u1160\u17B4-\u17B5\u180B-\u180E\u200B-\u200F\u202A-\u202E\u2060-\u206F\u3164\uFE00-\uFE0F\uFEFF\uFFA0\uFFF0-\uFFF8]/,t="[^\\S\\u00A0]",e=new RegExp("".concat(t,"|[\\-\\u007C\\u00AD\\u2010\\u2012-\\u2014\\u2027\\u2056\\u2E17\\u2E40]"));function a({text:g,lang:m,fonts:y,style:E,weight:S,preResolvedFonts:U,unicodeFontsURL:T},w){let D=v(({chars:x,fonts:A})=>{let W,O,Y=[];for(let b=0;b<x.length;b++)x[b]!==O?(O=x[b],Y.push(W={start:b,end:b,fontObj:A[x[b]]})):W.end=b;w(Y)},"onResolved");U?D(U):h(g,D,{lang:m,fonts:y,style:E,weight:S,unicodeFontsURL:T})}v(a,"calculateFontRuns");function i({text:g="",font:m,lang:y,sdfGlyphSize:E=64,fontSize:S=400,fontWeight:U=1,fontStyle:T="normal",letterSpacing:w=0,lineHeight:D="normal",maxWidth:x=1/0,direction:A,textAlign:W="left",textIndent:O=0,whiteSpace:Y="normal",overflowWrap:b="normal",anchorX:R=0,anchorY:F=0,metricsOnly:j=!1,unicodeFontsURL:P,preResolvedFonts:Z=null,includeCaretPositions:ne=!1,chunkedBoundsSize:I=8192,colorRanges:L=null},p){let k=l(),M={fontLoad:0,typesetting:0};g.indexOf("\r")>-1&&(console.info("Typesetter: got text with \\r chars; normalizing to \\n"),g=g.replace(/\r\n/g,"\n").replace(/\r/g,"\n")),S=+S,w=+w,x=+x,D=D||"normal",O=+O,a({text:g,lang:y,style:T,weight:U,fonts:typeof m=="string"?[{src:m}]:m,unicodeFontsURL:P,preResolvedFonts:Z},C=>{M.fontLoad=l()-k;let _=isFinite(x),N=null,B=null,z=null,J=null,ee=null,H=null,V=null,ge=null,ce=0,q=0,te=Y!=="nowrap",le=new Map,X=l(),re=O,$=0,G=new u,de=[G];C.forEach(ae=>{let{fontObj:ie}=ae,{ascender:ue,descender:ve,unitsPerEm:_e,lineGap:De,capHeight:me,xHeight:ye}=ie,fe=le.get(ie);if(!fe){let he=S/_e,Te=D==="normal"?(ue-ve+De)*he:D*S,qe=(Te-(ue-ve)*he)/2,ke=Math.min(Te,(ue-ve)*he),be=(ue+ve)/2*he+ke/2;fe={index:le.size,src:ie.src,fontObj:ie,fontSizeMult:he,unitsPerEm:_e,ascender:ue*he,descender:ve*he,capHeight:me*he,xHeight:ye*he,lineHeight:Te,baseline:-qe-ue*he,caretTop:be,caretBottom:be-ke},le.set(ie,fe)}let{fontSizeMult:Se}=fe,we=g.slice(ae.start,ae.end+1),Ge,Ue;ie.forEachGlyph(we,S,w,(he,Te,qe,ke)=>{Te+=$,ke+=ae.start,Ge=Te,Ue=he;let be=g.charAt(ke),Ce=he.advanceWidth*Se,Fe=G.count,pe;if("isEmpty"in he||(he.isWhitespace=!!be&&new RegExp(t).test(be),he.canBreakAfter=!!be&&e.test(be),he.isEmpty=he.xMin===he.xMax||he.yMin===he.yMax||f.test(be)),!he.isWhitespace&&!he.isEmpty&&q++,te&&_&&!he.isWhitespace&&Te+Ce+re>x&&Fe){if(G.glyphAt(Fe-1).glyphObj.canBreakAfter)pe=new u,re=-Te;else for(let Re=Fe;Re--;)if(Re===0&&b==="break-word"){pe=new u,re=-Te;break}else if(G.glyphAt(Re).glyphObj.canBreakAfter){pe=G.splitAt(Re+1);let Oe=pe.glyphAt(0).x;re-=Oe;for(let Ee=pe.count;Ee--;)pe.glyphAt(Ee).x-=Oe;break}pe&&(G.isSoftWrapped=!0,G=pe,de.push(G),ce=x)}let Me=G.glyphAt(G.count);Me.glyphObj=he,Me.x=Te+re,Me.y=qe,Me.width=Ce,Me.charIndex=ke,Me.fontData=fe,be==="\n"&&(G=new u,de.push(G),re=-(Te+Ce+w*S)+O)}),$=Ge+Ue.advanceWidth*Se+w*S});let Q=0;de.forEach(ae=>{let ie=!0;for(let ue=ae.count;ue--;){let ve=ae.glyphAt(ue);ie&&!ve.glyphObj.isWhitespace&&(ae.width=ve.x+ve.width,ae.width>ce&&(ce=ae.width),ie=!1);let{lineHeight:_e,capHeight:De,xHeight:me,baseline:ye}=ve.fontData;_e>ae.lineHeight&&(ae.lineHeight=_e);let fe=ye-ae.baseline;fe<0&&(ae.baseline+=fe,ae.cap+=fe,ae.ex+=fe),ae.cap=Math.max(ae.cap,ae.baseline+De),ae.ex=Math.max(ae.ex,ae.baseline+me)}ae.baseline-=Q,ae.cap-=Q,ae.ex-=Q,Q+=ae.lineHeight});let oe=0,K=0;if(R&&(typeof R=="number"?oe=-R:typeof R=="string"&&(oe=-ce*(R==="left"?0:R==="center"?.5:R==="right"?1:o(R)))),F&&(typeof F=="number"?K=-F:typeof F=="string"&&(K=F==="top"?0:F==="top-baseline"?-de[0].baseline:F==="top-cap"?-de[0].cap:F==="top-ex"?-de[0].ex:F==="middle"?Q/2:F==="bottom"?Q:F==="bottom-baseline"?-de[de.length-1].baseline:o(F)*Q)),!j){let ae=r.getEmbeddingLevels(g,A);N=new Uint16Array(q),B=new Uint8Array(q),z=new Float32Array(q*2),J={},V=[1/0,1/0,-1/0,-1/0],ge=[],ne&&(H=new Float32Array(g.length*4)),L&&(ee=new Uint8Array(q*3));let ie=0,ue=-1,ve=-1,_e,De;if(de.forEach((me,ye)=>{let{count:fe,width:Se}=me;if(fe>0){let we=0;for(let ke=fe;ke--&&me.glyphAt(ke).glyphObj.isWhitespace;)we++;let Ge=0,Ue=0;if(W==="center")Ge=(ce-Se)/2;else if(W==="right")Ge=ce-Se;else if(W==="justify"&&me.isSoftWrapped){let ke=0;for(let be=fe-we;be--;)me.glyphAt(be).glyphObj.isWhitespace&&ke++;Ue=(ce-Se)/ke}if(Ue||Ge){let ke=0;for(let be=0;be<fe;be++){let Ce=me.glyphAt(be),Fe=Ce.glyphObj;Ce.x+=Ge+ke,Ue!==0&&Fe.isWhitespace&&be<fe-we&&(ke+=Ue,Ce.width+=Ue)}}let he=r.getReorderSegments(g,ae,me.glyphAt(0).charIndex,me.glyphAt(me.count-1).charIndex);for(let ke=0;ke<he.length;ke++){let[be,Ce]=he[ke],Fe=1/0,pe=-1/0;for(let Me=0;Me<fe;Me++)if(me.glyphAt(Me).charIndex>=be){let Re=Me,Oe=Me;for(;Oe<fe;Oe++){let Ee=me.glyphAt(Oe);if(Ee.charIndex>Ce)break;Oe<fe-we&&(Fe=Math.min(Fe,Ee.x),pe=Math.max(pe,Ee.x+Ee.width))}for(let Ee=Re;Ee<Oe;Ee++){let Ne=me.glyphAt(Ee);Ne.x=pe-(Ne.x+Ne.width-Fe)}break}}let Te,qe=v(ke=>Te=ke,"setGlyphObj");for(let ke=0;ke<fe;ke++){let be=me.glyphAt(ke);Te=be.glyphObj;let Ce=Te.index,Fe=ae.levels[be.charIndex]&1;if(Fe){let pe=r.getMirroredCharacter(g[be.charIndex]);pe&&be.fontData.fontObj.forEachGlyph(pe,0,0,qe)}if(ne){let{charIndex:pe,fontData:Me}=be,Re=be.x+oe,Oe=be.x+be.width+oe;H[pe*4]=Fe?Oe:Re,H[pe*4+1]=Fe?Re:Oe,H[pe*4+2]=me.baseline+Me.caretBottom+K,H[pe*4+3]=me.baseline+Me.caretTop+K;let Ee=pe-ue;Ee>1&&s(H,ue,Ee),ue=pe}if(L){let{charIndex:pe}=be;for(;pe>ve;)ve++,L.hasOwnProperty(ve)&&(De=L[ve])}if(!Te.isWhitespace&&!Te.isEmpty){let pe=ie++,{fontSizeMult:Me,src:Re,index:Oe}=be.fontData,Ee=J[Re]||(J[Re]={});Ee[Ce]||(Ee[Ce]={path:Te.path,pathBounds:[Te.xMin,Te.yMin,Te.xMax,Te.yMax]});let Ne=be.x+oe,$e=be.y+me.baseline+K;z[pe*2]=Ne,z[pe*2+1]=$e;let Je=Ne+Te.xMin*Me,et=$e+Te.yMin*Me,at=Ne+Te.xMax*Me,Ke=$e+Te.yMax*Me;Je<V[0]&&(V[0]=Je),et<V[1]&&(V[1]=et),at>V[2]&&(V[2]=at),Ke>V[3]&&(V[3]=Ke),pe%I===0&&(_e={start:pe,end:pe,rect:[1/0,1/0,-1/0,-1/0]},ge.push(_e)),_e.end++;let Le=_e.rect;if(Je<Le[0]&&(Le[0]=Je),et<Le[1]&&(Le[1]=et),at>Le[2]&&(Le[2]=at),Ke>Le[3]&&(Le[3]=Ke),N[pe]=Ce,B[pe]=Oe,L){let ot=pe*3;ee[ot]=De>>16&255,ee[ot+1]=De>>8&255,ee[ot+2]=De&255}}}}}),H){let me=g.length-ue;me>1&&s(H,ue,me)}}let xe=[];le.forEach(({index:ae,src:ie,unitsPerEm:ue,ascender:ve,descender:_e,lineHeight:De,capHeight:me,xHeight:ye})=>{xe[ae]={src:ie,unitsPerEm:ue,ascender:ve,descender:_e,lineHeight:De,capHeight:me,xHeight:ye}}),M.typesetting=l()-X,p({glyphIds:N,glyphFontIndices:B,glyphPositions:z,glyphData:J,fontData:xe,caretPositions:H,glyphColors:ee,chunkedBounds:ge,fontSize:S,topBaseline:K+de[0].baseline,blockBounds:[oe,K-Q,oe+ce,K],visibleBounds:V,timings:M})})}v(i,"typeset");function n(g,m){i(mn(gn({},g),{metricsOnly:!0}),y=>{let[E,S,U,T]=y.blockBounds;m({width:U-E,height:T-S})})}v(n,"measure");function o(g){let m=g.match(/^([\d.]+)%$/),y=m?parseFloat(m[1]):NaN;return isNaN(y)?0:y/100}v(o,"parsePercent");function s(g,m,y){let E=g[m*4],S=g[m*4+1],U=g[m*4+2],T=g[m*4+3],w=(S-E)/y;for(let D=0;D<y;D++){let x=(m+D)*4;g[x]=E+w*D,g[x+1]=E+w*(D+1),g[x+2]=U,g[x+3]=T}}v(s,"fillLigatureCaretPositions");function l(){return(self.performance||Date).now()}v(l,"now");function u(){this.data=[]}v(u,"TextLine");let d=["glyphObj","x","y","width","charIndex","fontData"];return u.prototype={width:0,lineHeight:0,baseline:0,cap:0,ex:0,isSoftWrapped:!1,get count(){return Math.ceil(this.data.length/d.length)},glyphAt(g){let m=u.flyweight;return m.data=this.data,m.index=g,m},splitAt(g){let m=new u;return m.data=this.data.splice(g*d.length),m}},u.flyweight=d.reduce((g,m,y,E)=>(Object.defineProperty(g,m,{get(){return this.data[this.index*d.length+y]},set(S){this.data[this.index*d.length+y]=S}}),g),{data:null,index:0}),{typeset:i,measure:n}}v(Ia,"createTypesetter");var ft=v(()=>(self.performance||Date).now(),"now"),tr=Cr(),Wn;function za(h,r,c,f,t,e,a,i,n,o,s=!0){return s?Na(h,r,c,f,t,e,a,i,n,o).then(null,l=>(Wn||(console.warn("WebGL SDF generation failed, falling back to JS",l),Wn=!0),Vn(h,r,c,f,t,e,a,i,n,o))):Vn(h,r,c,f,t,e,a,i,n,o)}v(za,"generateSDF");var qt=[],Wa=5,Gr=0;function qn(){let h=ft();for(;qt.length&&ft()-h<Wa;)qt.shift()();Gr=qt.length?setTimeout(qn,0):0}v(qn,"nextChunk");var Na=v((...h)=>new Promise((r,c)=>{qt.push(()=>{let f=ft();try{tr.webgl.generateIntoCanvas(...h),r({timing:ft()-f})}catch(t){c(t)}}),Gr||(Gr=setTimeout(qn,0))}),"generateSDF_GL"),Va=4,ja=2e3,Nn={},Xa=0;function Vn(h,r,c,f,t,e,a,i,n,o){let s="TroikaTextSDFGenerator_JS_"+Xa++%Va,l=Nn[s];return l||(l=Nn[s]={workerModule:st({name:s,workerId:s,dependencies:[Cr,ft],init(u,d){let g=u().javascript.generate;return function(...m){let y=d();return{textureData:g(...m),timing:d()-y}}},getTransferables(u){return[u.textureData.buffer]}}),requests:0,idleTimer:null}),l.requests++,clearTimeout(l.idleTimer),l.workerModule(h,r,c,f,t,e).then(({textureData:u,timing:d})=>{let g=ft(),m=new Uint8Array(u.length*4);for(let y=0;y<u.length;y++)m[y*4+o]=u[y];return tr.webglUtils.renderImageData(a,m,i,n,h,r,1<<3-o),d+=ft()-g,--l.requests===0&&(l.idleTimer=setTimeout(()=>{Rn(s)},ja)),{timing:d}})}v(Vn,"generateSDF_JS_Worker");function Ha(h){h._warm||(tr.webgl.isSupported(h),h._warm=!0)}v(Ha,"warmUpSDFCanvas");var Ya=tr.webglUtils.resizeWebGLCanvasWithoutClearing,nt={defaultFontURL:null,unicodeFontsURL:null,sdfGlyphSize:64,sdfMargin:1/16,sdfExponent:9,textureWidth:2048,useWorker:!0},Ja=new At,$n=!1;function pt(){return(self.performance||Date).now()}v(pt,"now$1");function ea(h){$n?console.warn("configureTextBuilder called after first font request; will be ignored."):na(nt,h)}v(ea,"configureTextBuilder");var jn=Object.create(null);function ta(h,r){$n=!0,h=na({},h);let c=pt(),{defaultFontURL:f}=nt,t=[];if(f&&t.push({label:"default",src:Xn(f)}),h.font&&t.push({label:"user",src:Xn(h.font)}),h.font=t,h.text=""+h.text,h.sdfGlyphSize=h.sdfGlyphSize||nt.sdfGlyphSize,h.unicodeFontsURL=h.unicodeFontsURL||nt.unicodeFontsURL,h.colorRanges!=null){let d={};for(let g in h.colorRanges)if(h.colorRanges.hasOwnProperty(g)){let m=h.colorRanges[g];typeof m!="number"&&(m=Ja.set(m).getHex()),d[g]=m}h.colorRanges=d}Object.freeze(h);let{textureWidth:e,sdfExponent:a}=nt,{sdfGlyphSize:i}=h,n=e/i*4,o=jn[i];if(!o){let d=document.createElement("canvas");d.width=e,d.height=i*256/n,o=jn[i]={glyphCount:0,sdfGlyphSize:i,sdfCanvas:d,sdfTexture:new _n(d,void 0,void 0,void 0,Ur,Ur),contextLost:!1,glyphsByFont:new Map},o.sdfTexture.generateMipmaps=!1,Ka(o)}let{sdfTexture:s,sdfCanvas:l}=o;(nt.useWorker?oa:Qa)(h).then(d=>{let{glyphIds:g,glyphFontIndices:m,fontData:y,glyphPositions:E,fontSize:S,timings:U}=d,T=[],w=new Float32Array(g.length*4),D=0,x=0,A=pt(),W=y.map(F=>{let j=o.glyphsByFont.get(F.src);return j||o.glyphsByFont.set(F.src,j=new Map),j});g.forEach((F,j)=>{let P=m[j],{src:Z,unitsPerEm:ne}=y[P],I=W[P].get(F);if(!I){let{path:C,pathBounds:_}=d.glyphData[Z][F],N=Math.max(_[2]-_[0],_[3]-_[1])/i*(nt.sdfMargin*i+.5),B=o.glyphCount++,z=[_[0]-N,_[1]-N,_[2]+N,_[3]+N];W[P].set(F,I={path:C,atlasIndex:B,sdfViewBox:z}),T.push(I)}let{sdfViewBox:L}=I,p=E[x++],k=E[x++],M=S/ne;w[D++]=p+L[0]*M,w[D++]=k+L[1]*M,w[D++]=p+L[2]*M,w[D++]=k+L[3]*M,g[j]=I.atlasIndex}),U.quads=(U.quads||0)+(pt()-A);let O=pt();U.sdf={};let Y=l.height,b=Math.ceil(o.glyphCount/n),R=Math.pow(2,Math.ceil(Math.log2(b*i)));R>Y&&(console.info("Increasing SDF texture size ".concat(Y,"->").concat(R)),Ya(l,e,R),s.dispose()),Promise.all(T.map(F=>ra(F,o,h.gpuAccelerateSDF).then(({timing:j})=>{U.sdf[F.atlasIndex]=j}))).then(()=>{T.length&&!o.contextLost&&(aa(o),s.needsUpdate=!0),U.sdfTotal=pt()-O,U.total=pt()-c,r(Object.freeze({parameters:h,sdfTexture:s,sdfGlyphSize:i,sdfExponent:a,glyphBounds:w,glyphAtlasIndices:g,glyphColors:d.glyphColors,caretPositions:d.caretPositions,chunkedBounds:d.chunkedBounds,ascender:d.ascender,descender:d.descender,lineHeight:d.lineHeight,capHeight:d.capHeight,xHeight:d.xHeight,topBaseline:d.topBaseline,blockBounds:d.blockBounds,visibleBounds:d.visibleBounds,timings:d.timings}))})}),Promise.resolve().then(()=>{o.contextLost||Ha(l)})}v(ta,"getTextRenderInfo");function ra({path:h,atlasIndex:r,sdfViewBox:c},{sdfGlyphSize:f,sdfCanvas:t,contextLost:e},a){if(e)return Promise.resolve({timing:-1});let{textureWidth:i,sdfExponent:n}=nt,o=Math.max(c[2]-c[0],c[3]-c[1]),s=Math.floor(r/4),l=s%(i/f)*f,u=Math.floor(s/(i/f))*f,d=r%4;return za(f,f,h,c,o,n,t,l,u,d,a)}v(ra,"generateGlyphSDF");function Ka(h){let r=h.sdfCanvas;r.addEventListener("webglcontextlost",c=>{console.log("Context Lost",c),c.preventDefault(),h.contextLost=!0}),r.addEventListener("webglcontextrestored",c=>{console.log("Context Restored",c),h.contextLost=!1;let f=[];h.glyphsByFont.forEach(t=>{t.forEach(e=>{f.push(ra(e,h,!0))})}),Promise.all(f).then(()=>{aa(h),h.sdfTexture.needsUpdate=!0})})}v(Ka,"initContextLossHandling");function Wr({font:h,characters:r,sdfGlyphSize:c},f){let t=Array.isArray(r)?r.join("\n"):""+r;ta({font:h,sdfGlyphSize:c,text:t},f)}v(Wr,"preloadFont");function na(h,r){for(let c in r)r.hasOwnProperty(c)&&(h[c]=r[c]);return h}v(na,"assign");var Zt;function Xn(h){return Zt||(Zt=typeof document>"u"?{}:document.createElement("a")),Zt.href=h,Zt.href}v(Xn,"toAbsoluteURL");function aa(h){if(typeof createImageBitmap!="function"){console.info("Safari<15: applying SDF canvas workaround");let{sdfCanvas:r,sdfTexture:c}=h,{width:f,height:t}=r,e=h.sdfCanvas.getContext("webgl"),a=c.image.data;(!a||a.length!==f*t*4)&&(a=new Uint8Array(f*t*4),c.image={width:f,height:t,data:a},c.flipY=!1,c.isDataTexture=!0),e.readPixels(0,0,f,t,e.RGBA,e.UNSIGNED_BYTE,a)}}v(aa,"safariPre15Workaround");var Za=st({name:"Typesetter",dependencies:[Ia,Pa,Ln],init(h,r,c){return h(r,c())}}),oa=st({name:"Typesetter",dependencies:[Za],init(h){return function(r){return new Promise(c=>{h.typeset(r,c)})}},getTransferables(h){let r=[];for(let c in h)h[c]&&h[c].buffer&&r.push(h[c].buffer);return r}}),Qa=oa.onMainThread;var Hn={};function qa(h){let r=Hn[h];return r||(r=Hn[h]=new Jt(1,1,h,h).translate(.5,.5,0)),r}v(qa,"getTemplateGeometry");var $t="aTroikaGlyphBounds",Ot="aTroikaGlyphIndex",$a="aTroikaGlyphColor",Vr=class Vr extends Cn{constructor(){super(),this.detail=1,this.curveRadius=0,this.groups=[{start:0,count:1/0,materialIndex:0},{start:0,count:1/0,materialIndex:1}],this.boundingSphere=new Un,this.boundingBox=new Fr}computeBoundingSphere(){}computeBoundingBox(){}set detail(r){if(r!==this._detail){this._detail=r,(typeof r!="number"||r<1)&&(r=1);let c=qa(r);["position","normal","uv"].forEach(f=>{this.attributes[f]=c.attributes[f].clone()}),this.setIndex(c.getIndex().clone())}}get detail(){return this._detail}set curveRadius(r){r!==this._curveRadius&&(this._curveRadius=r,this._updateBounds())}get curveRadius(){return this._curveRadius}updateGlyphs(r,c,f,t,e){this.updateAttributeData($t,r,4),this.updateAttributeData(Ot,c,1),this.updateAttributeData($a,e,3),this._blockBounds=f,this._chunkedBounds=t,this.instanceCount=c.length,this._updateBounds()}_updateBounds(){let r=this._blockBounds;if(r){let{curveRadius:c,boundingBox:f}=this;if(c){let{PI:t,floor:e,min:a,max:i,sin:n,cos:o}=Math,s=t/2,l=t*2,u=Math.abs(c),d=r[0]/u,g=r[2]/u,m=e((d+s)/l)!==e((g+s)/l)?-u:a(n(d)*u,n(g)*u),y=e((d-s)/l)!==e((g-s)/l)?u:i(n(d)*u,n(g)*u),E=e((d+t)/l)!==e((g+t)/l)?u*2:i(u-o(d)*u,u-o(g)*u);f.min.set(m,r[1],c<0?-E:0),f.max.set(y,r[3],c<0?0:E)}else f.min.set(r[0],r[1],0),f.max.set(r[2],r[3],0);f.getBoundingSphere(this.boundingSphere)}}applyClipRect(r){let c=this.getAttribute(Ot).count,f=this._chunkedBounds;if(f)for(let t=f.length;t--;){c=f[t].end;let e=f[t].rect;if(e[1]<r.w&&e[3]>r.y&&e[0]<r.z&&e[2]>r.x)break}this.instanceCount=c}updateAttributeData(r,c,f){let t=this.getAttribute(r);c?t&&t.array.length===c.length?(t.array.set(c),t.needsUpdate=!0):(this.setAttribute(r,new Mn(c,f)),delete this._maxInstanceCount,this.dispose()):t&&this.deleteAttribute(r)}};v(Vr,"GlyphsGeometry");var Pr=Vr,eo="\nuniform vec2 uTroikaSDFTextureSize;\nuniform float uTroikaSDFGlyphSize;\nuniform vec4 uTroikaTotalBounds;\nuniform vec4 uTroikaClipRect;\nuniform mat3 uTroikaOrient;\nuniform bool uTroikaUseGlyphColors;\nuniform float uTroikaEdgeOffset;\nuniform float uTroikaBlurRadius;\nuniform vec2 uTroikaPositionOffset;\nuniform float uTroikaCurveRadius;\nattribute vec4 aTroikaGlyphBounds;\nattribute float aTroikaGlyphIndex;\nattribute vec3 aTroikaGlyphColor;\nvarying vec2 vTroikaGlyphUV;\nvarying vec4 vTroikaTextureUVBounds;\nvarying float vTroikaTextureChannel;\nvarying vec3 vTroikaGlyphColor;\nvarying vec2 vTroikaGlyphDimensions;\n",to="\nvec4 bounds = aTroikaGlyphBounds;\nbounds.xz += uTroikaPositionOffset.x;\nbounds.yw -= uTroikaPositionOffset.y;\n\nvec4 outlineBounds = vec4(\n bounds.xy - uTroikaEdgeOffset - uTroikaBlurRadius,\n bounds.zw + uTroikaEdgeOffset + uTroikaBlurRadius\n);\nvec4 clippedBounds = vec4(\n clamp(outlineBounds.xy, uTroikaClipRect.xy, uTroikaClipRect.zw),\n clamp(outlineBounds.zw, uTroikaClipRect.xy, uTroikaClipRect.zw)\n);\n\nvec2 clippedXY = (mix(clippedBounds.xy, clippedBounds.zw, position.xy) - bounds.xy) / (bounds.zw - bounds.xy);\n\nposition.xy = mix(bounds.xy, bounds.zw, clippedXY);\n\nuv = (position.xy - uTroikaTotalBounds.xy) / (uTroikaTotalBounds.zw - uTroikaTotalBounds.xy);\n\nfloat rad = uTroikaCurveRadius;\nif (rad != 0.0) {\n float angle = position.x / rad;\n position.xz = vec2(sin(angle) * rad, rad - cos(angle) * rad);\n normal.xz = vec2(sin(angle), cos(angle));\n}\n \nposition = uTroikaOrient * position;\nnormal = uTroikaOrient * normal;\n\nvTroikaGlyphUV = clippedXY.xy;\nvTroikaGlyphDimensions = vec2(bounds[2] - bounds[0], bounds[3] - bounds[1]);\n\n\nfloat txCols = uTroikaSDFTextureSize.x / uTroikaSDFGlyphSize;\nvec2 txUvPerSquare = uTroikaSDFGlyphSize / uTroikaSDFTextureSize;\nvec2 txStartUV = txUvPerSquare * vec2(\n mod(floor(aTroikaGlyphIndex / 4.0), txCols),\n floor(floor(aTroikaGlyphIndex / 4.0) / txCols)\n);\nvTroikaTextureUVBounds = vec4(txStartUV, vec2(txStartUV) + txUvPerSquare);\nvTroikaTextureChannel = mod(aTroikaGlyphIndex, 4.0);\n",ro="\nuniform sampler2D uTroikaSDFTexture;\nuniform vec2 uTroikaSDFTextureSize;\nuniform float uTroikaSDFGlyphSize;\nuniform float uTroikaSDFExponent;\nuniform float uTroikaEdgeOffset;\nuniform float uTroikaFillOpacity;\nuniform float uTroikaBlurRadius;\nuniform vec3 uTroikaStrokeColor;\nuniform float uTroikaStrokeWidth;\nuniform float uTroikaStrokeOpacity;\nuniform bool uTroikaSDFDebug;\nvarying vec2 vTroikaGlyphUV;\nvarying vec4 vTroikaTextureUVBounds;\nvarying float vTroikaTextureChannel;\nvarying vec2 vTroikaGlyphDimensions;\n\nfloat troikaSdfValueToSignedDistance(float alpha) {\n // Inverse of exponential encoding in webgl-sdf-generator\n \n float maxDimension = max(vTroikaGlyphDimensions.x, vTroikaGlyphDimensions.y);\n float absDist = (1.0 - pow(2.0 * (alpha > 0.5 ? 1.0 - alpha : alpha), 1.0 / uTroikaSDFExponent)) * maxDimension;\n float signedDist = absDist * (alpha > 0.5 ? -1.0 : 1.0);\n return signedDist;\n}\n\nfloat troikaGlyphUvToSdfValue(vec2 glyphUV) {\n vec2 textureUV = mix(vTroikaTextureUVBounds.xy, vTroikaTextureUVBounds.zw, glyphUV);\n vec4 rgba = texture2D(uTroikaSDFTexture, textureUV);\n float ch = floor(vTroikaTextureChannel + 0.5); //NOTE: can't use round() in WebGL1\n return ch == 0.0 ? rgba.r : ch == 1.0 ? rgba.g : ch == 2.0 ? rgba.b : rgba.a;\n}\n\nfloat troikaGlyphUvToDistance(vec2 uv) {\n return troikaSdfValueToSignedDistance(troikaGlyphUvToSdfValue(uv));\n}\n\nfloat troikaGetAADist() {\n \n #if defined(GL_OES_standard_derivatives) || __VERSION__ >= 300\n return length(fwidth(vTroikaGlyphUV * vTroikaGlyphDimensions)) * 0.5;\n #else\n return vTroikaGlyphDimensions.x / 64.0;\n #endif\n}\n\nfloat troikaGetFragDistValue() {\n vec2 clampedGlyphUV = clamp(vTroikaGlyphUV, 0.5 / uTroikaSDFGlyphSize, 1.0 - 0.5 / uTroikaSDFGlyphSize);\n float distance = troikaGlyphUvToDistance(clampedGlyphUV);\n \n // Extrapolate distance when outside bounds:\n distance += clampedGlyphUV == vTroikaGlyphUV ? 0.0 : \n length((vTroikaGlyphUV - clampedGlyphUV) * vTroikaGlyphDimensions);\n\n \n\n return distance;\n}\n\nfloat troikaGetEdgeAlpha(float distance, float distanceOffset, float aaDist) {\n #if defined(IS_DEPTH_MATERIAL) || defined(IS_DISTANCE_MATERIAL)\n float alpha = step(-distanceOffset, -distance);\n #else\n\n float alpha = smoothstep(\n distanceOffset + aaDist,\n distanceOffset - aaDist,\n distance\n );\n #endif\n\n return alpha;\n}\n",no="\nfloat aaDist = troikaGetAADist();\nfloat fragDistance = troikaGetFragDistValue();\nfloat edgeAlpha = uTroikaSDFDebug ?\n troikaGlyphUvToSdfValue(vTroikaGlyphUV) :\n troikaGetEdgeAlpha(fragDistance, uTroikaEdgeOffset, max(aaDist, uTroikaBlurRadius));\n\n#if !defined(IS_DEPTH_MATERIAL) && !defined(IS_DISTANCE_MATERIAL)\nvec4 fillRGBA = gl_FragColor;\nfillRGBA.a *= uTroikaFillOpacity;\nvec4 strokeRGBA = uTroikaStrokeWidth == 0.0 ? fillRGBA : vec4(uTroikaStrokeColor, uTroikaStrokeOpacity);\nif (fillRGBA.a == 0.0) fillRGBA.rgb = strokeRGBA.rgb;\ngl_FragColor = mix(fillRGBA, strokeRGBA, smoothstep(\n -uTroikaStrokeWidth - aaDist,\n -uTroikaStrokeWidth + aaDist,\n fragDistance\n));\ngl_FragColor.a *= edgeAlpha;\n#endif\n\nif (edgeAlpha == 0.0) {\n discard;\n}\n";function ia(h){let r=vt(h,{chained:!0,extensions:{derivatives:!0},uniforms:{uTroikaSDFTexture:{value:null},uTroikaSDFTextureSize:{value:new it},uTroikaSDFGlyphSize:{value:0},uTroikaSDFExponent:{value:0},uTroikaTotalBounds:{value:new wr(0,0,0,0)},uTroikaClipRect:{value:new wr(0,0,0,0)},uTroikaEdgeOffset:{value:0},uTroikaFillOpacity:{value:1},uTroikaPositionOffset:{value:new it},uTroikaCurveRadius:{value:0},uTroikaBlurRadius:{value:0},uTroikaStrokeWidth:{value:0},uTroikaStrokeColor:{value:new At},uTroikaStrokeOpacity:{value:1},uTroikaOrient:{value:new kn},uTroikaUseGlyphColors:{value:!0},uTroikaSDFDebug:{value:!1}},vertexDefs:eo,vertexTransform:to,fragmentDefs:ro,fragmentColorTransform:no,customRewriter({vertexShader:c,fragmentShader:f}){let t=/\buniform\s+vec3\s+diffuse\b/;return t.test(f)&&(f=f.replace(t,"varying vec3 vTroikaGlyphColor").replace(/\bdiffuse\b/g,"vTroikaGlyphColor"),t.test(c)||(c=c.replace(Br,"uniform vec3 diffuse;\n$&\nvTroikaGlyphColor = uTroikaUseGlyphColors ? aTroikaGlyphColor / 255.0 : diffuse;\n"))),{vertexShader:c,fragmentShader:f}}});return r.transparent=!0,r.forceSinglePass=!0,Object.defineProperties(r,{isTroikaTextMaterial:{value:!0},shadowSide:{get(){return this.side},set(){}}}),r}v(ia,"createTextDerivedMaterial");var Nr=new Sn({color:16777215,side:_r,transparent:!0}),Yn=8421504,Jn=new Mt,Qt=new He,Or=new He,Bt=[],ao=new He,Rr="+x+y";function Kn(h){return Array.isArray(h)?h[0]:h}v(Kn,"first");var sa=v(()=>{let h=new Dt(new Jt(1,1),Nr);return sa=v(()=>h,"getFlatRaycastMesh"),h},"getFlatRaycastMesh"),la=v(()=>{let h=new Dt(new Jt(1,1,32,1),Nr);return la=v(()=>h,"getCurvedRaycastMesh"),h},"getCurvedRaycastMesh"),oo={type:"syncstart"},io={type:"synccomplete"},fa=["font","fontSize","fontStyle","fontWeight","lang","letterSpacing","lineHeight","maxWidth","overflowWrap","text","direction","textAlign","textIndent","whiteSpace","anchorX","anchorY","colorRanges","sdfGlyphSize"],so=fa.concat("material","color","depthOffset","clipRect","curveRadius","orientation","glyphGeometryDetail"),jr=class jr extends Dt{constructor(){let r=new Pr;super(r,null),this.text="",this.anchorX=0,this.anchorY=0,this.curveRadius=0,this.direction="auto",this.font=null,this.unicodeFontsURL=null,this.fontSize=.1,this.fontWeight="normal",this.fontStyle="normal",this.lang=null,this.letterSpacing=0,this.lineHeight="normal",this.maxWidth=1/0,this.overflowWrap="normal",this.textAlign="left",this.textIndent=0,this.whiteSpace="normal",this.material=null,this.color=null,this.colorRanges=null,this.outlineWidth=0,this.outlineColor=0,this.outlineOpacity=1,this.outlineBlur=0,this.outlineOffsetX=0,this.outlineOffsetY=0,this.strokeWidth=0,this.strokeColor=Yn,this.strokeOpacity=1,this.fillOpacity=1,this.depthOffset=0,this.clipRect=null,this.orientation=Rr,this.glyphGeometryDetail=1,this.sdfGlyphSize=null,this.gpuAccelerateSDF=!0,this.debugSDF=!1}sync(r){this._needsSync&&(this._needsSync=!1,this._isSyncing?(this._queuedSyncs||(this._queuedSyncs=[])).push(r):(this._isSyncing=!0,this.dispatchEvent(oo),ta({text:this.text,font:this.font,lang:this.lang,fontSize:this.fontSize||.1,fontWeight:this.fontWeight||"normal",fontStyle:this.fontStyle||"normal",letterSpacing:this.letterSpacing||0,lineHeight:this.lineHeight||"normal",maxWidth:this.maxWidth,direction:this.direction||"auto",textAlign:this.textAlign,textIndent:this.textIndent,whiteSpace:this.whiteSpace,overflowWrap:this.overflowWrap,anchorX:this.anchorX,anchorY:this.anchorY,colorRanges:this.colorRanges,includeCaretPositions:!0,sdfGlyphSize:this.sdfGlyphSize,gpuAccelerateSDF:this.gpuAccelerateSDF,unicodeFontsURL:this.unicodeFontsURL},c=>{this._isSyncing=!1,this._textRenderInfo=c,this.geometry.updateGlyphs(c.glyphBounds,c.glyphAtlasIndices,c.blockBounds,c.chunkedBounds,c.glyphColors);let f=this._queuedSyncs;f&&(this._queuedSyncs=null,this._needsSync=!0,this.sync(()=>{f.forEach(t=>t&&t())})),this.dispatchEvent(io),r&&r()})))}onBeforeRender(r,c,f,t,e,a){this.sync(),e.isTroikaTextMaterial&&this._prepareForRender(e)}dispose(){this.geometry.dispose()}get textRenderInfo(){return this._textRenderInfo||null}createDerivedMaterial(r){return ia(r)}get material(){let r=this._derivedMaterial,c=this._baseMaterial||this._defaultMaterial||(this._defaultMaterial=Nr.clone());if((!r||!r.isDerivedFrom(c))&&(r=this._derivedMaterial=this.createDerivedMaterial(c),c.addEventListener("dispose",v(function f(){c.removeEventListener("dispose",f),r.dispose()},"onDispose"))),this.hasOutline()){let f=r._outlineMtl;return f||(f=r._outlineMtl=Object.create(r,{id:{value:r.id+.1}}),f.isTextOutlineMaterial=!0,f.depthWrite=!1,f.map=null,r.addEventListener("dispose",v(function t(){r.removeEventListener("dispose",t),f.dispose()},"onDispose"))),[f,r]}else return r}set material(r){r&&r.isTroikaTextMaterial?(this._derivedMaterial=r,this._baseMaterial=r.baseMaterial):this._baseMaterial=r}hasOutline(){return!!(this.outlineWidth||this.outlineBlur||this.outlineOffsetX||this.outlineOffsetY)}get glyphGeometryDetail(){return this.geometry.detail}set glyphGeometryDetail(r){this.geometry.detail=r}get curveRadius(){return this.geometry.curveRadius}set curveRadius(r){this.geometry.curveRadius=r}get customDepthMaterial(){return Kn(this.material).getDepthMaterial()}set customDepthMaterial(r){}get customDistanceMaterial(){return Kn(this.material).getDistanceMaterial()}set customDistanceMaterial(r){}_prepareForRender(r){let c=r.isTextOutlineMaterial,f=r.uniforms,t=this.textRenderInfo;if(t){let{sdfTexture:i,blockBounds:n}=t;f.uTroikaSDFTexture.value=i,f.uTroikaSDFTextureSize.value.set(i.image.width,i.image.height),f.uTroikaSDFGlyphSize.value=t.sdfGlyphSize,f.uTroikaSDFExponent.value=t.sdfExponent,f.uTroikaTotalBounds.value.fromArray(n),f.uTroikaUseGlyphColors.value=!c&&!!t.glyphColors;let o=0,s=0,l=0,u,d,g,m=0,y=0;if(c){let{outlineWidth:S,outlineOffsetX:U,outlineOffsetY:T,outlineBlur:w,outlineOpacity:D}=this;o=this._parsePercent(S)||0,s=Math.max(0,this._parsePercent(w)||0),u=D,m=this._parsePercent(U)||0,y=this._parsePercent(T)||0}else l=Math.max(0,this._parsePercent(this.strokeWidth)||0),l&&(g=this.strokeColor,f.uTroikaStrokeColor.value.set(g==null?Yn:g),d=this.strokeOpacity,d==null&&(d=1)),u=this.fillOpacity;f.uTroikaEdgeOffset.value=o,f.uTroikaPositionOffset.value.set(m,y),f.uTroikaBlurRadius.value=s,f.uTroikaStrokeWidth.value=l,f.uTroikaStrokeOpacity.value=d,f.uTroikaFillOpacity.value=u==null?1:u,f.uTroikaCurveRadius.value=this.curveRadius||0;let E=this.clipRect;if(E&&Array.isArray(E)&&E.length===4)f.uTroikaClipRect.value.fromArray(E);else{let S=(this.fontSize||.1)*100;f.uTroikaClipRect.value.set(n[0]-S,n[1]-S,n[2]+S,n[3]+S)}this.geometry.applyClipRect(f.uTroikaClipRect.value)}f.uTroikaSDFDebug.value=!!this.debugSDF,r.polygonOffset=!!this.depthOffset,r.polygonOffsetFactor=r.polygonOffsetUnits=this.depthOffset||0;let e=c?this.outlineColor||0:this.color;if(e==null)delete r.color;else{let i=r.hasOwnProperty("color")?r.color:r.color=new At;(e!==i._input||typeof e=="object")&&i.set(i._input=e)}let a=this.orientation||Rr;if(a!==r._orientation){let i=f.uTroikaOrient.value;a=a.replace(/[^-+xyz]/g,"");let n=a!==Rr&&a.match(/^([-+])([xyz])([-+])([xyz])$/);if(n){let[,o,s,l,u]=n;Qt.set(0,0,0)[s]=o==="-"?1:-1,Or.set(0,0,0)[u]=l==="-"?-1:1,Jn.lookAt(ao,Qt.cross(Or),Or),i.setFromMatrix4(Jn)}else i.identity();r._orientation=a}}_parsePercent(r){if(typeof r=="string"){let c=r.match(/^(-?[\d.]+)%$/),f=c?parseFloat(c[1]):NaN;r=(isNaN(f)?0:f/100)*this.fontSize}return r}localPositionToTextCoords(r,c=new it){c.copy(r);let f=this.curveRadius;return f&&(c.x=Math.atan2(r.x,Math.abs(f)-Math.abs(r.z))*Math.abs(f)),c}worldPositionToTextCoords(r,c=new it){return Qt.copy(r),this.localPositionToTextCoords(this.worldToLocal(Qt),c)}raycast(r,c){let{textRenderInfo:f,curveRadius:t}=this;if(f){let e=f.blockBounds,a=t?la():sa(),i=a.geometry,{position:n,uv:o}=i.attributes;for(let s=0;s<o.count;s++){let l=e[0]+o.getX(s)*(e[2]-e[0]),u=e[1]+o.getY(s)*(e[3]-e[1]),d=0;t&&(d=t-Math.cos(l/t)*t,l=Math.sin(l/t)*t),n.setXYZ(s,l,u,d)}i.boundingSphere=this.geometry.boundingSphere,i.boundingBox=this.geometry.boundingBox,a.matrixWorld=this.matrixWorld,a.material.side=this.material.side,Bt.length=0,a.raycast(r,Bt);for(let s=0;s<Bt.length;s++)Bt[s].object=this,c.push(Bt[s])}}copy(r){let c=this.geometry;return super.copy(r),this.geometry=c,so.forEach(f=>{this[f]=r[f]}),this}clone(){return new this.constructor().copy(this)}};v(jr,"Text");var Qe=jr;fa.forEach(h=>{let r="_private_"+h;Object.defineProperty(Qe.prototype,h,{get(){return this[r]},set(c){c!==this[r]&&(this[r]=c,this._needsSync=!0)}})});var lo={type:"syncstart"},fo={type:"synccomplete"},gt="aTroikaTextBatchMemberIndex",Ir=32,Zn=new Fr,Qn=new At,er=class er extends Qe{constructor(){super(),this._members=new Map,this._dataTextures={},this._onMemberSynced=r=>{this._members.get(r.target).dirty=!0}}add(...r){for(let c=0;c<r.length;c++)r[c]instanceof Qe?this.addText(r[c]):super.add(r[c]);return this}remove(...r){for(let c=0;c<r.length;c++)r[c]instanceof Qe?this.removeText(r[c]):super.remove(r[c]);return this}addText(r){this._members.has(r)||(this._members.set(r,{index:-1,glyphCount:-1,dirty:!0}),r.addEventListener("synccomplete",this._onMemberSynced))}removeText(r){this._needsRepack=!0,r.removeEventListener("synccomplete",this._onMemberSynced),this._members.delete(r)}createDerivedMaterial(r){return uo(r)}updateMatrixWorld(r){super.updateMatrixWorld(r),this.updateBounds()}updateBounds(){let r=this.geometry.boundingBox.makeEmpty();this._members.forEach((c,f)=>{f.matrixAutoUpdate&&f.updateMatrix(),Zn.copy(f.geometry.boundingBox).applyMatrix4(f.matrix),r.union(Zn)}),r.getBoundingSphere(this.geometry.boundingSphere)}hasOutline(){for(let r of this._members.keys())if(r.hasOutline())return!0;return!1}_prepareForRender(r){let c=r.isTextOutlineMaterial;r.uniforms.uTroikaIsOutline.value=c;let f=this._dataTextures[c?"outline":"main"],t=Math.pow(2,Math.ceil(Math.log2(this._members.size*Ir)));if(!f||t!==f.image.data.length){f&&f.dispose();let i=Math.min(t/4,1024);f=this._dataTextures[c?"outline":"main"]=new Fn(new Float32Array(t),i,t/4/i,bn,yn)}let e=f.image.data,a=v((i,n)=>{n!==e[i]&&(e[i]=n,f.needsUpdate=!0)},"setTexData");this._members.forEach(({index:i,dirty:n},o)=>{if(i>-1){let s=i*Ir,l=o.matrix.elements;for(let x=0;x<16;x++)a(s+x,l[x]);o._prepareForRender(r);let{uTroikaTotalBounds:u,uTroikaClipRect:d,uTroikaPositionOffset:g,uTroikaEdgeOffset:m,uTroikaBlurRadius:y,uTroikaStrokeWidth:E,uTroikaStrokeColor:S,uTroikaStrokeOpacity:U,uTroikaFillOpacity:T,uTroikaCurveRadius:w}=r.uniforms;for(let x=0;x<4;x++)a(s+16+x,u.value.getComponent(x));for(let x=0;x<4;x++)a(s+20+x,d.value.getComponent(x));let D=c?o.outlineColor||0:o.color;D==null&&(D=this.color),D==null&&(D=this.material.color),D==null&&(D=16777215),a(s+24,Qn.set(D).getHex()),a(s+25,T.value),a(s+26,w.value),c?(a(s+28,g.value.x),a(s+29,g.value.y),a(s+30,m.value),a(s+31,y.value)):(a(s+28,E.value),a(s+29,Qn.set(S.value).getHex()),a(s+30,U.value))}}),r.setMatrixTexture(f),super._prepareForRender(r)}sync(r){let c=this._needsRepack?[]:null;this._needsRepack=!1,this._members.forEach((f,t)=>{(f.dirty||t._needsSync)&&(f.dirty=!1,(c||(c=[])).push(new Promise(e=>{t._needsSync?t.sync(e):e()})))}),c&&(this.dispatchEvent(lo),Promise.all(c).then(()=>{let{geometry:f}=this,t=f.attributes,e=t[gt]&&t[gt].array||new Uint16Array(0),a=t[Ot]&&t[Ot].array||new Float32Array(0),i=t[$t]&&t[$t].array||new Float32Array(0),n=0;this._members.forEach((l,{textRenderInfo:u})=>{u&&(n+=u.glyphAtlasIndices.length,this._textRenderInfo=u)}),n!==e.length&&(e=Lr(e,n),a=Lr(a,n),i=Lr(i,n*4));let o=0,s=0;this._members.forEach((l,{textRenderInfo:u})=>{if(u){let d=u.glyphAtlasIndices.length;e.fill(o,s,s+d),a.set(u.glyphAtlasIndices,s,s+d),i.set(u.glyphBounds,s*4,(s+d)*4),s+=d,l.index=o++}}),f.updateAttributeData(gt,e,1),f.getAttribute(gt).setUsage(Tn),f.updateAttributeData(Ot,a,1),f.updateAttributeData($t,i,4),this.updateBounds(),this.dispatchEvent(fo),r&&r()}))}copy(r){return r instanceof er&&(super.copy(r),this._members.forEach((c,f)=>this.removeText(f)),r._members.forEach((c,f)=>this.addText(f))),this}dispose(){super.dispose(),Object.values(this._dataTextures).forEach(r=>r.dispose())}};v(er,"BatchedText");var zr=er;function Lr(h,r){let c=new h.constructor(r);return c.set(h.subarray(0,r)),c}v(Lr,"cloneAndResize");function uo(h){let r="uTroikaMatricesTexture",c="uTroikaMatricesTextureSize",f=vt(h,{chained:!0,uniforms:{[c]:{value:new it},[r]:{value:null}},vertexDefs:"\n uniform highp sampler2D ".concat(r,";\n uniform vec2 ").concat(c,";\n attribute float ").concat(gt,";\n\n vec4 troikaBatchTexel(float offset) {\n offset += ").concat(gt," * ").concat(Ir.toFixed(1)," / 4.0;\n float w = ").concat(c,".x;\n vec2 uv = (vec2(mod(offset, w), floor(offset / w)) + 0.5) / ").concat(c,";\n return texture2D(").concat(r,", uv);\n }\n "),vertexTransform:"\n mat4 matrix = mat4(\n troikaBatchTexel(0.0),\n troikaBatchTexel(1.0),\n troikaBatchTexel(2.0),\n troikaBatchTexel(3.0)\n );\n position.xyz = (matrix * vec4(position, 1.0)).xyz;\n "});return f=ia(f),f=vt(f,{chained:!0,uniforms:{uTroikaIsOutline:{value:!1}},customRewriter(t){return["uTroikaTotalBounds","uTroikaClipRect","uTroikaPositionOffset","uTroikaEdgeOffset","uTroikaBlurRadius","uTroikaStrokeWidth","uTroikaStrokeColor","uTroikaStrokeOpacity","uTroikaFillOpacity","uTroikaCurveRadius","diffuse"].forEach(a=>{t=co(t,a)}),t},vertexDefs:"\n uniform bool uTroikaIsOutline;\n vec3 troikaFloatToColor(float v) {\n return mod(floor(vec3(v / 65536.0, v / 256.0, v)), 256.0) / 256.0;\n }\n ",vertexTransform:"\n uTroikaTotalBounds = troikaBatchTexel(4.0);\n uTroikaClipRect = troikaBatchTexel(5.0);\n \n vec4 data = troikaBatchTexel(6.0);\n diffuse = troikaFloatToColor(data.x);\n uTroikaFillOpacity = data.y;\n uTroikaCurveRadius = data.z;\n \n data = troikaBatchTexel(7.0);\n if (uTroikaIsOutline) {\n if (data == vec4(0.0)) { // degenerate if zero outline\n position = vec3(0.0);\n } else {\n uTroikaPositionOffset = data.xy;\n uTroikaEdgeOffset = data.z;\n uTroikaBlurRadius = data.w;\n }\n } else {\n uTroikaStrokeWidth = data.x;\n uTroikaStrokeColor = troikaFloatToColor(data.y);\n uTroikaStrokeOpacity = data.z;\n }\n "}),f.setMatrixTexture=t=>{f.uniforms[r].value=t,f.uniforms[c].value.set(t.image.width,t.image.height)},f}v(uo,"createBatchedTextMaterial");function co({vertexShader:h,fragmentShader:r},c,f=c){let t=new RegExp("uniform\\s+(bool|float|vec[234]|mat[34])\\s+".concat(c,"\\b")),e,a=!1;r=r.replace(t,(n,o)=>(a=!0,"varying ".concat(e=o," ").concat(f)));let i=!1;return h=h.replace(t,(n,o)=>(i=!0,"".concat(a?"varying":""," ").concat(e=o," ").concat(f))),i||(h="".concat(a?"varying":""," ").concat(e," ").concat(f,";\n").concat(h)),{vertexShader:h,fragmentShader:r}}v(co,"uniformToVarying");ze();var ua="abcdefghijklmnopqrstuvwxyz";function ca(h){return new Promise((r,c)=>{h?typeof h=="string"?Wr({font:h,characters:ua},()=>{r(h)}):c(new Error("bad fontUrl ".concat(h))):import("./roboto-regular-NXH7N2CY.js").then(f=>{Wr({font:f.default,characters:ua},()=>{r(f.default)})})})}v(ca,"preloadFont");var Xr=.1,ho=new He;function ha(h,r,c,f){return r<=0||c<=0?Promise.reject("incoorect dimension [".concat(r,", ").concat(c,"]")):new Promise((t,e)=>{h.sync(a);function a(){if(!h.geometry.boundingBox)return;let{x:i,y:n}=h.geometry.boundingBox.getSize(ho);if(n>c||i>r){if(h.fontSize===Xr)return e("cannot find suitable font size for ".concat(h.text,". MaxSize: [").concat(r,", ").concat(c,"], Current size: [").concat(i,", ").concat(n,"]. min font size").concat(Xr,"."));h.fontSize=Math.max(Xr,h.fontSize-f),h.sync(a)}else return t({size:[i,n]})}v(a,"syncCallback")})}v(ha,"fitTextToArea");function vo(h){return new Promise(r=>{h.sync(()=>{r()})})}v(vo,"syncText");async function Hr(){return(await import("./roboto-regular-NXH7N2CY.js")).default}v(Hr,"loadDefaultFont");function Zo({useWorker:h=!0}){ea({useWorker:h})}v(Zo,"configureTroikaTextBuilder");var rr=new Mt,Ye=new He,po=new He(0,0,1);async function Qo(h,r,c,f){var o,s,l,u,d,g,m,y,E,S,U,T;let t=r.feature.properties,e=new Qe;r.textMesh=e,e.text=t.text,e.anchorX="center",e.anchorY="middle",e.textAlign=(o=t.align)!=null?o:"center",e.color=(s=t.color)!=null?s:"black",e.fontSize=t.fontSize||20;let a=(l=c.font)!=null?l:Ae.font;a?e.font=a:mt?e.font=await mt:e.font=await Hr(),e.outlineOpacity=(u=c.outlineOpacity)!=null?u:Ae.outlineOpacity,e.outlineColor=(d=c.outlineColor)!=null?d:Ae.outlineColor,e.outlineOffsetY=(g=c.outlineOffsetY)!=null?g:Ae.outlineOffsetY,e.outlineOffsetX=(m=c.outlineOffsetX)!=null?m:Ae.outlineOffsetX,e.outlineWidth=(y=c.outlineWidth)!=null?y:Ae.outlineWidth,e.outlineBlur=(E=c.outlineBlur)!=null?E:Ae.outlineBlur,e.strokeWidth=(S=c.strokeWidth)!=null?S:Ae.strokeWidth,e.strokeColor=(U=c.strokeColor)!=null?U:Ae.strokeColor,e.strokeOpacity=(T=c.strokeOpacity)!=null?T:Ae.strokeOpacity;let i=f(r.feature.geometry.coordinates);e.position.copy(i),e.position.z=t.verticalOffset;let n=Mr(Sr.degToRad(-t.rotation));return e.rotation.z=n,e.userData={entityId:h.toString(),rotationZ:n},{text:e}}v(Qo,"createTroikaTextPoint");async function qo(h,r,c,f){var U,T,w,D,x,A,W,O,Y,b,R,F,j,P,Z;let t=r.feature.properties,{textArea:e}=t;if(!e)throw new Error("textArea is required");let a=(U=c.margin)!=null?U:Ae.margin,[i,n,o,s]=Array.isArray(a)?a:[a,a,a,a],l=new Qe;l.text=t.content;let u=e.maxHeight-i-o,d=e.maxWidth-s-n;l.fontSize=Math.min(u,(T=c.fontSize)!=null?T:Ae.fontSize),l.color=(w=c.color)!=null?w:Ae.color,l.maxWidth=(D=c.maxWidth)!=null?D:d,l.anchorX="center",l.anchorY="middle",l.textAlign="center";let g=(x=c.font)!=null?x:Ae.font;g?l.font=g:mt?l.font=await mt:l.font=await Hr(),l.outlineOpacity=(A=c.outlineOpacity)!=null?A:Ae.outlineOpacity,l.outlineColor=(W=c.outlineColor)!=null?W:Ae.outlineColor,l.outlineOffsetY=(O=c.outlineOffsetY)!=null?O:Ae.outlineOffsetY,l.outlineOffsetX=(Y=c.outlineOffsetX)!=null?Y:Ae.outlineOffsetX,l.outlineWidth=(b=c.outlineWidth)!=null?b:Ae.outlineWidth,l.outlineBlur=(R=c.outlineBlur)!=null?R:Ae.outlineBlur,l.strokeWidth=(F=c.strokeWidth)!=null?F:Ae.strokeWidth,l.strokeColor=(j=c.strokeColor)!=null?j:Ae.strokeColor,l.strokeOpacity=(P=c.strokeOpacity)!=null?P:Ae.strokeOpacity;let m=f(e.position,Ye);l.position.copy(m);let y=Mr(Math.PI/2-Sr.degToRad(e.rotation));l.rotation.z=y,l.userData={entityId:h.toString(),rotationZ:y};let E,S;try{S=(await ha(l,d,u,l.fontSize*.2)).size}catch(ne){throw(Z=l.dispose)==null||Z.call(l),new Error("Cannot fit text to area: entityId: ".concat(r.polygonEntityId," ").concat(ne))}if(S)return rr.identity(),Ye.set(0,0,1),rr.makeRotationAxis(po,y),Ye.set(e.align==="near"?s+S[0]/2:e.maxWidth/2,0,0),Ye.applyMatrix4(rr),l.position.x-=Ye.x,l.position.y-=Ye.y,r.textMesh=l,E&&(Ye.set(e.maxWidth/2,0,0),Ye.applyMatrix4(rr),E.position.x-=Ye.x,E.position.y-=Ye.y),{text:l}}v(qo,"createTroikaTextArea");var mt;function $o(h){return mt=ca(h),mt}v($o,"preloadFont");export{zr as BatchedText,Qe as Text,Zo as configureTroikaTextBuilder,qo as createTroikaTextArea,Qo as createTroikaTextPoint,mt as fontPreloadLoadPromise,$o as preloadFont,vo as syncText};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mappedin/maplibre-overlay",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.9.1-beta.0",
|
|
4
4
|
"homepage": "https://developer.mappedin.com/",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "lib/esm/index.js",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"dependencies": {},
|
|
18
18
|
"peerDependencies": {
|
|
19
19
|
"maplibre-gl": "^5.6.0",
|
|
20
|
-
"@mappedin/mappedin-js": "^6.
|
|
20
|
+
"@mappedin/mappedin-js": "^6.9.1"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {},
|
|
23
23
|
"volta": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$ as Ge,A as Fe,B as ke,Da as k,M as F,Q as He,U as Ve,V as v,Y as V,a as Re,c as Ee,ca as U,g as Ne,gb as z,i as be,j as Se,k as Ue,l as Ce,la as G,m as _e,n as Le,o as Oe,p as ve,q as ze,t as Be,u as Pe,v as De}from"./chunk-TKKG67HL.js";import{c as T}from"./chunk-LUJQR5EH.js";Re();var Ye={POSITION:["byte","byte normalized","unsigned byte","unsigned byte normalized","short","short normalized","unsigned short","unsigned short normalized"],NORMAL:["byte normalized","short normalized"],TANGENT:["byte normalized","short normalized"],TEXCOORD:["byte","byte normalized","unsigned byte","short","short normalized","unsigned short"]},ae=class ae{constructor(){this.textureUtils=null,this.pluginCallbacks=[],this.register(function(e){return new q(e)}),this.register(function(e){return new X(e)}),this.register(function(e){return new Q(e)}),this.register(function(e){return new $(e)}),this.register(function(e){return new ee(e)}),this.register(function(e){return new se(e)}),this.register(function(e){return new W(e)}),this.register(function(e){return new J(e)}),this.register(function(e){return new Z(e)}),this.register(function(e){return new te(e)}),this.register(function(e){return new ne(e)}),this.register(function(e){return new ie(e)}),this.register(function(e){return new re(e)}),this.register(function(e){return new oe(e)})}register(e){return this.pluginCallbacks.indexOf(e)===-1&&this.pluginCallbacks.push(e),this}unregister(e){return this.pluginCallbacks.indexOf(e)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}setTextureUtils(e){return this.textureUtils=e,this}parse(e,s,n,t){let i=new j,r=[];for(let o=0,a=this.pluginCallbacks.length;o<a;o++)r.push(this.pluginCallbacks[o](i));i.setPlugins(r),i.setTextureUtils(this.textureUtils),i.writeAsync(e,s,t).catch(n)}parseAsync(e,s){let n=this;return new Promise(function(t,i){n.parse(e,t,i,s)})}};T(ae,"GLTFExporter");var P=ae,g={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,REPEAT:10497},Y="KHR_mesh_quantization",N={};N[Ce]=g.NEAREST;N[_e]=g.NEAREST_MIPMAP_NEAREST;N[Le]=g.NEAREST_MIPMAP_LINEAR;N[Oe]=g.LINEAR;N[ve]=g.LINEAR_MIPMAP_NEAREST;N[ze]=g.LINEAR_MIPMAP_LINEAR;N[Se]=g.CLAMP_TO_EDGE;N[be]=g.REPEAT;N[Ue]=g.MIRRORED_REPEAT;var Ke={scale:"scale",position:"translation",quaternion:"rotation",morphTargetInfluences:"weights"},Qe=new Ge,je=12,$e=1179937895,es=2,qe=8,ss=1313821514,ts=5130562;function B(c,e){return c.length===e.length&&c.every(function(s,n){return s===e[n]})}T(B,"equalArray");function ns(c){return new TextEncoder().encode(c).buffer}T(ns,"stringToArrayBuffer");function is(c){return B(c.elements,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}T(is,"isIdentityMatrix");function rs(c,e,s){let n={min:new Array(c.itemSize).fill(Number.POSITIVE_INFINITY),max:new Array(c.itemSize).fill(Number.NEGATIVE_INFINITY)};for(let t=e;t<e+s;t++)for(let i=0;i<c.itemSize;i++){let r;c.itemSize>4?r=c.array[t*c.itemSize+i]:(i===0?r=c.getX(t):i===1?r=c.getY(t):i===2?r=c.getZ(t):i===3&&(r=c.getW(t)),c.normalized===!0&&(r=F.normalize(r,c.array))),n.min[i]=Math.min(n.min[i],r),n.max[i]=Math.max(n.max[i],r)}return n}T(rs,"getMinMax");function Je(c){return Math.ceil(c/4)*4}T(Je,"getPaddedBufferSize");function K(c,e=0){let s=Je(c.byteLength);if(s!==c.byteLength){let n=new Uint8Array(s);if(n.set(new Uint8Array(c)),e!==0)for(let t=c.byteLength;t<s;t++)n[t]=e;return n.buffer}return c}T(K,"getPaddedArrayBuffer");function Xe(){return typeof document>"u"&&typeof OffscreenCanvas<"u"?new OffscreenCanvas(1,1):document.createElement("canvas")}T(Xe,"getCanvas");function We(c,e){if(c.toBlob!==void 0)return new Promise(n=>c.toBlob(n,e));let s;return e==="image/jpeg"?s=.92:e==="image/webp"&&(s=.8),c.convertToBlob({type:e,quality:s})}T(We,"getToBlobPromise");var ce=class ce{constructor(){this.plugins=[],this.options={},this.pending=[],this.buffers=[],this.byteOffset=0,this.buffers=[],this.nodeMap=new Map,this.skins=[],this.extensionsUsed={},this.extensionsRequired={},this.uids=new Map,this.uid=0,this.json={asset:{version:"2.0",generator:"THREE.GLTFExporter r"+Ee}},this.cache={meshes:new Map,attributes:new Map,attributesNormalized:new Map,materials:new Map,textures:new Map,images:new Map},this.textureUtils=null}setPlugins(e){this.plugins=e}setTextureUtils(e){this.textureUtils=e}async writeAsync(e,s,n={}){this.options=Object.assign({binary:!1,trs:!1,onlyVisible:!0,maxTextureSize:1/0,animations:[],includeCustomExtensions:!1},n),this.options.animations.length>0&&(this.options.trs=!0),await this.processInputAsync(e),await Promise.all(this.pending);let t=this,i=t.buffers,r=t.json;n=t.options;let o=t.extensionsUsed,a=t.extensionsRequired,l=new Blob(i,{type:"application/octet-stream"}),h=Object.keys(o),u=Object.keys(a);if(h.length>0&&(r.extensionsUsed=h),u.length>0&&(r.extensionsRequired=u),r.buffers&&r.buffers.length>0&&(r.buffers[0].byteLength=l.size),n.binary===!0){let w=new FileReader;w.readAsArrayBuffer(l),w.onloadend=function(){let f=K(w.result),p=new DataView(new ArrayBuffer(qe));p.setUint32(0,f.byteLength,!0),p.setUint32(4,ts,!0);let d=K(ns(JSON.stringify(r)),32),y=new DataView(new ArrayBuffer(qe));y.setUint32(0,d.byteLength,!0),y.setUint32(4,ss,!0);let M=new ArrayBuffer(je),b=new DataView(M);b.setUint32(0,$e,!0),b.setUint32(4,es,!0);let D=je+y.byteLength+d.byteLength+p.byteLength+f.byteLength;b.setUint32(8,D,!0);let x=new Blob([M,y,d,p,f],{type:"application/octet-stream"}),A=new FileReader;A.readAsArrayBuffer(x),A.onloadend=function(){s(A.result)}}}else if(r.buffers&&r.buffers.length>0){let w=new FileReader;w.readAsDataURL(l),w.onloadend=function(){let f=w.result;r.buffers[0].uri=f,s(r)}}else s(r)}serializeUserData(e,s){if(Object.keys(e.userData).length===0)return;let n=this.options,t=this.extensionsUsed;try{let i=JSON.parse(JSON.stringify(e.userData));if(n.includeCustomExtensions&&i.gltfExtensions){s.extensions===void 0&&(s.extensions={});for(let r in i.gltfExtensions)s.extensions[r]=i.gltfExtensions[r],t[r]=!0;delete i.gltfExtensions}Object.keys(i).length>0&&(s.extras=i)}catch(i){console.warn("THREE.GLTFExporter: userData of '"+e.name+"' won't be serialized because of JSON.stringify error - "+i.message)}}getUID(e,s=!1){if(this.uids.has(e)===!1){let t=new Map;t.set(!0,this.uid++),t.set(!1,this.uid++),this.uids.set(e,t)}return this.uids.get(e).get(s)}isNormalizedNormalAttribute(e){if(this.cache.attributesNormalized.has(e))return!1;let n=new v;for(let t=0,i=e.count;t<i;t++)if(Math.abs(n.fromBufferAttribute(e,t).length()-1)>5e-4)return!1;return!0}createNormalizedNormalAttribute(e){let s=this.cache;if(s.attributesNormalized.has(e))return s.attributesNormalized.get(e);let n=e.clone(),t=new v;for(let i=0,r=n.count;i<r;i++)t.fromBufferAttribute(n,i),t.x===0&&t.y===0&&t.z===0?t.setX(1):t.normalize(),n.setXYZ(i,t.x,t.y,t.z);return s.attributesNormalized.set(e,n),n}applyTextureTransform(e,s){let n=!1,t={};(s.offset.x!==0||s.offset.y!==0)&&(t.offset=s.offset.toArray(),n=!0),s.rotation!==0&&(t.rotation=s.rotation,n=!0),(s.repeat.x!==1||s.repeat.y!==1)&&(t.scale=s.repeat.toArray(),n=!0),n&&(e.extensions=e.extensions||{},e.extensions.KHR_texture_transform=t,this.extensionsUsed.KHR_texture_transform=!0)}async buildMetalRoughTextureAsync(e,s){if(e===s)return e;function n(f){return f.colorSpace===ke?T(function(d){return d<.04045?d*.0773993808:Math.pow(d*.9478672986+.0521327014,2.4)},"SRGBToLinear"):T(function(d){return d},"LinearToLinear")}T(n,"getEncodingConversion"),e instanceof k&&(e=await this.decompressTextureAsync(e)),s instanceof k&&(s=await this.decompressTextureAsync(s));let t=e?e.image:null,i=s?s.image:null,r=Math.max(t?t.width:0,i?i.width:0),o=Math.max(t?t.height:0,i?i.height:0),a=Xe();a.width=r,a.height=o;let l=a.getContext("2d",{willReadFrequently:!0});l.fillStyle="#00ffff",l.fillRect(0,0,r,o);let h=l.getImageData(0,0,r,o);if(t){l.drawImage(t,0,0,r,o);let f=n(e),p=l.getImageData(0,0,r,o).data;for(let d=2;d<p.length;d+=4)h.data[d]=f(p[d]/256)*256}if(i){l.drawImage(i,0,0,r,o);let f=n(s),p=l.getImageData(0,0,r,o).data;for(let d=1;d<p.length;d+=4)h.data[d]=f(p[d]/256)*256}l.putImageData(h,0,0);let w=(e||s).clone();return w.source=new He(a),w.colorSpace=Fe,w.channel=(e||s).channel,e&&s&&e.channel!==s.channel&&console.warn("THREE.GLTFExporter: UV channels for metalnessMap and roughnessMap textures must match."),console.warn("THREE.GLTFExporter: Merged metalnessMap and roughnessMap textures."),w}async decompressTextureAsync(e,s=1/0){if(this.textureUtils===null)throw new Error("THREE.GLTFExporter: setTextureUtils() must be called to process compressed textures.");return await this.textureUtils.decompress(e,s)}processBuffer(e){let s=this.json,n=this.buffers;return s.buffers||(s.buffers=[{byteLength:0}]),n.push(e),0}processBufferView(e,s,n,t,i){let r=this.json;r.bufferViews||(r.bufferViews=[]);let o;switch(s){case g.BYTE:case g.UNSIGNED_BYTE:o=1;break;case g.SHORT:case g.UNSIGNED_SHORT:o=2;break;default:o=4}let a=e.itemSize*o;i===g.ARRAY_BUFFER&&(a=Math.ceil(a/4)*4);let l=Je(t*a),h=new DataView(new ArrayBuffer(l)),u=0;for(let p=n;p<n+t;p++){for(let d=0;d<e.itemSize;d++){let y;e.itemSize>4?y=e.array[p*e.itemSize+d]:(d===0?y=e.getX(p):d===1?y=e.getY(p):d===2?y=e.getZ(p):d===3&&(y=e.getW(p)),e.normalized===!0&&(y=F.normalize(y,e.array))),s===g.FLOAT?h.setFloat32(u,y,!0):s===g.INT?h.setInt32(u,y,!0):s===g.UNSIGNED_INT?h.setUint32(u,y,!0):s===g.SHORT?h.setInt16(u,y,!0):s===g.UNSIGNED_SHORT?h.setUint16(u,y,!0):s===g.BYTE?h.setInt8(u,y):s===g.UNSIGNED_BYTE&&h.setUint8(u,y),u+=o}u%a!==0&&(u+=a-u%a)}let w={buffer:this.processBuffer(h.buffer),byteOffset:this.byteOffset,byteLength:l};return i!==void 0&&(w.target=i),i===g.ARRAY_BUFFER&&(w.byteStride=a),this.byteOffset+=l,r.bufferViews.push(w),{id:r.bufferViews.length-1,byteLength:0}}processBufferViewImage(e){let s=this,n=s.json;return n.bufferViews||(n.bufferViews=[]),new Promise(function(t){let i=new FileReader;i.readAsArrayBuffer(e),i.onloadend=function(){let r=K(i.result),o={buffer:s.processBuffer(r),byteOffset:s.byteOffset,byteLength:r.byteLength};s.byteOffset+=r.byteLength,t(n.bufferViews.push(o)-1)}})}processAccessor(e,s,n,t){let i=this.json,r={1:"SCALAR",2:"VEC2",3:"VEC3",4:"VEC4",9:"MAT3",16:"MAT4"},o;if(e.array.constructor===Float32Array)o=g.FLOAT;else if(e.array.constructor===Int32Array)o=g.INT;else if(e.array.constructor===Uint32Array)o=g.UNSIGNED_INT;else if(e.array.constructor===Int16Array)o=g.SHORT;else if(e.array.constructor===Uint16Array)o=g.UNSIGNED_SHORT;else if(e.array.constructor===Int8Array)o=g.BYTE;else if(e.array.constructor===Uint8Array)o=g.UNSIGNED_BYTE;else throw new Error("THREE.GLTFExporter: Unsupported bufferAttribute component type: "+e.array.constructor.name);if(n===void 0&&(n=0),(t===void 0||t===1/0)&&(t=e.count),t===0)return null;let a=rs(e,n,t),l;s!==void 0&&(l=e===s.index?g.ELEMENT_ARRAY_BUFFER:g.ARRAY_BUFFER);let h=this.processBufferView(e,o,n,t,l),u={bufferView:h.id,byteOffset:h.byteOffset,componentType:o,count:t,max:a.max,min:a.min,type:r[e.itemSize]};return e.normalized===!0&&(u.normalized=!0),i.accessors||(i.accessors=[]),i.accessors.push(u)-1}processImage(e,s,n,t="image/png"){if(e!==null){let i=this,r=i.cache,o=i.json,a=i.options,l=i.pending;r.images.has(e)||r.images.set(e,{});let h=r.images.get(e),u=t+":flipY/"+n.toString();if(h[u]!==void 0)return h[u];o.images||(o.images=[]);let w={mimeType:t},f=Xe();f.width=Math.min(e.width,a.maxTextureSize),f.height=Math.min(e.height,a.maxTextureSize);let p=f.getContext("2d",{willReadFrequently:!0});if(n===!0&&(p.translate(0,f.height),p.scale(1,-1)),e.data!==void 0){s!==Be&&console.error("GLTFExporter: Only RGBAFormat is supported.",s),(e.width>a.maxTextureSize||e.height>a.maxTextureSize)&&console.warn("GLTFExporter: Image size is bigger than maxTextureSize",e);let y=new Uint8ClampedArray(e.height*e.width*4);for(let M=0;M<y.length;M+=4)y[M+0]=e.data[M+0],y[M+1]=e.data[M+1],y[M+2]=e.data[M+2],y[M+3]=e.data[M+3];p.putImageData(new ImageData(y,e.width,e.height),0,0)}else if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas)p.drawImage(e,0,0,f.width,f.height);else throw new Error("THREE.GLTFExporter: Invalid image type. Use HTMLImageElement, HTMLCanvasElement, ImageBitmap or OffscreenCanvas.");a.binary===!0?l.push(We(f,t).then(y=>i.processBufferViewImage(y)).then(y=>{w.bufferView=y})):f.toDataURL!==void 0?w.uri=f.toDataURL(t):l.push(We(f,t).then(y=>new FileReader().readAsDataURL(y)).then(y=>{w.uri=y}));let d=o.images.push(w)-1;return h[u]=d,d}else throw new Error("THREE.GLTFExporter: No valid image data found. Unable to process texture.")}processSampler(e){let s=this.json;s.samplers||(s.samplers=[]);let n={magFilter:N[e.magFilter],minFilter:N[e.minFilter],wrapS:N[e.wrapS],wrapT:N[e.wrapT]};return s.samplers.push(n)-1}async processTextureAsync(e){let n=this.options,t=this.cache,i=this.json;if(t.textures.has(e))return t.textures.get(e);i.textures||(i.textures=[]),e instanceof k&&(e=await this.decompressTextureAsync(e,n.maxTextureSize));let r=e.userData.mimeType;r==="image/webp"&&(r="image/png");let o={sampler:this.processSampler(e),source:this.processImage(e.image,e.format,e.flipY,r)};e.name&&(o.name=e.name),await this._invokeAllAsync(async function(l){l.writeTexture&&await l.writeTexture(e,o)});let a=i.textures.push(o)-1;return t.textures.set(e,a),a}async processMaterialAsync(e){let s=this.cache,n=this.json;if(s.materials.has(e))return s.materials.get(e);if(e.isShaderMaterial)return console.warn("GLTFExporter: THREE.ShaderMaterial not supported."),null;n.materials||(n.materials=[]);let t={pbrMetallicRoughness:{}};e.isMeshStandardMaterial!==!0&&e.isMeshBasicMaterial!==!0&&console.warn("GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.");let i=e.color.toArray().concat([e.opacity]);if(B(i,[1,1,1,1])||(t.pbrMetallicRoughness.baseColorFactor=i),e.isMeshStandardMaterial?(t.pbrMetallicRoughness.metallicFactor=e.metalness,t.pbrMetallicRoughness.roughnessFactor=e.roughness):(t.pbrMetallicRoughness.metallicFactor=0,t.pbrMetallicRoughness.roughnessFactor=1),e.metalnessMap||e.roughnessMap){let o=await this.buildMetalRoughTextureAsync(e.metalnessMap,e.roughnessMap),a={index:await this.processTextureAsync(o),texCoord:o.channel};this.applyTextureTransform(a,o),t.pbrMetallicRoughness.metallicRoughnessTexture=a}if(e.map){let o={index:await this.processTextureAsync(e.map),texCoord:e.map.channel};this.applyTextureTransform(o,e.map),t.pbrMetallicRoughness.baseColorTexture=o}if(e.emissive){let o=e.emissive;if(Math.max(o.r,o.g,o.b)>0&&(t.emissiveFactor=e.emissive.toArray()),e.emissiveMap){let l={index:await this.processTextureAsync(e.emissiveMap),texCoord:e.emissiveMap.channel};this.applyTextureTransform(l,e.emissiveMap),t.emissiveTexture=l}}if(e.normalMap){let o={index:await this.processTextureAsync(e.normalMap),texCoord:e.normalMap.channel};e.normalScale&&e.normalScale.x!==1&&(o.scale=e.normalScale.x),this.applyTextureTransform(o,e.normalMap),t.normalTexture=o}if(e.aoMap){let o={index:await this.processTextureAsync(e.aoMap),texCoord:e.aoMap.channel};e.aoMapIntensity!==1&&(o.strength=e.aoMapIntensity),this.applyTextureTransform(o,e.aoMap),t.occlusionTexture=o}e.transparent?t.alphaMode="BLEND":e.alphaTest>0&&(t.alphaMode="MASK",t.alphaCutoff=e.alphaTest),e.side===Ne&&(t.doubleSided=!0),e.name!==""&&(t.name=e.name),this.serializeUserData(e,t),await this._invokeAllAsync(async function(o){o.writeMaterialAsync&&await o.writeMaterialAsync(e,t)});let r=n.materials.push(t)-1;return s.materials.set(e,r),r}async processMeshAsync(e){let s=this.cache,n=this.json,t=[e.geometry.uuid];if(Array.isArray(e.material))for(let x=0,A=e.material.length;x<A;x++)t.push(e.material[x].uuid);else t.push(e.material.uuid);let i=t.join(":");if(s.meshes.has(i))return s.meshes.get(i);let r=e.geometry,o;e.isLineSegments?o=g.LINES:e.isLineLoop?o=g.LINE_LOOP:e.isLine?o=g.LINE_STRIP:e.isPoints?o=g.POINTS:o=e.material.wireframe?g.LINES:g.TRIANGLES;let a={},l={},h=[],u=[],w={uv:"TEXCOORD_0",uv1:"TEXCOORD_1",uv2:"TEXCOORD_2",uv3:"TEXCOORD_3",color:"COLOR_0",skinWeight:"WEIGHTS_0",skinIndex:"JOINTS_0"},f=r.getAttribute("normal");f!==void 0&&!this.isNormalizedNormalAttribute(f)&&(console.warn("THREE.GLTFExporter: Creating normalized normal attribute from the non-normalized one."),r.setAttribute("normal",this.createNormalizedNormalAttribute(f)));let p=null;for(let x in r.attributes){if(x.slice(0,5)==="morph")continue;let A=r.attributes[x];if(x=w[x]||x.toUpperCase(),/^(POSITION|NORMAL|TANGENT|TEXCOORD_\d+|COLOR_\d+|JOINTS_\d+|WEIGHTS_\d+)$/.test(x)||(x="_"+x),s.attributes.has(this.getUID(A))){l[x]=s.attributes.get(this.getUID(A));continue}p=null;let m=A.array;x==="JOINTS_0"&&!(m instanceof Uint16Array)&&!(m instanceof Uint8Array)?(console.warn('GLTFExporter: Attribute "skinIndex" converted to type UNSIGNED_SHORT.'),p=new U(new Uint16Array(m),A.itemSize,A.normalized)):(m instanceof Uint32Array||m instanceof Int32Array)&&!x.startsWith("_")&&(console.warn('GLTFExporter: Attribute "'.concat(x,'" converted to type FLOAT.')),p=P.Utils.toFloat32BufferAttribute(A));let E=this.processAccessor(p||A,r);E!==null&&(x.startsWith("_")||this.detectMeshQuantization(x,A),l[x]=E,s.attributes.set(this.getUID(A),E))}if(f!==void 0&&r.setAttribute("normal",f),Object.keys(l).length===0)return null;if(e.morphTargetInfluences!==void 0&&e.morphTargetInfluences.length>0){let x=[],A=[],I={};if(e.morphTargetDictionary!==void 0)for(let m in e.morphTargetDictionary)I[e.morphTargetDictionary[m]]=m;for(let m=0;m<e.morphTargetInfluences.length;++m){let E={},Ie=!1;for(let _ in r.morphAttributes){if(_!=="position"&&_!=="normal"){Ie||(console.warn("GLTFExporter: Only POSITION and NORMAL morph are supported."),Ie=!0);continue}let S=r.morphAttributes[_][m],H=_.toUpperCase(),L=r.attributes[_];if(s.attributes.has(this.getUID(S,!0))){E[H]=s.attributes.get(this.getUID(S,!0));continue}let O=S.clone();if(!r.morphTargetsRelative)for(let R=0,Ze=S.count;R<Ze;R++)for(let C=0;C<S.itemSize;C++)C===0&&O.setX(R,S.getX(R)-L.getX(R)),C===1&&O.setY(R,S.getY(R)-L.getY(R)),C===2&&O.setZ(R,S.getZ(R)-L.getZ(R)),C===3&&O.setW(R,S.getW(R)-L.getW(R));E[H]=this.processAccessor(O,r),s.attributes.set(this.getUID(L,!0),E[H])}u.push(E),x.push(e.morphTargetInfluences[m]),e.morphTargetDictionary!==void 0&&A.push(I[m])}a.weights=x,A.length>0&&(a.extras={},a.extras.targetNames=A)}let d=Array.isArray(e.material);if(d&&r.groups.length===0)return null;let y=!1;if(d&&r.index===null){let x=[];for(let A=0,I=r.attributes.position.count;A<I;A++)x[A]=A;r.setIndex(x),y=!0}let M=d?e.material:[e.material],b=d?r.groups:[{materialIndex:0,start:void 0,count:void 0}];for(let x=0,A=b.length;x<A;x++){let I={mode:o,attributes:l};if(this.serializeUserData(r,I),u.length>0&&(I.targets=u),r.index!==null){let E=this.getUID(r.index);(b[x].start!==void 0||b[x].count!==void 0)&&(E+=":"+b[x].start+":"+b[x].count),s.attributes.has(E)?I.indices=s.attributes.get(E):(I.indices=this.processAccessor(r.index,r,b[x].start,b[x].count),s.attributes.set(E,I.indices)),I.indices===null&&delete I.indices}let m=await this.processMaterialAsync(M[b[x].materialIndex]);m!==null&&(I.material=m),h.push(I)}y===!0&&r.setIndex(null),a.primitives=h,n.meshes||(n.meshes=[]),await this._invokeAllAsync(function(x){x.writeMesh&&x.writeMesh(e,a)});let D=n.meshes.push(a)-1;return s.meshes.set(i,D),D}detectMeshQuantization(e,s){if(this.extensionsUsed[Y])return;let n;switch(s.array.constructor){case Int8Array:n="byte";break;case Uint8Array:n="unsigned byte";break;case Int16Array:n="short";break;case Uint16Array:n="unsigned short";break;default:return}s.normalized&&(n+=" normalized");let t=e.split("_",1)[0];Ye[t]&&Ye[t].includes(n)&&(this.extensionsUsed[Y]=!0,this.extensionsRequired[Y]=!0)}processCamera(e){let s=this.json;s.cameras||(s.cameras=[]);let n=e.isOrthographicCamera,t={type:n?"orthographic":"perspective"};return n?t.orthographic={xmag:e.right*2,ymag:e.top*2,zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near}:t.perspective={aspectRatio:e.aspect,yfov:F.degToRad(e.fov),zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near},e.name!==""&&(t.name=e.type),s.cameras.push(t)-1}processAnimation(e,s){let n=this.json,t=this.nodeMap;n.animations||(n.animations=[]),e=P.Utils.mergeMorphTargetTracks(e.clone(),s);let i=e.tracks,r=[],o=[];for(let a=0;a<i.length;++a){let l=i[a],h=z.parseTrackName(l.name),u=z.findNode(s,h.nodeName),w=Ke[h.propertyName];if(h.objectName==="bones"&&(u.isSkinnedMesh===!0?u=u.skeleton.getBoneByName(h.objectIndex):u=void 0),!u||!w){console.warn('THREE.GLTFExporter: Could not export animation track "%s".',l.name);continue}let f=1,p=l.values.length/l.times.length;w===Ke.morphTargetInfluences&&(p/=u.morphTargetInfluences.length);let d;l.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline===!0?(d="CUBICSPLINE",p/=3):l.getInterpolation()===Pe?d="STEP":d="LINEAR",o.push({input:this.processAccessor(new U(l.times,f)),output:this.processAccessor(new U(l.values,p)),interpolation:d}),r.push({sampler:o.length-1,target:{node:t.get(u),path:w}})}return n.animations.push({name:e.name||"clip_"+n.animations.length,samplers:o,channels:r}),n.animations.length-1}processSkin(e){let s=this.json,n=this.nodeMap,t=s.nodes[n.get(e)],i=e.skeleton;if(i===void 0)return null;let r=e.skeleton.bones[0];if(r===void 0)return null;let o=[],a=new Float32Array(i.bones.length*16),l=new V;for(let u=0;u<i.bones.length;++u)o.push(n.get(i.bones[u])),l.copy(i.boneInverses[u]),l.multiply(e.bindMatrix).toArray(a,u*16);return s.skins===void 0&&(s.skins=[]),s.skins.push({inverseBindMatrices:this.processAccessor(new U(a,16)),joints:o,skeleton:n.get(r)}),t.skin=s.skins.length-1}async processNodeAsync(e){let s=this.json,n=this.options,t=this.nodeMap;s.nodes||(s.nodes=[]);let i={};if(n.trs){let o=e.quaternion.toArray(),a=e.position.toArray(),l=e.scale.toArray();B(o,[0,0,0,1])||(i.rotation=o),B(a,[0,0,0])||(i.translation=a),B(l,[1,1,1])||(i.scale=l)}else e.matrixAutoUpdate&&e.updateMatrix(),is(e.matrix)===!1&&(i.matrix=e.matrix.elements);if(e.name!==""&&(i.name=String(e.name)),this.serializeUserData(e,i),e.isMesh||e.isLine||e.isPoints){let o=await this.processMeshAsync(e);o!==null&&(i.mesh=o)}else e.isCamera&&(i.camera=this.processCamera(e));if(e.isSkinnedMesh&&this.skins.push(e),e.children.length>0){let o=[];for(let a=0,l=e.children.length;a<l;a++){let h=e.children[a];if(h.visible||n.onlyVisible===!1){let u=await this.processNodeAsync(h);u!==null&&o.push(u)}}o.length>0&&(i.children=o)}await this._invokeAllAsync(function(o){o.writeNode&&o.writeNode(e,i)});let r=s.nodes.push(i)-1;return t.set(e,r),r}async processSceneAsync(e){let s=this.json,n=this.options;s.scenes||(s.scenes=[],s.scene=0);let t={};e.name!==""&&(t.name=e.name),s.scenes.push(t);let i=[];for(let r=0,o=e.children.length;r<o;r++){let a=e.children[r];if(a.visible||n.onlyVisible===!1){let l=await this.processNodeAsync(a);l!==null&&i.push(l)}}i.length>0&&(t.nodes=i),this.serializeUserData(e,t)}async processObjectsAsync(e){let s=new G;s.name="AuxScene";for(let n=0;n<e.length;n++)s.children.push(e[n]);await this.processSceneAsync(s)}async processInputAsync(e){let s=this.options;e=e instanceof Array?e:[e],await this._invokeAllAsync(function(t){t.beforeParse&&t.beforeParse(e)});let n=[];for(let t=0;t<e.length;t++)e[t]instanceof G?await this.processSceneAsync(e[t]):n.push(e[t]);n.length>0&&await this.processObjectsAsync(n);for(let t=0;t<this.skins.length;++t)this.processSkin(this.skins[t]);for(let t=0;t<s.animations.length;++t)this.processAnimation(s.animations[t],e[0]);await this._invokeAllAsync(function(t){t.afterParse&&t.afterParse(e)})}async _invokeAllAsync(e){for(let s=0,n=this.plugins.length;s<n;s++)await e(this.plugins[s])}};T(ce,"GLTFWriter");var j=ce,ue=class ue{constructor(e){this.writer=e,this.name="KHR_lights_punctual"}writeNode(e,s){if(!e.isLight)return;if(!e.isDirectionalLight&&!e.isPointLight&&!e.isSpotLight){console.warn("THREE.GLTFExporter: Only directional, point, and spot lights are supported.",e);return}let n=this.writer,t=n.json,i=n.extensionsUsed,r={};e.name&&(r.name=e.name),r.color=e.color.toArray(),r.intensity=e.intensity,e.isDirectionalLight?r.type="directional":e.isPointLight?(r.type="point",e.distance>0&&(r.range=e.distance)):e.isSpotLight&&(r.type="spot",e.distance>0&&(r.range=e.distance),r.spot={},r.spot.innerConeAngle=(1-e.penumbra)*e.angle,r.spot.outerConeAngle=e.angle),e.decay!==void 0&&e.decay!==2&&console.warn("THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, and expects light.decay=2."),e.target&&(e.target.parent!==e||e.target.position.x!==0||e.target.position.y!==0||e.target.position.z!==-1)&&console.warn("THREE.GLTFExporter: Light direction may be lost. For best results, make light.target a child of the light with position 0,0,-1."),i[this.name]||(t.extensions=t.extensions||{},t.extensions[this.name]={lights:[]},i[this.name]=!0);let o=t.extensions[this.name].lights;o.push(r),s.extensions=s.extensions||{},s.extensions[this.name]={light:o.length-1}}};T(ue,"GLTFLightExtension");var q=ue,le=class le{constructor(e){this.writer=e,this.name="KHR_materials_unlit"}async writeMaterialAsync(e,s){if(!e.isMeshBasicMaterial)return;let t=this.writer.extensionsUsed;s.extensions=s.extensions||{},s.extensions[this.name]={},t[this.name]=!0,s.pbrMetallicRoughness.metallicFactor=0,s.pbrMetallicRoughness.roughnessFactor=.9}};T(le,"GLTFMaterialsUnlitExtension");var X=le,fe=class fe{constructor(e){this.writer=e,this.name="KHR_materials_clearcoat"}async writeMaterialAsync(e,s){if(!e.isMeshPhysicalMaterial||e.clearcoat===0)return;let n=this.writer,t=n.extensionsUsed,i={};if(i.clearcoatFactor=e.clearcoat,e.clearcoatMap){let r={index:await n.processTextureAsync(e.clearcoatMap),texCoord:e.clearcoatMap.channel};n.applyTextureTransform(r,e.clearcoatMap),i.clearcoatTexture=r}if(i.clearcoatRoughnessFactor=e.clearcoatRoughness,e.clearcoatRoughnessMap){let r={index:await n.processTextureAsync(e.clearcoatRoughnessMap),texCoord:e.clearcoatRoughnessMap.channel};n.applyTextureTransform(r,e.clearcoatRoughnessMap),i.clearcoatRoughnessTexture=r}if(e.clearcoatNormalMap){let r={index:await n.processTextureAsync(e.clearcoatNormalMap),texCoord:e.clearcoatNormalMap.channel};e.clearcoatNormalScale.x!==1&&(r.scale=e.clearcoatNormalScale.x),n.applyTextureTransform(r,e.clearcoatNormalMap),i.clearcoatNormalTexture=r}s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}};T(fe,"GLTFMaterialsClearcoatExtension");var W=fe,he=class he{constructor(e){this.writer=e,this.name="KHR_materials_dispersion"}async writeMaterialAsync(e,s){if(!e.isMeshPhysicalMaterial||e.dispersion===0)return;let t=this.writer.extensionsUsed,i={};i.dispersion=e.dispersion,s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}};T(he,"GLTFMaterialsDispersionExtension");var J=he,pe=class pe{constructor(e){this.writer=e,this.name="KHR_materials_iridescence"}async writeMaterialAsync(e,s){if(!e.isMeshPhysicalMaterial||e.iridescence===0)return;let n=this.writer,t=n.extensionsUsed,i={};if(i.iridescenceFactor=e.iridescence,e.iridescenceMap){let r={index:await n.processTextureAsync(e.iridescenceMap),texCoord:e.iridescenceMap.channel};n.applyTextureTransform(r,e.iridescenceMap),i.iridescenceTexture=r}if(i.iridescenceIor=e.iridescenceIOR,i.iridescenceThicknessMinimum=e.iridescenceThicknessRange[0],i.iridescenceThicknessMaximum=e.iridescenceThicknessRange[1],e.iridescenceThicknessMap){let r={index:await n.processTextureAsync(e.iridescenceThicknessMap),texCoord:e.iridescenceThicknessMap.channel};n.applyTextureTransform(r,e.iridescenceThicknessMap),i.iridescenceThicknessTexture=r}s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}};T(pe,"GLTFMaterialsIridescenceExtension");var Z=pe,de=class de{constructor(e){this.writer=e,this.name="KHR_materials_transmission"}async writeMaterialAsync(e,s){if(!e.isMeshPhysicalMaterial||e.transmission===0)return;let n=this.writer,t=n.extensionsUsed,i={};if(i.transmissionFactor=e.transmission,e.transmissionMap){let r={index:await n.processTextureAsync(e.transmissionMap),texCoord:e.transmissionMap.channel};n.applyTextureTransform(r,e.transmissionMap),i.transmissionTexture=r}s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}};T(de,"GLTFMaterialsTransmissionExtension");var Q=de,xe=class xe{constructor(e){this.writer=e,this.name="KHR_materials_volume"}async writeMaterialAsync(e,s){if(!e.isMeshPhysicalMaterial||e.transmission===0)return;let n=this.writer,t=n.extensionsUsed,i={};if(i.thicknessFactor=e.thickness,e.thicknessMap){let r={index:await n.processTextureAsync(e.thicknessMap),texCoord:e.thicknessMap.channel};n.applyTextureTransform(r,e.thicknessMap),i.thicknessTexture=r}e.attenuationDistance!==1/0&&(i.attenuationDistance=e.attenuationDistance),i.attenuationColor=e.attenuationColor.toArray(),s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}};T(xe,"GLTFMaterialsVolumeExtension");var $=xe,ye=class ye{constructor(e){this.writer=e,this.name="KHR_materials_ior"}async writeMaterialAsync(e,s){if(!e.isMeshPhysicalMaterial||e.ior===1.5)return;let t=this.writer.extensionsUsed,i={};i.ior=e.ior,s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}};T(ye,"GLTFMaterialsIorExtension");var ee=ye,ge=class ge{constructor(e){this.writer=e,this.name="KHR_materials_specular"}async writeMaterialAsync(e,s){if(!e.isMeshPhysicalMaterial||e.specularIntensity===1&&e.specularColor.equals(Qe)&&!e.specularIntensityMap&&!e.specularColorMap)return;let n=this.writer,t=n.extensionsUsed,i={};if(e.specularIntensityMap){let r={index:await n.processTextureAsync(e.specularIntensityMap),texCoord:e.specularIntensityMap.channel};n.applyTextureTransform(r,e.specularIntensityMap),i.specularTexture=r}if(e.specularColorMap){let r={index:await n.processTextureAsync(e.specularColorMap),texCoord:e.specularColorMap.channel};n.applyTextureTransform(r,e.specularColorMap),i.specularColorTexture=r}i.specularFactor=e.specularIntensity,i.specularColorFactor=e.specularColor.toArray(),s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}};T(ge,"GLTFMaterialsSpecularExtension");var se=ge,we=class we{constructor(e){this.writer=e,this.name="KHR_materials_sheen"}async writeMaterialAsync(e,s){if(!e.isMeshPhysicalMaterial||e.sheen==0)return;let n=this.writer,t=n.extensionsUsed,i={};if(e.sheenRoughnessMap){let r={index:await n.processTextureAsync(e.sheenRoughnessMap),texCoord:e.sheenRoughnessMap.channel};n.applyTextureTransform(r,e.sheenRoughnessMap),i.sheenRoughnessTexture=r}if(e.sheenColorMap){let r={index:await n.processTextureAsync(e.sheenColorMap),texCoord:e.sheenColorMap.channel};n.applyTextureTransform(r,e.sheenColorMap),i.sheenColorTexture=r}i.sheenRoughnessFactor=e.sheenRoughness,i.sheenColorFactor=e.sheenColor.toArray(),s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}};T(we,"GLTFMaterialsSheenExtension");var te=we,Te=class Te{constructor(e){this.writer=e,this.name="KHR_materials_anisotropy"}async writeMaterialAsync(e,s){if(!e.isMeshPhysicalMaterial||e.anisotropy==0)return;let n=this.writer,t=n.extensionsUsed,i={};if(e.anisotropyMap){let r={index:await n.processTextureAsync(e.anisotropyMap)};n.applyTextureTransform(r,e.anisotropyMap),i.anisotropyTexture=r}i.anisotropyStrength=e.anisotropy,i.anisotropyRotation=e.anisotropyRotation,s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}};T(Te,"GLTFMaterialsAnisotropyExtension");var ne=Te,Ae=class Ae{constructor(e){this.writer=e,this.name="KHR_materials_emissive_strength"}async writeMaterialAsync(e,s){if(!e.isMeshStandardMaterial||e.emissiveIntensity===1)return;let t=this.writer.extensionsUsed,i={};i.emissiveStrength=e.emissiveIntensity,s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}};T(Ae,"GLTFMaterialsEmissiveStrengthExtension");var ie=Ae,me=class me{constructor(e){this.writer=e,this.name="EXT_materials_bump"}async writeMaterialAsync(e,s){if(!e.isMeshStandardMaterial||e.bumpScale===1&&!e.bumpMap)return;let n=this.writer,t=n.extensionsUsed,i={};if(e.bumpMap){let r={index:await n.processTextureAsync(e.bumpMap),texCoord:e.bumpMap.channel};n.applyTextureTransform(r,e.bumpMap),i.bumpTexture=r}i.bumpFactor=e.bumpScale,s.extensions=s.extensions||{},s.extensions[this.name]=i,t[this.name]=!0}};T(me,"GLTFMaterialsBumpExtension");var re=me,Me=class Me{constructor(e){this.writer=e,this.name="EXT_mesh_gpu_instancing"}writeNode(e,s){if(!e.isInstancedMesh)return;let n=this.writer,t=e,i=new Float32Array(t.count*3),r=new Float32Array(t.count*4),o=new Float32Array(t.count*3),a=new V,l=new v,h=new Ve,u=new v;for(let f=0;f<t.count;f++)t.getMatrixAt(f,a),a.decompose(l,h,u),l.toArray(i,f*3),h.toArray(r,f*4),u.toArray(o,f*3);let w={TRANSLATION:n.processAccessor(new U(i,3)),ROTATION:n.processAccessor(new U(r,4)),SCALE:n.processAccessor(new U(o,3))};t.instanceColor&&(w._COLOR_0=n.processAccessor(t.instanceColor)),s.extensions=s.extensions||{},s.extensions[this.name]={attributes:w},n.extensionsUsed[this.name]=!0,n.extensionsRequired[this.name]=!0}};T(Me,"GLTFMeshGpuInstancing");var oe=Me;P.Utils={insertKeyframe:T(function(c,e){let n=c.getValueSize(),t=new c.TimeBufferType(c.times.length+1),i=new c.ValueBufferType(c.values.length+n),r=c.createInterpolant(new c.ValueBufferType(n)),o;if(c.times.length===0){t[0]=e;for(let a=0;a<n;a++)i[a]=0;o=0}else if(e<c.times[0]){if(Math.abs(c.times[0]-e)<.001)return 0;t[0]=e,t.set(c.times,1),i.set(r.evaluate(e),0),i.set(c.values,n),o=0}else if(e>c.times[c.times.length-1]){if(Math.abs(c.times[c.times.length-1]-e)<.001)return c.times.length-1;t[t.length-1]=e,t.set(c.times,0),i.set(c.values,0),i.set(r.evaluate(e),c.values.length),o=t.length-1}else for(let a=0;a<c.times.length;a++){if(Math.abs(c.times[a]-e)<.001)return a;if(c.times[a]<e&&c.times[a+1]>e){t.set(c.times.slice(0,a+1),0),t[a+1]=e,t.set(c.times.slice(a+1),a+2),i.set(c.values.slice(0,(a+1)*n),0),i.set(r.evaluate(e),(a+1)*n),i.set(c.values.slice((a+1)*n),(a+2)*n),o=a+1;break}}return c.times=t,c.values=i,o},"insertKeyframe"),mergeMorphTargetTracks:T(function(c,e){let s=[],n={},t=c.tracks;for(let i=0;i<t.length;++i){let r=t[i],o=z.parseTrackName(r.name),a=z.findNode(e,o.nodeName);if(o.propertyName!=="morphTargetInfluences"||o.propertyIndex===void 0){s.push(r);continue}if(r.createInterpolant!==r.InterpolantFactoryMethodDiscrete&&r.createInterpolant!==r.InterpolantFactoryMethodLinear){if(r.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline)throw new Error("THREE.GLTFExporter: Cannot merge tracks with glTF CUBICSPLINE interpolation.");console.warn("THREE.GLTFExporter: Morph target interpolation mode not yet supported. Using LINEAR instead."),r=r.clone(),r.setInterpolation(De)}let l=a.morphTargetInfluences.length,h=a.morphTargetDictionary[o.propertyIndex];if(h===void 0)throw new Error("THREE.GLTFExporter: Morph target name not found: "+o.propertyIndex);let u;if(n[a.uuid]===void 0){u=r.clone();let f=new u.ValueBufferType(l*u.times.length);for(let p=0;p<u.times.length;p++)f[p*l+h]=u.values[p];u.name=(o.nodeName||"")+".morphTargetInfluences",u.values=f,n[a.uuid]=u,s.push(u);continue}let w=r.createInterpolant(new r.ValueBufferType(1));u=n[a.uuid];for(let f=0;f<u.times.length;f++)u.values[f*l+h]=w.evaluate(u.times[f]);for(let f=0;f<r.times.length;f++){let p=this.insertKeyframe(u,r.times[f]);u.values[p*l+h]=r.values[f]}}return c.tracks=s,c},"mergeMorphTargetTracks"),toFloat32BufferAttribute:T(function(c){let e=new U(new Float32Array(c.count*c.itemSize),c.itemSize,!1);if(!c.normalized&&!c.isInterleavedBufferAttribute)return e.array.set(c.array),e;for(let s=0,n=c.count;s<n;s++)for(let t=0;t<c.itemSize;t++)e.setComponent(s,t,c.getComponent(s,t));return e},"toFloat32BufferAttribute")};export{P as GLTFExporter};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as ce}from"./chunk-HVZGK3U6.js";import{$ as O,$a as zt,Aa as Bt,B as k,Ba as vt,C as b,Ca as Ut,M as Et,Ma as se,N as J,Na as w,P as $,R as ee,Ra as jt,Sa as re,Ta as ie,U as te,Ua as oe,V as D,Va as Kt,W as xt,Wa as Ft,X as St,Xa as ae,Y as j,Ya as Vt,Za as Xt,_ as ne,_a as Gt,a as lt,aa as X,ab as qt,ba as H,ca as G,cb as B,da as yt,e as ft,ea as wt,eb as Wt,g as dt,gb as Yt,i as F,j as ht,ja as Nt,k as pt,ka as z,l as Y,m as mt,ma as bt,n as At,na as Mt,o as V,oa as It,p as gt,pa as Lt,q as Q,ra as Ot,sa as Ct,ta as Dt,u as Tt,v as Z,x as Rt,xa as Pt,y as _t,ya as kt,za as Ht}from"./chunk-TKKG67HL.js";import{c as p}from"./chunk-LUJQR5EH.js";lt();var ve=class ve extends Ft{constructor(t){super(t),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(e){return new me(e)}),this.register(function(e){return new Ae(e)}),this.register(function(e){return new we(e)}),this.register(function(e){return new Ne(e)}),this.register(function(e){return new be(e)}),this.register(function(e){return new Te(e)}),this.register(function(e){return new Re(e)}),this.register(function(e){return new _e(e)}),this.register(function(e){return new Ee(e)}),this.register(function(e){return new pe(e)}),this.register(function(e){return new xe(e)}),this.register(function(e){return new ge(e)}),this.register(function(e){return new ye(e)}),this.register(function(e){return new Se(e)}),this.register(function(e){return new de(e)}),this.register(function(e){return new Me(e)}),this.register(function(e){return new Ie(e)})}load(t,e,r,n){let s=this,i;if(this.resourcePath!=="")i=this.resourcePath;else if(this.path!==""){let c=B.extractUrlBase(t);i=B.resolveURL(c,this.path)}else i=B.extractUrlBase(t);this.manager.itemStart(t);let a=p(function(c){n?n(c):console.error(c),s.manager.itemError(t),s.manager.itemEnd(t)},"_onError"),o=new ae(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(t,function(c){try{s.parse(c,i,function(l){e(l),s.manager.itemEnd(t)},a)}catch(l){a(l)}},r,a)}setDRACOLoader(t){return this.dracoLoader=t,this}setKTX2Loader(t){return this.ktx2Loader=t,this}setMeshoptDecoder(t){return this.meshoptDecoder=t,this}register(t){return this.pluginCallbacks.indexOf(t)===-1&&this.pluginCallbacks.push(t),this}unregister(t){return this.pluginCallbacks.indexOf(t)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(t),1),this}parse(t,e,r,n){let s,i={},a={},o=new TextDecoder;if(typeof t=="string")s=JSON.parse(t);else if(t instanceof ArrayBuffer)if(o.decode(new Uint8Array(t,0,4))===tn){try{i[g.KHR_BINARY_GLTF]=new Le(t)}catch(u){n&&n(u);return}s=JSON.parse(i[g.KHR_BINARY_GLTF].content)}else s=JSON.parse(o.decode(t));else s=t;if(s.asset===void 0||s.asset.version[0]<2){n&&n(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}let c=new Be(s,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});c.fileLoader.setRequestHeader(this.requestHeader);for(let l=0;l<this.pluginCallbacks.length;l++){let u=this.pluginCallbacks[l](c);u.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),a[u.name]=u,i[u.name]=!0}if(s.extensionsUsed)for(let l=0;l<s.extensionsUsed.length;++l){let u=s.extensionsUsed[l],f=s.extensionsRequired||[];switch(u){case g.KHR_MATERIALS_UNLIT:i[u]=new he;break;case g.KHR_DRACO_MESH_COMPRESSION:i[u]=new Oe(s,this.dracoLoader);break;case g.KHR_TEXTURE_TRANSFORM:i[u]=new Ce;break;case g.KHR_MESH_QUANTIZATION:i[u]=new De;break;default:f.indexOf(u)>=0&&a[u]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+u+'".')}}c.setExtensions(i),c.setPlugins(a),c.parse(r,n)}parseAsync(t,e){let r=this;return new Promise(function(n,s){r.parse(t,e,n,s)})}};p(ve,"GLTFLoader");var Qt=ve;function nn(){let h={};return{get:p(function(t){return h[t]},"get"),add:p(function(t,e){h[t]=e},"add"),remove:p(function(t){delete h[t]},"remove"),removeAll:p(function(){h={}},"removeAll")}}p(nn,"GLTFRegistry");var g={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"},Ue=class Ue{constructor(t){this.parser=t,this.name=g.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let t=this.parser,e=this.parser.json.nodes||[];for(let r=0,n=e.length;r<n;r++){let s=e[r];s.extensions&&s.extensions[this.name]&&s.extensions[this.name].light!==void 0&&t._addNodeRef(this.cache,s.extensions[this.name].light)}}_loadLight(t){let e=this.parser,r="light:"+t,n=e.cache.get(r);if(n)return n;let s=e.json,o=((s.extensions&&s.extensions[this.name]||{}).lights||[])[t],c,l=new O(16777215);o.color!==void 0&&l.setRGB(o.color[0],o.color[1],o.color[2],b);let u=o.range!==void 0?o.range:0;switch(o.type){case"directional":c=new qt(l),c.target.position.set(0,0,-1),c.add(c.target);break;case"point":c=new Gt(l),c.distance=u;break;case"spot":c=new Xt(l),c.distance=u,o.spot=o.spot||{},o.spot.innerConeAngle=o.spot.innerConeAngle!==void 0?o.spot.innerConeAngle:0,o.spot.outerConeAngle=o.spot.outerConeAngle!==void 0?o.spot.outerConeAngle:Math.PI/4,c.angle=o.spot.outerConeAngle,c.penumbra=1-o.spot.innerConeAngle/o.spot.outerConeAngle,c.target.position.set(0,0,-1),c.add(c.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+o.type)}return c.position.set(0,0,0),M(c,o),o.intensity!==void 0&&(c.intensity=o.intensity),c.name=e.createUniqueName(o.name||"light_"+t),n=Promise.resolve(c),e.cache.add(r,n),n}getDependency(t,e){if(t==="light")return this._loadLight(e)}createNodeAttachment(t){let e=this,r=this.parser,s=r.json.nodes[t],a=(s.extensions&&s.extensions[this.name]||{}).light;return a===void 0?null:this._loadLight(a).then(function(o){return r._getNodeRef(e.cache,a,o)})}};p(Ue,"GLTFLightsExtension");var de=Ue,je=class je{constructor(){this.name=g.KHR_MATERIALS_UNLIT}getMaterialType(){return H}extendParams(t,e,r){let n=[];t.color=new O(1,1,1),t.opacity=1;let s=e.pbrMetallicRoughness;if(s){if(Array.isArray(s.baseColorFactor)){let i=s.baseColorFactor;t.color.setRGB(i[0],i[1],i[2],b),t.opacity=i[3]}s.baseColorTexture!==void 0&&n.push(r.assignTexture(t,"map",s.baseColorTexture,k))}return Promise.all(n)}};p(je,"GLTFMaterialsUnlitExtension");var he=je,Ke=class Ke{constructor(t){this.parser=t,this.name=g.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(t,e){let n=this.parser.json.materials[t];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let s=n.extensions[this.name].emissiveStrength;return s!==void 0&&(e.emissiveIntensity=s),Promise.resolve()}};p(Ke,"GLTFMaterialsEmissiveStrengthExtension");var pe=Ke,Fe=class Fe{constructor(t){this.parser=t,this.name=g.KHR_MATERIALS_CLEARCOAT}getMaterialType(t){let r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:w}extendMaterialParams(t,e){let r=this.parser,n=r.json.materials[t];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let s=[],i=n.extensions[this.name];if(i.clearcoatFactor!==void 0&&(e.clearcoat=i.clearcoatFactor),i.clearcoatTexture!==void 0&&s.push(r.assignTexture(e,"clearcoatMap",i.clearcoatTexture)),i.clearcoatRoughnessFactor!==void 0&&(e.clearcoatRoughness=i.clearcoatRoughnessFactor),i.clearcoatRoughnessTexture!==void 0&&s.push(r.assignTexture(e,"clearcoatRoughnessMap",i.clearcoatRoughnessTexture)),i.clearcoatNormalTexture!==void 0&&(s.push(r.assignTexture(e,"clearcoatNormalMap",i.clearcoatNormalTexture)),i.clearcoatNormalTexture.scale!==void 0)){let a=i.clearcoatNormalTexture.scale;e.clearcoatNormalScale=new J(a,a)}return Promise.all(s)}};p(Fe,"GLTFMaterialsClearcoatExtension");var me=Fe,Ve=class Ve{constructor(t){this.parser=t,this.name=g.KHR_MATERIALS_DISPERSION}getMaterialType(t){let r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:w}extendMaterialParams(t,e){let n=this.parser.json.materials[t];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let s=n.extensions[this.name];return e.dispersion=s.dispersion!==void 0?s.dispersion:0,Promise.resolve()}};p(Ve,"GLTFMaterialsDispersionExtension");var Ae=Ve,Xe=class Xe{constructor(t){this.parser=t,this.name=g.KHR_MATERIALS_IRIDESCENCE}getMaterialType(t){let r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:w}extendMaterialParams(t,e){let r=this.parser,n=r.json.materials[t];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let s=[],i=n.extensions[this.name];return i.iridescenceFactor!==void 0&&(e.iridescence=i.iridescenceFactor),i.iridescenceTexture!==void 0&&s.push(r.assignTexture(e,"iridescenceMap",i.iridescenceTexture)),i.iridescenceIor!==void 0&&(e.iridescenceIOR=i.iridescenceIor),e.iridescenceThicknessRange===void 0&&(e.iridescenceThicknessRange=[100,400]),i.iridescenceThicknessMinimum!==void 0&&(e.iridescenceThicknessRange[0]=i.iridescenceThicknessMinimum),i.iridescenceThicknessMaximum!==void 0&&(e.iridescenceThicknessRange[1]=i.iridescenceThicknessMaximum),i.iridescenceThicknessTexture!==void 0&&s.push(r.assignTexture(e,"iridescenceThicknessMap",i.iridescenceThicknessTexture)),Promise.all(s)}};p(Xe,"GLTFMaterialsIridescenceExtension");var ge=Xe,Ge=class Ge{constructor(t){this.parser=t,this.name=g.KHR_MATERIALS_SHEEN}getMaterialType(t){let r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:w}extendMaterialParams(t,e){let r=this.parser,n=r.json.materials[t];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let s=[];e.sheenColor=new O(0,0,0),e.sheenRoughness=0,e.sheen=1;let i=n.extensions[this.name];if(i.sheenColorFactor!==void 0){let a=i.sheenColorFactor;e.sheenColor.setRGB(a[0],a[1],a[2],b)}return i.sheenRoughnessFactor!==void 0&&(e.sheenRoughness=i.sheenRoughnessFactor),i.sheenColorTexture!==void 0&&s.push(r.assignTexture(e,"sheenColorMap",i.sheenColorTexture,k)),i.sheenRoughnessTexture!==void 0&&s.push(r.assignTexture(e,"sheenRoughnessMap",i.sheenRoughnessTexture)),Promise.all(s)}};p(Ge,"GLTFMaterialsSheenExtension");var Te=Ge,ze=class ze{constructor(t){this.parser=t,this.name=g.KHR_MATERIALS_TRANSMISSION}getMaterialType(t){let r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:w}extendMaterialParams(t,e){let r=this.parser,n=r.json.materials[t];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let s=[],i=n.extensions[this.name];return i.transmissionFactor!==void 0&&(e.transmission=i.transmissionFactor),i.transmissionTexture!==void 0&&s.push(r.assignTexture(e,"transmissionMap",i.transmissionTexture)),Promise.all(s)}};p(ze,"GLTFMaterialsTransmissionExtension");var Re=ze,qe=class qe{constructor(t){this.parser=t,this.name=g.KHR_MATERIALS_VOLUME}getMaterialType(t){let r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:w}extendMaterialParams(t,e){let r=this.parser,n=r.json.materials[t];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let s=[],i=n.extensions[this.name];e.thickness=i.thicknessFactor!==void 0?i.thicknessFactor:0,i.thicknessTexture!==void 0&&s.push(r.assignTexture(e,"thicknessMap",i.thicknessTexture)),e.attenuationDistance=i.attenuationDistance||1/0;let a=i.attenuationColor||[1,1,1];return e.attenuationColor=new O().setRGB(a[0],a[1],a[2],b),Promise.all(s)}};p(qe,"GLTFMaterialsVolumeExtension");var _e=qe,We=class We{constructor(t){this.parser=t,this.name=g.KHR_MATERIALS_IOR}getMaterialType(t){let r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:w}extendMaterialParams(t,e){let n=this.parser.json.materials[t];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let s=n.extensions[this.name];return e.ior=s.ior!==void 0?s.ior:1.5,Promise.resolve()}};p(We,"GLTFMaterialsIorExtension");var Ee=We,Ye=class Ye{constructor(t){this.parser=t,this.name=g.KHR_MATERIALS_SPECULAR}getMaterialType(t){let r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:w}extendMaterialParams(t,e){let r=this.parser,n=r.json.materials[t];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let s=[],i=n.extensions[this.name];e.specularIntensity=i.specularFactor!==void 0?i.specularFactor:1,i.specularTexture!==void 0&&s.push(r.assignTexture(e,"specularIntensityMap",i.specularTexture));let a=i.specularColorFactor||[1,1,1];return e.specularColor=new O().setRGB(a[0],a[1],a[2],b),i.specularColorTexture!==void 0&&s.push(r.assignTexture(e,"specularColorMap",i.specularColorTexture,k)),Promise.all(s)}};p(Ye,"GLTFMaterialsSpecularExtension");var xe=Ye,Qe=class Qe{constructor(t){this.parser=t,this.name=g.EXT_MATERIALS_BUMP}getMaterialType(t){let r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:w}extendMaterialParams(t,e){let r=this.parser,n=r.json.materials[t];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let s=[],i=n.extensions[this.name];return e.bumpScale=i.bumpFactor!==void 0?i.bumpFactor:1,i.bumpTexture!==void 0&&s.push(r.assignTexture(e,"bumpMap",i.bumpTexture)),Promise.all(s)}};p(Qe,"GLTFMaterialsBumpExtension");var Se=Qe,Ze=class Ze{constructor(t){this.parser=t,this.name=g.KHR_MATERIALS_ANISOTROPY}getMaterialType(t){let r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:w}extendMaterialParams(t,e){let r=this.parser,n=r.json.materials[t];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let s=[],i=n.extensions[this.name];return i.anisotropyStrength!==void 0&&(e.anisotropy=i.anisotropyStrength),i.anisotropyRotation!==void 0&&(e.anisotropyRotation=i.anisotropyRotation),i.anisotropyTexture!==void 0&&s.push(r.assignTexture(e,"anisotropyMap",i.anisotropyTexture)),Promise.all(s)}};p(Ze,"GLTFMaterialsAnisotropyExtension");var ye=Ze,Je=class Je{constructor(t){this.parser=t,this.name=g.KHR_TEXTURE_BASISU}loadTexture(t){let e=this.parser,r=e.json,n=r.textures[t];if(!n.extensions||!n.extensions[this.name])return null;let s=n.extensions[this.name],i=e.options.ktx2Loader;if(!i){if(r.extensionsRequired&&r.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return e.loadTextureImage(t,s.source,i)}};p(Je,"GLTFTextureBasisUExtension");var we=Je,$e=class $e{constructor(t){this.parser=t,this.name=g.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(t){let e=this.name,r=this.parser,n=r.json,s=n.textures[t];if(!s.extensions||!s.extensions[e])return null;let i=s.extensions[e],a=n.images[i.source],o=r.textureLoader;if(a.uri){let c=r.options.manager.getHandler(a.uri);c!==null&&(o=c)}return this.detectSupport().then(function(c){if(c)return r.loadTextureImage(t,i.source,o);if(n.extensionsRequired&&n.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return r.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){let e=new Image;e.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.onload=e.onerror=function(){t(e.height===1)}})),this.isSupported}};p($e,"GLTFTextureWebPExtension");var Ne=$e,et=class et{constructor(t){this.parser=t,this.name=g.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(t){let e=this.name,r=this.parser,n=r.json,s=n.textures[t];if(!s.extensions||!s.extensions[e])return null;let i=s.extensions[e],a=n.images[i.source],o=r.textureLoader;if(a.uri){let c=r.options.manager.getHandler(a.uri);c!==null&&(o=c)}return this.detectSupport().then(function(c){if(c)return r.loadTextureImage(t,i.source,o);if(n.extensionsRequired&&n.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return r.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){let e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",e.onload=e.onerror=function(){t(e.height===1)}})),this.isSupported}};p(et,"GLTFTextureAVIFExtension");var be=et,tt=class tt{constructor(t){this.name=g.EXT_MESHOPT_COMPRESSION,this.parser=t}loadBufferView(t){let e=this.parser.json,r=e.bufferViews[t];if(r.extensions&&r.extensions[this.name]){let n=r.extensions[this.name],s=this.parser.getDependency("buffer",n.buffer),i=this.parser.options.meshoptDecoder;if(!i||!i.supported){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return s.then(function(a){let o=n.byteOffset||0,c=n.byteLength||0,l=n.count,u=n.byteStride,f=new Uint8Array(a,o,c);return i.decodeGltfBufferAsync?i.decodeGltfBufferAsync(l,u,f,n.mode,n.filter).then(function(d){return d.buffer}):i.ready.then(function(){let d=new ArrayBuffer(l*u);return i.decodeGltfBuffer(new Uint8Array(d),l,u,f,n.mode,n.filter),d})})}else return null}};p(tt,"GLTFMeshoptCompression");var Me=tt,nt=class nt{constructor(t){this.name=g.EXT_MESH_GPU_INSTANCING,this.parser=t}createNodeMesh(t){let e=this.parser.json,r=e.nodes[t];if(!r.extensions||!r.extensions[this.name]||r.mesh===void 0)return null;let n=e.meshes[r.mesh];for(let c of n.primitives)if(c.mode!==S.TRIANGLES&&c.mode!==S.TRIANGLE_STRIP&&c.mode!==S.TRIANGLE_FAN&&c.mode!==void 0)return null;let i=r.extensions[this.name].attributes,a=[],o={};for(let c in i)a.push(this.parser.getDependency("accessor",i[c]).then(l=>(o[c]=l,o[c])));return a.length<1?null:(a.push(this.parser.createNodeMesh(t)),Promise.all(a).then(c=>{let l=c.pop(),u=l.isGroup?l.children:[l],f=c[0].count,d=[];for(let A of u){let R=new j,m=new D,T=new te,E=new D(1,1,1),x=new Dt(A.geometry,A.material,f);for(let _=0;_<f;_++)o.TRANSLATION&&m.fromBufferAttribute(o.TRANSLATION,_),o.ROTATION&&T.fromBufferAttribute(o.ROTATION,_),o.SCALE&&E.fromBufferAttribute(o.SCALE,_),x.setMatrixAt(_,R.compose(m,T,E));for(let _ in o)if(_==="_COLOR_0"){let N=o[_];x.instanceColor=new Ct(N.array,N.itemSize,N.normalized)}else _!=="TRANSLATION"&&_!=="ROTATION"&&_!=="SCALE"&&A.geometry.setAttribute(_,o[_]);ne.prototype.copy.call(x,A),this.parser.assignFinalMaterial(x),d.push(x)}return l.isGroup?(l.clear(),l.add(...d),l):d[0]}))}};p(nt,"GLTFMeshGpuInstancing");var Ie=nt,tn="glTF",K=12,Zt={JSON:1313821514,BIN:5130562},st=class st{constructor(t){this.name=g.KHR_BINARY_GLTF,this.content=null,this.body=null;let e=new DataView(t,0,K),r=new TextDecoder;if(this.header={magic:r.decode(new Uint8Array(t.slice(0,4))),version:e.getUint32(4,!0),length:e.getUint32(8,!0)},this.header.magic!==tn)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");let n=this.header.length-K,s=new DataView(t,K),i=0;for(;i<n;){let a=s.getUint32(i,!0);i+=4;let o=s.getUint32(i,!0);if(i+=4,o===Zt.JSON){let c=new Uint8Array(t,K+i,a);this.content=r.decode(c)}else if(o===Zt.BIN){let c=K+i;this.body=t.slice(c,c+a)}i+=a}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}};p(st,"GLTFBinaryExtension");var Le=st,rt=class rt{constructor(t,e){if(!e)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=g.KHR_DRACO_MESH_COMPRESSION,this.json=t,this.dracoLoader=e,this.dracoLoader.preload()}decodePrimitive(t,e){let r=this.json,n=this.dracoLoader,s=t.extensions[this.name].bufferView,i=t.extensions[this.name].attributes,a={},o={},c={};for(let l in i){let u=ke[l]||l.toLowerCase();a[u]=i[l]}for(let l in t.attributes){let u=ke[l]||l.toLowerCase();if(i[l]!==void 0){let f=r.accessors[t.attributes[l]],d=v[f.componentType];c[u]=d.name,o[u]=f.normalized===!0}}return e.getDependency("bufferView",s).then(function(l){return new Promise(function(u,f){n.decodeDracoFile(l,function(d){for(let A in d.attributes){let R=d.attributes[A],m=o[A];m!==void 0&&(R.normalized=m)}u(d)},a,c,b,f)})})}};p(rt,"GLTFDracoMeshCompressionExtension");var Oe=rt,it=class it{constructor(){this.name=g.KHR_TEXTURE_TRANSFORM}extendTexture(t,e){return(e.texCoord===void 0||e.texCoord===t.channel)&&e.offset===void 0&&e.rotation===void 0&&e.scale===void 0||(t=t.clone(),e.texCoord!==void 0&&(t.channel=e.texCoord),e.offset!==void 0&&t.offset.fromArray(e.offset),e.rotation!==void 0&&(t.rotation=e.rotation),e.scale!==void 0&&t.repeat.fromArray(e.scale),t.needsUpdate=!0),t}};p(it,"GLTFTextureTransformExtension");var Ce=it,ot=class ot{constructor(){this.name=g.KHR_MESH_QUANTIZATION}};p(ot,"GLTFMeshQuantizationExtension");var De=ot,at=class at extends jt{constructor(t,e,r,n){super(t,e,r,n)}copySampleValue_(t){let e=this.resultBuffer,r=this.sampleValues,n=this.valueSize,s=t*n*3+n;for(let i=0;i!==n;i++)e[i]=r[s+i];return e}interpolate_(t,e,r,n){let s=this.resultBuffer,i=this.sampleValues,a=this.valueSize,o=a*2,c=a*3,l=n-e,u=(r-e)/l,f=u*u,d=f*u,A=t*c,R=A-c,m=-2*d+3*f,T=d-f,E=1-m,x=T-f+u;for(let _=0;_!==a;_++){let N=i[R+_+a],I=i[R+_+o]*l,y=i[A+_+a],U=i[A+_]*l;s[_]=E*N+x*I+m*y+T*U}return s}};p(at,"GLTFCubicSplineInterpolant");var q=at,sn=new te,ct=class ct extends q{interpolate_(t,e,r,n){let s=super.interpolate_(t,e,r,n);return sn.fromArray(s).normalize().toArray(s),s}};p(ct,"GLTFCubicSplineQuaternionInterpolant");var Pe=ct,S={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},v={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},Jt={9728:Y,9729:V,9984:mt,9985:gt,9986:At,9987:Q},$t={33071:ht,33648:pt,10497:F},ue={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},ke={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},C={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},rn={CUBICSPLINE:void 0,LINEAR:Z,STEP:Tt},le={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function on(h){return h.DefaultMaterial===void 0&&(h.DefaultMaterial=new se({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:ft})),h.DefaultMaterial}p(on,"createDefaultMaterial");function P(h,t,e){for(let r in e.extensions)h[r]===void 0&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[r]=e.extensions[r])}p(P,"addUnknownExtensionsToUserData");function M(h,t){t.extras!==void 0&&(typeof t.extras=="object"?Object.assign(h.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}p(M,"assignExtrasToUserData");function an(h,t,e){let r=!1,n=!1,s=!1;for(let c=0,l=t.length;c<l;c++){let u=t[c];if(u.POSITION!==void 0&&(r=!0),u.NORMAL!==void 0&&(n=!0),u.COLOR_0!==void 0&&(s=!0),r&&n&&s)break}if(!r&&!n&&!s)return Promise.resolve(h);let i=[],a=[],o=[];for(let c=0,l=t.length;c<l;c++){let u=t[c];if(r){let f=u.POSITION!==void 0?e.getDependency("accessor",u.POSITION):h.attributes.position;i.push(f)}if(n){let f=u.NORMAL!==void 0?e.getDependency("accessor",u.NORMAL):h.attributes.normal;a.push(f)}if(s){let f=u.COLOR_0!==void 0?e.getDependency("accessor",u.COLOR_0):h.attributes.color;o.push(f)}}return Promise.all([Promise.all(i),Promise.all(a),Promise.all(o)]).then(function(c){let l=c[0],u=c[1],f=c[2];return r&&(h.morphAttributes.position=l),n&&(h.morphAttributes.normal=u),s&&(h.morphAttributes.color=f),h.morphTargetsRelative=!0,h})}p(an,"addMorphTargets");function cn(h,t){if(h.updateMorphTargets(),t.weights!==void 0)for(let e=0,r=t.weights.length;e<r;e++)h.morphTargetInfluences[e]=t.weights[e];if(t.extras&&Array.isArray(t.extras.targetNames)){let e=t.extras.targetNames;if(h.morphTargetInfluences.length===e.length){h.morphTargetDictionary={};for(let r=0,n=e.length;r<n;r++)h.morphTargetDictionary[e[r]]=r}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}p(cn,"updateMorphTargets");function un(h){let t,e=h.extensions&&h.extensions[g.KHR_DRACO_MESH_COMPRESSION];if(e?t="draco:"+e.bufferView+":"+e.indices+":"+fe(e.attributes):t=h.indices+":"+fe(h.attributes)+":"+h.mode,h.targets!==void 0)for(let r=0,n=h.targets.length;r<n;r++)t+=":"+fe(h.targets[r]);return t}p(un,"createPrimitiveKey");function fe(h){let t="",e=Object.keys(h).sort();for(let r=0,n=e.length;r<n;r++)t+=e[r]+":"+h[e[r]]+";";return t}p(fe,"createAttributesKey");function He(h){switch(h){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}p(He,"getNormalizedComponentScale");function ln(h){return h.search(/\.jpe?g($|\?)/i)>0||h.search(/^data\:image\/jpeg/)===0?"image/jpeg":h.search(/\.webp($|\?)/i)>0||h.search(/^data\:image\/webp/)===0?"image/webp":h.search(/\.ktx2($|\?)/i)>0||h.search(/^data\:image\/ktx2/)===0?"image/ktx2":"image/png"}p(ln,"getImageURIMimeType");var fn=new j,ut=class ut{constructor(t={},e={}){this.json=t,this.extensions={},this.plugins={},this.options=e,this.cache=new nn,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let r=!1,n=-1,s=!1,i=-1;if(typeof navigator<"u"){let a=navigator.userAgent;r=/^((?!chrome|android).)*safari/i.test(a)===!0;let o=a.match(/Version\/(\d+)/);n=r&&o?parseInt(o[1],10):-1,s=a.indexOf("Firefox")>-1,i=s?a.match(/Firefox\/([0-9]+)\./)[1]:-1}typeof createImageBitmap>"u"||r&&n<17||s&&i<98?this.textureLoader=new Vt(this.options.manager):this.textureLoader=new Wt(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new ae(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(t){this.extensions=t}setPlugins(t){this.plugins=t}parse(t,e){let r=this,n=this.json,s=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(i){return i._markDefs&&i._markDefs()}),Promise.all(this._invokeAll(function(i){return i.beforeRoot&&i.beforeRoot()})).then(function(){return Promise.all([r.getDependencies("scene"),r.getDependencies("animation"),r.getDependencies("camera")])}).then(function(i){let a={scene:i[0][n.scene||0],scenes:i[0],animations:i[1],cameras:i[2],asset:n.asset,parser:r,userData:{}};return P(s,a,n),M(a,n),Promise.all(r._invokeAll(function(o){return o.afterRoot&&o.afterRoot(a)})).then(function(){for(let o of a.scenes)o.updateMatrixWorld();t(a)})}).catch(e)}_markDefs(){let t=this.json.nodes||[],e=this.json.skins||[],r=this.json.meshes||[];for(let n=0,s=e.length;n<s;n++){let i=e[n].joints;for(let a=0,o=i.length;a<o;a++)t[i[a]].isBone=!0}for(let n=0,s=t.length;n<s;n++){let i=t[n];i.mesh!==void 0&&(this._addNodeRef(this.meshCache,i.mesh),i.skin!==void 0&&(r[i.mesh].isSkinnedMesh=!0)),i.camera!==void 0&&this._addNodeRef(this.cameraCache,i.camera)}}_addNodeRef(t,e){e!==void 0&&(t.refs[e]===void 0&&(t.refs[e]=t.uses[e]=0),t.refs[e]++)}_getNodeRef(t,e,r){if(t.refs[e]<=1)return r;let n=r.clone(),s=p((i,a)=>{let o=this.associations.get(i);o!=null&&this.associations.set(a,o);for(let[c,l]of i.children.entries())s(l,a.children[c])},"updateMappings");return s(r,n),n.name+="_instance_"+t.uses[e]++,n}_invokeOne(t){let e=Object.values(this.plugins);e.push(this);for(let r=0;r<e.length;r++){let n=t(e[r]);if(n)return n}return null}_invokeAll(t){let e=Object.values(this.plugins);e.unshift(this);let r=[];for(let n=0;n<e.length;n++){let s=t(e[n]);s&&r.push(s)}return r}getDependency(t,e){let r=t+":"+e,n=this.cache.get(r);if(!n){switch(t){case"scene":n=this.loadScene(e);break;case"node":n=this._invokeOne(function(s){return s.loadNode&&s.loadNode(e)});break;case"mesh":n=this._invokeOne(function(s){return s.loadMesh&&s.loadMesh(e)});break;case"accessor":n=this.loadAccessor(e);break;case"bufferView":n=this._invokeOne(function(s){return s.loadBufferView&&s.loadBufferView(e)});break;case"buffer":n=this.loadBuffer(e);break;case"material":n=this._invokeOne(function(s){return s.loadMaterial&&s.loadMaterial(e)});break;case"texture":n=this._invokeOne(function(s){return s.loadTexture&&s.loadTexture(e)});break;case"skin":n=this.loadSkin(e);break;case"animation":n=this._invokeOne(function(s){return s.loadAnimation&&s.loadAnimation(e)});break;case"camera":n=this.loadCamera(e);break;default:if(n=this._invokeOne(function(s){return s!=this&&s.getDependency&&s.getDependency(t,e)}),!n)throw new Error("Unknown type: "+t);break}this.cache.add(r,n)}return n}getDependencies(t){let e=this.cache.get(t);if(!e){let r=this,n=this.json[t+(t==="mesh"?"es":"s")]||[];e=Promise.all(n.map(function(s,i){return r.getDependency(t,i)})),this.cache.add(t,e)}return e}loadBuffer(t){let e=this.json.buffers[t],r=this.fileLoader;if(e.type&&e.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+e.type+" buffer type is not supported.");if(e.uri===void 0&&t===0)return Promise.resolve(this.extensions[g.KHR_BINARY_GLTF].body);let n=this.options;return new Promise(function(s,i){r.load(B.resolveURL(e.uri,n.path),s,void 0,function(){i(new Error('THREE.GLTFLoader: Failed to load buffer "'+e.uri+'".'))})})}loadBufferView(t){let e=this.json.bufferViews[t];return this.getDependency("buffer",e.buffer).then(function(r){let n=e.byteLength||0,s=e.byteOffset||0;return r.slice(s,s+n)})}loadAccessor(t){let e=this,r=this.json,n=this.json.accessors[t];if(n.bufferView===void 0&&n.sparse===void 0){let i=ue[n.type],a=v[n.componentType],o=n.normalized===!0,c=new a(n.count*i);return Promise.resolve(new G(c,i,o))}let s=[];return n.bufferView!==void 0?s.push(this.getDependency("bufferView",n.bufferView)):s.push(null),n.sparse!==void 0&&(s.push(this.getDependency("bufferView",n.sparse.indices.bufferView)),s.push(this.getDependency("bufferView",n.sparse.values.bufferView))),Promise.all(s).then(function(i){let a=i[0],o=ue[n.type],c=v[n.componentType],l=c.BYTES_PER_ELEMENT,u=l*o,f=n.byteOffset||0,d=n.bufferView!==void 0?r.bufferViews[n.bufferView].byteStride:void 0,A=n.normalized===!0,R,m;if(d&&d!==u){let T=Math.floor(f/d),E="InterleavedBuffer:"+n.bufferView+":"+n.componentType+":"+T+":"+n.count,x=e.cache.get(E);x||(R=new c(a,T*d,n.count*d/l),x=new bt(R,d/l),e.cache.add(E,x)),m=new Mt(x,o,f%d/l,A)}else a===null?R=new c(n.count*o):R=new c(a,f,n.count*o),m=new G(R,o,A);if(n.sparse!==void 0){let T=ue.SCALAR,E=v[n.sparse.indices.componentType],x=n.sparse.indices.byteOffset||0,_=n.sparse.values.byteOffset||0,N=new E(i[1],x,n.sparse.count*T),I=new c(i[2],_,n.sparse.count*o);a!==null&&(m=new G(m.array.slice(),m.itemSize,m.normalized)),m.normalized=!1;for(let y=0,U=N.length;y<U;y++){let L=N[y];if(m.setX(L,I[y*o]),o>=2&&m.setY(L,I[y*o+1]),o>=3&&m.setZ(L,I[y*o+2]),o>=4&&m.setW(L,I[y*o+3]),o>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}m.normalized=A}return m})}loadTexture(t){let e=this.json,r=this.options,s=e.textures[t].source,i=e.images[s],a=this.textureLoader;if(i.uri){let o=r.manager.getHandler(i.uri);o!==null&&(a=o)}return this.loadTextureImage(t,s,a)}loadTextureImage(t,e,r){let n=this,s=this.json,i=s.textures[t],a=s.images[e],o=(a.uri||a.bufferView)+":"+i.sampler;if(this.textureCache[o])return this.textureCache[o];let c=this.loadImageSource(e,r).then(function(l){l.flipY=!1,l.name=i.name||a.name||"",l.name===""&&typeof a.uri=="string"&&a.uri.startsWith("data:image/")===!1&&(l.name=a.uri);let f=(s.samplers||{})[i.sampler]||{};return l.magFilter=Jt[f.magFilter]||V,l.minFilter=Jt[f.minFilter]||Q,l.wrapS=$t[f.wrapS]||F,l.wrapT=$t[f.wrapT]||F,l.generateMipmaps=!l.isCompressedTexture&&l.minFilter!==Y&&l.minFilter!==V,n.associations.set(l,{textures:t}),l}).catch(function(){return null});return this.textureCache[o]=c,c}loadImageSource(t,e){let r=this,n=this.json,s=this.options;if(this.sourceCache[t]!==void 0)return this.sourceCache[t].then(u=>u.clone());let i=n.images[t],a=self.URL||self.webkitURL,o=i.uri||"",c=!1;if(i.bufferView!==void 0)o=r.getDependency("bufferView",i.bufferView).then(function(u){c=!0;let f=new Blob([u],{type:i.mimeType});return o=a.createObjectURL(f),o});else if(i.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+t+" is missing URI and bufferView");let l=Promise.resolve(o).then(function(u){return new Promise(function(f,d){let A=f;e.isImageBitmapLoader===!0&&(A=p(function(R){let m=new ee(R);m.needsUpdate=!0,f(m)},"onLoad")),e.load(B.resolveURL(u,s.path),A,void 0,d)})}).then(function(u){return c===!0&&a.revokeObjectURL(o),M(u,i),u.userData.mimeType=i.mimeType||ln(i.uri),u}).catch(function(u){throw console.error("THREE.GLTFLoader: Couldn't load texture",o),u});return this.sourceCache[t]=l,l}assignTexture(t,e,r,n){let s=this;return this.getDependency("texture",r.index).then(function(i){if(!i)return null;if(r.texCoord!==void 0&&r.texCoord>0&&(i=i.clone(),i.channel=r.texCoord),s.extensions[g.KHR_TEXTURE_TRANSFORM]){let a=r.extensions!==void 0?r.extensions[g.KHR_TEXTURE_TRANSFORM]:void 0;if(a){let o=s.associations.get(i);i=s.extensions[g.KHR_TEXTURE_TRANSFORM].extendTexture(i,a),s.associations.set(i,o)}}return n!==void 0&&(i.colorSpace=n),t[e]=i,i})}assignFinalMaterial(t){let e=t.geometry,r=t.material,n=e.attributes.tangent===void 0,s=e.attributes.color!==void 0,i=e.attributes.normal===void 0;if(t.isPoints){let a="PointsMaterial:"+r.uuid,o=this.cache.get(a);o||(o=new vt,X.prototype.copy.call(o,r),o.color.copy(r.color),o.map=r.map,o.sizeAttenuation=!1,this.cache.add(a,o)),r=o}else if(t.isLine){let a="LineBasicMaterial:"+r.uuid,o=this.cache.get(a);o||(o=new Pt,X.prototype.copy.call(o,r),o.color.copy(r.color),o.map=r.map,this.cache.add(a,o)),r=o}if(n||s||i){let a="ClonedMaterial:"+r.uuid+":";n&&(a+="derivative-tangents:"),s&&(a+="vertex-colors:"),i&&(a+="flat-shading:");let o=this.cache.get(a);o||(o=r.clone(),s&&(o.vertexColors=!0),i&&(o.flatShading=!0),n&&(o.normalScale&&(o.normalScale.y*=-1),o.clearcoatNormalScale&&(o.clearcoatNormalScale.y*=-1)),this.cache.add(a,o),this.associations.set(o,this.associations.get(r))),r=o}t.material=r}getMaterialType(){return se}loadMaterial(t){let e=this,r=this.json,n=this.extensions,s=r.materials[t],i,a={},o=s.extensions||{},c=[];if(o[g.KHR_MATERIALS_UNLIT]){let u=n[g.KHR_MATERIALS_UNLIT];i=u.getMaterialType(),c.push(u.extendParams(a,s,e))}else{let u=s.pbrMetallicRoughness||{};if(a.color=new O(1,1,1),a.opacity=1,Array.isArray(u.baseColorFactor)){let f=u.baseColorFactor;a.color.setRGB(f[0],f[1],f[2],b),a.opacity=f[3]}u.baseColorTexture!==void 0&&c.push(e.assignTexture(a,"map",u.baseColorTexture,k)),a.metalness=u.metallicFactor!==void 0?u.metallicFactor:1,a.roughness=u.roughnessFactor!==void 0?u.roughnessFactor:1,u.metallicRoughnessTexture!==void 0&&(c.push(e.assignTexture(a,"metalnessMap",u.metallicRoughnessTexture)),c.push(e.assignTexture(a,"roughnessMap",u.metallicRoughnessTexture))),i=this._invokeOne(function(f){return f.getMaterialType&&f.getMaterialType(t)}),c.push(Promise.all(this._invokeAll(function(f){return f.extendMaterialParams&&f.extendMaterialParams(t,a)})))}s.doubleSided===!0&&(a.side=dt);let l=s.alphaMode||le.OPAQUE;if(l===le.BLEND?(a.transparent=!0,a.depthWrite=!1):(a.transparent=!1,l===le.MASK&&(a.alphaTest=s.alphaCutoff!==void 0?s.alphaCutoff:.5)),s.normalTexture!==void 0&&i!==H&&(c.push(e.assignTexture(a,"normalMap",s.normalTexture)),a.normalScale=new J(1,1),s.normalTexture.scale!==void 0)){let u=s.normalTexture.scale;a.normalScale.set(u,u)}if(s.occlusionTexture!==void 0&&i!==H&&(c.push(e.assignTexture(a,"aoMap",s.occlusionTexture)),s.occlusionTexture.strength!==void 0&&(a.aoMapIntensity=s.occlusionTexture.strength)),s.emissiveFactor!==void 0&&i!==H){let u=s.emissiveFactor;a.emissive=new O().setRGB(u[0],u[1],u[2],b)}return s.emissiveTexture!==void 0&&i!==H&&c.push(e.assignTexture(a,"emissiveMap",s.emissiveTexture,k)),Promise.all(c).then(function(){let u=new i(a);return s.name&&(u.name=s.name),M(u,s),e.associations.set(u,{materials:t}),s.extensions&&P(n,u,s),u})}createUniqueName(t){let e=Yt.sanitizeNodeName(t||"");return e in this.nodeNamesUsed?e+"_"+ ++this.nodeNamesUsed[e]:(this.nodeNamesUsed[e]=0,e)}loadGeometries(t){let e=this,r=this.extensions,n=this.primitiveCache;function s(a){return r[g.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(a,e).then(function(o){return en(o,a,e)})}p(s,"createDracoPrimitive");let i=[];for(let a=0,o=t.length;a<o;a++){let c=t[a],l=un(c),u=n[l];if(u)i.push(u.promise);else{let f;c.extensions&&c.extensions[g.KHR_DRACO_MESH_COMPRESSION]?f=s(c):f=en(new yt,c,e),n[l]={primitive:c,promise:f},i.push(f)}}return Promise.all(i)}loadMesh(t){let e=this,r=this.json,n=this.extensions,s=r.meshes[t],i=s.primitives,a=[];for(let o=0,c=i.length;o<c;o++){let l=i[o].material===void 0?on(this.cache):this.getDependency("material",i[o].material);a.push(l)}return a.push(e.loadGeometries(i)),Promise.all(a).then(function(o){let c=o.slice(0,o.length-1),l=o[o.length-1],u=[];for(let d=0,A=l.length;d<A;d++){let R=l[d],m=i[d],T,E=c[d];if(m.mode===S.TRIANGLES||m.mode===S.TRIANGLE_STRIP||m.mode===S.TRIANGLE_FAN||m.mode===void 0)T=s.isSkinnedMesh===!0?new It(R,E):new wt(R,E),T.isSkinnedMesh===!0&&T.normalizeSkinWeights(),m.mode===S.TRIANGLE_STRIP?T.geometry=ce(T.geometry,Rt):m.mode===S.TRIANGLE_FAN&&(T.geometry=ce(T.geometry,_t));else if(m.mode===S.LINES)T=new Ht(R,E);else if(m.mode===S.LINE_STRIP)T=new kt(R,E);else if(m.mode===S.LINE_LOOP)T=new Bt(R,E);else if(m.mode===S.POINTS)T=new Ut(R,E);else throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+m.mode);Object.keys(T.geometry.morphAttributes).length>0&&cn(T,s),T.name=e.createUniqueName(s.name||"mesh_"+t),M(T,s),m.extensions&&P(n,T,m),e.assignFinalMaterial(T),u.push(T)}for(let d=0,A=u.length;d<A;d++)e.associations.set(u[d],{meshes:t,primitives:d});if(u.length===1)return s.extensions&&P(n,u[0],s),u[0];let f=new z;s.extensions&&P(n,f,s),e.associations.set(f,{meshes:t});for(let d=0,A=u.length;d<A;d++)f.add(u[d]);return f})}loadCamera(t){let e,r=this.json.cameras[t],n=r[r.type];if(!n){console.warn("THREE.GLTFLoader: Missing camera parameters.");return}return r.type==="perspective"?e=new Nt(Et.radToDeg(n.yfov),n.aspectRatio||1,n.znear||1,n.zfar||2e6):r.type==="orthographic"&&(e=new zt(-n.xmag,n.xmag,n.ymag,-n.ymag,n.znear,n.zfar)),r.name&&(e.name=this.createUniqueName(r.name)),M(e,r),Promise.resolve(e)}loadSkin(t){let e=this.json.skins[t],r=[];for(let n=0,s=e.joints.length;n<s;n++)r.push(this._loadNodeShallow(e.joints[n]));return e.inverseBindMatrices!==void 0?r.push(this.getDependency("accessor",e.inverseBindMatrices)):r.push(null),Promise.all(r).then(function(n){let s=n.pop(),i=n,a=[],o=[];for(let c=0,l=i.length;c<l;c++){let u=i[c];if(u){a.push(u);let f=new j;s!==null&&f.fromArray(s.array,c*16),o.push(f)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',e.joints[c])}return new Ot(a,o)})}loadAnimation(t){let e=this.json,r=this,n=e.animations[t],s=n.name?n.name:"animation_"+t,i=[],a=[],o=[],c=[],l=[];for(let u=0,f=n.channels.length;u<f;u++){let d=n.channels[u],A=n.samplers[d.sampler],R=d.target,m=R.node,T=n.parameters!==void 0?n.parameters[A.input]:A.input,E=n.parameters!==void 0?n.parameters[A.output]:A.output;R.node!==void 0&&(i.push(this.getDependency("node",m)),a.push(this.getDependency("accessor",T)),o.push(this.getDependency("accessor",E)),c.push(A),l.push(R))}return Promise.all([Promise.all(i),Promise.all(a),Promise.all(o),Promise.all(c),Promise.all(l)]).then(function(u){let f=u[0],d=u[1],A=u[2],R=u[3],m=u[4],T=[];for(let E=0,x=f.length;E<x;E++){let _=f[E],N=d[E],I=A[E],y=R[E],U=m[E];if(_===void 0)continue;_.updateMatrix&&_.updateMatrix();let L=r._createAnimationTracks(_,N,I,y,U);if(L)for(let W=0;W<L.length;W++)T.push(L[W])}return new Kt(s,void 0,T)})}createNodeMesh(t){let e=this.json,r=this,n=e.nodes[t];return n.mesh===void 0?null:r.getDependency("mesh",n.mesh).then(function(s){let i=r._getNodeRef(r.meshCache,n.mesh,s);return n.weights!==void 0&&i.traverse(function(a){if(a.isMesh)for(let o=0,c=n.weights.length;o<c;o++)a.morphTargetInfluences[o]=n.weights[o]}),i})}loadNode(t){let e=this.json,r=this,n=e.nodes[t],s=r._loadNodeShallow(t),i=[],a=n.children||[];for(let c=0,l=a.length;c<l;c++)i.push(r.getDependency("node",a[c]));let o=n.skin===void 0?Promise.resolve(null):r.getDependency("skin",n.skin);return Promise.all([s,Promise.all(i),o]).then(function(c){let l=c[0],u=c[1],f=c[2];f!==null&&l.traverse(function(d){d.isSkinnedMesh&&d.bind(f,fn)});for(let d=0,A=u.length;d<A;d++)l.add(u[d]);return l})}_loadNodeShallow(t){let e=this.json,r=this.extensions,n=this;if(this.nodeCache[t]!==void 0)return this.nodeCache[t];let s=e.nodes[t],i=s.name?n.createUniqueName(s.name):"",a=[],o=n._invokeOne(function(c){return c.createNodeMesh&&c.createNodeMesh(t)});return o&&a.push(o),s.camera!==void 0&&a.push(n.getDependency("camera",s.camera).then(function(c){return n._getNodeRef(n.cameraCache,s.camera,c)})),n._invokeAll(function(c){return c.createNodeAttachment&&c.createNodeAttachment(t)}).forEach(function(c){a.push(c)}),this.nodeCache[t]=Promise.all(a).then(function(c){let l;if(s.isBone===!0?l=new Lt:c.length>1?l=new z:c.length===1?l=c[0]:l=new ne,l!==c[0])for(let u=0,f=c.length;u<f;u++)l.add(c[u]);if(s.name&&(l.userData.name=s.name,l.name=i),M(l,s),s.extensions&&P(r,l,s),s.matrix!==void 0){let u=new j;u.fromArray(s.matrix),l.applyMatrix4(u)}else s.translation!==void 0&&l.position.fromArray(s.translation),s.rotation!==void 0&&l.quaternion.fromArray(s.rotation),s.scale!==void 0&&l.scale.fromArray(s.scale);return n.associations.has(l)||n.associations.set(l,{}),n.associations.get(l).nodes=t,l}),this.nodeCache[t]}loadScene(t){let e=this.extensions,r=this.json.scenes[t],n=this,s=new z;r.name&&(s.name=n.createUniqueName(r.name)),M(s,r),r.extensions&&P(e,s,r);let i=r.nodes||[],a=[];for(let o=0,c=i.length;o<c;o++)a.push(n.getDependency("node",i[o]));return Promise.all(a).then(function(o){for(let l=0,u=o.length;l<u;l++)s.add(o[l]);let c=p(l=>{let u=new Map;for(let[f,d]of n.associations)(f instanceof X||f instanceof ee)&&u.set(f,d);return l.traverse(f=>{let d=n.associations.get(f);d!=null&&u.set(f,d)}),u},"reduceAssociations");return n.associations=c(s),s})}_createAnimationTracks(t,e,r,n,s){let i=[],a=t.name?t.name:t.uuid,o=[];C[s.path]===C.weights?t.traverse(function(f){f.morphTargetInfluences&&o.push(f.name?f.name:f.uuid)}):o.push(a);let c;switch(C[s.path]){case C.weights:c=re;break;case C.rotation:c=ie;break;case C.position:case C.scale:c=oe;break;default:switch(r.itemSize){case 1:c=re;break;case 2:case 3:default:c=oe;break}break}let l=n.interpolation!==void 0?rn[n.interpolation]:Z,u=this._getArrayFromAccessor(r);for(let f=0,d=o.length;f<d;f++){let A=new c(o[f]+"."+C[s.path],e.array,u,l);n.interpolation==="CUBICSPLINE"&&this._createCubicSplineTrackInterpolant(A),i.push(A)}return i}_getArrayFromAccessor(t){let e=t.array;if(t.normalized){let r=He(e.constructor),n=new Float32Array(e.length);for(let s=0,i=e.length;s<i;s++)n[s]=e[s]*r;e=n}return e}_createCubicSplineTrackInterpolant(t){t.createInterpolant=p(function(r){let n=this instanceof ie?Pe:q;return new n(this.times,this.values,this.getValueSize()/3,r)},"InterpolantFactoryMethodGLTFCubicSpline"),t.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}};p(ut,"GLTFParser");var Be=ut;function dn(h,t,e){let r=t.attributes,n=new xt;if(r.POSITION!==void 0){let a=e.json.accessors[r.POSITION],o=a.min,c=a.max;if(o!==void 0&&c!==void 0){if(n.set(new D(o[0],o[1],o[2]),new D(c[0],c[1],c[2])),a.normalized){let l=He(v[a.componentType]);n.min.multiplyScalar(l),n.max.multiplyScalar(l)}}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}else return;let s=t.targets;if(s!==void 0){let a=new D,o=new D;for(let c=0,l=s.length;c<l;c++){let u=s[c];if(u.POSITION!==void 0){let f=e.json.accessors[u.POSITION],d=f.min,A=f.max;if(d!==void 0&&A!==void 0){if(o.setX(Math.max(Math.abs(d[0]),Math.abs(A[0]))),o.setY(Math.max(Math.abs(d[1]),Math.abs(A[1]))),o.setZ(Math.max(Math.abs(d[2]),Math.abs(A[2]))),f.normalized){let R=He(v[f.componentType]);o.multiplyScalar(R)}a.max(o)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}n.expandByVector(a)}h.boundingBox=n;let i=new St;n.getCenter(i.center),i.radius=n.min.distanceTo(n.max)/2,h.boundingSphere=i}p(dn,"computeBounds");function en(h,t,e){let r=t.attributes,n=[];function s(i,a){return e.getDependency("accessor",i).then(function(o){h.setAttribute(a,o)})}p(s,"assignAttributeAccessor");for(let i in r){let a=ke[i]||i.toLowerCase();a in h.attributes||n.push(s(r[i],a))}if(t.indices!==void 0&&!h.index){let i=e.getDependency("accessor",t.indices).then(function(a){h.setIndex(a)});n.push(i)}return $.workingColorSpace!==b&&"COLOR_0"in r&&console.warn('THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "'.concat($.workingColorSpace,'" not supported.')),M(h,t),dn(h,t,e),Promise.all(n).then(function(){return t.targets!==void 0?an(h,t.targets,e):h})}p(en,"addPrimitiveAttributes");export{Qt as GLTFLoader};
|