@omnimedia/omnitool 1.1.0-3 → 1.1.0-4
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/package.json +10 -9
- package/s/context.ts +1 -1
- package/s/demo/demo.bundle.ts +6 -2
- package/s/demo/routines/filmstrip-test.ts +2 -2
- package/s/demo/routines/transcriber-test.ts +34 -0
- package/s/driver/fns/host.ts +7 -6
- package/s/driver/fns/schematic.ts +1 -1
- package/s/driver/fns/work.ts +116 -119
- package/s/driver/utils/load-decoder-source.ts +3 -4
- package/s/features/speech/transcribe/default-spec.ts +11 -0
- package/s/features/speech/transcribe/parts/load-pipe.ts +19 -0
- package/s/features/speech/transcribe/parts/prep-audio.ts +23 -0
- package/s/features/speech/transcribe/parts/transcribe.ts +70 -0
- package/s/features/speech/transcribe/transcriber.ts +46 -0
- package/s/features/speech/transcribe/types.ts +82 -0
- package/s/features/speech/transcribe/worker.bundle.ts +40 -0
- package/s/timeline/utils/checksum.ts +2 -1
- package/s/tools/common/loader.ts +26 -0
- package/s/tools/common/transformer-pipeline.ts +26 -0
- package/s/tools/speech-recognition/common/model.ts +26 -0
- package/s/tools/speech-recognition/whisper/fns/host.ts +25 -0
- package/s/tools/speech-recognition/whisper/fns/schematic.ts +23 -0
- package/s/tools/speech-recognition/whisper/fns/work.ts +91 -0
- package/s/tools/speech-recognition/whisper/parts/types.ts +38 -0
- package/s/tools/speech-recognition/whisper/parts/worker.bundle.ts +7 -0
- package/s/tools/speech-recognition/whisper/tool.ts +70 -0
- package/x/context.js +1 -1
- package/x/context.js.map +1 -1
- package/x/demo/demo.bundle.js +6 -2
- package/x/demo/demo.bundle.js.map +1 -1
- package/x/demo/demo.bundle.min.js +6 -6
- package/x/demo/demo.bundle.min.js.map +4 -4
- package/x/demo/routines/filmstrip-test.d.ts +1 -1
- package/x/demo/routines/filmstrip-test.js +2 -2
- package/x/demo/routines/filmstrip-test.js.map +1 -1
- package/x/demo/routines/transcriber-test.d.ts +4 -0
- package/x/demo/routines/transcriber-test.js +33 -0
- package/x/demo/routines/transcriber-test.js.map +1 -0
- package/x/driver/driver.worker.bundle.min.js +80 -80
- package/x/driver/driver.worker.bundle.min.js.map +4 -4
- package/x/driver/fns/host.js +3 -3
- package/x/driver/fns/host.js.map +1 -1
- package/x/driver/fns/schematic.d.ts +1 -1
- package/x/driver/fns/work.js +8 -8
- package/x/driver/fns/work.js.map +1 -1
- package/x/driver/utils/load-decoder-source.d.ts +2 -1
- package/x/driver/utils/load-decoder-source.js +2 -3
- package/x/driver/utils/load-decoder-source.js.map +1 -1
- package/x/features/speech/transcribe/default-spec.d.ts +2 -0
- package/x/features/speech/transcribe/default-spec.js +8 -0
- package/x/features/speech/transcribe/default-spec.js.map +1 -0
- package/x/features/speech/transcribe/parts/load-pipe.d.ts +2 -0
- package/x/features/speech/transcribe/parts/load-pipe.js +13 -0
- package/x/features/speech/transcribe/parts/load-pipe.js.map +1 -0
- package/x/features/speech/transcribe/parts/prep-audio.d.ts +5 -0
- package/x/features/speech/transcribe/parts/prep-audio.js +21 -0
- package/x/features/speech/transcribe/parts/prep-audio.js.map +1 -0
- package/x/features/speech/transcribe/parts/transcribe.d.ts +5 -0
- package/x/features/speech/transcribe/parts/transcribe.js +56 -0
- package/x/features/speech/transcribe/parts/transcribe.js.map +1 -0
- package/x/features/speech/transcribe/transcriber.d.ts +5 -0
- package/x/features/speech/transcribe/transcriber.js +33 -0
- package/x/features/speech/transcribe/transcriber.js.map +1 -0
- package/x/features/speech/transcribe/types.d.ts +66 -0
- package/x/features/speech/transcribe/types.js +2 -0
- package/x/features/speech/transcribe/types.js.map +1 -0
- package/x/features/speech/transcribe/worker.bundle.d.ts +1 -0
- package/x/features/speech/transcribe/worker.bundle.js +33 -0
- package/x/features/speech/transcribe/worker.bundle.js.map +1 -0
- package/x/features/speech/transcribe/worker.bundle.min.js +2916 -0
- package/x/features/speech/transcribe/worker.bundle.min.js.map +7 -0
- package/x/index.html +2 -2
- package/x/timeline/utils/checksum.js +2 -1
- package/x/timeline/utils/checksum.js.map +1 -1
- package/x/tools/common/loader.d.ts +19 -0
- package/x/tools/common/loader.js +18 -0
- package/x/tools/common/loader.js.map +1 -0
- package/x/tools/common/transformer-pipeline.d.ts +8 -0
- package/x/tools/common/transformer-pipeline.js +24 -0
- package/x/tools/common/transformer-pipeline.js.map +1 -0
- package/x/tools/speech-recognition/common/model.d.ts +14 -0
- package/x/tools/speech-recognition/common/model.js +16 -0
- package/x/tools/speech-recognition/common/model.js.map +1 -0
- package/x/tools/speech-recognition/whisper/fns/host.d.ts +13 -0
- package/x/tools/speech-recognition/whisper/fns/host.js +19 -0
- package/x/tools/speech-recognition/whisper/fns/host.js.map +1 -0
- package/x/tools/speech-recognition/whisper/fns/schematic.d.ts +19 -0
- package/x/tools/speech-recognition/whisper/fns/schematic.js +2 -0
- package/x/tools/speech-recognition/whisper/fns/schematic.js.map +1 -0
- package/x/tools/speech-recognition/whisper/fns/work.d.ts +12 -0
- package/x/tools/speech-recognition/whisper/fns/work.js +74 -0
- package/x/tools/speech-recognition/whisper/fns/work.js.map +1 -0
- package/x/tools/speech-recognition/whisper/parts/types.d.ts +31 -0
- package/x/tools/speech-recognition/whisper/parts/types.js +2 -0
- package/x/tools/speech-recognition/whisper/parts/types.js.map +1 -0
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.d.ts +1 -0
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.js +4 -0
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.js.map +1 -0
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js +8 -0
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js.map +7 -0
- package/x/tools/speech-recognition/whisper/tool.d.ts +12 -0
- package/x/tools/speech-recognition/whisper/tool.js +63 -0
- package/x/tools/speech-recognition/whisper/tool.js.map +1 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
var VE=Object.create;var vh=Object.defineProperty;var HE=Object.getOwnPropertyDescriptor;var WE=Object.getOwnPropertyNames;var $E=Object.getPrototypeOf,qE=Object.prototype.hasOwnProperty;var p=(r,e)=>()=>(r&&(e=r(r=0)),e);var Fr=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Tg=(r,e)=>{for(var t in e)vh(r,t,{get:e[t],enumerable:!0})},jE=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of WE(e))!qE.call(r,s)&&s!==t&&vh(r,s,{get:()=>e[s],enumerable:!(i=HE(e,s))||i.enumerable});return r};var Ch=(r,e,t)=>(t=r!=null?VE($E(r)):{},jE(e||!r||!r.__esModule?vh(t,"default",{value:r,enumerable:!0}):t,r));var b,Td,mu,O,B=p(()=>{"use strict";b=(r=>(r.Application="application",r.WebGLPipes="webgl-pipes",r.WebGLPipesAdaptor="webgl-pipes-adaptor",r.WebGLSystem="webgl-system",r.WebGPUPipes="webgpu-pipes",r.WebGPUPipesAdaptor="webgpu-pipes-adaptor",r.WebGPUSystem="webgpu-system",r.CanvasSystem="canvas-system",r.CanvasPipesAdaptor="canvas-pipes-adaptor",r.CanvasPipes="canvas-pipes",r.Asset="asset",r.LoadParser="load-parser",r.ResolveParser="resolve-parser",r.CacheParser="cache-parser",r.DetectionParser="detection-parser",r.MaskEffect="mask-effect",r.BlendMode="blend-mode",r.TextureSource="texture-source",r.Environment="environment",r.ShapeBuilder="shape-builder",r.Batcher="batcher",r))(b||{}),Td=r=>{if(typeof r=="function"||typeof r=="object"&&r.extension){if(!r.extension)throw new Error("Extension class must have an extension object");r={...typeof r.extension!="object"?{type:r.extension}:r.extension,ref:r}}if(typeof r=="object")r={...r};else throw new Error("Invalid extension type");return typeof r.type=="string"&&(r.type=[r.type]),r},mu=(r,e)=>Td(r).priority??e,O={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...r){return r.map(Td).forEach(e=>{e.type.forEach(t=>this._removeHandlers[t]?.(e))}),this},add(...r){return r.map(Td).forEach(e=>{e.type.forEach(t=>{let i=this._addHandlers,s=this._queue;i[t]?i[t]?.(e):(s[t]=s[t]||[],s[t]?.push(e))})}),this},handle(r,e,t){let i=this._addHandlers,s=this._removeHandlers;if(i[r]||s[r])throw new Error(`Extension type ${r} already has a handler`);i[r]=e,s[r]=t;let n=this._queue;return n[r]&&(n[r]?.forEach(o=>e(o)),delete n[r]),this},handleByMap(r,e){return this.handle(r,t=>{t.name&&(e[t.name]=t.ref)},t=>{t.name&&delete e[t.name]})},handleByNamedList(r,e,t=-1){return this.handle(r,i=>{e.findIndex(n=>n.name===i.name)>=0||(e.push({name:i.name,value:i.ref}),e.sort((n,o)=>mu(o.value,t)-mu(n.value,t)))},i=>{let s=e.findIndex(n=>n.name===i.name);s!==-1&&e.splice(s,1)})},handleByList(r,e,t=-1){return this.handle(r,i=>{e.includes(i.ref)||(e.push(i.ref),e.sort((s,n)=>mu(n,t)-mu(s,t)))},i=>{let s=e.indexOf(i.ref);s!==-1&&e.splice(s,1)})},mixin(r,...e){for(let t of e)Object.defineProperties(r.prototype,Object.getOwnPropertyDescriptors(t))}}});var m0=Fr((T8,wd)=>{"use strict";var zA=Object.prototype.hasOwnProperty,Je="~";function oo(){}Object.create&&(oo.prototype=Object.create(null),new oo().__proto__||(Je=!1));function VA(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function f0(r,e,t,i,s){if(typeof t!="function")throw new TypeError("The listener must be a function");var n=new VA(t,i||r,s),o=Je?Je+e:e;return r._events[o]?r._events[o].fn?r._events[o]=[r._events[o],n]:r._events[o].push(n):(r._events[o]=n,r._eventsCount++),r}function pu(r,e){--r._eventsCount===0?r._events=new oo:delete r._events[e]}function qe(){this._events=new oo,this._eventsCount=0}qe.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)zA.call(t,i)&&e.push(Je?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};qe.prototype.listeners=function(e){var t=Je?Je+e:e,i=this._events[t];if(!i)return[];if(i.fn)return[i.fn];for(var s=0,n=i.length,o=new Array(n);s<n;s++)o[s]=i[s].fn;return o};qe.prototype.listenerCount=function(e){var t=Je?Je+e:e,i=this._events[t];return i?i.fn?1:i.length:0};qe.prototype.emit=function(e,t,i,s,n,o){var a=Je?Je+e:e;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,l,h;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,i),!0;case 4:return c.fn.call(c.context,t,i,s),!0;case 5:return c.fn.call(c.context,t,i,s,n),!0;case 6:return c.fn.call(c.context,t,i,s,n,o),!0}for(h=1,l=new Array(u-1);h<u;h++)l[h-1]=arguments[h];c.fn.apply(c.context,l)}else{var f=c.length,d;for(h=0;h<f;h++)switch(c[h].once&&this.removeListener(e,c[h].fn,void 0,!0),u){case 1:c[h].fn.call(c[h].context);break;case 2:c[h].fn.call(c[h].context,t);break;case 3:c[h].fn.call(c[h].context,t,i);break;case 4:c[h].fn.call(c[h].context,t,i,s);break;default:if(!l)for(d=1,l=new Array(u-1);d<u;d++)l[d-1]=arguments[d];c[h].fn.apply(c[h].context,l)}}return!0};qe.prototype.on=function(e,t,i){return f0(this,e,t,i,!1)};qe.prototype.once=function(e,t,i){return f0(this,e,t,i,!0)};qe.prototype.removeListener=function(e,t,i,s){var n=Je?Je+e:e;if(!this._events[n])return this;if(!t)return pu(this,n),this;var o=this._events[n];if(o.fn)o.fn===t&&(!s||o.once)&&(!i||o.context===i)&&pu(this,n);else{for(var a=0,c=[],u=o.length;a<u;a++)(o[a].fn!==t||s&&!o[a].once||i&&o[a].context!==i)&&c.push(o[a]);c.length?this._events[n]=c.length===1?c[0]:c:pu(this,n)}return this};qe.prototype.removeAllListeners=function(e){var t;return e?(t=Je?Je+e:e,this._events[t]&&pu(this,t)):(this._events=new oo,this._eventsCount=0),this};qe.prototype.off=qe.prototype.removeListener;qe.prototype.addListener=qe.prototype.on;qe.prefixed=Je;qe.EventEmitter=qe;typeof wd<"u"&&(wd.exports=qe)});var p0,oe,Ve=p(()=>{p0=Ch(m0(),1),oe=p0.default});var HA,_r,Ue,kt,S0,g0,Sd,WA,gu,v0,C0,x0,_0,b0,ao,$A,qA,jA,XA,Ed,y0,YA,vd,Cd,T0,kd,It,w0,E0,k0=p(()=>{HA={grad:.9,turn:360,rad:360/(2*Math.PI)},_r=function(r){return typeof r=="string"?r.length>0:typeof r=="number"},Ue=function(r,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*r)/t+0},kt=function(r,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),r>t?t:r>e?r:e},S0=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},g0=function(r){return{r:kt(r.r,0,255),g:kt(r.g,0,255),b:kt(r.b,0,255),a:kt(r.a)}},Sd=function(r){return{r:Ue(r.r),g:Ue(r.g),b:Ue(r.b),a:Ue(r.a,3)}},WA=/^#([0-9a-f]{3,8})$/i,gu=function(r){var e=r.toString(16);return e.length<2?"0"+e:e},v0=function(r){var e=r.r,t=r.g,i=r.b,s=r.a,n=Math.max(e,t,i),o=n-Math.min(e,t,i),a=o?n===e?(t-i)/o:n===t?2+(i-e)/o:4+(e-t)/o:0;return{h:60*(a<0?a+6:a),s:n?o/n*100:0,v:n/255*100,a:s}},C0=function(r){var e=r.h,t=r.s,i=r.v,s=r.a;e=e/360*6,t/=100,i/=100;var n=Math.floor(e),o=i*(1-t),a=i*(1-(e-n)*t),c=i*(1-(1-e+n)*t),u=n%6;return{r:255*[i,a,o,o,c,i][u],g:255*[c,i,i,a,o,o][u],b:255*[o,o,c,i,i,a][u],a:s}},x0=function(r){return{h:S0(r.h),s:kt(r.s,0,100),l:kt(r.l,0,100),a:kt(r.a)}},_0=function(r){return{h:Ue(r.h),s:Ue(r.s),l:Ue(r.l),a:Ue(r.a,3)}},b0=function(r){return C0((t=(e=r).s,{h:e.h,s:(t*=((i=e.l)<50?i:100-i)/100)>0?2*t/(i+t)*100:0,v:i+t,a:e.a}));var e,t,i},ao=function(r){return{h:(e=v0(r)).h,s:(s=(200-(t=e.s))*(i=e.v)/100)>0&&s<200?t*i/100/(s<=100?s:200-s)*100:0,l:s/2,a:e.a};var e,t,i,s},$A=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,qA=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,jA=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,XA=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Ed={string:[[function(r){var e=WA.exec(r);return e?(r=e[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:r.length===4?Ue(parseInt(r[3]+r[3],16)/255,2):1}:r.length===6||r.length===8?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:r.length===8?Ue(parseInt(r.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(r){var e=jA.exec(r)||XA.exec(r);return e?e[2]!==e[4]||e[4]!==e[6]?null:g0({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:e[7]===void 0?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(r){var e=$A.exec(r)||qA.exec(r);if(!e)return null;var t,i,s=x0({h:(t=e[1],i=e[2],i===void 0&&(i="deg"),Number(t)*(HA[i]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return b0(s)},"hsl"]],object:[[function(r){var e=r.r,t=r.g,i=r.b,s=r.a,n=s===void 0?1:s;return _r(e)&&_r(t)&&_r(i)?g0({r:Number(e),g:Number(t),b:Number(i),a:Number(n)}):null},"rgb"],[function(r){var e=r.h,t=r.s,i=r.l,s=r.a,n=s===void 0?1:s;if(!_r(e)||!_r(t)||!_r(i))return null;var o=x0({h:Number(e),s:Number(t),l:Number(i),a:Number(n)});return b0(o)},"hsl"],[function(r){var e=r.h,t=r.s,i=r.v,s=r.a,n=s===void 0?1:s;if(!_r(e)||!_r(t)||!_r(i))return null;var o=function(a){return{h:S0(a.h),s:kt(a.s,0,100),v:kt(a.v,0,100),a:kt(a.a)}}({h:Number(e),s:Number(t),v:Number(i),a:Number(n)});return C0(o)},"hsv"]]},y0=function(r,e){for(var t=0;t<e.length;t++){var i=e[t][0](r);if(i)return[i,e[t][1]]}return[null,void 0]},YA=function(r){return typeof r=="string"?y0(r.trim(),Ed.string):typeof r=="object"&&r!==null?y0(r,Ed.object):[null,void 0]},vd=function(r,e){var t=ao(r);return{h:t.h,s:kt(t.s+100*e,0,100),l:t.l,a:t.a}},Cd=function(r){return(299*r.r+587*r.g+114*r.b)/1e3/255},T0=function(r,e){var t=ao(r);return{h:t.h,s:t.s,l:kt(t.l+100*e,0,100),a:t.a}},kd=function(){function r(e){this.parsed=YA(e)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return r.prototype.isValid=function(){return this.parsed!==null},r.prototype.brightness=function(){return Ue(Cd(this.rgba),2)},r.prototype.isDark=function(){return Cd(this.rgba)<.5},r.prototype.isLight=function(){return Cd(this.rgba)>=.5},r.prototype.toHex=function(){return e=Sd(this.rgba),t=e.r,i=e.g,s=e.b,o=(n=e.a)<1?gu(Ue(255*n)):"","#"+gu(t)+gu(i)+gu(s)+o;var e,t,i,s,n,o},r.prototype.toRgb=function(){return Sd(this.rgba)},r.prototype.toRgbString=function(){return e=Sd(this.rgba),t=e.r,i=e.g,s=e.b,(n=e.a)<1?"rgba("+t+", "+i+", "+s+", "+n+")":"rgb("+t+", "+i+", "+s+")";var e,t,i,s,n},r.prototype.toHsl=function(){return _0(ao(this.rgba))},r.prototype.toHslString=function(){return e=_0(ao(this.rgba)),t=e.h,i=e.s,s=e.l,(n=e.a)<1?"hsla("+t+", "+i+"%, "+s+"%, "+n+")":"hsl("+t+", "+i+"%, "+s+"%)";var e,t,i,s,n},r.prototype.toHsv=function(){return e=v0(this.rgba),{h:Ue(e.h),s:Ue(e.s),v:Ue(e.v),a:Ue(e.a,3)};var e},r.prototype.invert=function(){return It({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},r.prototype.saturate=function(e){return e===void 0&&(e=.1),It(vd(this.rgba,e))},r.prototype.desaturate=function(e){return e===void 0&&(e=.1),It(vd(this.rgba,-e))},r.prototype.grayscale=function(){return It(vd(this.rgba,-1))},r.prototype.lighten=function(e){return e===void 0&&(e=.1),It(T0(this.rgba,e))},r.prototype.darken=function(e){return e===void 0&&(e=.1),It(T0(this.rgba,-e))},r.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},r.prototype.alpha=function(e){return typeof e=="number"?It({r:(t=this.rgba).r,g:t.g,b:t.b,a:e}):Ue(this.rgba.a,3);var t},r.prototype.hue=function(e){var t=ao(this.rgba);return typeof e=="number"?It({h:e,s:t.s,l:t.l,a:t.a}):Ue(t.h)},r.prototype.isEqual=function(e){return this.toHex()===It(e).toHex()},r}(),It=function(r){return r instanceof kd?r:new kd(r)},w0=[],E0=function(r){r.forEach(function(e){w0.indexOf(e)<0&&(e(kd,Ed),w0.push(e))})}});function A0(r,e){var t={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},i={};for(var s in t)i[t[s]]=s;var n={};r.prototype.toName=function(o){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var a,c,u=i[this.toHex()];if(u)return u;if(o?.closest){var l=this.toRgb(),h=1/0,f="black";if(!n.length)for(var d in t)n[d]=new r(t[d]).toRgb();for(var m in t){var x=(a=l,c=n[m],Math.pow(a.r-c.r,2)+Math.pow(a.g-c.g,2)+Math.pow(a.b-c.b,2));x<h&&(h=x,f=m)}return f}},e.string.push([function(o){var a=o.toLowerCase(),c=a==="transparent"?"#0000":t[a];return c?new r(c).toRgb():null},"name"])}var P0=p(()=>{});var Cs,q,He=p(()=>{k0();P0();E0([A0]);Cs=class co{constructor(e=16777215){this._value=null,this._components=new Float32Array(4),this._components.fill(1),this._int=16777215,this.value=e}get red(){return this._components[0]}get green(){return this._components[1]}get blue(){return this._components[2]}get alpha(){return this._components[3]}setValue(e){return this.value=e,this}set value(e){if(e instanceof co)this._value=this._cloneSource(e._value),this._int=e._int,this._components.set(e._components);else{if(e===null)throw new Error("Cannot set Color#value to null");(this._value===null||!this._isSourceEqual(this._value,e))&&(this._value=this._cloneSource(e),this._normalize(this._value))}}get value(){return this._value}_cloneSource(e){return typeof e=="string"||typeof e=="number"||e instanceof Number||e===null?e:Array.isArray(e)||ArrayBuffer.isView(e)?e.slice(0):typeof e=="object"&&e!==null?{...e}:e}_isSourceEqual(e,t){let i=typeof e;if(i!==typeof t)return!1;if(i==="number"||i==="string"||e instanceof Number)return e===t;if(Array.isArray(e)&&Array.isArray(t)||ArrayBuffer.isView(e)&&ArrayBuffer.isView(t))return e.length!==t.length?!1:e.every((n,o)=>n===t[o]);if(e!==null&&t!==null){let n=Object.keys(e),o=Object.keys(t);return n.length!==o.length?!1:n.every(a=>e[a]===t[a])}return e===t}toRgba(){let[e,t,i,s]=this._components;return{r:e,g:t,b:i,a:s}}toRgb(){let[e,t,i]=this._components;return{r:e,g:t,b:i}}toRgbaString(){let[e,t,i]=this.toUint8RgbArray();return`rgba(${e},${t},${i},${this.alpha})`}toUint8RgbArray(e){let[t,i,s]=this._components;return this._arrayRgb||(this._arrayRgb=[]),e||(e=this._arrayRgb),e[0]=Math.round(t*255),e[1]=Math.round(i*255),e[2]=Math.round(s*255),e}toArray(e){this._arrayRgba||(this._arrayRgba=[]),e||(e=this._arrayRgba);let[t,i,s,n]=this._components;return e[0]=t,e[1]=i,e[2]=s,e[3]=n,e}toRgbArray(e){this._arrayRgb||(this._arrayRgb=[]),e||(e=this._arrayRgb);let[t,i,s]=this._components;return e[0]=t,e[1]=i,e[2]=s,e}toNumber(){return this._int}toBgrNumber(){let[e,t,i]=this.toUint8RgbArray();return(i<<16)+(t<<8)+e}toLittleEndianNumber(){let e=this._int;return(e>>16)+(e&65280)+((e&255)<<16)}multiply(e){let[t,i,s,n]=co._temp.setValue(e)._components;return this._components[0]*=t,this._components[1]*=i,this._components[2]*=s,this._components[3]*=n,this._refreshInt(),this._value=null,this}premultiply(e,t=!0){return t&&(this._components[0]*=e,this._components[1]*=e,this._components[2]*=e),this._components[3]=e,this._refreshInt(),this._value=null,this}toPremultiplied(e,t=!0){if(e===1)return(255<<24)+this._int;if(e===0)return t?0:this._int;let i=this._int>>16&255,s=this._int>>8&255,n=this._int&255;return t&&(i=i*e+.5|0,s=s*e+.5|0,n=n*e+.5|0),(e*255<<24)+(i<<16)+(s<<8)+n}toHex(){let e=this._int.toString(16);return`#${"000000".substring(0,6-e.length)+e}`}toHexa(){let t=Math.round(this._components[3]*255).toString(16);return this.toHex()+"00".substring(0,2-t.length)+t}setAlpha(e){return this._components[3]=this._clamp(e),this}_normalize(e){let t,i,s,n;if((typeof e=="number"||e instanceof Number)&&e>=0&&e<=16777215){let o=e;t=(o>>16&255)/255,i=(o>>8&255)/255,s=(o&255)/255,n=1}else if((Array.isArray(e)||e instanceof Float32Array)&&e.length>=3&&e.length<=4)e=this._clamp(e),[t,i,s,n=1]=e;else if((e instanceof Uint8Array||e instanceof Uint8ClampedArray)&&e.length>=3&&e.length<=4)e=this._clamp(e,0,255),[t,i,s,n=255]=e,t/=255,i/=255,s/=255,n/=255;else if(typeof e=="string"||typeof e=="object"){if(typeof e=="string"){let a=co.HEX_PATTERN.exec(e);a&&(e=`#${a[2]}`)}let o=It(e);o.isValid()&&({r:t,g:i,b:s,a:n}=o.rgba,t/=255,i/=255,s/=255)}if(t!==void 0)this._components[0]=t,this._components[1]=i,this._components[2]=s,this._components[3]=n,this._refreshInt();else throw new Error(`Unable to convert color ${e}`)}_refreshInt(){this._clamp(this._components);let[e,t,i]=this._components;this._int=(e*255<<16)+(t*255<<8)+(i*255|0)}_clamp(e,t=0,i=1){return typeof e=="number"?Math.min(Math.max(e,t),i):(e.forEach((s,n)=>{e[n]=Math.min(Math.max(s,t),i)}),e)}static isColorLike(e){return typeof e=="number"||typeof e=="string"||e instanceof Number||e instanceof co||Array.isArray(e)||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Float32Array||e.r!==void 0&&e.g!==void 0&&e.b!==void 0||e.r!==void 0&&e.g!==void 0&&e.b!==void 0&&e.a!==void 0||e.h!==void 0&&e.s!==void 0&&e.l!==void 0||e.h!==void 0&&e.s!==void 0&&e.l!==void 0&&e.a!==void 0||e.h!==void 0&&e.s!==void 0&&e.v!==void 0||e.h!==void 0&&e.s!==void 0&&e.v!==void 0&&e.a!==void 0}};Cs.shared=new Cs;Cs._temp=new Cs;Cs.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;q=Cs});var B0,R0=p(()=>{"use strict";B0={cullArea:null,cullable:!1,cullableChildren:!0}});var D0,M0,I0,Ad=p(()=>{"use strict";D0=Math.PI*2,M0=180/Math.PI,I0=Math.PI/180});var J,Pd,Ft=p(()=>{"use strict";J=class r{constructor(e=0,t=0){this.x=0,this.y=0,this.x=e,this.y=t}clone(){return new r(this.x,this.y)}copyFrom(e){return this.set(e.x,e.y),this}copyTo(e){return e.set(this.x,this.y),e}equals(e){return e.x===this.x&&e.y===this.y}set(e=0,t=e){return this.x=e,this.y=t,this}toString(){return`[pixi.js/math:Point x=${this.x} y=${this.y}]`}static get shared(){return Pd.x=0,Pd.y=0,Pd}},Pd=new J});var R,KA,QA,te=p(()=>{Ad();Ft();R=class r{constructor(e=1,t=0,i=0,s=1,n=0,o=0){this.array=null,this.a=e,this.b=t,this.c=i,this.d=s,this.tx=n,this.ty=o}fromArray(e){this.a=e[0],this.b=e[1],this.c=e[3],this.d=e[4],this.tx=e[2],this.ty=e[5]}set(e,t,i,s,n,o){return this.a=e,this.b=t,this.c=i,this.d=s,this.tx=n,this.ty=o,this}toArray(e,t){this.array||(this.array=new Float32Array(9));let i=t||this.array;return e?(i[0]=this.a,i[1]=this.b,i[2]=0,i[3]=this.c,i[4]=this.d,i[5]=0,i[6]=this.tx,i[7]=this.ty,i[8]=1):(i[0]=this.a,i[1]=this.c,i[2]=this.tx,i[3]=this.b,i[4]=this.d,i[5]=this.ty,i[6]=0,i[7]=0,i[8]=1),i}apply(e,t){t=t||new J;let i=e.x,s=e.y;return t.x=this.a*i+this.c*s+this.tx,t.y=this.b*i+this.d*s+this.ty,t}applyInverse(e,t){t=t||new J;let i=this.a,s=this.b,n=this.c,o=this.d,a=this.tx,c=this.ty,u=1/(i*o+n*-s),l=e.x,h=e.y;return t.x=o*u*l+-n*u*h+(c*n-a*o)*u,t.y=i*u*h+-s*u*l+(-c*i+a*s)*u,t}translate(e,t){return this.tx+=e,this.ty+=t,this}scale(e,t){return this.a*=e,this.d*=t,this.c*=e,this.b*=t,this.tx*=e,this.ty*=t,this}rotate(e){let t=Math.cos(e),i=Math.sin(e),s=this.a,n=this.c,o=this.tx;return this.a=s*t-this.b*i,this.b=s*i+this.b*t,this.c=n*t-this.d*i,this.d=n*i+this.d*t,this.tx=o*t-this.ty*i,this.ty=o*i+this.ty*t,this}append(e){let t=this.a,i=this.b,s=this.c,n=this.d;return this.a=e.a*t+e.b*s,this.b=e.a*i+e.b*n,this.c=e.c*t+e.d*s,this.d=e.c*i+e.d*n,this.tx=e.tx*t+e.ty*s+this.tx,this.ty=e.tx*i+e.ty*n+this.ty,this}appendFrom(e,t){let i=e.a,s=e.b,n=e.c,o=e.d,a=e.tx,c=e.ty,u=t.a,l=t.b,h=t.c,f=t.d;return this.a=i*u+s*h,this.b=i*l+s*f,this.c=n*u+o*h,this.d=n*l+o*f,this.tx=a*u+c*h+t.tx,this.ty=a*l+c*f+t.ty,this}setTransform(e,t,i,s,n,o,a,c,u){return this.a=Math.cos(a+u)*n,this.b=Math.sin(a+u)*n,this.c=-Math.sin(a-c)*o,this.d=Math.cos(a-c)*o,this.tx=e-(i*this.a+s*this.c),this.ty=t-(i*this.b+s*this.d),this}prepend(e){let t=this.tx;if(e.a!==1||e.b!==0||e.c!==0||e.d!==1){let i=this.a,s=this.c;this.a=i*e.a+this.b*e.c,this.b=i*e.b+this.b*e.d,this.c=s*e.a+this.d*e.c,this.d=s*e.b+this.d*e.d}return this.tx=t*e.a+this.ty*e.c+e.tx,this.ty=t*e.b+this.ty*e.d+e.ty,this}decompose(e){let t=this.a,i=this.b,s=this.c,n=this.d,o=e.pivot,a=-Math.atan2(-s,n),c=Math.atan2(i,t),u=Math.abs(a+c);return u<1e-5||Math.abs(D0-u)<1e-5?(e.rotation=c,e.skew.x=e.skew.y=0):(e.rotation=0,e.skew.x=a,e.skew.y=c),e.scale.x=Math.sqrt(t*t+i*i),e.scale.y=Math.sqrt(s*s+n*n),e.position.x=this.tx+(o.x*t+o.y*s),e.position.y=this.ty+(o.x*i+o.y*n),e}invert(){let e=this.a,t=this.b,i=this.c,s=this.d,n=this.tx,o=e*s-t*i;return this.a=s/o,this.b=-t/o,this.c=-i/o,this.d=e/o,this.tx=(i*this.ty-s*n)/o,this.ty=-(e*this.ty-t*n)/o,this}isIdentity(){return this.a===1&&this.b===0&&this.c===0&&this.d===1&&this.tx===0&&this.ty===0}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){let e=new r;return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyTo(e){return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyFrom(e){return this.a=e.a,this.b=e.b,this.c=e.c,this.d=e.d,this.tx=e.tx,this.ty=e.ty,this}equals(e){return e.a===this.a&&e.b===this.b&&e.c===this.c&&e.d===this.d&&e.tx===this.tx&&e.ty===this.ty}toString(){return`[pixi.js:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`}static get IDENTITY(){return QA.identity()}static get shared(){return KA.identity()}},KA=new R,QA=new R});var We,xu=p(()=>{"use strict";We=class r{constructor(e,t,i){this._x=t||0,this._y=i||0,this._observer=e}clone(e){return new r(e??this._observer,this._x,this._y)}set(e=0,t=e){return(this._x!==e||this._y!==t)&&(this._x=e,this._y=t,this._observer._onUpdate(this)),this}copyFrom(e){return(this._x!==e.x||this._y!==e.y)&&(this._x=e.x,this._y=e.y,this._observer._onUpdate(this)),this}copyTo(e){return e.set(this._x,this._y),e}equals(e){return e.x===this._x&&e.y===this._y}toString(){return`[pixi.js/math:ObservablePoint x=${this._x} y=${this._y} scope=${this._observer}]`}get x(){return this._x}set x(e){this._x!==e&&(this._x=e,this._observer._onUpdate(this))}get y(){return this._y}set y(e){this._y!==e&&(this._y=e,this._observer._onUpdate(this))}}});function K(r="default"){return Bd[r]===void 0&&(Bd[r]=-1),++Bd[r]}var Bd,Oe=p(()=>{"use strict";Bd={default:-1}});function z(r,e,t=3){if(F0[e])return;let i=new Error().stack;typeof i>"u"?console.warn("PixiJS Deprecation Warning: ",`${e}
|
|
1
|
+
var $E=Object.create;var kh=Object.defineProperty;var qE=Object.getOwnPropertyDescriptor;var jE=Object.getOwnPropertyNames;var XE=Object.getPrototypeOf,YE=Object.prototype.hasOwnProperty;var p=(r,e)=>()=>(r&&(e=r(r=0)),e);var Or=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),yg=(r,e)=>{for(var t in e)kh(r,t,{get:e[t],enumerable:!0})},KE=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of jE(e))!YE.call(r,s)&&s!==t&&kh(r,s,{get:()=>e[s],enumerable:!(i=qE(e,s))||i.enumerable});return r};var Ah=(r,e,t)=>(t=r!=null?$E(XE(r)):{},KE(e||!r||!r.__esModule?kh(t,"default",{value:r,enumerable:!0}):t,r));var b,Oh,Rc,O,P=p(()=>{"use strict";b=(r=>(r.Application="application",r.WebGLPipes="webgl-pipes",r.WebGLPipesAdaptor="webgl-pipes-adaptor",r.WebGLSystem="webgl-system",r.WebGPUPipes="webgpu-pipes",r.WebGPUPipesAdaptor="webgpu-pipes-adaptor",r.WebGPUSystem="webgpu-system",r.CanvasSystem="canvas-system",r.CanvasPipesAdaptor="canvas-pipes-adaptor",r.CanvasPipes="canvas-pipes",r.Asset="asset",r.LoadParser="load-parser",r.ResolveParser="resolve-parser",r.CacheParser="cache-parser",r.DetectionParser="detection-parser",r.MaskEffect="mask-effect",r.BlendMode="blend-mode",r.TextureSource="texture-source",r.Environment="environment",r.ShapeBuilder="shape-builder",r.Batcher="batcher",r))(b||{}),Oh=r=>{if(typeof r=="function"||typeof r=="object"&&r.extension){if(!r.extension)throw new Error("Extension class must have an extension object");r={...typeof r.extension!="object"?{type:r.extension}:r.extension,ref:r}}if(typeof r=="object")r={...r};else throw new Error("Invalid extension type");return typeof r.type=="string"&&(r.type=[r.type]),r},Rc=(r,e)=>Oh(r).priority??e,O={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...r){return r.map(Oh).forEach(e=>{e.type.forEach(t=>this._removeHandlers[t]?.(e))}),this},add(...r){return r.map(Oh).forEach(e=>{e.type.forEach(t=>{let i=this._addHandlers,s=this._queue;i[t]?i[t]?.(e):(s[t]=s[t]||[],s[t]?.push(e))})}),this},handle(r,e,t){let i=this._addHandlers,s=this._removeHandlers;if(i[r]||s[r])throw new Error(`Extension type ${r} already has a handler`);i[r]=e,s[r]=t;let n=this._queue;return n[r]&&(n[r]?.forEach(o=>e(o)),delete n[r]),this},handleByMap(r,e){return this.handle(r,t=>{t.name&&(e[t.name]=t.ref)},t=>{t.name&&delete e[t.name]})},handleByNamedList(r,e,t=-1){return this.handle(r,i=>{e.findIndex(n=>n.name===i.name)>=0||(e.push({name:i.name,value:i.ref}),e.sort((n,o)=>Rc(o.value,t)-Rc(n.value,t)))},i=>{let s=e.findIndex(n=>n.name===i.name);s!==-1&&e.splice(s,1)})},handleByList(r,e,t=-1){return this.handle(r,i=>{e.includes(i.ref)||(e.push(i.ref),e.sort((s,n)=>Rc(n,t)-Rc(s,t)))},i=>{let s=e.indexOf(i.ref);s!==-1&&e.splice(s,1)})},mixin(r,...e){for(let t of e)Object.defineProperties(r.prototype,Object.getOwnPropertyDescriptors(t))}}});var Hg=Or((EO,Gh)=>{"use strict";var dk=Object.prototype.hasOwnProperty,Ze="~";function Un(){}Object.create&&(Un.prototype=Object.create(null),new Un().__proto__||(Ze=!1));function fk(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function Vg(r,e,t,i,s){if(typeof t!="function")throw new TypeError("The listener must be a function");var n=new fk(t,i||r,s),o=Ze?Ze+e:e;return r._events[o]?r._events[o].fn?r._events[o]=[r._events[o],n]:r._events[o].push(n):(r._events[o]=n,r._eventsCount++),r}function Dc(r,e){--r._eventsCount===0?r._events=new Un:delete r._events[e]}function qe(){this._events=new Un,this._eventsCount=0}qe.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)dk.call(t,i)&&e.push(Ze?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};qe.prototype.listeners=function(e){var t=Ze?Ze+e:e,i=this._events[t];if(!i)return[];if(i.fn)return[i.fn];for(var s=0,n=i.length,o=new Array(n);s<n;s++)o[s]=i[s].fn;return o};qe.prototype.listenerCount=function(e){var t=Ze?Ze+e:e,i=this._events[t];return i?i.fn?1:i.length:0};qe.prototype.emit=function(e,t,i,s,n,o){var a=Ze?Ze+e:e;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,l,h;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,i),!0;case 4:return c.fn.call(c.context,t,i,s),!0;case 5:return c.fn.call(c.context,t,i,s,n),!0;case 6:return c.fn.call(c.context,t,i,s,n,o),!0}for(h=1,l=new Array(u-1);h<u;h++)l[h-1]=arguments[h];c.fn.apply(c.context,l)}else{var f=c.length,d;for(h=0;h<f;h++)switch(c[h].once&&this.removeListener(e,c[h].fn,void 0,!0),u){case 1:c[h].fn.call(c[h].context);break;case 2:c[h].fn.call(c[h].context,t);break;case 3:c[h].fn.call(c[h].context,t,i);break;case 4:c[h].fn.call(c[h].context,t,i,s);break;default:if(!l)for(d=1,l=new Array(u-1);d<u;d++)l[d-1]=arguments[d];c[h].fn.apply(c[h].context,l)}}return!0};qe.prototype.on=function(e,t,i){return Vg(this,e,t,i,!1)};qe.prototype.once=function(e,t,i){return Vg(this,e,t,i,!0)};qe.prototype.removeListener=function(e,t,i,s){var n=Ze?Ze+e:e;if(!this._events[n])return this;if(!t)return Dc(this,n),this;var o=this._events[n];if(o.fn)o.fn===t&&(!s||o.once)&&(!i||o.context===i)&&Dc(this,n);else{for(var a=0,c=[],u=o.length;a<u;a++)(o[a].fn!==t||s&&!o[a].once||i&&o[a].context!==i)&&c.push(o[a]);c.length?this._events[n]=c.length===1?c[0]:c:Dc(this,n)}return this};qe.prototype.removeAllListeners=function(e){var t;return e?(t=Ze?Ze+e:e,this._events[t]&&Dc(this,t)):(this._events=new Un,this._eventsCount=0),this};qe.prototype.off=qe.prototype.removeListener;qe.prototype.addListener=qe.prototype.on;qe.prefixed=Ze;qe.EventEmitter=qe;typeof Gh<"u"&&(Gh.exports=qe)});var Wg,oe,Ve=p(()=>{Wg=Ah(Hg(),1),oe=Wg.default});var mk,pr,Ue,St,Zg,$g,Nh,pk,Mc,Jg,ex,qg,jg,Xg,On,gk,xk,_k,bk,Vh,Yg,yk,Lh,zh,Kg,Hh,Mt,Qg,tx,rx=p(()=>{mk={grad:.9,turn:360,rad:360/(2*Math.PI)},pr=function(r){return typeof r=="string"?r.length>0:typeof r=="number"},Ue=function(r,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*r)/t+0},St=function(r,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),r>t?t:r>e?r:e},Zg=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},$g=function(r){return{r:St(r.r,0,255),g:St(r.g,0,255),b:St(r.b,0,255),a:St(r.a)}},Nh=function(r){return{r:Ue(r.r),g:Ue(r.g),b:Ue(r.b),a:Ue(r.a,3)}},pk=/^#([0-9a-f]{3,8})$/i,Mc=function(r){var e=r.toString(16);return e.length<2?"0"+e:e},Jg=function(r){var e=r.r,t=r.g,i=r.b,s=r.a,n=Math.max(e,t,i),o=n-Math.min(e,t,i),a=o?n===e?(t-i)/o:n===t?2+(i-e)/o:4+(e-t)/o:0;return{h:60*(a<0?a+6:a),s:n?o/n*100:0,v:n/255*100,a:s}},ex=function(r){var e=r.h,t=r.s,i=r.v,s=r.a;e=e/360*6,t/=100,i/=100;var n=Math.floor(e),o=i*(1-t),a=i*(1-(e-n)*t),c=i*(1-(1-e+n)*t),u=n%6;return{r:255*[i,a,o,o,c,i][u],g:255*[c,i,i,a,o,o][u],b:255*[o,o,c,i,i,a][u],a:s}},qg=function(r){return{h:Zg(r.h),s:St(r.s,0,100),l:St(r.l,0,100),a:St(r.a)}},jg=function(r){return{h:Ue(r.h),s:Ue(r.s),l:Ue(r.l),a:Ue(r.a,3)}},Xg=function(r){return ex((t=(e=r).s,{h:e.h,s:(t*=((i=e.l)<50?i:100-i)/100)>0?2*t/(i+t)*100:0,v:i+t,a:e.a}));var e,t,i},On=function(r){return{h:(e=Jg(r)).h,s:(s=(200-(t=e.s))*(i=e.v)/100)>0&&s<200?t*i/100/(s<=100?s:200-s)*100:0,l:s/2,a:e.a};var e,t,i,s},gk=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,xk=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,_k=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,bk=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Vh={string:[[function(r){var e=pk.exec(r);return e?(r=e[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:r.length===4?Ue(parseInt(r[3]+r[3],16)/255,2):1}:r.length===6||r.length===8?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:r.length===8?Ue(parseInt(r.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(r){var e=_k.exec(r)||bk.exec(r);return e?e[2]!==e[4]||e[4]!==e[6]?null:$g({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:e[7]===void 0?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(r){var e=gk.exec(r)||xk.exec(r);if(!e)return null;var t,i,s=qg({h:(t=e[1],i=e[2],i===void 0&&(i="deg"),Number(t)*(mk[i]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return Xg(s)},"hsl"]],object:[[function(r){var e=r.r,t=r.g,i=r.b,s=r.a,n=s===void 0?1:s;return pr(e)&&pr(t)&&pr(i)?$g({r:Number(e),g:Number(t),b:Number(i),a:Number(n)}):null},"rgb"],[function(r){var e=r.h,t=r.s,i=r.l,s=r.a,n=s===void 0?1:s;if(!pr(e)||!pr(t)||!pr(i))return null;var o=qg({h:Number(e),s:Number(t),l:Number(i),a:Number(n)});return Xg(o)},"hsl"],[function(r){var e=r.h,t=r.s,i=r.v,s=r.a,n=s===void 0?1:s;if(!pr(e)||!pr(t)||!pr(i))return null;var o=function(a){return{h:Zg(a.h),s:St(a.s,0,100),v:St(a.v,0,100),a:St(a.a)}}({h:Number(e),s:Number(t),v:Number(i),a:Number(n)});return ex(o)},"hsv"]]},Yg=function(r,e){for(var t=0;t<e.length;t++){var i=e[t][0](r);if(i)return[i,e[t][1]]}return[null,void 0]},yk=function(r){return typeof r=="string"?Yg(r.trim(),Vh.string):typeof r=="object"&&r!==null?Yg(r,Vh.object):[null,void 0]},Lh=function(r,e){var t=On(r);return{h:t.h,s:St(t.s+100*e,0,100),l:t.l,a:t.a}},zh=function(r){return(299*r.r+587*r.g+114*r.b)/1e3/255},Kg=function(r,e){var t=On(r);return{h:t.h,s:t.s,l:St(t.l+100*e,0,100),a:t.a}},Hh=function(){function r(e){this.parsed=yk(e)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return r.prototype.isValid=function(){return this.parsed!==null},r.prototype.brightness=function(){return Ue(zh(this.rgba),2)},r.prototype.isDark=function(){return zh(this.rgba)<.5},r.prototype.isLight=function(){return zh(this.rgba)>=.5},r.prototype.toHex=function(){return e=Nh(this.rgba),t=e.r,i=e.g,s=e.b,o=(n=e.a)<1?Mc(Ue(255*n)):"","#"+Mc(t)+Mc(i)+Mc(s)+o;var e,t,i,s,n,o},r.prototype.toRgb=function(){return Nh(this.rgba)},r.prototype.toRgbString=function(){return e=Nh(this.rgba),t=e.r,i=e.g,s=e.b,(n=e.a)<1?"rgba("+t+", "+i+", "+s+", "+n+")":"rgb("+t+", "+i+", "+s+")";var e,t,i,s,n},r.prototype.toHsl=function(){return jg(On(this.rgba))},r.prototype.toHslString=function(){return e=jg(On(this.rgba)),t=e.h,i=e.s,s=e.l,(n=e.a)<1?"hsla("+t+", "+i+"%, "+s+"%, "+n+")":"hsl("+t+", "+i+"%, "+s+"%)";var e,t,i,s,n},r.prototype.toHsv=function(){return e=Jg(this.rgba),{h:Ue(e.h),s:Ue(e.s),v:Ue(e.v),a:Ue(e.a,3)};var e},r.prototype.invert=function(){return Mt({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},r.prototype.saturate=function(e){return e===void 0&&(e=.1),Mt(Lh(this.rgba,e))},r.prototype.desaturate=function(e){return e===void 0&&(e=.1),Mt(Lh(this.rgba,-e))},r.prototype.grayscale=function(){return Mt(Lh(this.rgba,-1))},r.prototype.lighten=function(e){return e===void 0&&(e=.1),Mt(Kg(this.rgba,e))},r.prototype.darken=function(e){return e===void 0&&(e=.1),Mt(Kg(this.rgba,-e))},r.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},r.prototype.alpha=function(e){return typeof e=="number"?Mt({r:(t=this.rgba).r,g:t.g,b:t.b,a:e}):Ue(this.rgba.a,3);var t},r.prototype.hue=function(e){var t=On(this.rgba);return typeof e=="number"?Mt({h:e,s:t.s,l:t.l,a:t.a}):Ue(t.h)},r.prototype.isEqual=function(e){return this.toHex()===Mt(e).toHex()},r}(),Mt=function(r){return r instanceof Hh?r:new Hh(r)},Qg=[],tx=function(r){r.forEach(function(e){Qg.indexOf(e)<0&&(e(Hh,Vh),Qg.push(e))})}});function ix(r,e){var t={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},i={};for(var s in t)i[t[s]]=s;var n={};r.prototype.toName=function(o){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var a,c,u=i[this.toHex()];if(u)return u;if(o?.closest){var l=this.toRgb(),h=1/0,f="black";if(!n.length)for(var d in t)n[d]=new r(t[d]).toRgb();for(var m in t){var x=(a=l,c=n[m],Math.pow(a.r-c.r,2)+Math.pow(a.g-c.g,2)+Math.pow(a.b-c.b,2));x<h&&(h=x,f=m)}return f}},e.string.push([function(o){var a=o.toLowerCase(),c=a==="transparent"?"#0000":t[a];return c?new r(c).toRgb():null},"name"])}var sx=p(()=>{});var ns,q,He=p(()=>{rx();sx();tx([ix]);ns=class Gn{constructor(e=16777215){this._value=null,this._components=new Float32Array(4),this._components.fill(1),this._int=16777215,this.value=e}get red(){return this._components[0]}get green(){return this._components[1]}get blue(){return this._components[2]}get alpha(){return this._components[3]}setValue(e){return this.value=e,this}set value(e){if(e instanceof Gn)this._value=this._cloneSource(e._value),this._int=e._int,this._components.set(e._components);else{if(e===null)throw new Error("Cannot set Color#value to null");(this._value===null||!this._isSourceEqual(this._value,e))&&(this._value=this._cloneSource(e),this._normalize(this._value))}}get value(){return this._value}_cloneSource(e){return typeof e=="string"||typeof e=="number"||e instanceof Number||e===null?e:Array.isArray(e)||ArrayBuffer.isView(e)?e.slice(0):typeof e=="object"&&e!==null?{...e}:e}_isSourceEqual(e,t){let i=typeof e;if(i!==typeof t)return!1;if(i==="number"||i==="string"||e instanceof Number)return e===t;if(Array.isArray(e)&&Array.isArray(t)||ArrayBuffer.isView(e)&&ArrayBuffer.isView(t))return e.length!==t.length?!1:e.every((n,o)=>n===t[o]);if(e!==null&&t!==null){let n=Object.keys(e),o=Object.keys(t);return n.length!==o.length?!1:n.every(a=>e[a]===t[a])}return e===t}toRgba(){let[e,t,i,s]=this._components;return{r:e,g:t,b:i,a:s}}toRgb(){let[e,t,i]=this._components;return{r:e,g:t,b:i}}toRgbaString(){let[e,t,i]=this.toUint8RgbArray();return`rgba(${e},${t},${i},${this.alpha})`}toUint8RgbArray(e){let[t,i,s]=this._components;return this._arrayRgb||(this._arrayRgb=[]),e||(e=this._arrayRgb),e[0]=Math.round(t*255),e[1]=Math.round(i*255),e[2]=Math.round(s*255),e}toArray(e){this._arrayRgba||(this._arrayRgba=[]),e||(e=this._arrayRgba);let[t,i,s,n]=this._components;return e[0]=t,e[1]=i,e[2]=s,e[3]=n,e}toRgbArray(e){this._arrayRgb||(this._arrayRgb=[]),e||(e=this._arrayRgb);let[t,i,s]=this._components;return e[0]=t,e[1]=i,e[2]=s,e}toNumber(){return this._int}toBgrNumber(){let[e,t,i]=this.toUint8RgbArray();return(i<<16)+(t<<8)+e}toLittleEndianNumber(){let e=this._int;return(e>>16)+(e&65280)+((e&255)<<16)}multiply(e){let[t,i,s,n]=Gn._temp.setValue(e)._components;return this._components[0]*=t,this._components[1]*=i,this._components[2]*=s,this._components[3]*=n,this._refreshInt(),this._value=null,this}premultiply(e,t=!0){return t&&(this._components[0]*=e,this._components[1]*=e,this._components[2]*=e),this._components[3]=e,this._refreshInt(),this._value=null,this}toPremultiplied(e,t=!0){if(e===1)return(255<<24)+this._int;if(e===0)return t?0:this._int;let i=this._int>>16&255,s=this._int>>8&255,n=this._int&255;return t&&(i=i*e+.5|0,s=s*e+.5|0,n=n*e+.5|0),(e*255<<24)+(i<<16)+(s<<8)+n}toHex(){let e=this._int.toString(16);return`#${"000000".substring(0,6-e.length)+e}`}toHexa(){let t=Math.round(this._components[3]*255).toString(16);return this.toHex()+"00".substring(0,2-t.length)+t}setAlpha(e){return this._components[3]=this._clamp(e),this}_normalize(e){let t,i,s,n;if((typeof e=="number"||e instanceof Number)&&e>=0&&e<=16777215){let o=e;t=(o>>16&255)/255,i=(o>>8&255)/255,s=(o&255)/255,n=1}else if((Array.isArray(e)||e instanceof Float32Array)&&e.length>=3&&e.length<=4)e=this._clamp(e),[t,i,s,n=1]=e;else if((e instanceof Uint8Array||e instanceof Uint8ClampedArray)&&e.length>=3&&e.length<=4)e=this._clamp(e,0,255),[t,i,s,n=255]=e,t/=255,i/=255,s/=255,n/=255;else if(typeof e=="string"||typeof e=="object"){if(typeof e=="string"){let a=Gn.HEX_PATTERN.exec(e);a&&(e=`#${a[2]}`)}let o=Mt(e);o.isValid()&&({r:t,g:i,b:s,a:n}=o.rgba,t/=255,i/=255,s/=255)}if(t!==void 0)this._components[0]=t,this._components[1]=i,this._components[2]=s,this._components[3]=n,this._refreshInt();else throw new Error(`Unable to convert color ${e}`)}_refreshInt(){this._clamp(this._components);let[e,t,i]=this._components;this._int=(e*255<<16)+(t*255<<8)+(i*255|0)}_clamp(e,t=0,i=1){return typeof e=="number"?Math.min(Math.max(e,t),i):(e.forEach((s,n)=>{e[n]=Math.min(Math.max(s,t),i)}),e)}static isColorLike(e){return typeof e=="number"||typeof e=="string"||e instanceof Number||e instanceof Gn||Array.isArray(e)||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Float32Array||e.r!==void 0&&e.g!==void 0&&e.b!==void 0||e.r!==void 0&&e.g!==void 0&&e.b!==void 0&&e.a!==void 0||e.h!==void 0&&e.s!==void 0&&e.l!==void 0||e.h!==void 0&&e.s!==void 0&&e.l!==void 0&&e.a!==void 0||e.h!==void 0&&e.s!==void 0&&e.v!==void 0||e.h!==void 0&&e.s!==void 0&&e.v!==void 0&&e.a!==void 0}};ns.shared=new ns;ns._temp=new ns;ns.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;q=ns});var nx,ox=p(()=>{"use strict";nx={cullArea:null,cullable:!1,cullableChildren:!0}});var ax,cx,ux,Wh=p(()=>{"use strict";ax=Math.PI*2,cx=180/Math.PI,ux=Math.PI/180});var Z,$h,It=p(()=>{"use strict";Z=class r{constructor(e=0,t=0){this.x=0,this.y=0,this.x=e,this.y=t}clone(){return new r(this.x,this.y)}copyFrom(e){return this.set(e.x,e.y),this}copyTo(e){return e.set(this.x,this.y),e}equals(e){return e.x===this.x&&e.y===this.y}set(e=0,t=e){return this.x=e,this.y=t,this}toString(){return`[pixi.js/math:Point x=${this.x} y=${this.y}]`}static get shared(){return $h.x=0,$h.y=0,$h}},$h=new Z});var R,Tk,wk,ee=p(()=>{Wh();It();R=class r{constructor(e=1,t=0,i=0,s=1,n=0,o=0){this.array=null,this.a=e,this.b=t,this.c=i,this.d=s,this.tx=n,this.ty=o}fromArray(e){this.a=e[0],this.b=e[1],this.c=e[3],this.d=e[4],this.tx=e[2],this.ty=e[5]}set(e,t,i,s,n,o){return this.a=e,this.b=t,this.c=i,this.d=s,this.tx=n,this.ty=o,this}toArray(e,t){this.array||(this.array=new Float32Array(9));let i=t||this.array;return e?(i[0]=this.a,i[1]=this.b,i[2]=0,i[3]=this.c,i[4]=this.d,i[5]=0,i[6]=this.tx,i[7]=this.ty,i[8]=1):(i[0]=this.a,i[1]=this.c,i[2]=this.tx,i[3]=this.b,i[4]=this.d,i[5]=this.ty,i[6]=0,i[7]=0,i[8]=1),i}apply(e,t){t=t||new Z;let i=e.x,s=e.y;return t.x=this.a*i+this.c*s+this.tx,t.y=this.b*i+this.d*s+this.ty,t}applyInverse(e,t){t=t||new Z;let i=this.a,s=this.b,n=this.c,o=this.d,a=this.tx,c=this.ty,u=1/(i*o+n*-s),l=e.x,h=e.y;return t.x=o*u*l+-n*u*h+(c*n-a*o)*u,t.y=i*u*h+-s*u*l+(-c*i+a*s)*u,t}translate(e,t){return this.tx+=e,this.ty+=t,this}scale(e,t){return this.a*=e,this.d*=t,this.c*=e,this.b*=t,this.tx*=e,this.ty*=t,this}rotate(e){let t=Math.cos(e),i=Math.sin(e),s=this.a,n=this.c,o=this.tx;return this.a=s*t-this.b*i,this.b=s*i+this.b*t,this.c=n*t-this.d*i,this.d=n*i+this.d*t,this.tx=o*t-this.ty*i,this.ty=o*i+this.ty*t,this}append(e){let t=this.a,i=this.b,s=this.c,n=this.d;return this.a=e.a*t+e.b*s,this.b=e.a*i+e.b*n,this.c=e.c*t+e.d*s,this.d=e.c*i+e.d*n,this.tx=e.tx*t+e.ty*s+this.tx,this.ty=e.tx*i+e.ty*n+this.ty,this}appendFrom(e,t){let i=e.a,s=e.b,n=e.c,o=e.d,a=e.tx,c=e.ty,u=t.a,l=t.b,h=t.c,f=t.d;return this.a=i*u+s*h,this.b=i*l+s*f,this.c=n*u+o*h,this.d=n*l+o*f,this.tx=a*u+c*h+t.tx,this.ty=a*l+c*f+t.ty,this}setTransform(e,t,i,s,n,o,a,c,u){return this.a=Math.cos(a+u)*n,this.b=Math.sin(a+u)*n,this.c=-Math.sin(a-c)*o,this.d=Math.cos(a-c)*o,this.tx=e-(i*this.a+s*this.c),this.ty=t-(i*this.b+s*this.d),this}prepend(e){let t=this.tx;if(e.a!==1||e.b!==0||e.c!==0||e.d!==1){let i=this.a,s=this.c;this.a=i*e.a+this.b*e.c,this.b=i*e.b+this.b*e.d,this.c=s*e.a+this.d*e.c,this.d=s*e.b+this.d*e.d}return this.tx=t*e.a+this.ty*e.c+e.tx,this.ty=t*e.b+this.ty*e.d+e.ty,this}decompose(e){let t=this.a,i=this.b,s=this.c,n=this.d,o=e.pivot,a=-Math.atan2(-s,n),c=Math.atan2(i,t),u=Math.abs(a+c);return u<1e-5||Math.abs(ax-u)<1e-5?(e.rotation=c,e.skew.x=e.skew.y=0):(e.rotation=0,e.skew.x=a,e.skew.y=c),e.scale.x=Math.sqrt(t*t+i*i),e.scale.y=Math.sqrt(s*s+n*n),e.position.x=this.tx+(o.x*t+o.y*s),e.position.y=this.ty+(o.x*i+o.y*n),e}invert(){let e=this.a,t=this.b,i=this.c,s=this.d,n=this.tx,o=e*s-t*i;return this.a=s/o,this.b=-t/o,this.c=-i/o,this.d=e/o,this.tx=(i*this.ty-s*n)/o,this.ty=-(e*this.ty-t*n)/o,this}isIdentity(){return this.a===1&&this.b===0&&this.c===0&&this.d===1&&this.tx===0&&this.ty===0}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){let e=new r;return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyTo(e){return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyFrom(e){return this.a=e.a,this.b=e.b,this.c=e.c,this.d=e.d,this.tx=e.tx,this.ty=e.ty,this}equals(e){return e.a===this.a&&e.b===this.b&&e.c===this.c&&e.d===this.d&&e.tx===this.tx&&e.ty===this.ty}toString(){return`[pixi.js:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`}static get IDENTITY(){return wk.identity()}static get shared(){return Tk.identity()}},Tk=new R,wk=new R});var We,Ic=p(()=>{"use strict";We=class r{constructor(e,t,i){this._x=t||0,this._y=i||0,this._observer=e}clone(e){return new r(e??this._observer,this._x,this._y)}set(e=0,t=e){return(this._x!==e||this._y!==t)&&(this._x=e,this._y=t,this._observer._onUpdate(this)),this}copyFrom(e){return(this._x!==e.x||this._y!==e.y)&&(this._x=e.x,this._y=e.y,this._observer._onUpdate(this)),this}copyTo(e){return e.set(this._x,this._y),e}equals(e){return e.x===this._x&&e.y===this._y}toString(){return`[pixi.js/math:ObservablePoint x=${this._x} y=${this._y} scope=${this._observer}]`}get x(){return this._x}set x(e){this._x!==e&&(this._x=e,this._observer._onUpdate(this))}get y(){return this._y}set y(e){this._y!==e&&(this._y=e,this._observer._onUpdate(this))}}});function K(r="default"){return qh[r]===void 0&&(qh[r]=-1),++qh[r]}var qh,Oe=p(()=>{"use strict";qh={default:-1}});function z(r,e,t=3){if(lx[e])return;let i=new Error().stack;typeof i>"u"?console.warn("PixiJS Deprecation Warning: ",`${e}
|
|
2
2
|
Deprecated since v${r}`):(i=i.split(`
|
|
3
3
|
`).splice(t).join(`
|
|
4
4
|
`),console.groupCollapsed?(console.groupCollapsed("%cPixiJS Deprecation Warning: %c%s","color:#614108;background:#fffbe6","font-weight:normal;color:#614108;background:#fffbe6",`${e}
|
|
5
5
|
Deprecated since v${r}`),console.warn(i),console.groupEnd()):(console.warn("PixiJS Deprecation Warning: ",`${e}
|
|
6
|
-
Deprecated since v${r}`),console.warn(i))),F0[e]=!0}var F0,$,U0,ye=p(()=>{"use strict";F0={},$="8.0.0",U0="8.3.4"});var Ii,Rd=p(()=>{"use strict";Ii=class{constructor(e,t){this._pool=[],this._count=0,this._index=0,this._classType=e,t&&this.prepopulate(t)}prepopulate(e){for(let t=0;t<e;t++)this._pool[this._index++]=new this._classType;this._count+=e}get(e){let t;return this._index>0?t=this._pool[--this._index]:t=new this._classType,t.init?.(e),t}return(e){e.reset?.(),this._pool[this._index++]=e}get totalSize(){return this._count}get totalFree(){return this._index}get totalUsed(){return this._count-this._index}clear(){this._pool.length=0,this._index=0}}});var Dd,me,br=p(()=>{Rd();Dd=class{constructor(){this._poolsByClass=new Map}prepopulate(e,t){this.getPool(e).prepopulate(t)}get(e,t){return this.getPool(e).get(t)}return(e){this.getPool(e.constructor).return(e)}getPool(e){return this._poolsByClass.has(e)||this._poolsByClass.set(e,new Ii(e)),this._poolsByClass.get(e)}stats(){let e={};return this._poolsByClass.forEach(t=>{let i=e[t._classType.name]?t._classType.name+t._classType.ID:t._classType.name;e[i]={free:t.totalFree,used:t.totalUsed,size:t.totalSize}}),e}},me=new Dd});var O0,G0=p(()=>{ye();O0={get isCachedAsTexture(){return!!this.renderGroup?.isCachedAsTexture},cacheAsTexture(r){typeof r=="boolean"&&r===!1?this.disableRenderGroup():(this.enableRenderGroup(),this.renderGroup.enableCacheAsTexture(r===!0?{}:r))},updateCacheTexture(){this.renderGroup?.updateCacheTexture()},get cacheAsBitmap(){return this.isCachedAsTexture},set cacheAsBitmap(r){z("v8.6.0","cacheAsBitmap is deprecated, use cacheAsTexture instead."),this.cacheAsTexture(r)}}});function _u(r,e,t){let i=r.length,s;if(e>=i||t===0)return;t=e+t>i?i-e:t;let n=i-t;for(s=e;s<n;++s)r[s]=r[s+t];r.length=n}var Md=p(()=>{"use strict"});var N0,L0=p(()=>{Md();ye();N0={allowChildren:!0,removeChildren(r=0,e){let t=e??this.children.length,i=t-r,s=[];if(i>0&&i<=t){for(let o=t-1;o>=r;o--){let a=this.children[o];a&&(s.push(a),a.parent=null)}_u(this.children,r,t);let n=this.renderGroup||this.parentRenderGroup;n&&n.removeChildren(s);for(let o=0;o<s.length;++o){let a=s[o];a.parentRenderLayer?.detach(a),this.emit("childRemoved",a,this,o),s[o].emit("removed",this)}return s.length>0&&this._didViewChangeTick++,s}else if(i===0&&this.children.length===0)return s;throw new RangeError("removeChildren: numeric values are outside the acceptable range.")},removeChildAt(r){let e=this.getChildAt(r);return this.removeChild(e)},getChildAt(r){if(r<0||r>=this.children.length)throw new Error(`getChildAt: Index (${r}) does not exist.`);return this.children[r]},setChildIndex(r,e){if(e<0||e>=this.children.length)throw new Error(`The index ${e} supplied is out of bounds ${this.children.length}`);this.getChildIndex(r),this.addChildAt(r,e)},getChildIndex(r){let e=this.children.indexOf(r);if(e===-1)throw new Error("The supplied Container must be a child of the caller");return e},addChildAt(r,e){this.allowChildren||z($,"addChildAt: Only Containers will be allowed to add children in v8.0.0");let{children:t}=this;if(e<0||e>t.length)throw new Error(`${r}addChildAt: The index ${e} supplied is out of bounds ${t.length}`);if(r.parent){let s=r.parent.children.indexOf(r);if(r.parent===this&&s===e)return r;s!==-1&&r.parent.children.splice(s,1)}e===t.length?t.push(r):t.splice(e,0,r),r.parent=this,r.didChange=!0,r._updateFlags=15;let i=this.renderGroup||this.parentRenderGroup;return i&&i.addChild(r),this.sortableChildren&&(this.sortDirty=!0),this.emit("childAdded",r,this,e),r.emit("added",this),r},swapChildren(r,e){if(r===e)return;let t=this.getChildIndex(r),i=this.getChildIndex(e);this.children[t]=e,this.children[i]=r;let s=this.renderGroup||this.parentRenderGroup;s&&(s.structureDidChange=!0),this._didContainerChangeTick++},removeFromParent(){this.parent?.removeChild(this)},reparentChild(...r){return r.length===1?this.reparentChildAt(r[0],this.children.length):(r.forEach(e=>this.reparentChildAt(e,this.children.length)),r[0])},reparentChildAt(r,e){if(r.parent===this)return this.setChildIndex(r,e),r;let t=r.worldTransform.clone();r.removeFromParent(),this.addChildAt(r,e);let i=this.worldTransform.clone();return i.invert(),t.prepend(i),r.setFromMatrix(t),r}}});var z0,V0=p(()=>{"use strict";z0={collectRenderables(r,e,t){this.parentRenderLayer&&this.parentRenderLayer!==t||this.globalDisplayStatus<7||!this.includeInBuild||(this.sortableChildren&&this.sortChildren(),this.isSimple?this.collectRenderablesSimple(r,e,t):this.renderGroup?e.renderPipes.renderGroup.addRenderGroup(this.renderGroup,r):this.collectRenderablesWithEffects(r,e,t))},collectRenderablesSimple(r,e,t){let i=this.children,s=i.length;for(let n=0;n<s;n++)i[n].collectRenderables(r,e,t)},collectRenderablesWithEffects(r,e,t){let{renderPipes:i}=e;for(let s=0;s<this.effects.length;s++){let n=this.effects[s];i[n.pipe].push(n,this,r)}this.collectRenderablesSimple(r,e,t);for(let s=this.effects.length-1;s>=0;s--){let n=this.effects[s];i[n.pipe].pop(n,this,r)}}}});var yr,bu=p(()=>{"use strict";yr=class{constructor(){this.pipe="filter",this.priority=1}destroy(){for(let e=0;e<this.filters.length;e++)this.filters[e].destroy();this.filters=null,this.filterArea=null}}});var Id,yu,H0=p(()=>{B();br();Id=class{constructor(){this._effectClasses=[],this._tests=[],this._initialized=!1}init(){this._initialized||(this._initialized=!0,this._effectClasses.forEach(e=>{this.add({test:e.test,maskClass:e})}))}add(e){this._tests.push(e)}getMaskEffect(e){this._initialized||this.init();for(let t=0;t<this._tests.length;t++){let i=this._tests[t];if(i.test(e))return me.get(i.maskClass,e)}return e}returnMaskEffect(e){me.return(e)}},yu=new Id;O.handleByList(b.MaskEffect,yu._effectClasses)});var W0,$0=p(()=>{bu();H0();W0={_maskEffect:null,_maskOptions:{inverse:!1},_filterEffect:null,effects:[],_markStructureAsChanged(){let r=this.renderGroup||this.parentRenderGroup;r&&(r.structureDidChange=!0)},addEffect(r){this.effects.indexOf(r)===-1&&(this.effects.push(r),this.effects.sort((t,i)=>t.priority-i.priority),this._markStructureAsChanged(),this._updateIsSimple())},removeEffect(r){let e=this.effects.indexOf(r);e!==-1&&(this.effects.splice(e,1),this._markStructureAsChanged(),this._updateIsSimple())},set mask(r){let e=this._maskEffect;e?.mask!==r&&(e&&(this.removeEffect(e),yu.returnMaskEffect(e),this._maskEffect=null),r!=null&&(this._maskEffect=yu.getMaskEffect(r),this.addEffect(this._maskEffect)))},get mask(){return this._maskEffect?.mask},setMask(r){this._maskOptions={...this._maskOptions,...r},r.mask&&(this.mask=r.mask),this._markStructureAsChanged()},set filters(r){!Array.isArray(r)&&r&&(r=[r]);let e=this._filterEffect||(this._filterEffect=new yr);r=r;let t=r?.length>0,i=e.filters?.length>0,s=t!==i;r=Array.isArray(r)?r.slice(0):r,e.filters=Object.freeze(r),s&&(t?this.addEffect(e):(this.removeEffect(e),e.filters=r??null))},get filters(){return this._filterEffect?.filters},set filterArea(r){this._filterEffect||(this._filterEffect=new yr),this._filterEffect.filterArea=r},get filterArea(){return this._filterEffect?.filterArea}}});var q0,j0=p(()=>{ye();q0={label:null,get name(){return z($,"Container.name property has been removed, use Container.label instead"),this.label},set name(r){z($,"Container.name property has been removed, use Container.label instead"),this.label=r},getChildByName(r,e=!1){return this.getChildByLabel(r,e)},getChildByLabel(r,e=!1){let t=this.children;for(let i=0;i<t.length;i++){let s=t[i];if(s.label===r||r instanceof RegExp&&r.test(s.label))return s}if(e)for(let i=0;i<t.length;i++){let n=t[i].getChildByLabel(r,!0);if(n)return n}return null},getChildrenByLabel(r,e=!1,t=[]){let i=this.children;for(let s=0;s<i.length;s++){let n=i[s];(n.label===r||r instanceof RegExp&&r.test(n.label))&&t.push(n)}if(e)for(let s=0;s<i.length;s++)i[s].getChildrenByLabel(r,!0,t);return t}}});var Tu,Y,Ge=p(()=>{Ft();Tu=[new J,new J,new J,new J],Y=class r{constructor(e=0,t=0,i=0,s=0){this.type="rectangle",this.x=Number(e),this.y=Number(t),this.width=Number(i),this.height=Number(s)}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}isEmpty(){return this.left===this.right||this.top===this.bottom}static get EMPTY(){return new r(0,0,0,0)}clone(){return new r(this.x,this.y,this.width,this.height)}copyFromBounds(e){return this.x=e.minX,this.y=e.minY,this.width=e.maxX-e.minX,this.height=e.maxY-e.minY,this}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){return this.width<=0||this.height<=0?!1:e>=this.x&&e<this.x+this.width&&t>=this.y&&t<this.y+this.height}strokeContains(e,t,i,s=.5){let{width:n,height:o}=this;if(n<=0||o<=0)return!1;let a=this.x,c=this.y,u=i*(1-s),l=i-u,h=a-u,f=a+n+u,d=c-u,m=c+o+u,x=a+l,g=a+n-l,_=c+l,y=c+o-l;return e>=h&&e<=f&&t>=d&&t<=m&&!(e>x&&e<g&&t>_&&t<y)}intersects(e,t){if(!t){let D=this.x<e.x?e.x:this.x;if((this.right>e.right?e.right:this.right)<=D)return!1;let P=this.y<e.y?e.y:this.y;return(this.bottom>e.bottom?e.bottom:this.bottom)>P}let i=this.left,s=this.right,n=this.top,o=this.bottom;if(s<=i||o<=n)return!1;let a=Tu[0].set(e.left,e.top),c=Tu[1].set(e.left,e.bottom),u=Tu[2].set(e.right,e.top),l=Tu[3].set(e.right,e.bottom);if(u.x<=a.x||c.y<=a.y)return!1;let h=Math.sign(t.a*t.d-t.b*t.c);if(h===0||(t.apply(a,a),t.apply(c,c),t.apply(u,u),t.apply(l,l),Math.max(a.x,c.x,u.x,l.x)<=i||Math.min(a.x,c.x,u.x,l.x)>=s||Math.max(a.y,c.y,u.y,l.y)<=n||Math.min(a.y,c.y,u.y,l.y)>=o))return!1;let f=h*(c.y-a.y),d=h*(a.x-c.x),m=f*i+d*n,x=f*s+d*n,g=f*i+d*o,_=f*s+d*o;if(Math.max(m,x,g,_)<=f*a.x+d*a.y||Math.min(m,x,g,_)>=f*l.x+d*l.y)return!1;let y=h*(a.y-u.y),S=h*(u.x-a.x),T=y*i+S*n,C=y*s+S*n,v=y*i+S*o,E=y*s+S*o;return!(Math.max(T,C,v,E)<=y*a.x+S*a.y||Math.min(T,C,v,E)>=y*l.x+S*l.y)}pad(e=0,t=e){return this.x-=e,this.y-=t,this.width+=e*2,this.height+=t*2,this}fit(e){let t=Math.max(this.x,e.x),i=Math.min(this.x+this.width,e.x+e.width),s=Math.max(this.y,e.y),n=Math.min(this.y+this.height,e.y+e.height);return this.x=t,this.width=Math.max(i-t,0),this.y=s,this.height=Math.max(n-s,0),this}ceil(e=1,t=.001){let i=Math.ceil((this.x+this.width-t)*e)/e,s=Math.ceil((this.y+this.height-t)*e)/e;return this.x=Math.floor((this.x+t)*e)/e,this.y=Math.floor((this.y+t)*e)/e,this.width=i-this.x,this.height=s-this.y,this}enlarge(e){let t=Math.min(this.x,e.x),i=Math.max(this.x+this.width,e.x+e.width),s=Math.min(this.y,e.y),n=Math.max(this.y+this.height,e.y+e.height);return this.x=t,this.width=i-t,this.y=s,this.height=n-s,this}getBounds(e){return e||(e=new r),e.copyFrom(this),e}containsRect(e){if(this.width<=0||this.height<=0)return!1;let t=e.x,i=e.y,s=e.x+e.width,n=e.y+e.height;return t>=this.x&&t<this.x+this.width&&i>=this.y&&i<this.y+this.height&&s>=this.x&&s<this.x+this.width&&n>=this.y&&n<this.y+this.height}set(e,t,i,s){return this.x=e,this.y=t,this.width=i,this.height=s,this}toString(){return`[pixi.js/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}}});var X0,ae,at=p(()=>{te();Ge();X0=new R,ae=class r{constructor(e=1/0,t=1/0,i=-1/0,s=-1/0){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=X0,this.minX=e,this.minY=t,this.maxX=i,this.maxY=s}isEmpty(){return this.minX>this.maxX||this.minY>this.maxY}get rectangle(){this._rectangle||(this._rectangle=new Y);let e=this._rectangle;return this.minX>this.maxX||this.minY>this.maxY?(e.x=0,e.y=0,e.width=0,e.height=0):e.copyFromBounds(this),e}clear(){return this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=X0,this}set(e,t,i,s){this.minX=e,this.minY=t,this.maxX=i,this.maxY=s}addFrame(e,t,i,s,n){n||(n=this.matrix);let o=n.a,a=n.b,c=n.c,u=n.d,l=n.tx,h=n.ty,f=this.minX,d=this.minY,m=this.maxX,x=this.maxY,g=o*e+c*t+l,_=a*e+u*t+h;g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),g=o*i+c*t+l,_=a*i+u*t+h,g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),g=o*e+c*s+l,_=a*e+u*s+h,g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),g=o*i+c*s+l,_=a*i+u*s+h,g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),this.minX=f,this.minY=d,this.maxX=m,this.maxY=x}addRect(e,t){this.addFrame(e.x,e.y,e.x+e.width,e.y+e.height,t)}addBounds(e,t){this.addFrame(e.minX,e.minY,e.maxX,e.maxY,t)}addBoundsMask(e){this.minX=this.minX>e.minX?this.minX:e.minX,this.minY=this.minY>e.minY?this.minY:e.minY,this.maxX=this.maxX<e.maxX?this.maxX:e.maxX,this.maxY=this.maxY<e.maxY?this.maxY:e.maxY}applyMatrix(e){let t=this.minX,i=this.minY,s=this.maxX,n=this.maxY,{a:o,b:a,c,d:u,tx:l,ty:h}=e,f=o*t+c*i+l,d=a*t+u*i+h;this.minX=f,this.minY=d,this.maxX=f,this.maxY=d,f=o*s+c*i+l,d=a*s+u*i+h,this.minX=f<this.minX?f:this.minX,this.minY=d<this.minY?d:this.minY,this.maxX=f>this.maxX?f:this.maxX,this.maxY=d>this.maxY?d:this.maxY,f=o*t+c*n+l,d=a*t+u*n+h,this.minX=f<this.minX?f:this.minX,this.minY=d<this.minY?d:this.minY,this.maxX=f>this.maxX?f:this.maxX,this.maxY=d>this.maxY?d:this.maxY,f=o*s+c*n+l,d=a*s+u*n+h,this.minX=f<this.minX?f:this.minX,this.minY=d<this.minY?d:this.minY,this.maxX=f>this.maxX?f:this.maxX,this.maxY=d>this.maxY?d:this.maxY}fit(e){return this.minX<e.left&&(this.minX=e.left),this.maxX>e.right&&(this.maxX=e.right),this.minY<e.top&&(this.minY=e.top),this.maxY>e.bottom&&(this.maxY=e.bottom),this}fitBounds(e,t,i,s){return this.minX<e&&(this.minX=e),this.maxX>t&&(this.maxX=t),this.minY<i&&(this.minY=i),this.maxY>s&&(this.maxY=s),this}pad(e,t=e){return this.minX-=e,this.maxX+=e,this.minY-=t,this.maxY+=t,this}ceil(){return this.minX=Math.floor(this.minX),this.minY=Math.floor(this.minY),this.maxX=Math.ceil(this.maxX),this.maxY=Math.ceil(this.maxY),this}clone(){return new r(this.minX,this.minY,this.maxX,this.maxY)}scale(e,t=e){return this.minX*=e,this.minY*=t,this.maxX*=e,this.maxY*=t,this}get x(){return this.minX}set x(e){let t=this.maxX-this.minX;this.minX=e,this.maxX=e+t}get y(){return this.minY}set y(e){let t=this.maxY-this.minY;this.minY=e,this.maxY=e+t}get width(){return this.maxX-this.minX}set width(e){this.maxX=this.minX+e}get height(){return this.maxY-this.minY}set height(e){this.maxY=this.minY+e}get left(){return this.minX}get right(){return this.maxX}get top(){return this.minY}get bottom(){return this.maxY}get isPositive(){return this.maxX-this.minX>0&&this.maxY-this.minY>0}get isValid(){return this.minX+this.minY!==1/0}addVertexData(e,t,i,s){let n=this.minX,o=this.minY,a=this.maxX,c=this.maxY;s||(s=this.matrix);let u=s.a,l=s.b,h=s.c,f=s.d,d=s.tx,m=s.ty;for(let x=t;x<i;x+=2){let g=e[x],_=e[x+1],y=u*g+h*_+d,S=l*g+f*_+m;n=y<n?y:n,o=S<o?S:o,a=y>a?y:a,c=S>c?S:c}this.minX=n,this.minY=o,this.maxX=a,this.maxY=c}containsPoint(e,t){return this.minX<=e&&this.minY<=t&&this.maxX>=e&&this.maxY>=t}toString(){return`[pixi.js:Bounds minX=${this.minX} minY=${this.minY} maxX=${this.maxX} maxY=${this.maxY} width=${this.width} height=${this.height}]`}copyFrom(e){return this.minX=e.minX,this.minY=e.minY,this.maxX=e.maxX,this.maxY=e.maxY,this}}});var De,xt,Fi=p(()=>{te();Rd();at();De=new Ii(R),xt=new Ii(ae)});var ZA,Y0,K0=p(()=>{te();at();Fi();ZA=new R,Y0={getFastGlobalBounds(r,e){e||(e=new ae),e.clear(),this._getGlobalBoundsRecursive(!!r,e,this.parentRenderLayer),e.isValid||e.set(0,0,0,0);let t=this.renderGroup||this.parentRenderGroup;return e.applyMatrix(t.worldTransform),e},_getGlobalBoundsRecursive(r,e,t){let i=e;if(r&&this.parentRenderLayer&&this.parentRenderLayer!==t||this.localDisplayStatus!==7||!this.measurable)return;let s=!!this.effects.length;if((this.renderGroup||s)&&(i=xt.get().clear()),this.boundsArea)e.addRect(this.boundsArea,this.worldTransform);else{if(this.renderPipeId){let o=this.bounds;i.addFrame(o.minX,o.minY,o.maxX,o.maxY,this.groupTransform)}let n=this.children;for(let o=0;o<n.length;o++)n[o]._getGlobalBoundsRecursive(r,i,t)}if(s){let n=!1,o=this.renderGroup||this.parentRenderGroup;for(let a=0;a<this.effects.length;a++)this.effects[a].addBounds&&(n||(n=!0,i.applyMatrix(o.worldTransform)),this.effects[a].addBounds(i,!0));n&&(i.applyMatrix(o.worldTransform.copyTo(ZA).invert()),e.addBounds(i,this.relativeGroupTransform)),e.addBounds(i),xt.return(i)}else this.renderGroup&&(e.addBounds(i,this.relativeGroupTransform),xt.return(i))}}});function Es(r,e,t){t.clear();let i,s;return r.parent?e?i=r.parent.worldTransform:(s=De.get().identity(),i=wu(r,s)):i=R.IDENTITY,Q0(r,t,i,e),s&&De.return(s),t.isValid||t.set(0,0,0,0),t}function Q0(r,e,t,i){if(!r.visible||!r.measurable)return;let s;i?s=r.worldTransform:(r.updateLocalTransform(),s=De.get(),s.appendFrom(r.localTransform,t));let n=e,o=!!r.effects.length;if(o&&(e=xt.get().clear()),r.boundsArea)e.addRect(r.boundsArea,s);else{r.bounds&&(e.matrix=s,e.addBounds(r.bounds));for(let a=0;a<r.children.length;a++)Q0(r.children[a],e,s,i)}if(o){for(let a=0;a<r.effects.length;a++)r.effects[a].addBounds?.(e);n.addBounds(e,R.IDENTITY),xt.return(e)}i||De.return(s)}function wu(r,e){let t=r.parent;return t&&(wu(t,e),t.updateLocalTransform(),e.append(t.localTransform)),e}var uo=p(()=>{te();Fi()});function Su(r,e){if(r===16777215||!e)return e;if(e===16777215||!r)return r;let t=r>>16&255,i=r>>8&255,s=r&255,n=e>>16&255,o=e>>8&255,a=e&255,c=t*n/255|0,u=i*o/255|0,l=s*a/255|0;return(c<<16)+(u<<8)+l}var Fd=p(()=>{"use strict"});function ks(r,e){return r===Z0?e:e===Z0?r:Su(r,e)}var Z0,Ud=p(()=>{Fd();Z0=16777215});function lo(r){return((r&255)<<16)+(r&65280)+(r>>16&255)}var J0,e_=p(()=>{uo();Fi();Ud();J0={getGlobalAlpha(r){if(r)return this.renderGroup?this.renderGroup.worldAlpha:this.parentRenderGroup?this.parentRenderGroup.worldAlpha*this.alpha:this.alpha;let e=this.alpha,t=this.parent;for(;t;)e*=t.alpha,t=t.parent;return e},getGlobalTransform(r,e){if(e)return r.copyFrom(this.worldTransform);this.updateLocalTransform();let t=wu(this,De.get().identity());return r.appendFrom(this.localTransform,t),De.return(t),r},getGlobalTint(r){if(r)return this.renderGroup?lo(this.renderGroup.worldColor):this.parentRenderGroup?lo(ks(this.localColor,this.parentRenderGroup.worldColor)):this.tint;let e=this.localColor,t=this.parent;for(;t;)e=ks(e,t.localColor),t=t.parent;return lo(e)}}});function As(r,e,t){return e.clear(),t||(t=R.IDENTITY),t_(r,e,t,r,!0),e.isValid||e.set(0,0,0,0),e}function t_(r,e,t,i,s){let n;if(s)n=De.get(),n=t.copyTo(n);else{if(!r.visible||!r.measurable)return;r.updateLocalTransform();let c=r.localTransform;n=De.get(),n.appendFrom(c,t)}let o=e,a=!!r.effects.length;if(a&&(e=xt.get().clear()),r.boundsArea)e.addRect(r.boundsArea,n);else{r.renderPipeId&&(e.matrix=n,e.addBounds(r.bounds));let c=r.children;for(let u=0;u<c.length;u++)t_(c[u],e,n,i,!1)}if(a){for(let c=0;c<r.effects.length;c++)r.effects[c].addLocalBounds?.(e,i);o.addBounds(e,R.IDENTITY),xt.return(e)}De.return(n)}var vu=p(()=>{te();Fi()});function Od(r,e){let t=r.children;for(let i=0;i<t.length;i++){let s=t[i],n=s.uid,o=(s._didViewChangeTick&65535)<<16|s._didContainerChangeTick&65535,a=e.index;(e.data[a]!==n||e.data[a+1]!==o)&&(e.data[e.index]=n,e.data[e.index+1]=o,e.didChange=!0),e.index=a+2,s.children.length&&Od(s,e)}return e.didChange}var r_=p(()=>{"use strict"});var JA,i_,s_=p(()=>{te();at();uo();vu();r_();JA=new R,i_={_localBoundsCacheId:-1,_localBoundsCacheData:null,_setWidth(r,e){let t=Math.sign(this.scale.x)||1;e!==0?this.scale.x=r/e*t:this.scale.x=t},_setHeight(r,e){let t=Math.sign(this.scale.y)||1;e!==0?this.scale.y=r/e*t:this.scale.y=t},getLocalBounds(){this._localBoundsCacheData||(this._localBoundsCacheData={data:[],index:1,didChange:!1,localBounds:new ae});let r=this._localBoundsCacheData;return r.index=1,r.didChange=!1,r.data[0]!==this._didViewChangeTick&&(r.didChange=!0,r.data[0]=this._didViewChangeTick),Od(this,r),r.didChange&&As(this,r.localBounds,JA),r.localBounds},getBounds(r,e){return Es(this,r,e||new ae)}}});var n_,o_=p(()=>{"use strict";n_={_onRender:null,set onRender(r){let e=this.renderGroup||this.parentRenderGroup;if(!r){this._onRender&&e?.removeOnRender(this),this._onRender=null;return}this._onRender||e?.addOnRender(this),this._onRender=r},get onRender(){return this._onRender}}});function eP(r,e){return r._zIndex-e._zIndex}var a_,c_=p(()=>{"use strict";a_={_zIndex:0,sortDirty:!1,sortableChildren:!1,get zIndex(){return this._zIndex},set zIndex(r){this._zIndex!==r&&(this._zIndex=r,this.depthOfChildModified())},depthOfChildModified(){this.parent&&(this.parent.sortableChildren=!0,this.parent.sortDirty=!0),this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0)},sortChildren(){this.sortDirty&&(this.sortDirty=!1,this.children.sort(eP))}}});var u_,l_=p(()=>{Ft();Fi();u_={getGlobalPosition(r=new J,e=!1){return this.parent?this.parent.toGlobal(this._position,r,e):(r.x=this._position.x,r.y=this._position.y),r},toGlobal(r,e,t=!1){let i=this.getGlobalTransform(De.get(),t);return e=i.apply(r,e),De.return(i),e},toLocal(r,e,t,i){e&&(r=e.toGlobal(r,t,i));let s=this.getGlobalTransform(De.get(),i);return t=s.applyInverse(r,t),De.return(s),t}}});var Ps,Gd=p(()=>{Oe();Ps=class{constructor(){this.uid=K("instructionSet"),this.instructions=[],this.instructionSize=0,this.renderables=[],this.gcTick=0}reset(){this.instructionSize=0}add(e){this.instructions[this.instructionSize++]=e}log(){this.instructions.length=this.instructionSize,console.table(this.instructions,["type","action"])}}});function Tr(r){return r+=r===0?1:0,--r,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r+1}function Nd(r){return!(r&r-1)&&!!r}var ho=p(()=>{"use strict"});function Cu(r){let e={};for(let t in r)r[t]!==void 0&&(e[t]=r[t]);return e}var Ld=p(()=>{"use strict"});function tP(r){let e=h_[r];return e===void 0&&(h_[r]=K("resource")),e}var h_,d_,et,Ui=p(()=>{Ve();Oe();ye();h_=Object.create(null);d_=class f_ extends oe{constructor(e={}){super(),this._resourceType="textureSampler",this._touched=0,this._maxAnisotropy=1,this.destroyed=!1,e={...f_.defaultOptions,...e},this.addressMode=e.addressMode,this.addressModeU=e.addressModeU??this.addressModeU,this.addressModeV=e.addressModeV??this.addressModeV,this.addressModeW=e.addressModeW??this.addressModeW,this.scaleMode=e.scaleMode,this.magFilter=e.magFilter??this.magFilter,this.minFilter=e.minFilter??this.minFilter,this.mipmapFilter=e.mipmapFilter??this.mipmapFilter,this.lodMinClamp=e.lodMinClamp,this.lodMaxClamp=e.lodMaxClamp,this.compare=e.compare,this.maxAnisotropy=e.maxAnisotropy??1}set addressMode(e){this.addressModeU=e,this.addressModeV=e,this.addressModeW=e}get addressMode(){return this.addressModeU}set wrapMode(e){z($,"TextureStyle.wrapMode is now TextureStyle.addressMode"),this.addressMode=e}get wrapMode(){return this.addressMode}set scaleMode(e){this.magFilter=e,this.minFilter=e,this.mipmapFilter=e}get scaleMode(){return this.magFilter}set maxAnisotropy(e){this._maxAnisotropy=Math.min(e,16),this._maxAnisotropy>1&&(this.scaleMode="linear")}get maxAnisotropy(){return this._maxAnisotropy}get _resourceId(){return this._sharedResourceId||this._generateResourceId()}update(){this.emit("change",this),this._sharedResourceId=null}_generateResourceId(){let e=`${this.addressModeU}-${this.addressModeV}-${this.addressModeW}-${this.magFilter}-${this.minFilter}-${this.mipmapFilter}-${this.lodMinClamp}-${this.lodMaxClamp}-${this.compare}-${this._maxAnisotropy}`;return this._sharedResourceId=tP(e),this._resourceId}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this.removeAllListeners()}};d_.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};et=d_});var m_,se,tt=p(()=>{Ve();ho();Ld();Oe();Ui();m_=class p_ extends oe{constructor(e={}){super(),this.options=e,this.uid=K("textureSource"),this._resourceType="textureSource",this._resourceId=K("resource"),this.uploadMethodId="unknown",this._resolution=1,this.pixelWidth=1,this.pixelHeight=1,this.width=1,this.height=1,this.sampleCount=1,this.mipLevelCount=1,this.autoGenerateMipmaps=!1,this.format="rgba8unorm",this.dimension="2d",this.antialias=!1,this._touched=0,this._batchTick=-1,this._textureBindLocation=-1,e={...p_.defaultOptions,...e},this.label=e.label??"",this.resource=e.resource,this.autoGarbageCollect=e.autoGarbageCollect,this._resolution=e.resolution,e.width?this.pixelWidth=e.width*this._resolution:this.pixelWidth=this.resource?this.resourceWidth??1:1,e.height?this.pixelHeight=e.height*this._resolution:this.pixelHeight=this.resource?this.resourceHeight??1:1,this.width=this.pixelWidth/this._resolution,this.height=this.pixelHeight/this._resolution,this.format=e.format,this.dimension=e.dimensions,this.mipLevelCount=e.mipLevelCount,this.autoGenerateMipmaps=e.autoGenerateMipmaps,this.sampleCount=e.sampleCount,this.antialias=e.antialias,this.alphaMode=e.alphaMode,this.style=new et(Cu(e)),this.destroyed=!1,this._refreshPOT()}get source(){return this}get style(){return this._style}set style(e){this.style!==e&&(this._style?.off("change",this._onStyleChange,this),this._style=e,this._style?.on("change",this._onStyleChange,this),this._onStyleChange())}get addressMode(){return this._style.addressMode}set addressMode(e){this._style.addressMode=e}get repeatMode(){return this._style.addressMode}set repeatMode(e){this._style.addressMode=e}get magFilter(){return this._style.magFilter}set magFilter(e){this._style.magFilter=e}get minFilter(){return this._style.minFilter}set minFilter(e){this._style.minFilter=e}get mipmapFilter(){return this._style.mipmapFilter}set mipmapFilter(e){this._style.mipmapFilter=e}get lodMinClamp(){return this._style.lodMinClamp}set lodMinClamp(e){this._style.lodMinClamp=e}get lodMaxClamp(){return this._style.lodMaxClamp}set lodMaxClamp(e){this._style.lodMaxClamp=e}_onStyleChange(){this.emit("styleChange",this)}update(){if(this.resource){let e=this._resolution;if(this.resize(this.resourceWidth/e,this.resourceHeight/e))return}this.emit("update",this)}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this._style&&(this._style.destroy(),this._style=null),this.uploadMethodId=null,this.resource=null,this.removeAllListeners()}unload(){this._resourceId=K("resource"),this.emit("change",this),this.emit("unload",this)}get resourceWidth(){let{resource:e}=this;return e.naturalWidth||e.videoWidth||e.displayWidth||e.width}get resourceHeight(){let{resource:e}=this;return e.naturalHeight||e.videoHeight||e.displayHeight||e.height}get resolution(){return this._resolution}set resolution(e){this._resolution!==e&&(this._resolution=e,this.width=this.pixelWidth/e,this.height=this.pixelHeight/e)}resize(e,t,i){i||(i=this._resolution),e||(e=this.width),t||(t=this.height);let s=Math.round(e*i),n=Math.round(t*i);return this.width=s/i,this.height=n/i,this._resolution=i,this.pixelWidth===s&&this.pixelHeight===n?!1:(this._refreshPOT(),this.pixelWidth=s,this.pixelHeight=n,this.emit("resize",this),this._resourceId=K("resource"),this.emit("change",this),!0)}updateMipmaps(){this.autoGenerateMipmaps&&this.mipLevelCount>1&&this.emit("updateMipmaps",this)}set wrapMode(e){this._style.wrapMode=e}get wrapMode(){return this._style.wrapMode}set scaleMode(e){this._style.scaleMode=e}get scaleMode(){return this._style.scaleMode}_refreshPOT(){this.isPowerOfTwo=Nd(this.pixelWidth)&&Nd(this.pixelHeight)}static test(e){throw new Error("Unimplemented")}};m_.defaultOptions={resolution:1,format:"bgra8unorm",alphaMode:"premultiply-alpha-on-upload",dimensions:"2d",mipLevelCount:1,autoGenerateMipmaps:!1,sampleCount:1,antialias:!1,autoGarbageCollect:!1};se=m_});function rP(){for(let r=0;r<16;r++){let e=[];zd.push(e);for(let t=0;t<16;t++){let i=Eu(Oi[r]*Oi[t]+Ni[r]*Gi[t]),s=Eu(Gi[r]*Oi[t]+Li[r]*Gi[t]),n=Eu(Oi[r]*Ni[t]+Ni[r]*Li[t]),o=Eu(Gi[r]*Ni[t]+Li[r]*Li[t]);for(let a=0;a<16;a++)if(Oi[a]===i&&Gi[a]===s&&Ni[a]===n&&Li[a]===o){e.push(a);break}}}for(let r=0;r<16;r++){let e=new R;e.set(Oi[r],Gi[r],Ni[r],Li[r],0,0),g_.push(e)}}var Oi,Gi,Ni,Li,zd,g_,Eu,xe,x_=p(()=>{te();Oi=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],Gi=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],Ni=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],Li=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],zd=[],g_=[],Eu=Math.sign;rP();xe={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:r=>Oi[r],uY:r=>Gi[r],vX:r=>Ni[r],vY:r=>Li[r],inv:r=>r&8?r&15:-r&7,add:(r,e)=>zd[r][e],sub:(r,e)=>zd[r][xe.inv(e)],rotate180:r=>r^4,isVertical:r=>(r&3)===2,byDirection:(r,e)=>Math.abs(r)*2<=Math.abs(e)?e>=0?xe.S:xe.N:Math.abs(e)*2<=Math.abs(r)?r>0?xe.E:xe.W:e>0?r>0?xe.SE:xe.SW:r>0?xe.NE:xe.NW,matrixAppendRotationInv:(r,e,t=0,i=0)=>{let s=g_[xe.inv(e)];s.tx=t,s.ty=i,r.append(s)}}});var Vd,__=p(()=>{"use strict";Vd=()=>{}});var zi,Hd=p(()=>{B();tt();zi=class extends se{constructor(e){let t=e.resource||new Float32Array(e.width*e.height*4),i=e.format;i||(t instanceof Float32Array?i="rgba32float":t instanceof Int32Array||t instanceof Uint32Array?i="rgba32uint":t instanceof Int16Array||t instanceof Uint16Array?i="rgba16uint":(t instanceof Int8Array,i="bgra8unorm")),super({...e,resource:t,format:i}),this.uploadMethodId="buffer"}static test(e){return e instanceof Int8Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array}};zi.extension=b.TextureSource});var b_,Bs,Wd=p(()=>{te();b_=new R,Bs=class{constructor(e,t){this.mapCoord=new R,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._textureID=-1,this._updateID=0,this.clampOffset=0,typeof t>"u"?this.clampMargin=e.width<10?0:.5:this.clampMargin=t,this.isSimple=!1,this.texture=e}get texture(){return this._texture}set texture(e){this.texture!==e&&(this._texture?.removeListener("update",this.update,this),this._texture=e,this._texture.addListener("update",this.update,this),this.update())}multiplyUvs(e,t){t===void 0&&(t=e);let i=this.mapCoord;for(let s=0;s<e.length;s+=2){let n=e[s],o=e[s+1];t[s]=n*i.a+o*i.c+i.tx,t[s+1]=n*i.b+o*i.d+i.ty}return t}update(){let e=this._texture;this._updateID++;let t=e.uvs;this.mapCoord.set(t.x1-t.x0,t.y1-t.y0,t.x3-t.x0,t.y3-t.y0,t.x0,t.y0);let i=e.orig,s=e.trim;s&&(b_.set(i.width/s.width,0,0,i.height/s.height,-s.x/s.width,-s.y/s.height),this.mapCoord.append(b_));let n=e.source,o=this.uClampFrame,a=this.clampMargin/n._resolution,c=this.clampOffset/n._resolution;return o[0]=(e.frame.x+a+c)/n.width,o[1]=(e.frame.y+a+c)/n.height,o[2]=(e.frame.x+e.frame.width-a+c)/n.width,o[3]=(e.frame.y+e.frame.height-a+c)/n.height,this.uClampOffset[0]=this.clampOffset/n.pixelWidth,this.uClampOffset[1]=this.clampOffset/n.pixelHeight,this.isSimple=e.frame.width===n.width&&e.frame.height===n.height&&e.rotate===0,!0}}});var M,le=p(()=>{Ve();x_();Ge();Oe();ye();__();Hd();tt();Wd();M=class extends oe{constructor({source:e,label:t,frame:i,orig:s,trim:n,defaultAnchor:o,defaultBorders:a,rotate:c,dynamic:u}={}){if(super(),this.uid=K("texture"),this.uvs={x0:0,y0:0,x1:0,y1:0,x2:0,y2:0,x3:0,y3:0},this.frame=new Y,this.noFrame=!1,this.dynamic=!1,this.isTexture=!0,this.label=t,this.source=e?.source??new se,this.noFrame=!i,i)this.frame.copyFrom(i);else{let{width:l,height:h}=this._source;this.frame.width=l,this.frame.height=h}this.orig=s||this.frame,this.trim=n,this.rotate=c??0,this.defaultAnchor=o,this.defaultBorders=a,this.destroyed=!1,this.dynamic=u||!1,this.updateUvs()}set source(e){this._source&&this._source.off("resize",this.update,this),this._source=e,e.on("resize",this.update,this),this.emit("update",this)}get source(){return this._source}get textureMatrix(){return this._textureMatrix||(this._textureMatrix=new Bs(this)),this._textureMatrix}get width(){return this.orig.width}get height(){return this.orig.height}updateUvs(){let{uvs:e,frame:t}=this,{width:i,height:s}=this._source,n=t.x/i,o=t.y/s,a=t.width/i,c=t.height/s,u=this.rotate;if(u){let l=a/2,h=c/2,f=n+l,d=o+h;u=xe.add(u,xe.NW),e.x0=f+l*xe.uX(u),e.y0=d+h*xe.uY(u),u=xe.add(u,2),e.x1=f+l*xe.uX(u),e.y1=d+h*xe.uY(u),u=xe.add(u,2),e.x2=f+l*xe.uX(u),e.y2=d+h*xe.uY(u),u=xe.add(u,2),e.x3=f+l*xe.uX(u),e.y3=d+h*xe.uY(u)}else e.x0=n,e.y0=o,e.x1=n+a,e.y1=o,e.x2=n+a,e.y2=o+c,e.x3=n,e.y3=o+c}destroy(e=!1){this._source&&e&&(this._source.destroy(),this._source=null),this._textureMatrix=null,this.destroyed=!0,this.emit("destroy",this),this.removeAllListeners()}update(){this.noFrame&&(this.frame.width=this._source.width,this.frame.height=this._source.height),this.updateUvs(),this.emit("update",this)}get baseTexture(){return z($,"Texture.baseTexture is now Texture.source"),this._source}};M.EMPTY=new M({label:"EMPTY",source:new se({label:"EMPTY"})});M.EMPTY.destroy=Vd;M.WHITE=new M({source:new zi({resource:new Uint8Array([255,255,255,255]),width:1,height:1,alphaMode:"premultiply-alpha-on-upload",label:"WHITE"}),label:"WHITE"});M.WHITE.destroy=Vd});var iP,$d,Te,Hr=p(()=>{ho();tt();le();Ui();iP=0,$d=class{constructor(e){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=e||{},this.enableFullScreen=!1,this.textureStyle=new et(this.textureOptions)}createTexture(e,t,i){let s=new se({...this.textureOptions,width:e,height:t,resolution:1,antialias:i,autoGarbageCollect:!1});return new M({source:s,label:`texturePool_${iP++}`})}getOptimalTexture(e,t,i=1,s){let n=Math.ceil(e*i-1e-6),o=Math.ceil(t*i-1e-6);n=Tr(n),o=Tr(o);let a=(n<<17)+(o<<1)+(s?1:0);this._texturePool[a]||(this._texturePool[a]=[]);let c=this._texturePool[a].pop();return c||(c=this.createTexture(n,o,s)),c.source._resolution=i,c.source.width=n/i,c.source.height=o/i,c.source.pixelWidth=n,c.source.pixelHeight=o,c.frame.x=0,c.frame.y=0,c.frame.width=e,c.frame.height=t,c.updateUvs(),this._poolKeyHash[c.uid]=a,c}getSameSizeTexture(e,t=!1){let i=e.source;return this.getOptimalTexture(e.width,e.height,i._resolution,t)}returnTexture(e,t=!1){let i=this._poolKeyHash[e.uid];t&&(e.source.style=this.textureStyle),this._texturePool[i].push(e)}clear(e){if(e=e!==!1,e)for(let t in this._texturePool){let i=this._texturePool[t];if(i)for(let s=0;s<i.length;s++)i[s].destroy(!0)}this._texturePool={}}},Te=new $d});var ku,y_=p(()=>{te();Gd();Hr();ku=class{constructor(){this.renderPipeId="renderGroup",this.root=null,this.canBundle=!1,this.renderGroupParent=null,this.renderGroupChildren=[],this.worldTransform=new R,this.worldColorAlpha=4294967295,this.worldColor=16777215,this.worldAlpha=1,this.childrenToUpdate=Object.create(null),this.updateTick=0,this.gcTick=0,this.childrenRenderablesToUpdate={list:[],index:0},this.structureDidChange=!0,this.instructionSet=new Ps,this._onRenderContainers=[],this.textureNeedsUpdate=!0,this.isCachedAsTexture=!1,this._matrixDirty=7}init(e){this.root=e,e._onRender&&this.addOnRender(e),e.didChange=!0;let t=e.children;for(let i=0;i<t.length;i++){let s=t[i];s._updateFlags=15,this.addChild(s)}}enableCacheAsTexture(e={}){this.textureOptions=e,this.isCachedAsTexture=!0,this.textureNeedsUpdate=!0}disableCacheAsTexture(){this.isCachedAsTexture=!1,this.texture&&(Te.returnTexture(this.texture),this.texture=null)}updateCacheTexture(){this.textureNeedsUpdate=!0}reset(){this.renderGroupChildren.length=0;for(let e in this.childrenToUpdate){let t=this.childrenToUpdate[e];t.list.fill(null),t.index=0}this.childrenRenderablesToUpdate.index=0,this.childrenRenderablesToUpdate.list.fill(null),this.root=null,this.updateTick=0,this.structureDidChange=!0,this._onRenderContainers.length=0,this.renderGroupParent=null,this.disableCacheAsTexture()}get localTransform(){return this.root.localTransform}addRenderGroupChild(e){e.renderGroupParent&&e.renderGroupParent._removeRenderGroupChild(e),e.renderGroupParent=this,this.renderGroupChildren.push(e)}_removeRenderGroupChild(e){let t=this.renderGroupChildren.indexOf(e);t>-1&&this.renderGroupChildren.splice(t,1),e.renderGroupParent=null}addChild(e){if(this.structureDidChange=!0,e.parentRenderGroup=this,e.updateTick=-1,e.parent===this.root?e.relativeRenderGroupDepth=1:e.relativeRenderGroupDepth=e.parent.relativeRenderGroupDepth+1,e.didChange=!0,this.onChildUpdate(e),e.renderGroup){this.addRenderGroupChild(e.renderGroup);return}e._onRender&&this.addOnRender(e);let t=e.children;for(let i=0;i<t.length;i++)this.addChild(t[i])}removeChild(e){if(this.structureDidChange=!0,e._onRender&&(e.renderGroup||this.removeOnRender(e)),e.parentRenderGroup=null,e.renderGroup){this._removeRenderGroupChild(e.renderGroup);return}let t=e.children;for(let i=0;i<t.length;i++)this.removeChild(t[i])}removeChildren(e){for(let t=0;t<e.length;t++)this.removeChild(e[t])}onChildUpdate(e){let t=this.childrenToUpdate[e.relativeRenderGroupDepth];t||(t=this.childrenToUpdate[e.relativeRenderGroupDepth]={index:0,list:[]}),t.list[t.index++]=e}updateRenderable(e){e.globalDisplayStatus<7||(this.instructionSet.renderPipes[e.renderPipeId].updateRenderable(e),e.didViewUpdate=!1)}onChildViewUpdate(e){this.childrenRenderablesToUpdate.list[this.childrenRenderablesToUpdate.index++]=e}get isRenderable(){return this.root.localDisplayStatus===7&&this.worldAlpha>0}addOnRender(e){this._onRenderContainers.push(e)}removeOnRender(e){this._onRenderContainers.splice(this._onRenderContainers.indexOf(e),1)}runOnRender(e){for(let t=0;t<this._onRenderContainers.length;t++)this._onRenderContainers[t]._onRender(e)}destroy(){this.disableCacheAsTexture(),this.renderGroupParent=null,this.root=null,this.childrenRenderablesToUpdate=null,this.childrenToUpdate=null,this.renderGroupChildren=null,this._onRenderContainers=null,this.instructionSet=null}getChildren(e=[]){let t=this.root.children;for(let i=0;i<t.length;i++)this._getChildren(t[i],e);return e}_getChildren(e,t=[]){if(t.push(e),e.renderGroup)return t;let i=e.children;for(let s=0;s<i.length;s++)this._getChildren(i[s],t);return t}invalidateMatrices(){this._matrixDirty=7}get inverseWorldTransform(){return(this._matrixDirty&1)===0?this._inverseWorldTransform:(this._matrixDirty&=-2,this._inverseWorldTransform||(this._inverseWorldTransform=new R),this._inverseWorldTransform.copyFrom(this.worldTransform).invert())}get textureOffsetInverseTransform(){return(this._matrixDirty&2)===0?this._textureOffsetInverseTransform:(this._matrixDirty&=-3,this._textureOffsetInverseTransform||(this._textureOffsetInverseTransform=new R),this._textureOffsetInverseTransform.copyFrom(this.inverseWorldTransform).translate(-this._textureBounds.x,-this._textureBounds.y))}get inverseParentTextureTransform(){if((this._matrixDirty&4)===0)return this._inverseParentTextureTransform;this._matrixDirty&=-5;let e=this._parentCacheAsTextureRenderGroup;return e?(this._inverseParentTextureTransform||(this._inverseParentTextureTransform=new R),this._inverseParentTextureTransform.copyFrom(this.worldTransform).prepend(e.inverseWorldTransform).translate(-e._textureBounds.x,-e._textureBounds.y)):this.worldTransform}get cacheToLocalTransform(){return this._parentCacheAsTextureRenderGroup?this._parentCacheAsTextureRenderGroup.textureOffsetInverseTransform:null}}});function T_(r,e,t={}){for(let i in e)!t[i]&&e[i]!==void 0&&(r[i]=e[i])}var w_=p(()=>{"use strict"});var qd,jd,Xd,Rs,fo,Vi,we,jt=p(()=>{Ve();He();R0();B();te();Ad();xu();Oe();ye();br();G0();L0();V0();$0();j0();K0();e_();s_();o_();c_();l_();y_();w_();qd=new We(null),jd=new We(null),Xd=new We(null,1,1),Rs=1,fo=2,Vi=4,we=class r extends oe{constructor(e={}){super(),this.uid=K("renderable"),this._updateFlags=15,this.renderGroup=null,this.parentRenderGroup=null,this.parentRenderGroupIndex=0,this.didChange=!1,this.didViewUpdate=!1,this.relativeRenderGroupDepth=0,this.children=[],this.parent=null,this.includeInBuild=!0,this.measurable=!0,this.isSimple=!0,this.updateTick=-1,this.localTransform=new R,this.relativeGroupTransform=new R,this.groupTransform=this.relativeGroupTransform,this.destroyed=!1,this._position=new We(this,0,0),this._scale=Xd,this._pivot=jd,this._skew=qd,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._rotation=0,this.localColor=16777215,this.localAlpha=1,this.groupAlpha=1,this.groupColor=16777215,this.groupColorAlpha=4294967295,this.localBlendMode="inherit",this.groupBlendMode="normal",this.localDisplayStatus=7,this.globalDisplayStatus=7,this._didContainerChangeTick=0,this._didViewChangeTick=0,this._didLocalTransformChangeId=-1,this.effects=[],T_(this,e,{children:!0,parent:!0,effects:!0}),e.children?.forEach(t=>this.addChild(t)),e.parent?.addChild(this)}static mixin(e){z("8.8.0","Container.mixin is deprecated, please use extensions.mixin instead."),O.mixin(r,e)}set _didChangeId(e){this._didViewChangeTick=e>>12&4095,this._didContainerChangeTick=e&4095}get _didChangeId(){return this._didContainerChangeTick&4095|(this._didViewChangeTick&4095)<<12}addChild(...e){if(this.allowChildren||z($,"addChild: Only Containers will be allowed to add children in v8.0.0"),e.length>1){for(let s=0;s<e.length;s++)this.addChild(e[s]);return e[0]}let t=e[0],i=this.renderGroup||this.parentRenderGroup;return t.parent===this?(this.children.splice(this.children.indexOf(t),1),this.children.push(t),i&&(i.structureDidChange=!0),t):(t.parent&&t.parent.removeChild(t),this.children.push(t),this.sortableChildren&&(this.sortDirty=!0),t.parent=this,t.didChange=!0,t._updateFlags=15,i&&i.addChild(t),this.emit("childAdded",t,this,this.children.length-1),t.emit("added",this),this._didViewChangeTick++,t._zIndex!==0&&t.depthOfChildModified(),t)}removeChild(...e){if(e.length>1){for(let s=0;s<e.length;s++)this.removeChild(e[s]);return e[0]}let t=e[0],i=this.children.indexOf(t);return i>-1&&(this._didViewChangeTick++,this.children.splice(i,1),this.renderGroup?this.renderGroup.removeChild(t):this.parentRenderGroup&&this.parentRenderGroup.removeChild(t),t.parentRenderLayer&&t.parentRenderLayer.detach(t),t.parent=null,this.emit("childRemoved",t,this,i),t.emit("removed",this)),t}_onUpdate(e){e&&e===this._skew&&this._updateSkew(),this._didContainerChangeTick++,!this.didChange&&(this.didChange=!0,this.parentRenderGroup&&this.parentRenderGroup.onChildUpdate(this))}set isRenderGroup(e){!!this.renderGroup!==e&&(e?this.enableRenderGroup():this.disableRenderGroup())}get isRenderGroup(){return!!this.renderGroup}enableRenderGroup(){if(this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),this.renderGroup=me.get(ku,this),this.groupTransform=R.IDENTITY,e?.addChild(this),this._updateIsSimple()}disableRenderGroup(){if(!this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),me.return(this.renderGroup),this.renderGroup=null,this.groupTransform=this.relativeGroupTransform,e?.addChild(this),this._updateIsSimple()}_updateIsSimple(){this.isSimple=!this.renderGroup&&this.effects.length===0}get worldTransform(){return this._worldTransform||(this._worldTransform=new R),this.renderGroup?this._worldTransform.copyFrom(this.renderGroup.worldTransform):this.parentRenderGroup&&this._worldTransform.appendFrom(this.relativeGroupTransform,this.parentRenderGroup.worldTransform),this._worldTransform}get x(){return this._position.x}set x(e){this._position.x=e}get y(){return this._position.y}set y(e){this._position.y=e}get position(){return this._position}set position(e){this._position.copyFrom(e)}get rotation(){return this._rotation}set rotation(e){this._rotation!==e&&(this._rotation=e,this._onUpdate(this._skew))}get angle(){return this.rotation*M0}set angle(e){this.rotation=e*I0}get pivot(){return this._pivot===jd&&(this._pivot=new We(this,0,0)),this._pivot}set pivot(e){this._pivot===jd&&(this._pivot=new We(this,0,0)),typeof e=="number"?this._pivot.set(e):this._pivot.copyFrom(e)}get skew(){return this._skew===qd&&(this._skew=new We(this,0,0)),this._skew}set skew(e){this._skew===qd&&(this._skew=new We(this,0,0)),this._skew.copyFrom(e)}get scale(){return this._scale===Xd&&(this._scale=new We(this,1,1)),this._scale}set scale(e){this._scale===Xd&&(this._scale=new We(this,0,0)),typeof e=="number"?this._scale.set(e):this._scale.copyFrom(e)}get width(){return Math.abs(this.scale.x*this.getLocalBounds().width)}set width(e){let t=this.getLocalBounds().width;this._setWidth(e,t)}get height(){return Math.abs(this.scale.y*this.getLocalBounds().height)}set height(e){let t=this.getLocalBounds().height;this._setHeight(e,t)}getSize(e){e||(e={});let t=this.getLocalBounds();return e.width=Math.abs(this.scale.x*t.width),e.height=Math.abs(this.scale.y*t.height),e}setSize(e,t){let i=this.getLocalBounds();typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,i.width),t!==void 0&&this._setHeight(t,i.height)}_updateSkew(){let e=this._rotation,t=this._skew;this._cx=Math.cos(e+t._y),this._sx=Math.sin(e+t._y),this._cy=-Math.sin(e-t._x),this._sy=Math.cos(e-t._x)}updateTransform(e){return this.position.set(typeof e.x=="number"?e.x:this.position.x,typeof e.y=="number"?e.y:this.position.y),this.scale.set(typeof e.scaleX=="number"?e.scaleX||1:this.scale.x,typeof e.scaleY=="number"?e.scaleY||1:this.scale.y),this.rotation=typeof e.rotation=="number"?e.rotation:this.rotation,this.skew.set(typeof e.skewX=="number"?e.skewX:this.skew.x,typeof e.skewY=="number"?e.skewY:this.skew.y),this.pivot.set(typeof e.pivotX=="number"?e.pivotX:this.pivot.x,typeof e.pivotY=="number"?e.pivotY:this.pivot.y),this}setFromMatrix(e){e.decompose(this)}updateLocalTransform(){let e=this._didContainerChangeTick;if(this._didLocalTransformChangeId===e)return;this._didLocalTransformChangeId=e;let t=this.localTransform,i=this._scale,s=this._pivot,n=this._position,o=i._x,a=i._y,c=s._x,u=s._y;t.a=this._cx*o,t.b=this._sx*o,t.c=this._cy*a,t.d=this._sy*a,t.tx=n._x-(c*t.a+u*t.c),t.ty=n._y-(c*t.b+u*t.d)}set alpha(e){e!==this.localAlpha&&(this.localAlpha=e,this._updateFlags|=Rs,this._onUpdate())}get alpha(){return this.localAlpha}set tint(e){let i=q.shared.setValue(e??16777215).toBgrNumber();i!==this.localColor&&(this.localColor=i,this._updateFlags|=Rs,this._onUpdate())}get tint(){return lo(this.localColor)}set blendMode(e){this.localBlendMode!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=fo,this.localBlendMode=e,this._onUpdate())}get blendMode(){return this.localBlendMode}get visible(){return!!(this.localDisplayStatus&2)}set visible(e){let t=e?2:0;(this.localDisplayStatus&2)!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Vi,this.localDisplayStatus^=2,this._onUpdate())}get culled(){return!(this.localDisplayStatus&4)}set culled(e){let t=e?0:4;(this.localDisplayStatus&4)!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Vi,this.localDisplayStatus^=4,this._onUpdate())}get renderable(){return!!(this.localDisplayStatus&1)}set renderable(e){let t=e?1:0;(this.localDisplayStatus&1)!==t&&(this._updateFlags|=Vi,this.localDisplayStatus^=1,this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._onUpdate())}get isRenderable(){return this.localDisplayStatus===7&&this.groupAlpha>0}destroy(e=!1){if(this.destroyed)return;this.destroyed=!0;let t;if(this.children.length&&(t=this.removeChildren(0,this.children.length)),this.removeFromParent(),this.parent=null,this._maskEffect=null,this._filterEffect=null,this.effects=null,this._position=null,this._scale=null,this._pivot=null,this._skew=null,this.emit("destroyed",this),this.removeAllListeners(),(typeof e=="boolean"?e:e?.children)&&t)for(let s=0;s<t.length;++s)t[s].destroy(e);this.renderGroup?.destroy(),this.renderGroup=null}};O.mixin(we,N0,Y0,u_,n_,i_,W0,q0,a_,B0,O0,J0,z0)});var Wr,Au=p(()=>{Ft();Wr=class r{constructor(e){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=r.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new J,this.page=new J,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=e}get layerX(){return this.layer.x}get layerY(){return this.layer.y}get pageX(){return this.page.x}get pageY(){return this.page.y}get data(){return this}composedPath(){return this.manager&&(!this.path||this.path[this.path.length-1]!==this.target)&&(this.path=this.target?this.manager.propagationPath(this.target):[]),this.path}initEvent(e,t,i){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(e,t,i,s,n){throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}}});function sP(r){return function(e){return e.test(r)}}function mo(r){var e={userAgent:"",platform:"",maxTouchPoints:0};!r&&typeof navigator<"u"?e={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof r=="string"?e.userAgent=r:r&&r.userAgent&&(e={userAgent:r.userAgent,platform:r.platform,maxTouchPoints:r.maxTouchPoints||0});var t=e.userAgent,i=t.split("[FBAN");typeof i[1]<"u"&&(t=i[0]),i=t.split("Twitter"),typeof i[1]<"u"&&(t=i[0]);var s=sP(t),n={apple:{phone:s(Yd)&&!s(wr),ipod:s(S_),tablet:!s(Yd)&&(s(v_)||M_(e))&&!s(wr),universal:s(C_),device:(s(Yd)||s(S_)||s(v_)||s(C_)||M_(e))&&!s(wr)},amazon:{phone:s(Ds),tablet:!s(Ds)&&s(Pu),device:s(Ds)||s(Pu)},android:{phone:!s(wr)&&s(Ds)||!s(wr)&&s(Kd),tablet:!s(wr)&&!s(Ds)&&!s(Kd)&&(s(Pu)||s(E_)),device:!s(wr)&&(s(Ds)||s(Pu)||s(Kd)||s(E_))||s(/\bokhttp\b/i)},windows:{phone:s(wr),tablet:s(k_),device:s(wr)||s(k_)},other:{blackberry:s(A_),blackberry10:s(P_),opera:s(B_),firefox:s(D_),chrome:s(R_),device:s(A_)||s(P_)||s(B_)||s(D_)||s(R_)},any:!1,phone:!1,tablet:!1};return n.any=n.apple.device||n.android.device||n.windows.device||n.other.device,n.phone=n.apple.phone||n.android.phone||n.windows.phone,n.tablet=n.apple.tablet||n.android.tablet||n.windows.tablet,n}var Yd,S_,v_,C_,Kd,E_,Ds,Pu,wr,k_,A_,P_,B_,R_,D_,M_,Qd=p(()=>{Yd=/iPhone/i,S_=/iPod/i,v_=/iPad/i,C_=/\biOS-universal(?:.+)Mac\b/i,Kd=/\bAndroid(?:.+)Mobile\b/i,E_=/Android/i,Ds=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,Pu=/Silk/i,wr=/Windows Phone/i,k_=/\bWindows(?:.+)ARM\b/i,A_=/BlackBerry/i,P_=/BB10/i,B_=/Opera Mini/i,R_=/\b(CriOS|Chrome)(?:.+)Mobile/i,D_=/Mobile(?:.+)Firefox\b/i,M_=function(r){return typeof r<"u"&&r.platform==="MacIntel"&&typeof r.maxTouchPoints=="number"&&r.maxTouchPoints>1&&typeof MSStream>"u"}});var I_=p(()=>{Qd();Qd()});var nP,F_,U_=p(()=>{I_();nP=mo.default??mo,F_=nP(globalThis.navigator)});var oP,Bu,aP,cP,O_,G_,uP,lP,hP,Zd,L_,z_=p(()=>{Au();B();U_();Md();oP=9,Bu=100,aP=0,cP=0,O_=2,G_=1,uP=-1e3,lP=-1e3,hP=2,Zd=class N_{constructor(e,t=F_){this._mobileInfo=t,this.debug=!1,this._activateOnTab=!0,this._deactivateOnMouseMove=!0,this._isActive=!1,this._isMobileAccessibility=!1,this._div=null,this._pool=[],this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._hookDiv=null,(t.tablet||t.phone)&&this._createTouchHook(),this._renderer=e}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}_createTouchHook(){let e=document.createElement("button");e.style.width=`${G_}px`,e.style.height=`${G_}px`,e.style.position="absolute",e.style.top=`${uP}px`,e.style.left=`${lP}px`,e.style.zIndex=hP.toString(),e.style.backgroundColor="#FF0000",e.title="select to enable accessibility for this content",e.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()}),document.body.appendChild(e),this._hookDiv=e}_destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}_activate(){if(this._isActive)return;this._isActive=!0,this._div||(this._div=document.createElement("div"),this._div.style.width=`${Bu}px`,this._div.style.height=`${Bu}px`,this._div.style.position="absolute",this._div.style.top=`${aP}px`,this._div.style.left=`${cP}px`,this._div.style.zIndex=O_.toString(),this._div.style.pointerEvents="none"),this._activateOnTab&&(this._onKeyDown=this._onKeyDown.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)),this._deactivateOnMouseMove&&(this._onMouseMove=this._onMouseMove.bind(this),globalThis.document.addEventListener("mousemove",this._onMouseMove,!0));let e=this._renderer.view.canvas;if(e.parentNode)e.parentNode.appendChild(this._div),this._initAccessibilitySetup();else{let t=new MutationObserver(()=>{e.parentNode&&(e.parentNode.appendChild(this._div),t.disconnect(),this._initAccessibilitySetup())});t.observe(document.body,{childList:!0,subtree:!0})}}_initAccessibilitySetup(){this._renderer.runners.postrender.add(this),this._renderer.lastObjectRendered&&this._updateAccessibleObjects(this._renderer.lastObjectRendered)}_deactivate(){if(!(!this._isActive||this._isMobileAccessibility)){this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),this._activateOnTab&&globalThis.addEventListener("keydown",this._onKeyDown,!1),this._renderer.runners.postrender.remove(this);for(let e of this._children)e._accessibleDiv&&e._accessibleDiv.parentNode&&(e._accessibleDiv.parentNode.removeChild(e._accessibleDiv),e._accessibleDiv=null),e._accessibleActive=!1;this._pool.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)}),this._div&&this._div.parentNode&&this._div.parentNode.removeChild(this._div),this._pool=[],this._children=[]}}_updateAccessibleObjects(e){if(!e.visible||!e.accessibleChildren)return;e.accessible&&(e._accessibleActive||this._addChild(e),e._renderId=this._renderId);let t=e.children;if(t)for(let i=0;i<t.length;i++)this._updateAccessibleObjects(t[i])}init(e){let i={accessibilityOptions:{...N_.defaultOptions,...e?.accessibilityOptions||{}}};this.debug=i.accessibilityOptions.debug,this._activateOnTab=i.accessibilityOptions.activateOnTab,this._deactivateOnMouseMove=i.accessibilityOptions.deactivateOnMouseMove,i.accessibilityOptions.enabledByDefault?this._activate():this._activateOnTab&&(this._onKeyDown=this._onKeyDown.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)),this._renderer.runners.postrender.remove(this)}postrender(){let e=performance.now();if(this._mobileInfo.android.device&&e<this._androidUpdateCount||(this._androidUpdateCount=e+this._androidUpdateFrequency,!this._renderer.renderingToScreen||!this._renderer.view.canvas))return;let t=new Set;if(this._renderer.lastObjectRendered){this._updateAccessibleObjects(this._renderer.lastObjectRendered);for(let i of this._children)i._renderId===this._renderId&&t.add(this._children.indexOf(i))}for(let i=this._children.length-1;i>=0;i--){let s=this._children[i];t.has(i)||(s._accessibleDiv&&s._accessibleDiv.parentNode&&(s._accessibleDiv.parentNode.removeChild(s._accessibleDiv),this._pool.push(s._accessibleDiv),s._accessibleDiv=null),s._accessibleActive=!1,_u(this._children,i,1))}if(this._renderer.renderingToScreen){let{x:i,y:s,width:n,height:o}=this._renderer.screen,a=this._div;a.style.left=`${i}px`,a.style.top=`${s}px`,a.style.width=`${n}px`,a.style.height=`${o}px`}for(let i=0;i<this._children.length;i++){let s=this._children[i];if(!s._accessibleActive||!s._accessibleDiv)continue;let n=s._accessibleDiv,o=s.hitArea||s.getBounds().rectangle;if(s.hitArea){let a=s.worldTransform,c=this._renderer.resolution,u=this._renderer.resolution;n.style.left=`${(a.tx+o.x*a.a)*c}px`,n.style.top=`${(a.ty+o.y*a.d)*u}px`,n.style.width=`${o.width*a.a*c}px`,n.style.height=`${o.height*a.d*u}px`}else{this._capHitArea(o);let a=this._renderer.resolution,c=this._renderer.resolution;n.style.left=`${o.x*a}px`,n.style.top=`${o.y*c}px`,n.style.width=`${o.width*a}px`,n.style.height=`${o.height*c}px`}}this._renderId++}_updateDebugHTML(e){e.innerHTML=`type: ${e.type}</br> title : ${e.title}</br> tabIndex: ${e.tabIndex}`}_capHitArea(e){e.x<0&&(e.width+=e.x,e.x=0),e.y<0&&(e.height+=e.y,e.y=0);let{width:t,height:i}=this._renderer;e.x+e.width>t&&(e.width=t-e.x),e.y+e.height>i&&(e.height=i-e.y)}_addChild(e){let t=this._pool.pop();t||(e.accessibleType==="button"?t=document.createElement("button"):(t=document.createElement(e.accessibleType),t.style.cssText=`
|
|
6
|
+
Deprecated since v${r}`),console.warn(i))),lx[e]=!0}var lx,$,hx,ye=p(()=>{"use strict";lx={},$="8.0.0",hx="8.3.4"});var xi,jh=p(()=>{"use strict";xi=class{constructor(e,t){this._pool=[],this._count=0,this._index=0,this._classType=e,t&&this.prepopulate(t)}prepopulate(e){for(let t=0;t<e;t++)this._pool[this._index++]=new this._classType;this._count+=e}get(e){let t;return this._index>0?t=this._pool[--this._index]:t=new this._classType,t.init?.(e),t}return(e){e.reset?.(),this._pool[this._index++]=e}get totalSize(){return this._count}get totalFree(){return this._index}get totalUsed(){return this._count-this._index}clear(){this._pool.length=0,this._index=0}}});var Xh,pe,gr=p(()=>{jh();Xh=class{constructor(){this._poolsByClass=new Map}prepopulate(e,t){this.getPool(e).prepopulate(t)}get(e,t){return this.getPool(e).get(t)}return(e){this.getPool(e.constructor).return(e)}getPool(e){return this._poolsByClass.has(e)||this._poolsByClass.set(e,new xi(e)),this._poolsByClass.get(e)}stats(){let e={};return this._poolsByClass.forEach(t=>{let i=e[t._classType.name]?t._classType.name+t._classType.ID:t._classType.name;e[i]={free:t.totalFree,used:t.totalUsed,size:t.totalSize}}),e}},pe=new Xh});var dx,fx=p(()=>{ye();dx={get isCachedAsTexture(){return!!this.renderGroup?.isCachedAsTexture},cacheAsTexture(r){typeof r=="boolean"&&r===!1?this.disableRenderGroup():(this.enableRenderGroup(),this.renderGroup.enableCacheAsTexture(r===!0?{}:r))},updateCacheTexture(){this.renderGroup?.updateCacheTexture()},get cacheAsBitmap(){return this.isCachedAsTexture},set cacheAsBitmap(r){z("v8.6.0","cacheAsBitmap is deprecated, use cacheAsTexture instead."),this.cacheAsTexture(r)}}});function Fc(r,e,t){let i=r.length,s;if(e>=i||t===0)return;t=e+t>i?i-e:t;let n=i-t;for(s=e;s<n;++s)r[s]=r[s+t];r.length=n}var Yh=p(()=>{"use strict"});var mx,px=p(()=>{Yh();ye();mx={allowChildren:!0,removeChildren(r=0,e){let t=e??this.children.length,i=t-r,s=[];if(i>0&&i<=t){for(let o=t-1;o>=r;o--){let a=this.children[o];a&&(s.push(a),a.parent=null)}Fc(this.children,r,t);let n=this.renderGroup||this.parentRenderGroup;n&&n.removeChildren(s);for(let o=0;o<s.length;++o){let a=s[o];a.parentRenderLayer?.detach(a),this.emit("childRemoved",a,this,o),s[o].emit("removed",this)}return s.length>0&&this._didViewChangeTick++,s}else if(i===0&&this.children.length===0)return s;throw new RangeError("removeChildren: numeric values are outside the acceptable range.")},removeChildAt(r){let e=this.getChildAt(r);return this.removeChild(e)},getChildAt(r){if(r<0||r>=this.children.length)throw new Error(`getChildAt: Index (${r}) does not exist.`);return this.children[r]},setChildIndex(r,e){if(e<0||e>=this.children.length)throw new Error(`The index ${e} supplied is out of bounds ${this.children.length}`);this.getChildIndex(r),this.addChildAt(r,e)},getChildIndex(r){let e=this.children.indexOf(r);if(e===-1)throw new Error("The supplied Container must be a child of the caller");return e},addChildAt(r,e){this.allowChildren||z($,"addChildAt: Only Containers will be allowed to add children in v8.0.0");let{children:t}=this;if(e<0||e>t.length)throw new Error(`${r}addChildAt: The index ${e} supplied is out of bounds ${t.length}`);if(r.parent){let s=r.parent.children.indexOf(r);if(r.parent===this&&s===e)return r;s!==-1&&r.parent.children.splice(s,1)}e===t.length?t.push(r):t.splice(e,0,r),r.parent=this,r.didChange=!0,r._updateFlags=15;let i=this.renderGroup||this.parentRenderGroup;return i&&i.addChild(r),this.sortableChildren&&(this.sortDirty=!0),this.emit("childAdded",r,this,e),r.emit("added",this),r},swapChildren(r,e){if(r===e)return;let t=this.getChildIndex(r),i=this.getChildIndex(e);this.children[t]=e,this.children[i]=r;let s=this.renderGroup||this.parentRenderGroup;s&&(s.structureDidChange=!0),this._didContainerChangeTick++},removeFromParent(){this.parent?.removeChild(this)},reparentChild(...r){return r.length===1?this.reparentChildAt(r[0],this.children.length):(r.forEach(e=>this.reparentChildAt(e,this.children.length)),r[0])},reparentChildAt(r,e){if(r.parent===this)return this.setChildIndex(r,e),r;let t=r.worldTransform.clone();r.removeFromParent(),this.addChildAt(r,e);let i=this.worldTransform.clone();return i.invert(),t.prepend(i),r.setFromMatrix(t),r}}});var gx,xx=p(()=>{"use strict";gx={collectRenderables(r,e,t){this.parentRenderLayer&&this.parentRenderLayer!==t||this.globalDisplayStatus<7||!this.includeInBuild||(this.sortableChildren&&this.sortChildren(),this.isSimple?this.collectRenderablesSimple(r,e,t):this.renderGroup?e.renderPipes.renderGroup.addRenderGroup(this.renderGroup,r):this.collectRenderablesWithEffects(r,e,t))},collectRenderablesSimple(r,e,t){let i=this.children,s=i.length;for(let n=0;n<s;n++)i[n].collectRenderables(r,e,t)},collectRenderablesWithEffects(r,e,t){let{renderPipes:i}=e;for(let s=0;s<this.effects.length;s++){let n=this.effects[s];i[n.pipe].push(n,this,r)}this.collectRenderablesSimple(r,e,t);for(let s=this.effects.length-1;s>=0;s--){let n=this.effects[s];i[n.pipe].pop(n,this,r)}}}});var xr,Uc=p(()=>{"use strict";xr=class{constructor(){this.pipe="filter",this.priority=1}destroy(){for(let e=0;e<this.filters.length;e++)this.filters[e].destroy();this.filters=null,this.filterArea=null}}});var Kh,Oc,_x=p(()=>{P();gr();Kh=class{constructor(){this._effectClasses=[],this._tests=[],this._initialized=!1}init(){this._initialized||(this._initialized=!0,this._effectClasses.forEach(e=>{this.add({test:e.test,maskClass:e})}))}add(e){this._tests.push(e)}getMaskEffect(e){this._initialized||this.init();for(let t=0;t<this._tests.length;t++){let i=this._tests[t];if(i.test(e))return pe.get(i.maskClass,e)}return e}returnMaskEffect(e){pe.return(e)}},Oc=new Kh;O.handleByList(b.MaskEffect,Oc._effectClasses)});var bx,yx=p(()=>{Uc();_x();bx={_maskEffect:null,_maskOptions:{inverse:!1},_filterEffect:null,effects:[],_markStructureAsChanged(){let r=this.renderGroup||this.parentRenderGroup;r&&(r.structureDidChange=!0)},addEffect(r){this.effects.indexOf(r)===-1&&(this.effects.push(r),this.effects.sort((t,i)=>t.priority-i.priority),this._markStructureAsChanged(),this._updateIsSimple())},removeEffect(r){let e=this.effects.indexOf(r);e!==-1&&(this.effects.splice(e,1),this._markStructureAsChanged(),this._updateIsSimple())},set mask(r){let e=this._maskEffect;e?.mask!==r&&(e&&(this.removeEffect(e),Oc.returnMaskEffect(e),this._maskEffect=null),r!=null&&(this._maskEffect=Oc.getMaskEffect(r),this.addEffect(this._maskEffect)))},get mask(){return this._maskEffect?.mask},setMask(r){this._maskOptions={...this._maskOptions,...r},r.mask&&(this.mask=r.mask),this._markStructureAsChanged()},set filters(r){!Array.isArray(r)&&r&&(r=[r]);let e=this._filterEffect||(this._filterEffect=new xr);r=r;let t=r?.length>0,i=e.filters?.length>0,s=t!==i;r=Array.isArray(r)?r.slice(0):r,e.filters=Object.freeze(r),s&&(t?this.addEffect(e):(this.removeEffect(e),e.filters=r??null))},get filters(){return this._filterEffect?.filters},set filterArea(r){this._filterEffect||(this._filterEffect=new xr),this._filterEffect.filterArea=r},get filterArea(){return this._filterEffect?.filterArea}}});var Tx,wx=p(()=>{ye();Tx={label:null,get name(){return z($,"Container.name property has been removed, use Container.label instead"),this.label},set name(r){z($,"Container.name property has been removed, use Container.label instead"),this.label=r},getChildByName(r,e=!1){return this.getChildByLabel(r,e)},getChildByLabel(r,e=!1){let t=this.children;for(let i=0;i<t.length;i++){let s=t[i];if(s.label===r||r instanceof RegExp&&r.test(s.label))return s}if(e)for(let i=0;i<t.length;i++){let n=t[i].getChildByLabel(r,!0);if(n)return n}return null},getChildrenByLabel(r,e=!1,t=[]){let i=this.children;for(let s=0;s<i.length;s++){let n=i[s];(n.label===r||r instanceof RegExp&&r.test(n.label))&&t.push(n)}if(e)for(let s=0;s<i.length;s++)i[s].getChildrenByLabel(r,!0,t);return t}}});var Gc,Y,Ge=p(()=>{It();Gc=[new Z,new Z,new Z,new Z],Y=class r{constructor(e=0,t=0,i=0,s=0){this.type="rectangle",this.x=Number(e),this.y=Number(t),this.width=Number(i),this.height=Number(s)}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}isEmpty(){return this.left===this.right||this.top===this.bottom}static get EMPTY(){return new r(0,0,0,0)}clone(){return new r(this.x,this.y,this.width,this.height)}copyFromBounds(e){return this.x=e.minX,this.y=e.minY,this.width=e.maxX-e.minX,this.height=e.maxY-e.minY,this}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){return this.width<=0||this.height<=0?!1:e>=this.x&&e<this.x+this.width&&t>=this.y&&t<this.y+this.height}strokeContains(e,t,i,s=.5){let{width:n,height:o}=this;if(n<=0||o<=0)return!1;let a=this.x,c=this.y,u=i*(1-s),l=i-u,h=a-u,f=a+n+u,d=c-u,m=c+o+u,x=a+l,g=a+n-l,_=c+l,y=c+o-l;return e>=h&&e<=f&&t>=d&&t<=m&&!(e>x&&e<g&&t>_&&t<y)}intersects(e,t){if(!t){let M=this.x<e.x?e.x:this.x;if((this.right>e.right?e.right:this.right)<=M)return!1;let B=this.y<e.y?e.y:this.y;return(this.bottom>e.bottom?e.bottom:this.bottom)>B}let i=this.left,s=this.right,n=this.top,o=this.bottom;if(s<=i||o<=n)return!1;let a=Gc[0].set(e.left,e.top),c=Gc[1].set(e.left,e.bottom),u=Gc[2].set(e.right,e.top),l=Gc[3].set(e.right,e.bottom);if(u.x<=a.x||c.y<=a.y)return!1;let h=Math.sign(t.a*t.d-t.b*t.c);if(h===0||(t.apply(a,a),t.apply(c,c),t.apply(u,u),t.apply(l,l),Math.max(a.x,c.x,u.x,l.x)<=i||Math.min(a.x,c.x,u.x,l.x)>=s||Math.max(a.y,c.y,u.y,l.y)<=n||Math.min(a.y,c.y,u.y,l.y)>=o))return!1;let f=h*(c.y-a.y),d=h*(a.x-c.x),m=f*i+d*n,x=f*s+d*n,g=f*i+d*o,_=f*s+d*o;if(Math.max(m,x,g,_)<=f*a.x+d*a.y||Math.min(m,x,g,_)>=f*l.x+d*l.y)return!1;let y=h*(a.y-u.y),S=h*(u.x-a.x),T=y*i+S*n,C=y*s+S*n,v=y*i+S*o,E=y*s+S*o;return!(Math.max(T,C,v,E)<=y*a.x+S*a.y||Math.min(T,C,v,E)>=y*l.x+S*l.y)}pad(e=0,t=e){return this.x-=e,this.y-=t,this.width+=e*2,this.height+=t*2,this}fit(e){let t=Math.max(this.x,e.x),i=Math.min(this.x+this.width,e.x+e.width),s=Math.max(this.y,e.y),n=Math.min(this.y+this.height,e.y+e.height);return this.x=t,this.width=Math.max(i-t,0),this.y=s,this.height=Math.max(n-s,0),this}ceil(e=1,t=.001){let i=Math.ceil((this.x+this.width-t)*e)/e,s=Math.ceil((this.y+this.height-t)*e)/e;return this.x=Math.floor((this.x+t)*e)/e,this.y=Math.floor((this.y+t)*e)/e,this.width=i-this.x,this.height=s-this.y,this}enlarge(e){let t=Math.min(this.x,e.x),i=Math.max(this.x+this.width,e.x+e.width),s=Math.min(this.y,e.y),n=Math.max(this.y+this.height,e.y+e.height);return this.x=t,this.width=i-t,this.y=s,this.height=n-s,this}getBounds(e){return e||(e=new r),e.copyFrom(this),e}containsRect(e){if(this.width<=0||this.height<=0)return!1;let t=e.x,i=e.y,s=e.x+e.width,n=e.y+e.height;return t>=this.x&&t<this.x+this.width&&i>=this.y&&i<this.y+this.height&&s>=this.x&&s<this.x+this.width&&n>=this.y&&n<this.y+this.height}set(e,t,i,s){return this.x=e,this.y=t,this.width=i,this.height=s,this}toString(){return`[pixi.js/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}}});var Sx,ae,ot=p(()=>{ee();Ge();Sx=new R,ae=class r{constructor(e=1/0,t=1/0,i=-1/0,s=-1/0){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=Sx,this.minX=e,this.minY=t,this.maxX=i,this.maxY=s}isEmpty(){return this.minX>this.maxX||this.minY>this.maxY}get rectangle(){this._rectangle||(this._rectangle=new Y);let e=this._rectangle;return this.minX>this.maxX||this.minY>this.maxY?(e.x=0,e.y=0,e.width=0,e.height=0):e.copyFromBounds(this),e}clear(){return this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=Sx,this}set(e,t,i,s){this.minX=e,this.minY=t,this.maxX=i,this.maxY=s}addFrame(e,t,i,s,n){n||(n=this.matrix);let o=n.a,a=n.b,c=n.c,u=n.d,l=n.tx,h=n.ty,f=this.minX,d=this.minY,m=this.maxX,x=this.maxY,g=o*e+c*t+l,_=a*e+u*t+h;g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),g=o*i+c*t+l,_=a*i+u*t+h,g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),g=o*e+c*s+l,_=a*e+u*s+h,g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),g=o*i+c*s+l,_=a*i+u*s+h,g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),this.minX=f,this.minY=d,this.maxX=m,this.maxY=x}addRect(e,t){this.addFrame(e.x,e.y,e.x+e.width,e.y+e.height,t)}addBounds(e,t){this.addFrame(e.minX,e.minY,e.maxX,e.maxY,t)}addBoundsMask(e){this.minX=this.minX>e.minX?this.minX:e.minX,this.minY=this.minY>e.minY?this.minY:e.minY,this.maxX=this.maxX<e.maxX?this.maxX:e.maxX,this.maxY=this.maxY<e.maxY?this.maxY:e.maxY}applyMatrix(e){let t=this.minX,i=this.minY,s=this.maxX,n=this.maxY,{a:o,b:a,c,d:u,tx:l,ty:h}=e,f=o*t+c*i+l,d=a*t+u*i+h;this.minX=f,this.minY=d,this.maxX=f,this.maxY=d,f=o*s+c*i+l,d=a*s+u*i+h,this.minX=f<this.minX?f:this.minX,this.minY=d<this.minY?d:this.minY,this.maxX=f>this.maxX?f:this.maxX,this.maxY=d>this.maxY?d:this.maxY,f=o*t+c*n+l,d=a*t+u*n+h,this.minX=f<this.minX?f:this.minX,this.minY=d<this.minY?d:this.minY,this.maxX=f>this.maxX?f:this.maxX,this.maxY=d>this.maxY?d:this.maxY,f=o*s+c*n+l,d=a*s+u*n+h,this.minX=f<this.minX?f:this.minX,this.minY=d<this.minY?d:this.minY,this.maxX=f>this.maxX?f:this.maxX,this.maxY=d>this.maxY?d:this.maxY}fit(e){return this.minX<e.left&&(this.minX=e.left),this.maxX>e.right&&(this.maxX=e.right),this.minY<e.top&&(this.minY=e.top),this.maxY>e.bottom&&(this.maxY=e.bottom),this}fitBounds(e,t,i,s){return this.minX<e&&(this.minX=e),this.maxX>t&&(this.maxX=t),this.minY<i&&(this.minY=i),this.maxY>s&&(this.maxY=s),this}pad(e,t=e){return this.minX-=e,this.maxX+=e,this.minY-=t,this.maxY+=t,this}ceil(){return this.minX=Math.floor(this.minX),this.minY=Math.floor(this.minY),this.maxX=Math.ceil(this.maxX),this.maxY=Math.ceil(this.maxY),this}clone(){return new r(this.minX,this.minY,this.maxX,this.maxY)}scale(e,t=e){return this.minX*=e,this.minY*=t,this.maxX*=e,this.maxY*=t,this}get x(){return this.minX}set x(e){let t=this.maxX-this.minX;this.minX=e,this.maxX=e+t}get y(){return this.minY}set y(e){let t=this.maxY-this.minY;this.minY=e,this.maxY=e+t}get width(){return this.maxX-this.minX}set width(e){this.maxX=this.minX+e}get height(){return this.maxY-this.minY}set height(e){this.maxY=this.minY+e}get left(){return this.minX}get right(){return this.maxX}get top(){return this.minY}get bottom(){return this.maxY}get isPositive(){return this.maxX-this.minX>0&&this.maxY-this.minY>0}get isValid(){return this.minX+this.minY!==1/0}addVertexData(e,t,i,s){let n=this.minX,o=this.minY,a=this.maxX,c=this.maxY;s||(s=this.matrix);let u=s.a,l=s.b,h=s.c,f=s.d,d=s.tx,m=s.ty;for(let x=t;x<i;x+=2){let g=e[x],_=e[x+1],y=u*g+h*_+d,S=l*g+f*_+m;n=y<n?y:n,o=S<o?S:o,a=y>a?y:a,c=S>c?S:c}this.minX=n,this.minY=o,this.maxX=a,this.maxY=c}containsPoint(e,t){return this.minX<=e&&this.minY<=t&&this.maxX>=e&&this.maxY>=t}toString(){return`[pixi.js:Bounds minX=${this.minX} minY=${this.minY} maxX=${this.maxX} maxY=${this.maxY} width=${this.width} height=${this.height}]`}copyFrom(e){return this.minX=e.minX,this.minY=e.minY,this.maxX=e.maxX,this.maxY=e.maxY,this}}});var Re,gt,_i=p(()=>{ee();jh();ot();Re=new xi(R),gt=new xi(ae)});var Sk,vx,Cx=p(()=>{ee();ot();_i();Sk=new R,vx={getFastGlobalBounds(r,e){e||(e=new ae),e.clear(),this._getGlobalBoundsRecursive(!!r,e,this.parentRenderLayer),e.isValid||e.set(0,0,0,0);let t=this.renderGroup||this.parentRenderGroup;return e.applyMatrix(t.worldTransform),e},_getGlobalBoundsRecursive(r,e,t){let i=e;if(r&&this.parentRenderLayer&&this.parentRenderLayer!==t||this.localDisplayStatus!==7||!this.measurable)return;let s=!!this.effects.length;if((this.renderGroup||s)&&(i=gt.get().clear()),this.boundsArea)e.addRect(this.boundsArea,this.worldTransform);else{if(this.renderPipeId){let o=this.bounds;i.addFrame(o.minX,o.minY,o.maxX,o.maxY,this.groupTransform)}let n=this.children;for(let o=0;o<n.length;o++)n[o]._getGlobalBoundsRecursive(r,i,t)}if(s){let n=!1,o=this.renderGroup||this.parentRenderGroup;for(let a=0;a<this.effects.length;a++)this.effects[a].addBounds&&(n||(n=!0,i.applyMatrix(o.worldTransform)),this.effects[a].addBounds(i,!0));n&&(i.applyMatrix(o.worldTransform.copyTo(Sk).invert()),e.addBounds(i,this.relativeGroupTransform)),e.addBounds(i),gt.return(i)}else this.renderGroup&&(e.addBounds(i,this.relativeGroupTransform),gt.return(i))}}});function os(r,e,t){t.clear();let i,s;return r.parent?e?i=r.parent.worldTransform:(s=Re.get().identity(),i=Nc(r,s)):i=R.IDENTITY,Ex(r,t,i,e),s&&Re.return(s),t.isValid||t.set(0,0,0,0),t}function Ex(r,e,t,i){if(!r.visible||!r.measurable)return;let s;i?s=r.worldTransform:(r.updateLocalTransform(),s=Re.get(),s.appendFrom(r.localTransform,t));let n=e,o=!!r.effects.length;if(o&&(e=gt.get().clear()),r.boundsArea)e.addRect(r.boundsArea,s);else{r.bounds&&(e.matrix=s,e.addBounds(r.bounds));for(let a=0;a<r.children.length;a++)Ex(r.children[a],e,s,i)}if(o){for(let a=0;a<r.effects.length;a++)r.effects[a].addBounds?.(e);n.addBounds(e,R.IDENTITY),gt.return(e)}i||Re.return(s)}function Nc(r,e){let t=r.parent;return t&&(Nc(t,e),t.updateLocalTransform(),e.append(t.localTransform)),e}var Nn=p(()=>{ee();_i()});function Lc(r,e){if(r===16777215||!e)return e;if(e===16777215||!r)return r;let t=r>>16&255,i=r>>8&255,s=r&255,n=e>>16&255,o=e>>8&255,a=e&255,c=t*n/255|0,u=i*o/255|0,l=s*a/255|0;return(c<<16)+(u<<8)+l}var Qh=p(()=>{"use strict"});function as(r,e){return r===kx?e:e===kx?r:Lc(r,e)}var kx,Zh=p(()=>{Qh();kx=16777215});function Ln(r){return((r&255)<<16)+(r&65280)+(r>>16&255)}var Ax,Px=p(()=>{Nn();_i();Zh();Ax={getGlobalAlpha(r){if(r)return this.renderGroup?this.renderGroup.worldAlpha:this.parentRenderGroup?this.parentRenderGroup.worldAlpha*this.alpha:this.alpha;let e=this.alpha,t=this.parent;for(;t;)e*=t.alpha,t=t.parent;return e},getGlobalTransform(r,e){if(e)return r.copyFrom(this.worldTransform);this.updateLocalTransform();let t=Nc(this,Re.get().identity());return r.appendFrom(this.localTransform,t),Re.return(t),r},getGlobalTint(r){if(r)return this.renderGroup?Ln(this.renderGroup.worldColor):this.parentRenderGroup?Ln(as(this.localColor,this.parentRenderGroup.worldColor)):this.tint;let e=this.localColor,t=this.parent;for(;t;)e=as(e,t.localColor),t=t.parent;return Ln(e)}}});function cs(r,e,t){return e.clear(),t||(t=R.IDENTITY),Bx(r,e,t,r,!0),e.isValid||e.set(0,0,0,0),e}function Bx(r,e,t,i,s){let n;if(s)n=Re.get(),n=t.copyTo(n);else{if(!r.visible||!r.measurable)return;r.updateLocalTransform();let c=r.localTransform;n=Re.get(),n.appendFrom(c,t)}let o=e,a=!!r.effects.length;if(a&&(e=gt.get().clear()),r.boundsArea)e.addRect(r.boundsArea,n);else{r.renderPipeId&&(e.matrix=n,e.addBounds(r.bounds));let c=r.children;for(let u=0;u<c.length;u++)Bx(c[u],e,n,i,!1)}if(a){for(let c=0;c<r.effects.length;c++)r.effects[c].addLocalBounds?.(e,i);o.addBounds(e,R.IDENTITY),gt.return(e)}Re.return(n)}var zc=p(()=>{ee();_i()});function Jh(r,e){let t=r.children;for(let i=0;i<t.length;i++){let s=t[i],n=s.uid,o=(s._didViewChangeTick&65535)<<16|s._didContainerChangeTick&65535,a=e.index;(e.data[a]!==n||e.data[a+1]!==o)&&(e.data[e.index]=n,e.data[e.index+1]=o,e.didChange=!0),e.index=a+2,s.children.length&&Jh(s,e)}return e.didChange}var Rx=p(()=>{"use strict"});var vk,Dx,Mx=p(()=>{ee();ot();Nn();zc();Rx();vk=new R,Dx={_localBoundsCacheId:-1,_localBoundsCacheData:null,_setWidth(r,e){let t=Math.sign(this.scale.x)||1;e!==0?this.scale.x=r/e*t:this.scale.x=t},_setHeight(r,e){let t=Math.sign(this.scale.y)||1;e!==0?this.scale.y=r/e*t:this.scale.y=t},getLocalBounds(){this._localBoundsCacheData||(this._localBoundsCacheData={data:[],index:1,didChange:!1,localBounds:new ae});let r=this._localBoundsCacheData;return r.index=1,r.didChange=!1,r.data[0]!==this._didViewChangeTick&&(r.didChange=!0,r.data[0]=this._didViewChangeTick),Jh(this,r),r.didChange&&cs(this,r.localBounds,vk),r.localBounds},getBounds(r,e){return os(this,r,e||new ae)}}});var Ix,Fx=p(()=>{"use strict";Ix={_onRender:null,set onRender(r){let e=this.renderGroup||this.parentRenderGroup;if(!r){this._onRender&&e?.removeOnRender(this),this._onRender=null;return}this._onRender||e?.addOnRender(this),this._onRender=r},get onRender(){return this._onRender}}});function Ck(r,e){return r._zIndex-e._zIndex}var Ux,Ox=p(()=>{"use strict";Ux={_zIndex:0,sortDirty:!1,sortableChildren:!1,get zIndex(){return this._zIndex},set zIndex(r){this._zIndex!==r&&(this._zIndex=r,this.depthOfChildModified())},depthOfChildModified(){this.parent&&(this.parent.sortableChildren=!0,this.parent.sortDirty=!0),this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0)},sortChildren(){this.sortDirty&&(this.sortDirty=!1,this.children.sort(Ck))}}});var Gx,Nx=p(()=>{It();_i();Gx={getGlobalPosition(r=new Z,e=!1){return this.parent?this.parent.toGlobal(this._position,r,e):(r.x=this._position.x,r.y=this._position.y),r},toGlobal(r,e,t=!1){let i=this.getGlobalTransform(Re.get(),t);return e=i.apply(r,e),Re.return(i),e},toLocal(r,e,t,i){e&&(r=e.toGlobal(r,t,i));let s=this.getGlobalTransform(Re.get(),i);return t=s.applyInverse(r,t),Re.return(s),t}}});var us,ed=p(()=>{Oe();us=class{constructor(){this.uid=K("instructionSet"),this.instructions=[],this.instructionSize=0,this.renderables=[],this.gcTick=0}reset(){this.instructionSize=0}add(e){this.instructions[this.instructionSize++]=e}log(){this.instructions.length=this.instructionSize,console.table(this.instructions,["type","action"])}}});function _r(r){return r+=r===0?1:0,--r,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r+1}function td(r){return!(r&r-1)&&!!r}var zn=p(()=>{"use strict"});function Vc(r){let e={};for(let t in r)r[t]!==void 0&&(e[t]=r[t]);return e}var rd=p(()=>{"use strict"});function Ek(r){let e=Lx[r];return e===void 0&&(Lx[r]=K("resource")),e}var Lx,zx,Je,bi=p(()=>{Ve();Oe();ye();Lx=Object.create(null);zx=class Vx extends oe{constructor(e={}){super(),this._resourceType="textureSampler",this._touched=0,this._maxAnisotropy=1,this.destroyed=!1,e={...Vx.defaultOptions,...e},this.addressMode=e.addressMode,this.addressModeU=e.addressModeU??this.addressModeU,this.addressModeV=e.addressModeV??this.addressModeV,this.addressModeW=e.addressModeW??this.addressModeW,this.scaleMode=e.scaleMode,this.magFilter=e.magFilter??this.magFilter,this.minFilter=e.minFilter??this.minFilter,this.mipmapFilter=e.mipmapFilter??this.mipmapFilter,this.lodMinClamp=e.lodMinClamp,this.lodMaxClamp=e.lodMaxClamp,this.compare=e.compare,this.maxAnisotropy=e.maxAnisotropy??1}set addressMode(e){this.addressModeU=e,this.addressModeV=e,this.addressModeW=e}get addressMode(){return this.addressModeU}set wrapMode(e){z($,"TextureStyle.wrapMode is now TextureStyle.addressMode"),this.addressMode=e}get wrapMode(){return this.addressMode}set scaleMode(e){this.magFilter=e,this.minFilter=e,this.mipmapFilter=e}get scaleMode(){return this.magFilter}set maxAnisotropy(e){this._maxAnisotropy=Math.min(e,16),this._maxAnisotropy>1&&(this.scaleMode="linear")}get maxAnisotropy(){return this._maxAnisotropy}get _resourceId(){return this._sharedResourceId||this._generateResourceId()}update(){this.emit("change",this),this._sharedResourceId=null}_generateResourceId(){let e=`${this.addressModeU}-${this.addressModeV}-${this.addressModeW}-${this.magFilter}-${this.minFilter}-${this.mipmapFilter}-${this.lodMinClamp}-${this.lodMaxClamp}-${this.compare}-${this._maxAnisotropy}`;return this._sharedResourceId=Ek(e),this._resourceId}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this.removeAllListeners()}};zx.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};Je=zx});var Hx,se,et=p(()=>{Ve();zn();rd();Oe();bi();Hx=class Wx extends oe{constructor(e={}){super(),this.options=e,this.uid=K("textureSource"),this._resourceType="textureSource",this._resourceId=K("resource"),this.uploadMethodId="unknown",this._resolution=1,this.pixelWidth=1,this.pixelHeight=1,this.width=1,this.height=1,this.sampleCount=1,this.mipLevelCount=1,this.autoGenerateMipmaps=!1,this.format="rgba8unorm",this.dimension="2d",this.antialias=!1,this._touched=0,this._batchTick=-1,this._textureBindLocation=-1,e={...Wx.defaultOptions,...e},this.label=e.label??"",this.resource=e.resource,this.autoGarbageCollect=e.autoGarbageCollect,this._resolution=e.resolution,e.width?this.pixelWidth=e.width*this._resolution:this.pixelWidth=this.resource?this.resourceWidth??1:1,e.height?this.pixelHeight=e.height*this._resolution:this.pixelHeight=this.resource?this.resourceHeight??1:1,this.width=this.pixelWidth/this._resolution,this.height=this.pixelHeight/this._resolution,this.format=e.format,this.dimension=e.dimensions,this.mipLevelCount=e.mipLevelCount,this.autoGenerateMipmaps=e.autoGenerateMipmaps,this.sampleCount=e.sampleCount,this.antialias=e.antialias,this.alphaMode=e.alphaMode,this.style=new Je(Vc(e)),this.destroyed=!1,this._refreshPOT()}get source(){return this}get style(){return this._style}set style(e){this.style!==e&&(this._style?.off("change",this._onStyleChange,this),this._style=e,this._style?.on("change",this._onStyleChange,this),this._onStyleChange())}get addressMode(){return this._style.addressMode}set addressMode(e){this._style.addressMode=e}get repeatMode(){return this._style.addressMode}set repeatMode(e){this._style.addressMode=e}get magFilter(){return this._style.magFilter}set magFilter(e){this._style.magFilter=e}get minFilter(){return this._style.minFilter}set minFilter(e){this._style.minFilter=e}get mipmapFilter(){return this._style.mipmapFilter}set mipmapFilter(e){this._style.mipmapFilter=e}get lodMinClamp(){return this._style.lodMinClamp}set lodMinClamp(e){this._style.lodMinClamp=e}get lodMaxClamp(){return this._style.lodMaxClamp}set lodMaxClamp(e){this._style.lodMaxClamp=e}_onStyleChange(){this.emit("styleChange",this)}update(){if(this.resource){let e=this._resolution;if(this.resize(this.resourceWidth/e,this.resourceHeight/e))return}this.emit("update",this)}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this._style&&(this._style.destroy(),this._style=null),this.uploadMethodId=null,this.resource=null,this.removeAllListeners()}unload(){this._resourceId=K("resource"),this.emit("change",this),this.emit("unload",this)}get resourceWidth(){let{resource:e}=this;return e.naturalWidth||e.videoWidth||e.displayWidth||e.width}get resourceHeight(){let{resource:e}=this;return e.naturalHeight||e.videoHeight||e.displayHeight||e.height}get resolution(){return this._resolution}set resolution(e){this._resolution!==e&&(this._resolution=e,this.width=this.pixelWidth/e,this.height=this.pixelHeight/e)}resize(e,t,i){i||(i=this._resolution),e||(e=this.width),t||(t=this.height);let s=Math.round(e*i),n=Math.round(t*i);return this.width=s/i,this.height=n/i,this._resolution=i,this.pixelWidth===s&&this.pixelHeight===n?!1:(this._refreshPOT(),this.pixelWidth=s,this.pixelHeight=n,this.emit("resize",this),this._resourceId=K("resource"),this.emit("change",this),!0)}updateMipmaps(){this.autoGenerateMipmaps&&this.mipLevelCount>1&&this.emit("updateMipmaps",this)}set wrapMode(e){this._style.wrapMode=e}get wrapMode(){return this._style.wrapMode}set scaleMode(e){this._style.scaleMode=e}get scaleMode(){return this._style.scaleMode}_refreshPOT(){this.isPowerOfTwo=td(this.pixelWidth)&&td(this.pixelHeight)}static test(e){throw new Error("Unimplemented")}};Hx.defaultOptions={resolution:1,format:"bgra8unorm",alphaMode:"premultiply-alpha-on-upload",dimensions:"2d",mipLevelCount:1,autoGenerateMipmaps:!1,sampleCount:1,antialias:!1,autoGarbageCollect:!1};se=Hx});function kk(){for(let r=0;r<16;r++){let e=[];id.push(e);for(let t=0;t<16;t++){let i=Hc(yi[r]*yi[t]+wi[r]*Ti[t]),s=Hc(Ti[r]*yi[t]+Si[r]*Ti[t]),n=Hc(yi[r]*wi[t]+wi[r]*Si[t]),o=Hc(Ti[r]*wi[t]+Si[r]*Si[t]);for(let a=0;a<16;a++)if(yi[a]===i&&Ti[a]===s&&wi[a]===n&&Si[a]===o){e.push(a);break}}}for(let r=0;r<16;r++){let e=new R;e.set(yi[r],Ti[r],wi[r],Si[r],0,0),$x.push(e)}}var yi,Ti,wi,Si,id,$x,Hc,xe,qx=p(()=>{ee();yi=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],Ti=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],wi=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],Si=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],id=[],$x=[],Hc=Math.sign;kk();xe={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:r=>yi[r],uY:r=>Ti[r],vX:r=>wi[r],vY:r=>Si[r],inv:r=>r&8?r&15:-r&7,add:(r,e)=>id[r][e],sub:(r,e)=>id[r][xe.inv(e)],rotate180:r=>r^4,isVertical:r=>(r&3)===2,byDirection:(r,e)=>Math.abs(r)*2<=Math.abs(e)?e>=0?xe.S:xe.N:Math.abs(e)*2<=Math.abs(r)?r>0?xe.E:xe.W:e>0?r>0?xe.SE:xe.SW:r>0?xe.NE:xe.NW,matrixAppendRotationInv:(r,e,t=0,i=0)=>{let s=$x[xe.inv(e)];s.tx=t,s.ty=i,r.append(s)}}});var sd,jx=p(()=>{"use strict";sd=()=>{}});var vi,nd=p(()=>{P();et();vi=class extends se{constructor(e){let t=e.resource||new Float32Array(e.width*e.height*4),i=e.format;i||(t instanceof Float32Array?i="rgba32float":t instanceof Int32Array||t instanceof Uint32Array?i="rgba32uint":t instanceof Int16Array||t instanceof Uint16Array?i="rgba16uint":(t instanceof Int8Array,i="bgra8unorm")),super({...e,resource:t,format:i}),this.uploadMethodId="buffer"}static test(e){return e instanceof Int8Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array}};vi.extension=b.TextureSource});var Xx,ls,od=p(()=>{ee();Xx=new R,ls=class{constructor(e,t){this.mapCoord=new R,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._textureID=-1,this._updateID=0,this.clampOffset=0,typeof t>"u"?this.clampMargin=e.width<10?0:.5:this.clampMargin=t,this.isSimple=!1,this.texture=e}get texture(){return this._texture}set texture(e){this.texture!==e&&(this._texture?.removeListener("update",this.update,this),this._texture=e,this._texture.addListener("update",this.update,this),this.update())}multiplyUvs(e,t){t===void 0&&(t=e);let i=this.mapCoord;for(let s=0;s<e.length;s+=2){let n=e[s],o=e[s+1];t[s]=n*i.a+o*i.c+i.tx,t[s+1]=n*i.b+o*i.d+i.ty}return t}update(){let e=this._texture;this._updateID++;let t=e.uvs;this.mapCoord.set(t.x1-t.x0,t.y1-t.y0,t.x3-t.x0,t.y3-t.y0,t.x0,t.y0);let i=e.orig,s=e.trim;s&&(Xx.set(i.width/s.width,0,0,i.height/s.height,-s.x/s.width,-s.y/s.height),this.mapCoord.append(Xx));let n=e.source,o=this.uClampFrame,a=this.clampMargin/n._resolution,c=this.clampOffset/n._resolution;return o[0]=(e.frame.x+a+c)/n.width,o[1]=(e.frame.y+a+c)/n.height,o[2]=(e.frame.x+e.frame.width-a+c)/n.width,o[3]=(e.frame.y+e.frame.height-a+c)/n.height,this.uClampOffset[0]=this.clampOffset/n.pixelWidth,this.uClampOffset[1]=this.clampOffset/n.pixelHeight,this.isSimple=e.frame.width===n.width&&e.frame.height===n.height&&e.rotate===0,!0}}});var D,le=p(()=>{Ve();qx();Ge();Oe();ye();jx();nd();et();od();D=class extends oe{constructor({source:e,label:t,frame:i,orig:s,trim:n,defaultAnchor:o,defaultBorders:a,rotate:c,dynamic:u}={}){if(super(),this.uid=K("texture"),this.uvs={x0:0,y0:0,x1:0,y1:0,x2:0,y2:0,x3:0,y3:0},this.frame=new Y,this.noFrame=!1,this.dynamic=!1,this.isTexture=!0,this.label=t,this.source=e?.source??new se,this.noFrame=!i,i)this.frame.copyFrom(i);else{let{width:l,height:h}=this._source;this.frame.width=l,this.frame.height=h}this.orig=s||this.frame,this.trim=n,this.rotate=c??0,this.defaultAnchor=o,this.defaultBorders=a,this.destroyed=!1,this.dynamic=u||!1,this.updateUvs()}set source(e){this._source&&this._source.off("resize",this.update,this),this._source=e,e.on("resize",this.update,this),this.emit("update",this)}get source(){return this._source}get textureMatrix(){return this._textureMatrix||(this._textureMatrix=new ls(this)),this._textureMatrix}get width(){return this.orig.width}get height(){return this.orig.height}updateUvs(){let{uvs:e,frame:t}=this,{width:i,height:s}=this._source,n=t.x/i,o=t.y/s,a=t.width/i,c=t.height/s,u=this.rotate;if(u){let l=a/2,h=c/2,f=n+l,d=o+h;u=xe.add(u,xe.NW),e.x0=f+l*xe.uX(u),e.y0=d+h*xe.uY(u),u=xe.add(u,2),e.x1=f+l*xe.uX(u),e.y1=d+h*xe.uY(u),u=xe.add(u,2),e.x2=f+l*xe.uX(u),e.y2=d+h*xe.uY(u),u=xe.add(u,2),e.x3=f+l*xe.uX(u),e.y3=d+h*xe.uY(u)}else e.x0=n,e.y0=o,e.x1=n+a,e.y1=o,e.x2=n+a,e.y2=o+c,e.x3=n,e.y3=o+c}destroy(e=!1){this._source&&e&&(this._source.destroy(),this._source=null),this._textureMatrix=null,this.destroyed=!0,this.emit("destroy",this),this.removeAllListeners()}update(){this.noFrame&&(this.frame.width=this._source.width,this.frame.height=this._source.height),this.updateUvs(),this.emit("update",this)}get baseTexture(){return z($,"Texture.baseTexture is now Texture.source"),this._source}};D.EMPTY=new D({label:"EMPTY",source:new se({label:"EMPTY"})});D.EMPTY.destroy=sd;D.WHITE=new D({source:new vi({resource:new Uint8Array([255,255,255,255]),width:1,height:1,alphaMode:"premultiply-alpha-on-upload",label:"WHITE"}),label:"WHITE"});D.WHITE.destroy=sd});var Ak,ad,Te,Lr=p(()=>{zn();et();le();bi();Ak=0,ad=class{constructor(e){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=e||{},this.enableFullScreen=!1,this.textureStyle=new Je(this.textureOptions)}createTexture(e,t,i){let s=new se({...this.textureOptions,width:e,height:t,resolution:1,antialias:i,autoGarbageCollect:!1});return new D({source:s,label:`texturePool_${Ak++}`})}getOptimalTexture(e,t,i=1,s){let n=Math.ceil(e*i-1e-6),o=Math.ceil(t*i-1e-6);n=_r(n),o=_r(o);let a=(n<<17)+(o<<1)+(s?1:0);this._texturePool[a]||(this._texturePool[a]=[]);let c=this._texturePool[a].pop();return c||(c=this.createTexture(n,o,s)),c.source._resolution=i,c.source.width=n/i,c.source.height=o/i,c.source.pixelWidth=n,c.source.pixelHeight=o,c.frame.x=0,c.frame.y=0,c.frame.width=e,c.frame.height=t,c.updateUvs(),this._poolKeyHash[c.uid]=a,c}getSameSizeTexture(e,t=!1){let i=e.source;return this.getOptimalTexture(e.width,e.height,i._resolution,t)}returnTexture(e,t=!1){let i=this._poolKeyHash[e.uid];t&&(e.source.style=this.textureStyle),this._texturePool[i].push(e)}clear(e){if(e=e!==!1,e)for(let t in this._texturePool){let i=this._texturePool[t];if(i)for(let s=0;s<i.length;s++)i[s].destroy(!0)}this._texturePool={}}},Te=new ad});var Wc,Yx=p(()=>{ee();ed();Lr();Wc=class{constructor(){this.renderPipeId="renderGroup",this.root=null,this.canBundle=!1,this.renderGroupParent=null,this.renderGroupChildren=[],this.worldTransform=new R,this.worldColorAlpha=4294967295,this.worldColor=16777215,this.worldAlpha=1,this.childrenToUpdate=Object.create(null),this.updateTick=0,this.gcTick=0,this.childrenRenderablesToUpdate={list:[],index:0},this.structureDidChange=!0,this.instructionSet=new us,this._onRenderContainers=[],this.textureNeedsUpdate=!0,this.isCachedAsTexture=!1,this._matrixDirty=7}init(e){this.root=e,e._onRender&&this.addOnRender(e),e.didChange=!0;let t=e.children;for(let i=0;i<t.length;i++){let s=t[i];s._updateFlags=15,this.addChild(s)}}enableCacheAsTexture(e={}){this.textureOptions=e,this.isCachedAsTexture=!0,this.textureNeedsUpdate=!0}disableCacheAsTexture(){this.isCachedAsTexture=!1,this.texture&&(Te.returnTexture(this.texture),this.texture=null)}updateCacheTexture(){this.textureNeedsUpdate=!0}reset(){this.renderGroupChildren.length=0;for(let e in this.childrenToUpdate){let t=this.childrenToUpdate[e];t.list.fill(null),t.index=0}this.childrenRenderablesToUpdate.index=0,this.childrenRenderablesToUpdate.list.fill(null),this.root=null,this.updateTick=0,this.structureDidChange=!0,this._onRenderContainers.length=0,this.renderGroupParent=null,this.disableCacheAsTexture()}get localTransform(){return this.root.localTransform}addRenderGroupChild(e){e.renderGroupParent&&e.renderGroupParent._removeRenderGroupChild(e),e.renderGroupParent=this,this.renderGroupChildren.push(e)}_removeRenderGroupChild(e){let t=this.renderGroupChildren.indexOf(e);t>-1&&this.renderGroupChildren.splice(t,1),e.renderGroupParent=null}addChild(e){if(this.structureDidChange=!0,e.parentRenderGroup=this,e.updateTick=-1,e.parent===this.root?e.relativeRenderGroupDepth=1:e.relativeRenderGroupDepth=e.parent.relativeRenderGroupDepth+1,e.didChange=!0,this.onChildUpdate(e),e.renderGroup){this.addRenderGroupChild(e.renderGroup);return}e._onRender&&this.addOnRender(e);let t=e.children;for(let i=0;i<t.length;i++)this.addChild(t[i])}removeChild(e){if(this.structureDidChange=!0,e._onRender&&(e.renderGroup||this.removeOnRender(e)),e.parentRenderGroup=null,e.renderGroup){this._removeRenderGroupChild(e.renderGroup);return}let t=e.children;for(let i=0;i<t.length;i++)this.removeChild(t[i])}removeChildren(e){for(let t=0;t<e.length;t++)this.removeChild(e[t])}onChildUpdate(e){let t=this.childrenToUpdate[e.relativeRenderGroupDepth];t||(t=this.childrenToUpdate[e.relativeRenderGroupDepth]={index:0,list:[]}),t.list[t.index++]=e}updateRenderable(e){e.globalDisplayStatus<7||(this.instructionSet.renderPipes[e.renderPipeId].updateRenderable(e),e.didViewUpdate=!1)}onChildViewUpdate(e){this.childrenRenderablesToUpdate.list[this.childrenRenderablesToUpdate.index++]=e}get isRenderable(){return this.root.localDisplayStatus===7&&this.worldAlpha>0}addOnRender(e){this._onRenderContainers.push(e)}removeOnRender(e){this._onRenderContainers.splice(this._onRenderContainers.indexOf(e),1)}runOnRender(e){for(let t=0;t<this._onRenderContainers.length;t++)this._onRenderContainers[t]._onRender(e)}destroy(){this.disableCacheAsTexture(),this.renderGroupParent=null,this.root=null,this.childrenRenderablesToUpdate=null,this.childrenToUpdate=null,this.renderGroupChildren=null,this._onRenderContainers=null,this.instructionSet=null}getChildren(e=[]){let t=this.root.children;for(let i=0;i<t.length;i++)this._getChildren(t[i],e);return e}_getChildren(e,t=[]){if(t.push(e),e.renderGroup)return t;let i=e.children;for(let s=0;s<i.length;s++)this._getChildren(i[s],t);return t}invalidateMatrices(){this._matrixDirty=7}get inverseWorldTransform(){return(this._matrixDirty&1)===0?this._inverseWorldTransform:(this._matrixDirty&=-2,this._inverseWorldTransform||(this._inverseWorldTransform=new R),this._inverseWorldTransform.copyFrom(this.worldTransform).invert())}get textureOffsetInverseTransform(){return(this._matrixDirty&2)===0?this._textureOffsetInverseTransform:(this._matrixDirty&=-3,this._textureOffsetInverseTransform||(this._textureOffsetInverseTransform=new R),this._textureOffsetInverseTransform.copyFrom(this.inverseWorldTransform).translate(-this._textureBounds.x,-this._textureBounds.y))}get inverseParentTextureTransform(){if((this._matrixDirty&4)===0)return this._inverseParentTextureTransform;this._matrixDirty&=-5;let e=this._parentCacheAsTextureRenderGroup;return e?(this._inverseParentTextureTransform||(this._inverseParentTextureTransform=new R),this._inverseParentTextureTransform.copyFrom(this.worldTransform).prepend(e.inverseWorldTransform).translate(-e._textureBounds.x,-e._textureBounds.y)):this.worldTransform}get cacheToLocalTransform(){return this._parentCacheAsTextureRenderGroup?this._parentCacheAsTextureRenderGroup.textureOffsetInverseTransform:null}}});function Kx(r,e,t={}){for(let i in e)!t[i]&&e[i]!==void 0&&(r[i]=e[i])}var Qx=p(()=>{"use strict"});var cd,ud,ld,hs,Vn,Ci,we,Ht=p(()=>{Ve();He();ox();P();ee();Wh();Ic();Oe();ye();gr();fx();px();xx();yx();wx();Cx();Px();Mx();Fx();Ox();Nx();Yx();Qx();cd=new We(null),ud=new We(null),ld=new We(null,1,1),hs=1,Vn=2,Ci=4,we=class r extends oe{constructor(e={}){super(),this.uid=K("renderable"),this._updateFlags=15,this.renderGroup=null,this.parentRenderGroup=null,this.parentRenderGroupIndex=0,this.didChange=!1,this.didViewUpdate=!1,this.relativeRenderGroupDepth=0,this.children=[],this.parent=null,this.includeInBuild=!0,this.measurable=!0,this.isSimple=!0,this.updateTick=-1,this.localTransform=new R,this.relativeGroupTransform=new R,this.groupTransform=this.relativeGroupTransform,this.destroyed=!1,this._position=new We(this,0,0),this._scale=ld,this._pivot=ud,this._skew=cd,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._rotation=0,this.localColor=16777215,this.localAlpha=1,this.groupAlpha=1,this.groupColor=16777215,this.groupColorAlpha=4294967295,this.localBlendMode="inherit",this.groupBlendMode="normal",this.localDisplayStatus=7,this.globalDisplayStatus=7,this._didContainerChangeTick=0,this._didViewChangeTick=0,this._didLocalTransformChangeId=-1,this.effects=[],Kx(this,e,{children:!0,parent:!0,effects:!0}),e.children?.forEach(t=>this.addChild(t)),e.parent?.addChild(this)}static mixin(e){z("8.8.0","Container.mixin is deprecated, please use extensions.mixin instead."),O.mixin(r,e)}set _didChangeId(e){this._didViewChangeTick=e>>12&4095,this._didContainerChangeTick=e&4095}get _didChangeId(){return this._didContainerChangeTick&4095|(this._didViewChangeTick&4095)<<12}addChild(...e){if(this.allowChildren||z($,"addChild: Only Containers will be allowed to add children in v8.0.0"),e.length>1){for(let s=0;s<e.length;s++)this.addChild(e[s]);return e[0]}let t=e[0],i=this.renderGroup||this.parentRenderGroup;return t.parent===this?(this.children.splice(this.children.indexOf(t),1),this.children.push(t),i&&(i.structureDidChange=!0),t):(t.parent&&t.parent.removeChild(t),this.children.push(t),this.sortableChildren&&(this.sortDirty=!0),t.parent=this,t.didChange=!0,t._updateFlags=15,i&&i.addChild(t),this.emit("childAdded",t,this,this.children.length-1),t.emit("added",this),this._didViewChangeTick++,t._zIndex!==0&&t.depthOfChildModified(),t)}removeChild(...e){if(e.length>1){for(let s=0;s<e.length;s++)this.removeChild(e[s]);return e[0]}let t=e[0],i=this.children.indexOf(t);return i>-1&&(this._didViewChangeTick++,this.children.splice(i,1),this.renderGroup?this.renderGroup.removeChild(t):this.parentRenderGroup&&this.parentRenderGroup.removeChild(t),t.parentRenderLayer&&t.parentRenderLayer.detach(t),t.parent=null,this.emit("childRemoved",t,this,i),t.emit("removed",this)),t}_onUpdate(e){e&&e===this._skew&&this._updateSkew(),this._didContainerChangeTick++,!this.didChange&&(this.didChange=!0,this.parentRenderGroup&&this.parentRenderGroup.onChildUpdate(this))}set isRenderGroup(e){!!this.renderGroup!==e&&(e?this.enableRenderGroup():this.disableRenderGroup())}get isRenderGroup(){return!!this.renderGroup}enableRenderGroup(){if(this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),this.renderGroup=pe.get(Wc,this),this.groupTransform=R.IDENTITY,e?.addChild(this),this._updateIsSimple()}disableRenderGroup(){if(!this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),pe.return(this.renderGroup),this.renderGroup=null,this.groupTransform=this.relativeGroupTransform,e?.addChild(this),this._updateIsSimple()}_updateIsSimple(){this.isSimple=!this.renderGroup&&this.effects.length===0}get worldTransform(){return this._worldTransform||(this._worldTransform=new R),this.renderGroup?this._worldTransform.copyFrom(this.renderGroup.worldTransform):this.parentRenderGroup&&this._worldTransform.appendFrom(this.relativeGroupTransform,this.parentRenderGroup.worldTransform),this._worldTransform}get x(){return this._position.x}set x(e){this._position.x=e}get y(){return this._position.y}set y(e){this._position.y=e}get position(){return this._position}set position(e){this._position.copyFrom(e)}get rotation(){return this._rotation}set rotation(e){this._rotation!==e&&(this._rotation=e,this._onUpdate(this._skew))}get angle(){return this.rotation*cx}set angle(e){this.rotation=e*ux}get pivot(){return this._pivot===ud&&(this._pivot=new We(this,0,0)),this._pivot}set pivot(e){this._pivot===ud&&(this._pivot=new We(this,0,0)),typeof e=="number"?this._pivot.set(e):this._pivot.copyFrom(e)}get skew(){return this._skew===cd&&(this._skew=new We(this,0,0)),this._skew}set skew(e){this._skew===cd&&(this._skew=new We(this,0,0)),this._skew.copyFrom(e)}get scale(){return this._scale===ld&&(this._scale=new We(this,1,1)),this._scale}set scale(e){this._scale===ld&&(this._scale=new We(this,0,0)),typeof e=="number"?this._scale.set(e):this._scale.copyFrom(e)}get width(){return Math.abs(this.scale.x*this.getLocalBounds().width)}set width(e){let t=this.getLocalBounds().width;this._setWidth(e,t)}get height(){return Math.abs(this.scale.y*this.getLocalBounds().height)}set height(e){let t=this.getLocalBounds().height;this._setHeight(e,t)}getSize(e){e||(e={});let t=this.getLocalBounds();return e.width=Math.abs(this.scale.x*t.width),e.height=Math.abs(this.scale.y*t.height),e}setSize(e,t){let i=this.getLocalBounds();typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,i.width),t!==void 0&&this._setHeight(t,i.height)}_updateSkew(){let e=this._rotation,t=this._skew;this._cx=Math.cos(e+t._y),this._sx=Math.sin(e+t._y),this._cy=-Math.sin(e-t._x),this._sy=Math.cos(e-t._x)}updateTransform(e){return this.position.set(typeof e.x=="number"?e.x:this.position.x,typeof e.y=="number"?e.y:this.position.y),this.scale.set(typeof e.scaleX=="number"?e.scaleX||1:this.scale.x,typeof e.scaleY=="number"?e.scaleY||1:this.scale.y),this.rotation=typeof e.rotation=="number"?e.rotation:this.rotation,this.skew.set(typeof e.skewX=="number"?e.skewX:this.skew.x,typeof e.skewY=="number"?e.skewY:this.skew.y),this.pivot.set(typeof e.pivotX=="number"?e.pivotX:this.pivot.x,typeof e.pivotY=="number"?e.pivotY:this.pivot.y),this}setFromMatrix(e){e.decompose(this)}updateLocalTransform(){let e=this._didContainerChangeTick;if(this._didLocalTransformChangeId===e)return;this._didLocalTransformChangeId=e;let t=this.localTransform,i=this._scale,s=this._pivot,n=this._position,o=i._x,a=i._y,c=s._x,u=s._y;t.a=this._cx*o,t.b=this._sx*o,t.c=this._cy*a,t.d=this._sy*a,t.tx=n._x-(c*t.a+u*t.c),t.ty=n._y-(c*t.b+u*t.d)}set alpha(e){e!==this.localAlpha&&(this.localAlpha=e,this._updateFlags|=hs,this._onUpdate())}get alpha(){return this.localAlpha}set tint(e){let i=q.shared.setValue(e??16777215).toBgrNumber();i!==this.localColor&&(this.localColor=i,this._updateFlags|=hs,this._onUpdate())}get tint(){return Ln(this.localColor)}set blendMode(e){this.localBlendMode!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Vn,this.localBlendMode=e,this._onUpdate())}get blendMode(){return this.localBlendMode}get visible(){return!!(this.localDisplayStatus&2)}set visible(e){let t=e?2:0;(this.localDisplayStatus&2)!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Ci,this.localDisplayStatus^=2,this._onUpdate())}get culled(){return!(this.localDisplayStatus&4)}set culled(e){let t=e?0:4;(this.localDisplayStatus&4)!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Ci,this.localDisplayStatus^=4,this._onUpdate())}get renderable(){return!!(this.localDisplayStatus&1)}set renderable(e){let t=e?1:0;(this.localDisplayStatus&1)!==t&&(this._updateFlags|=Ci,this.localDisplayStatus^=1,this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._onUpdate())}get isRenderable(){return this.localDisplayStatus===7&&this.groupAlpha>0}destroy(e=!1){if(this.destroyed)return;this.destroyed=!0;let t;if(this.children.length&&(t=this.removeChildren(0,this.children.length)),this.removeFromParent(),this.parent=null,this._maskEffect=null,this._filterEffect=null,this.effects=null,this._position=null,this._scale=null,this._pivot=null,this._skew=null,this.emit("destroyed",this),this.removeAllListeners(),(typeof e=="boolean"?e:e?.children)&&t)for(let s=0;s<t.length;++s)t[s].destroy(e);this.renderGroup?.destroy(),this.renderGroup=null}};O.mixin(we,mx,vx,Gx,Ix,Dx,bx,Tx,Ux,nx,dx,Ax,gx)});var zr,$c=p(()=>{It();zr=class r{constructor(e){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=r.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new Z,this.page=new Z,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=e}get layerX(){return this.layer.x}get layerY(){return this.layer.y}get pageX(){return this.page.x}get pageY(){return this.page.y}get data(){return this}composedPath(){return this.manager&&(!this.path||this.path[this.path.length-1]!==this.target)&&(this.path=this.target?this.manager.propagationPath(this.target):[]),this.path}initEvent(e,t,i){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(e,t,i,s,n){throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}}});function Pk(r){return function(e){return e.test(r)}}function Hn(r){var e={userAgent:"",platform:"",maxTouchPoints:0};!r&&typeof navigator<"u"?e={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof r=="string"?e.userAgent=r:r&&r.userAgent&&(e={userAgent:r.userAgent,platform:r.platform,maxTouchPoints:r.maxTouchPoints||0});var t=e.userAgent,i=t.split("[FBAN");typeof i[1]<"u"&&(t=i[0]),i=t.split("Twitter"),typeof i[1]<"u"&&(t=i[0]);var s=Pk(t),n={apple:{phone:s(hd)&&!s(br),ipod:s(Zx),tablet:!s(hd)&&(s(Jx)||c0(e))&&!s(br),universal:s(e0),device:(s(hd)||s(Zx)||s(Jx)||s(e0)||c0(e))&&!s(br)},amazon:{phone:s(ds),tablet:!s(ds)&&s(qc),device:s(ds)||s(qc)},android:{phone:!s(br)&&s(ds)||!s(br)&&s(dd),tablet:!s(br)&&!s(ds)&&!s(dd)&&(s(qc)||s(t0)),device:!s(br)&&(s(ds)||s(qc)||s(dd)||s(t0))||s(/\bokhttp\b/i)},windows:{phone:s(br),tablet:s(r0),device:s(br)||s(r0)},other:{blackberry:s(i0),blackberry10:s(s0),opera:s(n0),firefox:s(a0),chrome:s(o0),device:s(i0)||s(s0)||s(n0)||s(a0)||s(o0)},any:!1,phone:!1,tablet:!1};return n.any=n.apple.device||n.android.device||n.windows.device||n.other.device,n.phone=n.apple.phone||n.android.phone||n.windows.phone,n.tablet=n.apple.tablet||n.android.tablet||n.windows.tablet,n}var hd,Zx,Jx,e0,dd,t0,ds,qc,br,r0,i0,s0,n0,o0,a0,c0,fd=p(()=>{hd=/iPhone/i,Zx=/iPod/i,Jx=/iPad/i,e0=/\biOS-universal(?:.+)Mac\b/i,dd=/\bAndroid(?:.+)Mobile\b/i,t0=/Android/i,ds=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,qc=/Silk/i,br=/Windows Phone/i,r0=/\bWindows(?:.+)ARM\b/i,i0=/BlackBerry/i,s0=/BB10/i,n0=/Opera Mini/i,o0=/\b(CriOS|Chrome)(?:.+)Mobile/i,a0=/Mobile(?:.+)Firefox\b/i,c0=function(r){return typeof r<"u"&&r.platform==="MacIntel"&&typeof r.maxTouchPoints=="number"&&r.maxTouchPoints>1&&typeof MSStream>"u"}});var u0=p(()=>{fd();fd()});var Bk,l0,h0=p(()=>{u0();Bk=Hn.default??Hn,l0=Bk(globalThis.navigator)});var Rk,jc,Dk,Mk,d0,f0,Ik,Fk,Uk,md,p0,g0=p(()=>{$c();P();h0();Yh();Rk=9,jc=100,Dk=0,Mk=0,d0=2,f0=1,Ik=-1e3,Fk=-1e3,Uk=2,md=class m0{constructor(e,t=l0){this._mobileInfo=t,this.debug=!1,this._activateOnTab=!0,this._deactivateOnMouseMove=!0,this._isActive=!1,this._isMobileAccessibility=!1,this._div=null,this._pool=[],this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._hookDiv=null,(t.tablet||t.phone)&&this._createTouchHook(),this._renderer=e}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}_createTouchHook(){let e=document.createElement("button");e.style.width=`${f0}px`,e.style.height=`${f0}px`,e.style.position="absolute",e.style.top=`${Ik}px`,e.style.left=`${Fk}px`,e.style.zIndex=Uk.toString(),e.style.backgroundColor="#FF0000",e.title="select to enable accessibility for this content",e.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()}),document.body.appendChild(e),this._hookDiv=e}_destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}_activate(){if(this._isActive)return;this._isActive=!0,this._div||(this._div=document.createElement("div"),this._div.style.width=`${jc}px`,this._div.style.height=`${jc}px`,this._div.style.position="absolute",this._div.style.top=`${Dk}px`,this._div.style.left=`${Mk}px`,this._div.style.zIndex=d0.toString(),this._div.style.pointerEvents="none"),this._activateOnTab&&(this._onKeyDown=this._onKeyDown.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)),this._deactivateOnMouseMove&&(this._onMouseMove=this._onMouseMove.bind(this),globalThis.document.addEventListener("mousemove",this._onMouseMove,!0));let e=this._renderer.view.canvas;if(e.parentNode)e.parentNode.appendChild(this._div),this._initAccessibilitySetup();else{let t=new MutationObserver(()=>{e.parentNode&&(e.parentNode.appendChild(this._div),t.disconnect(),this._initAccessibilitySetup())});t.observe(document.body,{childList:!0,subtree:!0})}}_initAccessibilitySetup(){this._renderer.runners.postrender.add(this),this._renderer.lastObjectRendered&&this._updateAccessibleObjects(this._renderer.lastObjectRendered)}_deactivate(){if(!(!this._isActive||this._isMobileAccessibility)){this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),this._activateOnTab&&globalThis.addEventListener("keydown",this._onKeyDown,!1),this._renderer.runners.postrender.remove(this);for(let e of this._children)e._accessibleDiv&&e._accessibleDiv.parentNode&&(e._accessibleDiv.parentNode.removeChild(e._accessibleDiv),e._accessibleDiv=null),e._accessibleActive=!1;this._pool.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)}),this._div&&this._div.parentNode&&this._div.parentNode.removeChild(this._div),this._pool=[],this._children=[]}}_updateAccessibleObjects(e){if(!e.visible||!e.accessibleChildren)return;e.accessible&&(e._accessibleActive||this._addChild(e),e._renderId=this._renderId);let t=e.children;if(t)for(let i=0;i<t.length;i++)this._updateAccessibleObjects(t[i])}init(e){let i={accessibilityOptions:{...m0.defaultOptions,...e?.accessibilityOptions||{}}};this.debug=i.accessibilityOptions.debug,this._activateOnTab=i.accessibilityOptions.activateOnTab,this._deactivateOnMouseMove=i.accessibilityOptions.deactivateOnMouseMove,i.accessibilityOptions.enabledByDefault?this._activate():this._activateOnTab&&(this._onKeyDown=this._onKeyDown.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)),this._renderer.runners.postrender.remove(this)}postrender(){let e=performance.now();if(this._mobileInfo.android.device&&e<this._androidUpdateCount||(this._androidUpdateCount=e+this._androidUpdateFrequency,!this._renderer.renderingToScreen||!this._renderer.view.canvas))return;let t=new Set;if(this._renderer.lastObjectRendered){this._updateAccessibleObjects(this._renderer.lastObjectRendered);for(let i of this._children)i._renderId===this._renderId&&t.add(this._children.indexOf(i))}for(let i=this._children.length-1;i>=0;i--){let s=this._children[i];t.has(i)||(s._accessibleDiv&&s._accessibleDiv.parentNode&&(s._accessibleDiv.parentNode.removeChild(s._accessibleDiv),this._pool.push(s._accessibleDiv),s._accessibleDiv=null),s._accessibleActive=!1,Fc(this._children,i,1))}if(this._renderer.renderingToScreen){let{x:i,y:s,width:n,height:o}=this._renderer.screen,a=this._div;a.style.left=`${i}px`,a.style.top=`${s}px`,a.style.width=`${n}px`,a.style.height=`${o}px`}for(let i=0;i<this._children.length;i++){let s=this._children[i];if(!s._accessibleActive||!s._accessibleDiv)continue;let n=s._accessibleDiv,o=s.hitArea||s.getBounds().rectangle;if(s.hitArea){let a=s.worldTransform,c=this._renderer.resolution,u=this._renderer.resolution;n.style.left=`${(a.tx+o.x*a.a)*c}px`,n.style.top=`${(a.ty+o.y*a.d)*u}px`,n.style.width=`${o.width*a.a*c}px`,n.style.height=`${o.height*a.d*u}px`}else{this._capHitArea(o);let a=this._renderer.resolution,c=this._renderer.resolution;n.style.left=`${o.x*a}px`,n.style.top=`${o.y*c}px`,n.style.width=`${o.width*a}px`,n.style.height=`${o.height*c}px`}}this._renderId++}_updateDebugHTML(e){e.innerHTML=`type: ${e.type}</br> title : ${e.title}</br> tabIndex: ${e.tabIndex}`}_capHitArea(e){e.x<0&&(e.width+=e.x,e.x=0),e.y<0&&(e.height+=e.y,e.y=0);let{width:t,height:i}=this._renderer;e.x+e.width>t&&(e.width=t-e.x),e.y+e.height>i&&(e.height=i-e.y)}_addChild(e){let t=this._pool.pop();t||(e.accessibleType==="button"?t=document.createElement("button"):(t=document.createElement(e.accessibleType),t.style.cssText=`
|
|
7
7
|
color: transparent;
|
|
8
8
|
pointer-events: none;
|
|
9
9
|
padding: 0;
|
|
@@ -16,9 +16,9 @@ Deprecated since v${r}`),console.warn(i))),F0[e]=!0}var F0,$,U0,ye=p(()=>{"use s
|
|
|
16
16
|
-webkit-user-select: none;
|
|
17
17
|
-moz-user-select: none;
|
|
18
18
|
-ms-user-select: none;
|
|
19
|
-
`,e.accessibleText&&(t.innerText=e.accessibleText)),t.style.width=`${Bu}px`,t.style.height=`${Bu}px`,t.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",t.style.position="absolute",t.style.zIndex=O_.toString(),t.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?t.setAttribute("aria-live","off"):t.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?t.setAttribute("aria-relevant","additions"):t.setAttribute("aria-relevant","text"),t.addEventListener("click",this._onClick.bind(this)),t.addEventListener("focus",this._onFocus.bind(this)),t.addEventListener("focusout",this._onFocusOut.bind(this))),t.style.pointerEvents=e.accessiblePointerEvents,t.type=e.accessibleType,e.accessibleTitle&&e.accessibleTitle!==null?t.title=e.accessibleTitle:(!e.accessibleHint||e.accessibleHint===null)&&(t.title=`container ${e.tabIndex}`),e.accessibleHint&&e.accessibleHint!==null&&t.setAttribute("aria-label",e.accessibleHint),this.debug&&this._updateDebugHTML(t),e._accessibleActive=!0,e._accessibleDiv=t,t.container=e,this._children.push(e),this._div.appendChild(e._accessibleDiv),e.interactive&&(e._accessibleDiv.tabIndex=e.tabIndex)}_dispatchEvent(e,t){let{container:i}=e.target,s=this._renderer.events.rootBoundary,n=Object.assign(new Wr(s),{target:i});s.rootTarget=this._renderer.lastObjectRendered,t.forEach(o=>s.dispatchEvent(n,o))}_onClick(e){this._dispatchEvent(e,["click","pointertap","tap"])}_onFocus(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","assertive"),this._dispatchEvent(e,["mouseover"])}_onFocusOut(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","polite"),this._dispatchEvent(e,["mouseout"])}_onKeyDown(e){e.keyCode!==oP||!this._activateOnTab||this._activate()}_onMouseMove(e){e.movementX===0&&e.movementY===0||this._deactivate()}destroy(){this._deactivate(),this._destroyTouchHook(),this._div=null,this._pool=null,this._children=null,this._renderer=null,this._activateOnTab&&globalThis.removeEventListener("keydown",this._onKeyDown)}setAccessibilityEnabled(e){e?this._activate():this._deactivate()}};Zd.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"accessibility"};Zd.defaultOptions={enabledByDefault:!1,debug:!1,activateOnTab:!0,deactivateOnMouseMove:!0};L_=Zd});var V_,H_=p(()=>{"use strict";V_={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,accessibleType:"button",accessibleText:null,accessiblePointerEvents:"auto",accessibleChildren:!0,_accessibleActive:!1,_accessibleDiv:null,_renderId:-1}});var W_=p(()=>{B();jt();z_();H_();O.add(L_);O.mixin(we,V_)});var po,$_=p(()=>{B();po=class{static init(e){Object.defineProperty(this,"resizeTo",{set(t){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=t,t&&(globalThis.addEventListener("resize",this.queueResize),this.resize())},get(){return this._resizeTo}}),this.queueResize=()=>{this._resizeTo&&(this._cancelResize(),this._resizeId=requestAnimationFrame(()=>this.resize()))},this._cancelResize=()=>{this._resizeId&&(cancelAnimationFrame(this._resizeId),this._resizeId=null)},this.resize=()=>{if(!this._resizeTo)return;this._cancelResize();let t,i;if(this._resizeTo===globalThis.window)t=globalThis.innerWidth,i=globalThis.innerHeight;else{let{clientWidth:s,clientHeight:n}=this._resizeTo;t=s,i=n}this.renderer.resize(t,i),this.render()},this._resizeId=null,this._resizeTo=null,this.resizeTo=e.resizeTo||null}static destroy(){globalThis.removeEventListener("resize",this.queueResize),this._cancelResize(),this._cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null}};po.extension=b.Application});var $r,Ru=p(()=>{"use strict";$r=(r=>(r[r.INTERACTION=50]="INTERACTION",r[r.HIGH=25]="HIGH",r[r.NORMAL=0]="NORMAL",r[r.LOW=-25]="LOW",r[r.UTILITY=-50]="UTILITY",r))($r||{})});var Ms,q_=p(()=>{"use strict";Ms=class{constructor(e,t=null,i=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,this._fn=e,this._context=t,this.priority=i,this._once=s}match(e,t=null){return this._fn===e&&this._context===t}emit(e){this._fn&&(this._context?this._fn.call(this._context,e):this._fn(e));let t=this.next;return this._once&&this.destroy(!0),this._destroyed&&(this.next=null),t}connect(e){this.previous=e,e.next&&(e.next.previous=this),this.next=e.next,e.next=this}destroy(e=!1){this._destroyed=!0,this._fn=null,this._context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);let t=this.next;return this.next=e?null:t,this.previous=null,t}}});var j_,ct,go=p(()=>{Ru();q_();j_=class _t{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new Ms(null,null,1/0),this.deltaMS=1/_t.targetFPMS,this.elapsedMS=1/_t.targetFPMS,this._tick=e=>{this._requestId=null,this.started&&(this.update(e),this.started&&this._requestId===null&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)))}}_requestIfNeeded(){this._requestId===null&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))}_cancelIfNeeded(){this._requestId!==null&&(cancelAnimationFrame(this._requestId),this._requestId=null)}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start()}add(e,t,i=$r.NORMAL){return this._addListener(new Ms(e,t,i))}addOnce(e,t,i=$r.NORMAL){return this._addListener(new Ms(e,t,i,!0))}_addListener(e){let t=this._head.next,i=this._head;if(!t)e.connect(i);else{for(;t;){if(e.priority>t.priority){e.connect(i);break}i=t,t=t.next}e.previous||e.connect(i)}return this._startIfPossible(),this}remove(e,t){let i=this._head.next;for(;i;)i.match(e,t)?i=i.destroy():i=i.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let e=0,t=this._head;for(;t=t.next;)e++;return e}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let e=this._head.next;for(;e;)e=e.destroy(!0);this._head.destroy(),this._head=null}}update(e=performance.now()){let t;if(e>this.lastTime){if(t=this.elapsedMS=e-this.lastTime,t>this._maxElapsedMS&&(t=this._maxElapsedMS),t*=this.speed,this._minElapsedMS){let n=e-this._lastFrame|0;if(n<this._minElapsedMS)return;this._lastFrame=e-n%this._minElapsedMS}this.deltaMS=t,this.deltaTime=this.deltaMS*_t.targetFPMS;let i=this._head,s=i.next;for(;s;)s=s.emit(this);i.next||this._cancelIfNeeded()}else this.deltaTime=this.deltaMS=this.elapsedMS=0;this.lastTime=e}get FPS(){return 1e3/this.elapsedMS}get minFPS(){return 1e3/this._maxElapsedMS}set minFPS(e){let t=Math.min(this.maxFPS,e),i=Math.min(Math.max(0,t)/1e3,_t.targetFPMS);this._maxElapsedMS=1/i}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(e){if(e===0)this._minElapsedMS=0;else{let t=Math.max(this.minFPS,e);this._minElapsedMS=1/(t/1e3)}}static get shared(){if(!_t._shared){let e=_t._shared=new _t;e.autoStart=!0,e._protected=!0}return _t._shared}static get system(){if(!_t._system){let e=_t._system=new _t;e.autoStart=!0,e._protected=!0}return _t._system}};j_.targetFPMS=.06;ct=j_});var xo,X_=p(()=>{B();Ru();go();xo=class{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,"ticker",{set(t){this._ticker&&this._ticker.remove(this.render,this),this._ticker=t,t&&t.add(this.render,this,$r.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?ct.shared:new ct,e.autoStart&&this.start()}static destroy(){if(this._ticker){let e=this._ticker;this.ticker=null,e.destroy()}}};xo.extension=b.Application});var Jd=p(()=>{B();$_();X_();O.add(po);O.add(xo)});function N(...r){ef!==Y_&&(ef++,ef===Y_?console.warn("PixiJS Warning: too many warnings, no more warnings will be reported to the console by PixiJS."):console.warn("PixiJS Warning: ",...r))}var ef,Y_,pe=p(()=>{"use strict";ef=0,Y_=500});var tf,Xt,rf=p(()=>{Ru();go();tf=class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}init(e){this.removeTickerListener(),this.events=e,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(e){this._pauseUpdate=e}addTickerListener(){this._tickerAdded||!this.domElement||(ct.system.add(this._tickerUpdate,this,$r.INTERACTION),this._tickerAdded=!0)}removeTickerListener(){this._tickerAdded&&(ct.system.remove(this._tickerUpdate,this),this._tickerAdded=!1)}pointerMoved(){this._didMove=!0}_update(){if(!this.domElement||this._pauseUpdate)return;if(this._didMove){this._didMove=!1;return}let e=this.events._rootPointerEvent;this.events.supportsTouchEvents&&e.pointerType==="touch"||globalThis.document.dispatchEvent(this.events.supportsPointerEvents?new PointerEvent("pointermove",{clientX:e.clientX,clientY:e.clientY,pointerType:e.pointerType,pointerId:e.pointerId}):new MouseEvent("mousemove",{clientX:e.clientX,clientY:e.clientY}))}_tickerUpdate(e){this._deltaTime+=e.deltaTime,!(this._deltaTime<this.interactionFrequency)&&(this._deltaTime=0,this._update())}},Xt=new tf});var Sr,Du=p(()=>{Ft();Au();Sr=class extends Wr{constructor(){super(...arguments),this.client=new J,this.movement=new J,this.offset=new J,this.global=new J,this.screen=new J}get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}get movementX(){return this.movement.x}get movementY(){return this.movement.y}get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}get globalX(){return this.global.x}get globalY(){return this.global.y}get screenX(){return this.screen.x}get screenY(){return this.screen.y}getLocalPosition(e,t,i){return e.worldTransform.applyInverse(i||this.global,t)}getModifierState(e){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(e)}initMouseEvent(e,t,i,s,n,o,a,c,u,l,h,f,d,m,x){throw new Error("Method not implemented.")}}});var rt,sf=p(()=>{Du();rt=class extends Sr{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1}getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}});var Yt,nf=p(()=>{Du();Yt=class extends Sr{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}};Yt.DOM_DELTA_PIXEL=0;Yt.DOM_DELTA_LINE=1;Yt.DOM_DELTA_PAGE=2});var dP,fP,_o,Mu,K_=p(()=>{Ve();Ft();pe();rf();Du();sf();nf();dP=2048,fP=new J,_o=new J,Mu=class{constructor(e){this.dispatch=new oe,this.moveOnAll=!1,this.enableGlobalMoveEvents=!0,this.mappingState={trackingData:{}},this.eventPool=new Map,this._allInteractiveElements=[],this._hitElements=[],this._isPointerMoveEvent=!1,this.rootTarget=e,this.hitPruneFn=this.hitPruneFn.bind(this),this.hitTestFn=this.hitTestFn.bind(this),this.mapPointerDown=this.mapPointerDown.bind(this),this.mapPointerMove=this.mapPointerMove.bind(this),this.mapPointerOut=this.mapPointerOut.bind(this),this.mapPointerOver=this.mapPointerOver.bind(this),this.mapPointerUp=this.mapPointerUp.bind(this),this.mapPointerUpOutside=this.mapPointerUpOutside.bind(this),this.mapWheel=this.mapWheel.bind(this),this.mappingTable={},this.addEventMapping("pointerdown",this.mapPointerDown),this.addEventMapping("pointermove",this.mapPointerMove),this.addEventMapping("pointerout",this.mapPointerOut),this.addEventMapping("pointerleave",this.mapPointerOut),this.addEventMapping("pointerover",this.mapPointerOver),this.addEventMapping("pointerup",this.mapPointerUp),this.addEventMapping("pointerupoutside",this.mapPointerUpOutside),this.addEventMapping("wheel",this.mapWheel)}addEventMapping(e,t){this.mappingTable[e]||(this.mappingTable[e]=[]),this.mappingTable[e].push({fn:t,priority:0}),this.mappingTable[e].sort((i,s)=>i.priority-s.priority)}dispatchEvent(e,t){e.propagationStopped=!1,e.propagationImmediatelyStopped=!1,this.propagate(e,t),this.dispatch.emit(t||e.type,e)}mapEvent(e){if(!this.rootTarget)return;let t=this.mappingTable[e.type];if(t)for(let i=0,s=t.length;i<s;i++)t[i].fn(e);else N(`[EventBoundary]: Event mapping not defined for ${e.type}`)}hitTest(e,t){Xt.pauseUpdate=!0;let s=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",n=this[s](this.rootTarget,this.rootTarget.eventMode,fP.set(e,t),this.hitTestFn,this.hitPruneFn);return n&&n[0]}propagate(e,t){if(!e.target)return;let i=e.composedPath();e.eventPhase=e.CAPTURING_PHASE;for(let s=0,n=i.length-1;s<n;s++)if(e.currentTarget=i[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return;if(e.eventPhase=e.AT_TARGET,e.currentTarget=e.target,this.notifyTarget(e,t),!(e.propagationStopped||e.propagationImmediatelyStopped)){e.eventPhase=e.BUBBLING_PHASE;for(let s=i.length-2;s>=0;s--)if(e.currentTarget=i[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return}}all(e,t,i=this._allInteractiveElements){if(i.length===0)return;e.eventPhase=e.BUBBLING_PHASE;let s=Array.isArray(t)?t:[t];for(let n=i.length-1;n>=0;n--)s.forEach(o=>{e.currentTarget=i[n],this.notifyTarget(e,o)})}propagationPath(e){let t=[e];for(let i=0;i<dP&&e!==this.rootTarget&&e.parent;i++){if(!e.parent)throw new Error("Cannot find propagation path to disconnected target");t.push(e.parent),e=e.parent}return t.reverse(),t}hitTestMoveRecursive(e,t,i,s,n,o=!1){let a=!1;if(this._interactivePrune(e))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(Xt.pauseUpdate=!1),e.interactiveChildren&&e.children){let l=e.children;for(let h=l.length-1;h>=0;h--){let f=l[h],d=this.hitTestMoveRecursive(f,this._isInteractive(t)?t:f.eventMode,i,s,n,o||n(e,i));if(d){if(d.length>0&&!d[d.length-1].parent)continue;let m=e.isInteractive();(d.length>0||m)&&(m&&this._allInteractiveElements.push(e),d.push(e)),this._hitElements.length===0&&(this._hitElements=d),a=!0}}}let c=this._isInteractive(t),u=e.isInteractive();return u&&u&&this._allInteractiveElements.push(e),o||this._hitElements.length>0?null:a?this._hitElements:c&&!n(e,i)&&s(e,i)?u?[e]:[]:null}hitTestRecursive(e,t,i,s,n){if(this._interactivePrune(e)||n(e,i))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(Xt.pauseUpdate=!1),e.interactiveChildren&&e.children){let c=e.children,u=i;for(let l=c.length-1;l>=0;l--){let h=c[l],f=this.hitTestRecursive(h,this._isInteractive(t)?t:h.eventMode,u,s,n);if(f){if(f.length>0&&!f[f.length-1].parent)continue;let d=e.isInteractive();return(f.length>0||d)&&f.push(e),f}}}let o=this._isInteractive(t),a=e.isInteractive();return o&&s(e,i)?a?[e]:[]:null}_isInteractive(e){return e==="static"||e==="dynamic"}_interactivePrune(e){return!e||!e.visible||!e.renderable||!e.measurable||e.eventMode==="none"||e.eventMode==="passive"&&!e.interactiveChildren}hitPruneFn(e,t){if(e.hitArea&&(e.worldTransform.applyInverse(t,_o),!e.hitArea.contains(_o.x,_o.y)))return!0;if(e.effects&&e.effects.length)for(let i=0;i<e.effects.length;i++){let s=e.effects[i];if(s.containsPoint&&!s.containsPoint(t,this.hitTestFn))return!0}return!1}hitTestFn(e,t){return e.hitArea?!0:e?.containsPoint?(e.worldTransform.applyInverse(t,_o),e.containsPoint(_o)):!1}notifyTarget(e,t){if(!e.currentTarget.isInteractive())return;t??(t=e.type);let i=`on${t}`;e.currentTarget[i]?.(e);let s=e.eventPhase===e.CAPTURING_PHASE||e.eventPhase===e.AT_TARGET?`${t}capture`:t;this._notifyListeners(e,s),e.eventPhase===e.AT_TARGET&&this._notifyListeners(e,t)}mapPointerDown(e){if(!(e instanceof rt)){N("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.createPointerEvent(e);if(this.dispatchEvent(t,"pointerdown"),t.pointerType==="touch")this.dispatchEvent(t,"touchstart");else if(t.pointerType==="mouse"||t.pointerType==="pen"){let s=t.button===2;this.dispatchEvent(t,s?"rightdown":"mousedown")}let i=this.trackingData(e.pointerId);i.pressTargetsByButton[e.button]=t.composedPath(),this.freeEvent(t)}mapPointerMove(e){if(!(e instanceof rt)){N("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;let t=this.createPointerEvent(e);this._isPointerMoveEvent=!1;let i=t.pointerType==="mouse"||t.pointerType==="pen",s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.overTargets);if(s.overTargets?.length>0&&n!==t.target){let c=e.type==="mousemove"?"mouseout":"pointerout",u=this.createPointerEvent(e,c,n);if(this.dispatchEvent(u,"pointerout"),i&&this.dispatchEvent(u,"mouseout"),!t.composedPath().includes(n)){let l=this.createPointerEvent(e,"pointerleave",n);for(l.eventPhase=l.AT_TARGET;l.target&&!t.composedPath().includes(l.target);)l.currentTarget=l.target,this.notifyTarget(l),i&&this.notifyTarget(l,"mouseleave"),l.target=l.target.parent;this.freeEvent(l)}this.freeEvent(u)}if(n!==t.target){let c=e.type==="mousemove"?"mouseover":"pointerover",u=this.clonePointerEvent(t,c);this.dispatchEvent(u,"pointerover"),i&&this.dispatchEvent(u,"mouseover");let l=n?.parent;for(;l&&l!==this.rootTarget.parent&&l!==t.target;)l=l.parent;if(!l||l===this.rootTarget.parent){let f=this.clonePointerEvent(t,"pointerenter");for(f.eventPhase=f.AT_TARGET;f.target&&f.target!==n&&f.target!==this.rootTarget.parent;)f.currentTarget=f.target,this.notifyTarget(f),i&&this.notifyTarget(f,"mouseenter"),f.target=f.target.parent;this.freeEvent(f)}this.freeEvent(u)}let o=[],a=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push("pointermove"):this.dispatchEvent(t,"pointermove"),a&&o.push("globalpointermove"),t.pointerType==="touch"&&(this.moveOnAll?o.splice(1,0,"touchmove"):this.dispatchEvent(t,"touchmove"),a&&o.push("globaltouchmove")),i&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(t,"mousemove"),a&&o.push("globalmousemove"),this.cursor=t.target?.cursor),o.length>0&&this.all(t,o),this._allInteractiveElements.length=0,this._hitElements.length=0,s.overTargets=t.composedPath(),this.freeEvent(t)}mapPointerOver(e){if(!(e instanceof rt)){N("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),i=this.createPointerEvent(e),s=i.pointerType==="mouse"||i.pointerType==="pen";this.dispatchEvent(i,"pointerover"),s&&this.dispatchEvent(i,"mouseover"),i.pointerType==="mouse"&&(this.cursor=i.target?.cursor);let n=this.clonePointerEvent(i,"pointerenter");for(n.eventPhase=n.AT_TARGET;n.target&&n.target!==this.rootTarget.parent;)n.currentTarget=n.target,this.notifyTarget(n),s&&this.notifyTarget(n,"mouseenter"),n.target=n.target.parent;t.overTargets=i.composedPath(),this.freeEvent(i),this.freeEvent(n)}mapPointerOut(e){if(!(e instanceof rt)){N("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId);if(t.overTargets){let i=e.pointerType==="mouse"||e.pointerType==="pen",s=this.findMountedTarget(t.overTargets),n=this.createPointerEvent(e,"pointerout",s);this.dispatchEvent(n),i&&this.dispatchEvent(n,"mouseout");let o=this.createPointerEvent(e,"pointerleave",s);for(o.eventPhase=o.AT_TARGET;o.target&&o.target!==this.rootTarget.parent;)o.currentTarget=o.target,this.notifyTarget(o),i&&this.notifyTarget(o,"mouseleave"),o.target=o.target.parent;t.overTargets=null,this.freeEvent(n),this.freeEvent(o)}this.cursor=null}mapPointerUp(e){if(!(e instanceof rt)){N("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=performance.now(),i=this.createPointerEvent(e);if(this.dispatchEvent(i,"pointerup"),i.pointerType==="touch")this.dispatchEvent(i,"touchend");else if(i.pointerType==="mouse"||i.pointerType==="pen"){let a=i.button===2;this.dispatchEvent(i,a?"rightup":"mouseup")}let s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.pressTargetsByButton[e.button]),o=n;if(n&&!i.composedPath().includes(n)){let a=n;for(;a&&!i.composedPath().includes(a);){if(i.currentTarget=a,this.notifyTarget(i,"pointerupoutside"),i.pointerType==="touch")this.notifyTarget(i,"touchendoutside");else if(i.pointerType==="mouse"||i.pointerType==="pen"){let c=i.button===2;this.notifyTarget(i,c?"rightupoutside":"mouseupoutside")}a=a.parent}delete s.pressTargetsByButton[e.button],o=a}if(o){let a=this.clonePointerEvent(i,"click");a.target=o,a.path=null,s.clicksByButton[e.button]||(s.clicksByButton[e.button]={clickCount:0,target:a.target,timeStamp:t});let c=s.clicksByButton[e.button];if(c.target===a.target&&t-c.timeStamp<200?++c.clickCount:c.clickCount=1,c.target=a.target,c.timeStamp=t,a.detail=c.clickCount,a.pointerType==="mouse"){let u=a.button===2;this.dispatchEvent(a,u?"rightclick":"click")}else a.pointerType==="touch"&&this.dispatchEvent(a,"tap");this.dispatchEvent(a,"pointertap"),this.freeEvent(a)}this.freeEvent(i)}mapPointerUpOutside(e){if(!(e instanceof rt)){N("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),i=this.findMountedTarget(t.pressTargetsByButton[e.button]),s=this.createPointerEvent(e);if(i){let n=i;for(;n;)s.currentTarget=n,this.notifyTarget(s,"pointerupoutside"),s.pointerType==="touch"?this.notifyTarget(s,"touchendoutside"):(s.pointerType==="mouse"||s.pointerType==="pen")&&this.notifyTarget(s,s.button===2?"rightupoutside":"mouseupoutside"),n=n.parent;delete t.pressTargetsByButton[e.button]}this.freeEvent(s)}mapWheel(e){if(!(e instanceof Yt)){N("EventBoundary cannot map a non-wheel event as a wheel event");return}let t=this.createWheelEvent(e);this.dispatchEvent(t),this.freeEvent(t)}findMountedTarget(e){if(!e)return null;let t=e[0];for(let i=1;i<e.length&&e[i].parent===t;i++)t=e[i];return t}createPointerEvent(e,t,i){let s=this.allocateEvent(rt);return this.copyPointerData(e,s),this.copyMouseData(e,s),this.copyData(e,s),s.nativeEvent=e.nativeEvent,s.originalEvent=e,s.target=i??this.hitTest(s.global.x,s.global.y)??this._hitElements[0],typeof t=="string"&&(s.type=t),s}createWheelEvent(e){let t=this.allocateEvent(Yt);return this.copyWheelData(e,t),this.copyMouseData(e,t),this.copyData(e,t),t.nativeEvent=e.nativeEvent,t.originalEvent=e,t.target=this.hitTest(t.global.x,t.global.y),t}clonePointerEvent(e,t){let i=this.allocateEvent(rt);return i.nativeEvent=e.nativeEvent,i.originalEvent=e.originalEvent,this.copyPointerData(e,i),this.copyMouseData(e,i),this.copyData(e,i),i.target=e.target,i.path=e.composedPath().slice(),i.type=t??i.type,i}copyWheelData(e,t){t.deltaMode=e.deltaMode,t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ}copyPointerData(e,t){e instanceof rt&&t instanceof rt&&(t.pointerId=e.pointerId,t.width=e.width,t.height=e.height,t.isPrimary=e.isPrimary,t.pointerType=e.pointerType,t.pressure=e.pressure,t.tangentialPressure=e.tangentialPressure,t.tiltX=e.tiltX,t.tiltY=e.tiltY,t.twist=e.twist)}copyMouseData(e,t){e instanceof Sr&&t instanceof Sr&&(t.altKey=e.altKey,t.button=e.button,t.buttons=e.buttons,t.client.copyFrom(e.client),t.ctrlKey=e.ctrlKey,t.metaKey=e.metaKey,t.movement.copyFrom(e.movement),t.screen.copyFrom(e.screen),t.shiftKey=e.shiftKey,t.global.copyFrom(e.global))}copyData(e,t){t.isTrusted=e.isTrusted,t.srcElement=e.srcElement,t.timeStamp=performance.now(),t.type=e.type,t.detail=e.detail,t.view=e.view,t.which=e.which,t.layer.copyFrom(e.layer),t.page.copyFrom(e.page)}trackingData(e){return this.mappingState.trackingData[e]||(this.mappingState.trackingData[e]={pressTargetsByButton:{},clicksByButton:{},overTarget:null}),this.mappingState.trackingData[e]}allocateEvent(e){this.eventPool.has(e)||this.eventPool.set(e,[]);let t=this.eventPool.get(e).pop()||new e(this);return t.eventPhase=t.NONE,t.currentTarget=null,t.defaultPrevented=!1,t.path=null,t.target=null,t}freeEvent(e){if(e.manager!==this)throw new Error("It is illegal to free an event not managed by this EventBoundary!");let t=e.constructor;this.eventPool.has(t)||this.eventPool.set(t,[]),this.eventPool.get(t).push(e)}_notifyListeners(e,t){let i=e.currentTarget._events[t];if(i)if("fn"in i)i.once&&e.currentTarget.removeListener(t,i.fn,void 0,!0),i.fn.call(i.context,e);else for(let s=0,n=i.length;s<n&&!e.propagationImmediatelyStopped;s++)i[s].once&&e.currentTarget.removeListener(t,i[s].fn,void 0,!0),i[s].fn.call(i[s].context,e)}}});var mP,pP,af,Iu,cf=p(()=>{B();K_();rf();sf();nf();mP=1,pP={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},af=class of{constructor(e){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=e,this.rootBoundary=new Mu(null),Xt.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new rt(null),this._rootWheelEvent=new Yt(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...of.defaultEventFeatures},{set:(t,i,s)=>(i==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=s),t[i]=s,!0)}),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerOverOut=this._onPointerOverOut.bind(this),this.onWheel=this.onWheel.bind(this)}static get defaultEventMode(){return this._defaultEventMode}init(e){let{canvas:t,resolution:i}=this.renderer;this.setTargetElement(t),this.resolution=i,of._defaultEventMode=e.eventMode??"passive",Object.assign(this.features,e.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(e){this.resolution=e}destroy(){this.setTargetElement(null),this.renderer=null,this._currentCursor=null}setCursor(e){e||(e="default");let t=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(t=!1),this._currentCursor===e)return;this._currentCursor=e;let i=this.cursorStyles[e];if(i)switch(typeof i){case"string":t&&(this.domElement.style.cursor=i);break;case"function":i(e);break;case"object":t&&Object.assign(this.domElement.style,i);break}else t&&typeof e=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,e)&&(this.domElement.style.cursor=e)}get pointer(){return this._rootPointerEvent}_onPointerDown(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);this.autoPreventDefault&&t[0].isNormalized&&(e.cancelable||!("cancelable"in e))&&e.preventDefault();for(let i=0,s=t.length;i<s;i++){let n=t[i],o=this._bootstrapEvent(this._rootPointerEvent,n);this.rootBoundary.mapEvent(o)}this.setCursor(this.rootBoundary.cursor)}_onPointerMove(e){if(!this.features.move)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,Xt.pointerMoved();let t=this._normalizeToPointerData(e);for(let i=0,s=t.length;i<s;i++){let n=this._bootstrapEvent(this._rootPointerEvent,t[i]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}_onPointerUp(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=e.target;e.composedPath&&e.composedPath().length>0&&(t=e.composedPath()[0]);let i=t!==this.domElement?"outside":"",s=this._normalizeToPointerData(e);for(let n=0,o=s.length;n<o;n++){let a=this._bootstrapEvent(this._rootPointerEvent,s[n]);a.type+=i,this.rootBoundary.mapEvent(a)}this.setCursor(this.rootBoundary.cursor)}_onPointerOverOut(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);for(let i=0,s=t.length;i<s;i++){let n=this._bootstrapEvent(this._rootPointerEvent,t[i]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}onWheel(e){if(!this.features.wheel)return;let t=this.normalizeWheelEvent(e);this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,this.rootBoundary.mapEvent(t)}setTargetElement(e){this._removeEvents(),this.domElement=e,Xt.domElement=e,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;Xt.addTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="none",e.msTouchAction="none"):this.supportsPointerEvents&&(e.touchAction="none")),this.supportsPointerEvents?(globalThis.document.addEventListener("pointermove",this._onPointerMove,!0),this.domElement.addEventListener("pointerdown",this._onPointerDown,!0),this.domElement.addEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.addEventListener("pointerover",this._onPointerOverOut,!0),globalThis.addEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.addEventListener("mousemove",this._onPointerMove,!0),this.domElement.addEventListener("mousedown",this._onPointerDown,!0),this.domElement.addEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.addEventListener("mouseover",this._onPointerOverOut,!0),globalThis.addEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.addEventListener("touchstart",this._onPointerDown,!0),this.domElement.addEventListener("touchend",this._onPointerUp,!0),this.domElement.addEventListener("touchmove",this._onPointerMove,!0))),this.domElement.addEventListener("wheel",this.onWheel,{passive:!0,capture:!0}),this._eventsAdded=!0}_removeEvents(){if(!this._eventsAdded||!this.domElement)return;Xt.removeTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="",e.msTouchAction=""):this.supportsPointerEvents&&(e.touchAction="")),this.supportsPointerEvents?(globalThis.document.removeEventListener("pointermove",this._onPointerMove,!0),this.domElement.removeEventListener("pointerdown",this._onPointerDown,!0),this.domElement.removeEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.removeEventListener("pointerover",this._onPointerOverOut,!0),globalThis.removeEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.removeEventListener("mousemove",this._onPointerMove,!0),this.domElement.removeEventListener("mousedown",this._onPointerDown,!0),this.domElement.removeEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.removeEventListener("mouseover",this._onPointerOverOut,!0),globalThis.removeEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.removeEventListener("touchstart",this._onPointerDown,!0),this.domElement.removeEventListener("touchend",this._onPointerUp,!0),this.domElement.removeEventListener("touchmove",this._onPointerMove,!0))),this.domElement.removeEventListener("wheel",this.onWheel,!0),this.domElement=null,this._eventsAdded=!1}mapPositionToPoint(e,t,i){let s=this.domElement.isConnected?this.domElement.getBoundingClientRect():{x:0,y:0,width:this.domElement.width,height:this.domElement.height,left:0,top:0},n=1/this.resolution;e.x=(t-s.left)*(this.domElement.width/s.width)*n,e.y=(i-s.top)*(this.domElement.height/s.height)*n}_normalizeToPointerData(e){let t=[];if(this.supportsTouchEvents&&e instanceof TouchEvent)for(let i=0,s=e.changedTouches.length;i<s;i++){let n=e.changedTouches[i];typeof n.button>"u"&&(n.button=0),typeof n.buttons>"u"&&(n.buttons=1),typeof n.isPrimary>"u"&&(n.isPrimary=e.touches.length===1&&e.type==="touchstart"),typeof n.width>"u"&&(n.width=n.radiusX||1),typeof n.height>"u"&&(n.height=n.radiusY||1),typeof n.tiltX>"u"&&(n.tiltX=0),typeof n.tiltY>"u"&&(n.tiltY=0),typeof n.pointerType>"u"&&(n.pointerType="touch"),typeof n.pointerId>"u"&&(n.pointerId=n.identifier||0),typeof n.pressure>"u"&&(n.pressure=n.force||.5),typeof n.twist>"u"&&(n.twist=0),typeof n.tangentialPressure>"u"&&(n.tangentialPressure=0),typeof n.layerX>"u"&&(n.layerX=n.offsetX=n.clientX),typeof n.layerY>"u"&&(n.layerY=n.offsetY=n.clientY),n.isNormalized=!0,n.type=e.type,t.push(n)}else if(!globalThis.MouseEvent||e instanceof MouseEvent&&(!this.supportsPointerEvents||!(e instanceof globalThis.PointerEvent))){let i=e;typeof i.isPrimary>"u"&&(i.isPrimary=!0),typeof i.width>"u"&&(i.width=1),typeof i.height>"u"&&(i.height=1),typeof i.tiltX>"u"&&(i.tiltX=0),typeof i.tiltY>"u"&&(i.tiltY=0),typeof i.pointerType>"u"&&(i.pointerType="mouse"),typeof i.pointerId>"u"&&(i.pointerId=mP),typeof i.pressure>"u"&&(i.pressure=.5),typeof i.twist>"u"&&(i.twist=0),typeof i.tangentialPressure>"u"&&(i.tangentialPressure=0),i.isNormalized=!0,t.push(i)}else t.push(e);return t}normalizeWheelEvent(e){let t=this._rootWheelEvent;return this._transferMouseData(t,e),t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ,t.deltaMode=e.deltaMode,this.mapPositionToPoint(t.screen,e.clientX,e.clientY),t.global.copyFrom(t.screen),t.offset.copyFrom(t.screen),t.nativeEvent=e,t.type=e.type,t}_bootstrapEvent(e,t){return e.originalEvent=null,e.nativeEvent=t,e.pointerId=t.pointerId,e.width=t.width,e.height=t.height,e.isPrimary=t.isPrimary,e.pointerType=t.pointerType,e.pressure=t.pressure,e.tangentialPressure=t.tangentialPressure,e.tiltX=t.tiltX,e.tiltY=t.tiltY,e.twist=t.twist,this._transferMouseData(e,t),this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.copyFrom(e.screen),e.offset.copyFrom(e.screen),e.isTrusted=t.isTrusted,e.type==="pointerleave"&&(e.type="pointerout"),e.type.startsWith("mouse")&&(e.type=e.type.replace("mouse","pointer")),e.type.startsWith("touch")&&(e.type=pP[e.type]||e.type),e}_transferMouseData(e,t){e.isTrusted=t.isTrusted,e.srcElement=t.srcElement,e.timeStamp=performance.now(),e.type=t.type,e.altKey=t.altKey,e.button=t.button,e.buttons=t.buttons,e.client.x=t.clientX,e.client.y=t.clientY,e.ctrlKey=t.ctrlKey,e.metaKey=t.metaKey,e.movement.x=t.movementX,e.movement.y=t.movementY,e.page.x=t.pageX,e.page.y=t.pageY,e.relatedTarget=null,e.shiftKey=t.shiftKey}};af.extension={name:"events",type:[b.WebGLSystem,b.CanvasSystem,b.WebGPUSystem],priority:-1};af.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};Iu=af});var Q_,Z_=p(()=>{cf();Au();Q_={onclick:null,onmousedown:null,onmouseenter:null,onmouseleave:null,onmousemove:null,onglobalmousemove:null,onmouseout:null,onmouseover:null,onmouseup:null,onmouseupoutside:null,onpointercancel:null,onpointerdown:null,onpointerenter:null,onpointerleave:null,onpointermove:null,onglobalpointermove:null,onpointerout:null,onpointerover:null,onpointertap:null,onpointerup:null,onpointerupoutside:null,onrightclick:null,onrightdown:null,onrightup:null,onrightupoutside:null,ontap:null,ontouchcancel:null,ontouchend:null,ontouchendoutside:null,ontouchmove:null,onglobaltouchmove:null,ontouchstart:null,onwheel:null,get interactive(){return this.eventMode==="dynamic"||this.eventMode==="static"},set interactive(r){this.eventMode=r?"static":"passive"},_internalEventMode:void 0,get eventMode(){return this._internalEventMode??Iu.defaultEventMode},set eventMode(r){this._internalEventMode=r},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:!0,hitArea:null,addEventListener(r,e,t){let i=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof t=="object"?t.signal:void 0,n=typeof t=="object"?t.once===!0:!1,o=typeof e=="function"?void 0:e;r=i?`${r}capture`:r;let a=typeof e=="function"?e:e.handleEvent,c=this;s&&s.addEventListener("abort",()=>{c.off(r,a,o)}),n?c.once(r,a,o):c.on(r,a,o)},removeEventListener(r,e,t){let i=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof e=="function"?void 0:e;r=i?`${r}capture`:r,e=typeof e=="function"?e:e.handleEvent,this.off(r,e,s)},dispatchEvent(r){if(!(r instanceof Wr))throw new Error("Container cannot propagate events outside of the Federated Events API");return r.defaultPrevented=!1,r.path=null,r.target=this,r.manager.dispatchEvent(r),!r.defaultPrevented}}});var J_=p(()=>{B();jt();cf();Z_();O.add(Iu);O.mixin(we,Q_)});var bo,eb=p(()=>{B();bo=class{constructor(e){this._attachedDomElements=[],this._renderer=e,this._renderer.runners.postrender.add(this),this._domElement=document.createElement("div"),this._domElement.style.position="absolute",this._domElement.style.top="0",this._domElement.style.left="0",this._domElement.style.pointerEvents="none",this._domElement.style.zIndex="1000"}addRenderable(e,t){this._attachedDomElements.includes(e)||this._attachedDomElements.push(e)}updateRenderable(e){}validateRenderable(e){return!0}postrender(){let e=this._attachedDomElements;if(e.length===0){this._domElement.remove();return}let t=this._renderer.view.canvas;this._domElement.parentNode!==t.parentNode&&t.parentNode?.appendChild(this._domElement);let i=parseFloat(t.style.width)/t.width*this._renderer.resolution,s=parseFloat(t.style.height)/t.height*this._renderer.resolution;this._domElement.style.transform=`translate(${t.offsetLeft}px, ${t.offsetTop}px) scale(${i}, ${s})`;for(let n=0;n<e.length;n++){let o=e[n],a=o.element;if(!o.parent||o.globalDisplayStatus<7)a?.remove(),e.splice(n,1),n--;else{this._domElement.contains(a)||(a.style.position="absolute",a.style.pointerEvents="auto",this._domElement.appendChild(a));let c=o.worldTransform,u=o._anchor,l=o.width*u.x,h=o.height*u.y;a.style.transformOrigin=`${l}px ${h}px`,a.style.transform=`matrix(${c.a}, ${c.b}, ${c.c}, ${c.d}, ${c.tx-l}, ${c.ty-h})`,a.style.opacity=o.groupAlpha.toString()}}}destroy(){this._renderer.runners.postrender.remove(this);for(let e=0;e<this._attachedDomElements.length;e++)this._attachedDomElements[e].element?.remove();this._attachedDomElements.length=0,this._domElement.remove(),this._renderer=null}};bo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"dom"}});var qr,Fu=p(()=>{at();jt();qr=class extends we{constructor(e){super(e),this.canBundle=!0,this.allowChildren=!1,this._roundPixels=0,this._lastUsed=-1,this._gpuData=Object.create(null),this._bounds=new ae(0,1,0,0),this._boundsDirty=!0}get bounds(){return this._boundsDirty?(this.updateBounds(),this._boundsDirty=!1,this._bounds):this._bounds}get roundPixels(){return!!this._roundPixels}set roundPixels(e){this._roundPixels=e?1:0}containsPoint(e){let t=this.bounds,{x:i,y:s}=e;return i>=t.minX&&i<=t.maxX&&s>=t.minY&&s<=t.maxY}onViewUpdate(){if(this._didViewChangeTick++,this._boundsDirty=!0,this.didViewUpdate)return;this.didViewUpdate=!0;let e=this.renderGroup||this.parentRenderGroup;e&&e.onChildViewUpdate(this)}destroy(e){super.destroy(e),this._bounds=null;for(let t in this._gpuData)this._gpuData[t].destroy?.();this._gpuData=null}collectRenderablesSimple(e,t,i){let{renderPipes:s}=t;s.blendMode.setBlendMode(this,this.groupBlendMode,e),s[this.renderPipeId].addRenderable(this,e),this.didViewUpdate=!1;let o=this.children,a=o.length;for(let c=0;c<a;c++)o[c].collectRenderables(e,t,i)}}});var tb=p(()=>{B();eb();O.add(bo)});var uf,rb=p(()=>{"use strict";uf=(r=>(r[r.Low=0]="Low",r[r.Normal=1]="Normal",r[r.High=2]="High",r))(uf||{})});var ib,sb=p(()=>{"use strict";ib={createCanvas:(r,e)=>{let t=document.createElement("canvas");return t.width=r,t.height=e,t},getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(r,e)=>fetch(r,e),parseXML:r=>new DOMParser().parseFromString(r,"text/xml")}});var nb,W,Ce=p(()=>{sb();nb=ib,W={get(){return nb},set(r){nb=r}}});function Ut(r){if(typeof r!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(r)}`)}function yo(r){return r.split("?")[0].split("#")[0]}function gP(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function xP(r,e,t){return r.replace(new RegExp(gP(e),"g"),t)}function _P(r,e){let t="",i=0,s=-1,n=0,o=-1;for(let a=0;a<=r.length;++a){if(a<r.length)o=r.charCodeAt(a);else{if(o===47)break;o=47}if(o===47){if(!(s===a-1||n===1))if(s!==a-1&&n===2){if(t.length<2||i!==2||t.charCodeAt(t.length-1)!==46||t.charCodeAt(t.length-2)!==46){if(t.length>2){let c=t.lastIndexOf("/");if(c!==t.length-1){c===-1?(t="",i=0):(t=t.slice(0,c),i=t.length-1-t.lastIndexOf("/")),s=a,n=0;continue}}else if(t.length===2||t.length===1){t="",i=0,s=a,n=0;continue}}e&&(t.length>0?t+="/..":t="..",i=2)}else t.length>0?t+=`/${r.slice(s+1,a)}`:t=r.slice(s+1,a),i=a-s-1;s=a,n=0}else o===46&&n!==-1?++n:n=-1}return t}var Hi,lf=p(()=>{Ce();Hi={toPosix(r){return xP(r,"\\","/")},isUrl(r){return/^https?:/.test(this.toPosix(r))},isDataUrl(r){return/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(r)},isBlobUrl(r){return r.startsWith("blob:")},hasProtocol(r){return/^[^/:]+:/.test(this.toPosix(r))},getProtocol(r){Ut(r),r=this.toPosix(r);let e=/^file:\/\/\//.exec(r);if(e)return e[0];let t=/^[^/:]+:\/{0,2}/.exec(r);return t?t[0]:""},toAbsolute(r,e,t){if(Ut(r),this.isDataUrl(r)||this.isBlobUrl(r))return r;let i=yo(this.toPosix(e??W.get().getBaseUrl())),s=yo(this.toPosix(t??this.rootname(i)));return r=this.toPosix(r),r.startsWith("/")?Hi.join(s,r.slice(1)):this.isAbsolute(r)?r:this.join(i,r)},normalize(r){if(Ut(r),r.length===0)return".";if(this.isDataUrl(r)||this.isBlobUrl(r))return r;r=this.toPosix(r);let e="",t=r.startsWith("/");this.hasProtocol(r)&&(e=this.rootname(r),r=r.slice(e.length));let i=r.endsWith("/");return r=_P(r,!1),r.length>0&&i&&(r+="/"),t?`/${r}`:e+r},isAbsolute(r){return Ut(r),r=this.toPosix(r),this.hasProtocol(r)?!0:r.startsWith("/")},join(...r){if(r.length===0)return".";let e;for(let t=0;t<r.length;++t){let i=r[t];if(Ut(i),i.length>0)if(e===void 0)e=i;else{let s=r[t-1]??"";this.joinExtensions.includes(this.extname(s).toLowerCase())?e+=`/../${i}`:e+=`/${i}`}}return e===void 0?".":this.normalize(e)},dirname(r){if(Ut(r),r.length===0)return".";r=this.toPosix(r);let e=r.charCodeAt(0),t=e===47,i=-1,s=!0,n=this.getProtocol(r),o=r;r=r.slice(n.length);for(let a=r.length-1;a>=1;--a)if(e=r.charCodeAt(a),e===47){if(!s){i=a;break}}else s=!1;return i===-1?t?"/":this.isUrl(o)?n+r:n:t&&i===1?"//":n+r.slice(0,i)},rootname(r){Ut(r),r=this.toPosix(r);let e="";if(r.startsWith("/")?e="/":e=this.getProtocol(r),this.isUrl(r)){let t=r.indexOf("/",e.length);t!==-1?e=r.slice(0,t):e=r,e.endsWith("/")||(e+="/")}return e},basename(r,e){Ut(r),e&&Ut(e),r=yo(this.toPosix(r));let t=0,i=-1,s=!0,n;if(e!==void 0&&e.length>0&&e.length<=r.length){if(e.length===r.length&&e===r)return"";let o=e.length-1,a=-1;for(n=r.length-1;n>=0;--n){let c=r.charCodeAt(n);if(c===47){if(!s){t=n+1;break}}else a===-1&&(s=!1,a=n+1),o>=0&&(c===e.charCodeAt(o)?--o===-1&&(i=n):(o=-1,i=a))}return t===i?i=a:i===-1&&(i=r.length),r.slice(t,i)}for(n=r.length-1;n>=0;--n)if(r.charCodeAt(n)===47){if(!s){t=n+1;break}}else i===-1&&(s=!1,i=n+1);return i===-1?"":r.slice(t,i)},extname(r){Ut(r),r=yo(this.toPosix(r));let e=-1,t=0,i=-1,s=!0,n=0;for(let o=r.length-1;o>=0;--o){let a=r.charCodeAt(o);if(a===47){if(!s){t=o+1;break}continue}i===-1&&(s=!1,i=o+1),a===46?e===-1?e=o:n!==1&&(n=1):e!==-1&&(n=-1)}return e===-1||i===-1||n===0||n===1&&e===i-1&&e===t+1?"":r.slice(e,i)},parse(r){Ut(r);let e={root:"",dir:"",base:"",ext:"",name:""};if(r.length===0)return e;r=yo(this.toPosix(r));let t=r.charCodeAt(0),i=this.isAbsolute(r),s,n="";e.root=this.rootname(r),i||this.hasProtocol(r)?s=1:s=0;let o=-1,a=0,c=-1,u=!0,l=r.length-1,h=0;for(;l>=s;--l){if(t=r.charCodeAt(l),t===47){if(!u){a=l+1;break}continue}c===-1&&(u=!1,c=l+1),t===46?o===-1?o=l:h!==1&&(h=1):o!==-1&&(h=-1)}return o===-1||c===-1||h===0||h===1&&o===c-1&&o===a+1?c!==-1&&(a===0&&i?e.base=e.name=r.slice(1,c):e.base=e.name=r.slice(a,c)):(a===0&&i?(e.name=r.slice(1,o),e.base=r.slice(1,c)):(e.name=r.slice(a,o),e.base=r.slice(a,c)),e.ext=r.slice(o,c)),e.dir=this.dirname(r),n&&(e.dir=n+e.dir),e},sep:"/",delimiter:":",joinExtensions:[".html"]}});var jr,hf=p(()=>{"use strict";jr=(r,e,t=!1)=>(Array.isArray(r)||(r=[r]),e?r.map(i=>typeof i=="string"||t?e(i):i):r)});function ob(r,e,t,i,s){let n=e[t];for(let o=0;o<n.length;o++){let a=n[o];t<e.length-1?ob(r.replace(i[t],a),e,t+1,i,s):s.push(r.replace(i[t],a))}}function ab(r){let e=/\{(.*?)\}/g,t=r.match(e),i=[];if(t){let s=[];t.forEach(n=>{let o=n.substring(1,n.length-1).split(",");s.push(o)}),ob(r,s,0,t,i)}else i.push(r);return i}var cb=p(()=>{"use strict"});var df,ub=p(()=>{"use strict";df=r=>!Array.isArray(r)});function bP(r){return r.split(".").pop().split("?").shift().split("#").shift()}var To,lb=p(()=>{pe();lf();hf();cb();ub();To=class{constructor(){this._defaultBundleIdentifierOptions={connector:"-",createBundleAssetId:(e,t)=>`${e}${this._bundleIdConnector}${t}`,extractAssetIdFromBundle:(e,t)=>t.replace(`${e}${this._bundleIdConnector}`,"")},this._bundleIdConnector=this._defaultBundleIdentifierOptions.connector,this._createBundleAssetId=this._defaultBundleIdentifierOptions.createBundleAssetId,this._extractAssetIdFromBundle=this._defaultBundleIdentifierOptions.extractAssetIdFromBundle,this._assetMap={},this._preferredOrder=[],this._parsers=[],this._resolverHash={},this._bundles={}}setBundleIdentifier(e){if(this._bundleIdConnector=e.connector??this._bundleIdConnector,this._createBundleAssetId=e.createBundleAssetId??this._createBundleAssetId,this._extractAssetIdFromBundle=e.extractAssetIdFromBundle??this._extractAssetIdFromBundle,this._extractAssetIdFromBundle("foo",this._createBundleAssetId("foo","bar"))!=="bar")throw new Error("[Resolver] GenerateBundleAssetId are not working correctly")}prefer(...e){e.forEach(t=>{this._preferredOrder.push(t),t.priority||(t.priority=Object.keys(t.params))}),this._resolverHash={}}set basePath(e){this._basePath=e}get basePath(){return this._basePath}set rootPath(e){this._rootPath=e}get rootPath(){return this._rootPath}get parsers(){return this._parsers}reset(){this.setBundleIdentifier(this._defaultBundleIdentifierOptions),this._assetMap={},this._preferredOrder=[],this._resolverHash={},this._rootPath=null,this._basePath=null,this._manifest=null,this._bundles={},this._defaultSearchParams=null}setDefaultSearchParams(e){if(typeof e=="string")this._defaultSearchParams=e;else{let t=e;this._defaultSearchParams=Object.keys(t).map(i=>`${encodeURIComponent(i)}=${encodeURIComponent(t[i])}`).join("&")}}getAlias(e){let{alias:t,src:i}=e;return jr(t||i,n=>typeof n=="string"?n:Array.isArray(n)?n.map(o=>o?.src??o):n?.src?n.src:n,!0)}addManifest(e){this._manifest&&N("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=e,e.bundles.forEach(t=>{this.addBundle(t.name,t.assets)})}addBundle(e,t){let i=[],s=t;Array.isArray(t)||(s=Object.entries(t).map(([n,o])=>typeof o=="string"||Array.isArray(o)?{alias:n,src:o}:{alias:n,...o})),s.forEach(n=>{let o=n.src,a=n.alias,c;if(typeof a=="string"){let u=this._createBundleAssetId(e,a);i.push(u),c=[a,u]}else{let u=a.map(l=>this._createBundleAssetId(e,l));i.push(...u),c=[...a,...u]}this.add({...n,alias:c,src:o})}),this._bundles[e]=i}add(e){let t=[];Array.isArray(e)?t.push(...e):t.push(e);let i;i=n=>{this.hasKey(n)&&N(`[Resolver] already has key: ${n} overwriting`)},jr(t).forEach(n=>{let{src:o}=n,{data:a,format:c,loadParser:u}=n,l=jr(o).map(d=>typeof d=="string"?ab(d):Array.isArray(d)?d:[d]),h=this.getAlias(n);Array.isArray(h)?h.forEach(i):i(h);let f=[];l.forEach(d=>{d.forEach(m=>{let x={};if(typeof m!="object"){x.src=m;for(let g=0;g<this._parsers.length;g++){let _=this._parsers[g];if(_.test(m)){x=_.parse(m);break}}}else a=m.data??a,c=m.format??c,u=m.loadParser??u,x={...x,...m};if(!h)throw new Error(`[Resolver] alias is undefined for this asset: ${x.src}`);x=this._buildResolvedAsset(x,{aliases:h,data:a,format:c,loadParser:u}),f.push(x)})}),h.forEach(d=>{this._assetMap[d]=f})})}resolveBundle(e){let t=df(e);e=jr(e);let i={};return e.forEach(s=>{let n=this._bundles[s];if(n){let o=this.resolve(n),a={};for(let c in o){let u=o[c];a[this._extractAssetIdFromBundle(s,c)]=u}i[s]=a}}),t?i[e[0]]:i}resolveUrl(e){let t=this.resolve(e);if(typeof e!="string"){let i={};for(let s in t)i[s]=t[s].src;return i}return t.src}resolve(e){let t=df(e);e=jr(e);let i={};return e.forEach(s=>{if(!this._resolverHash[s])if(this._assetMap[s]){let n=this._assetMap[s],o=this._getPreferredOrder(n);o?.priority.forEach(a=>{o.params[a].forEach(c=>{let u=n.filter(l=>l[a]?l[a]===c:!1);u.length&&(n=u)})}),this._resolverHash[s]=n[0]}else this._resolverHash[s]=this._buildResolvedAsset({alias:[s],src:s},{});i[s]=this._resolverHash[s]}),t?i[e[0]]:i}hasKey(e){return!!this._assetMap[e]}hasBundle(e){return!!this._bundles[e]}_getPreferredOrder(e){for(let t=0;t<e.length;t++){let i=e[t],s=this._preferredOrder.find(n=>n.params.format.includes(i.format));if(s)return s}return this._preferredOrder[0]}_appendDefaultSearchParams(e){if(!this._defaultSearchParams)return e;let t=/\?/.test(e)?"&":"?";return`${e}${t}${this._defaultSearchParams}`}_buildResolvedAsset(e,t){let{aliases:i,data:s,loadParser:n,format:o}=t;return(this._basePath||this._rootPath)&&(e.src=Hi.toAbsolute(e.src,this._basePath,this._rootPath)),e.alias=i??e.alias??[e.src],e.src=this._appendDefaultSearchParams(e.src),e.data={...s||{},...e.data},e.loadParser=n??e.loadParser,e.format=o??e.format??bP(e.src),e}};To.RETINA_PREFIX=/@([0-9\.]+)x/});var ff,hb=p(()=>{"use strict";ff=(r,e)=>{let t=e.split("?")[1];return t&&(r+=`?${t}`),r}});var db,mf,fb=p(()=>{Ge();tt();le();db=class wo{constructor(e,t){this.linkedSheets=[];let i=e;e?.source instanceof se&&(i={texture:e,data:t});let{texture:s,data:n,cachePrefix:o=""}=i;this.cachePrefix=o,this._texture=s instanceof M?s:null,this.textureSource=s.source,this.textures={},this.animations={},this.data=n;let a=parseFloat(n.meta.scale);a?(this.resolution=a,s.source.resolution=this.resolution):this.resolution=s.source._resolution,this._frames=this.data.frames,this._frameKeys=Object.keys(this._frames),this._batchIndex=0,this._callback=null}parse(){return new Promise(e=>{this._callback=e,this._batchIndex=0,this._frameKeys.length<=wo.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}_processFrames(e){let t=e,i=wo.BATCH_SIZE;for(;t-e<i&&t<this._frameKeys.length;){let s=this._frameKeys[t],n=this._frames[s],o=n.frame;if(o){let a=null,c=null,u=n.trimmed!==!1&&n.sourceSize?n.sourceSize:n.frame,l=new Y(0,0,Math.floor(u.w)/this.resolution,Math.floor(u.h)/this.resolution);n.rotated?a=new Y(Math.floor(o.x)/this.resolution,Math.floor(o.y)/this.resolution,Math.floor(o.h)/this.resolution,Math.floor(o.w)/this.resolution):a=new Y(Math.floor(o.x)/this.resolution,Math.floor(o.y)/this.resolution,Math.floor(o.w)/this.resolution,Math.floor(o.h)/this.resolution),n.trimmed!==!1&&n.spriteSourceSize&&(c=new Y(Math.floor(n.spriteSourceSize.x)/this.resolution,Math.floor(n.spriteSourceSize.y)/this.resolution,Math.floor(o.w)/this.resolution,Math.floor(o.h)/this.resolution)),this.textures[s]=new M({source:this.textureSource,frame:a,orig:l,trim:c,rotate:n.rotated?2:0,defaultAnchor:n.anchor,defaultBorders:n.borders,label:s.toString()})}t++}}_processAnimations(){let e=this.data.animations||{};for(let t in e){this.animations[t]=[];for(let i=0;i<e[t].length;i++){let s=e[t][i];this.animations[t].push(this.textures[s])}}}_parseComplete(){let e=this._callback;this._callback=null,this._batchIndex=0,e.call(this,this.textures)}_nextBatch(){this._processFrames(this._batchIndex*wo.BATCH_SIZE),this._batchIndex++,setTimeout(()=>{this._batchIndex*wo.BATCH_SIZE<this._frameKeys.length?this._nextBatch():(this._processAnimations(),this._parseComplete())},0)}destroy(e=!1){for(let t in this.textures)this.textures[t].destroy();this._frames=null,this._frameKeys=null,this.data=null,this.textures=null,e&&(this._texture?.destroy(),this.textureSource.destroy()),this._texture=null,this.textureSource=null,this.linkedSheets=[]}};db.BATCH_SIZE=1e3;mf=db});function mb(r,e,t){let i={};if(r.forEach(s=>{i[s]=e}),Object.keys(e.textures).forEach(s=>{i[`${e.cachePrefix}${s}`]=e.textures[s]}),!t){let s=Hi.dirname(r[0]);e.linkedSheets.forEach((n,o)=>{let a=mb([`${s}/${e.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(i,a)})}return i}var yP,pb,gb=p(()=>{rb();lb();hb();B();le();lf();fb();yP=["jpg","png","jpeg","avif","webp","basis","etc2","bc7","bc6h","bc5","bc4","bc3","bc2","bc1","eac","astc"];pb={extension:b.Asset,cache:{test:r=>r instanceof mf,getCacheableAssets:(r,e)=>mb(r,e,!1)},resolver:{extension:{type:b.ResolveParser,name:"resolveSpritesheet"},test:r=>{let t=r.split("?")[0].split("."),i=t.pop(),s=t.pop();return i==="json"&&yP.includes(s)},parse:r=>{let e=r.split(".");return{resolution:parseFloat(To.RETINA_PREFIX.exec(r)?.[1]??"1"),format:e[e.length-2],src:r}}},loader:{name:"spritesheetLoader",extension:{type:b.LoadParser,priority:uf.Normal,name:"spritesheetLoader"},async testParse(r,e){return Hi.extname(e.src).toLowerCase()===".json"&&!!r.frames},async parse(r,e,t){let{texture:i,imageFilename:s,textureOptions:n,cachePrefix:o}=e?.data??{},a=Hi.dirname(e.src);a&&a.lastIndexOf("/")!==a.length-1&&(a+="/");let c;if(i instanceof M)c=i;else{let h=ff(a+(s??r.meta.image),e.src);c=(await t.load([{src:h,data:n}]))[h]}let u=new mf({texture:c.source,data:r,cachePrefix:o});await u.parse();let l=r?.meta?.related_multi_packs;if(Array.isArray(l)){let h=[];for(let d of l){if(typeof d!="string")continue;let m=a+d;e.data?.ignoreMultiPack||(m=ff(m,e.src),h.push(t.load({src:m,data:{textureOptions:n,ignoreMultiPack:!0}})))}let f=await Promise.all(h);u.linkedSheets=f,f.forEach(d=>{d.linkedSheets=[u].concat(u.linkedSheets.filter(m=>m!==d))})}return u},async unload(r,e,t){await t.unload(r.textureSource._sourceOrigin),r.destroy(!1)}}}});var Uu=p(()=>{B();gb();O.add(pb)});function Ou(r,e,t){let{width:i,height:s}=t.orig,n=t.trim;if(n){let o=n.width,a=n.height;r.minX=n.x-e._x*i,r.maxX=r.minX+o,r.minY=n.y-e._y*s,r.maxY=r.minY+a}else r.minX=-e._x*i,r.maxX=r.minX+i,r.minY=-e._y*s,r.maxY=r.minY+s}var pf=p(()=>{"use strict"});var Kt,Gu=p(()=>{xu();le();pf();ye();Fu();Kt=class r extends qr{constructor(e=M.EMPTY){e instanceof M&&(e={texture:e});let{texture:t=M.EMPTY,anchor:i,roundPixels:s,width:n,height:o,...a}=e;super({label:"Sprite",...a}),this.renderPipeId="sprite",this.batched=!0,this._visualBounds={minX:0,maxX:1,minY:0,maxY:0},this._anchor=new We({_onUpdate:()=>{this.onViewUpdate()}}),i?this.anchor=i:t.defaultAnchor&&(this.anchor=t.defaultAnchor),this.texture=t,this.allowChildren=!1,this.roundPixels=s??!1,n!==void 0&&(this.width=n),o!==void 0&&(this.height=o)}static from(e,t=!1){return e instanceof M?new r(e):new r(M.from(e,t))}set texture(e){e||(e=M.EMPTY);let t=this._texture;t!==e&&(t&&t.dynamic&&t.off("update",this.onViewUpdate,this),e.dynamic&&e.on("update",this.onViewUpdate,this),this._texture=e,this._width&&this._setWidth(this._width,this._texture.orig.width),this._height&&this._setHeight(this._height,this._texture.orig.height),this.onViewUpdate())}get texture(){return this._texture}get visualBounds(){return Ou(this._visualBounds,this._anchor,this._texture),this._visualBounds}get sourceBounds(){return z("8.6.1","Sprite.sourceBounds is deprecated, use visualBounds instead."),this.visualBounds}updateBounds(){let e=this._anchor,t=this._texture,i=this._bounds,{width:s,height:n}=t.orig;i.minX=-e._x*s,i.maxX=i.minX+s,i.minY=-e._y*n,i.maxY=i.minY+n}destroy(e=!1){if(super.destroy(e),typeof e=="boolean"?e:e?.texture){let i=typeof e=="boolean"?e:e?.textureSource;this._texture.destroy(i)}this._texture=null,this._visualBounds=null,this._bounds=null,this._anchor=null,this._gpuData=null}get anchor(){return this._anchor}set anchor(e){typeof e=="number"?this._anchor.set(e):this._anchor.copyFrom(e)}get width(){return Math.abs(this.scale.x)*this._texture.orig.width}set width(e){this._setWidth(e,this._texture.orig.width),this._width=e}get height(){return Math.abs(this.scale.y)*this._texture.orig.height}set height(e){this._setHeight(e,this._texture.orig.height),this._height=e}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this._texture.orig.width,e.height=Math.abs(this.scale.y)*this._texture.orig.height,e}setSize(e,t){typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,this._texture.orig.width),t!==void 0&&this._setHeight(t,this._texture.orig.height)}}});function Nu(r,e,t){let i=TP;r.measurable=!0,Es(r,t,i),e.addBoundsMask(i),r.measurable=!1}var TP,gf=p(()=>{at();uo();TP=new ae});function Lu(r,e,t){let i=xt.get();r.measurable=!0;let s=De.get().identity(),n=xb(r,t,s);As(r,i,n),r.measurable=!1,e.addBoundsMask(i),De.return(s),xt.return(i)}function xb(r,e,t){return r?(r!==e&&(xb(r.parent,e,t),r.updateLocalTransform(),t.append(r.localTransform)),t):(N("Mask bounds, renderable is not inside the root container"),t)}var xf=p(()=>{vu();Fi();pe()});var So,_b=p(()=>{B();Gu();gf();xf();So=class{constructor(e){this.priority=0,this.inverse=!1,this.pipe="alphaMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e,this.renderMaskToTexture=!(e instanceof Kt),this.mask.renderable=this.renderMaskToTexture,this.mask.includeInBuild=!this.renderMaskToTexture,this.mask.measurable=!1}reset(){this.mask.measurable=!0,this.mask=null}addBounds(e,t){this.inverse||Nu(this.mask,e,t)}addLocalBounds(e,t){Lu(this.mask,e,t)}containsPoint(e,t){let i=this.mask;return t(i,e)}destroy(){this.reset()}static test(e){return e instanceof Kt}};So.extension=b.MaskEffect});var vo,bb=p(()=>{B();vo=class{constructor(e){this.priority=0,this.pipe="colorMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e}destroy(){}static test(e){return typeof e=="number"}};vo.extension=b.MaskEffect});var Co,yb=p(()=>{B();jt();gf();xf();Co=class{constructor(e){this.priority=0,this.pipe="stencilMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e,this.mask.includeInBuild=!1,this.mask.measurable=!1}reset(){this.mask.measurable=!0,this.mask.includeInBuild=!0,this.mask=null}addBounds(e,t){Nu(this.mask,e,t)}addLocalBounds(e,t){Lu(this.mask,e,t)}containsPoint(e,t){let i=this.mask;return t(i,e)}destroy(){this.reset()}static test(e){return e instanceof we}};Co.extension=b.MaskEffect});var je,Is=p(()=>{Ce();B();tt();je=class extends se{constructor(e){e.resource||(e.resource=W.get().createCanvas()),e.width||(e.width=e.resource.width,e.autoDensity||(e.width/=e.resolution)),e.height||(e.height=e.resource.height,e.autoDensity||(e.height/=e.resolution)),super(e),this.uploadMethodId="image",this.autoDensity=e.autoDensity,this.resizeCanvas(),this.transparent=!!e.transparent}resizeCanvas(){this.autoDensity&&"style"in this.resource&&(this.resource.style.width=`${this.width}px`,this.resource.style.height=`${this.height}px`),(this.resource.width!==this.pixelWidth||this.resource.height!==this.pixelHeight)&&(this.resource.width=this.pixelWidth,this.resource.height=this.pixelHeight)}resize(e=this.width,t=this.height,i=this._resolution){let s=super.resize(e,t,i);return s&&this.resizeCanvas(),s}static test(e){return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement||globalThis.OffscreenCanvas&&e instanceof OffscreenCanvas}get context2D(){return this._context2D||(this._context2D=this.resource.getContext("2d"))}};je.extension=b.TextureSource});var Qt,zu=p(()=>{B();tt();Qt=class extends se{constructor(e){super(e),this.uploadMethodId="image",this.autoGarbageCollect=!0}static test(e){return globalThis.HTMLImageElement&&e instanceof HTMLImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||globalThis.VideoFrame&&e instanceof VideoFrame}};Qt.extension=b.TextureSource});async function Tb(){return _f??(_f=(async()=>{let e=document.createElement("canvas").getContext("webgl");if(!e)return"premultiply-alpha-on-upload";let t=await new Promise(o=>{let a=document.createElement("video");a.onloadeddata=()=>o(a),a.onerror=()=>o(null),a.autoplay=!1,a.crossOrigin="anonymous",a.preload="auto",a.src="data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQJChYECGFOAZwEAAAAAAAHTEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHGTbuMU6uEElTDZ1OsggEXTbuMU6uEHFO7a1OsggG97AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmoCrXsYMPQkBNgIRMYXZmV0GETGF2ZkSJiEBEAAAAAAAAFlSua8yuAQAAAAAAAEPXgQFzxYgAAAAAAAAAAZyBACK1nIN1bmSIgQCGhVZfVlA5g4EBI+ODhAJiWgDglLCBArqBApqBAlPAgQFVsIRVuYEBElTDZ9Vzc9JjwItjxYgAAAAAAAAAAWfInEWjh0VOQ09ERVJEh49MYXZjIGxpYnZweC12cDlnyKJFo4hEVVJBVElPTkSHlDAwOjAwOjAwLjA0MDAwMDAwMAAAH0O2dcfngQCgwqGggQAAAIJJg0IAABAAFgA4JBwYSgAAICAAEb///4r+AAB1oZ2mm+6BAaWWgkmDQgAAEAAWADgkHBhKAAAgIABIQBxTu2uRu4+zgQC3iveBAfGCAXHwgQM=",a.load()});if(!t)return"premultiply-alpha-on-upload";let i=e.createTexture();e.bindTexture(e.TEXTURE_2D,i);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,i,0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t);let n=new Uint8Array(4);return e.readPixels(0,0,1,1,e.RGBA,e.UNSIGNED_BYTE,n),e.deleteFramebuffer(s),e.deleteTexture(i),e.getExtension("WEBGL_lose_context")?.loseContext(),n[0]<=n[3]?"premultiplied-alpha":"premultiply-alpha-on-upload"})()),_f}var _f,wb=p(()=>{"use strict"});var Vu,vb,Cb=p(()=>{B();go();wb();tt();Vu=class Sb extends se{constructor(e){super(e),this.isReady=!1,this.uploadMethodId="video",e={...Sb.defaultOptions,...e},this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=e.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=e.autoPlay!==!1,this.alphaMode=e.alphaMode??"premultiply-alpha-on-upload",this._videoFrameRequestCallback=this._videoFrameRequestCallback.bind(this),this._videoFrameRequestCallbackHandle=null,this._load=null,this._resolve=null,this._reject=null,this._onCanPlay=this._onCanPlay.bind(this),this._onCanPlayThrough=this._onCanPlayThrough.bind(this),this._onError=this._onError.bind(this),this._onPlayStart=this._onPlayStart.bind(this),this._onPlayStop=this._onPlayStop.bind(this),this._onSeeked=this._onSeeked.bind(this),e.autoLoad!==!1&&this.load()}updateFrame(){if(!this.destroyed){if(this._updateFPS){let e=ct.shared.elapsedMS*this.resource.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-e)}(!this._updateFPS||this._msToNextUpdate<=0)&&(this._msToNextUpdate=this._updateFPS?Math.floor(1e3/this._updateFPS):0),this.isValid&&this.update()}}_videoFrameRequestCallback(){this.updateFrame(),this.destroyed?this._videoFrameRequestCallbackHandle=null:this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback)}get isValid(){return!!this.resource.videoWidth&&!!this.resource.videoHeight}async load(){if(this._load)return this._load;let e=this.resource,t=this.options;return(e.readyState===e.HAVE_ENOUGH_DATA||e.readyState===e.HAVE_FUTURE_DATA)&&e.width&&e.height&&(e.complete=!0),e.addEventListener("play",this._onPlayStart),e.addEventListener("pause",this._onPlayStop),e.addEventListener("seeked",this._onSeeked),this._isSourceReady()?this._mediaReady():(t.preload||e.addEventListener("canplay",this._onCanPlay),e.addEventListener("canplaythrough",this._onCanPlayThrough),e.addEventListener("error",this._onError,!0)),this.alphaMode=await Tb(),this._load=new Promise((i,s)=>{this.isValid?i(this):(this._resolve=i,this._reject=s,t.preloadTimeoutMs!==void 0&&(this._preloadTimeout=setTimeout(()=>{this._onError(new ErrorEvent(`Preload exceeded timeout of ${t.preloadTimeoutMs}ms`))})),e.load())}),this._load}_onError(e){this.resource.removeEventListener("error",this._onError,!0),this.emit("error",e),this._reject&&(this._reject(e),this._reject=null,this._resolve=null)}_isSourcePlaying(){let e=this.resource;return!e.paused&&!e.ended}_isSourceReady(){return this.resource.readyState>2}_onPlayStart(){this.isValid||this._mediaReady(),this._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0)}_onCanPlay(){this.resource.removeEventListener("canplay",this._onCanPlay),this._mediaReady()}_onCanPlayThrough(){this.resource.removeEventListener("canplaythrough",this._onCanPlay),this._preloadTimeout&&(clearTimeout(this._preloadTimeout),this._preloadTimeout=void 0),this._mediaReady()}_mediaReady(){let e=this.resource;this.isValid&&(this.isReady=!0,this.resize(e.videoWidth,e.videoHeight)),this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0,this._resolve&&(this._resolve(this),this._resolve=null,this._reject=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&this.resource.play()}destroy(){this._configureAutoUpdate();let e=this.resource;e&&(e.removeEventListener("play",this._onPlayStart),e.removeEventListener("pause",this._onPlayStop),e.removeEventListener("seeked",this._onSeeked),e.removeEventListener("canplay",this._onCanPlay),e.removeEventListener("canplaythrough",this._onCanPlayThrough),e.removeEventListener("error",this._onError,!0),e.pause(),e.src="",e.load()),super.destroy()}get autoUpdate(){return this._autoUpdate}set autoUpdate(e){e!==this._autoUpdate&&(this._autoUpdate=e,this._configureAutoUpdate())}get updateFPS(){return this._updateFPS}set updateFPS(e){e!==this._updateFPS&&(this._updateFPS=e,this._configureAutoUpdate())}_configureAutoUpdate(){this._autoUpdate&&this._isSourcePlaying()?!this._updateFPS&&this.resource.requestVideoFrameCallback?(this._isConnectedToTicker&&(ct.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0),this._videoFrameRequestCallbackHandle===null&&(this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback))):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker||(ct.shared.add(this.updateFrame,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(ct.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(e){return globalThis.HTMLVideoElement&&e instanceof HTMLVideoElement}};Vu.extension=b.TextureSource;Vu.defaultOptions={...se.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1};Vu.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};vb=Vu});var bf,Me,Eo=p(()=>{pe();hf();bf=class{constructor(){this._parsers=[],this._cache=new Map,this._cacheMap=new Map}reset(){this._cacheMap.clear(),this._cache.clear()}has(e){return this._cache.has(e)}get(e){let t=this._cache.get(e);return t||N(`[Assets] Asset id ${e} was not found in the Cache`),t}set(e,t){let i=jr(e),s;for(let c=0;c<this.parsers.length;c++){let u=this.parsers[c];if(u.test(t)){s=u.getCacheableAssets(i,t);break}}let n=new Map(Object.entries(s||{}));s||i.forEach(c=>{n.set(c,t)});let o=[...n.keys()],a={cacheKeys:o,keys:i};i.forEach(c=>{this._cacheMap.set(c,a)}),o.forEach(c=>{let u=s?s[c]:t;this._cache.has(c)&&this._cache.get(c)!==u&&N("[Cache] already has key:",c),this._cache.set(c,n.get(c))})}remove(e){if(!this._cacheMap.has(e)){N(`[Assets] Asset id ${e} was not found in the Cache`);return}let t=this._cacheMap.get(e);t.cacheKeys.forEach(s=>{this._cache.delete(s)}),t.keys.forEach(s=>{this._cacheMap.delete(s)})}get parsers(){return this._parsers}},Me=new bf});function Eb(r={}){let e=r&&r.resource,t=e?r.resource:r,i=e?r:{resource:r};for(let s=0;s<yf.length;s++){let n=yf[s];if(n.test(t))return new n(i)}throw new Error(`Could not find a source type for resource: ${i.resource}`)}function kb(r={},e=!1){let t=r&&r.resource,i=t?r.resource:r,s=t?r:{resource:r};if(!e&&Me.has(i))return Me.get(i);let n=new M({source:Eb(s)});return n.on("destroy",()=>{Me.has(i)&&Me.remove(i)}),e||Me.set(i,n),n}function Ab(r,e=!1){return typeof r=="string"?Me.get(r):r instanceof se?new M({source:r}):kb(r,e)}var yf,Tf=p(()=>{Eo();B();tt();le();yf=[];O.handleByList(b.TextureSource,yf);M.from=Ab;se.from=Eb});var Hu=p(()=>{B();_b();bb();yb();Hd();Is();zu();Cb();Tf();O.add(So,vo,Co,vb,Qt,je,zi)});var Ne,Xr=p(()=>{"use strict";Ne=class{constructor(e){this.resources=Object.create(null),this._dirty=!0;let t=0;for(let i in e){let s=e[i];this.setResource(s,t++)}this._updateKey()}_updateKey(){if(!this._dirty)return;this._dirty=!1;let e=[],t=0;for(let i in this.resources)e[t++]=this.resources[i]._resourceId;this._key=e.join("|")}setResource(e,t){let i=this.resources[t];e!==i&&(i&&e.off?.("change",this.onResourceChange,this),e.on?.("change",this.onResourceChange,this),this.resources[t]=e,this._dirty=!0)}getResource(e){return this.resources[e]}_touch(e){let t=this.resources;for(let i in t)t[i]._touched=e}destroy(){let e=this.resources;for(let t in e)e[t].off?.("change",this.onResourceChange,this);this.resources=null}onResourceChange(e){if(this._dirty=!0,e.destroyed){let t=this.resources;for(let i in t)t[i]===e&&(t[i]=null)}else this._updateKey()}}});function Fs(r,e,t){let i=2166136261;for(let s=0;s<e;s++)i^=r[s].uid,i=Math.imul(i,16777619),i>>>=0;return Pb[i]||wP(r,e,i,t)}function wP(r,e,t,i){let s={},n=0;for(let a=0;a<i;a++){let c=a<e?r[a]:M.EMPTY.source;s[n++]=c.source,s[n++]=c.style}let o=new Ne(s);return Pb[t]=o,o}var Pb,Wu=p(()=>{Xr();le();Pb={}});var Zt,wf=p(()=>{"use strict";Zt=class{constructor(e){typeof e=="number"?this.rawBinaryData=new ArrayBuffer(e):e instanceof Uint8Array?this.rawBinaryData=e.buffer:this.rawBinaryData=e,this.uint32View=new Uint32Array(this.rawBinaryData),this.float32View=new Float32Array(this.rawBinaryData),this.size=this.rawBinaryData.byteLength}get int8View(){return this._int8View||(this._int8View=new Int8Array(this.rawBinaryData)),this._int8View}get uint8View(){return this._uint8View||(this._uint8View=new Uint8Array(this.rawBinaryData)),this._uint8View}get int16View(){return this._int16View||(this._int16View=new Int16Array(this.rawBinaryData)),this._int16View}get int32View(){return this._int32View||(this._int32View=new Int32Array(this.rawBinaryData)),this._int32View}get float64View(){return this._float64Array||(this._float64Array=new Float64Array(this.rawBinaryData)),this._float64Array}get bigUint64View(){return this._bigUint64Array||(this._bigUint64Array=new BigUint64Array(this.rawBinaryData)),this._bigUint64Array}view(e){return this[`${e}View`]}destroy(){this.rawBinaryData=null,this._int8View=null,this._uint8View=null,this._int16View=null,this.uint16View=null,this._int32View=null,this.uint32View=null,this.float32View=null}static sizeOf(e){switch(e){case"int8":case"uint8":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;default:throw new Error(`${e} isn't a valid view type`)}}}});function ko(r,e){let t=r.byteLength/8|0,i=new Float64Array(r,0,t);new Float64Array(e,0,t).set(i);let n=r.byteLength-t*8;if(n>0){let o=new Uint8Array(r,t*8,n);new Uint8Array(e,t*8,n).set(o)}}var Sf=p(()=>{"use strict"});var Bb,fe,Wi=p(()=>{"use strict";Bb={normal:"normal-npm",add:"add-npm",screen:"screen-npm"},fe=(r=>(r[r.DISABLED=0]="DISABLED",r[r.RENDERING_MASK_ADD=1]="RENDERING_MASK_ADD",r[r.MASK_ACTIVE=2]="MASK_ACTIVE",r[r.INVERSE_MASK_ACTIVE=3]="INVERSE_MASK_ACTIVE",r[r.RENDERING_MASK_REMOVE=4]="RENDERING_MASK_REMOVE",r[r.NONE=5]="NONE",r))(fe||{})});function vr(r,e){return e.alphaMode==="no-premultiply-alpha"&&Bb[r]||r}var Ao=p(()=>{Wi()});function qu(){return(!$u||$u?.isContextLost())&&($u=W.get().createCanvas().getContext("webgl",{})),$u}var $u,vf=p(()=>{Ce()});function vP(r){let e="";for(let t=0;t<r;++t)t>0&&(e+=`
|
|
20
|
-
else `),t<r-1&&(e+=`if(test == ${t}.0){}`);return e}function
|
|
21
|
-
`)});function Rb(){if(Us)return Us;let r=qu();return Us=r.getParameter(r.MAX_TEXTURE_IMAGE_UNITS),Us=ju(Us,r),r.getExtension("WEBGL_lose_context")?.loseContext(),Us}var Us,Db=p(()=>{vf();Cf();Us=null});var Xu,Mb=p(()=>{"use strict";Xu=class{constructor(){this.ids=Object.create(null),this.textures=[],this.count=0}clear(){for(let e=0;e<this.count;e++){let t=this.textures[e];this.textures[e]=null,this.ids[t.uid]=null}this.count=0}}});function Ib(){return kf>0?Ub[--kf]:new Ef}function Fb(r){Ub[kf++]=r}var Ef,Ub,kf,Po,Ob,Nb,Lb=p(()=>{Oe();wf();ye();Sf();Ao();Db();Mb();Ef=class{constructor(){this.renderPipeId="batch",this.action="startBatch",this.start=0,this.size=0,this.textures=new Xu,this.blendMode="normal",this.topology="triangle-strip",this.canBundle=!0}destroy(){this.textures=null,this.gpuBindGroup=null,this.bindGroup=null,this.batcher=null}},Ub=[],kf=0;Po=0,Ob=class Gb{constructor(e){this.uid=K("batcher"),this.dirty=!0,this.batchIndex=0,this.batches=[],this._elements=[],e={...Gb.defaultOptions,...e},e.maxTextures||(z("v8.8.0","maxTextures is a required option for Batcher now, please pass it in the options"),e.maxTextures=Rb());let{maxTextures:t,attributesInitialSize:i,indicesInitialSize:s}=e;this.attributeBuffer=new Zt(i*4),this.indexBuffer=new Uint16Array(s),this.maxTextures=t}begin(){this.elementSize=0,this.elementStart=0,this.indexSize=0,this.attributeSize=0;for(let e=0;e<this.batchIndex;e++)Fb(this.batches[e]);this.batchIndex=0,this._batchIndexStart=0,this._batchIndexSize=0,this.dirty=!0}add(e){this._elements[this.elementSize++]=e,e._indexStart=this.indexSize,e._attributeStart=this.attributeSize,e._batcher=this,this.indexSize+=e.indexSize,this.attributeSize+=e.attributeSize*this.vertexSize}checkAndUpdateTexture(e,t){let i=e._batch.textures.ids[t._source.uid];return!i&&i!==0?!1:(e._textureId=i,e.texture=t,!0)}updateElement(e){this.dirty=!0;let t=this.attributeBuffer;e.packAsQuad?this.packQuadAttributes(e,t.float32View,t.uint32View,e._attributeStart,e._textureId):this.packAttributes(e,t.float32View,t.uint32View,e._attributeStart,e._textureId)}break(e){let t=this._elements;if(!t[this.elementStart])return;let i=Ib(),s=i.textures;s.clear();let n=t[this.elementStart],o=vr(n.blendMode,n.texture._source),a=n.topology;this.attributeSize*4>this.attributeBuffer.size&&this._resizeAttributeBuffer(this.attributeSize*4),this.indexSize>this.indexBuffer.length&&this._resizeIndexBuffer(this.indexSize);let c=this.attributeBuffer.float32View,u=this.attributeBuffer.uint32View,l=this.indexBuffer,h=this._batchIndexSize,f=this._batchIndexStart,d="startBatch",m=this.maxTextures;for(let x=this.elementStart;x<this.elementSize;++x){let g=t[x];t[x]=null;let y=g.texture._source,S=vr(g.blendMode,y),T=o!==S||a!==g.topology;if(y._batchTick===Po&&!T){g._textureId=y._textureBindLocation,h+=g.indexSize,g.packAsQuad?(this.packQuadAttributes(g,c,u,g._attributeStart,g._textureId),this.packQuadIndex(l,g._indexStart,g._attributeStart/this.vertexSize)):(this.packAttributes(g,c,u,g._attributeStart,g._textureId),this.packIndex(g,l,g._indexStart,g._attributeStart/this.vertexSize)),g._batch=i;continue}y._batchTick=Po,(s.count>=m||T)&&(this._finishBatch(i,f,h-f,s,o,a,e,d),d="renderBatch",f=h,o=S,a=g.topology,i=Ib(),s=i.textures,s.clear(),++Po),g._textureId=y._textureBindLocation=s.count,s.ids[y.uid]=s.count,s.textures[s.count++]=y,g._batch=i,h+=g.indexSize,g.packAsQuad?(this.packQuadAttributes(g,c,u,g._attributeStart,g._textureId),this.packQuadIndex(l,g._indexStart,g._attributeStart/this.vertexSize)):(this.packAttributes(g,c,u,g._attributeStart,g._textureId),this.packIndex(g,l,g._indexStart,g._attributeStart/this.vertexSize))}s.count>0&&(this._finishBatch(i,f,h-f,s,o,a,e,d),f=h,++Po),this.elementStart=this.elementSize,this._batchIndexStart=f,this._batchIndexSize=h}_finishBatch(e,t,i,s,n,o,a,c){e.gpuBindGroup=null,e.bindGroup=null,e.action=c,e.batcher=this,e.textures=s,e.blendMode=n,e.topology=o,e.start=t,e.size=i,++Po,this.batches[this.batchIndex++]=e,a.add(e)}finish(e){this.break(e)}ensureAttributeBuffer(e){e*4<=this.attributeBuffer.size||this._resizeAttributeBuffer(e*4)}ensureIndexBuffer(e){e<=this.indexBuffer.length||this._resizeIndexBuffer(e)}_resizeAttributeBuffer(e){let t=Math.max(e,this.attributeBuffer.size*2),i=new Zt(t);ko(this.attributeBuffer.rawBinaryData,i.rawBinaryData),this.attributeBuffer=i}_resizeIndexBuffer(e){let t=this.indexBuffer,i=Math.max(e,t.length*1.5);i+=i%2;let s=i>65535?new Uint32Array(i):new Uint16Array(i);if(s.BYTES_PER_ELEMENT!==t.BYTES_PER_ELEMENT)for(let n=0;n<t.length;n++)s[n]=t[n];else ko(t.buffer,s.buffer);this.indexBuffer=s}packQuadIndex(e,t,i){e[t]=i+0,e[t+1]=i+1,e[t+2]=i+2,e[t+3]=i+0,e[t+4]=i+2,e[t+5]=i+3}packIndex(e,t,i,s){let n=e.indices,o=e.indexSize,a=e.indexOffset,c=e.attributeOffset;for(let u=0;u<o;u++)t[i++]=s+n[u+a]-c}destroy(){for(let e=0;e<this.batches.length;e++)Fb(this.batches[e]);this.batches=null;for(let e=0;e<this._elements.length;e++)this._elements[e]._batch=null;this._elements=null,this.indexBuffer=null,this.attributeBuffer.destroy(),this.attributeBuffer=null}};Ob.defaultOptions={maxTextures:null,attributesInitialSize:4,indicesInitialSize:6};Nb=Ob});var Q,Cr=p(()=>{"use strict";Q=(r=>(r[r.MAP_READ=1]="MAP_READ",r[r.MAP_WRITE=2]="MAP_WRITE",r[r.COPY_SRC=4]="COPY_SRC",r[r.COPY_DST=8]="COPY_DST",r[r.INDEX=16]="INDEX",r[r.VERTEX=32]="VERTEX",r[r.UNIFORM=64]="UNIFORM",r[r.STORAGE=128]="STORAGE",r[r.INDIRECT=256]="INDIRECT",r[r.QUERY_RESOLVE=512]="QUERY_RESOLVE",r[r.STATIC=1024]="STATIC",r))(Q||{})});var Ee,Yr=p(()=>{Ve();Oe();Cr();Ee=class extends oe{constructor(e){let{data:t,size:i}=e,{usage:s,label:n,shrinkToFit:o}=e;super(),this.uid=K("buffer"),this._resourceType="buffer",this._resourceId=K("resource"),this._touched=0,this._updateID=1,this._dataInt32=null,this.shrinkToFit=!0,this.destroyed=!1,t instanceof Array&&(t=new Float32Array(t)),this._data=t,i??(i=t?.byteLength);let a=!!t;this.descriptor={size:i,usage:s,mappedAtCreation:a,label:n},this.shrinkToFit=o??!0}get data(){return this._data}set data(e){this.setDataWithSize(e,e.length,!0)}get dataInt32(){return this._dataInt32||(this._dataInt32=new Int32Array(this.data.buffer)),this._dataInt32}get static(){return!!(this.descriptor.usage&Q.STATIC)}set static(e){e?this.descriptor.usage|=Q.STATIC:this.descriptor.usage&=~Q.STATIC}setDataWithSize(e,t,i){if(this._updateID++,this._updateSize=t*e.BYTES_PER_ELEMENT,this._data===e){i&&this.emit("update",this);return}let s=this._data;if(this._data=e,this._dataInt32=null,!s||s.length!==e.length){!this.shrinkToFit&&s&&e.byteLength<s.byteLength?i&&this.emit("update",this):(this.descriptor.size=e.byteLength,this._resourceId=K("resource"),this.emit("change",this));return}i&&this.emit("update",this)}update(e){this._updateSize=e??this._updateSize,this._updateID++,this.emit("update",this)}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this._data=null,this.descriptor=null,this.removeAllListeners()}}});function Af(r,e){if(!(r instanceof Ee)){let t=e?Q.INDEX:Q.VERTEX;r instanceof Array&&(e?(r=new Uint32Array(r),t=Q.INDEX|Q.COPY_DST):(r=new Float32Array(r),t=Q.VERTEX|Q.COPY_DST)),r=new Ee({data:r,label:e?"index-mesh-buffer":"vertex-mesh-buffer",usage:t})}return r}var zb=p(()=>{Yr();Cr()});function Vb(r,e,t){let i=r.getAttribute(e);if(!i)return t.minX=0,t.minY=0,t.maxX=0,t.maxY=0,t;let s=i.buffer.data,n=1/0,o=1/0,a=-1/0,c=-1/0,u=s.BYTES_PER_ELEMENT,l=(i.offset||0)/u,h=(i.stride||2*4)/u;for(let f=l;f<s.length;f+=h){let d=s[f],m=s[f+1];d>a&&(a=d),m>c&&(c=m),d<n&&(n=d),m<o&&(o=m)}return t.minX=n,t.minY=o,t.maxX=a,t.maxY=c,t}var Hb=p(()=>{"use strict"});function CP(r){return(r instanceof Ee||Array.isArray(r)||r.BYTES_PER_ELEMENT)&&(r={buffer:r}),r.buffer=Af(r.buffer,!1),r}var At,Os=p(()=>{Ve();at();Oe();Yr();zb();Hb();At=class extends oe{constructor(e={}){super(),this.uid=K("geometry"),this._layoutKey=0,this.instanceCount=1,this._bounds=new ae,this._boundsDirty=!0;let{attributes:t,indexBuffer:i,topology:s}=e;if(this.buffers=[],this.attributes={},t)for(let n in t)this.addAttribute(n,t[n]);this.instanceCount=e.instanceCount??1,i&&this.addIndex(i),this.topology=s||"triangle-list"}onBufferUpdate(){this._boundsDirty=!0,this.emit("update",this)}getAttribute(e){return this.attributes[e]}getIndex(){return this.indexBuffer}getBuffer(e){return this.getAttribute(e).buffer}getSize(){for(let e in this.attributes){let t=this.attributes[e];return t.buffer.data.length/(t.stride/4||t.size)}return 0}addAttribute(e,t){let i=CP(t);this.buffers.indexOf(i.buffer)===-1&&(this.buffers.push(i.buffer),i.buffer.on("update",this.onBufferUpdate,this),i.buffer.on("change",this.onBufferUpdate,this)),this.attributes[e]=i}addIndex(e){this.indexBuffer=Af(e,!0),this.buffers.push(this.indexBuffer)}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,Vb(this,"aPosition",this._bounds)):this._bounds}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners(),e&&this.buffers.forEach(t=>t.destroy()),this.attributes=null,this.buffers=null,this.indexBuffer=null,this._bounds=null}}});var EP,kP,Yu,Wb=p(()=>{Yr();Cr();Os();EP=new Float32Array(1),kP=new Uint32Array(1),Yu=class extends At{constructor(){let t=new Ee({data:EP,label:"attribute-batch-buffer",usage:Q.VERTEX|Q.COPY_DST,shrinkToFit:!1}),i=new Ee({data:kP,label:"index-batch-buffer",usage:Q.INDEX|Q.COPY_DST,shrinkToFit:!1}),s=6*4;super({attributes:{aPosition:{buffer:t,format:"float32x2",stride:s,offset:0},aUV:{buffer:t,format:"float32x2",stride:s,offset:2*4},aColor:{buffer:t,format:"unorm8x4",stride:s,offset:4*4},aTextureIdAndRound:{buffer:t,format:"uint16x2",stride:s,offset:5*4}},indexBuffer:i})}}});function Er(r,e){let t=$b[r];return t===void 0&&(Pf[e]===void 0&&(Pf[e]=1),$b[r]=t=Pf[e]++),t}var Pf,$b,Bo=p(()=>{"use strict";Pf=Object.create(null),$b=Object.create(null)});function qb(){if(!Ku){Ku="mediump";let r=qu();r&&r.getShaderPrecisionFormat&&(Ku=r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.HIGH_FLOAT).precision?"highp":"mediump")}return Ku}var Ku,jb=p(()=>{vf()});function Xb(r,e,t){return e?r:t?(r=r.replace("out vec4 finalColor;",""),`
|
|
19
|
+
`,e.accessibleText&&(t.innerText=e.accessibleText)),t.style.width=`${jc}px`,t.style.height=`${jc}px`,t.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",t.style.position="absolute",t.style.zIndex=d0.toString(),t.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?t.setAttribute("aria-live","off"):t.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?t.setAttribute("aria-relevant","additions"):t.setAttribute("aria-relevant","text"),t.addEventListener("click",this._onClick.bind(this)),t.addEventListener("focus",this._onFocus.bind(this)),t.addEventListener("focusout",this._onFocusOut.bind(this))),t.style.pointerEvents=e.accessiblePointerEvents,t.type=e.accessibleType,e.accessibleTitle&&e.accessibleTitle!==null?t.title=e.accessibleTitle:(!e.accessibleHint||e.accessibleHint===null)&&(t.title=`container ${e.tabIndex}`),e.accessibleHint&&e.accessibleHint!==null&&t.setAttribute("aria-label",e.accessibleHint),this.debug&&this._updateDebugHTML(t),e._accessibleActive=!0,e._accessibleDiv=t,t.container=e,this._children.push(e),this._div.appendChild(e._accessibleDiv),e.interactive&&(e._accessibleDiv.tabIndex=e.tabIndex)}_dispatchEvent(e,t){let{container:i}=e.target,s=this._renderer.events.rootBoundary,n=Object.assign(new zr(s),{target:i});s.rootTarget=this._renderer.lastObjectRendered,t.forEach(o=>s.dispatchEvent(n,o))}_onClick(e){this._dispatchEvent(e,["click","pointertap","tap"])}_onFocus(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","assertive"),this._dispatchEvent(e,["mouseover"])}_onFocusOut(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","polite"),this._dispatchEvent(e,["mouseout"])}_onKeyDown(e){e.keyCode!==Rk||!this._activateOnTab||this._activate()}_onMouseMove(e){e.movementX===0&&e.movementY===0||this._deactivate()}destroy(){this._deactivate(),this._destroyTouchHook(),this._div=null,this._pool=null,this._children=null,this._renderer=null,this._activateOnTab&&globalThis.removeEventListener("keydown",this._onKeyDown)}setAccessibilityEnabled(e){e?this._activate():this._deactivate()}};md.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"accessibility"};md.defaultOptions={enabledByDefault:!1,debug:!1,activateOnTab:!0,deactivateOnMouseMove:!0};p0=md});var x0,_0=p(()=>{"use strict";x0={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,accessibleType:"button",accessibleText:null,accessiblePointerEvents:"auto",accessibleChildren:!0,_accessibleActive:!1,_accessibleDiv:null,_renderId:-1}});var b0=p(()=>{P();Ht();g0();_0();O.add(p0);O.mixin(we,x0)});var Wn,y0=p(()=>{P();Wn=class{static init(e){Object.defineProperty(this,"resizeTo",{set(t){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=t,t&&(globalThis.addEventListener("resize",this.queueResize),this.resize())},get(){return this._resizeTo}}),this.queueResize=()=>{this._resizeTo&&(this._cancelResize(),this._resizeId=requestAnimationFrame(()=>this.resize()))},this._cancelResize=()=>{this._resizeId&&(cancelAnimationFrame(this._resizeId),this._resizeId=null)},this.resize=()=>{if(!this._resizeTo)return;this._cancelResize();let t,i;if(this._resizeTo===globalThis.window)t=globalThis.innerWidth,i=globalThis.innerHeight;else{let{clientWidth:s,clientHeight:n}=this._resizeTo;t=s,i=n}this.renderer.resize(t,i),this.render()},this._resizeId=null,this._resizeTo=null,this.resizeTo=e.resizeTo||null}static destroy(){globalThis.removeEventListener("resize",this.queueResize),this._cancelResize(),this._cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null}};Wn.extension=b.Application});var Vr,Xc=p(()=>{"use strict";Vr=(r=>(r[r.INTERACTION=50]="INTERACTION",r[r.HIGH=25]="HIGH",r[r.NORMAL=0]="NORMAL",r[r.LOW=-25]="LOW",r[r.UTILITY=-50]="UTILITY",r))(Vr||{})});var fs,T0=p(()=>{"use strict";fs=class{constructor(e,t=null,i=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,this._fn=e,this._context=t,this.priority=i,this._once=s}match(e,t=null){return this._fn===e&&this._context===t}emit(e){this._fn&&(this._context?this._fn.call(this._context,e):this._fn(e));let t=this.next;return this._once&&this.destroy(!0),this._destroyed&&(this.next=null),t}connect(e){this.previous=e,e.next&&(e.next.previous=this),this.next=e.next,e.next=this}destroy(e=!1){this._destroyed=!0,this._fn=null,this._context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);let t=this.next;return this.next=e?null:t,this.previous=null,t}}});var w0,at,$n=p(()=>{Xc();T0();w0=class xt{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new fs(null,null,1/0),this.deltaMS=1/xt.targetFPMS,this.elapsedMS=1/xt.targetFPMS,this._tick=e=>{this._requestId=null,this.started&&(this.update(e),this.started&&this._requestId===null&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)))}}_requestIfNeeded(){this._requestId===null&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))}_cancelIfNeeded(){this._requestId!==null&&(cancelAnimationFrame(this._requestId),this._requestId=null)}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start()}add(e,t,i=Vr.NORMAL){return this._addListener(new fs(e,t,i))}addOnce(e,t,i=Vr.NORMAL){return this._addListener(new fs(e,t,i,!0))}_addListener(e){let t=this._head.next,i=this._head;if(!t)e.connect(i);else{for(;t;){if(e.priority>t.priority){e.connect(i);break}i=t,t=t.next}e.previous||e.connect(i)}return this._startIfPossible(),this}remove(e,t){let i=this._head.next;for(;i;)i.match(e,t)?i=i.destroy():i=i.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let e=0,t=this._head;for(;t=t.next;)e++;return e}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let e=this._head.next;for(;e;)e=e.destroy(!0);this._head.destroy(),this._head=null}}update(e=performance.now()){let t;if(e>this.lastTime){if(t=this.elapsedMS=e-this.lastTime,t>this._maxElapsedMS&&(t=this._maxElapsedMS),t*=this.speed,this._minElapsedMS){let n=e-this._lastFrame|0;if(n<this._minElapsedMS)return;this._lastFrame=e-n%this._minElapsedMS}this.deltaMS=t,this.deltaTime=this.deltaMS*xt.targetFPMS;let i=this._head,s=i.next;for(;s;)s=s.emit(this);i.next||this._cancelIfNeeded()}else this.deltaTime=this.deltaMS=this.elapsedMS=0;this.lastTime=e}get FPS(){return 1e3/this.elapsedMS}get minFPS(){return 1e3/this._maxElapsedMS}set minFPS(e){let t=Math.min(this.maxFPS,e),i=Math.min(Math.max(0,t)/1e3,xt.targetFPMS);this._maxElapsedMS=1/i}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(e){if(e===0)this._minElapsedMS=0;else{let t=Math.max(this.minFPS,e);this._minElapsedMS=1/(t/1e3)}}static get shared(){if(!xt._shared){let e=xt._shared=new xt;e.autoStart=!0,e._protected=!0}return xt._shared}static get system(){if(!xt._system){let e=xt._system=new xt;e.autoStart=!0,e._protected=!0}return xt._system}};w0.targetFPMS=.06;at=w0});var qn,S0=p(()=>{P();Xc();$n();qn=class{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,"ticker",{set(t){this._ticker&&this._ticker.remove(this.render,this),this._ticker=t,t&&t.add(this.render,this,Vr.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?at.shared:new at,e.autoStart&&this.start()}static destroy(){if(this._ticker){let e=this._ticker;this.ticker=null,e.destroy()}}};qn.extension=b.Application});var pd=p(()=>{P();y0();S0();O.add(Wn);O.add(qn)});function G(...r){gd!==v0&&(gd++,gd===v0?console.warn("PixiJS Warning: too many warnings, no more warnings will be reported to the console by PixiJS."):console.warn("PixiJS Warning: ",...r))}var gd,v0,ge=p(()=>{"use strict";gd=0,v0=500});var xd,Wt,_d=p(()=>{Xc();$n();xd=class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}init(e){this.removeTickerListener(),this.events=e,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(e){this._pauseUpdate=e}addTickerListener(){this._tickerAdded||!this.domElement||(at.system.add(this._tickerUpdate,this,Vr.INTERACTION),this._tickerAdded=!0)}removeTickerListener(){this._tickerAdded&&(at.system.remove(this._tickerUpdate,this),this._tickerAdded=!1)}pointerMoved(){this._didMove=!0}_update(){if(!this.domElement||this._pauseUpdate)return;if(this._didMove){this._didMove=!1;return}let e=this.events._rootPointerEvent;this.events.supportsTouchEvents&&e.pointerType==="touch"||globalThis.document.dispatchEvent(this.events.supportsPointerEvents?new PointerEvent("pointermove",{clientX:e.clientX,clientY:e.clientY,pointerType:e.pointerType,pointerId:e.pointerId}):new MouseEvent("mousemove",{clientX:e.clientX,clientY:e.clientY}))}_tickerUpdate(e){this._deltaTime+=e.deltaTime,!(this._deltaTime<this.interactionFrequency)&&(this._deltaTime=0,this._update())}},Wt=new xd});var yr,Yc=p(()=>{It();$c();yr=class extends zr{constructor(){super(...arguments),this.client=new Z,this.movement=new Z,this.offset=new Z,this.global=new Z,this.screen=new Z}get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}get movementX(){return this.movement.x}get movementY(){return this.movement.y}get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}get globalX(){return this.global.x}get globalY(){return this.global.y}get screenX(){return this.screen.x}get screenY(){return this.screen.y}getLocalPosition(e,t,i){return e.worldTransform.applyInverse(i||this.global,t)}getModifierState(e){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(e)}initMouseEvent(e,t,i,s,n,o,a,c,u,l,h,f,d,m,x){throw new Error("Method not implemented.")}}});var tt,bd=p(()=>{Yc();tt=class extends yr{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1}getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}});var $t,yd=p(()=>{Yc();$t=class extends yr{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}};$t.DOM_DELTA_PIXEL=0;$t.DOM_DELTA_LINE=1;$t.DOM_DELTA_PAGE=2});var Ok,Gk,jn,Kc,C0=p(()=>{Ve();It();ge();_d();Yc();bd();yd();Ok=2048,Gk=new Z,jn=new Z,Kc=class{constructor(e){this.dispatch=new oe,this.moveOnAll=!1,this.enableGlobalMoveEvents=!0,this.mappingState={trackingData:{}},this.eventPool=new Map,this._allInteractiveElements=[],this._hitElements=[],this._isPointerMoveEvent=!1,this.rootTarget=e,this.hitPruneFn=this.hitPruneFn.bind(this),this.hitTestFn=this.hitTestFn.bind(this),this.mapPointerDown=this.mapPointerDown.bind(this),this.mapPointerMove=this.mapPointerMove.bind(this),this.mapPointerOut=this.mapPointerOut.bind(this),this.mapPointerOver=this.mapPointerOver.bind(this),this.mapPointerUp=this.mapPointerUp.bind(this),this.mapPointerUpOutside=this.mapPointerUpOutside.bind(this),this.mapWheel=this.mapWheel.bind(this),this.mappingTable={},this.addEventMapping("pointerdown",this.mapPointerDown),this.addEventMapping("pointermove",this.mapPointerMove),this.addEventMapping("pointerout",this.mapPointerOut),this.addEventMapping("pointerleave",this.mapPointerOut),this.addEventMapping("pointerover",this.mapPointerOver),this.addEventMapping("pointerup",this.mapPointerUp),this.addEventMapping("pointerupoutside",this.mapPointerUpOutside),this.addEventMapping("wheel",this.mapWheel)}addEventMapping(e,t){this.mappingTable[e]||(this.mappingTable[e]=[]),this.mappingTable[e].push({fn:t,priority:0}),this.mappingTable[e].sort((i,s)=>i.priority-s.priority)}dispatchEvent(e,t){e.propagationStopped=!1,e.propagationImmediatelyStopped=!1,this.propagate(e,t),this.dispatch.emit(t||e.type,e)}mapEvent(e){if(!this.rootTarget)return;let t=this.mappingTable[e.type];if(t)for(let i=0,s=t.length;i<s;i++)t[i].fn(e);else G(`[EventBoundary]: Event mapping not defined for ${e.type}`)}hitTest(e,t){Wt.pauseUpdate=!0;let s=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",n=this[s](this.rootTarget,this.rootTarget.eventMode,Gk.set(e,t),this.hitTestFn,this.hitPruneFn);return n&&n[0]}propagate(e,t){if(!e.target)return;let i=e.composedPath();e.eventPhase=e.CAPTURING_PHASE;for(let s=0,n=i.length-1;s<n;s++)if(e.currentTarget=i[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return;if(e.eventPhase=e.AT_TARGET,e.currentTarget=e.target,this.notifyTarget(e,t),!(e.propagationStopped||e.propagationImmediatelyStopped)){e.eventPhase=e.BUBBLING_PHASE;for(let s=i.length-2;s>=0;s--)if(e.currentTarget=i[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return}}all(e,t,i=this._allInteractiveElements){if(i.length===0)return;e.eventPhase=e.BUBBLING_PHASE;let s=Array.isArray(t)?t:[t];for(let n=i.length-1;n>=0;n--)s.forEach(o=>{e.currentTarget=i[n],this.notifyTarget(e,o)})}propagationPath(e){let t=[e];for(let i=0;i<Ok&&e!==this.rootTarget&&e.parent;i++){if(!e.parent)throw new Error("Cannot find propagation path to disconnected target");t.push(e.parent),e=e.parent}return t.reverse(),t}hitTestMoveRecursive(e,t,i,s,n,o=!1){let a=!1;if(this._interactivePrune(e))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(Wt.pauseUpdate=!1),e.interactiveChildren&&e.children){let l=e.children;for(let h=l.length-1;h>=0;h--){let f=l[h],d=this.hitTestMoveRecursive(f,this._isInteractive(t)?t:f.eventMode,i,s,n,o||n(e,i));if(d){if(d.length>0&&!d[d.length-1].parent)continue;let m=e.isInteractive();(d.length>0||m)&&(m&&this._allInteractiveElements.push(e),d.push(e)),this._hitElements.length===0&&(this._hitElements=d),a=!0}}}let c=this._isInteractive(t),u=e.isInteractive();return u&&u&&this._allInteractiveElements.push(e),o||this._hitElements.length>0?null:a?this._hitElements:c&&!n(e,i)&&s(e,i)?u?[e]:[]:null}hitTestRecursive(e,t,i,s,n){if(this._interactivePrune(e)||n(e,i))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(Wt.pauseUpdate=!1),e.interactiveChildren&&e.children){let c=e.children,u=i;for(let l=c.length-1;l>=0;l--){let h=c[l],f=this.hitTestRecursive(h,this._isInteractive(t)?t:h.eventMode,u,s,n);if(f){if(f.length>0&&!f[f.length-1].parent)continue;let d=e.isInteractive();return(f.length>0||d)&&f.push(e),f}}}let o=this._isInteractive(t),a=e.isInteractive();return o&&s(e,i)?a?[e]:[]:null}_isInteractive(e){return e==="static"||e==="dynamic"}_interactivePrune(e){return!e||!e.visible||!e.renderable||!e.measurable||e.eventMode==="none"||e.eventMode==="passive"&&!e.interactiveChildren}hitPruneFn(e,t){if(e.hitArea&&(e.worldTransform.applyInverse(t,jn),!e.hitArea.contains(jn.x,jn.y)))return!0;if(e.effects&&e.effects.length)for(let i=0;i<e.effects.length;i++){let s=e.effects[i];if(s.containsPoint&&!s.containsPoint(t,this.hitTestFn))return!0}return!1}hitTestFn(e,t){return e.hitArea?!0:e?.containsPoint?(e.worldTransform.applyInverse(t,jn),e.containsPoint(jn)):!1}notifyTarget(e,t){if(!e.currentTarget.isInteractive())return;t??(t=e.type);let i=`on${t}`;e.currentTarget[i]?.(e);let s=e.eventPhase===e.CAPTURING_PHASE||e.eventPhase===e.AT_TARGET?`${t}capture`:t;this._notifyListeners(e,s),e.eventPhase===e.AT_TARGET&&this._notifyListeners(e,t)}mapPointerDown(e){if(!(e instanceof tt)){G("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.createPointerEvent(e);if(this.dispatchEvent(t,"pointerdown"),t.pointerType==="touch")this.dispatchEvent(t,"touchstart");else if(t.pointerType==="mouse"||t.pointerType==="pen"){let s=t.button===2;this.dispatchEvent(t,s?"rightdown":"mousedown")}let i=this.trackingData(e.pointerId);i.pressTargetsByButton[e.button]=t.composedPath(),this.freeEvent(t)}mapPointerMove(e){if(!(e instanceof tt)){G("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;let t=this.createPointerEvent(e);this._isPointerMoveEvent=!1;let i=t.pointerType==="mouse"||t.pointerType==="pen",s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.overTargets);if(s.overTargets?.length>0&&n!==t.target){let c=e.type==="mousemove"?"mouseout":"pointerout",u=this.createPointerEvent(e,c,n);if(this.dispatchEvent(u,"pointerout"),i&&this.dispatchEvent(u,"mouseout"),!t.composedPath().includes(n)){let l=this.createPointerEvent(e,"pointerleave",n);for(l.eventPhase=l.AT_TARGET;l.target&&!t.composedPath().includes(l.target);)l.currentTarget=l.target,this.notifyTarget(l),i&&this.notifyTarget(l,"mouseleave"),l.target=l.target.parent;this.freeEvent(l)}this.freeEvent(u)}if(n!==t.target){let c=e.type==="mousemove"?"mouseover":"pointerover",u=this.clonePointerEvent(t,c);this.dispatchEvent(u,"pointerover"),i&&this.dispatchEvent(u,"mouseover");let l=n?.parent;for(;l&&l!==this.rootTarget.parent&&l!==t.target;)l=l.parent;if(!l||l===this.rootTarget.parent){let f=this.clonePointerEvent(t,"pointerenter");for(f.eventPhase=f.AT_TARGET;f.target&&f.target!==n&&f.target!==this.rootTarget.parent;)f.currentTarget=f.target,this.notifyTarget(f),i&&this.notifyTarget(f,"mouseenter"),f.target=f.target.parent;this.freeEvent(f)}this.freeEvent(u)}let o=[],a=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push("pointermove"):this.dispatchEvent(t,"pointermove"),a&&o.push("globalpointermove"),t.pointerType==="touch"&&(this.moveOnAll?o.splice(1,0,"touchmove"):this.dispatchEvent(t,"touchmove"),a&&o.push("globaltouchmove")),i&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(t,"mousemove"),a&&o.push("globalmousemove"),this.cursor=t.target?.cursor),o.length>0&&this.all(t,o),this._allInteractiveElements.length=0,this._hitElements.length=0,s.overTargets=t.composedPath(),this.freeEvent(t)}mapPointerOver(e){if(!(e instanceof tt)){G("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),i=this.createPointerEvent(e),s=i.pointerType==="mouse"||i.pointerType==="pen";this.dispatchEvent(i,"pointerover"),s&&this.dispatchEvent(i,"mouseover"),i.pointerType==="mouse"&&(this.cursor=i.target?.cursor);let n=this.clonePointerEvent(i,"pointerenter");for(n.eventPhase=n.AT_TARGET;n.target&&n.target!==this.rootTarget.parent;)n.currentTarget=n.target,this.notifyTarget(n),s&&this.notifyTarget(n,"mouseenter"),n.target=n.target.parent;t.overTargets=i.composedPath(),this.freeEvent(i),this.freeEvent(n)}mapPointerOut(e){if(!(e instanceof tt)){G("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId);if(t.overTargets){let i=e.pointerType==="mouse"||e.pointerType==="pen",s=this.findMountedTarget(t.overTargets),n=this.createPointerEvent(e,"pointerout",s);this.dispatchEvent(n),i&&this.dispatchEvent(n,"mouseout");let o=this.createPointerEvent(e,"pointerleave",s);for(o.eventPhase=o.AT_TARGET;o.target&&o.target!==this.rootTarget.parent;)o.currentTarget=o.target,this.notifyTarget(o),i&&this.notifyTarget(o,"mouseleave"),o.target=o.target.parent;t.overTargets=null,this.freeEvent(n),this.freeEvent(o)}this.cursor=null}mapPointerUp(e){if(!(e instanceof tt)){G("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=performance.now(),i=this.createPointerEvent(e);if(this.dispatchEvent(i,"pointerup"),i.pointerType==="touch")this.dispatchEvent(i,"touchend");else if(i.pointerType==="mouse"||i.pointerType==="pen"){let a=i.button===2;this.dispatchEvent(i,a?"rightup":"mouseup")}let s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.pressTargetsByButton[e.button]),o=n;if(n&&!i.composedPath().includes(n)){let a=n;for(;a&&!i.composedPath().includes(a);){if(i.currentTarget=a,this.notifyTarget(i,"pointerupoutside"),i.pointerType==="touch")this.notifyTarget(i,"touchendoutside");else if(i.pointerType==="mouse"||i.pointerType==="pen"){let c=i.button===2;this.notifyTarget(i,c?"rightupoutside":"mouseupoutside")}a=a.parent}delete s.pressTargetsByButton[e.button],o=a}if(o){let a=this.clonePointerEvent(i,"click");a.target=o,a.path=null,s.clicksByButton[e.button]||(s.clicksByButton[e.button]={clickCount:0,target:a.target,timeStamp:t});let c=s.clicksByButton[e.button];if(c.target===a.target&&t-c.timeStamp<200?++c.clickCount:c.clickCount=1,c.target=a.target,c.timeStamp=t,a.detail=c.clickCount,a.pointerType==="mouse"){let u=a.button===2;this.dispatchEvent(a,u?"rightclick":"click")}else a.pointerType==="touch"&&this.dispatchEvent(a,"tap");this.dispatchEvent(a,"pointertap"),this.freeEvent(a)}this.freeEvent(i)}mapPointerUpOutside(e){if(!(e instanceof tt)){G("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),i=this.findMountedTarget(t.pressTargetsByButton[e.button]),s=this.createPointerEvent(e);if(i){let n=i;for(;n;)s.currentTarget=n,this.notifyTarget(s,"pointerupoutside"),s.pointerType==="touch"?this.notifyTarget(s,"touchendoutside"):(s.pointerType==="mouse"||s.pointerType==="pen")&&this.notifyTarget(s,s.button===2?"rightupoutside":"mouseupoutside"),n=n.parent;delete t.pressTargetsByButton[e.button]}this.freeEvent(s)}mapWheel(e){if(!(e instanceof $t)){G("EventBoundary cannot map a non-wheel event as a wheel event");return}let t=this.createWheelEvent(e);this.dispatchEvent(t),this.freeEvent(t)}findMountedTarget(e){if(!e)return null;let t=e[0];for(let i=1;i<e.length&&e[i].parent===t;i++)t=e[i];return t}createPointerEvent(e,t,i){let s=this.allocateEvent(tt);return this.copyPointerData(e,s),this.copyMouseData(e,s),this.copyData(e,s),s.nativeEvent=e.nativeEvent,s.originalEvent=e,s.target=i??this.hitTest(s.global.x,s.global.y)??this._hitElements[0],typeof t=="string"&&(s.type=t),s}createWheelEvent(e){let t=this.allocateEvent($t);return this.copyWheelData(e,t),this.copyMouseData(e,t),this.copyData(e,t),t.nativeEvent=e.nativeEvent,t.originalEvent=e,t.target=this.hitTest(t.global.x,t.global.y),t}clonePointerEvent(e,t){let i=this.allocateEvent(tt);return i.nativeEvent=e.nativeEvent,i.originalEvent=e.originalEvent,this.copyPointerData(e,i),this.copyMouseData(e,i),this.copyData(e,i),i.target=e.target,i.path=e.composedPath().slice(),i.type=t??i.type,i}copyWheelData(e,t){t.deltaMode=e.deltaMode,t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ}copyPointerData(e,t){e instanceof tt&&t instanceof tt&&(t.pointerId=e.pointerId,t.width=e.width,t.height=e.height,t.isPrimary=e.isPrimary,t.pointerType=e.pointerType,t.pressure=e.pressure,t.tangentialPressure=e.tangentialPressure,t.tiltX=e.tiltX,t.tiltY=e.tiltY,t.twist=e.twist)}copyMouseData(e,t){e instanceof yr&&t instanceof yr&&(t.altKey=e.altKey,t.button=e.button,t.buttons=e.buttons,t.client.copyFrom(e.client),t.ctrlKey=e.ctrlKey,t.metaKey=e.metaKey,t.movement.copyFrom(e.movement),t.screen.copyFrom(e.screen),t.shiftKey=e.shiftKey,t.global.copyFrom(e.global))}copyData(e,t){t.isTrusted=e.isTrusted,t.srcElement=e.srcElement,t.timeStamp=performance.now(),t.type=e.type,t.detail=e.detail,t.view=e.view,t.which=e.which,t.layer.copyFrom(e.layer),t.page.copyFrom(e.page)}trackingData(e){return this.mappingState.trackingData[e]||(this.mappingState.trackingData[e]={pressTargetsByButton:{},clicksByButton:{},overTarget:null}),this.mappingState.trackingData[e]}allocateEvent(e){this.eventPool.has(e)||this.eventPool.set(e,[]);let t=this.eventPool.get(e).pop()||new e(this);return t.eventPhase=t.NONE,t.currentTarget=null,t.defaultPrevented=!1,t.path=null,t.target=null,t}freeEvent(e){if(e.manager!==this)throw new Error("It is illegal to free an event not managed by this EventBoundary!");let t=e.constructor;this.eventPool.has(t)||this.eventPool.set(t,[]),this.eventPool.get(t).push(e)}_notifyListeners(e,t){let i=e.currentTarget._events[t];if(i)if("fn"in i)i.once&&e.currentTarget.removeListener(t,i.fn,void 0,!0),i.fn.call(i.context,e);else for(let s=0,n=i.length;s<n&&!e.propagationImmediatelyStopped;s++)i[s].once&&e.currentTarget.removeListener(t,i[s].fn,void 0,!0),i[s].fn.call(i[s].context,e)}}});var Nk,Lk,wd,Qc,Sd=p(()=>{P();C0();_d();bd();yd();Nk=1,Lk={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},wd=class Td{constructor(e){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=e,this.rootBoundary=new Kc(null),Wt.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new tt(null),this._rootWheelEvent=new $t(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...Td.defaultEventFeatures},{set:(t,i,s)=>(i==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=s),t[i]=s,!0)}),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerOverOut=this._onPointerOverOut.bind(this),this.onWheel=this.onWheel.bind(this)}static get defaultEventMode(){return this._defaultEventMode}init(e){let{canvas:t,resolution:i}=this.renderer;this.setTargetElement(t),this.resolution=i,Td._defaultEventMode=e.eventMode??"passive",Object.assign(this.features,e.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(e){this.resolution=e}destroy(){this.setTargetElement(null),this.renderer=null,this._currentCursor=null}setCursor(e){e||(e="default");let t=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(t=!1),this._currentCursor===e)return;this._currentCursor=e;let i=this.cursorStyles[e];if(i)switch(typeof i){case"string":t&&(this.domElement.style.cursor=i);break;case"function":i(e);break;case"object":t&&Object.assign(this.domElement.style,i);break}else t&&typeof e=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,e)&&(this.domElement.style.cursor=e)}get pointer(){return this._rootPointerEvent}_onPointerDown(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);this.autoPreventDefault&&t[0].isNormalized&&(e.cancelable||!("cancelable"in e))&&e.preventDefault();for(let i=0,s=t.length;i<s;i++){let n=t[i],o=this._bootstrapEvent(this._rootPointerEvent,n);this.rootBoundary.mapEvent(o)}this.setCursor(this.rootBoundary.cursor)}_onPointerMove(e){if(!this.features.move)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,Wt.pointerMoved();let t=this._normalizeToPointerData(e);for(let i=0,s=t.length;i<s;i++){let n=this._bootstrapEvent(this._rootPointerEvent,t[i]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}_onPointerUp(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=e.target;e.composedPath&&e.composedPath().length>0&&(t=e.composedPath()[0]);let i=t!==this.domElement?"outside":"",s=this._normalizeToPointerData(e);for(let n=0,o=s.length;n<o;n++){let a=this._bootstrapEvent(this._rootPointerEvent,s[n]);a.type+=i,this.rootBoundary.mapEvent(a)}this.setCursor(this.rootBoundary.cursor)}_onPointerOverOut(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);for(let i=0,s=t.length;i<s;i++){let n=this._bootstrapEvent(this._rootPointerEvent,t[i]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}onWheel(e){if(!this.features.wheel)return;let t=this.normalizeWheelEvent(e);this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,this.rootBoundary.mapEvent(t)}setTargetElement(e){this._removeEvents(),this.domElement=e,Wt.domElement=e,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;Wt.addTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="none",e.msTouchAction="none"):this.supportsPointerEvents&&(e.touchAction="none")),this.supportsPointerEvents?(globalThis.document.addEventListener("pointermove",this._onPointerMove,!0),this.domElement.addEventListener("pointerdown",this._onPointerDown,!0),this.domElement.addEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.addEventListener("pointerover",this._onPointerOverOut,!0),globalThis.addEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.addEventListener("mousemove",this._onPointerMove,!0),this.domElement.addEventListener("mousedown",this._onPointerDown,!0),this.domElement.addEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.addEventListener("mouseover",this._onPointerOverOut,!0),globalThis.addEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.addEventListener("touchstart",this._onPointerDown,!0),this.domElement.addEventListener("touchend",this._onPointerUp,!0),this.domElement.addEventListener("touchmove",this._onPointerMove,!0))),this.domElement.addEventListener("wheel",this.onWheel,{passive:!0,capture:!0}),this._eventsAdded=!0}_removeEvents(){if(!this._eventsAdded||!this.domElement)return;Wt.removeTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="",e.msTouchAction=""):this.supportsPointerEvents&&(e.touchAction="")),this.supportsPointerEvents?(globalThis.document.removeEventListener("pointermove",this._onPointerMove,!0),this.domElement.removeEventListener("pointerdown",this._onPointerDown,!0),this.domElement.removeEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.removeEventListener("pointerover",this._onPointerOverOut,!0),globalThis.removeEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.removeEventListener("mousemove",this._onPointerMove,!0),this.domElement.removeEventListener("mousedown",this._onPointerDown,!0),this.domElement.removeEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.removeEventListener("mouseover",this._onPointerOverOut,!0),globalThis.removeEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.removeEventListener("touchstart",this._onPointerDown,!0),this.domElement.removeEventListener("touchend",this._onPointerUp,!0),this.domElement.removeEventListener("touchmove",this._onPointerMove,!0))),this.domElement.removeEventListener("wheel",this.onWheel,!0),this.domElement=null,this._eventsAdded=!1}mapPositionToPoint(e,t,i){let s=this.domElement.isConnected?this.domElement.getBoundingClientRect():{x:0,y:0,width:this.domElement.width,height:this.domElement.height,left:0,top:0},n=1/this.resolution;e.x=(t-s.left)*(this.domElement.width/s.width)*n,e.y=(i-s.top)*(this.domElement.height/s.height)*n}_normalizeToPointerData(e){let t=[];if(this.supportsTouchEvents&&e instanceof TouchEvent)for(let i=0,s=e.changedTouches.length;i<s;i++){let n=e.changedTouches[i];typeof n.button>"u"&&(n.button=0),typeof n.buttons>"u"&&(n.buttons=1),typeof n.isPrimary>"u"&&(n.isPrimary=e.touches.length===1&&e.type==="touchstart"),typeof n.width>"u"&&(n.width=n.radiusX||1),typeof n.height>"u"&&(n.height=n.radiusY||1),typeof n.tiltX>"u"&&(n.tiltX=0),typeof n.tiltY>"u"&&(n.tiltY=0),typeof n.pointerType>"u"&&(n.pointerType="touch"),typeof n.pointerId>"u"&&(n.pointerId=n.identifier||0),typeof n.pressure>"u"&&(n.pressure=n.force||.5),typeof n.twist>"u"&&(n.twist=0),typeof n.tangentialPressure>"u"&&(n.tangentialPressure=0),typeof n.layerX>"u"&&(n.layerX=n.offsetX=n.clientX),typeof n.layerY>"u"&&(n.layerY=n.offsetY=n.clientY),n.isNormalized=!0,n.type=e.type,t.push(n)}else if(!globalThis.MouseEvent||e instanceof MouseEvent&&(!this.supportsPointerEvents||!(e instanceof globalThis.PointerEvent))){let i=e;typeof i.isPrimary>"u"&&(i.isPrimary=!0),typeof i.width>"u"&&(i.width=1),typeof i.height>"u"&&(i.height=1),typeof i.tiltX>"u"&&(i.tiltX=0),typeof i.tiltY>"u"&&(i.tiltY=0),typeof i.pointerType>"u"&&(i.pointerType="mouse"),typeof i.pointerId>"u"&&(i.pointerId=Nk),typeof i.pressure>"u"&&(i.pressure=.5),typeof i.twist>"u"&&(i.twist=0),typeof i.tangentialPressure>"u"&&(i.tangentialPressure=0),i.isNormalized=!0,t.push(i)}else t.push(e);return t}normalizeWheelEvent(e){let t=this._rootWheelEvent;return this._transferMouseData(t,e),t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ,t.deltaMode=e.deltaMode,this.mapPositionToPoint(t.screen,e.clientX,e.clientY),t.global.copyFrom(t.screen),t.offset.copyFrom(t.screen),t.nativeEvent=e,t.type=e.type,t}_bootstrapEvent(e,t){return e.originalEvent=null,e.nativeEvent=t,e.pointerId=t.pointerId,e.width=t.width,e.height=t.height,e.isPrimary=t.isPrimary,e.pointerType=t.pointerType,e.pressure=t.pressure,e.tangentialPressure=t.tangentialPressure,e.tiltX=t.tiltX,e.tiltY=t.tiltY,e.twist=t.twist,this._transferMouseData(e,t),this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.copyFrom(e.screen),e.offset.copyFrom(e.screen),e.isTrusted=t.isTrusted,e.type==="pointerleave"&&(e.type="pointerout"),e.type.startsWith("mouse")&&(e.type=e.type.replace("mouse","pointer")),e.type.startsWith("touch")&&(e.type=Lk[e.type]||e.type),e}_transferMouseData(e,t){e.isTrusted=t.isTrusted,e.srcElement=t.srcElement,e.timeStamp=performance.now(),e.type=t.type,e.altKey=t.altKey,e.button=t.button,e.buttons=t.buttons,e.client.x=t.clientX,e.client.y=t.clientY,e.ctrlKey=t.ctrlKey,e.metaKey=t.metaKey,e.movement.x=t.movementX,e.movement.y=t.movementY,e.page.x=t.pageX,e.page.y=t.pageY,e.relatedTarget=null,e.shiftKey=t.shiftKey}};wd.extension={name:"events",type:[b.WebGLSystem,b.CanvasSystem,b.WebGPUSystem],priority:-1};wd.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};Qc=wd});var E0,k0=p(()=>{Sd();$c();E0={onclick:null,onmousedown:null,onmouseenter:null,onmouseleave:null,onmousemove:null,onglobalmousemove:null,onmouseout:null,onmouseover:null,onmouseup:null,onmouseupoutside:null,onpointercancel:null,onpointerdown:null,onpointerenter:null,onpointerleave:null,onpointermove:null,onglobalpointermove:null,onpointerout:null,onpointerover:null,onpointertap:null,onpointerup:null,onpointerupoutside:null,onrightclick:null,onrightdown:null,onrightup:null,onrightupoutside:null,ontap:null,ontouchcancel:null,ontouchend:null,ontouchendoutside:null,ontouchmove:null,onglobaltouchmove:null,ontouchstart:null,onwheel:null,get interactive(){return this.eventMode==="dynamic"||this.eventMode==="static"},set interactive(r){this.eventMode=r?"static":"passive"},_internalEventMode:void 0,get eventMode(){return this._internalEventMode??Qc.defaultEventMode},set eventMode(r){this._internalEventMode=r},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:!0,hitArea:null,addEventListener(r,e,t){let i=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof t=="object"?t.signal:void 0,n=typeof t=="object"?t.once===!0:!1,o=typeof e=="function"?void 0:e;r=i?`${r}capture`:r;let a=typeof e=="function"?e:e.handleEvent,c=this;s&&s.addEventListener("abort",()=>{c.off(r,a,o)}),n?c.once(r,a,o):c.on(r,a,o)},removeEventListener(r,e,t){let i=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof e=="function"?void 0:e;r=i?`${r}capture`:r,e=typeof e=="function"?e:e.handleEvent,this.off(r,e,s)},dispatchEvent(r){if(!(r instanceof zr))throw new Error("Container cannot propagate events outside of the Federated Events API");return r.defaultPrevented=!1,r.path=null,r.target=this,r.manager.dispatchEvent(r),!r.defaultPrevented}}});var A0=p(()=>{P();Ht();Sd();k0();O.add(Qc);O.mixin(we,E0)});var Xn,P0=p(()=>{P();Xn=class{constructor(e){this._attachedDomElements=[],this._renderer=e,this._renderer.runners.postrender.add(this),this._domElement=document.createElement("div"),this._domElement.style.position="absolute",this._domElement.style.top="0",this._domElement.style.left="0",this._domElement.style.pointerEvents="none",this._domElement.style.zIndex="1000"}addRenderable(e,t){this._attachedDomElements.includes(e)||this._attachedDomElements.push(e)}updateRenderable(e){}validateRenderable(e){return!0}postrender(){let e=this._attachedDomElements;if(e.length===0){this._domElement.remove();return}let t=this._renderer.view.canvas;this._domElement.parentNode!==t.parentNode&&t.parentNode?.appendChild(this._domElement);let i=parseFloat(t.style.width)/t.width*this._renderer.resolution,s=parseFloat(t.style.height)/t.height*this._renderer.resolution;this._domElement.style.transform=`translate(${t.offsetLeft}px, ${t.offsetTop}px) scale(${i}, ${s})`;for(let n=0;n<e.length;n++){let o=e[n],a=o.element;if(!o.parent||o.globalDisplayStatus<7)a?.remove(),e.splice(n,1),n--;else{this._domElement.contains(a)||(a.style.position="absolute",a.style.pointerEvents="auto",this._domElement.appendChild(a));let c=o.worldTransform,u=o._anchor,l=o.width*u.x,h=o.height*u.y;a.style.transformOrigin=`${l}px ${h}px`,a.style.transform=`matrix(${c.a}, ${c.b}, ${c.c}, ${c.d}, ${c.tx-l}, ${c.ty-h})`,a.style.opacity=o.groupAlpha.toString()}}}destroy(){this._renderer.runners.postrender.remove(this);for(let e=0;e<this._attachedDomElements.length;e++)this._attachedDomElements[e].element?.remove();this._attachedDomElements.length=0,this._domElement.remove(),this._renderer=null}};Xn.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"dom"}});var Hr,Zc=p(()=>{ot();Ht();Hr=class extends we{constructor(e){super(e),this.canBundle=!0,this.allowChildren=!1,this._roundPixels=0,this._lastUsed=-1,this._gpuData=Object.create(null),this._bounds=new ae(0,1,0,0),this._boundsDirty=!0}get bounds(){return this._boundsDirty?(this.updateBounds(),this._boundsDirty=!1,this._bounds):this._bounds}get roundPixels(){return!!this._roundPixels}set roundPixels(e){this._roundPixels=e?1:0}containsPoint(e){let t=this.bounds,{x:i,y:s}=e;return i>=t.minX&&i<=t.maxX&&s>=t.minY&&s<=t.maxY}onViewUpdate(){if(this._didViewChangeTick++,this._boundsDirty=!0,this.didViewUpdate)return;this.didViewUpdate=!0;let e=this.renderGroup||this.parentRenderGroup;e&&e.onChildViewUpdate(this)}destroy(e){super.destroy(e),this._bounds=null;for(let t in this._gpuData)this._gpuData[t].destroy?.();this._gpuData=null}collectRenderablesSimple(e,t,i){let{renderPipes:s}=t;s.blendMode.setBlendMode(this,this.groupBlendMode,e),s[this.renderPipeId].addRenderable(this,e),this.didViewUpdate=!1;let o=this.children,a=o.length;for(let c=0;c<a;c++)o[c].collectRenderables(e,t,i)}}});var B0=p(()=>{P();P0();O.add(Xn)});var vd,R0=p(()=>{"use strict";vd=(r=>(r[r.Low=0]="Low",r[r.Normal=1]="Normal",r[r.High=2]="High",r))(vd||{})});var D0,M0=p(()=>{"use strict";D0={createCanvas:(r,e)=>{let t=document.createElement("canvas");return t.width=r,t.height=e,t},getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(r,e)=>fetch(r,e),parseXML:r=>new DOMParser().parseFromString(r,"text/xml")}});var I0,W,ve=p(()=>{M0();I0=D0,W={get(){return I0},set(r){I0=r}}});function Ft(r){if(typeof r!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(r)}`)}function Yn(r){return r.split("?")[0].split("#")[0]}function zk(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Vk(r,e,t){return r.replace(new RegExp(zk(e),"g"),t)}function Hk(r,e){let t="",i=0,s=-1,n=0,o=-1;for(let a=0;a<=r.length;++a){if(a<r.length)o=r.charCodeAt(a);else{if(o===47)break;o=47}if(o===47){if(!(s===a-1||n===1))if(s!==a-1&&n===2){if(t.length<2||i!==2||t.charCodeAt(t.length-1)!==46||t.charCodeAt(t.length-2)!==46){if(t.length>2){let c=t.lastIndexOf("/");if(c!==t.length-1){c===-1?(t="",i=0):(t=t.slice(0,c),i=t.length-1-t.lastIndexOf("/")),s=a,n=0;continue}}else if(t.length===2||t.length===1){t="",i=0,s=a,n=0;continue}}e&&(t.length>0?t+="/..":t="..",i=2)}else t.length>0?t+=`/${r.slice(s+1,a)}`:t=r.slice(s+1,a),i=a-s-1;s=a,n=0}else o===46&&n!==-1?++n:n=-1}return t}var Ei,Cd=p(()=>{ve();Ei={toPosix(r){return Vk(r,"\\","/")},isUrl(r){return/^https?:/.test(this.toPosix(r))},isDataUrl(r){return/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(r)},isBlobUrl(r){return r.startsWith("blob:")},hasProtocol(r){return/^[^/:]+:/.test(this.toPosix(r))},getProtocol(r){Ft(r),r=this.toPosix(r);let e=/^file:\/\/\//.exec(r);if(e)return e[0];let t=/^[^/:]+:\/{0,2}/.exec(r);return t?t[0]:""},toAbsolute(r,e,t){if(Ft(r),this.isDataUrl(r)||this.isBlobUrl(r))return r;let i=Yn(this.toPosix(e??W.get().getBaseUrl())),s=Yn(this.toPosix(t??this.rootname(i)));return r=this.toPosix(r),r.startsWith("/")?Ei.join(s,r.slice(1)):this.isAbsolute(r)?r:this.join(i,r)},normalize(r){if(Ft(r),r.length===0)return".";if(this.isDataUrl(r)||this.isBlobUrl(r))return r;r=this.toPosix(r);let e="",t=r.startsWith("/");this.hasProtocol(r)&&(e=this.rootname(r),r=r.slice(e.length));let i=r.endsWith("/");return r=Hk(r,!1),r.length>0&&i&&(r+="/"),t?`/${r}`:e+r},isAbsolute(r){return Ft(r),r=this.toPosix(r),this.hasProtocol(r)?!0:r.startsWith("/")},join(...r){if(r.length===0)return".";let e;for(let t=0;t<r.length;++t){let i=r[t];if(Ft(i),i.length>0)if(e===void 0)e=i;else{let s=r[t-1]??"";this.joinExtensions.includes(this.extname(s).toLowerCase())?e+=`/../${i}`:e+=`/${i}`}}return e===void 0?".":this.normalize(e)},dirname(r){if(Ft(r),r.length===0)return".";r=this.toPosix(r);let e=r.charCodeAt(0),t=e===47,i=-1,s=!0,n=this.getProtocol(r),o=r;r=r.slice(n.length);for(let a=r.length-1;a>=1;--a)if(e=r.charCodeAt(a),e===47){if(!s){i=a;break}}else s=!1;return i===-1?t?"/":this.isUrl(o)?n+r:n:t&&i===1?"//":n+r.slice(0,i)},rootname(r){Ft(r),r=this.toPosix(r);let e="";if(r.startsWith("/")?e="/":e=this.getProtocol(r),this.isUrl(r)){let t=r.indexOf("/",e.length);t!==-1?e=r.slice(0,t):e=r,e.endsWith("/")||(e+="/")}return e},basename(r,e){Ft(r),e&&Ft(e),r=Yn(this.toPosix(r));let t=0,i=-1,s=!0,n;if(e!==void 0&&e.length>0&&e.length<=r.length){if(e.length===r.length&&e===r)return"";let o=e.length-1,a=-1;for(n=r.length-1;n>=0;--n){let c=r.charCodeAt(n);if(c===47){if(!s){t=n+1;break}}else a===-1&&(s=!1,a=n+1),o>=0&&(c===e.charCodeAt(o)?--o===-1&&(i=n):(o=-1,i=a))}return t===i?i=a:i===-1&&(i=r.length),r.slice(t,i)}for(n=r.length-1;n>=0;--n)if(r.charCodeAt(n)===47){if(!s){t=n+1;break}}else i===-1&&(s=!1,i=n+1);return i===-1?"":r.slice(t,i)},extname(r){Ft(r),r=Yn(this.toPosix(r));let e=-1,t=0,i=-1,s=!0,n=0;for(let o=r.length-1;o>=0;--o){let a=r.charCodeAt(o);if(a===47){if(!s){t=o+1;break}continue}i===-1&&(s=!1,i=o+1),a===46?e===-1?e=o:n!==1&&(n=1):e!==-1&&(n=-1)}return e===-1||i===-1||n===0||n===1&&e===i-1&&e===t+1?"":r.slice(e,i)},parse(r){Ft(r);let e={root:"",dir:"",base:"",ext:"",name:""};if(r.length===0)return e;r=Yn(this.toPosix(r));let t=r.charCodeAt(0),i=this.isAbsolute(r),s,n="";e.root=this.rootname(r),i||this.hasProtocol(r)?s=1:s=0;let o=-1,a=0,c=-1,u=!0,l=r.length-1,h=0;for(;l>=s;--l){if(t=r.charCodeAt(l),t===47){if(!u){a=l+1;break}continue}c===-1&&(u=!1,c=l+1),t===46?o===-1?o=l:h!==1&&(h=1):o!==-1&&(h=-1)}return o===-1||c===-1||h===0||h===1&&o===c-1&&o===a+1?c!==-1&&(a===0&&i?e.base=e.name=r.slice(1,c):e.base=e.name=r.slice(a,c)):(a===0&&i?(e.name=r.slice(1,o),e.base=r.slice(1,c)):(e.name=r.slice(a,o),e.base=r.slice(a,c)),e.ext=r.slice(o,c)),e.dir=this.dirname(r),n&&(e.dir=n+e.dir),e},sep:"/",delimiter:":",joinExtensions:[".html"]}});var Wr,Ed=p(()=>{"use strict";Wr=(r,e,t=!1)=>(Array.isArray(r)||(r=[r]),e?r.map(i=>typeof i=="string"||t?e(i):i):r)});function F0(r,e,t,i,s){let n=e[t];for(let o=0;o<n.length;o++){let a=n[o];t<e.length-1?F0(r.replace(i[t],a),e,t+1,i,s):s.push(r.replace(i[t],a))}}function U0(r){let e=/\{(.*?)\}/g,t=r.match(e),i=[];if(t){let s=[];t.forEach(n=>{let o=n.substring(1,n.length-1).split(",");s.push(o)}),F0(r,s,0,t,i)}else i.push(r);return i}var O0=p(()=>{"use strict"});var kd,G0=p(()=>{"use strict";kd=r=>!Array.isArray(r)});function Wk(r){return r.split(".").pop().split("?").shift().split("#").shift()}var Kn,N0=p(()=>{ge();Cd();Ed();O0();G0();Kn=class{constructor(){this._defaultBundleIdentifierOptions={connector:"-",createBundleAssetId:(e,t)=>`${e}${this._bundleIdConnector}${t}`,extractAssetIdFromBundle:(e,t)=>t.replace(`${e}${this._bundleIdConnector}`,"")},this._bundleIdConnector=this._defaultBundleIdentifierOptions.connector,this._createBundleAssetId=this._defaultBundleIdentifierOptions.createBundleAssetId,this._extractAssetIdFromBundle=this._defaultBundleIdentifierOptions.extractAssetIdFromBundle,this._assetMap={},this._preferredOrder=[],this._parsers=[],this._resolverHash={},this._bundles={}}setBundleIdentifier(e){if(this._bundleIdConnector=e.connector??this._bundleIdConnector,this._createBundleAssetId=e.createBundleAssetId??this._createBundleAssetId,this._extractAssetIdFromBundle=e.extractAssetIdFromBundle??this._extractAssetIdFromBundle,this._extractAssetIdFromBundle("foo",this._createBundleAssetId("foo","bar"))!=="bar")throw new Error("[Resolver] GenerateBundleAssetId are not working correctly")}prefer(...e){e.forEach(t=>{this._preferredOrder.push(t),t.priority||(t.priority=Object.keys(t.params))}),this._resolverHash={}}set basePath(e){this._basePath=e}get basePath(){return this._basePath}set rootPath(e){this._rootPath=e}get rootPath(){return this._rootPath}get parsers(){return this._parsers}reset(){this.setBundleIdentifier(this._defaultBundleIdentifierOptions),this._assetMap={},this._preferredOrder=[],this._resolverHash={},this._rootPath=null,this._basePath=null,this._manifest=null,this._bundles={},this._defaultSearchParams=null}setDefaultSearchParams(e){if(typeof e=="string")this._defaultSearchParams=e;else{let t=e;this._defaultSearchParams=Object.keys(t).map(i=>`${encodeURIComponent(i)}=${encodeURIComponent(t[i])}`).join("&")}}getAlias(e){let{alias:t,src:i}=e;return Wr(t||i,n=>typeof n=="string"?n:Array.isArray(n)?n.map(o=>o?.src??o):n?.src?n.src:n,!0)}addManifest(e){this._manifest&&G("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=e,e.bundles.forEach(t=>{this.addBundle(t.name,t.assets)})}addBundle(e,t){let i=[],s=t;Array.isArray(t)||(s=Object.entries(t).map(([n,o])=>typeof o=="string"||Array.isArray(o)?{alias:n,src:o}:{alias:n,...o})),s.forEach(n=>{let o=n.src,a=n.alias,c;if(typeof a=="string"){let u=this._createBundleAssetId(e,a);i.push(u),c=[a,u]}else{let u=a.map(l=>this._createBundleAssetId(e,l));i.push(...u),c=[...a,...u]}this.add({...n,alias:c,src:o})}),this._bundles[e]=i}add(e){let t=[];Array.isArray(e)?t.push(...e):t.push(e);let i;i=n=>{this.hasKey(n)&&G(`[Resolver] already has key: ${n} overwriting`)},Wr(t).forEach(n=>{let{src:o}=n,{data:a,format:c,loadParser:u}=n,l=Wr(o).map(d=>typeof d=="string"?U0(d):Array.isArray(d)?d:[d]),h=this.getAlias(n);Array.isArray(h)?h.forEach(i):i(h);let f=[];l.forEach(d=>{d.forEach(m=>{let x={};if(typeof m!="object"){x.src=m;for(let g=0;g<this._parsers.length;g++){let _=this._parsers[g];if(_.test(m)){x=_.parse(m);break}}}else a=m.data??a,c=m.format??c,u=m.loadParser??u,x={...x,...m};if(!h)throw new Error(`[Resolver] alias is undefined for this asset: ${x.src}`);x=this._buildResolvedAsset(x,{aliases:h,data:a,format:c,loadParser:u}),f.push(x)})}),h.forEach(d=>{this._assetMap[d]=f})})}resolveBundle(e){let t=kd(e);e=Wr(e);let i={};return e.forEach(s=>{let n=this._bundles[s];if(n){let o=this.resolve(n),a={};for(let c in o){let u=o[c];a[this._extractAssetIdFromBundle(s,c)]=u}i[s]=a}}),t?i[e[0]]:i}resolveUrl(e){let t=this.resolve(e);if(typeof e!="string"){let i={};for(let s in t)i[s]=t[s].src;return i}return t.src}resolve(e){let t=kd(e);e=Wr(e);let i={};return e.forEach(s=>{if(!this._resolverHash[s])if(this._assetMap[s]){let n=this._assetMap[s],o=this._getPreferredOrder(n);o?.priority.forEach(a=>{o.params[a].forEach(c=>{let u=n.filter(l=>l[a]?l[a]===c:!1);u.length&&(n=u)})}),this._resolverHash[s]=n[0]}else this._resolverHash[s]=this._buildResolvedAsset({alias:[s],src:s},{});i[s]=this._resolverHash[s]}),t?i[e[0]]:i}hasKey(e){return!!this._assetMap[e]}hasBundle(e){return!!this._bundles[e]}_getPreferredOrder(e){for(let t=0;t<e.length;t++){let i=e[t],s=this._preferredOrder.find(n=>n.params.format.includes(i.format));if(s)return s}return this._preferredOrder[0]}_appendDefaultSearchParams(e){if(!this._defaultSearchParams)return e;let t=/\?/.test(e)?"&":"?";return`${e}${t}${this._defaultSearchParams}`}_buildResolvedAsset(e,t){let{aliases:i,data:s,loadParser:n,format:o}=t;return(this._basePath||this._rootPath)&&(e.src=Ei.toAbsolute(e.src,this._basePath,this._rootPath)),e.alias=i??e.alias??[e.src],e.src=this._appendDefaultSearchParams(e.src),e.data={...s||{},...e.data},e.loadParser=n??e.loadParser,e.format=o??e.format??Wk(e.src),e}};Kn.RETINA_PREFIX=/@([0-9\.]+)x/});var Ad,L0=p(()=>{"use strict";Ad=(r,e)=>{let t=e.split("?")[1];return t&&(r+=`?${t}`),r}});var z0,Pd,V0=p(()=>{Ge();et();le();z0=class Qn{constructor(e,t){this.linkedSheets=[];let i=e;e?.source instanceof se&&(i={texture:e,data:t});let{texture:s,data:n,cachePrefix:o=""}=i;this.cachePrefix=o,this._texture=s instanceof D?s:null,this.textureSource=s.source,this.textures={},this.animations={},this.data=n;let a=parseFloat(n.meta.scale);a?(this.resolution=a,s.source.resolution=this.resolution):this.resolution=s.source._resolution,this._frames=this.data.frames,this._frameKeys=Object.keys(this._frames),this._batchIndex=0,this._callback=null}parse(){return new Promise(e=>{this._callback=e,this._batchIndex=0,this._frameKeys.length<=Qn.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}_processFrames(e){let t=e,i=Qn.BATCH_SIZE;for(;t-e<i&&t<this._frameKeys.length;){let s=this._frameKeys[t],n=this._frames[s],o=n.frame;if(o){let a=null,c=null,u=n.trimmed!==!1&&n.sourceSize?n.sourceSize:n.frame,l=new Y(0,0,Math.floor(u.w)/this.resolution,Math.floor(u.h)/this.resolution);n.rotated?a=new Y(Math.floor(o.x)/this.resolution,Math.floor(o.y)/this.resolution,Math.floor(o.h)/this.resolution,Math.floor(o.w)/this.resolution):a=new Y(Math.floor(o.x)/this.resolution,Math.floor(o.y)/this.resolution,Math.floor(o.w)/this.resolution,Math.floor(o.h)/this.resolution),n.trimmed!==!1&&n.spriteSourceSize&&(c=new Y(Math.floor(n.spriteSourceSize.x)/this.resolution,Math.floor(n.spriteSourceSize.y)/this.resolution,Math.floor(o.w)/this.resolution,Math.floor(o.h)/this.resolution)),this.textures[s]=new D({source:this.textureSource,frame:a,orig:l,trim:c,rotate:n.rotated?2:0,defaultAnchor:n.anchor,defaultBorders:n.borders,label:s.toString()})}t++}}_processAnimations(){let e=this.data.animations||{};for(let t in e){this.animations[t]=[];for(let i=0;i<e[t].length;i++){let s=e[t][i];this.animations[t].push(this.textures[s])}}}_parseComplete(){let e=this._callback;this._callback=null,this._batchIndex=0,e.call(this,this.textures)}_nextBatch(){this._processFrames(this._batchIndex*Qn.BATCH_SIZE),this._batchIndex++,setTimeout(()=>{this._batchIndex*Qn.BATCH_SIZE<this._frameKeys.length?this._nextBatch():(this._processAnimations(),this._parseComplete())},0)}destroy(e=!1){for(let t in this.textures)this.textures[t].destroy();this._frames=null,this._frameKeys=null,this.data=null,this.textures=null,e&&(this._texture?.destroy(),this.textureSource.destroy()),this._texture=null,this.textureSource=null,this.linkedSheets=[]}};z0.BATCH_SIZE=1e3;Pd=z0});function H0(r,e,t){let i={};if(r.forEach(s=>{i[s]=e}),Object.keys(e.textures).forEach(s=>{i[`${e.cachePrefix}${s}`]=e.textures[s]}),!t){let s=Ei.dirname(r[0]);e.linkedSheets.forEach((n,o)=>{let a=H0([`${s}/${e.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(i,a)})}return i}var $k,W0,$0=p(()=>{R0();N0();L0();P();le();Cd();V0();$k=["jpg","png","jpeg","avif","webp","basis","etc2","bc7","bc6h","bc5","bc4","bc3","bc2","bc1","eac","astc"];W0={extension:b.Asset,cache:{test:r=>r instanceof Pd,getCacheableAssets:(r,e)=>H0(r,e,!1)},resolver:{extension:{type:b.ResolveParser,name:"resolveSpritesheet"},test:r=>{let t=r.split("?")[0].split("."),i=t.pop(),s=t.pop();return i==="json"&&$k.includes(s)},parse:r=>{let e=r.split(".");return{resolution:parseFloat(Kn.RETINA_PREFIX.exec(r)?.[1]??"1"),format:e[e.length-2],src:r}}},loader:{name:"spritesheetLoader",extension:{type:b.LoadParser,priority:vd.Normal,name:"spritesheetLoader"},async testParse(r,e){return Ei.extname(e.src).toLowerCase()===".json"&&!!r.frames},async parse(r,e,t){let{texture:i,imageFilename:s,textureOptions:n,cachePrefix:o}=e?.data??{},a=Ei.dirname(e.src);a&&a.lastIndexOf("/")!==a.length-1&&(a+="/");let c;if(i instanceof D)c=i;else{let h=Ad(a+(s??r.meta.image),e.src);c=(await t.load([{src:h,data:n}]))[h]}let u=new Pd({texture:c.source,data:r,cachePrefix:o});await u.parse();let l=r?.meta?.related_multi_packs;if(Array.isArray(l)){let h=[];for(let d of l){if(typeof d!="string")continue;let m=a+d;e.data?.ignoreMultiPack||(m=Ad(m,e.src),h.push(t.load({src:m,data:{textureOptions:n,ignoreMultiPack:!0}})))}let f=await Promise.all(h);u.linkedSheets=f,f.forEach(d=>{d.linkedSheets=[u].concat(u.linkedSheets.filter(m=>m!==d))})}return u},async unload(r,e,t){await t.unload(r.textureSource._sourceOrigin),r.destroy(!1)}}}});var Jc=p(()=>{P();$0();O.add(W0)});function eu(r,e,t){let{width:i,height:s}=t.orig,n=t.trim;if(n){let o=n.width,a=n.height;r.minX=n.x-e._x*i,r.maxX=r.minX+o,r.minY=n.y-e._y*s,r.maxY=r.minY+a}else r.minX=-e._x*i,r.maxX=r.minX+i,r.minY=-e._y*s,r.maxY=r.minY+s}var Bd=p(()=>{"use strict"});var qt,tu=p(()=>{Ic();le();Bd();ye();Zc();qt=class r extends Hr{constructor(e=D.EMPTY){e instanceof D&&(e={texture:e});let{texture:t=D.EMPTY,anchor:i,roundPixels:s,width:n,height:o,...a}=e;super({label:"Sprite",...a}),this.renderPipeId="sprite",this.batched=!0,this._visualBounds={minX:0,maxX:1,minY:0,maxY:0},this._anchor=new We({_onUpdate:()=>{this.onViewUpdate()}}),i?this.anchor=i:t.defaultAnchor&&(this.anchor=t.defaultAnchor),this.texture=t,this.allowChildren=!1,this.roundPixels=s??!1,n!==void 0&&(this.width=n),o!==void 0&&(this.height=o)}static from(e,t=!1){return e instanceof D?new r(e):new r(D.from(e,t))}set texture(e){e||(e=D.EMPTY);let t=this._texture;t!==e&&(t&&t.dynamic&&t.off("update",this.onViewUpdate,this),e.dynamic&&e.on("update",this.onViewUpdate,this),this._texture=e,this._width&&this._setWidth(this._width,this._texture.orig.width),this._height&&this._setHeight(this._height,this._texture.orig.height),this.onViewUpdate())}get texture(){return this._texture}get visualBounds(){return eu(this._visualBounds,this._anchor,this._texture),this._visualBounds}get sourceBounds(){return z("8.6.1","Sprite.sourceBounds is deprecated, use visualBounds instead."),this.visualBounds}updateBounds(){let e=this._anchor,t=this._texture,i=this._bounds,{width:s,height:n}=t.orig;i.minX=-e._x*s,i.maxX=i.minX+s,i.minY=-e._y*n,i.maxY=i.minY+n}destroy(e=!1){if(super.destroy(e),typeof e=="boolean"?e:e?.texture){let i=typeof e=="boolean"?e:e?.textureSource;this._texture.destroy(i)}this._texture=null,this._visualBounds=null,this._bounds=null,this._anchor=null,this._gpuData=null}get anchor(){return this._anchor}set anchor(e){typeof e=="number"?this._anchor.set(e):this._anchor.copyFrom(e)}get width(){return Math.abs(this.scale.x)*this._texture.orig.width}set width(e){this._setWidth(e,this._texture.orig.width),this._width=e}get height(){return Math.abs(this.scale.y)*this._texture.orig.height}set height(e){this._setHeight(e,this._texture.orig.height),this._height=e}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this._texture.orig.width,e.height=Math.abs(this.scale.y)*this._texture.orig.height,e}setSize(e,t){typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,this._texture.orig.width),t!==void 0&&this._setHeight(t,this._texture.orig.height)}}});function ru(r,e,t){let i=qk;r.measurable=!0,os(r,t,i),e.addBoundsMask(i),r.measurable=!1}var qk,Rd=p(()=>{ot();Nn();qk=new ae});function iu(r,e,t){let i=gt.get();r.measurable=!0;let s=Re.get().identity(),n=q0(r,t,s);cs(r,i,n),r.measurable=!1,e.addBoundsMask(i),Re.return(s),gt.return(i)}function q0(r,e,t){return r?(r!==e&&(q0(r.parent,e,t),r.updateLocalTransform(),t.append(r.localTransform)),t):(G("Mask bounds, renderable is not inside the root container"),t)}var Dd=p(()=>{zc();_i();ge()});var Zn,j0=p(()=>{P();tu();Rd();Dd();Zn=class{constructor(e){this.priority=0,this.inverse=!1,this.pipe="alphaMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e,this.renderMaskToTexture=!(e instanceof qt),this.mask.renderable=this.renderMaskToTexture,this.mask.includeInBuild=!this.renderMaskToTexture,this.mask.measurable=!1}reset(){this.mask.measurable=!0,this.mask=null}addBounds(e,t){this.inverse||ru(this.mask,e,t)}addLocalBounds(e,t){iu(this.mask,e,t)}containsPoint(e,t){let i=this.mask;return t(i,e)}destroy(){this.reset()}static test(e){return e instanceof qt}};Zn.extension=b.MaskEffect});var Jn,X0=p(()=>{P();Jn=class{constructor(e){this.priority=0,this.pipe="colorMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e}destroy(){}static test(e){return typeof e=="number"}};Jn.extension=b.MaskEffect});var eo,Y0=p(()=>{P();Ht();Rd();Dd();eo=class{constructor(e){this.priority=0,this.pipe="stencilMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e,this.mask.includeInBuild=!1,this.mask.measurable=!1}reset(){this.mask.measurable=!0,this.mask.includeInBuild=!0,this.mask=null}addBounds(e,t){ru(this.mask,e,t)}addLocalBounds(e,t){iu(this.mask,e,t)}containsPoint(e,t){let i=this.mask;return t(i,e)}destroy(){this.reset()}static test(e){return e instanceof we}};eo.extension=b.MaskEffect});var je,ms=p(()=>{ve();P();et();je=class extends se{constructor(e){e.resource||(e.resource=W.get().createCanvas()),e.width||(e.width=e.resource.width,e.autoDensity||(e.width/=e.resolution)),e.height||(e.height=e.resource.height,e.autoDensity||(e.height/=e.resolution)),super(e),this.uploadMethodId="image",this.autoDensity=e.autoDensity,this.resizeCanvas(),this.transparent=!!e.transparent}resizeCanvas(){this.autoDensity&&"style"in this.resource&&(this.resource.style.width=`${this.width}px`,this.resource.style.height=`${this.height}px`),(this.resource.width!==this.pixelWidth||this.resource.height!==this.pixelHeight)&&(this.resource.width=this.pixelWidth,this.resource.height=this.pixelHeight)}resize(e=this.width,t=this.height,i=this._resolution){let s=super.resize(e,t,i);return s&&this.resizeCanvas(),s}static test(e){return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement||globalThis.OffscreenCanvas&&e instanceof OffscreenCanvas}get context2D(){return this._context2D||(this._context2D=this.resource.getContext("2d"))}};je.extension=b.TextureSource});var jt,su=p(()=>{P();et();jt=class extends se{constructor(e){super(e),this.uploadMethodId="image",this.autoGarbageCollect=!0}static test(e){return globalThis.HTMLImageElement&&e instanceof HTMLImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||globalThis.VideoFrame&&e instanceof VideoFrame}};jt.extension=b.TextureSource});async function K0(){return Md??(Md=(async()=>{let e=document.createElement("canvas").getContext("webgl");if(!e)return"premultiply-alpha-on-upload";let t=await new Promise(o=>{let a=document.createElement("video");a.onloadeddata=()=>o(a),a.onerror=()=>o(null),a.autoplay=!1,a.crossOrigin="anonymous",a.preload="auto",a.src="data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQJChYECGFOAZwEAAAAAAAHTEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHGTbuMU6uEElTDZ1OsggEXTbuMU6uEHFO7a1OsggG97AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmoCrXsYMPQkBNgIRMYXZmV0GETGF2ZkSJiEBEAAAAAAAAFlSua8yuAQAAAAAAAEPXgQFzxYgAAAAAAAAAAZyBACK1nIN1bmSIgQCGhVZfVlA5g4EBI+ODhAJiWgDglLCBArqBApqBAlPAgQFVsIRVuYEBElTDZ9Vzc9JjwItjxYgAAAAAAAAAAWfInEWjh0VOQ09ERVJEh49MYXZjIGxpYnZweC12cDlnyKJFo4hEVVJBVElPTkSHlDAwOjAwOjAwLjA0MDAwMDAwMAAAH0O2dcfngQCgwqGggQAAAIJJg0IAABAAFgA4JBwYSgAAICAAEb///4r+AAB1oZ2mm+6BAaWWgkmDQgAAEAAWADgkHBhKAAAgIABIQBxTu2uRu4+zgQC3iveBAfGCAXHwgQM=",a.load()});if(!t)return"premultiply-alpha-on-upload";let i=e.createTexture();e.bindTexture(e.TEXTURE_2D,i);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,i,0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t);let n=new Uint8Array(4);return e.readPixels(0,0,1,1,e.RGBA,e.UNSIGNED_BYTE,n),e.deleteFramebuffer(s),e.deleteTexture(i),e.getExtension("WEBGL_lose_context")?.loseContext(),n[0]<=n[3]?"premultiplied-alpha":"premultiply-alpha-on-upload"})()),Md}var Md,Q0=p(()=>{"use strict"});var nu,J0,e_=p(()=>{P();$n();Q0();et();nu=class Z0 extends se{constructor(e){super(e),this.isReady=!1,this.uploadMethodId="video",e={...Z0.defaultOptions,...e},this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=e.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=e.autoPlay!==!1,this.alphaMode=e.alphaMode??"premultiply-alpha-on-upload",this._videoFrameRequestCallback=this._videoFrameRequestCallback.bind(this),this._videoFrameRequestCallbackHandle=null,this._load=null,this._resolve=null,this._reject=null,this._onCanPlay=this._onCanPlay.bind(this),this._onCanPlayThrough=this._onCanPlayThrough.bind(this),this._onError=this._onError.bind(this),this._onPlayStart=this._onPlayStart.bind(this),this._onPlayStop=this._onPlayStop.bind(this),this._onSeeked=this._onSeeked.bind(this),e.autoLoad!==!1&&this.load()}updateFrame(){if(!this.destroyed){if(this._updateFPS){let e=at.shared.elapsedMS*this.resource.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-e)}(!this._updateFPS||this._msToNextUpdate<=0)&&(this._msToNextUpdate=this._updateFPS?Math.floor(1e3/this._updateFPS):0),this.isValid&&this.update()}}_videoFrameRequestCallback(){this.updateFrame(),this.destroyed?this._videoFrameRequestCallbackHandle=null:this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback)}get isValid(){return!!this.resource.videoWidth&&!!this.resource.videoHeight}async load(){if(this._load)return this._load;let e=this.resource,t=this.options;return(e.readyState===e.HAVE_ENOUGH_DATA||e.readyState===e.HAVE_FUTURE_DATA)&&e.width&&e.height&&(e.complete=!0),e.addEventListener("play",this._onPlayStart),e.addEventListener("pause",this._onPlayStop),e.addEventListener("seeked",this._onSeeked),this._isSourceReady()?this._mediaReady():(t.preload||e.addEventListener("canplay",this._onCanPlay),e.addEventListener("canplaythrough",this._onCanPlayThrough),e.addEventListener("error",this._onError,!0)),this.alphaMode=await K0(),this._load=new Promise((i,s)=>{this.isValid?i(this):(this._resolve=i,this._reject=s,t.preloadTimeoutMs!==void 0&&(this._preloadTimeout=setTimeout(()=>{this._onError(new ErrorEvent(`Preload exceeded timeout of ${t.preloadTimeoutMs}ms`))})),e.load())}),this._load}_onError(e){this.resource.removeEventListener("error",this._onError,!0),this.emit("error",e),this._reject&&(this._reject(e),this._reject=null,this._resolve=null)}_isSourcePlaying(){let e=this.resource;return!e.paused&&!e.ended}_isSourceReady(){return this.resource.readyState>2}_onPlayStart(){this.isValid||this._mediaReady(),this._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0)}_onCanPlay(){this.resource.removeEventListener("canplay",this._onCanPlay),this._mediaReady()}_onCanPlayThrough(){this.resource.removeEventListener("canplaythrough",this._onCanPlay),this._preloadTimeout&&(clearTimeout(this._preloadTimeout),this._preloadTimeout=void 0),this._mediaReady()}_mediaReady(){let e=this.resource;this.isValid&&(this.isReady=!0,this.resize(e.videoWidth,e.videoHeight)),this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0,this._resolve&&(this._resolve(this),this._resolve=null,this._reject=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&this.resource.play()}destroy(){this._configureAutoUpdate();let e=this.resource;e&&(e.removeEventListener("play",this._onPlayStart),e.removeEventListener("pause",this._onPlayStop),e.removeEventListener("seeked",this._onSeeked),e.removeEventListener("canplay",this._onCanPlay),e.removeEventListener("canplaythrough",this._onCanPlayThrough),e.removeEventListener("error",this._onError,!0),e.pause(),e.src="",e.load()),super.destroy()}get autoUpdate(){return this._autoUpdate}set autoUpdate(e){e!==this._autoUpdate&&(this._autoUpdate=e,this._configureAutoUpdate())}get updateFPS(){return this._updateFPS}set updateFPS(e){e!==this._updateFPS&&(this._updateFPS=e,this._configureAutoUpdate())}_configureAutoUpdate(){this._autoUpdate&&this._isSourcePlaying()?!this._updateFPS&&this.resource.requestVideoFrameCallback?(this._isConnectedToTicker&&(at.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0),this._videoFrameRequestCallbackHandle===null&&(this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback))):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker||(at.shared.add(this.updateFrame,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(at.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(e){return globalThis.HTMLVideoElement&&e instanceof HTMLVideoElement}};nu.extension=b.TextureSource;nu.defaultOptions={...se.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1};nu.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};J0=nu});var Id,De,to=p(()=>{ge();Ed();Id=class{constructor(){this._parsers=[],this._cache=new Map,this._cacheMap=new Map}reset(){this._cacheMap.clear(),this._cache.clear()}has(e){return this._cache.has(e)}get(e){let t=this._cache.get(e);return t||G(`[Assets] Asset id ${e} was not found in the Cache`),t}set(e,t){let i=Wr(e),s;for(let c=0;c<this.parsers.length;c++){let u=this.parsers[c];if(u.test(t)){s=u.getCacheableAssets(i,t);break}}let n=new Map(Object.entries(s||{}));s||i.forEach(c=>{n.set(c,t)});let o=[...n.keys()],a={cacheKeys:o,keys:i};i.forEach(c=>{this._cacheMap.set(c,a)}),o.forEach(c=>{let u=s?s[c]:t;this._cache.has(c)&&this._cache.get(c)!==u&&G("[Cache] already has key:",c),this._cache.set(c,n.get(c))})}remove(e){if(!this._cacheMap.has(e)){G(`[Assets] Asset id ${e} was not found in the Cache`);return}let t=this._cacheMap.get(e);t.cacheKeys.forEach(s=>{this._cache.delete(s)}),t.keys.forEach(s=>{this._cacheMap.delete(s)})}get parsers(){return this._parsers}},De=new Id});function t_(r={}){let e=r&&r.resource,t=e?r.resource:r,i=e?r:{resource:r};for(let s=0;s<Fd.length;s++){let n=Fd[s];if(n.test(t))return new n(i)}throw new Error(`Could not find a source type for resource: ${i.resource}`)}function r_(r={},e=!1){let t=r&&r.resource,i=t?r.resource:r,s=t?r:{resource:r};if(!e&&De.has(i))return De.get(i);let n=new D({source:t_(s)});return n.on("destroy",()=>{De.has(i)&&De.remove(i)}),e||De.set(i,n),n}function i_(r,e=!1){return typeof r=="string"?De.get(r):r instanceof se?new D({source:r}):r_(r,e)}var Fd,Ud=p(()=>{to();P();et();le();Fd=[];O.handleByList(b.TextureSource,Fd);D.from=i_;se.from=t_});var ou=p(()=>{P();j0();X0();Y0();nd();ms();su();e_();Ud();O.add(Zn,Jn,eo,J0,jt,je,vi)});var Ne,$r=p(()=>{"use strict";Ne=class{constructor(e){this.resources=Object.create(null),this._dirty=!0;let t=0;for(let i in e){let s=e[i];this.setResource(s,t++)}this._updateKey()}_updateKey(){if(!this._dirty)return;this._dirty=!1;let e=[],t=0;for(let i in this.resources)e[t++]=this.resources[i]._resourceId;this._key=e.join("|")}setResource(e,t){let i=this.resources[t];e!==i&&(i&&e.off?.("change",this.onResourceChange,this),e.on?.("change",this.onResourceChange,this),this.resources[t]=e,this._dirty=!0)}getResource(e){return this.resources[e]}_touch(e){let t=this.resources;for(let i in t)t[i]._touched=e}destroy(){let e=this.resources;for(let t in e)e[t].off?.("change",this.onResourceChange,this);this.resources=null}onResourceChange(e){if(this._dirty=!0,e.destroyed){let t=this.resources;for(let i in t)t[i]===e&&(t[i]=null)}else this._updateKey()}}});function ps(r,e,t){let i=2166136261;for(let s=0;s<e;s++)i^=r[s].uid,i=Math.imul(i,16777619),i>>>=0;return s_[i]||jk(r,e,i,t)}function jk(r,e,t,i){let s={},n=0;for(let a=0;a<i;a++){let c=a<e?r[a]:D.EMPTY.source;s[n++]=c.source,s[n++]=c.style}let o=new Ne(s);return s_[t]=o,o}var s_,au=p(()=>{$r();le();s_={}});var Xt,Od=p(()=>{"use strict";Xt=class{constructor(e){typeof e=="number"?this.rawBinaryData=new ArrayBuffer(e):e instanceof Uint8Array?this.rawBinaryData=e.buffer:this.rawBinaryData=e,this.uint32View=new Uint32Array(this.rawBinaryData),this.float32View=new Float32Array(this.rawBinaryData),this.size=this.rawBinaryData.byteLength}get int8View(){return this._int8View||(this._int8View=new Int8Array(this.rawBinaryData)),this._int8View}get uint8View(){return this._uint8View||(this._uint8View=new Uint8Array(this.rawBinaryData)),this._uint8View}get int16View(){return this._int16View||(this._int16View=new Int16Array(this.rawBinaryData)),this._int16View}get int32View(){return this._int32View||(this._int32View=new Int32Array(this.rawBinaryData)),this._int32View}get float64View(){return this._float64Array||(this._float64Array=new Float64Array(this.rawBinaryData)),this._float64Array}get bigUint64View(){return this._bigUint64Array||(this._bigUint64Array=new BigUint64Array(this.rawBinaryData)),this._bigUint64Array}view(e){return this[`${e}View`]}destroy(){this.rawBinaryData=null,this._int8View=null,this._uint8View=null,this._int16View=null,this.uint16View=null,this._int32View=null,this.uint32View=null,this.float32View=null}static sizeOf(e){switch(e){case"int8":case"uint8":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;default:throw new Error(`${e} isn't a valid view type`)}}}});function ro(r,e){let t=r.byteLength/8|0,i=new Float64Array(r,0,t);new Float64Array(e,0,t).set(i);let n=r.byteLength-t*8;if(n>0){let o=new Uint8Array(r,t*8,n);new Uint8Array(e,t*8,n).set(o)}}var Gd=p(()=>{"use strict"});var n_,me,ki=p(()=>{"use strict";n_={normal:"normal-npm",add:"add-npm",screen:"screen-npm"},me=(r=>(r[r.DISABLED=0]="DISABLED",r[r.RENDERING_MASK_ADD=1]="RENDERING_MASK_ADD",r[r.MASK_ACTIVE=2]="MASK_ACTIVE",r[r.INVERSE_MASK_ACTIVE=3]="INVERSE_MASK_ACTIVE",r[r.RENDERING_MASK_REMOVE=4]="RENDERING_MASK_REMOVE",r[r.NONE=5]="NONE",r))(me||{})});function Tr(r,e){return e.alphaMode==="no-premultiply-alpha"&&n_[r]||r}var io=p(()=>{ki()});function uu(){return(!cu||cu?.isContextLost())&&(cu=W.get().createCanvas().getContext("webgl",{})),cu}var cu,Nd=p(()=>{ve()});function Yk(r){let e="";for(let t=0;t<r;++t)t>0&&(e+=`
|
|
20
|
+
else `),t<r-1&&(e+=`if(test == ${t}.0){}`);return e}function lu(r,e){if(r===0)throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`");let t=e.createShader(e.FRAGMENT_SHADER);try{for(;;){let i=Xk.replace(/%forloop%/gi,Yk(r));if(e.shaderSource(t,i),e.compileShader(t),!e.getShaderParameter(t,e.COMPILE_STATUS))r=r/2|0;else break}}finally{e.deleteShader(t)}return r}var Xk,Ld=p(()=>{"use strict";Xk=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(`
|
|
21
|
+
`)});function o_(){if(gs)return gs;let r=uu();return gs=r.getParameter(r.MAX_TEXTURE_IMAGE_UNITS),gs=lu(gs,r),r.getExtension("WEBGL_lose_context")?.loseContext(),gs}var gs,a_=p(()=>{Nd();Ld();gs=null});var hu,c_=p(()=>{"use strict";hu=class{constructor(){this.ids=Object.create(null),this.textures=[],this.count=0}clear(){for(let e=0;e<this.count;e++){let t=this.textures[e];this.textures[e]=null,this.ids[t.uid]=null}this.count=0}}});function u_(){return Vd>0?h_[--Vd]:new zd}function l_(r){h_[Vd++]=r}var zd,h_,Vd,so,d_,m_,p_=p(()=>{Oe();Od();ye();Gd();io();a_();c_();zd=class{constructor(){this.renderPipeId="batch",this.action="startBatch",this.start=0,this.size=0,this.textures=new hu,this.blendMode="normal",this.topology="triangle-strip",this.canBundle=!0}destroy(){this.textures=null,this.gpuBindGroup=null,this.bindGroup=null,this.batcher=null}},h_=[],Vd=0;so=0,d_=class f_{constructor(e){this.uid=K("batcher"),this.dirty=!0,this.batchIndex=0,this.batches=[],this._elements=[],e={...f_.defaultOptions,...e},e.maxTextures||(z("v8.8.0","maxTextures is a required option for Batcher now, please pass it in the options"),e.maxTextures=o_());let{maxTextures:t,attributesInitialSize:i,indicesInitialSize:s}=e;this.attributeBuffer=new Xt(i*4),this.indexBuffer=new Uint16Array(s),this.maxTextures=t}begin(){this.elementSize=0,this.elementStart=0,this.indexSize=0,this.attributeSize=0;for(let e=0;e<this.batchIndex;e++)l_(this.batches[e]);this.batchIndex=0,this._batchIndexStart=0,this._batchIndexSize=0,this.dirty=!0}add(e){this._elements[this.elementSize++]=e,e._indexStart=this.indexSize,e._attributeStart=this.attributeSize,e._batcher=this,this.indexSize+=e.indexSize,this.attributeSize+=e.attributeSize*this.vertexSize}checkAndUpdateTexture(e,t){let i=e._batch.textures.ids[t._source.uid];return!i&&i!==0?!1:(e._textureId=i,e.texture=t,!0)}updateElement(e){this.dirty=!0;let t=this.attributeBuffer;e.packAsQuad?this.packQuadAttributes(e,t.float32View,t.uint32View,e._attributeStart,e._textureId):this.packAttributes(e,t.float32View,t.uint32View,e._attributeStart,e._textureId)}break(e){let t=this._elements;if(!t[this.elementStart])return;let i=u_(),s=i.textures;s.clear();let n=t[this.elementStart],o=Tr(n.blendMode,n.texture._source),a=n.topology;this.attributeSize*4>this.attributeBuffer.size&&this._resizeAttributeBuffer(this.attributeSize*4),this.indexSize>this.indexBuffer.length&&this._resizeIndexBuffer(this.indexSize);let c=this.attributeBuffer.float32View,u=this.attributeBuffer.uint32View,l=this.indexBuffer,h=this._batchIndexSize,f=this._batchIndexStart,d="startBatch",m=this.maxTextures;for(let x=this.elementStart;x<this.elementSize;++x){let g=t[x];t[x]=null;let y=g.texture._source,S=Tr(g.blendMode,y),T=o!==S||a!==g.topology;if(y._batchTick===so&&!T){g._textureId=y._textureBindLocation,h+=g.indexSize,g.packAsQuad?(this.packQuadAttributes(g,c,u,g._attributeStart,g._textureId),this.packQuadIndex(l,g._indexStart,g._attributeStart/this.vertexSize)):(this.packAttributes(g,c,u,g._attributeStart,g._textureId),this.packIndex(g,l,g._indexStart,g._attributeStart/this.vertexSize)),g._batch=i;continue}y._batchTick=so,(s.count>=m||T)&&(this._finishBatch(i,f,h-f,s,o,a,e,d),d="renderBatch",f=h,o=S,a=g.topology,i=u_(),s=i.textures,s.clear(),++so),g._textureId=y._textureBindLocation=s.count,s.ids[y.uid]=s.count,s.textures[s.count++]=y,g._batch=i,h+=g.indexSize,g.packAsQuad?(this.packQuadAttributes(g,c,u,g._attributeStart,g._textureId),this.packQuadIndex(l,g._indexStart,g._attributeStart/this.vertexSize)):(this.packAttributes(g,c,u,g._attributeStart,g._textureId),this.packIndex(g,l,g._indexStart,g._attributeStart/this.vertexSize))}s.count>0&&(this._finishBatch(i,f,h-f,s,o,a,e,d),f=h,++so),this.elementStart=this.elementSize,this._batchIndexStart=f,this._batchIndexSize=h}_finishBatch(e,t,i,s,n,o,a,c){e.gpuBindGroup=null,e.bindGroup=null,e.action=c,e.batcher=this,e.textures=s,e.blendMode=n,e.topology=o,e.start=t,e.size=i,++so,this.batches[this.batchIndex++]=e,a.add(e)}finish(e){this.break(e)}ensureAttributeBuffer(e){e*4<=this.attributeBuffer.size||this._resizeAttributeBuffer(e*4)}ensureIndexBuffer(e){e<=this.indexBuffer.length||this._resizeIndexBuffer(e)}_resizeAttributeBuffer(e){let t=Math.max(e,this.attributeBuffer.size*2),i=new Xt(t);ro(this.attributeBuffer.rawBinaryData,i.rawBinaryData),this.attributeBuffer=i}_resizeIndexBuffer(e){let t=this.indexBuffer,i=Math.max(e,t.length*1.5);i+=i%2;let s=i>65535?new Uint32Array(i):new Uint16Array(i);if(s.BYTES_PER_ELEMENT!==t.BYTES_PER_ELEMENT)for(let n=0;n<t.length;n++)s[n]=t[n];else ro(t.buffer,s.buffer);this.indexBuffer=s}packQuadIndex(e,t,i){e[t]=i+0,e[t+1]=i+1,e[t+2]=i+2,e[t+3]=i+0,e[t+4]=i+2,e[t+5]=i+3}packIndex(e,t,i,s){let n=e.indices,o=e.indexSize,a=e.indexOffset,c=e.attributeOffset;for(let u=0;u<o;u++)t[i++]=s+n[u+a]-c}destroy(){for(let e=0;e<this.batches.length;e++)l_(this.batches[e]);this.batches=null;for(let e=0;e<this._elements.length;e++)this._elements[e]._batch=null;this._elements=null,this.indexBuffer=null,this.attributeBuffer.destroy(),this.attributeBuffer=null}};d_.defaultOptions={maxTextures:null,attributesInitialSize:4,indicesInitialSize:6};m_=d_});var Q,wr=p(()=>{"use strict";Q=(r=>(r[r.MAP_READ=1]="MAP_READ",r[r.MAP_WRITE=2]="MAP_WRITE",r[r.COPY_SRC=4]="COPY_SRC",r[r.COPY_DST=8]="COPY_DST",r[r.INDEX=16]="INDEX",r[r.VERTEX=32]="VERTEX",r[r.UNIFORM=64]="UNIFORM",r[r.STORAGE=128]="STORAGE",r[r.INDIRECT=256]="INDIRECT",r[r.QUERY_RESOLVE=512]="QUERY_RESOLVE",r[r.STATIC=1024]="STATIC",r))(Q||{})});var Ce,qr=p(()=>{Ve();Oe();wr();Ce=class extends oe{constructor(e){let{data:t,size:i}=e,{usage:s,label:n,shrinkToFit:o}=e;super(),this.uid=K("buffer"),this._resourceType="buffer",this._resourceId=K("resource"),this._touched=0,this._updateID=1,this._dataInt32=null,this.shrinkToFit=!0,this.destroyed=!1,t instanceof Array&&(t=new Float32Array(t)),this._data=t,i??(i=t?.byteLength);let a=!!t;this.descriptor={size:i,usage:s,mappedAtCreation:a,label:n},this.shrinkToFit=o??!0}get data(){return this._data}set data(e){this.setDataWithSize(e,e.length,!0)}get dataInt32(){return this._dataInt32||(this._dataInt32=new Int32Array(this.data.buffer)),this._dataInt32}get static(){return!!(this.descriptor.usage&Q.STATIC)}set static(e){e?this.descriptor.usage|=Q.STATIC:this.descriptor.usage&=~Q.STATIC}setDataWithSize(e,t,i){if(this._updateID++,this._updateSize=t*e.BYTES_PER_ELEMENT,this._data===e){i&&this.emit("update",this);return}let s=this._data;if(this._data=e,this._dataInt32=null,!s||s.length!==e.length){!this.shrinkToFit&&s&&e.byteLength<s.byteLength?i&&this.emit("update",this):(this.descriptor.size=e.byteLength,this._resourceId=K("resource"),this.emit("change",this));return}i&&this.emit("update",this)}update(e){this._updateSize=e??this._updateSize,this._updateID++,this.emit("update",this)}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this._data=null,this.descriptor=null,this.removeAllListeners()}}});function Hd(r,e){if(!(r instanceof Ce)){let t=e?Q.INDEX:Q.VERTEX;r instanceof Array&&(e?(r=new Uint32Array(r),t=Q.INDEX|Q.COPY_DST):(r=new Float32Array(r),t=Q.VERTEX|Q.COPY_DST)),r=new Ce({data:r,label:e?"index-mesh-buffer":"vertex-mesh-buffer",usage:t})}return r}var g_=p(()=>{qr();wr()});function x_(r,e,t){let i=r.getAttribute(e);if(!i)return t.minX=0,t.minY=0,t.maxX=0,t.maxY=0,t;let s=i.buffer.data,n=1/0,o=1/0,a=-1/0,c=-1/0,u=s.BYTES_PER_ELEMENT,l=(i.offset||0)/u,h=(i.stride||8)/u;for(let f=l;f<s.length;f+=h){let d=s[f],m=s[f+1];d>a&&(a=d),m>c&&(c=m),d<n&&(n=d),m<o&&(o=m)}return t.minX=n,t.minY=o,t.maxX=a,t.maxY=c,t}var __=p(()=>{"use strict"});function Kk(r){return(r instanceof Ce||Array.isArray(r)||r.BYTES_PER_ELEMENT)&&(r={buffer:r}),r.buffer=Hd(r.buffer,!1),r}var vt,xs=p(()=>{Ve();ot();Oe();qr();g_();__();vt=class extends oe{constructor(e={}){super(),this.uid=K("geometry"),this._layoutKey=0,this.instanceCount=1,this._bounds=new ae,this._boundsDirty=!0;let{attributes:t,indexBuffer:i,topology:s}=e;if(this.buffers=[],this.attributes={},t)for(let n in t)this.addAttribute(n,t[n]);this.instanceCount=e.instanceCount??1,i&&this.addIndex(i),this.topology=s||"triangle-list"}onBufferUpdate(){this._boundsDirty=!0,this.emit("update",this)}getAttribute(e){return this.attributes[e]}getIndex(){return this.indexBuffer}getBuffer(e){return this.getAttribute(e).buffer}getSize(){for(let e in this.attributes){let t=this.attributes[e];return t.buffer.data.length/(t.stride/4||t.size)}return 0}addAttribute(e,t){let i=Kk(t);this.buffers.indexOf(i.buffer)===-1&&(this.buffers.push(i.buffer),i.buffer.on("update",this.onBufferUpdate,this),i.buffer.on("change",this.onBufferUpdate,this)),this.attributes[e]=i}addIndex(e){this.indexBuffer=Hd(e,!0),this.buffers.push(this.indexBuffer)}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,x_(this,"aPosition",this._bounds)):this._bounds}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners(),e&&this.buffers.forEach(t=>t.destroy()),this.attributes=null,this.buffers=null,this.indexBuffer=null,this._bounds=null}}});var Qk,Zk,du,b_=p(()=>{qr();wr();xs();Qk=new Float32Array(1),Zk=new Uint32Array(1),du=class extends vt{constructor(){let t=new Ce({data:Qk,label:"attribute-batch-buffer",usage:Q.VERTEX|Q.COPY_DST,shrinkToFit:!1}),i=new Ce({data:Zk,label:"index-batch-buffer",usage:Q.INDEX|Q.COPY_DST,shrinkToFit:!1}),s=24;super({attributes:{aPosition:{buffer:t,format:"float32x2",stride:s,offset:0},aUV:{buffer:t,format:"float32x2",stride:s,offset:8},aColor:{buffer:t,format:"unorm8x4",stride:s,offset:16},aTextureIdAndRound:{buffer:t,format:"uint16x2",stride:s,offset:20}},indexBuffer:i})}}});function Sr(r,e){let t=y_[r];return t===void 0&&(Wd[e]===void 0&&(Wd[e]=1),y_[r]=t=Wd[e]++),t}var Wd,y_,no=p(()=>{"use strict";Wd=Object.create(null),y_=Object.create(null)});function T_(){if(!fu){fu="mediump";let r=uu();r&&r.getShaderPrecisionFormat&&(fu=r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.HIGH_FLOAT).precision?"highp":"mediump")}return fu}var fu,w_=p(()=>{Nd()});function S_(r,e,t){return e?r:t?(r=r.replace("out vec4 finalColor;",""),`
|
|
22
22
|
|
|
23
23
|
#ifdef GL_ES // This checks if it is WebGL1
|
|
24
24
|
#define in varying
|
|
@@ -33,27 +33,27 @@ else `),t<r-1&&(e+=`if(test == ${t}.0){}`);return e}function ju(r,e){if(r===0)th
|
|
|
33
33
|
#define out varying
|
|
34
34
|
#endif
|
|
35
35
|
${r}
|
|
36
|
-
`}var
|
|
37
|
-
${r}`}else if(i!=="highp"&&r.substring(0,15)==="precision highp")return r.replace("precision highp","precision mediump");return r}var
|
|
38
|
-
${r}`:r}var
|
|
39
|
-
${r}`}var
|
|
36
|
+
`}var v_=p(()=>{"use strict"});function C_(r,e,t){let i=t?e.maxSupportedFragmentPrecision:e.maxSupportedVertexPrecision;if(r.substring(0,9)!=="precision"){let s=t?e.requestedFragmentPrecision:e.requestedVertexPrecision;return s==="highp"&&i!=="highp"&&(s="mediump"),`precision ${s} float;
|
|
37
|
+
${r}`}else if(i!=="highp"&&r.substring(0,15)==="precision highp")return r.replace("precision highp","precision mediump");return r}var E_=p(()=>{"use strict"});function k_(r,e){return e?`#version 300 es
|
|
38
|
+
${r}`:r}var A_=p(()=>{"use strict"});function P_(r,{name:e="pixi-program"},t=!0){e=e.replace(/\s+/g,"-"),e+=t?"-fragment":"-vertex";let i=t?Jk:eA;return i[e]?(i[e]++,e+=`-${i[e]}`):i[e]=1,r.indexOf("#define SHADER_NAME")!==-1?r:`${`#define SHADER_NAME ${e}`}
|
|
39
|
+
${r}`}var Jk,eA,B_=p(()=>{"use strict";Jk={},eA={}});function R_(r,e){return e?r.replace("#version 300 es",""):r}var D_=p(()=>{"use strict"});var $d,qd,M_,Ct,Ai=p(()=>{no();w_();v_();E_();A_();B_();D_();$d={stripVersion:R_,ensurePrecision:C_,addProgramDefines:S_,setProgramName:P_,insertVersion:k_},qd=Object.create(null),M_=class jd{constructor(e){e={...jd.defaultOptions,...e};let t=e.fragment.indexOf("#version 300 es")!==-1,i={stripVersion:t,ensurePrecision:{requestedFragmentPrecision:e.preferredFragmentPrecision,requestedVertexPrecision:e.preferredVertexPrecision,maxSupportedVertexPrecision:"highp",maxSupportedFragmentPrecision:T_()},setProgramName:{name:e.name},addProgramDefines:t,insertVersion:t},s=e.fragment,n=e.vertex;Object.keys($d).forEach(o=>{let a=i[o];s=$d[o](s,a,!0),n=$d[o](n,a,!1)}),this.fragment=s,this.vertex=n,this.transformFeedbackVaryings=e.transformFeedbackVaryings,this._key=Sr(`${this.vertex}:${this.fragment}`,"gl-program")}destroy(){this.fragment=null,this.vertex=null,this._attributeData=null,this._uniformData=null,this._uniformBlockData=null,this.transformFeedbackVaryings=null}static from(e){let t=`${e.vertex}:${e.fragment}`;return qd[t]||(qd[t]=new jd(e)),qd[t]}};M_.defaultOptions={preferredVertexPrecision:"highp",preferredFragmentPrecision:"mediump"};Ct=M_});function ct(r){return I_[r]??I_.float32}var I_,Pi=p(()=>{"use strict";I_={uint8x2:{size:2,stride:2,normalised:!1},uint8x4:{size:4,stride:4,normalised:!1},sint8x2:{size:2,stride:2,normalised:!1},sint8x4:{size:4,stride:4,normalised:!1},unorm8x2:{size:2,stride:2,normalised:!0},unorm8x4:{size:4,stride:4,normalised:!0},snorm8x2:{size:2,stride:2,normalised:!0},snorm8x4:{size:4,stride:4,normalised:!0},uint16x2:{size:2,stride:4,normalised:!1},uint16x4:{size:4,stride:8,normalised:!1},sint16x2:{size:2,stride:4,normalised:!1},sint16x4:{size:4,stride:8,normalised:!1},unorm16x2:{size:2,stride:4,normalised:!0},unorm16x4:{size:4,stride:8,normalised:!0},snorm16x2:{size:2,stride:4,normalised:!0},snorm16x4:{size:4,stride:8,normalised:!0},float16x2:{size:2,stride:4,normalised:!1},float16x4:{size:4,stride:8,normalised:!1},float32:{size:1,stride:4,normalised:!1},float32x2:{size:2,stride:8,normalised:!1},float32x3:{size:3,stride:12,normalised:!1},float32x4:{size:4,stride:16,normalised:!1},uint32:{size:1,stride:4,normalised:!1},uint32x2:{size:2,stride:8,normalised:!1},uint32x3:{size:3,stride:12,normalised:!1},uint32x4:{size:4,stride:16,normalised:!1},sint32:{size:1,stride:4,normalised:!1},sint32x2:{size:2,stride:8,normalised:!1},sint32x3:{size:3,stride:12,normalised:!1},sint32x4:{size:4,stride:16,normalised:!1}}});function F_({source:r,entryPoint:e}){let t={},i=r.indexOf(`fn ${e}`);if(i!==-1){let s=r.indexOf("->",i);if(s!==-1){let n=r.substring(i,s),o=/@location\((\d+)\)\s+([a-zA-Z0-9_]+)\s*:\s*([a-zA-Z0-9_<>]+)(?:,|\s|$)/g,a;for(;(a=o.exec(n))!==null;){let c=tA[a[3]]??"float32";t[a[2]]={location:parseInt(a[1],10),format:c,stride:ct(c).stride,offset:0,instance:!1,start:0}}}}return t}var tA,U_=p(()=>{Pi();tA={f32:"float32","vec2<f32>":"float32x2","vec3<f32>":"float32x3","vec4<f32>":"float32x4",vec2f:"float32x2",vec3f:"float32x3",vec4f:"float32x4",i32:"sint32","vec2<i32>":"sint32x2","vec3<i32>":"sint32x3","vec4<i32>":"sint32x4",u32:"uint32","vec2<u32>":"uint32x2","vec3<u32>":"uint32x3","vec4<u32>":"uint32x4",bool:"uint32","vec2<bool>":"uint32x2","vec3<bool>":"uint32x3","vec4<bool>":"uint32x4"}});function mu(r){let e=/(^|[^/])@(group|binding)\(\d+\)[^;]+;/g,t=/@group\((\d+)\)/,i=/@binding\((\d+)\)/,s=/var(<[^>]+>)? (\w+)/,n=/:\s*(\w+)/,o=/struct\s+(\w+)\s*{([^}]+)}/g,a=/(\w+)\s*:\s*([\w\<\>]+)/g,c=/struct\s+(\w+)/,u=r.match(e)?.map(h=>({group:parseInt(h.match(t)[1],10),binding:parseInt(h.match(i)[1],10),name:h.match(s)[2],isUniform:h.match(s)[1]==="<uniform>",type:h.match(n)[1]}));if(!u)return{groups:[],structs:[]};let l=r.match(o)?.map(h=>{let f=h.match(c)[1],d=h.match(a).reduce((m,x)=>{let[g,_]=x.split(":");return m[g.trim()]=_.trim(),m},{});return d?{name:f,members:d}:null}).filter(({name:h})=>u.some(f=>f.type===h))??[];return{groups:u,structs:l}}var O_=p(()=>{"use strict"});var _s,G_=p(()=>{"use strict";_s=(r=>(r[r.VERTEX=1]="VERTEX",r[r.FRAGMENT=2]="FRAGMENT",r[r.COMPUTE=4]="COMPUTE",r))(_s||{})});function N_({groups:r}){let e=[];for(let t=0;t<r.length;t++){let i=r[t];e[i.group]||(e[i.group]=[]),i.isUniform?e[i.group].push({binding:i.binding,visibility:_s.VERTEX|_s.FRAGMENT,buffer:{type:"uniform"}}):i.type==="sampler"?e[i.group].push({binding:i.binding,visibility:_s.FRAGMENT,sampler:{type:"filtering"}}):i.type==="texture_2d"&&e[i.group].push({binding:i.binding,visibility:_s.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}})}return e}var L_=p(()=>{G_()});function z_({groups:r}){let e=[];for(let t=0;t<r.length;t++){let i=r[t];e[i.group]||(e[i.group]={}),e[i.group][i.name]=i.binding}return e}var V_=p(()=>{"use strict"});function H_(r,e){let t=new Set,i=new Set,s=[...r.structs,...e.structs].filter(o=>t.has(o.name)?!1:(t.add(o.name),!0)),n=[...r.groups,...e.groups].filter(o=>{let a=`${o.name}-${o.binding}`;return i.has(a)?!1:(i.add(a),!0)});return{structs:s,groups:n}}var W_=p(()=>{"use strict"});var Xd,Et,bs=p(()=>{no();U_();O_();L_();V_();W_();Xd=Object.create(null),Et=class r{constructor(e){this._layoutKey=0,this._attributeLocationsKey=0;let{fragment:t,vertex:i,layout:s,gpuLayout:n,name:o}=e;if(this.name=o,this.fragment=t,this.vertex=i,t.source===i.source){let a=mu(t.source);this.structsAndGroups=a}else{let a=mu(i.source),c=mu(t.source);this.structsAndGroups=H_(a,c)}this.layout=s??z_(this.structsAndGroups),this.gpuLayout=n??N_(this.structsAndGroups),this.autoAssignGlobalUniforms=this.layout[0]?.globalUniforms!==void 0,this.autoAssignLocalUniforms=this.layout[1]?.localUniforms!==void 0,this._generateProgramKey()}_generateProgramKey(){let{vertex:e,fragment:t}=this,i=e.source+t.source+e.entryPoint+t.entryPoint;this._layoutKey=Sr(i,"program")}get attributeData(){return this._attributeData??(this._attributeData=F_(this.vertex)),this._attributeData}destroy(){this.gpuLayout=null,this.layout=null,this.structsAndGroups=null,this.fragment=null,this.vertex=null}static from(e){let t=`${e.vertex.source}:${e.fragment.source}:${e.fragment.entryPoint}:${e.vertex.entryPoint}`;return Xd[t]||(Xd[t]=new r(e)),Xd[t]}}});function Yd(r,e,t){if(r)for(let i in r){let s=i.toLocaleLowerCase(),n=e[s];if(n){let o=r[i];i==="header"&&(o=o.replace(/@in\s+[^;]+;\s*/g,"").replace(/@out\s+[^;]+;\s*/g,"")),t&&n.push(`//----${t}----//`),n.push(o)}else G(`${i} placement hook does not exist in shader`)}}var $_=p(()=>{ge()});function Kd(r){let e={};return(r.match(rA)?.map(i=>i.replace(/[{()}]/g,""))??[]).forEach(i=>{e[i]=[]}),e}var rA,q_=p(()=>{"use strict";rA=/\{\{(.*?)\}\}/g});function j_(r,e){let t,i=/@in\s+([^;]+);/g;for(;(t=i.exec(r))!==null;)e.push(t[1])}function Qd(r,e,t=!1){let i=[];j_(e,i),r.forEach(a=>{a.header&&j_(a.header,i)});let s=i;t&&s.sort();let n=s.map((a,c)=>` @location(${c}) ${a},`).join(`
|
|
40
40
|
`),o=e.replace(/@in\s+[^;]+;\s*/g,"");return o=o.replace("{{in}}",`
|
|
41
41
|
${n}
|
|
42
|
-
`),o}var
|
|
43
|
-
`),n=t.sort().map(c=>` var ${
|
|
42
|
+
`),o}var X_=p(()=>{"use strict"});function Y_(r,e){let t,i=/@out\s+([^;]+);/g;for(;(t=i.exec(r))!==null;)e.push(t[1])}function iA(r){let t=/\b(\w+)\s*:/g.exec(r);return t?t[1]:""}function sA(r){let e=/@.*?\s+/g;return r.replace(e,"")}function K_(r,e){let t=[];Y_(e,t),r.forEach(c=>{c.header&&Y_(c.header,t)});let i=0,s=t.sort().map(c=>c.indexOf("builtin")>-1?c:`@location(${i++}) ${c}`).join(`,
|
|
43
|
+
`),n=t.sort().map(c=>` var ${sA(c)};`).join(`
|
|
44
44
|
`),o=`return VSOutput(
|
|
45
|
-
${t.sort().map(c=>` ${
|
|
45
|
+
${t.sort().map(c=>` ${iA(c)}`).join(`,
|
|
46
46
|
`)});`,a=e.replace(/@out\s+[^;]+;\s*/g,"");return a=a.replace("{{struct}}",`
|
|
47
47
|
${s}
|
|
48
48
|
`),a=a.replace("{{start}}",`
|
|
49
49
|
${n}
|
|
50
50
|
`),a=a.replace("{{return}}",`
|
|
51
51
|
${o}
|
|
52
|
-
`),a}var
|
|
52
|
+
`),a}var Q_=p(()=>{"use strict"});function Zd(r,e){let t=r;for(let i in e){let s=e[i];s.join(`
|
|
53
53
|
`).length?t=t.replace(`{{${i}}}`,`//-----${i} START-----//
|
|
54
54
|
${s.join(`
|
|
55
55
|
`)}
|
|
56
|
-
//----${i} FINISH----//`):t=t.replace(`{{${i}}}`,"")}return t}var
|
|
56
|
+
//----${i} FINISH----//`):t=t.replace(`{{${i}}}`,"")}return t}var Z_=p(()=>{"use strict"});function J_({template:r,bits:e}){let t=tb(r,e);if(jr[t])return jr[t];let{vertex:i,fragment:s}=oA(r,e);return jr[t]=rb(i,s,e),jr[t]}function eb({template:r,bits:e}){let t=tb(r,e);return jr[t]||(jr[t]=rb(r.vertex,r.fragment,e)),jr[t]}function oA(r,e){let t=e.map(o=>o.vertex).filter(o=>!!o),i=e.map(o=>o.fragment).filter(o=>!!o),s=Qd(t,r.vertex,!0);s=K_(t,s);let n=Qd(i,r.fragment,!0);return{vertex:s,fragment:n}}function tb(r,e){return e.map(t=>(Jd.has(t)||Jd.set(t,nA++),Jd.get(t))).sort((t,i)=>t-i).join("-")+r.vertex+r.fragment}function rb(r,e,t){let i=Kd(r),s=Kd(e);return t.forEach(n=>{Yd(n.vertex,i,n.name),Yd(n.fragment,s,n.name)}),{vertex:Zd(r,i),fragment:Zd(e,s)}}var jr,Jd,nA,ib=p(()=>{$_();q_();X_();Q_();Z_();jr=Object.create(null),Jd=new Map,nA=0});var sb,nb,ob,ab,cb=p(()=>{"use strict";sb=`
|
|
57
57
|
@in aPosition: vec2<f32>;
|
|
58
58
|
@in aUV: vec2<f32>;
|
|
59
59
|
|
|
@@ -97,7 +97,7 @@ ${s.join(`
|
|
|
97
97
|
|
|
98
98
|
{{return}}
|
|
99
99
|
};
|
|
100
|
-
`,
|
|
100
|
+
`,nb=`
|
|
101
101
|
@in vUV : vec2<f32>;
|
|
102
102
|
@in vColor : vec4<f32>;
|
|
103
103
|
|
|
@@ -120,7 +120,7 @@ ${s.join(`
|
|
|
120
120
|
|
|
121
121
|
return finalColor;
|
|
122
122
|
};
|
|
123
|
-
`,
|
|
123
|
+
`,ob=`
|
|
124
124
|
in vec2 aPosition;
|
|
125
125
|
in vec2 aUV;
|
|
126
126
|
|
|
@@ -156,7 +156,7 @@ ${s.join(`
|
|
|
156
156
|
|
|
157
157
|
{{end}}
|
|
158
158
|
}
|
|
159
|
-
`,
|
|
159
|
+
`,ab=`
|
|
160
160
|
|
|
161
161
|
in vec4 vColor;
|
|
162
162
|
in vec2 vUV;
|
|
@@ -177,7 +177,7 @@ ${s.join(`
|
|
|
177
177
|
|
|
178
178
|
{{end}}
|
|
179
179
|
}
|
|
180
|
-
`});var
|
|
180
|
+
`});var ub,lb,hb=p(()=>{"use strict";ub={name:"global-uniforms-bit",vertex:{header:`
|
|
181
181
|
struct GlobalUniforms {
|
|
182
182
|
uProjectionMatrix:mat3x3<f32>,
|
|
183
183
|
uWorldTransformMatrix:mat3x3<f32>,
|
|
@@ -186,22 +186,22 @@ ${s.join(`
|
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
@group(0) @binding(0) var<uniform> globalUniforms : GlobalUniforms;
|
|
189
|
-
`}},
|
|
189
|
+
`}},lb={name:"global-uniforms-bit",vertex:{header:`
|
|
190
190
|
uniform mat3 uProjectionMatrix;
|
|
191
191
|
uniform mat3 uWorldTransformMatrix;
|
|
192
192
|
uniform vec4 uWorldColorAlpha;
|
|
193
193
|
uniform vec2 uResolution;
|
|
194
|
-
`}}});function
|
|
194
|
+
`}}});function Yt({bits:r,name:e}){let t=J_({template:{fragment:nb,vertex:sb},bits:[ub,...r]});return Et.from({name:e,vertex:{source:t.vertex,entryPoint:"main"},fragment:{source:t.fragment,entryPoint:"main"}})}function Kt({bits:r,name:e}){return new Ct({name:e,...eb({template:{vertex:ob,fragment:ab},bits:[lb,...r]})})}var Xr=p(()=>{Ai();bs();ib();cb();hb()});var ys,Ts,oo=p(()=>{"use strict";ys={name:"color-bit",vertex:{header:`
|
|
195
195
|
@in aColor: vec4<f32>;
|
|
196
196
|
`,main:`
|
|
197
197
|
vColor *= vec4<f32>(aColor.rgb * aColor.a, aColor.a);
|
|
198
|
-
`}},
|
|
198
|
+
`}},Ts={name:"color-bit",vertex:{header:`
|
|
199
199
|
in vec4 aColor;
|
|
200
200
|
`,main:`
|
|
201
201
|
vColor *= vec4(aColor.rgb * aColor.a, aColor.a);
|
|
202
|
-
`}}});function
|
|
203
|
-
`)}function
|
|
204
|
-
`)}function
|
|
202
|
+
`}}});function aA(r){let e=[];if(r===1)e.push("@group(1) @binding(0) var textureSource1: texture_2d<f32>;"),e.push("@group(1) @binding(1) var textureSampler1: sampler;");else{let t=0;for(let i=0;i<r;i++)e.push(`@group(1) @binding(${t++}) var textureSource${i+1}: texture_2d<f32>;`),e.push(`@group(1) @binding(${t++}) var textureSampler${i+1}: sampler;`)}return e.join(`
|
|
203
|
+
`)}function cA(r){let e=[];if(r===1)e.push("outColor = textureSampleGrad(textureSource1, textureSampler1, vUV, uvDx, uvDy);");else{e.push("switch vTextureId {");for(let t=0;t<r;t++)t===r-1?e.push(" default:{"):e.push(` case ${t}:{`),e.push(` outColor = textureSampleGrad(textureSource${t+1}, textureSampler${t+1}, vUV, uvDx, uvDy);`),e.push(" break;}");e.push("}")}return e.join(`
|
|
204
|
+
`)}function ws(r){return ef[r]||(ef[r]={name:"texture-batch-bit",vertex:{header:`
|
|
205
205
|
@in aTextureIdAndRound: vec2<u32>;
|
|
206
206
|
@out @interpolate(flat) vTextureId : u32;
|
|
207
207
|
`,main:`
|
|
@@ -214,14 +214,14 @@ ${s.join(`
|
|
|
214
214
|
`},fragment:{header:`
|
|
215
215
|
@in @interpolate(flat) vTextureId: u32;
|
|
216
216
|
|
|
217
|
-
${
|
|
217
|
+
${aA(r)}
|
|
218
218
|
`,main:`
|
|
219
219
|
var uvDx = dpdx(vUV);
|
|
220
220
|
var uvDy = dpdy(vUV);
|
|
221
221
|
|
|
222
|
-
${
|
|
223
|
-
`}}),
|
|
224
|
-
`)}function
|
|
222
|
+
${cA(r)}
|
|
223
|
+
`}}),ef[r]}function uA(r){let e=[];for(let t=0;t<r;t++)t>0&&e.push("else"),t<r-1&&e.push(`if(vTextureId < ${t}.5)`),e.push("{"),e.push(` outColor = texture(uTextures[${t}], vUV);`),e.push("}");return e.join(`
|
|
224
|
+
`)}function Ss(r){return tf[r]||(tf[r]={name:"texture-batch-bit",vertex:{header:`
|
|
225
225
|
in vec2 aTextureIdAndRound;
|
|
226
226
|
out float vTextureId;
|
|
227
227
|
|
|
@@ -239,18 +239,18 @@ ${s.join(`
|
|
|
239
239
|
|
|
240
240
|
`,main:`
|
|
241
241
|
|
|
242
|
-
${
|
|
243
|
-
`}}),
|
|
242
|
+
${uA(r)}
|
|
243
|
+
`}}),tf[r]}var ef,tf,ao=p(()=>{"use strict";ef={};tf={}});var Qt,Zt,Yr=p(()=>{"use strict";Qt={name:"round-pixels-bit",vertex:{header:`
|
|
244
244
|
fn roundPixels(position: vec2<f32>, targetSize: vec2<f32>) -> vec2<f32>
|
|
245
245
|
{
|
|
246
246
|
return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
|
|
247
247
|
}
|
|
248
|
-
`}},
|
|
248
|
+
`}},Zt={name:"round-pixels-bit",vertex:{header:`
|
|
249
249
|
vec2 roundPixels(vec2 position, vec2 targetSize)
|
|
250
250
|
{
|
|
251
251
|
return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
|
|
252
252
|
}
|
|
253
|
-
`}}});var zf,Oy,Gy=p(()=>{"use strict";zf=["f32","i32","vec2<f32>","vec3<f32>","vec4<f32>","mat2x2<f32>","mat3x3<f32>","mat4x4<f32>","mat3x2<f32>","mat4x2<f32>","mat2x3<f32>","mat4x3<f32>","mat2x4<f32>","mat3x4<f32>","vec2<i32>","vec3<i32>","vec4<i32>"],Oy=zf.reduce((r,e)=>(r[e]=!0,r),{})});function Ny(r,e){switch(r){case"f32":return 0;case"vec2<f32>":return new Float32Array(2*e);case"vec3<f32>":return new Float32Array(3*e);case"vec4<f32>":return new Float32Array(4*e);case"mat2x2<f32>":return new Float32Array([1,0,0,1]);case"mat3x3<f32>":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4x4<f32>":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}var Ly=p(()=>{"use strict"});var zy,ce,it=p(()=>{Oe();Bo();Gy();Ly();zy=class Vy{constructor(e,t){this._touched=0,this.uid=K("uniform"),this._resourceType="uniformGroup",this._resourceId=K("resource"),this.isUniformGroup=!0,this._dirtyId=0,this.destroyed=!1,t={...Vy.defaultOptions,...t},this.uniformStructures=e;let i={};for(let s in e){let n=e[s];if(n.name=s,n.size=n.size??1,!Oy[n.type])throw new Error(`Uniform type ${n.type} is not supported. Supported uniform types are: ${zf.join(", ")}`);n.value??(n.value=Ny(n.type,n.size)),i[s]=n.value}this.uniforms=i,this._dirtyId=1,this.ubo=t.ubo,this.isStatic=t.isStatic,this._signature=Er(Object.keys(i).map(s=>`${s}-${e[s].type}`).join("-"),"uniform-group")}update(){this._dirtyId++}};zy.defaultOptions={ubo:!1,isStatic:!1};ce=zy});function Ws(r){let e=Hy[r];if(e)return e;let t=new Int32Array(r);for(let i=0;i<r;i++)t[i]=i;return e=Hy[r]=new ce({uTextures:{value:t,type:"i32",size:r}},{isStatic:!0}),e}var Hy,Zu=p(()=>{it();Hy={}});var Ie,ir=p(()=>{"use strict";Ie=(r=>(r[r.WEBGL=1]="WEBGL",r[r.WEBGPU=2]="WEBGPU",r[r.BOTH=3]="BOTH",r))(Ie||{})});var ke,Ot=p(()=>{Ve();Oe();$i();Xr();Ns();ir();it();ke=class r extends oe{constructor(e){super(),this.uid=K("shader"),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[];let{gpuProgram:t,glProgram:i,groups:s,resources:n,compatibleRenderers:o,groupMap:a}=e;this.gpuProgram=t,this.glProgram=i,o===void 0&&(o=0,t&&(o|=Ie.WEBGPU),i&&(o|=Ie.WEBGL)),this.compatibleRenderers=o;let c={};if(!n&&!s&&(n={}),n&&s)throw new Error("[Shader] Cannot have both resources and groups");if(!t&&s&&!a)throw new Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");if(!t&&s&&a)for(let u in a)for(let l in a[u]){let h=a[u][l];c[h]={group:u,binding:l,name:h}}else if(t&&s&&!a){let u=t.structsAndGroups.groups;a={},u.forEach(l=>{a[l.group]=a[l.group]||{},a[l.group][l.binding]=l.name,c[l.name]=l})}else if(n){s={},a={},t&&t.structsAndGroups.groups.forEach(h=>{a[h.group]=a[h.group]||{},a[h.group][h.binding]=h.name,c[h.name]=h});let u=0;for(let l in n)c[l]||(s[99]||(s[99]=new Ne,this._ownedBindGroups.push(s[99])),c[l]={group:99,binding:u,name:l},a[99]=a[99]||{},a[99][u]=l,u++);for(let l in n){let h=l,f=n[l];!f.source&&!f._resourceType&&(f=new ce(f));let d=c[h];d&&(s[d.group]||(s[d.group]=new Ne,this._ownedBindGroups.push(s[d.group])),s[d.group].setResource(f,d.binding))}}this.groups=s,this._uniformBindMap=a,this.resources=this._buildResourceAccessor(s,c)}addResource(e,t,i){var s,n;(s=this._uniformBindMap)[t]||(s[t]={}),(n=this._uniformBindMap[t])[i]||(n[i]=e),this.groups[t]||(this.groups[t]=new Ne,this._ownedBindGroups.push(this.groups[t]))}_buildResourceAccessor(e,t){let i={};for(let s in t){let n=t[s];Object.defineProperty(i,n.name,{get(){return e[n.group].getResource(n.binding)},set(o){e[n.group].setResource(o,n.binding)}})}return i}destroy(e=!1){this.emit("destroy",this),e&&(this.gpuProgram?.destroy(),this.glProgram?.destroy()),this.gpuProgram=null,this.glProgram=null,this.removeAllListeners(),this._uniformBindMap=null,this._ownedBindGroups.forEach(t=>{t.destroy()}),this._ownedBindGroups=null,this.resources=null,this.groups=null}static from(e){let{gpu:t,gl:i,...s}=e,n,o;return t&&(n=Bt.from(t)),i&&(o=Pt.from(i)),new r({gpuProgram:n,glProgram:o,...s})}}});var Ju,Wy=p(()=>{Qr();Ro();Do();Zr();Zu();Ot();Ju=class extends ke{constructor(e){let t=er({name:"batch",bits:[zs,Hs(e),rr]}),i=Jt({name:"batch",bits:[Ls,Vs(e),tr]});super({glProgram:t,gpuProgram:i,resources:{batchSamplers:Ws(e)}})}}});var Vf,$y,Mo,Hf=p(()=>{B();Lb();Wb();Wy();Vf=null,$y=class qy extends Nb{constructor(e){super(e),this.geometry=new Yu,this.name=qy.extension.name,this.vertexSize=6,Vf??(Vf=new Ju(e.maxTextures)),this.shader=Vf}packAttributes(e,t,i,s,n){let o=n<<16|e.roundPixels&65535,a=e.transform,c=a.a,u=a.b,l=a.c,h=a.d,f=a.tx,d=a.ty,{positions:m,uvs:x}=e,g=e.color,_=e.attributeOffset,y=_+e.attributeSize;for(let S=_;S<y;S++){let T=S*2,C=m[T],v=m[T+1];t[s++]=c*C+l*v+f,t[s++]=h*v+u*C+d,t[s++]=x[T],t[s++]=x[T+1],i[s++]=g,i[s++]=o}}packQuadAttributes(e,t,i,s,n){let o=e.texture,a=e.transform,c=a.a,u=a.b,l=a.c,h=a.d,f=a.tx,d=a.ty,m=e.bounds,x=m.maxX,g=m.minX,_=m.maxY,y=m.minY,S=o.uvs,T=e.color,C=n<<16|e.roundPixels&65535;t[s+0]=c*g+l*y+f,t[s+1]=h*y+u*g+d,t[s+2]=S.x0,t[s+3]=S.y0,i[s+4]=T,i[s+5]=C,t[s+6]=c*x+l*y+f,t[s+7]=h*y+u*x+d,t[s+8]=S.x1,t[s+9]=S.y1,i[s+10]=T,i[s+11]=C,t[s+12]=c*x+l*_+f,t[s+13]=h*_+u*x+d,t[s+14]=S.x2,t[s+15]=S.y2,i[s+16]=T,i[s+17]=C,t[s+18]=c*g+l*_+f,t[s+19]=h*_+u*g+d,t[s+20]=S.x3,t[s+21]=S.y3,i[s+22]=T,i[s+23]=C}};$y.extension={type:[b.Batcher],name:"default"};Mo=$y});function jy(r,e,t,i,s,n,o,a=null){let c=0;t*=e,s*=n;let u=a.a,l=a.b,h=a.c,f=a.d,d=a.tx,m=a.ty;for(;c<o;){let x=r[t],g=r[t+1];i[s]=u*x+h*g+d,i[s+1]=l*x+f*g+m,s+=n,t+=e,c++}}function Xy(r,e,t,i){let s=0;for(e*=t;s<i;)r[e]=0,r[e+1]=0,e+=t,s++}var Yy=p(()=>{"use strict"});function Wf(r,e,t,i,s){let n=e.a,o=e.b,a=e.c,c=e.d,u=e.tx,l=e.ty;t||(t=0),i||(i=2),s||(s=r.length/i-t);let h=t*i;for(let f=0;f<s;f++){let d=r[h],m=r[h+1];r[h]=n*d+a*m+u,r[h+1]=o*d+c*m+l,h+=i}}var Ky=p(()=>{"use strict"});var NP,ji,$f=p(()=>{te();Fd();NP=new R,ji=class{constructor(){this.packAsQuad=!1,this.batcherName="default",this.topology="triangle-list",this.applyTransform=!0,this.roundPixels=0,this._batcher=null,this._batch=null}get uvs(){return this.geometryData.uvs}get positions(){return this.geometryData.vertices}get indices(){return this.geometryData.indices}get blendMode(){return this.renderable&&this.applyTransform?this.renderable.groupBlendMode:"normal"}get color(){let e=this.baseColor,t=e>>16|e&65280|(e&255)<<16,i=this.renderable;return i?Su(t,i.groupColor)+(this.alpha*i.groupAlpha*255<<24):t+(this.alpha*255<<24)}get transform(){return this.renderable?.groupTransform||NP}copyTo(e){e.indexOffset=this.indexOffset,e.indexSize=this.indexSize,e.attributeOffset=this.attributeOffset,e.attributeSize=this.attributeSize,e.baseColor=this.baseColor,e.alpha=this.alpha,e.texture=this.texture,e.geometryData=this.geometryData,e.topology=this.topology}reset(){this.applyTransform=!0,this.renderable=null,this.topology="triangle-list"}}});var $s,Qy,Zy,Jy=p(()=>{B();$s={extension:{type:b.ShapeBuilder,name:"circle"},build(r,e){let t,i,s,n,o,a;if(r.type==="circle"){let T=r;if(o=a=T.radius,o<=0)return!1;t=T.x,i=T.y,s=n=0}else if(r.type==="ellipse"){let T=r;if(o=T.halfWidth,a=T.halfHeight,o<=0||a<=0)return!1;t=T.x,i=T.y,s=n=0}else{let T=r,C=T.width/2,v=T.height/2;t=T.x+C,i=T.y+v,o=a=Math.max(0,Math.min(T.radius,Math.min(C,v))),s=C-o,n=v-a}if(s<0||n<0)return!1;let c=Math.ceil(2.3*Math.sqrt(o+a)),u=c*8+(s?4:0)+(n?4:0);if(u===0)return!1;if(c===0)return e[0]=e[6]=t+s,e[1]=e[3]=i+n,e[2]=e[4]=t-s,e[5]=e[7]=i-n,!0;let l=0,h=c*4+(s?2:0)+2,f=h,d=u,m=s+o,x=n,g=t+m,_=t-m,y=i+x;if(e[l++]=g,e[l++]=y,e[--h]=y,e[--h]=_,n){let T=i-x;e[f++]=_,e[f++]=T,e[--d]=T,e[--d]=g}for(let T=1;T<c;T++){let C=Math.PI/2*(T/c),v=s+Math.cos(C)*o,E=n+Math.sin(C)*a,D=t+v,A=t-v,P=i+E,k=i-E;e[l++]=D,e[l++]=P,e[--h]=P,e[--h]=A,e[f++]=A,e[f++]=k,e[--d]=k,e[--d]=D}m=s,x=n+a,g=t+m,_=t-m,y=i+x;let S=i-x;return e[l++]=g,e[l++]=y,e[--d]=S,e[--d]=g,s&&(e[l++]=_,e[l++]=y,e[--d]=S,e[--d]=_),!0},triangulate(r,e,t,i,s,n){if(r.length===0)return;let o=0,a=0;for(let l=0;l<r.length;l+=2)o+=r[l],a+=r[l+1];o/=r.length/2,a/=r.length/2;let c=i;e[c*t]=o,e[c*t+1]=a;let u=c++;for(let l=0;l<r.length;l+=2)e[c*t]=r[l],e[c*t+1]=r[l+1],l>0&&(s[n++]=c,s[n++]=u,s[n++]=c-1),c++;s[n++]=u+1,s[n++]=u,s[n++]=c-1}},Qy={...$s,extension:{...$s.extension,name:"ellipse"}},Zy={...$s,extension:{...$s.extension,name:"roundedRectangle"}}});function e2(r){let e=r.length;if(e<6)return 1;let t=0;for(let i=0,s=r[e-2],n=r[e-1];i<e;i+=2){let o=r[i],a=r[i+1];t+=(o-s)*(a+n),s=o,n=a}return t<0?-1:1}var t2=p(()=>{"use strict"});function r2(r,e,t,i,s,n,o,a){let c=r-t*s,u=e-i*s,l=r+t*n,h=e+i*n,f,d;o?(f=i,d=-t):(f=-i,d=t);let m=c+f,x=u+d,g=l+f,_=h+d;return a.push(m,x),a.push(g,_),2}function Xi(r,e,t,i,s,n,o,a){let c=t-r,u=i-e,l=Math.atan2(c,u),h=Math.atan2(s-r,n-e);a&&l<h?l+=Math.PI*2:!a&&l>h&&(h+=Math.PI*2);let f=l,d=h-l,m=Math.abs(d),x=Math.sqrt(c*c+u*u),g=(15*m*Math.sqrt(x)/Math.PI>>0)+1,_=d/g;if(f+=_,a){o.push(r,e),o.push(t,i);for(let y=1,S=f;y<g;y++,S+=_)o.push(r,e),o.push(r+Math.sin(S)*x,e+Math.cos(S)*x);o.push(r,e),o.push(s,n)}else{o.push(t,i),o.push(r,e);for(let y=1,S=f;y<g;y++,S+=_)o.push(r+Math.sin(S)*x,e+Math.cos(S)*x),o.push(r,e);o.push(s,n),o.push(r,e)}return g*2}function i2(r,e,t,i,s,n){let o=1e-4;if(r.length===0)return;let a=e,c=a.alignment;if(e.alignment!==.5){let de=e2(r);t&&(de*=-1),c=(c-.5)*de+.5}let u=new J(r[0],r[1]),l=new J(r[r.length-2],r[r.length-1]),h=i,f=Math.abs(u.x-l.x)<o&&Math.abs(u.y-l.y)<o;if(h){r=r.slice(),f&&(r.pop(),r.pop(),l.set(r[r.length-2],r[r.length-1]));let de=(u.x+l.x)*.5,Ir=(l.y+u.y)*.5;r.unshift(de,Ir),r.push(de,Ir)}let d=s,m=r.length/2,x=r.length,g=d.length/2,_=a.width/2,y=_*_,S=a.miterLimit*a.miterLimit,T=r[0],C=r[1],v=r[2],E=r[3],D=0,A=0,P=-(C-E),k=T-v,G=0,j=0,be=Math.sqrt(P*P+k*k);P/=be,k/=be,P*=_,k*=_;let Tt=c,U=(1-Tt)*2,H=Tt*2;h||(a.cap==="round"?x+=Xi(T-P*(U-H)*.5,C-k*(U-H)*.5,T-P*U,C-k*U,T+P*H,C+k*H,d,!0)+2:a.cap==="square"&&(x+=r2(T,C,P,k,U,H,!0,d))),d.push(T-P*U,C-k*U),d.push(T+P*H,C+k*H);for(let de=1;de<m-1;++de){T=r[(de-1)*2],C=r[(de-1)*2+1],v=r[de*2],E=r[de*2+1],D=r[(de+1)*2],A=r[(de+1)*2+1],P=-(C-E),k=T-v,be=Math.sqrt(P*P+k*k),P/=be,k/=be,P*=_,k*=_,G=-(E-A),j=v-D,be=Math.sqrt(G*G+j*j),G/=be,j/=be,G*=_,j*=_;let Ir=v-T,kn=C-E,An=v-D,Pn=A-E,xg=Ir*An+kn*Pn,hc=kn*An-Pn*Ir,Bn=hc<0;if(Math.abs(hc)<.001*Math.abs(xg)){d.push(v-P*U,E-k*U),d.push(v+P*H,E+k*H),xg>=0&&(a.join==="round"?x+=Xi(v,E,v-P*U,E-k*U,v-G*U,E-j*U,d,!1)+4:x+=2,d.push(v-G*H,E-j*H),d.push(v+G*U,E+j*U));continue}let _g=(-P+T)*(-k+E)-(-P+v)*(-k+C),bg=(-G+D)*(-j+E)-(-G+v)*(-j+A),dc=(Ir*bg-An*_g)/hc,fc=(Pn*_g-kn*bg)/hc,Sh=(dc-v)*(dc-v)+(fc-E)*(fc-E),oi=v+(dc-v)*U,ai=E+(fc-E)*U,ci=v-(dc-v)*H,ui=E-(fc-E)*H,LE=Math.min(Ir*Ir+kn*kn,An*An+Pn*Pn),yg=Bn?U:H,zE=LE+yg*yg*y;Sh<=zE?a.join==="bevel"||Sh/y>S?(Bn?(d.push(oi,ai),d.push(v+P*H,E+k*H),d.push(oi,ai),d.push(v+G*H,E+j*H)):(d.push(v-P*U,E-k*U),d.push(ci,ui),d.push(v-G*U,E-j*U),d.push(ci,ui)),x+=2):a.join==="round"?Bn?(d.push(oi,ai),d.push(v+P*H,E+k*H),x+=Xi(v,E,v+P*H,E+k*H,v+G*H,E+j*H,d,!0)+4,d.push(oi,ai),d.push(v+G*H,E+j*H)):(d.push(v-P*U,E-k*U),d.push(ci,ui),x+=Xi(v,E,v-P*U,E-k*U,v-G*U,E-j*U,d,!1)+4,d.push(v-G*U,E-j*U),d.push(ci,ui)):(d.push(oi,ai),d.push(ci,ui)):(d.push(v-P*U,E-k*U),d.push(v+P*H,E+k*H),a.join==="round"?Bn?x+=Xi(v,E,v+P*H,E+k*H,v+G*H,E+j*H,d,!0)+2:x+=Xi(v,E,v-P*U,E-k*U,v-G*U,E-j*U,d,!1)+2:a.join==="miter"&&Sh/y<=S&&(Bn?(d.push(ci,ui),d.push(ci,ui)):(d.push(oi,ai),d.push(oi,ai)),x+=2),d.push(v-G*U,E-j*U),d.push(v+G*H,E+j*H),x+=2)}T=r[(m-2)*2],C=r[(m-2)*2+1],v=r[(m-1)*2],E=r[(m-1)*2+1],P=-(C-E),k=T-v,be=Math.sqrt(P*P+k*k),P/=be,k/=be,P*=_,k*=_,d.push(v-P*U,E-k*U),d.push(v+P*H,E+k*H),h||(a.cap==="round"?x+=Xi(v-P*(U-H)*.5,E-k*(U-H)*.5,v-P*U,E-k*U,v+P*H,E+k*H,d,!1)+2:a.cap==="square"&&(x+=r2(v,E,P,k,U,H,!1,d)));let wh=1e-4*1e-4;for(let de=g;de<x+g-2;++de)T=d[de*2],C=d[de*2+1],v=d[(de+1)*2],E=d[(de+1)*2+1],D=d[(de+2)*2],A=d[(de+2)*2+1],!(Math.abs(T*(E-A)+v*(A-C)+D*(C-E))<wh)&&n.push(de,de+1,de+2)}var s2=p(()=>{Ft();t2()});function n2(r,e,t,i){let s=1e-4;if(r.length===0)return;let n=r[0],o=r[1],a=r[r.length-2],c=r[r.length-1],u=e||Math.abs(n-a)<s&&Math.abs(o-c)<s,l=t,h=r.length/2,f=l.length/2;for(let d=0;d<h;d++)l.push(r[d*2]),l.push(r[d*2+1]);for(let d=0;d<h-1;d++)i.push(f+d,f+d+1);u&&i.push(f+h-1,f)}var o2=p(()=>{});function rl(r,e,t=2){let i=e&&e.length,s=i?e[0]*t:r.length,n=c2(r,0,s,t,!0),o=[];if(!n||n.next===n.prev)return o;let a,c,u;if(i&&(n=qP(r,e,n,t)),r.length>80*t){a=1/0,c=1/0;let l=-1/0,h=-1/0;for(let f=t;f<s;f+=t){let d=r[f],m=r[f+1];d<a&&(a=d),m<c&&(c=m),d>l&&(l=d),m>h&&(h=m)}u=Math.max(l-a,h-c),u=u!==0?32767/u:0}return Fo(n,o,t,a,c,u,0),o}function c2(r,e,t,i,s){let n;if(s===iB(r,e,t,i)>0)for(let o=e;o<t;o+=i)n=a2(o/i|0,r[o],r[o+1],n);else for(let o=t-i;o>=e;o-=i)n=a2(o/i|0,r[o],r[o+1],n);return n&&qs(n,n.next)&&(Oo(n),n=n.next),n}function Yi(r,e){if(!r)return r;e||(e=r);let t=r,i;do if(i=!1,!t.steiner&&(qs(t,t.next)||Se(t.prev,t,t.next)===0)){if(Oo(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function Fo(r,e,t,i,s,n,o){if(!r)return;!o&&n&&QP(r,i,s,n);let a=r;for(;r.prev!==r.next;){let c=r.prev,u=r.next;if(n?HP(r,i,s,n):VP(r)){e.push(c.i,r.i,u.i),Oo(r),r=u.next,a=u.next;continue}if(r=u,r===a){o?o===1?(r=WP(Yi(r),e),Fo(r,e,t,i,s,n,2)):o===2&&$P(r,e,t,i,s,n):Fo(Yi(r),e,t,i,s,n,1);break}}}function VP(r){let e=r.prev,t=r,i=r.next;if(Se(e,t,i)>=0)return!1;let s=e.x,n=t.x,o=i.x,a=e.y,c=t.y,u=i.y,l=Math.min(s,n,o),h=Math.min(a,c,u),f=Math.max(s,n,o),d=Math.max(a,c,u),m=i.next;for(;m!==e;){if(m.x>=l&&m.x<=f&&m.y>=h&&m.y<=d&&Io(s,a,n,c,o,u,m.x,m.y)&&Se(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function HP(r,e,t,i){let s=r.prev,n=r,o=r.next;if(Se(s,n,o)>=0)return!1;let a=s.x,c=n.x,u=o.x,l=s.y,h=n.y,f=o.y,d=Math.min(a,c,u),m=Math.min(l,h,f),x=Math.max(a,c,u),g=Math.max(l,h,f),_=qf(d,m,e,t,i),y=qf(x,g,e,t,i),S=r.prevZ,T=r.nextZ;for(;S&&S.z>=_&&T&&T.z<=y;){if(S.x>=d&&S.x<=x&&S.y>=m&&S.y<=g&&S!==s&&S!==o&&Io(a,l,c,h,u,f,S.x,S.y)&&Se(S.prev,S,S.next)>=0||(S=S.prevZ,T.x>=d&&T.x<=x&&T.y>=m&&T.y<=g&&T!==s&&T!==o&&Io(a,l,c,h,u,f,T.x,T.y)&&Se(T.prev,T,T.next)>=0))return!1;T=T.nextZ}for(;S&&S.z>=_;){if(S.x>=d&&S.x<=x&&S.y>=m&&S.y<=g&&S!==s&&S!==o&&Io(a,l,c,h,u,f,S.x,S.y)&&Se(S.prev,S,S.next)>=0)return!1;S=S.prevZ}for(;T&&T.z<=y;){if(T.x>=d&&T.x<=x&&T.y>=m&&T.y<=g&&T!==s&&T!==o&&Io(a,l,c,h,u,f,T.x,T.y)&&Se(T.prev,T,T.next)>=0)return!1;T=T.nextZ}return!0}function WP(r,e){let t=r;do{let i=t.prev,s=t.next.next;!qs(i,s)&&l2(i,t,t.next,s)&&Uo(i,s)&&Uo(s,i)&&(e.push(i.i,t.i,s.i),Oo(t),Oo(t.next),t=r=s),t=t.next}while(t!==r);return Yi(t)}function $P(r,e,t,i,s,n){let o=r;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&eB(o,a)){let c=h2(o,a);o=Yi(o,o.next),c=Yi(c,c.next),Fo(o,e,t,i,s,n,0),Fo(c,e,t,i,s,n,0);return}a=a.next}o=o.next}while(o!==r)}function qP(r,e,t,i){let s=[];for(let n=0,o=e.length;n<o;n++){let a=e[n]*i,c=n<o-1?e[n+1]*i:r.length,u=c2(r,a,c,i,!1);u===u.next&&(u.steiner=!0),s.push(JP(u))}s.sort(jP);for(let n=0;n<s.length;n++)t=XP(s[n],t);return t}function jP(r,e){let t=r.x-e.x;if(t===0&&(t=r.y-e.y,t===0)){let i=(r.next.y-r.y)/(r.next.x-r.x),s=(e.next.y-e.y)/(e.next.x-e.x);t=i-s}return t}function XP(r,e){let t=YP(r,e);if(!t)return e;let i=h2(t,r);return Yi(i,i.next),Yi(t,t.next)}function YP(r,e){let t=e,i=r.x,s=r.y,n=-1/0,o;if(qs(r,t))return t;do{if(qs(r,t.next))return t.next;if(s<=t.y&&s>=t.next.y&&t.next.y!==t.y){let h=t.x+(s-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(h<=i&&h>n&&(n=h,o=t.x<t.next.x?t:t.next,h===i))return o}t=t.next}while(t!==e);if(!o)return null;let a=o,c=o.x,u=o.y,l=1/0;t=o;do{if(i>=t.x&&t.x>=c&&i!==t.x&&u2(s<u?i:n,s,c,u,s<u?n:i,s,t.x,t.y)){let h=Math.abs(s-t.y)/(i-t.x);Uo(t,r)&&(h<l||h===l&&(t.x>o.x||t.x===o.x&&KP(o,t)))&&(o=t,l=h)}t=t.next}while(t!==a);return o}function KP(r,e){return Se(r.prev,r,e.prev)<0&&Se(e.next,r,r.next)<0}function QP(r,e,t,i){let s=r;do s.z===0&&(s.z=qf(s.x,s.y,e,t,i)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==r);s.prevZ.nextZ=null,s.prevZ=null,ZP(s)}function ZP(r){let e,t=1;do{let i=r,s;r=null;let n=null;for(e=0;i;){e++;let o=i,a=0;for(let u=0;u<t&&(a++,o=o.nextZ,!!o);u++);let c=t;for(;a>0||c>0&&o;)a!==0&&(c===0||!o||i.z<=o.z)?(s=i,i=i.nextZ,a--):(s=o,o=o.nextZ,c--),n?n.nextZ=s:r=s,s.prevZ=n,n=s;i=o}n.nextZ=null,t*=2}while(e>1);return r}function qf(r,e,t,i,s){return r=(r-t)*s|0,e=(e-i)*s|0,r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,r|e<<1}function JP(r){let e=r,t=r;do(e.x<t.x||e.x===t.x&&e.y<t.y)&&(t=e),e=e.next;while(e!==r);return t}function u2(r,e,t,i,s,n,o,a){return(s-o)*(e-a)>=(r-o)*(n-a)&&(r-o)*(i-a)>=(t-o)*(e-a)&&(t-o)*(n-a)>=(s-o)*(i-a)}function Io(r,e,t,i,s,n,o,a){return!(r===o&&e===a)&&u2(r,e,t,i,s,n,o,a)}function eB(r,e){return r.next.i!==e.i&&r.prev.i!==e.i&&!tB(r,e)&&(Uo(r,e)&&Uo(e,r)&&rB(r,e)&&(Se(r.prev,r,e.prev)||Se(r,e.prev,e))||qs(r,e)&&Se(r.prev,r,r.next)>0&&Se(e.prev,e,e.next)>0)}function Se(r,e,t){return(e.y-r.y)*(t.x-e.x)-(e.x-r.x)*(t.y-e.y)}function qs(r,e){return r.x===e.x&&r.y===e.y}function l2(r,e,t,i){let s=tl(Se(r,e,t)),n=tl(Se(r,e,i)),o=tl(Se(t,i,r)),a=tl(Se(t,i,e));return!!(s!==n&&o!==a||s===0&&el(r,t,e)||n===0&&el(r,i,e)||o===0&&el(t,r,i)||a===0&&el(t,e,i))}function el(r,e,t){return e.x<=Math.max(r.x,t.x)&&e.x>=Math.min(r.x,t.x)&&e.y<=Math.max(r.y,t.y)&&e.y>=Math.min(r.y,t.y)}function tl(r){return r>0?1:r<0?-1:0}function tB(r,e){let t=r;do{if(t.i!==r.i&&t.next.i!==r.i&&t.i!==e.i&&t.next.i!==e.i&&l2(t,t.next,r,e))return!0;t=t.next}while(t!==r);return!1}function Uo(r,e){return Se(r.prev,r,r.next)<0?Se(r,e,r.next)>=0&&Se(r,r.prev,e)>=0:Se(r,e,r.prev)<0||Se(r,r.next,e)<0}function rB(r,e){let t=r,i=!1,s=(r.x+e.x)/2,n=(r.y+e.y)/2;do t.y>n!=t.next.y>n&&t.next.y!==t.y&&s<(t.next.x-t.x)*(n-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==r);return i}function h2(r,e){let t=jf(r.i,r.x,r.y),i=jf(e.i,e.x,e.y),s=r.next,n=e.prev;return r.next=e,e.prev=r,t.next=s,s.prev=t,i.next=t,t.prev=i,n.next=i,i.prev=n,i}function a2(r,e,t,i){let s=jf(r,e,t);return i?(s.next=i.next,s.prev=i,i.next.prev=s,i.next=s):(s.prev=s,s.next=s),s}function Oo(r){r.next.prev=r.prev,r.prev.next=r.next,r.prevZ&&(r.prevZ.nextZ=r.nextZ),r.nextZ&&(r.nextZ.prevZ=r.prevZ)}function jf(r,e,t){return{i:r,x:e,y:t,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function iB(r,e,t,i){let s=0;for(let n=e,o=t-i;n<t;n+=i)s+=(r[o]-r[n])*(r[n+1]+r[o+1]),o=n;return s}var d2=p(()=>{});var f2,m2=p(()=>{d2();Ve();f2=rl.default||rl});function il(r,e,t,i,s,n,o){let a=f2(r,e,2);if(!a)return;for(let u=0;u<a.length;u+=3)n[o++]=a[u]+s,n[o++]=a[u+1]+s,n[o++]=a[u+2]+s;let c=s*i;for(let u=0;u<r.length;u+=2)t[c]=r[u],t[c+1]=r[u+1],c+=i}var Xf=p(()=>{m2()});var sB,p2,g2=p(()=>{B();Xf();sB=[],p2={extension:{type:b.ShapeBuilder,name:"polygon"},build(r,e){for(let t=0;t<r.points.length;t++)e[t]=r.points[t];return!0},triangulate(r,e,t,i,s,n){il(r,sB,e,t,i,s,n)}}});var x2,_2=p(()=>{B();x2={extension:{type:b.ShapeBuilder,name:"rectangle"},build(r,e){let t=r,i=t.x,s=t.y,n=t.width,o=t.height;return n>0&&o>0?(e[0]=i,e[1]=s,e[2]=i+n,e[3]=s,e[4]=i+n,e[5]=s+o,e[6]=i,e[7]=s+o,!0):!1},triangulate(r,e,t,i,s,n){let o=0;i*=t,e[i+o]=r[0],e[i+o+1]=r[1],o+=t,e[i+o]=r[2],e[i+o+1]=r[3],o+=t,e[i+o]=r[6],e[i+o+1]=r[7],o+=t,e[i+o]=r[4],e[i+o+1]=r[5],o+=t;let a=i/t;s[n++]=a,s[n++]=a+1,s[n++]=a+2,s[n++]=a+1,s[n++]=a+3,s[n++]=a+2}}});var b2,y2=p(()=>{B();b2={extension:{type:b.ShapeBuilder,name:"triangle"},build(r,e){return e[0]=r.x,e[1]=r.y,e[2]=r.x2,e[3]=r.y2,e[4]=r.x3,e[5]=r.y3,!0},triangulate(r,e,t,i,s,n){let o=0;i*=t,e[i+o]=r[0],e[i+o+1]=r[1],o+=t,e[i+o]=r[2],e[i+o+1]=r[3],o+=t,e[i+o]=r[4],e[i+o+1]=r[5];let a=i/t;s[n++]=a,s[n++]=a+1,s[n++]=a+2}}});function w2(r,e){for(let t=0;t<e.length;t++){let i=e[t];r.addColorStop(i.offset,i.color)}}function S2(r,e){let t=W.get().createCanvas(r,e),i=t.getContext("2d");return{canvas:t,context:i}}function nB(r){let e=r[0]??{};return(typeof e=="number"||r[1])&&(z("8.5.2","use options object instead"),e={type:"linear",start:{x:r[0],y:r[1]},end:{x:r[2],y:r[3]},textureSpace:r[4],textureSize:r[5]??lt.defaultLinearOptions.textureSize}),e}var T2,Kf,lt,js=p(()=>{He();Ce();te();zu();le();Oe();ye();Ld();T2=[{offset:0,color:"white"},{offset:1,color:"black"}],Kf=class Yf{constructor(...e){this.uid=K("fillGradient"),this.type="linear",this.colorStops=[];let t=nB(e);t={...t.type==="radial"?Yf.defaultRadialOptions:Yf.defaultLinearOptions,...Cu(t)},this._textureSize=t.textureSize,this._wrapMode=t.wrapMode,t.type==="radial"?(this.center=t.center,this.outerCenter=t.outerCenter??this.center,this.innerRadius=t.innerRadius,this.outerRadius=t.outerRadius,this.scale=t.scale,this.rotation=t.rotation):(this.start=t.start,this.end=t.end),this.textureSpace=t.textureSpace,this.type=t.type,t.colorStops.forEach(s=>{this.addColorStop(s.offset,s.color)})}addColorStop(e,t){return this.colorStops.push({offset:e,color:q.shared.setValue(t).toHexa()}),this}buildLinearGradient(){if(this.texture)return;let{x:e,y:t}=this.start,{x:i,y:s}=this.end,n=i-e,o=s-t,a=n<0||o<0;if(this._wrapMode==="clamp-to-edge"){if(n<0){let g=e;e=i,i=g,n*=-1}if(o<0){let g=t;t=s,s=g,o*=-1}}let c=this.colorStops.length?this.colorStops:T2,u=this._textureSize,{canvas:l,context:h}=S2(u,1),f=a?h.createLinearGradient(this._textureSize,0,0,0):h.createLinearGradient(0,0,this._textureSize,0);w2(f,c),h.fillStyle=f,h.fillRect(0,0,u,1),this.texture=new M({source:new Qt({resource:l,addressMode:this._wrapMode})});let d=Math.sqrt(n*n+o*o),m=Math.atan2(o,n),x=new R;x.scale(d/u,1),x.rotate(m),x.translate(e,t),this.textureSpace==="local"&&x.scale(u,u),this.transform=x}buildGradient(){this.type==="linear"?this.buildLinearGradient():this.buildRadialGradient()}buildRadialGradient(){if(this.texture)return;let e=this.colorStops.length?this.colorStops:T2,t=this._textureSize,{canvas:i,context:s}=S2(t,t),{x:n,y:o}=this.center,{x:a,y:c}=this.outerCenter,u=this.innerRadius,l=this.outerRadius,h=a-l,f=c-l,d=t/(l*2),m=(n-h)*d,x=(o-f)*d,g=s.createRadialGradient(m,x,u*d,(a-h)*d,(c-f)*d,l*d);w2(g,e),s.fillStyle=e[e.length-1].color,s.fillRect(0,0,t,t),s.fillStyle=g,s.translate(m,x),s.rotate(this.rotation),s.scale(1,this.scale),s.translate(-m,-x),s.fillRect(0,0,t,t),this.texture=new M({source:new Qt({resource:i,addressMode:this._wrapMode})});let _=new R;_.scale(1/d,1/d),_.translate(h,f),this.textureSpace==="local"&&_.scale(t,t),this.transform=_}get styleKey(){return this.uid}destroy(){this.texture?.destroy(!0),this.texture=null}};Kf.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};Kf.defaultRadialOptions={center:{x:.5,y:.5},innerRadius:0,outerRadius:.5,colorStops:[],scale:1,textureSpace:"local",type:"radial",textureSize:256,wrapMode:"clamp-to-edge"};lt=Kf});function v2(r,e,t,i){let s=e.matrix?r.copyFrom(e.matrix).invert():r.identity();if(e.textureSpace==="local"){let o=t.getBounds(aB);e.width&&o.pad(e.width);let{x:a,y:c}=o,u=1/o.width,l=1/o.height,h=-a*u,f=-c*l,d=s.a,m=s.b,x=s.c,g=s.d;s.a*=u,s.b*=u,s.c*=l,s.d*=l,s.tx=h*d+f*x+s.tx,s.ty=h*m+f*g+s.ty}else s.translate(e.texture.frame.x,e.texture.frame.y),s.scale(1/e.texture.source.width,1/e.texture.source.height);let n=e.texture.source.style;return!(e.fill instanceof lt)&&n.addressMode==="clamp-to-edge"&&(n.addressMode="repeat",n.update()),i&&s.append(oB.copyFrom(i).invert()),s}var oB,aB,C2=p(()=>{te();Ge();js();oB=new R,aB=new Y});function k2(r,e){let{geometryData:t,batches:i}=e;i.length=0,t.indices.length=0,t.vertices.length=0,t.uvs.length=0;for(let s=0;s<r.instructions.length;s++){let n=r.instructions[s];if(n.action==="texture")lB(n.data,i,t);else if(n.action==="fill"||n.action==="stroke"){let o=n.action==="stroke",a=n.data.path.shapePath,c=n.data.style,u=n.data.hole;o&&u&&E2(u.shapePath,c,!0,i,t),u&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=u.shapePath.shapePrimitives),E2(a,c,o,i,t)}}}function lB(r,e,t){let i=[],s=sl.rectangle,n=cB;n.x=r.dx,n.y=r.dy,n.width=r.dw,n.height=r.dh;let o=r.transform;if(!s.build(n,i))return;let{vertices:a,uvs:c,indices:u}=t,l=u.length,h=a.length/2;o&&Wf(i,o),s.triangulate(i,a,2,h,u,l);let f=r.image,d=f.uvs;c.push(d.x0,d.y0,d.x1,d.y1,d.x3,d.y3,d.x2,d.y2);let m=me.get(ji);m.indexOffset=l,m.indexSize=u.length-l,m.attributeOffset=h,m.attributeSize=a.length/2-h,m.baseColor=r.style,m.alpha=r.alpha,m.texture=f,m.geometryData=t,e.push(m)}function E2(r,e,t,i,s){let{vertices:n,uvs:o,indices:a}=s;r.shapePrimitives.forEach(({shape:c,transform:u,holes:l})=>{let h=[],f=sl[c.type];if(!f.build(c,h))return;let d=a.length,m=n.length/2,x="triangle-list";if(u&&Wf(h,u),t){let S=c.closePath??!0,T=e;T.pixelLine?(n2(h,S,n,a),x="line-list"):i2(h,T,!1,S,n,a)}else if(l){let S=[],T=h.slice();hB(l).forEach(v=>{S.push(T.length/2),T.push(...v)}),il(T,S,n,2,m,a,d)}else f.triangulate(h,n,2,m,a,d);let g=o.length/2,_=e.texture;if(_!==M.WHITE){let S=v2(uB,e,c,u);jy(n,2,m,o,g,2,n.length/2-m,S)}else Xy(o,g,2,n.length/2-m);let y=me.get(ji);y.indexOffset=d,y.indexSize=a.length-d,y.attributeOffset=m,y.attributeSize=n.length/2-m,y.baseColor=e.color,y.alpha=e.alpha,y.texture=_,y.geometryData=s,y.topology=x,i.push(y)})}function hB(r){let e=[];for(let t=0;t<r.length;t++){let i=r[t].shape,s=[];sl[i.type].build(i,s)&&e.push(s)}return e}var sl,cB,uB,A2=p(()=>{B();te();Ge();Yy();Ky();le();br();$f();Jy();s2();o2();g2();_2();y2();C2();Xf();sl={};O.handleByMap(b.ShapeBuilder,sl);O.add(x2,p2,b2,$s,Qy,Zy);cB=new Y,uB=new R});var Qf,Zf,em,Xs,nl=p(()=>{B();Wu();Hf();Gd();ye();br();A2();Qf=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]}}},Zf=class{constructor(){this.instructions=new Ps}init(e){this.batcher=new Mo({maxTextures:e}),this.instructions.reset()}get geometry(){return z(U0,"GraphicsContextRenderData#geometry is deprecated, please use batcher.geometry instead."),this.batcher.geometry}},em=class Jf{constructor(e){this._gpuContextHash={},this._graphicsDataContextHash=Object.create(null),this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuContextHash"),e.renderableGC.addManagedHash(this,"_graphicsDataContextHash")}init(e){Jf.defaultOptions.bezierSmoothness=e?.bezierSmoothness??Jf.defaultOptions.bezierSmoothness}getContextRenderData(e){return this._graphicsDataContextHash[e.uid]||this._initContextRenderData(e)}updateGpuContext(e){let t=this._gpuContextHash[e.uid]||this._initContext(e);if(e.dirty){t?this._cleanGraphicsContextData(e):t=this._initContext(e),k2(e,t);let i=e.batchMode;e.customShader||i==="no-batch"?t.isBatchable=!1:i==="auto"?t.isBatchable=t.geometryData.vertices.length<400:t.isBatchable=!0,e.dirty=!1}return t}getGpuContext(e){return this._gpuContextHash[e.uid]||this._initContext(e)}_initContextRenderData(e){let t=me.get(Zf,{maxTextures:this._renderer.limits.maxBatchableTextures}),{batches:i,geometryData:s}=this._gpuContextHash[e.uid],n=s.vertices.length,o=s.indices.length;for(let l=0;l<i.length;l++)i[l].applyTransform=!1;let a=t.batcher;a.ensureAttributeBuffer(n),a.ensureIndexBuffer(o),a.begin();for(let l=0;l<i.length;l++){let h=i[l];a.add(h)}a.finish(t.instructions);let c=a.geometry;c.indexBuffer.setDataWithSize(a.indexBuffer,a.indexSize,!0),c.buffers[0].setDataWithSize(a.attributeBuffer.float32View,a.attributeSize,!0);let u=a.batches;for(let l=0;l<u.length;l++){let h=u[l];h.bindGroup=Fs(h.textures.textures,h.textures.count,this._renderer.limits.maxBatchableTextures)}return this._graphicsDataContextHash[e.uid]=t,t}_initContext(e){let t=new Qf;return t.context=e,this._gpuContextHash[e.uid]=t,e.on("destroy",this.onGraphicsContextDestroy,this),this._gpuContextHash[e.uid]}onGraphicsContextDestroy(e){this._cleanGraphicsContextData(e),e.off("destroy",this.onGraphicsContextDestroy,this),this._gpuContextHash[e.uid]=null}_cleanGraphicsContextData(e){let t=this._gpuContextHash[e.uid];t.isBatchable||this._graphicsDataContextHash[e.uid]&&(me.return(this.getContextRenderData(e)),this._graphicsDataContextHash[e.uid]=null),t.batches&&t.batches.forEach(i=>{me.return(i)})}destroy(){for(let e in this._gpuContextHash)this._gpuContextHash[e]&&this.onGraphicsContextDestroy(this._gpuContextHash[e].context)}};em.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"graphicsContext"};em.defaultOptions={bezierSmoothness:.5};Xs=em});var dB,tm,rm,im,sm,nm,om,am,Pe,Gt=p(()=>{"use strict";dB={normal:0,add:1,multiply:2,screen:3,overlay:4,erase:5,"normal-npm":6,"add-npm":7,"screen-npm":8,min:9,max:10},tm=0,rm=1,im=2,sm=3,nm=4,om=5,am=class P2{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<tm)}set blend(e){!!(this.data&1<<tm)!==e&&(this.data^=1<<tm)}get offsets(){return!!(this.data&1<<rm)}set offsets(e){!!(this.data&1<<rm)!==e&&(this.data^=1<<rm)}set cullMode(e){if(e==="none"){this.culling=!1;return}this.culling=!0,this.clockwiseFrontFace=e==="front"}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(this.data&1<<im)}set culling(e){!!(this.data&1<<im)!==e&&(this.data^=1<<im)}get depthTest(){return!!(this.data&1<<sm)}set depthTest(e){!!(this.data&1<<sm)!==e&&(this.data^=1<<sm)}get depthMask(){return!!(this.data&1<<om)}set depthMask(e){!!(this.data&1<<om)!==e&&(this.data^=1<<om)}get clockwiseFrontFace(){return!!(this.data&1<<nm)}set clockwiseFrontFace(e){!!(this.data&1<<nm)!==e&&(this.data^=1<<nm)}get blendMode(){return this._blendMode}set blendMode(e){this.blend=e!=="none",this._blendMode=e,this._blendModeId=dB[e]||0}get polygonOffset(){return this._polygonOffset}set polygonOffset(e){this.offsets=!!e,this._polygonOffset=e}toString(){return`[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){let e=new P2;return e.depthTest=!1,e.blend=!0,e}};am.default2d=am.for2d();Pe=am});function sr(r,e,t){let i=(r>>24&255)/255;e[t++]=(r&255)/255*i,e[t++]=(r>>8&255)/255*i,e[t++]=(r>>16&255)/255*i,e[t++]=i}var Ys=p(()=>{"use strict"});var cm,Go,B2=p(()=>{B();Gt();br();Ys();$f();cm=class{constructor(){this.batches=[],this.batched=!1}destroy(){this.batches.forEach(e=>{me.return(e)}),this.batches.length=0}},Go=class{constructor(e,t){this.state=Pe.for2d(),this.renderer=e,this._adaptor=t,this.renderer.runners.contextChange.add(this)}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(e){let t=e.context,i=!!e._gpuData,s=this.renderer.graphicsContext.updateGpuContext(t);return!!(s.isBatchable||i!==s.isBatchable)}addRenderable(e,t){let i=this.renderer.graphicsContext.updateGpuContext(e.context);e.didViewUpdate&&this._rebuild(e),i.isBatchable?this._addToBatcher(e,t):(this.renderer.renderPipes.batch.break(t),t.add(e))}updateRenderable(e){let i=this._getGpuDataForRenderable(e).batches;for(let s=0;s<i.length;s++){let n=i[s];n._batcher.updateElement(n)}}execute(e){if(!e.isRenderable)return;let t=this.renderer,i=e.context;if(!t.graphicsContext.getGpuContext(i).batches.length)return;let n=i.customShader||this._adaptor.shader;this.state.blendMode=e.groupBlendMode;let o=n.resources.localUniforms.uniforms;o.uTransformMatrix=e.groupTransform,o.uRound=t._roundPixels|e._roundPixels,sr(e.groupColorAlpha,o.uColor,0),this._adaptor.execute(this,e)}_rebuild(e){let t=this._getGpuDataForRenderable(e),i=this.renderer.graphicsContext.updateGpuContext(e.context);t.destroy(),i.isBatchable&&this._updateBatchesForRenderable(e,t)}_addToBatcher(e,t){let i=this.renderer.renderPipes.batch,s=this._getGpuDataForRenderable(e).batches;for(let n=0;n<s.length;n++){let o=s[n];i.addToBatch(o,t)}}_getGpuDataForRenderable(e){return e._gpuData[this.renderer.uid]||this._initGpuDataForRenderable(e)}_initGpuDataForRenderable(e){let t=new cm;return e._gpuData[this.renderer.uid]=t,t}_updateBatchesForRenderable(e,t){let i=e.context,s=this.renderer.graphicsContext.getGpuContext(i),n=this.renderer._roundPixels|e._roundPixels;t.batches=s.batches.map(o=>{let a=me.get(ji);return o.copyTo(a),a.renderable=e,a.roundPixels=n,a})}destroy(){this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null}};Go.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"graphics"}});var um=p(()=>{B();nl();B2();O.add(Go);O.add(Xs)});var Jr,ol=p(()=>{"use strict";Jr=class{constructor(){this.batcherName="default",this.packAsQuad=!1,this.indexOffset=0,this.attributeOffset=0,this.roundPixels=0,this._batcher=null,this._batch=null,this._textureMatrixUpdateId=-1,this._uvUpdateId=-1}get blendMode(){return this.renderable.groupBlendMode}get topology(){return this._topology||this.geometry.topology}set topology(e){this._topology=e}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.geometry=null,this._uvUpdateId=-1,this._textureMatrixUpdateId=-1}setTexture(e){this.texture!==e&&(this.texture=e,this._textureMatrixUpdateId=-1)}get uvs(){let t=this.geometry.getBuffer("aUV"),i=t.data,s=i,n=this.texture.textureMatrix;return n.isSimple||(s=this._transformedUvs,(this._textureMatrixUpdateId!==n._updateID||this._uvUpdateId!==t._updateID)&&((!s||s.length<i.length)&&(s=this._transformedUvs=new Float32Array(i.length)),this._textureMatrixUpdateId=n._updateID,this._uvUpdateId=t._updateID,n.multiplyUvs(i,s))),s}get positions(){return this.geometry.positions}get indices(){return this.geometry.indices}get color(){return this.renderable.groupColorAlpha}get groupTransform(){return this.renderable.groupTransform}get attributeSize(){return this.geometry.positions.length/2}get indexSize(){return this.geometry.indices.length}}});var al,No,R2=p(()=>{B();te();Xr();it();Ao();Ys();ol();al=class{destroy(){}},No=class{constructor(e,t){this.localUniforms=new ce({uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new Ne({0:this.localUniforms}),this.renderer=e,this._adaptor=t,this._adaptor.init()}validateRenderable(e){let t=this._getMeshData(e),i=t.batched,s=e.batched;if(t.batched=s,i!==s)return!0;if(s){let n=e._geometry;if(n.indices.length!==t.indexSize||n.positions.length!==t.vertexSize)return t.indexSize=n.indices.length,t.vertexSize=n.positions.length,!0;let o=this._getBatchableMesh(e);return o.texture.uid!==e._texture.uid&&(o._textureMatrixUpdateId=-1),!o._batcher.checkAndUpdateTexture(o,e._texture)}return!1}addRenderable(e,t){let i=this.renderer.renderPipes.batch,{batched:s}=this._getMeshData(e);if(s){let n=this._getBatchableMesh(e);n.setTexture(e._texture),n.geometry=e._geometry,i.addToBatch(n,t)}else i.break(t),t.add(e)}updateRenderable(e){if(e.batched){let t=this._getBatchableMesh(e);t.setTexture(e._texture),t.geometry=e._geometry,t._batcher.updateElement(t)}}execute(e){if(!e.isRenderable)return;e.state.blendMode=vr(e.groupBlendMode,e.texture._source);let t=this.localUniforms;t.uniforms.uTransformMatrix=e.groupTransform,t.uniforms.uRound=this.renderer._roundPixels|e._roundPixels,t.update(),sr(e.groupColorAlpha,t.uniforms.uColor,0),this._adaptor.execute(this,e)}_getMeshData(e){var t,i;return(t=e._gpuData)[i=this.renderer.uid]||(t[i]=new al),e._gpuData[this.renderer.uid].meshData||this._initMeshData(e)}_initMeshData(e){return e._gpuData[this.renderer.uid].meshData={batched:e.batched,indexSize:e._geometry.indices?.length,vertexSize:e._geometry.positions?.length},e._gpuData[this.renderer.uid].meshData}_getBatchableMesh(e){var t,i;return(t=e._gpuData)[i=this.renderer.uid]||(t[i]=new al),e._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(e)}_initBatchableMesh(e){let t=new Jr;return t.renderable=e,t.setTexture(e._texture),t.transform=e.groupTransform,t.roundPixels=this.renderer._roundPixels|e._roundPixels,e._gpuData[this.renderer.uid].batchableMesh=t,t}destroy(){this.localUniforms=null,this.localUniformsBindGroup=null,this._adaptor.destroy(),this._adaptor=null,this.renderer=null}};No.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"mesh"}});var lm=p(()=>{B();R2();O.add(No)});var cl,D2=p(()=>{"use strict";cl=class{execute(e,t){let i=e.state,s=e.renderer,n=t.shader||e.defaultShader;n.resources.uTexture=t.texture._source,n.resources.uniforms=e.localUniforms;let o=s.gl,a=e.getBuffers(t);s.shader.bind(n),s.state.set(i),s.geometry.bind(a.geometry,n.glProgram);let u=a.geometry.indexBuffer.data.BYTES_PER_ELEMENT===2?o.UNSIGNED_SHORT:o.UNSIGNED_INT;o.drawElements(o.TRIANGLES,t.particleChildren.length*6,u,0)}}});function hm(r,e=null){let t=r*6;if(t>65535?e||(e=new Uint32Array(t)):e||(e=new Uint16Array(t)),e.length!==t)throw new Error(`Out buffer length is incorrect, got ${e.length} and expected ${t}`);for(let i=0,s=0;i<t;i+=6,s+=4)e[i+0]=s+0,e[i+1]=s+1,e[i+2]=s+2,e[i+3]=s+0,e[i+4]=s+2,e[i+5]=s+3;return e}var M2=p(()=>{"use strict"});function F2(r){return{dynamicUpdate:I2(r,!0),staticUpdate:I2(r,!1)}}function I2(r,e){let t=[];t.push(`
|
|
253
|
+
`}}});var rf,db,fb=p(()=>{"use strict";rf=["f32","i32","vec2<f32>","vec3<f32>","vec4<f32>","mat2x2<f32>","mat3x3<f32>","mat4x4<f32>","mat3x2<f32>","mat4x2<f32>","mat2x3<f32>","mat4x3<f32>","mat2x4<f32>","mat3x4<f32>","vec2<i32>","vec3<i32>","vec4<i32>"],db=rf.reduce((r,e)=>(r[e]=!0,r),{})});function mb(r,e){switch(r){case"f32":return 0;case"vec2<f32>":return new Float32Array(2*e);case"vec3<f32>":return new Float32Array(3*e);case"vec4<f32>":return new Float32Array(4*e);case"mat2x2<f32>":return new Float32Array([1,0,0,1]);case"mat3x3<f32>":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4x4<f32>":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}var pb=p(()=>{"use strict"});var gb,ce,rt=p(()=>{Oe();no();fb();pb();gb=class xb{constructor(e,t){this._touched=0,this.uid=K("uniform"),this._resourceType="uniformGroup",this._resourceId=K("resource"),this.isUniformGroup=!0,this._dirtyId=0,this.destroyed=!1,t={...xb.defaultOptions,...t},this.uniformStructures=e;let i={};for(let s in e){let n=e[s];if(n.name=s,n.size=n.size??1,!db[n.type])throw new Error(`Uniform type ${n.type} is not supported. Supported uniform types are: ${rf.join(", ")}`);n.value??(n.value=mb(n.type,n.size)),i[s]=n.value}this.uniforms=i,this._dirtyId=1,this.ubo=t.ubo,this.isStatic=t.isStatic,this._signature=Sr(Object.keys(i).map(s=>`${s}-${e[s].type}`).join("-"),"uniform-group")}update(){this._dirtyId++}};gb.defaultOptions={ubo:!1,isStatic:!1};ce=gb});function vs(r){let e=_b[r];if(e)return e;let t=new Int32Array(r);for(let i=0;i<r;i++)t[i]=i;return e=_b[r]=new ce({uTextures:{value:t,type:"i32",size:r}},{isStatic:!0}),e}var _b,pu=p(()=>{rt();_b={}});var Me,Jt=p(()=>{"use strict";Me=(r=>(r[r.WEBGL=1]="WEBGL",r[r.WEBGPU=2]="WEBGPU",r[r.BOTH=3]="BOTH",r))(Me||{})});var Ee,Ut=p(()=>{Ve();Oe();Ai();$r();bs();Jt();rt();Ee=class r extends oe{constructor(e){super(),this.uid=K("shader"),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[];let{gpuProgram:t,glProgram:i,groups:s,resources:n,compatibleRenderers:o,groupMap:a}=e;this.gpuProgram=t,this.glProgram=i,o===void 0&&(o=0,t&&(o|=Me.WEBGPU),i&&(o|=Me.WEBGL)),this.compatibleRenderers=o;let c={};if(!n&&!s&&(n={}),n&&s)throw new Error("[Shader] Cannot have both resources and groups");if(!t&&s&&!a)throw new Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");if(!t&&s&&a)for(let u in a)for(let l in a[u]){let h=a[u][l];c[h]={group:u,binding:l,name:h}}else if(t&&s&&!a){let u=t.structsAndGroups.groups;a={},u.forEach(l=>{a[l.group]=a[l.group]||{},a[l.group][l.binding]=l.name,c[l.name]=l})}else if(n){s={},a={},t&&t.structsAndGroups.groups.forEach(h=>{a[h.group]=a[h.group]||{},a[h.group][h.binding]=h.name,c[h.name]=h});let u=0;for(let l in n)c[l]||(s[99]||(s[99]=new Ne,this._ownedBindGroups.push(s[99])),c[l]={group:99,binding:u,name:l},a[99]=a[99]||{},a[99][u]=l,u++);for(let l in n){let h=l,f=n[l];!f.source&&!f._resourceType&&(f=new ce(f));let d=c[h];d&&(s[d.group]||(s[d.group]=new Ne,this._ownedBindGroups.push(s[d.group])),s[d.group].setResource(f,d.binding))}}this.groups=s,this._uniformBindMap=a,this.resources=this._buildResourceAccessor(s,c)}addResource(e,t,i){var s,n;(s=this._uniformBindMap)[t]||(s[t]={}),(n=this._uniformBindMap[t])[i]||(n[i]=e),this.groups[t]||(this.groups[t]=new Ne,this._ownedBindGroups.push(this.groups[t]))}_buildResourceAccessor(e,t){let i={};for(let s in t){let n=t[s];Object.defineProperty(i,n.name,{get(){return e[n.group].getResource(n.binding)},set(o){e[n.group].setResource(o,n.binding)}})}return i}destroy(e=!1){this.emit("destroy",this),e&&(this.gpuProgram?.destroy(),this.glProgram?.destroy()),this.gpuProgram=null,this.glProgram=null,this.removeAllListeners(),this._uniformBindMap=null,this._ownedBindGroups.forEach(t=>{t.destroy()}),this._ownedBindGroups=null,this.resources=null,this.groups=null}static from(e){let{gpu:t,gl:i,...s}=e,n,o;return t&&(n=Et.from(t)),i&&(o=Ct.from(i)),new r({gpuProgram:n,glProgram:o,...s})}}});var gu,bb=p(()=>{Xr();oo();ao();Yr();pu();Ut();gu=class extends Ee{constructor(e){let t=Kt({name:"batch",bits:[Ts,Ss(e),Zt]}),i=Yt({name:"batch",bits:[ys,ws(e),Qt]});super({glProgram:t,gpuProgram:i,resources:{batchSamplers:vs(e)}})}}});var sf,yb,co,nf=p(()=>{P();p_();b_();bb();sf=null,yb=class Tb extends m_{constructor(e){super(e),this.geometry=new du,this.name=Tb.extension.name,this.vertexSize=6,sf??(sf=new gu(e.maxTextures)),this.shader=sf}packAttributes(e,t,i,s,n){let o=n<<16|e.roundPixels&65535,a=e.transform,c=a.a,u=a.b,l=a.c,h=a.d,f=a.tx,d=a.ty,{positions:m,uvs:x}=e,g=e.color,_=e.attributeOffset,y=_+e.attributeSize;for(let S=_;S<y;S++){let T=S*2,C=m[T],v=m[T+1];t[s++]=c*C+l*v+f,t[s++]=h*v+u*C+d,t[s++]=x[T],t[s++]=x[T+1],i[s++]=g,i[s++]=o}}packQuadAttributes(e,t,i,s,n){let o=e.texture,a=e.transform,c=a.a,u=a.b,l=a.c,h=a.d,f=a.tx,d=a.ty,m=e.bounds,x=m.maxX,g=m.minX,_=m.maxY,y=m.minY,S=o.uvs,T=e.color,C=n<<16|e.roundPixels&65535;t[s+0]=c*g+l*y+f,t[s+1]=h*y+u*g+d,t[s+2]=S.x0,t[s+3]=S.y0,i[s+4]=T,i[s+5]=C,t[s+6]=c*x+l*y+f,t[s+7]=h*y+u*x+d,t[s+8]=S.x1,t[s+9]=S.y1,i[s+10]=T,i[s+11]=C,t[s+12]=c*x+l*_+f,t[s+13]=h*_+u*x+d,t[s+14]=S.x2,t[s+15]=S.y2,i[s+16]=T,i[s+17]=C,t[s+18]=c*g+l*_+f,t[s+19]=h*_+u*g+d,t[s+20]=S.x3,t[s+21]=S.y3,i[s+22]=T,i[s+23]=C}};yb.extension={type:[b.Batcher],name:"default"};co=yb});function wb(r,e,t,i,s,n,o,a=null){let c=0;t*=e,s*=n;let u=a.a,l=a.b,h=a.c,f=a.d,d=a.tx,m=a.ty;for(;c<o;){let x=r[t],g=r[t+1];i[s]=u*x+h*g+d,i[s+1]=l*x+f*g+m,s+=n,t+=e,c++}}function Sb(r,e,t,i){let s=0;for(e*=t;s<i;)r[e]=0,r[e+1]=0,e+=t,s++}var vb=p(()=>{"use strict"});function of(r,e,t,i,s){let n=e.a,o=e.b,a=e.c,c=e.d,u=e.tx,l=e.ty;t||(t=0),i||(i=2),s||(s=r.length/i-t);let h=t*i;for(let f=0;f<s;f++){let d=r[h],m=r[h+1];r[h]=n*d+a*m+u,r[h+1]=o*d+c*m+l,h+=i}}var Cb=p(()=>{"use strict"});var lA,Bi,af=p(()=>{ee();Qh();lA=new R,Bi=class{constructor(){this.packAsQuad=!1,this.batcherName="default",this.topology="triangle-list",this.applyTransform=!0,this.roundPixels=0,this._batcher=null,this._batch=null}get uvs(){return this.geometryData.uvs}get positions(){return this.geometryData.vertices}get indices(){return this.geometryData.indices}get blendMode(){return this.renderable&&this.applyTransform?this.renderable.groupBlendMode:"normal"}get color(){let e=this.baseColor,t=e>>16|e&65280|(e&255)<<16,i=this.renderable;return i?Lc(t,i.groupColor)+(this.alpha*i.groupAlpha*255<<24):t+(this.alpha*255<<24)}get transform(){return this.renderable?.groupTransform||lA}copyTo(e){e.indexOffset=this.indexOffset,e.indexSize=this.indexSize,e.attributeOffset=this.attributeOffset,e.attributeSize=this.attributeSize,e.baseColor=this.baseColor,e.alpha=this.alpha,e.texture=this.texture,e.geometryData=this.geometryData,e.topology=this.topology}reset(){this.applyTransform=!0,this.renderable=null,this.topology="triangle-list"}}});var Cs,Eb,kb,Ab=p(()=>{P();Cs={extension:{type:b.ShapeBuilder,name:"circle"},build(r,e){let t,i,s,n,o,a;if(r.type==="circle"){let T=r;if(o=a=T.radius,o<=0)return!1;t=T.x,i=T.y,s=n=0}else if(r.type==="ellipse"){let T=r;if(o=T.halfWidth,a=T.halfHeight,o<=0||a<=0)return!1;t=T.x,i=T.y,s=n=0}else{let T=r,C=T.width/2,v=T.height/2;t=T.x+C,i=T.y+v,o=a=Math.max(0,Math.min(T.radius,Math.min(C,v))),s=C-o,n=v-a}if(s<0||n<0)return!1;let c=Math.ceil(2.3*Math.sqrt(o+a)),u=c*8+(s?4:0)+(n?4:0);if(u===0)return!1;if(c===0)return e[0]=e[6]=t+s,e[1]=e[3]=i+n,e[2]=e[4]=t-s,e[5]=e[7]=i-n,!0;let l=0,h=c*4+(s?2:0)+2,f=h,d=u,m=s+o,x=n,g=t+m,_=t-m,y=i+x;if(e[l++]=g,e[l++]=y,e[--h]=y,e[--h]=_,n){let T=i-x;e[f++]=_,e[f++]=T,e[--d]=T,e[--d]=g}for(let T=1;T<c;T++){let C=Math.PI/2*(T/c),v=s+Math.cos(C)*o,E=n+Math.sin(C)*a,M=t+v,A=t-v,B=i+E,k=i-E;e[l++]=M,e[l++]=B,e[--h]=B,e[--h]=A,e[f++]=A,e[f++]=k,e[--d]=k,e[--d]=M}m=s,x=n+a,g=t+m,_=t-m,y=i+x;let S=i-x;return e[l++]=g,e[l++]=y,e[--d]=S,e[--d]=g,s&&(e[l++]=_,e[l++]=y,e[--d]=S,e[--d]=_),!0},triangulate(r,e,t,i,s,n){if(r.length===0)return;let o=0,a=0;for(let l=0;l<r.length;l+=2)o+=r[l],a+=r[l+1];o/=r.length/2,a/=r.length/2;let c=i;e[c*t]=o,e[c*t+1]=a;let u=c++;for(let l=0;l<r.length;l+=2)e[c*t]=r[l],e[c*t+1]=r[l+1],l>0&&(s[n++]=c,s[n++]=u,s[n++]=c-1),c++;s[n++]=u+1,s[n++]=u,s[n++]=c-1}},Eb={...Cs,extension:{...Cs.extension,name:"ellipse"}},kb={...Cs,extension:{...Cs.extension,name:"roundedRectangle"}}});function Pb(r){let e=r.length;if(e<6)return 1;let t=0;for(let i=0,s=r[e-2],n=r[e-1];i<e;i+=2){let o=r[i],a=r[i+1];t+=(o-s)*(a+n),s=o,n=a}return t<0?-1:1}var Bb=p(()=>{"use strict"});function Rb(r,e,t,i,s,n,o,a){let c=r-t*s,u=e-i*s,l=r+t*n,h=e+i*n,f,d;o?(f=i,d=-t):(f=-i,d=t);let m=c+f,x=u+d,g=l+f,_=h+d;return a.push(m,x),a.push(g,_),2}function Ri(r,e,t,i,s,n,o,a){let c=t-r,u=i-e,l=Math.atan2(c,u),h=Math.atan2(s-r,n-e);a&&l<h?l+=Math.PI*2:!a&&l>h&&(h+=Math.PI*2);let f=l,d=h-l,m=Math.abs(d),x=Math.sqrt(c*c+u*u),g=(15*m*Math.sqrt(x)/Math.PI>>0)+1,_=d/g;if(f+=_,a){o.push(r,e),o.push(t,i);for(let y=1,S=f;y<g;y++,S+=_)o.push(r,e),o.push(r+Math.sin(S)*x,e+Math.cos(S)*x);o.push(r,e),o.push(s,n)}else{o.push(t,i),o.push(r,e);for(let y=1,S=f;y<g;y++,S+=_)o.push(r+Math.sin(S)*x,e+Math.cos(S)*x),o.push(r,e);o.push(s,n),o.push(r,e)}return g*2}function Db(r,e,t,i,s,n){let o=1e-4;if(r.length===0)return;let a=e,c=a.alignment;if(e.alignment!==.5){let fe=Pb(r);t&&(fe*=-1),c=(c-.5)*fe+.5}let u=new Z(r[0],r[1]),l=new Z(r[r.length-2],r[r.length-1]),h=i,f=Math.abs(u.x-l.x)<o&&Math.abs(u.y-l.y)<o;if(h){r=r.slice(),f&&(r.pop(),r.pop(),l.set(r[r.length-2],r[r.length-1]));let fe=(u.x+l.x)*.5,Ur=(l.y+u.y)*.5;r.unshift(fe,Ur),r.push(fe,Ur)}let d=s,m=r.length/2,x=r.length,g=d.length/2,_=a.width/2,y=_*_,S=a.miterLimit*a.miterLimit,T=r[0],C=r[1],v=r[2],E=r[3],M=0,A=0,B=-(C-E),k=T-v,L=0,j=0,be=Math.sqrt(B*B+k*k);B/=be,k/=be,B*=_,k*=_;let wt=c,U=(1-wt)*2,H=wt*2;h||(a.cap==="round"?x+=Ri(T-B*(U-H)*.5,C-k*(U-H)*.5,T-B*U,C-k*U,T+B*H,C+k*H,d,!0)+2:a.cap==="square"&&(x+=Rb(T,C,B,k,U,H,!0,d))),d.push(T-B*U,C-k*U),d.push(T+B*H,C+k*H);for(let fe=1;fe<m-1;++fe){T=r[(fe-1)*2],C=r[(fe-1)*2+1],v=r[fe*2],E=r[fe*2+1],M=r[(fe+1)*2],A=r[(fe+1)*2+1],B=-(C-E),k=T-v,be=Math.sqrt(B*B+k*k),B/=be,k/=be,B*=_,k*=_,L=-(E-A),j=v-M,be=Math.sqrt(L*L+j*j),L/=be,j/=be,L*=_,j*=_;let Ur=v-T,En=C-E,kn=v-M,An=A-E,gg=Ur*kn+En*An,lc=En*kn-An*Ur,Pn=lc<0;if(Math.abs(lc)<.001*Math.abs(gg)){d.push(v-B*U,E-k*U),d.push(v+B*H,E+k*H),gg>=0&&(a.join==="round"?x+=Ri(v,E,v-B*U,E-k*U,v-L*U,E-j*U,d,!1)+4:x+=2,d.push(v-L*H,E-j*H),d.push(v+L*U,E+j*U));continue}let xg=(-B+T)*(-k+E)-(-B+v)*(-k+C),_g=(-L+M)*(-j+E)-(-L+v)*(-j+A),hc=(Ur*_g-kn*xg)/lc,dc=(An*xg-En*_g)/lc,Eh=(hc-v)*(hc-v)+(dc-E)*(dc-E),ci=v+(hc-v)*U,ui=E+(dc-E)*U,li=v-(hc-v)*H,hi=E-(dc-E)*H,HE=Math.min(Ur*Ur+En*En,kn*kn+An*An),bg=Pn?U:H,WE=HE+bg*bg*y;Eh<=WE?a.join==="bevel"||Eh/y>S?(Pn?(d.push(ci,ui),d.push(v+B*H,E+k*H),d.push(ci,ui),d.push(v+L*H,E+j*H)):(d.push(v-B*U,E-k*U),d.push(li,hi),d.push(v-L*U,E-j*U),d.push(li,hi)),x+=2):a.join==="round"?Pn?(d.push(ci,ui),d.push(v+B*H,E+k*H),x+=Ri(v,E,v+B*H,E+k*H,v+L*H,E+j*H,d,!0)+4,d.push(ci,ui),d.push(v+L*H,E+j*H)):(d.push(v-B*U,E-k*U),d.push(li,hi),x+=Ri(v,E,v-B*U,E-k*U,v-L*U,E-j*U,d,!1)+4,d.push(v-L*U,E-j*U),d.push(li,hi)):(d.push(ci,ui),d.push(li,hi)):(d.push(v-B*U,E-k*U),d.push(v+B*H,E+k*H),a.join==="round"?Pn?x+=Ri(v,E,v+B*H,E+k*H,v+L*H,E+j*H,d,!0)+2:x+=Ri(v,E,v-B*U,E-k*U,v-L*U,E-j*U,d,!1)+2:a.join==="miter"&&Eh/y<=S&&(Pn?(d.push(li,hi),d.push(li,hi)):(d.push(ci,ui),d.push(ci,ui)),x+=2),d.push(v-L*U,E-j*U),d.push(v+L*H,E+j*H),x+=2)}T=r[(m-2)*2],C=r[(m-2)*2+1],v=r[(m-1)*2],E=r[(m-1)*2+1],B=-(C-E),k=T-v,be=Math.sqrt(B*B+k*k),B/=be,k/=be,B*=_,k*=_,d.push(v-B*U,E-k*U),d.push(v+B*H,E+k*H),h||(a.cap==="round"?x+=Ri(v-B*(U-H)*.5,E-k*(U-H)*.5,v-B*U,E-k*U,v+B*H,E+k*H,d,!1)+2:a.cap==="square"&&(x+=Rb(v,E,B,k,U,H,!1,d)));let Ch=1e-4*1e-4;for(let fe=g;fe<x+g-2;++fe)T=d[fe*2],C=d[fe*2+1],v=d[(fe+1)*2],E=d[(fe+1)*2+1],M=d[(fe+2)*2],A=d[(fe+2)*2+1],!(Math.abs(T*(E-A)+v*(A-C)+M*(C-E))<Ch)&&n.push(fe,fe+1,fe+2)}var Mb=p(()=>{It();Bb()});function Ib(r,e,t,i){let s=1e-4;if(r.length===0)return;let n=r[0],o=r[1],a=r[r.length-2],c=r[r.length-1],u=e||Math.abs(n-a)<s&&Math.abs(o-c)<s,l=t,h=r.length/2,f=l.length/2;for(let d=0;d<h;d++)l.push(r[d*2]),l.push(r[d*2+1]);for(let d=0;d<h-1;d++)i.push(f+d,f+d+1);u&&i.push(f+h-1,f)}var Fb=p(()=>{});function bu(r,e,t=2){let i=e&&e.length,s=i?e[0]*t:r.length,n=Ob(r,0,s,t,!0),o=[];if(!n||n.next===n.prev)return o;let a,c,u;if(i&&(n=xA(r,e,n,t)),r.length>80*t){a=1/0,c=1/0;let l=-1/0,h=-1/0;for(let f=t;f<s;f+=t){let d=r[f],m=r[f+1];d<a&&(a=d),m<c&&(c=m),d>l&&(l=d),m>h&&(h=m)}u=Math.max(l-a,h-c),u=u!==0?32767/u:0}return lo(n,o,t,a,c,u,0),o}function Ob(r,e,t,i,s){let n;if(s===AA(r,e,t,i)>0)for(let o=e;o<t;o+=i)n=Ub(o/i|0,r[o],r[o+1],n);else for(let o=t-i;o>=e;o-=i)n=Ub(o/i|0,r[o],r[o+1],n);return n&&Es(n,n.next)&&(fo(n),n=n.next),n}function Di(r,e){if(!r)return r;e||(e=r);let t=r,i;do if(i=!1,!t.steiner&&(Es(t,t.next)||Se(t.prev,t,t.next)===0)){if(fo(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function lo(r,e,t,i,s,n,o){if(!r)return;!o&&n&&wA(r,i,s,n);let a=r;for(;r.prev!==r.next;){let c=r.prev,u=r.next;if(n?mA(r,i,s,n):fA(r)){e.push(c.i,r.i,u.i),fo(r),r=u.next,a=u.next;continue}if(r=u,r===a){o?o===1?(r=pA(Di(r),e),lo(r,e,t,i,s,n,2)):o===2&&gA(r,e,t,i,s,n):lo(Di(r),e,t,i,s,n,1);break}}}function fA(r){let e=r.prev,t=r,i=r.next;if(Se(e,t,i)>=0)return!1;let s=e.x,n=t.x,o=i.x,a=e.y,c=t.y,u=i.y,l=Math.min(s,n,o),h=Math.min(a,c,u),f=Math.max(s,n,o),d=Math.max(a,c,u),m=i.next;for(;m!==e;){if(m.x>=l&&m.x<=f&&m.y>=h&&m.y<=d&&uo(s,a,n,c,o,u,m.x,m.y)&&Se(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function mA(r,e,t,i){let s=r.prev,n=r,o=r.next;if(Se(s,n,o)>=0)return!1;let a=s.x,c=n.x,u=o.x,l=s.y,h=n.y,f=o.y,d=Math.min(a,c,u),m=Math.min(l,h,f),x=Math.max(a,c,u),g=Math.max(l,h,f),_=cf(d,m,e,t,i),y=cf(x,g,e,t,i),S=r.prevZ,T=r.nextZ;for(;S&&S.z>=_&&T&&T.z<=y;){if(S.x>=d&&S.x<=x&&S.y>=m&&S.y<=g&&S!==s&&S!==o&&uo(a,l,c,h,u,f,S.x,S.y)&&Se(S.prev,S,S.next)>=0||(S=S.prevZ,T.x>=d&&T.x<=x&&T.y>=m&&T.y<=g&&T!==s&&T!==o&&uo(a,l,c,h,u,f,T.x,T.y)&&Se(T.prev,T,T.next)>=0))return!1;T=T.nextZ}for(;S&&S.z>=_;){if(S.x>=d&&S.x<=x&&S.y>=m&&S.y<=g&&S!==s&&S!==o&&uo(a,l,c,h,u,f,S.x,S.y)&&Se(S.prev,S,S.next)>=0)return!1;S=S.prevZ}for(;T&&T.z<=y;){if(T.x>=d&&T.x<=x&&T.y>=m&&T.y<=g&&T!==s&&T!==o&&uo(a,l,c,h,u,f,T.x,T.y)&&Se(T.prev,T,T.next)>=0)return!1;T=T.nextZ}return!0}function pA(r,e){let t=r;do{let i=t.prev,s=t.next.next;!Es(i,s)&&Nb(i,t,t.next,s)&&ho(i,s)&&ho(s,i)&&(e.push(i.i,t.i,s.i),fo(t),fo(t.next),t=r=s),t=t.next}while(t!==r);return Di(t)}function gA(r,e,t,i,s,n){let o=r;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&CA(o,a)){let c=Lb(o,a);o=Di(o,o.next),c=Di(c,c.next),lo(o,e,t,i,s,n,0),lo(c,e,t,i,s,n,0);return}a=a.next}o=o.next}while(o!==r)}function xA(r,e,t,i){let s=[];for(let n=0,o=e.length;n<o;n++){let a=e[n]*i,c=n<o-1?e[n+1]*i:r.length,u=Ob(r,a,c,i,!1);u===u.next&&(u.steiner=!0),s.push(vA(u))}s.sort(_A);for(let n=0;n<s.length;n++)t=bA(s[n],t);return t}function _A(r,e){let t=r.x-e.x;if(t===0&&(t=r.y-e.y,t===0)){let i=(r.next.y-r.y)/(r.next.x-r.x),s=(e.next.y-e.y)/(e.next.x-e.x);t=i-s}return t}function bA(r,e){let t=yA(r,e);if(!t)return e;let i=Lb(t,r);return Di(i,i.next),Di(t,t.next)}function yA(r,e){let t=e,i=r.x,s=r.y,n=-1/0,o;if(Es(r,t))return t;do{if(Es(r,t.next))return t.next;if(s<=t.y&&s>=t.next.y&&t.next.y!==t.y){let h=t.x+(s-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(h<=i&&h>n&&(n=h,o=t.x<t.next.x?t:t.next,h===i))return o}t=t.next}while(t!==e);if(!o)return null;let a=o,c=o.x,u=o.y,l=1/0;t=o;do{if(i>=t.x&&t.x>=c&&i!==t.x&&Gb(s<u?i:n,s,c,u,s<u?n:i,s,t.x,t.y)){let h=Math.abs(s-t.y)/(i-t.x);ho(t,r)&&(h<l||h===l&&(t.x>o.x||t.x===o.x&&TA(o,t)))&&(o=t,l=h)}t=t.next}while(t!==a);return o}function TA(r,e){return Se(r.prev,r,e.prev)<0&&Se(e.next,r,r.next)<0}function wA(r,e,t,i){let s=r;do s.z===0&&(s.z=cf(s.x,s.y,e,t,i)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==r);s.prevZ.nextZ=null,s.prevZ=null,SA(s)}function SA(r){let e,t=1;do{let i=r,s;r=null;let n=null;for(e=0;i;){e++;let o=i,a=0;for(let u=0;u<t&&(a++,o=o.nextZ,!!o);u++);let c=t;for(;a>0||c>0&&o;)a!==0&&(c===0||!o||i.z<=o.z)?(s=i,i=i.nextZ,a--):(s=o,o=o.nextZ,c--),n?n.nextZ=s:r=s,s.prevZ=n,n=s;i=o}n.nextZ=null,t*=2}while(e>1);return r}function cf(r,e,t,i,s){return r=(r-t)*s|0,e=(e-i)*s|0,r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,r|e<<1}function vA(r){let e=r,t=r;do(e.x<t.x||e.x===t.x&&e.y<t.y)&&(t=e),e=e.next;while(e!==r);return t}function Gb(r,e,t,i,s,n,o,a){return(s-o)*(e-a)>=(r-o)*(n-a)&&(r-o)*(i-a)>=(t-o)*(e-a)&&(t-o)*(n-a)>=(s-o)*(i-a)}function uo(r,e,t,i,s,n,o,a){return!(r===o&&e===a)&&Gb(r,e,t,i,s,n,o,a)}function CA(r,e){return r.next.i!==e.i&&r.prev.i!==e.i&&!EA(r,e)&&(ho(r,e)&&ho(e,r)&&kA(r,e)&&(Se(r.prev,r,e.prev)||Se(r,e.prev,e))||Es(r,e)&&Se(r.prev,r,r.next)>0&&Se(e.prev,e,e.next)>0)}function Se(r,e,t){return(e.y-r.y)*(t.x-e.x)-(e.x-r.x)*(t.y-e.y)}function Es(r,e){return r.x===e.x&&r.y===e.y}function Nb(r,e,t,i){let s=_u(Se(r,e,t)),n=_u(Se(r,e,i)),o=_u(Se(t,i,r)),a=_u(Se(t,i,e));return!!(s!==n&&o!==a||s===0&&xu(r,t,e)||n===0&&xu(r,i,e)||o===0&&xu(t,r,i)||a===0&&xu(t,e,i))}function xu(r,e,t){return e.x<=Math.max(r.x,t.x)&&e.x>=Math.min(r.x,t.x)&&e.y<=Math.max(r.y,t.y)&&e.y>=Math.min(r.y,t.y)}function _u(r){return r>0?1:r<0?-1:0}function EA(r,e){let t=r;do{if(t.i!==r.i&&t.next.i!==r.i&&t.i!==e.i&&t.next.i!==e.i&&Nb(t,t.next,r,e))return!0;t=t.next}while(t!==r);return!1}function ho(r,e){return Se(r.prev,r,r.next)<0?Se(r,e,r.next)>=0&&Se(r,r.prev,e)>=0:Se(r,e,r.prev)<0||Se(r,r.next,e)<0}function kA(r,e){let t=r,i=!1,s=(r.x+e.x)/2,n=(r.y+e.y)/2;do t.y>n!=t.next.y>n&&t.next.y!==t.y&&s<(t.next.x-t.x)*(n-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==r);return i}function Lb(r,e){let t=uf(r.i,r.x,r.y),i=uf(e.i,e.x,e.y),s=r.next,n=e.prev;return r.next=e,e.prev=r,t.next=s,s.prev=t,i.next=t,t.prev=i,n.next=i,i.prev=n,i}function Ub(r,e,t,i){let s=uf(r,e,t);return i?(s.next=i.next,s.prev=i,i.next.prev=s,i.next=s):(s.prev=s,s.next=s),s}function fo(r){r.next.prev=r.prev,r.prev.next=r.next,r.prevZ&&(r.prevZ.nextZ=r.nextZ),r.nextZ&&(r.nextZ.prevZ=r.prevZ)}function uf(r,e,t){return{i:r,x:e,y:t,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function AA(r,e,t,i){let s=0;for(let n=e,o=t-i;n<t;n+=i)s+=(r[o]-r[n])*(r[n+1]+r[o+1]),o=n;return s}var zb=p(()=>{});var Vb,Hb=p(()=>{zb();Ve();Vb=bu.default||bu});function yu(r,e,t,i,s,n,o){let a=Vb(r,e,2);if(!a)return;for(let u=0;u<a.length;u+=3)n[o++]=a[u]+s,n[o++]=a[u+1]+s,n[o++]=a[u+2]+s;let c=s*i;for(let u=0;u<r.length;u+=2)t[c]=r[u],t[c+1]=r[u+1],c+=i}var lf=p(()=>{Hb()});var PA,Wb,$b=p(()=>{P();lf();PA=[],Wb={extension:{type:b.ShapeBuilder,name:"polygon"},build(r,e){for(let t=0;t<r.points.length;t++)e[t]=r.points[t];return!0},triangulate(r,e,t,i,s,n){yu(r,PA,e,t,i,s,n)}}});var qb,jb=p(()=>{P();qb={extension:{type:b.ShapeBuilder,name:"rectangle"},build(r,e){let t=r,i=t.x,s=t.y,n=t.width,o=t.height;return n>0&&o>0?(e[0]=i,e[1]=s,e[2]=i+n,e[3]=s,e[4]=i+n,e[5]=s+o,e[6]=i,e[7]=s+o,!0):!1},triangulate(r,e,t,i,s,n){let o=0;i*=t,e[i+o]=r[0],e[i+o+1]=r[1],o+=t,e[i+o]=r[2],e[i+o+1]=r[3],o+=t,e[i+o]=r[6],e[i+o+1]=r[7],o+=t,e[i+o]=r[4],e[i+o+1]=r[5],o+=t;let a=i/t;s[n++]=a,s[n++]=a+1,s[n++]=a+2,s[n++]=a+1,s[n++]=a+3,s[n++]=a+2}}});var Xb,Yb=p(()=>{P();Xb={extension:{type:b.ShapeBuilder,name:"triangle"},build(r,e){return e[0]=r.x,e[1]=r.y,e[2]=r.x2,e[3]=r.y2,e[4]=r.x3,e[5]=r.y3,!0},triangulate(r,e,t,i,s,n){let o=0;i*=t,e[i+o]=r[0],e[i+o+1]=r[1],o+=t,e[i+o]=r[2],e[i+o+1]=r[3],o+=t,e[i+o]=r[4],e[i+o+1]=r[5];let a=i/t;s[n++]=a,s[n++]=a+1,s[n++]=a+2}}});function Qb(r,e){for(let t=0;t<e.length;t++){let i=e[t];r.addColorStop(i.offset,i.color)}}function Zb(r,e){let t=W.get().createCanvas(r,e),i=t.getContext("2d");return{canvas:t,context:i}}function BA(r){let e=r[0]??{};return(typeof e=="number"||r[1])&&(z("8.5.2","use options object instead"),e={type:"linear",start:{x:r[0],y:r[1]},end:{x:r[2],y:r[3]},textureSpace:r[4],textureSize:r[5]??ut.defaultLinearOptions.textureSize}),e}var Kb,df,ut,ks=p(()=>{He();ve();ee();su();le();Oe();ye();rd();Kb=[{offset:0,color:"white"},{offset:1,color:"black"}],df=class hf{constructor(...e){this.uid=K("fillGradient"),this.type="linear",this.colorStops=[];let t=BA(e);t={...t.type==="radial"?hf.defaultRadialOptions:hf.defaultLinearOptions,...Vc(t)},this._textureSize=t.textureSize,this._wrapMode=t.wrapMode,t.type==="radial"?(this.center=t.center,this.outerCenter=t.outerCenter??this.center,this.innerRadius=t.innerRadius,this.outerRadius=t.outerRadius,this.scale=t.scale,this.rotation=t.rotation):(this.start=t.start,this.end=t.end),this.textureSpace=t.textureSpace,this.type=t.type,t.colorStops.forEach(s=>{this.addColorStop(s.offset,s.color)})}addColorStop(e,t){return this.colorStops.push({offset:e,color:q.shared.setValue(t).toHexa()}),this}buildLinearGradient(){if(this.texture)return;let{x:e,y:t}=this.start,{x:i,y:s}=this.end,n=i-e,o=s-t,a=n<0||o<0;if(this._wrapMode==="clamp-to-edge"){if(n<0){let g=e;e=i,i=g,n*=-1}if(o<0){let g=t;t=s,s=g,o*=-1}}let c=this.colorStops.length?this.colorStops:Kb,u=this._textureSize,{canvas:l,context:h}=Zb(u,1),f=a?h.createLinearGradient(this._textureSize,0,0,0):h.createLinearGradient(0,0,this._textureSize,0);Qb(f,c),h.fillStyle=f,h.fillRect(0,0,u,1),this.texture=new D({source:new jt({resource:l,addressMode:this._wrapMode})});let d=Math.sqrt(n*n+o*o),m=Math.atan2(o,n),x=new R;x.scale(d/u,1),x.rotate(m),x.translate(e,t),this.textureSpace==="local"&&x.scale(u,u),this.transform=x}buildGradient(){this.type==="linear"?this.buildLinearGradient():this.buildRadialGradient()}buildRadialGradient(){if(this.texture)return;let e=this.colorStops.length?this.colorStops:Kb,t=this._textureSize,{canvas:i,context:s}=Zb(t,t),{x:n,y:o}=this.center,{x:a,y:c}=this.outerCenter,u=this.innerRadius,l=this.outerRadius,h=a-l,f=c-l,d=t/(l*2),m=(n-h)*d,x=(o-f)*d,g=s.createRadialGradient(m,x,u*d,(a-h)*d,(c-f)*d,l*d);Qb(g,e),s.fillStyle=e[e.length-1].color,s.fillRect(0,0,t,t),s.fillStyle=g,s.translate(m,x),s.rotate(this.rotation),s.scale(1,this.scale),s.translate(-m,-x),s.fillRect(0,0,t,t),this.texture=new D({source:new jt({resource:i,addressMode:this._wrapMode})});let _=new R;_.scale(1/d,1/d),_.translate(h,f),this.textureSpace==="local"&&_.scale(t,t),this.transform=_}get styleKey(){return this.uid}destroy(){this.texture?.destroy(!0),this.texture=null}};df.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};df.defaultRadialOptions={center:{x:.5,y:.5},innerRadius:0,outerRadius:.5,colorStops:[],scale:1,textureSpace:"local",type:"radial",textureSize:256,wrapMode:"clamp-to-edge"};ut=df});function Jb(r,e,t,i){let s=e.matrix?r.copyFrom(e.matrix).invert():r.identity();if(e.textureSpace==="local"){let o=t.getBounds(DA);e.width&&o.pad(e.width);let{x:a,y:c}=o,u=1/o.width,l=1/o.height,h=-a*u,f=-c*l,d=s.a,m=s.b,x=s.c,g=s.d;s.a*=u,s.b*=u,s.c*=l,s.d*=l,s.tx=h*d+f*x+s.tx,s.ty=h*m+f*g+s.ty}else s.translate(e.texture.frame.x,e.texture.frame.y),s.scale(1/e.texture.source.width,1/e.texture.source.height);let n=e.texture.source.style;return!(e.fill instanceof ut)&&n.addressMode==="clamp-to-edge"&&(n.addressMode="repeat",n.update()),i&&s.append(RA.copyFrom(i).invert()),s}var RA,DA,ey=p(()=>{ee();Ge();ks();RA=new R,DA=new Y});function ry(r,e){let{geometryData:t,batches:i}=e;i.length=0,t.indices.length=0,t.vertices.length=0,t.uvs.length=0;for(let s=0;s<r.instructions.length;s++){let n=r.instructions[s];if(n.action==="texture")FA(n.data,i,t);else if(n.action==="fill"||n.action==="stroke"){let o=n.action==="stroke",a=n.data.path.shapePath,c=n.data.style,u=n.data.hole;o&&u&&ty(u.shapePath,c,!0,i,t),u&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=u.shapePath.shapePrimitives),ty(a,c,o,i,t)}}}function FA(r,e,t){let i=[],s=Tu.rectangle,n=MA;n.x=r.dx,n.y=r.dy,n.width=r.dw,n.height=r.dh;let o=r.transform;if(!s.build(n,i))return;let{vertices:a,uvs:c,indices:u}=t,l=u.length,h=a.length/2;o&&of(i,o),s.triangulate(i,a,2,h,u,l);let f=r.image,d=f.uvs;c.push(d.x0,d.y0,d.x1,d.y1,d.x3,d.y3,d.x2,d.y2);let m=pe.get(Bi);m.indexOffset=l,m.indexSize=u.length-l,m.attributeOffset=h,m.attributeSize=a.length/2-h,m.baseColor=r.style,m.alpha=r.alpha,m.texture=f,m.geometryData=t,e.push(m)}function ty(r,e,t,i,s){let{vertices:n,uvs:o,indices:a}=s;r.shapePrimitives.forEach(({shape:c,transform:u,holes:l})=>{let h=[],f=Tu[c.type];if(!f.build(c,h))return;let d=a.length,m=n.length/2,x="triangle-list";if(u&&of(h,u),t){let S=c.closePath??!0,T=e;T.pixelLine?(Ib(h,S,n,a),x="line-list"):Db(h,T,!1,S,n,a)}else if(l){let S=[],T=h.slice();UA(l).forEach(v=>{S.push(T.length/2),T.push(...v)}),yu(T,S,n,2,m,a,d)}else f.triangulate(h,n,2,m,a,d);let g=o.length/2,_=e.texture;if(_!==D.WHITE){let S=Jb(IA,e,c,u);wb(n,2,m,o,g,2,n.length/2-m,S)}else Sb(o,g,2,n.length/2-m);let y=pe.get(Bi);y.indexOffset=d,y.indexSize=a.length-d,y.attributeOffset=m,y.attributeSize=n.length/2-m,y.baseColor=e.color,y.alpha=e.alpha,y.texture=_,y.geometryData=s,y.topology=x,i.push(y)})}function UA(r){let e=[];for(let t=0;t<r.length;t++){let i=r[t].shape,s=[];Tu[i.type].build(i,s)&&e.push(s)}return e}var Tu,MA,IA,iy=p(()=>{P();ee();Ge();vb();Cb();le();gr();af();Ab();Mb();Fb();$b();jb();Yb();ey();lf();Tu={};O.handleByMap(b.ShapeBuilder,Tu);O.add(qb,Wb,Xb,Cs,Eb,kb);MA=new Y,IA=new R});var ff,mf,gf,As,wu=p(()=>{P();au();nf();ed();ye();gr();iy();ff=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]}}},mf=class{constructor(){this.instructions=new us}init(e){this.batcher=new co({maxTextures:e}),this.instructions.reset()}get geometry(){return z(hx,"GraphicsContextRenderData#geometry is deprecated, please use batcher.geometry instead."),this.batcher.geometry}},gf=class pf{constructor(e){this._gpuContextHash={},this._graphicsDataContextHash=Object.create(null),this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuContextHash"),e.renderableGC.addManagedHash(this,"_graphicsDataContextHash")}init(e){pf.defaultOptions.bezierSmoothness=e?.bezierSmoothness??pf.defaultOptions.bezierSmoothness}getContextRenderData(e){return this._graphicsDataContextHash[e.uid]||this._initContextRenderData(e)}updateGpuContext(e){let t=this._gpuContextHash[e.uid]||this._initContext(e);if(e.dirty){t?this._cleanGraphicsContextData(e):t=this._initContext(e),ry(e,t);let i=e.batchMode;e.customShader||i==="no-batch"?t.isBatchable=!1:i==="auto"?t.isBatchable=t.geometryData.vertices.length<400:t.isBatchable=!0,e.dirty=!1}return t}getGpuContext(e){return this._gpuContextHash[e.uid]||this._initContext(e)}_initContextRenderData(e){let t=pe.get(mf,{maxTextures:this._renderer.limits.maxBatchableTextures}),{batches:i,geometryData:s}=this._gpuContextHash[e.uid],n=s.vertices.length,o=s.indices.length;for(let l=0;l<i.length;l++)i[l].applyTransform=!1;let a=t.batcher;a.ensureAttributeBuffer(n),a.ensureIndexBuffer(o),a.begin();for(let l=0;l<i.length;l++){let h=i[l];a.add(h)}a.finish(t.instructions);let c=a.geometry;c.indexBuffer.setDataWithSize(a.indexBuffer,a.indexSize,!0),c.buffers[0].setDataWithSize(a.attributeBuffer.float32View,a.attributeSize,!0);let u=a.batches;for(let l=0;l<u.length;l++){let h=u[l];h.bindGroup=ps(h.textures.textures,h.textures.count,this._renderer.limits.maxBatchableTextures)}return this._graphicsDataContextHash[e.uid]=t,t}_initContext(e){let t=new ff;return t.context=e,this._gpuContextHash[e.uid]=t,e.on("destroy",this.onGraphicsContextDestroy,this),this._gpuContextHash[e.uid]}onGraphicsContextDestroy(e){this._cleanGraphicsContextData(e),e.off("destroy",this.onGraphicsContextDestroy,this),this._gpuContextHash[e.uid]=null}_cleanGraphicsContextData(e){let t=this._gpuContextHash[e.uid];t.isBatchable||this._graphicsDataContextHash[e.uid]&&(pe.return(this.getContextRenderData(e)),this._graphicsDataContextHash[e.uid]=null),t.batches&&t.batches.forEach(i=>{pe.return(i)})}destroy(){for(let e in this._gpuContextHash)this._gpuContextHash[e]&&this.onGraphicsContextDestroy(this._gpuContextHash[e].context)}};gf.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"graphicsContext"};gf.defaultOptions={bezierSmoothness:.5};As=gf});var OA,xf,_f,bf,yf,Tf,wf,Sf,Ae,Ot=p(()=>{"use strict";OA={normal:0,add:1,multiply:2,screen:3,overlay:4,erase:5,"normal-npm":6,"add-npm":7,"screen-npm":8,min:9,max:10},xf=0,_f=1,bf=2,yf=3,Tf=4,wf=5,Sf=class sy{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<xf)}set blend(e){!!(this.data&1<<xf)!==e&&(this.data^=1<<xf)}get offsets(){return!!(this.data&1<<_f)}set offsets(e){!!(this.data&1<<_f)!==e&&(this.data^=1<<_f)}set cullMode(e){if(e==="none"){this.culling=!1;return}this.culling=!0,this.clockwiseFrontFace=e==="front"}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(this.data&1<<bf)}set culling(e){!!(this.data&1<<bf)!==e&&(this.data^=1<<bf)}get depthTest(){return!!(this.data&1<<yf)}set depthTest(e){!!(this.data&1<<yf)!==e&&(this.data^=1<<yf)}get depthMask(){return!!(this.data&1<<wf)}set depthMask(e){!!(this.data&1<<wf)!==e&&(this.data^=1<<wf)}get clockwiseFrontFace(){return!!(this.data&1<<Tf)}set clockwiseFrontFace(e){!!(this.data&1<<Tf)!==e&&(this.data^=1<<Tf)}get blendMode(){return this._blendMode}set blendMode(e){this.blend=e!=="none",this._blendMode=e,this._blendModeId=OA[e]||0}get polygonOffset(){return this._polygonOffset}set polygonOffset(e){this.offsets=!!e,this._polygonOffset=e}toString(){return`[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){let e=new sy;return e.depthTest=!1,e.blend=!0,e}};Sf.default2d=Sf.for2d();Ae=Sf});function er(r,e,t){let i=(r>>24&255)/255;e[t++]=(r&255)/255*i,e[t++]=(r>>8&255)/255*i,e[t++]=(r>>16&255)/255*i,e[t++]=i}var Ps=p(()=>{"use strict"});var vf,mo,ny=p(()=>{P();Ot();gr();Ps();af();vf=class{constructor(){this.batches=[],this.batched=!1}destroy(){this.batches.forEach(e=>{pe.return(e)}),this.batches.length=0}},mo=class{constructor(e,t){this.state=Ae.for2d(),this.renderer=e,this._adaptor=t,this.renderer.runners.contextChange.add(this)}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(e){let t=e.context,i=!!e._gpuData,s=this.renderer.graphicsContext.updateGpuContext(t);return!!(s.isBatchable||i!==s.isBatchable)}addRenderable(e,t){let i=this.renderer.graphicsContext.updateGpuContext(e.context);e.didViewUpdate&&this._rebuild(e),i.isBatchable?this._addToBatcher(e,t):(this.renderer.renderPipes.batch.break(t),t.add(e))}updateRenderable(e){let i=this._getGpuDataForRenderable(e).batches;for(let s=0;s<i.length;s++){let n=i[s];n._batcher.updateElement(n)}}execute(e){if(!e.isRenderable)return;let t=this.renderer,i=e.context;if(!t.graphicsContext.getGpuContext(i).batches.length)return;let n=i.customShader||this._adaptor.shader;this.state.blendMode=e.groupBlendMode;let o=n.resources.localUniforms.uniforms;o.uTransformMatrix=e.groupTransform,o.uRound=t._roundPixels|e._roundPixels,er(e.groupColorAlpha,o.uColor,0),this._adaptor.execute(this,e)}_rebuild(e){let t=this._getGpuDataForRenderable(e),i=this.renderer.graphicsContext.updateGpuContext(e.context);t.destroy(),i.isBatchable&&this._updateBatchesForRenderable(e,t)}_addToBatcher(e,t){let i=this.renderer.renderPipes.batch,s=this._getGpuDataForRenderable(e).batches;for(let n=0;n<s.length;n++){let o=s[n];i.addToBatch(o,t)}}_getGpuDataForRenderable(e){return e._gpuData[this.renderer.uid]||this._initGpuDataForRenderable(e)}_initGpuDataForRenderable(e){let t=new vf;return e._gpuData[this.renderer.uid]=t,t}_updateBatchesForRenderable(e,t){let i=e.context,s=this.renderer.graphicsContext.getGpuContext(i),n=this.renderer._roundPixels|e._roundPixels;t.batches=s.batches.map(o=>{let a=pe.get(Bi);return o.copyTo(a),a.renderable=e,a.roundPixels=n,a})}destroy(){this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null}};mo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"graphics"}});var Cf=p(()=>{P();wu();ny();O.add(mo);O.add(As)});var Kr,Su=p(()=>{"use strict";Kr=class{constructor(){this.batcherName="default",this.packAsQuad=!1,this.indexOffset=0,this.attributeOffset=0,this.roundPixels=0,this._batcher=null,this._batch=null,this._textureMatrixUpdateId=-1,this._uvUpdateId=-1}get blendMode(){return this.renderable.groupBlendMode}get topology(){return this._topology||this.geometry.topology}set topology(e){this._topology=e}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.geometry=null,this._uvUpdateId=-1,this._textureMatrixUpdateId=-1}setTexture(e){this.texture!==e&&(this.texture=e,this._textureMatrixUpdateId=-1)}get uvs(){let t=this.geometry.getBuffer("aUV"),i=t.data,s=i,n=this.texture.textureMatrix;return n.isSimple||(s=this._transformedUvs,(this._textureMatrixUpdateId!==n._updateID||this._uvUpdateId!==t._updateID)&&((!s||s.length<i.length)&&(s=this._transformedUvs=new Float32Array(i.length)),this._textureMatrixUpdateId=n._updateID,this._uvUpdateId=t._updateID,n.multiplyUvs(i,s))),s}get positions(){return this.geometry.positions}get indices(){return this.geometry.indices}get color(){return this.renderable.groupColorAlpha}get groupTransform(){return this.renderable.groupTransform}get attributeSize(){return this.geometry.positions.length/2}get indexSize(){return this.geometry.indices.length}}});var vu,po,oy=p(()=>{P();ee();$r();rt();io();Ps();Su();vu=class{destroy(){}},po=class{constructor(e,t){this.localUniforms=new ce({uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new Ne({0:this.localUniforms}),this.renderer=e,this._adaptor=t,this._adaptor.init()}validateRenderable(e){let t=this._getMeshData(e),i=t.batched,s=e.batched;if(t.batched=s,i!==s)return!0;if(s){let n=e._geometry;if(n.indices.length!==t.indexSize||n.positions.length!==t.vertexSize)return t.indexSize=n.indices.length,t.vertexSize=n.positions.length,!0;let o=this._getBatchableMesh(e);return o.texture.uid!==e._texture.uid&&(o._textureMatrixUpdateId=-1),!o._batcher.checkAndUpdateTexture(o,e._texture)}return!1}addRenderable(e,t){let i=this.renderer.renderPipes.batch,{batched:s}=this._getMeshData(e);if(s){let n=this._getBatchableMesh(e);n.setTexture(e._texture),n.geometry=e._geometry,i.addToBatch(n,t)}else i.break(t),t.add(e)}updateRenderable(e){if(e.batched){let t=this._getBatchableMesh(e);t.setTexture(e._texture),t.geometry=e._geometry,t._batcher.updateElement(t)}}execute(e){if(!e.isRenderable)return;e.state.blendMode=Tr(e.groupBlendMode,e.texture._source);let t=this.localUniforms;t.uniforms.uTransformMatrix=e.groupTransform,t.uniforms.uRound=this.renderer._roundPixels|e._roundPixels,t.update(),er(e.groupColorAlpha,t.uniforms.uColor,0),this._adaptor.execute(this,e)}_getMeshData(e){var t,i;return(t=e._gpuData)[i=this.renderer.uid]||(t[i]=new vu),e._gpuData[this.renderer.uid].meshData||this._initMeshData(e)}_initMeshData(e){return e._gpuData[this.renderer.uid].meshData={batched:e.batched,indexSize:e._geometry.indices?.length,vertexSize:e._geometry.positions?.length},e._gpuData[this.renderer.uid].meshData}_getBatchableMesh(e){var t,i;return(t=e._gpuData)[i=this.renderer.uid]||(t[i]=new vu),e._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(e)}_initBatchableMesh(e){let t=new Kr;return t.renderable=e,t.setTexture(e._texture),t.transform=e.groupTransform,t.roundPixels=this.renderer._roundPixels|e._roundPixels,e._gpuData[this.renderer.uid].batchableMesh=t,t}destroy(){this.localUniforms=null,this.localUniformsBindGroup=null,this._adaptor.destroy(),this._adaptor=null,this.renderer=null}};po.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"mesh"}});var Ef=p(()=>{P();oy();O.add(po)});var Cu,ay=p(()=>{"use strict";Cu=class{execute(e,t){let i=e.state,s=e.renderer,n=t.shader||e.defaultShader;n.resources.uTexture=t.texture._source,n.resources.uniforms=e.localUniforms;let o=s.gl,a=e.getBuffers(t);s.shader.bind(n),s.state.set(i),s.geometry.bind(a.geometry,n.glProgram);let u=a.geometry.indexBuffer.data.BYTES_PER_ELEMENT===2?o.UNSIGNED_SHORT:o.UNSIGNED_INT;o.drawElements(o.TRIANGLES,t.particleChildren.length*6,u,0)}}});function kf(r,e=null){let t=r*6;if(t>65535?e||(e=new Uint32Array(t)):e||(e=new Uint16Array(t)),e.length!==t)throw new Error(`Out buffer length is incorrect, got ${e.length} and expected ${t}`);for(let i=0,s=0;i<t;i+=6,s+=4)e[i+0]=s+0,e[i+1]=s+1,e[i+2]=s+2,e[i+3]=s+0,e[i+4]=s+2,e[i+5]=s+3;return e}var cy=p(()=>{"use strict"});function ly(r){return{dynamicUpdate:uy(r,!0),staticUpdate:uy(r,!1)}}function uy(r,e){let t=[];t.push(`
|
|
254
254
|
|
|
255
255
|
var index = 0;
|
|
256
256
|
|
|
@@ -258,13 +258,13 @@ ${s.join(`
|
|
|
258
258
|
{
|
|
259
259
|
const p = ps[i];
|
|
260
260
|
|
|
261
|
-
`);let i=0;for(let n in r){let o=r[n];if(e!==o.dynamic)continue;t.push(`offset = index + ${i}`),t.push(o.code);let a=
|
|
261
|
+
`);let i=0;for(let n in r){let o=r[n];if(e!==o.dynamic)continue;t.push(`offset = index + ${i}`),t.push(o.code);let a=ct(o.format);i+=a.stride/4}t.push(`
|
|
262
262
|
index += stride * 4;
|
|
263
263
|
}
|
|
264
264
|
`),t.unshift(`
|
|
265
265
|
var stride = ${i};
|
|
266
266
|
`);let s=t.join(`
|
|
267
|
-
`);return new Function("ps","f32v","u32v",s)}var
|
|
267
|
+
`);return new Function("ps","f32v","u32v",s)}var hy=p(()=>{Pi()});function GA(r){let e=[];for(let t in r){let i=r[t];e.push(t,i.code,i.dynamic?"d":"s")}return e.join("_")}var Eu,dy=p(()=>{qr();wr();xs();Pi();Od();cy();hy();Eu=class{constructor(e){this._size=0,this._generateParticleUpdateCache={};let t=this._size=e.size??1e3,i=e.properties,s=0,n=0;for(let l in i){let h=i[l],f=ct(h.format);h.dynamic?n+=f.stride:s+=f.stride}this._dynamicStride=n/4,this._staticStride=s/4,this.staticAttributeBuffer=new Xt(t*4*s),this.dynamicAttributeBuffer=new Xt(t*4*n),this.indexBuffer=kf(t);let o=new vt,a=0,c=0;this._staticBuffer=new Ce({data:new Float32Array(1),label:"static-particle-buffer",shrinkToFit:!1,usage:Q.VERTEX|Q.COPY_DST}),this._dynamicBuffer=new Ce({data:new Float32Array(1),label:"dynamic-particle-buffer",shrinkToFit:!1,usage:Q.VERTEX|Q.COPY_DST});for(let l in i){let h=i[l],f=ct(h.format);h.dynamic?(o.addAttribute(h.attributeName,{buffer:this._dynamicBuffer,stride:this._dynamicStride*4,offset:a*4,format:h.format}),a+=f.size):(o.addAttribute(h.attributeName,{buffer:this._staticBuffer,stride:this._staticStride*4,offset:c*4,format:h.format}),c+=f.size)}o.addIndex(this.indexBuffer);let u=this.getParticleUpdate(i);this._dynamicUpload=u.dynamicUpdate,this._staticUpload=u.staticUpdate,this.geometry=o}getParticleUpdate(e){let t=GA(e);return this._generateParticleUpdateCache[t]?this._generateParticleUpdateCache[t]:(this._generateParticleUpdateCache[t]=this.generateParticleUpdate(e),this._generateParticleUpdateCache[t])}generateParticleUpdate(e){return ly(e)}update(e,t){e.length>this._size&&(t=!0,this._size=Math.max(e.length,this._size*1.5|0),this.staticAttributeBuffer=new Xt(this._size*this._staticStride*4*4),this.dynamicAttributeBuffer=new Xt(this._size*this._dynamicStride*4*4),this.indexBuffer=kf(this._size),this.geometry.indexBuffer.setDataWithSize(this.indexBuffer,this.indexBuffer.byteLength,!0));let i=this.dynamicAttributeBuffer;if(this._dynamicUpload(e,i.float32View,i.uint32View),this._dynamicBuffer.setDataWithSize(this.dynamicAttributeBuffer.float32View,e.length*this._dynamicStride*4,!0),t){let s=this.staticAttributeBuffer;this._staticUpload(e,s.float32View,s.uint32View),this._staticBuffer.setDataWithSize(s.float32View,e.length*this._staticStride*4,!0)}}destroy(){this._staticBuffer.destroy(),this._dynamicBuffer.destroy(),this.geometry.destroy()}}});var fy,my=p(()=>{fy=`varying vec2 vUV;
|
|
268
268
|
varying vec4 vColor;
|
|
269
269
|
|
|
270
270
|
uniform sampler2D uTexture;
|
|
@@ -272,7 +272,7 @@ uniform sampler2D uTexture;
|
|
|
272
272
|
void main(void){
|
|
273
273
|
vec4 color = texture2D(uTexture, vUV) * vColor;
|
|
274
274
|
gl_FragColor = color;
|
|
275
|
-
}`});var
|
|
275
|
+
}`});var py,gy=p(()=>{py=`attribute vec2 aVertex;
|
|
276
276
|
attribute vec2 aUV;
|
|
277
277
|
attribute vec4 aColor;
|
|
278
278
|
|
|
@@ -311,7 +311,7 @@ void main(void){
|
|
|
311
311
|
vUV = aUV;
|
|
312
312
|
vColor = vec4(aColor.rgb * aColor.a, aColor.a) * uColor;
|
|
313
313
|
}
|
|
314
|
-
`});var
|
|
314
|
+
`});var Af,xy=p(()=>{Af=`
|
|
315
315
|
struct ParticleUniforms {
|
|
316
316
|
uProjectionMatrix:mat3x3<f32>,
|
|
317
317
|
uColor:vec4<f32>,
|
|
@@ -364,8 +364,8 @@ fn mainFragment(
|
|
|
364
364
|
var sample = textureSample(uTexture, uSampler, uv) * color;
|
|
365
365
|
|
|
366
366
|
return sample;
|
|
367
|
-
}`});var ll,H2=p(()=>{He();te();$i();Ns();Ot();le();Ui();N2();z2();V2();ll=class extends ke{constructor(){let e=Pt.from({vertex:L2,fragment:G2}),t=Bt.from({fragment:{source:dm,entryPoint:"mainFragment"},vertex:{source:dm,entryPoint:"mainVertex"}});super({glProgram:e,gpuProgram:t,resources:{uTexture:M.WHITE.source,uSampler:new et({}),uniforms:{uTranslationMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new q(16777215),type:"vec4<f32>"},uRound:{value:1,type:"f32"},uResolution:{value:[0,0],type:"vec2<f32>"}}}})}}});var Ks,fm=p(()=>{te();it();Ao();Gt();Ys();O2();H2();Ks=class{constructor(e,t){this.state=Pe.for2d(),this.localUniforms=new ce({uTranslationMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array(4),type:"vec4<f32>"},uRound:{value:1,type:"f32"},uResolution:{value:[0,0],type:"vec2<f32>"}}),this.renderer=e,this.adaptor=t,this.defaultShader=new ll,this.state=Pe.for2d()}validateRenderable(e){return!1}addRenderable(e,t){this.renderer.renderPipes.batch.break(t),t.add(e)}getBuffers(e){return e._gpuData[this.renderer.uid]||this._initBuffer(e)}_initBuffer(e){return e._gpuData[this.renderer.uid]=new ul({size:e.particleChildren.length,properties:e._properties}),e._gpuData[this.renderer.uid]}updateRenderable(e){}execute(e){let t=e.particleChildren;if(t.length===0)return;let i=this.renderer,s=this.getBuffers(e);e.texture||(e.texture=t[0].texture);let n=this.state;s.update(t,e._childrenDirty),e._childrenDirty=!1,n.blendMode=vr(e.blendMode,e.texture._source);let o=this.localUniforms.uniforms,a=o.uTranslationMatrix;e.worldTransform.copyTo(a),a.prepend(i.globalUniforms.globalUniformData.projectionMatrix),o.uResolution=i.globalUniforms.globalUniformData.resolution,o.uRound=i._roundPixels|e._roundPixels,sr(e.groupColorAlpha,o.uColor,0),this.adaptor.execute(this,e)}destroy(){this.defaultShader&&(this.defaultShader.destroy(),this.defaultShader=null)}}});var Lo,W2=p(()=>{B();D2();fm();Lo=class extends Ks{constructor(e){super(e,new cl)}};Lo.extension={type:[b.WebGLPipes],name:"particle"}});var hl,$2=p(()=>{"use strict";hl=class{execute(e,t){let i=e.renderer,s=t.shader||e.defaultShader;s.groups[0]=i.renderPipes.uniformBatch.getUniformBindGroup(e.localUniforms,!0),s.groups[1]=i.texture.getTextureBindGroup(t.texture);let n=e.state,o=e.getBuffers(t);i.encoder.draw({geometry:o.geometry,shader:t.shader||e.defaultShader,state:n,size:t.particleChildren.length*6})}}});var zo,q2=p(()=>{B();$2();fm();zo=class extends Ks{constructor(e){super(e,new hl)}};zo.extension={type:[b.WebGPUPipes],name:"particle"}});var mm=p(()=>{B();W2();q2();O.add(Lo);O.add(zo)});function Vo(r,e){let{texture:t,bounds:i}=r;Ou(i,e._anchor,t);let s=e._style._getFinalPadding();i.minX-=s,i.minY-=s,i.maxX-=s,i.maxY-=s}var pm=p(()=>{pf()});var nr,Ho=p(()=>{"use strict";nr=class{constructor(){this.batcherName="default",this.topology="triangle-list",this.attributeSize=4,this.indexSize=6,this.packAsQuad=!0,this.roundPixels=0,this._attributeStart=0,this._batcher=null,this._batch=null}get blendMode(){return this.renderable.groupBlendMode}get color(){return this.renderable.groupColorAlpha}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.bounds=null}destroy(){}}});var dl,j2=p(()=>{Ho();dl=class extends nr{constructor(e){super(),this._renderer=e,e.runners.resolutionChange.add(this)}resolutionChange(){let e=this.renderable;e._autoResolution&&e.onViewUpdate()}destroy(){this._renderer.canvasText.returnTexture(this.texture),this._renderer=null}}});var Wo,X2=p(()=>{B();pm();j2();Wo=class{constructor(e){this._renderer=e}validateRenderable(e){return e._didTextUpdate}addRenderable(e,t){let i=this._getGpuText(e);e._didTextUpdate&&(this._updateGpuText(e),e._didTextUpdate=!1),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuText(e);t._batcher.updateElement(t)}_updateGpuText(e){let t=this._getGpuText(e);t.texture&&this._renderer.canvasText.returnTexture(t.texture),e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,t.texture=t.texture=this._renderer.canvasText.getTexture(e),Vo(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new dl(this._renderer);return t.renderable=e,t.transform=e.groupTransform,t.bounds={minX:0,maxX:1,minY:0,maxY:0},t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};Wo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"text"}});var Y2,kr,fl=p(()=>{te();Oe();Y2={repeat:{addressModeU:"repeat",addressModeV:"repeat"},"repeat-x":{addressModeU:"repeat",addressModeV:"clamp-to-edge"},"repeat-y":{addressModeU:"clamp-to-edge",addressModeV:"repeat"},"no-repeat":{addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}},kr=class{constructor(e,t){this.uid=K("fillPattern"),this.transform=new R,this._styleKey=null,this.texture=e,this.transform.scale(1/e.frame.width,1/e.frame.height),t&&(e.source.style.addressModeU=Y2[t].addressModeU,e.source.style.addressModeV=Y2[t].addressModeV)}setTransform(e){let t=this.texture;this.transform.copyFrom(e),this.transform.invert(),this.transform.scale(1/t.frame.width,1/t.frame.height),this._styleKey=null}get styleKey(){return this._styleKey?this._styleKey:(this._styleKey=`fill-pattern-${this.uid}-${this.texture.uid}-${this.transform.toArray().join("-")}`,this._styleKey)}}});var Q2=Fr((K7,K2)=>{K2.exports=pB;var gm={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},mB=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function pB(r){var e=[];return r.replace(mB,function(t,i,s){var n=i.toLowerCase();for(s=xB(s),n=="m"&&s.length>2&&(e.push([i].concat(s.splice(0,2))),n="l",i=i=="m"?"l":"L");;){if(s.length==gm[n])return s.unshift(i),e.push(s);if(s.length<gm[n])throw new Error("malformed path data");e.push([i].concat(s.splice(0,gm[n])))}}),e}var gB=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function xB(r){var e=r.match(gB);return e?e.map(Number):[]}});function J2(r,e){let t=(0,Z2.default)(r),i=[],s=null,n=0,o=0;for(let a=0;a<t.length;a++){let c=t[a],u=c[0],l=c;switch(u){case"M":n=l[1],o=l[2],e.moveTo(n,o);break;case"m":n+=l[1],o+=l[2],e.moveTo(n,o);break;case"H":n=l[1],e.lineTo(n,o);break;case"h":n+=l[1],e.lineTo(n,o);break;case"V":o=l[1],e.lineTo(n,o);break;case"v":o+=l[1],e.lineTo(n,o);break;case"L":n=l[1],o=l[2],e.lineTo(n,o);break;case"l":n+=l[1],o+=l[2],e.lineTo(n,o);break;case"C":n=l[5],o=l[6],e.bezierCurveTo(l[1],l[2],l[3],l[4],n,o);break;case"c":e.bezierCurveTo(n+l[1],o+l[2],n+l[3],o+l[4],n+l[5],o+l[6]),n+=l[5],o+=l[6];break;case"S":n=l[3],o=l[4],e.bezierCurveToShort(l[1],l[2],n,o);break;case"s":e.bezierCurveToShort(n+l[1],o+l[2],n+l[3],o+l[4]),n+=l[3],o+=l[4];break;case"Q":n=l[3],o=l[4],e.quadraticCurveTo(l[1],l[2],n,o);break;case"q":e.quadraticCurveTo(n+l[1],o+l[2],n+l[3],o+l[4]),n+=l[3],o+=l[4];break;case"T":n=l[1],o=l[2],e.quadraticCurveToShort(n,o);break;case"t":n+=l[1],o+=l[2],e.quadraticCurveToShort(n,o);break;case"A":n=l[6],o=l[7],e.arcToSvg(l[1],l[2],l[3],l[4],l[5],n,o);break;case"a":n+=l[6],o+=l[7],e.arcToSvg(l[1],l[2],l[3],l[4],l[5],n,o);break;case"Z":case"z":e.closePath(),i.length>0&&(s=i.pop(),s?(n=s.startX,o=s.startY):(n=0,o=0)),s=null;break;default:N(`Unknown SVG path command: ${u}`)}u!=="Z"&&u!=="z"&&s===null&&(s={startX:n,startY:o},i.push(s))}return e}var Z2,eT=p(()=>{Z2=Ch(Q2(),1);pe()});var ml,tT=p(()=>{Ge();ml=class r{constructor(e=0,t=0,i=0){this.type="circle",this.x=e,this.y=t,this.radius=i}clone(){return new r(this.x,this.y,this.radius)}contains(e,t){if(this.radius<=0)return!1;let i=this.radius*this.radius,s=this.x-e,n=this.y-t;return s*=s,n*=n,s+n<=i}strokeContains(e,t,i,s=.5){if(this.radius===0)return!1;let n=this.x-e,o=this.y-t,a=this.radius,c=(1-s)*i,u=Math.sqrt(n*n+o*o);return u<=a+c&&u>a-(i-c)}getBounds(e){return e||(e=new Y),e.x=this.x-this.radius,e.y=this.y-this.radius,e.width=this.radius*2,e.height=this.radius*2,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.radius=e.radius,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}}});var pl,rT=p(()=>{Ge();pl=class r{constructor(e=0,t=0,i=0,s=0){this.type="ellipse",this.x=e,this.y=t,this.halfWidth=i,this.halfHeight=s}clone(){return new r(this.x,this.y,this.halfWidth,this.halfHeight)}contains(e,t){if(this.halfWidth<=0||this.halfHeight<=0)return!1;let i=(e-this.x)/this.halfWidth,s=(t-this.y)/this.halfHeight;return i*=i,s*=s,i+s<=1}strokeContains(e,t,i,s=.5){let{halfWidth:n,halfHeight:o}=this;if(n<=0||o<=0)return!1;let a=i*(1-s),c=i-a,u=n-c,l=o-c,h=n+a,f=o+a,d=e-this.x,m=t-this.y,x=d*d/(u*u)+m*m/(l*l),g=d*d/(h*h)+m*m/(f*f);return x>1&&g<=1}getBounds(e){return e||(e=new Y),e.x=this.x-this.halfWidth,e.y=this.y-this.halfHeight,e.width=this.halfWidth*2,e.height=this.halfHeight*2,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.halfWidth=e.halfWidth,this.halfHeight=e.halfHeight,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Ellipse x=${this.x} y=${this.y} halfWidth=${this.halfWidth} halfHeight=${this.halfHeight}]`}}});function iT(r,e,t,i,s,n){let o=r-t,a=e-i,c=s-t,u=n-i,l=o*c+a*u,h=c*c+u*u,f=-1;h!==0&&(f=l/h);let d,m;f<0?(d=t,m=i):f>1?(d=s,m=n):(d=t+f*c,m=i+f*u);let x=r-d,g=e-m;return x*x+g*g}var sT=p(()=>{"use strict"});var _B,bB,Qs,nT=p(()=>{sT();Ge();Qs=class r{constructor(...e){this.type="polygon";let t=Array.isArray(e[0])?e[0]:e;if(typeof t[0]!="number"){let i=[];for(let s=0,n=t.length;s<n;s++)i.push(t[s].x,t[s].y);t=i}this.points=t,this.closePath=!0}isClockwise(){let e=0,t=this.points,i=t.length;for(let s=0;s<i;s+=2){let n=t[s],o=t[s+1],a=t[(s+2)%i],c=t[(s+3)%i];e+=(a-n)*(c+o)}return e<0}containsPolygon(e){let t=this.getBounds(_B),i=e.getBounds(bB);if(!t.containsRect(i))return!1;let s=e.points;for(let n=0;n<s.length;n+=2){let o=s[n],a=s[n+1];if(!this.contains(o,a))return!1}return!0}clone(){let e=this.points.slice(),t=new r(e);return t.closePath=this.closePath,t}contains(e,t){let i=!1,s=this.points.length/2;for(let n=0,o=s-1;n<s;o=n++){let a=this.points[n*2],c=this.points[n*2+1],u=this.points[o*2],l=this.points[o*2+1];c>t!=l>t&&e<(u-a)*((t-c)/(l-c))+a&&(i=!i)}return i}strokeContains(e,t,i,s=.5){let n=i*i,o=n*(1-s),a=n-o,{points:c}=this,u=c.length-(this.closePath?0:2);for(let l=0;l<u;l+=2){let h=c[l],f=c[l+1],d=c[(l+2)%c.length],m=c[(l+3)%c.length],x=iT(e,t,h,f,d,m),g=Math.sign((d-h)*(t-f)-(m-f)*(e-h));if(x<=(g<0?a:o))return!0}return!1}getBounds(e){e||(e=new Y);let t=this.points,i=1/0,s=-1/0,n=1/0,o=-1/0;for(let a=0,c=t.length;a<c;a+=2){let u=t[a],l=t[a+1];i=u<i?u:i,s=u>s?u:s,n=l<n?l:n,o=l>o?l:o}return e.x=i,e.width=s-i,e.y=n,e.height=o-n,e}copyFrom(e){return this.points=e.points.slice(),this.closePath=e.closePath,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:PolygoncloseStroke=${this.closePath}points=${this.points.reduce((e,t)=>`${e}, ${t}`,"")}]`}get lastX(){return this.points[this.points.length-2]}get lastY(){return this.points[this.points.length-1]}get x(){return this.points[this.points.length-2]}get y(){return this.points[this.points.length-1]}}});var gl,xl,oT=p(()=>{Ge();gl=(r,e,t,i,s,n,o)=>{let a=r-t,c=e-i,u=Math.sqrt(a*a+c*c);return u>=s-n&&u<=s+o},xl=class r{constructor(e=0,t=0,i=0,s=0,n=20){this.type="roundedRectangle",this.x=e,this.y=t,this.width=i,this.height=s,this.radius=n}getBounds(e){return e||(e=new Y),e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e}clone(){return new r(this.x,this.y,this.width,this.height,this.radius)}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){if(this.width<=0||this.height<=0)return!1;if(e>=this.x&&e<=this.x+this.width&&t>=this.y&&t<=this.y+this.height){let i=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(t>=this.y+i&&t<=this.y+this.height-i||e>=this.x+i&&e<=this.x+this.width-i)return!0;let s=e-(this.x+i),n=t-(this.y+i),o=i*i;if(s*s+n*n<=o||(s=e-(this.x+this.width-i),s*s+n*n<=o)||(n=t-(this.y+this.height-i),s*s+n*n<=o)||(s=e-(this.x+i),s*s+n*n<=o))return!0}return!1}strokeContains(e,t,i,s=.5){let{x:n,y:o,width:a,height:c,radius:u}=this,l=i*(1-s),h=i-l,f=n+u,d=o+u,m=a-u*2,x=c-u*2,g=n+a,_=o+c;return(e>=n-l&&e<=n+h||e>=g-h&&e<=g+l)&&t>=d&&t<=d+x||(t>=o-l&&t<=o+h||t>=_-h&&t<=_+l)&&e>=f&&e<=f+m?!0:e<f&&t<d&&gl(e,t,f,d,u,h,l)||e>g-u&&t<d&&gl(e,t,g-u,d,u,h,l)||e>g-u&&t>_-u&&gl(e,t,g-u,_-u,u,h,l)||e<f&&t>_-u&&gl(e,t,f,_-u,u,h,l)}toString(){return`[pixi.js/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}}});function bl(r,e,t,i,s,n,o,a,c,u){let h=Math.min(.99,Math.max(0,u??Xs.defaultOptions.bezierSmoothness)),f=(TB-h)/1;return f*=f,wB(e,t,i,s,n,o,a,c,r,f),r}function wB(r,e,t,i,s,n,o,a,c,u){_m(r,e,t,i,s,n,o,a,c,u,0),c.push(o,a)}function _m(r,e,t,i,s,n,o,a,c,u,l){if(l>yB)return;let h=Math.PI,f=(r+t)/2,d=(e+i)/2,m=(t+s)/2,x=(i+n)/2,g=(s+o)/2,_=(n+a)/2,y=(f+m)/2,S=(d+x)/2,T=(m+g)/2,C=(x+_)/2,v=(y+T)/2,E=(S+C)/2;if(l>0){let D=o-r,A=a-e,P=Math.abs((t-o)*A-(i-a)*D),k=Math.abs((s-o)*A-(n-a)*D),G,j;if(P>_l&&k>_l){if((P+k)*(P+k)<=u*(D*D+A*A)){if(Zs<xm){c.push(v,E);return}let be=Math.atan2(n-i,s-t);if(G=Math.abs(be-Math.atan2(i-e,t-r)),j=Math.abs(Math.atan2(a-n,o-s)-be),G>=h&&(G=2*h-G),j>=h&&(j=2*h-j),G+j<Zs){c.push(v,E);return}if(Ki!==0){if(G>Ki){c.push(t,i);return}if(j>Ki){c.push(s,n);return}}}}else if(P>_l){if(P*P<=u*(D*D+A*A)){if(Zs<xm){c.push(v,E);return}if(G=Math.abs(Math.atan2(n-i,s-t)-Math.atan2(i-e,t-r)),G>=h&&(G=2*h-G),G<Zs){c.push(t,i),c.push(s,n);return}if(Ki!==0&&G>Ki){c.push(t,i);return}}}else if(k>_l){if(k*k<=u*(D*D+A*A)){if(Zs<xm){c.push(v,E);return}if(G=Math.abs(Math.atan2(a-n,o-s)-Math.atan2(n-i,s-t)),G>=h&&(G=2*h-G),G<Zs){c.push(t,i),c.push(s,n);return}if(Ki!==0&&G>Ki){c.push(s,n);return}}}else if(D=v-(r+o)/2,A=E-(e+a)/2,D*D+A*A<=u){c.push(v,E);return}}_m(r,e,f,d,y,S,v,E,c,u,l+1),_m(v,E,T,C,g,_,o,a,c,u,l+1)}var yB,_l,TB,xm,Zs,Ki,bm=p(()=>{nl();yB=8,_l=11920929e-14,TB=1,xm=.01,Zs=0,Ki=0});function cT(r,e,t,i,s,n,o,a){let u=Math.min(.99,Math.max(0,a??Xs.defaultOptions.bezierSmoothness)),l=(CB-u)/1;return l*=l,kB(e,t,i,s,n,o,r,l),r}function kB(r,e,t,i,s,n,o,a){ym(o,r,e,t,i,s,n,a,0),o.push(s,n)}function ym(r,e,t,i,s,n,o,a,c){if(c>SB)return;let u=Math.PI,l=(e+i)/2,h=(t+s)/2,f=(i+n)/2,d=(s+o)/2,m=(l+f)/2,x=(h+d)/2,g=n-e,_=o-t,y=Math.abs((i-n)*_-(s-o)*g);if(y>vB){if(y*y<=a*(g*g+_*_)){if(aT<EB){r.push(m,x);return}let S=Math.abs(Math.atan2(o-s,n-i)-Math.atan2(s-t,i-e));if(S>=u&&(S=2*u-S),S<aT){r.push(m,x);return}}}else if(g=m-(e+n)/2,_=x-(t+o)/2,g*g+_*_<=a){r.push(m,x);return}ym(r,e,t,l,h,m,x,a,c+1),ym(r,m,x,f,d,n,o,a,c+1)}var SB,vB,CB,EB,aT,uT=p(()=>{nl();SB=8,vB=11920929e-14,CB=1,EB=.01,aT=0});function yl(r,e,t,i,s,n,o,a){let c=Math.abs(s-n);(!o&&s>n||o&&n>s)&&(c=2*Math.PI-c),a||(a=Math.max(6,Math.floor(6*Math.pow(i,1/3)*(c/Math.PI)))),a=Math.max(a,3);let u=c/a,l=s;u*=o?-1:1;for(let h=0;h<a+1;h++){let f=Math.cos(l),d=Math.sin(l),m=e+f*i,x=t+d*i;r.push(m,x),l+=u}}var Tm=p(()=>{"use strict"});function lT(r,e,t,i,s,n){let o=r[r.length-2],c=r[r.length-1]-t,u=o-e,l=s-t,h=i-e,f=Math.abs(c*h-u*l);if(f<1e-8||n===0){(r[r.length-2]!==e||r[r.length-1]!==t)&&r.push(e,t);return}let d=c*c+u*u,m=l*l+h*h,x=c*l+u*h,g=n*Math.sqrt(d)/f,_=n*Math.sqrt(m)/f,y=g*x/d,S=_*x/m,T=g*h+_*u,C=g*l+_*c,v=u*(_+y),E=c*(_+y),D=h*(g+S),A=l*(g+S),P=Math.atan2(E-C,v-T),k=Math.atan2(A-C,D-T);yl(r,T+e,C+t,n,P,k,u*l>h*c)}var hT=p(()=>{Tm()});function AB(r,e){let t=e===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(e/4),i=e===1.5707963267948966?.551915024494:t,s=Math.cos(r),n=Math.sin(r),o=Math.cos(r+e),a=Math.sin(r+e);return[{x:s-n*i,y:n+s*i},{x:o+a*i,y:a-o*i},{x:o,y:a}]}function fT(r,e,t,i,s,n,o,a=0,c=0,u=0){if(n===0||o===0)return;let l=Math.sin(a*$o/360),h=Math.cos(a*$o/360),f=h*(e-i)/2+l*(t-s)/2,d=-l*(e-i)/2+h*(t-s)/2;if(f===0&&d===0)return;n=Math.abs(n),o=Math.abs(o);let m=Math.pow(f,2)/Math.pow(n,2)+Math.pow(d,2)/Math.pow(o,2);m>1&&(n*=Math.sqrt(m),o*=Math.sqrt(m)),PB(e,t,i,s,n,o,c,u,l,h,f,d,wm);let{ang1:x,ang2:g}=wm,{centerX:_,centerY:y}=wm,S=Math.abs(g)/($o/4);Math.abs(1-S)<1e-7&&(S=1);let T=Math.max(Math.ceil(S),1);g/=T;let C=r[r.length-2],v=r[r.length-1],E={x:0,y:0};for(let D=0;D<T;D++){let A=AB(x,g),{x:P,y:k}=Sm(A[0],n,o,h,l,_,y,E),{x:G,y:j}=Sm(A[1],n,o,h,l,_,y,E),{x:be,y:Tt}=Sm(A[2],n,o,h,l,_,y,E);bl(r,C,v,P,k,G,j,be,Tt),C=be,v=Tt,x+=g}}var $o,wm,Sm,dT,PB,mT=p(()=>{bm();$o=Math.PI*2,wm={centerX:0,centerY:0,ang1:0,ang2:0},Sm=({x:r,y:e},t,i,s,n,o,a,c)=>{r*=t,e*=i;let u=s*r-n*e,l=n*r+s*e;return c.x=u+o,c.y=l+a,c};dT=(r,e,t,i)=>{let s=r*i-e*t<0?-1:1,n=r*t+e*i;return n>1&&(n=1),n<-1&&(n=-1),s*Math.acos(n)},PB=(r,e,t,i,s,n,o,a,c,u,l,h,f)=>{let d=Math.pow(s,2),m=Math.pow(n,2),x=Math.pow(l,2),g=Math.pow(h,2),_=d*m-d*g-m*x;_<0&&(_=0),_/=d*g+m*x,_=Math.sqrt(_)*(o===a?-1:1);let y=_*s/n*h,S=_*-n/s*l,T=u*y-c*S+(r+t)/2,C=c*y+u*S+(e+i)/2,v=(l-y)/s,E=(h-S)/n,D=(-l-y)/s,A=(-h-S)/n,P=dT(1,0,v,E),k=dT(v,E,D,A);a===0&&k>0&&(k-=$o),a===1&&k<0&&(k+=$o),f.centerX=T,f.centerY=C,f.ang1=P,f.ang2=k}});function pT(r,e,t){let i=(o,a)=>{let c=a.x-o.x,u=a.y-o.y,l=Math.sqrt(c*c+u*u),h=c/l,f=u/l;return{len:l,nx:h,ny:f}},s=(o,a)=>{o===0?r.moveTo(a.x,a.y):r.lineTo(a.x,a.y)},n=e[e.length-1];for(let o=0;o<e.length;o++){let a=e[o%e.length],c=a.radius??t;if(c<=0){s(o,a),n=a;continue}let u=e[(o+1)%e.length],l=i(a,n),h=i(a,u);if(l.len<1e-4||h.len<1e-4){s(o,a),n=a;continue}let f=Math.asin(l.nx*h.ny-l.ny*h.nx),d=1,m=!1;l.nx*h.nx-l.ny*-h.ny<0?f<0?f=Math.PI+f:(f=Math.PI-f,d=-1,m=!0):f>0&&(d=-1,m=!0);let x=f/2,g,_=Math.abs(Math.cos(x)*c/Math.sin(x));_>Math.min(l.len/2,h.len/2)?(_=Math.min(l.len/2,h.len/2),g=Math.abs(_*Math.sin(x)/Math.cos(x))):g=c;let y=a.x+h.nx*_+-h.ny*g*d,S=a.y+h.ny*_+h.nx*g*d,T=Math.atan2(l.ny,l.nx)+Math.PI/2*d,C=Math.atan2(h.ny,h.nx)-Math.PI/2*d;o===0&&r.moveTo(y+Math.cos(T)*g,S+Math.sin(T)*g),r.arc(y,S,g,T,C,m),n=a}}function gT(r,e,t,i){let s=(a,c)=>Math.sqrt((a.x-c.x)**2+(a.y-c.y)**2),n=(a,c,u)=>({x:a.x+(c.x-a.x)*u,y:a.y+(c.y-a.y)*u}),o=e.length;for(let a=0;a<o;a++){let c=e[(a+1)%o],u=c.radius??t;if(u<=0){a===0?r.moveTo(c.x,c.y):r.lineTo(c.x,c.y);continue}let l=e[a],h=e[(a+2)%o],f=s(l,c),d;if(f<1e-4)d=c;else{let g=Math.min(f/2,u);d=n(c,l,g/f)}let m=s(h,c),x;if(m<1e-4)x=c;else{let g=Math.min(m/2,u);x=n(c,h,g/m)}a===0?r.moveTo(d.x,d.y):r.lineTo(d.x,d.y),r.quadraticCurveTo(c.x,c.y,x.x,x.y,i)}}var xT=p(()=>{"use strict"});var BB,Tl,_T=p(()=>{tT();rT();nT();Ge();oT();at();bm();uT();Tm();hT();mT();xT();BB=new Y,Tl=class{constructor(e){this.shapePrimitives=[],this._currentPoly=null,this._bounds=new ae,this._graphicsPath2D=e,this.signed=e.checkForHoles}moveTo(e,t){return this.startPoly(e,t),this}lineTo(e,t){this._ensurePoly();let i=this._currentPoly.points,s=i[i.length-2],n=i[i.length-1];return(s!==e||n!==t)&&i.push(e,t),this}arc(e,t,i,s,n,o){this._ensurePoly(!1);let a=this._currentPoly.points;return yl(a,e,t,i,s,n,o),this}arcTo(e,t,i,s,n){this._ensurePoly();let o=this._currentPoly.points;return lT(o,e,t,i,s,n),this}arcToSvg(e,t,i,s,n,o,a){let c=this._currentPoly.points;return fT(c,this._currentPoly.lastX,this._currentPoly.lastY,o,a,e,t,i,s,n),this}bezierCurveTo(e,t,i,s,n,o,a){this._ensurePoly();let c=this._currentPoly;return bl(this._currentPoly.points,c.lastX,c.lastY,e,t,i,s,n,o,a),this}quadraticCurveTo(e,t,i,s,n){this._ensurePoly();let o=this._currentPoly;return cT(this._currentPoly.points,o.lastX,o.lastY,e,t,i,s,n),this}closePath(){return this.endPoly(!0),this}addPath(e,t){this.endPoly(),t&&!t.isIdentity()&&(e=e.clone(!0),e.transform(t));let i=this.shapePrimitives,s=i.length;for(let n=0;n<e.instructions.length;n++){let o=e.instructions[n];this[o.action](...o.data)}if(e.checkForHoles&&i.length-s>1){let n=null;for(let o=s;o<i.length;o++){let a=i[o];if(a.shape.type==="polygon"){let c=a.shape,u=n?.shape;u&&u.containsPolygon(c)?(n.holes||(n.holes=[]),n.holes.push(a),i.copyWithin(o,o+1),i.length--,o--):n=a}}}return this}finish(e=!1){this.endPoly(e)}rect(e,t,i,s,n){return this.drawShape(new Y(e,t,i,s),n),this}circle(e,t,i,s){return this.drawShape(new ml(e,t,i),s),this}poly(e,t,i){let s=new Qs(e);return s.closePath=t,this.drawShape(s,i),this}regularPoly(e,t,i,s,n=0,o){s=Math.max(s|0,3);let a=-1*Math.PI/2+n,c=Math.PI*2/s,u=[];for(let l=0;l<s;l++){let h=a-l*c;u.push(e+i*Math.cos(h),t+i*Math.sin(h))}return this.poly(u,!0,o),this}roundPoly(e,t,i,s,n,o=0,a){if(s=Math.max(s|0,3),n<=0)return this.regularPoly(e,t,i,s,o);let c=i*Math.sin(Math.PI/s)-.001;n=Math.min(n,c);let u=-1*Math.PI/2+o,l=Math.PI*2/s,h=(s-2)*Math.PI/s/2;for(let f=0;f<s;f++){let d=f*l+u,m=e+i*Math.cos(d),x=t+i*Math.sin(d),g=d+Math.PI+h,_=d-Math.PI-h,y=m+n*Math.cos(g),S=x+n*Math.sin(g),T=m+n*Math.cos(_),C=x+n*Math.sin(_);f===0?this.moveTo(y,S):this.lineTo(y,S),this.quadraticCurveTo(m,x,T,C,a)}return this.closePath()}roundShape(e,t,i=!1,s){return e.length<3?this:(i?gT(this,e,t,s):pT(this,e,t),this.closePath())}filletRect(e,t,i,s,n){if(n===0)return this.rect(e,t,i,s);let o=Math.min(i,s)/2,a=Math.min(o,Math.max(-o,n)),c=e+i,u=t+s,l=a<0?-a:0,h=Math.abs(a);return this.moveTo(e,t+h).arcTo(e+l,t+l,e+h,t,h).lineTo(c-h,t).arcTo(c-l,t+l,c,t+h,h).lineTo(c,u-h).arcTo(c-l,u-l,e+i-h,u,h).lineTo(e+h,u).arcTo(e+l,u-l,e,u-h,h).closePath()}chamferRect(e,t,i,s,n,o){if(n<=0)return this.rect(e,t,i,s);let a=Math.min(n,Math.min(i,s)/2),c=e+i,u=t+s,l=[e+a,t,c-a,t,c,t+a,c,u-a,c-a,u,e+a,u,e,u-a,e,t+a];for(let h=l.length-1;h>=2;h-=2)l[h]===l[h-2]&&l[h-1]===l[h-3]&&l.splice(h-1,2);return this.poly(l,!0,o)}ellipse(e,t,i,s,n){return this.drawShape(new pl(e,t,i,s),n),this}roundRect(e,t,i,s,n,o){return this.drawShape(new xl(e,t,i,s,n),o),this}drawShape(e,t){return this.endPoly(),this.shapePrimitives.push({shape:e,transform:t}),this}startPoly(e,t){let i=this._currentPoly;return i&&this.endPoly(),i=new Qs,i.points.push(e,t),this._currentPoly=i,this}endPoly(e=!1){let t=this._currentPoly;return t&&t.points.length>2&&(t.closePath=e,this.shapePrimitives.push({shape:t})),this._currentPoly=null,this}_ensurePoly(e=!0){if(!this._currentPoly&&(this._currentPoly=new Qs,e)){let t=this.shapePrimitives[this.shapePrimitives.length-1];if(t){let i=t.shape.x,s=t.shape.y;if(t.transform&&!t.transform.isIdentity()){let n=t.transform,o=i;i=n.a*i+n.c*s+n.tx,s=n.b*o+n.d*s+n.ty}this._currentPoly.points.push(i,s)}else this._currentPoly.points.push(0,0)}}buildPath(){let e=this._graphicsPath2D;this.shapePrimitives.length=0,this._currentPoly=null;for(let t=0;t<e.instructions.length;t++){let i=e.instructions[t];this[i.action](...i.data)}this.finish()}get bounds(){let e=this._bounds;e.clear();let t=this.shapePrimitives;for(let i=0;i<t.length;i++){let s=t[i],n=s.shape.getBounds(BB);s.transform?e.addRect(n,s.transform):e.addRect(n)}return e}}});function qo(r,e){return r?r.prepend(e):e.clone()}var ei,vm=p(()=>{Ft();Oe();pe();eT();_T();ei=class r{constructor(e,t=!1){this.instructions=[],this.uid=K("graphicsPath"),this._dirty=!0,this.checkForHoles=t,typeof e=="string"?J2(e,this):this.instructions=e?.slice()??[]}get shapePath(){return this._shapePath||(this._shapePath=new Tl(this)),this._dirty&&(this._dirty=!1,this._shapePath.buildPath()),this._shapePath}addPath(e,t){return e=e.clone(),this.instructions.push({action:"addPath",data:[e,t]}),this._dirty=!0,this}arc(...e){return this.instructions.push({action:"arc",data:e}),this._dirty=!0,this}arcTo(...e){return this.instructions.push({action:"arcTo",data:e}),this._dirty=!0,this}arcToSvg(...e){return this.instructions.push({action:"arcToSvg",data:e}),this._dirty=!0,this}bezierCurveTo(...e){return this.instructions.push({action:"bezierCurveTo",data:e}),this._dirty=!0,this}bezierCurveToShort(e,t,i,s,n){let o=this.instructions[this.instructions.length-1],a=this.getLastPoint(J.shared),c=0,u=0;if(!o||o.action!=="bezierCurveTo")c=a.x,u=a.y;else{c=o.data[2],u=o.data[3];let l=a.x,h=a.y;c=l+(l-c),u=h+(h-u)}return this.instructions.push({action:"bezierCurveTo",data:[c,u,e,t,i,s,n]}),this._dirty=!0,this}closePath(){return this.instructions.push({action:"closePath",data:[]}),this._dirty=!0,this}ellipse(...e){return this.instructions.push({action:"ellipse",data:e}),this._dirty=!0,this}lineTo(...e){return this.instructions.push({action:"lineTo",data:e}),this._dirty=!0,this}moveTo(...e){return this.instructions.push({action:"moveTo",data:e}),this}quadraticCurveTo(...e){return this.instructions.push({action:"quadraticCurveTo",data:e}),this._dirty=!0,this}quadraticCurveToShort(e,t,i){let s=this.instructions[this.instructions.length-1],n=this.getLastPoint(J.shared),o=0,a=0;if(!s||s.action!=="quadraticCurveTo")o=n.x,a=n.y;else{o=s.data[0],a=s.data[1];let c=n.x,u=n.y;o=c+(c-o),a=u+(u-a)}return this.instructions.push({action:"quadraticCurveTo",data:[o,a,e,t,i]}),this._dirty=!0,this}rect(e,t,i,s,n){return this.instructions.push({action:"rect",data:[e,t,i,s,n]}),this._dirty=!0,this}circle(e,t,i,s){return this.instructions.push({action:"circle",data:[e,t,i,s]}),this._dirty=!0,this}roundRect(...e){return this.instructions.push({action:"roundRect",data:e}),this._dirty=!0,this}poly(...e){return this.instructions.push({action:"poly",data:e}),this._dirty=!0,this}regularPoly(...e){return this.instructions.push({action:"regularPoly",data:e}),this._dirty=!0,this}roundPoly(...e){return this.instructions.push({action:"roundPoly",data:e}),this._dirty=!0,this}roundShape(...e){return this.instructions.push({action:"roundShape",data:e}),this._dirty=!0,this}filletRect(...e){return this.instructions.push({action:"filletRect",data:e}),this._dirty=!0,this}chamferRect(...e){return this.instructions.push({action:"chamferRect",data:e}),this._dirty=!0,this}star(e,t,i,s,n,o,a){n||(n=s/2);let c=-1*Math.PI/2+o,u=i*2,l=Math.PI*2/u,h=[];for(let f=0;f<u;f++){let d=f%2?n:s,m=f*l+c;h.push(e+d*Math.cos(m),t+d*Math.sin(m))}return this.poly(h,!0,a),this}clone(e=!1){let t=new r;if(t.checkForHoles=this.checkForHoles,!e)t.instructions=this.instructions.slice();else for(let i=0;i<this.instructions.length;i++){let s=this.instructions[i];t.instructions.push({action:s.action,data:s.data.slice()})}return t}clear(){return this.instructions.length=0,this._dirty=!0,this}transform(e){if(e.isIdentity())return this;let t=e.a,i=e.b,s=e.c,n=e.d,o=e.tx,a=e.ty,c=0,u=0,l=0,h=0,f=0,d=0,m=0,x=0;for(let g=0;g<this.instructions.length;g++){let _=this.instructions[g],y=_.data;switch(_.action){case"moveTo":case"lineTo":c=y[0],u=y[1],y[0]=t*c+s*u+o,y[1]=i*c+n*u+a;break;case"bezierCurveTo":l=y[0],h=y[1],f=y[2],d=y[3],c=y[4],u=y[5],y[0]=t*l+s*h+o,y[1]=i*l+n*h+a,y[2]=t*f+s*d+o,y[3]=i*f+n*d+a,y[4]=t*c+s*u+o,y[5]=i*c+n*u+a;break;case"quadraticCurveTo":l=y[0],h=y[1],c=y[2],u=y[3],y[0]=t*l+s*h+o,y[1]=i*l+n*h+a,y[2]=t*c+s*u+o,y[3]=i*c+n*u+a;break;case"arcToSvg":c=y[5],u=y[6],m=y[0],x=y[1],y[0]=t*m+s*x,y[1]=i*m+n*x,y[5]=t*c+s*u+o,y[6]=i*c+n*u+a;break;case"circle":y[4]=qo(y[3],e);break;case"rect":y[4]=qo(y[4],e);break;case"ellipse":y[8]=qo(y[8],e);break;case"roundRect":y[5]=qo(y[5],e);break;case"addPath":y[0].transform(e);break;case"poly":y[2]=qo(y[2],e);break;default:N("unknown transform action",_.action);break}}return this._dirty=!0,this}get bounds(){return this.shapePath.bounds}getLastPoint(e){let t=this.instructions.length-1,i=this.instructions[t];if(!i)return e.x=0,e.y=0,e;for(;i.action==="closePath";){if(t--,t<0)return e.x=0,e.y=0,e;i=this.instructions[t]}switch(i.action){case"moveTo":case"lineTo":e.x=i.data[0],e.y=i.data[1];break;case"quadraticCurveTo":e.x=i.data[2],e.y=i.data[3];break;case"bezierCurveTo":e.x=i.data[4],e.y=i.data[5];break;case"arc":case"arcToSvg":e.x=i.data[5],e.y=i.data[6];break;case"addPath":i.data[0].getLastPoint(e);break}return e}}});function _e(r,e,t){let i=r.getAttribute(e);return i?Number(i):t}var Cm=p(()=>{"use strict"});function bT(r,e){let t=r.querySelectorAll("defs");for(let i=0;i<t.length;i++){let s=t[i];for(let n=0;n<s.children.length;n++){let o=s.children[n];switch(o.nodeName.toLowerCase()){case"lineargradient":e.defs[o.id]=RB(o);break;case"radialgradient":e.defs[o.id]=DB(o);break;default:break}}}}function RB(r){let e=_e(r,"x1",0),t=_e(r,"y1",0),i=_e(r,"x2",1),s=_e(r,"y2",0),n=r.getAttribute("gradientUnits")||"objectBoundingBox",o=new lt(e,t,i,s,n==="objectBoundingBox"?"local":"global");for(let a=0;a<r.children.length;a++){let c=r.children[a],u=_e(c,"offset",0),l=q.shared.setValue(c.getAttribute("stop-color")).toNumber();o.addColorStop(u,l)}return o}function DB(r){return N("[SVG Parser] Radial gradients are not yet supported"),new lt(0,0,1,0)}var yT=p(()=>{He();pe();js();Cm()});function Em(r){let e=r.match(/url\s*\(\s*['"]?\s*#([^'"\s)]+)\s*['"]?\s*\)/i);return e?e[1]:""}var TT=p(()=>{"use strict"});function km(r,e){let t=r.getAttribute("style"),i={},s={},n={strokeStyle:i,fillStyle:s,useFill:!1,useStroke:!1};for(let o in wT){let a=r.getAttribute(o);a&&ST(e,n,o,a.trim())}if(t){let o=t.split(";");for(let a=0;a<o.length;a++){let c=o[a].trim(),[u,l]=c.split(":");wT[u]&&ST(e,n,u,l.trim())}}return{strokeStyle:n.useStroke?i:null,fillStyle:n.useFill?s:null,useFill:n.useFill,useStroke:n.useStroke}}function ST(r,e,t,i){switch(t){case"stroke":if(i!=="none"){if(i.startsWith("url(")){let s=Em(i);e.strokeStyle.fill=r.defs[s]}else e.strokeStyle.color=q.shared.setValue(i).toNumber();e.useStroke=!0}break;case"stroke-width":e.strokeStyle.width=Number(i);break;case"fill":if(i!=="none"){if(i.startsWith("url(")){let s=Em(i);e.fillStyle.fill=r.defs[s]}else e.fillStyle.color=q.shared.setValue(i).toNumber();e.useFill=!0}break;case"fill-opacity":e.fillStyle.alpha=Number(i);break;case"stroke-opacity":e.strokeStyle.alpha=Number(i);break;case"opacity":e.fillStyle.alpha=Number(i),e.strokeStyle.alpha=Number(i);break}}var wT,vT=p(()=>{He();TT();wT={fill:{type:"paint",default:0},"fill-opacity":{type:"number",default:1},stroke:{type:"paint",default:0},"stroke-width":{type:"number",default:1},"stroke-opacity":{type:"number",default:1},"stroke-linecap":{type:"string",default:"butt"},"stroke-linejoin":{type:"string",default:"miter"},"stroke-miterlimit":{type:"number",default:10},"stroke-dasharray":{type:"string",default:"none"},"stroke-dashoffset":{type:"number",default:0},opacity:{type:"number",default:1}}});function CT(r,e){if(typeof r=="string"){let o=document.createElement("div");o.innerHTML=r.trim(),r=o.querySelector("svg")}let t={context:e,defs:{},path:new ei};bT(r,t);let i=r.children,{fillStyle:s,strokeStyle:n}=km(r,t);for(let o=0;o<i.length;o++){let a=i[o];a.nodeName.toLowerCase()!=="defs"&&ET(a,t,s,n)}return e}function ET(r,e,t,i){let s=r.children,{fillStyle:n,strokeStyle:o}=km(r,e);n&&t?t={...t,...n}:n&&(t=n),o&&i?i={...i,...o}:o&&(i=o);let a=!t&&!i;a&&(t={color:0});let c,u,l,h,f,d,m,x,g,_,y,S,T,C,v,E,D;switch(r.nodeName.toLowerCase()){case"path":C=r.getAttribute("d"),r.getAttribute("fill-rule")==="evenodd"&&N("SVG Evenodd fill rule not supported, your svg may render incorrectly"),v=new ei(C,!0),e.context.path(v),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"circle":m=_e(r,"cx",0),x=_e(r,"cy",0),g=_e(r,"r",0),e.context.ellipse(m,x,g,g),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"rect":c=_e(r,"x",0),u=_e(r,"y",0),E=_e(r,"width",0),D=_e(r,"height",0),_=_e(r,"rx",0),y=_e(r,"ry",0),_||y?e.context.roundRect(c,u,E,D,_||y):e.context.rect(c,u,E,D),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"ellipse":m=_e(r,"cx",0),x=_e(r,"cy",0),_=_e(r,"rx",0),y=_e(r,"ry",0),e.context.beginPath(),e.context.ellipse(m,x,_,y),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"line":l=_e(r,"x1",0),h=_e(r,"y1",0),f=_e(r,"x2",0),d=_e(r,"y2",0),e.context.beginPath(),e.context.moveTo(l,h),e.context.lineTo(f,d),i&&e.context.stroke(i);break;case"polygon":T=r.getAttribute("points"),S=T.match(/\d+/g).map(A=>parseInt(A,10)),e.context.poly(S,!0),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"polyline":T=r.getAttribute("points"),S=T.match(/\d+/g).map(A=>parseInt(A,10)),e.context.poly(S,!1),i&&e.context.stroke(i);break;case"g":case"svg":break;default:{N(`[SVG parser] <${r.nodeName}> elements unsupported`);break}}a&&(t=null);for(let A=0;A<s.length;A++)ET(s[A],e,t,i)}var kT=p(()=>{pe();vm();yT();Cm();vT()});function MB(r){return q.isColorLike(r)}function AT(r){return r instanceof kr}function PT(r){return r instanceof lt}function IB(r){return r instanceof M}function FB(r,e,t){let i=q.shared.setValue(e??0);return r.color=i.toNumber(),r.alpha=i.alpha===1?t.alpha:i.alpha,r.texture=M.WHITE,{...t,...r}}function UB(r,e,t){return r.texture=e,{...t,...r}}function BT(r,e,t){return r.fill=e,r.color=16777215,r.texture=e.texture,r.matrix=e.transform,{...t,...r}}function RT(r,e,t){return e.buildGradient(),r.fill=e,r.color=16777215,r.texture=e.texture,r.matrix=e.transform,r.textureSpace=e.textureSpace,{...t,...r}}function OB(r,e){let t={...e,...r},i=q.shared.setValue(t.color);return t.alpha*=i.alpha,t.color=i.toNumber(),t}function Ar(r,e){if(r==null)return null;let t={},i=r;return MB(r)?FB(t,r,e):IB(r)?UB(t,r,e):AT(r)?BT(t,r,e):PT(r)?RT(t,r,e):i.fill&&AT(i.fill)?BT(i,i.fill,e):i.fill&&PT(i.fill)?RT(i,i.fill,e):OB(i,e)}function Js(r,e){let{width:t,alignment:i,miterLimit:s,cap:n,join:o,pixelLine:a,...c}=e,u=Ar(r,c);return u?{width:t,alignment:i,miterLimit:s,cap:n,join:o,pixelLine:a,...u}:null}var Am=p(()=>{He();le();js();fl()});var GB,DT,Pm,bt,Bm=p(()=>{Ve();He();te();Ft();le();Oe();ye();at();vm();kT();Am();GB=new J,DT=new R,Pm=class or extends oe{constructor(){super(...arguments),this.uid=K("graphicsContext"),this.dirty=!0,this.batchMode="auto",this.instructions=[],this._activePath=new ei,this._transform=new R,this._fillStyle={...or.defaultFillStyle},this._strokeStyle={...or.defaultStrokeStyle},this._stateStack=[],this._tick=0,this._bounds=new ae,this._boundsDirty=!0}clone(){let e=new or;return e.batchMode=this.batchMode,e.instructions=this.instructions.slice(),e._activePath=this._activePath.clone(),e._transform=this._transform.clone(),e._fillStyle={...this._fillStyle},e._strokeStyle={...this._strokeStyle},e._stateStack=this._stateStack.slice(),e._bounds=this._bounds.clone(),e._boundsDirty=!0,e}get fillStyle(){return this._fillStyle}set fillStyle(e){this._fillStyle=Ar(e,or.defaultFillStyle)}get strokeStyle(){return this._strokeStyle}set strokeStyle(e){this._strokeStyle=Js(e,or.defaultStrokeStyle)}setFillStyle(e){return this._fillStyle=Ar(e,or.defaultFillStyle),this}setStrokeStyle(e){return this._strokeStyle=Ar(e,or.defaultStrokeStyle),this}texture(e,t,i,s,n,o){return this.instructions.push({action:"texture",data:{image:e,dx:i||0,dy:s||0,dw:n||e.frame.width,dh:o||e.frame.height,transform:this._transform.clone(),alpha:this._fillStyle.alpha,style:t?q.shared.setValue(t).toNumber():16777215}}),this.onUpdate(),this}beginPath(){return this._activePath=new ei,this}fill(e,t){let i,s=this.instructions[this.instructions.length-1];return this._tick===0&&s&&s.action==="stroke"?i=s.data.path:i=this._activePath.clone(),i?(e!=null&&(t!==void 0&&typeof e=="number"&&(z($,"GraphicsContext.fill(color, alpha) is deprecated, use GraphicsContext.fill({ color, alpha }) instead"),e={color:e,alpha:t}),this._fillStyle=Ar(e,or.defaultFillStyle)),this.instructions.push({action:"fill",data:{style:this.fillStyle,path:i}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}_initNextPathLocation(){let{x:e,y:t}=this._activePath.getLastPoint(J.shared);this._activePath.clear(),this._activePath.moveTo(e,t)}stroke(e){let t,i=this.instructions[this.instructions.length-1];return this._tick===0&&i&&i.action==="fill"?t=i.data.path:t=this._activePath.clone(),t?(e!=null&&(this._strokeStyle=Js(e,or.defaultStrokeStyle)),this.instructions.push({action:"stroke",data:{style:this.strokeStyle,path:t}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}cut(){for(let e=0;e<2;e++){let t=this.instructions[this.instructions.length-1-e],i=this._activePath.clone();if(t&&(t.action==="stroke"||t.action==="fill"))if(t.data.hole)t.data.hole.addPath(i);else{t.data.hole=i;break}}return this._initNextPathLocation(),this}arc(e,t,i,s,n,o){this._tick++;let a=this._transform;return this._activePath.arc(a.a*e+a.c*t+a.tx,a.b*e+a.d*t+a.ty,i,s,n,o),this}arcTo(e,t,i,s,n){this._tick++;let o=this._transform;return this._activePath.arcTo(o.a*e+o.c*t+o.tx,o.b*e+o.d*t+o.ty,o.a*i+o.c*s+o.tx,o.b*i+o.d*s+o.ty,n),this}arcToSvg(e,t,i,s,n,o,a){this._tick++;let c=this._transform;return this._activePath.arcToSvg(e,t,i,s,n,c.a*o+c.c*a+c.tx,c.b*o+c.d*a+c.ty),this}bezierCurveTo(e,t,i,s,n,o,a){this._tick++;let c=this._transform;return this._activePath.bezierCurveTo(c.a*e+c.c*t+c.tx,c.b*e+c.d*t+c.ty,c.a*i+c.c*s+c.tx,c.b*i+c.d*s+c.ty,c.a*n+c.c*o+c.tx,c.b*n+c.d*o+c.ty,a),this}closePath(){return this._tick++,this._activePath?.closePath(),this}ellipse(e,t,i,s){return this._tick++,this._activePath.ellipse(e,t,i,s,this._transform.clone()),this}circle(e,t,i){return this._tick++,this._activePath.circle(e,t,i,this._transform.clone()),this}path(e){return this._tick++,this._activePath.addPath(e,this._transform.clone()),this}lineTo(e,t){this._tick++;let i=this._transform;return this._activePath.lineTo(i.a*e+i.c*t+i.tx,i.b*e+i.d*t+i.ty),this}moveTo(e,t){this._tick++;let i=this._transform,s=this._activePath.instructions,n=i.a*e+i.c*t+i.tx,o=i.b*e+i.d*t+i.ty;return s.length===1&&s[0].action==="moveTo"?(s[0].data[0]=n,s[0].data[1]=o,this):(this._activePath.moveTo(n,o),this)}quadraticCurveTo(e,t,i,s,n){this._tick++;let o=this._transform;return this._activePath.quadraticCurveTo(o.a*e+o.c*t+o.tx,o.b*e+o.d*t+o.ty,o.a*i+o.c*s+o.tx,o.b*i+o.d*s+o.ty,n),this}rect(e,t,i,s){return this._tick++,this._activePath.rect(e,t,i,s,this._transform.clone()),this}roundRect(e,t,i,s,n){return this._tick++,this._activePath.roundRect(e,t,i,s,n,this._transform.clone()),this}poly(e,t){return this._tick++,this._activePath.poly(e,t,this._transform.clone()),this}regularPoly(e,t,i,s,n=0,o){return this._tick++,this._activePath.regularPoly(e,t,i,s,n,o),this}roundPoly(e,t,i,s,n,o){return this._tick++,this._activePath.roundPoly(e,t,i,s,n,o),this}roundShape(e,t,i,s){return this._tick++,this._activePath.roundShape(e,t,i,s),this}filletRect(e,t,i,s,n){return this._tick++,this._activePath.filletRect(e,t,i,s,n),this}chamferRect(e,t,i,s,n,o){return this._tick++,this._activePath.chamferRect(e,t,i,s,n,o),this}star(e,t,i,s,n=0,o=0){return this._tick++,this._activePath.star(e,t,i,s,n,o,this._transform.clone()),this}svg(e){return this._tick++,CT(e,this),this}restore(){let e=this._stateStack.pop();return e&&(this._transform=e.transform,this._fillStyle=e.fillStyle,this._strokeStyle=e.strokeStyle),this}save(){return this._stateStack.push({transform:this._transform.clone(),fillStyle:{...this._fillStyle},strokeStyle:{...this._strokeStyle}}),this}getTransform(){return this._transform}resetTransform(){return this._transform.identity(),this}rotate(e){return this._transform.rotate(e),this}scale(e,t=e){return this._transform.scale(e,t),this}setTransform(e,t,i,s,n,o){return e instanceof R?(this._transform.set(e.a,e.b,e.c,e.d,e.tx,e.ty),this):(this._transform.set(e,t,i,s,n,o),this)}transform(e,t,i,s,n,o){return e instanceof R?(this._transform.append(e),this):(DT.set(e,t,i,s,n,o),this._transform.append(DT),this)}translate(e,t=e){return this._transform.translate(e,t),this}clear(){return this._activePath.clear(),this.instructions.length=0,this.resetTransform(),this.onUpdate(),this}onUpdate(){this.dirty||(this.emit("update",this,16),this.dirty=!0,this._boundsDirty=!0)}get bounds(){if(!this._boundsDirty)return this._bounds;let e=this._bounds;e.clear();for(let t=0;t<this.instructions.length;t++){let i=this.instructions[t],s=i.action;if(s==="fill"){let n=i.data;e.addBounds(n.path.bounds)}else if(s==="texture"){let n=i.data;e.addFrame(n.dx,n.dy,n.dx+n.dw,n.dy+n.dh,n.transform)}if(s==="stroke"){let n=i.data,o=n.style.alignment,a=n.style.width*(1-o),c=n.path.bounds;e.addFrame(c.minX-a,c.minY-a,c.maxX+a,c.maxY+a)}}return e}containsPoint(e){if(!this.bounds.containsPoint(e.x,e.y))return!1;let t=this.instructions,i=!1;for(let s=0;s<t.length;s++){let n=t[s],o=n.data,a=o.path;if(!n.action||!a)continue;let c=o.style,u=a.shapePath.shapePrimitives;for(let l=0;l<u.length;l++){let h=u[l].shape;if(!c||!h)continue;let f=u[l].transform,d=f?f.applyInverse(e,GB):e;if(n.action==="fill")i=h.contains(d.x,d.y);else{let x=c;i=h.strokeContains(d.x,d.y,x.width,x.alignment)}let m=o.hole;if(m){let x=m.shapePath?.shapePrimitives;if(x)for(let g=0;g<x.length;g++)x[g].shape.contains(d.x,d.y)&&(i=!1)}if(i)return!0}}return i}destroy(e=!1){if(this._stateStack.length=0,this._transform=null,this.emit("destroy",this),this.removeAllListeners(),typeof e=="boolean"?e:e?.texture){let i=typeof e=="boolean"?e:e?.textureSource;this._fillStyle.texture&&this._fillStyle.texture.destroy(i),this._strokeStyle.texture&&this._strokeStyle.texture.destroy(i)}this._fillStyle=null,this._strokeStyle=null,this.instructions=null,this._activePath=null,this._bounds=null,this._stateStack=null,this.customShader=null,this._transform=null}};Pm.defaultFillStyle={color:16777215,alpha:1,texture:M.WHITE,matrix:null,fill:null,textureSpace:"local"};Pm.defaultStrokeStyle={width:1,color:16777215,alpha:1,alignment:.5,miterLimit:10,cap:"butt",join:"miter",texture:M.WHITE,matrix:null,fill:null,textureSpace:"local",pixelLine:!1};bt=Pm});function IT(r){let e=[],t=0;for(let i=0;i<MT.length;i++){let s=`_${MT[i]}`;e[t++]=r[s]}return t=FT(r._fill,e,t),t=LB(r._stroke,e,t),t=zB(r.dropShadow,e,t),t=NB(r.filters,e,t),e.join("-")}function NB(r,e,t){if(!r)return t;for(let i of r)e[t++]=i.uid;return t}function FT(r,e,t){return r&&(e[t++]=r.color,e[t++]=r.alpha,e[t++]=r.fill?.styleKey),t}function LB(r,e,t){return r&&(t=FT(r,e,t),e[t++]=r.width,e[t++]=r.alignment,e[t++]=r.cap,e[t++]=r.join,e[t++]=r.miterLimit),t}function zB(r,e,t){return r&&(e[t++]=r.alpha,e[t++]=r.angle,e[t++]=r.blur,e[t++]=r.distance,e[t++]=q.shared.setValue(r.color).toNumber()),t}var MT,UT=p(()=>{He();MT=["align","breakWords","cssOverrides","fontVariant","fontWeight","leading","letterSpacing","lineHeight","padding","textBaseline","trim","whiteSpace","wordWrap","wordWrapWidth","fontFamily","fontStyle","fontSize"]});function VB(r){let e=r;if(typeof e.dropShadow=="boolean"&&e.dropShadow){let t=ht.defaultDropShadow;r.dropShadow={alpha:e.dropShadowAlpha??t.alpha,angle:e.dropShadowAngle??t.angle,blur:e.dropShadowBlur??t.blur,color:e.dropShadowColor??t.color,distance:e.dropShadowDistance??t.distance}}if(e.strokeThickness!==void 0){z($,"strokeThickness is now a part of stroke");let t=e.stroke,i={};if(q.isColorLike(t))i.color=t;else if(t instanceof lt||t instanceof kr)i.fill=t;else if(Object.hasOwnProperty.call(t,"color")||Object.hasOwnProperty.call(t,"fill"))i=t;else throw new Error("Invalid stroke value.");r.stroke={...i,width:e.strokeThickness}}if(Array.isArray(e.fillGradientStops)){z($,"gradient fill is now a fill pattern: `new FillGradient(...)`");let t;r.fontSize==null?r.fontSize=ht.defaultTextStyle.fontSize:typeof r.fontSize=="string"?t=parseInt(r.fontSize,10):t=r.fontSize;let i=new lt({start:{x:0,y:0},end:{x:0,y:(t||0)*1.7}}),s=e.fillGradientStops.map(n=>q.shared.setValue(n).toNumber());s.forEach((n,o)=>{let a=o/(s.length-1);i.addColorStop(a,n)}),r.fill={fill:i}}}var Rm,ht,tn=p(()=>{Ve();He();ye();js();fl();Bm();Am();UT();Rm=class en extends oe{constructor(e={}){super(),VB(e);let t={...en.defaultTextStyle,...e};for(let i in t){let s=i;this[s]=t[i]}this.update()}get align(){return this._align}set align(e){this._align=e,this.update()}get breakWords(){return this._breakWords}set breakWords(e){this._breakWords=e,this.update()}get dropShadow(){return this._dropShadow}set dropShadow(e){e!==null&&typeof e=="object"?this._dropShadow=this._createProxy({...en.defaultDropShadow,...e}):this._dropShadow=e?this._createProxy({...en.defaultDropShadow}):null,this.update()}get fontFamily(){return this._fontFamily}set fontFamily(e){this._fontFamily=e,this.update()}get fontSize(){return this._fontSize}set fontSize(e){typeof e=="string"?this._fontSize=parseInt(e,10):this._fontSize=e,this.update()}get fontStyle(){return this._fontStyle}set fontStyle(e){this._fontStyle=e.toLowerCase(),this.update()}get fontVariant(){return this._fontVariant}set fontVariant(e){this._fontVariant=e,this.update()}get fontWeight(){return this._fontWeight}set fontWeight(e){this._fontWeight=e,this.update()}get leading(){return this._leading}set leading(e){this._leading=e,this.update()}get letterSpacing(){return this._letterSpacing}set letterSpacing(e){this._letterSpacing=e,this.update()}get lineHeight(){return this._lineHeight}set lineHeight(e){this._lineHeight=e,this.update()}get padding(){return this._padding}set padding(e){this._padding=e,this.update()}get filters(){return this._filters}set filters(e){this._filters=e,this.update()}get trim(){return this._trim}set trim(e){this._trim=e,this.update()}get textBaseline(){return this._textBaseline}set textBaseline(e){this._textBaseline=e,this.update()}get whiteSpace(){return this._whiteSpace}set whiteSpace(e){this._whiteSpace=e,this.update()}get wordWrap(){return this._wordWrap}set wordWrap(e){this._wordWrap=e,this.update()}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(e){this._wordWrapWidth=e,this.update()}get fill(){return this._originalFill}set fill(e){e!==this._originalFill&&(this._originalFill=e,this._isFillStyle(e)&&(this._originalFill=this._createProxy({...bt.defaultFillStyle,...e},()=>{this._fill=Ar({...this._originalFill},bt.defaultFillStyle)})),this._fill=Ar(e===0?"black":e,bt.defaultFillStyle),this.update())}get stroke(){return this._originalStroke}set stroke(e){e!==this._originalStroke&&(this._originalStroke=e,this._isFillStyle(e)&&(this._originalStroke=this._createProxy({...bt.defaultStrokeStyle,...e},()=>{this._stroke=Js({...this._originalStroke},bt.defaultStrokeStyle)})),this._stroke=Js(e,bt.defaultStrokeStyle),this.update())}_generateKey(){return this._styleKey=IT(this),this._styleKey}update(){this._styleKey=null,this.emit("update",this)}reset(){let e=en.defaultTextStyle;for(let t in e)this[t]=e[t]}get styleKey(){return this._styleKey||this._generateKey()}clone(){return new en({align:this.align,breakWords:this.breakWords,dropShadow:this._dropShadow?{...this._dropShadow}:null,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,leading:this.leading,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,textBaseline:this.textBaseline,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,filters:this._filters?[...this._filters]:void 0})}_getFinalPadding(){let e=0;if(this._filters)for(let t=0;t<this._filters.length;t++)e+=this._filters[t].padding;return Math.max(this._padding,e)}destroy(e=!1){if(this.removeAllListeners(),typeof e=="boolean"?e:e?.texture){let i=typeof e=="boolean"?e:e?.textureSource;this._fill?.texture&&this._fill.texture.destroy(i),this._originalFill?.texture&&this._originalFill.texture.destroy(i),this._stroke?.texture&&this._stroke.texture.destroy(i),this._originalStroke?.texture&&this._originalStroke.texture.destroy(i)}this._fill=null,this._stroke=null,this.dropShadow=null,this._originalStroke=null,this._originalFill=null}_createProxy(e,t){return new Proxy(e,{set:(i,s,n)=>(i[s]=n,t?.(s,n),this.update(),!0)})}_isFillStyle(e){return(e??null)!==null&&!(q.isColorLike(e)||e instanceof lt||e instanceof kr)}};Rm.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5};Rm.defaultTextStyle={align:"left",breakWords:!1,dropShadow:null,fill:"black",fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",leading:0,letterSpacing:0,lineHeight:0,padding:0,stroke:null,textBaseline:"alphabetic",trim:!1,whiteSpace:"pre",wordWrap:!1,wordWrapWidth:100};ht=Rm});function wl(r,e,t,i){let s=HB;s.minX=0,s.minY=0,s.maxX=r.width/i|0,s.maxY=r.height/i|0;let n=Te.getOptimalTexture(s.width,s.height,i,!1);return n.source.uploadMethodId="image",n.source.resource=r,n.source.alphaMode="premultiply-alpha-on-upload",n.frame.width=e/i,n.frame.height=t/i,n.source.emit("update",n.source),n.updateUvs(),n}var HB,Dm=p(()=>{Hr();at();HB=new ae});var Mm,yt,rn=p(()=>{Ce();ho();Mm=class{constructor(e){this._canvasPool=Object.create(null),this.canvasOptions=e||{},this.enableFullScreen=!1}_createCanvasAndContext(e,t){let i=W.get().createCanvas();i.width=e,i.height=t;let s=i.getContext("2d");return{canvas:i,context:s}}getOptimalCanvasAndContext(e,t,i=1){e=Math.ceil(e*i-1e-6),t=Math.ceil(t*i-1e-6),e=Tr(e),t=Tr(t);let s=(e<<17)+(t<<1);this._canvasPool[s]||(this._canvasPool[s]=[]);let n=this._canvasPool[s].pop();return n||(n=this._createCanvasAndContext(e,t)),n}returnCanvasAndContext(e){let t=e.canvas,{width:i,height:s}=t,n=(i<<17)+(s<<1);e.context.clearRect(0,0,i,s),this._canvasPool[n].push(e)}clear(){this._canvasPool={}}},yt=new Mm});function WB(r,e){Qi||(Qi=W.get().createCanvas(256,128),Pr=Qi.getContext("2d",{willReadFrequently:!0}),Pr.globalCompositeOperation="copy",Pr.globalAlpha=1),(Qi.width<r||Qi.height<e)&&(Qi.width=Tr(r),Qi.height=Tr(e))}function OT(r,e,t){for(let i=0,s=4*t*e;i<e;++i,s+=4)if(r[s+3]!==0)return!1;return!0}function GT(r,e,t,i,s){let n=4*e;for(let o=i,a=i*n+4*t;o<=s;++o,a+=n)if(r[a+3]!==0)return!1;return!0}function NT(...r){let e=r[0];e.canvas||(e={canvas:r[0],resolution:r[1]});let{canvas:t}=e,i=Math.min(e.resolution??1,1),s=e.width??t.width,n=e.height??t.height,o=e.output;if(WB(s,n),!Pr)throw new TypeError("Failed to get canvas 2D context");Pr.drawImage(t,0,0,s,n,0,0,s*i,n*i);let c=Pr.getImageData(0,0,s,n).data,u=0,l=0,h=s-1,f=n-1;for(;l<n&&OT(c,s,l);)++l;if(l===n)return Y.EMPTY;for(;OT(c,s,f);)--f;for(;GT(c,s,u,l,f);)++u;for(;GT(c,s,h,l,f);)--h;return++h,++f,Pr.globalCompositeOperation="source-over",Pr.strokeRect(u,l,h-u,f-l),Pr.globalCompositeOperation="copy",o??(o=new Y),o.set(u/i,l/i,(h-u)/i,(f-l)/i),o}var Qi,Pr,LT=p(()=>{Ce();ho();Ge();Qi=null,Pr=null});function Zi(r){let e=typeof r.fontSize=="number"?`${r.fontSize}px`:r.fontSize,t=r.fontFamily;Array.isArray(r.fontFamily)||(t=r.fontFamily.split(","));for(let i=t.length-1;i>=0;i--){let s=t[i].trim();!/([\"\'])[^\'\"]+\1/.test(s)&&!$B.includes(s)&&(s=`"${s}"`),t[i]=s}return`${r.fontStyle} ${r.fontVariant} ${r.fontWeight} ${e} ${t.join(",")}`}var $B,Sl=p(()=>{"use strict";$B=["serif","sans-serif","monospace","cursive","fantasy","system-ui"]});var Im,ar,Xe,sn=p(()=>{Ce();Sl();Im={willReadFrequently:!0},ar=class V{static get experimentalLetterSpacingSupported(){let e=V._experimentalLetterSpacingSupported;if(e===void 0){let t=W.get().getCanvasRenderingContext2D().prototype;e=V._experimentalLetterSpacingSupported="letterSpacing"in t||"textLetterSpacing"in t}return e}constructor(e,t,i,s,n,o,a,c,u){this.text=e,this.style=t,this.width=i,this.height=s,this.lines=n,this.lineWidths=o,this.lineHeight=a,this.maxLineWidth=c,this.fontProperties=u}static measureText(e=" ",t,i=V._canvas,s=t.wordWrap){let n=Zi(t),o=V.measureFont(n);o.fontSize===0&&(o.fontSize=t.fontSize,o.ascent=t.fontSize);let a=V.__context;a.font=n;let u=(s?V._wordWrap(e,t,i):e).split(/(?:\r\n|\r|\n)/),l=new Array(u.length),h=0;for(let _=0;_<u.length;_++){let y=V._measureText(u[_],t.letterSpacing,a);l[_]=y,h=Math.max(h,y)}let f=t._stroke?.width||0,d=h+f;t.dropShadow&&(d+=t.dropShadow.distance);let m=t.lineHeight||o.fontSize,x=Math.max(m,o.fontSize+f)+(u.length-1)*(m+t.leading);return t.dropShadow&&(x+=t.dropShadow.distance),new V(e,t,d,x,u,l,m+t.leading,h,o)}static _measureText(e,t,i){let s=!1;V.experimentalLetterSpacingSupported&&(V.experimentalLetterSpacing?(i.letterSpacing=`${t}px`,i.textLetterSpacing=`${t}px`,s=!0):(i.letterSpacing="0px",i.textLetterSpacing="0px"));let n=i.measureText(e),o=n.width,a=-n.actualBoundingBoxLeft,u=n.actualBoundingBoxRight-a;if(o>0)if(s)o-=t,u-=t;else{let l=(V.graphemeSegmenter(e).length-1)*t;o+=l,u+=l}return Math.max(o,u)}static _wordWrap(e,t,i=V._canvas){let s=i.getContext("2d",Im),n=0,o="",a="",c=Object.create(null),{letterSpacing:u,whiteSpace:l}=t,h=V._collapseSpaces(l),f=V._collapseNewlines(l),d=!h,m=t.wordWrapWidth+u,x=V._tokenize(e);for(let g=0;g<x.length;g++){let _=x[g];if(V._isNewline(_)){if(!f){a+=V._addLine(o),d=!h,o="",n=0;continue}_=" "}if(h){let S=V.isBreakingSpace(_),T=V.isBreakingSpace(o[o.length-1]);if(S&&T)continue}let y=V._getFromCache(_,u,c,s);if(y>m)if(o!==""&&(a+=V._addLine(o),o="",n=0),V.canBreakWords(_,t.breakWords)){let S=V.wordWrapSplit(_);for(let T=0;T<S.length;T++){let C=S[T],v=C,E=1;for(;S[T+E];){let A=S[T+E];if(!V.canBreakChars(v,A,_,T,t.breakWords))C+=A;else break;v=A,E++}T+=E-1;let D=V._getFromCache(C,u,c,s);D+n>m&&(a+=V._addLine(o),d=!1,o="",n=0),o+=C,n+=D}}else{o.length>0&&(a+=V._addLine(o),o="",n=0);let S=g===x.length-1;a+=V._addLine(_,!S),d=!1,o="",n=0}else y+n>m&&(d=!1,a+=V._addLine(o),o="",n=0),(o.length>0||!V.isBreakingSpace(_)||d)&&(o+=_,n+=y)}return a+=V._addLine(o,!1),a}static _addLine(e,t=!0){return e=V._trimRight(e),e=t?`${e}
|
|
368
|
-
`:e,e}static _getFromCache(e,t,i,s){let n=i[e];return typeof n!="number"&&(n=V._measureText(e,t,s)+t,i[e]=n),n}static _collapseSpaces(e){return e==="normal"||e==="pre-line"}static _collapseNewlines(e){return e==="normal"}static _trimRight(e){if(typeof e!="string")return"";for(let t=e.length-1;t>=0;t--){let i=e[t];if(!V.isBreakingSpace(i))break;e=e.slice(0,-1)}return e}static _isNewline(e){return typeof e!="string"?!1:V._newlines.includes(e.charCodeAt(0))}static isBreakingSpace(e,t){return typeof e!="string"?!1:V._breakingSpaces.includes(e.charCodeAt(0))}static _tokenize(e){let t=[],i="";if(typeof e!="string")return t;for(let s=0;s<e.length;s++){let n=e[s],o=e[s+1];if(V.isBreakingSpace(n,o)||V._isNewline(n)){i!==""&&(t.push(i),i=""),t.push(n);continue}i+=n}return i!==""&&t.push(i),t}static canBreakWords(e,t){return t}static canBreakChars(e,t,i,s,n){return!0}static wordWrapSplit(e){return V.graphemeSegmenter(e)}static measureFont(e){if(V._fonts[e])return V._fonts[e];let t=V._context;t.font=e;let i=t.measureText(V.METRICS_STRING+V.BASELINE_SYMBOL),s={ascent:i.actualBoundingBoxAscent,descent:i.actualBoundingBoxDescent,fontSize:i.actualBoundingBoxAscent+i.actualBoundingBoxDescent};return V._fonts[e]=s,s}static clearMetrics(e=""){e?delete V._fonts[e]:V._fonts={}}static get _canvas(){if(!V.__canvas){let e;try{let t=new OffscreenCanvas(0,0);if(t.getContext("2d",Im)?.measureText)return V.__canvas=t,t;e=W.get().createCanvas()}catch{e=W.get().createCanvas()}e.width=e.height=10,V.__canvas=e}return V.__canvas}static get _context(){return V.__context||(V.__context=V._canvas.getContext("2d",Im)),V.__context}};ar.METRICS_STRING="|\xC9q\xC5";ar.BASELINE_SYMBOL="M";ar.BASELINE_MULTIPLIER=1.4;ar.HEIGHT_MULTIPLIER=2;ar.graphemeSegmenter=(()=>{if(typeof Intl?.Segmenter=="function"){let r=new Intl.Segmenter;return e=>{let t=r.segment(e),i=[],s=0;for(let n of t)i[s++]=n.segment;return i}}return r=>[...r]})();ar.experimentalLetterSpacing=!1;ar._fonts={};ar._newlines=[10,13];ar._breakingSpaces=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288];Xe=ar});function nn(r,e,t,i=0){if(r.texture===M.WHITE&&!r.fill)return q.shared.setValue(r.color).setAlpha(r.alpha??1).toHexa();if(r.fill){if(r.fill instanceof kr){let s=r.fill,n=e.createPattern(s.texture.source.resource,"repeat"),o=s.transform.copyTo(R.shared);return o.scale(s.texture.frame.width,s.texture.frame.height),n.setTransform(o),n}else if(r.fill instanceof lt){let s=r.fill,n=s.type==="linear",o=s.textureSpace==="local",a=1,c=1;o&&t&&(a=t.width+i,c=t.height+i);let u,l=!1;if(n){let{start:h,end:f}=s;u=e.createLinearGradient(h.x*a,h.y*c,f.x*a,f.y*c),l=Math.abs(f.x-h.x)<Math.abs((f.y-h.y)*.1)}else{let{center:h,innerRadius:f,outerCenter:d,outerRadius:m}=s;u=e.createRadialGradient(h.x*a,h.y*c,f*a,d.x*a,d.y*c,m*a)}if(l&&o&&t){let h=t.lineHeight/c;for(let f=0;f<t.lines.length;f++){let d=(f*t.lineHeight+i/2)/c;s.colorStops.forEach(m=>{let x=d+m.offset*h;u.addColorStop(Math.floor(x*zT)/zT,q.shared.setValue(m.color).toHex())})}}else s.colorStops.forEach(h=>{u.addColorStop(h.offset,q.shared.setValue(h.color).toHex())});return u}}else{let s=e.createPattern(r.texture.source.resource,"repeat"),n=r.matrix.copyTo(R.shared);return n.scale(r.texture.frame.width,r.texture.frame.height),s.setTransform(n),s}return N("FillStyle not recognised",r),"red"}var zT,Fm=p(()=>{He();te();le();pe();js();fl();zT=1e5});var VT,Um,Ji,Om=p(()=>{He();Ge();rn();LT();sn();Sl();Fm();VT=new Y,Um=class{getCanvasAndContext(e){let{text:t,style:i,resolution:s=1}=e,n=i._getFinalPadding(),o=Xe.measureText(t||" ",i),a=Math.ceil(Math.ceil(Math.max(1,o.width)+n*2)*s),c=Math.ceil(Math.ceil(Math.max(1,o.height)+n*2)*s),u=yt.getOptimalCanvasAndContext(a,c);this._renderTextToCanvas(t,i,n,s,u);let l=i.trim?NT({canvas:u.canvas,width:a,height:c,resolution:1,output:VT}):VT.set(0,0,a,c);return{canvasAndContext:u,frame:l}}returnCanvasAndContext(e){yt.returnCanvasAndContext(e)}_renderTextToCanvas(e,t,i,s,n){let{canvas:o,context:a}=n,c=Zi(t),u=Xe.measureText(e||" ",t),l=u.lines,h=u.lineHeight,f=u.lineWidths,d=u.maxLineWidth,m=u.fontProperties,x=o.height;if(a.resetTransform(),a.scale(s,s),a.textBaseline=t.textBaseline,t._stroke?.width){let S=t._stroke;a.lineWidth=S.width,a.miterLimit=S.miterLimit,a.lineJoin=S.join,a.lineCap=S.cap}a.font=c;let g,_,y=t.dropShadow?2:1;for(let S=0;S<y;++S){let T=t.dropShadow&&S===0,C=T?Math.ceil(Math.max(1,x)+i*2):0,v=C*s;if(T){a.fillStyle="black",a.strokeStyle="black";let A=t.dropShadow,P=A.color,k=A.alpha;a.shadowColor=q.shared.setValue(P).setAlpha(k).toRgbaString();let G=A.blur*s,j=A.distance*s;a.shadowBlur=G,a.shadowOffsetX=Math.cos(A.angle)*j,a.shadowOffsetY=Math.sin(A.angle)*j+v}else{if(a.fillStyle=t._fill?nn(t._fill,a,u):null,t._stroke?.width){let A=t._stroke.width*t._stroke.alignment;a.strokeStyle=nn(t._stroke,a,u,A)}a.shadowColor="black"}let E=(h-m.fontSize)/2;h-m.fontSize<0&&(E=0);let D=t._stroke?.width??0;for(let A=0;A<l.length;A++)g=D/2,_=D/2+A*h+m.ascent+E,t.align==="right"?g+=d-f[A]:t.align==="center"&&(g+=(d-f[A])/2),t._stroke?.width&&this._drawLetterSpacing(l[A],t,n,g+i,_+i-C,!0),t._fill!==void 0&&this._drawLetterSpacing(l[A],t,n,g+i,_+i-C)}}_drawLetterSpacing(e,t,i,s,n,o=!1){let{context:a}=i,c=t.letterSpacing,u=!1;if(Xe.experimentalLetterSpacingSupported&&(Xe.experimentalLetterSpacing?(a.letterSpacing=`${c}px`,a.textLetterSpacing=`${c}px`,u=!0):(a.letterSpacing="0px",a.textLetterSpacing="0px")),c===0||u){o?a.strokeText(e,s,n):a.fillText(e,s,n);return}let l=s,h=Xe.graphemeSegmenter(e),f=a.measureText(e).width,d=0;for(let m=0;m<h.length;++m){let x=h[m];o?a.strokeText(x,l,n):a.fillText(x,l,n);let g="";for(let _=m+1;_<h.length;++_)g+=h[_];d=a.measureText(g).width,l+=f-d+c,f=d}}},Ji=new Um});var jo,HT=p(()=>{B();Hr();Ui();ye();tn();Dm();Om();jo=class{constructor(e){this._renderer=e}getTexture(e,t,i,s){typeof e=="string"&&(z("8.0.0","CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments"),e={text:e,style:i,resolution:t}),e.style instanceof ht||(e.style=new ht(e.style)),e.textureStyle instanceof et||(e.textureStyle=new et(e.textureStyle)),typeof e.text!="string"&&(e.text=e.text.toString());let{text:n,style:o,textureStyle:a}=e,c=e.resolution??this._renderer.resolution,{frame:u,canvasAndContext:l}=Ji.getCanvasAndContext({text:n,style:o,resolution:c}),h=wl(l.canvas,u.width,u.height,c);if(a&&(h.source.style=a),o.trim&&(u.pad(o.padding),h.frame.copyFrom(u),h.updateUvs()),o.filters){let f=this._applyFilters(h,o.filters);return this.returnTexture(h),Ji.returnCanvasAndContext(l),f}return this._renderer.texture.initSource(h._source),Ji.returnCanvasAndContext(l),h}returnTexture(e){let t=e.source;t.resource=null,t.uploadMethodId="unknown",t.alphaMode="no-premultiply-alpha",Te.returnTexture(e,!0)}renderTextToCanvas(){z("8.10.0","CanvasTextSystem.renderTextToCanvas: no longer supported, use CanvasTextSystem.getTexture instead")}_applyFilters(e,t){let i=this._renderer.renderTarget.renderTarget,s=this._renderer.filter.generateFilteredTexture({texture:e,filters:t});return this._renderer.renderTarget.bind(i,!1),s}destroy(){this._renderer=null}};jo.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"canvasText"}});var Gm=p(()=>{B();X2();HT();O.add(jo);O.add(Wo)});var vl,WT=p(()=>{ye();Fu();Bm();vl=class r extends qr{constructor(e){e instanceof bt&&(e={context:e});let{context:t,roundPixels:i,...s}=e||{};super({label:"Graphics",...s}),this.renderPipeId="graphics",t?this._context=t:this._context=this._ownedContext=new bt,this._context.on("update",this.onViewUpdate,this),this.didViewUpdate=!0,this.allowChildren=!1,this.roundPixels=i??!1}set context(e){e!==this._context&&(this._context.off("update",this.onViewUpdate,this),this._context=e,this._context.on("update",this.onViewUpdate,this),this.onViewUpdate())}get context(){return this._context}get bounds(){return this._context.bounds}updateBounds(){}containsPoint(e){return this._context.containsPoint(e)}destroy(e){this._ownedContext&&!e?this._ownedContext.destroy(e):(e===!0||e?.context===!0)&&this._context.destroy(e),this._ownedContext=null,this._context=null,super.destroy(e)}_callContextMethod(e,t){return this.context[e](...t),this}setFillStyle(...e){return this._callContextMethod("setFillStyle",e)}setStrokeStyle(...e){return this._callContextMethod("setStrokeStyle",e)}fill(...e){return this._callContextMethod("fill",e)}stroke(...e){return this._callContextMethod("stroke",e)}texture(...e){return this._callContextMethod("texture",e)}beginPath(){return this._callContextMethod("beginPath",[])}cut(){return this._callContextMethod("cut",[])}arc(...e){return this._callContextMethod("arc",e)}arcTo(...e){return this._callContextMethod("arcTo",e)}arcToSvg(...e){return this._callContextMethod("arcToSvg",e)}bezierCurveTo(...e){return this._callContextMethod("bezierCurveTo",e)}closePath(){return this._callContextMethod("closePath",[])}ellipse(...e){return this._callContextMethod("ellipse",e)}circle(...e){return this._callContextMethod("circle",e)}path(...e){return this._callContextMethod("path",e)}lineTo(...e){return this._callContextMethod("lineTo",e)}moveTo(...e){return this._callContextMethod("moveTo",e)}quadraticCurveTo(...e){return this._callContextMethod("quadraticCurveTo",e)}rect(...e){return this._callContextMethod("rect",e)}roundRect(...e){return this._callContextMethod("roundRect",e)}poly(...e){return this._callContextMethod("poly",e)}regularPoly(...e){return this._callContextMethod("regularPoly",e)}roundPoly(...e){return this._callContextMethod("roundPoly",e)}roundShape(...e){return this._callContextMethod("roundShape",e)}filletRect(...e){return this._callContextMethod("filletRect",e)}chamferRect(...e){return this._callContextMethod("chamferRect",e)}star(...e){return this._callContextMethod("star",e)}svg(...e){return this._callContextMethod("svg",e)}restore(...e){return this._callContextMethod("restore",e)}save(){return this._callContextMethod("save",[])}getTransform(){return this.context.getTransform()}resetTransform(){return this._callContextMethod("resetTransform",[])}rotateTransform(...e){return this._callContextMethod("rotate",e)}scaleTransform(...e){return this._callContextMethod("scale",e)}setTransform(...e){return this._callContextMethod("setTransform",e)}transform(...e){return this._callContextMethod("transform",e)}translateTransform(...e){return this._callContextMethod("translate",e)}clear(){return this._callContextMethod("clear",[])}get fillStyle(){return this._context.fillStyle}set fillStyle(e){this._context.fillStyle=e}get strokeStyle(){return this._context.strokeStyle}set strokeStyle(e){this._context.strokeStyle=e}clone(e=!1){return e?new r(this._context.clone()):(this._ownedContext=null,new r(this._context))}lineStyle(e,t,i){z($,"Graphics#lineStyle is no longer needed. Use Graphics#setStrokeStyle to set the stroke style.");let s={};return e&&(s.width=e),t&&(s.color=t),i&&(s.alpha=i),this.context.strokeStyle=s,this}beginFill(e,t){z($,"Graphics#beginFill is no longer needed. Use Graphics#fill to fill the shape with the desired style.");let i={};return e!==void 0&&(i.color=e),t!==void 0&&(i.alpha=t),this.context.fillStyle=i,this}endFill(){z($,"Graphics#endFill is no longer needed. Use Graphics#fill to fill the shape with the desired style."),this.context.fill();let e=this.context.strokeStyle;return(e.width!==bt.defaultStrokeStyle.width||e.color!==bt.defaultStrokeStyle.color||e.alpha!==bt.defaultStrokeStyle.alpha)&&this.context.stroke(),this}drawCircle(...e){return z($,"Graphics#drawCircle has been renamed to Graphics#circle"),this._callContextMethod("circle",e)}drawEllipse(...e){return z($,"Graphics#drawEllipse has been renamed to Graphics#ellipse"),this._callContextMethod("ellipse",e)}drawPolygon(...e){return z($,"Graphics#drawPolygon has been renamed to Graphics#poly"),this._callContextMethod("poly",e)}drawRect(...e){return z($,"Graphics#drawRect has been renamed to Graphics#rect"),this._callContextMethod("rect",e)}drawRoundedRect(...e){return z($,"Graphics#drawRoundedRect has been renamed to Graphics#roundRect"),this._callContextMethod("roundRect",e)}drawStar(...e){return z($,"Graphics#drawStar has been renamed to Graphics#star"),this._callContextMethod("star",e)}}});var $T,qT,jT=p(()=>{"use strict";$T={name:"local-uniform-msdf-bit",vertex:{header:`
|
|
367
|
+
}`});var ku,_y=p(()=>{He();ee();Ai();bs();Ut();le();bi();my();gy();xy();ku=class extends Ee{constructor(){let e=Ct.from({vertex:py,fragment:fy}),t=Et.from({fragment:{source:Af,entryPoint:"mainFragment"},vertex:{source:Af,entryPoint:"mainVertex"}});super({glProgram:e,gpuProgram:t,resources:{uTexture:D.WHITE.source,uSampler:new Je({}),uniforms:{uTranslationMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new q(16777215),type:"vec4<f32>"},uRound:{value:1,type:"f32"},uResolution:{value:[0,0],type:"vec2<f32>"}}}})}}});var Bs,Pf=p(()=>{ee();rt();io();Ot();Ps();dy();_y();Bs=class{constructor(e,t){this.state=Ae.for2d(),this.localUniforms=new ce({uTranslationMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array(4),type:"vec4<f32>"},uRound:{value:1,type:"f32"},uResolution:{value:[0,0],type:"vec2<f32>"}}),this.renderer=e,this.adaptor=t,this.defaultShader=new ku,this.state=Ae.for2d()}validateRenderable(e){return!1}addRenderable(e,t){this.renderer.renderPipes.batch.break(t),t.add(e)}getBuffers(e){return e._gpuData[this.renderer.uid]||this._initBuffer(e)}_initBuffer(e){return e._gpuData[this.renderer.uid]=new Eu({size:e.particleChildren.length,properties:e._properties}),e._gpuData[this.renderer.uid]}updateRenderable(e){}execute(e){let t=e.particleChildren;if(t.length===0)return;let i=this.renderer,s=this.getBuffers(e);e.texture||(e.texture=t[0].texture);let n=this.state;s.update(t,e._childrenDirty),e._childrenDirty=!1,n.blendMode=Tr(e.blendMode,e.texture._source);let o=this.localUniforms.uniforms,a=o.uTranslationMatrix;e.worldTransform.copyTo(a),a.prepend(i.globalUniforms.globalUniformData.projectionMatrix),o.uResolution=i.globalUniforms.globalUniformData.resolution,o.uRound=i._roundPixels|e._roundPixels,er(e.groupColorAlpha,o.uColor,0),this.adaptor.execute(this,e)}destroy(){this.defaultShader&&(this.defaultShader.destroy(),this.defaultShader=null)}}});var go,by=p(()=>{P();ay();Pf();go=class extends Bs{constructor(e){super(e,new Cu)}};go.extension={type:[b.WebGLPipes],name:"particle"}});var Au,yy=p(()=>{"use strict";Au=class{execute(e,t){let i=e.renderer,s=t.shader||e.defaultShader;s.groups[0]=i.renderPipes.uniformBatch.getUniformBindGroup(e.localUniforms,!0),s.groups[1]=i.texture.getTextureBindGroup(t.texture);let n=e.state,o=e.getBuffers(t);i.encoder.draw({geometry:o.geometry,shader:t.shader||e.defaultShader,state:n,size:t.particleChildren.length*6})}}});var xo,Ty=p(()=>{P();yy();Pf();xo=class extends Bs{constructor(e){super(e,new Au)}};xo.extension={type:[b.WebGPUPipes],name:"particle"}});var Bf=p(()=>{P();by();Ty();O.add(go);O.add(xo)});function _o(r,e){let{texture:t,bounds:i}=r;eu(i,e._anchor,t);let s=e._style._getFinalPadding();i.minX-=s,i.minY-=s,i.maxX-=s,i.maxY-=s}var Rf=p(()=>{Bd()});var tr,bo=p(()=>{"use strict";tr=class{constructor(){this.batcherName="default",this.topology="triangle-list",this.attributeSize=4,this.indexSize=6,this.packAsQuad=!0,this.roundPixels=0,this._attributeStart=0,this._batcher=null,this._batch=null}get blendMode(){return this.renderable.groupBlendMode}get color(){return this.renderable.groupColorAlpha}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.bounds=null}destroy(){}}});var Pu,wy=p(()=>{bo();Pu=class extends tr{constructor(e){super(),this._renderer=e,e.runners.resolutionChange.add(this)}resolutionChange(){let e=this.renderable;e._autoResolution&&e.onViewUpdate()}destroy(){this._renderer.canvasText.returnTexture(this.texture),this._renderer=null}}});var yo,Sy=p(()=>{P();Rf();wy();yo=class{constructor(e){this._renderer=e}validateRenderable(e){return e._didTextUpdate}addRenderable(e,t){let i=this._getGpuText(e);e._didTextUpdate&&(this._updateGpuText(e),e._didTextUpdate=!1),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuText(e);t._batcher.updateElement(t)}_updateGpuText(e){let t=this._getGpuText(e);t.texture&&this._renderer.canvasText.returnTexture(t.texture),e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,t.texture=t.texture=this._renderer.canvasText.getTexture(e),_o(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new Pu(this._renderer);return t.renderable=e,t.transform=e.groupTransform,t.bounds={minX:0,maxX:1,minY:0,maxY:0},t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};yo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"text"}});var vy,vr,Bu=p(()=>{ee();Oe();vy={repeat:{addressModeU:"repeat",addressModeV:"repeat"},"repeat-x":{addressModeU:"repeat",addressModeV:"clamp-to-edge"},"repeat-y":{addressModeU:"clamp-to-edge",addressModeV:"repeat"},"no-repeat":{addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}},vr=class{constructor(e,t){this.uid=K("fillPattern"),this.transform=new R,this._styleKey=null,this.texture=e,this.transform.scale(1/e.frame.width,1/e.frame.height),t&&(e.source.style.addressModeU=vy[t].addressModeU,e.source.style.addressModeV=vy[t].addressModeV)}setTransform(e){let t=this.texture;this.transform.copyFrom(e),this.transform.invert(),this.transform.scale(1/t.frame.width,1/t.frame.height),this._styleKey=null}get styleKey(){return this._styleKey?this._styleKey:(this._styleKey=`fill-pattern-${this.uid}-${this.texture.uid}-${this.transform.toArray().join("-")}`,this._styleKey)}}});var Ey=Or((tW,Cy)=>{Cy.exports=LA;var Df={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},NA=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function LA(r){var e=[];return r.replace(NA,function(t,i,s){var n=i.toLowerCase();for(s=VA(s),n=="m"&&s.length>2&&(e.push([i].concat(s.splice(0,2))),n="l",i=i=="m"?"l":"L");;){if(s.length==Df[n])return s.unshift(i),e.push(s);if(s.length<Df[n])throw new Error("malformed path data");e.push([i].concat(s.splice(0,Df[n])))}}),e}var zA=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function VA(r){var e=r.match(zA);return e?e.map(Number):[]}});function Ay(r,e){let t=(0,ky.default)(r),i=[],s=null,n=0,o=0;for(let a=0;a<t.length;a++){let c=t[a],u=c[0],l=c;switch(u){case"M":n=l[1],o=l[2],e.moveTo(n,o);break;case"m":n+=l[1],o+=l[2],e.moveTo(n,o);break;case"H":n=l[1],e.lineTo(n,o);break;case"h":n+=l[1],e.lineTo(n,o);break;case"V":o=l[1],e.lineTo(n,o);break;case"v":o+=l[1],e.lineTo(n,o);break;case"L":n=l[1],o=l[2],e.lineTo(n,o);break;case"l":n+=l[1],o+=l[2],e.lineTo(n,o);break;case"C":n=l[5],o=l[6],e.bezierCurveTo(l[1],l[2],l[3],l[4],n,o);break;case"c":e.bezierCurveTo(n+l[1],o+l[2],n+l[3],o+l[4],n+l[5],o+l[6]),n+=l[5],o+=l[6];break;case"S":n=l[3],o=l[4],e.bezierCurveToShort(l[1],l[2],n,o);break;case"s":e.bezierCurveToShort(n+l[1],o+l[2],n+l[3],o+l[4]),n+=l[3],o+=l[4];break;case"Q":n=l[3],o=l[4],e.quadraticCurveTo(l[1],l[2],n,o);break;case"q":e.quadraticCurveTo(n+l[1],o+l[2],n+l[3],o+l[4]),n+=l[3],o+=l[4];break;case"T":n=l[1],o=l[2],e.quadraticCurveToShort(n,o);break;case"t":n+=l[1],o+=l[2],e.quadraticCurveToShort(n,o);break;case"A":n=l[6],o=l[7],e.arcToSvg(l[1],l[2],l[3],l[4],l[5],n,o);break;case"a":n+=l[6],o+=l[7],e.arcToSvg(l[1],l[2],l[3],l[4],l[5],n,o);break;case"Z":case"z":e.closePath(),i.length>0&&(s=i.pop(),s?(n=s.startX,o=s.startY):(n=0,o=0)),s=null;break;default:G(`Unknown SVG path command: ${u}`)}u!=="Z"&&u!=="z"&&s===null&&(s={startX:n,startY:o},i.push(s))}return e}var ky,Py=p(()=>{ky=Ah(Ey(),1);ge()});var Ru,By=p(()=>{Ge();Ru=class r{constructor(e=0,t=0,i=0){this.type="circle",this.x=e,this.y=t,this.radius=i}clone(){return new r(this.x,this.y,this.radius)}contains(e,t){if(this.radius<=0)return!1;let i=this.radius*this.radius,s=this.x-e,n=this.y-t;return s*=s,n*=n,s+n<=i}strokeContains(e,t,i,s=.5){if(this.radius===0)return!1;let n=this.x-e,o=this.y-t,a=this.radius,c=(1-s)*i,u=Math.sqrt(n*n+o*o);return u<=a+c&&u>a-(i-c)}getBounds(e){return e||(e=new Y),e.x=this.x-this.radius,e.y=this.y-this.radius,e.width=this.radius*2,e.height=this.radius*2,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.radius=e.radius,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}}});var Du,Ry=p(()=>{Ge();Du=class r{constructor(e=0,t=0,i=0,s=0){this.type="ellipse",this.x=e,this.y=t,this.halfWidth=i,this.halfHeight=s}clone(){return new r(this.x,this.y,this.halfWidth,this.halfHeight)}contains(e,t){if(this.halfWidth<=0||this.halfHeight<=0)return!1;let i=(e-this.x)/this.halfWidth,s=(t-this.y)/this.halfHeight;return i*=i,s*=s,i+s<=1}strokeContains(e,t,i,s=.5){let{halfWidth:n,halfHeight:o}=this;if(n<=0||o<=0)return!1;let a=i*(1-s),c=i-a,u=n-c,l=o-c,h=n+a,f=o+a,d=e-this.x,m=t-this.y,x=d*d/(u*u)+m*m/(l*l),g=d*d/(h*h)+m*m/(f*f);return x>1&&g<=1}getBounds(e){return e||(e=new Y),e.x=this.x-this.halfWidth,e.y=this.y-this.halfHeight,e.width=this.halfWidth*2,e.height=this.halfHeight*2,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.halfWidth=e.halfWidth,this.halfHeight=e.halfHeight,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Ellipse x=${this.x} y=${this.y} halfWidth=${this.halfWidth} halfHeight=${this.halfHeight}]`}}});function Dy(r,e,t,i,s,n){let o=r-t,a=e-i,c=s-t,u=n-i,l=o*c+a*u,h=c*c+u*u,f=-1;h!==0&&(f=l/h);let d,m;f<0?(d=t,m=i):f>1?(d=s,m=n):(d=t+f*c,m=i+f*u);let x=r-d,g=e-m;return x*x+g*g}var My=p(()=>{"use strict"});var HA,WA,Rs,Iy=p(()=>{My();Ge();Rs=class r{constructor(...e){this.type="polygon";let t=Array.isArray(e[0])?e[0]:e;if(typeof t[0]!="number"){let i=[];for(let s=0,n=t.length;s<n;s++)i.push(t[s].x,t[s].y);t=i}this.points=t,this.closePath=!0}isClockwise(){let e=0,t=this.points,i=t.length;for(let s=0;s<i;s+=2){let n=t[s],o=t[s+1],a=t[(s+2)%i],c=t[(s+3)%i];e+=(a-n)*(c+o)}return e<0}containsPolygon(e){let t=this.getBounds(HA),i=e.getBounds(WA);if(!t.containsRect(i))return!1;let s=e.points;for(let n=0;n<s.length;n+=2){let o=s[n],a=s[n+1];if(!this.contains(o,a))return!1}return!0}clone(){let e=this.points.slice(),t=new r(e);return t.closePath=this.closePath,t}contains(e,t){let i=!1,s=this.points.length/2;for(let n=0,o=s-1;n<s;o=n++){let a=this.points[n*2],c=this.points[n*2+1],u=this.points[o*2],l=this.points[o*2+1];c>t!=l>t&&e<(u-a)*((t-c)/(l-c))+a&&(i=!i)}return i}strokeContains(e,t,i,s=.5){let n=i*i,o=n*(1-s),a=n-o,{points:c}=this,u=c.length-(this.closePath?0:2);for(let l=0;l<u;l+=2){let h=c[l],f=c[l+1],d=c[(l+2)%c.length],m=c[(l+3)%c.length],x=Dy(e,t,h,f,d,m),g=Math.sign((d-h)*(t-f)-(m-f)*(e-h));if(x<=(g<0?a:o))return!0}return!1}getBounds(e){e||(e=new Y);let t=this.points,i=1/0,s=-1/0,n=1/0,o=-1/0;for(let a=0,c=t.length;a<c;a+=2){let u=t[a],l=t[a+1];i=u<i?u:i,s=u>s?u:s,n=l<n?l:n,o=l>o?l:o}return e.x=i,e.width=s-i,e.y=n,e.height=o-n,e}copyFrom(e){return this.points=e.points.slice(),this.closePath=e.closePath,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:PolygoncloseStroke=${this.closePath}points=${this.points.reduce((e,t)=>`${e}, ${t}`,"")}]`}get lastX(){return this.points[this.points.length-2]}get lastY(){return this.points[this.points.length-1]}get x(){return this.points[this.points.length-2]}get y(){return this.points[this.points.length-1]}}});var Mu,Iu,Fy=p(()=>{Ge();Mu=(r,e,t,i,s,n,o)=>{let a=r-t,c=e-i,u=Math.sqrt(a*a+c*c);return u>=s-n&&u<=s+o},Iu=class r{constructor(e=0,t=0,i=0,s=0,n=20){this.type="roundedRectangle",this.x=e,this.y=t,this.width=i,this.height=s,this.radius=n}getBounds(e){return e||(e=new Y),e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e}clone(){return new r(this.x,this.y,this.width,this.height,this.radius)}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){if(this.width<=0||this.height<=0)return!1;if(e>=this.x&&e<=this.x+this.width&&t>=this.y&&t<=this.y+this.height){let i=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(t>=this.y+i&&t<=this.y+this.height-i||e>=this.x+i&&e<=this.x+this.width-i)return!0;let s=e-(this.x+i),n=t-(this.y+i),o=i*i;if(s*s+n*n<=o||(s=e-(this.x+this.width-i),s*s+n*n<=o)||(n=t-(this.y+this.height-i),s*s+n*n<=o)||(s=e-(this.x+i),s*s+n*n<=o))return!0}return!1}strokeContains(e,t,i,s=.5){let{x:n,y:o,width:a,height:c,radius:u}=this,l=i*(1-s),h=i-l,f=n+u,d=o+u,m=a-u*2,x=c-u*2,g=n+a,_=o+c;return(e>=n-l&&e<=n+h||e>=g-h&&e<=g+l)&&t>=d&&t<=d+x||(t>=o-l&&t<=o+h||t>=_-h&&t<=_+l)&&e>=f&&e<=f+m?!0:e<f&&t<d&&Mu(e,t,f,d,u,h,l)||e>g-u&&t<d&&Mu(e,t,g-u,d,u,h,l)||e>g-u&&t>_-u&&Mu(e,t,g-u,_-u,u,h,l)||e<f&&t>_-u&&Mu(e,t,f,_-u,u,h,l)}toString(){return`[pixi.js/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}}});function Uu(r,e,t,i,s,n,o,a,c,u){let h=Math.min(.99,Math.max(0,u??As.defaultOptions.bezierSmoothness)),f=(qA-h)/1;return f*=f,jA(e,t,i,s,n,o,a,c,r,f),r}function jA(r,e,t,i,s,n,o,a,c,u){If(r,e,t,i,s,n,o,a,c,u,0),c.push(o,a)}function If(r,e,t,i,s,n,o,a,c,u,l){if(l>$A)return;let h=Math.PI,f=(r+t)/2,d=(e+i)/2,m=(t+s)/2,x=(i+n)/2,g=(s+o)/2,_=(n+a)/2,y=(f+m)/2,S=(d+x)/2,T=(m+g)/2,C=(x+_)/2,v=(y+T)/2,E=(S+C)/2;if(l>0){let M=o-r,A=a-e,B=Math.abs((t-o)*A-(i-a)*M),k=Math.abs((s-o)*A-(n-a)*M),L,j;if(B>Fu&&k>Fu){if((B+k)*(B+k)<=u*(M*M+A*A)){if(Ds<Mf){c.push(v,E);return}let be=Math.atan2(n-i,s-t);if(L=Math.abs(be-Math.atan2(i-e,t-r)),j=Math.abs(Math.atan2(a-n,o-s)-be),L>=h&&(L=2*h-L),j>=h&&(j=2*h-j),L+j<Ds){c.push(v,E);return}if(Mi!==0){if(L>Mi){c.push(t,i);return}if(j>Mi){c.push(s,n);return}}}}else if(B>Fu){if(B*B<=u*(M*M+A*A)){if(Ds<Mf){c.push(v,E);return}if(L=Math.abs(Math.atan2(n-i,s-t)-Math.atan2(i-e,t-r)),L>=h&&(L=2*h-L),L<Ds){c.push(t,i),c.push(s,n);return}if(Mi!==0&&L>Mi){c.push(t,i);return}}}else if(k>Fu){if(k*k<=u*(M*M+A*A)){if(Ds<Mf){c.push(v,E);return}if(L=Math.abs(Math.atan2(a-n,o-s)-Math.atan2(n-i,s-t)),L>=h&&(L=2*h-L),L<Ds){c.push(t,i),c.push(s,n);return}if(Mi!==0&&L>Mi){c.push(s,n);return}}}else if(M=v-(r+o)/2,A=E-(e+a)/2,M*M+A*A<=u){c.push(v,E);return}}If(r,e,f,d,y,S,v,E,c,u,l+1),If(v,E,T,C,g,_,o,a,c,u,l+1)}var $A,Fu,qA,Mf,Ds,Mi,Ff=p(()=>{wu();$A=8,Fu=11920929e-14,qA=1,Mf=.01,Ds=0,Mi=0});function Oy(r,e,t,i,s,n,o,a){let u=Math.min(.99,Math.max(0,a??As.defaultOptions.bezierSmoothness)),l=(KA-u)/1;return l*=l,ZA(e,t,i,s,n,o,r,l),r}function ZA(r,e,t,i,s,n,o,a){Uf(o,r,e,t,i,s,n,a,0),o.push(s,n)}function Uf(r,e,t,i,s,n,o,a,c){if(c>XA)return;let u=Math.PI,l=(e+i)/2,h=(t+s)/2,f=(i+n)/2,d=(s+o)/2,m=(l+f)/2,x=(h+d)/2,g=n-e,_=o-t,y=Math.abs((i-n)*_-(s-o)*g);if(y>YA){if(y*y<=a*(g*g+_*_)){if(Uy<QA){r.push(m,x);return}let S=Math.abs(Math.atan2(o-s,n-i)-Math.atan2(s-t,i-e));if(S>=u&&(S=2*u-S),S<Uy){r.push(m,x);return}}}else if(g=m-(e+n)/2,_=x-(t+o)/2,g*g+_*_<=a){r.push(m,x);return}Uf(r,e,t,l,h,m,x,a,c+1),Uf(r,m,x,f,d,n,o,a,c+1)}var XA,YA,KA,QA,Uy,Gy=p(()=>{wu();XA=8,YA=11920929e-14,KA=1,QA=.01,Uy=0});function Ou(r,e,t,i,s,n,o,a){let c=Math.abs(s-n);(!o&&s>n||o&&n>s)&&(c=2*Math.PI-c),a||(a=Math.max(6,Math.floor(6*Math.pow(i,1/3)*(c/Math.PI)))),a=Math.max(a,3);let u=c/a,l=s;u*=o?-1:1;for(let h=0;h<a+1;h++){let f=Math.cos(l),d=Math.sin(l),m=e+f*i,x=t+d*i;r.push(m,x),l+=u}}var Of=p(()=>{"use strict"});function Ny(r,e,t,i,s,n){let o=r[r.length-2],c=r[r.length-1]-t,u=o-e,l=s-t,h=i-e,f=Math.abs(c*h-u*l);if(f<1e-8||n===0){(r[r.length-2]!==e||r[r.length-1]!==t)&&r.push(e,t);return}let d=c*c+u*u,m=l*l+h*h,x=c*l+u*h,g=n*Math.sqrt(d)/f,_=n*Math.sqrt(m)/f,y=g*x/d,S=_*x/m,T=g*h+_*u,C=g*l+_*c,v=u*(_+y),E=c*(_+y),M=h*(g+S),A=l*(g+S),B=Math.atan2(E-C,v-T),k=Math.atan2(A-C,M-T);Ou(r,T+e,C+t,n,B,k,u*l>h*c)}var Ly=p(()=>{Of()});function JA(r,e){let t=e===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(e/4),i=e===1.5707963267948966?.551915024494:t,s=Math.cos(r),n=Math.sin(r),o=Math.cos(r+e),a=Math.sin(r+e);return[{x:s-n*i,y:n+s*i},{x:o+a*i,y:a-o*i},{x:o,y:a}]}function Vy(r,e,t,i,s,n,o,a=0,c=0,u=0){if(n===0||o===0)return;let l=Math.sin(a*To/360),h=Math.cos(a*To/360),f=h*(e-i)/2+l*(t-s)/2,d=-l*(e-i)/2+h*(t-s)/2;if(f===0&&d===0)return;n=Math.abs(n),o=Math.abs(o);let m=Math.pow(f,2)/Math.pow(n,2)+Math.pow(d,2)/Math.pow(o,2);m>1&&(n*=Math.sqrt(m),o*=Math.sqrt(m)),eP(e,t,i,s,n,o,c,u,l,h,f,d,Gf);let{ang1:x,ang2:g}=Gf,{centerX:_,centerY:y}=Gf,S=Math.abs(g)/(To/4);Math.abs(1-S)<1e-7&&(S=1);let T=Math.max(Math.ceil(S),1);g/=T;let C=r[r.length-2],v=r[r.length-1],E={x:0,y:0};for(let M=0;M<T;M++){let A=JA(x,g),{x:B,y:k}=Nf(A[0],n,o,h,l,_,y,E),{x:L,y:j}=Nf(A[1],n,o,h,l,_,y,E),{x:be,y:wt}=Nf(A[2],n,o,h,l,_,y,E);Uu(r,C,v,B,k,L,j,be,wt),C=be,v=wt,x+=g}}var To,Gf,Nf,zy,eP,Hy=p(()=>{Ff();To=Math.PI*2,Gf={centerX:0,centerY:0,ang1:0,ang2:0},Nf=({x:r,y:e},t,i,s,n,o,a,c)=>{r*=t,e*=i;let u=s*r-n*e,l=n*r+s*e;return c.x=u+o,c.y=l+a,c};zy=(r,e,t,i)=>{let s=r*i-e*t<0?-1:1,n=r*t+e*i;return n>1&&(n=1),n<-1&&(n=-1),s*Math.acos(n)},eP=(r,e,t,i,s,n,o,a,c,u,l,h,f)=>{let d=Math.pow(s,2),m=Math.pow(n,2),x=Math.pow(l,2),g=Math.pow(h,2),_=d*m-d*g-m*x;_<0&&(_=0),_/=d*g+m*x,_=Math.sqrt(_)*(o===a?-1:1);let y=_*s/n*h,S=_*-n/s*l,T=u*y-c*S+(r+t)/2,C=c*y+u*S+(e+i)/2,v=(l-y)/s,E=(h-S)/n,M=(-l-y)/s,A=(-h-S)/n,B=zy(1,0,v,E),k=zy(v,E,M,A);a===0&&k>0&&(k-=To),a===1&&k<0&&(k+=To),f.centerX=T,f.centerY=C,f.ang1=B,f.ang2=k}});function Wy(r,e,t){let i=(o,a)=>{let c=a.x-o.x,u=a.y-o.y,l=Math.sqrt(c*c+u*u),h=c/l,f=u/l;return{len:l,nx:h,ny:f}},s=(o,a)=>{o===0?r.moveTo(a.x,a.y):r.lineTo(a.x,a.y)},n=e[e.length-1];for(let o=0;o<e.length;o++){let a=e[o%e.length],c=a.radius??t;if(c<=0){s(o,a),n=a;continue}let u=e[(o+1)%e.length],l=i(a,n),h=i(a,u);if(l.len<1e-4||h.len<1e-4){s(o,a),n=a;continue}let f=Math.asin(l.nx*h.ny-l.ny*h.nx),d=1,m=!1;l.nx*h.nx-l.ny*-h.ny<0?f<0?f=Math.PI+f:(f=Math.PI-f,d=-1,m=!0):f>0&&(d=-1,m=!0);let x=f/2,g,_=Math.abs(Math.cos(x)*c/Math.sin(x));_>Math.min(l.len/2,h.len/2)?(_=Math.min(l.len/2,h.len/2),g=Math.abs(_*Math.sin(x)/Math.cos(x))):g=c;let y=a.x+h.nx*_+-h.ny*g*d,S=a.y+h.ny*_+h.nx*g*d,T=Math.atan2(l.ny,l.nx)+Math.PI/2*d,C=Math.atan2(h.ny,h.nx)-Math.PI/2*d;o===0&&r.moveTo(y+Math.cos(T)*g,S+Math.sin(T)*g),r.arc(y,S,g,T,C,m),n=a}}function $y(r,e,t,i){let s=(a,c)=>Math.sqrt((a.x-c.x)**2+(a.y-c.y)**2),n=(a,c,u)=>({x:a.x+(c.x-a.x)*u,y:a.y+(c.y-a.y)*u}),o=e.length;for(let a=0;a<o;a++){let c=e[(a+1)%o],u=c.radius??t;if(u<=0){a===0?r.moveTo(c.x,c.y):r.lineTo(c.x,c.y);continue}let l=e[a],h=e[(a+2)%o],f=s(l,c),d;if(f<1e-4)d=c;else{let g=Math.min(f/2,u);d=n(c,l,g/f)}let m=s(h,c),x;if(m<1e-4)x=c;else{let g=Math.min(m/2,u);x=n(c,h,g/m)}a===0?r.moveTo(d.x,d.y):r.lineTo(d.x,d.y),r.quadraticCurveTo(c.x,c.y,x.x,x.y,i)}}var qy=p(()=>{"use strict"});var tP,Gu,jy=p(()=>{By();Ry();Iy();Ge();Fy();ot();Ff();Gy();Of();Ly();Hy();qy();tP=new Y,Gu=class{constructor(e){this.shapePrimitives=[],this._currentPoly=null,this._bounds=new ae,this._graphicsPath2D=e,this.signed=e.checkForHoles}moveTo(e,t){return this.startPoly(e,t),this}lineTo(e,t){this._ensurePoly();let i=this._currentPoly.points,s=i[i.length-2],n=i[i.length-1];return(s!==e||n!==t)&&i.push(e,t),this}arc(e,t,i,s,n,o){this._ensurePoly(!1);let a=this._currentPoly.points;return Ou(a,e,t,i,s,n,o),this}arcTo(e,t,i,s,n){this._ensurePoly();let o=this._currentPoly.points;return Ny(o,e,t,i,s,n),this}arcToSvg(e,t,i,s,n,o,a){let c=this._currentPoly.points;return Vy(c,this._currentPoly.lastX,this._currentPoly.lastY,o,a,e,t,i,s,n),this}bezierCurveTo(e,t,i,s,n,o,a){this._ensurePoly();let c=this._currentPoly;return Uu(this._currentPoly.points,c.lastX,c.lastY,e,t,i,s,n,o,a),this}quadraticCurveTo(e,t,i,s,n){this._ensurePoly();let o=this._currentPoly;return Oy(this._currentPoly.points,o.lastX,o.lastY,e,t,i,s,n),this}closePath(){return this.endPoly(!0),this}addPath(e,t){this.endPoly(),t&&!t.isIdentity()&&(e=e.clone(!0),e.transform(t));let i=this.shapePrimitives,s=i.length;for(let n=0;n<e.instructions.length;n++){let o=e.instructions[n];this[o.action](...o.data)}if(e.checkForHoles&&i.length-s>1){let n=null;for(let o=s;o<i.length;o++){let a=i[o];if(a.shape.type==="polygon"){let c=a.shape,u=n?.shape;u&&u.containsPolygon(c)?(n.holes||(n.holes=[]),n.holes.push(a),i.copyWithin(o,o+1),i.length--,o--):n=a}}}return this}finish(e=!1){this.endPoly(e)}rect(e,t,i,s,n){return this.drawShape(new Y(e,t,i,s),n),this}circle(e,t,i,s){return this.drawShape(new Ru(e,t,i),s),this}poly(e,t,i){let s=new Rs(e);return s.closePath=t,this.drawShape(s,i),this}regularPoly(e,t,i,s,n=0,o){s=Math.max(s|0,3);let a=-1*Math.PI/2+n,c=Math.PI*2/s,u=[];for(let l=0;l<s;l++){let h=a-l*c;u.push(e+i*Math.cos(h),t+i*Math.sin(h))}return this.poly(u,!0,o),this}roundPoly(e,t,i,s,n,o=0,a){if(s=Math.max(s|0,3),n<=0)return this.regularPoly(e,t,i,s,o);let c=i*Math.sin(Math.PI/s)-.001;n=Math.min(n,c);let u=-1*Math.PI/2+o,l=Math.PI*2/s,h=(s-2)*Math.PI/s/2;for(let f=0;f<s;f++){let d=f*l+u,m=e+i*Math.cos(d),x=t+i*Math.sin(d),g=d+Math.PI+h,_=d-Math.PI-h,y=m+n*Math.cos(g),S=x+n*Math.sin(g),T=m+n*Math.cos(_),C=x+n*Math.sin(_);f===0?this.moveTo(y,S):this.lineTo(y,S),this.quadraticCurveTo(m,x,T,C,a)}return this.closePath()}roundShape(e,t,i=!1,s){return e.length<3?this:(i?$y(this,e,t,s):Wy(this,e,t),this.closePath())}filletRect(e,t,i,s,n){if(n===0)return this.rect(e,t,i,s);let o=Math.min(i,s)/2,a=Math.min(o,Math.max(-o,n)),c=e+i,u=t+s,l=a<0?-a:0,h=Math.abs(a);return this.moveTo(e,t+h).arcTo(e+l,t+l,e+h,t,h).lineTo(c-h,t).arcTo(c-l,t+l,c,t+h,h).lineTo(c,u-h).arcTo(c-l,u-l,e+i-h,u,h).lineTo(e+h,u).arcTo(e+l,u-l,e,u-h,h).closePath()}chamferRect(e,t,i,s,n,o){if(n<=0)return this.rect(e,t,i,s);let a=Math.min(n,Math.min(i,s)/2),c=e+i,u=t+s,l=[e+a,t,c-a,t,c,t+a,c,u-a,c-a,u,e+a,u,e,u-a,e,t+a];for(let h=l.length-1;h>=2;h-=2)l[h]===l[h-2]&&l[h-1]===l[h-3]&&l.splice(h-1,2);return this.poly(l,!0,o)}ellipse(e,t,i,s,n){return this.drawShape(new Du(e,t,i,s),n),this}roundRect(e,t,i,s,n,o){return this.drawShape(new Iu(e,t,i,s,n),o),this}drawShape(e,t){return this.endPoly(),this.shapePrimitives.push({shape:e,transform:t}),this}startPoly(e,t){let i=this._currentPoly;return i&&this.endPoly(),i=new Rs,i.points.push(e,t),this._currentPoly=i,this}endPoly(e=!1){let t=this._currentPoly;return t&&t.points.length>2&&(t.closePath=e,this.shapePrimitives.push({shape:t})),this._currentPoly=null,this}_ensurePoly(e=!0){if(!this._currentPoly&&(this._currentPoly=new Rs,e)){let t=this.shapePrimitives[this.shapePrimitives.length-1];if(t){let i=t.shape.x,s=t.shape.y;if(t.transform&&!t.transform.isIdentity()){let n=t.transform,o=i;i=n.a*i+n.c*s+n.tx,s=n.b*o+n.d*s+n.ty}this._currentPoly.points.push(i,s)}else this._currentPoly.points.push(0,0)}}buildPath(){let e=this._graphicsPath2D;this.shapePrimitives.length=0,this._currentPoly=null;for(let t=0;t<e.instructions.length;t++){let i=e.instructions[t];this[i.action](...i.data)}this.finish()}get bounds(){let e=this._bounds;e.clear();let t=this.shapePrimitives;for(let i=0;i<t.length;i++){let s=t[i],n=s.shape.getBounds(tP);s.transform?e.addRect(n,s.transform):e.addRect(n)}return e}}});function wo(r,e){return r?r.prepend(e):e.clone()}var Qr,Lf=p(()=>{It();Oe();ge();Py();jy();Qr=class r{constructor(e,t=!1){this.instructions=[],this.uid=K("graphicsPath"),this._dirty=!0,this.checkForHoles=t,typeof e=="string"?Ay(e,this):this.instructions=e?.slice()??[]}get shapePath(){return this._shapePath||(this._shapePath=new Gu(this)),this._dirty&&(this._dirty=!1,this._shapePath.buildPath()),this._shapePath}addPath(e,t){return e=e.clone(),this.instructions.push({action:"addPath",data:[e,t]}),this._dirty=!0,this}arc(...e){return this.instructions.push({action:"arc",data:e}),this._dirty=!0,this}arcTo(...e){return this.instructions.push({action:"arcTo",data:e}),this._dirty=!0,this}arcToSvg(...e){return this.instructions.push({action:"arcToSvg",data:e}),this._dirty=!0,this}bezierCurveTo(...e){return this.instructions.push({action:"bezierCurveTo",data:e}),this._dirty=!0,this}bezierCurveToShort(e,t,i,s,n){let o=this.instructions[this.instructions.length-1],a=this.getLastPoint(Z.shared),c=0,u=0;if(!o||o.action!=="bezierCurveTo")c=a.x,u=a.y;else{c=o.data[2],u=o.data[3];let l=a.x,h=a.y;c=l+(l-c),u=h+(h-u)}return this.instructions.push({action:"bezierCurveTo",data:[c,u,e,t,i,s,n]}),this._dirty=!0,this}closePath(){return this.instructions.push({action:"closePath",data:[]}),this._dirty=!0,this}ellipse(...e){return this.instructions.push({action:"ellipse",data:e}),this._dirty=!0,this}lineTo(...e){return this.instructions.push({action:"lineTo",data:e}),this._dirty=!0,this}moveTo(...e){return this.instructions.push({action:"moveTo",data:e}),this}quadraticCurveTo(...e){return this.instructions.push({action:"quadraticCurveTo",data:e}),this._dirty=!0,this}quadraticCurveToShort(e,t,i){let s=this.instructions[this.instructions.length-1],n=this.getLastPoint(Z.shared),o=0,a=0;if(!s||s.action!=="quadraticCurveTo")o=n.x,a=n.y;else{o=s.data[0],a=s.data[1];let c=n.x,u=n.y;o=c+(c-o),a=u+(u-a)}return this.instructions.push({action:"quadraticCurveTo",data:[o,a,e,t,i]}),this._dirty=!0,this}rect(e,t,i,s,n){return this.instructions.push({action:"rect",data:[e,t,i,s,n]}),this._dirty=!0,this}circle(e,t,i,s){return this.instructions.push({action:"circle",data:[e,t,i,s]}),this._dirty=!0,this}roundRect(...e){return this.instructions.push({action:"roundRect",data:e}),this._dirty=!0,this}poly(...e){return this.instructions.push({action:"poly",data:e}),this._dirty=!0,this}regularPoly(...e){return this.instructions.push({action:"regularPoly",data:e}),this._dirty=!0,this}roundPoly(...e){return this.instructions.push({action:"roundPoly",data:e}),this._dirty=!0,this}roundShape(...e){return this.instructions.push({action:"roundShape",data:e}),this._dirty=!0,this}filletRect(...e){return this.instructions.push({action:"filletRect",data:e}),this._dirty=!0,this}chamferRect(...e){return this.instructions.push({action:"chamferRect",data:e}),this._dirty=!0,this}star(e,t,i,s,n,o,a){n||(n=s/2);let c=-1*Math.PI/2+o,u=i*2,l=Math.PI*2/u,h=[];for(let f=0;f<u;f++){let d=f%2?n:s,m=f*l+c;h.push(e+d*Math.cos(m),t+d*Math.sin(m))}return this.poly(h,!0,a),this}clone(e=!1){let t=new r;if(t.checkForHoles=this.checkForHoles,!e)t.instructions=this.instructions.slice();else for(let i=0;i<this.instructions.length;i++){let s=this.instructions[i];t.instructions.push({action:s.action,data:s.data.slice()})}return t}clear(){return this.instructions.length=0,this._dirty=!0,this}transform(e){if(e.isIdentity())return this;let t=e.a,i=e.b,s=e.c,n=e.d,o=e.tx,a=e.ty,c=0,u=0,l=0,h=0,f=0,d=0,m=0,x=0;for(let g=0;g<this.instructions.length;g++){let _=this.instructions[g],y=_.data;switch(_.action){case"moveTo":case"lineTo":c=y[0],u=y[1],y[0]=t*c+s*u+o,y[1]=i*c+n*u+a;break;case"bezierCurveTo":l=y[0],h=y[1],f=y[2],d=y[3],c=y[4],u=y[5],y[0]=t*l+s*h+o,y[1]=i*l+n*h+a,y[2]=t*f+s*d+o,y[3]=i*f+n*d+a,y[4]=t*c+s*u+o,y[5]=i*c+n*u+a;break;case"quadraticCurveTo":l=y[0],h=y[1],c=y[2],u=y[3],y[0]=t*l+s*h+o,y[1]=i*l+n*h+a,y[2]=t*c+s*u+o,y[3]=i*c+n*u+a;break;case"arcToSvg":c=y[5],u=y[6],m=y[0],x=y[1],y[0]=t*m+s*x,y[1]=i*m+n*x,y[5]=t*c+s*u+o,y[6]=i*c+n*u+a;break;case"circle":y[4]=wo(y[3],e);break;case"rect":y[4]=wo(y[4],e);break;case"ellipse":y[8]=wo(y[8],e);break;case"roundRect":y[5]=wo(y[5],e);break;case"addPath":y[0].transform(e);break;case"poly":y[2]=wo(y[2],e);break;default:G("unknown transform action",_.action);break}}return this._dirty=!0,this}get bounds(){return this.shapePath.bounds}getLastPoint(e){let t=this.instructions.length-1,i=this.instructions[t];if(!i)return e.x=0,e.y=0,e;for(;i.action==="closePath";){if(t--,t<0)return e.x=0,e.y=0,e;i=this.instructions[t]}switch(i.action){case"moveTo":case"lineTo":e.x=i.data[0],e.y=i.data[1];break;case"quadraticCurveTo":e.x=i.data[2],e.y=i.data[3];break;case"bezierCurveTo":e.x=i.data[4],e.y=i.data[5];break;case"arc":case"arcToSvg":e.x=i.data[5],e.y=i.data[6];break;case"addPath":i.data[0].getLastPoint(e);break}return e}}});function _e(r,e,t){let i=r.getAttribute(e);return i?Number(i):t}var zf=p(()=>{"use strict"});function Xy(r,e){let t=r.querySelectorAll("defs");for(let i=0;i<t.length;i++){let s=t[i];for(let n=0;n<s.children.length;n++){let o=s.children[n];switch(o.nodeName.toLowerCase()){case"lineargradient":e.defs[o.id]=rP(o);break;case"radialgradient":e.defs[o.id]=iP(o);break;default:break}}}}function rP(r){let e=_e(r,"x1",0),t=_e(r,"y1",0),i=_e(r,"x2",1),s=_e(r,"y2",0),n=r.getAttribute("gradientUnits")||"objectBoundingBox",o=new ut(e,t,i,s,n==="objectBoundingBox"?"local":"global");for(let a=0;a<r.children.length;a++){let c=r.children[a],u=_e(c,"offset",0),l=q.shared.setValue(c.getAttribute("stop-color")).toNumber();o.addColorStop(u,l)}return o}function iP(r){return G("[SVG Parser] Radial gradients are not yet supported"),new ut(0,0,1,0)}var Yy=p(()=>{He();ge();ks();zf()});function Vf(r){let e=r.match(/url\s*\(\s*['"]?\s*#([^'"\s)]+)\s*['"]?\s*\)/i);return e?e[1]:""}var Ky=p(()=>{"use strict"});function Hf(r,e){let t=r.getAttribute("style"),i={},s={},n={strokeStyle:i,fillStyle:s,useFill:!1,useStroke:!1};for(let o in Qy){let a=r.getAttribute(o);a&&Zy(e,n,o,a.trim())}if(t){let o=t.split(";");for(let a=0;a<o.length;a++){let c=o[a].trim(),[u,l]=c.split(":");Qy[u]&&Zy(e,n,u,l.trim())}}return{strokeStyle:n.useStroke?i:null,fillStyle:n.useFill?s:null,useFill:n.useFill,useStroke:n.useStroke}}function Zy(r,e,t,i){switch(t){case"stroke":if(i!=="none"){if(i.startsWith("url(")){let s=Vf(i);e.strokeStyle.fill=r.defs[s]}else e.strokeStyle.color=q.shared.setValue(i).toNumber();e.useStroke=!0}break;case"stroke-width":e.strokeStyle.width=Number(i);break;case"fill":if(i!=="none"){if(i.startsWith("url(")){let s=Vf(i);e.fillStyle.fill=r.defs[s]}else e.fillStyle.color=q.shared.setValue(i).toNumber();e.useFill=!0}break;case"fill-opacity":e.fillStyle.alpha=Number(i);break;case"stroke-opacity":e.strokeStyle.alpha=Number(i);break;case"opacity":e.fillStyle.alpha=Number(i),e.strokeStyle.alpha=Number(i);break}}var Qy,Jy=p(()=>{He();Ky();Qy={fill:{type:"paint",default:0},"fill-opacity":{type:"number",default:1},stroke:{type:"paint",default:0},"stroke-width":{type:"number",default:1},"stroke-opacity":{type:"number",default:1},"stroke-linecap":{type:"string",default:"butt"},"stroke-linejoin":{type:"string",default:"miter"},"stroke-miterlimit":{type:"number",default:10},"stroke-dasharray":{type:"string",default:"none"},"stroke-dashoffset":{type:"number",default:0},opacity:{type:"number",default:1}}});function e2(r,e){if(typeof r=="string"){let o=document.createElement("div");o.innerHTML=r.trim(),r=o.querySelector("svg")}let t={context:e,defs:{},path:new Qr};Xy(r,t);let i=r.children,{fillStyle:s,strokeStyle:n}=Hf(r,t);for(let o=0;o<i.length;o++){let a=i[o];a.nodeName.toLowerCase()!=="defs"&&t2(a,t,s,n)}return e}function t2(r,e,t,i){let s=r.children,{fillStyle:n,strokeStyle:o}=Hf(r,e);n&&t?t={...t,...n}:n&&(t=n),o&&i?i={...i,...o}:o&&(i=o);let a=!t&&!i;a&&(t={color:0});let c,u,l,h,f,d,m,x,g,_,y,S,T,C,v,E,M;switch(r.nodeName.toLowerCase()){case"path":C=r.getAttribute("d"),r.getAttribute("fill-rule")==="evenodd"&&G("SVG Evenodd fill rule not supported, your svg may render incorrectly"),v=new Qr(C,!0),e.context.path(v),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"circle":m=_e(r,"cx",0),x=_e(r,"cy",0),g=_e(r,"r",0),e.context.ellipse(m,x,g,g),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"rect":c=_e(r,"x",0),u=_e(r,"y",0),E=_e(r,"width",0),M=_e(r,"height",0),_=_e(r,"rx",0),y=_e(r,"ry",0),_||y?e.context.roundRect(c,u,E,M,_||y):e.context.rect(c,u,E,M),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"ellipse":m=_e(r,"cx",0),x=_e(r,"cy",0),_=_e(r,"rx",0),y=_e(r,"ry",0),e.context.beginPath(),e.context.ellipse(m,x,_,y),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"line":l=_e(r,"x1",0),h=_e(r,"y1",0),f=_e(r,"x2",0),d=_e(r,"y2",0),e.context.beginPath(),e.context.moveTo(l,h),e.context.lineTo(f,d),i&&e.context.stroke(i);break;case"polygon":T=r.getAttribute("points"),S=T.match(/\d+/g).map(A=>parseInt(A,10)),e.context.poly(S,!0),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"polyline":T=r.getAttribute("points"),S=T.match(/\d+/g).map(A=>parseInt(A,10)),e.context.poly(S,!1),i&&e.context.stroke(i);break;case"g":case"svg":break;default:{G(`[SVG parser] <${r.nodeName}> elements unsupported`);break}}a&&(t=null);for(let A=0;A<s.length;A++)t2(s[A],e,t,i)}var r2=p(()=>{ge();Lf();Yy();zf();Jy()});function sP(r){return q.isColorLike(r)}function i2(r){return r instanceof vr}function s2(r){return r instanceof ut}function nP(r){return r instanceof D}function oP(r,e,t){let i=q.shared.setValue(e??0);return r.color=i.toNumber(),r.alpha=i.alpha===1?t.alpha:i.alpha,r.texture=D.WHITE,{...t,...r}}function aP(r,e,t){return r.texture=e,{...t,...r}}function n2(r,e,t){return r.fill=e,r.color=16777215,r.texture=e.texture,r.matrix=e.transform,{...t,...r}}function o2(r,e,t){return e.buildGradient(),r.fill=e,r.color=16777215,r.texture=e.texture,r.matrix=e.transform,r.textureSpace=e.textureSpace,{...t,...r}}function cP(r,e){let t={...e,...r},i=q.shared.setValue(t.color);return t.alpha*=i.alpha,t.color=i.toNumber(),t}function Cr(r,e){if(r==null)return null;let t={},i=r;return sP(r)?oP(t,r,e):nP(r)?aP(t,r,e):i2(r)?n2(t,r,e):s2(r)?o2(t,r,e):i.fill&&i2(i.fill)?n2(i,i.fill,e):i.fill&&s2(i.fill)?o2(i,i.fill,e):cP(i,e)}function Ms(r,e){let{width:t,alignment:i,miterLimit:s,cap:n,join:o,pixelLine:a,...c}=e,u=Cr(r,c);return u?{width:t,alignment:i,miterLimit:s,cap:n,join:o,pixelLine:a,...u}:null}var Wf=p(()=>{He();le();ks();Bu()});var uP,a2,$f,_t,qf=p(()=>{Ve();He();ee();It();le();Oe();ye();ot();Lf();r2();Wf();uP=new Z,a2=new R,$f=class rr extends oe{constructor(){super(...arguments),this.uid=K("graphicsContext"),this.dirty=!0,this.batchMode="auto",this.instructions=[],this._activePath=new Qr,this._transform=new R,this._fillStyle={...rr.defaultFillStyle},this._strokeStyle={...rr.defaultStrokeStyle},this._stateStack=[],this._tick=0,this._bounds=new ae,this._boundsDirty=!0}clone(){let e=new rr;return e.batchMode=this.batchMode,e.instructions=this.instructions.slice(),e._activePath=this._activePath.clone(),e._transform=this._transform.clone(),e._fillStyle={...this._fillStyle},e._strokeStyle={...this._strokeStyle},e._stateStack=this._stateStack.slice(),e._bounds=this._bounds.clone(),e._boundsDirty=!0,e}get fillStyle(){return this._fillStyle}set fillStyle(e){this._fillStyle=Cr(e,rr.defaultFillStyle)}get strokeStyle(){return this._strokeStyle}set strokeStyle(e){this._strokeStyle=Ms(e,rr.defaultStrokeStyle)}setFillStyle(e){return this._fillStyle=Cr(e,rr.defaultFillStyle),this}setStrokeStyle(e){return this._strokeStyle=Cr(e,rr.defaultStrokeStyle),this}texture(e,t,i,s,n,o){return this.instructions.push({action:"texture",data:{image:e,dx:i||0,dy:s||0,dw:n||e.frame.width,dh:o||e.frame.height,transform:this._transform.clone(),alpha:this._fillStyle.alpha,style:t?q.shared.setValue(t).toNumber():16777215}}),this.onUpdate(),this}beginPath(){return this._activePath=new Qr,this}fill(e,t){let i,s=this.instructions[this.instructions.length-1];return this._tick===0&&s&&s.action==="stroke"?i=s.data.path:i=this._activePath.clone(),i?(e!=null&&(t!==void 0&&typeof e=="number"&&(z($,"GraphicsContext.fill(color, alpha) is deprecated, use GraphicsContext.fill({ color, alpha }) instead"),e={color:e,alpha:t}),this._fillStyle=Cr(e,rr.defaultFillStyle)),this.instructions.push({action:"fill",data:{style:this.fillStyle,path:i}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}_initNextPathLocation(){let{x:e,y:t}=this._activePath.getLastPoint(Z.shared);this._activePath.clear(),this._activePath.moveTo(e,t)}stroke(e){let t,i=this.instructions[this.instructions.length-1];return this._tick===0&&i&&i.action==="fill"?t=i.data.path:t=this._activePath.clone(),t?(e!=null&&(this._strokeStyle=Ms(e,rr.defaultStrokeStyle)),this.instructions.push({action:"stroke",data:{style:this.strokeStyle,path:t}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}cut(){for(let e=0;e<2;e++){let t=this.instructions[this.instructions.length-1-e],i=this._activePath.clone();if(t&&(t.action==="stroke"||t.action==="fill"))if(t.data.hole)t.data.hole.addPath(i);else{t.data.hole=i;break}}return this._initNextPathLocation(),this}arc(e,t,i,s,n,o){this._tick++;let a=this._transform;return this._activePath.arc(a.a*e+a.c*t+a.tx,a.b*e+a.d*t+a.ty,i,s,n,o),this}arcTo(e,t,i,s,n){this._tick++;let o=this._transform;return this._activePath.arcTo(o.a*e+o.c*t+o.tx,o.b*e+o.d*t+o.ty,o.a*i+o.c*s+o.tx,o.b*i+o.d*s+o.ty,n),this}arcToSvg(e,t,i,s,n,o,a){this._tick++;let c=this._transform;return this._activePath.arcToSvg(e,t,i,s,n,c.a*o+c.c*a+c.tx,c.b*o+c.d*a+c.ty),this}bezierCurveTo(e,t,i,s,n,o,a){this._tick++;let c=this._transform;return this._activePath.bezierCurveTo(c.a*e+c.c*t+c.tx,c.b*e+c.d*t+c.ty,c.a*i+c.c*s+c.tx,c.b*i+c.d*s+c.ty,c.a*n+c.c*o+c.tx,c.b*n+c.d*o+c.ty,a),this}closePath(){return this._tick++,this._activePath?.closePath(),this}ellipse(e,t,i,s){return this._tick++,this._activePath.ellipse(e,t,i,s,this._transform.clone()),this}circle(e,t,i){return this._tick++,this._activePath.circle(e,t,i,this._transform.clone()),this}path(e){return this._tick++,this._activePath.addPath(e,this._transform.clone()),this}lineTo(e,t){this._tick++;let i=this._transform;return this._activePath.lineTo(i.a*e+i.c*t+i.tx,i.b*e+i.d*t+i.ty),this}moveTo(e,t){this._tick++;let i=this._transform,s=this._activePath.instructions,n=i.a*e+i.c*t+i.tx,o=i.b*e+i.d*t+i.ty;return s.length===1&&s[0].action==="moveTo"?(s[0].data[0]=n,s[0].data[1]=o,this):(this._activePath.moveTo(n,o),this)}quadraticCurveTo(e,t,i,s,n){this._tick++;let o=this._transform;return this._activePath.quadraticCurveTo(o.a*e+o.c*t+o.tx,o.b*e+o.d*t+o.ty,o.a*i+o.c*s+o.tx,o.b*i+o.d*s+o.ty,n),this}rect(e,t,i,s){return this._tick++,this._activePath.rect(e,t,i,s,this._transform.clone()),this}roundRect(e,t,i,s,n){return this._tick++,this._activePath.roundRect(e,t,i,s,n,this._transform.clone()),this}poly(e,t){return this._tick++,this._activePath.poly(e,t,this._transform.clone()),this}regularPoly(e,t,i,s,n=0,o){return this._tick++,this._activePath.regularPoly(e,t,i,s,n,o),this}roundPoly(e,t,i,s,n,o){return this._tick++,this._activePath.roundPoly(e,t,i,s,n,o),this}roundShape(e,t,i,s){return this._tick++,this._activePath.roundShape(e,t,i,s),this}filletRect(e,t,i,s,n){return this._tick++,this._activePath.filletRect(e,t,i,s,n),this}chamferRect(e,t,i,s,n,o){return this._tick++,this._activePath.chamferRect(e,t,i,s,n,o),this}star(e,t,i,s,n=0,o=0){return this._tick++,this._activePath.star(e,t,i,s,n,o,this._transform.clone()),this}svg(e){return this._tick++,e2(e,this),this}restore(){let e=this._stateStack.pop();return e&&(this._transform=e.transform,this._fillStyle=e.fillStyle,this._strokeStyle=e.strokeStyle),this}save(){return this._stateStack.push({transform:this._transform.clone(),fillStyle:{...this._fillStyle},strokeStyle:{...this._strokeStyle}}),this}getTransform(){return this._transform}resetTransform(){return this._transform.identity(),this}rotate(e){return this._transform.rotate(e),this}scale(e,t=e){return this._transform.scale(e,t),this}setTransform(e,t,i,s,n,o){return e instanceof R?(this._transform.set(e.a,e.b,e.c,e.d,e.tx,e.ty),this):(this._transform.set(e,t,i,s,n,o),this)}transform(e,t,i,s,n,o){return e instanceof R?(this._transform.append(e),this):(a2.set(e,t,i,s,n,o),this._transform.append(a2),this)}translate(e,t=e){return this._transform.translate(e,t),this}clear(){return this._activePath.clear(),this.instructions.length=0,this.resetTransform(),this.onUpdate(),this}onUpdate(){this.dirty||(this.emit("update",this,16),this.dirty=!0,this._boundsDirty=!0)}get bounds(){if(!this._boundsDirty)return this._bounds;let e=this._bounds;e.clear();for(let t=0;t<this.instructions.length;t++){let i=this.instructions[t],s=i.action;if(s==="fill"){let n=i.data;e.addBounds(n.path.bounds)}else if(s==="texture"){let n=i.data;e.addFrame(n.dx,n.dy,n.dx+n.dw,n.dy+n.dh,n.transform)}if(s==="stroke"){let n=i.data,o=n.style.alignment,a=n.style.width*(1-o),c=n.path.bounds;e.addFrame(c.minX-a,c.minY-a,c.maxX+a,c.maxY+a)}}return e}containsPoint(e){if(!this.bounds.containsPoint(e.x,e.y))return!1;let t=this.instructions,i=!1;for(let s=0;s<t.length;s++){let n=t[s],o=n.data,a=o.path;if(!n.action||!a)continue;let c=o.style,u=a.shapePath.shapePrimitives;for(let l=0;l<u.length;l++){let h=u[l].shape;if(!c||!h)continue;let f=u[l].transform,d=f?f.applyInverse(e,uP):e;if(n.action==="fill")i=h.contains(d.x,d.y);else{let x=c;i=h.strokeContains(d.x,d.y,x.width,x.alignment)}let m=o.hole;if(m){let x=m.shapePath?.shapePrimitives;if(x)for(let g=0;g<x.length;g++)x[g].shape.contains(d.x,d.y)&&(i=!1)}if(i)return!0}}return i}destroy(e=!1){if(this._stateStack.length=0,this._transform=null,this.emit("destroy",this),this.removeAllListeners(),typeof e=="boolean"?e:e?.texture){let i=typeof e=="boolean"?e:e?.textureSource;this._fillStyle.texture&&this._fillStyle.texture.destroy(i),this._strokeStyle.texture&&this._strokeStyle.texture.destroy(i)}this._fillStyle=null,this._strokeStyle=null,this.instructions=null,this._activePath=null,this._bounds=null,this._stateStack=null,this.customShader=null,this._transform=null}};$f.defaultFillStyle={color:16777215,alpha:1,texture:D.WHITE,matrix:null,fill:null,textureSpace:"local"};$f.defaultStrokeStyle={width:1,color:16777215,alpha:1,alignment:.5,miterLimit:10,cap:"butt",join:"miter",texture:D.WHITE,matrix:null,fill:null,textureSpace:"local",pixelLine:!1};_t=$f});function u2(r){let e=[],t=0;for(let i=0;i<c2.length;i++){let s=`_${c2[i]}`;e[t++]=r[s]}return t=l2(r._fill,e,t),t=hP(r._stroke,e,t),t=dP(r.dropShadow,e,t),t=lP(r.filters,e,t),e.join("-")}function lP(r,e,t){if(!r)return t;for(let i of r)e[t++]=i.uid;return t}function l2(r,e,t){return r&&(e[t++]=r.color,e[t++]=r.alpha,e[t++]=r.fill?.styleKey),t}function hP(r,e,t){return r&&(t=l2(r,e,t),e[t++]=r.width,e[t++]=r.alignment,e[t++]=r.cap,e[t++]=r.join,e[t++]=r.miterLimit),t}function dP(r,e,t){return r&&(e[t++]=r.alpha,e[t++]=r.angle,e[t++]=r.blur,e[t++]=r.distance,e[t++]=q.shared.setValue(r.color).toNumber()),t}var c2,h2=p(()=>{He();c2=["align","breakWords","cssOverrides","fontVariant","fontWeight","leading","letterSpacing","lineHeight","padding","textBaseline","trim","whiteSpace","wordWrap","wordWrapWidth","fontFamily","fontStyle","fontSize"]});function fP(r){let e=r;if(typeof e.dropShadow=="boolean"&&e.dropShadow){let t=lt.defaultDropShadow;r.dropShadow={alpha:e.dropShadowAlpha??t.alpha,angle:e.dropShadowAngle??t.angle,blur:e.dropShadowBlur??t.blur,color:e.dropShadowColor??t.color,distance:e.dropShadowDistance??t.distance}}if(e.strokeThickness!==void 0){z($,"strokeThickness is now a part of stroke");let t=e.stroke,i={};if(q.isColorLike(t))i.color=t;else if(t instanceof ut||t instanceof vr)i.fill=t;else if(Object.hasOwnProperty.call(t,"color")||Object.hasOwnProperty.call(t,"fill"))i=t;else throw new Error("Invalid stroke value.");r.stroke={...i,width:e.strokeThickness}}if(Array.isArray(e.fillGradientStops)){z($,"gradient fill is now a fill pattern: `new FillGradient(...)`");let t;r.fontSize==null?r.fontSize=lt.defaultTextStyle.fontSize:typeof r.fontSize=="string"?t=parseInt(r.fontSize,10):t=r.fontSize;let i=new ut({start:{x:0,y:0},end:{x:0,y:(t||0)*1.7}}),s=e.fillGradientStops.map(n=>q.shared.setValue(n).toNumber());s.forEach((n,o)=>{let a=o/(s.length-1);i.addColorStop(a,n)}),r.fill={fill:i}}}var jf,lt,Fs=p(()=>{Ve();He();ye();ks();Bu();qf();Wf();h2();jf=class Is extends oe{constructor(e={}){super(),fP(e);let t={...Is.defaultTextStyle,...e};for(let i in t){let s=i;this[s]=t[i]}this.update()}get align(){return this._align}set align(e){this._align=e,this.update()}get breakWords(){return this._breakWords}set breakWords(e){this._breakWords=e,this.update()}get dropShadow(){return this._dropShadow}set dropShadow(e){e!==null&&typeof e=="object"?this._dropShadow=this._createProxy({...Is.defaultDropShadow,...e}):this._dropShadow=e?this._createProxy({...Is.defaultDropShadow}):null,this.update()}get fontFamily(){return this._fontFamily}set fontFamily(e){this._fontFamily=e,this.update()}get fontSize(){return this._fontSize}set fontSize(e){typeof e=="string"?this._fontSize=parseInt(e,10):this._fontSize=e,this.update()}get fontStyle(){return this._fontStyle}set fontStyle(e){this._fontStyle=e.toLowerCase(),this.update()}get fontVariant(){return this._fontVariant}set fontVariant(e){this._fontVariant=e,this.update()}get fontWeight(){return this._fontWeight}set fontWeight(e){this._fontWeight=e,this.update()}get leading(){return this._leading}set leading(e){this._leading=e,this.update()}get letterSpacing(){return this._letterSpacing}set letterSpacing(e){this._letterSpacing=e,this.update()}get lineHeight(){return this._lineHeight}set lineHeight(e){this._lineHeight=e,this.update()}get padding(){return this._padding}set padding(e){this._padding=e,this.update()}get filters(){return this._filters}set filters(e){this._filters=e,this.update()}get trim(){return this._trim}set trim(e){this._trim=e,this.update()}get textBaseline(){return this._textBaseline}set textBaseline(e){this._textBaseline=e,this.update()}get whiteSpace(){return this._whiteSpace}set whiteSpace(e){this._whiteSpace=e,this.update()}get wordWrap(){return this._wordWrap}set wordWrap(e){this._wordWrap=e,this.update()}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(e){this._wordWrapWidth=e,this.update()}get fill(){return this._originalFill}set fill(e){e!==this._originalFill&&(this._originalFill=e,this._isFillStyle(e)&&(this._originalFill=this._createProxy({..._t.defaultFillStyle,...e},()=>{this._fill=Cr({...this._originalFill},_t.defaultFillStyle)})),this._fill=Cr(e===0?"black":e,_t.defaultFillStyle),this.update())}get stroke(){return this._originalStroke}set stroke(e){e!==this._originalStroke&&(this._originalStroke=e,this._isFillStyle(e)&&(this._originalStroke=this._createProxy({..._t.defaultStrokeStyle,...e},()=>{this._stroke=Ms({...this._originalStroke},_t.defaultStrokeStyle)})),this._stroke=Ms(e,_t.defaultStrokeStyle),this.update())}_generateKey(){return this._styleKey=u2(this),this._styleKey}update(){this._styleKey=null,this.emit("update",this)}reset(){let e=Is.defaultTextStyle;for(let t in e)this[t]=e[t]}get styleKey(){return this._styleKey||this._generateKey()}clone(){return new Is({align:this.align,breakWords:this.breakWords,dropShadow:this._dropShadow?{...this._dropShadow}:null,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,leading:this.leading,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,textBaseline:this.textBaseline,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,filters:this._filters?[...this._filters]:void 0})}_getFinalPadding(){let e=0;if(this._filters)for(let t=0;t<this._filters.length;t++)e+=this._filters[t].padding;return Math.max(this._padding,e)}destroy(e=!1){if(this.removeAllListeners(),typeof e=="boolean"?e:e?.texture){let i=typeof e=="boolean"?e:e?.textureSource;this._fill?.texture&&this._fill.texture.destroy(i),this._originalFill?.texture&&this._originalFill.texture.destroy(i),this._stroke?.texture&&this._stroke.texture.destroy(i),this._originalStroke?.texture&&this._originalStroke.texture.destroy(i)}this._fill=null,this._stroke=null,this.dropShadow=null,this._originalStroke=null,this._originalFill=null}_createProxy(e,t){return new Proxy(e,{set:(i,s,n)=>(i[s]=n,t?.(s,n),this.update(),!0)})}_isFillStyle(e){return(e??null)!==null&&!(q.isColorLike(e)||e instanceof ut||e instanceof vr)}};jf.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5};jf.defaultTextStyle={align:"left",breakWords:!1,dropShadow:null,fill:"black",fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",leading:0,letterSpacing:0,lineHeight:0,padding:0,stroke:null,textBaseline:"alphabetic",trim:!1,whiteSpace:"pre",wordWrap:!1,wordWrapWidth:100};lt=jf});function Nu(r,e,t,i){let s=mP;s.minX=0,s.minY=0,s.maxX=r.width/i|0,s.maxY=r.height/i|0;let n=Te.getOptimalTexture(s.width,s.height,i,!1);return n.source.uploadMethodId="image",n.source.resource=r,n.source.alphaMode="premultiply-alpha-on-upload",n.frame.width=e/i,n.frame.height=t/i,n.source.emit("update",n.source),n.updateUvs(),n}var mP,Xf=p(()=>{Lr();ot();mP=new ae});var Yf,bt,Us=p(()=>{ve();zn();Yf=class{constructor(e){this._canvasPool=Object.create(null),this.canvasOptions=e||{},this.enableFullScreen=!1}_createCanvasAndContext(e,t){let i=W.get().createCanvas();i.width=e,i.height=t;let s=i.getContext("2d");return{canvas:i,context:s}}getOptimalCanvasAndContext(e,t,i=1){e=Math.ceil(e*i-1e-6),t=Math.ceil(t*i-1e-6),e=_r(e),t=_r(t);let s=(e<<17)+(t<<1);this._canvasPool[s]||(this._canvasPool[s]=[]);let n=this._canvasPool[s].pop();return n||(n=this._createCanvasAndContext(e,t)),n}returnCanvasAndContext(e){let t=e.canvas,{width:i,height:s}=t,n=(i<<17)+(s<<1);e.context.clearRect(0,0,i,s),this._canvasPool[n].push(e)}clear(){this._canvasPool={}}},bt=new Yf});function pP(r,e){Ii||(Ii=W.get().createCanvas(256,128),Er=Ii.getContext("2d",{willReadFrequently:!0}),Er.globalCompositeOperation="copy",Er.globalAlpha=1),(Ii.width<r||Ii.height<e)&&(Ii.width=_r(r),Ii.height=_r(e))}function d2(r,e,t){for(let i=0,s=4*t*e;i<e;++i,s+=4)if(r[s+3]!==0)return!1;return!0}function f2(r,e,t,i,s){let n=4*e;for(let o=i,a=i*n+4*t;o<=s;++o,a+=n)if(r[a+3]!==0)return!1;return!0}function m2(...r){let e=r[0];e.canvas||(e={canvas:r[0],resolution:r[1]});let{canvas:t}=e,i=Math.min(e.resolution??1,1),s=e.width??t.width,n=e.height??t.height,o=e.output;if(pP(s,n),!Er)throw new TypeError("Failed to get canvas 2D context");Er.drawImage(t,0,0,s,n,0,0,s*i,n*i);let c=Er.getImageData(0,0,s,n).data,u=0,l=0,h=s-1,f=n-1;for(;l<n&&d2(c,s,l);)++l;if(l===n)return Y.EMPTY;for(;d2(c,s,f);)--f;for(;f2(c,s,u,l,f);)++u;for(;f2(c,s,h,l,f);)--h;return++h,++f,Er.globalCompositeOperation="source-over",Er.strokeRect(u,l,h-u,f-l),Er.globalCompositeOperation="copy",o??(o=new Y),o.set(u/i,l/i,(h-u)/i,(f-l)/i),o}var Ii,Er,p2=p(()=>{ve();zn();Ge();Ii=null,Er=null});function Fi(r){let e=typeof r.fontSize=="number"?`${r.fontSize}px`:r.fontSize,t=r.fontFamily;Array.isArray(r.fontFamily)||(t=r.fontFamily.split(","));for(let i=t.length-1;i>=0;i--){let s=t[i].trim();!/([\"\'])[^\'\"]+\1/.test(s)&&!gP.includes(s)&&(s=`"${s}"`),t[i]=s}return`${r.fontStyle} ${r.fontVariant} ${r.fontWeight} ${e} ${t.join(",")}`}var gP,Lu=p(()=>{"use strict";gP=["serif","sans-serif","monospace","cursive","fantasy","system-ui"]});var Kf,ir,Xe,Os=p(()=>{ve();Lu();Kf={willReadFrequently:!0},ir=class V{static get experimentalLetterSpacingSupported(){let e=V._experimentalLetterSpacingSupported;if(e===void 0){let t=W.get().getCanvasRenderingContext2D().prototype;e=V._experimentalLetterSpacingSupported="letterSpacing"in t||"textLetterSpacing"in t}return e}constructor(e,t,i,s,n,o,a,c,u){this.text=e,this.style=t,this.width=i,this.height=s,this.lines=n,this.lineWidths=o,this.lineHeight=a,this.maxLineWidth=c,this.fontProperties=u}static measureText(e=" ",t,i=V._canvas,s=t.wordWrap){let n=Fi(t),o=V.measureFont(n);o.fontSize===0&&(o.fontSize=t.fontSize,o.ascent=t.fontSize);let a=V.__context;a.font=n;let u=(s?V._wordWrap(e,t,i):e).split(/(?:\r\n|\r|\n)/),l=new Array(u.length),h=0;for(let _=0;_<u.length;_++){let y=V._measureText(u[_],t.letterSpacing,a);l[_]=y,h=Math.max(h,y)}let f=t._stroke?.width||0,d=h+f;t.dropShadow&&(d+=t.dropShadow.distance);let m=t.lineHeight||o.fontSize,x=Math.max(m,o.fontSize+f)+(u.length-1)*(m+t.leading);return t.dropShadow&&(x+=t.dropShadow.distance),new V(e,t,d,x,u,l,m+t.leading,h,o)}static _measureText(e,t,i){let s=!1;V.experimentalLetterSpacingSupported&&(V.experimentalLetterSpacing?(i.letterSpacing=`${t}px`,i.textLetterSpacing=`${t}px`,s=!0):(i.letterSpacing="0px",i.textLetterSpacing="0px"));let n=i.measureText(e),o=n.width,a=-n.actualBoundingBoxLeft,u=n.actualBoundingBoxRight-a;if(o>0)if(s)o-=t,u-=t;else{let l=(V.graphemeSegmenter(e).length-1)*t;o+=l,u+=l}return Math.max(o,u)}static _wordWrap(e,t,i=V._canvas){let s=i.getContext("2d",Kf),n=0,o="",a="",c=Object.create(null),{letterSpacing:u,whiteSpace:l}=t,h=V._collapseSpaces(l),f=V._collapseNewlines(l),d=!h,m=t.wordWrapWidth+u,x=V._tokenize(e);for(let g=0;g<x.length;g++){let _=x[g];if(V._isNewline(_)){if(!f){a+=V._addLine(o),d=!h,o="",n=0;continue}_=" "}if(h){let S=V.isBreakingSpace(_),T=V.isBreakingSpace(o[o.length-1]);if(S&&T)continue}let y=V._getFromCache(_,u,c,s);if(y>m)if(o!==""&&(a+=V._addLine(o),o="",n=0),V.canBreakWords(_,t.breakWords)){let S=V.wordWrapSplit(_);for(let T=0;T<S.length;T++){let C=S[T],v=C,E=1;for(;S[T+E];){let A=S[T+E];if(!V.canBreakChars(v,A,_,T,t.breakWords))C+=A;else break;v=A,E++}T+=E-1;let M=V._getFromCache(C,u,c,s);M+n>m&&(a+=V._addLine(o),d=!1,o="",n=0),o+=C,n+=M}}else{o.length>0&&(a+=V._addLine(o),o="",n=0);let S=g===x.length-1;a+=V._addLine(_,!S),d=!1,o="",n=0}else y+n>m&&(d=!1,a+=V._addLine(o),o="",n=0),(o.length>0||!V.isBreakingSpace(_)||d)&&(o+=_,n+=y)}return a+=V._addLine(o,!1),a}static _addLine(e,t=!0){return e=V._trimRight(e),e=t?`${e}
|
|
368
|
+
`:e,e}static _getFromCache(e,t,i,s){let n=i[e];return typeof n!="number"&&(n=V._measureText(e,t,s)+t,i[e]=n),n}static _collapseSpaces(e){return e==="normal"||e==="pre-line"}static _collapseNewlines(e){return e==="normal"}static _trimRight(e){if(typeof e!="string")return"";for(let t=e.length-1;t>=0;t--){let i=e[t];if(!V.isBreakingSpace(i))break;e=e.slice(0,-1)}return e}static _isNewline(e){return typeof e!="string"?!1:V._newlines.includes(e.charCodeAt(0))}static isBreakingSpace(e,t){return typeof e!="string"?!1:V._breakingSpaces.includes(e.charCodeAt(0))}static _tokenize(e){let t=[],i="";if(typeof e!="string")return t;for(let s=0;s<e.length;s++){let n=e[s],o=e[s+1];if(V.isBreakingSpace(n,o)||V._isNewline(n)){i!==""&&(t.push(i),i=""),t.push(n);continue}i+=n}return i!==""&&t.push(i),t}static canBreakWords(e,t){return t}static canBreakChars(e,t,i,s,n){return!0}static wordWrapSplit(e){return V.graphemeSegmenter(e)}static measureFont(e){if(V._fonts[e])return V._fonts[e];let t=V._context;t.font=e;let i=t.measureText(V.METRICS_STRING+V.BASELINE_SYMBOL),s={ascent:i.actualBoundingBoxAscent,descent:i.actualBoundingBoxDescent,fontSize:i.actualBoundingBoxAscent+i.actualBoundingBoxDescent};return V._fonts[e]=s,s}static clearMetrics(e=""){e?delete V._fonts[e]:V._fonts={}}static get _canvas(){if(!V.__canvas){let e;try{let t=new OffscreenCanvas(0,0);if(t.getContext("2d",Kf)?.measureText)return V.__canvas=t,t;e=W.get().createCanvas()}catch{e=W.get().createCanvas()}e.width=e.height=10,V.__canvas=e}return V.__canvas}static get _context(){return V.__context||(V.__context=V._canvas.getContext("2d",Kf)),V.__context}};ir.METRICS_STRING="|\xC9q\xC5";ir.BASELINE_SYMBOL="M";ir.BASELINE_MULTIPLIER=1.4;ir.HEIGHT_MULTIPLIER=2;ir.graphemeSegmenter=(()=>{if(typeof Intl?.Segmenter=="function"){let r=new Intl.Segmenter;return e=>{let t=r.segment(e),i=[],s=0;for(let n of t)i[s++]=n.segment;return i}}return r=>[...r]})();ir.experimentalLetterSpacing=!1;ir._fonts={};ir._newlines=[10,13];ir._breakingSpaces=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288];Xe=ir});function Gs(r,e,t,i=0){if(r.texture===D.WHITE&&!r.fill)return q.shared.setValue(r.color).setAlpha(r.alpha??1).toHexa();if(r.fill){if(r.fill instanceof vr){let s=r.fill,n=e.createPattern(s.texture.source.resource,"repeat"),o=s.transform.copyTo(R.shared);return o.scale(s.texture.frame.width,s.texture.frame.height),n.setTransform(o),n}else if(r.fill instanceof ut){let s=r.fill,n=s.type==="linear",o=s.textureSpace==="local",a=1,c=1;o&&t&&(a=t.width+i,c=t.height+i);let u,l=!1;if(n){let{start:h,end:f}=s;u=e.createLinearGradient(h.x*a,h.y*c,f.x*a,f.y*c),l=Math.abs(f.x-h.x)<Math.abs((f.y-h.y)*.1)}else{let{center:h,innerRadius:f,outerCenter:d,outerRadius:m}=s;u=e.createRadialGradient(h.x*a,h.y*c,f*a,d.x*a,d.y*c,m*a)}if(l&&o&&t){let h=t.lineHeight/c;for(let f=0;f<t.lines.length;f++){let d=(f*t.lineHeight+i/2)/c;s.colorStops.forEach(m=>{let x=d+m.offset*h;u.addColorStop(Math.floor(x*g2)/g2,q.shared.setValue(m.color).toHex())})}}else s.colorStops.forEach(h=>{u.addColorStop(h.offset,q.shared.setValue(h.color).toHex())});return u}}else{let s=e.createPattern(r.texture.source.resource,"repeat"),n=r.matrix.copyTo(R.shared);return n.scale(r.texture.frame.width,r.texture.frame.height),s.setTransform(n),s}return G("FillStyle not recognised",r),"red"}var g2,Qf=p(()=>{He();ee();le();ge();ks();Bu();g2=1e5});var x2,Zf,Ui,Jf=p(()=>{He();Ge();Us();p2();Os();Lu();Qf();x2=new Y,Zf=class{getCanvasAndContext(e){let{text:t,style:i,resolution:s=1}=e,n=i._getFinalPadding(),o=Xe.measureText(t||" ",i),a=Math.ceil(Math.ceil(Math.max(1,o.width)+n*2)*s),c=Math.ceil(Math.ceil(Math.max(1,o.height)+n*2)*s),u=bt.getOptimalCanvasAndContext(a,c);this._renderTextToCanvas(t,i,n,s,u);let l=i.trim?m2({canvas:u.canvas,width:a,height:c,resolution:1,output:x2}):x2.set(0,0,a,c);return{canvasAndContext:u,frame:l}}returnCanvasAndContext(e){bt.returnCanvasAndContext(e)}_renderTextToCanvas(e,t,i,s,n){let{canvas:o,context:a}=n,c=Fi(t),u=Xe.measureText(e||" ",t),l=u.lines,h=u.lineHeight,f=u.lineWidths,d=u.maxLineWidth,m=u.fontProperties,x=o.height;if(a.resetTransform(),a.scale(s,s),a.textBaseline=t.textBaseline,t._stroke?.width){let S=t._stroke;a.lineWidth=S.width,a.miterLimit=S.miterLimit,a.lineJoin=S.join,a.lineCap=S.cap}a.font=c;let g,_,y=t.dropShadow?2:1;for(let S=0;S<y;++S){let T=t.dropShadow&&S===0,C=T?Math.ceil(Math.max(1,x)+i*2):0,v=C*s;if(T){a.fillStyle="black",a.strokeStyle="black";let A=t.dropShadow,B=A.color,k=A.alpha;a.shadowColor=q.shared.setValue(B).setAlpha(k).toRgbaString();let L=A.blur*s,j=A.distance*s;a.shadowBlur=L,a.shadowOffsetX=Math.cos(A.angle)*j,a.shadowOffsetY=Math.sin(A.angle)*j+v}else{if(a.fillStyle=t._fill?Gs(t._fill,a,u):null,t._stroke?.width){let A=t._stroke.width*t._stroke.alignment;a.strokeStyle=Gs(t._stroke,a,u,A)}a.shadowColor="black"}let E=(h-m.fontSize)/2;h-m.fontSize<0&&(E=0);let M=t._stroke?.width??0;for(let A=0;A<l.length;A++)g=M/2,_=M/2+A*h+m.ascent+E,t.align==="right"?g+=d-f[A]:t.align==="center"&&(g+=(d-f[A])/2),t._stroke?.width&&this._drawLetterSpacing(l[A],t,n,g+i,_+i-C,!0),t._fill!==void 0&&this._drawLetterSpacing(l[A],t,n,g+i,_+i-C)}}_drawLetterSpacing(e,t,i,s,n,o=!1){let{context:a}=i,c=t.letterSpacing,u=!1;if(Xe.experimentalLetterSpacingSupported&&(Xe.experimentalLetterSpacing?(a.letterSpacing=`${c}px`,a.textLetterSpacing=`${c}px`,u=!0):(a.letterSpacing="0px",a.textLetterSpacing="0px")),c===0||u){o?a.strokeText(e,s,n):a.fillText(e,s,n);return}let l=s,h=Xe.graphemeSegmenter(e),f=a.measureText(e).width,d=0;for(let m=0;m<h.length;++m){let x=h[m];o?a.strokeText(x,l,n):a.fillText(x,l,n);let g="";for(let _=m+1;_<h.length;++_)g+=h[_];d=a.measureText(g).width,l+=f-d+c,f=d}}},Ui=new Zf});var So,_2=p(()=>{P();Lr();bi();ye();Fs();Xf();Jf();So=class{constructor(e){this._renderer=e}getTexture(e,t,i,s){typeof e=="string"&&(z("8.0.0","CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments"),e={text:e,style:i,resolution:t}),e.style instanceof lt||(e.style=new lt(e.style)),e.textureStyle instanceof Je||(e.textureStyle=new Je(e.textureStyle)),typeof e.text!="string"&&(e.text=e.text.toString());let{text:n,style:o,textureStyle:a}=e,c=e.resolution??this._renderer.resolution,{frame:u,canvasAndContext:l}=Ui.getCanvasAndContext({text:n,style:o,resolution:c}),h=Nu(l.canvas,u.width,u.height,c);if(a&&(h.source.style=a),o.trim&&(u.pad(o.padding),h.frame.copyFrom(u),h.updateUvs()),o.filters){let f=this._applyFilters(h,o.filters);return this.returnTexture(h),Ui.returnCanvasAndContext(l),f}return this._renderer.texture.initSource(h._source),Ui.returnCanvasAndContext(l),h}returnTexture(e){let t=e.source;t.resource=null,t.uploadMethodId="unknown",t.alphaMode="no-premultiply-alpha",Te.returnTexture(e,!0)}renderTextToCanvas(){z("8.10.0","CanvasTextSystem.renderTextToCanvas: no longer supported, use CanvasTextSystem.getTexture instead")}_applyFilters(e,t){let i=this._renderer.renderTarget.renderTarget,s=this._renderer.filter.generateFilteredTexture({texture:e,filters:t});return this._renderer.renderTarget.bind(i,!1),s}destroy(){this._renderer=null}};So.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"canvasText"}});var em=p(()=>{P();Sy();_2();O.add(So);O.add(yo)});var zu,b2=p(()=>{ye();Zc();qf();zu=class r extends Hr{constructor(e){e instanceof _t&&(e={context:e});let{context:t,roundPixels:i,...s}=e||{};super({label:"Graphics",...s}),this.renderPipeId="graphics",t?this._context=t:this._context=this._ownedContext=new _t,this._context.on("update",this.onViewUpdate,this),this.didViewUpdate=!0,this.allowChildren=!1,this.roundPixels=i??!1}set context(e){e!==this._context&&(this._context.off("update",this.onViewUpdate,this),this._context=e,this._context.on("update",this.onViewUpdate,this),this.onViewUpdate())}get context(){return this._context}get bounds(){return this._context.bounds}updateBounds(){}containsPoint(e){return this._context.containsPoint(e)}destroy(e){this._ownedContext&&!e?this._ownedContext.destroy(e):(e===!0||e?.context===!0)&&this._context.destroy(e),this._ownedContext=null,this._context=null,super.destroy(e)}_callContextMethod(e,t){return this.context[e](...t),this}setFillStyle(...e){return this._callContextMethod("setFillStyle",e)}setStrokeStyle(...e){return this._callContextMethod("setStrokeStyle",e)}fill(...e){return this._callContextMethod("fill",e)}stroke(...e){return this._callContextMethod("stroke",e)}texture(...e){return this._callContextMethod("texture",e)}beginPath(){return this._callContextMethod("beginPath",[])}cut(){return this._callContextMethod("cut",[])}arc(...e){return this._callContextMethod("arc",e)}arcTo(...e){return this._callContextMethod("arcTo",e)}arcToSvg(...e){return this._callContextMethod("arcToSvg",e)}bezierCurveTo(...e){return this._callContextMethod("bezierCurveTo",e)}closePath(){return this._callContextMethod("closePath",[])}ellipse(...e){return this._callContextMethod("ellipse",e)}circle(...e){return this._callContextMethod("circle",e)}path(...e){return this._callContextMethod("path",e)}lineTo(...e){return this._callContextMethod("lineTo",e)}moveTo(...e){return this._callContextMethod("moveTo",e)}quadraticCurveTo(...e){return this._callContextMethod("quadraticCurveTo",e)}rect(...e){return this._callContextMethod("rect",e)}roundRect(...e){return this._callContextMethod("roundRect",e)}poly(...e){return this._callContextMethod("poly",e)}regularPoly(...e){return this._callContextMethod("regularPoly",e)}roundPoly(...e){return this._callContextMethod("roundPoly",e)}roundShape(...e){return this._callContextMethod("roundShape",e)}filletRect(...e){return this._callContextMethod("filletRect",e)}chamferRect(...e){return this._callContextMethod("chamferRect",e)}star(...e){return this._callContextMethod("star",e)}svg(...e){return this._callContextMethod("svg",e)}restore(...e){return this._callContextMethod("restore",e)}save(){return this._callContextMethod("save",[])}getTransform(){return this.context.getTransform()}resetTransform(){return this._callContextMethod("resetTransform",[])}rotateTransform(...e){return this._callContextMethod("rotate",e)}scaleTransform(...e){return this._callContextMethod("scale",e)}setTransform(...e){return this._callContextMethod("setTransform",e)}transform(...e){return this._callContextMethod("transform",e)}translateTransform(...e){return this._callContextMethod("translate",e)}clear(){return this._callContextMethod("clear",[])}get fillStyle(){return this._context.fillStyle}set fillStyle(e){this._context.fillStyle=e}get strokeStyle(){return this._context.strokeStyle}set strokeStyle(e){this._context.strokeStyle=e}clone(e=!1){return e?new r(this._context.clone()):(this._ownedContext=null,new r(this._context))}lineStyle(e,t,i){z($,"Graphics#lineStyle is no longer needed. Use Graphics#setStrokeStyle to set the stroke style.");let s={};return e&&(s.width=e),t&&(s.color=t),i&&(s.alpha=i),this.context.strokeStyle=s,this}beginFill(e,t){z($,"Graphics#beginFill is no longer needed. Use Graphics#fill to fill the shape with the desired style.");let i={};return e!==void 0&&(i.color=e),t!==void 0&&(i.alpha=t),this.context.fillStyle=i,this}endFill(){z($,"Graphics#endFill is no longer needed. Use Graphics#fill to fill the shape with the desired style."),this.context.fill();let e=this.context.strokeStyle;return(e.width!==_t.defaultStrokeStyle.width||e.color!==_t.defaultStrokeStyle.color||e.alpha!==_t.defaultStrokeStyle.alpha)&&this.context.stroke(),this}drawCircle(...e){return z($,"Graphics#drawCircle has been renamed to Graphics#circle"),this._callContextMethod("circle",e)}drawEllipse(...e){return z($,"Graphics#drawEllipse has been renamed to Graphics#ellipse"),this._callContextMethod("ellipse",e)}drawPolygon(...e){return z($,"Graphics#drawPolygon has been renamed to Graphics#poly"),this._callContextMethod("poly",e)}drawRect(...e){return z($,"Graphics#drawRect has been renamed to Graphics#rect"),this._callContextMethod("rect",e)}drawRoundedRect(...e){return z($,"Graphics#drawRoundedRect has been renamed to Graphics#roundRect"),this._callContextMethod("roundRect",e)}drawStar(...e){return z($,"Graphics#drawStar has been renamed to Graphics#star"),this._callContextMethod("star",e)}}});var y2,T2,w2=p(()=>{"use strict";y2={name:"local-uniform-msdf-bit",vertex:{header:`
|
|
369
369
|
struct LocalUniforms {
|
|
370
370
|
uColor:vec4<f32>,
|
|
371
371
|
uTransformMatrix:mat3x3<f32>,
|
|
@@ -392,7 +392,7 @@ fn mainFragment(
|
|
|
392
392
|
@group(2) @binding(0) var<uniform> localUniforms : LocalUniforms;
|
|
393
393
|
`,main:`
|
|
394
394
|
outColor = vec4<f32>(calculateMSDFAlpha(outColor, localUniforms.uColor, localUniforms.uDistance));
|
|
395
|
-
`}},
|
|
395
|
+
`}},T2={name:"local-uniform-msdf-bit",vertex:{header:`
|
|
396
396
|
uniform mat3 uTransformMatrix;
|
|
397
397
|
uniform vec4 uColor;
|
|
398
398
|
uniform float uRound;
|
|
@@ -408,7 +408,7 @@ fn mainFragment(
|
|
|
408
408
|
uniform float uDistance;
|
|
409
409
|
`,main:`
|
|
410
410
|
outColor = vec4(calculateMSDFAlpha(outColor, vColor, uDistance));
|
|
411
|
-
`}}});var
|
|
411
|
+
`}}});var S2,v2,C2=p(()=>{"use strict";S2={name:"msdf-bit",fragment:{header:`
|
|
412
412
|
fn calculateMSDFAlpha(msdfColor:vec4<f32>, shapeColor:vec4<f32>, distance:f32) -> f32 {
|
|
413
413
|
|
|
414
414
|
// MSDF
|
|
@@ -435,7 +435,7 @@ fn mainFragment(
|
|
|
435
435
|
return coverage;
|
|
436
436
|
|
|
437
437
|
}
|
|
438
|
-
`}},
|
|
438
|
+
`}},v2={name:"msdf-bit",fragment:{header:`
|
|
439
439
|
float calculateMSDFAlpha(vec4 msdfColor, vec4 shapeColor, float distance) {
|
|
440
440
|
|
|
441
441
|
// MSDF
|
|
@@ -462,16 +462,16 @@ fn mainFragment(
|
|
|
462
462
|
|
|
463
463
|
return coverage;
|
|
464
464
|
}
|
|
465
|
-
`}}});var
|
|
466
|
-
`&&_!=="\r"&&_!==" "&&_!==" "&&(d=!0,l=Math.ceil(Math.max(E,l))),c+v>m&&(u+=l,l=E,c=0,u+l>x)){o.update();let A=this._nextPage();s=A.canvasAndContext.canvas,n=A.canvasAndContext.context,o=A.texture.source,c=0,u=0,l=0}let
|
|
465
|
+
`}}});var tm,rm,Vu,E2=p(()=>{ee();Xr();oo();ao();Yr();pu();Ut();rt();w2();C2();Vu=class extends Ee{constructor(e){let t=new ce({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uDistance:{value:4,type:"f32"},uRound:{value:0,type:"f32"}});tm??(tm=Yt({name:"sdf-shader",bits:[ys,ws(e),y2,S2,Qt]})),rm??(rm=Kt({name:"sdf-shader",bits:[Ts,Ss(e),T2,v2,Zt]})),super({glProgram:rm,gpuProgram:tm,resources:{localUniforms:t,batchSamplers:vs(e)}})}}});var Hu,k2=p(()=>{Ve();ye();Hu=class extends oe{constructor(){super(...arguments),this.chars=Object.create(null),this.lineHeight=0,this.fontFamily="",this.fontMetrics={fontSize:0,ascent:0,descent:0},this.baseLineOffset=0,this.distanceField={type:"none",range:0},this.pages=[],this.applyFillAsTint=!0,this.baseMeasurementFontSize=100,this.baseRenderedFontSize=100}get font(){return z($,"BitmapFont.font is deprecated, please use BitmapFont.fontFamily instead."),this.fontFamily}get pageTextures(){return z($,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}get size(){return z($,"BitmapFont.size is deprecated, please use BitmapFont.fontMetrics.fontSize instead."),this.fontMetrics.fontSize}get distanceFieldRange(){return z($,"BitmapFont.distanceFieldRange is deprecated, please use BitmapFont.distanceField.range instead."),this.distanceField.range}get distanceFieldType(){return z($,"BitmapFont.distanceFieldType is deprecated, please use BitmapFont.distanceField.type instead."),this.distanceField.type}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners();for(let t in this.chars)this.chars[t].texture?.destroy();this.chars=null,e&&(this.pages.forEach(t=>t.texture.destroy(!0)),this.pages=null)}}});var A2,im,B2=p(()=>{He();Ge();Us();su();le();bi();ye();Os();Lu();Qf();Fs();k2();A2=class P2 extends Hu{constructor(e){super(),this.resolution=1,this.pages=[],this._padding=0,this._measureCache=Object.create(null),this._currentChars=[],this._currentX=0,this._currentY=0,this._currentMaxCharHeight=0,this._currentPageIndex=-1,this._skipKerning=!1;let t={...P2.defaultOptions,...e};this._textureSize=t.textureSize,this._mipmap=t.mipmap;let i=t.style.clone();t.overrideFill&&(i._fill.color=16777215,i._fill.alpha=1,i._fill.texture=D.WHITE,i._fill.fill=null),this.applyFillAsTint=t.overrideFill;let s=i.fontSize;i.fontSize=this.baseMeasurementFontSize;let n=Fi(i);t.overrideSize?i._stroke&&(i._stroke.width*=this.baseRenderedFontSize/s):i.fontSize=this.baseRenderedFontSize=s,this._style=i,this._skipKerning=t.skipKerning??!1,this.resolution=t.resolution??1,this._padding=t.padding??4,t.textureStyle&&(this._textureStyle=t.textureStyle instanceof Je?t.textureStyle:new Je(t.textureStyle)),this.fontMetrics=Xe.measureFont(n),this.lineHeight=i.lineHeight||this.fontMetrics.fontSize||i.fontSize}ensureCharacters(e){let t=Xe.graphemeSegmenter(e).filter(g=>!this._currentChars.includes(g)).filter((g,_,y)=>y.indexOf(g)===_);if(!t.length)return;this._currentChars=[...this._currentChars,...t];let i;this._currentPageIndex===-1?i=this._nextPage():i=this.pages[this._currentPageIndex];let{canvas:s,context:n}=i.canvasAndContext,o=i.texture.source,a=this._style,c=this._currentX,u=this._currentY,l=this._currentMaxCharHeight,h=this.baseRenderedFontSize/this.baseMeasurementFontSize,f=this._padding*h,d=!1,m=s.width/this.resolution,x=s.height/this.resolution;for(let g=0;g<t.length;g++){let _=t[g],y=Xe.measureText(_,a,s,!1);y.lineHeight=y.height;let S=y.width*h,T=Math.ceil((a.fontStyle==="italic"?2:1)*S),C=y.height*h,v=T+f*2,E=C+f*2;if(d=!1,_!==`
|
|
466
|
+
`&&_!=="\r"&&_!==" "&&_!==" "&&(d=!0,l=Math.ceil(Math.max(E,l))),c+v>m&&(u+=l,l=E,c=0,u+l>x)){o.update();let A=this._nextPage();s=A.canvasAndContext.canvas,n=A.canvasAndContext.context,o=A.texture.source,c=0,u=0,l=0}let M=S/h-(a.dropShadow?.distance??0)-(a._stroke?.width??0);if(this.chars[_]={id:_.codePointAt(0),xOffset:-this._padding,yOffset:-this._padding,xAdvance:M,kerning:{}},d){this._drawGlyph(n,y,c+f,u+f,h,a);let A=o.width*h,B=o.height*h,k=new Y(c/A*o.width,u/B*o.height,v/A*o.width,E/B*o.height);this.chars[_].texture=new D({source:o,frame:k}),c+=Math.ceil(v)}}o.update(),this._currentX=c,this._currentY=u,this._currentMaxCharHeight=l,this._skipKerning&&this._applyKerning(t,n)}get pageTextures(){return z($,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}_applyKerning(e,t){let i=this._measureCache;for(let s=0;s<e.length;s++){let n=e[s];for(let o=0;o<this._currentChars.length;o++){let a=this._currentChars[o],c=i[n];c||(c=i[n]=t.measureText(n).width);let u=i[a];u||(u=i[a]=t.measureText(a).width);let l=t.measureText(n+a).width,h=l-(c+u);h&&(this.chars[n].kerning[a]=h),l=t.measureText(n+a).width,h=l-(c+u),h&&(this.chars[a].kerning[n]=h)}}}_nextPage(){this._currentPageIndex++;let e=this.resolution,t=bt.getOptimalCanvasAndContext(this._textureSize,this._textureSize,e);this._setupContext(t.context,this._style,e);let i=e*(this.baseRenderedFontSize/this.baseMeasurementFontSize),s=new D({source:new jt({resource:t.canvas,resolution:i,alphaMode:"premultiply-alpha-on-upload",autoGenerateMipmaps:this._mipmap})});this._textureStyle&&(s.source.style=this._textureStyle);let n={canvasAndContext:t,texture:s};return this.pages[this._currentPageIndex]=n,n}_setupContext(e,t,i){t.fontSize=this.baseRenderedFontSize,e.scale(i,i),e.font=Fi(t),t.fontSize=this.baseMeasurementFontSize,e.textBaseline=t.textBaseline;let s=t._stroke,n=s?.width??0;if(s&&(e.lineWidth=n,e.lineJoin=s.join,e.miterLimit=s.miterLimit,e.strokeStyle=Gs(s,e)),t._fill&&(e.fillStyle=Gs(t._fill,e)),t.dropShadow){let o=t.dropShadow,a=q.shared.setValue(o.color).toArray(),c=o.blur*i,u=o.distance*i;e.shadowColor=`rgba(${a[0]*255},${a[1]*255},${a[2]*255},${o.alpha})`,e.shadowBlur=c,e.shadowOffsetX=Math.cos(o.angle)*u,e.shadowOffsetY=Math.sin(o.angle)*u}else e.shadowColor="black",e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0}_drawGlyph(e,t,i,s,n,o){let a=t.text,c=t.fontProperties,l=(o._stroke?.width??0)*n,h=i+l/2,f=s-l/2,d=c.descent*n,m=t.lineHeight*n;o.stroke&&l&&e.strokeText(a,h,f+m-d),o._fill&&e.fillText(a,h,f+m-d)}destroy(){super.destroy();for(let e=0;e<this.pages.length;e++){let{canvasAndContext:t,texture:i}=this.pages[e];bt.returnCanvasAndContext(t),i.destroy(!0)}this.pages=null}};A2.defaultOptions={textureSize:512,style:new lt,mipmap:!0};im=A2});function Wu(r,e,t,i){let s={width:0,height:0,offsetY:0,scale:e.fontSize/t.baseMeasurementFontSize,lines:[{width:0,charPositions:[],spaceWidth:0,spacesIndex:[],chars:[]}]};s.offsetY=t.baseLineOffset;let n=s.lines[0],o=null,a=!0,c={spaceWord:!1,width:0,start:0,index:0,positions:[],chars:[]},u=m=>{let x=n.width;for(let g=0;g<c.index;g++){let _=m.positions[g];n.chars.push(m.chars[g]),n.charPositions.push(_+x)}n.width+=m.width,a=!1,c.width=0,c.index=0,c.chars.length=0},l=()=>{let m=n.chars.length-1;if(i){let x=n.chars[m];for(;x===" ";)n.width-=t.chars[x].xAdvance,x=n.chars[--m]}s.width=Math.max(s.width,n.width),n={width:0,charPositions:[],chars:[],spaceWidth:0,spacesIndex:[]},a=!0,s.lines.push(n),s.height+=t.lineHeight},h=t.baseMeasurementFontSize/e.fontSize,f=e.letterSpacing*h,d=e.wordWrapWidth*h;for(let m=0;m<r.length+1;m++){let x,g=m===r.length;g||(x=r[m]);let _=t.chars[x]||t.chars[" "];if(/(?:\s)/.test(x)||x==="\r"||x===`
|
|
467
467
|
`||g){if(!a&&e.wordWrap&&n.width+c.width-f>d?(l(),u(c),g||n.charPositions.push(0)):(c.start=n.width,u(c),g||n.charPositions.push(0)),x==="\r"||x===`
|
|
468
|
-
`)n.width!==0&&l();else if(!g){let C=_.xAdvance+(_.kerning[o]||0)+f;n.width+=C,n.spaceWidth=C,n.spacesIndex.push(n.charPositions.length),n.chars.push(x)}}else{let T=_.kerning[o]||0,C=_.xAdvance+T+f;c.positions[c.index++]=c.width+T,c.chars.push(x),c.width+=C}o=x}return l(),e.align==="center"?qB(s):e.align==="right"?jB(s):e.align==="justify"&&XB(s),s}function qB(r){for(let e=0;e<r.lines.length;e++){let t=r.lines[e],i=r.width/2-t.width/2;for(let s=0;s<t.charPositions.length;s++)t.charPositions[s]+=i}}function jB(r){for(let e=0;e<r.lines.length;e++){let t=r.lines[e],i=r.width-t.width;for(let s=0;s<t.charPositions.length;s++)t.charPositions[s]+=i}}function XB(r){let e=r.width;for(let t=0;t<r.lines.length;t++){let i=r.lines[t],s=0,n=i.spacesIndex[s++],o=0,a=i.spacesIndex.length,u=(e-i.width)/a;for(let l=0;l<i.charPositions.length;l++)l===n&&(n=i.spacesIndex[s++],o+=u),i.charPositions[l]+=o}}var Vm=p(()=>{"use strict"});function rw(r){if(r==="")return[];typeof r=="string"&&(r=[r]);let e=[];for(let t=0,i=r.length;t<i;t++){let s=r[t];if(Array.isArray(s)){if(s.length!==2)throw new Error(`[BitmapFont]: Invalid character range length, expecting 2 got ${s.length}.`);if(s[0].length===0||s[1].length===0)throw new Error("[BitmapFont]: Invalid character delimiter.");let n=s[0].charCodeAt(0),o=s[1].charCodeAt(0);if(o<n)throw new Error("[BitmapFont]: Invalid character range.");for(let a=n,c=o;a<=c;a++)e.push(String.fromCharCode(a))}else e.push(...Array.from(s))}if(e.length===0)throw new Error("[BitmapFont]: Empty set when resolving characters.");return e}var iw=p(()=>{"use strict"});var Al,Hm,sw,nw=p(()=>{Eo();ye();pe();sn();tn();tw();Vm();iw();Al=0,Hm=class{constructor(){this.ALPHA=[["a","z"],["A","Z"]," "],this.NUMERIC=[["0","9"]],this.ALPHANUMERIC=[["a","z"],["A","Z"],["0","9"]," "],this.ASCII=[[" ","~"]],this.defaultOptions={chars:this.ALPHANUMERIC,resolution:1,padding:4,skipKerning:!1,textureStyle:null}}getFont(e,t){let i=`${t.fontFamily}-bitmap`,s=!0;if(t._fill.fill&&!t._stroke)i+=t._fill.fill.styleKey,s=!1;else if(t._stroke||t.dropShadow){let o=t.styleKey;o=o.substring(0,o.lastIndexOf("-")),i=`${o}-bitmap`,s=!1}if(!Me.has(i)){let o=new zm({style:t,overrideFill:s,overrideSize:!0,...this.defaultOptions});Al++,Al>50&&N("BitmapText",`You have dynamically created ${Al} bitmap fonts, this can be inefficient. Try pre installing your font styles using \`BitmapFont.install({name:"style1", style})\``),o.once("destroy",()=>{Al--,Me.remove(i)}),Me.set(i,o)}let n=Me.get(i);return n.ensureCharacters?.(e),n}getLayout(e,t,i=!0){let s=this.getFont(e,t),n=Xe.graphemeSegmenter(e);return kl(n,t,s,i)}measureText(e,t,i=!0){return this.getLayout(e,t,i)}install(...e){let t=e[0];typeof t=="string"&&(t={name:t,style:e[1],chars:e[2]?.chars,resolution:e[2]?.resolution,padding:e[2]?.padding,skipKerning:e[2]?.skipKerning},z($,"BitmapFontManager.install(name, style, options) is deprecated, use BitmapFontManager.install({name, style, ...options})"));let i=t?.name;if(!i)throw new Error("[BitmapFontManager] Property `name` is required.");t={...this.defaultOptions,...t};let s=t.style,n=s instanceof ht?s:new ht(s),o=n._fill.fill!==null&&n._fill.fill!==void 0,a=new zm({style:n,overrideFill:o,skipKerning:t.skipKerning,padding:t.padding,resolution:t.resolution,overrideSize:!1,textureStyle:t.textureStyle}),c=rw(t.chars);return a.ensureCharacters(c.join("")),Me.set(`${i}-bitmap`,a),a.once("destroy",()=>Me.remove(`${i}-bitmap`)),a}uninstall(e){let t=`${e}-bitmap`,i=Me.get(t);i&&i.destroy()}},sw=new Hm});function ow(r,e){e.groupTransform=r.groupTransform,e.groupColorAlpha=r.groupColorAlpha,e.groupColor=r.groupColor,e.groupBlendMode=r.groupBlendMode,e.globalDisplayStatus=r.globalDisplayStatus,e.groupTransform=r.groupTransform,e.localDisplayStatus=r.localDisplayStatus,e.groupAlpha=r.groupAlpha,e._roundPixels=r._roundPixels}var Wm,Xo,aw=p(()=>{Eo();B();WT();sn();QT();nw();Vm();Wm=class extends vl{destroy(){this.context.customShader&&this.context.customShader.destroy(),super.destroy()}},Xo=class{constructor(e){this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_gpuBitmapText")}validateRenderable(e){let t=this._getGpuBitmapText(e);return e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,t)),this._renderer.renderPipes.graphics.validateRenderable(t)}addRenderable(e,t){let i=this._getGpuBitmapText(e);ow(e,i),e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,i)),this._renderer.renderPipes.graphics.addRenderable(i,t),i.context.customShader&&this._updateDistanceField(e)}updateRenderable(e){let t=this._getGpuBitmapText(e);ow(e,t),this._renderer.renderPipes.graphics.updateRenderable(t),t.context.customShader&&this._updateDistanceField(e)}_updateContext(e,t){let{context:i}=t,s=sw.getFont(e.text,e._style);i.clear(),s.distanceField.type!=="none"&&(i.customShader||(i.customShader=new Cl(this._renderer.limits.maxBatchableTextures)));let n=Xe.graphemeSegmenter(e.text),o=e._style,a=s.baseLineOffset,c=kl(n,o,s,!0),u=0,l=o.padding,h=c.scale,f=c.width,d=c.height+c.offsetY;o._stroke&&(f+=o._stroke.width/h,d+=o._stroke.width/h),i.translate(-e._anchor._x*f-l,-e._anchor._y*d-l).scale(h,h);let m=s.applyFillAsTint?o._fill.color:16777215;for(let x=0;x<c.lines.length;x++){let g=c.lines[x];for(let _=0;_<g.charPositions.length;_++){let y=n[u++],S=s.chars[y];S?.texture&&i.texture(S.texture,m||"black",Math.round(g.charPositions[_]+S.xOffset),Math.round(a+S.yOffset))}a+=s.lineHeight}}_getGpuBitmapText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new Wm;return e._gpuData[this._renderer.uid]=t,this._updateContext(e,t),t}_updateDistanceField(e){let t=this._getGpuBitmapText(e).context,i=e._style.fontFamily,s=Me.get(`${i}-bitmap`),{a:n,b:o,c:a,d:c}=e.groupTransform,u=Math.sqrt(n*n+o*o),l=Math.sqrt(a*a+c*c),h=(Math.abs(u)+Math.abs(l))/2,f=s.baseRenderedFontSize/e._style.fontSize,d=h*s.distanceField.range*(1/f);t.customShader.resources.localUniforms.uniforms.uDistance=d}destroy(){this._renderer=null}};Xo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"bitmapText"}});var $m=p(()=>{B();aw();O.add(Xo)});var Pl,cw=p(()=>{Ho();Pl=class extends nr{constructor(e){super(),this.generatingTexture=!1,this._renderer=e,e.runners.resolutionChange.add(this)}resolutionChange(){let e=this.renderable;e._autoResolution&&e.onViewUpdate()}destroy(){this._renderer.htmlText.returnTexturePromise(this.texturePromise),this.texturePromise=null,this._renderer=null}}});var Yo,uw=p(()=>{B();le();pm();cw();Yo=class{constructor(e){this._renderer=e}validateRenderable(e){return e._didTextUpdate}addRenderable(e,t){let i=this._getGpuText(e);e._didTextUpdate&&(this._updateGpuText(e).catch(s=>{console.error(s)}),e._didTextUpdate=!1,Vo(i,e)),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuText(e);t._batcher.updateElement(t)}async _updateGpuText(e){e._didTextUpdate=!1;let t=this._getGpuText(e);if(t.generatingTexture)return;t.texturePromise&&(this._renderer.htmlText.returnTexturePromise(t.texturePromise),t.texturePromise=null),t.generatingTexture=!0,e._resolution=e._autoResolution?this._renderer.resolution:e.resolution;let i=this._renderer.htmlText.getTexturePromise(e);t.texturePromise=i,t.texture=await i;let s=e.renderGroup||e.parentRenderGroup;s&&(s.structureDidChange=!0),t.generatingTexture=!1,Vo(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new Pl(this._renderer);return t.renderable=e,t.transform=e.groupTransform,t.texture=M.EMPTY,t.bounds={minX:0,maxX:1,minY:0,maxY:0},t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};Yo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"htmlText"}});function lw(){let{userAgent:r}=W.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(r)}var hw=p(()=>{Ce()});var dw,fw,on,qm=p(()=>{"use strict";dw="http://www.w3.org/2000/svg",fw="http://www.w3.org/1999/xhtml",on=class{constructor(){this.svgRoot=document.createElementNS(dw,"svg"),this.foreignObject=document.createElementNS(dw,"foreignObject"),this.domElement=document.createElementNS(fw,"div"),this.styleElement=document.createElementNS(fw,"style"),this.image=new Image;let{foreignObject:e,svgRoot:t,styleElement:i,domElement:s}=this;e.setAttribute("width","10000"),e.setAttribute("height","10000"),e.style.overflow="hidden",t.appendChild(e),e.appendChild(i),e.appendChild(s)}}});function gw(r){let e=r._stroke,t=r._fill,s=[`div { ${[`color: ${q.shared.setValue(t.color).toHex()}`,`font-size: ${r.fontSize}px`,`font-family: ${r.fontFamily}`,`font-weight: ${r.fontWeight}`,`font-style: ${r.fontStyle}`,`font-variant: ${r.fontVariant}`,`letter-spacing: ${r.letterSpacing}px`,`text-align: ${r.align}`,`padding: ${r.padding}px`,`white-space: ${r.whiteSpace==="pre"&&r.wordWrap?"pre-wrap":r.whiteSpace}`,...r.lineHeight?[`line-height: ${r.lineHeight}px`]:[],...r.wordWrap?[`word-wrap: ${r.breakWords?"break-all":"break-word"}`,`max-width: ${r.wordWrapWidth}px`]:[],...e?[_w(e)]:[],...r.dropShadow?[xw(r.dropShadow)]:[],...r.cssOverrides].join(";")} }`];return YB(r.tagStyles,s),s.join(" ")}function xw(r){let e=q.shared.setValue(r.color).setAlpha(r.alpha).toHexa(),t=Math.round(Math.cos(r.angle)*r.distance),i=Math.round(Math.sin(r.angle)*r.distance),s=`${t}px ${i}px`;return r.blur>0?`text-shadow: ${s} ${r.blur}px ${e}`:`text-shadow: ${s} ${e}`}function _w(r){return[`-webkit-text-stroke-width: ${r.width}px`,`-webkit-text-stroke-color: ${q.shared.setValue(r.color).toHex()}`,`text-stroke-width: ${r.width}px`,`text-stroke-color: ${q.shared.setValue(r.color).toHex()}`,"paint-order: stroke"].join(";")}function YB(r,e){for(let t in r){let i=r[t],s=[];for(let n in i)pw[n]?s.push(pw[n](i[n])):mw[n]&&s.push(mw[n].replace("{{VALUE}}",i[n]));e.push(`${t} { ${s.join(";")} }`)}}var mw,pw,bw=p(()=>{He();mw={fontSize:"font-size: {{VALUE}}px",fontFamily:"font-family: {{VALUE}}",fontWeight:"font-weight: {{VALUE}}",fontStyle:"font-style: {{VALUE}}",fontVariant:"font-variant: {{VALUE}}",letterSpacing:"letter-spacing: {{VALUE}}px",align:"text-align: {{VALUE}}",padding:"padding: {{VALUE}}px",whiteSpace:"white-space: {{VALUE}}",lineHeight:"line-height: {{VALUE}}px",wordWrapWidth:"max-width: {{VALUE}}px"},pw={fill:r=>`color: ${q.shared.setValue(r).toHex()}`,breakWords:r=>`word-wrap: ${r?"break-all":"break-word"}`,stroke:_w,dropShadow:xw}});var Bl,yw=p(()=>{pe();tn();bw();Bl=class r extends ht{constructor(e={}){super(e),this._cssOverrides=[],this.cssOverrides=e.cssOverrides??[],this.tagStyles=e.tagStyles??{}}set cssOverrides(e){this._cssOverrides=e instanceof Array?e:[e],this.update()}get cssOverrides(){return this._cssOverrides}update(){this._cssStyle=null,super.update()}clone(){return new r({align:this.align,breakWords:this.breakWords,dropShadow:this.dropShadow?{...this.dropShadow}:null,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,cssOverrides:this.cssOverrides,tagStyles:{...this.tagStyles}})}get cssStyle(){return this._cssStyle||(this._cssStyle=gw(this)),this._cssStyle}addOverride(...e){let t=e.filter(i=>!this.cssOverrides.includes(i));t.length>0&&(this.cssOverrides.push(...t),this.update())}removeOverride(...e){let t=e.filter(i=>this.cssOverrides.includes(i));t.length>0&&(this.cssOverrides=this.cssOverrides.filter(i=>!t.includes(i)),this.update())}set fill(e){typeof e!="string"&&typeof e!="number"&&N("[HTMLTextStyle] only color fill is not supported by HTMLText"),super.fill=e}set stroke(e){e&&typeof e!="string"&&typeof e!="number"&&N("[HTMLTextStyle] only color stroke is not supported by HTMLText"),super.stroke=e}}});function Tw(r,e){let t=e.fontFamily,i=[],s={},n=/font-family:([^;"\s]+)/g,o=r.match(n);function a(c){s[c]||(i.push(c),s[c]=!0)}if(Array.isArray(t))for(let c=0;c<t.length;c++)a(t[c]);else a(t);o&&o.forEach(c=>{let u=c.split(":")[1].trim();a(u)});for(let c in e.tagStyles){let u=e.tagStyles[c].fontFamily;a(u)}return i}var ww=p(()=>{"use strict"});async function Sw(r){let t=await(await W.get().fetch(r)).blob(),i=new FileReader;return await new Promise((n,o)=>{i.onloadend=()=>n(i.result),i.onerror=o,i.readAsDataURL(t)})}var vw=p(()=>{Ce()});async function jm(r,e){let t=await Sw(e);return`@font-face {
|
|
468
|
+
`)n.width!==0&&l();else if(!g){let C=_.xAdvance+(_.kerning[o]||0)+f;n.width+=C,n.spaceWidth=C,n.spacesIndex.push(n.charPositions.length),n.chars.push(x)}}else{let T=_.kerning[o]||0,C=_.xAdvance+T+f;c.positions[c.index++]=c.width+T,c.chars.push(x),c.width+=C}o=x}return l(),e.align==="center"?xP(s):e.align==="right"?_P(s):e.align==="justify"&&bP(s),s}function xP(r){for(let e=0;e<r.lines.length;e++){let t=r.lines[e],i=r.width/2-t.width/2;for(let s=0;s<t.charPositions.length;s++)t.charPositions[s]+=i}}function _P(r){for(let e=0;e<r.lines.length;e++){let t=r.lines[e],i=r.width-t.width;for(let s=0;s<t.charPositions.length;s++)t.charPositions[s]+=i}}function bP(r){let e=r.width;for(let t=0;t<r.lines.length;t++){let i=r.lines[t],s=0,n=i.spacesIndex[s++],o=0,a=i.spacesIndex.length,u=(e-i.width)/a;for(let l=0;l<i.charPositions.length;l++)l===n&&(n=i.spacesIndex[s++],o+=u),i.charPositions[l]+=o}}var sm=p(()=>{"use strict"});function R2(r){if(r==="")return[];typeof r=="string"&&(r=[r]);let e=[];for(let t=0,i=r.length;t<i;t++){let s=r[t];if(Array.isArray(s)){if(s.length!==2)throw new Error(`[BitmapFont]: Invalid character range length, expecting 2 got ${s.length}.`);if(s[0].length===0||s[1].length===0)throw new Error("[BitmapFont]: Invalid character delimiter.");let n=s[0].charCodeAt(0),o=s[1].charCodeAt(0);if(o<n)throw new Error("[BitmapFont]: Invalid character range.");for(let a=n,c=o;a<=c;a++)e.push(String.fromCharCode(a))}else e.push(...Array.from(s))}if(e.length===0)throw new Error("[BitmapFont]: Empty set when resolving characters.");return e}var D2=p(()=>{"use strict"});var $u,nm,M2,I2=p(()=>{to();ye();ge();Os();Fs();B2();sm();D2();$u=0,nm=class{constructor(){this.ALPHA=[["a","z"],["A","Z"]," "],this.NUMERIC=[["0","9"]],this.ALPHANUMERIC=[["a","z"],["A","Z"],["0","9"]," "],this.ASCII=[[" ","~"]],this.defaultOptions={chars:this.ALPHANUMERIC,resolution:1,padding:4,skipKerning:!1,textureStyle:null}}getFont(e,t){let i=`${t.fontFamily}-bitmap`,s=!0;if(t._fill.fill&&!t._stroke)i+=t._fill.fill.styleKey,s=!1;else if(t._stroke||t.dropShadow){let o=t.styleKey;o=o.substring(0,o.lastIndexOf("-")),i=`${o}-bitmap`,s=!1}if(!De.has(i)){let o=new im({style:t,overrideFill:s,overrideSize:!0,...this.defaultOptions});$u++,$u>50&&G("BitmapText",`You have dynamically created ${$u} bitmap fonts, this can be inefficient. Try pre installing your font styles using \`BitmapFont.install({name:"style1", style})\``),o.once("destroy",()=>{$u--,De.remove(i)}),De.set(i,o)}let n=De.get(i);return n.ensureCharacters?.(e),n}getLayout(e,t,i=!0){let s=this.getFont(e,t),n=Xe.graphemeSegmenter(e);return Wu(n,t,s,i)}measureText(e,t,i=!0){return this.getLayout(e,t,i)}install(...e){let t=e[0];typeof t=="string"&&(t={name:t,style:e[1],chars:e[2]?.chars,resolution:e[2]?.resolution,padding:e[2]?.padding,skipKerning:e[2]?.skipKerning},z($,"BitmapFontManager.install(name, style, options) is deprecated, use BitmapFontManager.install({name, style, ...options})"));let i=t?.name;if(!i)throw new Error("[BitmapFontManager] Property `name` is required.");t={...this.defaultOptions,...t};let s=t.style,n=s instanceof lt?s:new lt(s),o=n._fill.fill!==null&&n._fill.fill!==void 0,a=new im({style:n,overrideFill:o,skipKerning:t.skipKerning,padding:t.padding,resolution:t.resolution,overrideSize:!1,textureStyle:t.textureStyle}),c=R2(t.chars);return a.ensureCharacters(c.join("")),De.set(`${i}-bitmap`,a),a.once("destroy",()=>De.remove(`${i}-bitmap`)),a}uninstall(e){let t=`${e}-bitmap`,i=De.get(t);i&&i.destroy()}},M2=new nm});function F2(r,e){e.groupTransform=r.groupTransform,e.groupColorAlpha=r.groupColorAlpha,e.groupColor=r.groupColor,e.groupBlendMode=r.groupBlendMode,e.globalDisplayStatus=r.globalDisplayStatus,e.groupTransform=r.groupTransform,e.localDisplayStatus=r.localDisplayStatus,e.groupAlpha=r.groupAlpha,e._roundPixels=r._roundPixels}var om,vo,U2=p(()=>{to();P();b2();Os();E2();I2();sm();om=class extends zu{destroy(){this.context.customShader&&this.context.customShader.destroy(),super.destroy()}},vo=class{constructor(e){this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_gpuBitmapText")}validateRenderable(e){let t=this._getGpuBitmapText(e);return e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,t)),this._renderer.renderPipes.graphics.validateRenderable(t)}addRenderable(e,t){let i=this._getGpuBitmapText(e);F2(e,i),e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,i)),this._renderer.renderPipes.graphics.addRenderable(i,t),i.context.customShader&&this._updateDistanceField(e)}updateRenderable(e){let t=this._getGpuBitmapText(e);F2(e,t),this._renderer.renderPipes.graphics.updateRenderable(t),t.context.customShader&&this._updateDistanceField(e)}_updateContext(e,t){let{context:i}=t,s=M2.getFont(e.text,e._style);i.clear(),s.distanceField.type!=="none"&&(i.customShader||(i.customShader=new Vu(this._renderer.limits.maxBatchableTextures)));let n=Xe.graphemeSegmenter(e.text),o=e._style,a=s.baseLineOffset,c=Wu(n,o,s,!0),u=0,l=o.padding,h=c.scale,f=c.width,d=c.height+c.offsetY;o._stroke&&(f+=o._stroke.width/h,d+=o._stroke.width/h),i.translate(-e._anchor._x*f-l,-e._anchor._y*d-l).scale(h,h);let m=s.applyFillAsTint?o._fill.color:16777215;for(let x=0;x<c.lines.length;x++){let g=c.lines[x];for(let _=0;_<g.charPositions.length;_++){let y=n[u++],S=s.chars[y];S?.texture&&i.texture(S.texture,m||"black",Math.round(g.charPositions[_]+S.xOffset),Math.round(a+S.yOffset))}a+=s.lineHeight}}_getGpuBitmapText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new om;return e._gpuData[this._renderer.uid]=t,this._updateContext(e,t),t}_updateDistanceField(e){let t=this._getGpuBitmapText(e).context,i=e._style.fontFamily,s=De.get(`${i}-bitmap`),{a:n,b:o,c:a,d:c}=e.groupTransform,u=Math.sqrt(n*n+o*o),l=Math.sqrt(a*a+c*c),h=(Math.abs(u)+Math.abs(l))/2,f=s.baseRenderedFontSize/e._style.fontSize,d=h*s.distanceField.range*(1/f);t.customShader.resources.localUniforms.uniforms.uDistance=d}destroy(){this._renderer=null}};vo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"bitmapText"}});var am=p(()=>{P();U2();O.add(vo)});var qu,O2=p(()=>{bo();qu=class extends tr{constructor(e){super(),this.generatingTexture=!1,this._renderer=e,e.runners.resolutionChange.add(this)}resolutionChange(){let e=this.renderable;e._autoResolution&&e.onViewUpdate()}destroy(){this._renderer.htmlText.returnTexturePromise(this.texturePromise),this.texturePromise=null,this._renderer=null}}});var Co,G2=p(()=>{P();le();Rf();O2();Co=class{constructor(e){this._renderer=e}validateRenderable(e){return e._didTextUpdate}addRenderable(e,t){let i=this._getGpuText(e);e._didTextUpdate&&(this._updateGpuText(e).catch(s=>{console.error(s)}),e._didTextUpdate=!1,_o(i,e)),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuText(e);t._batcher.updateElement(t)}async _updateGpuText(e){e._didTextUpdate=!1;let t=this._getGpuText(e);if(t.generatingTexture)return;t.texturePromise&&(this._renderer.htmlText.returnTexturePromise(t.texturePromise),t.texturePromise=null),t.generatingTexture=!0,e._resolution=e._autoResolution?this._renderer.resolution:e.resolution;let i=this._renderer.htmlText.getTexturePromise(e);t.texturePromise=i,t.texture=await i;let s=e.renderGroup||e.parentRenderGroup;s&&(s.structureDidChange=!0),t.generatingTexture=!1,_o(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new qu(this._renderer);return t.renderable=e,t.transform=e.groupTransform,t.texture=D.EMPTY,t.bounds={minX:0,maxX:1,minY:0,maxY:0},t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};Co.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"htmlText"}});function N2(){let{userAgent:r}=W.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(r)}var L2=p(()=>{ve()});var z2,V2,Ns,cm=p(()=>{"use strict";z2="http://www.w3.org/2000/svg",V2="http://www.w3.org/1999/xhtml",Ns=class{constructor(){this.svgRoot=document.createElementNS(z2,"svg"),this.foreignObject=document.createElementNS(z2,"foreignObject"),this.domElement=document.createElementNS(V2,"div"),this.styleElement=document.createElementNS(V2,"style"),this.image=new Image;let{foreignObject:e,svgRoot:t,styleElement:i,domElement:s}=this;e.setAttribute("width","10000"),e.setAttribute("height","10000"),e.style.overflow="hidden",t.appendChild(e),e.appendChild(i),e.appendChild(s)}}});function $2(r){let e=r._stroke,t=r._fill,s=[`div { ${[`color: ${q.shared.setValue(t.color).toHex()}`,`font-size: ${r.fontSize}px`,`font-family: ${r.fontFamily}`,`font-weight: ${r.fontWeight}`,`font-style: ${r.fontStyle}`,`font-variant: ${r.fontVariant}`,`letter-spacing: ${r.letterSpacing}px`,`text-align: ${r.align}`,`padding: ${r.padding}px`,`white-space: ${r.whiteSpace==="pre"&&r.wordWrap?"pre-wrap":r.whiteSpace}`,...r.lineHeight?[`line-height: ${r.lineHeight}px`]:[],...r.wordWrap?[`word-wrap: ${r.breakWords?"break-all":"break-word"}`,`max-width: ${r.wordWrapWidth}px`]:[],...e?[j2(e)]:[],...r.dropShadow?[q2(r.dropShadow)]:[],...r.cssOverrides].join(";")} }`];return yP(r.tagStyles,s),s.join(" ")}function q2(r){let e=q.shared.setValue(r.color).setAlpha(r.alpha).toHexa(),t=Math.round(Math.cos(r.angle)*r.distance),i=Math.round(Math.sin(r.angle)*r.distance),s=`${t}px ${i}px`;return r.blur>0?`text-shadow: ${s} ${r.blur}px ${e}`:`text-shadow: ${s} ${e}`}function j2(r){return[`-webkit-text-stroke-width: ${r.width}px`,`-webkit-text-stroke-color: ${q.shared.setValue(r.color).toHex()}`,`text-stroke-width: ${r.width}px`,`text-stroke-color: ${q.shared.setValue(r.color).toHex()}`,"paint-order: stroke"].join(";")}function yP(r,e){for(let t in r){let i=r[t],s=[];for(let n in i)W2[n]?s.push(W2[n](i[n])):H2[n]&&s.push(H2[n].replace("{{VALUE}}",i[n]));e.push(`${t} { ${s.join(";")} }`)}}var H2,W2,X2=p(()=>{He();H2={fontSize:"font-size: {{VALUE}}px",fontFamily:"font-family: {{VALUE}}",fontWeight:"font-weight: {{VALUE}}",fontStyle:"font-style: {{VALUE}}",fontVariant:"font-variant: {{VALUE}}",letterSpacing:"letter-spacing: {{VALUE}}px",align:"text-align: {{VALUE}}",padding:"padding: {{VALUE}}px",whiteSpace:"white-space: {{VALUE}}",lineHeight:"line-height: {{VALUE}}px",wordWrapWidth:"max-width: {{VALUE}}px"},W2={fill:r=>`color: ${q.shared.setValue(r).toHex()}`,breakWords:r=>`word-wrap: ${r?"break-all":"break-word"}`,stroke:j2,dropShadow:q2}});var ju,Y2=p(()=>{ge();Fs();X2();ju=class r extends lt{constructor(e={}){super(e),this._cssOverrides=[],this.cssOverrides=e.cssOverrides??[],this.tagStyles=e.tagStyles??{}}set cssOverrides(e){this._cssOverrides=e instanceof Array?e:[e],this.update()}get cssOverrides(){return this._cssOverrides}update(){this._cssStyle=null,super.update()}clone(){return new r({align:this.align,breakWords:this.breakWords,dropShadow:this.dropShadow?{...this.dropShadow}:null,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,cssOverrides:this.cssOverrides,tagStyles:{...this.tagStyles}})}get cssStyle(){return this._cssStyle||(this._cssStyle=$2(this)),this._cssStyle}addOverride(...e){let t=e.filter(i=>!this.cssOverrides.includes(i));t.length>0&&(this.cssOverrides.push(...t),this.update())}removeOverride(...e){let t=e.filter(i=>this.cssOverrides.includes(i));t.length>0&&(this.cssOverrides=this.cssOverrides.filter(i=>!t.includes(i)),this.update())}set fill(e){typeof e!="string"&&typeof e!="number"&&G("[HTMLTextStyle] only color fill is not supported by HTMLText"),super.fill=e}set stroke(e){e&&typeof e!="string"&&typeof e!="number"&&G("[HTMLTextStyle] only color stroke is not supported by HTMLText"),super.stroke=e}}});function K2(r,e){let t=e.fontFamily,i=[],s={},n=/font-family:([^;"\s]+)/g,o=r.match(n);function a(c){s[c]||(i.push(c),s[c]=!0)}if(Array.isArray(t))for(let c=0;c<t.length;c++)a(t[c]);else a(t);o&&o.forEach(c=>{let u=c.split(":")[1].trim();a(u)});for(let c in e.tagStyles){let u=e.tagStyles[c].fontFamily;a(u)}return i}var Q2=p(()=>{"use strict"});async function Z2(r){let t=await(await W.get().fetch(r)).blob(),i=new FileReader;return await new Promise((n,o)=>{i.onloadend=()=>n(i.result),i.onerror=o,i.readAsDataURL(t)})}var J2=p(()=>{ve()});async function um(r,e){let t=await Z2(e);return`@font-face {
|
|
469
469
|
font-family: "${r.fontFamily}";
|
|
470
470
|
src: url('${t}');
|
|
471
471
|
font-weight: ${r.fontWeight};
|
|
472
472
|
font-style: ${r.fontStyle};
|
|
473
|
-
}`}var
|
|
474
|
-
`)}var
|
|
473
|
+
}`}var eT=p(()=>{J2()});async function tT(r,e,t){let i=r.filter(s=>De.has(`${s}-and-url`)).map((s,n)=>{if(!Xu.has(s)){let{url:o}=De.get(`${s}-and-url`);n===0?Xu.set(s,um({fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:s},o)):Xu.set(s,um({fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:s},o))}return Xu.get(s)});return(await Promise.all(i)).join(`
|
|
474
|
+
`)}var Xu,rT=p(()=>{to();eT();Xu=new Map});function iT(r,e,t,i,s){let{domElement:n,styleElement:o,svgRoot:a}=s;n.innerHTML=`<style>${e.cssStyle}</style><div style='padding:0;'>${r}</div>`,n.setAttribute("style",`transform: scale(${t});transform-origin: top left; display: inline-block`),o.textContent=i;let{width:c,height:u}=s.image;return a.setAttribute("width",c.toString()),a.setAttribute("height",u.toString()),new XMLSerializer().serializeToString(a)}var sT=p(()=>{"use strict"});function nT(r,e){let t=bt.getOptimalCanvasAndContext(r.width,r.height,e),{context:i}=t;return i.clearRect(0,0,r.width,r.height),i.drawImage(r,0,0),t}var oT=p(()=>{Us()});function aT(r,e,t){return new Promise(async i=>{t&&await new Promise(s=>setTimeout(s,100)),r.onload=()=>{i()},r.src=`data:image/svg+xml;charset=utf8,${encodeURIComponent(e)}`,r.crossOrigin="anonymous"})}var cT=p(()=>{"use strict"});function lT(r,e,t,i){i||(i=uT||(uT=new Ns));let{domElement:s,styleElement:n,svgRoot:o}=i;s.innerHTML=`<style>${e.cssStyle};</style><div style='padding:0'>${r}</div>`,s.setAttribute("style","transform-origin: top left; display: inline-block"),t&&(n.textContent=t),document.body.appendChild(o);let a=s.getBoundingClientRect();o.remove();let c=e.padding*2;return{width:a.width-c,height:a.height-c}}var uT,hT=p(()=>{cm()});var Eo,dT=p(()=>{P();Us();Lr();Jt();L2();ge();gr();Xf();cm();Y2();Q2();rT();sT();oT();cT();hT();Eo=class{constructor(e){this._renderer=e,this._createCanvas=e.type===Me.WEBGPU}getTexture(e){return this.getTexturePromise(e)}getTexturePromise(e){return this._buildTexturePromise(e)}async _buildTexturePromise(e){let{text:t,style:i,resolution:s,textureStyle:n}=e,o=pe.get(Ns),a=K2(t,i),c=await tT(a,i,ju.defaultTextStyle),u=lT(t,i,c,o),l=Math.ceil(Math.ceil(Math.max(1,u.width)+i.padding*2)*s),h=Math.ceil(Math.ceil(Math.max(1,u.height)+i.padding*2)*s),f=o.image,d=2;f.width=(l|0)+d,f.height=(h|0)+d;let m=iT(t,i,s,c,o);await aT(f,m,N2()&&a.length>0);let x=f,g;this._createCanvas&&(g=nT(f,s));let _=Nu(g?g.canvas:x,f.width-d,f.height-d,s);return n&&(_.source.style=n),this._createCanvas&&(this._renderer.texture.initSource(_.source),bt.returnCanvasAndContext(g)),pe.return(o),_}returnTexturePromise(e){e.then(t=>{this._cleanUp(t)}).catch(()=>{G("HTMLTextSystem: Failed to clean texture")})}_cleanUp(e){Te.returnTexture(e,!0),e.source.resource=null,e.source.uploadMethodId="unknown"}destroy(){this._renderer=null}};Eo.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"htmlText"}});var lm=p(()=>{P();G2();dT();O.add(Eo);O.add(Co)});var fT,Ls,Yu=p(()=>{qr();wr();xs();ye();fT=class mT extends vt{constructor(...e){let t=e[0]??{};t instanceof Float32Array&&(z($,"use new MeshGeometry({ positions, uvs, indices }) instead"),t={positions:t,uvs:e[1],indices:e[2]}),t={...mT.defaultOptions,...t};let i=t.positions||new Float32Array([0,0,1,0,1,1,0,1]),s=t.uvs;s||(t.positions?s=new Float32Array(i.length):s=new Float32Array([0,0,1,0,1,1,0,1]));let n=t.indices||new Uint32Array([0,1,2,0,2,3]),o=t.shrinkBuffersToFit,a=new Ce({data:i,label:"attribute-mesh-positions",shrinkToFit:o,usage:Q.VERTEX|Q.COPY_DST}),c=new Ce({data:s,label:"attribute-mesh-uvs",shrinkToFit:o,usage:Q.VERTEX|Q.COPY_DST}),u=new Ce({data:n,label:"index-mesh-buffer",shrinkToFit:o,usage:Q.INDEX|Q.COPY_DST});super({attributes:{aPosition:{buffer:a,format:"float32x2",stride:8,offset:0},aUV:{buffer:c,format:"float32x2",stride:8,offset:0}},indexBuffer:u,topology:t.topology}),this.batchMode="auto"}get positions(){return this.attributes.aPosition.buffer.data}set positions(e){this.attributes.aPosition.buffer.data=e}get uvs(){return this.attributes.aUV.buffer.data}set uvs(e){this.attributes.aUV.buffer.data=e}get indices(){return this.indexBuffer.data}set indices(e){this.indexBuffer.data=e}};fT.defaultOptions={topology:"triangle-list",shrinkBuffersToFit:!1};Ls=fT});var Oi,pT,zs,Vs=p(()=>{"use strict";Oi={name:"local-uniform-bit",vertex:{header:`
|
|
475
475
|
|
|
476
476
|
struct LocalUniforms {
|
|
477
477
|
uTransformMatrix:mat3x3<f32>,
|
|
@@ -488,7 +488,7 @@ fn mainFragment(
|
|
|
488
488
|
{
|
|
489
489
|
vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
|
|
490
490
|
}
|
|
491
|
-
`}},
|
|
491
|
+
`}},pT={...Oi,vertex:{...Oi.vertex,header:Oi.vertex.header.replace("group(1)","group(2)")}},zs={name:"local-uniform-bit",vertex:{header:`
|
|
492
492
|
|
|
493
493
|
uniform mat3 uTransformMatrix;
|
|
494
494
|
uniform vec4 uColor;
|
|
@@ -501,7 +501,7 @@ fn mainFragment(
|
|
|
501
501
|
{
|
|
502
502
|
gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
|
|
503
503
|
}
|
|
504
|
-
`}}});var
|
|
504
|
+
`}}});var gT,xT,_T=p(()=>{"use strict";gT={name:"tiling-bit",vertex:{header:`
|
|
505
505
|
struct TilingUniforms {
|
|
506
506
|
uMapCoord:mat3x3<f32>,
|
|
507
507
|
uClampFrame:vec4<f32>,
|
|
@@ -544,7 +544,7 @@ fn mainFragment(
|
|
|
544
544
|
}
|
|
545
545
|
|
|
546
546
|
outColor = textureSampleBias(uTexture, uSampler, coord, bias);
|
|
547
|
-
`}},
|
|
547
|
+
`}},xT={name:"tiling-bit",vertex:{header:`
|
|
548
548
|
uniform mat3 uTextureTransform;
|
|
549
549
|
uniform vec4 uSizeAnchor;
|
|
550
550
|
|
|
@@ -566,7 +566,7 @@ fn mainFragment(
|
|
|
566
566
|
|
|
567
567
|
outColor = texture(uTexture, coord, unclamped == coord ? 0.0 : -32.0);// lod-bias very negative to force lod 0
|
|
568
568
|
|
|
569
|
-
`}}});var Ym,Km,Ml,Ww=p(()=>{te();Qr();un();Zr();Ot();it();le();Hw();Ml=class extends ke{constructor(){Ym??(Ym=Jt({name:"tiling-sprite-shader",bits:[es,zw,tr]})),Km??(Km=er({name:"tiling-sprite-shader",bits:[cn,Vw,rr]}));let e=new ce({uMapCoord:{value:new R,type:"mat3x3<f32>"},uClampFrame:{value:new Float32Array([0,0,1,1]),type:"vec4<f32>"},uClampOffset:{value:new Float32Array([0,0]),type:"vec2<f32>"},uTextureTransform:{value:new R,type:"mat3x3<f32>"},uSizeAnchor:{value:new Float32Array([100,100,.5,.5]),type:"vec4<f32>"}});super({glProgram:Km,gpuProgram:Ym,resources:{localUniforms:new ce({uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),tilingUniforms:e,uTexture:M.EMPTY.source,uSampler:M.EMPTY.source.style}})}updateUniforms(e,t,i,s,n,o){let a=this.resources.tilingUniforms,c=o.width,u=o.height,l=o.textureMatrix,h=a.uniforms.uTextureTransform;h.set(i.a*c/e,i.b*c/t,i.c*u/e,i.d*u/t,i.tx/e,i.ty/t),h.invert(),a.uniforms.uMapCoord=l.mapCoord,a.uniforms.uClampFrame=l.uClampFrame,a.uniforms.uClampOffset=l.uClampOffset,a.uniforms.uTextureTransform=h,a.uniforms.uSizeAnchor[0]=e,a.uniforms.uSizeAnchor[1]=t,a.uniforms.uSizeAnchor[2]=s,a.uniforms.uSizeAnchor[3]=n,o&&(this.resources.uTexture=o.source,this.resources.uSampler=o.source.style)}}});var Il,$w=p(()=>{Dl();Il=class extends an{constructor(){super({positions:new Float32Array([0,0,1,0,1,1,0,1]),uvs:new Float32Array([0,0,1,0,1,1,0,1]),indices:new Uint32Array([0,1,2,0,2,3])})}}});function qw(r,e){let t=r.anchor.x,i=r.anchor.y;e[0]=-t*r.width,e[1]=-i*r.height,e[2]=(1-t)*r.width,e[3]=-i*r.height,e[4]=(1-t)*r.width,e[5]=(1-i)*r.height,e[6]=-t*r.width,e[7]=(1-i)*r.height}var jw=p(()=>{"use strict"});function Xw(r,e,t,i){let s=0,n=r.length/(e||2),o=i.a,a=i.b,c=i.c,u=i.d,l=i.tx,h=i.ty;for(t*=e;s<n;){let f=r[t],d=r[t+1];r[t]=o*f+c*d+l,r[t+1]=a*f+u*d+h,t+=e,s++}}var Yw=p(()=>{"use strict"});function Kw(r,e){let t=r.texture,i=t.frame.width,s=t.frame.height,n=0,o=0;r.applyAnchorToTexture&&(n=r.anchor.x,o=r.anchor.y),e[0]=e[6]=-n,e[2]=e[4]=1-n,e[1]=e[3]=-o,e[5]=e[7]=1-o;let a=R.shared;a.copyFrom(r._tileTransform.matrix),a.tx/=r.width,a.ty/=r.height,a.invert(),a.scale(r.width/i,r.height/s),Xw(e,2,0,a)}var Qw=p(()=>{te();Yw()});var Fl,Qm,Qo,Zw=p(()=>{B();Ao();Gt();ir();Ys();ol();Dl();Ww();$w();jw();Qw();Fl=new Il,Qm=class{constructor(){this.canBatch=!0,this.geometry=new an({indices:Fl.indices.slice(),positions:Fl.positions.slice(),uvs:Fl.uvs.slice()})}destroy(){this.geometry.destroy(),this.shader?.destroy()}},Qo=class{constructor(e){this._state=Pe.default2d,this._renderer=e}validateRenderable(e){let t=this._getTilingSpriteData(e),i=t.canBatch;this._updateCanBatch(e);let s=t.canBatch;if(s&&s===i){let{batchableMesh:n}=t;return!n._batcher.checkAndUpdateTexture(n,e.texture)}return i!==s}addRenderable(e,t){let i=this._renderer.renderPipes.batch;this._updateCanBatch(e);let s=this._getTilingSpriteData(e),{geometry:n,canBatch:o}=s;if(o){s.batchableMesh||(s.batchableMesh=new Jr);let a=s.batchableMesh;e.didViewUpdate&&(this._updateBatchableMesh(e),a.geometry=n,a.renderable=e,a.transform=e.groupTransform,a.setTexture(e._texture)),a.roundPixels=this._renderer._roundPixels|e._roundPixels,i.addToBatch(a,t)}else i.break(t),s.shader||(s.shader=new Ml),this.updateRenderable(e),t.add(e)}execute(e){let{shader:t}=this._getTilingSpriteData(e);t.groups[0]=this._renderer.globalUniforms.bindGroup;let i=t.resources.localUniforms.uniforms;i.uTransformMatrix=e.groupTransform,i.uRound=this._renderer._roundPixels|e._roundPixels,sr(e.groupColorAlpha,i.uColor,0),this._state.blendMode=vr(e.groupBlendMode,e.texture._source),this._renderer.encoder.draw({geometry:Fl,shader:t,state:this._state})}updateRenderable(e){let t=this._getTilingSpriteData(e),{canBatch:i}=t;if(i){let{batchableMesh:s}=t;e.didViewUpdate&&this._updateBatchableMesh(e),s._batcher.updateElement(s)}else if(e.didViewUpdate){let{shader:s}=t;s.updateUniforms(e.width,e.height,e._tileTransform.matrix,e.anchor.x,e.anchor.y,e.texture)}}_getTilingSpriteData(e){return e._gpuData[this._renderer.uid]||this._initTilingSpriteData(e)}_initTilingSpriteData(e){let t=new Qm;return t.renderable=e,e._gpuData[this._renderer.uid]=t,t}_updateBatchableMesh(e){let t=this._getTilingSpriteData(e),{geometry:i}=t,s=e.texture.source.style;s.addressMode!=="repeat"&&(s.addressMode="repeat",s.update()),Kw(e,i.uvs),qw(e,i.positions)}destroy(){this._renderer=null}_updateCanBatch(e){let t=this._getTilingSpriteData(e),i=e.texture,s=!0;return this._renderer.type===Ie.WEBGL&&(s=this._renderer.context.supports.nonPowOf2wrapping),t.canBatch=i.textureMatrix.isSimple&&(s||i.source.isPowerOfTwo),t.canBatch}};Qo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"tilingSprite"}});var Zm=p(()=>{B();Zw();O.add(Qo)});var Jw,tS,rS=p(()=>{ye();Dl();Jw=class eS extends an{constructor(...e){super({});let t=e[0]??{};typeof t=="number"&&(z($,"PlaneGeometry constructor changed please use { width, height, verticesX, verticesY } instead"),t={width:t,height:e[1],verticesX:e[2],verticesY:e[3]}),this.build(t)}build(e){e={...eS.defaultOptions,...e},this.verticesX=this.verticesX??e.verticesX,this.verticesY=this.verticesY??e.verticesY,this.width=this.width??e.width,this.height=this.height??e.height;let t=this.verticesX*this.verticesY,i=[],s=[],n=[],o=this.verticesX-1,a=this.verticesY-1,c=this.width/o,u=this.height/a;for(let h=0;h<t;h++){let f=h%this.verticesX,d=h/this.verticesX|0;i.push(f*c,d*u),s.push(f/o,d/a)}let l=o*a;for(let h=0;h<l;h++){let f=h%o,d=h/o|0,m=d*this.verticesX+f,x=d*this.verticesX+f+1,g=(d+1)*this.verticesX+f,_=(d+1)*this.verticesX+f+1;n.push(m,x,g,x,_,g)}this.buffers[0].data=new Float32Array(i),this.buffers[1].data=new Float32Array(s),this.indexBuffer.data=new Uint32Array(n),this.buffers[0].update(),this.buffers[1].update(),this.indexBuffer.update()}};Jw.defaultOptions={width:100,height:100,verticesX:10,verticesY:10};tS=Jw});var iS,nS,oS=p(()=>{rS();iS=class sS extends tS{constructor(e={}){e={...sS.defaultOptions,...e},super({width:e.width,height:e.height,verticesX:4,verticesY:4}),this.update(e)}update(e){this.width=e.width??this.width,this.height=e.height??this.height,this._originalWidth=e.originalWidth??this._originalWidth,this._originalHeight=e.originalHeight??this._originalHeight,this._leftWidth=e.leftWidth??this._leftWidth,this._rightWidth=e.rightWidth??this._rightWidth,this._topHeight=e.topHeight??this._topHeight,this._bottomHeight=e.bottomHeight??this._bottomHeight,this._anchorX=e.anchor?.x,this._anchorY=e.anchor?.y,this.updateUvs(),this.updatePositions()}updatePositions(){let e=this.positions,{width:t,height:i,_leftWidth:s,_rightWidth:n,_topHeight:o,_bottomHeight:a,_anchorX:c,_anchorY:u}=this,l=s+n,h=t>l?1:t/l,f=o+a,d=i>f?1:i/f,m=Math.min(h,d),x=c*t,g=u*i;e[0]=e[8]=e[16]=e[24]=-x,e[2]=e[10]=e[18]=e[26]=s*m-x,e[4]=e[12]=e[20]=e[28]=t-n*m-x,e[6]=e[14]=e[22]=e[30]=t-x,e[1]=e[3]=e[5]=e[7]=-g,e[9]=e[11]=e[13]=e[15]=o*m-g,e[17]=e[19]=e[21]=e[23]=i-a*m-g,e[25]=e[27]=e[29]=e[31]=i-g,this.getBuffer("aPosition").update()}updateUvs(){let e=this.uvs;e[0]=e[8]=e[16]=e[24]=0,e[1]=e[3]=e[5]=e[7]=0,e[6]=e[14]=e[22]=e[30]=1,e[25]=e[27]=e[29]=e[31]=1;let t=1/this._originalWidth,i=1/this._originalHeight;e[2]=e[10]=e[18]=e[26]=t*this._leftWidth,e[9]=e[11]=e[13]=e[15]=i*this._topHeight,e[4]=e[12]=e[20]=e[28]=1-t*this._rightWidth,e[17]=e[19]=e[21]=e[23]=1-i*this._bottomHeight,this.getBuffer("aUV").update()}};iS.defaultOptions={width:100,height:100,leftWidth:10,topHeight:10,rightWidth:10,bottomHeight:10,originalWidth:100,originalHeight:100};nS=iS});var Jm,Zo,aS=p(()=>{B();ol();oS();Jm=class extends Jr{constructor(){super(),this.geometry=new nS}destroy(){this.geometry.destroy()}},Zo=class{constructor(e){this._renderer=e}addRenderable(e,t){let i=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,i),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,t),t._batcher.updateElement(t)}validateRenderable(e){let t=this._getGpuSprite(e);return!t._batcher.checkAndUpdateTexture(t,e._texture)}_updateBatchableSprite(e,t){t.geometry.update(e),t.setTexture(e._texture)}_getGpuSprite(e){return e._gpuData[this._renderer.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=e._gpuData[this._renderer.uid]=new Jm,i=t;return i.renderable=e,i.transform=e.groupTransform,i.texture=e._texture,i.roundPixels=this._renderer._roundPixels|e._roundPixels,e.didViewUpdate||this._updateBatchableSprite(e,i),t}destroy(){this._renderer=null}};Zo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"nineSliceSprite"}});var ep=p(()=>{B();aS();O.add(Zo)});var Jo,cS=p(()=>{B();Jo=class{constructor(e){this._renderer=e}push(e,t,i){this._renderer.renderPipes.batch.break(i),i.add({renderPipeId:"filter",canBundle:!1,action:"pushFilter",container:t,filterEffect:e})}pop(e,t,i){this._renderer.renderPipes.batch.break(i),i.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}execute(e){e.action==="pushFilter"?this._renderer.filter.push(e):e.action==="popFilter"&&this._renderer.filter.pop()}destroy(){this._renderer=null}};Jo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"filter"}});function uS(r,e){e.clear();let t=e.matrix;for(let i=0;i<r.length;i++){let s=r[i];s.globalDisplayStatus<7||(e.matrix=s.worldTransform,e.addBounds(s.bounds))}return e.matrix=t,e}var lS=p(()=>{"use strict"});var KB,tp,ea,hS=p(()=>{B();te();Xr();Os();it();le();Hr();ir();at();lS();pe();KB=new At({attributes:{aPosition:{buffer:new Float32Array([0,0,1,0,1,1,0,1]),format:"float32x2",stride:2*4,offset:0}},indexBuffer:new Uint32Array([0,1,2,0,2,3])}),tp=class{constructor(){this.skip=!1,this.inputTexture=null,this.backTexture=null,this.filters=null,this.bounds=new ae,this.container=null,this.blendRequired=!1,this.outputRenderSurface=null,this.outputOffset={x:0,y:0},this.globalFrame={x:0,y:0,width:0,height:0}}},ea=class{constructor(e){this._filterStackIndex=0,this._filterStack=[],this._filterGlobalUniforms=new ce({uInputSize:{value:new Float32Array(4),type:"vec4<f32>"},uInputPixel:{value:new Float32Array(4),type:"vec4<f32>"},uInputClamp:{value:new Float32Array(4),type:"vec4<f32>"},uOutputFrame:{value:new Float32Array(4),type:"vec4<f32>"},uGlobalFrame:{value:new Float32Array(4),type:"vec4<f32>"},uOutputTexture:{value:new Float32Array(4),type:"vec4<f32>"}}),this._globalFilterBindGroup=new Ne({}),this.renderer=e}get activeBackTexture(){return this._activeFilterData?.backTexture}push(e){let t=this.renderer,i=e.filterEffect.filters,s=this._pushFilterData();s.skip=!1,s.filters=i,s.container=e.container,s.outputRenderSurface=t.renderTarget.renderSurface;let n=t.renderTarget.renderTarget.colorTexture.source,o=n.resolution,a=n.antialias;if(i.length===0){s.skip=!0;return}let c=s.bounds;if(e.renderables?uS(e.renderables,c):e.filterEffect.filterArea?(c.clear(),c.addRect(e.filterEffect.filterArea),c.applyMatrix(e.container.worldTransform)):e.container.getFastGlobalBounds(!0,c),e.container){let x=(e.container.renderGroup||e.container.parentRenderGroup).cacheToLocalTransform;x&&c.applyMatrix(x)}if(this._calculateFilterBounds(s,t.renderTarget.rootViewPort,a,o,1),s.skip)return;let u=this._getPreviousFilterData(),l=o,h=0,f=0;u&&(h=u.bounds.minX,f=u.bounds.minY,l=u.inputTexture.source._resolution),s.outputOffset.x=c.minX-h,s.outputOffset.y=c.minY-f;let d=s.globalFrame;if(d.x=h*l,d.y=f*l,d.width=n.width*l,d.height=n.height*l,s.backTexture=M.EMPTY,s.blendRequired){t.renderTarget.finishRenderPass();let m=t.renderTarget.getRenderTarget(s.outputRenderSurface);s.backTexture=this.getBackTexture(m,c,u?.bounds)}s.inputTexture=Te.getOptimalTexture(c.width,c.height,s.resolution,s.antialias),t.renderTarget.bind(s.inputTexture,!0),t.globalUniforms.push({offset:c})}generateFilteredTexture({texture:e,filters:t}){let i=this._pushFilterData();this._activeFilterData=i,i.skip=!1,i.filters=t;let s=e.source,n=s.resolution,o=s.antialias;if(t.length===0)return i.skip=!0,e;let a=i.bounds;if(a.addRect(e.frame),this._calculateFilterBounds(i,a.rectangle,o,n,0),i.skip)return e;let c=n,u=0,l=0;i.outputOffset.x=-a.minX,i.outputOffset.y=-a.minY;let h=i.globalFrame;h.x=u*c,h.y=l*c,h.width=s.width*c,h.height=s.height*c,i.outputRenderSurface=Te.getOptimalTexture(a.width,a.height,i.resolution,i.antialias),i.backTexture=M.EMPTY,i.inputTexture=e,this.renderer.renderTarget.finishRenderPass(),this._applyFiltersToTexture(i,!0);let d=i.outputRenderSurface;return d.source.alphaMode="premultiplied-alpha",d}pop(){let e=this.renderer,t=this._popFilterData();t.skip||(e.globalUniforms.pop(),e.renderTarget.finishRenderPass(),this._activeFilterData=t,this._applyFiltersToTexture(t,!1),t.blendRequired&&Te.returnTexture(t.backTexture),Te.returnTexture(t.inputTexture))}getBackTexture(e,t,i){let s=e.colorTexture.source._resolution,n=Te.getOptimalTexture(t.width,t.height,s,!1),o=t.minX,a=t.minY;i&&(o-=i.minX,a-=i.minY),o=Math.floor(o*s),a=Math.floor(a*s);let c=Math.ceil(t.width*s),u=Math.ceil(t.height*s);return this.renderer.renderTarget.copyToTexture(e,n,{x:o,y:a},{width:c,height:u},{x:0,y:0}),n}applyFilter(e,t,i,s){let n=this.renderer,o=this._activeFilterData,a=o.outputRenderSurface,c=this._filterGlobalUniforms,u=c.uniforms,l=u.uOutputFrame,h=u.uInputSize,f=u.uInputPixel,d=u.uInputClamp,m=u.uGlobalFrame,x=u.uOutputTexture;a===i?(l[0]=o.outputOffset.x,l[1]=o.outputOffset.y):(l[0]=0,l[1]=0),l[2]=t.frame.width,l[3]=t.frame.height,h[0]=t.source.width,h[1]=t.source.height,h[2]=1/h[0],h[3]=1/h[1],f[0]=t.source.pixelWidth,f[1]=t.source.pixelHeight,f[2]=1/f[0],f[3]=1/f[1],d[0]=.5*f[2],d[1]=.5*f[3],d[2]=t.frame.width*h[2]-.5*f[2],d[3]=t.frame.height*h[3]-.5*f[3],m[0]=o.globalFrame.x,m[1]=o.globalFrame.y,m[2]=o.globalFrame.width,m[3]=o.globalFrame.height,i instanceof M&&(i.source.resource=null);let g=this.renderer.renderTarget.getRenderTarget(i);if(n.renderTarget.bind(i,!!s),i instanceof M?(x[0]=i.frame.width,x[1]=i.frame.height):(x[0]=g.width,x[1]=g.height),x[2]=g.isRoot?-1:1,c.update(),n.renderPipes.uniformBatch){let _=n.renderPipes.uniformBatch.getUboResource(c);this._globalFilterBindGroup.setResource(_,0)}else this._globalFilterBindGroup.setResource(c,0);this._globalFilterBindGroup.setResource(t.source,1),this._globalFilterBindGroup.setResource(t.source.style,2),e.groups[0]=this._globalFilterBindGroup,n.encoder.draw({geometry:KB,shader:e,state:e._state,topology:"triangle-list"}),n.type===Ie.WEBGL&&n.renderTarget.finishRenderPass()}calculateSpriteMatrix(e,t){let i=this._activeFilterData,s=e.set(i.inputTexture._source.width,0,0,i.inputTexture._source.height,i.bounds.minX,i.bounds.minY),n=t.worldTransform.copyTo(R.shared),o=t.renderGroup||t.parentRenderGroup;return o&&o.cacheToLocalTransform&&n.prepend(o.cacheToLocalTransform),n.invert(),s.prepend(n),s.scale(1/t.texture.frame.width,1/t.texture.frame.height),s.translate(t.anchor.x,t.anchor.y),s}destroy(){}_applyFiltersToTexture(e,t){let i=e.inputTexture,s=e.bounds,n=e.filters;if(this._globalFilterBindGroup.setResource(i.source.style,2),this._globalFilterBindGroup.setResource(e.backTexture.source,3),n.length===1)n[0].apply(this,i,e.outputRenderSurface,t);else{let o=e.inputTexture,a=Te.getOptimalTexture(s.width,s.height,o.source._resolution,!1),c=a,u=0;for(u=0;u<n.length-1;++u){n[u].apply(this,o,c,!0);let h=o;o=c,c=h}n[u].apply(this,o,e.outputRenderSurface,t),Te.returnTexture(a)}}_calculateFilterBounds(e,t,i,s,n){let o=this.renderer,a=e.bounds,c=e.filters,u=1/0,l=0,h=!0,f=!1,d=!1,m=!0;for(let x=0;x<c.length;x++){let g=c[x];if(u=Math.min(u,g.resolution==="inherit"?s:g.resolution),l+=g.padding,g.antialias==="off"?h=!1:g.antialias==="inherit"&&h&&(h=i),g.clipToViewport||(m=!1),!!!(g.compatibleRenderers&o.type)){d=!1;break}if(g.blendRequired&&!(o.backBuffer?.useBackBuffer??!0)){N("Blend filter requires backBuffer on WebGL renderer to be enabled. Set `useBackBuffer: true` in the renderer options."),d=!1;break}d=g.enabled||d,f||(f=g.blendRequired)}if(!d){e.skip=!0;return}if(m&&a.fitBounds(0,t.width/s,0,t.height/s),a.scale(u).ceil().scale(1/u).pad((l|0)*n),!a.isPositive){e.skip=!0;return}e.antialias=h,e.resolution=u,e.blendRequired=f}_popFilterData(){return this._filterStackIndex--,this._filterStack[this._filterStackIndex]}_getPreviousFilterData(){let e,t=this._filterStackIndex-1;for(;t>1&&(t--,e=this._filterStack[t],!!e.skip););return e}_pushFilterData(){let e=this._filterStack[this._filterStackIndex];return e||(e=this._filterStack[this._filterStackIndex]=new tp),this._filterStackIndex++,e}};ea.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"filter"}});var rp=p(()=>{B();cS();hS();O.add(ea);O.add(Jo)});var QB={};var dS=p(()=>{W_();Jd();J_();tb();Uu();Hu();um();lm();mm();Gm();$m();Xm();Zm();ep();rp()});var ZB={};var mS=p(()=>{Jd();Uu();Hu();um();lm();mm();Gm();$m();Xm();Zm();ep();rp()});var gS,xS,_S=p(()=>{$i();Ns();Ot();Gt();gS=class ip extends ke{constructor(e){e={...ip.defaultOptions,...e},super(e),this.enabled=!0,this._state=Pe.for2d(),this.blendMode=e.blendMode,this.padding=e.padding,typeof e.antialias=="boolean"?this.antialias=e.antialias?"on":"off":this.antialias=e.antialias,this.resolution=e.resolution,this.blendRequired=e.blendRequired,this.clipToViewport=e.clipToViewport,this.addResource("uTexture",0,1)}apply(e,t,i,s){e.applyFilter(this,t,i,s)}get blendMode(){return this._state.blendMode}set blendMode(e){this._state.blendMode=e}static from(e){let{gpu:t,gl:i,...s}=e,n,o;return t&&(n=Bt.from(t)),i&&(o=Pt.from(i)),new ip({gpuProgram:n,glProgram:o,...s})}};gS.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1,clipToViewport:!0};xS=gS});async function bS(r){if(!r)for(let e=0;e<sp.length;e++){let t=sp[e];if(t.value.test()){await t.value.load();return}}}var sp,yS=p(()=>{B();sp=[];O.handleByNamedList(b.Environment,sp)});function Ul(){if(typeof ta=="boolean")return ta;try{ta=new Function("param1","param2","param3","return param1[param2] === param3;")({a:"b"},"a","b")===!0}catch{ta=!1}return ta}var ta,np=p(()=>{"use strict"});var Le,ln=p(()=>{"use strict";Le=(r=>(r[r.NONE=0]="NONE",r[r.COLOR=16384]="COLOR",r[r.STENCIL=1024]="STENCIL",r[r.DEPTH=256]="DEPTH",r[r.COLOR_DEPTH=16640]="COLOR_DEPTH",r[r.COLOR_STENCIL=17408]="COLOR_STENCIL",r[r.DEPTH_STENCIL=1280]="DEPTH_STENCIL",r[r.ALL=17664]="ALL",r))(Le||{})});var hn,op=p(()=>{"use strict";hn=class{constructor(e){this.items=[],this._name=e}emit(e,t,i,s,n,o,a,c){let{name:u,items:l}=this;for(let h=0,f=l.length;h<f;h++)l[h][u](e,t,i,s,n,o,a,c);return this}add(e){return e[this._name]&&(this.remove(e),this.items.push(e)),this}remove(e){let t=this.items.indexOf(e);return t!==-1&&this.items.splice(t,1),this}contains(e){return this.items.indexOf(e)!==-1}removeAll(){return this.items.length=0,this}destroy(){this.removeAll(),this.items=null,this._name=null}get empty(){return this.items.length===0}get name(){return this._name}}});var JB,TS,ti,ra=p(()=>{He();yS();jt();np();Oe();ye();ln();op();Ve();JB=["init","destroy","contextChange","resolutionChange","resetState","renderEnd","renderStart","render","update","postrender","prerender"],TS=class wS extends oe{constructor(e){super(),this.uid=K("renderer"),this.runners=Object.create(null),this.renderPipes=Object.create(null),this._initOptions={},this._systemsHash=Object.create(null),this.type=e.type,this.name=e.name,this.config=e;let t=[...JB,...this.config.runners??[]];this._addRunners(...t),this._unsafeEvalCheck()}async init(e={}){let t=e.skipExtensionImports===!0?!0:e.manageImports===!1;await bS(t),this._addSystems(this.config.systems),this._addPipes(this.config.renderPipes,this.config.renderPipeAdaptors);for(let i in this._systemsHash)e={...this._systemsHash[i].constructor.defaultOptions,...e};e={...wS.defaultOptions,...e},this._roundPixels=e.roundPixels?1:0;for(let i=0;i<this.runners.init.items.length;i++)await this.runners.init.items[i].init(e);this._initOptions=e}render(e,t){let i=e;if(i instanceof we&&(i={container:i},t&&(z($,"passing a second argument is deprecated, please use render options instead"),i.target=t.renderTexture)),i.target||(i.target=this.view.renderTarget),i.target===this.view.renderTarget&&(this._lastObjectRendered=i.container,i.clearColor??(i.clearColor=this.background.colorRgba),i.clear??(i.clear=this.background.clearBeforeRender)),i.clearColor){let s=Array.isArray(i.clearColor)&&i.clearColor.length===4;i.clearColor=s?i.clearColor:q.shared.setValue(i.clearColor).toArray()}i.transform||(i.container.updateLocalTransform(),i.transform=i.container.localTransform),i.container.enableRenderGroup(),this.runners.prerender.emit(i),this.runners.renderStart.emit(i),this.runners.render.emit(i),this.runners.renderEnd.emit(i),this.runners.postrender.emit(i)}resize(e,t,i){let s=this.view.resolution;this.view.resize(e,t,i),this.emit("resize",this.view.screen.width,this.view.screen.height,this.view.resolution),i!==void 0&&i!==s&&this.runners.resolutionChange.emit(i)}clear(e={}){let t=this;e.target||(e.target=t.renderTarget.renderTarget),e.clearColor||(e.clearColor=this.background.colorRgba),e.clear??(e.clear=Le.ALL);let{clear:i,clearColor:s,target:n}=e;q.shared.setValue(s??this.background.colorRgba),t.renderTarget.clear(n,i,q.shared.toArray())}get resolution(){return this.view.resolution}set resolution(e){this.view.resolution=e,this.runners.resolutionChange.emit(e)}get width(){return this.view.texture.frame.width}get height(){return this.view.texture.frame.height}get canvas(){return this.view.canvas}get lastObjectRendered(){return this._lastObjectRendered}get renderingToScreen(){return this.renderTarget.renderingToScreen}get screen(){return this.view.screen}_addRunners(...e){e.forEach(t=>{this.runners[t]=new hn(t)})}_addSystems(e){let t;for(t in e){let i=e[t];this._addSystem(i.value,i.name)}}_addSystem(e,t){let i=new e(this);if(this[t])throw new Error(`Whoops! The name "${t}" is already in use`);this[t]=i,this._systemsHash[t]=i;for(let s in this.runners)this.runners[s].add(i);return this}_addPipes(e,t){let i=t.reduce((s,n)=>(s[n.name]=n.value,s),{});e.forEach(s=>{let n=s.value,o=s.name,a=i[o];this.renderPipes[o]=new n(this,a?new a:null)})}destroy(e=!1){this.runners.destroy.items.reverse(),this.runners.destroy.emit(e),Object.values(this.runners).forEach(t=>{t.destroy()}),this._systemsHash=null,this.renderPipes=null}generateTexture(e){return this.textureGenerator.generateTexture(e)}get roundPixels(){return!!this._roundPixels}_unsafeEvalCheck(){if(!Ul())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}resetState(){this.runners.resetState.emit()}};TS.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};ti=TS});var ia,CS=p(()=>{B();te();Wu();Qr();Ro();Do();un();Zr();Ot();it();ia=class{constructor(){this._maxTextures=0}contextChange(e){let t=new ce({uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}});this._maxTextures=e.limits.maxBatchableTextures;let i=Jt({name:"graphics",bits:[Ls,Vs(this._maxTextures),Lw,tr]});this.shader=new ke({gpuProgram:i,resources:{localUniforms:t}})}execute(e,t){let i=t.context,s=i.customShader||this.shader,n=e.renderer,o=n.graphicsContext,{batcher:a,instructions:c}=o.getContextRenderData(i),u=n.encoder;u.setGeometry(a.geometry,s.gpuProgram);let l=n.globalUniforms.bindGroup;u.setBindGroup(0,l,s.gpuProgram);let h=n.renderPipes.uniformBatch.getUniformBindGroup(s.resources.localUniforms,!0);u.setBindGroup(2,h,s.gpuProgram);let f=c.instructions,d=null;for(let m=0;m<c.instructionSize;m++){let x=f[m];if(x.topology!==d&&(d=x.topology,u.setPipelineFromGeometryProgramAndState(a.geometry,s.gpuProgram,e.state,x.topology)),s.groups[1]=x.bindGroup,!x.gpuBindGroup){let g=x.textures;x.bindGroup=Fs(g.textures,g.count,this._maxTextures),x.gpuBindGroup=n.bindGroup.getBindGroup(x.bindGroup,s.gpuProgram,1)}u.setBindGroup(1,x.bindGroup,s.gpuProgram),u.renderPassEncoder.drawIndexed(x.size,1,x.start)}}destroy(){this.shader.destroy(!0),this.shader=null}};ia.extension={type:[b.WebGPUPipesAdaptor],name:"graphics"}});var ES,kS,ap=p(()=>{"use strict";ES={name:"texture-bit",vertex:{header:`
|
|
569
|
+
`}}});var hm,dm,Ku,bT=p(()=>{ee();Xr();Vs();Yr();Ut();rt();le();_T();Ku=class extends Ee{constructor(){hm??(hm=Yt({name:"tiling-sprite-shader",bits:[Oi,gT,Qt]})),dm??(dm=Kt({name:"tiling-sprite-shader",bits:[zs,xT,Zt]}));let e=new ce({uMapCoord:{value:new R,type:"mat3x3<f32>"},uClampFrame:{value:new Float32Array([0,0,1,1]),type:"vec4<f32>"},uClampOffset:{value:new Float32Array([0,0]),type:"vec2<f32>"},uTextureTransform:{value:new R,type:"mat3x3<f32>"},uSizeAnchor:{value:new Float32Array([100,100,.5,.5]),type:"vec4<f32>"}});super({glProgram:dm,gpuProgram:hm,resources:{localUniforms:new ce({uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),tilingUniforms:e,uTexture:D.EMPTY.source,uSampler:D.EMPTY.source.style}})}updateUniforms(e,t,i,s,n,o){let a=this.resources.tilingUniforms,c=o.width,u=o.height,l=o.textureMatrix,h=a.uniforms.uTextureTransform;h.set(i.a*c/e,i.b*c/t,i.c*u/e,i.d*u/t,i.tx/e,i.ty/t),h.invert(),a.uniforms.uMapCoord=l.mapCoord,a.uniforms.uClampFrame=l.uClampFrame,a.uniforms.uClampOffset=l.uClampOffset,a.uniforms.uTextureTransform=h,a.uniforms.uSizeAnchor[0]=e,a.uniforms.uSizeAnchor[1]=t,a.uniforms.uSizeAnchor[2]=s,a.uniforms.uSizeAnchor[3]=n,o&&(this.resources.uTexture=o.source,this.resources.uSampler=o.source.style)}}});var Qu,yT=p(()=>{Yu();Qu=class extends Ls{constructor(){super({positions:new Float32Array([0,0,1,0,1,1,0,1]),uvs:new Float32Array([0,0,1,0,1,1,0,1]),indices:new Uint32Array([0,1,2,0,2,3])})}}});function TT(r,e){let t=r.anchor.x,i=r.anchor.y;e[0]=-t*r.width,e[1]=-i*r.height,e[2]=(1-t)*r.width,e[3]=-i*r.height,e[4]=(1-t)*r.width,e[5]=(1-i)*r.height,e[6]=-t*r.width,e[7]=(1-i)*r.height}var wT=p(()=>{"use strict"});function ST(r,e,t,i){let s=0,n=r.length/(e||2),o=i.a,a=i.b,c=i.c,u=i.d,l=i.tx,h=i.ty;for(t*=e;s<n;){let f=r[t],d=r[t+1];r[t]=o*f+c*d+l,r[t+1]=a*f+u*d+h,t+=e,s++}}var vT=p(()=>{"use strict"});function CT(r,e){let t=r.texture,i=t.frame.width,s=t.frame.height,n=0,o=0;r.applyAnchorToTexture&&(n=r.anchor.x,o=r.anchor.y),e[0]=e[6]=-n,e[2]=e[4]=1-n,e[1]=e[3]=-o,e[5]=e[7]=1-o;let a=R.shared;a.copyFrom(r._tileTransform.matrix),a.tx/=r.width,a.ty/=r.height,a.invert(),a.scale(r.width/i,r.height/s),ST(e,2,0,a)}var ET=p(()=>{ee();vT()});var Zu,fm,ko,kT=p(()=>{P();io();Ot();Jt();Ps();Su();Yu();bT();yT();wT();ET();Zu=new Qu,fm=class{constructor(){this.canBatch=!0,this.geometry=new Ls({indices:Zu.indices.slice(),positions:Zu.positions.slice(),uvs:Zu.uvs.slice()})}destroy(){this.geometry.destroy(),this.shader?.destroy()}},ko=class{constructor(e){this._state=Ae.default2d,this._renderer=e}validateRenderable(e){let t=this._getTilingSpriteData(e),i=t.canBatch;this._updateCanBatch(e);let s=t.canBatch;if(s&&s===i){let{batchableMesh:n}=t;return!n._batcher.checkAndUpdateTexture(n,e.texture)}return i!==s}addRenderable(e,t){let i=this._renderer.renderPipes.batch;this._updateCanBatch(e);let s=this._getTilingSpriteData(e),{geometry:n,canBatch:o}=s;if(o){s.batchableMesh||(s.batchableMesh=new Kr);let a=s.batchableMesh;e.didViewUpdate&&(this._updateBatchableMesh(e),a.geometry=n,a.renderable=e,a.transform=e.groupTransform,a.setTexture(e._texture)),a.roundPixels=this._renderer._roundPixels|e._roundPixels,i.addToBatch(a,t)}else i.break(t),s.shader||(s.shader=new Ku),this.updateRenderable(e),t.add(e)}execute(e){let{shader:t}=this._getTilingSpriteData(e);t.groups[0]=this._renderer.globalUniforms.bindGroup;let i=t.resources.localUniforms.uniforms;i.uTransformMatrix=e.groupTransform,i.uRound=this._renderer._roundPixels|e._roundPixels,er(e.groupColorAlpha,i.uColor,0),this._state.blendMode=Tr(e.groupBlendMode,e.texture._source),this._renderer.encoder.draw({geometry:Zu,shader:t,state:this._state})}updateRenderable(e){let t=this._getTilingSpriteData(e),{canBatch:i}=t;if(i){let{batchableMesh:s}=t;e.didViewUpdate&&this._updateBatchableMesh(e),s._batcher.updateElement(s)}else if(e.didViewUpdate){let{shader:s}=t;s.updateUniforms(e.width,e.height,e._tileTransform.matrix,e.anchor.x,e.anchor.y,e.texture)}}_getTilingSpriteData(e){return e._gpuData[this._renderer.uid]||this._initTilingSpriteData(e)}_initTilingSpriteData(e){let t=new fm;return t.renderable=e,e._gpuData[this._renderer.uid]=t,t}_updateBatchableMesh(e){let t=this._getTilingSpriteData(e),{geometry:i}=t,s=e.texture.source.style;s.addressMode!=="repeat"&&(s.addressMode="repeat",s.update()),CT(e,i.uvs),TT(e,i.positions)}destroy(){this._renderer=null}_updateCanBatch(e){let t=this._getTilingSpriteData(e),i=e.texture,s=!0;return this._renderer.type===Me.WEBGL&&(s=this._renderer.context.supports.nonPowOf2wrapping),t.canBatch=i.textureMatrix.isSimple&&(s||i.source.isPowerOfTwo),t.canBatch}};ko.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"tilingSprite"}});var mm=p(()=>{P();kT();O.add(ko)});var AT,BT,RT=p(()=>{ye();Yu();AT=class PT extends Ls{constructor(...e){super({});let t=e[0]??{};typeof t=="number"&&(z($,"PlaneGeometry constructor changed please use { width, height, verticesX, verticesY } instead"),t={width:t,height:e[1],verticesX:e[2],verticesY:e[3]}),this.build(t)}build(e){e={...PT.defaultOptions,...e},this.verticesX=this.verticesX??e.verticesX,this.verticesY=this.verticesY??e.verticesY,this.width=this.width??e.width,this.height=this.height??e.height;let t=this.verticesX*this.verticesY,i=[],s=[],n=[],o=this.verticesX-1,a=this.verticesY-1,c=this.width/o,u=this.height/a;for(let h=0;h<t;h++){let f=h%this.verticesX,d=h/this.verticesX|0;i.push(f*c,d*u),s.push(f/o,d/a)}let l=o*a;for(let h=0;h<l;h++){let f=h%o,d=h/o|0,m=d*this.verticesX+f,x=d*this.verticesX+f+1,g=(d+1)*this.verticesX+f,_=(d+1)*this.verticesX+f+1;n.push(m,x,g,x,_,g)}this.buffers[0].data=new Float32Array(i),this.buffers[1].data=new Float32Array(s),this.indexBuffer.data=new Uint32Array(n),this.buffers[0].update(),this.buffers[1].update(),this.indexBuffer.update()}};AT.defaultOptions={width:100,height:100,verticesX:10,verticesY:10};BT=AT});var DT,IT,FT=p(()=>{RT();DT=class MT extends BT{constructor(e={}){e={...MT.defaultOptions,...e},super({width:e.width,height:e.height,verticesX:4,verticesY:4}),this.update(e)}update(e){this.width=e.width??this.width,this.height=e.height??this.height,this._originalWidth=e.originalWidth??this._originalWidth,this._originalHeight=e.originalHeight??this._originalHeight,this._leftWidth=e.leftWidth??this._leftWidth,this._rightWidth=e.rightWidth??this._rightWidth,this._topHeight=e.topHeight??this._topHeight,this._bottomHeight=e.bottomHeight??this._bottomHeight,this._anchorX=e.anchor?.x,this._anchorY=e.anchor?.y,this.updateUvs(),this.updatePositions()}updatePositions(){let e=this.positions,{width:t,height:i,_leftWidth:s,_rightWidth:n,_topHeight:o,_bottomHeight:a,_anchorX:c,_anchorY:u}=this,l=s+n,h=t>l?1:t/l,f=o+a,d=i>f?1:i/f,m=Math.min(h,d),x=c*t,g=u*i;e[0]=e[8]=e[16]=e[24]=-x,e[2]=e[10]=e[18]=e[26]=s*m-x,e[4]=e[12]=e[20]=e[28]=t-n*m-x,e[6]=e[14]=e[22]=e[30]=t-x,e[1]=e[3]=e[5]=e[7]=-g,e[9]=e[11]=e[13]=e[15]=o*m-g,e[17]=e[19]=e[21]=e[23]=i-a*m-g,e[25]=e[27]=e[29]=e[31]=i-g,this.getBuffer("aPosition").update()}updateUvs(){let e=this.uvs;e[0]=e[8]=e[16]=e[24]=0,e[1]=e[3]=e[5]=e[7]=0,e[6]=e[14]=e[22]=e[30]=1,e[25]=e[27]=e[29]=e[31]=1;let t=1/this._originalWidth,i=1/this._originalHeight;e[2]=e[10]=e[18]=e[26]=t*this._leftWidth,e[9]=e[11]=e[13]=e[15]=i*this._topHeight,e[4]=e[12]=e[20]=e[28]=1-t*this._rightWidth,e[17]=e[19]=e[21]=e[23]=1-i*this._bottomHeight,this.getBuffer("aUV").update()}};DT.defaultOptions={width:100,height:100,leftWidth:10,topHeight:10,rightWidth:10,bottomHeight:10,originalWidth:100,originalHeight:100};IT=DT});var pm,Ao,UT=p(()=>{P();Su();FT();pm=class extends Kr{constructor(){super(),this.geometry=new IT}destroy(){this.geometry.destroy()}},Ao=class{constructor(e){this._renderer=e}addRenderable(e,t){let i=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,i),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,t),t._batcher.updateElement(t)}validateRenderable(e){let t=this._getGpuSprite(e);return!t._batcher.checkAndUpdateTexture(t,e._texture)}_updateBatchableSprite(e,t){t.geometry.update(e),t.setTexture(e._texture)}_getGpuSprite(e){return e._gpuData[this._renderer.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=e._gpuData[this._renderer.uid]=new pm,i=t;return i.renderable=e,i.transform=e.groupTransform,i.texture=e._texture,i.roundPixels=this._renderer._roundPixels|e._roundPixels,e.didViewUpdate||this._updateBatchableSprite(e,i),t}destroy(){this._renderer=null}};Ao.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"nineSliceSprite"}});var gm=p(()=>{P();UT();O.add(Ao)});var Po,OT=p(()=>{P();Po=class{constructor(e){this._renderer=e}push(e,t,i){this._renderer.renderPipes.batch.break(i),i.add({renderPipeId:"filter",canBundle:!1,action:"pushFilter",container:t,filterEffect:e})}pop(e,t,i){this._renderer.renderPipes.batch.break(i),i.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}execute(e){e.action==="pushFilter"?this._renderer.filter.push(e):e.action==="popFilter"&&this._renderer.filter.pop()}destroy(){this._renderer=null}};Po.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"filter"}});function GT(r,e){e.clear();let t=e.matrix;for(let i=0;i<r.length;i++){let s=r[i];s.globalDisplayStatus<7||(e.matrix=s.worldTransform,e.addBounds(s.bounds))}return e.matrix=t,e}var NT=p(()=>{"use strict"});var TP,xm,Bo,LT=p(()=>{P();ee();$r();xs();rt();le();Lr();Jt();ot();NT();ge();TP=new vt({attributes:{aPosition:{buffer:new Float32Array([0,0,1,0,1,1,0,1]),format:"float32x2",stride:8,offset:0}},indexBuffer:new Uint32Array([0,1,2,0,2,3])}),xm=class{constructor(){this.skip=!1,this.inputTexture=null,this.backTexture=null,this.filters=null,this.bounds=new ae,this.container=null,this.blendRequired=!1,this.outputRenderSurface=null,this.outputOffset={x:0,y:0},this.globalFrame={x:0,y:0,width:0,height:0}}},Bo=class{constructor(e){this._filterStackIndex=0,this._filterStack=[],this._filterGlobalUniforms=new ce({uInputSize:{value:new Float32Array(4),type:"vec4<f32>"},uInputPixel:{value:new Float32Array(4),type:"vec4<f32>"},uInputClamp:{value:new Float32Array(4),type:"vec4<f32>"},uOutputFrame:{value:new Float32Array(4),type:"vec4<f32>"},uGlobalFrame:{value:new Float32Array(4),type:"vec4<f32>"},uOutputTexture:{value:new Float32Array(4),type:"vec4<f32>"}}),this._globalFilterBindGroup=new Ne({}),this.renderer=e}get activeBackTexture(){return this._activeFilterData?.backTexture}push(e){let t=this.renderer,i=e.filterEffect.filters,s=this._pushFilterData();s.skip=!1,s.filters=i,s.container=e.container,s.outputRenderSurface=t.renderTarget.renderSurface;let n=t.renderTarget.renderTarget.colorTexture.source,o=n.resolution,a=n.antialias;if(i.length===0){s.skip=!0;return}let c=s.bounds;if(e.renderables?GT(e.renderables,c):e.filterEffect.filterArea?(c.clear(),c.addRect(e.filterEffect.filterArea),c.applyMatrix(e.container.worldTransform)):e.container.getFastGlobalBounds(!0,c),e.container){let x=(e.container.renderGroup||e.container.parentRenderGroup).cacheToLocalTransform;x&&c.applyMatrix(x)}if(this._calculateFilterBounds(s,t.renderTarget.rootViewPort,a,o,1),s.skip)return;let u=this._getPreviousFilterData(),l=o,h=0,f=0;u&&(h=u.bounds.minX,f=u.bounds.minY,l=u.inputTexture.source._resolution),s.outputOffset.x=c.minX-h,s.outputOffset.y=c.minY-f;let d=s.globalFrame;if(d.x=h*l,d.y=f*l,d.width=n.width*l,d.height=n.height*l,s.backTexture=D.EMPTY,s.blendRequired){t.renderTarget.finishRenderPass();let m=t.renderTarget.getRenderTarget(s.outputRenderSurface);s.backTexture=this.getBackTexture(m,c,u?.bounds)}s.inputTexture=Te.getOptimalTexture(c.width,c.height,s.resolution,s.antialias),t.renderTarget.bind(s.inputTexture,!0),t.globalUniforms.push({offset:c})}generateFilteredTexture({texture:e,filters:t}){let i=this._pushFilterData();this._activeFilterData=i,i.skip=!1,i.filters=t;let s=e.source,n=s.resolution,o=s.antialias;if(t.length===0)return i.skip=!0,e;let a=i.bounds;if(a.addRect(e.frame),this._calculateFilterBounds(i,a.rectangle,o,n,0),i.skip)return e;let c=n,u=0,l=0;i.outputOffset.x=-a.minX,i.outputOffset.y=-a.minY;let h=i.globalFrame;h.x=u*c,h.y=l*c,h.width=s.width*c,h.height=s.height*c,i.outputRenderSurface=Te.getOptimalTexture(a.width,a.height,i.resolution,i.antialias),i.backTexture=D.EMPTY,i.inputTexture=e,this.renderer.renderTarget.finishRenderPass(),this._applyFiltersToTexture(i,!0);let d=i.outputRenderSurface;return d.source.alphaMode="premultiplied-alpha",d}pop(){let e=this.renderer,t=this._popFilterData();t.skip||(e.globalUniforms.pop(),e.renderTarget.finishRenderPass(),this._activeFilterData=t,this._applyFiltersToTexture(t,!1),t.blendRequired&&Te.returnTexture(t.backTexture),Te.returnTexture(t.inputTexture))}getBackTexture(e,t,i){let s=e.colorTexture.source._resolution,n=Te.getOptimalTexture(t.width,t.height,s,!1),o=t.minX,a=t.minY;i&&(o-=i.minX,a-=i.minY),o=Math.floor(o*s),a=Math.floor(a*s);let c=Math.ceil(t.width*s),u=Math.ceil(t.height*s);return this.renderer.renderTarget.copyToTexture(e,n,{x:o,y:a},{width:c,height:u},{x:0,y:0}),n}applyFilter(e,t,i,s){let n=this.renderer,o=this._activeFilterData,a=o.outputRenderSurface,c=this._filterGlobalUniforms,u=c.uniforms,l=u.uOutputFrame,h=u.uInputSize,f=u.uInputPixel,d=u.uInputClamp,m=u.uGlobalFrame,x=u.uOutputTexture;a===i?(l[0]=o.outputOffset.x,l[1]=o.outputOffset.y):(l[0]=0,l[1]=0),l[2]=t.frame.width,l[3]=t.frame.height,h[0]=t.source.width,h[1]=t.source.height,h[2]=1/h[0],h[3]=1/h[1],f[0]=t.source.pixelWidth,f[1]=t.source.pixelHeight,f[2]=1/f[0],f[3]=1/f[1],d[0]=.5*f[2],d[1]=.5*f[3],d[2]=t.frame.width*h[2]-.5*f[2],d[3]=t.frame.height*h[3]-.5*f[3],m[0]=o.globalFrame.x,m[1]=o.globalFrame.y,m[2]=o.globalFrame.width,m[3]=o.globalFrame.height,i instanceof D&&(i.source.resource=null);let g=this.renderer.renderTarget.getRenderTarget(i);if(n.renderTarget.bind(i,!!s),i instanceof D?(x[0]=i.frame.width,x[1]=i.frame.height):(x[0]=g.width,x[1]=g.height),x[2]=g.isRoot?-1:1,c.update(),n.renderPipes.uniformBatch){let _=n.renderPipes.uniformBatch.getUboResource(c);this._globalFilterBindGroup.setResource(_,0)}else this._globalFilterBindGroup.setResource(c,0);this._globalFilterBindGroup.setResource(t.source,1),this._globalFilterBindGroup.setResource(t.source.style,2),e.groups[0]=this._globalFilterBindGroup,n.encoder.draw({geometry:TP,shader:e,state:e._state,topology:"triangle-list"}),n.type===Me.WEBGL&&n.renderTarget.finishRenderPass()}calculateSpriteMatrix(e,t){let i=this._activeFilterData,s=e.set(i.inputTexture._source.width,0,0,i.inputTexture._source.height,i.bounds.minX,i.bounds.minY),n=t.worldTransform.copyTo(R.shared),o=t.renderGroup||t.parentRenderGroup;return o&&o.cacheToLocalTransform&&n.prepend(o.cacheToLocalTransform),n.invert(),s.prepend(n),s.scale(1/t.texture.frame.width,1/t.texture.frame.height),s.translate(t.anchor.x,t.anchor.y),s}destroy(){}_applyFiltersToTexture(e,t){let i=e.inputTexture,s=e.bounds,n=e.filters;if(this._globalFilterBindGroup.setResource(i.source.style,2),this._globalFilterBindGroup.setResource(e.backTexture.source,3),n.length===1)n[0].apply(this,i,e.outputRenderSurface,t);else{let o=e.inputTexture,a=Te.getOptimalTexture(s.width,s.height,o.source._resolution,!1),c=a,u=0;for(u=0;u<n.length-1;++u){n[u].apply(this,o,c,!0);let h=o;o=c,c=h}n[u].apply(this,o,e.outputRenderSurface,t),Te.returnTexture(a)}}_calculateFilterBounds(e,t,i,s,n){let o=this.renderer,a=e.bounds,c=e.filters,u=1/0,l=0,h=!0,f=!1,d=!1,m=!0;for(let x=0;x<c.length;x++){let g=c[x];if(u=Math.min(u,g.resolution==="inherit"?s:g.resolution),l+=g.padding,g.antialias==="off"?h=!1:g.antialias==="inherit"&&h&&(h=i),g.clipToViewport||(m=!1),!!!(g.compatibleRenderers&o.type)){d=!1;break}if(g.blendRequired&&!(o.backBuffer?.useBackBuffer??!0)){G("Blend filter requires backBuffer on WebGL renderer to be enabled. Set `useBackBuffer: true` in the renderer options."),d=!1;break}d=g.enabled||d,f||(f=g.blendRequired)}if(!d){e.skip=!0;return}if(m&&a.fitBounds(0,t.width/s,0,t.height/s),a.scale(u).ceil().scale(1/u).pad((l|0)*n),!a.isPositive){e.skip=!0;return}e.antialias=h,e.resolution=u,e.blendRequired=f}_popFilterData(){return this._filterStackIndex--,this._filterStack[this._filterStackIndex]}_getPreviousFilterData(){let e,t=this._filterStackIndex-1;for(;t>1&&(t--,e=this._filterStack[t],!!e.skip););return e}_pushFilterData(){let e=this._filterStack[this._filterStackIndex];return e||(e=this._filterStack[this._filterStackIndex]=new xm),this._filterStackIndex++,e}};Bo.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"filter"}});var _m=p(()=>{P();OT();LT();O.add(Bo);O.add(Po)});var wP={};var zT=p(()=>{b0();pd();A0();B0();Jc();ou();Cf();Ef();Bf();em();am();lm();mm();gm();_m()});var SP={};var HT=p(()=>{pd();Jc();ou();Cf();Ef();Bf();em();am();lm();mm();gm();_m()});var $T,qT,jT=p(()=>{Ai();bs();Ut();Ot();$T=class bm extends Ee{constructor(e){e={...bm.defaultOptions,...e},super(e),this.enabled=!0,this._state=Ae.for2d(),this.blendMode=e.blendMode,this.padding=e.padding,typeof e.antialias=="boolean"?this.antialias=e.antialias?"on":"off":this.antialias=e.antialias,this.resolution=e.resolution,this.blendRequired=e.blendRequired,this.clipToViewport=e.clipToViewport,this.addResource("uTexture",0,1)}apply(e,t,i,s){e.applyFilter(this,t,i,s)}get blendMode(){return this._state.blendMode}set blendMode(e){this._state.blendMode=e}static from(e){let{gpu:t,gl:i,...s}=e,n,o;return t&&(n=Et.from(t)),i&&(o=Ct.from(i)),new bm({gpuProgram:n,glProgram:o,...s})}};$T.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1,clipToViewport:!0};qT=$T});async function XT(r){if(!r)for(let e=0;e<ym.length;e++){let t=ym[e];if(t.value.test()){await t.value.load();return}}}var ym,YT=p(()=>{P();ym=[];O.handleByNamedList(b.Environment,ym)});function Ju(){if(typeof Ro=="boolean")return Ro;try{Ro=new Function("param1","param2","param3","return param1[param2] === param3;")({a:"b"},"a","b")===!0}catch{Ro=!1}return Ro}var Ro,Tm=p(()=>{"use strict"});var Le,Hs=p(()=>{"use strict";Le=(r=>(r[r.NONE=0]="NONE",r[r.COLOR=16384]="COLOR",r[r.STENCIL=1024]="STENCIL",r[r.DEPTH=256]="DEPTH",r[r.COLOR_DEPTH=16640]="COLOR_DEPTH",r[r.COLOR_STENCIL=17408]="COLOR_STENCIL",r[r.DEPTH_STENCIL=1280]="DEPTH_STENCIL",r[r.ALL=17664]="ALL",r))(Le||{})});var Ws,wm=p(()=>{"use strict";Ws=class{constructor(e){this.items=[],this._name=e}emit(e,t,i,s,n,o,a,c){let{name:u,items:l}=this;for(let h=0,f=l.length;h<f;h++)l[h][u](e,t,i,s,n,o,a,c);return this}add(e){return e[this._name]&&(this.remove(e),this.items.push(e)),this}remove(e){let t=this.items.indexOf(e);return t!==-1&&this.items.splice(t,1),this}contains(e){return this.items.indexOf(e)!==-1}removeAll(){return this.items.length=0,this}destroy(){this.removeAll(),this.items=null,this._name=null}get empty(){return this.items.length===0}get name(){return this._name}}});var vP,KT,Zr,Do=p(()=>{He();YT();Ht();Tm();Oe();ye();Hs();wm();Ve();vP=["init","destroy","contextChange","resolutionChange","resetState","renderEnd","renderStart","render","update","postrender","prerender"],KT=class QT extends oe{constructor(e){super(),this.uid=K("renderer"),this.runners=Object.create(null),this.renderPipes=Object.create(null),this._initOptions={},this._systemsHash=Object.create(null),this.type=e.type,this.name=e.name,this.config=e;let t=[...vP,...this.config.runners??[]];this._addRunners(...t),this._unsafeEvalCheck()}async init(e={}){let t=e.skipExtensionImports===!0?!0:e.manageImports===!1;await XT(t),this._addSystems(this.config.systems),this._addPipes(this.config.renderPipes,this.config.renderPipeAdaptors);for(let i in this._systemsHash)e={...this._systemsHash[i].constructor.defaultOptions,...e};e={...QT.defaultOptions,...e},this._roundPixels=e.roundPixels?1:0;for(let i=0;i<this.runners.init.items.length;i++)await this.runners.init.items[i].init(e);this._initOptions=e}render(e,t){let i=e;if(i instanceof we&&(i={container:i},t&&(z($,"passing a second argument is deprecated, please use render options instead"),i.target=t.renderTexture)),i.target||(i.target=this.view.renderTarget),i.target===this.view.renderTarget&&(this._lastObjectRendered=i.container,i.clearColor??(i.clearColor=this.background.colorRgba),i.clear??(i.clear=this.background.clearBeforeRender)),i.clearColor){let s=Array.isArray(i.clearColor)&&i.clearColor.length===4;i.clearColor=s?i.clearColor:q.shared.setValue(i.clearColor).toArray()}i.transform||(i.container.updateLocalTransform(),i.transform=i.container.localTransform),i.container.enableRenderGroup(),this.runners.prerender.emit(i),this.runners.renderStart.emit(i),this.runners.render.emit(i),this.runners.renderEnd.emit(i),this.runners.postrender.emit(i)}resize(e,t,i){let s=this.view.resolution;this.view.resize(e,t,i),this.emit("resize",this.view.screen.width,this.view.screen.height,this.view.resolution),i!==void 0&&i!==s&&this.runners.resolutionChange.emit(i)}clear(e={}){let t=this;e.target||(e.target=t.renderTarget.renderTarget),e.clearColor||(e.clearColor=this.background.colorRgba),e.clear??(e.clear=Le.ALL);let{clear:i,clearColor:s,target:n}=e;q.shared.setValue(s??this.background.colorRgba),t.renderTarget.clear(n,i,q.shared.toArray())}get resolution(){return this.view.resolution}set resolution(e){this.view.resolution=e,this.runners.resolutionChange.emit(e)}get width(){return this.view.texture.frame.width}get height(){return this.view.texture.frame.height}get canvas(){return this.view.canvas}get lastObjectRendered(){return this._lastObjectRendered}get renderingToScreen(){return this.renderTarget.renderingToScreen}get screen(){return this.view.screen}_addRunners(...e){e.forEach(t=>{this.runners[t]=new Ws(t)})}_addSystems(e){let t;for(t in e){let i=e[t];this._addSystem(i.value,i.name)}}_addSystem(e,t){let i=new e(this);if(this[t])throw new Error(`Whoops! The name "${t}" is already in use`);this[t]=i,this._systemsHash[t]=i;for(let s in this.runners)this.runners[s].add(i);return this}_addPipes(e,t){let i=t.reduce((s,n)=>(s[n.name]=n.value,s),{});e.forEach(s=>{let n=s.value,o=s.name,a=i[o];this.renderPipes[o]=new n(this,a?new a:null)})}destroy(e=!1){this.runners.destroy.items.reverse(),this.runners.destroy.emit(e),Object.values(this.runners).forEach(t=>{t.destroy()}),this._systemsHash=null,this.renderPipes=null}generateTexture(e){return this.textureGenerator.generateTexture(e)}get roundPixels(){return!!this._roundPixels}_unsafeEvalCheck(){if(!Ju())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}resetState(){this.runners.resetState.emit()}};KT.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};Zr=KT});var Mo,ew=p(()=>{P();ee();au();Xr();oo();ao();Vs();Yr();Ut();rt();Mo=class{constructor(){this._maxTextures=0}contextChange(e){let t=new ce({uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}});this._maxTextures=e.limits.maxBatchableTextures;let i=Yt({name:"graphics",bits:[ys,ws(this._maxTextures),pT,Qt]});this.shader=new Ee({gpuProgram:i,resources:{localUniforms:t}})}execute(e,t){let i=t.context,s=i.customShader||this.shader,n=e.renderer,o=n.graphicsContext,{batcher:a,instructions:c}=o.getContextRenderData(i),u=n.encoder;u.setGeometry(a.geometry,s.gpuProgram);let l=n.globalUniforms.bindGroup;u.setBindGroup(0,l,s.gpuProgram);let h=n.renderPipes.uniformBatch.getUniformBindGroup(s.resources.localUniforms,!0);u.setBindGroup(2,h,s.gpuProgram);let f=c.instructions,d=null;for(let m=0;m<c.instructionSize;m++){let x=f[m];if(x.topology!==d&&(d=x.topology,u.setPipelineFromGeometryProgramAndState(a.geometry,s.gpuProgram,e.state,x.topology)),s.groups[1]=x.bindGroup,!x.gpuBindGroup){let g=x.textures;x.bindGroup=ps(g.textures,g.count,this._maxTextures),x.gpuBindGroup=n.bindGroup.getBindGroup(x.bindGroup,s.gpuProgram,1)}u.setBindGroup(1,x.bindGroup,s.gpuProgram),u.renderPassEncoder.drawIndexed(x.size,1,x.start)}}destroy(){this.shader.destroy(!0),this.shader=null}};Mo.extension={type:[b.WebGPUPipesAdaptor],name:"graphics"}});var tw,rw,Sm=p(()=>{"use strict";tw={name:"texture-bit",vertex:{header:`
|
|
570
570
|
|
|
571
571
|
struct TextureUniforms {
|
|
572
572
|
uTextureMatrix:mat3x3<f32>,
|
|
@@ -582,7 +582,7 @@ fn mainFragment(
|
|
|
582
582
|
|
|
583
583
|
`,main:`
|
|
584
584
|
outColor = textureSample(uTexture, uSampler, vUV);
|
|
585
|
-
`}},
|
|
585
|
+
`}},rw={name:"texture-bit",vertex:{header:`
|
|
586
586
|
uniform mat3 uTextureMatrix;
|
|
587
587
|
`,main:`
|
|
588
588
|
uv = (uTextureMatrix * vec3(uv, 1.0)).xy;
|
|
@@ -592,7 +592,7 @@ fn mainFragment(
|
|
|
592
592
|
|
|
593
593
|
`,main:`
|
|
594
594
|
outColor = texture(uTexture, vUV);
|
|
595
|
-
`}}});var sa,AS=p(()=>{B();te();Qr();un();Zr();ap();Ot();le();pe();sa=class{init(){let e=Jt({name:"mesh",bits:[es,ES,tr]});this._shader=new ke({gpuProgram:e,resources:{uTexture:M.EMPTY._source,uSampler:M.EMPTY._source.style,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new R}}}})}execute(e,t){let i=e.renderer,s=t._shader;if(!s)s=this._shader,s.groups[2]=i.texture.getTextureBindGroup(t.texture);else if(!s.gpuProgram){N("Mesh shader has no gpuProgram",t.shader);return}let n=s.gpuProgram;if(n.autoAssignGlobalUniforms&&(s.groups[0]=i.globalUniforms.bindGroup),n.autoAssignLocalUniforms){let o=e.localUniforms;s.groups[1]=i.renderPipes.uniformBatch.getUniformBindGroup(o,!0)}i.encoder.draw({geometry:t._geometry,shader:s,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}};sa.extension={type:[b.WebGPUPipesAdaptor],name:"mesh"}});var Nl,na,PS=p(()=>{B();Gt();Wu();Nl=Pe.for2d(),na=class{start(e,t,i){let s=e.renderer,n=s.encoder,o=i.gpuProgram;this._shader=i,this._geometry=t,n.setGeometry(t,o),Nl.blendMode="normal",s.pipeline.getPipeline(t,o,Nl);let a=s.globalUniforms.bindGroup;n.resetBindGroup(1),n.setBindGroup(0,a,o)}execute(e,t){let i=this._shader.gpuProgram,s=e.renderer,n=s.encoder;if(!t.bindGroup){let c=t.textures;t.bindGroup=Fs(c.textures,c.count,s.limits.maxBatchableTextures)}Nl.blendMode=t.blendMode;let o=s.bindGroup.getBindGroup(t.bindGroup,i,1),a=s.pipeline.getPipeline(this._geometry,i,Nl,t.topology);t.bindGroup._touch(s.textureGC.count),n.setPipeline(a),n.renderPassEncoder.setBindGroup(1,o),n.renderPassEncoder.drawIndexed(t.size,1,t.start)}};na.extension={type:[b.WebGPUPipesAdaptor],name:"batch"}});var oa,BS=p(()=>{B();oa=class{constructor(e){this._renderer=e}updateRenderable(){}destroyRenderable(){}validateRenderable(){return!1}addRenderable(e,t){this._renderer.renderPipes.batch.break(t),t.add(e)}execute(e){e.isRenderable&&e.render(this._renderer)}destroy(){this._renderer=null}};oa.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"customRender"}});function aa(r,e){let t=r.instructionSet,i=t.instructions;for(let s=0;s<t.instructionSize;s++){let n=i[s];e[n.renderPipeId].execute(n)}}var cp=p(()=>{"use strict"});var eR,ca,RS=p(()=>{B();te();br();Ho();cp();eR=new R,ca=class{constructor(e){this._renderer=e}addRenderGroup(e,t){e.isCachedAsTexture?this._addRenderableCacheAsTexture(e,t):this._addRenderableDirect(e,t)}execute(e){e.isRenderable&&(e.isCachedAsTexture?this._executeCacheAsTexture(e):this._executeDirect(e))}destroy(){this._renderer=null}_addRenderableDirect(e,t){this._renderer.renderPipes.batch.break(t),e._batchableRenderGroup&&(me.return(e._batchableRenderGroup),e._batchableRenderGroup=null),t.add(e)}_addRenderableCacheAsTexture(e,t){let i=e._batchableRenderGroup??(e._batchableRenderGroup=me.get(nr));i.renderable=e.root,i.transform=e.root.relativeGroupTransform,i.texture=e.texture,i.bounds=e._textureBounds,t.add(e),this._renderer.renderPipes.batch.addToBatch(i,t)}_executeCacheAsTexture(e){if(e.textureNeedsUpdate){e.textureNeedsUpdate=!1;let t=eR.identity().translate(-e._textureBounds.x,-e._textureBounds.y);this._renderer.renderTarget.push(e.texture,!0,null,e.texture.frame),this._renderer.globalUniforms.push({worldTransformMatrix:t,worldColor:4294967295}),aa(e,this._renderer.renderPipes),this._renderer.renderTarget.finishRenderPass(),this._renderer.renderTarget.pop(),this._renderer.globalUniforms.pop()}e._batchableRenderGroup._batcher.updateElement(e._batchableRenderGroup),e._batchableRenderGroup._batcher.geometry.buffers[0].update()}_executeDirect(e){this._renderer.globalUniforms.push({worldTransformMatrix:e.inverseParentTextureTransform,worldColor:e.worldColorAlpha}),aa(e,this._renderer.renderPipes),this._renderer.globalUniforms.pop()}};ca.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"renderGroup"}});function ua(r,e){e||(e=0);for(let t=e;t<r.length&&r[t];t++)r[t]=null}var up=p(()=>{"use strict"});function lp(r,e=!1){rR(r);let t=r.childrenToUpdate,i=r.updateTick++;for(let s in t){let n=Number(s),o=t[s],a=o.list,c=o.index;for(let u=0;u<c;u++){let l=a[u];l.parentRenderGroup===r&&l.relativeRenderGroupDepth===n&&IS(l,i,0)}ua(a,c),o.index=0}if(e)for(let s=0;s<r.renderGroupChildren.length;s++)lp(r.renderGroupChildren[s],e)}function rR(r){let e=r.root,t;if(r.renderGroupParent){let i=r.renderGroupParent;r.worldTransform.appendFrom(e.relativeGroupTransform,i.worldTransform),r.worldColor=ks(e.groupColor,i.worldColor),t=e.groupAlpha*i.worldAlpha}else r.worldTransform.copyFrom(e.localTransform),r.worldColor=e.localColor,t=e.localAlpha;t=t<0?0:t>1?1:t,r.worldAlpha=t,r.worldColorAlpha=r.worldColor+((t*255|0)<<24)}function IS(r,e,t){if(e===r.updateTick)return;r.updateTick=e,r.didChange=!1;let i=r.localTransform;r.updateLocalTransform();let s=r.parent;if(s&&!s.renderGroup?(t|=r._updateFlags,r.relativeGroupTransform.appendFrom(i,s.relativeGroupTransform),t&DS&&MS(r,s,t)):(t=r._updateFlags,r.relativeGroupTransform.copyFrom(i),t&DS&&MS(r,tR,t)),!r.renderGroup){let n=r.children,o=n.length;for(let u=0;u<o;u++)IS(n[u],e,t);let a=r.parentRenderGroup,c=r;c.renderPipeId&&!a.structureDidChange&&a.updateRenderable(c)}}function MS(r,e,t){if(t&Rs){r.groupColor=ks(r.localColor,e.groupColor);let i=r.localAlpha*e.groupAlpha;i=i<0?0:i>1?1:i,r.groupAlpha=i,r.groupColorAlpha=r.groupColor+((i*255|0)<<24)}t&fo&&(r.groupBlendMode=r.localBlendMode==="inherit"?e.groupBlendMode:r.localBlendMode),t&Vi&&(r.globalDisplayStatus=r.localDisplayStatus&e.globalDisplayStatus),r._updateFlags=0}var tR,DS,FS=p(()=>{jt();up();Ud();tR=new we,DS=Vi|Rs|fo});function US(r,e){let{list:t,index:i}=r.childrenRenderablesToUpdate,s=!1;for(let n=0;n<i;n++){let o=t[n];if(s=e[o.renderPipeId].validateRenderable(o),s)break}return r.structureDidChange=s,s}var OS=p(()=>{"use strict"});var iR,la,GS=p(()=>{B();te();Hr();at();up();cp();FS();OS();iR=new R,la=class{constructor(e){this._renderer=e}render({container:e,transform:t}){let i=e.parent,s=e.renderGroup.renderGroupParent;e.parent=null,e.renderGroup.renderGroupParent=null;let n=this._renderer,o=iR;t&&(o=o.copyFrom(e.renderGroup.localTransform),e.renderGroup.localTransform.copyFrom(t));let a=n.renderPipes;this._updateCachedRenderGroups(e.renderGroup,null),this._updateRenderGroups(e.renderGroup),n.globalUniforms.start({worldTransformMatrix:t?e.renderGroup.localTransform:e.renderGroup.worldTransform,worldColor:e.renderGroup.worldColorAlpha}),aa(e.renderGroup,a),a.uniformBatch&&a.uniformBatch.renderEnd(),t&&e.renderGroup.localTransform.copyFrom(o),e.parent=i,e.renderGroup.renderGroupParent=s}destroy(){this._renderer=null}_updateCachedRenderGroups(e,t){if(e.isCachedAsTexture){if(!e.updateCacheTexture)return;t=e}e._parentCacheAsTextureRenderGroup=t;for(let i=e.renderGroupChildren.length-1;i>=0;i--)this._updateCachedRenderGroups(e.renderGroupChildren[i],t);if(e.invalidateMatrices(),e.isCachedAsTexture){if(e.textureNeedsUpdate){let i=e.root.getLocalBounds();i.ceil();let s=e.texture;e.texture&&Te.returnTexture(e.texture);let n=this._renderer,o=e.textureOptions.resolution||n.view.resolution,a=e.textureOptions.antialias??n.view.antialias;e.texture=Te.getOptimalTexture(i.width,i.height,o,a),e._textureBounds||(e._textureBounds=new ae),e._textureBounds.copyFrom(i),s!==e.texture&&e.renderGroupParent&&(e.renderGroupParent.structureDidChange=!0)}}else e.texture&&(Te.returnTexture(e.texture),e.texture=null)}_updateRenderGroups(e){let t=this._renderer,i=t.renderPipes;if(e.runOnRender(t),e.instructionSet.renderPipes=i,e.structureDidChange?ua(e.childrenRenderablesToUpdate.list,0):US(e,i),lp(e),e.structureDidChange?(e.structureDidChange=!1,this._buildInstructions(e,t)):this._updateRenderables(e),e.childrenRenderablesToUpdate.index=0,t.renderPipes.batch.upload(e.instructionSet),!(e.isCachedAsTexture&&!e.textureNeedsUpdate))for(let s=0;s<e.renderGroupChildren.length;s++)this._updateRenderGroups(e.renderGroupChildren[s])}_updateRenderables(e){let{list:t,index:i}=e.childrenRenderablesToUpdate;for(let s=0;s<i;s++){let n=t[s];n.didViewUpdate&&e.updateRenderable(n)}ua(t,i)}_buildInstructions(e,t){let i=e.root,s=e.instructionSet;s.reset();let n=t.renderPipes?t:t.batch.renderer,o=n.renderPipes;o.batch.buildStart(s),o.blendMode.buildStart(),o.colorMask.buildStart(),i.sortableChildren&&i.sortChildren(),i.collectRenderablesWithEffects(s,n,null),o.batch.buildEnd(s),o.blendMode.buildEnd(s)}};la.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"renderGroup"}});var ha,NS=p(()=>{B();Ho();ha=class{constructor(e){this._renderer=e}addRenderable(e,t){let i=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,i),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,t),t._batcher.updateElement(t)}validateRenderable(e){let t=this._getGpuSprite(e);return!t._batcher.checkAndUpdateTexture(t,e._texture)}_updateBatchableSprite(e,t){t.bounds=e.visualBounds,t.texture=e._texture}_getGpuSprite(e){return e._gpuData[this._renderer.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=new nr;return t.renderable=e,t.transform=e.groupTransform,t.texture=e._texture,t.bounds=e.visualBounds,t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};ha.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"sprite"}});var dn,hp=p(()=>{Ve();dn="8.10.1"});var dp,da,LS=p(()=>{B();hp();dp=class{static init(){globalThis.__PIXI_APP_INIT__?.(this,dn)}static destroy(){}};dp.extension=b.Application;da=class{constructor(e){this._renderer=e}init(){globalThis.__PIXI_RENDERER_INIT__?.(this._renderer,dn)}destroy(){this._renderer=null}};da.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"initHook",priority:-10}});var fp,mp,VS=p(()=>{B();Gt();Hf();fp=class zS{constructor(e,t){this.state=Pe.for2d(),this._batchersByInstructionSet=Object.create(null),this._activeBatches=Object.create(null),this.renderer=e,this._adaptor=t,this._adaptor.init?.(this)}static getBatcher(e){return new this._availableBatchers[e]}buildStart(e){let t=this._batchersByInstructionSet[e.uid];t||(t=this._batchersByInstructionSet[e.uid]=Object.create(null),t.default||(t.default=new Mo({maxTextures:this.renderer.limits.maxBatchableTextures}))),this._activeBatches=t,this._activeBatch=this._activeBatches.default;for(let i in this._activeBatches)this._activeBatches[i].begin()}addToBatch(e,t){if(this._activeBatch.name!==e.batcherName){this._activeBatch.break(t);let i=this._activeBatches[e.batcherName];i||(i=this._activeBatches[e.batcherName]=zS.getBatcher(e.batcherName),i.begin()),this._activeBatch=i}this._activeBatch.add(e)}break(e){this._activeBatch.break(e)}buildEnd(e){this._activeBatch.break(e);let t=this._activeBatches;for(let i in t){let s=t[i],n=s.geometry;n.indexBuffer.setDataWithSize(s.indexBuffer,s.indexSize,!0),n.buffers[0].setDataWithSize(s.attributeBuffer.float32View,s.attributeSize,!1)}}upload(e){let t=this._batchersByInstructionSet[e.uid];for(let i in t){let s=t[i],n=s.geometry;s.dirty&&(s.dirty=!1,n.buffers[0].update(s.attributeSize*4))}}execute(e){if(e.action==="startBatch"){let t=e.batcher,i=t.geometry,s=t.shader;this._adaptor.start(this,i,s)}this._adaptor.execute(this,e)}destroy(){this.state=null,this.renderer=null,this._adaptor=null;for(let e in this._activeBatches)this._activeBatches[e].destroy();this._activeBatches=null}};fp.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"batch"};fp._availableBatchers=Object.create(null);mp=fp;O.handleByMap(b.Batcher,mp._availableBatchers);O.add(Mo)});var HS,WS=p(()=>{HS=`in vec2 vMaskCoord;
|
|
595
|
+
`}}});var Io,iw=p(()=>{P();ee();Xr();Vs();Yr();Sm();Ut();le();ge();Io=class{init(){let e=Yt({name:"mesh",bits:[Oi,tw,Qt]});this._shader=new Ee({gpuProgram:e,resources:{uTexture:D.EMPTY._source,uSampler:D.EMPTY._source.style,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new R}}}})}execute(e,t){let i=e.renderer,s=t._shader;if(!s)s=this._shader,s.groups[2]=i.texture.getTextureBindGroup(t.texture);else if(!s.gpuProgram){G("Mesh shader has no gpuProgram",t.shader);return}let n=s.gpuProgram;if(n.autoAssignGlobalUniforms&&(s.groups[0]=i.globalUniforms.bindGroup),n.autoAssignLocalUniforms){let o=e.localUniforms;s.groups[1]=i.renderPipes.uniformBatch.getUniformBindGroup(o,!0)}i.encoder.draw({geometry:t._geometry,shader:s,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}};Io.extension={type:[b.WebGPUPipesAdaptor],name:"mesh"}});var rl,Fo,sw=p(()=>{P();Ot();au();rl=Ae.for2d(),Fo=class{start(e,t,i){let s=e.renderer,n=s.encoder,o=i.gpuProgram;this._shader=i,this._geometry=t,n.setGeometry(t,o),rl.blendMode="normal",s.pipeline.getPipeline(t,o,rl);let a=s.globalUniforms.bindGroup;n.resetBindGroup(1),n.setBindGroup(0,a,o)}execute(e,t){let i=this._shader.gpuProgram,s=e.renderer,n=s.encoder;if(!t.bindGroup){let c=t.textures;t.bindGroup=ps(c.textures,c.count,s.limits.maxBatchableTextures)}rl.blendMode=t.blendMode;let o=s.bindGroup.getBindGroup(t.bindGroup,i,1),a=s.pipeline.getPipeline(this._geometry,i,rl,t.topology);t.bindGroup._touch(s.textureGC.count),n.setPipeline(a),n.renderPassEncoder.setBindGroup(1,o),n.renderPassEncoder.drawIndexed(t.size,1,t.start)}};Fo.extension={type:[b.WebGPUPipesAdaptor],name:"batch"}});var Uo,nw=p(()=>{P();Uo=class{constructor(e){this._renderer=e}updateRenderable(){}destroyRenderable(){}validateRenderable(){return!1}addRenderable(e,t){this._renderer.renderPipes.batch.break(t),t.add(e)}execute(e){e.isRenderable&&e.render(this._renderer)}destroy(){this._renderer=null}};Uo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"customRender"}});function Oo(r,e){let t=r.instructionSet,i=t.instructions;for(let s=0;s<t.instructionSize;s++){let n=i[s];e[n.renderPipeId].execute(n)}}var vm=p(()=>{"use strict"});var CP,Go,ow=p(()=>{P();ee();gr();bo();vm();CP=new R,Go=class{constructor(e){this._renderer=e}addRenderGroup(e,t){e.isCachedAsTexture?this._addRenderableCacheAsTexture(e,t):this._addRenderableDirect(e,t)}execute(e){e.isRenderable&&(e.isCachedAsTexture?this._executeCacheAsTexture(e):this._executeDirect(e))}destroy(){this._renderer=null}_addRenderableDirect(e,t){this._renderer.renderPipes.batch.break(t),e._batchableRenderGroup&&(pe.return(e._batchableRenderGroup),e._batchableRenderGroup=null),t.add(e)}_addRenderableCacheAsTexture(e,t){let i=e._batchableRenderGroup??(e._batchableRenderGroup=pe.get(tr));i.renderable=e.root,i.transform=e.root.relativeGroupTransform,i.texture=e.texture,i.bounds=e._textureBounds,t.add(e),this._renderer.renderPipes.batch.addToBatch(i,t)}_executeCacheAsTexture(e){if(e.textureNeedsUpdate){e.textureNeedsUpdate=!1;let t=CP.identity().translate(-e._textureBounds.x,-e._textureBounds.y);this._renderer.renderTarget.push(e.texture,!0,null,e.texture.frame),this._renderer.globalUniforms.push({worldTransformMatrix:t,worldColor:4294967295}),Oo(e,this._renderer.renderPipes),this._renderer.renderTarget.finishRenderPass(),this._renderer.renderTarget.pop(),this._renderer.globalUniforms.pop()}e._batchableRenderGroup._batcher.updateElement(e._batchableRenderGroup),e._batchableRenderGroup._batcher.geometry.buffers[0].update()}_executeDirect(e){this._renderer.globalUniforms.push({worldTransformMatrix:e.inverseParentTextureTransform,worldColor:e.worldColorAlpha}),Oo(e,this._renderer.renderPipes),this._renderer.globalUniforms.pop()}};Go.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"renderGroup"}});function No(r,e){e||(e=0);for(let t=e;t<r.length&&r[t];t++)r[t]=null}var Cm=p(()=>{"use strict"});function Em(r,e=!1){kP(r);let t=r.childrenToUpdate,i=r.updateTick++;for(let s in t){let n=Number(s),o=t[s],a=o.list,c=o.index;for(let u=0;u<c;u++){let l=a[u];l.parentRenderGroup===r&&l.relativeRenderGroupDepth===n&&uw(l,i,0)}No(a,c),o.index=0}if(e)for(let s=0;s<r.renderGroupChildren.length;s++)Em(r.renderGroupChildren[s],e)}function kP(r){let e=r.root,t;if(r.renderGroupParent){let i=r.renderGroupParent;r.worldTransform.appendFrom(e.relativeGroupTransform,i.worldTransform),r.worldColor=as(e.groupColor,i.worldColor),t=e.groupAlpha*i.worldAlpha}else r.worldTransform.copyFrom(e.localTransform),r.worldColor=e.localColor,t=e.localAlpha;t=t<0?0:t>1?1:t,r.worldAlpha=t,r.worldColorAlpha=r.worldColor+((t*255|0)<<24)}function uw(r,e,t){if(e===r.updateTick)return;r.updateTick=e,r.didChange=!1;let i=r.localTransform;r.updateLocalTransform();let s=r.parent;if(s&&!s.renderGroup?(t|=r._updateFlags,r.relativeGroupTransform.appendFrom(i,s.relativeGroupTransform),t&aw&&cw(r,s,t)):(t=r._updateFlags,r.relativeGroupTransform.copyFrom(i),t&aw&&cw(r,EP,t)),!r.renderGroup){let n=r.children,o=n.length;for(let u=0;u<o;u++)uw(n[u],e,t);let a=r.parentRenderGroup,c=r;c.renderPipeId&&!a.structureDidChange&&a.updateRenderable(c)}}function cw(r,e,t){if(t&hs){r.groupColor=as(r.localColor,e.groupColor);let i=r.localAlpha*e.groupAlpha;i=i<0?0:i>1?1:i,r.groupAlpha=i,r.groupColorAlpha=r.groupColor+((i*255|0)<<24)}t&Vn&&(r.groupBlendMode=r.localBlendMode==="inherit"?e.groupBlendMode:r.localBlendMode),t&Ci&&(r.globalDisplayStatus=r.localDisplayStatus&e.globalDisplayStatus),r._updateFlags=0}var EP,aw,lw=p(()=>{Ht();Cm();Zh();EP=new we,aw=Ci|hs|Vn});function hw(r,e){let{list:t,index:i}=r.childrenRenderablesToUpdate,s=!1;for(let n=0;n<i;n++){let o=t[n];if(s=e[o.renderPipeId].validateRenderable(o),s)break}return r.structureDidChange=s,s}var dw=p(()=>{"use strict"});var AP,Lo,fw=p(()=>{P();ee();Lr();ot();Cm();vm();lw();dw();AP=new R,Lo=class{constructor(e){this._renderer=e}render({container:e,transform:t}){let i=e.parent,s=e.renderGroup.renderGroupParent;e.parent=null,e.renderGroup.renderGroupParent=null;let n=this._renderer,o=AP;t&&(o=o.copyFrom(e.renderGroup.localTransform),e.renderGroup.localTransform.copyFrom(t));let a=n.renderPipes;this._updateCachedRenderGroups(e.renderGroup,null),this._updateRenderGroups(e.renderGroup),n.globalUniforms.start({worldTransformMatrix:t?e.renderGroup.localTransform:e.renderGroup.worldTransform,worldColor:e.renderGroup.worldColorAlpha}),Oo(e.renderGroup,a),a.uniformBatch&&a.uniformBatch.renderEnd(),t&&e.renderGroup.localTransform.copyFrom(o),e.parent=i,e.renderGroup.renderGroupParent=s}destroy(){this._renderer=null}_updateCachedRenderGroups(e,t){if(e.isCachedAsTexture){if(!e.updateCacheTexture)return;t=e}e._parentCacheAsTextureRenderGroup=t;for(let i=e.renderGroupChildren.length-1;i>=0;i--)this._updateCachedRenderGroups(e.renderGroupChildren[i],t);if(e.invalidateMatrices(),e.isCachedAsTexture){if(e.textureNeedsUpdate){let i=e.root.getLocalBounds();i.ceil();let s=e.texture;e.texture&&Te.returnTexture(e.texture);let n=this._renderer,o=e.textureOptions.resolution||n.view.resolution,a=e.textureOptions.antialias??n.view.antialias;e.texture=Te.getOptimalTexture(i.width,i.height,o,a),e._textureBounds||(e._textureBounds=new ae),e._textureBounds.copyFrom(i),s!==e.texture&&e.renderGroupParent&&(e.renderGroupParent.structureDidChange=!0)}}else e.texture&&(Te.returnTexture(e.texture),e.texture=null)}_updateRenderGroups(e){let t=this._renderer,i=t.renderPipes;if(e.runOnRender(t),e.instructionSet.renderPipes=i,e.structureDidChange?No(e.childrenRenderablesToUpdate.list,0):hw(e,i),Em(e),e.structureDidChange?(e.structureDidChange=!1,this._buildInstructions(e,t)):this._updateRenderables(e),e.childrenRenderablesToUpdate.index=0,t.renderPipes.batch.upload(e.instructionSet),!(e.isCachedAsTexture&&!e.textureNeedsUpdate))for(let s=0;s<e.renderGroupChildren.length;s++)this._updateRenderGroups(e.renderGroupChildren[s])}_updateRenderables(e){let{list:t,index:i}=e.childrenRenderablesToUpdate;for(let s=0;s<i;s++){let n=t[s];n.didViewUpdate&&e.updateRenderable(n)}No(t,i)}_buildInstructions(e,t){let i=e.root,s=e.instructionSet;s.reset();let n=t.renderPipes?t:t.batch.renderer,o=n.renderPipes;o.batch.buildStart(s),o.blendMode.buildStart(),o.colorMask.buildStart(),i.sortableChildren&&i.sortChildren(),i.collectRenderablesWithEffects(s,n,null),o.batch.buildEnd(s),o.blendMode.buildEnd(s)}};Lo.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"renderGroup"}});var zo,mw=p(()=>{P();bo();zo=class{constructor(e){this._renderer=e}addRenderable(e,t){let i=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,i),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,t),t._batcher.updateElement(t)}validateRenderable(e){let t=this._getGpuSprite(e);return!t._batcher.checkAndUpdateTexture(t,e._texture)}_updateBatchableSprite(e,t){t.bounds=e.visualBounds,t.texture=e._texture}_getGpuSprite(e){return e._gpuData[this._renderer.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=new tr;return t.renderable=e,t.transform=e.groupTransform,t.texture=e._texture,t.bounds=e.visualBounds,t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};zo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"sprite"}});var $s,km=p(()=>{Ve();$s="8.10.1"});var Am,Vo,pw=p(()=>{P();km();Am=class{static init(){globalThis.__PIXI_APP_INIT__?.(this,$s)}static destroy(){}};Am.extension=b.Application;Vo=class{constructor(e){this._renderer=e}init(){globalThis.__PIXI_RENDERER_INIT__?.(this._renderer,$s)}destroy(){this._renderer=null}};Vo.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"initHook",priority:-10}});var Pm,Bm,xw=p(()=>{P();Ot();nf();Pm=class gw{constructor(e,t){this.state=Ae.for2d(),this._batchersByInstructionSet=Object.create(null),this._activeBatches=Object.create(null),this.renderer=e,this._adaptor=t,this._adaptor.init?.(this)}static getBatcher(e){return new this._availableBatchers[e]}buildStart(e){let t=this._batchersByInstructionSet[e.uid];t||(t=this._batchersByInstructionSet[e.uid]=Object.create(null),t.default||(t.default=new co({maxTextures:this.renderer.limits.maxBatchableTextures}))),this._activeBatches=t,this._activeBatch=this._activeBatches.default;for(let i in this._activeBatches)this._activeBatches[i].begin()}addToBatch(e,t){if(this._activeBatch.name!==e.batcherName){this._activeBatch.break(t);let i=this._activeBatches[e.batcherName];i||(i=this._activeBatches[e.batcherName]=gw.getBatcher(e.batcherName),i.begin()),this._activeBatch=i}this._activeBatch.add(e)}break(e){this._activeBatch.break(e)}buildEnd(e){this._activeBatch.break(e);let t=this._activeBatches;for(let i in t){let s=t[i],n=s.geometry;n.indexBuffer.setDataWithSize(s.indexBuffer,s.indexSize,!0),n.buffers[0].setDataWithSize(s.attributeBuffer.float32View,s.attributeSize,!1)}}upload(e){let t=this._batchersByInstructionSet[e.uid];for(let i in t){let s=t[i],n=s.geometry;s.dirty&&(s.dirty=!1,n.buffers[0].update(s.attributeSize*4))}}execute(e){if(e.action==="startBatch"){let t=e.batcher,i=t.geometry,s=t.shader;this._adaptor.start(this,i,s)}this._adaptor.execute(this,e)}destroy(){this.state=null,this.renderer=null,this._adaptor=null;for(let e in this._activeBatches)this._activeBatches[e].destroy();this._activeBatches=null}};Pm.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"batch"};Pm._availableBatchers=Object.create(null);Bm=Pm;O.handleByMap(b.Batcher,Bm._availableBatchers);O.add(co)});var _w,bw=p(()=>{_w=`in vec2 vMaskCoord;
|
|
596
596
|
in vec2 vTextureCoord;
|
|
597
597
|
|
|
598
598
|
uniform sampler2D uTexture;
|
|
@@ -626,7 +626,7 @@ void main(void)
|
|
|
626
626
|
|
|
627
627
|
finalColor = original * a;
|
|
628
628
|
}
|
|
629
|
-
`});var
|
|
629
|
+
`});var yw,Tw=p(()=>{yw=`in vec2 aPosition;
|
|
630
630
|
|
|
631
631
|
out vec2 vTextureCoord;
|
|
632
632
|
out vec2 vMaskCoord;
|
|
@@ -663,7 +663,7 @@ void main(void)
|
|
|
663
663
|
vTextureCoord = filterTextureCoord(aPosition);
|
|
664
664
|
vMaskCoord = getFilterCoord(aPosition);
|
|
665
665
|
}
|
|
666
|
-
`});var
|
|
666
|
+
`});var Rm,ww=p(()=>{Rm=`struct GlobalFilterUniforms {
|
|
667
667
|
uInputSize:vec4<f32>,
|
|
668
668
|
uInputPixel:vec4<f32>,
|
|
669
669
|
uInputClamp:vec4<f32>,
|
|
@@ -761,9 +761,9 @@ fn mainFragment(
|
|
|
761
761
|
|
|
762
762
|
return source * a;
|
|
763
763
|
}
|
|
764
|
-
`});var Ll,XS=p(()=>{te();$i();Ns();it();Wd();_S();WS();qS();jS();Ll=class extends xS{constructor(e){let{sprite:t,...i}=e,s=new Bs(t.texture),n=new ce({uFilterMatrix:{value:new R,type:"mat3x3<f32>"},uMaskClamp:{value:s.uClampFrame,type:"vec4<f32>"},uAlpha:{value:1,type:"f32"},uInverse:{value:e.inverse?1:0,type:"f32"}}),o=Bt.from({vertex:{source:pp,entryPoint:"mainVertex"},fragment:{source:pp,entryPoint:"mainFragment"}}),a=Pt.from({vertex:$S,fragment:HS,name:"mask-filter"});super({...i,gpuProgram:o,glProgram:a,resources:{filterUniforms:n,uMaskTexture:t.texture.source}}),this.sprite=t,this._textureMatrix=s}set inverse(e){this.resources.filterUniforms.uniforms.uInverse=e?1:0}get inverse(){return this.resources.filterUniforms.uniforms.uInverse===1}apply(e,t,i,s){this._textureMatrix.texture=this.sprite.texture,e.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=this.sprite.texture.source,e.applyFilter(this,t,i,s)}}});var sR,gp,fa,YS=p(()=>{B();bu();XS();at();uo();Gu();br();le();Hr();ir();sR=new ae,gp=class extends yr{constructor(){super(),this.filters=[new Ll({sprite:new Kt(M.EMPTY),inverse:!1,resolution:"inherit",antialias:"inherit"})]}get sprite(){return this.filters[0].sprite}set sprite(e){this.filters[0].sprite=e}get inverse(){return this.filters[0].inverse}set inverse(e){this.filters[0].inverse=e}},fa=class{constructor(e){this._activeMaskStage=[],this._renderer=e}push(e,t,i){let s=this._renderer;if(s.renderPipes.batch.break(i),i.add({renderPipeId:"alphaMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1,maskedContainer:t}),e.inverse=t._maskOptions.inverse,e.renderMaskToTexture){let n=e.mask;n.includeInBuild=!0,n.collectRenderables(i,s,null),n.includeInBuild=!1}s.renderPipes.batch.break(i),i.add({renderPipeId:"alphaMask",action:"pushMaskEnd",mask:e,maskedContainer:t,inverse:t._maskOptions.inverse,canBundle:!1})}pop(e,t,i){this._renderer.renderPipes.batch.break(i),i.add({renderPipeId:"alphaMask",action:"popMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1})}execute(e){let t=this._renderer,i=e.mask.renderMaskToTexture;if(e.action==="pushMaskBegin"){let s=me.get(gp);if(s.inverse=e.inverse,i){e.mask.mask.measurable=!0;let n=Es(e.mask.mask,!0,sR);e.mask.mask.measurable=!1,n.ceil();let o=t.renderTarget.renderTarget.colorTexture.source,a=Te.getOptimalTexture(n.width,n.height,o._resolution,o.antialias);t.renderTarget.push(a,!0),t.globalUniforms.push({offset:n,worldColor:4294967295});let c=s.sprite;c.texture=a,c.worldTransform.tx=n.minX,c.worldTransform.ty=n.minY,this._activeMaskStage.push({filterEffect:s,maskedContainer:e.maskedContainer,filterTexture:a})}else s.sprite=e.mask.mask,this._activeMaskStage.push({filterEffect:s,maskedContainer:e.maskedContainer})}else if(e.action==="pushMaskEnd"){let s=this._activeMaskStage[this._activeMaskStage.length-1];i&&(t.type===Ie.WEBGL&&t.renderTarget.finishRenderPass(),t.renderTarget.pop(),t.globalUniforms.pop()),t.filter.push({renderPipeId:"filter",action:"pushFilter",container:s.maskedContainer,filterEffect:s.filterEffect,canBundle:!1})}else if(e.action==="popMaskEnd"){t.filter.pop();let s=this._activeMaskStage.pop();i&&Te.returnTexture(s.filterTexture),me.return(s.filterEffect)}}destroy(){this._renderer=null,this._activeMaskStage=null}};fa.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"alphaMask"}});var ma,KS=p(()=>{B();ma=class{constructor(e){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=e}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(e,t,i){this._renderer.renderPipes.batch.break(i);let n=this._colorStack;n[this._colorStackIndex]=n[this._colorStackIndex-1]&e.mask;let o=this._colorStack[this._colorStackIndex];o!==this._currentColor&&(this._currentColor=o,i.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1})),this._colorStackIndex++}pop(e,t,i){this._renderer.renderPipes.batch.break(i);let n=this._colorStack;this._colorStackIndex--;let o=n[this._colorStackIndex-1];o!==this._currentColor&&(this._currentColor=o,i.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1}))}execute(e){this._renderer.colorMask.setMask(e.colorMask)}destroy(){this._colorStack=null}};ma.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"colorMask"}});var pa,QS=p(()=>{B();ln();Wi();pa=class{constructor(e){this._maskStackHash={},this._maskHash=new WeakMap,this._renderer=e}push(e,t,i){var s;let n=e,o=this._renderer;o.renderPipes.batch.break(i),o.renderPipes.blendMode.setBlendMode(n.mask,"none",i),i.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1});let a=n.mask;a.includeInBuild=!0,this._maskHash.has(n)||this._maskHash.set(n,{instructionsStart:0,instructionsLength:0});let c=this._maskHash.get(n);c.instructionsStart=i.instructionSize,a.collectRenderables(i,o,null),a.includeInBuild=!1,o.renderPipes.batch.break(i),i.add({renderPipeId:"stencilMask",action:"pushMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1});let u=i.instructionSize-c.instructionsStart-1;c.instructionsLength=u;let l=o.renderTarget.renderTarget.uid;(s=this._maskStackHash)[l]??(s[l]=0)}pop(e,t,i){let s=e,n=this._renderer;n.renderPipes.batch.break(i),n.renderPipes.blendMode.setBlendMode(s.mask,"none",i),i.add({renderPipeId:"stencilMask",action:"popMaskBegin",inverse:t._maskOptions.inverse,canBundle:!1});let o=this._maskHash.get(e);for(let a=0;a<o.instructionsLength;a++)i.instructions[i.instructionSize++]=i.instructions[o.instructionsStart++];i.add({renderPipeId:"stencilMask",action:"popMaskEnd",canBundle:!1})}execute(e){var t;let i=this._renderer,s=i.renderTarget.renderTarget.uid,n=(t=this._maskStackHash)[s]??(t[s]=0);e.action==="pushMaskBegin"?(i.renderTarget.ensureDepthStencil(),i.stencil.setStencilMode(fe.RENDERING_MASK_ADD,n),n++,i.colorMask.setMask(0)):e.action==="pushMaskEnd"?(e.inverse?i.stencil.setStencilMode(fe.INVERSE_MASK_ACTIVE,n):i.stencil.setStencilMode(fe.MASK_ACTIVE,n),i.colorMask.setMask(15)):e.action==="popMaskBegin"?(i.colorMask.setMask(0),n!==0?i.stencil.setStencilMode(fe.RENDERING_MASK_REMOVE,n):(i.renderTarget.clear(null,Le.STENCIL),i.stencil.setStencilMode(fe.DISABLED,n)),n--):e.action==="popMaskEnd"&&(e.inverse?i.stencil.setStencilMode(fe.INVERSE_MASK_ACTIVE,n):i.stencil.setStencilMode(fe.MASK_ACTIVE,n),i.colorMask.setMask(15)),this._maskStackHash[s]=n}destroy(){this._renderer=null,this._maskStackHash=null,this._maskHash=null}};pa.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"stencilMask"}});var xp,JS,ev=p(()=>{He();B();xp=class ZS{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new q(0),this.color=this._backgroundColor,this.alpha=1}init(e){e={...ZS.defaultOptions,...e},this.clearBeforeRender=e.clearBeforeRender,this.color=e.background||e.backgroundColor||this._backgroundColor,this.alpha=e.backgroundAlpha,this._backgroundColor.setAlpha(e.backgroundAlpha)}get color(){return this._backgroundColor}set color(e){this._backgroundColor.setValue(e)}get alpha(){return this._backgroundColor.alpha}set alpha(e){this._backgroundColor.setAlpha(e)}get colorRgba(){return this._backgroundColor.toArray()}destroy(){}};xp.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"background",priority:0};xp.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0};JS=xp});var ga,xa,tv=p(()=>{B();bu();pe();ga={};O.handle(b.BlendMode,r=>{if(!r.name)throw new Error("BlendMode extension must have a name property");ga[r.name]=r.ref},r=>{delete ga[r.name]});xa=class{constructor(e){this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=e,this._renderer.runners.prerender.add(this)}prerender(){this._activeBlendMode="normal",this._isAdvanced=!1}setBlendMode(e,t,i){if(this._activeBlendMode===t){this._isAdvanced&&this._renderableList.push(e);return}this._activeBlendMode=t,this._isAdvanced&&this._endAdvancedBlendMode(i),this._isAdvanced=!!ga[t],this._isAdvanced&&(this._beginAdvancedBlendMode(i),this._renderableList.push(e))}_beginAdvancedBlendMode(e){this._renderer.renderPipes.batch.break(e);let t=this._activeBlendMode;if(!ga[t]){N(`Unable to assign BlendMode: '${t}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);return}let i=this._filterHash[t];i||(i=this._filterHash[t]=new yr,i.filters=[new ga[t]]);let s={renderPipeId:"filter",action:"pushFilter",renderables:[],filterEffect:i,canBundle:!1};this._renderableList=s.renderables,e.add(s)}_endAdvancedBlendMode(e){this._renderableList=null,this._renderer.renderPipes.batch.break(e),e.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(e){this._isAdvanced&&this._endAdvancedBlendMode(e)}destroy(){this._renderer=null,this._renderableList=null;for(let e in this._filterHash)this._filterHash[e].destroy();this._filterHash=null}};xa.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"blendMode"}});var _p,bp,iv,sv=p(()=>{B();jt();le();_p={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},bp=class rv{constructor(e){this._renderer=e}_normalizeOptions(e,t={}){return e instanceof we||e instanceof M?{target:e,...t}:{...t,...e}}async image(e){let t=new Image;return t.src=await this.base64(e),t}async base64(e){e=this._normalizeOptions(e,rv.defaultImageOptions);let{format:t,quality:i}=e,s=this.canvas(e);if(s.toBlob!==void 0)return new Promise((n,o)=>{s.toBlob(a=>{if(!a){o(new Error("ICanvas.toBlob failed!"));return}let c=new FileReader;c.onload=()=>n(c.result),c.onerror=o,c.readAsDataURL(a)},_p[t],i)});if(s.toDataURL!==void 0)return s.toDataURL(_p[t],i);if(s.convertToBlob!==void 0){let n=await s.convertToBlob({type:_p[t],quality:i});return new Promise((o,a)=>{let c=new FileReader;c.onload=()=>o(c.result),c.onerror=a,c.readAsDataURL(n)})}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(e){e=this._normalizeOptions(e);let t=e.target,i=this._renderer;if(t instanceof M)return i.texture.generateCanvas(t);let s=i.textureGenerator.generateTexture(e),n=i.texture.generateCanvas(s);return s.destroy(!0),n}pixels(e){e=this._normalizeOptions(e);let t=e.target,i=this._renderer,s=t instanceof M?t:i.textureGenerator.generateTexture(e),n=i.texture.getPixels(s);return t instanceof we&&s.destroy(!0),n}texture(e){return e=this._normalizeOptions(e),e.target instanceof M?e.target:this._renderer.textureGenerator.generateTexture(e)}download(e){e=this._normalizeOptions(e);let t=this.canvas(e),i=document.createElement("a");i.download=e.filename??"image.png",i.href=t.toDataURL("image/png"),document.body.appendChild(i),i.click(),document.body.removeChild(i)}log(e){let t=e.width??200;e=this._normalizeOptions(e);let i=this.canvas(e),s=i.toDataURL();console.log(`[Pixi Texture] ${i.width}px ${i.height}px`);let n=["font-size: 1px;",`padding: ${t}px 300px;`,`background: url(${s}) no-repeat;`,"background-size: contain;"].join(" ");console.log("%c ",n)}destroy(){this._renderer=null}};bp.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"extract"};bp.defaultImageOptions={format:"png",quality:1};iv=bp});var zl,nv=p(()=>{tt();le();zl=class r extends M{static create(e){return new r({source:new se(e)})}resize(e,t,i){return this.source.resize(e,t,i),this}}});var nR,oR,aR,_a,ov=p(()=>{He();B();te();Ge();at();vu();jt();nv();nR=new Y,oR=new ae,aR=[0,0,0,0],_a=class{constructor(e){this._renderer=e}generateTexture(e){e instanceof we&&(e={target:e,frame:void 0,textureSourceOptions:{},resolution:void 0});let t=e.resolution||this._renderer.resolution,i=e.antialias||this._renderer.view.antialias,s=e.target,n=e.clearColor;n?n=Array.isArray(n)&&n.length===4?n:q.shared.setValue(n).toArray():n=aR;let o=e.frame?.copyTo(nR)||As(s,oR).rectangle;o.width=Math.max(o.width,1/t)|0,o.height=Math.max(o.height,1/t)|0;let a=zl.create({...e.textureSourceOptions,width:o.width,height:o.height,resolution:t,antialias:i}),c=R.shared.translate(-o.x,-o.y);return this._renderer.render({container:s,transform:c,target:a,clearColor:n}),a.source.updateMipmaps(),a}destroy(){this._renderer=null}};_a.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"textureGenerator"}});var ba,av=p(()=>{B();te();Ft();Ys();Xr();ir();it();ba=class{constructor(e){this._stackIndex=0,this._globalUniformDataStack=[],this._uniformsPool=[],this._activeUniforms=[],this._bindGroupPool=[],this._activeBindGroups=[],this._renderer=e}reset(){this._stackIndex=0;for(let e=0;e<this._activeUniforms.length;e++)this._uniformsPool.push(this._activeUniforms[e]);for(let e=0;e<this._activeBindGroups.length;e++)this._bindGroupPool.push(this._activeBindGroups[e]);this._activeUniforms.length=0,this._activeBindGroups.length=0}start(e){this.reset(),this.push(e)}bind({size:e,projectionMatrix:t,worldTransformMatrix:i,worldColor:s,offset:n}){let o=this._renderer.renderTarget.renderTarget,a=this._stackIndex?this._globalUniformDataStack[this._stackIndex-1]:{projectionData:o,worldTransformMatrix:new R,worldColor:4294967295,offset:new J},c={projectionMatrix:t||this._renderer.renderTarget.projectionMatrix,resolution:e||o.size,worldTransformMatrix:i||a.worldTransformMatrix,worldColor:s||a.worldColor,offset:n||a.offset,bindGroup:null},u=this._uniformsPool.pop()||this._createUniforms();this._activeUniforms.push(u);let l=u.uniforms;l.uProjectionMatrix=c.projectionMatrix,l.uResolution=c.resolution,l.uWorldTransformMatrix.copyFrom(c.worldTransformMatrix),l.uWorldTransformMatrix.tx-=c.offset.x,l.uWorldTransformMatrix.ty-=c.offset.y,sr(c.worldColor,l.uWorldColorAlpha,0),u.update();let h;this._renderer.renderPipes.uniformBatch?h=this._renderer.renderPipes.uniformBatch.getUniformBindGroup(u,!1):(h=this._bindGroupPool.pop()||new Ne,this._activeBindGroups.push(h),h.setResource(u,0)),c.bindGroup=h,this._currentGlobalUniformData=c}push(e){this.bind(e),this._globalUniformDataStack[this._stackIndex++]=this._currentGlobalUniformData}pop(){this._currentGlobalUniformData=this._globalUniformDataStack[--this._stackIndex-1],this._renderer.type===Ie.WEBGL&&this._currentGlobalUniformData.bindGroup.resources[0].update()}get bindGroup(){return this._currentGlobalUniformData.bindGroup}get globalUniformData(){return this._currentGlobalUniformData}get uniformGroup(){return this._currentGlobalUniformData.bindGroup.resources[0]}_createUniforms(){return new ce({uProjectionMatrix:{value:new R,type:"mat3x3<f32>"},uWorldTransformMatrix:{value:new R,type:"mat3x3<f32>"},uWorldColorAlpha:{value:new Float32Array(4),type:"vec4<f32>"},uResolution:{value:[0,0],type:"vec2<f32>"}},{isStatic:!0})}destroy(){this._renderer=null}};ba.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"globalUniforms"}});var cR,ya,cv=p(()=>{B();go();cR=1,ya=class{constructor(){this._tasks=[],this._offset=0}init(){ct.system.add(this._update,this)}repeat(e,t,i=!0){let s=cR++,n=0;return i&&(this._offset+=1e3,n=this._offset),this._tasks.push({func:e,duration:t,start:performance.now(),offset:n,last:performance.now(),repeat:!0,id:s}),s}cancel(e){for(let t=0;t<this._tasks.length;t++)if(this._tasks[t].id===e){this._tasks.splice(t,1);return}}_update(){let e=performance.now();for(let t=0;t<this._tasks.length;t++){let i=this._tasks[t];if(e-i.offset-i.last>=i.duration){let s=e-i.start;i.func(s),i.last=e}}}destroy(){ct.system.remove(this._update,this),this._tasks.length=0}};ya.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"scheduler",priority:0}});function lv(r){if(!uv){if(W.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){let e=[`%c %c %c %c %c PixiJS %c v${dn} (${r}) http://www.pixijs.com/
|
|
764
|
+
`});var il,Sw=p(()=>{ee();Ai();bs();rt();od();jT();bw();Tw();ww();il=class extends qT{constructor(e){let{sprite:t,...i}=e,s=new ls(t.texture),n=new ce({uFilterMatrix:{value:new R,type:"mat3x3<f32>"},uMaskClamp:{value:s.uClampFrame,type:"vec4<f32>"},uAlpha:{value:1,type:"f32"},uInverse:{value:e.inverse?1:0,type:"f32"}}),o=Et.from({vertex:{source:Rm,entryPoint:"mainVertex"},fragment:{source:Rm,entryPoint:"mainFragment"}}),a=Ct.from({vertex:yw,fragment:_w,name:"mask-filter"});super({...i,gpuProgram:o,glProgram:a,resources:{filterUniforms:n,uMaskTexture:t.texture.source}}),this.sprite=t,this._textureMatrix=s}set inverse(e){this.resources.filterUniforms.uniforms.uInverse=e?1:0}get inverse(){return this.resources.filterUniforms.uniforms.uInverse===1}apply(e,t,i,s){this._textureMatrix.texture=this.sprite.texture,e.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=this.sprite.texture.source,e.applyFilter(this,t,i,s)}}});var PP,Dm,Ho,vw=p(()=>{P();Uc();Sw();ot();Nn();tu();gr();le();Lr();Jt();PP=new ae,Dm=class extends xr{constructor(){super(),this.filters=[new il({sprite:new qt(D.EMPTY),inverse:!1,resolution:"inherit",antialias:"inherit"})]}get sprite(){return this.filters[0].sprite}set sprite(e){this.filters[0].sprite=e}get inverse(){return this.filters[0].inverse}set inverse(e){this.filters[0].inverse=e}},Ho=class{constructor(e){this._activeMaskStage=[],this._renderer=e}push(e,t,i){let s=this._renderer;if(s.renderPipes.batch.break(i),i.add({renderPipeId:"alphaMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1,maskedContainer:t}),e.inverse=t._maskOptions.inverse,e.renderMaskToTexture){let n=e.mask;n.includeInBuild=!0,n.collectRenderables(i,s,null),n.includeInBuild=!1}s.renderPipes.batch.break(i),i.add({renderPipeId:"alphaMask",action:"pushMaskEnd",mask:e,maskedContainer:t,inverse:t._maskOptions.inverse,canBundle:!1})}pop(e,t,i){this._renderer.renderPipes.batch.break(i),i.add({renderPipeId:"alphaMask",action:"popMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1})}execute(e){let t=this._renderer,i=e.mask.renderMaskToTexture;if(e.action==="pushMaskBegin"){let s=pe.get(Dm);if(s.inverse=e.inverse,i){e.mask.mask.measurable=!0;let n=os(e.mask.mask,!0,PP);e.mask.mask.measurable=!1,n.ceil();let o=t.renderTarget.renderTarget.colorTexture.source,a=Te.getOptimalTexture(n.width,n.height,o._resolution,o.antialias);t.renderTarget.push(a,!0),t.globalUniforms.push({offset:n,worldColor:4294967295});let c=s.sprite;c.texture=a,c.worldTransform.tx=n.minX,c.worldTransform.ty=n.minY,this._activeMaskStage.push({filterEffect:s,maskedContainer:e.maskedContainer,filterTexture:a})}else s.sprite=e.mask.mask,this._activeMaskStage.push({filterEffect:s,maskedContainer:e.maskedContainer})}else if(e.action==="pushMaskEnd"){let s=this._activeMaskStage[this._activeMaskStage.length-1];i&&(t.type===Me.WEBGL&&t.renderTarget.finishRenderPass(),t.renderTarget.pop(),t.globalUniforms.pop()),t.filter.push({renderPipeId:"filter",action:"pushFilter",container:s.maskedContainer,filterEffect:s.filterEffect,canBundle:!1})}else if(e.action==="popMaskEnd"){t.filter.pop();let s=this._activeMaskStage.pop();i&&Te.returnTexture(s.filterTexture),pe.return(s.filterEffect)}}destroy(){this._renderer=null,this._activeMaskStage=null}};Ho.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"alphaMask"}});var Wo,Cw=p(()=>{P();Wo=class{constructor(e){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=e}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(e,t,i){this._renderer.renderPipes.batch.break(i);let n=this._colorStack;n[this._colorStackIndex]=n[this._colorStackIndex-1]&e.mask;let o=this._colorStack[this._colorStackIndex];o!==this._currentColor&&(this._currentColor=o,i.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1})),this._colorStackIndex++}pop(e,t,i){this._renderer.renderPipes.batch.break(i);let n=this._colorStack;this._colorStackIndex--;let o=n[this._colorStackIndex-1];o!==this._currentColor&&(this._currentColor=o,i.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1}))}execute(e){this._renderer.colorMask.setMask(e.colorMask)}destroy(){this._colorStack=null}};Wo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"colorMask"}});var $o,Ew=p(()=>{P();Hs();ki();$o=class{constructor(e){this._maskStackHash={},this._maskHash=new WeakMap,this._renderer=e}push(e,t,i){var s;let n=e,o=this._renderer;o.renderPipes.batch.break(i),o.renderPipes.blendMode.setBlendMode(n.mask,"none",i),i.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1});let a=n.mask;a.includeInBuild=!0,this._maskHash.has(n)||this._maskHash.set(n,{instructionsStart:0,instructionsLength:0});let c=this._maskHash.get(n);c.instructionsStart=i.instructionSize,a.collectRenderables(i,o,null),a.includeInBuild=!1,o.renderPipes.batch.break(i),i.add({renderPipeId:"stencilMask",action:"pushMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1});let u=i.instructionSize-c.instructionsStart-1;c.instructionsLength=u;let l=o.renderTarget.renderTarget.uid;(s=this._maskStackHash)[l]??(s[l]=0)}pop(e,t,i){let s=e,n=this._renderer;n.renderPipes.batch.break(i),n.renderPipes.blendMode.setBlendMode(s.mask,"none",i),i.add({renderPipeId:"stencilMask",action:"popMaskBegin",inverse:t._maskOptions.inverse,canBundle:!1});let o=this._maskHash.get(e);for(let a=0;a<o.instructionsLength;a++)i.instructions[i.instructionSize++]=i.instructions[o.instructionsStart++];i.add({renderPipeId:"stencilMask",action:"popMaskEnd",canBundle:!1})}execute(e){var t;let i=this._renderer,s=i.renderTarget.renderTarget.uid,n=(t=this._maskStackHash)[s]??(t[s]=0);e.action==="pushMaskBegin"?(i.renderTarget.ensureDepthStencil(),i.stencil.setStencilMode(me.RENDERING_MASK_ADD,n),n++,i.colorMask.setMask(0)):e.action==="pushMaskEnd"?(e.inverse?i.stencil.setStencilMode(me.INVERSE_MASK_ACTIVE,n):i.stencil.setStencilMode(me.MASK_ACTIVE,n),i.colorMask.setMask(15)):e.action==="popMaskBegin"?(i.colorMask.setMask(0),n!==0?i.stencil.setStencilMode(me.RENDERING_MASK_REMOVE,n):(i.renderTarget.clear(null,Le.STENCIL),i.stencil.setStencilMode(me.DISABLED,n)),n--):e.action==="popMaskEnd"&&(e.inverse?i.stencil.setStencilMode(me.INVERSE_MASK_ACTIVE,n):i.stencil.setStencilMode(me.MASK_ACTIVE,n),i.colorMask.setMask(15)),this._maskStackHash[s]=n}destroy(){this._renderer=null,this._maskStackHash=null,this._maskHash=null}};$o.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"stencilMask"}});var Mm,Aw,Pw=p(()=>{He();P();Mm=class kw{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new q(0),this.color=this._backgroundColor,this.alpha=1}init(e){e={...kw.defaultOptions,...e},this.clearBeforeRender=e.clearBeforeRender,this.color=e.background||e.backgroundColor||this._backgroundColor,this.alpha=e.backgroundAlpha,this._backgroundColor.setAlpha(e.backgroundAlpha)}get color(){return this._backgroundColor}set color(e){this._backgroundColor.setValue(e)}get alpha(){return this._backgroundColor.alpha}set alpha(e){this._backgroundColor.setAlpha(e)}get colorRgba(){return this._backgroundColor.toArray()}destroy(){}};Mm.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"background",priority:0};Mm.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0};Aw=Mm});var qo,jo,Bw=p(()=>{P();Uc();ge();qo={};O.handle(b.BlendMode,r=>{if(!r.name)throw new Error("BlendMode extension must have a name property");qo[r.name]=r.ref},r=>{delete qo[r.name]});jo=class{constructor(e){this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=e,this._renderer.runners.prerender.add(this)}prerender(){this._activeBlendMode="normal",this._isAdvanced=!1}setBlendMode(e,t,i){if(this._activeBlendMode===t){this._isAdvanced&&this._renderableList.push(e);return}this._activeBlendMode=t,this._isAdvanced&&this._endAdvancedBlendMode(i),this._isAdvanced=!!qo[t],this._isAdvanced&&(this._beginAdvancedBlendMode(i),this._renderableList.push(e))}_beginAdvancedBlendMode(e){this._renderer.renderPipes.batch.break(e);let t=this._activeBlendMode;if(!qo[t]){G(`Unable to assign BlendMode: '${t}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);return}let i=this._filterHash[t];i||(i=this._filterHash[t]=new xr,i.filters=[new qo[t]]);let s={renderPipeId:"filter",action:"pushFilter",renderables:[],filterEffect:i,canBundle:!1};this._renderableList=s.renderables,e.add(s)}_endAdvancedBlendMode(e){this._renderableList=null,this._renderer.renderPipes.batch.break(e),e.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(e){this._isAdvanced&&this._endAdvancedBlendMode(e)}destroy(){this._renderer=null,this._renderableList=null;for(let e in this._filterHash)this._filterHash[e].destroy();this._filterHash=null}};jo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"blendMode"}});var Im,Fm,Dw,Mw=p(()=>{P();Ht();le();Im={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},Fm=class Rw{constructor(e){this._renderer=e}_normalizeOptions(e,t={}){return e instanceof we||e instanceof D?{target:e,...t}:{...t,...e}}async image(e){let t=new Image;return t.src=await this.base64(e),t}async base64(e){e=this._normalizeOptions(e,Rw.defaultImageOptions);let{format:t,quality:i}=e,s=this.canvas(e);if(s.toBlob!==void 0)return new Promise((n,o)=>{s.toBlob(a=>{if(!a){o(new Error("ICanvas.toBlob failed!"));return}let c=new FileReader;c.onload=()=>n(c.result),c.onerror=o,c.readAsDataURL(a)},Im[t],i)});if(s.toDataURL!==void 0)return s.toDataURL(Im[t],i);if(s.convertToBlob!==void 0){let n=await s.convertToBlob({type:Im[t],quality:i});return new Promise((o,a)=>{let c=new FileReader;c.onload=()=>o(c.result),c.onerror=a,c.readAsDataURL(n)})}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(e){e=this._normalizeOptions(e);let t=e.target,i=this._renderer;if(t instanceof D)return i.texture.generateCanvas(t);let s=i.textureGenerator.generateTexture(e),n=i.texture.generateCanvas(s);return s.destroy(!0),n}pixels(e){e=this._normalizeOptions(e);let t=e.target,i=this._renderer,s=t instanceof D?t:i.textureGenerator.generateTexture(e),n=i.texture.getPixels(s);return t instanceof we&&s.destroy(!0),n}texture(e){return e=this._normalizeOptions(e),e.target instanceof D?e.target:this._renderer.textureGenerator.generateTexture(e)}download(e){e=this._normalizeOptions(e);let t=this.canvas(e),i=document.createElement("a");i.download=e.filename??"image.png",i.href=t.toDataURL("image/png"),document.body.appendChild(i),i.click(),document.body.removeChild(i)}log(e){let t=e.width??200;e=this._normalizeOptions(e);let i=this.canvas(e),s=i.toDataURL();console.log(`[Pixi Texture] ${i.width}px ${i.height}px`);let n=["font-size: 1px;",`padding: ${t}px 300px;`,`background: url(${s}) no-repeat;`,"background-size: contain;"].join(" ");console.log("%c ",n)}destroy(){this._renderer=null}};Fm.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"extract"};Fm.defaultImageOptions={format:"png",quality:1};Dw=Fm});var sl,Iw=p(()=>{et();le();sl=class r extends D{static create(e){return new r({source:new se(e)})}resize(e,t,i){return this.source.resize(e,t,i),this}}});var BP,RP,DP,Xo,Fw=p(()=>{He();P();ee();Ge();ot();zc();Ht();Iw();BP=new Y,RP=new ae,DP=[0,0,0,0],Xo=class{constructor(e){this._renderer=e}generateTexture(e){e instanceof we&&(e={target:e,frame:void 0,textureSourceOptions:{},resolution:void 0});let t=e.resolution||this._renderer.resolution,i=e.antialias||this._renderer.view.antialias,s=e.target,n=e.clearColor;n?n=Array.isArray(n)&&n.length===4?n:q.shared.setValue(n).toArray():n=DP;let o=e.frame?.copyTo(BP)||cs(s,RP).rectangle;o.width=Math.max(o.width,1/t)|0,o.height=Math.max(o.height,1/t)|0;let a=sl.create({...e.textureSourceOptions,width:o.width,height:o.height,resolution:t,antialias:i}),c=R.shared.translate(-o.x,-o.y);return this._renderer.render({container:s,transform:c,target:a,clearColor:n}),a.source.updateMipmaps(),a}destroy(){this._renderer=null}};Xo.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"textureGenerator"}});var Yo,Uw=p(()=>{P();ee();It();Ps();$r();Jt();rt();Yo=class{constructor(e){this._stackIndex=0,this._globalUniformDataStack=[],this._uniformsPool=[],this._activeUniforms=[],this._bindGroupPool=[],this._activeBindGroups=[],this._renderer=e}reset(){this._stackIndex=0;for(let e=0;e<this._activeUniforms.length;e++)this._uniformsPool.push(this._activeUniforms[e]);for(let e=0;e<this._activeBindGroups.length;e++)this._bindGroupPool.push(this._activeBindGroups[e]);this._activeUniforms.length=0,this._activeBindGroups.length=0}start(e){this.reset(),this.push(e)}bind({size:e,projectionMatrix:t,worldTransformMatrix:i,worldColor:s,offset:n}){let o=this._renderer.renderTarget.renderTarget,a=this._stackIndex?this._globalUniformDataStack[this._stackIndex-1]:{projectionData:o,worldTransformMatrix:new R,worldColor:4294967295,offset:new Z},c={projectionMatrix:t||this._renderer.renderTarget.projectionMatrix,resolution:e||o.size,worldTransformMatrix:i||a.worldTransformMatrix,worldColor:s||a.worldColor,offset:n||a.offset,bindGroup:null},u=this._uniformsPool.pop()||this._createUniforms();this._activeUniforms.push(u);let l=u.uniforms;l.uProjectionMatrix=c.projectionMatrix,l.uResolution=c.resolution,l.uWorldTransformMatrix.copyFrom(c.worldTransformMatrix),l.uWorldTransformMatrix.tx-=c.offset.x,l.uWorldTransformMatrix.ty-=c.offset.y,er(c.worldColor,l.uWorldColorAlpha,0),u.update();let h;this._renderer.renderPipes.uniformBatch?h=this._renderer.renderPipes.uniformBatch.getUniformBindGroup(u,!1):(h=this._bindGroupPool.pop()||new Ne,this._activeBindGroups.push(h),h.setResource(u,0)),c.bindGroup=h,this._currentGlobalUniformData=c}push(e){this.bind(e),this._globalUniformDataStack[this._stackIndex++]=this._currentGlobalUniformData}pop(){this._currentGlobalUniformData=this._globalUniformDataStack[--this._stackIndex-1],this._renderer.type===Me.WEBGL&&this._currentGlobalUniformData.bindGroup.resources[0].update()}get bindGroup(){return this._currentGlobalUniformData.bindGroup}get globalUniformData(){return this._currentGlobalUniformData}get uniformGroup(){return this._currentGlobalUniformData.bindGroup.resources[0]}_createUniforms(){return new ce({uProjectionMatrix:{value:new R,type:"mat3x3<f32>"},uWorldTransformMatrix:{value:new R,type:"mat3x3<f32>"},uWorldColorAlpha:{value:new Float32Array(4),type:"vec4<f32>"},uResolution:{value:[0,0],type:"vec2<f32>"}},{isStatic:!0})}destroy(){this._renderer=null}};Yo.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"globalUniforms"}});var MP,Ko,Ow=p(()=>{P();$n();MP=1,Ko=class{constructor(){this._tasks=[],this._offset=0}init(){at.system.add(this._update,this)}repeat(e,t,i=!0){let s=MP++,n=0;return i&&(this._offset+=1e3,n=this._offset),this._tasks.push({func:e,duration:t,start:performance.now(),offset:n,last:performance.now(),repeat:!0,id:s}),s}cancel(e){for(let t=0;t<this._tasks.length;t++)if(this._tasks[t].id===e){this._tasks.splice(t,1);return}}_update(){let e=performance.now();for(let t=0;t<this._tasks.length;t++){let i=this._tasks[t];if(e-i.offset-i.last>=i.duration){let s=e-i.start;i.func(s),i.last=e}}}destroy(){at.system.remove(this._update,this),this._tasks.length=0}};Ko.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"scheduler",priority:0}});function Nw(r){if(!Gw){if(W.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){let e=[`%c %c %c %c %c PixiJS %c v${$s} (${r}) http://www.pixijs.com/
|
|
765
765
|
|
|
766
|
-
`,"background: #E72264; padding:5px 0;","background: #6CA2EA; padding:5px 0;","background: #B5D33D; padding:5px 0;","background: #FED23F; padding:5px 0;","color: #FFFFFF; background: #E72264; padding:5px 0;","color: #E72264; background: #FFFFFF; padding:5px 0;"];globalThis.console.log(...e)}else globalThis.console&&globalThis.console.log(`PixiJS ${dn} - ${r} - http://www.pixijs.com/`);uv=!0}}var uv,hv=p(()=>{Ce();hp();uv=!1});var fn,dv=p(()=>{B();hv();ir();fn=class{constructor(e){this._renderer=e}init(e){if(e.hello){let t=this._renderer.name;this._renderer.type===Ie.WEBGL&&(t+=` ${this._renderer.context.webGLVersion}`),lv(t)}}};fn.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"hello",priority:-2};fn.defaultOptions={hello:!1}});function fv(r){let e=!1;for(let i in r)if(r[i]==null){e=!0;break}if(!e)return r;let t=Object.create(null);for(let i in r){let s=r[i];s&&(t[i]=s)}return t}function mv(r){let e=0;for(let t=0;t<r.length;t++)r[t]==null?e++:r[t-e]=r[t];return r.length-=e,r}var pv=p(()=>{"use strict"});var uR,yp,xv,_v=p(()=>{B();pv();uR=0,yp=class gv{constructor(e){this._managedRenderables=[],this._managedHashes=[],this._managedArrays=[],this._renderer=e}init(e){e={...gv.defaultOptions,...e},this.maxUnusedTime=e.renderableGCMaxUnusedTime,this._frequency=e.renderableGCFrequency,this.enabled=e.renderableGCActive}get enabled(){return!!this._handler}set enabled(e){this.enabled!==e&&(e?(this._handler=this._renderer.scheduler.repeat(()=>this.run(),this._frequency,!1),this._hashHandler=this._renderer.scheduler.repeat(()=>{for(let t of this._managedHashes)t.context[t.hash]=fv(t.context[t.hash])},this._frequency),this._arrayHandler=this._renderer.scheduler.repeat(()=>{for(let t of this._managedArrays)mv(t.context[t.hash])},this._frequency)):(this._renderer.scheduler.cancel(this._handler),this._renderer.scheduler.cancel(this._hashHandler),this._renderer.scheduler.cancel(this._arrayHandler)))}addManagedHash(e,t){this._managedHashes.push({context:e,hash:t})}addManagedArray(e,t){this._managedArrays.push({context:e,hash:t})}prerender({container:e}){this._now=performance.now(),e.renderGroup.gcTick=uR++,this._updateInstructionGCTick(e.renderGroup,e.renderGroup.gcTick)}addRenderable(e){this.enabled&&(e._lastUsed===-1&&(this._managedRenderables.push(e),e.once("destroyed",this._removeRenderable,this)),e._lastUsed=this._now)}run(){let e=this._now,t=this._managedRenderables,i=this._renderer.renderPipes,s=0;for(let n=0;n<t.length;n++){let o=t[n];if(o===null){s++;continue}let a=o.renderGroup??o.parentRenderGroup,c=a?.instructionSet?.gcTick??-1;if((a?.gcTick??0)===c&&(o._lastUsed=e),e-o._lastUsed>this.maxUnusedTime){if(!o.destroyed){let u=i;a&&(a.structureDidChange=!0),u[o.renderPipeId].destroyRenderable(o)}o._lastUsed=-1,s++,o.off("destroyed",this._removeRenderable,this)}else t[n-s]=o}t.length-=s}destroy(){this.enabled=!1,this._renderer=null,this._managedRenderables.length=0,this._managedHashes.length=0,this._managedArrays.length=0}_removeRenderable(e){let t=this._managedRenderables.indexOf(e);t>=0&&(e.off("destroyed",this._removeRenderable,this),this._managedRenderables[t]=null)}_updateInstructionGCTick(e,t){e.instructionSet.gcTick=t;for(let i of e.renderGroupChildren)this._updateInstructionGCTick(i,t)}};yp.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"renderableGC",priority:0};yp.defaultOptions={renderableGCActive:!0,renderableGCMaxUnusedTime:6e4,renderableGCFrequency:3e4};xv=yp});var Tp,yv,Tv=p(()=>{B();Tp=class bv{constructor(e){this._renderer=e,this.count=0,this.checkCount=0}init(e){e={...bv.defaultOptions,...e},this.checkCountMax=e.textureGCCheckCountMax,this.maxIdle=e.textureGCAMaxIdle??e.textureGCMaxIdle,this.active=e.textureGCActive}postrender(){this._renderer.renderingToScreen&&(this.count++,this.active&&(this.checkCount++,this.checkCount>this.checkCountMax&&(this.checkCount=0,this.run())))}run(){let e=this._renderer.texture.managedTextures;for(let t=0;t<e.length;t++){let i=e[t];i.autoGarbageCollect&&i.resource&&i._touched>-1&&this.count-i._touched>this.maxIdle&&(i._touched=-1,i.unload())}}destroy(){this._renderer=null}};Tp.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"textureGC"};Tp.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:null,textureGCMaxIdle:60*60,textureGCCheckCountMax:600};yv=Tp});var wv,Ta,wp=p(()=>{Oe();tt();le();wv=class Sv{constructor(e={}){if(this.uid=K("renderTarget"),this.colorTextures=[],this.dirtyId=0,this.isRoot=!1,this._size=new Float32Array(2),this._managedColorTextures=!1,e={...Sv.defaultOptions,...e},this.stencil=e.stencil,this.depth=e.depth,this.isRoot=e.isRoot,typeof e.colorTextures=="number"){this._managedColorTextures=!0;for(let t=0;t<e.colorTextures;t++)this.colorTextures.push(new se({width:e.width,height:e.height,resolution:e.resolution,antialias:e.antialias}))}else{this.colorTextures=[...e.colorTextures.map(i=>i.source)];let t=this.colorTexture.source;this.resize(t.width,t.height,t._resolution)}this.colorTexture.source.on("resize",this.onSourceResize,this),(e.depthStencilTexture||this.stencil)&&(e.depthStencilTexture instanceof M||e.depthStencilTexture instanceof se?this.depthStencilTexture=e.depthStencilTexture.source:this.ensureDepthStencilTexture())}get size(){let e=this._size;return e[0]=this.pixelWidth,e[1]=this.pixelHeight,e}get width(){return this.colorTexture.source.width}get height(){return this.colorTexture.source.height}get pixelWidth(){return this.colorTexture.source.pixelWidth}get pixelHeight(){return this.colorTexture.source.pixelHeight}get resolution(){return this.colorTexture.source._resolution}get colorTexture(){return this.colorTextures[0]}onSourceResize(e){this.resize(e.width,e.height,e._resolution,!0)}ensureDepthStencilTexture(){this.depthStencilTexture||(this.depthStencilTexture=new se({width:this.width,height:this.height,resolution:this.resolution,format:"depth24plus-stencil8",autoGenerateMipmaps:!1,antialias:!1,mipLevelCount:1}))}resize(e,t,i=this.resolution,s=!1){this.dirtyId++,this.colorTextures.forEach((n,o)=>{s&&o===0||n.source.resize(e,t,i)}),this.depthStencilTexture&&this.depthStencilTexture.source.resize(e,t,i)}destroy(){this.colorTexture.source.off("resize",this.onSourceResize,this),this._managedColorTextures&&this.colorTextures.forEach(e=>{e.destroy()}),this.depthStencilTexture&&(this.depthStencilTexture.destroy(),delete this.depthStencilTexture)}};wv.defaultOptions={width:0,height:0,resolution:1,colorTextures:1,stencil:!1,depth:!1,antialias:!1,isRoot:!1};Ta=wv});function Vl(r,e){if(!wa.has(r)){let t=new M({source:new je({resource:r,...e})}),i=()=>{wa.get(r)===t&&wa.delete(r)};t.once("destroy",i),t.source.once("destroy",i),wa.set(r,t)}return wa.get(r)}var wa,Sp=p(()=>{Is();le();wa=new Map});var vp,Cv,Ev=p(()=>{Ce();B();Ge();ye();wp();Sp();vp=class vv{get autoDensity(){return this.texture.source.autoDensity}set autoDensity(e){this.texture.source.autoDensity=e}get resolution(){return this.texture.source._resolution}set resolution(e){this.texture.source.resize(this.texture.source.width,this.texture.source.height,e)}init(e){e={...vv.defaultOptions,...e},e.view&&(z($,"ViewSystem.view has been renamed to ViewSystem.canvas"),e.canvas=e.view),this.screen=new Y(0,0,e.width,e.height),this.canvas=e.canvas||W.get().createCanvas(),this.antialias=!!e.antialias,this.texture=Vl(this.canvas,e),this.renderTarget=new Ta({colorTextures:[this.texture],depth:!!e.depth,isRoot:!0}),this.texture.source.transparent=e.backgroundAlpha<1,this.resolution=e.resolution}resize(e,t,i){this.texture.source.resize(e,t,i),this.screen.width=this.texture.frame.width,this.screen.height=this.texture.frame.height}destroy(e=!1){(typeof e=="boolean"?e:!!e?.removeView)&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas)}};vp.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"view",priority:0};vp.defaultOptions={width:800,height:600,autoDensity:!1,antialias:!1};Cv=vp});var Hl,Wl,Cp=p(()=>{BS();RS();GS();NS();LS();VS();YS();KS();QS();ev();tv();sv();ov();av();cv();dv();_v();Tv();Ev();Hl=[JS,ba,fn,Cv,la,yv,_a,iv,da,xv,ya],Wl=[xa,mp,ha,ca,fa,pa,ma,oa]});var Sa,kv=p(()=>{B();Sa=class{constructor(e){this._hash=Object.create(null),this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_hash")}contextChange(e){this._gpu=e}getBindGroup(e,t,i){return e._updateKey(),this._hash[e._key]||this._createBindGroup(e,t,i)}_createBindGroup(e,t,i){let s=this._gpu.device,n=t.layout[i],o=[],a=this._renderer;for(let l in n){let h=e.resources[l]??e.resources[n[l]],f;if(h._resourceType==="uniformGroup"){let d=h;a.ubo.updateUniformGroup(d);let m=d.buffer;f={buffer:a.buffer.getGPUBuffer(m),offset:0,size:m.descriptor.size}}else if(h._resourceType==="buffer"){let d=h;f={buffer:a.buffer.getGPUBuffer(d),offset:0,size:d.descriptor.size}}else if(h._resourceType==="bufferResource"){let d=h;f={buffer:a.buffer.getGPUBuffer(d.buffer),offset:d.offset,size:d.size}}else if(h._resourceType==="textureSampler"){let d=h;f=a.texture.getGpuSampler(d)}else if(h._resourceType==="textureSource"){let d=h;f=a.texture.getGpuSource(d).createView({})}o.push({binding:n[l],resource:f})}let c=a.shader.getProgramData(t).bindGroups[i],u=s.createBindGroup({layout:c,entries:o});return this._hash[e._key]=u,u}destroy(){for(let e of Object.keys(this._hash))this._hash[e]=null;this._hash=null,this._renderer=null}};Sa.extension={type:[b.WebGPUSystem],name:"bindGroup"}});var va,Av=p(()=>{B();Sf();va=class{constructor(e){this._gpuBuffers=Object.create(null),this._managedBuffers=[],e.renderableGC.addManagedHash(this,"_gpuBuffers")}contextChange(e){this._gpu=e}getGPUBuffer(e){return this._gpuBuffers[e.uid]||this.createGPUBuffer(e)}updateBuffer(e){let t=this._gpuBuffers[e.uid]||this.createGPUBuffer(e),i=e.data;return e._updateID&&i&&(e._updateID=0,this._gpu.device.queue.writeBuffer(t,0,i.buffer,0,(e._updateSize||i.byteLength)+3&-4)),t}destroyAll(){for(let e in this._gpuBuffers)this._gpuBuffers[e].destroy();this._gpuBuffers={}}createGPUBuffer(e){this._gpuBuffers[e.uid]||(e.on("update",this.updateBuffer,this),e.on("change",this.onBufferChange,this),e.on("destroy",this.onBufferDestroy,this),this._managedBuffers.push(e));let t=this._gpu.device.createBuffer(e.descriptor);return e._updateID=0,e.data&&(ko(e.data.buffer,t.getMappedRange()),t.unmap()),this._gpuBuffers[e.uid]=t,t}onBufferChange(e){this._gpuBuffers[e.uid].destroy(),e._updateID=0,this._gpuBuffers[e.uid]=this.createGPUBuffer(e)}onBufferDestroy(e){this._managedBuffers.splice(this._managedBuffers.indexOf(e),1),this._destroyBuffer(e)}destroy(){this._managedBuffers.forEach(e=>this._destroyBuffer(e)),this._managedBuffers=null,this._gpuBuffers=null}_destroyBuffer(e){this._gpuBuffers[e.uid].destroy(),e.off("update",this.updateBuffer,this),e.off("change",this.onBufferChange,this),e.off("destroy",this.onBufferDestroy,this),this._gpuBuffers[e.uid]=null}};va.extension={type:[b.WebGPUSystem],name:"buffer"}});var Ca,Pv=p(()=>{B();Ca=class{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.pipeline.setColorMask(e))}destroy(){this._renderer=null,this._colorMaskCache=null}};Ca.extension={type:[b.WebGPUSystem],name:"colorMask"}});var mn,Bv=p(()=>{Ce();B();mn=class{constructor(e){this._renderer=e}async init(e){return this._initPromise?this._initPromise:(this._initPromise=this._createDeviceAndAdaptor(e).then(t=>{this.gpu=t,this._renderer.runners.contextChange.emit(this.gpu)}),this._initPromise)}contextChange(e){this._renderer.gpu=e}async _createDeviceAndAdaptor(e){let t=await W.get().getNavigator().gpu.requestAdapter({powerPreference:e.powerPreference,forceFallbackAdapter:e.forceFallbackAdapter}),i=["texture-compression-bc","texture-compression-astc","texture-compression-etc2"].filter(n=>t.features.has(n)),s=await t.requestDevice({requiredFeatures:i});return{adapter:t,device:s}}destroy(){this.gpu=null,this._renderer=null}};mn.extension={type:[b.WebGPUSystem],name:"device"};mn.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1}});var Ea,Rv=p(()=>{B();Ea=class{constructor(e){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=e}renderStart(){this.commandFinished=new Promise(e=>{this._resolveCommandFinished=e}),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(e){this.endRenderPass(),this._clearCache(),this.renderPassEncoder=this.commandEncoder.beginRenderPass(e.descriptor)}endRenderPass(){this.renderPassEncoder&&this.renderPassEncoder.end(),this.renderPassEncoder=null}setViewport(e){this.renderPassEncoder.setViewport(e.x,e.y,e.width,e.height,0,1)}setPipelineFromGeometryProgramAndState(e,t,i,s){let n=this._renderer.pipeline.getPipeline(e,t,i,s);this.setPipeline(n)}setPipeline(e){this._boundPipeline!==e&&(this._boundPipeline=e,this.renderPassEncoder.setPipeline(e))}_setVertexBuffer(e,t){this._boundVertexBuffer[e]!==t&&(this._boundVertexBuffer[e]=t,this.renderPassEncoder.setVertexBuffer(e,this._renderer.buffer.updateBuffer(t)))}_setIndexBuffer(e){if(this._boundIndexBuffer===e)return;this._boundIndexBuffer=e;let t=e.data.BYTES_PER_ELEMENT===2?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(e),t)}resetBindGroup(e){this._boundBindGroup[e]=null}setBindGroup(e,t,i){if(this._boundBindGroup[e]===t)return;this._boundBindGroup[e]=t,t._touch(this._renderer.textureGC.count);let s=this._renderer.bindGroup.getBindGroup(t,i,e);this.renderPassEncoder.setBindGroup(e,s)}setGeometry(e,t){let i=this._renderer.pipeline.getBufferNamesToBind(e,t);for(let s in i)this._setVertexBuffer(s,e.attributes[i[s]].buffer);e.indexBuffer&&this._setIndexBuffer(e.indexBuffer)}_setShaderBindGroups(e,t){for(let i in e.groups){let s=e.groups[i];t||this._syncBindGroup(s),this.setBindGroup(i,s,e.gpuProgram)}}_syncBindGroup(e){for(let t in e.resources){let i=e.resources[t];i.isUniformGroup&&this._renderer.ubo.updateUniformGroup(i)}}draw(e){let{geometry:t,shader:i,state:s,topology:n,size:o,start:a,instanceCount:c,skipSync:u}=e;this.setPipelineFromGeometryProgramAndState(t,i.gpuProgram,s,n),this.setGeometry(t,i.gpuProgram),this._setShaderBindGroups(i,u),t.indexBuffer?this.renderPassEncoder.drawIndexed(o||t.indexBuffer.data.length,c??t.instanceCount,a||0):this.renderPassEncoder.draw(o||t.getSize(),c??t.instanceCount,a||0)}finishRenderPass(){this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null)}postrender(){this.finishRenderPass(),this._gpu.device.queue.submit([this.commandEncoder.finish()]),this._resolveCommandFinished(),this.commandEncoder=null}restoreRenderPass(){let e=this._renderer.renderTarget.adaptor.getDescriptor(this._renderer.renderTarget.renderTarget,!1,[0,0,0,1]);this.renderPassEncoder=this.commandEncoder.beginRenderPass(e);let t=this._boundPipeline,i={...this._boundVertexBuffer},s=this._boundIndexBuffer,n={...this._boundBindGroup};this._clearCache();let o=this._renderer.renderTarget.viewport;this.renderPassEncoder.setViewport(o.x,o.y,o.width,o.height,0,1),this.setPipeline(t);for(let a in i)this._setVertexBuffer(a,i[a]);for(let a in n)this.setBindGroup(a,n[a],null);this._setIndexBuffer(s)}_clearCache(){for(let e=0;e<16;e++)this._boundBindGroup[e]=null,this._boundVertexBuffer[e]=null;this._boundIndexBuffer=null,this._boundPipeline=null}destroy(){this._renderer=null,this._gpu=null,this._boundBindGroup=null,this._boundVertexBuffer=null,this._boundIndexBuffer=null,this._boundPipeline=null}contextChange(e){this._gpu=e}};Ea.extension={type:[b.WebGPUSystem],name:"encoder",priority:1}});var ka,Dv=p(()=>{B();ka=class{constructor(e){this._renderer=e}contextChange(){this.maxTextures=this._renderer.device.gpu.device.limits.maxSampledTexturesPerShaderStage,this.maxBatchableTextures=this.maxTextures}destroy(){}};ka.extension={type:[b.WebGPUSystem],name:"limits"}});var Aa,Mv=p(()=>{B();Wi();Aa=class{constructor(e){this._renderTargetStencilState=Object.create(null),this._renderer=e,e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:fe.DISABLED,stencilReference:0}),this._activeRenderTarget=e,this.setStencilMode(t.stencilMode,t.stencilReference)}setStencilMode(e,t){let i=this._renderTargetStencilState[this._activeRenderTarget.uid];i.stencilMode=e,i.stencilReference=t;let s=this._renderer;s.pipeline.setStencilMode(e),s.encoder.renderPassEncoder.setStencilReference(t)}destroy(){this._renderer.renderTarget.onRenderTargetChange.remove(this),this._renderer=null,this._activeRenderTarget=null,this._renderTargetStencilState=null}};Aa.extension={type:[b.WebGPUSystem],name:"stencil"}});var pn,Ep=p(()=>{np();Yr();Cr();pn=class{constructor(e){this._syncFunctionHash=Object.create(null),this._adaptor=e,this._systemCheck()}_systemCheck(){if(!Ul())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(e){let t=this.getUniformGroupData(e);e.buffer||(e.buffer=new Ee({data:new Float32Array(t.layout.size/4),usage:Q.UNIFORM|Q.COPY_DST}))}getUniformGroupData(e){return this._syncFunctionHash[e._signature]||this._initUniformGroup(e)}_initUniformGroup(e){let t=e._signature,i=this._syncFunctionHash[t];if(!i){let s=Object.keys(e.uniformStructures).map(a=>e.uniformStructures[a]),n=this._adaptor.createUboElements(s),o=this._generateUboSync(n.uboElements);i=this._syncFunctionHash[t]={layout:n,syncFunction:o}}return this._syncFunctionHash[t]}_generateUboSync(e){return this._adaptor.generateUboSync(e)}syncUniformGroup(e,t,i){let s=this.getUniformGroupData(e);e.buffer||(e.buffer=new Ee({data:new Float32Array(s.layout.size/4),usage:Q.UNIFORM|Q.COPY_DST}));let n=null;return t||(t=e.buffer.data,n=e.buffer.dataInt32),i||(i=0),s.syncFunction(e.uniforms,t,n,i),!0}updateUniformGroup(e){if(e.isStatic&&!e._dirtyId)return!1;e._dirtyId=0;let t=this.syncUniformGroup(e);return e.buffer.update(),t}destroy(){this._syncFunctionHash=null}}});function Iv(r){let e=r.map(i=>({data:i,offset:0,size:0})),t=0;for(let i=0;i<e.length;i++){let s=e[i],n=Pa[s.data.type].size,o=Pa[s.data.type].align;if(!Pa[s.data.type])throw new Error(`[Pixi.js] WebGPU UniformBuffer: Unknown type ${s.data.type}`);s.data.size>1&&(n=Math.max(n,o)*s.data.size),t=Math.ceil(t/o)*o,s.size=n,s.offset=t,t+=n}return t=Math.ceil(t/16)*16,{uboElements:e,size:t}}var Pa,kp=p(()=>{"use strict";Pa={i32:{align:4,size:4},u32:{align:4,size:4},f32:{align:4,size:4},f16:{align:2,size:2},"vec2<i32>":{align:8,size:8},"vec2<u32>":{align:8,size:8},"vec2<f32>":{align:8,size:8},"vec2<f16>":{align:4,size:4},"vec3<i32>":{align:16,size:12},"vec3<u32>":{align:16,size:12},"vec3<f32>":{align:16,size:12},"vec3<f16>":{align:8,size:6},"vec4<i32>":{align:16,size:16},"vec4<u32>":{align:16,size:16},"vec4<f32>":{align:16,size:16},"vec4<f16>":{align:8,size:8},"mat2x2<f32>":{align:8,size:16},"mat2x2<f16>":{align:4,size:8},"mat3x2<f32>":{align:8,size:24},"mat3x2<f16>":{align:4,size:12},"mat4x2<f32>":{align:8,size:32},"mat4x2<f16>":{align:4,size:16},"mat2x3<f32>":{align:16,size:32},"mat2x3<f16>":{align:8,size:16},"mat3x3<f32>":{align:16,size:48},"mat3x3<f16>":{align:8,size:24},"mat4x3<f32>":{align:16,size:64},"mat4x3<f16>":{align:8,size:32},"mat2x4<f32>":{align:16,size:32},"mat2x4<f16>":{align:8,size:16},"mat3x4<f32>":{align:16,size:48},"mat3x4<f16>":{align:8,size:24},"mat4x4<f32>":{align:16,size:64},"mat4x4<f16>":{align:8,size:32}}});var Br,Ap=p(()=>{"use strict";Br=[{type:"mat3x3<f32>",test:r=>r.value.a!==void 0,ubo:`
|
|
766
|
+
`,"background: #E72264; padding:5px 0;","background: #6CA2EA; padding:5px 0;","background: #B5D33D; padding:5px 0;","background: #FED23F; padding:5px 0;","color: #FFFFFF; background: #E72264; padding:5px 0;","color: #E72264; background: #FFFFFF; padding:5px 0;"];globalThis.console.log(...e)}else globalThis.console&&globalThis.console.log(`PixiJS ${$s} - ${r} - http://www.pixijs.com/`);Gw=!0}}var Gw,Lw=p(()=>{ve();km();Gw=!1});var qs,zw=p(()=>{P();Lw();Jt();qs=class{constructor(e){this._renderer=e}init(e){if(e.hello){let t=this._renderer.name;this._renderer.type===Me.WEBGL&&(t+=` ${this._renderer.context.webGLVersion}`),Nw(t)}}};qs.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"hello",priority:-2};qs.defaultOptions={hello:!1}});function Vw(r){let e=!1;for(let i in r)if(r[i]==null){e=!0;break}if(!e)return r;let t=Object.create(null);for(let i in r){let s=r[i];s&&(t[i]=s)}return t}function Hw(r){let e=0;for(let t=0;t<r.length;t++)r[t]==null?e++:r[t-e]=r[t];return r.length-=e,r}var Ww=p(()=>{"use strict"});var IP,Um,qw,jw=p(()=>{P();Ww();IP=0,Um=class $w{constructor(e){this._managedRenderables=[],this._managedHashes=[],this._managedArrays=[],this._renderer=e}init(e){e={...$w.defaultOptions,...e},this.maxUnusedTime=e.renderableGCMaxUnusedTime,this._frequency=e.renderableGCFrequency,this.enabled=e.renderableGCActive}get enabled(){return!!this._handler}set enabled(e){this.enabled!==e&&(e?(this._handler=this._renderer.scheduler.repeat(()=>this.run(),this._frequency,!1),this._hashHandler=this._renderer.scheduler.repeat(()=>{for(let t of this._managedHashes)t.context[t.hash]=Vw(t.context[t.hash])},this._frequency),this._arrayHandler=this._renderer.scheduler.repeat(()=>{for(let t of this._managedArrays)Hw(t.context[t.hash])},this._frequency)):(this._renderer.scheduler.cancel(this._handler),this._renderer.scheduler.cancel(this._hashHandler),this._renderer.scheduler.cancel(this._arrayHandler)))}addManagedHash(e,t){this._managedHashes.push({context:e,hash:t})}addManagedArray(e,t){this._managedArrays.push({context:e,hash:t})}prerender({container:e}){this._now=performance.now(),e.renderGroup.gcTick=IP++,this._updateInstructionGCTick(e.renderGroup,e.renderGroup.gcTick)}addRenderable(e){this.enabled&&(e._lastUsed===-1&&(this._managedRenderables.push(e),e.once("destroyed",this._removeRenderable,this)),e._lastUsed=this._now)}run(){let e=this._now,t=this._managedRenderables,i=this._renderer.renderPipes,s=0;for(let n=0;n<t.length;n++){let o=t[n];if(o===null){s++;continue}let a=o.renderGroup??o.parentRenderGroup,c=a?.instructionSet?.gcTick??-1;if((a?.gcTick??0)===c&&(o._lastUsed=e),e-o._lastUsed>this.maxUnusedTime){if(!o.destroyed){let u=i;a&&(a.structureDidChange=!0),u[o.renderPipeId].destroyRenderable(o)}o._lastUsed=-1,s++,o.off("destroyed",this._removeRenderable,this)}else t[n-s]=o}t.length-=s}destroy(){this.enabled=!1,this._renderer=null,this._managedRenderables.length=0,this._managedHashes.length=0,this._managedArrays.length=0}_removeRenderable(e){let t=this._managedRenderables.indexOf(e);t>=0&&(e.off("destroyed",this._removeRenderable,this),this._managedRenderables[t]=null)}_updateInstructionGCTick(e,t){e.instructionSet.gcTick=t;for(let i of e.renderGroupChildren)this._updateInstructionGCTick(i,t)}};Um.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"renderableGC",priority:0};Um.defaultOptions={renderableGCActive:!0,renderableGCMaxUnusedTime:6e4,renderableGCFrequency:3e4};qw=Um});var Om,Yw,Kw=p(()=>{P();Om=class Xw{constructor(e){this._renderer=e,this.count=0,this.checkCount=0}init(e){e={...Xw.defaultOptions,...e},this.checkCountMax=e.textureGCCheckCountMax,this.maxIdle=e.textureGCAMaxIdle??e.textureGCMaxIdle,this.active=e.textureGCActive}postrender(){this._renderer.renderingToScreen&&(this.count++,this.active&&(this.checkCount++,this.checkCount>this.checkCountMax&&(this.checkCount=0,this.run())))}run(){let e=this._renderer.texture.managedTextures;for(let t=0;t<e.length;t++){let i=e[t];i.autoGarbageCollect&&i.resource&&i._touched>-1&&this.count-i._touched>this.maxIdle&&(i._touched=-1,i.unload())}}destroy(){this._renderer=null}};Om.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"textureGC"};Om.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:null,textureGCMaxIdle:3600,textureGCCheckCountMax:600};Yw=Om});var Qw,Qo,Gm=p(()=>{Oe();et();le();Qw=class Zw{constructor(e={}){if(this.uid=K("renderTarget"),this.colorTextures=[],this.dirtyId=0,this.isRoot=!1,this._size=new Float32Array(2),this._managedColorTextures=!1,e={...Zw.defaultOptions,...e},this.stencil=e.stencil,this.depth=e.depth,this.isRoot=e.isRoot,typeof e.colorTextures=="number"){this._managedColorTextures=!0;for(let t=0;t<e.colorTextures;t++)this.colorTextures.push(new se({width:e.width,height:e.height,resolution:e.resolution,antialias:e.antialias}))}else{this.colorTextures=[...e.colorTextures.map(i=>i.source)];let t=this.colorTexture.source;this.resize(t.width,t.height,t._resolution)}this.colorTexture.source.on("resize",this.onSourceResize,this),(e.depthStencilTexture||this.stencil)&&(e.depthStencilTexture instanceof D||e.depthStencilTexture instanceof se?this.depthStencilTexture=e.depthStencilTexture.source:this.ensureDepthStencilTexture())}get size(){let e=this._size;return e[0]=this.pixelWidth,e[1]=this.pixelHeight,e}get width(){return this.colorTexture.source.width}get height(){return this.colorTexture.source.height}get pixelWidth(){return this.colorTexture.source.pixelWidth}get pixelHeight(){return this.colorTexture.source.pixelHeight}get resolution(){return this.colorTexture.source._resolution}get colorTexture(){return this.colorTextures[0]}onSourceResize(e){this.resize(e.width,e.height,e._resolution,!0)}ensureDepthStencilTexture(){this.depthStencilTexture||(this.depthStencilTexture=new se({width:this.width,height:this.height,resolution:this.resolution,format:"depth24plus-stencil8",autoGenerateMipmaps:!1,antialias:!1,mipLevelCount:1}))}resize(e,t,i=this.resolution,s=!1){this.dirtyId++,this.colorTextures.forEach((n,o)=>{s&&o===0||n.source.resize(e,t,i)}),this.depthStencilTexture&&this.depthStencilTexture.source.resize(e,t,i)}destroy(){this.colorTexture.source.off("resize",this.onSourceResize,this),this._managedColorTextures&&this.colorTextures.forEach(e=>{e.destroy()}),this.depthStencilTexture&&(this.depthStencilTexture.destroy(),delete this.depthStencilTexture)}};Qw.defaultOptions={width:0,height:0,resolution:1,colorTextures:1,stencil:!1,depth:!1,antialias:!1,isRoot:!1};Qo=Qw});function nl(r,e){if(!Zo.has(r)){let t=new D({source:new je({resource:r,...e})}),i=()=>{Zo.get(r)===t&&Zo.delete(r)};t.once("destroy",i),t.source.once("destroy",i),Zo.set(r,t)}return Zo.get(r)}var Zo,Nm=p(()=>{ms();le();Zo=new Map});var Lm,eS,tS=p(()=>{ve();P();Ge();ye();Gm();Nm();Lm=class Jw{get autoDensity(){return this.texture.source.autoDensity}set autoDensity(e){this.texture.source.autoDensity=e}get resolution(){return this.texture.source._resolution}set resolution(e){this.texture.source.resize(this.texture.source.width,this.texture.source.height,e)}init(e){e={...Jw.defaultOptions,...e},e.view&&(z($,"ViewSystem.view has been renamed to ViewSystem.canvas"),e.canvas=e.view),this.screen=new Y(0,0,e.width,e.height),this.canvas=e.canvas||W.get().createCanvas(),this.antialias=!!e.antialias,this.texture=nl(this.canvas,e),this.renderTarget=new Qo({colorTextures:[this.texture],depth:!!e.depth,isRoot:!0}),this.texture.source.transparent=e.backgroundAlpha<1,this.resolution=e.resolution}resize(e,t,i){this.texture.source.resize(e,t,i),this.screen.width=this.texture.frame.width,this.screen.height=this.texture.frame.height}destroy(e=!1){(typeof e=="boolean"?e:!!e?.removeView)&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas)}};Lm.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"view",priority:0};Lm.defaultOptions={width:800,height:600,autoDensity:!1,antialias:!1};eS=Lm});var ol,al,zm=p(()=>{nw();ow();fw();mw();pw();xw();vw();Cw();Ew();Pw();Bw();Mw();Fw();Uw();Ow();zw();jw();Kw();tS();ol=[Aw,Yo,qs,eS,Lo,Yw,Xo,Dw,Vo,qw,Ko],al=[jo,Bm,zo,Go,Ho,$o,Wo,Uo]});var Jo,rS=p(()=>{P();Jo=class{constructor(e){this._hash=Object.create(null),this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_hash")}contextChange(e){this._gpu=e}getBindGroup(e,t,i){return e._updateKey(),this._hash[e._key]||this._createBindGroup(e,t,i)}_createBindGroup(e,t,i){let s=this._gpu.device,n=t.layout[i],o=[],a=this._renderer;for(let l in n){let h=e.resources[l]??e.resources[n[l]],f;if(h._resourceType==="uniformGroup"){let d=h;a.ubo.updateUniformGroup(d);let m=d.buffer;f={buffer:a.buffer.getGPUBuffer(m),offset:0,size:m.descriptor.size}}else if(h._resourceType==="buffer"){let d=h;f={buffer:a.buffer.getGPUBuffer(d),offset:0,size:d.descriptor.size}}else if(h._resourceType==="bufferResource"){let d=h;f={buffer:a.buffer.getGPUBuffer(d.buffer),offset:d.offset,size:d.size}}else if(h._resourceType==="textureSampler"){let d=h;f=a.texture.getGpuSampler(d)}else if(h._resourceType==="textureSource"){let d=h;f=a.texture.getGpuSource(d).createView({})}o.push({binding:n[l],resource:f})}let c=a.shader.getProgramData(t).bindGroups[i],u=s.createBindGroup({layout:c,entries:o});return this._hash[e._key]=u,u}destroy(){for(let e of Object.keys(this._hash))this._hash[e]=null;this._hash=null,this._renderer=null}};Jo.extension={type:[b.WebGPUSystem],name:"bindGroup"}});var ea,iS=p(()=>{P();Gd();ea=class{constructor(e){this._gpuBuffers=Object.create(null),this._managedBuffers=[],e.renderableGC.addManagedHash(this,"_gpuBuffers")}contextChange(e){this._gpu=e}getGPUBuffer(e){return this._gpuBuffers[e.uid]||this.createGPUBuffer(e)}updateBuffer(e){let t=this._gpuBuffers[e.uid]||this.createGPUBuffer(e),i=e.data;return e._updateID&&i&&(e._updateID=0,this._gpu.device.queue.writeBuffer(t,0,i.buffer,0,(e._updateSize||i.byteLength)+3&-4)),t}destroyAll(){for(let e in this._gpuBuffers)this._gpuBuffers[e].destroy();this._gpuBuffers={}}createGPUBuffer(e){this._gpuBuffers[e.uid]||(e.on("update",this.updateBuffer,this),e.on("change",this.onBufferChange,this),e.on("destroy",this.onBufferDestroy,this),this._managedBuffers.push(e));let t=this._gpu.device.createBuffer(e.descriptor);return e._updateID=0,e.data&&(ro(e.data.buffer,t.getMappedRange()),t.unmap()),this._gpuBuffers[e.uid]=t,t}onBufferChange(e){this._gpuBuffers[e.uid].destroy(),e._updateID=0,this._gpuBuffers[e.uid]=this.createGPUBuffer(e)}onBufferDestroy(e){this._managedBuffers.splice(this._managedBuffers.indexOf(e),1),this._destroyBuffer(e)}destroy(){this._managedBuffers.forEach(e=>this._destroyBuffer(e)),this._managedBuffers=null,this._gpuBuffers=null}_destroyBuffer(e){this._gpuBuffers[e.uid].destroy(),e.off("update",this.updateBuffer,this),e.off("change",this.onBufferChange,this),e.off("destroy",this.onBufferDestroy,this),this._gpuBuffers[e.uid]=null}};ea.extension={type:[b.WebGPUSystem],name:"buffer"}});var ta,sS=p(()=>{P();ta=class{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.pipeline.setColorMask(e))}destroy(){this._renderer=null,this._colorMaskCache=null}};ta.extension={type:[b.WebGPUSystem],name:"colorMask"}});var js,nS=p(()=>{ve();P();js=class{constructor(e){this._renderer=e}async init(e){return this._initPromise?this._initPromise:(this._initPromise=this._createDeviceAndAdaptor(e).then(t=>{this.gpu=t,this._renderer.runners.contextChange.emit(this.gpu)}),this._initPromise)}contextChange(e){this._renderer.gpu=e}async _createDeviceAndAdaptor(e){let t=await W.get().getNavigator().gpu.requestAdapter({powerPreference:e.powerPreference,forceFallbackAdapter:e.forceFallbackAdapter}),i=["texture-compression-bc","texture-compression-astc","texture-compression-etc2"].filter(n=>t.features.has(n)),s=await t.requestDevice({requiredFeatures:i});return{adapter:t,device:s}}destroy(){this.gpu=null,this._renderer=null}};js.extension={type:[b.WebGPUSystem],name:"device"};js.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1}});var ra,oS=p(()=>{P();ra=class{constructor(e){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=e}renderStart(){this.commandFinished=new Promise(e=>{this._resolveCommandFinished=e}),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(e){this.endRenderPass(),this._clearCache(),this.renderPassEncoder=this.commandEncoder.beginRenderPass(e.descriptor)}endRenderPass(){this.renderPassEncoder&&this.renderPassEncoder.end(),this.renderPassEncoder=null}setViewport(e){this.renderPassEncoder.setViewport(e.x,e.y,e.width,e.height,0,1)}setPipelineFromGeometryProgramAndState(e,t,i,s){let n=this._renderer.pipeline.getPipeline(e,t,i,s);this.setPipeline(n)}setPipeline(e){this._boundPipeline!==e&&(this._boundPipeline=e,this.renderPassEncoder.setPipeline(e))}_setVertexBuffer(e,t){this._boundVertexBuffer[e]!==t&&(this._boundVertexBuffer[e]=t,this.renderPassEncoder.setVertexBuffer(e,this._renderer.buffer.updateBuffer(t)))}_setIndexBuffer(e){if(this._boundIndexBuffer===e)return;this._boundIndexBuffer=e;let t=e.data.BYTES_PER_ELEMENT===2?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(e),t)}resetBindGroup(e){this._boundBindGroup[e]=null}setBindGroup(e,t,i){if(this._boundBindGroup[e]===t)return;this._boundBindGroup[e]=t,t._touch(this._renderer.textureGC.count);let s=this._renderer.bindGroup.getBindGroup(t,i,e);this.renderPassEncoder.setBindGroup(e,s)}setGeometry(e,t){let i=this._renderer.pipeline.getBufferNamesToBind(e,t);for(let s in i)this._setVertexBuffer(s,e.attributes[i[s]].buffer);e.indexBuffer&&this._setIndexBuffer(e.indexBuffer)}_setShaderBindGroups(e,t){for(let i in e.groups){let s=e.groups[i];t||this._syncBindGroup(s),this.setBindGroup(i,s,e.gpuProgram)}}_syncBindGroup(e){for(let t in e.resources){let i=e.resources[t];i.isUniformGroup&&this._renderer.ubo.updateUniformGroup(i)}}draw(e){let{geometry:t,shader:i,state:s,topology:n,size:o,start:a,instanceCount:c,skipSync:u}=e;this.setPipelineFromGeometryProgramAndState(t,i.gpuProgram,s,n),this.setGeometry(t,i.gpuProgram),this._setShaderBindGroups(i,u),t.indexBuffer?this.renderPassEncoder.drawIndexed(o||t.indexBuffer.data.length,c??t.instanceCount,a||0):this.renderPassEncoder.draw(o||t.getSize(),c??t.instanceCount,a||0)}finishRenderPass(){this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null)}postrender(){this.finishRenderPass(),this._gpu.device.queue.submit([this.commandEncoder.finish()]),this._resolveCommandFinished(),this.commandEncoder=null}restoreRenderPass(){let e=this._renderer.renderTarget.adaptor.getDescriptor(this._renderer.renderTarget.renderTarget,!1,[0,0,0,1]);this.renderPassEncoder=this.commandEncoder.beginRenderPass(e);let t=this._boundPipeline,i={...this._boundVertexBuffer},s=this._boundIndexBuffer,n={...this._boundBindGroup};this._clearCache();let o=this._renderer.renderTarget.viewport;this.renderPassEncoder.setViewport(o.x,o.y,o.width,o.height,0,1),this.setPipeline(t);for(let a in i)this._setVertexBuffer(a,i[a]);for(let a in n)this.setBindGroup(a,n[a],null);this._setIndexBuffer(s)}_clearCache(){for(let e=0;e<16;e++)this._boundBindGroup[e]=null,this._boundVertexBuffer[e]=null;this._boundIndexBuffer=null,this._boundPipeline=null}destroy(){this._renderer=null,this._gpu=null,this._boundBindGroup=null,this._boundVertexBuffer=null,this._boundIndexBuffer=null,this._boundPipeline=null}contextChange(e){this._gpu=e}};ra.extension={type:[b.WebGPUSystem],name:"encoder",priority:1}});var ia,aS=p(()=>{P();ia=class{constructor(e){this._renderer=e}contextChange(){this.maxTextures=this._renderer.device.gpu.device.limits.maxSampledTexturesPerShaderStage,this.maxBatchableTextures=this.maxTextures}destroy(){}};ia.extension={type:[b.WebGPUSystem],name:"limits"}});var sa,cS=p(()=>{P();ki();sa=class{constructor(e){this._renderTargetStencilState=Object.create(null),this._renderer=e,e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:me.DISABLED,stencilReference:0}),this._activeRenderTarget=e,this.setStencilMode(t.stencilMode,t.stencilReference)}setStencilMode(e,t){let i=this._renderTargetStencilState[this._activeRenderTarget.uid];i.stencilMode=e,i.stencilReference=t;let s=this._renderer;s.pipeline.setStencilMode(e),s.encoder.renderPassEncoder.setStencilReference(t)}destroy(){this._renderer.renderTarget.onRenderTargetChange.remove(this),this._renderer=null,this._activeRenderTarget=null,this._renderTargetStencilState=null}};sa.extension={type:[b.WebGPUSystem],name:"stencil"}});var Xs,Vm=p(()=>{Tm();qr();wr();Xs=class{constructor(e){this._syncFunctionHash=Object.create(null),this._adaptor=e,this._systemCheck()}_systemCheck(){if(!Ju())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(e){let t=this.getUniformGroupData(e);e.buffer||(e.buffer=new Ce({data:new Float32Array(t.layout.size/4),usage:Q.UNIFORM|Q.COPY_DST}))}getUniformGroupData(e){return this._syncFunctionHash[e._signature]||this._initUniformGroup(e)}_initUniformGroup(e){let t=e._signature,i=this._syncFunctionHash[t];if(!i){let s=Object.keys(e.uniformStructures).map(a=>e.uniformStructures[a]),n=this._adaptor.createUboElements(s),o=this._generateUboSync(n.uboElements);i=this._syncFunctionHash[t]={layout:n,syncFunction:o}}return this._syncFunctionHash[t]}_generateUboSync(e){return this._adaptor.generateUboSync(e)}syncUniformGroup(e,t,i){let s=this.getUniformGroupData(e);e.buffer||(e.buffer=new Ce({data:new Float32Array(s.layout.size/4),usage:Q.UNIFORM|Q.COPY_DST}));let n=null;return t||(t=e.buffer.data,n=e.buffer.dataInt32),i||(i=0),s.syncFunction(e.uniforms,t,n,i),!0}updateUniformGroup(e){if(e.isStatic&&!e._dirtyId)return!1;e._dirtyId=0;let t=this.syncUniformGroup(e);return e.buffer.update(),t}destroy(){this._syncFunctionHash=null}}});function uS(r){let e=r.map(i=>({data:i,offset:0,size:0})),t=0;for(let i=0;i<e.length;i++){let s=e[i],n=na[s.data.type].size,o=na[s.data.type].align;if(!na[s.data.type])throw new Error(`[Pixi.js] WebGPU UniformBuffer: Unknown type ${s.data.type}`);s.data.size>1&&(n=Math.max(n,o)*s.data.size),t=Math.ceil(t/o)*o,s.size=n,s.offset=t,t+=n}return t=Math.ceil(t/16)*16,{uboElements:e,size:t}}var na,Hm=p(()=>{"use strict";na={i32:{align:4,size:4},u32:{align:4,size:4},f32:{align:4,size:4},f16:{align:2,size:2},"vec2<i32>":{align:8,size:8},"vec2<u32>":{align:8,size:8},"vec2<f32>":{align:8,size:8},"vec2<f16>":{align:4,size:4},"vec3<i32>":{align:16,size:12},"vec3<u32>":{align:16,size:12},"vec3<f32>":{align:16,size:12},"vec3<f16>":{align:8,size:6},"vec4<i32>":{align:16,size:16},"vec4<u32>":{align:16,size:16},"vec4<f32>":{align:16,size:16},"vec4<f16>":{align:8,size:8},"mat2x2<f32>":{align:8,size:16},"mat2x2<f16>":{align:4,size:8},"mat3x2<f32>":{align:8,size:24},"mat3x2<f16>":{align:4,size:12},"mat4x2<f32>":{align:8,size:32},"mat4x2<f16>":{align:4,size:16},"mat2x3<f32>":{align:16,size:32},"mat2x3<f16>":{align:8,size:16},"mat3x3<f32>":{align:16,size:48},"mat3x3<f16>":{align:8,size:24},"mat4x3<f32>":{align:16,size:64},"mat4x3<f16>":{align:8,size:32},"mat2x4<f32>":{align:16,size:32},"mat2x4<f16>":{align:8,size:16},"mat3x4<f32>":{align:16,size:48},"mat3x4<f16>":{align:8,size:24},"mat4x4<f32>":{align:16,size:64},"mat4x4<f16>":{align:8,size:32}}});var kr,Wm=p(()=>{"use strict";kr=[{type:"mat3x3<f32>",test:r=>r.value.a!==void 0,ubo:`
|
|
767
767
|
var matrix = uv[name].toArray(true);
|
|
768
768
|
data[offset] = matrix[0];
|
|
769
769
|
data[offset + 1] = matrix[1];
|
|
@@ -834,23 +834,23 @@ fn mainFragment(
|
|
|
834
834
|
cv[2] = v.blue;
|
|
835
835
|
gl.uniform3f(ud[name].location, v.red, v.green, v.blue);
|
|
836
836
|
}
|
|
837
|
-
`}]});function
|
|
837
|
+
`}]});function cl(r,e,t,i){let s=[`
|
|
838
838
|
var v = null;
|
|
839
839
|
var v2 = null;
|
|
840
840
|
var t = 0;
|
|
841
841
|
var index = 0;
|
|
842
842
|
var name = null;
|
|
843
843
|
var arrayOffset = null;
|
|
844
|
-
`],n=0;for(let a=0;a<r.length;a++){let c=r[a],u=c.data.name,l=!1,h=0;for(let f=0;f<
|
|
844
|
+
`],n=0;for(let a=0;a<r.length;a++){let c=r[a],u=c.data.name,l=!1,h=0;for(let f=0;f<kr.length;f++)if(kr[f].test(c.data)){h=c.offset/4,s.push(`name = "${u}";`,`offset += ${h-n};`,kr[f][e]||kr[f].ubo),l=!0;break}if(!l)if(c.data.size>1)h=c.offset/4,s.push(t(c,h-n));else{let f=i[c.data.type];h=c.offset/4,s.push(`
|
|
845
845
|
v = uv.${u};
|
|
846
846
|
offset += ${h-n};
|
|
847
847
|
${f};
|
|
848
848
|
`)}n=h}let o=s.join(`
|
|
849
|
-
`);return new Function("uv","data","dataInt32","offset",o)}var
|
|
849
|
+
`);return new Function("uv","data","dataInt32","offset",o)}var $m=p(()=>{Wm()});function Ys(r,e){return`
|
|
850
850
|
for (let i = 0; i < ${r*e}; i++) {
|
|
851
851
|
data[offset + (((i / ${r})|0) * 4) + (i % ${r})] = v[i];
|
|
852
852
|
}
|
|
853
|
-
`}var
|
|
853
|
+
`}var qm,lS,jm=p(()=>{"use strict";qm={f32:`
|
|
854
854
|
data[offset] = v;`,i32:`
|
|
855
855
|
dataInt32[offset] = v;`,"vec2<f32>":`
|
|
856
856
|
data[offset] = v[0];
|
|
@@ -886,12 +886,12 @@ fn mainFragment(
|
|
|
886
886
|
data[offset + 10] = v[8];`,"mat4x4<f32>":`
|
|
887
887
|
for (let i = 0; i < 16; i++) {
|
|
888
888
|
data[offset + i] = v[i];
|
|
889
|
-
}`,"mat3x2<f32>":
|
|
889
|
+
}`,"mat3x2<f32>":Ys(3,2),"mat4x2<f32>":Ys(4,2),"mat2x3<f32>":Ys(2,3),"mat4x3<f32>":Ys(4,3),"mat2x4<f32>":Ys(2,4),"mat3x4<f32>":Ys(3,4)},lS={...qm,"mat2x2<f32>":`
|
|
890
890
|
data[offset] = v[0];
|
|
891
891
|
data[offset + 1] = v[1];
|
|
892
892
|
data[offset + 2] = v[2];
|
|
893
893
|
data[offset + 3] = v[3];
|
|
894
|
-
`}});function
|
|
894
|
+
`}});function hS(r,e){let{size:t,align:i}=na[r.data.type],s=(i-t)/4,n=r.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
|
|
895
895
|
v = uv.${r.data.name};
|
|
896
896
|
${e!==0?`offset += ${e};`:""}
|
|
897
897
|
|
|
@@ -907,7 +907,7 @@ fn mainFragment(
|
|
|
907
907
|
}
|
|
908
908
|
${s!==0?`arrayOffset += ${s};`:""}
|
|
909
909
|
}
|
|
910
|
-
`}var Ov=p(()=>{kp()});function Gv(r){return $l(r,"uboWgsl",Uv,Fv)}var Nv=p(()=>{Pp();Rp();Ov()});var Ba,Lv=p(()=>{B();Ep();kp();Nv();Ba=class extends pn{constructor(){super({createUboElements:Iv,generateUboSync:Gv})}};Ba.extension={type:[b.WebGPUSystem],name:"ubo"}});var ri,ql=p(()=>{Ve();Oe();ri=class extends oe{constructor({buffer:e,offset:t,size:i}){super(),this.uid=K("buffer"),this._resourceType="bufferResource",this._touched=0,this._resourceId=K("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=e,this.offset=t|0,this.size=i,this.buffer.on("change",this.onBufferChange,this)}onBufferChange(){this._resourceId=K("resource"),this.emit("change",this)}destroy(e=!1){this.destroyed=!0,e&&this.buffer.destroy(),this.emit("change",this),this.buffer=null}}});var jl,zv=p(()=>{"use strict";jl=class{constructor({minUniformOffsetAlignment:e}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=e,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(e){if(e>this._minUniformOffsetAlignment/4)throw new Error(`UniformBufferBatch: array is too large: ${e*4}`);let t=this.byteIndex,i=t+e*4;if(i=Math.ceil(i/this._minUniformOffsetAlignment)*this._minUniformOffsetAlignment,i>this.data.length*4)throw new Error("UniformBufferBatch: ubo batch got too big");return this.byteIndex=i,t}addGroup(e){let t=this.addEmptyGroup(e.length);for(let i=0;i<e.length;i++)this.data[t/4+i]=e[i];return t}destroy(){this.data=null}}});var ii,Ra,Vv=p(()=>{B();Yr();ql();Cr();zv();Xr();ii=128,Ra=class{constructor(e){this._bindGroupHash=Object.create(null),this._buffers=[],this._bindGroups=[],this._bufferResources=[],this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_bindGroupHash"),this._batchBuffer=new jl({minUniformOffsetAlignment:ii});let t=256/ii;for(let i=0;i<t;i++){let s=Q.UNIFORM|Q.COPY_DST;i===0&&(s|=Q.COPY_SRC),this._buffers.push(new Ee({data:this._batchBuffer.data,usage:s}))}}renderEnd(){this._uploadBindGroups(),this._resetBindGroups()}_resetBindGroups(){for(let e in this._bindGroupHash)this._bindGroupHash[e]=null;this._batchBuffer.clear()}getUniformBindGroup(e,t){if(!t&&this._bindGroupHash[e.uid])return this._bindGroupHash[e.uid];this._renderer.ubo.ensureUniformGroup(e);let i=e.buffer.data,s=this._batchBuffer.addEmptyGroup(i.length);return this._renderer.ubo.syncUniformGroup(e,this._batchBuffer.data,s/4),this._bindGroupHash[e.uid]=this._getBindGroup(s/ii),this._bindGroupHash[e.uid]}getUboResource(e){this._renderer.ubo.updateUniformGroup(e);let t=e.buffer.data,i=this._batchBuffer.addGroup(t);return this._getBufferResource(i/ii)}getArrayBindGroup(e){let t=this._batchBuffer.addGroup(e);return this._getBindGroup(t/ii)}getArrayBufferResource(e){let i=this._batchBuffer.addGroup(e)/ii;return this._getBufferResource(i)}_getBufferResource(e){if(!this._bufferResources[e]){let t=this._buffers[e%2];this._bufferResources[e]=new ri({buffer:t,offset:(e/2|0)*256,size:ii})}return this._bufferResources[e]}_getBindGroup(e){if(!this._bindGroups[e]){let t=new Ne({0:this._getBufferResource(e)});this._bindGroups[e]=t}return this._bindGroups[e]}_uploadBindGroups(){let e=this._renderer.buffer,t=this._buffers[0];t.update(this._batchBuffer.byteIndex),e.updateBuffer(t);let i=this._renderer.gpu.device.createCommandEncoder();for(let s=1;s<this._buffers.length;s++){let n=this._buffers[s];i.copyBufferToBuffer(e.getGPUBuffer(t),ii,e.getGPUBuffer(n),0,this._batchBuffer.byteIndex)}this._renderer.gpu.device.queue.submit([i.finish()])}destroy(){for(let e=0;e<this._bindGroups.length;e++)this._bindGroups[e].destroy();this._bindGroups=null,this._bindGroupHash=null;for(let e=0;e<this._buffers.length;e++)this._buffers[e].destroy();this._buffers=null;for(let e=0;e<this._bufferResources.length;e++)this._bufferResources[e].destroy();this._bufferResources=null,this._batchBuffer.destroy(),this._bindGroupHash=null,this._renderer=null}};Ra.extension={type:[b.WebGPUPipes],name:"uniformBatch"}});function Xl(r,e){for(let t in r.attributes){let i=r.attributes[t],s=e[t];s?(i.format??(i.format=s.format),i.offset??(i.offset=s.offset),i.instance??(i.instance=s.instance)):N(`Attribute ${t} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}lR(r)}function lR(r){let{buffers:e,attributes:t}=r,i={},s={};for(let n in e){let o=e[n];i[o.uid]=0,s[o.uid]=0}for(let n in t){let o=t[n];i[o.buffer.uid]+=ut(o.format).stride}for(let n in t){let o=t[n];o.stride??(o.stride=i[o.buffer.uid]),o.start??(o.start=s[o.buffer.uid]),s[o.buffer.uid]+=ut(o.format).stride}}var Dp=p(()=>{pe();qi()});var cr,Mp=p(()=>{Wi();cr=[];cr[fe.NONE]=void 0;cr[fe.DISABLED]={stencilWriteMask:0,stencilReadMask:0};cr[fe.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}};cr[fe.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}};cr[fe.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}};cr[fe.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}}});function dR(r,e,t,i,s){return r<<24|e<<16|t<<10|i<<5|s}function fR(r,e,t,i){return t<<6|r<<3|i<<1|e}var hR,Da,Hv=p(()=>{B();pe();Dp();Wi();Bo();Mp();hR={"point-list":0,"line-list":1,"line-strip":2,"triangle-list":3,"triangle-strip":4};Da=class{constructor(e){this._moduleCache=Object.create(null),this._bufferLayoutsCache=Object.create(null),this._bindingNamesCache=Object.create(null),this._pipeCache=Object.create(null),this._pipeStateCaches=Object.create(null),this._colorMask=15,this._multisampleCount=1,this._renderer=e}contextChange(e){this._gpu=e,this.setStencilMode(fe.DISABLED),this._updatePipeHash()}setMultisampleCount(e){this._multisampleCount!==e&&(this._multisampleCount=e,this._updatePipeHash())}setRenderTarget(e){this._multisampleCount=e.msaaSamples,this._depthStencilAttachment=e.descriptor.depthStencilAttachment?1:0,this._updatePipeHash()}setColorMask(e){this._colorMask!==e&&(this._colorMask=e,this._updatePipeHash())}setStencilMode(e){this._stencilMode!==e&&(this._stencilMode=e,this._stencilState=cr[e],this._updatePipeHash())}setPipeline(e,t,i,s){let n=this.getPipeline(e,t,i);s.setPipeline(n)}getPipeline(e,t,i,s){e._layoutKey||(Xl(e,t.attributeData),this._generateBufferKey(e)),s||(s=e.topology);let n=dR(e._layoutKey,t._layoutKey,i.data,i._blendModeId,hR[s]);return this._pipeCache[n]?this._pipeCache[n]:(this._pipeCache[n]=this._createPipeline(e,t,i,s),this._pipeCache[n])}_createPipeline(e,t,i,s){let n=this._gpu.device,o=this._createVertexBufferLayouts(e,t),a=this._renderer.state.getColorTargets(i);a[0].writeMask=this._stencilMode===fe.RENDERING_MASK_ADD?0:this._colorMask;let c=this._renderer.shader.getProgramData(t).pipeline,u={vertex:{module:this._getModule(t.vertex.source),entryPoint:t.vertex.entryPoint,buffers:o},fragment:{module:this._getModule(t.fragment.source),entryPoint:t.fragment.entryPoint,targets:a},primitive:{topology:s,cullMode:i.cullMode},layout:c,multisample:{count:this._multisampleCount},label:"PIXI Pipeline"};return this._depthStencilAttachment&&(u.depthStencil={...this._stencilState,format:"depth24plus-stencil8",depthWriteEnabled:i.depthTest,depthCompare:i.depthTest?"less":"always"}),n.createRenderPipeline(u)}_getModule(e){return this._moduleCache[e]||this._createModule(e)}_createModule(e){let t=this._gpu.device;return this._moduleCache[e]=t.createShaderModule({code:e}),this._moduleCache[e]}_generateBufferKey(e){let t=[],i=0,s=Object.keys(e.attributes).sort();for(let o=0;o<s.length;o++){let a=e.attributes[s[o]];t[i++]=a.offset,t[i++]=a.format,t[i++]=a.stride,t[i++]=a.instance}let n=t.join("|");return e._layoutKey=Er(n,"geometry"),e._layoutKey}_generateAttributeLocationsKey(e){let t=[],i=0,s=Object.keys(e.attributeData).sort();for(let o=0;o<s.length;o++){let a=e.attributeData[s[o]];t[i++]=a.location}let n=t.join("|");return e._attributeLocationsKey=Er(n,"programAttributes"),e._attributeLocationsKey}getBufferNamesToBind(e,t){let i=e._layoutKey<<16|t._attributeLocationsKey;if(this._bindingNamesCache[i])return this._bindingNamesCache[i];let s=this._createVertexBufferLayouts(e,t),n=Object.create(null),o=t.attributeData;for(let a=0;a<s.length;a++){let u=Object.values(s[a].attributes)[0].shaderLocation;for(let l in o)if(o[l].location===u){n[a]=l;break}}return this._bindingNamesCache[i]=n,n}_createVertexBufferLayouts(e,t){t._attributeLocationsKey||this._generateAttributeLocationsKey(t);let i=e._layoutKey<<16|t._attributeLocationsKey;if(this._bufferLayoutsCache[i])return this._bufferLayoutsCache[i];let s=[];return e.buffers.forEach(n=>{let o={arrayStride:0,stepMode:"vertex",attributes:[]},a=o.attributes;for(let c in t.attributeData){let u=e.attributes[c];(u.divisor??1)!==1&&N(`Attribute ${c} has an invalid divisor value of '${u.divisor}'. WebGPU only supports a divisor value of 1`),u.buffer===n&&(o.arrayStride=u.stride,o.stepMode=u.instance?"instance":"vertex",a.push({shaderLocation:t.attributeData[c].location,offset:u.offset,format:u.format}))}a.length&&s.push(o)}),this._bufferLayoutsCache[i]=s,s}_updatePipeHash(){let e=fR(this._stencilMode,this._multisampleCount,this._colorMask,this._depthStencilAttachment);this._pipeStateCaches[e]||(this._pipeStateCaches[e]=Object.create(null)),this._pipeCache=this._pipeStateCaches[e]}destroy(){this._renderer=null,this._bufferLayoutsCache=null}};Da.extension={type:[b.WebGPUSystem],name:"pipeline"}});function Wv(r,e,t,i,s,n){let o=n?1:-1;return r.identity(),r.a=1/i*2,r.d=o*(1/s*2),r.tx=-1-e*r.a,r.ty=-o-t*r.d,r}var $v=p(()=>{"use strict"});function qv(r){let e=r.colorTexture.source.resource;return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement&&document.body.contains(e)}var jv=p(()=>{"use strict"});var xn,Ip=p(()=>{te();Ge();ln();$v();op();Is();tt();le();Sp();jv();wp();xn=class{constructor(e){this.rootViewPort=new Y,this.viewport=new Y,this.onRenderTargetChange=new hn("onRenderTargetChange"),this.projectionMatrix=new R,this.defaultClearColor=[0,0,0,0],this._renderSurfaceToRenderTargetHash=new Map,this._gpuRenderTargetHash=Object.create(null),this._renderTargetStack=[],this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuRenderTargetHash")}finishRenderPass(){this.adaptor.finishRenderPass(this.renderTarget)}renderStart({target:e,clear:t,clearColor:i,frame:s}){this._renderTargetStack.length=0,this.push(e,t,i,s),this.rootViewPort.copyFrom(this.viewport),this.rootRenderTarget=this.renderTarget,this.renderingToScreen=qv(this.rootRenderTarget),this.adaptor.prerender?.(this.rootRenderTarget)}postrender(){this.adaptor.postrender?.(this.rootRenderTarget)}bind(e,t=!0,i,s){let n=this.getRenderTarget(e),o=this.renderTarget!==n;this.renderTarget=n,this.renderSurface=e;let a=this.getGpuRenderTarget(n);(n.pixelWidth!==a.width||n.pixelHeight!==a.height)&&(this.adaptor.resizeGpuRenderTarget(n),a.width=n.pixelWidth,a.height=n.pixelHeight);let c=n.colorTexture,u=this.viewport,l=c.pixelWidth,h=c.pixelHeight;if(!s&&e instanceof M&&(s=e.frame),s){let f=c._resolution;u.x=s.x*f+.5|0,u.y=s.y*f+.5|0,u.width=s.width*f+.5|0,u.height=s.height*f+.5|0}else u.x=0,u.y=0,u.width=l,u.height=h;return Wv(this.projectionMatrix,0,0,u.width/c.resolution,u.height/c.resolution,!n.isRoot),this.adaptor.startRenderPass(n,t,i,u),o&&this.onRenderTargetChange.emit(n),n}clear(e,t=Le.ALL,i){t&&(e&&(e=this.getRenderTarget(e)),this.adaptor.clear(e||this.renderTarget,t,i,this.viewport))}contextChange(){this._gpuRenderTargetHash=Object.create(null)}push(e,t=Le.ALL,i,s){let n=this.bind(e,t,i,s);return this._renderTargetStack.push({renderTarget:n,frame:s}),n}pop(){this._renderTargetStack.pop();let e=this._renderTargetStack[this._renderTargetStack.length-1];this.bind(e.renderTarget,!1,null,e.frame)}getRenderTarget(e){return e.isTexture&&(e=e.source),this._renderSurfaceToRenderTargetHash.get(e)??this._initRenderTarget(e)}copyToTexture(e,t,i,s,n){i.x<0&&(s.width+=i.x,n.x-=i.x,i.x=0),i.y<0&&(s.height+=i.y,n.y-=i.y,i.y=0);let{pixelWidth:o,pixelHeight:a}=e;return s.width=Math.min(s.width,o-i.x),s.height=Math.min(s.height,a-i.y),this.adaptor.copyToTexture(e,t,i,s,n)}ensureDepthStencil(){this.renderTarget.stencil||(this.renderTarget.stencil=!0,this.adaptor.startRenderPass(this.renderTarget,!1,null,this.viewport))}destroy(){this._renderer=null,this._renderSurfaceToRenderTargetHash.forEach((e,t)=>{e!==t&&e.destroy()}),this._renderSurfaceToRenderTargetHash.clear(),this._gpuRenderTargetHash=Object.create(null)}_initRenderTarget(e){let t=null;return je.test(e)&&(e=Vl(e).source),e instanceof Ta?t=e:e instanceof se&&(t=new Ta({colorTextures:[e]}),e.source instanceof je&&(t.isRoot=!0),e.once("destroy",()=>{t.destroy(),this._renderSurfaceToRenderTargetHash.delete(e);let i=this._gpuRenderTargetHash[t.uid];i&&(this._gpuRenderTargetHash[t.uid]=null,this.adaptor.destroyGpuRenderTarget(i))})),this._renderSurfaceToRenderTargetHash.set(e,t),t}getGpuRenderTarget(e){return this._gpuRenderTargetHash[e.uid]||(this._gpuRenderTargetHash[e.uid]=this.adaptor.initGpuRenderTarget(e))}resetState(){this.renderTarget=null,this.renderSurface=null}}});var Yl,Xv=p(()=>{"use strict";Yl=class{constructor(){this.contexts=[],this.msaaTextures=[],this.msaaSamples=1}}});var Kl,Yv=p(()=>{ln();Is();tt();Xv();Kl=class{init(e,t){this._renderer=e,this._renderTargetSystem=t}copyToTexture(e,t,i,s,n){let o=this._renderer,a=this._getGpuColorTexture(e),c=o.texture.getGpuSource(t.source);return o.encoder.commandEncoder.copyTextureToTexture({texture:a,origin:i},{texture:c,origin:n},s),t}startRenderPass(e,t=!0,i,s){let o=this._renderTargetSystem.getGpuRenderTarget(e),a=this.getDescriptor(e,t,i);o.descriptor=a,this._renderer.pipeline.setRenderTarget(o),this._renderer.encoder.beginRenderPass(o),this._renderer.encoder.setViewport(s)}finishRenderPass(){this._renderer.encoder.endRenderPass()}_getGpuColorTexture(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);return t.contexts[0]?t.contexts[0].getCurrentTexture():this._renderer.texture.getGpuSource(e.colorTextures[0].source)}getDescriptor(e,t,i){typeof t=="boolean"&&(t=t?Le.ALL:Le.NONE);let s=this._renderTargetSystem,n=s.getGpuRenderTarget(e),o=e.colorTextures.map((u,l)=>{let h=n.contexts[l],f,d;h?f=h.getCurrentTexture().createView():f=this._renderer.texture.getGpuSource(u).createView({mipLevelCount:1}),n.msaaTextures[l]&&(d=f,f=this._renderer.texture.getTextureView(n.msaaTextures[l]));let m=t&Le.COLOR?"clear":"load";return i??(i=s.defaultClearColor),{view:f,resolveTarget:d,clearValue:i,storeOp:"store",loadOp:m}}),a;if((e.stencil||e.depth)&&!e.depthStencilTexture&&(e.ensureDepthStencilTexture(),e.depthStencilTexture.source.sampleCount=n.msaa?4:1),e.depthStencilTexture){let u=t&Le.STENCIL?"clear":"load",l=t&Le.DEPTH?"clear":"load";a={view:this._renderer.texture.getGpuSource(e.depthStencilTexture.source).createView(),stencilStoreOp:"store",stencilLoadOp:u,depthClearValue:1,depthLoadOp:l,depthStoreOp:"store"}}return{colorAttachments:o,depthStencilAttachment:a}}clear(e,t=!0,i,s){if(!t)return;let{gpu:n,encoder:o}=this._renderer,a=n.device;if(o.commandEncoder===null){let u=a.createCommandEncoder(),l=this.getDescriptor(e,t,i),h=u.beginRenderPass(l);h.setViewport(s.x,s.y,s.width,s.height,0,1),h.end();let f=u.finish();a.queue.submit([f])}else this.startRenderPass(e,t,i,s)}initGpuRenderTarget(e){e.isRoot=!0;let t=new Yl;return e.colorTextures.forEach((i,s)=>{if(i instanceof je){let n=i.resource.getContext("webgpu"),o=i.transparent?"premultiplied":"opaque";try{n.configure({device:this._renderer.gpu.device,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,format:"bgra8unorm",alphaMode:o})}catch(a){console.error(a)}t.contexts[s]=n}if(t.msaa=i.source.antialias,i.source.antialias){let n=new se({width:0,height:0,sampleCount:4});t.msaaTextures[s]=n}}),t.msaa&&(t.msaaSamples=4,e.depthStencilTexture&&(e.depthStencilTexture.source.sampleCount=4)),t}destroyGpuRenderTarget(e){e.contexts.forEach(t=>{t.unconfigure()}),e.msaaTextures.forEach(t=>{t.destroy()}),e.msaaTextures.length=0,e.contexts.length=0}ensureDepthStencilTexture(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);e.depthStencilTexture&&t.msaa&&(e.depthStencilTexture.source.sampleCount=4)}resizeGpuRenderTarget(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);t.width=e.width,t.height=e.height,t.msaa&&e.colorTextures.forEach((i,s)=>{t.msaaTextures[s]?.resize(i.source.width,i.source.height,i.source._resolution)})}}});var Ma,Kv=p(()=>{B();Ip();Yv();Ma=class extends xn{constructor(e){super(e),this.adaptor=new Kl,this.adaptor.init(e,this)}};Ma.extension={type:[b.WebGPUSystem],name:"renderTarget"}});var Ia,Qv=p(()=>{B();Ia=class{constructor(){this._gpuProgramData=Object.create(null)}contextChange(e){this._gpu=e}getProgramData(e){return this._gpuProgramData[e._layoutKey]||this._createGPUProgramData(e)}_createGPUProgramData(e){let t=this._gpu.device,i=e.gpuLayout.map(n=>t.createBindGroupLayout({entries:n})),s={bindGroupLayouts:i};return this._gpuProgramData[e._layoutKey]={bindGroups:i,pipeline:t.createPipelineLayout(s)},this._gpuProgramData[e._layoutKey]}destroy(){this._gpu=null,this._gpuProgramData=null}};Ia.extension={type:[b.WebGPUSystem],name:"shader"}});var st,Zv=p(()=>{"use strict";st={};st.normal={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};st.add={alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}};st.multiply={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}};st.screen={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};st.overlay={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};st.none={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}};st["normal-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}};st["add-npm"]={alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}};st["screen-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}};st.erase={alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}};st.min={alpha:{srcFactor:"one",dstFactor:"one",operation:"min"},color:{srcFactor:"one",dstFactor:"one",operation:"min"}};st.max={alpha:{srcFactor:"one",dstFactor:"one",operation:"max"},color:{srcFactor:"one",dstFactor:"one",operation:"max"}}});var Fa,Jv=p(()=>{B();Gt();Zv();Fa=class{constructor(){this.defaultState=new Pe,this.defaultState.blend=!0}contextChange(e){this.gpu=e}getColorTargets(e){return[{format:"bgra8unorm",writeMask:0,blend:st[e.blendMode]||st.normal}]}destroy(){this.gpu=null}};Fa.extension={type:[b.WebGPUSystem],name:"state"}});var e1,t1=p(()=>{"use strict";e1={type:"image",upload(r,e,t){let i=r.resource,s=(r.pixelWidth|0)*(r.pixelHeight|0),n=i.byteLength/s;t.device.queue.writeTexture({texture:e},i,{offset:0,rowsPerImage:r.pixelHeight,bytesPerRow:r.pixelHeight*n},{width:r.pixelWidth,height:r.pixelHeight,depthOrArrayLayers:1})}}});var Fp,mR,r1,i1=p(()=>{"use strict";Fp={"bc1-rgba-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"bc2-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc3-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc7-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"etc1-rgb-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"etc2-rgba8unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"astc-4x4-unorm":{blockBytes:16,blockWidth:4,blockHeight:4}},mR={blockBytes:4,blockWidth:1,blockHeight:1},r1={type:"compressed",upload(r,e,t){let i=r.pixelWidth,s=r.pixelHeight,n=Fp[r.format]||mR;for(let o=0;o<r.resource.length;o++){let a=r.resource[o],c=Math.ceil(i/n.blockWidth)*n.blockBytes;t.device.queue.writeTexture({texture:e,mipLevel:o},a,{offset:0,bytesPerRow:c},{width:Math.ceil(i/n.blockWidth)*n.blockWidth,height:Math.ceil(s/n.blockHeight)*n.blockHeight,depthOrArrayLayers:1}),i=Math.max(i>>1,1),s=Math.max(s>>1,1)}}}});var Ql,Up=p(()=>{Ce();pe();Ql={type:"image",upload(r,e,t){let i=r.resource;if(!i)return;if(globalThis.HTMLImageElement&&i instanceof HTMLImageElement){let a=W.get().createCanvas(i.width,i.height);a.getContext("2d").drawImage(i,0,0,i.width,i.height),r.resource=a,N("ImageSource: Image element passed, converting to canvas and replacing resource.")}let s=Math.min(e.width,r.resourceWidth||r.pixelWidth),n=Math.min(e.height,r.resourceHeight||r.pixelHeight),o=r.alphaMode==="premultiply-alpha-on-upload";t.device.queue.copyExternalImageToTexture({source:i},{texture:e,premultipliedAlpha:o},{width:s,height:n})}}});var s1,n1=p(()=>{Up();s1={type:"video",upload(r,e,t){Ql.upload(r,e,t)}}});var Zl,o1=p(()=>{"use strict";Zl=class{constructor(e){this.device=e,this.sampler=e.createSampler({minFilter:"linear"}),this.pipelines={}}_getMipmapPipeline(e){let t=this.pipelines[e];return t||(this.mipmapShaderModule||(this.mipmapShaderModule=this.device.createShaderModule({code:`
|
|
910
|
+
`}var dS=p(()=>{Hm()});function fS(r){return cl(r,"uboWgsl",hS,lS)}var mS=p(()=>{$m();jm();dS()});var oa,pS=p(()=>{P();Vm();Hm();mS();oa=class extends Xs{constructor(){super({createUboElements:uS,generateUboSync:fS})}};oa.extension={type:[b.WebGPUSystem],name:"ubo"}});var Jr,ul=p(()=>{Ve();Oe();Jr=class extends oe{constructor({buffer:e,offset:t,size:i}){super(),this.uid=K("buffer"),this._resourceType="bufferResource",this._touched=0,this._resourceId=K("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=e,this.offset=t|0,this.size=i,this.buffer.on("change",this.onBufferChange,this)}onBufferChange(){this._resourceId=K("resource"),this.emit("change",this)}destroy(e=!1){this.destroyed=!0,e&&this.buffer.destroy(),this.emit("change",this),this.buffer=null}}});var ll,gS=p(()=>{"use strict";ll=class{constructor({minUniformOffsetAlignment:e}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=e,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(e){if(e>this._minUniformOffsetAlignment/4)throw new Error(`UniformBufferBatch: array is too large: ${e*4}`);let t=this.byteIndex,i=t+e*4;if(i=Math.ceil(i/this._minUniformOffsetAlignment)*this._minUniformOffsetAlignment,i>this.data.length*4)throw new Error("UniformBufferBatch: ubo batch got too big");return this.byteIndex=i,t}addGroup(e){let t=this.addEmptyGroup(e.length);for(let i=0;i<e.length;i++)this.data[t/4+i]=e[i];return t}destroy(){this.data=null}}});var ei,aa,xS=p(()=>{P();qr();ul();wr();gS();$r();ei=128,aa=class{constructor(e){this._bindGroupHash=Object.create(null),this._buffers=[],this._bindGroups=[],this._bufferResources=[],this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_bindGroupHash"),this._batchBuffer=new ll({minUniformOffsetAlignment:ei});let t=256/ei;for(let i=0;i<t;i++){let s=Q.UNIFORM|Q.COPY_DST;i===0&&(s|=Q.COPY_SRC),this._buffers.push(new Ce({data:this._batchBuffer.data,usage:s}))}}renderEnd(){this._uploadBindGroups(),this._resetBindGroups()}_resetBindGroups(){for(let e in this._bindGroupHash)this._bindGroupHash[e]=null;this._batchBuffer.clear()}getUniformBindGroup(e,t){if(!t&&this._bindGroupHash[e.uid])return this._bindGroupHash[e.uid];this._renderer.ubo.ensureUniformGroup(e);let i=e.buffer.data,s=this._batchBuffer.addEmptyGroup(i.length);return this._renderer.ubo.syncUniformGroup(e,this._batchBuffer.data,s/4),this._bindGroupHash[e.uid]=this._getBindGroup(s/ei),this._bindGroupHash[e.uid]}getUboResource(e){this._renderer.ubo.updateUniformGroup(e);let t=e.buffer.data,i=this._batchBuffer.addGroup(t);return this._getBufferResource(i/ei)}getArrayBindGroup(e){let t=this._batchBuffer.addGroup(e);return this._getBindGroup(t/ei)}getArrayBufferResource(e){let i=this._batchBuffer.addGroup(e)/ei;return this._getBufferResource(i)}_getBufferResource(e){if(!this._bufferResources[e]){let t=this._buffers[e%2];this._bufferResources[e]=new Jr({buffer:t,offset:(e/2|0)*256,size:ei})}return this._bufferResources[e]}_getBindGroup(e){if(!this._bindGroups[e]){let t=new Ne({0:this._getBufferResource(e)});this._bindGroups[e]=t}return this._bindGroups[e]}_uploadBindGroups(){let e=this._renderer.buffer,t=this._buffers[0];t.update(this._batchBuffer.byteIndex),e.updateBuffer(t);let i=this._renderer.gpu.device.createCommandEncoder();for(let s=1;s<this._buffers.length;s++){let n=this._buffers[s];i.copyBufferToBuffer(e.getGPUBuffer(t),ei,e.getGPUBuffer(n),0,this._batchBuffer.byteIndex)}this._renderer.gpu.device.queue.submit([i.finish()])}destroy(){for(let e=0;e<this._bindGroups.length;e++)this._bindGroups[e].destroy();this._bindGroups=null,this._bindGroupHash=null;for(let e=0;e<this._buffers.length;e++)this._buffers[e].destroy();this._buffers=null;for(let e=0;e<this._bufferResources.length;e++)this._bufferResources[e].destroy();this._bufferResources=null,this._batchBuffer.destroy(),this._bindGroupHash=null,this._renderer=null}};aa.extension={type:[b.WebGPUPipes],name:"uniformBatch"}});function hl(r,e){for(let t in r.attributes){let i=r.attributes[t],s=e[t];s?(i.format??(i.format=s.format),i.offset??(i.offset=s.offset),i.instance??(i.instance=s.instance)):G(`Attribute ${t} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}FP(r)}function FP(r){let{buffers:e,attributes:t}=r,i={},s={};for(let n in e){let o=e[n];i[o.uid]=0,s[o.uid]=0}for(let n in t){let o=t[n];i[o.buffer.uid]+=ct(o.format).stride}for(let n in t){let o=t[n];o.stride??(o.stride=i[o.buffer.uid]),o.start??(o.start=s[o.buffer.uid]),s[o.buffer.uid]+=ct(o.format).stride}}var Xm=p(()=>{ge();Pi()});var sr,Ym=p(()=>{ki();sr=[];sr[me.NONE]=void 0;sr[me.DISABLED]={stencilWriteMask:0,stencilReadMask:0};sr[me.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}};sr[me.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}};sr[me.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}};sr[me.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}}});function OP(r,e,t,i,s){return r<<24|e<<16|t<<10|i<<5|s}function GP(r,e,t,i){return t<<6|r<<3|i<<1|e}var UP,ca,_S=p(()=>{P();ge();Xm();ki();no();Ym();UP={"point-list":0,"line-list":1,"line-strip":2,"triangle-list":3,"triangle-strip":4};ca=class{constructor(e){this._moduleCache=Object.create(null),this._bufferLayoutsCache=Object.create(null),this._bindingNamesCache=Object.create(null),this._pipeCache=Object.create(null),this._pipeStateCaches=Object.create(null),this._colorMask=15,this._multisampleCount=1,this._renderer=e}contextChange(e){this._gpu=e,this.setStencilMode(me.DISABLED),this._updatePipeHash()}setMultisampleCount(e){this._multisampleCount!==e&&(this._multisampleCount=e,this._updatePipeHash())}setRenderTarget(e){this._multisampleCount=e.msaaSamples,this._depthStencilAttachment=e.descriptor.depthStencilAttachment?1:0,this._updatePipeHash()}setColorMask(e){this._colorMask!==e&&(this._colorMask=e,this._updatePipeHash())}setStencilMode(e){this._stencilMode!==e&&(this._stencilMode=e,this._stencilState=sr[e],this._updatePipeHash())}setPipeline(e,t,i,s){let n=this.getPipeline(e,t,i);s.setPipeline(n)}getPipeline(e,t,i,s){e._layoutKey||(hl(e,t.attributeData),this._generateBufferKey(e)),s||(s=e.topology);let n=OP(e._layoutKey,t._layoutKey,i.data,i._blendModeId,UP[s]);return this._pipeCache[n]?this._pipeCache[n]:(this._pipeCache[n]=this._createPipeline(e,t,i,s),this._pipeCache[n])}_createPipeline(e,t,i,s){let n=this._gpu.device,o=this._createVertexBufferLayouts(e,t),a=this._renderer.state.getColorTargets(i);a[0].writeMask=this._stencilMode===me.RENDERING_MASK_ADD?0:this._colorMask;let c=this._renderer.shader.getProgramData(t).pipeline,u={vertex:{module:this._getModule(t.vertex.source),entryPoint:t.vertex.entryPoint,buffers:o},fragment:{module:this._getModule(t.fragment.source),entryPoint:t.fragment.entryPoint,targets:a},primitive:{topology:s,cullMode:i.cullMode},layout:c,multisample:{count:this._multisampleCount},label:"PIXI Pipeline"};return this._depthStencilAttachment&&(u.depthStencil={...this._stencilState,format:"depth24plus-stencil8",depthWriteEnabled:i.depthTest,depthCompare:i.depthTest?"less":"always"}),n.createRenderPipeline(u)}_getModule(e){return this._moduleCache[e]||this._createModule(e)}_createModule(e){let t=this._gpu.device;return this._moduleCache[e]=t.createShaderModule({code:e}),this._moduleCache[e]}_generateBufferKey(e){let t=[],i=0,s=Object.keys(e.attributes).sort();for(let o=0;o<s.length;o++){let a=e.attributes[s[o]];t[i++]=a.offset,t[i++]=a.format,t[i++]=a.stride,t[i++]=a.instance}let n=t.join("|");return e._layoutKey=Sr(n,"geometry"),e._layoutKey}_generateAttributeLocationsKey(e){let t=[],i=0,s=Object.keys(e.attributeData).sort();for(let o=0;o<s.length;o++){let a=e.attributeData[s[o]];t[i++]=a.location}let n=t.join("|");return e._attributeLocationsKey=Sr(n,"programAttributes"),e._attributeLocationsKey}getBufferNamesToBind(e,t){let i=e._layoutKey<<16|t._attributeLocationsKey;if(this._bindingNamesCache[i])return this._bindingNamesCache[i];let s=this._createVertexBufferLayouts(e,t),n=Object.create(null),o=t.attributeData;for(let a=0;a<s.length;a++){let u=Object.values(s[a].attributes)[0].shaderLocation;for(let l in o)if(o[l].location===u){n[a]=l;break}}return this._bindingNamesCache[i]=n,n}_createVertexBufferLayouts(e,t){t._attributeLocationsKey||this._generateAttributeLocationsKey(t);let i=e._layoutKey<<16|t._attributeLocationsKey;if(this._bufferLayoutsCache[i])return this._bufferLayoutsCache[i];let s=[];return e.buffers.forEach(n=>{let o={arrayStride:0,stepMode:"vertex",attributes:[]},a=o.attributes;for(let c in t.attributeData){let u=e.attributes[c];(u.divisor??1)!==1&&G(`Attribute ${c} has an invalid divisor value of '${u.divisor}'. WebGPU only supports a divisor value of 1`),u.buffer===n&&(o.arrayStride=u.stride,o.stepMode=u.instance?"instance":"vertex",a.push({shaderLocation:t.attributeData[c].location,offset:u.offset,format:u.format}))}a.length&&s.push(o)}),this._bufferLayoutsCache[i]=s,s}_updatePipeHash(){let e=GP(this._stencilMode,this._multisampleCount,this._colorMask,this._depthStencilAttachment);this._pipeStateCaches[e]||(this._pipeStateCaches[e]=Object.create(null)),this._pipeCache=this._pipeStateCaches[e]}destroy(){this._renderer=null,this._bufferLayoutsCache=null}};ca.extension={type:[b.WebGPUSystem],name:"pipeline"}});function bS(r,e,t,i,s,n){let o=n?1:-1;return r.identity(),r.a=1/i*2,r.d=o*(1/s*2),r.tx=-1-e*r.a,r.ty=-o-t*r.d,r}var yS=p(()=>{"use strict"});function TS(r){let e=r.colorTexture.source.resource;return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement&&document.body.contains(e)}var wS=p(()=>{"use strict"});var Ks,Km=p(()=>{ee();Ge();Hs();yS();wm();ms();et();le();Nm();wS();Gm();Ks=class{constructor(e){this.rootViewPort=new Y,this.viewport=new Y,this.onRenderTargetChange=new Ws("onRenderTargetChange"),this.projectionMatrix=new R,this.defaultClearColor=[0,0,0,0],this._renderSurfaceToRenderTargetHash=new Map,this._gpuRenderTargetHash=Object.create(null),this._renderTargetStack=[],this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuRenderTargetHash")}finishRenderPass(){this.adaptor.finishRenderPass(this.renderTarget)}renderStart({target:e,clear:t,clearColor:i,frame:s}){this._renderTargetStack.length=0,this.push(e,t,i,s),this.rootViewPort.copyFrom(this.viewport),this.rootRenderTarget=this.renderTarget,this.renderingToScreen=TS(this.rootRenderTarget),this.adaptor.prerender?.(this.rootRenderTarget)}postrender(){this.adaptor.postrender?.(this.rootRenderTarget)}bind(e,t=!0,i,s){let n=this.getRenderTarget(e),o=this.renderTarget!==n;this.renderTarget=n,this.renderSurface=e;let a=this.getGpuRenderTarget(n);(n.pixelWidth!==a.width||n.pixelHeight!==a.height)&&(this.adaptor.resizeGpuRenderTarget(n),a.width=n.pixelWidth,a.height=n.pixelHeight);let c=n.colorTexture,u=this.viewport,l=c.pixelWidth,h=c.pixelHeight;if(!s&&e instanceof D&&(s=e.frame),s){let f=c._resolution;u.x=s.x*f+.5|0,u.y=s.y*f+.5|0,u.width=s.width*f+.5|0,u.height=s.height*f+.5|0}else u.x=0,u.y=0,u.width=l,u.height=h;return bS(this.projectionMatrix,0,0,u.width/c.resolution,u.height/c.resolution,!n.isRoot),this.adaptor.startRenderPass(n,t,i,u),o&&this.onRenderTargetChange.emit(n),n}clear(e,t=Le.ALL,i){t&&(e&&(e=this.getRenderTarget(e)),this.adaptor.clear(e||this.renderTarget,t,i,this.viewport))}contextChange(){this._gpuRenderTargetHash=Object.create(null)}push(e,t=Le.ALL,i,s){let n=this.bind(e,t,i,s);return this._renderTargetStack.push({renderTarget:n,frame:s}),n}pop(){this._renderTargetStack.pop();let e=this._renderTargetStack[this._renderTargetStack.length-1];this.bind(e.renderTarget,!1,null,e.frame)}getRenderTarget(e){return e.isTexture&&(e=e.source),this._renderSurfaceToRenderTargetHash.get(e)??this._initRenderTarget(e)}copyToTexture(e,t,i,s,n){i.x<0&&(s.width+=i.x,n.x-=i.x,i.x=0),i.y<0&&(s.height+=i.y,n.y-=i.y,i.y=0);let{pixelWidth:o,pixelHeight:a}=e;return s.width=Math.min(s.width,o-i.x),s.height=Math.min(s.height,a-i.y),this.adaptor.copyToTexture(e,t,i,s,n)}ensureDepthStencil(){this.renderTarget.stencil||(this.renderTarget.stencil=!0,this.adaptor.startRenderPass(this.renderTarget,!1,null,this.viewport))}destroy(){this._renderer=null,this._renderSurfaceToRenderTargetHash.forEach((e,t)=>{e!==t&&e.destroy()}),this._renderSurfaceToRenderTargetHash.clear(),this._gpuRenderTargetHash=Object.create(null)}_initRenderTarget(e){let t=null;return je.test(e)&&(e=nl(e).source),e instanceof Qo?t=e:e instanceof se&&(t=new Qo({colorTextures:[e]}),e.source instanceof je&&(t.isRoot=!0),e.once("destroy",()=>{t.destroy(),this._renderSurfaceToRenderTargetHash.delete(e);let i=this._gpuRenderTargetHash[t.uid];i&&(this._gpuRenderTargetHash[t.uid]=null,this.adaptor.destroyGpuRenderTarget(i))})),this._renderSurfaceToRenderTargetHash.set(e,t),t}getGpuRenderTarget(e){return this._gpuRenderTargetHash[e.uid]||(this._gpuRenderTargetHash[e.uid]=this.adaptor.initGpuRenderTarget(e))}resetState(){this.renderTarget=null,this.renderSurface=null}}});var dl,SS=p(()=>{"use strict";dl=class{constructor(){this.contexts=[],this.msaaTextures=[],this.msaaSamples=1}}});var fl,vS=p(()=>{Hs();ms();et();SS();fl=class{init(e,t){this._renderer=e,this._renderTargetSystem=t}copyToTexture(e,t,i,s,n){let o=this._renderer,a=this._getGpuColorTexture(e),c=o.texture.getGpuSource(t.source);return o.encoder.commandEncoder.copyTextureToTexture({texture:a,origin:i},{texture:c,origin:n},s),t}startRenderPass(e,t=!0,i,s){let o=this._renderTargetSystem.getGpuRenderTarget(e),a=this.getDescriptor(e,t,i);o.descriptor=a,this._renderer.pipeline.setRenderTarget(o),this._renderer.encoder.beginRenderPass(o),this._renderer.encoder.setViewport(s)}finishRenderPass(){this._renderer.encoder.endRenderPass()}_getGpuColorTexture(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);return t.contexts[0]?t.contexts[0].getCurrentTexture():this._renderer.texture.getGpuSource(e.colorTextures[0].source)}getDescriptor(e,t,i){typeof t=="boolean"&&(t=t?Le.ALL:Le.NONE);let s=this._renderTargetSystem,n=s.getGpuRenderTarget(e),o=e.colorTextures.map((u,l)=>{let h=n.contexts[l],f,d;h?f=h.getCurrentTexture().createView():f=this._renderer.texture.getGpuSource(u).createView({mipLevelCount:1}),n.msaaTextures[l]&&(d=f,f=this._renderer.texture.getTextureView(n.msaaTextures[l]));let m=t&Le.COLOR?"clear":"load";return i??(i=s.defaultClearColor),{view:f,resolveTarget:d,clearValue:i,storeOp:"store",loadOp:m}}),a;if((e.stencil||e.depth)&&!e.depthStencilTexture&&(e.ensureDepthStencilTexture(),e.depthStencilTexture.source.sampleCount=n.msaa?4:1),e.depthStencilTexture){let u=t&Le.STENCIL?"clear":"load",l=t&Le.DEPTH?"clear":"load";a={view:this._renderer.texture.getGpuSource(e.depthStencilTexture.source).createView(),stencilStoreOp:"store",stencilLoadOp:u,depthClearValue:1,depthLoadOp:l,depthStoreOp:"store"}}return{colorAttachments:o,depthStencilAttachment:a}}clear(e,t=!0,i,s){if(!t)return;let{gpu:n,encoder:o}=this._renderer,a=n.device;if(o.commandEncoder===null){let u=a.createCommandEncoder(),l=this.getDescriptor(e,t,i),h=u.beginRenderPass(l);h.setViewport(s.x,s.y,s.width,s.height,0,1),h.end();let f=u.finish();a.queue.submit([f])}else this.startRenderPass(e,t,i,s)}initGpuRenderTarget(e){e.isRoot=!0;let t=new dl;return e.colorTextures.forEach((i,s)=>{if(i instanceof je){let n=i.resource.getContext("webgpu"),o=i.transparent?"premultiplied":"opaque";try{n.configure({device:this._renderer.gpu.device,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,format:"bgra8unorm",alphaMode:o})}catch(a){console.error(a)}t.contexts[s]=n}if(t.msaa=i.source.antialias,i.source.antialias){let n=new se({width:0,height:0,sampleCount:4});t.msaaTextures[s]=n}}),t.msaa&&(t.msaaSamples=4,e.depthStencilTexture&&(e.depthStencilTexture.source.sampleCount=4)),t}destroyGpuRenderTarget(e){e.contexts.forEach(t=>{t.unconfigure()}),e.msaaTextures.forEach(t=>{t.destroy()}),e.msaaTextures.length=0,e.contexts.length=0}ensureDepthStencilTexture(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);e.depthStencilTexture&&t.msaa&&(e.depthStencilTexture.source.sampleCount=4)}resizeGpuRenderTarget(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);t.width=e.width,t.height=e.height,t.msaa&&e.colorTextures.forEach((i,s)=>{t.msaaTextures[s]?.resize(i.source.width,i.source.height,i.source._resolution)})}}});var ua,CS=p(()=>{P();Km();vS();ua=class extends Ks{constructor(e){super(e),this.adaptor=new fl,this.adaptor.init(e,this)}};ua.extension={type:[b.WebGPUSystem],name:"renderTarget"}});var la,ES=p(()=>{P();la=class{constructor(){this._gpuProgramData=Object.create(null)}contextChange(e){this._gpu=e}getProgramData(e){return this._gpuProgramData[e._layoutKey]||this._createGPUProgramData(e)}_createGPUProgramData(e){let t=this._gpu.device,i=e.gpuLayout.map(n=>t.createBindGroupLayout({entries:n})),s={bindGroupLayouts:i};return this._gpuProgramData[e._layoutKey]={bindGroups:i,pipeline:t.createPipelineLayout(s)},this._gpuProgramData[e._layoutKey]}destroy(){this._gpu=null,this._gpuProgramData=null}};la.extension={type:[b.WebGPUSystem],name:"shader"}});var it,kS=p(()=>{"use strict";it={};it.normal={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};it.add={alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}};it.multiply={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}};it.screen={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};it.overlay={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};it.none={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}};it["normal-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}};it["add-npm"]={alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}};it["screen-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}};it.erase={alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}};it.min={alpha:{srcFactor:"one",dstFactor:"one",operation:"min"},color:{srcFactor:"one",dstFactor:"one",operation:"min"}};it.max={alpha:{srcFactor:"one",dstFactor:"one",operation:"max"},color:{srcFactor:"one",dstFactor:"one",operation:"max"}}});var ha,AS=p(()=>{P();Ot();kS();ha=class{constructor(){this.defaultState=new Ae,this.defaultState.blend=!0}contextChange(e){this.gpu=e}getColorTargets(e){return[{format:"bgra8unorm",writeMask:0,blend:it[e.blendMode]||it.normal}]}destroy(){this.gpu=null}};ha.extension={type:[b.WebGPUSystem],name:"state"}});var PS,BS=p(()=>{"use strict";PS={type:"image",upload(r,e,t){let i=r.resource,s=(r.pixelWidth|0)*(r.pixelHeight|0),n=i.byteLength/s;t.device.queue.writeTexture({texture:e},i,{offset:0,rowsPerImage:r.pixelHeight,bytesPerRow:r.pixelHeight*n},{width:r.pixelWidth,height:r.pixelHeight,depthOrArrayLayers:1})}}});var Qm,NP,RS,DS=p(()=>{"use strict";Qm={"bc1-rgba-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"bc2-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc3-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc7-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"etc1-rgb-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"etc2-rgba8unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"astc-4x4-unorm":{blockBytes:16,blockWidth:4,blockHeight:4}},NP={blockBytes:4,blockWidth:1,blockHeight:1},RS={type:"compressed",upload(r,e,t){let i=r.pixelWidth,s=r.pixelHeight,n=Qm[r.format]||NP;for(let o=0;o<r.resource.length;o++){let a=r.resource[o],c=Math.ceil(i/n.blockWidth)*n.blockBytes;t.device.queue.writeTexture({texture:e,mipLevel:o},a,{offset:0,bytesPerRow:c},{width:Math.ceil(i/n.blockWidth)*n.blockWidth,height:Math.ceil(s/n.blockHeight)*n.blockHeight,depthOrArrayLayers:1}),i=Math.max(i>>1,1),s=Math.max(s>>1,1)}}}});var ml,Zm=p(()=>{ve();ge();ml={type:"image",upload(r,e,t){let i=r.resource;if(!i)return;if(globalThis.HTMLImageElement&&i instanceof HTMLImageElement){let a=W.get().createCanvas(i.width,i.height);a.getContext("2d").drawImage(i,0,0,i.width,i.height),r.resource=a,G("ImageSource: Image element passed, converting to canvas and replacing resource.")}let s=Math.min(e.width,r.resourceWidth||r.pixelWidth),n=Math.min(e.height,r.resourceHeight||r.pixelHeight),o=r.alphaMode==="premultiply-alpha-on-upload";t.device.queue.copyExternalImageToTexture({source:i},{texture:e,premultipliedAlpha:o},{width:s,height:n})}}});var MS,IS=p(()=>{Zm();MS={type:"video",upload(r,e,t){ml.upload(r,e,t)}}});var pl,FS=p(()=>{"use strict";pl=class{constructor(e){this.device=e,this.sampler=e.createSampler({minFilter:"linear"}),this.pipelines={}}_getMipmapPipeline(e){let t=this.pipelines[e];return t||(this.mipmapShaderModule||(this.mipmapShaderModule=this.device.createShaderModule({code:`
|
|
911
911
|
var<private> pos : array<vec2<f32>, 3> = array<vec2<f32>, 3>(
|
|
912
912
|
vec2<f32>(-1.0, -1.0), vec2<f32>(-1.0, 3.0), vec2<f32>(3.0, -1.0));
|
|
913
913
|
|
|
@@ -931,7 +931,7 @@ fn mainFragment(
|
|
|
931
931
|
fn fragmentMain(@location(0) texCoord : vec2<f32>) -> @location(0) vec4<f32> {
|
|
932
932
|
return textureSample(img, imgSampler, texCoord);
|
|
933
933
|
}
|
|
934
|
-
`})),t=this.device.createRenderPipeline({layout:"auto",vertex:{module:this.mipmapShaderModule,entryPoint:"vertexMain"},fragment:{module:this.mipmapShaderModule,entryPoint:"fragmentMain",targets:[{format:e}]}}),this.pipelines[e]=t),t}generateMipmap(e){let t=this._getMipmapPipeline(e.format);if(e.dimension==="3d"||e.dimension==="1d")throw new Error("Generating mipmaps for non-2d textures is currently unsupported!");let i=e,s=e.depthOrArrayLayers||1,n=e.usage&GPUTextureUsage.RENDER_ATTACHMENT;if(!n){let c={size:{width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:s},format:e.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT,mipLevelCount:e.mipLevelCount-1};i=this.device.createTexture(c)}let o=this.device.createCommandEncoder({}),a=t.getBindGroupLayout(0);for(let c=0;c<s;++c){let u=e.createView({baseMipLevel:0,mipLevelCount:1,dimension:"2d",baseArrayLayer:c,arrayLayerCount:1}),l=n?1:0;for(let h=1;h<e.mipLevelCount;++h){let f=i.createView({baseMipLevel:l++,mipLevelCount:1,dimension:"2d",baseArrayLayer:c,arrayLayerCount:1}),d=o.beginRenderPass({colorAttachments:[{view:f,storeOp:"store",loadOp:"clear",clearValue:{r:0,g:0,b:0,a:0}}]}),m=this.device.createBindGroup({layout:a,entries:[{binding:0,resource:this.sampler},{binding:1,resource:u}]});d.setPipeline(t),d.setBindGroup(0,m),d.draw(3,1,0,0),d.end(),u=f}}if(!n){let c={width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:s};for(let u=1;u<e.mipLevelCount;++u)o.copyTextureToTexture({texture:i,mipLevel:u-1},{texture:e,mipLevel:u},c),c.width=Math.ceil(c.width/2),c.height=Math.ceil(c.height/2)}return this.device.queue.submit([o.finish()]),n||i.destroy(),e}}});var Ua,a1=p(()=>{Ce();B();it();rn();Xr();t1();i1();Up();n1();o1();Ua=class{constructor(e){this.managedTextures=[],this._gpuSources=Object.create(null),this._gpuSamplers=Object.create(null),this._bindGroupHash=Object.create(null),this._textureViewHash=Object.create(null),this._uploads={image:Ql,buffer:e1,video:s1,compressed:r1},this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuSources"),e.renderableGC.addManagedHash(this,"_gpuSamplers"),e.renderableGC.addManagedHash(this,"_bindGroupHash"),e.renderableGC.addManagedHash(this,"_textureViewHash")}contextChange(e){this._gpu=e}initSource(e){if(e.autoGenerateMipmaps){let c=Math.max(e.pixelWidth,e.pixelHeight);e.mipLevelCount=Math.floor(Math.log2(c))+1}let t=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST;e.uploadMethodId!=="compressed"&&(t|=GPUTextureUsage.RENDER_ATTACHMENT,t|=GPUTextureUsage.COPY_SRC);let i=Fp[e.format]||{blockBytes:4,blockWidth:1,blockHeight:1},s=Math.ceil(e.pixelWidth/i.blockWidth)*i.blockWidth,n=Math.ceil(e.pixelHeight/i.blockHeight)*i.blockHeight,o={label:e.label,size:{width:s,height:n},format:e.format,sampleCount:e.sampleCount,mipLevelCount:e.mipLevelCount,dimension:e.dimension,usage:t},a=this._gpu.device.createTexture(o);return this._gpuSources[e.uid]=a,this.managedTextures.includes(e)||(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceResize,this),e.on("destroy",this.onSourceDestroy,this),e.on("unload",this.onSourceUnload,this),e.on("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.push(e)),this.onSourceUpdate(e),a}onSourceUpdate(e){let t=this.getGpuSource(e);t&&(this._uploads[e.uploadMethodId]&&this._uploads[e.uploadMethodId].upload(e,t,this._gpu),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e))}onSourceUnload(e){let t=this._gpuSources[e.uid];t&&(this._gpuSources[e.uid]=null,t.destroy())}onUpdateMipmaps(e){this._mipmapGenerator||(this._mipmapGenerator=new Zl(this._gpu.device));let t=this.getGpuSource(e);this._mipmapGenerator.generateMipmap(t)}onSourceDestroy(e){e.off("update",this.onSourceUpdate,this),e.off("unload",this.onSourceUnload,this),e.off("destroy",this.onSourceDestroy,this),e.off("resize",this.onSourceResize,this),e.off("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.splice(this.managedTextures.indexOf(e),1),this.onSourceUnload(e)}onSourceResize(e){let t=this._gpuSources[e.uid];t?(t.width!==e.pixelWidth||t.height!==e.pixelHeight)&&(this._textureViewHash[e.uid]=null,this._bindGroupHash[e.uid]=null,this.onSourceUnload(e),this.initSource(e)):this.initSource(e)}_initSampler(e){return this._gpuSamplers[e._resourceId]=this._gpu.device.createSampler(e),this._gpuSamplers[e._resourceId]}getGpuSampler(e){return this._gpuSamplers[e._resourceId]||this._initSampler(e)}getGpuSource(e){return this._gpuSources[e.uid]||this.initSource(e)}getTextureBindGroup(e){return this._bindGroupHash[e.uid]??this._createTextureBindGroup(e)}_createTextureBindGroup(e){let t=e.source;return this._bindGroupHash[e.uid]=new Ne({0:t,1:t.style,2:new ce({uTextureMatrix:{type:"mat3x3<f32>",value:e.textureMatrix.mapCoord}})}),this._bindGroupHash[e.uid]}getTextureView(e){let t=e.source;return this._textureViewHash[t.uid]??this._createTextureView(t)}_createTextureView(e){return this._textureViewHash[e.uid]=this.getGpuSource(e).createView(),this._textureViewHash[e.uid]}generateCanvas(e){let t=this._renderer,i=t.gpu.device.createCommandEncoder(),s=W.get().createCanvas();s.width=e.source.pixelWidth,s.height=e.source.pixelHeight;let n=s.getContext("webgpu");return n.configure({device:t.gpu.device,usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC,format:W.get().getNavigator().gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),i.copyTextureToTexture({texture:t.texture.getGpuSource(e.source),origin:{x:0,y:0}},{texture:n.getCurrentTexture()},{width:s.width,height:s.height}),t.gpu.device.queue.submit([i.finish()]),s}getPixels(e){let t=this.generateCanvas(e),i=yt.getOptimalCanvasAndContext(t.width,t.height),s=i.context;s.drawImage(t,0,0);let{width:n,height:o}=t,a=s.getImageData(0,0,n,o),c=new Uint8ClampedArray(a.data.buffer);return yt.returnCanvasAndContext(i),{pixels:c,width:n,height:o}}destroy(){this.managedTextures.slice().forEach(e=>this.onSourceDestroy(e)),this.managedTextures=null;for(let e of Object.keys(this._bindGroupHash)){let t=Number(e);this._bindGroupHash[t]?.destroy(),this._bindGroupHash[t]=null}this._gpu=null,this._mipmapGenerator=null,this._gpuSources=null,this._bindGroupHash=null,this._textureViewHash=null,this._gpuSamplers=null}};Ua.extension={type:[b.WebGPUSystem],name:"texture"}});var h1={};Tg(h1,{WebGPURenderer:()=>Op});var pR,gR,xR,c1,u1,l1,Op,d1=p(()=>{B();CS();AS();PS();ra();Cp();ir();kv();Av();Pv();Bv();Rv();Dv();Mv();Lv();Vv();Hv();Kv();Qv();Jv();a1();pR=[...Hl,Ba,Ea,mn,ka,va,Ua,Ma,Ia,Fa,Da,Ca,Aa,Sa],gR=[...Wl,Ra],xR=[na,sa,ia],c1=[],u1=[],l1=[];O.handleByNamedList(b.WebGPUSystem,c1);O.handleByNamedList(b.WebGPUPipes,u1);O.handleByNamedList(b.WebGPUPipesAdaptor,l1);O.add(...pR,...gR,...xR);Op=class extends ti{constructor(){let e={name:"webgpu",type:Ie.WEBGPU,systems:c1,renderPipes:u1,renderPipeAdaptors:l1};super(e)}}});var Oa,f1=p(()=>{B();te();Qr();Ro();Do();un();Zr();Zu();Ot();it();Oa=class{contextChange(e){let t=new ce({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uRound:{value:0,type:"f32"}}),i=e.limits.maxBatchableTextures,s=er({name:"graphics",bits:[zs,Hs(i),cn,rr]});this.shader=new ke({glProgram:s,resources:{localUniforms:t,batchSamplers:Ws(i)}})}execute(e,t){let i=t.context,s=i.customShader||this.shader,n=e.renderer,o=n.graphicsContext,{batcher:a,instructions:c}=o.getContextRenderData(i);s.groups[0]=n.globalUniforms.bindGroup,n.state.set(e.state),n.shader.bind(s),n.geometry.bind(a.geometry,s.glProgram);let u=c.instructions;for(let l=0;l<c.instructionSize;l++){let h=u[l];if(h.size){for(let f=0;f<h.textures.count;f++)n.texture.bind(h.textures.textures[f],f);n.geometry.draw(h.topology,h.size,h.start)}}}destroy(){this.shader.destroy(!0),this.shader=null}};Oa.extension={type:[b.WebGLPipesAdaptor],name:"graphics"}});var Ga,m1=p(()=>{B();te();Qr();un();Zr();ap();Ot();le();pe();Ga=class{init(){let e=er({name:"mesh",bits:[cn,kS,rr]});this._shader=new ke({glProgram:e,resources:{uTexture:M.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new R}}}})}execute(e,t){let i=e.renderer,s=t._shader;if(s){if(!s.glProgram){N("Mesh shader has no glProgram",t.shader);return}}else{s=this._shader;let n=t.texture,o=n.source;s.resources.uTexture=o,s.resources.uSampler=o.style,s.resources.textureUniforms.uniforms.uTextureMatrix=n.textureMatrix.mapCoord}s.groups[100]=i.globalUniforms.bindGroup,s.groups[101]=e.localUniformsBindGroup,i.encoder.draw({geometry:t._geometry,shader:s,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}};Ga.extension={type:[b.WebGLPipesAdaptor],name:"mesh"}});var Na,p1=p(()=>{B();Gt();Na=class{constructor(){this._tempState=Pe.for2d(),this._didUploadHash={}}init(e){e.renderer.runners.contextChange.add(this)}contextChange(){this._didUploadHash={}}start(e,t,i){let s=e.renderer,n=this._didUploadHash[i.uid];s.shader.bind(i,n),n||(this._didUploadHash[i.uid]=!0),s.shader.updateUniformGroup(s.globalUniforms.uniformGroup),s.geometry.bind(t,i.glProgram)}execute(e,t){let i=e.renderer;this._tempState.blendMode=t.blendMode,i.state.set(this._tempState);let s=t.textures.textures;for(let n=0;n<t.textures.count;n++)i.texture.bind(s[n],n);i.geometry.draw(t.topology,t.size,t.start)}};Na.extension={type:[b.WebGLPipesAdaptor],name:"batch"}});var La,g1=p(()=>{"use strict";La=(r=>(r[r.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",r[r.ARRAY_BUFFER=34962]="ARRAY_BUFFER",r[r.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",r))(La||{})});var Jl,x1=p(()=>{"use strict";Jl=class{constructor(e,t){this._lastBindBaseLocation=-1,this._lastBindCallId=-1,this.buffer=e||null,this.updateID=-1,this.byteLength=-1,this.type=t}}});var za,_1=p(()=>{B();Cr();g1();x1();za=class{constructor(e){this._gpuBuffers=Object.create(null),this._boundBufferBases=Object.create(null),this._minBaseLocation=0,this._nextBindBaseIndex=this._minBaseLocation,this._bindCallId=0,this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_gpuBuffers")}destroy(){this._renderer=null,this._gl=null,this._gpuBuffers=null,this._boundBufferBases=null}contextChange(){this._gl=this._renderer.gl,this._gpuBuffers=Object.create(null),this._maxBindings=this._renderer.limits.maxUniformBindings}getGlBuffer(e){return this._gpuBuffers[e.uid]||this.createGLBuffer(e)}bind(e){let{_gl:t}=this,i=this.getGlBuffer(e);t.bindBuffer(i.type,i.buffer)}bindBufferBase(e,t){let{_gl:i}=this;this._boundBufferBases[t]!==e&&(this._boundBufferBases[t]=e,e._lastBindBaseLocation=t,i.bindBufferBase(i.UNIFORM_BUFFER,t,e.buffer))}nextBindBase(e){this._bindCallId++,this._minBaseLocation=0,e&&(this._boundBufferBases[0]=null,this._minBaseLocation=1,this._nextBindBaseIndex<1&&(this._nextBindBaseIndex=1))}freeLocationForBufferBase(e){let t=this.getLastBindBaseLocation(e);if(t>=this._minBaseLocation)return e._lastBindCallId=this._bindCallId,t;let i=0,s=this._nextBindBaseIndex;for(;i<2;){s>=this._maxBindings&&(s=this._minBaseLocation,i++);let n=this._boundBufferBases[s];if(n&&n._lastBindCallId===this._bindCallId){s++;continue}break}return t=s,this._nextBindBaseIndex=s+1,i>=2?-1:(e._lastBindCallId=this._bindCallId,this._boundBufferBases[t]=null,t)}getLastBindBaseLocation(e){let t=e._lastBindBaseLocation;return this._boundBufferBases[t]===e?t:-1}bindBufferRange(e,t,i,s){let{_gl:n}=this;i||(i=0),t||(t=0),this._boundBufferBases[t]=null,n.bindBufferRange(n.UNIFORM_BUFFER,t||0,e.buffer,i*256,s||256)}updateBuffer(e){let{_gl:t}=this,i=this.getGlBuffer(e);if(e._updateID===i.updateID)return i;i.updateID=e._updateID,t.bindBuffer(i.type,i.buffer);let s=e.data,n=e.descriptor.usage&Q.STATIC?t.STATIC_DRAW:t.DYNAMIC_DRAW;return s?i.byteLength>=s.byteLength?t.bufferSubData(i.type,0,s,0,e._updateSize/s.BYTES_PER_ELEMENT):(i.byteLength=s.byteLength,t.bufferData(i.type,s,n)):(i.byteLength=e.descriptor.size,t.bufferData(i.type,i.byteLength,n)),i}destroyAll(){let e=this._gl;for(let t in this._gpuBuffers)e.deleteBuffer(this._gpuBuffers[t].buffer);this._gpuBuffers=Object.create(null)}onBufferDestroy(e,t){let i=this._gpuBuffers[e.uid],s=this._gl;t||s.deleteBuffer(i.buffer),this._gpuBuffers[e.uid]=null}createGLBuffer(e){let{_gl:t}=this,i=La.ARRAY_BUFFER;e.descriptor.usage&Q.INDEX?i=La.ELEMENT_ARRAY_BUFFER:e.descriptor.usage&Q.UNIFORM&&(i=La.UNIFORM_BUFFER);let s=new Jl(t.createBuffer(),i);return this._gpuBuffers[e.uid]=s,e.on("destroy",this.onBufferDestroy,this),s}resetState(){this._boundBufferBases=Object.create(null)}};za.extension={type:[b.WebGLSystem],name:"buffer"}});var Gp,y1,T1=p(()=>{Ce();B();pe();Gp=class b1{constructor(e){this.supports={uint32Indices:!0,uniformBufferObject:!0,vertexArrayObject:!0,srgbTextures:!0,nonPowOf2wrapping:!0,msaa:!0,nonPowOf2mipmaps:!0},this._renderer=e,this.extensions=Object.create(null),this.handleContextLost=this.handleContextLost.bind(this),this.handleContextRestored=this.handleContextRestored.bind(this)}get isLost(){return!this.gl||this.gl.isContextLost()}contextChange(e){this.gl=e,this._renderer.gl=e}init(e){e={...b1.defaultOptions,...e};let t=this.multiView=e.multiView;if(e.context&&t&&(N("Renderer created with both a context and multiview enabled. Disabling multiView as both cannot work together."),t=!1),t?this.canvas=W.get().createCanvas(this._renderer.canvas.width,this._renderer.canvas.height):this.canvas=this._renderer.view.canvas,e.context)this.initFromContext(e.context);else{let i=this._renderer.background.alpha<1,s=e.premultipliedAlpha??!0,n=e.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(e.preferWebGLVersion,{alpha:i,premultipliedAlpha:s,antialias:n,stencil:!0,preserveDrawingBuffer:e.preserveDrawingBuffer,powerPreference:e.powerPreference??"default"})}}ensureCanvasSize(e){if(!this.multiView){e!==this.canvas&&N("multiView is disabled, but targetCanvas is not the main canvas");return}let{canvas:t}=this;(t.width<e.width||t.height<e.height)&&(t.width=Math.max(e.width,e.width),t.height=Math.max(e.height,e.height))}initFromContext(e){this.gl=e,this.webGLVersion=e instanceof W.get().getWebGLRenderingContext()?1:2,this.getExtensions(),this.validateContext(e),this._renderer.runners.contextChange.emit(e);let t=this._renderer.view.canvas;t.addEventListener("webglcontextlost",this.handleContextLost,!1),t.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(e,t){let i,s=this.canvas;if(e===2&&(i=s.getContext("webgl2",t)),!i&&(i=s.getContext("webgl",t),!i))throw new Error("This browser does not support WebGL. Try using the canvas renderer");this.gl=i,this.initFromContext(this.gl)}getExtensions(){let{gl:e}=this,t={anisotropicFiltering:e.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),s3tc:e.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:e.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:e.getExtension("WEBGL_compressed_texture_etc"),etc1:e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:e.getExtension("WEBGL_compressed_texture_atc"),astc:e.getExtension("WEBGL_compressed_texture_astc"),bptc:e.getExtension("EXT_texture_compression_bptc"),rgtc:e.getExtension("EXT_texture_compression_rgtc"),loseContext:e.getExtension("WEBGL_lose_context")};if(this.webGLVersion===1)this.extensions={...t,drawBuffers:e.getExtension("WEBGL_draw_buffers"),depthTexture:e.getExtension("WEBGL_depth_texture"),vertexArrayObject:e.getExtension("OES_vertex_array_object")||e.getExtension("MOZ_OES_vertex_array_object")||e.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:e.getExtension("OES_element_index_uint"),floatTexture:e.getExtension("OES_texture_float"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),textureHalfFloat:e.getExtension("OES_texture_half_float"),textureHalfFloatLinear:e.getExtension("OES_texture_half_float_linear"),vertexAttribDivisorANGLE:e.getExtension("ANGLE_instanced_arrays"),srgb:e.getExtension("EXT_sRGB")};else{this.extensions={...t,colorBufferFloat:e.getExtension("EXT_color_buffer_float")};let i=e.getExtension("WEBGL_provoking_vertex");i&&i.provokingVertexWEBGL(i.FIRST_VERTEX_CONVENTION_WEBGL)}}handleContextLost(e){e.preventDefault(),this._contextLossForced&&(this._contextLossForced=!1,setTimeout(()=>{this.gl.isContextLost()&&this.extensions.loseContext?.restoreContext()},0))}handleContextRestored(){this.getExtensions(),this._renderer.runners.contextChange.emit(this.gl)}destroy(){let e=this._renderer.view.canvas;this._renderer=null,e.removeEventListener("webglcontextlost",this.handleContextLost),e.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext?.loseContext()}forceContextLoss(){this.extensions.loseContext?.loseContext(),this._contextLossForced=!0}validateContext(e){let t=e.getContextAttributes();t&&!t.stencil&&N("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let i=this.supports,s=this.webGLVersion===2,n=this.extensions;i.uint32Indices=s||!!n.uint32ElementIndex,i.uniformBufferObject=s,i.vertexArrayObject=s||!!n.vertexArrayObject,i.srgbTextures=s||!!n.srgb,i.nonPowOf2wrapping=s,i.nonPowOf2mipmaps=s,i.msaa=s,i.uint32Indices||N("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};Gp.extension={type:[b.WebGLSystem],name:"context"};Gp.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2,multiView:!1};y1=Gp});var eh,Np,ie,Lp=p(()=>{"use strict";eh=(r=>(r[r.RGBA=6408]="RGBA",r[r.RGB=6407]="RGB",r[r.RG=33319]="RG",r[r.RED=6403]="RED",r[r.RGBA_INTEGER=36249]="RGBA_INTEGER",r[r.RGB_INTEGER=36248]="RGB_INTEGER",r[r.RG_INTEGER=33320]="RG_INTEGER",r[r.RED_INTEGER=36244]="RED_INTEGER",r[r.ALPHA=6406]="ALPHA",r[r.LUMINANCE=6409]="LUMINANCE",r[r.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",r[r.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",r[r.DEPTH_STENCIL=34041]="DEPTH_STENCIL",r))(eh||{}),Np=(r=>(r[r.TEXTURE_2D=3553]="TEXTURE_2D",r[r.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",r[r.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",r[r.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",r[r.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",r[r.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",r[r.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",r[r.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",r[r.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",r))(Np||{}),ie=(r=>(r[r.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",r[r.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",r[r.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",r[r.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",r[r.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",r[r.UNSIGNED_INT=5125]="UNSIGNED_INT",r[r.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",r[r.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",r[r.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",r[r.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",r[r.BYTE=5120]="BYTE",r[r.SHORT=5122]="SHORT",r[r.INT=5124]="INT",r[r.FLOAT=5126]="FLOAT",r[r.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",r[r.HALF_FLOAT=36193]="HALF_FLOAT",r))(ie||{})});function S1(r){return w1[r]??w1.float32}var w1,v1=p(()=>{Lp();w1={uint8x2:ie.UNSIGNED_BYTE,uint8x4:ie.UNSIGNED_BYTE,sint8x2:ie.BYTE,sint8x4:ie.BYTE,unorm8x2:ie.UNSIGNED_BYTE,unorm8x4:ie.UNSIGNED_BYTE,snorm8x2:ie.BYTE,snorm8x4:ie.BYTE,uint16x2:ie.UNSIGNED_SHORT,uint16x4:ie.UNSIGNED_SHORT,sint16x2:ie.SHORT,sint16x4:ie.SHORT,unorm16x2:ie.UNSIGNED_SHORT,unorm16x4:ie.UNSIGNED_SHORT,snorm16x2:ie.SHORT,snorm16x4:ie.SHORT,float16x2:ie.HALF_FLOAT,float16x4:ie.HALF_FLOAT,float32:ie.FLOAT,float32x2:ie.FLOAT,float32x3:ie.FLOAT,float32x4:ie.FLOAT,uint32:ie.UNSIGNED_INT,uint32x2:ie.UNSIGNED_INT,uint32x3:ie.UNSIGNED_INT,uint32x4:ie.UNSIGNED_INT,sint32:ie.INT,sint32x2:ie.INT,sint32x3:ie.INT,sint32x4:ie.INT}});var _R,Va,C1=p(()=>{B();qi();Dp();v1();_R={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5},Va=class{constructor(e){this._geometryVaoHash=Object.create(null),this._renderer=e,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0,this._renderer.renderableGC.addManagedHash(this,"_geometryVaoHash")}contextChange(){let e=this.gl=this._renderer.gl;if(!this._renderer.context.supports.vertexArrayObject)throw new Error("[PixiJS] Vertex Array Objects are not supported on this device");let t=this._renderer.context.extensions.vertexArrayObject;t&&(e.createVertexArray=()=>t.createVertexArrayOES(),e.bindVertexArray=s=>t.bindVertexArrayOES(s),e.deleteVertexArray=s=>t.deleteVertexArrayOES(s));let i=this._renderer.context.extensions.vertexAttribDivisorANGLE;i&&(e.drawArraysInstanced=(s,n,o,a)=>{i.drawArraysInstancedANGLE(s,n,o,a)},e.drawElementsInstanced=(s,n,o,a,c)=>{i.drawElementsInstancedANGLE(s,n,o,a,c)},e.vertexAttribDivisor=(s,n)=>i.vertexAttribDivisorANGLE(s,n)),this._activeGeometry=null,this._activeVao=null,this._geometryVaoHash=Object.create(null)}bind(e,t){let i=this.gl;this._activeGeometry=e;let s=this.getVao(e,t);this._activeVao!==s&&(this._activeVao=s,i.bindVertexArray(s)),this.updateBuffers()}resetState(){this.unbind()}updateBuffers(){let e=this._activeGeometry,t=this._renderer.buffer;for(let i=0;i<e.buffers.length;i++){let s=e.buffers[i];t.updateBuffer(s)}}checkCompatibility(e,t){let i=e.attributes,s=t._attributeData;for(let n in s)if(!i[n])throw new Error(`shader and geometry incompatible, geometry missing the "${n}" attribute`)}getSignature(e,t){let i=e.attributes,s=t._attributeData,n=["g",e.uid];for(let o in i)s[o]&&n.push(o,s[o].location);return n.join("-")}getVao(e,t){return this._geometryVaoHash[e.uid]?.[t._key]||this.initGeometryVao(e,t)}initGeometryVao(e,t,i=!0){let s=this._renderer.gl,n=this._renderer.buffer;this._renderer.shader._getProgramData(t),this.checkCompatibility(e,t);let o=this.getSignature(e,t);this._geometryVaoHash[e.uid]||(this._geometryVaoHash[e.uid]=Object.create(null),e.on("destroy",this.onGeometryDestroy,this));let a=this._geometryVaoHash[e.uid],c=a[o];if(c)return a[t._key]=c,c;Xl(e,t._attributeData);let u=e.buffers;c=s.createVertexArray(),s.bindVertexArray(c);for(let l=0;l<u.length;l++){let h=u[l];n.bind(h)}return this.activateVao(e,t),a[t._key]=c,a[o]=c,s.bindVertexArray(null),c}onGeometryDestroy(e,t){let i=this._geometryVaoHash[e.uid],s=this.gl;if(i){if(t)for(let n in i)this._activeVao!==i[n]&&this.unbind(),s.deleteVertexArray(i[n]);this._geometryVaoHash[e.uid]=null}}destroyAll(e=!1){let t=this.gl;for(let i in this._geometryVaoHash){if(e)for(let s in this._geometryVaoHash[i]){let n=this._geometryVaoHash[i];this._activeVao!==n&&this.unbind(),t.deleteVertexArray(n[s])}this._geometryVaoHash[i]=null}}activateVao(e,t){let i=this._renderer.gl,s=this._renderer.buffer,n=e.attributes;e.indexBuffer&&s.bind(e.indexBuffer);let o=null;for(let a in n){let c=n[a],u=c.buffer,l=s.getGlBuffer(u),h=t._attributeData[a];if(h){o!==l&&(s.bind(u),o=l);let f=h.location;i.enableVertexAttribArray(f);let d=ut(c.format),m=S1(c.format);if(h.format?.substring(1,4)==="int"?i.vertexAttribIPointer(f,d.size,m,c.stride,c.offset):i.vertexAttribPointer(f,d.size,m,d.normalised,c.stride,c.offset),c.instance)if(this.hasInstance){let x=c.divisor??1;i.vertexAttribDivisor(f,x)}else throw new Error("geometry error, GPU Instancing is not supported on this device")}}}draw(e,t,i,s){let{gl:n}=this._renderer,o=this._activeGeometry,a=_R[e||o.topology];if(s??(s=o.instanceCount),o.indexBuffer){let c=o.indexBuffer.data.BYTES_PER_ELEMENT,u=c===2?n.UNSIGNED_SHORT:n.UNSIGNED_INT;s>1?n.drawElementsInstanced(a,t||o.indexBuffer.data.length,u,(i||0)*c,s):n.drawElements(a,t||o.indexBuffer.data.length,u,(i||0)*c)}else s>1?n.drawArraysInstanced(a,i||0,t||o.getSize(),s):n.drawArrays(a,i||0,t||o.getSize());return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this._renderer=null,this.gl=null,this._activeVao=null,this._activeGeometry=null}};Va.extension={type:[b.WebGLSystem],name:"geometry"}});var bR,zp,k1,A1=p(()=>{B();pe();Os();Ot();Gt();tt();le();$i();bR=new At({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),zp=class E1{constructor(e){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=e}init(e={}){let{useBackBuffer:t,antialias:i}={...E1.defaultOptions,...e};this.useBackBuffer=t,this._antialias=i,this._renderer.context.supports.msaa||(N("antialiasing, is not supported on when using the back buffer"),this._antialias=!1),this._state=Pe.for2d();let s=new Pt({vertex:`
|
|
934
|
+
`})),t=this.device.createRenderPipeline({layout:"auto",vertex:{module:this.mipmapShaderModule,entryPoint:"vertexMain"},fragment:{module:this.mipmapShaderModule,entryPoint:"fragmentMain",targets:[{format:e}]}}),this.pipelines[e]=t),t}generateMipmap(e){let t=this._getMipmapPipeline(e.format);if(e.dimension==="3d"||e.dimension==="1d")throw new Error("Generating mipmaps for non-2d textures is currently unsupported!");let i=e,s=e.depthOrArrayLayers||1,n=e.usage&GPUTextureUsage.RENDER_ATTACHMENT;if(!n){let c={size:{width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:s},format:e.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT,mipLevelCount:e.mipLevelCount-1};i=this.device.createTexture(c)}let o=this.device.createCommandEncoder({}),a=t.getBindGroupLayout(0);for(let c=0;c<s;++c){let u=e.createView({baseMipLevel:0,mipLevelCount:1,dimension:"2d",baseArrayLayer:c,arrayLayerCount:1}),l=n?1:0;for(let h=1;h<e.mipLevelCount;++h){let f=i.createView({baseMipLevel:l++,mipLevelCount:1,dimension:"2d",baseArrayLayer:c,arrayLayerCount:1}),d=o.beginRenderPass({colorAttachments:[{view:f,storeOp:"store",loadOp:"clear",clearValue:{r:0,g:0,b:0,a:0}}]}),m=this.device.createBindGroup({layout:a,entries:[{binding:0,resource:this.sampler},{binding:1,resource:u}]});d.setPipeline(t),d.setBindGroup(0,m),d.draw(3,1,0,0),d.end(),u=f}}if(!n){let c={width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:s};for(let u=1;u<e.mipLevelCount;++u)o.copyTextureToTexture({texture:i,mipLevel:u-1},{texture:e,mipLevel:u},c),c.width=Math.ceil(c.width/2),c.height=Math.ceil(c.height/2)}return this.device.queue.submit([o.finish()]),n||i.destroy(),e}}});var da,US=p(()=>{ve();P();rt();Us();$r();BS();DS();Zm();IS();FS();da=class{constructor(e){this.managedTextures=[],this._gpuSources=Object.create(null),this._gpuSamplers=Object.create(null),this._bindGroupHash=Object.create(null),this._textureViewHash=Object.create(null),this._uploads={image:ml,buffer:PS,video:MS,compressed:RS},this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuSources"),e.renderableGC.addManagedHash(this,"_gpuSamplers"),e.renderableGC.addManagedHash(this,"_bindGroupHash"),e.renderableGC.addManagedHash(this,"_textureViewHash")}contextChange(e){this._gpu=e}initSource(e){if(e.autoGenerateMipmaps){let c=Math.max(e.pixelWidth,e.pixelHeight);e.mipLevelCount=Math.floor(Math.log2(c))+1}let t=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST;e.uploadMethodId!=="compressed"&&(t|=GPUTextureUsage.RENDER_ATTACHMENT,t|=GPUTextureUsage.COPY_SRC);let i=Qm[e.format]||{blockBytes:4,blockWidth:1,blockHeight:1},s=Math.ceil(e.pixelWidth/i.blockWidth)*i.blockWidth,n=Math.ceil(e.pixelHeight/i.blockHeight)*i.blockHeight,o={label:e.label,size:{width:s,height:n},format:e.format,sampleCount:e.sampleCount,mipLevelCount:e.mipLevelCount,dimension:e.dimension,usage:t},a=this._gpu.device.createTexture(o);return this._gpuSources[e.uid]=a,this.managedTextures.includes(e)||(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceResize,this),e.on("destroy",this.onSourceDestroy,this),e.on("unload",this.onSourceUnload,this),e.on("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.push(e)),this.onSourceUpdate(e),a}onSourceUpdate(e){let t=this.getGpuSource(e);t&&(this._uploads[e.uploadMethodId]&&this._uploads[e.uploadMethodId].upload(e,t,this._gpu),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e))}onSourceUnload(e){let t=this._gpuSources[e.uid];t&&(this._gpuSources[e.uid]=null,t.destroy())}onUpdateMipmaps(e){this._mipmapGenerator||(this._mipmapGenerator=new pl(this._gpu.device));let t=this.getGpuSource(e);this._mipmapGenerator.generateMipmap(t)}onSourceDestroy(e){e.off("update",this.onSourceUpdate,this),e.off("unload",this.onSourceUnload,this),e.off("destroy",this.onSourceDestroy,this),e.off("resize",this.onSourceResize,this),e.off("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.splice(this.managedTextures.indexOf(e),1),this.onSourceUnload(e)}onSourceResize(e){let t=this._gpuSources[e.uid];t?(t.width!==e.pixelWidth||t.height!==e.pixelHeight)&&(this._textureViewHash[e.uid]=null,this._bindGroupHash[e.uid]=null,this.onSourceUnload(e),this.initSource(e)):this.initSource(e)}_initSampler(e){return this._gpuSamplers[e._resourceId]=this._gpu.device.createSampler(e),this._gpuSamplers[e._resourceId]}getGpuSampler(e){return this._gpuSamplers[e._resourceId]||this._initSampler(e)}getGpuSource(e){return this._gpuSources[e.uid]||this.initSource(e)}getTextureBindGroup(e){return this._bindGroupHash[e.uid]??this._createTextureBindGroup(e)}_createTextureBindGroup(e){let t=e.source;return this._bindGroupHash[e.uid]=new Ne({0:t,1:t.style,2:new ce({uTextureMatrix:{type:"mat3x3<f32>",value:e.textureMatrix.mapCoord}})}),this._bindGroupHash[e.uid]}getTextureView(e){let t=e.source;return this._textureViewHash[t.uid]??this._createTextureView(t)}_createTextureView(e){return this._textureViewHash[e.uid]=this.getGpuSource(e).createView(),this._textureViewHash[e.uid]}generateCanvas(e){let t=this._renderer,i=t.gpu.device.createCommandEncoder(),s=W.get().createCanvas();s.width=e.source.pixelWidth,s.height=e.source.pixelHeight;let n=s.getContext("webgpu");return n.configure({device:t.gpu.device,usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC,format:W.get().getNavigator().gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),i.copyTextureToTexture({texture:t.texture.getGpuSource(e.source),origin:{x:0,y:0}},{texture:n.getCurrentTexture()},{width:s.width,height:s.height}),t.gpu.device.queue.submit([i.finish()]),s}getPixels(e){let t=this.generateCanvas(e),i=bt.getOptimalCanvasAndContext(t.width,t.height),s=i.context;s.drawImage(t,0,0);let{width:n,height:o}=t,a=s.getImageData(0,0,n,o),c=new Uint8ClampedArray(a.data.buffer);return bt.returnCanvasAndContext(i),{pixels:c,width:n,height:o}}destroy(){this.managedTextures.slice().forEach(e=>this.onSourceDestroy(e)),this.managedTextures=null;for(let e of Object.keys(this._bindGroupHash)){let t=Number(e);this._bindGroupHash[t]?.destroy(),this._bindGroupHash[t]=null}this._gpu=null,this._mipmapGenerator=null,this._gpuSources=null,this._bindGroupHash=null,this._textureViewHash=null,this._gpuSamplers=null}};da.extension={type:[b.WebGPUSystem],name:"texture"}});var LS={};yg(LS,{WebGPURenderer:()=>Jm});var LP,zP,VP,OS,GS,NS,Jm,zS=p(()=>{P();ew();iw();sw();Do();zm();Jt();rS();iS();sS();nS();oS();aS();cS();pS();xS();_S();CS();ES();AS();US();LP=[...ol,oa,ra,js,ia,ea,da,ua,la,ha,ca,ta,sa,Jo],zP=[...al,aa],VP=[Fo,Io,Mo],OS=[],GS=[],NS=[];O.handleByNamedList(b.WebGPUSystem,OS);O.handleByNamedList(b.WebGPUPipes,GS);O.handleByNamedList(b.WebGPUPipesAdaptor,NS);O.add(...LP,...zP,...VP);Jm=class extends Zr{constructor(){let e={name:"webgpu",type:Me.WEBGPU,systems:OS,renderPipes:GS,renderPipeAdaptors:NS};super(e)}}});var fa,VS=p(()=>{P();ee();Xr();oo();ao();Vs();Yr();pu();Ut();rt();fa=class{contextChange(e){let t=new ce({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uRound:{value:0,type:"f32"}}),i=e.limits.maxBatchableTextures,s=Kt({name:"graphics",bits:[Ts,Ss(i),zs,Zt]});this.shader=new Ee({glProgram:s,resources:{localUniforms:t,batchSamplers:vs(i)}})}execute(e,t){let i=t.context,s=i.customShader||this.shader,n=e.renderer,o=n.graphicsContext,{batcher:a,instructions:c}=o.getContextRenderData(i);s.groups[0]=n.globalUniforms.bindGroup,n.state.set(e.state),n.shader.bind(s),n.geometry.bind(a.geometry,s.glProgram);let u=c.instructions;for(let l=0;l<c.instructionSize;l++){let h=u[l];if(h.size){for(let f=0;f<h.textures.count;f++)n.texture.bind(h.textures.textures[f],f);n.geometry.draw(h.topology,h.size,h.start)}}}destroy(){this.shader.destroy(!0),this.shader=null}};fa.extension={type:[b.WebGLPipesAdaptor],name:"graphics"}});var ma,HS=p(()=>{P();ee();Xr();Vs();Yr();Sm();Ut();le();ge();ma=class{init(){let e=Kt({name:"mesh",bits:[zs,rw,Zt]});this._shader=new Ee({glProgram:e,resources:{uTexture:D.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new R}}}})}execute(e,t){let i=e.renderer,s=t._shader;if(s){if(!s.glProgram){G("Mesh shader has no glProgram",t.shader);return}}else{s=this._shader;let n=t.texture,o=n.source;s.resources.uTexture=o,s.resources.uSampler=o.style,s.resources.textureUniforms.uniforms.uTextureMatrix=n.textureMatrix.mapCoord}s.groups[100]=i.globalUniforms.bindGroup,s.groups[101]=e.localUniformsBindGroup,i.encoder.draw({geometry:t._geometry,shader:s,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}};ma.extension={type:[b.WebGLPipesAdaptor],name:"mesh"}});var pa,WS=p(()=>{P();Ot();pa=class{constructor(){this._tempState=Ae.for2d(),this._didUploadHash={}}init(e){e.renderer.runners.contextChange.add(this)}contextChange(){this._didUploadHash={}}start(e,t,i){let s=e.renderer,n=this._didUploadHash[i.uid];s.shader.bind(i,n),n||(this._didUploadHash[i.uid]=!0),s.shader.updateUniformGroup(s.globalUniforms.uniformGroup),s.geometry.bind(t,i.glProgram)}execute(e,t){let i=e.renderer;this._tempState.blendMode=t.blendMode,i.state.set(this._tempState);let s=t.textures.textures;for(let n=0;n<t.textures.count;n++)i.texture.bind(s[n],n);i.geometry.draw(t.topology,t.size,t.start)}};pa.extension={type:[b.WebGLPipesAdaptor],name:"batch"}});var ga,$S=p(()=>{"use strict";ga=(r=>(r[r.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",r[r.ARRAY_BUFFER=34962]="ARRAY_BUFFER",r[r.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",r))(ga||{})});var gl,qS=p(()=>{"use strict";gl=class{constructor(e,t){this._lastBindBaseLocation=-1,this._lastBindCallId=-1,this.buffer=e||null,this.updateID=-1,this.byteLength=-1,this.type=t}}});var xa,jS=p(()=>{P();wr();$S();qS();xa=class{constructor(e){this._gpuBuffers=Object.create(null),this._boundBufferBases=Object.create(null),this._minBaseLocation=0,this._nextBindBaseIndex=this._minBaseLocation,this._bindCallId=0,this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_gpuBuffers")}destroy(){this._renderer=null,this._gl=null,this._gpuBuffers=null,this._boundBufferBases=null}contextChange(){this._gl=this._renderer.gl,this._gpuBuffers=Object.create(null),this._maxBindings=this._renderer.limits.maxUniformBindings}getGlBuffer(e){return this._gpuBuffers[e.uid]||this.createGLBuffer(e)}bind(e){let{_gl:t}=this,i=this.getGlBuffer(e);t.bindBuffer(i.type,i.buffer)}bindBufferBase(e,t){let{_gl:i}=this;this._boundBufferBases[t]!==e&&(this._boundBufferBases[t]=e,e._lastBindBaseLocation=t,i.bindBufferBase(i.UNIFORM_BUFFER,t,e.buffer))}nextBindBase(e){this._bindCallId++,this._minBaseLocation=0,e&&(this._boundBufferBases[0]=null,this._minBaseLocation=1,this._nextBindBaseIndex<1&&(this._nextBindBaseIndex=1))}freeLocationForBufferBase(e){let t=this.getLastBindBaseLocation(e);if(t>=this._minBaseLocation)return e._lastBindCallId=this._bindCallId,t;let i=0,s=this._nextBindBaseIndex;for(;i<2;){s>=this._maxBindings&&(s=this._minBaseLocation,i++);let n=this._boundBufferBases[s];if(n&&n._lastBindCallId===this._bindCallId){s++;continue}break}return t=s,this._nextBindBaseIndex=s+1,i>=2?-1:(e._lastBindCallId=this._bindCallId,this._boundBufferBases[t]=null,t)}getLastBindBaseLocation(e){let t=e._lastBindBaseLocation;return this._boundBufferBases[t]===e?t:-1}bindBufferRange(e,t,i,s){let{_gl:n}=this;i||(i=0),t||(t=0),this._boundBufferBases[t]=null,n.bindBufferRange(n.UNIFORM_BUFFER,t||0,e.buffer,i*256,s||256)}updateBuffer(e){let{_gl:t}=this,i=this.getGlBuffer(e);if(e._updateID===i.updateID)return i;i.updateID=e._updateID,t.bindBuffer(i.type,i.buffer);let s=e.data,n=e.descriptor.usage&Q.STATIC?t.STATIC_DRAW:t.DYNAMIC_DRAW;return s?i.byteLength>=s.byteLength?t.bufferSubData(i.type,0,s,0,e._updateSize/s.BYTES_PER_ELEMENT):(i.byteLength=s.byteLength,t.bufferData(i.type,s,n)):(i.byteLength=e.descriptor.size,t.bufferData(i.type,i.byteLength,n)),i}destroyAll(){let e=this._gl;for(let t in this._gpuBuffers)e.deleteBuffer(this._gpuBuffers[t].buffer);this._gpuBuffers=Object.create(null)}onBufferDestroy(e,t){let i=this._gpuBuffers[e.uid],s=this._gl;t||s.deleteBuffer(i.buffer),this._gpuBuffers[e.uid]=null}createGLBuffer(e){let{_gl:t}=this,i=ga.ARRAY_BUFFER;e.descriptor.usage&Q.INDEX?i=ga.ELEMENT_ARRAY_BUFFER:e.descriptor.usage&Q.UNIFORM&&(i=ga.UNIFORM_BUFFER);let s=new gl(t.createBuffer(),i);return this._gpuBuffers[e.uid]=s,e.on("destroy",this.onBufferDestroy,this),s}resetState(){this._boundBufferBases=Object.create(null)}};xa.extension={type:[b.WebGLSystem],name:"buffer"}});var ep,YS,KS=p(()=>{ve();P();ge();ep=class XS{constructor(e){this.supports={uint32Indices:!0,uniformBufferObject:!0,vertexArrayObject:!0,srgbTextures:!0,nonPowOf2wrapping:!0,msaa:!0,nonPowOf2mipmaps:!0},this._renderer=e,this.extensions=Object.create(null),this.handleContextLost=this.handleContextLost.bind(this),this.handleContextRestored=this.handleContextRestored.bind(this)}get isLost(){return!this.gl||this.gl.isContextLost()}contextChange(e){this.gl=e,this._renderer.gl=e}init(e){e={...XS.defaultOptions,...e};let t=this.multiView=e.multiView;if(e.context&&t&&(G("Renderer created with both a context and multiview enabled. Disabling multiView as both cannot work together."),t=!1),t?this.canvas=W.get().createCanvas(this._renderer.canvas.width,this._renderer.canvas.height):this.canvas=this._renderer.view.canvas,e.context)this.initFromContext(e.context);else{let i=this._renderer.background.alpha<1,s=e.premultipliedAlpha??!0,n=e.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(e.preferWebGLVersion,{alpha:i,premultipliedAlpha:s,antialias:n,stencil:!0,preserveDrawingBuffer:e.preserveDrawingBuffer,powerPreference:e.powerPreference??"default"})}}ensureCanvasSize(e){if(!this.multiView){e!==this.canvas&&G("multiView is disabled, but targetCanvas is not the main canvas");return}let{canvas:t}=this;(t.width<e.width||t.height<e.height)&&(t.width=Math.max(e.width,e.width),t.height=Math.max(e.height,e.height))}initFromContext(e){this.gl=e,this.webGLVersion=e instanceof W.get().getWebGLRenderingContext()?1:2,this.getExtensions(),this.validateContext(e),this._renderer.runners.contextChange.emit(e);let t=this._renderer.view.canvas;t.addEventListener("webglcontextlost",this.handleContextLost,!1),t.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(e,t){let i,s=this.canvas;if(e===2&&(i=s.getContext("webgl2",t)),!i&&(i=s.getContext("webgl",t),!i))throw new Error("This browser does not support WebGL. Try using the canvas renderer");this.gl=i,this.initFromContext(this.gl)}getExtensions(){let{gl:e}=this,t={anisotropicFiltering:e.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),s3tc:e.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:e.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:e.getExtension("WEBGL_compressed_texture_etc"),etc1:e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:e.getExtension("WEBGL_compressed_texture_atc"),astc:e.getExtension("WEBGL_compressed_texture_astc"),bptc:e.getExtension("EXT_texture_compression_bptc"),rgtc:e.getExtension("EXT_texture_compression_rgtc"),loseContext:e.getExtension("WEBGL_lose_context")};if(this.webGLVersion===1)this.extensions={...t,drawBuffers:e.getExtension("WEBGL_draw_buffers"),depthTexture:e.getExtension("WEBGL_depth_texture"),vertexArrayObject:e.getExtension("OES_vertex_array_object")||e.getExtension("MOZ_OES_vertex_array_object")||e.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:e.getExtension("OES_element_index_uint"),floatTexture:e.getExtension("OES_texture_float"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),textureHalfFloat:e.getExtension("OES_texture_half_float"),textureHalfFloatLinear:e.getExtension("OES_texture_half_float_linear"),vertexAttribDivisorANGLE:e.getExtension("ANGLE_instanced_arrays"),srgb:e.getExtension("EXT_sRGB")};else{this.extensions={...t,colorBufferFloat:e.getExtension("EXT_color_buffer_float")};let i=e.getExtension("WEBGL_provoking_vertex");i&&i.provokingVertexWEBGL(i.FIRST_VERTEX_CONVENTION_WEBGL)}}handleContextLost(e){e.preventDefault(),this._contextLossForced&&(this._contextLossForced=!1,setTimeout(()=>{this.gl.isContextLost()&&this.extensions.loseContext?.restoreContext()},0))}handleContextRestored(){this.getExtensions(),this._renderer.runners.contextChange.emit(this.gl)}destroy(){let e=this._renderer.view.canvas;this._renderer=null,e.removeEventListener("webglcontextlost",this.handleContextLost),e.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext?.loseContext()}forceContextLoss(){this.extensions.loseContext?.loseContext(),this._contextLossForced=!0}validateContext(e){let t=e.getContextAttributes();t&&!t.stencil&&G("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let i=this.supports,s=this.webGLVersion===2,n=this.extensions;i.uint32Indices=s||!!n.uint32ElementIndex,i.uniformBufferObject=s,i.vertexArrayObject=s||!!n.vertexArrayObject,i.srgbTextures=s||!!n.srgb,i.nonPowOf2wrapping=s,i.nonPowOf2mipmaps=s,i.msaa=s,i.uint32Indices||G("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};ep.extension={type:[b.WebGLSystem],name:"context"};ep.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2,multiView:!1};YS=ep});var xl,tp,re,rp=p(()=>{"use strict";xl=(r=>(r[r.RGBA=6408]="RGBA",r[r.RGB=6407]="RGB",r[r.RG=33319]="RG",r[r.RED=6403]="RED",r[r.RGBA_INTEGER=36249]="RGBA_INTEGER",r[r.RGB_INTEGER=36248]="RGB_INTEGER",r[r.RG_INTEGER=33320]="RG_INTEGER",r[r.RED_INTEGER=36244]="RED_INTEGER",r[r.ALPHA=6406]="ALPHA",r[r.LUMINANCE=6409]="LUMINANCE",r[r.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",r[r.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",r[r.DEPTH_STENCIL=34041]="DEPTH_STENCIL",r))(xl||{}),tp=(r=>(r[r.TEXTURE_2D=3553]="TEXTURE_2D",r[r.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",r[r.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",r[r.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",r[r.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",r[r.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",r[r.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",r[r.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",r[r.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",r))(tp||{}),re=(r=>(r[r.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",r[r.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",r[r.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",r[r.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",r[r.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",r[r.UNSIGNED_INT=5125]="UNSIGNED_INT",r[r.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",r[r.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",r[r.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",r[r.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",r[r.BYTE=5120]="BYTE",r[r.SHORT=5122]="SHORT",r[r.INT=5124]="INT",r[r.FLOAT=5126]="FLOAT",r[r.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",r[r.HALF_FLOAT=36193]="HALF_FLOAT",r))(re||{})});function ZS(r){return QS[r]??QS.float32}var QS,JS=p(()=>{rp();QS={uint8x2:re.UNSIGNED_BYTE,uint8x4:re.UNSIGNED_BYTE,sint8x2:re.BYTE,sint8x4:re.BYTE,unorm8x2:re.UNSIGNED_BYTE,unorm8x4:re.UNSIGNED_BYTE,snorm8x2:re.BYTE,snorm8x4:re.BYTE,uint16x2:re.UNSIGNED_SHORT,uint16x4:re.UNSIGNED_SHORT,sint16x2:re.SHORT,sint16x4:re.SHORT,unorm16x2:re.UNSIGNED_SHORT,unorm16x4:re.UNSIGNED_SHORT,snorm16x2:re.SHORT,snorm16x4:re.SHORT,float16x2:re.HALF_FLOAT,float16x4:re.HALF_FLOAT,float32:re.FLOAT,float32x2:re.FLOAT,float32x3:re.FLOAT,float32x4:re.FLOAT,uint32:re.UNSIGNED_INT,uint32x2:re.UNSIGNED_INT,uint32x3:re.UNSIGNED_INT,uint32x4:re.UNSIGNED_INT,sint32:re.INT,sint32x2:re.INT,sint32x3:re.INT,sint32x4:re.INT}});var HP,_a,ev=p(()=>{P();Pi();Xm();JS();HP={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5},_a=class{constructor(e){this._geometryVaoHash=Object.create(null),this._renderer=e,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0,this._renderer.renderableGC.addManagedHash(this,"_geometryVaoHash")}contextChange(){let e=this.gl=this._renderer.gl;if(!this._renderer.context.supports.vertexArrayObject)throw new Error("[PixiJS] Vertex Array Objects are not supported on this device");let t=this._renderer.context.extensions.vertexArrayObject;t&&(e.createVertexArray=()=>t.createVertexArrayOES(),e.bindVertexArray=s=>t.bindVertexArrayOES(s),e.deleteVertexArray=s=>t.deleteVertexArrayOES(s));let i=this._renderer.context.extensions.vertexAttribDivisorANGLE;i&&(e.drawArraysInstanced=(s,n,o,a)=>{i.drawArraysInstancedANGLE(s,n,o,a)},e.drawElementsInstanced=(s,n,o,a,c)=>{i.drawElementsInstancedANGLE(s,n,o,a,c)},e.vertexAttribDivisor=(s,n)=>i.vertexAttribDivisorANGLE(s,n)),this._activeGeometry=null,this._activeVao=null,this._geometryVaoHash=Object.create(null)}bind(e,t){let i=this.gl;this._activeGeometry=e;let s=this.getVao(e,t);this._activeVao!==s&&(this._activeVao=s,i.bindVertexArray(s)),this.updateBuffers()}resetState(){this.unbind()}updateBuffers(){let e=this._activeGeometry,t=this._renderer.buffer;for(let i=0;i<e.buffers.length;i++){let s=e.buffers[i];t.updateBuffer(s)}}checkCompatibility(e,t){let i=e.attributes,s=t._attributeData;for(let n in s)if(!i[n])throw new Error(`shader and geometry incompatible, geometry missing the "${n}" attribute`)}getSignature(e,t){let i=e.attributes,s=t._attributeData,n=["g",e.uid];for(let o in i)s[o]&&n.push(o,s[o].location);return n.join("-")}getVao(e,t){return this._geometryVaoHash[e.uid]?.[t._key]||this.initGeometryVao(e,t)}initGeometryVao(e,t,i=!0){let s=this._renderer.gl,n=this._renderer.buffer;this._renderer.shader._getProgramData(t),this.checkCompatibility(e,t);let o=this.getSignature(e,t);this._geometryVaoHash[e.uid]||(this._geometryVaoHash[e.uid]=Object.create(null),e.on("destroy",this.onGeometryDestroy,this));let a=this._geometryVaoHash[e.uid],c=a[o];if(c)return a[t._key]=c,c;hl(e,t._attributeData);let u=e.buffers;c=s.createVertexArray(),s.bindVertexArray(c);for(let l=0;l<u.length;l++){let h=u[l];n.bind(h)}return this.activateVao(e,t),a[t._key]=c,a[o]=c,s.bindVertexArray(null),c}onGeometryDestroy(e,t){let i=this._geometryVaoHash[e.uid],s=this.gl;if(i){if(t)for(let n in i)this._activeVao!==i[n]&&this.unbind(),s.deleteVertexArray(i[n]);this._geometryVaoHash[e.uid]=null}}destroyAll(e=!1){let t=this.gl;for(let i in this._geometryVaoHash){if(e)for(let s in this._geometryVaoHash[i]){let n=this._geometryVaoHash[i];this._activeVao!==n&&this.unbind(),t.deleteVertexArray(n[s])}this._geometryVaoHash[i]=null}}activateVao(e,t){let i=this._renderer.gl,s=this._renderer.buffer,n=e.attributes;e.indexBuffer&&s.bind(e.indexBuffer);let o=null;for(let a in n){let c=n[a],u=c.buffer,l=s.getGlBuffer(u),h=t._attributeData[a];if(h){o!==l&&(s.bind(u),o=l);let f=h.location;i.enableVertexAttribArray(f);let d=ct(c.format),m=ZS(c.format);if(h.format?.substring(1,4)==="int"?i.vertexAttribIPointer(f,d.size,m,c.stride,c.offset):i.vertexAttribPointer(f,d.size,m,d.normalised,c.stride,c.offset),c.instance)if(this.hasInstance){let x=c.divisor??1;i.vertexAttribDivisor(f,x)}else throw new Error("geometry error, GPU Instancing is not supported on this device")}}}draw(e,t,i,s){let{gl:n}=this._renderer,o=this._activeGeometry,a=HP[e||o.topology];if(s??(s=o.instanceCount),o.indexBuffer){let c=o.indexBuffer.data.BYTES_PER_ELEMENT,u=c===2?n.UNSIGNED_SHORT:n.UNSIGNED_INT;s>1?n.drawElementsInstanced(a,t||o.indexBuffer.data.length,u,(i||0)*c,s):n.drawElements(a,t||o.indexBuffer.data.length,u,(i||0)*c)}else s>1?n.drawArraysInstanced(a,i||0,t||o.getSize(),s):n.drawArrays(a,i||0,t||o.getSize());return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this._renderer=null,this.gl=null,this._activeVao=null,this._activeGeometry=null}};_a.extension={type:[b.WebGLSystem],name:"geometry"}});var WP,ip,rv,iv=p(()=>{P();ge();xs();Ut();Ot();et();le();Ai();WP=new vt({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),ip=class tv{constructor(e){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=e}init(e={}){let{useBackBuffer:t,antialias:i}={...tv.defaultOptions,...e};this.useBackBuffer=t,this._antialias=i,this._renderer.context.supports.msaa||(G("antialiasing, is not supported on when using the back buffer"),this._antialias=!1),this._state=Ae.for2d();let s=new Ct({vertex:`
|
|
935
935
|
attribute vec2 aPosition;
|
|
936
936
|
out vec2 vUv;
|
|
937
937
|
|
|
@@ -950,7 +950,7 @@ fn mainFragment(
|
|
|
950
950
|
|
|
951
951
|
void main() {
|
|
952
952
|
finalColor = texture(uTexture, vUv);
|
|
953
|
-
}`,name:"big-triangle"});this._bigTriangleShader=new
|
|
953
|
+
}`,name:"big-triangle"});this._bigTriangleShader=new Ee({glProgram:s,resources:{uTexture:D.WHITE.source}})}renderStart(e){let t=this._renderer.renderTarget.getRenderTarget(e.target);if(this._useBackBufferThisRender=this.useBackBuffer&&!!t.isRoot,this._useBackBufferThisRender){let i=this._renderer.renderTarget.getRenderTarget(e.target);this._targetTexture=i.colorTexture,e.target=this._getBackBufferTexture(i.colorTexture)}}renderEnd(){this._presentBackBuffer()}_presentBackBuffer(){let e=this._renderer;e.renderTarget.finishRenderPass(),this._useBackBufferThisRender&&(e.renderTarget.bind(this._targetTexture,!1),this._bigTriangleShader.resources.uTexture=this._backBufferTexture.source,e.encoder.draw({geometry:WP,shader:this._bigTriangleShader,state:this._state}))}_getBackBufferTexture(e){return this._backBufferTexture=this._backBufferTexture||new D({source:new se({width:e.width,height:e.height,resolution:e._resolution,antialias:this._antialias})}),this._backBufferTexture.source.resize(e.width,e.height,e._resolution),this._backBufferTexture}destroy(){this._backBufferTexture&&(this._backBufferTexture.destroy(),this._backBufferTexture=null)}};ip.extension={type:[b.WebGLSystem],name:"backBuffer",priority:1};ip.defaultOptions={useBackBuffer:!1};rv=ip});var ba,sv=p(()=>{P();ba=class{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.gl.colorMask(!!(e&8),!!(e&4),!!(e&2),!!(e&1)))}};ba.extension={type:[b.WebGLSystem],name:"colorMask"}});var ya,nv=p(()=>{P();ya=class{constructor(e){this.commandFinished=Promise.resolve(),this._renderer=e}setGeometry(e,t){this._renderer.geometry.bind(e,t.glProgram)}finishRenderPass(){}draw(e){let t=this._renderer,{geometry:i,shader:s,state:n,skipSync:o,topology:a,size:c,start:u,instanceCount:l}=e;t.shader.bind(s,o),t.geometry.bind(i,t.shader._activeProgram),n&&t.state.set(n),t.geometry.draw(a,c,u,l??i.instanceCount)}destroy(){this._renderer=null}};ya.extension={type:[b.WebGLSystem],name:"encoder"}});var Ta,ov=p(()=>{P();Ld();Ta=class{constructor(e){this._renderer=e}contextChange(){let e=this._renderer.gl;this.maxTextures=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),this.maxBatchableTextures=lu(this.maxTextures,e),this.maxUniformBindings=e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS)}destroy(){}};Ta.extension={type:[b.WebGLSystem],name:"limits"}});var wa,av=p(()=>{P();Ym();ki();wa=class{constructor(e){this._stencilCache={enabled:!1,stencilReference:0,stencilMode:me.NONE},this._renderTargetStencilState=Object.create(null),e.renderTarget.onRenderTargetChange.add(this)}contextChange(e){this._gl=e,this._comparisonFuncMapping={always:e.ALWAYS,never:e.NEVER,equal:e.EQUAL,"not-equal":e.NOTEQUAL,less:e.LESS,"less-equal":e.LEQUAL,greater:e.GREATER,"greater-equal":e.GEQUAL},this._stencilOpsMapping={keep:e.KEEP,zero:e.ZERO,replace:e.REPLACE,invert:e.INVERT,"increment-clamp":e.INCR,"decrement-clamp":e.DECR,"increment-wrap":e.INCR_WRAP,"decrement-wrap":e.DECR_WRAP},this.resetState()}onRenderTargetChange(e){if(this._activeRenderTarget===e)return;this._activeRenderTarget=e;let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:me.DISABLED,stencilReference:0}),this.setStencilMode(t.stencilMode,t.stencilReference)}resetState(){this._stencilCache.enabled=!1,this._stencilCache.stencilMode=me.NONE,this._stencilCache.stencilReference=0}setStencilMode(e,t){let i=this._renderTargetStencilState[this._activeRenderTarget.uid],s=this._gl,n=sr[e],o=this._stencilCache;if(i.stencilMode=e,i.stencilReference=t,e===me.DISABLED){this._stencilCache.enabled&&(this._stencilCache.enabled=!1,s.disable(s.STENCIL_TEST));return}this._stencilCache.enabled||(this._stencilCache.enabled=!0,s.enable(s.STENCIL_TEST)),(e!==o.stencilMode||o.stencilReference!==t)&&(o.stencilMode=e,o.stencilReference=t,s.stencilFunc(this._comparisonFuncMapping[n.stencilBack.compare],t,255),s.stencilOp(s.KEEP,s.KEEP,this._stencilOpsMapping[n.stencilBack.passOp]))}};wa.extension={type:[b.WebGLSystem],name:"stencil"}});function cv(r){let e=r.map(n=>({data:n,offset:0,size:0})),t=16,i=0,s=0;for(let n=0;n<e.length;n++){let o=e[n];if(i=sp[o.data.type],!i)throw new Error(`Unknown type ${o.data.type}`);o.data.size>1&&(i=Math.max(i,t)*o.data.size);let a=i===12?16:i;o.size=i;let c=s%t;c>0&&t-c<a?s+=(t-c)%16:s+=(i-c%i)%i,o.offset=s,s+=i}return s=Math.ceil(s/16)*16,{uboElements:e,size:s}}var sp,np=p(()=>{"use strict";sp={f32:4,i32:4,"vec2<f32>":8,"vec3<f32>":12,"vec4<f32>":16,"vec2<i32>":8,"vec3<i32>":12,"vec4<i32>":16,"mat2x2<f32>":32,"mat3x3<f32>":48,"mat4x4<f32>":64}});function uv(r,e){let t=Math.max(sp[r.data.type]/16,1),i=r.data.value.length/r.data.size,s=(4-i%4)%4,n=r.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
|
|
954
954
|
v = uv.${r.data.name};
|
|
955
955
|
offset += ${e};
|
|
956
956
|
|
|
@@ -966,7 +966,7 @@ fn mainFragment(
|
|
|
966
966
|
}
|
|
967
967
|
${s!==0?`arrayOffset += ${s};`:""}
|
|
968
968
|
}
|
|
969
|
-
`}var
|
|
969
|
+
`}var lv=p(()=>{np()});function hv(r){return cl(r,"uboStd40",uv,qm)}var dv=p(()=>{$m();jm();lv()});var Sa,fv=p(()=>{P();Vm();np();dv();Sa=class extends Xs{constructor(){super({createUboElements:cv,generateUboSync:hv})}};Sa.extension={type:[b.WebGLSystem],name:"ubo"}});var _l,mv=p(()=>{"use strict";_l=class{constructor(){this.width=-1,this.height=-1,this.msaa=!1,this.msaaRenderBuffer=[]}}});var bl,pv=p(()=>{Ge();ge();ms();Hs();mv();bl=class{constructor(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new Y}init(e,t){this._renderer=e,this._renderTargetSystem=t,e.runners.contextChange.add(this)}contextChange(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new Y}copyToTexture(e,t,i,s,n){let o=this._renderTargetSystem,a=this._renderer,c=o.getGpuRenderTarget(e),u=a.gl;return this.finishRenderPass(e),u.bindFramebuffer(u.FRAMEBUFFER,c.resolveTargetFramebuffer),a.texture.bind(t,0),u.copyTexSubImage2D(u.TEXTURE_2D,0,n.x,n.y,i.x,i.y,s.width,s.height),t}startRenderPass(e,t=!0,i,s){let n=this._renderTargetSystem,o=e.colorTexture,a=n.getGpuRenderTarget(e),c=s.y;e.isRoot&&(c=o.pixelHeight-s.height),e.colorTextures.forEach(h=>{this._renderer.texture.unbind(h)});let u=this._renderer.gl;u.bindFramebuffer(u.FRAMEBUFFER,a.framebuffer);let l=this._viewPortCache;(l.x!==s.x||l.y!==c||l.width!==s.width||l.height!==s.height)&&(l.x=s.x,l.y=c,l.width=s.width,l.height=s.height,u.viewport(s.x,c,s.width,s.height)),!a.depthStencilRenderBuffer&&(e.stencil||e.depth)&&this._initStencil(a),this.clear(e,t,i)}finishRenderPass(e){let i=this._renderTargetSystem.getGpuRenderTarget(e);if(!i.msaa)return;let s=this._renderer.gl;s.bindFramebuffer(s.FRAMEBUFFER,i.resolveTargetFramebuffer),s.bindFramebuffer(s.READ_FRAMEBUFFER,i.framebuffer),s.blitFramebuffer(0,0,i.width,i.height,0,0,i.width,i.height,s.COLOR_BUFFER_BIT,s.NEAREST),s.bindFramebuffer(s.FRAMEBUFFER,i.framebuffer)}initGpuRenderTarget(e){let i=this._renderer.gl,s=new _l;return e.colorTexture instanceof je?(this._renderer.context.ensureCanvasSize(e.colorTexture.resource),s.framebuffer=null,s):(this._initColor(e,s),i.bindFramebuffer(i.FRAMEBUFFER,null),s)}destroyGpuRenderTarget(e){let t=this._renderer.gl;e.framebuffer&&(t.deleteFramebuffer(e.framebuffer),e.framebuffer=null),e.resolveTargetFramebuffer&&(t.deleteFramebuffer(e.resolveTargetFramebuffer),e.resolveTargetFramebuffer=null),e.depthStencilRenderBuffer&&(t.deleteRenderbuffer(e.depthStencilRenderBuffer),e.depthStencilRenderBuffer=null),e.msaaRenderBuffer.forEach(i=>{t.deleteRenderbuffer(i)}),e.msaaRenderBuffer=null}clear(e,t,i){if(!t)return;let s=this._renderTargetSystem;typeof t=="boolean"&&(t=t?Le.ALL:Le.NONE);let n=this._renderer.gl;if(t&Le.COLOR){i??(i=s.defaultClearColor);let o=this._clearColorCache,a=i;(o[0]!==a[0]||o[1]!==a[1]||o[2]!==a[2]||o[3]!==a[3])&&(o[0]=a[0],o[1]=a[1],o[2]=a[2],o[3]=a[3],n.clearColor(a[0],a[1],a[2],a[3]))}n.clear(t)}resizeGpuRenderTarget(e){if(e.isRoot)return;let i=this._renderTargetSystem.getGpuRenderTarget(e);this._resizeColor(e,i),(e.stencil||e.depth)&&this._resizeStencil(i)}_initColor(e,t){let i=this._renderer,s=i.gl,n=s.createFramebuffer();if(t.resolveTargetFramebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),t.width=e.colorTexture.source.pixelWidth,t.height=e.colorTexture.source.pixelHeight,e.colorTextures.forEach((o,a)=>{let c=o.source;c.antialias&&(i.context.supports.msaa?t.msaa=!0:G("[RenderTexture] Antialiasing on textures is not supported in WebGL1")),i.texture.bindSource(c,0);let l=i.texture.getGlSource(c).texture;s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+a,3553,l,0)}),t.msaa){let o=s.createFramebuffer();t.framebuffer=o,s.bindFramebuffer(s.FRAMEBUFFER,o),e.colorTextures.forEach((a,c)=>{let u=s.createRenderbuffer();t.msaaRenderBuffer[c]=u})}else t.framebuffer=n;this._resizeColor(e,t)}_resizeColor(e,t){let i=e.colorTexture.source;if(t.width=i.pixelWidth,t.height=i.pixelHeight,e.colorTextures.forEach((s,n)=>{n!==0&&s.source.resize(i.width,i.height,i._resolution)}),t.msaa){let s=this._renderer,n=s.gl,o=t.framebuffer;n.bindFramebuffer(n.FRAMEBUFFER,o),e.colorTextures.forEach((a,c)=>{let u=a.source;s.texture.bindSource(u,0);let h=s.texture.getGlSource(u).internalFormat,f=t.msaaRenderBuffer[c];n.bindRenderbuffer(n.RENDERBUFFER,f),n.renderbufferStorageMultisample(n.RENDERBUFFER,4,h,u.pixelWidth,u.pixelHeight),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+c,n.RENDERBUFFER,f)})}}_initStencil(e){if(e.framebuffer===null)return;let t=this._renderer.gl,i=t.createRenderbuffer();e.depthStencilRenderBuffer=i,t.bindRenderbuffer(t.RENDERBUFFER,i),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,i),this._resizeStencil(e)}_resizeStencil(e){let t=this._renderer.gl;t.bindRenderbuffer(t.RENDERBUFFER,e.depthStencilRenderBuffer),e.msaa?t.renderbufferStorageMultisample(t.RENDERBUFFER,4,t.DEPTH24_STENCIL8,e.width,e.height):t.renderbufferStorage(t.RENDERBUFFER,this._renderer.context.webGLVersion===2?t.DEPTH24_STENCIL8:t.DEPTH_STENCIL,e.width,e.height)}prerender(e){let t=e.colorTexture.resource;this._renderer.context.multiView&&je.test(t)&&this._renderer.context.ensureCanvasSize(t)}postrender(e){if(this._renderer.context.multiView&&je.test(e.colorTexture.resource)){let t=this._renderer.context.canvas,i=e.colorTexture;i.context2D.drawImage(t,0,i.pixelHeight-t.height)}}}});var va,gv=p(()=>{P();Km();pv();va=class extends Ks{constructor(e){super(e),this.adaptor=new bl,this.adaptor.init(e,this)}};va.extension={type:[b.WebGLSystem],name:"renderTarget"}});function xv(r,e){let t=[],i=[`
|
|
970
970
|
var g = s.groups;
|
|
971
971
|
var sS = r.shader;
|
|
972
972
|
var p = s.glProgram;
|
|
@@ -982,7 +982,7 @@ fn mainFragment(
|
|
|
982
982
|
);
|
|
983
983
|
`)}else t.push(`
|
|
984
984
|
ugS.updateUniformGroup(resources[${l}], p, sD);
|
|
985
|
-
`);else if(h instanceof
|
|
985
|
+
`);else if(h instanceof Jr){let f=r._uniformBindMap[c][Number(l)];t.push(`
|
|
986
986
|
sS.bindUniformBlock(
|
|
987
987
|
resources[${l}],
|
|
988
988
|
'${f}',
|
|
@@ -993,10 +993,10 @@ fn mainFragment(
|
|
|
993
993
|
`)),e._gl.uniform1i(d.location,n),t.push(`
|
|
994
994
|
tS.bind(resources[${l}], ${n});
|
|
995
995
|
`),n++)}}}let a=[...i,...t].join(`
|
|
996
|
-
`);return new Function("r","s","sD",a)}var
|
|
996
|
+
`);return new Function("r","s","sD",a)}var _v=p(()=>{ul();rt();et()});var yl,bv=p(()=>{"use strict";yl=class{constructor(e,t){this.program=e,this.uniformData=t,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBlockBindings={}}destroy(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBlockBindings=null,this.program=null}}});function op(r,e,t){let i=r.createShader(e);return r.shaderSource(i,t),r.compileShader(i),i}var yv=p(()=>{"use strict"});function ap(r){let e=new Array(r);for(let t=0;t<e.length;t++)e[t]=!1;return e}function Tl(r,e){switch(r){case"float":return 0;case"vec2":return new Float32Array(2*e);case"vec3":return new Float32Array(3*e);case"vec4":return new Float32Array(4*e);case"int":case"uint":case"sampler2D":case"sampler2DArray":return 0;case"ivec2":return new Int32Array(2*e);case"ivec3":return new Int32Array(3*e);case"ivec4":return new Int32Array(4*e);case"uvec2":return new Uint32Array(2*e);case"uvec3":return new Uint32Array(3*e);case"uvec4":return new Uint32Array(4*e);case"bool":return!1;case"bvec2":return ap(2*e);case"bvec3":return ap(3*e);case"bvec4":return ap(4*e);case"mat2":return new Float32Array([1,0,0,1]);case"mat3":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}var cp=p(()=>{"use strict"});function up(r,e){if(!wl){let t=Object.keys(Tv);wl={};for(let i=0;i<t.length;++i){let s=t[i];wl[r[s]]=Tv[s]}}return wl[e]}function wv(r,e){let t=up(r,e);return $P[t]||"float32"}var wl,Tv,$P,lp=p(()=>{"use strict";wl=null,Tv={FLOAT:"float",FLOAT_VEC2:"vec2",FLOAT_VEC3:"vec3",FLOAT_VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",UNSIGNED_INT:"uint",UNSIGNED_INT_VEC2:"uvec2",UNSIGNED_INT_VEC3:"uvec3",UNSIGNED_INT_VEC4:"uvec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",FLOAT_MAT2:"mat2",FLOAT_MAT3:"mat3",FLOAT_MAT4:"mat4",SAMPLER_2D:"sampler2D",INT_SAMPLER_2D:"sampler2D",UNSIGNED_INT_SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube",INT_SAMPLER_CUBE:"samplerCube",UNSIGNED_INT_SAMPLER_CUBE:"samplerCube",SAMPLER_2D_ARRAY:"sampler2DArray",INT_SAMPLER_2D_ARRAY:"sampler2DArray",UNSIGNED_INT_SAMPLER_2D_ARRAY:"sampler2DArray"},$P={float:"float32",vec2:"float32x2",vec3:"float32x3",vec4:"float32x4",int:"sint32",ivec2:"sint32x2",ivec3:"sint32x3",ivec4:"sint32x4",uint:"uint32",uvec2:"uint32x2",uvec3:"uint32x3",uvec4:"uint32x4",bool:"uint32",bvec2:"uint32x2",bvec3:"uint32x3",bvec4:"uint32x4"}});function Sv(r,e,t=!1){let i={},s=e.getProgramParameter(r,e.ACTIVE_ATTRIBUTES);for(let o=0;o<s;o++){let a=e.getActiveAttrib(r,o);if(a.name.startsWith("gl_"))continue;let c=wv(e,a.type);i[a.name]={location:0,format:c,stride:ct(c).stride,offset:0,instance:!1,start:0}}let n=Object.keys(i);if(t){n.sort((o,a)=>o>a?1:-1);for(let o=0;o<n.length;o++)i[n[o]].location=o,e.bindAttribLocation(r,o,n[o]);e.linkProgram(r)}else for(let o=0;o<n.length;o++)i[n[o]].location=e.getAttribLocation(r,n[o]);return i}var vv=p(()=>{Pi();lp()});function Cv(r,e){if(!e.ACTIVE_UNIFORM_BLOCKS)return{};let t={},i=e.getProgramParameter(r,e.ACTIVE_UNIFORM_BLOCKS);for(let s=0;s<i;s++){let n=e.getActiveUniformBlockName(r,s),o=e.getUniformBlockIndex(r,n),a=e.getActiveUniformBlockParameter(r,s,e.UNIFORM_BLOCK_DATA_SIZE);t[n]={name:n,index:o,size:a}}return t}var Ev=p(()=>{"use strict"});function kv(r,e){let t={},i=e.getProgramParameter(r,e.ACTIVE_UNIFORMS);for(let s=0;s<i;s++){let n=e.getActiveUniform(r,s),o=n.name.replace(/\[.*?\]$/,""),a=!!n.name.match(/\[.*?\]$/),c=up(e,n.type);t[o]={name:o,index:s,type:c,size:n.size,isArray:a,value:Tl(c,n.size)}}return t}var Av=p(()=>{cp();lp()});function Pv(r,e){let t=r.getShaderSource(e).split(`
|
|
997
997
|
`).map((u,l)=>`${l}: ${u}`),i=r.getShaderInfoLog(e),s=i.split(`
|
|
998
998
|
`),n={},o=s.map(u=>parseFloat(u.replace(/^ERROR\: 0\:([\d]+)\:.*$/,"$1"))).filter(u=>u&&!n[u]?(n[u]=!0,!0):!1),a=[""];o.forEach(u=>{t[u-1]=`%c${t[u-1]}%c`,a.push("background: #FF0000; color:#FFFFFF; font-size: 10px","font-size: 10px")});let c=t.join(`
|
|
999
|
-
`);a[0]=c,console.error(i),console.groupCollapsed("click to view full shader code"),console.warn(...a),console.groupEnd()}function
|
|
999
|
+
`);a[0]=c,console.error(i),console.groupCollapsed("click to view full shader code"),console.warn(...a),console.groupEnd()}function Bv(r,e,t,i){r.getProgramParameter(e,r.LINK_STATUS)||(r.getShaderParameter(t,r.COMPILE_STATUS)||Pv(r,t),r.getShaderParameter(i,r.COMPILE_STATUS)||Pv(r,i),console.error("PixiJS Error: Could not initialize shader."),r.getProgramInfoLog(e)!==""&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",r.getProgramInfoLog(e)))}var Rv=p(()=>{"use strict"});function Dv(r,e){let t=op(r,r.VERTEX_SHADER,e.vertex),i=op(r,r.FRAGMENT_SHADER,e.fragment),s=r.createProgram();r.attachShader(s,t),r.attachShader(s,i);let n=e.transformFeedbackVaryings;n&&(typeof r.transformFeedbackVaryings!="function"?G("TransformFeedback is not supported but TransformFeedbackVaryings are given."):r.transformFeedbackVaryings(s,n.names,n.bufferMode==="separate"?r.SEPARATE_ATTRIBS:r.INTERLEAVED_ATTRIBS)),r.linkProgram(s),r.getProgramParameter(s,r.LINK_STATUS)||Bv(r,s,t,i),e._attributeData=Sv(s,r,!/^[ \t]*#[ \t]*version[ \t]+300[ \t]+es[ \t]*$/m.test(e.vertex)),e._uniformData=kv(s,r),e._uniformBlockData=Cv(s,r),r.deleteShader(t),r.deleteShader(i);let o={};for(let c in e._uniformData){let u=e._uniformData[c];o[c]={location:r.getUniformLocation(s,c),value:Tl(u.type,u.size)}}return new yl(s,o)}var Mv=p(()=>{ge();bv();yv();cp();vv();Ev();Av();Rv()});var Sl,Ca,Iv=p(()=>{P();_v();Mv();Sl={textureCount:0,blockIndex:0},Ca=class{constructor(e){this._activeProgram=null,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_programDataHash")}contextChange(e){this._gl=e,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._activeProgram=null}bind(e,t){if(this._setProgram(e.glProgram),t)return;Sl.textureCount=0,Sl.blockIndex=0;let i=this._shaderSyncFunctions[e.glProgram._key];i||(i=this._shaderSyncFunctions[e.glProgram._key]=this._generateShaderSync(e,this)),this._renderer.buffer.nextBindBase(!!e.glProgram.transformFeedbackVaryings),i(this._renderer,e,Sl)}updateUniformGroup(e){this._renderer.uniformGroup.updateUniformGroup(e,this._activeProgram,Sl)}bindUniformBlock(e,t,i=0){let s=this._renderer.buffer,n=this._getProgramData(this._activeProgram),o=e._bufferResource;o||this._renderer.ubo.updateUniformGroup(e);let a=e.buffer,c=s.updateBuffer(a),u=s.freeLocationForBufferBase(c);if(o){let{offset:h,size:f}=e;h===0&&f===a.data.byteLength?s.bindBufferBase(c,u):s.bindBufferRange(c,u,h)}else s.getLastBindBaseLocation(c)!==u&&s.bindBufferBase(c,u);let l=this._activeProgram._uniformBlockData[t].index;n.uniformBlockBindings[i]!==u&&(n.uniformBlockBindings[i]=u,this._renderer.gl.uniformBlockBinding(n.program,l,u))}_setProgram(e){if(this._activeProgram===e)return;this._activeProgram=e;let t=this._getProgramData(e);this._gl.useProgram(t.program)}_getProgramData(e){return this._programDataHash[e._key]||this._createProgramData(e)}_createProgramData(e){let t=e._key;return this._programDataHash[t]=Dv(this._gl,e),this._programDataHash[t]}destroy(){for(let e of Object.keys(this._programDataHash))this._programDataHash[e].destroy(),this._programDataHash[e]=null;this._programDataHash=null}_generateShaderSync(e,t){return xv(e,t)}resetState(){this._activeProgram=null}};Ca.extension={type:[b.WebGLSystem],name:"shader"}});var Fv,Uv,Ov=p(()=>{"use strict";Fv={f32:`if (cv !== v) {
|
|
1000
1000
|
cu.value = v;
|
|
1001
1001
|
gl.uniform1f(location, v);
|
|
1002
1002
|
}`,"vec2<f32>":`if (cv[0] !== v[0] || cv[1] !== v[1]) {
|
|
@@ -1068,7 +1068,7 @@ fn mainFragment(
|
|
|
1068
1068
|
cv[2] = v[2];
|
|
1069
1069
|
cv[3] = v[3];
|
|
1070
1070
|
gl.uniform4i(location, v[0], v[1], v[2], v[3]);
|
|
1071
|
-
}`,"mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);"},
|
|
1071
|
+
}`,"mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);"},Uv={f32:"gl.uniform1fv(location, v);","vec2<f32>":"gl.uniform2fv(location, v);","vec3<f32>":"gl.uniform3fv(location, v);","vec4<f32>":"gl.uniform4fv(location, v);","mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);",i32:"gl.uniform1iv(location, v);","vec2<i32>":"gl.uniform2iv(location, v);","vec3<i32>":"gl.uniform3iv(location, v);","vec4<i32>":"gl.uniform4iv(location, v);",u32:"gl.uniform1iv(location, v);","vec2<u32>":"gl.uniform2iv(location, v);","vec3<u32>":"gl.uniform3iv(location, v);","vec4<u32>":"gl.uniform4iv(location, v);",bool:"gl.uniform1iv(location, v);","vec2<bool>":"gl.uniform2iv(location, v);","vec3<bool>":"gl.uniform3iv(location, v);","vec4<bool>":"gl.uniform4iv(location, v);"}});function Gv(r,e){let t=[`
|
|
1072
1072
|
var v = null;
|
|
1073
1073
|
var cv = null;
|
|
1074
1074
|
var cu = null;
|
|
@@ -1079,24 +1079,24 @@ fn mainFragment(
|
|
|
1079
1079
|
renderer.shader.bindUniformBlock(uv.${i}, "${i}");
|
|
1080
1080
|
`):t.push(`
|
|
1081
1081
|
renderer.shader.updateUniformGroup(uv.${i});
|
|
1082
|
-
`):r.uniforms[i]instanceof
|
|
1082
|
+
`):r.uniforms[i]instanceof Jr&&t.push(`
|
|
1083
1083
|
renderer.shader.bindBufferResource(uv.${i}, "${i}");
|
|
1084
|
-
`);continue}let s=r.uniformStructures[i],n=!1;for(let o=0;o<
|
|
1084
|
+
`);continue}let s=r.uniformStructures[i],n=!1;for(let o=0;o<kr.length;o++){let a=kr[o];if(s.type===a.type&&a.test(s)){t.push(`name = "${i}";`,kr[o].uniform),n=!0;break}}if(!n){let a=(s.size===1?Fv:Uv)[s.type].replace("location",`ud["${i}"].location`);t.push(`
|
|
1085
1085
|
cu = ud["${i}"];
|
|
1086
1086
|
cv = cu.value;
|
|
1087
1087
|
v = uv["${i}"];
|
|
1088
1088
|
${a};`)}}return new Function("ud","uv","renderer","syncData",t.join(`
|
|
1089
|
-
`))}var lC=p(()=>{ql();it();Ap();cC()});var Ka,hC=p(()=>{B();lC();Ka=class{constructor(e){this._cache={},this._uniformGroupSyncHash={},this._renderer=e,this.gl=null,this._cache={}}contextChange(e){this.gl=e}updateUniformGroup(e,t,i){let s=this._renderer.shader._getProgramData(t);(!e.isStatic||e._dirtyId!==s.uniformDirtyGroups[e.uid])&&(s.uniformDirtyGroups[e.uid]=e._dirtyId,this._getUniformSyncFunction(e,t)(s.uniformData,e.uniforms,this._renderer,i))}_getUniformSyncFunction(e,t){return this._uniformGroupSyncHash[e._signature]?.[t._key]||this._createUniformSyncFunction(e,t)}_createUniformSyncFunction(e,t){let i=this._uniformGroupSyncHash[e._signature]||(this._uniformGroupSyncHash[e._signature]={}),s=this._getSignature(e,t._uniformData,"u");return this._cache[s]||(this._cache[s]=this._generateUniformsSync(e,t._uniformData)),i[t._key]=this._cache[s],i[t._key]}_generateUniformsSync(e,t){return uC(e,t)}_getSignature(e,t,i){let s=e.uniforms,n=[`${i}-`];for(let o in s)n.push(o),t[o]&&n.push(t[o].type);return n.join("-")}destroy(){this._renderer=null,this._cache=null}};Ka.extension={type:[b.WebGLSystem],name:"uniformGroup"}});function dC(r){let e={};if(e.normal=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e.add=[r.ONE,r.ONE],e.multiply=[r.DST_COLOR,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],e.screen=[r.ONE,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],e.none=[0,0],e["normal-npm"]=[r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],e["add-npm"]=[r.SRC_ALPHA,r.ONE,r.ONE,r.ONE],e["screen-npm"]=[r.SRC_ALPHA,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],e.erase=[r.ZERO,r.ONE_MINUS_SRC_ALPHA],!(r instanceof W.get().getWebGLRenderingContext()))e.min=[r.ONE,r.ONE,r.ONE,r.ONE,r.MIN,r.MIN],e.max=[r.ONE,r.ONE,r.ONE,r.ONE,r.MAX,r.MAX];else{let i=r.getExtension("EXT_blend_minmax");i&&(e.min=[r.ONE,r.ONE,r.ONE,r.ONE,i.MIN_EXT,i.MIN_EXT],e.max=[r.ONE,r.ONE,r.ONE,r.ONE,i.MAX_EXT,i.MAX_EXT])}return e}var fC=p(()=>{Ce()});var TR,wR,SR,vR,CR,ER,mC,pC,gC=p(()=>{B();Gt();fC();TR=0,wR=1,SR=2,vR=3,CR=4,ER=5,mC=class Yp{constructor(e){this._invertFrontFace=!1,this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[TR]=this.setBlend,this.map[wR]=this.setOffset,this.map[SR]=this.setCullFace,this.map[vR]=this.setDepthTest,this.map[CR]=this.setFrontFace,this.map[ER]=this.setDepthMask,this.checks=[],this.defaultState=Pe.for2d(),e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){this._invertFrontFace=!e.isRoot,this._cullFace?this.setFrontFace(this._frontFace):this._frontFaceDirty=!0}contextChange(e){this.gl=e,this.blendModesMap=dC(e),this.resetState()}set(e){if(e||(e=this.defaultState),this.stateId!==e.data){let t=this.stateId^e.data,i=0;for(;t;)t&1&&this.map[i].call(this,!!(e.data&1<<i)),t>>=1,i++;this.stateId=e.data}for(let t=0;t<this.checks.length;t++)this.checks[t](this,e)}forceState(e){e||(e=this.defaultState);for(let t=0;t<this.map.length;t++)this.map[t].call(this,!!(e.data&1<<t));for(let t=0;t<this.checks.length;t++)this.checks[t](this,e);this.stateId=e.data}setBlend(e){this._updateCheck(Yp._checkBlendMode,e),this.gl[e?"enable":"disable"](this.gl.BLEND)}setOffset(e){this._updateCheck(Yp._checkPolygonOffset,e),this.gl[e?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)}setDepthTest(e){this.gl[e?"enable":"disable"](this.gl.DEPTH_TEST)}setDepthMask(e){this.gl.depthMask(e)}setCullFace(e){this._cullFace=e,this.gl[e?"enable":"disable"](this.gl.CULL_FACE),this._cullFace&&this._frontFaceDirty&&this.setFrontFace(this._frontFace)}setFrontFace(e){this._frontFace=e,this._frontFaceDirty=!1;let t=this._invertFrontFace?!e:e;this._glFrontFace!==t&&(this._glFrontFace=t,this.gl.frontFace(this.gl[t?"CW":"CCW"]))}setBlendMode(e){if(this.blendModesMap[e]||(e="normal"),e===this.blendMode)return;this.blendMode=e;let t=this.blendModesMap[e],i=this.gl;t.length===2?i.blendFunc(t[0],t[1]):i.blendFuncSeparate(t[0],t[1],t[2],t[3]),t.length===6?(this._blendEq=!0,i.blendEquationSeparate(t[4],t[5])):this._blendEq&&(this._blendEq=!1,i.blendEquationSeparate(i.FUNC_ADD,i.FUNC_ADD))}setPolygonOffset(e,t){this.gl.polygonOffset(e,t)}resetState(){this._glFrontFace=!1,this._frontFace=!1,this._cullFace=!1,this._frontFaceDirty=!1,this._invertFrontFace=!1,this.gl.frontFace(this.gl.CCW),this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,!1),this.forceState(this.defaultState),this._blendEq=!0,this.blendMode="",this.setBlendMode("normal")}_updateCheck(e,t){let i=this.checks.indexOf(e);t&&i===-1?this.checks.push(e):!t&&i!==-1&&this.checks.splice(i,1)}static _checkBlendMode(e,t){e.setBlendMode(t.blendMode)}static _checkPolygonOffset(e,t){e.setPolygonOffset(1,t.polygonOffset)}destroy(){this.gl=null,this.checks.length=0}};mC.extension={type:[b.WebGLSystem],name:"state"};pC=mC});var ah,xC=p(()=>{Lp();ah=class{constructor(e){this.target=Np.TEXTURE_2D,this.texture=e,this.width=-1,this.height=-1,this.type=ie.UNSIGNED_BYTE,this.internalFormat=eh.RGBA,this.format=eh.RGBA,this.samplerType=0}}});var _C,bC=p(()=>{"use strict";_C={id:"buffer",upload(r,e,t){e.width===r.width||e.height===r.height?t.texSubImage2D(t.TEXTURE_2D,0,0,0,r.width,r.height,e.format,e.type,r.resource):t.texImage2D(e.target,0,e.internalFormat,r.width,r.height,0,e.format,e.type,r.resource),e.width=r.width,e.height=r.height}}});var kR,yC,TC=p(()=>{"use strict";kR={"bc1-rgba-unorm":!0,"bc1-rgba-unorm-srgb":!0,"bc2-rgba-unorm":!0,"bc2-rgba-unorm-srgb":!0,"bc3-rgba-unorm":!0,"bc3-rgba-unorm-srgb":!0,"bc4-r-unorm":!0,"bc4-r-snorm":!0,"bc5-rg-unorm":!0,"bc5-rg-snorm":!0,"bc6h-rgb-ufloat":!0,"bc6h-rgb-float":!0,"bc7-rgba-unorm":!0,"bc7-rgba-unorm-srgb":!0,"etc2-rgb8unorm":!0,"etc2-rgb8unorm-srgb":!0,"etc2-rgb8a1unorm":!0,"etc2-rgb8a1unorm-srgb":!0,"etc2-rgba8unorm":!0,"etc2-rgba8unorm-srgb":!0,"eac-r11unorm":!0,"eac-r11snorm":!0,"eac-rg11unorm":!0,"eac-rg11snorm":!0,"astc-4x4-unorm":!0,"astc-4x4-unorm-srgb":!0,"astc-5x4-unorm":!0,"astc-5x4-unorm-srgb":!0,"astc-5x5-unorm":!0,"astc-5x5-unorm-srgb":!0,"astc-6x5-unorm":!0,"astc-6x5-unorm-srgb":!0,"astc-6x6-unorm":!0,"astc-6x6-unorm-srgb":!0,"astc-8x5-unorm":!0,"astc-8x5-unorm-srgb":!0,"astc-8x6-unorm":!0,"astc-8x6-unorm-srgb":!0,"astc-8x8-unorm":!0,"astc-8x8-unorm-srgb":!0,"astc-10x5-unorm":!0,"astc-10x5-unorm-srgb":!0,"astc-10x6-unorm":!0,"astc-10x6-unorm-srgb":!0,"astc-10x8-unorm":!0,"astc-10x8-unorm-srgb":!0,"astc-10x10-unorm":!0,"astc-10x10-unorm-srgb":!0,"astc-12x10-unorm":!0,"astc-12x10-unorm-srgb":!0,"astc-12x12-unorm":!0,"astc-12x12-unorm-srgb":!0},yC={id:"compressed",upload(r,e,t){t.pixelStorei(t.UNPACK_ALIGNMENT,4);let i=r.pixelWidth,s=r.pixelHeight,n=!!kR[r.format];for(let o=0;o<r.resource.length;o++){let a=r.resource[o];n?t.compressedTexImage2D(t.TEXTURE_2D,o,e.internalFormat,i,s,0,a):t.texImage2D(t.TEXTURE_2D,o,e.internalFormat,i,s,0,e.format,e.type,a),i=Math.max(i>>1,1),s=Math.max(s>>1,1)}}}});var ch,Kp=p(()=>{"use strict";ch={id:"image",upload(r,e,t,i){let s=e.width,n=e.height,o=r.pixelWidth,a=r.pixelHeight,c=r.resourceWidth,u=r.resourceHeight;c<o||u<a?((s!==o||n!==a)&&t.texImage2D(e.target,0,e.internalFormat,o,a,0,e.format,e.type,null),i===2?t.texSubImage2D(t.TEXTURE_2D,0,0,0,c,u,e.format,e.type,r.resource):t.texSubImage2D(t.TEXTURE_2D,0,0,0,e.format,e.type,r.resource)):s===o&&n===a?t.texSubImage2D(t.TEXTURE_2D,0,0,0,e.format,e.type,r.resource):i===2?t.texImage2D(e.target,0,e.internalFormat,o,a,0,e.format,e.type,r.resource):t.texImage2D(e.target,0,e.internalFormat,e.format,e.type,r.resource),e.width=o,e.height=a}}});var wC,SC=p(()=>{Kp();wC={id:"video",upload(r,e,t,i){if(!r.isValid){t.texImage2D(e.target,0,e.internalFormat,1,1,0,e.format,e.type,null);return}ch.upload(r,e,t,i)}}});var Qp,vC,uh,CC,EC=p(()=>{"use strict";Qp={linear:9729,nearest:9728},vC={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},uh={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},CC={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519}});function Zp(r,e,t,i,s,n,o,a){let c=n;if(!a||r.addressModeU!=="repeat"||r.addressModeV!=="repeat"||r.addressModeW!=="repeat"){let u=uh[o?"clamp-to-edge":r.addressModeU],l=uh[o?"clamp-to-edge":r.addressModeV],h=uh[o?"clamp-to-edge":r.addressModeW];e[s](c,e.TEXTURE_WRAP_S,u),e[s](c,e.TEXTURE_WRAP_T,l),e.TEXTURE_WRAP_R&&e[s](c,e.TEXTURE_WRAP_R,h)}if((!a||r.magFilter!=="linear")&&e[s](c,e.TEXTURE_MAG_FILTER,Qp[r.magFilter]),t){if(!a||r.mipmapFilter!=="linear"){let u=vC[r.minFilter][r.mipmapFilter];e[s](c,e.TEXTURE_MIN_FILTER,u)}}else e[s](c,e.TEXTURE_MIN_FILTER,Qp[r.minFilter]);if(i&&r.maxAnisotropy>1){let u=Math.min(r.maxAnisotropy,e.getParameter(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT));e[s](c,i.TEXTURE_MAX_ANISOTROPY_EXT,u)}r.compare&&e[s](c,e.TEXTURE_COMPARE_FUNC,CC[r.compare])}var kC=p(()=>{EC()});function AC(r){return{r8unorm:r.RED,r8snorm:r.RED,r8uint:r.RED,r8sint:r.RED,r16uint:r.RED,r16sint:r.RED,r16float:r.RED,rg8unorm:r.RG,rg8snorm:r.RG,rg8uint:r.RG,rg8sint:r.RG,r32uint:r.RED,r32sint:r.RED,r32float:r.RED,rg16uint:r.RG,rg16sint:r.RG,rg16float:r.RG,rgba8unorm:r.RGBA,"rgba8unorm-srgb":r.RGBA,rgba8snorm:r.RGBA,rgba8uint:r.RGBA,rgba8sint:r.RGBA,bgra8unorm:r.RGBA,"bgra8unorm-srgb":r.RGBA,rgb9e5ufloat:r.RGB,rgb10a2unorm:r.RGBA,rg11b10ufloat:r.RGB,rg32uint:r.RG,rg32sint:r.RG,rg32float:r.RG,rgba16uint:r.RGBA,rgba16sint:r.RGBA,rgba16float:r.RGBA,rgba32uint:r.RGBA,rgba32sint:r.RGBA,rgba32float:r.RGBA,stencil8:r.STENCIL_INDEX8,depth16unorm:r.DEPTH_COMPONENT,depth24plus:r.DEPTH_COMPONENT,"depth24plus-stencil8":r.DEPTH_STENCIL,depth32float:r.DEPTH_COMPONENT,"depth32float-stencil8":r.DEPTH_STENCIL}}var PC=p(()=>{"use strict"});function BC(r,e){let t={},i=r.RGBA;return r instanceof W.get().getWebGLRenderingContext()?e.srgb&&(t={"rgba8unorm-srgb":e.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":e.srgb.SRGB8_ALPHA8_EXT}):(t={"rgba8unorm-srgb":r.SRGB8_ALPHA8,"bgra8unorm-srgb":r.SRGB8_ALPHA8},i=r.RGBA8),{r8unorm:r.R8,r8snorm:r.R8_SNORM,r8uint:r.R8UI,r8sint:r.R8I,r16uint:r.R16UI,r16sint:r.R16I,r16float:r.R16F,rg8unorm:r.RG8,rg8snorm:r.RG8_SNORM,rg8uint:r.RG8UI,rg8sint:r.RG8I,r32uint:r.R32UI,r32sint:r.R32I,r32float:r.R32F,rg16uint:r.RG16UI,rg16sint:r.RG16I,rg16float:r.RG16F,rgba8unorm:r.RGBA,...t,rgba8snorm:r.RGBA8_SNORM,rgba8uint:r.RGBA8UI,rgba8sint:r.RGBA8I,bgra8unorm:i,rgb9e5ufloat:r.RGB9_E5,rgb10a2unorm:r.RGB10_A2,rg11b10ufloat:r.R11F_G11F_B10F,rg32uint:r.RG32UI,rg32sint:r.RG32I,rg32float:r.RG32F,rgba16uint:r.RGBA16UI,rgba16sint:r.RGBA16I,rgba16float:r.RGBA16F,rgba32uint:r.RGBA32UI,rgba32sint:r.RGBA32I,rgba32float:r.RGBA32F,stencil8:r.STENCIL_INDEX8,depth16unorm:r.DEPTH_COMPONENT16,depth24plus:r.DEPTH_COMPONENT24,"depth24plus-stencil8":r.DEPTH24_STENCIL8,depth32float:r.DEPTH_COMPONENT32F,"depth32float-stencil8":r.DEPTH32F_STENCIL8,...e.s3tc?{"bc1-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...e.s3tc_sRGB?{"bc1-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...e.rgtc?{"bc4-r-unorm":e.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":e.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":e.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":e.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...e.bptc?{"bc6h-rgb-float":e.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":e.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":e.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":e.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...e.etc?{"etc2-rgb8unorm":e.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":e.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":e.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":e.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":e.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":e.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":e.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":e.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...e.astc?{"astc-4x4-unorm":e.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":e.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":e.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":e.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}}var RC=p(()=>{Ce()});function DC(r){return{r8unorm:r.UNSIGNED_BYTE,r8snorm:r.BYTE,r8uint:r.UNSIGNED_BYTE,r8sint:r.BYTE,r16uint:r.UNSIGNED_SHORT,r16sint:r.SHORT,r16float:r.HALF_FLOAT,rg8unorm:r.UNSIGNED_BYTE,rg8snorm:r.BYTE,rg8uint:r.UNSIGNED_BYTE,rg8sint:r.BYTE,r32uint:r.UNSIGNED_INT,r32sint:r.INT,r32float:r.FLOAT,rg16uint:r.UNSIGNED_SHORT,rg16sint:r.SHORT,rg16float:r.HALF_FLOAT,rgba8unorm:r.UNSIGNED_BYTE,"rgba8unorm-srgb":r.UNSIGNED_BYTE,rgba8snorm:r.BYTE,rgba8uint:r.UNSIGNED_BYTE,rgba8sint:r.BYTE,bgra8unorm:r.UNSIGNED_BYTE,"bgra8unorm-srgb":r.UNSIGNED_BYTE,rgb9e5ufloat:r.UNSIGNED_INT_5_9_9_9_REV,rgb10a2unorm:r.UNSIGNED_INT_2_10_10_10_REV,rg11b10ufloat:r.UNSIGNED_INT_10F_11F_11F_REV,rg32uint:r.UNSIGNED_INT,rg32sint:r.INT,rg32float:r.FLOAT,rgba16uint:r.UNSIGNED_SHORT,rgba16sint:r.SHORT,rgba16float:r.HALF_FLOAT,rgba32uint:r.UNSIGNED_INT,rgba32sint:r.INT,rgba32float:r.FLOAT,stencil8:r.UNSIGNED_BYTE,depth16unorm:r.UNSIGNED_SHORT,depth24plus:r.UNSIGNED_INT,"depth24plus-stencil8":r.UNSIGNED_INT_24_8,depth32float:r.FLOAT,"depth32float-stencil8":r.FLOAT_32_UNSIGNED_INT_24_8_REV}}var MC=p(()=>{"use strict"});var AR,Qa,IC=p(()=>{Ce();B();le();xC();bC();TC();Kp();SC();kC();PC();RC();MC();AR=4,Qa=class{constructor(e){this.managedTextures=[],this._glTextures=Object.create(null),this._glSamplers=Object.create(null),this._boundTextures=[],this._activeTextureLocation=-1,this._boundSamplers=Object.create(null),this._uploads={image:ch,buffer:_C,video:wC,compressed:yC},this._premultiplyAlpha=!1,this._useSeparateSamplers=!1,this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_glTextures"),this._renderer.renderableGC.addManagedHash(this,"_glSamplers")}contextChange(e){this._gl=e,this._mapFormatToInternalFormat||(this._mapFormatToInternalFormat=BC(e,this._renderer.context.extensions),this._mapFormatToType=DC(e),this._mapFormatToFormat=AC(e)),this._glTextures=Object.create(null),this._glSamplers=Object.create(null),this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1;for(let t=0;t<16;t++)this.bind(M.EMPTY,t)}initSource(e){this.bind(e)}bind(e,t=0){let i=e.source;e?(this.bindSource(i,t),this._useSeparateSamplers&&this._bindSampler(i.style,t)):(this.bindSource(null,t),this._useSeparateSamplers&&this._bindSampler(null,t))}bindSource(e,t=0){let i=this._gl;if(e._touched=this._renderer.textureGC.count,this._boundTextures[t]!==e){this._boundTextures[t]=e,this._activateLocation(t),e||(e=M.EMPTY.source);let s=this.getGlSource(e);i.bindTexture(s.target,s.texture)}}_bindSampler(e,t=0){let i=this._gl;if(!e){this._boundSamplers[t]=null,i.bindSampler(t,null);return}let s=this._getGlSampler(e);this._boundSamplers[t]!==s&&(this._boundSamplers[t]=s,i.bindSampler(t,s))}unbind(e){let t=e.source,i=this._boundTextures,s=this._gl;for(let n=0;n<i.length;n++)if(i[n]===t){this._activateLocation(n);let o=this.getGlSource(t);s.bindTexture(o.target,null),i[n]=null}}_activateLocation(e){this._activeTextureLocation!==e&&(this._activeTextureLocation=e,this._gl.activeTexture(this._gl.TEXTURE0+e))}_initSource(e){let t=this._gl,i=new ah(t.createTexture());if(i.type=this._mapFormatToType[e.format],i.internalFormat=this._mapFormatToInternalFormat[e.format],i.format=this._mapFormatToFormat[e.format],e.autoGenerateMipmaps&&(this._renderer.context.supports.nonPowOf2mipmaps||e.isPowerOfTwo)){let s=Math.max(e.width,e.height);e.mipLevelCount=Math.floor(Math.log2(s))+1}return this._glTextures[e.uid]=i,this.managedTextures.includes(e)||(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceUpdate,this),e.on("styleChange",this.onStyleChange,this),e.on("destroy",this.onSourceDestroy,this),e.on("unload",this.onSourceUnload,this),e.on("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.push(e)),this.onSourceUpdate(e),this.updateStyle(e,!1),i}onStyleChange(e){this.updateStyle(e,!1)}updateStyle(e,t){let i=this._gl,s=this.getGlSource(e);i.bindTexture(i.TEXTURE_2D,s.texture),this._boundTextures[this._activeTextureLocation]=e,Zp(e.style,i,e.mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",i.TEXTURE_2D,!this._renderer.context.supports.nonPowOf2wrapping&&!e.isPowerOfTwo,t)}onSourceUnload(e){let t=this._glTextures[e.uid];t&&(this.unbind(e),this._glTextures[e.uid]=null,this._gl.deleteTexture(t.texture))}onSourceUpdate(e){let t=this._gl,i=this.getGlSource(e);t.bindTexture(t.TEXTURE_2D,i.texture),this._boundTextures[this._activeTextureLocation]=e;let s=e.alphaMode==="premultiply-alpha-on-upload";this._premultiplyAlpha!==s&&(this._premultiplyAlpha=s,t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,s)),this._uploads[e.uploadMethodId]?this._uploads[e.uploadMethodId].upload(e,i,t,this._renderer.context.webGLVersion):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e.pixelWidth,e.pixelHeight,0,t.RGBA,t.UNSIGNED_BYTE,null),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e,!1)}onUpdateMipmaps(e,t=!0){t&&this.bindSource(e,0);let i=this.getGlSource(e);this._gl.generateMipmap(i.target)}onSourceDestroy(e){e.off("destroy",this.onSourceDestroy,this),e.off("update",this.onSourceUpdate,this),e.off("resize",this.onSourceUpdate,this),e.off("unload",this.onSourceUnload,this),e.off("styleChange",this.onStyleChange,this),e.off("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.splice(this.managedTextures.indexOf(e),1),this.onSourceUnload(e)}_initSampler(e){let t=this._gl,i=this._gl.createSampler();return this._glSamplers[e._resourceId]=i,Zp(e,t,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",i,!1,!0),this._glSamplers[e._resourceId]}_getGlSampler(e){return this._glSamplers[e._resourceId]||this._initSampler(e)}getGlSource(e){return this._glTextures[e.uid]||this._initSource(e)}generateCanvas(e){let{pixels:t,width:i,height:s}=this.getPixels(e),n=W.get().createCanvas();n.width=i,n.height=s;let o=n.getContext("2d");if(o){let a=o.createImageData(i,s);a.data.set(t),o.putImageData(a,0,0)}return n}getPixels(e){let t=e.source.resolution,i=e.frame,s=Math.max(Math.round(i.width*t),1),n=Math.max(Math.round(i.height*t),1),o=new Uint8Array(AR*s*n),a=this._renderer,c=a.renderTarget.getRenderTarget(e),u=a.renderTarget.getGpuRenderTarget(c),l=a.gl;return l.bindFramebuffer(l.FRAMEBUFFER,u.resolveTargetFramebuffer),l.readPixels(Math.round(i.x*t),Math.round(i.y*t),s,n,l.RGBA,l.UNSIGNED_BYTE,o),{pixels:new Uint8ClampedArray(o.buffer),width:s,height:n}}destroy(){this.managedTextures.slice().forEach(e=>this.onSourceDestroy(e)),this.managedTextures=null,this._renderer=null}resetState(){this._activeTextureLocation=-1,this._boundTextures.fill(M.EMPTY.source),this._boundSamplers=Object.create(null);let e=this._gl;this._premultiplyAlpha=!1,e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha)}};Qa.extension={type:[b.WebGLSystem],name:"texture"}});var GC={};Tg(GC,{WebGLRenderer:()=>Jp});var PR,BR,RR,FC,UC,OC,Jp,NC=p(()=>{B();f1();m1();p1();ra();Cp();ir();_1();T1();C1();A1();P1();B1();R1();D1();G1();z1();nC();hC();gC();IC();PR=[...Hl,ja,k1,y1,$a,za,Qa,Xa,Va,Ka,Ya,Wa,pC,qa,Ha],BR=[...Wl],RR=[Na,Ga,Oa],FC=[],UC=[],OC=[];O.handleByNamedList(b.WebGLSystem,FC);O.handleByNamedList(b.WebGLPipes,UC);O.handleByNamedList(b.WebGLPipesAdaptor,OC);O.add(...PR,...BR,...RR);Jp=class extends ti{constructor(){let e={name:"webgl",type:Ie.WEBGL,systems:FC,renderPipes:UC,renderPipeAdaptors:OC};super(e)}}});var Za=Fr(_n=>{"use strict";function DR(r,e,t){if(t===void 0&&(t=Array.prototype),r&&typeof t.find=="function")return t.find.call(r,e);for(var i=0;i<r.length;i++)if(Object.prototype.hasOwnProperty.call(r,i)){var s=r[i];if(e.call(void 0,s,i,r))return s}}function tg(r,e){return e===void 0&&(e=Object),e&&typeof e.freeze=="function"?e.freeze(r):r}function MR(r,e){if(r===null||typeof r!="object")throw new TypeError("target is not an object");for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r}var zC=tg({HTML:"text/html",isHTML:function(r){return r===zC.HTML},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),VC=tg({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(r){return r===VC.HTML},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"});_n.assign=MR;_n.find=DR;_n.freeze=tg;_n.MIME_TYPE=zC;_n.NAMESPACE=VC});var dg=Fr(si=>{var KC=Za(),ur=KC.find,Ja=KC.NAMESPACE;function IR(r){return r!==""}function FR(r){return r?r.split(/[\t\n\f\r ]+/).filter(IR):[]}function UR(r,e){return r.hasOwnProperty(e)||(r[e]=!0),r}function HC(r){if(!r)return[];var e=FR(r);return Object.keys(e.reduce(UR,{}))}function OR(r){return function(e){return r&&r.indexOf(e)!==-1}}function tc(r,e){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}function ft(r,e){var t=r.prototype;if(!(t instanceof e)){let s=function(){};var i=s;s.prototype=e.prototype,s=new s,tc(t,s),r.prototype=t=s}t.constructor!=r&&(typeof r!="function"&&console.error("unknown Class:"+r),t.constructor=r)}var mt={},Nt=mt.ELEMENT_NODE=1,yn=mt.ATTRIBUTE_NODE=2,lh=mt.TEXT_NODE=3,QC=mt.CDATA_SECTION_NODE=4,ZC=mt.ENTITY_REFERENCE_NODE=5,GR=mt.ENTITY_NODE=6,JC=mt.PROCESSING_INSTRUCTION_NODE=7,eE=mt.COMMENT_NODE=8,tE=mt.DOCUMENT_NODE=9,rE=mt.DOCUMENT_TYPE_NODE=10,Dr=mt.DOCUMENT_FRAGMENT_NODE=11,NR=mt.NOTATION_NODE=12,Ye={},ze={},Coe=Ye.INDEX_SIZE_ERR=(ze[1]="Index size error",1),Eoe=Ye.DOMSTRING_SIZE_ERR=(ze[2]="DOMString size error",2),dt=Ye.HIERARCHY_REQUEST_ERR=(ze[3]="Hierarchy request error",3),koe=Ye.WRONG_DOCUMENT_ERR=(ze[4]="Wrong document",4),Aoe=Ye.INVALID_CHARACTER_ERR=(ze[5]="Invalid character",5),Poe=Ye.NO_DATA_ALLOWED_ERR=(ze[6]="No data allowed",6),Boe=Ye.NO_MODIFICATION_ALLOWED_ERR=(ze[7]="No modification allowed",7),iE=Ye.NOT_FOUND_ERR=(ze[8]="Not found",8),Roe=Ye.NOT_SUPPORTED_ERR=(ze[9]="Not supported",9),WC=Ye.INUSE_ATTRIBUTE_ERR=(ze[10]="Attribute in use",10),Doe=Ye.INVALID_STATE_ERR=(ze[11]="Invalid state",11),Moe=Ye.SYNTAX_ERR=(ze[12]="Syntax error",12),Ioe=Ye.INVALID_MODIFICATION_ERR=(ze[13]="Invalid modification",13),Foe=Ye.NAMESPACE_ERR=(ze[14]="Invalid namespace",14),Uoe=Ye.INVALID_ACCESS_ERR=(ze[15]="Invalid access",15);function Be(r,e){if(e instanceof Error)var t=e;else t=this,Error.call(this,ze[r]),this.message=ze[r],Error.captureStackTrace&&Error.captureStackTrace(this,Be);return t.code=r,e&&(this.message=this.message+": "+e),t}Be.prototype=Error.prototype;tc(Ye,Be);function Rr(){}Rr.prototype={length:0,item:function(r){return r>=0&&r<this.length?this[r]:null},toString:function(r,e){for(var t=[],i=0;i<this.length;i++)bn(this[i],t,r,e);return t.join("")},filter:function(r){return Array.prototype.filter.call(this,r)},indexOf:function(r){return Array.prototype.indexOf.call(this,r)}};function Tn(r,e){this._node=r,this._refresh=e,sg(this)}function sg(r){var e=r._node._inc||r._node.ownerDocument._inc;if(r._inc!==e){var t=r._refresh(r._node);if(pE(r,"length",t.length),!r.$$length||t.length<r.$$length)for(var i=t.length;i in r;i++)Object.prototype.hasOwnProperty.call(r,i)&&delete r[i];tc(t,r),r._inc=e}}Tn.prototype.item=function(r){return sg(this),this[r]||null};ft(Tn,Rr);function hh(){}function sE(r,e){for(var t=r.length;t--;)if(r[t]===e)return t}function $C(r,e,t,i){if(i?e[sE(e,i)]=t:e[e.length++]=t,r){t.ownerElement=r;var s=r.ownerDocument;s&&(i&&aE(s,r,i),LR(s,r,t))}}function qC(r,e,t){var i=sE(e,t);if(i>=0){for(var s=e.length-1;i<s;)e[i]=e[++i];if(e.length=s,r){var n=r.ownerDocument;n&&(aE(n,r,t),t.ownerElement=null)}}else throw new Be(iE,new Error(r.tagName+"@"+t))}hh.prototype={length:0,item:Rr.prototype.item,getNamedItem:function(r){for(var e=this.length;e--;){var t=this[e];if(t.nodeName==r)return t}},setNamedItem:function(r){var e=r.ownerElement;if(e&&e!=this._ownerElement)throw new Be(WC);var t=this.getNamedItem(r.nodeName);return $C(this._ownerElement,this,r,t),t},setNamedItemNS:function(r){var e=r.ownerElement,t;if(e&&e!=this._ownerElement)throw new Be(WC);return t=this.getNamedItemNS(r.namespaceURI,r.localName),$C(this._ownerElement,this,r,t),t},removeNamedItem:function(r){var e=this.getNamedItem(r);return qC(this._ownerElement,this,e),e},removeNamedItemNS:function(r,e){var t=this.getNamedItemNS(r,e);return qC(this._ownerElement,this,t),t},getNamedItemNS:function(r,e){for(var t=this.length;t--;){var i=this[t];if(i.localName==e&&i.namespaceURI==r)return i}return null}};function nE(){}nE.prototype={hasFeature:function(r,e){return!0},createDocument:function(r,e,t){var i=new rc;if(i.implementation=this,i.childNodes=new Rr,i.doctype=t||null,t&&i.appendChild(t),e){var s=i.createElementNS(r,e);i.appendChild(s)}return i},createDocumentType:function(r,e,t){var i=new mh;return i.name=r,i.nodeName=r,i.publicId=e||"",i.systemId=t||"",i}};function ue(){}ue.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(r,e){return dh(this,r,e)},replaceChild:function(r,e){dh(this,r,e,uE),e&&this.removeChild(e)},removeChild:function(r){return cE(this,r)},appendChild:function(r){return this.insertBefore(r,null)},hasChildNodes:function(){return this.firstChild!=null},cloneNode:function(r){return ig(this.ownerDocument||this,this,r)},normalize:function(){for(var r=this.firstChild;r;){var e=r.nextSibling;e&&e.nodeType==lh&&r.nodeType==lh?(this.removeChild(e),r.appendData(e.data)):(r.normalize(),r=e)}},isSupported:function(r,e){return this.ownerDocument.implementation.hasFeature(r,e)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(r){for(var e=this;e;){var t=e._nsMap;if(t){for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)&&t[i]===r)return i}e=e.nodeType==yn?e.ownerDocument:e.parentNode}return null},lookupNamespaceURI:function(r){for(var e=this;e;){var t=e._nsMap;if(t&&Object.prototype.hasOwnProperty.call(t,r))return t[r];e=e.nodeType==yn?e.ownerDocument:e.parentNode}return null},isDefaultNamespace:function(r){var e=this.lookupPrefix(r);return e==null}};function oE(r){return r=="<"&&"<"||r==">"&&">"||r=="&"&&"&"||r=='"'&&"""||"&#"+r.charCodeAt()+";"}tc(mt,ue);tc(mt,ue.prototype);function ec(r,e){if(e(r))return!0;if(r=r.firstChild)do if(ec(r,e))return!0;while(r=r.nextSibling)}function rc(){this.ownerDocument=this}function LR(r,e,t){r&&r._inc++;var i=t.namespaceURI;i===Ja.XMLNS&&(e._nsMap[t.prefix?t.localName:""]=t.value)}function aE(r,e,t,i){r&&r._inc++;var s=t.namespaceURI;s===Ja.XMLNS&&delete e._nsMap[t.prefix?t.localName:""]}function ng(r,e,t){if(r&&r._inc){r._inc++;var i=e.childNodes;if(t)i[i.length++]=t;else{for(var s=e.firstChild,n=0;s;)i[n++]=s,s=s.nextSibling;i.length=n,delete i[i.length]}}}function cE(r,e){var t=e.previousSibling,i=e.nextSibling;return t?t.nextSibling=i:r.firstChild=i,i?i.previousSibling=t:r.lastChild=t,e.parentNode=null,e.previousSibling=null,e.nextSibling=null,ng(r.ownerDocument,r),e}function zR(r){return r&&(r.nodeType===ue.DOCUMENT_NODE||r.nodeType===ue.DOCUMENT_FRAGMENT_NODE||r.nodeType===ue.ELEMENT_NODE)}function VR(r){return r&&(lr(r)||og(r)||Mr(r)||r.nodeType===ue.DOCUMENT_FRAGMENT_NODE||r.nodeType===ue.COMMENT_NODE||r.nodeType===ue.PROCESSING_INSTRUCTION_NODE)}function Mr(r){return r&&r.nodeType===ue.DOCUMENT_TYPE_NODE}function lr(r){return r&&r.nodeType===ue.ELEMENT_NODE}function og(r){return r&&r.nodeType===ue.TEXT_NODE}function jC(r,e){var t=r.childNodes||[];if(ur(t,lr)||Mr(e))return!1;var i=ur(t,Mr);return!(e&&i&&t.indexOf(i)>t.indexOf(e))}function XC(r,e){var t=r.childNodes||[];function i(n){return lr(n)&&n!==e}if(ur(t,i))return!1;var s=ur(t,Mr);return!(e&&s&&t.indexOf(s)>t.indexOf(e))}function HR(r,e,t){if(!zR(r))throw new Be(dt,"Unexpected parent node type "+r.nodeType);if(t&&t.parentNode!==r)throw new Be(iE,"child not in parent");if(!VR(e)||Mr(e)&&r.nodeType!==ue.DOCUMENT_NODE)throw new Be(dt,"Unexpected node type "+e.nodeType+" for parent node type "+r.nodeType)}function WR(r,e,t){var i=r.childNodes||[],s=e.childNodes||[];if(e.nodeType===ue.DOCUMENT_FRAGMENT_NODE){var n=s.filter(lr);if(n.length>1||ur(s,og))throw new Be(dt,"More than one element or text in fragment");if(n.length===1&&!jC(r,t))throw new Be(dt,"Element in fragment can not be inserted before doctype")}if(lr(e)&&!jC(r,t))throw new Be(dt,"Only one element can be added and only after doctype");if(Mr(e)){if(ur(i,Mr))throw new Be(dt,"Only one doctype is allowed");var o=ur(i,lr);if(t&&i.indexOf(o)<i.indexOf(t))throw new Be(dt,"Doctype can only be inserted before an element");if(!t&&o)throw new Be(dt,"Doctype can not be appended since element is present")}}function uE(r,e,t){var i=r.childNodes||[],s=e.childNodes||[];if(e.nodeType===ue.DOCUMENT_FRAGMENT_NODE){var n=s.filter(lr);if(n.length>1||ur(s,og))throw new Be(dt,"More than one element or text in fragment");if(n.length===1&&!XC(r,t))throw new Be(dt,"Element in fragment can not be inserted before doctype")}if(lr(e)&&!XC(r,t))throw new Be(dt,"Only one element can be added and only after doctype");if(Mr(e)){let c=function(u){return Mr(u)&&u!==t};var a=c;if(ur(i,c))throw new Be(dt,"Only one doctype is allowed");var o=ur(i,lr);if(t&&i.indexOf(o)<i.indexOf(t))throw new Be(dt,"Doctype can only be inserted before an element")}}function dh(r,e,t,i){HR(r,e,t),r.nodeType===ue.DOCUMENT_NODE&&(i||WR)(r,e,t);var s=e.parentNode;if(s&&s.removeChild(e),e.nodeType===Dr){var n=e.firstChild;if(n==null)return e;var o=e.lastChild}else n=o=e;var a=t?t.previousSibling:r.lastChild;n.previousSibling=a,o.nextSibling=t,a?a.nextSibling=n:r.firstChild=n,t==null?r.lastChild=o:t.previousSibling=o;do n.parentNode=r;while(n!==o&&(n=n.nextSibling));return ng(r.ownerDocument||r,r),e.nodeType==Dr&&(e.firstChild=e.lastChild=null),e}function $R(r,e){return e.parentNode&&e.parentNode.removeChild(e),e.parentNode=r,e.previousSibling=r.lastChild,e.nextSibling=null,e.previousSibling?e.previousSibling.nextSibling=e:r.firstChild=e,r.lastChild=e,ng(r.ownerDocument,r,e),e}rc.prototype={nodeName:"#document",nodeType:tE,doctype:null,documentElement:null,_inc:1,insertBefore:function(r,e){if(r.nodeType==Dr){for(var t=r.firstChild;t;){var i=t.nextSibling;this.insertBefore(t,e),t=i}return r}return dh(this,r,e),r.ownerDocument=this,this.documentElement===null&&r.nodeType===Nt&&(this.documentElement=r),r},removeChild:function(r){return this.documentElement==r&&(this.documentElement=null),cE(this,r)},replaceChild:function(r,e){dh(this,r,e,uE),r.ownerDocument=this,e&&this.removeChild(e),lr(r)&&(this.documentElement=r)},importNode:function(r,e){return mE(this,r,e)},getElementById:function(r){var e=null;return ec(this.documentElement,function(t){if(t.nodeType==Nt&&t.getAttribute("id")==r)return e=t,!0}),e},getElementsByClassName:function(r){var e=HC(r);return new Tn(this,function(t){var i=[];return e.length>0&&ec(t.documentElement,function(s){if(s!==t&&s.nodeType===Nt){var n=s.getAttribute("class");if(n){var o=r===n;if(!o){var a=HC(n);o=e.every(OR(a))}o&&i.push(s)}}}),i})},createElement:function(r){var e=new ts;e.ownerDocument=this,e.nodeName=r,e.tagName=r,e.localName=r,e.childNodes=new Rr;var t=e.attributes=new hh;return t._ownerElement=e,e},createDocumentFragment:function(){var r=new ph;return r.ownerDocument=this,r.childNodes=new Rr,r},createTextNode:function(r){var e=new ag;return e.ownerDocument=this,e.appendData(r),e},createComment:function(r){var e=new cg;return e.ownerDocument=this,e.appendData(r),e},createCDATASection:function(r){var e=new ug;return e.ownerDocument=this,e.appendData(r),e},createProcessingInstruction:function(r,e){var t=new hg;return t.ownerDocument=this,t.tagName=t.nodeName=t.target=r,t.nodeValue=t.data=e,t},createAttribute:function(r){var e=new fh;return e.ownerDocument=this,e.name=r,e.nodeName=r,e.localName=r,e.specified=!0,e},createEntityReference:function(r){var e=new lg;return e.ownerDocument=this,e.nodeName=r,e},createElementNS:function(r,e){var t=new ts,i=e.split(":"),s=t.attributes=new hh;return t.childNodes=new Rr,t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.namespaceURI=r,i.length==2?(t.prefix=i[0],t.localName=i[1]):t.localName=e,s._ownerElement=t,t},createAttributeNS:function(r,e){var t=new fh,i=e.split(":");return t.ownerDocument=this,t.nodeName=e,t.name=e,t.namespaceURI=r,t.specified=!0,i.length==2?(t.prefix=i[0],t.localName=i[1]):t.localName=e,t}};ft(rc,ue);function ts(){this._nsMap={}}ts.prototype={nodeType:Nt,hasAttribute:function(r){return this.getAttributeNode(r)!=null},getAttribute:function(r){var e=this.getAttributeNode(r);return e&&e.value||""},getAttributeNode:function(r){return this.attributes.getNamedItem(r)},setAttribute:function(r,e){var t=this.ownerDocument.createAttribute(r);t.value=t.nodeValue=""+e,this.setAttributeNode(t)},removeAttribute:function(r){var e=this.getAttributeNode(r);e&&this.removeAttributeNode(e)},appendChild:function(r){return r.nodeType===Dr?this.insertBefore(r,null):$R(this,r)},setAttributeNode:function(r){return this.attributes.setNamedItem(r)},setAttributeNodeNS:function(r){return this.attributes.setNamedItemNS(r)},removeAttributeNode:function(r){return this.attributes.removeNamedItem(r.nodeName)},removeAttributeNS:function(r,e){var t=this.getAttributeNodeNS(r,e);t&&this.removeAttributeNode(t)},hasAttributeNS:function(r,e){return this.getAttributeNodeNS(r,e)!=null},getAttributeNS:function(r,e){var t=this.getAttributeNodeNS(r,e);return t&&t.value||""},setAttributeNS:function(r,e,t){var i=this.ownerDocument.createAttributeNS(r,e);i.value=i.nodeValue=""+t,this.setAttributeNode(i)},getAttributeNodeNS:function(r,e){return this.attributes.getNamedItemNS(r,e)},getElementsByTagName:function(r){return new Tn(this,function(e){var t=[];return ec(e,function(i){i!==e&&i.nodeType==Nt&&(r==="*"||i.tagName==r)&&t.push(i)}),t})},getElementsByTagNameNS:function(r,e){return new Tn(this,function(t){var i=[];return ec(t,function(s){s!==t&&s.nodeType===Nt&&(r==="*"||s.namespaceURI===r)&&(e==="*"||s.localName==e)&&i.push(s)}),i})}};rc.prototype.getElementsByTagName=ts.prototype.getElementsByTagName;rc.prototype.getElementsByTagNameNS=ts.prototype.getElementsByTagNameNS;ft(ts,ue);function fh(){}fh.prototype.nodeType=yn;ft(fh,ue);function ic(){}ic.prototype={data:"",substringData:function(r,e){return this.data.substring(r,r+e)},appendData:function(r){r=this.data+r,this.nodeValue=this.data=r,this.length=r.length},insertData:function(r,e){this.replaceData(r,0,e)},appendChild:function(r){throw new Error(ze[dt])},deleteData:function(r,e){this.replaceData(r,e,"")},replaceData:function(r,e,t){var i=this.data.substring(0,r),s=this.data.substring(r+e);t=i+t+s,this.nodeValue=this.data=t,this.length=t.length}};ft(ic,ue);function ag(){}ag.prototype={nodeName:"#text",nodeType:lh,splitText:function(r){var e=this.data,t=e.substring(r);e=e.substring(0,r),this.data=this.nodeValue=e,this.length=e.length;var i=this.ownerDocument.createTextNode(t);return this.parentNode&&this.parentNode.insertBefore(i,this.nextSibling),i}};ft(ag,ic);function cg(){}cg.prototype={nodeName:"#comment",nodeType:eE};ft(cg,ic);function ug(){}ug.prototype={nodeName:"#cdata-section",nodeType:QC};ft(ug,ic);function mh(){}mh.prototype.nodeType=rE;ft(mh,ue);function lE(){}lE.prototype.nodeType=NR;ft(lE,ue);function hE(){}hE.prototype.nodeType=GR;ft(hE,ue);function lg(){}lg.prototype.nodeType=ZC;ft(lg,ue);function ph(){}ph.prototype.nodeName="#document-fragment";ph.prototype.nodeType=Dr;ft(ph,ue);function hg(){}hg.prototype.nodeType=JC;ft(hg,ue);function dE(){}dE.prototype.serializeToString=function(r,e,t){return fE.call(r,e,t)};ue.prototype.toString=fE;function fE(r,e){var t=[],i=this.nodeType==9&&this.documentElement||this,s=i.prefix,n=i.namespaceURI;if(n&&s==null){var s=i.lookupPrefix(n);if(s==null)var o=[{namespace:n,prefix:null}]}return bn(this,t,r,e,o),t.join("")}function YC(r,e,t){var i=r.prefix||"",s=r.namespaceURI;if(!s||i==="xml"&&s===Ja.XML||s===Ja.XMLNS)return!1;for(var n=t.length;n--;){var o=t[n];if(o.prefix===i)return o.namespace!==s}return!0}function rg(r,e,t){r.push(" ",e,'="',t.replace(/[<>&"\t\n\r]/g,oE),'"')}function bn(r,e,t,i,s){if(s||(s=[]),i)if(r=i(r),r){if(typeof r=="string"){e.push(r);return}}else return;switch(r.nodeType){case Nt:var n=r.attributes,o=n.length,_=r.firstChild,a=r.tagName;t=Ja.isHTML(r.namespaceURI)||t;var c=a;if(!t&&!r.prefix&&r.namespaceURI){for(var u,l=0;l<n.length;l++)if(n.item(l).name==="xmlns"){u=n.item(l).value;break}if(!u)for(var h=s.length-1;h>=0;h--){var f=s[h];if(f.prefix===""&&f.namespace===r.namespaceURI){u=f.namespace;break}}if(u!==r.namespaceURI)for(var h=s.length-1;h>=0;h--){var f=s[h];if(f.namespace===r.namespaceURI){f.prefix&&(c=f.prefix+":"+a);break}}}e.push("<",c);for(var d=0;d<o;d++){var m=n.item(d);m.prefix=="xmlns"?s.push({prefix:m.localName,namespace:m.value}):m.nodeName=="xmlns"&&s.push({prefix:"",namespace:m.value})}for(var d=0;d<o;d++){var m=n.item(d);if(YC(m,t,s)){var x=m.prefix||"",g=m.namespaceURI;rg(e,x?"xmlns:"+x:"xmlns",g),s.push({prefix:x,namespace:g})}bn(m,e,t,i,s)}if(a===c&&YC(r,t,s)){var x=r.prefix||"",g=r.namespaceURI;rg(e,x?"xmlns:"+x:"xmlns",g),s.push({prefix:x,namespace:g})}if(_||t&&!/^(?:meta|link|img|br|hr|input)$/i.test(a)){if(e.push(">"),t&&/^script$/i.test(a))for(;_;)_.data?e.push(_.data):bn(_,e,t,i,s.slice()),_=_.nextSibling;else for(;_;)bn(_,e,t,i,s.slice()),_=_.nextSibling;e.push("</",c,">")}else e.push("/>");return;case tE:case Dr:for(var _=r.firstChild;_;)bn(_,e,t,i,s.slice()),_=_.nextSibling;return;case yn:return rg(e,r.name,r.value);case lh:return e.push(r.data.replace(/[<&>]/g,oE));case QC:return e.push("<![CDATA[",r.data,"]]>");case eE:return e.push("<!--",r.data,"-->");case rE:var y=r.publicId,S=r.systemId;if(e.push("<!DOCTYPE ",r.name),y)e.push(" PUBLIC ",y),S&&S!="."&&e.push(" ",S),e.push(">");else if(S&&S!=".")e.push(" SYSTEM ",S,">");else{var T=r.internalSubset;T&&e.push(" [",T,"]"),e.push(">")}return;case JC:return e.push("<?",r.target," ",r.data,"?>");case ZC:return e.push("&",r.nodeName,";");default:e.push("??",r.nodeName)}}function mE(r,e,t){var i;switch(e.nodeType){case Nt:i=e.cloneNode(!1),i.ownerDocument=r;case Dr:break;case yn:t=!0;break}if(i||(i=e.cloneNode(!1)),i.ownerDocument=r,i.parentNode=null,t)for(var s=e.firstChild;s;)i.appendChild(mE(r,s,t)),s=s.nextSibling;return i}function ig(r,e,t){var i=new e.constructor;for(var s in e)if(Object.prototype.hasOwnProperty.call(e,s)){var n=e[s];typeof n!="object"&&n!=i[s]&&(i[s]=n)}switch(e.childNodes&&(i.childNodes=new Rr),i.ownerDocument=r,i.nodeType){case Nt:var o=e.attributes,a=i.attributes=new hh,c=o.length;a._ownerElement=i;for(var u=0;u<c;u++)i.setAttributeNode(ig(r,o.item(u),!0));break;case yn:t=!0}if(t)for(var l=e.firstChild;l;)i.appendChild(ig(r,l,t)),l=l.nextSibling;return i}function pE(r,e,t){r[e]=t}try{if(Object.defineProperty){let r=function(e){switch(e.nodeType){case Nt:case Dr:var t=[];for(e=e.firstChild;e;)e.nodeType!==7&&e.nodeType!==8&&t.push(r(e)),e=e.nextSibling;return t.join("");default:return e.nodeValue}};qR=r,Object.defineProperty(Tn.prototype,"length",{get:function(){return sg(this),this.$$length}}),Object.defineProperty(ue.prototype,"textContent",{get:function(){return r(this)},set:function(e){switch(this.nodeType){case Nt:case Dr:for(;this.firstChild;)this.removeChild(this.firstChild);(e||String(e))&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e}}}),pE=function(e,t,i){e["$$"+t]=i}}}catch{}var qR;si.DocumentType=mh;si.DOMException=Be;si.DOMImplementation=nE;si.Element=ts;si.Node=ue;si.NodeList=Rr;si.XMLSerializer=dE});var xE=Fr(sc=>{"use strict";var gE=Za().freeze;sc.XML_ENTITIES=gE({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'});sc.HTML_ENTITIES=gE({Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",AMP:"&",amp:"&",And:"\u2A53",and:"\u2227",andand:"\u2A55",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",ap:"\u2248",apacir:"\u2A6F",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",Barwed:"\u2306",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",Because:"\u2235",because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxDL:"\u2557",boxDl:"\u2556",boxdL:"\u2555",boxdl:"\u2510",boxDR:"\u2554",boxDr:"\u2553",boxdR:"\u2552",boxdr:"\u250C",boxH:"\u2550",boxh:"\u2500",boxHD:"\u2566",boxHd:"\u2564",boxhD:"\u2565",boxhd:"\u252C",boxHU:"\u2569",boxHu:"\u2567",boxhU:"\u2568",boxhu:"\u2534",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxUL:"\u255D",boxUl:"\u255C",boxuL:"\u255B",boxul:"\u2518",boxUR:"\u255A",boxUr:"\u2559",boxuR:"\u2558",boxur:"\u2514",boxV:"\u2551",boxv:"\u2502",boxVH:"\u256C",boxVh:"\u256B",boxvH:"\u256A",boxvh:"\u253C",boxVL:"\u2563",boxVl:"\u2562",boxvL:"\u2561",boxvl:"\u2524",boxVR:"\u2560",boxVr:"\u255F",boxvR:"\u255E",boxvr:"\u251C",bprime:"\u2035",Breve:"\u02D8",breve:"\u02D8",brvbar:"\xA6",Bscr:"\u212C",bscr:"\u{1D4B7}",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsol:"\\",bsolb:"\u29C5",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",Cap:"\u22D2",cap:"\u2229",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",CenterDot:"\xB7",centerdot:"\xB7",Cfr:"\u212D",cfr:"\u{1D520}",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",cir:"\u25CB",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",Colon:"\u2237",colon:":",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",Conint:"\u222F",conint:"\u222E",ContourIntegral:"\u222E",Copf:"\u2102",copf:"\u{1D554}",coprod:"\u2210",Coproduct:"\u2210",COPY:"\xA9",copy:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",Cross:"\u2A2F",cross:"\u2717",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",Cup:"\u22D3",cup:"\u222A",cupbrcap:"\u2A48",CupCap:"\u224D",cupcap:"\u2A46",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",Dagger:"\u2021",dagger:"\u2020",daleth:"\u2138",Darr:"\u21A1",dArr:"\u21D3",darr:"\u2193",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",DD:"\u2145",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21CA",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",Diamond:"\u22C4",diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrow:"\u2193",Downarrow:"\u21D3",downarrow:"\u2193",DownArrowBar:"\u2913",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVector:"\u21BD",DownLeftVectorBar:"\u2956",DownRightTeeVector:"\u295F",DownRightVector:"\u21C1",DownRightVectorBar:"\u2957",DownTee:"\u22A4",DownTeeArrow:"\u21A7",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",ecir:"\u2256",Ecirc:"\xCA",ecirc:"\xEA",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",eDot:"\u2251",edot:"\u0117",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp:"\u2003",emsp13:"\u2004",emsp14:"\u2005",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",Escr:"\u2130",escr:"\u212F",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",ExponentialE:"\u2147",exponentiale:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",ForAll:"\u2200",forall:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",Fscr:"\u2131",fscr:"\u{1D4BB}",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",gE:"\u2267",ge:"\u2265",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",ges:"\u2A7E",gescc:"\u2AA9",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",Gg:"\u22D9",gg:"\u226B",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gl:"\u2277",gla:"\u2AA5",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gnE:"\u2269",gne:"\u2A88",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",Gt:"\u226B",GT:">",gt:">",gtcc:"\u2AA7",gtcir:"\u2A7A",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",hArr:"\u21D4",harr:"\u2194",harrcir:"\u2948",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",Hfr:"\u210C",hfr:"\u{1D525}",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",Hopf:"\u210D",hopf:"\u{1D559}",horbar:"\u2015",HorizontalLine:"\u2500",Hscr:"\u210B",hscr:"\u{1D4BD}",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",Ifr:"\u2111",ifr:"\u{1D526}",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Im:"\u2111",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",in:"\u2208",incare:"\u2105",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",Int:"\u222C",int:"\u222B",intcal:"\u22BA",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",Iscr:"\u2110",iscr:"\u{1D4BE}",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",Lang:"\u27EA",lang:"\u27E8",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",Larr:"\u219E",lArr:"\u21D0",larr:"\u2190",larrb:"\u21E4",larrbfs:"\u291F",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",lat:"\u2AAB",lAtail:"\u291B",latail:"\u2919",late:"\u2AAD",lates:"\u2AAD\uFE00",lBarr:"\u290E",lbarr:"\u290C",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",lE:"\u2266",le:"\u2264",LeftAngleBracket:"\u27E8",LeftArrow:"\u2190",Leftarrow:"\u21D0",leftarrow:"\u2190",LeftArrowBar:"\u21E4",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21C3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTee:"\u22A3",LeftTeeArrow:"\u21A4",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangle:"\u22B2",LeftTriangleBar:"\u29CF",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21BF",LeftUpVectorBar:"\u2958",LeftVector:"\u21BC",LeftVectorBar:"\u2952",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",les:"\u2A7D",lescc:"\u2AA8",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",Ll:"\u22D8",ll:"\u226A",llarr:"\u21C7",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoust:"\u23B0",lmoustache:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lnE:"\u2268",lne:"\u2A87",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftarrow:"\u27F5",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",longrightarrow:"\u27F6",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",Lscr:"\u2112",lscr:"\u{1D4C1}",Lsh:"\u21B0",lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",Lt:"\u226A",LT:"<",lt:"<",ltcc:"\u2AA6",ltcir:"\u2A79",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",mid:"\u2223",midast:"*",midcir:"\u2AF0",middot:"\xB7",minus:"\u2212",minusb:"\u229F",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",Mscr:"\u2133",mscr:"\u{1D4C2}",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266E",natural:"\u266E",naturals:"\u2115",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",ne:"\u2260",nearhk:"\u2924",neArr:"\u21D7",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:`
|
|
1090
|
-
`,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nhArr:"\u21CE",nharr:"\u21AE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlArr:"\u21CD",nlarr:"\u219A",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nLeftarrow:"\u21CD",nleftarrow:"\u219A",nLeftrightarrow:"\u21CE",nleftrightarrow:"\u21AE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",Nopf:"\u2115",nopf:"\u{1D55F}",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangle:"\u22EA",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangle:"\u22EB",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",npre:"\u2AAF\u0338",nprec:"\u2280",npreceq:"\u2AAF\u0338",nrArr:"\u21CF",nrarr:"\u219B",nrarrc:"\u2933\u0338",nrarrw:"\u219D\u0338",nRightarrow:"\u21CF",nrightarrow:"\u219B",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nVDash:"\u22AF",nVdash:"\u22AE",nvDash:"\u22AD",nvdash:"\u22AC",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwArr:"\u21D6",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",ocir:"\u229A",Ocirc:"\xD4",ocirc:"\xF4",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",Or:"\u2A54",or:"\u2228",orarr:"\u21BB",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",Otimes:"\u2A37",otimes:"\u2297",otimesas:"\u2A36",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",par:"\u2225",para:"\xB6",parallel:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plus:"+",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",Popf:"\u2119",popf:"\u{1D561}",pound:"\xA3",Pr:"\u2ABB",pr:"\u227A",prap:"\u2AB7",prcue:"\u227C",prE:"\u2AB3",pre:"\u2AAF",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",Prime:"\u2033",prime:"\u2032",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportion:"\u2237",Proportional:"\u221D",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",Qopf:"\u211A",qopf:"\u{1D562}",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",QUOT:'"',quot:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",Rang:"\u27EB",rang:"\u27E9",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",Rarr:"\u21A0",rArr:"\u21D2",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",rAtail:"\u291C",ratail:"\u291A",ratio:"\u2236",rationals:"\u211A",RBarr:"\u2910",rBarr:"\u290F",rbarr:"\u290D",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",Re:"\u211C",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",rect:"\u25AD",REG:"\xAE",reg:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",Rfr:"\u211C",rfr:"\u{1D52F}",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrow:"\u2192",Rightarrow:"\u21D2",rightarrow:"\u2192",RightArrowBar:"\u21E5",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVector:"\u21C2",RightDownVectorBar:"\u2955",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTee:"\u22A2",RightTeeArrow:"\u21A6",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangle:"\u22B3",RightTriangleBar:"\u29D0",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVector:"\u21BE",RightUpVectorBar:"\u2954",RightVector:"\u21C0",RightVectorBar:"\u2953",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoust:"\u23B1",rmoustache:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",Ropf:"\u211D",ropf:"\u{1D563}",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",Rscr:"\u211B",rscr:"\u{1D4C7}",Rsh:"\u21B1",rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",Sc:"\u2ABC",sc:"\u227B",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",sccue:"\u227D",scE:"\u2AB4",sce:"\u2AB0",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdot:"\u22C5",sdotb:"\u22A1",sdote:"\u2A66",searhk:"\u2925",seArr:"\u21D8",searr:"\u2198",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",sol:"/",solb:"\u29C4",solbar:"\u233F",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25A1",Square:"\u25A1",square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",Sub:"\u22D0",sub:"\u2282",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",Subset:"\u22D0",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",Sum:"\u2211",sum:"\u2211",sung:"\u266A",Sup:"\u22D1",sup:"\u2283",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",Supset:"\u22D1",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swArr:"\u21D9",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",Therefore:"\u2234",therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",thinsp:"\u2009",ThinSpace:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",Tilde:"\u223C",tilde:"\u02DC",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",times:"\xD7",timesb:"\u22A0",timesbar:"\u2A31",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",top:"\u22A4",topbot:"\u2336",topcir:"\u2AF1",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",TRADE:"\u2122",trade:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",Uarr:"\u219F",uArr:"\u21D1",uarr:"\u2191",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrow:"\u2191",Uparrow:"\u21D1",uparrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21C5",UpDownArrow:"\u2195",Updownarrow:"\u21D5",updownarrow:"\u2195",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03D2",upsi:"\u03C5",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTee:"\u22A5",UpTeeArrow:"\u21A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",vArr:"\u21D5",varr:"\u2195",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",Vbar:"\u2AEB",vBar:"\u2AE8",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",VDash:"\u22AB",Vdash:"\u22A9",vDash:"\u22A8",vdash:"\u22A2",Vdashl:"\u2AE6",Vee:"\u22C1",vee:"\u2228",veebar:"\u22BB",veeeq:"\u225A",vellip:"\u22EE",Verbar:"\u2016",verbar:"|",Vert:"\u2016",vert:"|",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",Wedge:"\u22C0",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xhArr:"\u27FA",xharr:"\u27F7",Xi:"\u039E",xi:"\u03BE",xlArr:"\u27F8",xlarr:"\u27F5",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrArr:"\u27F9",xrarr:"\u27F6",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",Yuml:"\u0178",yuml:"\xFF",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",Zfr:"\u2128",zfr:"\u{1D537}",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",Zopf:"\u2124",zopf:"\u{1D56B}",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"});sc.entityMap=sc.HTML_ENTITIES});var CE=Fr(mg=>{var cc=Za().NAMESPACE,fg=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,_E=new RegExp("[\\-\\.0-9"+fg.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),bE=new RegExp("^"+fg.source+_E.source+"*(?::"+fg.source+_E.source+"*)?$"),nc=0,ni=1,wn=2,oc=3,Sn=4,vn=5,ac=6,gh=7;function Cn(r,e){this.message=r,this.locator=e,Error.captureStackTrace&&Error.captureStackTrace(this,Cn)}Cn.prototype=new Error;Cn.prototype.name=Cn.name;function wE(){}wE.prototype={parse:function(r,e,t){var i=this.domBuilder;i.startDocument(),SE(e,e={}),jR(r,e,t,i,this.errorHandler),i.endDocument()}};function jR(r,e,t,i,s){function n(U){if(U>65535){U-=65536;var H=55296+(U>>10),wh=56320+(U&1023);return String.fromCharCode(H,wh)}else return String.fromCharCode(U)}function o(U){var H=U.slice(1,-1);return Object.hasOwnProperty.call(t,H)?t[H]:H.charAt(0)==="#"?n(parseInt(H.substr(1).replace("x","0x"))):(s.error("entity not found:"+U),U)}function a(U){if(U>x){var H=r.substring(x,U).replace(/&#?\w+;/g,o);f&&c(x),i.characters(H,0,U-x),x=U}}function c(U,H){for(;U>=l&&(H=h.exec(r));)u=H.index,l=u+H[0].length,f.lineNumber++;f.columnNumber=U-u+1}for(var u=0,l=0,h=/.*(?:\r\n?|\n)|.*$/g,f=i.locator,d=[{currentNSMap:e}],m={},x=0;;){try{var g=r.indexOf("<",x);if(g<0){if(!r.substr(x).match(/^\s*$/)){var _=i.doc,y=_.createTextNode(r.substr(x));_.appendChild(y),i.currentElement=y}return}switch(g>x&&a(g),r.charAt(g+1)){case"/":var k=r.indexOf(">",g+3),S=r.substring(g+2,k).replace(/[ \t\n\r]+$/g,""),T=d.pop();k<0?(S=r.substring(g+2).replace(/[\s<].*/,""),s.error("end tag name: "+S+" is not complete:"+T.tagName),k=g+1+S.length):S.match(/\s</)&&(S=S.replace(/[\s<].*/,""),s.error("end tag name: "+S+" maybe not complete"),k=g+1+S.length);var C=T.localNSMap,v=T.tagName==S,E=v||T.tagName&&T.tagName.toLowerCase()==S.toLowerCase();if(E){if(i.endElement(T.uri,T.localName,S),C)for(var D in C)Object.prototype.hasOwnProperty.call(C,D)&&i.endPrefixMapping(D);v||s.fatalError("end tag name: "+S+" is not match the current start tagName:"+T.tagName)}else d.push(T);k++;break;case"?":f&&c(g),k=ZR(r,g,i);break;case"!":f&&c(g),k=QR(r,g,i,s);break;default:f&&c(g);var A=new vE,P=d[d.length-1].currentNSMap,k=XR(r,g,A,P,o,s),G=A.length;if(!A.closed&&KR(r,k,A.tagName,m)&&(A.closed=!0,t.nbsp||s.warning("unclosed xml attribute")),f&&G){for(var j=yE(f,{}),be=0;be<G;be++){var Tt=A[be];c(Tt.offset),Tt.locator=yE(f,{})}i.locator=j,TE(A,i,P)&&d.push(A),i.locator=f}else TE(A,i,P)&&d.push(A);cc.isHTML(A.uri)&&!A.closed?k=YR(r,k,A.tagName,o,i):k++}}catch(U){if(U instanceof Cn)throw U;s.error("element parse error: "+U),k=-1}k>x?x=k:a(Math.max(g,x)+1)}}function yE(r,e){return e.lineNumber=r.lineNumber,e.columnNumber=r.columnNumber,e}function XR(r,e,t,i,s,n){function o(d,m,x){t.attributeNames.hasOwnProperty(d)&&n.fatalError("Attribute "+d+" redefined"),t.addValue(d,m.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,s),x)}for(var a,c,u=++e,l=nc;;){var h=r.charAt(u);switch(h){case"=":if(l===ni)a=r.slice(e,u),l=oc;else if(l===wn)l=oc;else throw new Error("attribute equal must after attrName");break;case"'":case'"':if(l===oc||l===ni)if(l===ni&&(n.warning('attribute value must after "="'),a=r.slice(e,u)),e=u+1,u=r.indexOf(h,e),u>0)c=r.slice(e,u),o(a,c,e-1),l=vn;else throw new Error("attribute value no end '"+h+"' match");else if(l==Sn)c=r.slice(e,u),o(a,c,e),n.warning('attribute "'+a+'" missed start quot('+h+")!!"),e=u+1,l=vn;else throw new Error('attribute value must after "="');break;case"/":switch(l){case nc:t.setTagName(r.slice(e,u));case vn:case ac:case gh:l=gh,t.closed=!0;case Sn:case ni:break;case wn:t.closed=!0;break;default:throw new Error("attribute invalid close char('/')")}break;case"":return n.error("unexpected end of input"),l==nc&&t.setTagName(r.slice(e,u)),u;case">":switch(l){case nc:t.setTagName(r.slice(e,u));case vn:case ac:case gh:break;case Sn:case ni:c=r.slice(e,u),c.slice(-1)==="/"&&(t.closed=!0,c=c.slice(0,-1));case wn:l===wn&&(c=a),l==Sn?(n.warning('attribute "'+c+'" missed quot(")!'),o(a,c,e)):((!cc.isHTML(i[""])||!c.match(/^(?:disabled|checked|selected)$/i))&&n.warning('attribute "'+c+'" missed value!! "'+c+'" instead!!'),o(c,c,e));break;case oc:throw new Error("attribute value missed!!")}return u;case"\x80":h=" ";default:if(h<=" ")switch(l){case nc:t.setTagName(r.slice(e,u)),l=ac;break;case ni:a=r.slice(e,u),l=wn;break;case Sn:var c=r.slice(e,u);n.warning('attribute "'+c+'" missed quot(")!!'),o(a,c,e);case vn:l=ac;break}else switch(l){case wn:var f=t.tagName;(!cc.isHTML(i[""])||!a.match(/^(?:disabled|checked|selected)$/i))&&n.warning('attribute "'+a+'" missed value!! "'+a+'" instead2!!'),o(a,a,e),e=u,l=ni;break;case vn:n.warning('attribute space is required"'+a+'"!!');case ac:l=ni,e=u;break;case oc:l=Sn,e=u;break;case gh:throw new Error("elements closed character '/' and '>' must be connected to")}}u++}}function TE(r,e,t){for(var i=r.tagName,s=null,h=r.length;h--;){var n=r[h],o=n.qName,a=n.value,f=o.indexOf(":");if(f>0)var c=n.prefix=o.slice(0,f),u=o.slice(f+1),l=c==="xmlns"&&u;else u=o,c=null,l=o==="xmlns"&&"";n.localName=u,l!==!1&&(s==null&&(s={},SE(t,t={})),t[l]=s[l]=a,n.uri=cc.XMLNS,e.startPrefixMapping(l,a))}for(var h=r.length;h--;){n=r[h];var c=n.prefix;c&&(c==="xml"&&(n.uri=cc.XML),c!=="xmlns"&&(n.uri=t[c||""]))}var f=i.indexOf(":");f>0?(c=r.prefix=i.slice(0,f),u=r.localName=i.slice(f+1)):(c=null,u=r.localName=i);var d=r.uri=t[c||""];if(e.startElement(d,u,i,r),r.closed){if(e.endElement(d,u,i),s)for(c in s)Object.prototype.hasOwnProperty.call(s,c)&&e.endPrefixMapping(c)}else return r.currentNSMap=t,r.localNSMap=s,!0}function YR(r,e,t,i,s){if(/^(?:script|textarea)$/i.test(t)){var n=r.indexOf("</"+t+">",e),o=r.substring(e+1,n);if(/[&<]/.test(o))return/^script$/i.test(t)?(s.characters(o,0,o.length),n):(o=o.replace(/&#?\w+;/g,i),s.characters(o,0,o.length),n)}return e+1}function KR(r,e,t,i){var s=i[t];return s==null&&(s=r.lastIndexOf("</"+t+">"),s<e&&(s=r.lastIndexOf("</"+t)),i[t]=s),s<e}function SE(r,e){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}function QR(r,e,t,i){var s=r.charAt(e+2);switch(s){case"-":if(r.charAt(e+3)==="-"){var n=r.indexOf("-->",e+4);return n>e?(t.comment(r,e+4,n-e-4),n+3):(i.error("Unclosed comment"),-1)}else return-1;default:if(r.substr(e+3,6)=="CDATA["){var n=r.indexOf("]]>",e+9);return t.startCDATA(),t.characters(r,e+9,n-e-9),t.endCDATA(),n+3}var o=JR(r,e),a=o.length;if(a>1&&/!doctype/i.test(o[0][0])){var c=o[1][0],u=!1,l=!1;a>3&&(/^public$/i.test(o[2][0])?(u=o[3][0],l=a>4&&o[4][0]):/^system$/i.test(o[2][0])&&(l=o[3][0]));var h=o[a-1];return t.startDTD(c,u,l),t.endDTD(),h.index+h[0].length}}return-1}function ZR(r,e,t){var i=r.indexOf("?>",e);if(i){var s=r.substring(e,i).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(s){var n=s[0].length;return t.processingInstruction(s[1],s[2]),i+2}else return-1}return-1}function vE(){this.attributeNames={}}vE.prototype={setTagName:function(r){if(!bE.test(r))throw new Error("invalid tagName:"+r);this.tagName=r},addValue:function(r,e,t){if(!bE.test(r))throw new Error("invalid attribute:"+r);this.attributeNames[r]=this.length,this[this.length++]={qName:r,value:e,offset:t}},length:0,getLocalName:function(r){return this[r].localName},getLocator:function(r){return this[r].locator},getQName:function(r){return this[r].qName},getURI:function(r){return this[r].uri},getValue:function(r){return this[r].value}};function JR(r,e){var t,i=[],s=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;for(s.lastIndex=e,s.exec(r);t=s.exec(r);)if(i.push(t),t[1])return i}mg.XMLReader=wE;mg.ParseError=Cn});var DE=Fr(_h=>{var eD=Za(),tD=dg(),EE=xE(),PE=CE(),rD=tD.DOMImplementation,kE=eD.NAMESPACE,iD=PE.ParseError,sD=PE.XMLReader;function BE(r){return r.replace(/\r[\n\u0085]/g,`
|
|
1089
|
+
`))}var Nv=p(()=>{ul();rt();Wm();Ov()});var Ea,Lv=p(()=>{P();Nv();Ea=class{constructor(e){this._cache={},this._uniformGroupSyncHash={},this._renderer=e,this.gl=null,this._cache={}}contextChange(e){this.gl=e}updateUniformGroup(e,t,i){let s=this._renderer.shader._getProgramData(t);(!e.isStatic||e._dirtyId!==s.uniformDirtyGroups[e.uid])&&(s.uniformDirtyGroups[e.uid]=e._dirtyId,this._getUniformSyncFunction(e,t)(s.uniformData,e.uniforms,this._renderer,i))}_getUniformSyncFunction(e,t){return this._uniformGroupSyncHash[e._signature]?.[t._key]||this._createUniformSyncFunction(e,t)}_createUniformSyncFunction(e,t){let i=this._uniformGroupSyncHash[e._signature]||(this._uniformGroupSyncHash[e._signature]={}),s=this._getSignature(e,t._uniformData,"u");return this._cache[s]||(this._cache[s]=this._generateUniformsSync(e,t._uniformData)),i[t._key]=this._cache[s],i[t._key]}_generateUniformsSync(e,t){return Gv(e,t)}_getSignature(e,t,i){let s=e.uniforms,n=[`${i}-`];for(let o in s)n.push(o),t[o]&&n.push(t[o].type);return n.join("-")}destroy(){this._renderer=null,this._cache=null}};Ea.extension={type:[b.WebGLSystem],name:"uniformGroup"}});function zv(r){let e={};if(e.normal=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e.add=[r.ONE,r.ONE],e.multiply=[r.DST_COLOR,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],e.screen=[r.ONE,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],e.none=[0,0],e["normal-npm"]=[r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],e["add-npm"]=[r.SRC_ALPHA,r.ONE,r.ONE,r.ONE],e["screen-npm"]=[r.SRC_ALPHA,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],e.erase=[r.ZERO,r.ONE_MINUS_SRC_ALPHA],!(r instanceof W.get().getWebGLRenderingContext()))e.min=[r.ONE,r.ONE,r.ONE,r.ONE,r.MIN,r.MIN],e.max=[r.ONE,r.ONE,r.ONE,r.ONE,r.MAX,r.MAX];else{let i=r.getExtension("EXT_blend_minmax");i&&(e.min=[r.ONE,r.ONE,r.ONE,r.ONE,i.MIN_EXT,i.MIN_EXT],e.max=[r.ONE,r.ONE,r.ONE,r.ONE,i.MAX_EXT,i.MAX_EXT])}return e}var Vv=p(()=>{ve()});var qP,jP,XP,YP,KP,QP,Hv,Wv,$v=p(()=>{P();Ot();Vv();qP=0,jP=1,XP=2,YP=3,KP=4,QP=5,Hv=class hp{constructor(e){this._invertFrontFace=!1,this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[qP]=this.setBlend,this.map[jP]=this.setOffset,this.map[XP]=this.setCullFace,this.map[YP]=this.setDepthTest,this.map[KP]=this.setFrontFace,this.map[QP]=this.setDepthMask,this.checks=[],this.defaultState=Ae.for2d(),e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){this._invertFrontFace=!e.isRoot,this._cullFace?this.setFrontFace(this._frontFace):this._frontFaceDirty=!0}contextChange(e){this.gl=e,this.blendModesMap=zv(e),this.resetState()}set(e){if(e||(e=this.defaultState),this.stateId!==e.data){let t=this.stateId^e.data,i=0;for(;t;)t&1&&this.map[i].call(this,!!(e.data&1<<i)),t>>=1,i++;this.stateId=e.data}for(let t=0;t<this.checks.length;t++)this.checks[t](this,e)}forceState(e){e||(e=this.defaultState);for(let t=0;t<this.map.length;t++)this.map[t].call(this,!!(e.data&1<<t));for(let t=0;t<this.checks.length;t++)this.checks[t](this,e);this.stateId=e.data}setBlend(e){this._updateCheck(hp._checkBlendMode,e),this.gl[e?"enable":"disable"](this.gl.BLEND)}setOffset(e){this._updateCheck(hp._checkPolygonOffset,e),this.gl[e?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)}setDepthTest(e){this.gl[e?"enable":"disable"](this.gl.DEPTH_TEST)}setDepthMask(e){this.gl.depthMask(e)}setCullFace(e){this._cullFace=e,this.gl[e?"enable":"disable"](this.gl.CULL_FACE),this._cullFace&&this._frontFaceDirty&&this.setFrontFace(this._frontFace)}setFrontFace(e){this._frontFace=e,this._frontFaceDirty=!1;let t=this._invertFrontFace?!e:e;this._glFrontFace!==t&&(this._glFrontFace=t,this.gl.frontFace(this.gl[t?"CW":"CCW"]))}setBlendMode(e){if(this.blendModesMap[e]||(e="normal"),e===this.blendMode)return;this.blendMode=e;let t=this.blendModesMap[e],i=this.gl;t.length===2?i.blendFunc(t[0],t[1]):i.blendFuncSeparate(t[0],t[1],t[2],t[3]),t.length===6?(this._blendEq=!0,i.blendEquationSeparate(t[4],t[5])):this._blendEq&&(this._blendEq=!1,i.blendEquationSeparate(i.FUNC_ADD,i.FUNC_ADD))}setPolygonOffset(e,t){this.gl.polygonOffset(e,t)}resetState(){this._glFrontFace=!1,this._frontFace=!1,this._cullFace=!1,this._frontFaceDirty=!1,this._invertFrontFace=!1,this.gl.frontFace(this.gl.CCW),this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,!1),this.forceState(this.defaultState),this._blendEq=!0,this.blendMode="",this.setBlendMode("normal")}_updateCheck(e,t){let i=this.checks.indexOf(e);t&&i===-1?this.checks.push(e):!t&&i!==-1&&this.checks.splice(i,1)}static _checkBlendMode(e,t){e.setBlendMode(t.blendMode)}static _checkPolygonOffset(e,t){e.setPolygonOffset(1,t.polygonOffset)}destroy(){this.gl=null,this.checks.length=0}};Hv.extension={type:[b.WebGLSystem],name:"state"};Wv=Hv});var vl,qv=p(()=>{rp();vl=class{constructor(e){this.target=tp.TEXTURE_2D,this.texture=e,this.width=-1,this.height=-1,this.type=re.UNSIGNED_BYTE,this.internalFormat=xl.RGBA,this.format=xl.RGBA,this.samplerType=0}}});var jv,Xv=p(()=>{"use strict";jv={id:"buffer",upload(r,e,t){e.width===r.width||e.height===r.height?t.texSubImage2D(t.TEXTURE_2D,0,0,0,r.width,r.height,e.format,e.type,r.resource):t.texImage2D(e.target,0,e.internalFormat,r.width,r.height,0,e.format,e.type,r.resource),e.width=r.width,e.height=r.height}}});var ZP,Yv,Kv=p(()=>{"use strict";ZP={"bc1-rgba-unorm":!0,"bc1-rgba-unorm-srgb":!0,"bc2-rgba-unorm":!0,"bc2-rgba-unorm-srgb":!0,"bc3-rgba-unorm":!0,"bc3-rgba-unorm-srgb":!0,"bc4-r-unorm":!0,"bc4-r-snorm":!0,"bc5-rg-unorm":!0,"bc5-rg-snorm":!0,"bc6h-rgb-ufloat":!0,"bc6h-rgb-float":!0,"bc7-rgba-unorm":!0,"bc7-rgba-unorm-srgb":!0,"etc2-rgb8unorm":!0,"etc2-rgb8unorm-srgb":!0,"etc2-rgb8a1unorm":!0,"etc2-rgb8a1unorm-srgb":!0,"etc2-rgba8unorm":!0,"etc2-rgba8unorm-srgb":!0,"eac-r11unorm":!0,"eac-r11snorm":!0,"eac-rg11unorm":!0,"eac-rg11snorm":!0,"astc-4x4-unorm":!0,"astc-4x4-unorm-srgb":!0,"astc-5x4-unorm":!0,"astc-5x4-unorm-srgb":!0,"astc-5x5-unorm":!0,"astc-5x5-unorm-srgb":!0,"astc-6x5-unorm":!0,"astc-6x5-unorm-srgb":!0,"astc-6x6-unorm":!0,"astc-6x6-unorm-srgb":!0,"astc-8x5-unorm":!0,"astc-8x5-unorm-srgb":!0,"astc-8x6-unorm":!0,"astc-8x6-unorm-srgb":!0,"astc-8x8-unorm":!0,"astc-8x8-unorm-srgb":!0,"astc-10x5-unorm":!0,"astc-10x5-unorm-srgb":!0,"astc-10x6-unorm":!0,"astc-10x6-unorm-srgb":!0,"astc-10x8-unorm":!0,"astc-10x8-unorm-srgb":!0,"astc-10x10-unorm":!0,"astc-10x10-unorm-srgb":!0,"astc-12x10-unorm":!0,"astc-12x10-unorm-srgb":!0,"astc-12x12-unorm":!0,"astc-12x12-unorm-srgb":!0},Yv={id:"compressed",upload(r,e,t){t.pixelStorei(t.UNPACK_ALIGNMENT,4);let i=r.pixelWidth,s=r.pixelHeight,n=!!ZP[r.format];for(let o=0;o<r.resource.length;o++){let a=r.resource[o];n?t.compressedTexImage2D(t.TEXTURE_2D,o,e.internalFormat,i,s,0,a):t.texImage2D(t.TEXTURE_2D,o,e.internalFormat,i,s,0,e.format,e.type,a),i=Math.max(i>>1,1),s=Math.max(s>>1,1)}}}});var Cl,dp=p(()=>{"use strict";Cl={id:"image",upload(r,e,t,i){let s=e.width,n=e.height,o=r.pixelWidth,a=r.pixelHeight,c=r.resourceWidth,u=r.resourceHeight;c<o||u<a?((s!==o||n!==a)&&t.texImage2D(e.target,0,e.internalFormat,o,a,0,e.format,e.type,null),i===2?t.texSubImage2D(t.TEXTURE_2D,0,0,0,c,u,e.format,e.type,r.resource):t.texSubImage2D(t.TEXTURE_2D,0,0,0,e.format,e.type,r.resource)):s===o&&n===a?t.texSubImage2D(t.TEXTURE_2D,0,0,0,e.format,e.type,r.resource):i===2?t.texImage2D(e.target,0,e.internalFormat,o,a,0,e.format,e.type,r.resource):t.texImage2D(e.target,0,e.internalFormat,e.format,e.type,r.resource),e.width=o,e.height=a}}});var Qv,Zv=p(()=>{dp();Qv={id:"video",upload(r,e,t,i){if(!r.isValid){t.texImage2D(e.target,0,e.internalFormat,1,1,0,e.format,e.type,null);return}Cl.upload(r,e,t,i)}}});var fp,Jv,El,e1,t1=p(()=>{"use strict";fp={linear:9729,nearest:9728},Jv={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},El={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},e1={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519}});function mp(r,e,t,i,s,n,o,a){let c=n;if(!a||r.addressModeU!=="repeat"||r.addressModeV!=="repeat"||r.addressModeW!=="repeat"){let u=El[o?"clamp-to-edge":r.addressModeU],l=El[o?"clamp-to-edge":r.addressModeV],h=El[o?"clamp-to-edge":r.addressModeW];e[s](c,e.TEXTURE_WRAP_S,u),e[s](c,e.TEXTURE_WRAP_T,l),e.TEXTURE_WRAP_R&&e[s](c,e.TEXTURE_WRAP_R,h)}if((!a||r.magFilter!=="linear")&&e[s](c,e.TEXTURE_MAG_FILTER,fp[r.magFilter]),t){if(!a||r.mipmapFilter!=="linear"){let u=Jv[r.minFilter][r.mipmapFilter];e[s](c,e.TEXTURE_MIN_FILTER,u)}}else e[s](c,e.TEXTURE_MIN_FILTER,fp[r.minFilter]);if(i&&r.maxAnisotropy>1){let u=Math.min(r.maxAnisotropy,e.getParameter(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT));e[s](c,i.TEXTURE_MAX_ANISOTROPY_EXT,u)}r.compare&&e[s](c,e.TEXTURE_COMPARE_FUNC,e1[r.compare])}var r1=p(()=>{t1()});function i1(r){return{r8unorm:r.RED,r8snorm:r.RED,r8uint:r.RED,r8sint:r.RED,r16uint:r.RED,r16sint:r.RED,r16float:r.RED,rg8unorm:r.RG,rg8snorm:r.RG,rg8uint:r.RG,rg8sint:r.RG,r32uint:r.RED,r32sint:r.RED,r32float:r.RED,rg16uint:r.RG,rg16sint:r.RG,rg16float:r.RG,rgba8unorm:r.RGBA,"rgba8unorm-srgb":r.RGBA,rgba8snorm:r.RGBA,rgba8uint:r.RGBA,rgba8sint:r.RGBA,bgra8unorm:r.RGBA,"bgra8unorm-srgb":r.RGBA,rgb9e5ufloat:r.RGB,rgb10a2unorm:r.RGBA,rg11b10ufloat:r.RGB,rg32uint:r.RG,rg32sint:r.RG,rg32float:r.RG,rgba16uint:r.RGBA,rgba16sint:r.RGBA,rgba16float:r.RGBA,rgba32uint:r.RGBA,rgba32sint:r.RGBA,rgba32float:r.RGBA,stencil8:r.STENCIL_INDEX8,depth16unorm:r.DEPTH_COMPONENT,depth24plus:r.DEPTH_COMPONENT,"depth24plus-stencil8":r.DEPTH_STENCIL,depth32float:r.DEPTH_COMPONENT,"depth32float-stencil8":r.DEPTH_STENCIL}}var s1=p(()=>{"use strict"});function n1(r,e){let t={},i=r.RGBA;return r instanceof W.get().getWebGLRenderingContext()?e.srgb&&(t={"rgba8unorm-srgb":e.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":e.srgb.SRGB8_ALPHA8_EXT}):(t={"rgba8unorm-srgb":r.SRGB8_ALPHA8,"bgra8unorm-srgb":r.SRGB8_ALPHA8},i=r.RGBA8),{r8unorm:r.R8,r8snorm:r.R8_SNORM,r8uint:r.R8UI,r8sint:r.R8I,r16uint:r.R16UI,r16sint:r.R16I,r16float:r.R16F,rg8unorm:r.RG8,rg8snorm:r.RG8_SNORM,rg8uint:r.RG8UI,rg8sint:r.RG8I,r32uint:r.R32UI,r32sint:r.R32I,r32float:r.R32F,rg16uint:r.RG16UI,rg16sint:r.RG16I,rg16float:r.RG16F,rgba8unorm:r.RGBA,...t,rgba8snorm:r.RGBA8_SNORM,rgba8uint:r.RGBA8UI,rgba8sint:r.RGBA8I,bgra8unorm:i,rgb9e5ufloat:r.RGB9_E5,rgb10a2unorm:r.RGB10_A2,rg11b10ufloat:r.R11F_G11F_B10F,rg32uint:r.RG32UI,rg32sint:r.RG32I,rg32float:r.RG32F,rgba16uint:r.RGBA16UI,rgba16sint:r.RGBA16I,rgba16float:r.RGBA16F,rgba32uint:r.RGBA32UI,rgba32sint:r.RGBA32I,rgba32float:r.RGBA32F,stencil8:r.STENCIL_INDEX8,depth16unorm:r.DEPTH_COMPONENT16,depth24plus:r.DEPTH_COMPONENT24,"depth24plus-stencil8":r.DEPTH24_STENCIL8,depth32float:r.DEPTH_COMPONENT32F,"depth32float-stencil8":r.DEPTH32F_STENCIL8,...e.s3tc?{"bc1-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...e.s3tc_sRGB?{"bc1-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...e.rgtc?{"bc4-r-unorm":e.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":e.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":e.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":e.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...e.bptc?{"bc6h-rgb-float":e.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":e.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":e.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":e.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...e.etc?{"etc2-rgb8unorm":e.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":e.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":e.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":e.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":e.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":e.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":e.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":e.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...e.astc?{"astc-4x4-unorm":e.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":e.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":e.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":e.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}}var o1=p(()=>{ve()});function a1(r){return{r8unorm:r.UNSIGNED_BYTE,r8snorm:r.BYTE,r8uint:r.UNSIGNED_BYTE,r8sint:r.BYTE,r16uint:r.UNSIGNED_SHORT,r16sint:r.SHORT,r16float:r.HALF_FLOAT,rg8unorm:r.UNSIGNED_BYTE,rg8snorm:r.BYTE,rg8uint:r.UNSIGNED_BYTE,rg8sint:r.BYTE,r32uint:r.UNSIGNED_INT,r32sint:r.INT,r32float:r.FLOAT,rg16uint:r.UNSIGNED_SHORT,rg16sint:r.SHORT,rg16float:r.HALF_FLOAT,rgba8unorm:r.UNSIGNED_BYTE,"rgba8unorm-srgb":r.UNSIGNED_BYTE,rgba8snorm:r.BYTE,rgba8uint:r.UNSIGNED_BYTE,rgba8sint:r.BYTE,bgra8unorm:r.UNSIGNED_BYTE,"bgra8unorm-srgb":r.UNSIGNED_BYTE,rgb9e5ufloat:r.UNSIGNED_INT_5_9_9_9_REV,rgb10a2unorm:r.UNSIGNED_INT_2_10_10_10_REV,rg11b10ufloat:r.UNSIGNED_INT_10F_11F_11F_REV,rg32uint:r.UNSIGNED_INT,rg32sint:r.INT,rg32float:r.FLOAT,rgba16uint:r.UNSIGNED_SHORT,rgba16sint:r.SHORT,rgba16float:r.HALF_FLOAT,rgba32uint:r.UNSIGNED_INT,rgba32sint:r.INT,rgba32float:r.FLOAT,stencil8:r.UNSIGNED_BYTE,depth16unorm:r.UNSIGNED_SHORT,depth24plus:r.UNSIGNED_INT,"depth24plus-stencil8":r.UNSIGNED_INT_24_8,depth32float:r.FLOAT,"depth32float-stencil8":r.FLOAT_32_UNSIGNED_INT_24_8_REV}}var c1=p(()=>{"use strict"});var JP,ka,u1=p(()=>{ve();P();le();qv();Xv();Kv();dp();Zv();r1();s1();o1();c1();JP=4,ka=class{constructor(e){this.managedTextures=[],this._glTextures=Object.create(null),this._glSamplers=Object.create(null),this._boundTextures=[],this._activeTextureLocation=-1,this._boundSamplers=Object.create(null),this._uploads={image:Cl,buffer:jv,video:Qv,compressed:Yv},this._premultiplyAlpha=!1,this._useSeparateSamplers=!1,this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_glTextures"),this._renderer.renderableGC.addManagedHash(this,"_glSamplers")}contextChange(e){this._gl=e,this._mapFormatToInternalFormat||(this._mapFormatToInternalFormat=n1(e,this._renderer.context.extensions),this._mapFormatToType=a1(e),this._mapFormatToFormat=i1(e)),this._glTextures=Object.create(null),this._glSamplers=Object.create(null),this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1;for(let t=0;t<16;t++)this.bind(D.EMPTY,t)}initSource(e){this.bind(e)}bind(e,t=0){let i=e.source;e?(this.bindSource(i,t),this._useSeparateSamplers&&this._bindSampler(i.style,t)):(this.bindSource(null,t),this._useSeparateSamplers&&this._bindSampler(null,t))}bindSource(e,t=0){let i=this._gl;if(e._touched=this._renderer.textureGC.count,this._boundTextures[t]!==e){this._boundTextures[t]=e,this._activateLocation(t),e||(e=D.EMPTY.source);let s=this.getGlSource(e);i.bindTexture(s.target,s.texture)}}_bindSampler(e,t=0){let i=this._gl;if(!e){this._boundSamplers[t]=null,i.bindSampler(t,null);return}let s=this._getGlSampler(e);this._boundSamplers[t]!==s&&(this._boundSamplers[t]=s,i.bindSampler(t,s))}unbind(e){let t=e.source,i=this._boundTextures,s=this._gl;for(let n=0;n<i.length;n++)if(i[n]===t){this._activateLocation(n);let o=this.getGlSource(t);s.bindTexture(o.target,null),i[n]=null}}_activateLocation(e){this._activeTextureLocation!==e&&(this._activeTextureLocation=e,this._gl.activeTexture(this._gl.TEXTURE0+e))}_initSource(e){let t=this._gl,i=new vl(t.createTexture());if(i.type=this._mapFormatToType[e.format],i.internalFormat=this._mapFormatToInternalFormat[e.format],i.format=this._mapFormatToFormat[e.format],e.autoGenerateMipmaps&&(this._renderer.context.supports.nonPowOf2mipmaps||e.isPowerOfTwo)){let s=Math.max(e.width,e.height);e.mipLevelCount=Math.floor(Math.log2(s))+1}return this._glTextures[e.uid]=i,this.managedTextures.includes(e)||(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceUpdate,this),e.on("styleChange",this.onStyleChange,this),e.on("destroy",this.onSourceDestroy,this),e.on("unload",this.onSourceUnload,this),e.on("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.push(e)),this.onSourceUpdate(e),this.updateStyle(e,!1),i}onStyleChange(e){this.updateStyle(e,!1)}updateStyle(e,t){let i=this._gl,s=this.getGlSource(e);i.bindTexture(i.TEXTURE_2D,s.texture),this._boundTextures[this._activeTextureLocation]=e,mp(e.style,i,e.mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",i.TEXTURE_2D,!this._renderer.context.supports.nonPowOf2wrapping&&!e.isPowerOfTwo,t)}onSourceUnload(e){let t=this._glTextures[e.uid];t&&(this.unbind(e),this._glTextures[e.uid]=null,this._gl.deleteTexture(t.texture))}onSourceUpdate(e){let t=this._gl,i=this.getGlSource(e);t.bindTexture(t.TEXTURE_2D,i.texture),this._boundTextures[this._activeTextureLocation]=e;let s=e.alphaMode==="premultiply-alpha-on-upload";this._premultiplyAlpha!==s&&(this._premultiplyAlpha=s,t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,s)),this._uploads[e.uploadMethodId]?this._uploads[e.uploadMethodId].upload(e,i,t,this._renderer.context.webGLVersion):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e.pixelWidth,e.pixelHeight,0,t.RGBA,t.UNSIGNED_BYTE,null),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e,!1)}onUpdateMipmaps(e,t=!0){t&&this.bindSource(e,0);let i=this.getGlSource(e);this._gl.generateMipmap(i.target)}onSourceDestroy(e){e.off("destroy",this.onSourceDestroy,this),e.off("update",this.onSourceUpdate,this),e.off("resize",this.onSourceUpdate,this),e.off("unload",this.onSourceUnload,this),e.off("styleChange",this.onStyleChange,this),e.off("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.splice(this.managedTextures.indexOf(e),1),this.onSourceUnload(e)}_initSampler(e){let t=this._gl,i=this._gl.createSampler();return this._glSamplers[e._resourceId]=i,mp(e,t,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",i,!1,!0),this._glSamplers[e._resourceId]}_getGlSampler(e){return this._glSamplers[e._resourceId]||this._initSampler(e)}getGlSource(e){return this._glTextures[e.uid]||this._initSource(e)}generateCanvas(e){let{pixels:t,width:i,height:s}=this.getPixels(e),n=W.get().createCanvas();n.width=i,n.height=s;let o=n.getContext("2d");if(o){let a=o.createImageData(i,s);a.data.set(t),o.putImageData(a,0,0)}return n}getPixels(e){let t=e.source.resolution,i=e.frame,s=Math.max(Math.round(i.width*t),1),n=Math.max(Math.round(i.height*t),1),o=new Uint8Array(JP*s*n),a=this._renderer,c=a.renderTarget.getRenderTarget(e),u=a.renderTarget.getGpuRenderTarget(c),l=a.gl;return l.bindFramebuffer(l.FRAMEBUFFER,u.resolveTargetFramebuffer),l.readPixels(Math.round(i.x*t),Math.round(i.y*t),s,n,l.RGBA,l.UNSIGNED_BYTE,o),{pixels:new Uint8ClampedArray(o.buffer),width:s,height:n}}destroy(){this.managedTextures.slice().forEach(e=>this.onSourceDestroy(e)),this.managedTextures=null,this._renderer=null}resetState(){this._activeTextureLocation=-1,this._boundTextures.fill(D.EMPTY.source),this._boundSamplers=Object.create(null);let e=this._gl;this._premultiplyAlpha=!1,e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha)}};ka.extension={type:[b.WebGLSystem],name:"texture"}});var f1={};yg(f1,{WebGLRenderer:()=>pp});var eB,tB,rB,l1,h1,d1,pp,m1=p(()=>{P();VS();HS();WS();Do();zm();Jt();jS();KS();ev();iv();sv();nv();ov();av();fv();gv();Iv();Lv();$v();u1();eB=[...ol,Sa,rv,YS,Ta,xa,ka,va,_a,Ea,Ca,ya,Wv,wa,ba],tB=[...al],rB=[pa,ma,fa],l1=[],h1=[],d1=[];O.handleByNamedList(b.WebGLSystem,l1);O.handleByNamedList(b.WebGLPipes,h1);O.handleByNamedList(b.WebGLPipesAdaptor,d1);O.add(...eB,...tB,...rB);pp=class extends Zr{constructor(){let e={name:"webgl",type:Me.WEBGL,systems:l1,renderPipes:h1,renderPipeAdaptors:d1};super(e)}}});var Aa=Or(Qs=>{"use strict";function iB(r,e,t){if(t===void 0&&(t=Array.prototype),r&&typeof t.find=="function")return t.find.call(r,e);for(var i=0;i<r.length;i++)if(Object.prototype.hasOwnProperty.call(r,i)){var s=r[i];if(e.call(void 0,s,i,r))return s}}function xp(r,e){return e===void 0&&(e=Object),e&&typeof e.freeze=="function"?e.freeze(r):r}function sB(r,e){if(r===null||typeof r!="object")throw new TypeError("target is not an object");for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r}var g1=xp({HTML:"text/html",isHTML:function(r){return r===g1.HTML},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),x1=xp({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(r){return r===x1.HTML},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"});Qs.assign=sB;Qs.find=iB;Qs.freeze=xp;Qs.MIME_TYPE=g1;Qs.NAMESPACE=x1});var Ap=Or(ti=>{var C1=Aa(),nr=C1.find,Pa=C1.NAMESPACE;function nB(r){return r!==""}function oB(r){return r?r.split(/[\t\n\f\r ]+/).filter(nB):[]}function aB(r,e){return r.hasOwnProperty(e)||(r[e]=!0),r}function _1(r){if(!r)return[];var e=oB(r);return Object.keys(e.reduce(aB,{}))}function cB(r){return function(e){return r&&r.indexOf(e)!==-1}}function Ra(r,e){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}function dt(r,e){var t=r.prototype;if(!(t instanceof e)){let s=function(){};var i=s;s.prototype=e.prototype,s=new s,Ra(t,s),r.prototype=t=s}t.constructor!=r&&(typeof r!="function"&&console.error("unknown Class:"+r),t.constructor=r)}var ft={},Gt=ft.ELEMENT_NODE=1,Js=ft.ATTRIBUTE_NODE=2,kl=ft.TEXT_NODE=3,E1=ft.CDATA_SECTION_NODE=4,k1=ft.ENTITY_REFERENCE_NODE=5,uB=ft.ENTITY_NODE=6,A1=ft.PROCESSING_INSTRUCTION_NODE=7,P1=ft.COMMENT_NODE=8,B1=ft.DOCUMENT_NODE=9,R1=ft.DOCUMENT_TYPE_NODE=10,Pr=ft.DOCUMENT_FRAGMENT_NODE=11,lB=ft.NOTATION_NODE=12,Ye={},ze={},Bie=Ye.INDEX_SIZE_ERR=(ze[1]="Index size error",1),Rie=Ye.DOMSTRING_SIZE_ERR=(ze[2]="DOMString size error",2),ht=Ye.HIERARCHY_REQUEST_ERR=(ze[3]="Hierarchy request error",3),Die=Ye.WRONG_DOCUMENT_ERR=(ze[4]="Wrong document",4),Mie=Ye.INVALID_CHARACTER_ERR=(ze[5]="Invalid character",5),Iie=Ye.NO_DATA_ALLOWED_ERR=(ze[6]="No data allowed",6),Fie=Ye.NO_MODIFICATION_ALLOWED_ERR=(ze[7]="No modification allowed",7),D1=Ye.NOT_FOUND_ERR=(ze[8]="Not found",8),Uie=Ye.NOT_SUPPORTED_ERR=(ze[9]="Not supported",9),b1=Ye.INUSE_ATTRIBUTE_ERR=(ze[10]="Attribute in use",10),Oie=Ye.INVALID_STATE_ERR=(ze[11]="Invalid state",11),Gie=Ye.SYNTAX_ERR=(ze[12]="Syntax error",12),Nie=Ye.INVALID_MODIFICATION_ERR=(ze[13]="Invalid modification",13),Lie=Ye.NAMESPACE_ERR=(ze[14]="Invalid namespace",14),zie=Ye.INVALID_ACCESS_ERR=(ze[15]="Invalid access",15);function Pe(r,e){if(e instanceof Error)var t=e;else t=this,Error.call(this,ze[r]),this.message=ze[r],Error.captureStackTrace&&Error.captureStackTrace(this,Pe);return t.code=r,e&&(this.message=this.message+": "+e),t}Pe.prototype=Error.prototype;Ra(Ye,Pe);function Ar(){}Ar.prototype={length:0,item:function(r){return r>=0&&r<this.length?this[r]:null},toString:function(r,e){for(var t=[],i=0;i<this.length;i++)Zs(this[i],t,r,e);return t.join("")},filter:function(r){return Array.prototype.filter.call(this,r)},indexOf:function(r){return Array.prototype.indexOf.call(this,r)}};function en(r,e){this._node=r,this._refresh=e,yp(this)}function yp(r){var e=r._node._inc||r._node.ownerDocument._inc;if(r._inc!==e){var t=r._refresh(r._node);if(W1(r,"length",t.length),!r.$$length||t.length<r.$$length)for(var i=t.length;i in r;i++)Object.prototype.hasOwnProperty.call(r,i)&&delete r[i];Ra(t,r),r._inc=e}}en.prototype.item=function(r){return yp(this),this[r]||null};dt(en,Ar);function Al(){}function M1(r,e){for(var t=r.length;t--;)if(r[t]===e)return t}function y1(r,e,t,i){if(i?e[M1(e,i)]=t:e[e.length++]=t,r){t.ownerElement=r;var s=r.ownerDocument;s&&(i&&U1(s,r,i),hB(s,r,t))}}function T1(r,e,t){var i=M1(e,t);if(i>=0){for(var s=e.length-1;i<s;)e[i]=e[++i];if(e.length=s,r){var n=r.ownerDocument;n&&(U1(n,r,t),t.ownerElement=null)}}else throw new Pe(D1,new Error(r.tagName+"@"+t))}Al.prototype={length:0,item:Ar.prototype.item,getNamedItem:function(r){for(var e=this.length;e--;){var t=this[e];if(t.nodeName==r)return t}},setNamedItem:function(r){var e=r.ownerElement;if(e&&e!=this._ownerElement)throw new Pe(b1);var t=this.getNamedItem(r.nodeName);return y1(this._ownerElement,this,r,t),t},setNamedItemNS:function(r){var e=r.ownerElement,t;if(e&&e!=this._ownerElement)throw new Pe(b1);return t=this.getNamedItemNS(r.namespaceURI,r.localName),y1(this._ownerElement,this,r,t),t},removeNamedItem:function(r){var e=this.getNamedItem(r);return T1(this._ownerElement,this,e),e},removeNamedItemNS:function(r,e){var t=this.getNamedItemNS(r,e);return T1(this._ownerElement,this,t),t},getNamedItemNS:function(r,e){for(var t=this.length;t--;){var i=this[t];if(i.localName==e&&i.namespaceURI==r)return i}return null}};function I1(){}I1.prototype={hasFeature:function(r,e){return!0},createDocument:function(r,e,t){var i=new Da;if(i.implementation=this,i.childNodes=new Ar,i.doctype=t||null,t&&i.appendChild(t),e){var s=i.createElementNS(r,e);i.appendChild(s)}return i},createDocumentType:function(r,e,t){var i=new Rl;return i.name=r,i.nodeName=r,i.publicId=e||"",i.systemId=t||"",i}};function ue(){}ue.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(r,e){return Pl(this,r,e)},replaceChild:function(r,e){Pl(this,r,e,G1),e&&this.removeChild(e)},removeChild:function(r){return O1(this,r)},appendChild:function(r){return this.insertBefore(r,null)},hasChildNodes:function(){return this.firstChild!=null},cloneNode:function(r){return bp(this.ownerDocument||this,this,r)},normalize:function(){for(var r=this.firstChild;r;){var e=r.nextSibling;e&&e.nodeType==kl&&r.nodeType==kl?(this.removeChild(e),r.appendData(e.data)):(r.normalize(),r=e)}},isSupported:function(r,e){return this.ownerDocument.implementation.hasFeature(r,e)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(r){for(var e=this;e;){var t=e._nsMap;if(t){for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)&&t[i]===r)return i}e=e.nodeType==Js?e.ownerDocument:e.parentNode}return null},lookupNamespaceURI:function(r){for(var e=this;e;){var t=e._nsMap;if(t&&Object.prototype.hasOwnProperty.call(t,r))return t[r];e=e.nodeType==Js?e.ownerDocument:e.parentNode}return null},isDefaultNamespace:function(r){var e=this.lookupPrefix(r);return e==null}};function F1(r){return r=="<"&&"<"||r==">"&&">"||r=="&"&&"&"||r=='"'&&"""||"&#"+r.charCodeAt()+";"}Ra(ft,ue);Ra(ft,ue.prototype);function Ba(r,e){if(e(r))return!0;if(r=r.firstChild)do if(Ba(r,e))return!0;while(r=r.nextSibling)}function Da(){this.ownerDocument=this}function hB(r,e,t){r&&r._inc++;var i=t.namespaceURI;i===Pa.XMLNS&&(e._nsMap[t.prefix?t.localName:""]=t.value)}function U1(r,e,t,i){r&&r._inc++;var s=t.namespaceURI;s===Pa.XMLNS&&delete e._nsMap[t.prefix?t.localName:""]}function Tp(r,e,t){if(r&&r._inc){r._inc++;var i=e.childNodes;if(t)i[i.length++]=t;else{for(var s=e.firstChild,n=0;s;)i[n++]=s,s=s.nextSibling;i.length=n,delete i[i.length]}}}function O1(r,e){var t=e.previousSibling,i=e.nextSibling;return t?t.nextSibling=i:r.firstChild=i,i?i.previousSibling=t:r.lastChild=t,e.parentNode=null,e.previousSibling=null,e.nextSibling=null,Tp(r.ownerDocument,r),e}function dB(r){return r&&(r.nodeType===ue.DOCUMENT_NODE||r.nodeType===ue.DOCUMENT_FRAGMENT_NODE||r.nodeType===ue.ELEMENT_NODE)}function fB(r){return r&&(or(r)||wp(r)||Br(r)||r.nodeType===ue.DOCUMENT_FRAGMENT_NODE||r.nodeType===ue.COMMENT_NODE||r.nodeType===ue.PROCESSING_INSTRUCTION_NODE)}function Br(r){return r&&r.nodeType===ue.DOCUMENT_TYPE_NODE}function or(r){return r&&r.nodeType===ue.ELEMENT_NODE}function wp(r){return r&&r.nodeType===ue.TEXT_NODE}function w1(r,e){var t=r.childNodes||[];if(nr(t,or)||Br(e))return!1;var i=nr(t,Br);return!(e&&i&&t.indexOf(i)>t.indexOf(e))}function S1(r,e){var t=r.childNodes||[];function i(n){return or(n)&&n!==e}if(nr(t,i))return!1;var s=nr(t,Br);return!(e&&s&&t.indexOf(s)>t.indexOf(e))}function mB(r,e,t){if(!dB(r))throw new Pe(ht,"Unexpected parent node type "+r.nodeType);if(t&&t.parentNode!==r)throw new Pe(D1,"child not in parent");if(!fB(e)||Br(e)&&r.nodeType!==ue.DOCUMENT_NODE)throw new Pe(ht,"Unexpected node type "+e.nodeType+" for parent node type "+r.nodeType)}function pB(r,e,t){var i=r.childNodes||[],s=e.childNodes||[];if(e.nodeType===ue.DOCUMENT_FRAGMENT_NODE){var n=s.filter(or);if(n.length>1||nr(s,wp))throw new Pe(ht,"More than one element or text in fragment");if(n.length===1&&!w1(r,t))throw new Pe(ht,"Element in fragment can not be inserted before doctype")}if(or(e)&&!w1(r,t))throw new Pe(ht,"Only one element can be added and only after doctype");if(Br(e)){if(nr(i,Br))throw new Pe(ht,"Only one doctype is allowed");var o=nr(i,or);if(t&&i.indexOf(o)<i.indexOf(t))throw new Pe(ht,"Doctype can only be inserted before an element");if(!t&&o)throw new Pe(ht,"Doctype can not be appended since element is present")}}function G1(r,e,t){var i=r.childNodes||[],s=e.childNodes||[];if(e.nodeType===ue.DOCUMENT_FRAGMENT_NODE){var n=s.filter(or);if(n.length>1||nr(s,wp))throw new Pe(ht,"More than one element or text in fragment");if(n.length===1&&!S1(r,t))throw new Pe(ht,"Element in fragment can not be inserted before doctype")}if(or(e)&&!S1(r,t))throw new Pe(ht,"Only one element can be added and only after doctype");if(Br(e)){let c=function(u){return Br(u)&&u!==t};var a=c;if(nr(i,c))throw new Pe(ht,"Only one doctype is allowed");var o=nr(i,or);if(t&&i.indexOf(o)<i.indexOf(t))throw new Pe(ht,"Doctype can only be inserted before an element")}}function Pl(r,e,t,i){mB(r,e,t),r.nodeType===ue.DOCUMENT_NODE&&(i||pB)(r,e,t);var s=e.parentNode;if(s&&s.removeChild(e),e.nodeType===Pr){var n=e.firstChild;if(n==null)return e;var o=e.lastChild}else n=o=e;var a=t?t.previousSibling:r.lastChild;n.previousSibling=a,o.nextSibling=t,a?a.nextSibling=n:r.firstChild=n,t==null?r.lastChild=o:t.previousSibling=o;do n.parentNode=r;while(n!==o&&(n=n.nextSibling));return Tp(r.ownerDocument||r,r),e.nodeType==Pr&&(e.firstChild=e.lastChild=null),e}function gB(r,e){return e.parentNode&&e.parentNode.removeChild(e),e.parentNode=r,e.previousSibling=r.lastChild,e.nextSibling=null,e.previousSibling?e.previousSibling.nextSibling=e:r.firstChild=e,r.lastChild=e,Tp(r.ownerDocument,r,e),e}Da.prototype={nodeName:"#document",nodeType:B1,doctype:null,documentElement:null,_inc:1,insertBefore:function(r,e){if(r.nodeType==Pr){for(var t=r.firstChild;t;){var i=t.nextSibling;this.insertBefore(t,e),t=i}return r}return Pl(this,r,e),r.ownerDocument=this,this.documentElement===null&&r.nodeType===Gt&&(this.documentElement=r),r},removeChild:function(r){return this.documentElement==r&&(this.documentElement=null),O1(this,r)},replaceChild:function(r,e){Pl(this,r,e,G1),r.ownerDocument=this,e&&this.removeChild(e),or(r)&&(this.documentElement=r)},importNode:function(r,e){return H1(this,r,e)},getElementById:function(r){var e=null;return Ba(this.documentElement,function(t){if(t.nodeType==Gt&&t.getAttribute("id")==r)return e=t,!0}),e},getElementsByClassName:function(r){var e=_1(r);return new en(this,function(t){var i=[];return e.length>0&&Ba(t.documentElement,function(s){if(s!==t&&s.nodeType===Gt){var n=s.getAttribute("class");if(n){var o=r===n;if(!o){var a=_1(n);o=e.every(cB(a))}o&&i.push(s)}}}),i})},createElement:function(r){var e=new Gi;e.ownerDocument=this,e.nodeName=r,e.tagName=r,e.localName=r,e.childNodes=new Ar;var t=e.attributes=new Al;return t._ownerElement=e,e},createDocumentFragment:function(){var r=new Dl;return r.ownerDocument=this,r.childNodes=new Ar,r},createTextNode:function(r){var e=new Sp;return e.ownerDocument=this,e.appendData(r),e},createComment:function(r){var e=new vp;return e.ownerDocument=this,e.appendData(r),e},createCDATASection:function(r){var e=new Cp;return e.ownerDocument=this,e.appendData(r),e},createProcessingInstruction:function(r,e){var t=new kp;return t.ownerDocument=this,t.tagName=t.nodeName=t.target=r,t.nodeValue=t.data=e,t},createAttribute:function(r){var e=new Bl;return e.ownerDocument=this,e.name=r,e.nodeName=r,e.localName=r,e.specified=!0,e},createEntityReference:function(r){var e=new Ep;return e.ownerDocument=this,e.nodeName=r,e},createElementNS:function(r,e){var t=new Gi,i=e.split(":"),s=t.attributes=new Al;return t.childNodes=new Ar,t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.namespaceURI=r,i.length==2?(t.prefix=i[0],t.localName=i[1]):t.localName=e,s._ownerElement=t,t},createAttributeNS:function(r,e){var t=new Bl,i=e.split(":");return t.ownerDocument=this,t.nodeName=e,t.name=e,t.namespaceURI=r,t.specified=!0,i.length==2?(t.prefix=i[0],t.localName=i[1]):t.localName=e,t}};dt(Da,ue);function Gi(){this._nsMap={}}Gi.prototype={nodeType:Gt,hasAttribute:function(r){return this.getAttributeNode(r)!=null},getAttribute:function(r){var e=this.getAttributeNode(r);return e&&e.value||""},getAttributeNode:function(r){return this.attributes.getNamedItem(r)},setAttribute:function(r,e){var t=this.ownerDocument.createAttribute(r);t.value=t.nodeValue=""+e,this.setAttributeNode(t)},removeAttribute:function(r){var e=this.getAttributeNode(r);e&&this.removeAttributeNode(e)},appendChild:function(r){return r.nodeType===Pr?this.insertBefore(r,null):gB(this,r)},setAttributeNode:function(r){return this.attributes.setNamedItem(r)},setAttributeNodeNS:function(r){return this.attributes.setNamedItemNS(r)},removeAttributeNode:function(r){return this.attributes.removeNamedItem(r.nodeName)},removeAttributeNS:function(r,e){var t=this.getAttributeNodeNS(r,e);t&&this.removeAttributeNode(t)},hasAttributeNS:function(r,e){return this.getAttributeNodeNS(r,e)!=null},getAttributeNS:function(r,e){var t=this.getAttributeNodeNS(r,e);return t&&t.value||""},setAttributeNS:function(r,e,t){var i=this.ownerDocument.createAttributeNS(r,e);i.value=i.nodeValue=""+t,this.setAttributeNode(i)},getAttributeNodeNS:function(r,e){return this.attributes.getNamedItemNS(r,e)},getElementsByTagName:function(r){return new en(this,function(e){var t=[];return Ba(e,function(i){i!==e&&i.nodeType==Gt&&(r==="*"||i.tagName==r)&&t.push(i)}),t})},getElementsByTagNameNS:function(r,e){return new en(this,function(t){var i=[];return Ba(t,function(s){s!==t&&s.nodeType===Gt&&(r==="*"||s.namespaceURI===r)&&(e==="*"||s.localName==e)&&i.push(s)}),i})}};Da.prototype.getElementsByTagName=Gi.prototype.getElementsByTagName;Da.prototype.getElementsByTagNameNS=Gi.prototype.getElementsByTagNameNS;dt(Gi,ue);function Bl(){}Bl.prototype.nodeType=Js;dt(Bl,ue);function Ma(){}Ma.prototype={data:"",substringData:function(r,e){return this.data.substring(r,r+e)},appendData:function(r){r=this.data+r,this.nodeValue=this.data=r,this.length=r.length},insertData:function(r,e){this.replaceData(r,0,e)},appendChild:function(r){throw new Error(ze[ht])},deleteData:function(r,e){this.replaceData(r,e,"")},replaceData:function(r,e,t){var i=this.data.substring(0,r),s=this.data.substring(r+e);t=i+t+s,this.nodeValue=this.data=t,this.length=t.length}};dt(Ma,ue);function Sp(){}Sp.prototype={nodeName:"#text",nodeType:kl,splitText:function(r){var e=this.data,t=e.substring(r);e=e.substring(0,r),this.data=this.nodeValue=e,this.length=e.length;var i=this.ownerDocument.createTextNode(t);return this.parentNode&&this.parentNode.insertBefore(i,this.nextSibling),i}};dt(Sp,Ma);function vp(){}vp.prototype={nodeName:"#comment",nodeType:P1};dt(vp,Ma);function Cp(){}Cp.prototype={nodeName:"#cdata-section",nodeType:E1};dt(Cp,Ma);function Rl(){}Rl.prototype.nodeType=R1;dt(Rl,ue);function N1(){}N1.prototype.nodeType=lB;dt(N1,ue);function L1(){}L1.prototype.nodeType=uB;dt(L1,ue);function Ep(){}Ep.prototype.nodeType=k1;dt(Ep,ue);function Dl(){}Dl.prototype.nodeName="#document-fragment";Dl.prototype.nodeType=Pr;dt(Dl,ue);function kp(){}kp.prototype.nodeType=A1;dt(kp,ue);function z1(){}z1.prototype.serializeToString=function(r,e,t){return V1.call(r,e,t)};ue.prototype.toString=V1;function V1(r,e){var t=[],i=this.nodeType==9&&this.documentElement||this,s=i.prefix,n=i.namespaceURI;if(n&&s==null){var s=i.lookupPrefix(n);if(s==null)var o=[{namespace:n,prefix:null}]}return Zs(this,t,r,e,o),t.join("")}function v1(r,e,t){var i=r.prefix||"",s=r.namespaceURI;if(!s||i==="xml"&&s===Pa.XML||s===Pa.XMLNS)return!1;for(var n=t.length;n--;){var o=t[n];if(o.prefix===i)return o.namespace!==s}return!0}function _p(r,e,t){r.push(" ",e,'="',t.replace(/[<>&"\t\n\r]/g,F1),'"')}function Zs(r,e,t,i,s){if(s||(s=[]),i)if(r=i(r),r){if(typeof r=="string"){e.push(r);return}}else return;switch(r.nodeType){case Gt:var n=r.attributes,o=n.length,_=r.firstChild,a=r.tagName;t=Pa.isHTML(r.namespaceURI)||t;var c=a;if(!t&&!r.prefix&&r.namespaceURI){for(var u,l=0;l<n.length;l++)if(n.item(l).name==="xmlns"){u=n.item(l).value;break}if(!u)for(var h=s.length-1;h>=0;h--){var f=s[h];if(f.prefix===""&&f.namespace===r.namespaceURI){u=f.namespace;break}}if(u!==r.namespaceURI)for(var h=s.length-1;h>=0;h--){var f=s[h];if(f.namespace===r.namespaceURI){f.prefix&&(c=f.prefix+":"+a);break}}}e.push("<",c);for(var d=0;d<o;d++){var m=n.item(d);m.prefix=="xmlns"?s.push({prefix:m.localName,namespace:m.value}):m.nodeName=="xmlns"&&s.push({prefix:"",namespace:m.value})}for(var d=0;d<o;d++){var m=n.item(d);if(v1(m,t,s)){var x=m.prefix||"",g=m.namespaceURI;_p(e,x?"xmlns:"+x:"xmlns",g),s.push({prefix:x,namespace:g})}Zs(m,e,t,i,s)}if(a===c&&v1(r,t,s)){var x=r.prefix||"",g=r.namespaceURI;_p(e,x?"xmlns:"+x:"xmlns",g),s.push({prefix:x,namespace:g})}if(_||t&&!/^(?:meta|link|img|br|hr|input)$/i.test(a)){if(e.push(">"),t&&/^script$/i.test(a))for(;_;)_.data?e.push(_.data):Zs(_,e,t,i,s.slice()),_=_.nextSibling;else for(;_;)Zs(_,e,t,i,s.slice()),_=_.nextSibling;e.push("</",c,">")}else e.push("/>");return;case B1:case Pr:for(var _=r.firstChild;_;)Zs(_,e,t,i,s.slice()),_=_.nextSibling;return;case Js:return _p(e,r.name,r.value);case kl:return e.push(r.data.replace(/[<&>]/g,F1));case E1:return e.push("<![CDATA[",r.data,"]]>");case P1:return e.push("<!--",r.data,"-->");case R1:var y=r.publicId,S=r.systemId;if(e.push("<!DOCTYPE ",r.name),y)e.push(" PUBLIC ",y),S&&S!="."&&e.push(" ",S),e.push(">");else if(S&&S!=".")e.push(" SYSTEM ",S,">");else{var T=r.internalSubset;T&&e.push(" [",T,"]"),e.push(">")}return;case A1:return e.push("<?",r.target," ",r.data,"?>");case k1:return e.push("&",r.nodeName,";");default:e.push("??",r.nodeName)}}function H1(r,e,t){var i;switch(e.nodeType){case Gt:i=e.cloneNode(!1),i.ownerDocument=r;case Pr:break;case Js:t=!0;break}if(i||(i=e.cloneNode(!1)),i.ownerDocument=r,i.parentNode=null,t)for(var s=e.firstChild;s;)i.appendChild(H1(r,s,t)),s=s.nextSibling;return i}function bp(r,e,t){var i=new e.constructor;for(var s in e)if(Object.prototype.hasOwnProperty.call(e,s)){var n=e[s];typeof n!="object"&&n!=i[s]&&(i[s]=n)}switch(e.childNodes&&(i.childNodes=new Ar),i.ownerDocument=r,i.nodeType){case Gt:var o=e.attributes,a=i.attributes=new Al,c=o.length;a._ownerElement=i;for(var u=0;u<c;u++)i.setAttributeNode(bp(r,o.item(u),!0));break;case Js:t=!0}if(t)for(var l=e.firstChild;l;)i.appendChild(bp(r,l,t)),l=l.nextSibling;return i}function W1(r,e,t){r[e]=t}try{if(Object.defineProperty){let r=function(e){switch(e.nodeType){case Gt:case Pr:var t=[];for(e=e.firstChild;e;)e.nodeType!==7&&e.nodeType!==8&&t.push(r(e)),e=e.nextSibling;return t.join("");default:return e.nodeValue}};xB=r,Object.defineProperty(en.prototype,"length",{get:function(){return yp(this),this.$$length}}),Object.defineProperty(ue.prototype,"textContent",{get:function(){return r(this)},set:function(e){switch(this.nodeType){case Gt:case Pr:for(;this.firstChild;)this.removeChild(this.firstChild);(e||String(e))&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e}}}),W1=function(e,t,i){e["$$"+t]=i}}}catch{}var xB;ti.DocumentType=Rl;ti.DOMException=Pe;ti.DOMImplementation=I1;ti.Element=Gi;ti.Node=ue;ti.NodeList=Ar;ti.XMLSerializer=z1});var q1=Or(Ia=>{"use strict";var $1=Aa().freeze;Ia.XML_ENTITIES=$1({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'});Ia.HTML_ENTITIES=$1({Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",AMP:"&",amp:"&",And:"\u2A53",and:"\u2227",andand:"\u2A55",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",ap:"\u2248",apacir:"\u2A6F",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",Barwed:"\u2306",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",Because:"\u2235",because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxDL:"\u2557",boxDl:"\u2556",boxdL:"\u2555",boxdl:"\u2510",boxDR:"\u2554",boxDr:"\u2553",boxdR:"\u2552",boxdr:"\u250C",boxH:"\u2550",boxh:"\u2500",boxHD:"\u2566",boxHd:"\u2564",boxhD:"\u2565",boxhd:"\u252C",boxHU:"\u2569",boxHu:"\u2567",boxhU:"\u2568",boxhu:"\u2534",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxUL:"\u255D",boxUl:"\u255C",boxuL:"\u255B",boxul:"\u2518",boxUR:"\u255A",boxUr:"\u2559",boxuR:"\u2558",boxur:"\u2514",boxV:"\u2551",boxv:"\u2502",boxVH:"\u256C",boxVh:"\u256B",boxvH:"\u256A",boxvh:"\u253C",boxVL:"\u2563",boxVl:"\u2562",boxvL:"\u2561",boxvl:"\u2524",boxVR:"\u2560",boxVr:"\u255F",boxvR:"\u255E",boxvr:"\u251C",bprime:"\u2035",Breve:"\u02D8",breve:"\u02D8",brvbar:"\xA6",Bscr:"\u212C",bscr:"\u{1D4B7}",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsol:"\\",bsolb:"\u29C5",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",Cap:"\u22D2",cap:"\u2229",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",CenterDot:"\xB7",centerdot:"\xB7",Cfr:"\u212D",cfr:"\u{1D520}",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",cir:"\u25CB",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",Colon:"\u2237",colon:":",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",Conint:"\u222F",conint:"\u222E",ContourIntegral:"\u222E",Copf:"\u2102",copf:"\u{1D554}",coprod:"\u2210",Coproduct:"\u2210",COPY:"\xA9",copy:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",Cross:"\u2A2F",cross:"\u2717",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",Cup:"\u22D3",cup:"\u222A",cupbrcap:"\u2A48",CupCap:"\u224D",cupcap:"\u2A46",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",Dagger:"\u2021",dagger:"\u2020",daleth:"\u2138",Darr:"\u21A1",dArr:"\u21D3",darr:"\u2193",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",DD:"\u2145",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21CA",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",Diamond:"\u22C4",diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrow:"\u2193",Downarrow:"\u21D3",downarrow:"\u2193",DownArrowBar:"\u2913",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVector:"\u21BD",DownLeftVectorBar:"\u2956",DownRightTeeVector:"\u295F",DownRightVector:"\u21C1",DownRightVectorBar:"\u2957",DownTee:"\u22A4",DownTeeArrow:"\u21A7",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",ecir:"\u2256",Ecirc:"\xCA",ecirc:"\xEA",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",eDot:"\u2251",edot:"\u0117",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp:"\u2003",emsp13:"\u2004",emsp14:"\u2005",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",Escr:"\u2130",escr:"\u212F",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",ExponentialE:"\u2147",exponentiale:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",ForAll:"\u2200",forall:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",Fscr:"\u2131",fscr:"\u{1D4BB}",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",gE:"\u2267",ge:"\u2265",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",ges:"\u2A7E",gescc:"\u2AA9",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",Gg:"\u22D9",gg:"\u226B",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gl:"\u2277",gla:"\u2AA5",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gnE:"\u2269",gne:"\u2A88",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",Gt:"\u226B",GT:">",gt:">",gtcc:"\u2AA7",gtcir:"\u2A7A",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",hArr:"\u21D4",harr:"\u2194",harrcir:"\u2948",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",Hfr:"\u210C",hfr:"\u{1D525}",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",Hopf:"\u210D",hopf:"\u{1D559}",horbar:"\u2015",HorizontalLine:"\u2500",Hscr:"\u210B",hscr:"\u{1D4BD}",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",Ifr:"\u2111",ifr:"\u{1D526}",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Im:"\u2111",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",in:"\u2208",incare:"\u2105",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",Int:"\u222C",int:"\u222B",intcal:"\u22BA",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",Iscr:"\u2110",iscr:"\u{1D4BE}",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",Lang:"\u27EA",lang:"\u27E8",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",Larr:"\u219E",lArr:"\u21D0",larr:"\u2190",larrb:"\u21E4",larrbfs:"\u291F",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",lat:"\u2AAB",lAtail:"\u291B",latail:"\u2919",late:"\u2AAD",lates:"\u2AAD\uFE00",lBarr:"\u290E",lbarr:"\u290C",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",lE:"\u2266",le:"\u2264",LeftAngleBracket:"\u27E8",LeftArrow:"\u2190",Leftarrow:"\u21D0",leftarrow:"\u2190",LeftArrowBar:"\u21E4",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21C3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTee:"\u22A3",LeftTeeArrow:"\u21A4",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangle:"\u22B2",LeftTriangleBar:"\u29CF",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21BF",LeftUpVectorBar:"\u2958",LeftVector:"\u21BC",LeftVectorBar:"\u2952",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",les:"\u2A7D",lescc:"\u2AA8",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",Ll:"\u22D8",ll:"\u226A",llarr:"\u21C7",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoust:"\u23B0",lmoustache:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lnE:"\u2268",lne:"\u2A87",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftarrow:"\u27F5",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",longrightarrow:"\u27F6",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",Lscr:"\u2112",lscr:"\u{1D4C1}",Lsh:"\u21B0",lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",Lt:"\u226A",LT:"<",lt:"<",ltcc:"\u2AA6",ltcir:"\u2A79",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",mid:"\u2223",midast:"*",midcir:"\u2AF0",middot:"\xB7",minus:"\u2212",minusb:"\u229F",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",Mscr:"\u2133",mscr:"\u{1D4C2}",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266E",natural:"\u266E",naturals:"\u2115",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",ne:"\u2260",nearhk:"\u2924",neArr:"\u21D7",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:`
|
|
1090
|
+
`,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nhArr:"\u21CE",nharr:"\u21AE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlArr:"\u21CD",nlarr:"\u219A",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nLeftarrow:"\u21CD",nleftarrow:"\u219A",nLeftrightarrow:"\u21CE",nleftrightarrow:"\u21AE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",Nopf:"\u2115",nopf:"\u{1D55F}",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangle:"\u22EA",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangle:"\u22EB",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",npre:"\u2AAF\u0338",nprec:"\u2280",npreceq:"\u2AAF\u0338",nrArr:"\u21CF",nrarr:"\u219B",nrarrc:"\u2933\u0338",nrarrw:"\u219D\u0338",nRightarrow:"\u21CF",nrightarrow:"\u219B",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nVDash:"\u22AF",nVdash:"\u22AE",nvDash:"\u22AD",nvdash:"\u22AC",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwArr:"\u21D6",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",ocir:"\u229A",Ocirc:"\xD4",ocirc:"\xF4",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",Or:"\u2A54",or:"\u2228",orarr:"\u21BB",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",Otimes:"\u2A37",otimes:"\u2297",otimesas:"\u2A36",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",par:"\u2225",para:"\xB6",parallel:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plus:"+",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",Popf:"\u2119",popf:"\u{1D561}",pound:"\xA3",Pr:"\u2ABB",pr:"\u227A",prap:"\u2AB7",prcue:"\u227C",prE:"\u2AB3",pre:"\u2AAF",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",Prime:"\u2033",prime:"\u2032",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportion:"\u2237",Proportional:"\u221D",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",Qopf:"\u211A",qopf:"\u{1D562}",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",QUOT:'"',quot:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",Rang:"\u27EB",rang:"\u27E9",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",Rarr:"\u21A0",rArr:"\u21D2",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",rAtail:"\u291C",ratail:"\u291A",ratio:"\u2236",rationals:"\u211A",RBarr:"\u2910",rBarr:"\u290F",rbarr:"\u290D",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",Re:"\u211C",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",rect:"\u25AD",REG:"\xAE",reg:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",Rfr:"\u211C",rfr:"\u{1D52F}",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrow:"\u2192",Rightarrow:"\u21D2",rightarrow:"\u2192",RightArrowBar:"\u21E5",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVector:"\u21C2",RightDownVectorBar:"\u2955",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTee:"\u22A2",RightTeeArrow:"\u21A6",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangle:"\u22B3",RightTriangleBar:"\u29D0",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVector:"\u21BE",RightUpVectorBar:"\u2954",RightVector:"\u21C0",RightVectorBar:"\u2953",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoust:"\u23B1",rmoustache:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",Ropf:"\u211D",ropf:"\u{1D563}",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",Rscr:"\u211B",rscr:"\u{1D4C7}",Rsh:"\u21B1",rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",Sc:"\u2ABC",sc:"\u227B",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",sccue:"\u227D",scE:"\u2AB4",sce:"\u2AB0",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdot:"\u22C5",sdotb:"\u22A1",sdote:"\u2A66",searhk:"\u2925",seArr:"\u21D8",searr:"\u2198",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",sol:"/",solb:"\u29C4",solbar:"\u233F",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25A1",Square:"\u25A1",square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",Sub:"\u22D0",sub:"\u2282",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",Subset:"\u22D0",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",Sum:"\u2211",sum:"\u2211",sung:"\u266A",Sup:"\u22D1",sup:"\u2283",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",Supset:"\u22D1",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swArr:"\u21D9",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",Therefore:"\u2234",therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",thinsp:"\u2009",ThinSpace:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",Tilde:"\u223C",tilde:"\u02DC",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",times:"\xD7",timesb:"\u22A0",timesbar:"\u2A31",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",top:"\u22A4",topbot:"\u2336",topcir:"\u2AF1",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",TRADE:"\u2122",trade:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",Uarr:"\u219F",uArr:"\u21D1",uarr:"\u2191",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrow:"\u2191",Uparrow:"\u21D1",uparrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21C5",UpDownArrow:"\u2195",Updownarrow:"\u21D5",updownarrow:"\u2195",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03D2",upsi:"\u03C5",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTee:"\u22A5",UpTeeArrow:"\u21A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",vArr:"\u21D5",varr:"\u2195",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",Vbar:"\u2AEB",vBar:"\u2AE8",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",VDash:"\u22AB",Vdash:"\u22A9",vDash:"\u22A8",vdash:"\u22A2",Vdashl:"\u2AE6",Vee:"\u22C1",vee:"\u2228",veebar:"\u22BB",veeeq:"\u225A",vellip:"\u22EE",Verbar:"\u2016",verbar:"|",Vert:"\u2016",vert:"|",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",Wedge:"\u22C0",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xhArr:"\u27FA",xharr:"\u27F7",Xi:"\u039E",xi:"\u03BE",xlArr:"\u27F8",xlarr:"\u27F5",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrArr:"\u27F9",xrarr:"\u27F6",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",Yuml:"\u0178",yuml:"\xFF",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",Zfr:"\u2128",zfr:"\u{1D537}",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",Zopf:"\u2124",zopf:"\u{1D56B}",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"});Ia.entityMap=Ia.HTML_ENTITIES});var eC=Or(Bp=>{var Ga=Aa().NAMESPACE,Pp=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,j1=new RegExp("[\\-\\.0-9"+Pp.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),X1=new RegExp("^"+Pp.source+j1.source+"*(?::"+Pp.source+j1.source+"*)?$"),Fa=0,ri=1,tn=2,Ua=3,rn=4,sn=5,Oa=6,Ml=7;function nn(r,e){this.message=r,this.locator=e,Error.captureStackTrace&&Error.captureStackTrace(this,nn)}nn.prototype=new Error;nn.prototype.name=nn.name;function Q1(){}Q1.prototype={parse:function(r,e,t){var i=this.domBuilder;i.startDocument(),Z1(e,e={}),_B(r,e,t,i,this.errorHandler),i.endDocument()}};function _B(r,e,t,i,s){function n(U){if(U>65535){U-=65536;var H=55296+(U>>10),Ch=56320+(U&1023);return String.fromCharCode(H,Ch)}else return String.fromCharCode(U)}function o(U){var H=U.slice(1,-1);return Object.hasOwnProperty.call(t,H)?t[H]:H.charAt(0)==="#"?n(parseInt(H.substr(1).replace("x","0x"))):(s.error("entity not found:"+U),U)}function a(U){if(U>x){var H=r.substring(x,U).replace(/&#?\w+;/g,o);f&&c(x),i.characters(H,0,U-x),x=U}}function c(U,H){for(;U>=l&&(H=h.exec(r));)u=H.index,l=u+H[0].length,f.lineNumber++;f.columnNumber=U-u+1}for(var u=0,l=0,h=/.*(?:\r\n?|\n)|.*$/g,f=i.locator,d=[{currentNSMap:e}],m={},x=0;;){try{var g=r.indexOf("<",x);if(g<0){if(!r.substr(x).match(/^\s*$/)){var _=i.doc,y=_.createTextNode(r.substr(x));_.appendChild(y),i.currentElement=y}return}switch(g>x&&a(g),r.charAt(g+1)){case"/":var k=r.indexOf(">",g+3),S=r.substring(g+2,k).replace(/[ \t\n\r]+$/g,""),T=d.pop();k<0?(S=r.substring(g+2).replace(/[\s<].*/,""),s.error("end tag name: "+S+" is not complete:"+T.tagName),k=g+1+S.length):S.match(/\s</)&&(S=S.replace(/[\s<].*/,""),s.error("end tag name: "+S+" maybe not complete"),k=g+1+S.length);var C=T.localNSMap,v=T.tagName==S,E=v||T.tagName&&T.tagName.toLowerCase()==S.toLowerCase();if(E){if(i.endElement(T.uri,T.localName,S),C)for(var M in C)Object.prototype.hasOwnProperty.call(C,M)&&i.endPrefixMapping(M);v||s.fatalError("end tag name: "+S+" is not match the current start tagName:"+T.tagName)}else d.push(T);k++;break;case"?":f&&c(g),k=SB(r,g,i);break;case"!":f&&c(g),k=wB(r,g,i,s);break;default:f&&c(g);var A=new J1,B=d[d.length-1].currentNSMap,k=bB(r,g,A,B,o,s),L=A.length;if(!A.closed&&TB(r,k,A.tagName,m)&&(A.closed=!0,t.nbsp||s.warning("unclosed xml attribute")),f&&L){for(var j=Y1(f,{}),be=0;be<L;be++){var wt=A[be];c(wt.offset),wt.locator=Y1(f,{})}i.locator=j,K1(A,i,B)&&d.push(A),i.locator=f}else K1(A,i,B)&&d.push(A);Ga.isHTML(A.uri)&&!A.closed?k=yB(r,k,A.tagName,o,i):k++}}catch(U){if(U instanceof nn)throw U;s.error("element parse error: "+U),k=-1}k>x?x=k:a(Math.max(g,x)+1)}}function Y1(r,e){return e.lineNumber=r.lineNumber,e.columnNumber=r.columnNumber,e}function bB(r,e,t,i,s,n){function o(d,m,x){t.attributeNames.hasOwnProperty(d)&&n.fatalError("Attribute "+d+" redefined"),t.addValue(d,m.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,s),x)}for(var a,c,u=++e,l=Fa;;){var h=r.charAt(u);switch(h){case"=":if(l===ri)a=r.slice(e,u),l=Ua;else if(l===tn)l=Ua;else throw new Error("attribute equal must after attrName");break;case"'":case'"':if(l===Ua||l===ri)if(l===ri&&(n.warning('attribute value must after "="'),a=r.slice(e,u)),e=u+1,u=r.indexOf(h,e),u>0)c=r.slice(e,u),o(a,c,e-1),l=sn;else throw new Error("attribute value no end '"+h+"' match");else if(l==rn)c=r.slice(e,u),o(a,c,e),n.warning('attribute "'+a+'" missed start quot('+h+")!!"),e=u+1,l=sn;else throw new Error('attribute value must after "="');break;case"/":switch(l){case Fa:t.setTagName(r.slice(e,u));case sn:case Oa:case Ml:l=Ml,t.closed=!0;case rn:case ri:break;case tn:t.closed=!0;break;default:throw new Error("attribute invalid close char('/')")}break;case"":return n.error("unexpected end of input"),l==Fa&&t.setTagName(r.slice(e,u)),u;case">":switch(l){case Fa:t.setTagName(r.slice(e,u));case sn:case Oa:case Ml:break;case rn:case ri:c=r.slice(e,u),c.slice(-1)==="/"&&(t.closed=!0,c=c.slice(0,-1));case tn:l===tn&&(c=a),l==rn?(n.warning('attribute "'+c+'" missed quot(")!'),o(a,c,e)):((!Ga.isHTML(i[""])||!c.match(/^(?:disabled|checked|selected)$/i))&&n.warning('attribute "'+c+'" missed value!! "'+c+'" instead!!'),o(c,c,e));break;case Ua:throw new Error("attribute value missed!!")}return u;case"\x80":h=" ";default:if(h<=" ")switch(l){case Fa:t.setTagName(r.slice(e,u)),l=Oa;break;case ri:a=r.slice(e,u),l=tn;break;case rn:var c=r.slice(e,u);n.warning('attribute "'+c+'" missed quot(")!!'),o(a,c,e);case sn:l=Oa;break}else switch(l){case tn:var f=t.tagName;(!Ga.isHTML(i[""])||!a.match(/^(?:disabled|checked|selected)$/i))&&n.warning('attribute "'+a+'" missed value!! "'+a+'" instead2!!'),o(a,a,e),e=u,l=ri;break;case sn:n.warning('attribute space is required"'+a+'"!!');case Oa:l=ri,e=u;break;case Ua:l=rn,e=u;break;case Ml:throw new Error("elements closed character '/' and '>' must be connected to")}}u++}}function K1(r,e,t){for(var i=r.tagName,s=null,h=r.length;h--;){var n=r[h],o=n.qName,a=n.value,f=o.indexOf(":");if(f>0)var c=n.prefix=o.slice(0,f),u=o.slice(f+1),l=c==="xmlns"&&u;else u=o,c=null,l=o==="xmlns"&&"";n.localName=u,l!==!1&&(s==null&&(s={},Z1(t,t={})),t[l]=s[l]=a,n.uri=Ga.XMLNS,e.startPrefixMapping(l,a))}for(var h=r.length;h--;){n=r[h];var c=n.prefix;c&&(c==="xml"&&(n.uri=Ga.XML),c!=="xmlns"&&(n.uri=t[c||""]))}var f=i.indexOf(":");f>0?(c=r.prefix=i.slice(0,f),u=r.localName=i.slice(f+1)):(c=null,u=r.localName=i);var d=r.uri=t[c||""];if(e.startElement(d,u,i,r),r.closed){if(e.endElement(d,u,i),s)for(c in s)Object.prototype.hasOwnProperty.call(s,c)&&e.endPrefixMapping(c)}else return r.currentNSMap=t,r.localNSMap=s,!0}function yB(r,e,t,i,s){if(/^(?:script|textarea)$/i.test(t)){var n=r.indexOf("</"+t+">",e),o=r.substring(e+1,n);if(/[&<]/.test(o))return/^script$/i.test(t)?(s.characters(o,0,o.length),n):(o=o.replace(/&#?\w+;/g,i),s.characters(o,0,o.length),n)}return e+1}function TB(r,e,t,i){var s=i[t];return s==null&&(s=r.lastIndexOf("</"+t+">"),s<e&&(s=r.lastIndexOf("</"+t)),i[t]=s),s<e}function Z1(r,e){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}function wB(r,e,t,i){var s=r.charAt(e+2);switch(s){case"-":if(r.charAt(e+3)==="-"){var n=r.indexOf("-->",e+4);return n>e?(t.comment(r,e+4,n-e-4),n+3):(i.error("Unclosed comment"),-1)}else return-1;default:if(r.substr(e+3,6)=="CDATA["){var n=r.indexOf("]]>",e+9);return t.startCDATA(),t.characters(r,e+9,n-e-9),t.endCDATA(),n+3}var o=vB(r,e),a=o.length;if(a>1&&/!doctype/i.test(o[0][0])){var c=o[1][0],u=!1,l=!1;a>3&&(/^public$/i.test(o[2][0])?(u=o[3][0],l=a>4&&o[4][0]):/^system$/i.test(o[2][0])&&(l=o[3][0]));var h=o[a-1];return t.startDTD(c,u,l),t.endDTD(),h.index+h[0].length}}return-1}function SB(r,e,t){var i=r.indexOf("?>",e);if(i){var s=r.substring(e,i).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(s){var n=s[0].length;return t.processingInstruction(s[1],s[2]),i+2}else return-1}return-1}function J1(){this.attributeNames={}}J1.prototype={setTagName:function(r){if(!X1.test(r))throw new Error("invalid tagName:"+r);this.tagName=r},addValue:function(r,e,t){if(!X1.test(r))throw new Error("invalid attribute:"+r);this.attributeNames[r]=this.length,this[this.length++]={qName:r,value:e,offset:t}},length:0,getLocalName:function(r){return this[r].localName},getLocator:function(r){return this[r].locator},getQName:function(r){return this[r].qName},getURI:function(r){return this[r].uri},getValue:function(r){return this[r].value}};function vB(r,e){var t,i=[],s=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;for(s.lastIndex=e,s.exec(r);t=s.exec(r);)if(i.push(t),t[1])return i}Bp.XMLReader=Q1;Bp.ParseError=nn});var aC=Or(Fl=>{var CB=Aa(),EB=Ap(),tC=q1(),sC=eC(),kB=EB.DOMImplementation,rC=CB.NAMESPACE,AB=sC.ParseError,PB=sC.XMLReader;function nC(r){return r.replace(/\r[\n\u0085]/g,`
|
|
1091
1091
|
`).replace(/[\r\u0085\u2028]/g,`
|
|
1092
|
-
`)}function
|
|
1093
|
-
@`+(r.systemId||"")+"#[line:"+r.lineNumber+",col:"+r.columnNumber+"]"}function
|
|
1092
|
+
`)}function oC(r){this.options=r||{locator:{}}}oC.prototype.parseFromString=function(r,e){var t=this.options,i=new PB,s=t.domBuilder||new Na,n=t.errorHandler,o=t.locator,a=t.xmlns||{},c=/\/x?html?$/.test(e),u=c?tC.HTML_ENTITIES:tC.XML_ENTITIES;o&&s.setDocumentLocator(o),i.errorHandler=BB(n,s,o),i.domBuilder=t.domBuilder||s,c&&(a[""]=rC.HTML),a.xml=a.xml||rC.XML;var l=t.normalizeLineEndings||nC;return r&&typeof r=="string"?i.parse(l(r),a,u):i.errorHandler.error("invalid doc source"),s.doc};function BB(r,e,t){if(!r){if(e instanceof Na)return e;r=e}var i={},s=r instanceof Function;t=t||{};function n(o){var a=r[o];!a&&s&&(a=r.length==2?function(c){r(o,c)}:r),i[o]=a&&function(c){a("[xmldom "+o+"] "+c+Rp(t))}||function(){}}return n("warning"),n("error"),n("fatalError"),i}function Na(){this.cdata=!1}function on(r,e){e.lineNumber=r.lineNumber,e.columnNumber=r.columnNumber}Na.prototype={startDocument:function(){this.doc=new kB().createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(r,e,t,i){var s=this.doc,n=s.createElementNS(r,t||e),o=i.length;Il(this,n),this.currentElement=n,this.locator&&on(this.locator,n);for(var a=0;a<o;a++){var r=i.getURI(a),c=i.getValue(a),t=i.getQName(a),u=s.createAttributeNS(r,t);this.locator&&on(i.getLocator(a),u),u.value=u.nodeValue=c,n.setAttributeNode(u)}},endElement:function(r,e,t){var i=this.currentElement,s=i.tagName;this.currentElement=i.parentNode},startPrefixMapping:function(r,e){},endPrefixMapping:function(r){},processingInstruction:function(r,e){var t=this.doc.createProcessingInstruction(r,e);this.locator&&on(this.locator,t),Il(this,t)},ignorableWhitespace:function(r,e,t){},characters:function(r,e,t){if(r=iC.apply(this,arguments),r){if(this.cdata)var i=this.doc.createCDATASection(r);else var i=this.doc.createTextNode(r);this.currentElement?this.currentElement.appendChild(i):/^\s*$/.test(r)&&this.doc.appendChild(i),this.locator&&on(this.locator,i)}},skippedEntity:function(r){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(r){(this.locator=r)&&(r.lineNumber=0)},comment:function(r,e,t){r=iC.apply(this,arguments);var i=this.doc.createComment(r);this.locator&&on(this.locator,i),Il(this,i)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(r,e,t){var i=this.doc.implementation;if(i&&i.createDocumentType){var s=i.createDocumentType(r,e,t);this.locator&&on(this.locator,s),Il(this,s),this.doc.doctype=s}},warning:function(r){console.warn("[xmldom warning] "+r,Rp(this.locator))},error:function(r){console.error("[xmldom error] "+r,Rp(this.locator))},fatalError:function(r){throw new AB(r,this.locator)}};function Rp(r){if(r)return`
|
|
1093
|
+
@`+(r.systemId||"")+"#[line:"+r.lineNumber+",col:"+r.columnNumber+"]"}function iC(r,e,t){return typeof r=="string"?r.substr(e,t):r.length>=e+t||e?new java.lang.String(r,e,t)+"":r}"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(r){Na.prototype[r]=function(){return null}});function Il(r,e){r.currentElement?r.currentElement.appendChild(e):r.doc.appendChild(e)}Fl.__DOMHandler=Na;Fl.normalizeLineEndings=nC;Fl.DOMParser=oC});var uC=Or(Ul=>{var cC=Ap();Ul.DOMImplementation=cC.DOMImplementation;Ul.XMLSerializer=cC.XMLSerializer;Ul.DOMParser=aC().DOMParser});function Ph(r,e){return{error:t=>r.error({...e,...t}),rpcRequest:t=>r.rpcRequest({...e,...t}),rpcError:t=>r.rpcError({...e,...t})}}var fc=()=>r=>({plain:r.none,errMessage:r.mix(r.brightRed,r.bold),errName:r.red,errStack:r.mix(r.red,r.dim),timestamp:r.blue,timestampErr:r.red});function Tg(){return fc()}var Gr=Object.freeze({black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",brightBlack:"\x1B[90m",brightRed:"\x1B[91m",brightGreen:"\x1B[92m",brightYellow:"\x1B[93m",brightBlue:"\x1B[94m",brightMagenta:"\x1B[95m",brightCyan:"\x1B[96m",brightWhite:"\x1B[97m",bgBlack:"\x1B[40m",bgRed:"\x1B[41m",bgGreen:"\x1B[42m",bgYellow:"\x1B[43m",bgBlue:"\x1B[44m",bgMagenta:"\x1B[45m",bgCyan:"\x1B[46m",bgWhite:"\x1B[47m",bgBrightBlack:"\x1B[100m",bgBrightRed:"\x1B[101m",bgBrightGreen:"\x1B[102m",bgBrightYellow:"\x1B[103m",bgBrightBlue:"\x1B[104m",bgBrightMagenta:"\x1B[105m",bgBrightCyan:"\x1B[106m",bgBrightWhite:"\x1B[107m",bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",underline:"\x1B[4m",inverse:"\x1B[7m",hidden:"\x1B[8m",strikethrough:"\x1B[9m",reset:"\x1B[0m"});var mc=()=>({none:r=>r,uncolor:ZE,mix:JE,hex:ek,rgb:wg,bgRgb:tk});function ZE(r){return r.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"")}function JE(...r){return e=>{for(let t of r)e=t(e);return e}}function ek(r){r=r.replace(/^#/,"");let e,t,i,s;if(r.length===3)e=parseInt(r.split("").map(n=>n+n).join(""),16);else if(r.length===6)e=parseInt(r,16);else throw new Error("Invalid hex color");return t=e>>16&255,i=e>>8&255,s=e&255,wg(t,i,s)}function wg(r,e,t){let i=`\x1B[38;2;${r};${e};${t}m`;return s=>`${i}${s}${Gr.reset}`}function tk(r,e,t){let i=`\x1B[48;2;${r};${e};${t}m`;return s=>`${i}${s}${Gr.reset}`}var Bn={...Object.fromEntries(Object.entries(Gr).map(([r])=>[r,e=>e])),...mc()};var Rn={...Object.fromEntries(Object.entries(Gr).map(([r,e])=>[r,t=>`${e}${t}${Gr.reset}`])),...mc()};function Bh(){return typeof Deno<"u"&&typeof Deno.version<"u"}function Rh(){return typeof process<"u"&&process.versions&&process.versions.node}function Sg(){return Rh()?process.env.FORCE_COLOR||process.stdout.isTTY&&process.env.TERM!=="dumb":Bh()?Deno.env.get("FORCE_COLOR")||Deno.isatty(Deno.stdout.rid)&&Deno.env.get("TERM")!=="dumb":!1}var Dh=()=>Sg()?Rn:Bn;var pc=()=>({colors:r,theme:e})=>{let t=e(r);function i(o){let a=o.stack?`
|
|
1094
1094
|
`+o.stack+`
|
|
1095
|
-
`:"";return[t.errName(o.name+":"),t.errMessage(o.message)].join(" ")+t.errStack(a)}function s(o){return o&&o instanceof Error?i(o):o}function n(o){return o&&o instanceof Error?i(o):t.errMessage(o)}return{stdout:o=>o.map(s),stderr:o=>o.map(n)}};function
|
|
1095
|
+
`:"";return[t.errName(o.name+":"),t.errMessage(o.message)].join(" ")+t.errStack(a)}function s(o){return o&&o instanceof Error?i(o):o}function n(o){return o&&o instanceof Error?i(o):t.errMessage(o)}return{stdout:o=>o.map(s),stderr:o=>o.map(n)}};function Dn(...r){return e=>({stdout:t=>{for(let i of r)t=i(e).stdout(t);return t},stderr:t=>{for(let i of r)t=i(e).stderr(t);return t}})}function rk(){return{icon:"\u{1F6A8}",now:()=>Date.now()}}var gc=r=>({colors:e,theme:t})=>{let i={...rk(),...r},s=t(e),n=new Date(i.now()),o=n.getUTCFullYear().toString().padStart(4,"0"),a=(n.getUTCMonth()+1).toString().padStart(2,"0"),c=n.getUTCDate().toString().padStart(2,"0"),u=`${o}-${a}-${c}`,l=n.getUTCHours().toString().padStart(2,"0"),h=n.getUTCMinutes().toString().padStart(2,"0"),f=n.getUTCSeconds().toString().padStart(2,"0"),d=n.getUTCMilliseconds().toString().padStart(3,"0"),m=`${l}:${h}:${f}.${d}`,x=`${u}::${m}`;return{stdout:g=>[s.timestamp(x),...g],stderr:g=>[s.timestampErr(x),...[i.icon].filter(Boolean),...g]}};function vg(){return Dn(pc(),gc())}var xc=()=>({stdout:async r=>{await Deno.stdout.write(new TextEncoder().encode(r+`
|
|
1096
1096
|
`))},stderr:async r=>{await Deno.stderr.write(new TextEncoder().encode(r+`
|
|
1097
|
-
`))}});var
|
|
1097
|
+
`))}});var _c=()=>({stdout:async r=>void process.stdout.write(r+`
|
|
1098
1098
|
`),stderr:async r=>void process.stderr.write(r+`
|
|
1099
|
-
`)});var Tc=()=>({stdout:async r=>console.log(r),stderr:async r=>console.error(r)});var kg=()=>Eh()?bc():kh()?yc():Tc();var Ag=()=>({stdout:async()=>{},stderr:async()=>{}});function Pg(){return()=>({stdout:r=>r,stderr:r=>r})}var hi=class r{static writers={auto:kg,void:Ag,deno:bc,node:yc,console:Tc};static colors={auto:Ah,colorful:()=>Dn,colorless:()=>Rn};static themes={auto:Sg,basic:pc};static shapers={auto:Eg,none:Pg,errors:xc,timestamp:_c};writer=r.writers.auto();colors=r.colors.auto();theme=r.themes.auto();shaper=r.shapers.auto();async log(...e){await this.writer.stdout(this.shaper(this).stdout(e).join(" "))}async error(...e){await this.writer.stderr(this.shaper(this).stderr(e).join(" "))}setWriter(e){return this.writer=e,this}setColors(e){return this.colors=e,this}setTheme(e){return this.theme=e,this}setShaper(...e){return this.shaper=Mn(...e),this}};var Lt=Object.freeze({eq(r,e){if(r.length!==e.length)return!1;for(let t=0;t<=r.length;t++)if(r.at(t)!==e.at(t))return!1;return!0},random(r){return crypto.getRandomValues(new Uint8Array(r))}});var di=Object.freeze({fromBytes(r){return[...r].map(e=>e.toString(16).padStart(2,"0")).join("")},toBytes(r){if(r.length%2!==0)throw new Error("must have even number of hex characters");let e=new Uint8Array(r.length/2);for(let t=0;t<r.length;t+=2)e[t/2]=parseInt(r.slice(t,t+2),16);return e},random(r=32){return this.fromBytes(Lt.random(r))},string(r){return di.fromBytes(r)},bytes(r){return di.toBytes(r)}});var Ph=58,wc="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Bh=Object.freeze({fromBytes(r){let e=BigInt("0x"+di.fromBytes(r)),t="";for(;e>0;){let i=e%BigInt(Ph);e=e/BigInt(Ph),t=wc[Number(i)]+t}for(let i of r)if(i===0)t=wc[0]+t;else break;return t},toBytes(r){let e=BigInt(0);for(let o of r){let a=wc.indexOf(o);if(a===-1)throw new Error(`Invalid character '${o}' in base58 string`);e=e*BigInt(Ph)+BigInt(a)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let i=di.toBytes(t),s=0;for(let o of r)if(o===wc[0])s++;else break;let n=new Uint8Array(s+i.length);return n.set(i,s),n},random(r=32){return this.fromBytes(Lt.random(r))},string(r){return Bh.fromBytes(r)},bytes(r){return Bh.toBytes(r)}});var Bg=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(e){this.lexicon=e,this.lookup=Object.fromEntries([...e.characters].map((t,i)=>[t,i])),this.negativePrefix=e.negativePrefix??"-"}toBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let a=0,c=0,u=[];for(let l of e){if(l===this.lexicon.padding?.character)continue;let h=this.lookup[l];if(h===void 0)throw new Error(`Invalid character: ${l}`);for(a=a<<t|h,c+=t;c>=8;)c-=8,u.push(a>>c&255)}return new Uint8Array(u)}let i=0n,s=BigInt(this.lexicon.characters.length),n=!1;e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),n=!0);for(let a of e){let c=this.lookup[a];if(c===void 0)throw new Error(`Invalid character: ${a}`);i=i*s+BigInt(c)}let o=[];for(;i>0n;)o.unshift(Number(i%256n)),i=i/256n;return new Uint8Array(o)}fromBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let o=0,a=0,c="";for(let u of e)for(o=o<<8|u,a+=8;a>=t;){a-=t;let l=o>>a&(1<<t)-1;c+=this.lexicon.characters[l]}if(a>0){let u=o<<t-a&(1<<t)-1;c+=this.lexicon.characters[u]}if(this.lexicon.padding)for(;c.length%this.lexicon.padding.size!==0;)c+=this.lexicon.padding.character;return c}let i=0n;for(let o of e)i=(i<<8n)+BigInt(o);if(i===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;i>0n;)n=this.lexicon.characters[Number(i%s)]+n,i=i/s;return n}toInteger(e){if(!e)return 0;let t=0n,i=!1,s=BigInt(this.lexicon.characters.length);e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),i=!0);for(let n of e){let o=this.lookup[n];if(o===void 0)throw new Error(`Invalid character: ${n}`);t=t*s+BigInt(o)}return Number(i?-t:t)}fromInteger(e){e=Math.floor(e);let t=e<0,i=BigInt(t?-e:e);if(i===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;i>0n;)n=this.lexicon.characters[Number(i%s)]+n,i=i/s;return t?`${this.negativePrefix}${n}`:n}random(e=32){return this.fromBytes(Lt.random(e))}};var Rh=Object.freeze({fromBytes(r){return typeof btoa=="function"?btoa(String.fromCharCode(...r)):Buffer.from(r).toString("base64")},toBytes(r){return typeof atob=="function"?Uint8Array.from(atob(r),e=>e.charCodeAt(0)):Uint8Array.from(Buffer.from(r,"base64"))},random(r=32){return this.fromBytes(Lt.random(r))},string(r){return Rh.fromBytes(r)},bytes(r){return Rh.toBytes(r)}});var Rg=Object.freeze({fromBytes(r){return new TextDecoder().decode(r)},toBytes(r){return new TextEncoder().encode(r)},string(r){return Rg.fromBytes(r)},bytes(r){return Rg.toBytes(r)}});var Sc=Object.freeze({set:r=>r!=null,unset:r=>r==null,boolean:r=>typeof r=="boolean",number:r=>typeof r=="number",string:r=>typeof r=="string",bigint:r=>typeof r=="bigint",object:r=>typeof r=="object"&&r!==null,array:r=>Array.isArray(r),fn:r=>typeof r=="function",symbol:r=>typeof r=="symbol"});var Dh=class extends Error{milliseconds;name=this.constructor.name;constructor(e,t){super(`${t}, timed out in ${(e/1e3).toFixed(1)} seconds`),this.milliseconds=e}};function Mh(r,e,t){return r<=0||r===1/0?t():new Promise((i,s)=>{let n=setTimeout(()=>s(new Dh(r,e)),r);t().then(i).catch(s).finally(()=>clearTimeout(n))})}function Rt(){let r,e,t=new Promise((s,n)=>{r=s,e=n});function i(s){return s.then(r).catch(e),t}return{promise:t,resolve:r,reject:e,entangle:i}}function Dg(r,e){let t=r;for(let i of e)if(t=t[i],Sc.unset(t))break;return t}var vc=class{items;#e=[];constructor(e){this.items=e,this.#e=[...e]}pull(){this.#e.length===0&&(this.#e=[...this.items]);let e=Math.floor(Math.random()*this.#e.length),[t]=this.#e.splice(e,1);return t}};function ek(r){return{map:e=>Mg(r,e),filter:e=>Ig(r,e)}}ek.pipe=Object.freeze({map:r=>e=>Mg(e,r),filter:r=>e=>Ig(e,r)});var Mg=(r,e)=>Object.fromEntries(Object.entries(r).map(([t,i])=>[t,e(i,t)])),Ig=(r,e)=>Object.fromEntries(Object.entries(r).filter(([t,i])=>e(i,t)));function tk(){let r=new Set;function e(n){return r.add(n),()=>{r.delete(n)}}async function t(...n){await Promise.all([...r].map(o=>o(...n)))}async function i(){let{promise:n,resolve:o}=Rt(),a=e((...c)=>{o(c),a()});return n}function s(){r.clear()}return e.pub=t,e.sub=e,e.on=e,e.once=i,e.clear=s,t.pub=t,t.sub=e,t.on=e,t.once=i,t.clear=s,[t,e]}function Cc(r){let e=tk()[0];return r&&e.sub(r),e}var fi=class{#e=[];add(...e){return this.#e.push(...e),this}disposable(e){return this.bag(e,()=>e.dispose())}bag(e,t){return this.add(()=>t(e)),e}dispose(){for(let e of this.#e.reverse())e();this.#e=[]}};var Ec=class extends vc{constructor(){super(["\u{1F436}","\u{1F415}","\u{1F429}","\u{1F43A}","\u{1F98A}","\u{1F99D}","\u{1F431}","\u{1F408}","\u{1F42F}","\u{1F405}","\u{1F406}","\u{1F434}","\u{1F40E}","\u{1F984}","\u{1F993}","\u{1F98D}","\u{1F9A7}","\u{1F9A3}","\u{1F418}","\u{1F98F}","\u{1F99B}","\u{1F42D}","\u{1F401}","\u{1F400}","\u{1F439}","\u{1F430}","\u{1F407}","\u{1F9A8}","\u{1F9A1}","\u{1F998}","\u{1F999}","\u{1F43F}\uFE0F","\u{1F9A6}","\u{1F9A5}","\u{1F43B}","\u{1F428}","\u{1F43C}","\u{1F9AB}","\u{1F437}","\u{1F43D}","\u{1F416}","\u{1F417}","\u{1F42E}","\u{1F404}","\u{1F403}","\u{1F402}","\u{1F98C}","\u{1F410}","\u{1F40F}","\u{1F411}","\u{1F42A}","\u{1F42B}","\u{1F426}","\u{1F427}","\u{1F985}","\u{1F986}","\u{1F9A2}","\u{1F989}","\u{1F9A9}","\u{1F9A4}","\u{1F438}","\u{1F98E}","\u{1F422}","\u{1F40D}","\u{1F40A}","\u{1F420}","\u{1F41F}","\u{1F988}","\u{1F421}","\u{1F42C}","\u{1F40B}","\u{1F433}","\u{1F41E}","\u{1F41C}","\u{1F41D}","\u{1F98B}","\u{1F40C}","\u{1F997}","\u{1FAB2}","\u{1F99F}","\u{1F9A0}","\u{1FAC3}"])}};var In=class extends hi{static dummy(){return new this().setWriter(hi.writers.void())}request=async({request:e,label:t})=>{let i=this.colors.none;this.log(...[t].filter(Boolean),i(`${e.method}()`))};rpcError=async({request:e,error:t,label:i})=>{this.error(...[i].filter(Boolean),`${e.method}()`,t)};#e=new Ec;#t(e){return[this.colors.yellow(`[${e.ip}]`),this.colors.green(e.headers.origin?e.headers.origin:"(no-origin)")].join(" ")}http(e){let t=this.#t(e);return{error:this.error.bind(this),request:i=>this.request({...i,label:t}),rpcError:i=>this.rpcError({...i,label:t})}}webSocket(e){let t=this.#t(e),i=this.#e.pull(),s=this.colors.yellow,n=o=>{let a=t+" "+(o?i+s(" <-"):i+s(" ->"));return{error:this.error.bind(this),request:c=>this.request({...c,label:a}),rpcError:c=>this.rpcError({...c,label:a})}};return{remote:n(!0),local:n(!1)}}};var mi=class extends In{request=async()=>{}};var Fn=new mi;function rs({fns:r,tap:e=Fn}){return async t=>{let i=t.method.split("."),s=Dg(r,i),n=async()=>await s(...t.params);return e.request({request:t}),await wg({tap:e,request:t,action:n})}}var Fg=Symbol("tune"),rk=Symbol("query"),ik=Symbol("notify"),sk=Symbol("settings");function Ug(r){function e(t){let i={notify:void 0};return new Proxy(()=>{},{apply:(s,n,o)=>r(t,o,i),get:(s,n)=>{if(n!=="then")return n===Fg?o=>(...a)=>r(t,a,{...i,...o}):n===ik?(...o)=>r(t,o,{...i,notify:!0}):n===rk?(...o)=>r(t,o,{...i,notify:!1}):n===sk?i:(s[n]||(s[n]=e([...t,n])),s[n])},set:(s,n,o)=>(s[n]=o,!0)})}return e([])}function Gr(r){let{endpoint:e,tap:t=Fn}=r,i=1;return Ug(async(s,n,o)=>{let a=o.notify??r.notify??!1,c=o.transfer,u={jsonrpc:"2.0",method:s.join("."),params:n},l=a?u:{...u,id:i++};t.request({request:l});let h=await e(l,{transfer:c});if(a&&!h)return null;if(!h)throw new li("response was null, but shouldn't be, because the request was not a notification");if("error"in h)throw new li(r.label?`${r.label}: ${h.error.message}`:h.error.message);return h.result})}function Un(r){return Gr({endpoint:rs(r),tap:r.tap})}var pi=class{recv=Cc();sendRequest=Cc();sendResponse=Cc();static makeEntangledPair({origin:e="example.e280.org"}={}){let t=new this,i=new this,s=[t.sendRequest.sub(o=>i.recv(o,{origin:e})),t.sendResponse.sub(o=>i.recv(o,{origin:e})),i.sendRequest.sub(o=>t.recv(o,{origin:e})),i.sendResponse.sub(o=>t.recv(o,{origin:e}))];return[t,i,()=>s.forEach(o=>o())]}};var hr=class{transfer=void 0};function kc(r,e){return r.addEventListener("message",e),()=>r.removeEventListener("message",e)}function Og(r,e){return async(t,{transfer:i}={})=>{if("id"in t){let s=Rt();return e(t,i,s.promise),r.wait(t.id,t.method).then(n=>(s.resolve(n),n))}else{let s=Promise.resolve(null);return e(t,i,s),s}}}function Gg(r){let e=[],t=[];for(let i of Array.isArray(r)?r:[r])"method"in i?e.push(i):t.push(i);return{requests:e,responses:t}}async function Ng(r,e){let t=(await Promise.all(e.map(async i=>r(i)))).filter(i=>i!==null);return t.length===0?null:t.length===1?t[0]:t}var is=class extends pi{#e=new fi;constructor(e){super(),this.#e.add(this.sendRequest.sub((t,i)=>e.postMessage(t,i)),this.sendResponse.sub((t,i)=>e.postMessage(t,i)),kc(e,t=>this.recv(t.data,t)))}dispose(){this.#e.dispose()}};var Ih=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var On=class{timeout;pending=new Map;constructor(e){this.timeout=e}async wait(e,t){let i=Rt();return this.pending.set(e,{method:t,deferred:i}),await Mh(this.timeout,`request #${e} ${t}()`,()=>i.promise)}deliverResponse(e){let t=this.pending.get(e.id);t&&("error"in e?t.deferred.reject(new li(e.error.message)):t.deferred.resolve(e))}};var ss=class{options;waiter;remoteEndpoint;remote;constructor(e){this.options=e;let{conduit:t}=e;this.waiter=new On(e.timeout??Ih.timeout),this.remoteEndpoint=Og(this.waiter,t.sendRequest.pub.bind(t.sendRequest)),this.remote=Gr({endpoint:this.remoteEndpoint,tap:e.tap}),t.recv.sub(i=>this.recv(i))}async recv(e){let t=new hr,{conduit:i,getLocalEndpoint:s}=this.options,{requests:n,responses:o}=Gg(e);for(let c of o)this.waiter.deliverResponse(c);if(!s)return;let a=await Ng(s(this.remote,t),n);a&&await i.sendResponse(a,t.transfer)}};var gi=class{host;constructor(e){this.host=e}},xi=class{work;constructor(e){this.work=e}};var dr=new mi;async function Lg(r,e,t={}){let i=t.tap??dr,s=new ss({tap:i,timeout:t.timeout??1/0,conduit:new is(r.getSelf()),getLocalEndpoint:(n,o)=>rs({tap:i,fns:e(new gi(n.host),o)})});return await s.remote.meta.ready(),s.remote.host}var ns=class{worker;messenger;constructor(e,t){this.worker=e,this.messenger=t}static async make(e,t){let i=t.tap??dr,s=e.loadWorker(t.workerUrl,t.label),n=Rt(),o={async ready(){n.resolve()}},a=new ss({tap:i,timeout:t.timeout??1/0,conduit:new is(s),getLocalEndpoint:(c,u)=>rs({tap:i,fns:{meta:o,host:t.setupHost(new xi(c),u)}})});return await n.promise,new this(s,a)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var Ac=class{threads;static async make(e,t){let i=t.workerCount??e.guessOptimalThreadCount(),s=await Promise.all([...Array(i)].map(async(n,o)=>ns.make(e,{...t,label:t.label??`${t.label??"comrade"}_${o+1}`})));return new this(s,{tap:t.tap})}work;#e=new Set;#t=[];constructor(e,t={}){this.threads=e;let i=t.tap??dr,s=async(n,o)=>this.#i({request:n,prom:Rt(),transfer:o?.transfer});this.work=Gr({tap:i,endpoint:s}),e.forEach(n=>this.#e.add(n))}get threadCount(){return this.threads.length}terminate(){for(let e of this.threads)e.terminate()}#i(e){return this.#t.push(e),this.#r(),e.prom.promise}#r(){for(;this.#e.size>0&&this.#t.length>0;){let e=[...this.#e].pop();this.#e.delete(e);let t=this.#t.shift();this.#e.delete(e);let i=e.messenger.remoteEndpoint(t.request,{transfer:t.transfer});t.prom.entangle(i).finally(()=>{this.#e.add(e),this.#r()})}}};var zg=r=>({thread:e=>ns.make(r,e),cluster:e=>Ac.make(r,e),worker:(e,t={})=>Lg(r,e,t),work:e=>e,host:e=>e,mocks(e){let{setupWork:t,setupHost:i,tap:s=dr}=e,n=new gi,o=new xi;return o.work=Un({tap:s,fns:t(n,new hr)}),n.host=Un({tap:s,fns:i(o,new hr)}),{workShell:o,hostShell:n,work:o.work,host:n.host}},mockWork(e,t=dr){let i=new gi,s=new xi;return s.work=Un({tap:t,fns:e(i,new hr)}),{workShell:s,hostShell:i,work:s.work,mockHost:n=>(i.host=Un({tap:t,fns:n(s,new hr)}),{workShell:s,hostShell:i,work:s.work,host:i.host})}}});var Vg=()=>({getSelf(){return self},guessOptimalThreadCount(){let r=navigator.hardwareConcurrency??1;return Math.max(1,r-1)},loadWorker(r,e){return new window.Worker(r,{name:e,type:"module"})},async loadWasm(r){return WebAssembly.instantiateStreaming(fetch(r))}});var ok=Vg(),Pc=zg(ok);function w(r){if(!r)throw new Error("Assertion failed.")}var Bc=r=>{let e=(r%360+360)%360;if(e===0||e===90||e===180||e===270)return e;throw new Error(`Invalid rotation ${r}.`)},he=r=>r&&r[r.length-1],_i=r=>r>=0&&r<2**32,pt=class r{constructor(e){this.bytes=e,this.pos=0}seekToByte(e){this.pos=8*e}readBit(){let e=Math.floor(this.pos/8),t=this.bytes[e]??0,i=7-(this.pos&7),s=(t&1<<i)>>i;return this.pos++,s}readBits(e){let t=0;for(let i=0;i<e;i++)t<<=1,t|=this.readBit();return t}readAlignedByte(){if(this.pos%8!==0)throw new Error("Bitstream is not byte-aligned.");let e=this.pos/8,t=this.bytes[e]??0;return this.pos+=8,t}skipBits(e){this.pos+=e}getBitsLeft(){return this.bytes.length*8-this.pos}clone(){let e=new r(this.bytes);return e.pos=this.pos,e}},L=r=>{let e=0;for(;r.readBit()===0&&e<32;)e++;if(e>=32)throw new Error("Invalid exponential-Golomb code.");return(1<<e)-1+r.readBits(e)},os=r=>{let e=L(r);return(e&1)===0?-(e>>1):e+1>>1};var zt=r=>r instanceof Uint8Array?r:r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer,r.byteOffset,r.byteLength),St=r=>r instanceof DataView?r:r instanceof ArrayBuffer?new DataView(r):new DataView(r.buffer,r.byteOffset,r.byteLength),bi=new TextEncoder,Fh=r=>Object.fromEntries(Object.entries(r).map(([e,t])=>[t,e])),yi={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},Rc=Fh(yi),Ti={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pg:16,hlg:18},Dc=Fh(Ti),wi={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},Mc=Fh(wi),Hg=r=>!!r&&!!r.primaries&&!!r.transfer&&!!r.matrix&&r.fullRange!==void 0,as=r=>r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer||ArrayBuffer.isView(r),wt=class{constructor(){this.currentPromise=Promise.resolve()}async acquire(){let e,t=new Promise(s=>{e=s}),i=this.currentPromise;return this.currentPromise=t,await i,e}},Uh=r=>[...r].map(e=>e.toString(16).padStart(2,"0")).join(""),Oh=r=>(r=r>>1&1431655765|(r&1431655765)<<1,r=r>>2&858993459|(r&858993459)<<2,r=r>>4&252645135|(r&252645135)<<4,r=r>>8&16711935|(r&16711935)<<8,r=r>>16&65535|(r&65535)<<16,r>>>0),Ae=(r,e,t)=>{let i=0,s=r.length-1,n=-1;for(;i<=s;){let o=i+s>>1,a=t(r[o]);a===e?(n=o,s=o-1):a<e?i=o+1:s=o-1}return n},Z=(r,e,t)=>{let i=0,s=r.length-1,n=-1;for(;i<=s;){let o=i+(s-i+1)/2|0;t(r[o])<=e?(n=o,i=o+1):s=o-1}return n},Ke=()=>{let r,e;return{promise:new Promise((i,s)=>{r=i,e=s}),resolve:r,reject:e}},Wg=(r,e)=>{let t=r.indexOf(e);t!==-1&&r.splice(t,1)},Gh=(r,e)=>{for(let t=r.length-1;t>=0;t--)if(e(r[t]))return r[t]},Ic=(r,e)=>{for(let t=r.length-1;t>=0;t--)if(e(r[t]))return t;return-1},$g=async function*(r){Symbol.iterator in r?yield*r[Symbol.iterator]():yield*r[Symbol.asyncIterator]()},qg=r=>{if(!(Symbol.iterator in r)&&!(Symbol.asyncIterator in r))throw new TypeError("Argument must be an iterable or async iterable.")},Gn=r=>{throw new Error(`Unexpected value: ${r}`)},Nh=(r,e,t)=>{let i=r.getUint8(e),s=r.getUint8(e+1),n=r.getUint8(e+2);return t?i|s<<8|n<<16:i<<16|s<<8|n},jg=(r,e,t)=>Nh(r,e,t)<<8>>8,Lh=(r,e,t,i)=>{t=t>>>0,t=t&16777215,i?(r.setUint8(e,t&255),r.setUint8(e+1,t>>>8&255),r.setUint8(e+2,t>>>16&255)):(r.setUint8(e,t>>>16&255),r.setUint8(e+1,t>>>8&255),r.setUint8(e+2,t&255))},Xg=(r,e,t,i)=>{t=$e(t,-8388608,8388607),t<0&&(t=t+16777216&16777215),Lh(r,e,t,i)};var $e=(r,e,t)=>Math.max(e,Math.min(t,r)),nt="und",cs=(r,e)=>{let t=10**e;return Math.round(r*t)/t},Yg=(r,e)=>Math.round(r/e)*e,Kg=r=>{let e=0;for(;r;)e++,r>>=1;return e},ak=/^[a-z]{3}$/,us=r=>ak.test(r),Vt=1e6*(1+Number.EPSILON),Fc=(r,e)=>{let t={...r};for(let i in e)typeof r[i]=="object"&&r[i]!==null&&typeof e[i]=="object"&&e[i]!==null?t[i]=Fc(r[i],e[i]):t[i]=e[i];return t},zh=async(r,e,t)=>{let i=0;for(;;)try{return await fetch(r,e)}catch(s){console.error("Retrying failed fetch. Error:",s),i++;let n=t(i);if(n===null)throw s;if(!Number.isFinite(n)||n<0)throw new TypeError("Retry delay must be a non-negative finite number.");n>0&&await new Promise(o=>setTimeout(o,1e3*n))}},Qg=(r,e)=>{let t=r<0?-1:1;r=Math.abs(r);let i=0,s=1,n=1,o=0,a=r;for(;;){let c=Math.floor(a),u=c*n+i,l=c*o+s;if(l>e)return{numerator:t*n,denominator:o};if(i=n,s=o,n=u,o=l,a=1/(a-c),!isFinite(a))break}return{numerator:t*n,denominator:o}},Nr=class{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}};var Uc=[],Oc=[],Zg=[],Jg=[];var mr=["avc","hevc","vp9","av1","vp8"],Re=["pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be","pcm-u8","pcm-s8","ulaw","alaw"],Vh=["aac","opus","mp3","vorbis","flac"],Lr=[...Vh,...Re],ls=["webvtt"],ex=[{maxMacroblocks:99,maxBitrate:64e3,level:10},{maxMacroblocks:396,maxBitrate:192e3,level:11},{maxMacroblocks:396,maxBitrate:384e3,level:12},{maxMacroblocks:396,maxBitrate:768e3,level:13},{maxMacroblocks:396,maxBitrate:2e6,level:20},{maxMacroblocks:792,maxBitrate:4e6,level:21},{maxMacroblocks:1620,maxBitrate:4e6,level:22},{maxMacroblocks:1620,maxBitrate:1e7,level:30},{maxMacroblocks:3600,maxBitrate:14e6,level:31},{maxMacroblocks:5120,maxBitrate:2e7,level:32},{maxMacroblocks:8192,maxBitrate:2e7,level:40},{maxMacroblocks:8192,maxBitrate:5e7,level:41},{maxMacroblocks:8704,maxBitrate:5e7,level:42},{maxMacroblocks:22080,maxBitrate:135e6,level:50},{maxMacroblocks:36864,maxBitrate:24e7,level:51},{maxMacroblocks:36864,maxBitrate:24e7,level:52},{maxMacroblocks:139264,maxBitrate:24e7,level:60},{maxMacroblocks:139264,maxBitrate:48e7,level:61},{maxMacroblocks:139264,maxBitrate:8e8,level:62}],tx=[{maxPictureSize:36864,maxBitrate:128e3,tier:"L",level:30},{maxPictureSize:122880,maxBitrate:15e5,tier:"L",level:60},{maxPictureSize:245760,maxBitrate:3e6,tier:"L",level:63},{maxPictureSize:552960,maxBitrate:6e6,tier:"L",level:90},{maxPictureSize:983040,maxBitrate:1e7,tier:"L",level:93},{maxPictureSize:2228224,maxBitrate:12e6,tier:"L",level:120},{maxPictureSize:2228224,maxBitrate:3e7,tier:"H",level:120},{maxPictureSize:2228224,maxBitrate:2e7,tier:"L",level:123},{maxPictureSize:2228224,maxBitrate:5e7,tier:"H",level:123},{maxPictureSize:8912896,maxBitrate:25e6,tier:"L",level:150},{maxPictureSize:8912896,maxBitrate:1e8,tier:"H",level:150},{maxPictureSize:8912896,maxBitrate:4e7,tier:"L",level:153},{maxPictureSize:8912896,maxBitrate:16e7,tier:"H",level:153},{maxPictureSize:8912896,maxBitrate:6e7,tier:"L",level:156},{maxPictureSize:8912896,maxBitrate:24e7,tier:"H",level:156},{maxPictureSize:35651584,maxBitrate:6e7,tier:"L",level:180},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:180},{maxPictureSize:35651584,maxBitrate:12e7,tier:"L",level:183},{maxPictureSize:35651584,maxBitrate:48e7,tier:"H",level:183},{maxPictureSize:35651584,maxBitrate:24e7,tier:"L",level:186},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:186}],fr=[{maxPictureSize:36864,maxBitrate:2e5,level:10},{maxPictureSize:73728,maxBitrate:8e5,level:11},{maxPictureSize:122880,maxBitrate:18e5,level:20},{maxPictureSize:245760,maxBitrate:36e5,level:21},{maxPictureSize:552960,maxBitrate:72e5,level:30},{maxPictureSize:983040,maxBitrate:12e6,level:31},{maxPictureSize:2228224,maxBitrate:18e6,level:40},{maxPictureSize:2228224,maxBitrate:3e7,level:41},{maxPictureSize:8912896,maxBitrate:6e7,level:50},{maxPictureSize:8912896,maxBitrate:12e7,level:51},{maxPictureSize:8912896,maxBitrate:18e7,level:52},{maxPictureSize:35651584,maxBitrate:18e7,level:60},{maxPictureSize:35651584,maxBitrate:24e7,level:61},{maxPictureSize:35651584,maxBitrate:48e7,level:62}],rx=[{maxPictureSize:147456,maxBitrate:15e5,tier:"M",level:0},{maxPictureSize:278784,maxBitrate:3e6,tier:"M",level:1},{maxPictureSize:665856,maxBitrate:6e6,tier:"M",level:4},{maxPictureSize:1065024,maxBitrate:1e7,tier:"M",level:5},{maxPictureSize:2359296,maxBitrate:12e6,tier:"M",level:8},{maxPictureSize:2359296,maxBitrate:3e7,tier:"H",level:8},{maxPictureSize:2359296,maxBitrate:2e7,tier:"M",level:9},{maxPictureSize:2359296,maxBitrate:5e7,tier:"H",level:9},{maxPictureSize:8912896,maxBitrate:3e7,tier:"M",level:12},{maxPictureSize:8912896,maxBitrate:1e8,tier:"H",level:12},{maxPictureSize:8912896,maxBitrate:4e7,tier:"M",level:13},{maxPictureSize:8912896,maxBitrate:16e7,tier:"H",level:13},{maxPictureSize:8912896,maxBitrate:6e7,tier:"M",level:14},{maxPictureSize:8912896,maxBitrate:24e7,tier:"H",level:14},{maxPictureSize:35651584,maxBitrate:6e7,tier:"M",level:15},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:15},{maxPictureSize:35651584,maxBitrate:6e7,tier:"M",level:16},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:16},{maxPictureSize:35651584,maxBitrate:1e8,tier:"M",level:17},{maxPictureSize:35651584,maxBitrate:48e7,tier:"H",level:17},{maxPictureSize:35651584,maxBitrate:16e7,tier:"M",level:18},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:18},{maxPictureSize:35651584,maxBitrate:16e7,tier:"M",level:19},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:19}],ix=".01.01.01.01.00",sx=".0.110.01.01.01.0",nx=(r,e,t,i)=>{if(r==="avc"){let n=Math.ceil(e/16)*Math.ceil(t/16),o=ex.find(h=>n<=h.maxMacroblocks&&i<=h.maxBitrate)??he(ex),a=o?o.level:0,c="64".padStart(2,"0"),u="00",l=a.toString(16).padStart(2,"0");return`avc1.${c}${u}${l}`}else if(r==="hevc"){let s="",o="6",a=e*t,c=tx.find(l=>a<=l.maxPictureSize&&i<=l.maxBitrate)??he(tx);return`hev1.${s}1.${o}.${c.tier}${c.level}.B0`}else{if(r==="vp8")return"vp8";if(r==="vp9"){let s="00",n=e*t,o=fr.find(c=>n<=c.maxPictureSize&&i<=c.maxBitrate)??he(fr);return`vp09.${s}.${o.level.toString().padStart(2,"0")}.08`}else if(r==="av1"){let n=e*t,o=rx.find(u=>n<=u.maxPictureSize&&i<=u.maxBitrate)??he(rx);return`av01.0.${o.level.toString().padStart(2,"0")}${o.tier}.08`}}throw new TypeError(`Unhandled codec '${r}'.`)};var ox=r=>{let e=r.split("."),s=(1<<7)+1,n=Number(e[1]),o=e[2],a=Number(o.slice(0,-1)),c=(n<<5)+a,u=o.slice(-1)==="H"?1:0,h=Number(e[3])===8?0:1,f=0,d=e[4]?Number(e[4]):0,m=e[5]?Number(e[5][0]):1,x=e[5]?Number(e[5][1]):1,g=e[5]?Number(e[5][2]):0,_=(u<<7)+(h<<6)+(f<<5)+(d<<4)+(m<<3)+(x<<2)+g;return[s,c,_,0]},Gc=r=>{let{codec:e,codecDescription:t,colorSpace:i,avcCodecInfo:s,hevcCodecInfo:n,vp9CodecInfo:o,av1CodecInfo:a}=r;if(e==="avc"){if(s){let c=new Uint8Array([s.avcProfileIndication,s.profileCompatibility,s.avcLevelIndication]);return`avc1.${Uh(c)}`}if(!t||t.byteLength<4)throw new TypeError("AVC decoder description is not provided or is not at least 4 bytes long.");return`avc1.${Uh(t.subarray(1,4))}`}else if(e==="hevc"){let c,u,l,h,f,d;if(n)c=n.generalProfileSpace,u=n.generalProfileIdc,l=Oh(n.generalProfileCompatibilityFlags),h=n.generalTierFlag,f=n.generalLevelIdc,d=[...n.generalConstraintIndicatorFlags];else{if(!t||t.byteLength<23)throw new TypeError("HEVC decoder description is not provided or is not at least 23 bytes long.");let x=St(t),g=x.getUint8(1);c=g>>6&3,u=g&31,l=Oh(x.getUint32(2)),h=g>>5&1,f=x.getUint8(12),d=[];for(let _=0;_<6;_++)d.push(x.getUint8(6+_))}let m="hev1.";for(m+=["","A","B","C"][c]+u,m+=".",m+=l.toString(16).toUpperCase(),m+=".",m+=h===0?"L":"H",m+=f;d.length>0&&d[d.length-1]===0;)d.pop();return d.length>0&&(m+=".",m+=d.map(x=>x.toString(16).toUpperCase()).join(".")),m}else{if(e==="vp8")return"vp8";if(e==="vp9"){if(!o){let _=r.width*r.height,y=he(fr).level;for(let S of fr)if(_<=S.maxPictureSize){y=S.level;break}return`vp09.00.${y.toString().padStart(2,"0")}.08`}let c=o.profile.toString().padStart(2,"0"),u=o.level.toString().padStart(2,"0"),l=o.bitDepth.toString().padStart(2,"0"),h=o.chromaSubsampling.toString().padStart(2,"0"),f=o.colourPrimaries.toString().padStart(2,"0"),d=o.transferCharacteristics.toString().padStart(2,"0"),m=o.matrixCoefficients.toString().padStart(2,"0"),x=o.videoFullRangeFlag.toString().padStart(2,"0"),g=`vp09.${c}.${u}.${l}.${h}`;return g+=`.${f}.${d}.${m}.${x}`,g.endsWith(ix)&&(g=g.slice(0,-ix.length)),g}else if(e==="av1"){if(!a){let S=r.width*r.height,T=he(fr).level;for(let C of fr)if(S<=C.maxPictureSize){T=C.level;break}return`av01.0.${T.toString().padStart(2,"0")}M.08`}let c=a.profile,u=a.level.toString().padStart(2,"0"),l=a.tier?"H":"M",h=a.bitDepth.toString().padStart(2,"0"),f=a.monochrome?"1":"0",d=100*a.chromaSubsamplingX+10*a.chromaSubsamplingY+1*(a.chromaSubsamplingX&&a.chromaSubsamplingY?a.chromaSamplePosition:0),m=i?.primaries?yi[i.primaries]:1,x=i?.transfer?Ti[i.transfer]:1,g=i?.matrix?wi[i.matrix]:1,_=i?.fullRange?1:0,y=`av01.${c}.${u}${l}.${h}`;return y+=`.${f}.${d.toString().padStart(3,"0")}`,y+=`.${m.toString().padStart(2,"0")}`,y+=`.${x.toString().padStart(2,"0")}`,y+=`.${g.toString().padStart(2,"0")}`,y+=`.${_}`,y.endsWith(sx)&&(y=y.slice(0,-sx.length)),y}}throw new TypeError(`Unhandled codec '${e}'.`)},ax=(r,e,t)=>{if(r==="aac")return e>=2&&t<=24e3?"mp4a.40.29":t<=24e3?"mp4a.40.5":"mp4a.40.2";if(r==="mp3")return"mp3";if(r==="opus")return"opus";if(r==="vorbis")return"vorbis";if(r==="flac")return"flac";if(Re.includes(r))return r;throw new TypeError(`Unhandled codec '${r}'.`)},Nc=r=>{let{codec:e,codecDescription:t,aacCodecInfo:i}=r;if(e==="aac"){if(!i)throw new TypeError("AAC codec info must be provided.");return i.isMpeg2?"mp4a.67":`mp4a.40.${Hh(t).objectType}`}else{if(e==="mp3")return"mp3";if(e==="opus")return"opus";if(e==="vorbis")return"vorbis";if(e==="flac")return"flac";if(e&&Re.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)},Hh=r=>{if(!r||r.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");let e=new pt(r),t=e.readBits(5);t===31&&(t=32+e.readBits(6));let i=e.readBits(4),s=null;if(i===15)s=e.readBits(24);else{let a=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];i<a.length&&(s=a[i])}let n=e.readBits(4),o=null;return n>=1&&n<=7&&(o={1:1,2:2,3:3,4:4,5:5,6:6,7:8}[n]),{objectType:t,frequencyIndex:i,sampleRate:s,channelConfiguration:n,numberOfChannels:o}},cx=48e3,ux=/^pcm-([usf])(\d+)+(be)?$/,gt=r=>{if(w(Re.includes(r)),r==="ulaw")return{dataType:"ulaw",sampleSize:1,littleEndian:!0,silentValue:255};if(r==="alaw")return{dataType:"alaw",sampleSize:1,littleEndian:!0,silentValue:213};let e=ux.exec(r);w(e);let t;e[1]==="u"?t="unsigned":e[1]==="s"?t="signed":t="float";let i=Number(e[2])/8,s=e[3]!=="be",n=r==="pcm-u8"?2**7:0;return{dataType:t,sampleSize:i,littleEndian:s,silentValue:n}},Wh=r=>r.startsWith("avc1")||r.startsWith("avc3")?"avc":r.startsWith("hev1")||r.startsWith("hvc1")?"hevc":r==="vp8"?"vp8":r.startsWith("vp09")?"vp9":r.startsWith("av01")?"av1":r.startsWith("mp4a.40")||r==="mp4a.67"?"aac":r==="mp3"||r==="mp4a.69"||r==="mp4a.6B"||r==="mp4a.6b"?"mp3":r==="opus"?"opus":r==="vorbis"?"vorbis":r==="flac"?"flac":r==="ulaw"?"ulaw":r==="alaw"?"alaw":ux.test(r)?r:r==="webvtt"?"webvtt":null,lx=r=>r==="avc"?{avc:{format:"avc"}}:r==="hevc"?{hevc:{format:"hevc"}}:{},hx=r=>r==="aac"?{aac:{format:"aac"}}:r==="opus"?{opus:{format:"opus"}}:{},vt=class{constructor(e){this._factor=e}_toVideoBitrate(e,t,i){let s=t*i,n={avc:1,hevc:.6,vp9:.6,av1:.4,vp8:1.2},o=1920*1080,a=3e6,c=Math.pow(s/o,.95),h=a*c*n[e]*this._factor;return Math.ceil(h/1e3)*1e3}_toAudioBitrate(e){if(Re.includes(e)||e==="flac")return;let i={aac:128e3,opus:64e3,mp3:16e4,vorbis:64e3}[e];if(!i)throw new Error(`Unhandled codec: ${e}`);let s=i*this._factor;return e==="aac"?s=[96e3,128e3,16e4,192e3].reduce((o,a)=>Math.abs(a-s)<Math.abs(o-s)?a:o):e==="opus"||e==="vorbis"?s=Math.max(6e3,s):e==="mp3"&&(s=[8e3,16e3,24e3,32e3,4e4,48e3,64e3,8e4,96e3,112e3,128e3,16e4,192e3,224e3,256e3,32e4].reduce((o,a)=>Math.abs(a-s)<Math.abs(o-s)?a:o)),Math.round(s/1e3)*1e3}},hO=new vt(.3),dO=new vt(.6),fO=new vt(1),mO=new vt(2),pO=new vt(4),ck=["avc1","avc3","hev1","hvc1","vp8","vp09","av01"],uk=/^(avc1|avc3)\.[0-9a-fA-F]{6}$/,lk=/^(hev1|hvc1)\.(?:[ABC]?\d+)\.[0-9a-fA-F]{1,8}\.[LH]\d+(?:\.[0-9a-fA-F]{1,2}){0,6}$/,hk=/^vp09(?:\.\d{2}){3}(?:(?:\.\d{2}){5})?$/,dk=/^av01\.\d\.\d{2}[MH]\.\d{2}(?:\.\d\.\d{3}\.\d{2}\.\d{2}\.\d{2}\.\d)?$/,dx=r=>{if(!r)throw new TypeError("Video chunk metadata must be provided.");if(typeof r!="object")throw new TypeError("Video chunk metadata must be an object.");if(!r.decoderConfig)throw new TypeError("Video chunk metadata must include a decoder configuration.");if(typeof r.decoderConfig!="object")throw new TypeError("Video chunk metadata decoder configuration must be an object.");if(typeof r.decoderConfig.codec!="string")throw new TypeError("Video chunk metadata decoder configuration must specify a codec string.");if(!ck.some(e=>r.decoderConfig.codec.startsWith(e)))throw new TypeError("Video chunk metadata decoder configuration codec string must be a valid video codec string as specified in the WebCodecs Codec Registry.");if(!Number.isInteger(r.decoderConfig.codedWidth)||r.decoderConfig.codedWidth<=0)throw new TypeError("Video chunk metadata decoder configuration must specify a valid codedWidth (positive integer).");if(!Number.isInteger(r.decoderConfig.codedHeight)||r.decoderConfig.codedHeight<=0)throw new TypeError("Video chunk metadata decoder configuration must specify a valid codedHeight (positive integer).");if(r.decoderConfig.description!==void 0&&!as(r.decoderConfig.description))throw new TypeError("Video chunk metadata decoder configuration description, when defined, must be an ArrayBuffer or an ArrayBuffer view.");if(r.decoderConfig.colorSpace!==void 0){let{colorSpace:e}=r.decoderConfig;if(typeof e!="object")throw new TypeError("Video chunk metadata decoder configuration colorSpace, when provided, must be an object.");let t=Object.keys(yi);if(e.primaries!=null&&!t.includes(e.primaries))throw new TypeError(`Video chunk metadata decoder configuration colorSpace primaries, when defined, must be one of ${t.join(", ")}.`);let i=Object.keys(Ti);if(e.transfer!=null&&!i.includes(e.transfer))throw new TypeError(`Video chunk metadata decoder configuration colorSpace transfer, when defined, must be one of ${i.join(", ")}.`);let s=Object.keys(wi);if(e.matrix!=null&&!s.includes(e.matrix))throw new TypeError(`Video chunk metadata decoder configuration colorSpace matrix, when defined, must be one of ${s.join(", ")}.`);if(e.fullRange!=null&&typeof e.fullRange!="boolean")throw new TypeError("Video chunk metadata decoder configuration colorSpace fullRange, when defined, must be a boolean.")}if(r.decoderConfig.codec.startsWith("avc1")||r.decoderConfig.codec.startsWith("avc3")){if(!uk.test(r.decoderConfig.codec))throw new TypeError("Video chunk metadata decoder configuration codec string for AVC must be a valid AVC codec string as specified in Section 3.4 of RFC 6381.")}else if(r.decoderConfig.codec.startsWith("hev1")||r.decoderConfig.codec.startsWith("hvc1")){if(!lk.test(r.decoderConfig.codec))throw new TypeError("Video chunk metadata decoder configuration codec string for HEVC must be a valid HEVC codec string as specified in Section E.3 of ISO 14496-15.")}else if(r.decoderConfig.codec.startsWith("vp8")){if(r.decoderConfig.codec!=="vp8")throw new TypeError('Video chunk metadata decoder configuration codec string for VP8 must be "vp8".')}else if(r.decoderConfig.codec.startsWith("vp09")){if(!hk.test(r.decoderConfig.codec))throw new TypeError('Video chunk metadata decoder configuration codec string for VP9 must be a valid VP9 codec string as specified in Section "Codecs Parameter String" of https://www.webmproject.org/vp9/mp4/.')}else if(r.decoderConfig.codec.startsWith("av01")&&!dk.test(r.decoderConfig.codec))throw new TypeError('Video chunk metadata decoder configuration codec string for AV1 must be a valid AV1 codec string as specified in Section "Codecs Parameter String" of https://aomediacodec.github.io/av1-isobmff/.')},fk=["mp4a","mp3","opus","vorbis","flac","ulaw","alaw","pcm"],fx=r=>{if(!r)throw new TypeError("Audio chunk metadata must be provided.");if(typeof r!="object")throw new TypeError("Audio chunk metadata must be an object.");if(!r.decoderConfig)throw new TypeError("Audio chunk metadata must include a decoder configuration.");if(typeof r.decoderConfig!="object")throw new TypeError("Audio chunk metadata decoder configuration must be an object.");if(typeof r.decoderConfig.codec!="string")throw new TypeError("Audio chunk metadata decoder configuration must specify a codec string.");if(!fk.some(e=>r.decoderConfig.codec.startsWith(e)))throw new TypeError("Audio chunk metadata decoder configuration codec string must be a valid audio codec string as specified in the WebCodecs Codec Registry.");if(!Number.isInteger(r.decoderConfig.sampleRate)||r.decoderConfig.sampleRate<=0)throw new TypeError("Audio chunk metadata decoder configuration must specify a valid sampleRate (positive integer).");if(!Number.isInteger(r.decoderConfig.numberOfChannels)||r.decoderConfig.numberOfChannels<=0)throw new TypeError("Audio chunk metadata decoder configuration must specify a valid numberOfChannels (positive integer).");if(r.decoderConfig.description!==void 0&&!as(r.decoderConfig.description))throw new TypeError("Audio chunk metadata decoder configuration description, when defined, must be an ArrayBuffer or an ArrayBuffer view.");if(r.decoderConfig.codec.startsWith("mp4a")&&r.decoderConfig.codec!=="mp4a.69"&&r.decoderConfig.codec!=="mp4a.6B"&&r.decoderConfig.codec!=="mp4a.6b"){if(!["mp4a.40.2","mp4a.40.02","mp4a.40.5","mp4a.40.05","mp4a.40.29","mp4a.67"].includes(r.decoderConfig.codec))throw new TypeError("Audio chunk metadata decoder configuration codec string for AAC must be a valid AAC codec string as specified in https://www.w3.org/TR/webcodecs-aac-codec-registration/.");if(!r.decoderConfig.description)throw new TypeError("Audio chunk metadata decoder configuration for AAC must include a description, which is expected to be an AudioSpecificConfig as specified in ISO 14496-3.")}else if(r.decoderConfig.codec.startsWith("mp3")||r.decoderConfig.codec.startsWith("mp4a")){if(r.decoderConfig.codec!=="mp3"&&r.decoderConfig.codec!=="mp4a.69"&&r.decoderConfig.codec!=="mp4a.6B"&&r.decoderConfig.codec!=="mp4a.6b")throw new TypeError('Audio chunk metadata decoder configuration codec string for MP3 must be "mp3", "mp4a.69" or "mp4a.6B".')}else if(r.decoderConfig.codec.startsWith("opus")){if(r.decoderConfig.codec!=="opus")throw new TypeError('Audio chunk metadata decoder configuration codec string for Opus must be "opus".');if(r.decoderConfig.description&&r.decoderConfig.description.byteLength<18)throw new TypeError("Audio chunk metadata decoder configuration description, when specified, is expected to be an Identification Header as specified in Section 5.1 of RFC 7845.")}else if(r.decoderConfig.codec.startsWith("vorbis")){if(r.decoderConfig.codec!=="vorbis")throw new TypeError('Audio chunk metadata decoder configuration codec string for Vorbis must be "vorbis".');if(!r.decoderConfig.description)throw new TypeError("Audio chunk metadata decoder configuration for Vorbis must include a description, which is expected to adhere to the format described in https://www.w3.org/TR/webcodecs-vorbis-codec-registration/.")}else if(r.decoderConfig.codec.startsWith("flac")){if(r.decoderConfig.codec!=="flac")throw new TypeError('Audio chunk metadata decoder configuration codec string for FLAC must be "flac".');if(!r.decoderConfig.description||r.decoderConfig.description.byteLength<42)throw new TypeError("Audio chunk metadata decoder configuration for FLAC must include a description, which is expected to adhere to the format described in https://www.w3.org/TR/webcodecs-flac-codec-registration/.")}else if((r.decoderConfig.codec.startsWith("pcm")||r.decoderConfig.codec.startsWith("ulaw")||r.decoderConfig.codec.startsWith("alaw"))&&!Re.includes(r.decoderConfig.codec))throw new TypeError(`Audio chunk metadata decoder configuration codec string for PCM must be one of the supported PCM codecs (${Re.join(", ")}).`)},mx=r=>{if(!r)throw new TypeError("Subtitle metadata must be provided.");if(typeof r!="object")throw new TypeError("Subtitle metadata must be an object.");if(!r.config)throw new TypeError("Subtitle metadata must include a config object.");if(typeof r.config!="object")throw new TypeError("Subtitle metadata config must be an object.");if(typeof r.config.description!="string")throw new TypeError("Subtitle metadata config description must be a string.")};var $h=/<(?:(\d{2}):)?(\d{2}):(\d{2}).(\d{3})>/g;var px=r=>{let e=Math.floor(r/36e5),t=Math.floor(r%(60*60*1e3)/(60*1e3)),i=Math.floor(r%(60*1e3)/1e3),s=r%1e3;return e.toString().padStart(2,"0")+":"+t.toString().padStart(2,"0")+":"+i.toString().padStart(2,"0")+"."+s.toString().padStart(3,"0")};var Xh=r=>{let e=[],t=0;for(;t<r.length;){let i=-1,s=0;for(let n=t;n<r.length-3;n++){if(r[n]===0&&r[n+1]===0&&r[n+2]===1){i=n,s=3;break}if(n<r.length-4&&r[n]===0&&r[n+1]===0&&r[n+2]===0&&r[n+3]===1){i=n,s=4;break}}if(i===-1)break;if(t>0&&i>t){let n=r.subarray(t,i);n.length>0&&e.push(n)}t=i+s}if(t<r.length){let i=r.subarray(t);i.length>0&&e.push(i)}return e},jh=r=>{let e=[],t=r.length;for(let i=0;i<t;i++)i+2<t&&r[i]===0&&r[i+1]===0&&r[i+2]===3?(e.push(0,0),i+=2):e.push(r[i]);return new Uint8Array(e)},yx=r=>{let t=Xh(r);if(t.length===0)return null;let i=0;for(let a of t)i+=4+a.byteLength;let s=new Uint8Array(i),n=new DataView(s.buffer),o=0;for(let a of t){let c=a.byteLength;n.setUint32(o,c,!1),o+=4,s.set(a,o),o+=a.byteLength}return s},qh=r=>r[0]&31,Lc=r=>{try{let e=Xh(r),t=e.filter(f=>qh(f)===7),i=e.filter(f=>qh(f)===8),s=e.filter(f=>qh(f)===13);if(t.length===0||i.length===0)return null;let n=t[0],o=new pt(jh(n));if(o.skipBits(1),o.skipBits(2),o.readBits(5)!==7)return console.error("Invalid SPS NAL unit type"),null;let c=o.readAlignedByte(),u=o.readAlignedByte(),l=o.readAlignedByte(),h={configurationVersion:1,avcProfileIndication:c,profileCompatibility:u,avcLevelIndication:l,lengthSizeMinusOne:3,sequenceParameterSets:t,pictureParameterSets:i,chromaFormat:null,bitDepthLumaMinus8:null,bitDepthChromaMinus8:null,sequenceParameterSetExt:null};if(c===100||c===110||c===122||c===144){L(o);let f=L(o);f===3&&o.skipBits(1);let d=L(o),m=L(o);h.chromaFormat=f,h.bitDepthLumaMinus8=d,h.bitDepthChromaMinus8=m,h.sequenceParameterSetExt=s}return h}catch(e){return console.error("Error building AVC Decoder Configuration Record:",e),null}},Tx=r=>{let e=[];e.push(r.configurationVersion),e.push(r.avcProfileIndication),e.push(r.profileCompatibility),e.push(r.avcLevelIndication),e.push(252|r.lengthSizeMinusOne&3),e.push(224|r.sequenceParameterSets.length&31);for(let t of r.sequenceParameterSets){let i=t.byteLength;e.push(i>>8),e.push(i&255);for(let s=0;s<i;s++)e.push(t[s])}e.push(r.pictureParameterSets.length);for(let t of r.pictureParameterSets){let i=t.byteLength;e.push(i>>8),e.push(i&255);for(let s=0;s<i;s++)e.push(t[s])}if(r.avcProfileIndication===100||r.avcProfileIndication===110||r.avcProfileIndication===122||r.avcProfileIndication===144){w(r.chromaFormat!==null),w(r.bitDepthLumaMinus8!==null),w(r.bitDepthChromaMinus8!==null),w(r.sequenceParameterSetExt!==null),e.push(252|r.chromaFormat&3),e.push(248|r.bitDepthLumaMinus8&7),e.push(248|r.bitDepthChromaMinus8&7),e.push(r.sequenceParameterSetExt.length);for(let t of r.sequenceParameterSetExt){let i=t.byteLength;e.push(i>>8),e.push(i&255);for(let s=0;s<i;s++)e.push(t[s])}}return new Uint8Array(e)},gx=32,xx=33,_x=34,mk=39,pk=40,hs=r=>r[0]>>1&63,zc=r=>{try{let e=Xh(r),t=e.filter(P=>hs(P)===gx),i=e.filter(P=>hs(P)===xx),s=e.filter(P=>hs(P)===_x),n=e.filter(P=>hs(P)===mk||hs(P)===pk);if(i.length===0||s.length===0)return null;let o=i[0],a=new pt(jh(o));a.skipBits(16),a.readBits(4);let c=a.readBits(3),u=a.readBits(1),{general_profile_space:l,general_tier_flag:h,general_profile_idc:f,general_profile_compatibility_flags:d,general_constraint_indicator_flags:m,general_level_idc:x}=gk(a,c);L(a);let g=L(a);g===3&&a.skipBits(1),L(a),L(a),a.readBits(1)&&(L(a),L(a),L(a),L(a));let _=L(a),y=L(a);L(a);let T=a.readBits(1)?0:c;for(let P=T;P<=c;P++)L(a),L(a),L(a);L(a),L(a),L(a),L(a),L(a),L(a),a.readBits(1)&&a.readBits(1)&&xk(a),a.skipBits(1),a.skipBits(1),a.readBits(1)&&(a.skipBits(4),a.skipBits(4),L(a),L(a),a.skipBits(1));let C=L(a);if(_k(a,C),a.readBits(1)){let P=L(a);for(let k=0;k<P;k++)L(a),a.skipBits(1)}a.skipBits(1),a.skipBits(1);let v=0;a.readBits(1)&&(v=yk(a,c));let E=0;if(s.length>0){let P=s[0],k=new pt(jh(P));k.skipBits(16),L(k),L(k),k.skipBits(1),k.skipBits(1),k.skipBits(3),k.skipBits(1),k.skipBits(1),L(k),L(k),os(k),k.skipBits(1),k.skipBits(1),k.readBits(1)&&L(k),os(k),os(k),k.skipBits(1),k.skipBits(1),k.skipBits(1),k.skipBits(1);let G=k.readBits(1),j=k.readBits(1);!G&&!j?E=0:G&&!j?E=2:!G&&j?E=3:E=0}let D=[...t.length?[{arrayCompleteness:1,nalUnitType:gx,nalUnits:t}]:[],...i.length?[{arrayCompleteness:1,nalUnitType:xx,nalUnits:i}]:[],...s.length?[{arrayCompleteness:1,nalUnitType:_x,nalUnits:s}]:[],...n.length?[{arrayCompleteness:1,nalUnitType:hs(n[0]),nalUnits:n}]:[]];return{configurationVersion:1,generalProfileSpace:l,generalTierFlag:h,generalProfileIdc:f,generalProfileCompatibilityFlags:d,generalConstraintIndicatorFlags:m,generalLevelIdc:x,minSpatialSegmentationIdc:v,parallelismType:E,chromaFormatIdc:g,bitDepthLumaMinus8:_,bitDepthChromaMinus8:y,avgFrameRate:0,constantFrameRate:0,numTemporalLayers:c+1,temporalIdNested:u,lengthSizeMinusOne:3,arrays:D}}catch(e){return console.error("Error building HEVC Decoder Configuration Record:",e),null}},gk=(r,e)=>{let t=r.readBits(2),i=r.readBits(1),s=r.readBits(5),n=0;for(let l=0;l<32;l++)n=n<<1|r.readBits(1);let o=new Uint8Array(6);for(let l=0;l<6;l++)o[l]=r.readBits(8);let a=r.readBits(8),c=[],u=[];for(let l=0;l<e;l++)c.push(r.readBits(1)),u.push(r.readBits(1));if(e>0)for(let l=e;l<8;l++)r.skipBits(2);for(let l=0;l<e;l++)c[l]&&r.skipBits(88),u[l]&&r.skipBits(8);return{general_profile_space:t,general_tier_flag:i,general_profile_idc:s,general_profile_compatibility_flags:n,general_constraint_indicator_flags:o,general_level_idc:a}},xk=r=>{for(let e=0;e<4;e++)for(let t=0;t<(e===3?2:6);t++)if(!r.readBits(1))L(r);else{let s=Math.min(64,1<<4+(e<<1));e>1&&os(r);for(let n=0;n<s;n++)os(r)}},_k=(r,e)=>{let t=[];for(let i=0;i<e;i++)t[i]=bk(r,i,e,t)},bk=(r,e,t,i)=>{let s=0,n=0,o=0;if(e!==0&&(n=r.readBits(1)),n){if(e===t){let c=L(r);o=e-(c+1)}else o=e-1;r.readBits(1),L(r);let a=i[o]??0;for(let c=0;c<=a;c++)r.readBits(1)||r.readBits(1);s=i[o]}else{let a=L(r),c=L(r);for(let u=0;u<a;u++)L(r),r.readBits(1);for(let u=0;u<c;u++)L(r),r.readBits(1);s=a+c}return s},yk=(r,e)=>{if(r.readBits(1)&&r.readBits(8)===255&&(r.readBits(16),r.readBits(16)),r.readBits(1)&&r.readBits(1),r.readBits(1)&&(r.readBits(3),r.readBits(1),r.readBits(1)&&(r.readBits(8),r.readBits(8),r.readBits(8))),r.readBits(1)&&(L(r),L(r)),r.readBits(1),r.readBits(1),r.readBits(1),r.readBits(1)&&(L(r),L(r),L(r),L(r)),r.readBits(1)&&(r.readBits(32),r.readBits(32),r.readBits(1)&&L(r),r.readBits(1)&&Tk(r,!0,e)),r.readBits(1)){r.readBits(1),r.readBits(1),r.readBits(1);let t=L(r);return L(r),L(r),L(r),L(r),t}return 0},Tk=(r,e,t)=>{let i=!1,s=!1,n=!1;e&&(i=r.readBits(1)===1,s=r.readBits(1)===1,(i||s)&&(n=r.readBits(1)===1,n&&(r.readBits(8),r.readBits(5),r.readBits(1),r.readBits(5)),r.readBits(4),r.readBits(4),n&&r.readBits(4),r.readBits(5),r.readBits(5),r.readBits(5)));for(let o=0;o<=t;o++){let a=r.readBits(1)===1,c=!0;a||(c=r.readBits(1)===1);let u=!1;c?L(r):u=r.readBits(1)===1;let l=1;u||(l=L(r)+1),i&&bx(r,l,n),s&&bx(r,l,n)}},bx=(r,e,t)=>{for(let i=0;i<e;i++)L(r),L(r),t&&(L(r),L(r)),r.readBits(1)},wx=r=>{let e=[];e.push(r.configurationVersion),e.push((r.generalProfileSpace&3)<<6|(r.generalTierFlag&1)<<5|r.generalProfileIdc&31),e.push(r.generalProfileCompatibilityFlags>>>24&255),e.push(r.generalProfileCompatibilityFlags>>>16&255),e.push(r.generalProfileCompatibilityFlags>>>8&255),e.push(r.generalProfileCompatibilityFlags&255),e.push(...r.generalConstraintIndicatorFlags),e.push(r.generalLevelIdc&255),e.push(240|r.minSpatialSegmentationIdc>>8&15),e.push(r.minSpatialSegmentationIdc&255),e.push(252|r.parallelismType&3),e.push(252|r.chromaFormatIdc&3),e.push(248|r.bitDepthLumaMinus8&7),e.push(248|r.bitDepthChromaMinus8&7),e.push(r.avgFrameRate>>8&255),e.push(r.avgFrameRate&255),e.push((r.constantFrameRate&3)<<6|(r.numTemporalLayers&7)<<3|(r.temporalIdNested&1)<<2|r.lengthSizeMinusOne&3),e.push(r.arrays.length&255);for(let t of r.arrays){e.push((t.arrayCompleteness&1)<<7|0|t.nalUnitType&63),e.push(t.nalUnits.length>>8&255),e.push(t.nalUnits.length&255);for(let i of t.nalUnits){e.push(i.length>>8&255),e.push(i.length&255);for(let s=0;s<i.length;s++)e.push(i[s])}}return new Uint8Array(e)},Vc=r=>{let e=r[r.length-1];if(e&&(e&224)===192){let E=((e&24)>>3)+1,A=2+((e&7)+1)*E;if(r[r.length-A]!==e)return null;let P=0,k=r.length-A+1;for(let G=0;G<E;G++){if(!r[k+G])return null;P|=r[k+G]<<8*G}r=r.subarray(0,P)}let t=new pt(r);if(t.readBits(2)!==2)return null;let s=t.readBits(1),o=(t.readBits(1)<<1)+s;if(o===3&&t.skipBits(1),t.readBits(1)===1||t.readBits(1)!==0||(t.skipBits(2),t.readBits(24)!==4817730))return null;let l=8;o>=2&&(l=t.readBits(1)?12:10);let h=t.readBits(3),f=0,d=0;if(h!==7)if(d=t.readBits(1),o===1||o===3){let D=t.readBits(1),A=t.readBits(1);f=!D&&!A?3:D&&!A?2:1,t.skipBits(1)}else f=1;else f=3,d=1;let m=t.readBits(16),x=t.readBits(16),g=m+1,_=x+1,y=g*_,S=he(fr).level;for(let E of fr)if(y<=E.maxPictureSize){S=E.level;break}return{profile:o,level:S,bitDepth:l,chromaSubsampling:f,videoFullRangeFlag:d,colourPrimaries:h===2?1:h===1?6:2,transferCharacteristics:h===2?1:h===1?6:2,matrixCoefficients:h===7?0:h===2?1:h===1?6:2}},Hc=r=>{let e=new pt(r),t=()=>{let i=0;for(let s=0;s<8;s++){let n=e.readAlignedByte();if(n===void 0)return 0;if(i|=(n&127)<<s*7,!(n&128))break;if(s===7&&n&128)return null}return i>=2**32-1?null:i};for(;e.getBitsLeft()>=8;){let i=e.readBits(8),s=i>>3&15,n=i>>2&1,o=i>>1&1;n&&e.skipBits(8);let a;if(o){let c=t();if(c===null)return null;a=c}else a=Math.floor(e.getBitsLeft()/8);if(s===1){let c=e.readBits(3),u=e.readBits(1),l=e.readBits(1),h=0,f=0,d=0;if(l)h=e.readBits(5);else{if(e.readBits(1)&&(e.skipBits(32),e.skipBits(32),e.readBits(1)))return null;let C=e.readBits(1);C&&(d=e.readBits(5),e.skipBits(32),e.skipBits(5),e.skipBits(5));let v=e.readBits(5);for(let E=0;E<=v;E++){e.skipBits(12);let D=e.readBits(5);if(E===0&&(h=D),D>7){let P=e.readBits(1);E===0&&(f=P)}if(C&&e.readBits(1)){let k=d+1;e.skipBits(k),e.skipBits(k),e.skipBits(1)}e.readBits(1)&&e.skipBits(4)}}let m=e.readBits(1),x=8;c===2&&m?x=e.readBits(1)?12:10:c<=2&&(x=m?10:8);let g=0;c!==1&&(g=e.readBits(1));let _=1,y=1,S=0;return g||(c===0?(_=1,y=1):c===1?(_=0,y=0):x===12&&(_=e.readBits(1),_&&(y=e.readBits(1))),_&&y&&(S=e.readBits(2))),{profile:c,level:h,tier:f,bitDepth:x,monochrome:g,chromaSubsamplingX:_,chromaSubsamplingY:y,chromaSamplePosition:S}}e.skipBits(a*8)}return null},Wc=r=>{let e=St(r),t=e.getUint8(9),i=e.getUint16(10,!0),s=e.getUint32(12,!0),n=e.getInt16(16,!0),o=e.getUint8(18),a=null;return o&&(a=r.subarray(19,21+t)),{outputChannelCount:t,preSkip:i,inputSampleRate:s,outputGain:n,channelMappingFamily:o,channelMappingTable:a}},wk=[480,960,1920,2880,480,960,1920,2880,480,960,1920,2880,480,960,480,960,120,240,480,960,120,240,480,960,120,240,480,960,120,240,480,960],Sx=r=>{let e=r[0]>>3;return{durationInSamples:wk[e]}},vx=r=>{if(r.length<7)throw new Error("Setup header is too short.");if(r[0]!==5)throw new Error("Wrong packet type in Setup header.");if(String.fromCharCode(...r.slice(1,7))!=="vorbis")throw new Error("Invalid packet signature in Setup header.");let t=r.length,i=new Uint8Array(t);for(let h=0;h<t;h++)i[h]=r[t-1-h];let s=new pt(i),n=0;for(;s.getBitsLeft()>97;)if(s.readBits(1)===1){n=s.pos;break}if(n===0)throw new Error("Invalid Setup header: framing bit not found.");let o=0,a=!1,c=0;for(;s.getBitsLeft()>=97;){let h=s.pos,f=s.readBits(8),d=s.readBits(16),m=s.readBits(16);if(f>63||d!==0||m!==0){s.pos=h;break}if(s.skipBits(1),o++,o>64)break;s.clone().readBits(6)+1===o&&(a=!0,c=o)}if(!a)throw new Error("Invalid Setup header: mode header not found.");if(c>63)throw new Error(`Unsupported mode count: ${c}.`);let u=c;s.pos=0,s.skipBits(n);let l=Array(u).fill(0);for(let h=u-1;h>=0;h--)s.skipBits(40),l[h]=s.readBits(1);return{modeBlockflags:l}};var Nn=class{constructor(e){this.writer=e,this.helper=new Uint8Array(8),this.helperView=new DataView(this.helper.buffer),this.offsets=new WeakMap}writeU32(e){this.helperView.setUint32(0,e,!1),this.writer.write(this.helper.subarray(0,4))}writeU64(e){this.helperView.setUint32(0,Math.floor(e/2**32),!1),this.helperView.setUint32(4,e,!1),this.writer.write(this.helper.subarray(0,8))}writeAscii(e){for(let t=0;t<e.length;t++)this.helperView.setUint8(t%8,e.charCodeAt(t)),t%8===7&&this.writer.write(this.helper);e.length%8!==0&&this.writer.write(this.helper.subarray(0,e.length%8))}writeBox(e){if(this.offsets.set(e,this.writer.getPos()),e.contents&&!e.children)this.writeBoxHeader(e,e.size??e.contents.byteLength+8),this.writer.write(e.contents);else{let t=this.writer.getPos();if(this.writeBoxHeader(e,0),e.contents&&this.writer.write(e.contents),e.children)for(let n of e.children)n&&this.writeBox(n);let i=this.writer.getPos(),s=e.size??i-t;this.writer.seek(t),this.writeBoxHeader(e,s),this.writer.seek(i)}}writeBoxHeader(e,t){this.writeU32(e.largeSize?1:t),this.writeAscii(e.type),e.largeSize&&this.writeU64(t)}measureBoxHeader(e){return 8+(e.largeSize?8:0)}patchBox(e){let t=this.offsets.get(e);w(t!==void 0);let i=this.writer.getPos();this.writer.seek(t),this.writeBox(e),this.writer.seek(i)}measureBox(e){if(e.contents&&!e.children)return this.measureBoxHeader(e)+e.contents.byteLength;{let t=this.measureBoxHeader(e);if(e.contents&&(t+=e.contents.byteLength),e.children)for(let i of e.children)i&&(t+=this.measureBox(i));return t}}},re=new Uint8Array(8),Wt=new DataView(re.buffer),ve=r=>[(r%256+256)%256],X=r=>(Wt.setUint16(0,r,!1),[re[0],re[1]]),Ex=r=>(Wt.setInt16(0,r,!1),[re[0],re[1]]),kx=r=>(Wt.setUint32(0,r,!1),[re[1],re[2],re[3]]),F=r=>(Wt.setUint32(0,r,!1),[re[0],re[1],re[2],re[3]]),Vr=r=>(Wt.setInt32(0,r,!1),[re[0],re[1],re[2],re[3]]),Si=r=>(Wt.setUint32(0,Math.floor(r/2**32),!1),Wt.setUint32(4,r,!1),[re[0],re[1],re[2],re[3],re[4],re[5],re[6],re[7]]),Ax=r=>(Wt.setInt16(0,2**8*r,!1),[re[0],re[1]]),pr=r=>(Wt.setInt32(0,2**16*r,!1),[re[0],re[1],re[2],re[3]]),Yh=r=>(Wt.setInt32(0,2**30*r,!1),[re[0],re[1],re[2],re[3]]),Kh=(r,e)=>{let t=[],i=r;do{let s=i&127;i>>=7,t.length>0&&(s|=128),t.push(s),e!==void 0&&e--}while(i>0||e);return t.reverse()},Qe=(r,e=!1)=>{let t=Array(r.length).fill(null).map((i,s)=>r.charCodeAt(s));return e&&t.push(0),t},Zh=r=>{let e=null;for(let t of r)(!e||t.timestamp>e.timestamp)&&(e=t);return e},Px=r=>{let e=r*(Math.PI/180),t=Math.round(Math.cos(e)),i=Math.round(Math.sin(e));return[t,i,0,-i,t,0,0,0,1]},Bx=Px(0),Rx=r=>[pr(r[0]),pr(r[1]),Yh(r[2]),pr(r[3]),pr(r[4]),Yh(r[5]),pr(r[6]),pr(r[7]),Yh(r[8])],ee=(r,e,t)=>({type:r,contents:e&&new Uint8Array(e.flat(10)),children:t}),ne=(r,e,t,i,s)=>ee(r,[ve(e),kx(t),i??[]],s),Dx=r=>r.isQuickTime?ee("ftyp",[Qe("qt "),F(512),Qe("qt ")]):r.fragmented?ee("ftyp",[Qe("iso5"),F(512),Qe("iso5"),Qe("iso6"),Qe("mp41")]):ee("ftyp",[Qe("isom"),F(512),Qe("isom"),r.holdsAvc?Qe("avc1"):[],Qe("mp41")]),qc=r=>({type:"mdat",largeSize:r}),Ln=(r,e,t=!1)=>ee("moov",void 0,[Sk(e,r),...r.map(i=>vk(i,e)),t?oA(r):null]),Sk=(r,e)=>{let t=Fe(Math.max(0,...e.filter(o=>o.samples.length>0).map(o=>{let a=Zh(o.samples);return a.timestamp+a.duration})),$c),i=Math.max(0,...e.map(o=>o.track.id))+1,s=!_i(r)||!_i(t),n=s?Si:F;return ne("mvhd",+s,0,[n(r),n(r),F($c),n(t),pr(1),Ax(1),Array(10).fill(0),Rx(Bx),Array(24).fill(0),F(i)])},vk=(r,e)=>ee("trak",void 0,[Ck(r,e),Ek(r,e)]),Ck=(r,e)=>{let t=Zh(r.samples),i=Fe(t?t.timestamp+t.duration:0,$c),s=!_i(e)||!_i(i),n=s?Si:F,o;if(r.type==="video"){let a=r.track.metadata.rotation;o=Px(a??0)}else o=Bx;return ne("tkhd",+s,3,[n(e),n(e),F(r.track.id),F(0),n(i),Array(8).fill(0),X(0),X(r.track.id),Ax(r.type==="audio"?1:0),X(0),Rx(o),pr(r.type==="video"?r.info.width:0),pr(r.type==="video"?r.info.height:0)])},Ek=(r,e)=>ee("mdia",void 0,[kk(r,e),Bk(r),Rk(r)]),kk=(r,e)=>{let t=Zh(r.samples),i=Fe(t?t.timestamp+t.duration:0,r.timescale),s=!_i(e)||!_i(i),n=s?Si:F,o=0;for(let a of r.track.metadata.languageCode??nt)o<<=5,o+=a.charCodeAt(0)-96;return ne("mdhd",+s,0,[n(e),n(e),F(r.timescale),n(i),X(o),X(0)])},Ak={video:"vide",audio:"soun",subtitle:"text"},Pk={video:"MediabunnyVideoHandler",audio:"MediabunnySoundHandler",subtitle:"MediabunnyTextHandler"},Bk=r=>ne("hdlr",0,0,[Qe("mhlr"),Qe(Ak[r.type]),F(0),F(0),F(0),Qe(Pk[r.type],!0)]),Rk=r=>ee("minf",void 0,[Fk[r.type](),Uk(),Nk(r)]),Dk=()=>ne("vmhd",0,1,[X(0),X(0),X(0),X(0)]),Mk=()=>ne("smhd",0,0,[X(0),X(0)]),Ik=()=>ne("nmhd",0,0),Fk={video:Dk,audio:Mk,subtitle:Ik},Uk=()=>ee("dinf",void 0,[Ok()]),Ok=()=>ne("dref",0,0,[F(1)],[Gk()]),Gk=()=>ne("url ",0,1),Nk=r=>{let e=r.compositionTimeOffsetTable.length>1||r.compositionTimeOffsetTable.some(t=>t.sampleCompositionTimeOffset!==0);return ee("stbl",void 0,[Lk(r),Jk(r),e?sA(r):null,e?nA(r):null,tA(r),rA(r),iA(r),eA(r)])},Lk=r=>{let e;if(r.type==="video")e=zk(pA[r.track.source._codec],r);else if(r.type==="audio"){let t=Gx(r.track.source._codec,r.muxer.isQuickTime);w(t),e=qk(t,r)}else r.type==="subtitle"&&(e=Qk(_A[r.track.source._codec],r));return w(e),ne("stsd",0,0,[F(1)],[e])},zk=(r,e)=>ee(r,[Array(6).fill(0),X(1),X(0),X(0),Array(12).fill(0),X(e.info.width),X(e.info.height),F(4718592),F(4718592),F(0),X(1),Array(32).fill(0),X(24),Ex(65535)],[gA[e.track.source._codec](e),Hg(e.info.decoderConfig.colorSpace)?Vk(e):null]),Vk=r=>ee("colr",[Qe("nclx"),X(yi[r.info.decoderConfig.colorSpace.primaries]),X(Ti[r.info.decoderConfig.colorSpace.transfer]),X(wi[r.info.decoderConfig.colorSpace.matrix]),ve((r.info.decoderConfig.colorSpace.fullRange?1:0)<<7)]),Hk=r=>r.info.decoderConfig&&ee("avcC",[...zt(r.info.decoderConfig.description)]),Wk=r=>r.info.decoderConfig&&ee("hvcC",[...zt(r.info.decoderConfig.description)]),Cx=r=>{if(!r.info.decoderConfig)return null;let e=r.info.decoderConfig,t=e.codec.split("."),i=Number(t[1]),s=Number(t[2]),n=Number(t[3]),o=t[4]?Number(t[4]):1,a=t[8]?Number(t[8]):Number(e.colorSpace?.fullRange??0),c=(n<<4)+(o<<1)+a,u=t[5]?Number(t[5]):e.colorSpace?.primaries?yi[e.colorSpace.primaries]:2,l=t[6]?Number(t[6]):e.colorSpace?.transfer?Ti[e.colorSpace.transfer]:2,h=t[7]?Number(t[7]):e.colorSpace?.matrix?wi[e.colorSpace.matrix]:2;return ne("vpcC",1,0,[ve(i),ve(s),ve(c),ve(u),ve(l),ve(h),X(0)])},$k=r=>ee("av1C",ox(r.info.decoderConfig.codec)),qk=(r,e)=>{let t=0,i,s=16;if(Re.includes(e.track.source._codec)){let n=e.track.source._codec,{sampleSize:o}=gt(n);s=8*o,s>16&&(t=1)}return t===0?i=[Array(6).fill(0),X(1),X(t),X(0),F(0),X(e.info.numberOfChannels),X(s),X(0),X(0),X(e.info.sampleRate<2**16?e.info.sampleRate:0),X(0)]:i=[Array(6).fill(0),X(1),X(t),X(0),F(0),X(e.info.numberOfChannels),X(Math.min(s,16)),X(0),X(0),X(e.info.sampleRate<2**16?e.info.sampleRate:0),X(0),F(1),F(s/8),F(e.info.numberOfChannels*s/8),F(2)],ee(r,i,[xA(e.track.source._codec,e.muxer.isQuickTime)?.(e)??null])},Qh=r=>{let e;switch(r.track.source._codec){case"aac":e=64;break;case"mp3":e=107;break;case"vorbis":e=221;break;default:throw new Error(`Unhandled audio codec: ${r.track.source._codec}`)}let t=[...ve(e),...ve(21),...kx(0),...F(0),...F(0)];if(r.info.decoderConfig.description){let i=zt(r.info.decoderConfig.description);t=[...t,...ve(5),...Kh(i.byteLength),...i]}return t=[...X(1),...ve(0),...ve(4),...Kh(t.length),...t,...ve(6),...ve(1),...ve(2)],t=[...ve(3),...Kh(t.length),...t],ne("esds",0,0,t)},zr=r=>ee("wave",void 0,[jk(r),Xk(r),ee("\0\0\0\0")]),jk=r=>ee("frma",[Qe(Gx(r.track.source._codec,r.muxer.isQuickTime))]),Xk=r=>{let{littleEndian:e}=gt(r.track.source._codec);return ee("enda",[X(+e)])},Yk=r=>{let e=r.info.numberOfChannels,t=3840,i=r.info.sampleRate,s=0,n=0,o=new Uint8Array(0),a=r.info.decoderConfig?.description;if(a){w(a.byteLength>=18);let c=zt(a),u=Wc(c);e=u.outputChannelCount,t=u.preSkip,i=u.inputSampleRate,s=u.outputGain,n=u.channelMappingFamily,u.channelMappingTable&&(o=u.channelMappingTable)}return ee("dOps",[ve(0),ve(e),X(t),F(i),Ex(s),ve(n),...o])},Kk=r=>{let e=r.info.decoderConfig?.description;w(e);let t=zt(e);return ne("dfLa",0,0,[...t.subarray(4)])},Ht=r=>{let{littleEndian:e,sampleSize:t}=gt(r.track.source._codec),i=+e;return ne("pcmC",0,0,[ve(i),ve(8*t)])},Qk=(r,e)=>ee(r,[Array(6).fill(0),X(1)],[bA[e.track.source._codec](e)]),Zk=r=>ee("vttC",[...bi.encode(r.info.config.description)]);var Jk=r=>ne("stts",0,0,[F(r.timeToSampleTable.length),r.timeToSampleTable.map(e=>[F(e.sampleCount),F(e.sampleDelta)])]),eA=r=>{if(r.samples.every(t=>t.type==="key"))return null;let e=[...r.samples.entries()].filter(([,t])=>t.type==="key");return ne("stss",0,0,[F(e.length),e.map(([t])=>F(t+1))])},tA=r=>ne("stsc",0,0,[F(r.compactlyCodedChunkTable.length),r.compactlyCodedChunkTable.map(e=>[F(e.firstChunk),F(e.samplesPerChunk),F(1)])]),rA=r=>{if(r.type==="audio"&&r.info.requiresPcmTransformation){let{sampleSize:e}=gt(r.track.source._codec);return ne("stsz",0,0,[F(e*r.info.numberOfChannels),F(r.samples.reduce((t,i)=>t+Fe(i.duration,r.timescale),0))])}return ne("stsz",0,0,[F(0),F(r.samples.length),r.samples.map(e=>F(e.size))])},iA=r=>r.finalizedChunks.length>0&&he(r.finalizedChunks).offset>=2**32?ne("co64",0,0,[F(r.finalizedChunks.length),r.finalizedChunks.map(e=>Si(e.offset))]):ne("stco",0,0,[F(r.finalizedChunks.length),r.finalizedChunks.map(e=>F(e.offset))]),sA=r=>ne("ctts",1,0,[F(r.compositionTimeOffsetTable.length),r.compositionTimeOffsetTable.map(e=>[F(e.sampleCount),Vr(e.sampleCompositionTimeOffset)])]),nA=r=>{let e=1/0,t=-1/0,i=1/0,s=-1/0;w(r.compositionTimeOffsetTable.length>0),w(r.samples.length>0);for(let o=0;o<r.compositionTimeOffsetTable.length;o++){let a=r.compositionTimeOffsetTable[o];e=Math.min(e,a.sampleCompositionTimeOffset),t=Math.max(t,a.sampleCompositionTimeOffset)}for(let o=0;o<r.samples.length;o++){let a=r.samples[o];i=Math.min(i,Fe(a.timestamp,r.timescale)),s=Math.max(s,Fe(a.timestamp+a.duration,r.timescale))}let n=Math.max(-e,0);return s>=2**31?null:ne("cslg",0,0,[Vr(n),Vr(e),Vr(t),Vr(i),Vr(s)])},oA=r=>ee("mvex",void 0,r.map(aA)),aA=r=>ne("trex",0,0,[F(r.track.id),F(1),F(0),F(0),F(0)]),Jh=(r,e)=>ee("moof",void 0,[cA(r),...e.map(uA)]),cA=r=>ne("mfhd",0,0,[F(r)]),Mx=r=>{let e=0,t=0,i=0,s=0,n=r.type==="delta";return t|=+n,n?e|=1:e|=2,e<<24|t<<16|i<<8|s},uA=r=>ee("traf",void 0,[lA(r),hA(r),dA(r)]),lA=r=>{w(r.currentChunk);let e=0;e|=8,e|=16,e|=32,e|=131072;let t=r.currentChunk.samples[1]??r.currentChunk.samples[0],i={duration:t.timescaleUnitsToNextSample,size:t.size,flags:Mx(t)};return ne("tfhd",0,e,[F(r.track.id),F(i.duration),F(i.size),F(i.flags)])},hA=r=>(w(r.currentChunk),ne("tfdt",1,0,[Si(Fe(r.currentChunk.startTimestamp,r.timescale))])),dA=r=>{w(r.currentChunk);let e=r.currentChunk.samples.map(x=>x.timescaleUnitsToNextSample),t=r.currentChunk.samples.map(x=>x.size),i=r.currentChunk.samples.map(Mx),s=r.currentChunk.samples.map(x=>Fe(x.timestamp-x.decodeTimestamp,r.timescale)),n=new Set(e),o=new Set(t),a=new Set(i),c=new Set(s),u=a.size===2&&i[0]!==i[1],l=n.size>1,h=o.size>1,f=!u&&a.size>1,d=c.size>1||[...c].some(x=>x!==0),m=0;return m|=1,m|=4*+u,m|=256*+l,m|=512*+h,m|=1024*+f,m|=2048*+d,ne("trun",1,m,[F(r.currentChunk.samples.length),F(r.currentChunk.offset-r.currentChunk.moofOffset||0),u?F(i[0]):[],r.currentChunk.samples.map((x,g)=>[l?F(e[g]):[],h?F(t[g]):[],f?F(i[g]):[],d?Vr(s[g]):[]])])},Ix=r=>ee("mfra",void 0,[...r.map(fA),mA()]),fA=(r,e)=>ne("tfra",1,0,[F(r.track.id),F(63),F(r.finalizedChunks.length),r.finalizedChunks.map(i=>[Si(Fe(i.samples[0].timestamp,r.timescale)),Si(i.moofOffset),F(e+1),F(1),F(1)])]),mA=()=>ne("mfro",0,0,[F(0)]),Fx=()=>ee("vtte"),Ux=(r,e,t,i,s)=>ee("vttc",void 0,[s!==null?ee("vsid",[Vr(s)]):null,t!==null?ee("iden",[...bi.encode(t)]):null,e!==null?ee("ctim",[...bi.encode(px(e))]):null,i!==null?ee("sttg",[...bi.encode(i)]):null,ee("payl",[...bi.encode(r)])]),Ox=r=>ee("vtta",[...bi.encode(r)]),pA={avc:"avc1",hevc:"hvc1",vp8:"vp08",vp9:"vp09",av1:"av01"},gA={avc:Hk,hevc:Wk,vp8:Cx,vp9:Cx,av1:$k},Gx=(r,e)=>{switch(r){case"aac":return"mp4a";case"mp3":return"mp4a";case"opus":return"Opus";case"vorbis":return"mp4a";case"flac":return"fLaC";case"ulaw":return"ulaw";case"alaw":return"alaw";case"pcm-u8":return"raw ";case"pcm-s8":return"sowt"}if(e)switch(r){case"pcm-s16":return"sowt";case"pcm-s16be":return"twos";case"pcm-s24":return"in24";case"pcm-s24be":return"in24";case"pcm-s32":return"in32";case"pcm-s32be":return"in32";case"pcm-f32":return"fl32";case"pcm-f32be":return"fl32";case"pcm-f64":return"fl64";case"pcm-f64be":return"fl64"}else switch(r){case"pcm-s16":return"ipcm";case"pcm-s16be":return"ipcm";case"pcm-s24":return"ipcm";case"pcm-s24be":return"ipcm";case"pcm-s32":return"ipcm";case"pcm-s32be":return"ipcm";case"pcm-f32":return"fpcm";case"pcm-f32be":return"fpcm";case"pcm-f64":return"fpcm";case"pcm-f64be":return"fpcm"}},xA=(r,e)=>{switch(r){case"aac":return Qh;case"mp3":return Qh;case"opus":return Yk;case"vorbis":return Qh;case"flac":return Kk}if(e)switch(r){case"pcm-s24":return zr;case"pcm-s24be":return zr;case"pcm-s32":return zr;case"pcm-s32be":return zr;case"pcm-f32":return zr;case"pcm-f32be":return zr;case"pcm-f64":return zr;case"pcm-f64be":return zr}else switch(r){case"pcm-s16":return Ht;case"pcm-s16be":return Ht;case"pcm-s24":return Ht;case"pcm-s24be":return Ht;case"pcm-s32":return Ht;case"pcm-s32be":return Ht;case"pcm-f32":return Ht;case"pcm-f32be":return Ht;case"pcm-f64":return Ht;case"pcm-f64be":return Ht}return null},_A={webvtt:"wvtt"},bA={webvtt:Zk};var jc=class{constructor(e){this.mutex=new wt,this.firstMediaStreamTimestamp=null,this.trackTimestampInfo=new WeakMap,this.output=e}onTrackClose(e){}validateAndNormalizeTimestamp(e,t,i){t+=e.source._timestampOffset;let s=this.trackTimestampInfo.get(e);if(!s){if(!i)throw new Error("First frame must be a key frame.");s={maxTimestamp:t,maxTimestampBeforeLastKeyFrame:t},this.trackTimestampInfo.set(e,s)}if(t<0)throw new Error(`Timestamps must be non-negative (got ${t}s).`);if(i&&(s.maxTimestampBeforeLastKeyFrame=s.maxTimestamp),t<s.maxTimestampBeforeLastKeyFrame)throw new Error(`Timestamps cannot be smaller than the highest timestamp of the previous run (a run begins with a key frame and ends right before the next key frame). Got ${t}s, but highest timestamp is ${s.maxTimestampBeforeLastKeyFrame}s.`);return s.maxTimestamp=Math.max(s.maxTimestamp,t),t}};var Xc=class{constructor(){this.ensureMonotonicity=!1,this.trackedWrites=null,this.trackedStart=-1,this.trackedEnd=-1}start(){}maybeTrackWrites(e){if(!this.trackedWrites)return;let t=this.getPos();if(t<this.trackedStart){if(t+e.byteLength<=this.trackedStart)return;e=e.subarray(this.trackedStart-t),t=0}let i=t+e.byteLength-this.trackedStart,s=this.trackedWrites.byteLength;for(;s<i;)s*=2;if(s!==this.trackedWrites.byteLength){let n=new Uint8Array(s);n.set(this.trackedWrites,0),this.trackedWrites=n}this.trackedWrites.set(e,t-this.trackedStart),this.trackedEnd=Math.max(this.trackedEnd,t+e.byteLength)}startTrackingWrites(){this.trackedWrites=new Uint8Array(2**10),this.trackedStart=this.getPos(),this.trackedEnd=this.trackedStart}stopTrackingWrites(){if(!this.trackedWrites)throw new Error("Internal error: Can't get tracked writes since nothing was tracked.");let t={data:this.trackedWrites.subarray(0,this.trackedEnd-this.trackedStart),start:this.trackedStart,end:this.trackedEnd};return this.trackedWrites=null,t}},ed=2**16,td=2**32,ds=class extends Xc{constructor(e){if(super(),this.pos=0,this.maxPos=0,this.target=e,this.supportsResize="resize"in new ArrayBuffer(0),this.supportsResize)try{this.buffer=new ArrayBuffer(ed,{maxByteLength:td})}catch{this.buffer=new ArrayBuffer(ed),this.supportsResize=!1}else this.buffer=new ArrayBuffer(ed);this.bytes=new Uint8Array(this.buffer)}ensureSize(e){let t=this.buffer.byteLength;for(;t<e;)t*=2;if(t!==this.buffer.byteLength){if(t>td)throw new Error(`ArrayBuffer exceeded maximum size of ${td} bytes. Please consider using another target.`);if(this.supportsResize)this.buffer.resize(t);else{let i=new ArrayBuffer(t),s=new Uint8Array(i);s.set(this.bytes,0),this.buffer=i,this.bytes=s}}}write(e){this.maybeTrackWrites(e),this.ensureSize(this.pos+e.byteLength),this.bytes.set(e,this.pos),this.pos+=e.byteLength,this.maxPos=Math.max(this.maxPos,this.pos)}seek(e){this.pos=e}getPos(){return this.pos}async flush(){}async finalize(){this.ensureSize(this.pos),this.target.buffer=this.buffer.slice(0,Math.max(this.maxPos,this.pos))}async close(){}getSlice(e,t){return this.bytes.slice(e,t)}},yA=2**24,TA=2,Yc=class extends Xc{constructor(e){super(),this.pos=0,this.sections=[],this.lastWriteEnd=0,this.lastFlushEnd=0,this.writer=null,this.chunks=[],this.target=e,this.chunked=e._options.chunked??!1,this.chunkSize=e._options.chunkSize??yA}start(){this.writer=this.target._writable.getWriter()}write(e){if(this.pos>this.lastWriteEnd){let t=this.pos-this.lastWriteEnd;this.pos=this.lastWriteEnd,this.write(new Uint8Array(t))}this.maybeTrackWrites(e),this.sections.push({data:e.slice(),start:this.pos}),this.pos+=e.byteLength,this.lastWriteEnd=Math.max(this.lastWriteEnd,this.pos)}seek(e){this.pos=e}getPos(){return this.pos}async flush(){if(this.pos>this.lastWriteEnd){let i=this.pos-this.lastWriteEnd;this.pos=this.lastWriteEnd,this.write(new Uint8Array(i))}if(w(this.writer),this.sections.length===0)return;let e=[],t=[...this.sections].sort((i,s)=>i.start-s.start);e.push({start:t[0].start,size:t[0].data.byteLength});for(let i=1;i<t.length;i++){let s=e[e.length-1],n=t[i];n.start<=s.start+s.size?s.size=Math.max(s.size,n.start+n.data.byteLength-s.start):e.push({start:n.start,size:n.data.byteLength})}for(let i of e){i.data=new Uint8Array(i.size);for(let s of this.sections)i.start<=s.start&&s.start<i.start+i.size&&i.data.set(s.data,s.start-i.start);if(this.writer.desiredSize!==null&&this.writer.desiredSize<=0&&await this.writer.ready,this.chunked)this.writeDataIntoChunks(i.data,i.start),this.tryToFlushChunks();else{if(this.ensureMonotonicity&&i.start!==this.lastFlushEnd)throw new Error("Internal error: Monotonicity violation.");this.writer.write({type:"write",data:i.data,position:i.start}),this.lastFlushEnd=i.start+i.data.byteLength}}this.sections.length=0}writeDataIntoChunks(e,t){let i=this.chunks.findIndex(c=>c.start<=t&&t<c.start+this.chunkSize);i===-1&&(i=this.createChunk(t));let s=this.chunks[i],n=t-s.start,o=e.subarray(0,Math.min(this.chunkSize-n,e.byteLength));s.data.set(o,n);let a={start:n,end:n+o.byteLength};if(this.insertSectionIntoChunk(s,a),s.written[0].start===0&&s.written[0].end===this.chunkSize&&(s.shouldFlush=!0),this.chunks.length>TA){for(let c=0;c<this.chunks.length-1;c++)this.chunks[c].shouldFlush=!0;this.tryToFlushChunks()}o.byteLength<e.byteLength&&this.writeDataIntoChunks(e.subarray(o.byteLength),t+o.byteLength)}insertSectionIntoChunk(e,t){let i=0,s=e.written.length-1,n=-1;for(;i<=s;){let o=Math.floor(i+(s-i+1)/2);e.written[o].start<=t.start?(i=o+1,n=o):s=o-1}for(e.written.splice(n+1,0,t),(n===-1||e.written[n].end<t.start)&&n++;n<e.written.length-1&&e.written[n].end>=e.written[n+1].start;)e.written[n].end=Math.max(e.written[n].end,e.written[n+1].end),e.written.splice(n+1,1)}createChunk(e){let i={start:Math.floor(e/this.chunkSize)*this.chunkSize,data:new Uint8Array(this.chunkSize),written:[],shouldFlush:!1};return this.chunks.push(i),this.chunks.sort((s,n)=>s.start-n.start),this.chunks.indexOf(i)}tryToFlushChunks(e=!1){w(this.writer);for(let t=0;t<this.chunks.length;t++){let i=this.chunks[t];if(!(!i.shouldFlush&&!e)){for(let s of i.written){let n=i.start+s.start;if(this.ensureMonotonicity&&n!==this.lastFlushEnd)throw new Error("Internal error: Monotonicity violation.");this.writer.write({type:"write",data:i.data.subarray(s.start,s.end),position:n}),this.lastFlushEnd=i.start+s.end}this.chunks.splice(t--,1)}}}finalize(){return this.chunked&&this.tryToFlushChunks(!0),w(this.writer),this.writer.close()}async close(){return this.writer?.close()}};var vi=class{constructor(){this._output=null}},zn=class extends vi{constructor(){super(...arguments),this.buffer=null}_createWriter(){return new ds(this)}},Vn=class extends vi{constructor(e,t={}){if(super(),!(e instanceof WritableStream))throw new TypeError("StreamTarget requires a WritableStream instance.");if(t!=null&&typeof t!="object")throw new TypeError("StreamTarget options, when provided, must be an object.");if(t.chunked!==void 0&&typeof t.chunked!="boolean")throw new TypeError("options.chunked, when provided, must be a boolean.");if(t.chunkSize!==void 0&&(!Number.isInteger(t.chunkSize)||t.chunkSize<1024))throw new TypeError("options.chunkSize, when provided, must be an integer and not smaller than 1024.");this._writable=e,this._options=t}_createWriter(){return new Yc(this)}};var Kc=r=>{let t=(r.hasVideo?"video/":r.hasAudio?"audio/":"application/")+(r.isQuickTime?"quicktime":"mp4");if(r.codecStrings.length>0){let i=[...new Set(r.codecStrings)];t+=`; codecs="${i.join(", ")}"`}return t};var $c=1e3,wA=2082844800,Fe=(r,e,t=!0)=>{let i=r*e;return t?Math.round(i):i},Qc=class extends jc{constructor(e,t){super(e),this.auxTarget=new zn,this.auxWriter=this.auxTarget._createWriter(),this.auxBoxWriter=new Nn(this.auxWriter),this.mdat=null,this.trackDatas=[],this.allTracksKnown=Ke(),this.creationTime=Math.floor(Date.now()/1e3)+wA,this.finalizedChunks=[],this.nextFragmentNumber=1,this.maxWrittenTimestamp=-1/0,this.format=t,this.writer=e._writer,this.boxWriter=new Nn(this.writer),this.isQuickTime=t instanceof fs;let i=this.writer instanceof ds?"in-memory":!1;this.fastStart=t._options.fastStart??i,this.isFragmented=this.fastStart==="fragmented",(this.fastStart==="in-memory"||this.isFragmented)&&(this.writer.ensureMonotonicity=!0),this.minimumFragmentDuration=t._options.minimumFragmentDuration??1}async start(){let e=await this.mutex.acquire(),t=this.output._tracks.some(i=>i.type==="video"&&i.source._codec==="avc");if(this.format._options.onFtyp&&this.writer.startTrackingWrites(),this.boxWriter.writeBox(Dx({isQuickTime:this.isQuickTime,holdsAvc:t,fragmented:this.isFragmented})),this.format._options.onFtyp){let{data:i,start:s}=this.writer.stopTrackingWrites();this.format._options.onFtyp(i,s)}this.fastStart==="in-memory"?this.mdat=qc(!1):this.isFragmented||(this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=qc(!0),this.boxWriter.writeBox(this.mdat)),await this.writer.flush(),e()}allTracksAreKnown(){for(let e of this.output._tracks)if(!e.source._closed&&!this.trackDatas.some(t=>t.track===e))return!1;return!0}async getMimeType(){await this.allTracksKnown.promise;let e=this.trackDatas.map(t=>t.type==="video"||t.type==="audio"?t.info.decoderConfig.codec:{webvtt:"wvtt"}[t.track.source._codec]);return Kc({isQuickTime:this.isQuickTime,hasVideo:this.trackDatas.some(t=>t.type==="video"),hasAudio:this.trackDatas.some(t=>t.type==="audio"),codecStrings:e})}getVideoTrackData(e,t,i){let s=this.trackDatas.find(u=>u.track===e);if(s)return s;dx(i),w(i),w(i.decoderConfig);let n={...i.decoderConfig};w(n.codedWidth!==void 0),w(n.codedHeight!==void 0);let o=!1;if(e.source._codec==="avc"&&!n.description){let u=Lc(t.data);if(!u)throw new Error("Couldn't extract an AVCDecoderConfigurationRecord from the AVC packet. Make sure the packets are in Annex B format (as specified in ITU-T-REC-H.264) when not providing a description, or provide a description (must be an AVCDecoderConfigurationRecord as specified in ISO 14496-15) and ensure the packets are in AVCC format.");n.description=Tx(u),o=!0}else if(e.source._codec==="hevc"&&!n.description){let u=zc(t.data);if(!u)throw new Error("Couldn't extract an HEVCDecoderConfigurationRecord from the HEVC packet. Make sure the packets are in Annex B format (as specified in ITU-T-REC-H.265) when not providing a description, or provide a description (must be an HEVCDecoderConfigurationRecord as specified in ISO 14496-15) and ensure the packets are in HEVC format.");n.description=wx(u),o=!0}let a=Qg(1/(e.metadata.frameRate??57600),1e6).denominator,c={muxer:this,track:e,type:"video",info:{width:n.codedWidth,height:n.codedHeight,decoderConfig:n,requiresAnnexBTransformation:o},timescale:a,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[]};return this.trackDatas.push(c),this.trackDatas.sort((u,l)=>u.track.id-l.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),c}getAudioTrackData(e,t){let i=this.trackDatas.find(n=>n.track===e);if(i)return i;fx(t),w(t),w(t.decoderConfig);let s={muxer:this,track:e,type:"audio",info:{numberOfChannels:t.decoderConfig.numberOfChannels,sampleRate:t.decoderConfig.sampleRate,decoderConfig:t.decoderConfig,requiresPcmTransformation:!this.isFragmented&&Re.includes(e.source._codec)},timescale:t.decoderConfig.sampleRate,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[]};return this.trackDatas.push(s),this.trackDatas.sort((n,o)=>n.track.id-o.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),s}getSubtitleTrackData(e,t){let i=this.trackDatas.find(n=>n.track===e);if(i)return i;mx(t),w(t),w(t.config);let s={muxer:this,track:e,type:"subtitle",info:{config:t.config},timescale:1e3,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[],lastCueEndTimestamp:0,cueQueue:[],nextSourceId:0,cueToSourceId:new WeakMap};return this.trackDatas.push(s),this.trackDatas.sort((n,o)=>n.track.id-o.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),s}async addEncodedVideoPacket(e,t,i){let s=await this.mutex.acquire();try{let n=this.getVideoTrackData(e,t,i),o=t.data;if(n.info.requiresAnnexBTransformation){let u=yx(o);if(!u)throw new Error("Failed to transform packet data. Make sure all packets are provided in Annex B format, as specified in ITU-T-REC-H.264 and ITU-T-REC-H.265.");o=u}let a=this.validateAndNormalizeTimestamp(n.track,t.timestamp,t.type==="key"),c=this.createSampleForTrack(n,o,a,t.duration,t.type);await this.registerSample(n,c)}finally{s()}}async addEncodedAudioPacket(e,t,i){let s=await this.mutex.acquire();try{let n=this.getAudioTrackData(e,i),o=this.validateAndNormalizeTimestamp(n.track,t.timestamp,t.type==="key"),a=this.createSampleForTrack(n,t.data,o,t.duration,t.type);n.info.requiresPcmTransformation&&await this.maybePadWithSilence(n,o),await this.registerSample(n,a)}finally{s()}}async maybePadWithSilence(e,t){let i=he(e.samples),s=i?i.timestamp+i.duration:0,n=t-s,o=Fe(n,e.timescale);if(o>0){let{sampleSize:a,silentValue:c}=gt(e.info.decoderConfig.codec),u=o*e.info.numberOfChannels,l=new Uint8Array(a*u).fill(c),h=this.createSampleForTrack(e,new Uint8Array(l.buffer),s,n,"key");await this.registerSample(e,h)}}async addSubtitleCue(e,t,i){let s=await this.mutex.acquire();try{let n=this.getSubtitleTrackData(e,i);this.validateAndNormalizeTimestamp(n.track,t.timestamp,!0),e.source._codec==="webvtt"&&(n.cueQueue.push(t),await this.processWebVTTCues(n,t.timestamp))}finally{s()}}async processWebVTTCues(e,t){for(;e.cueQueue.length>0;){let i=new Set([]);for(let u of e.cueQueue)w(u.timestamp<=t),w(e.lastCueEndTimestamp<=u.timestamp+u.duration),i.add(Math.max(u.timestamp,e.lastCueEndTimestamp)),i.add(u.timestamp+u.duration);let s=[...i].sort((u,l)=>u-l),n=s[0],o=s[1]??n;if(t<o)break;if(e.lastCueEndTimestamp<n){this.auxWriter.seek(0);let u=Fx();this.auxBoxWriter.writeBox(u);let l=this.auxWriter.getSlice(0,this.auxWriter.getPos()),h=this.createSampleForTrack(e,l,e.lastCueEndTimestamp,n-e.lastCueEndTimestamp,"key");await this.registerSample(e,h),e.lastCueEndTimestamp=n}this.auxWriter.seek(0);for(let u=0;u<e.cueQueue.length;u++){let l=e.cueQueue[u];if(l.timestamp>=o)break;$h.lastIndex=0;let h=$h.test(l.text),f=l.timestamp+l.duration,d=e.cueToSourceId.get(l);if(d===void 0&&o<f&&(d=e.nextSourceId++,e.cueToSourceId.set(l,d)),l.notes){let x=Ox(l.notes);this.auxBoxWriter.writeBox(x)}let m=Ux(l.text,h?n:null,l.identifier??null,l.settings??null,d??null);this.auxBoxWriter.writeBox(m),f===o&&e.cueQueue.splice(u--,1)}let a=this.auxWriter.getSlice(0,this.auxWriter.getPos()),c=this.createSampleForTrack(e,a,n,o-n,"key");await this.registerSample(e,c),e.lastCueEndTimestamp=o}}createSampleForTrack(e,t,i,s,n){return{timestamp:i,decodeTimestamp:i,duration:s,data:t,size:t.byteLength,type:n,timescaleUnitsToNextSample:Fe(s,e.timescale)}}processTimestamps(e,t){if(e.timestampProcessingQueue.length===0)return;if(e.type==="audio"&&e.info.requiresPcmTransformation){let s=0;for(let n=0;n<e.timestampProcessingQueue.length;n++){let o=e.timestampProcessingQueue[n],a=Fe(o.duration,e.timescale);s+=a}if(e.timeToSampleTable.length===0)e.timeToSampleTable.push({sampleCount:s,sampleDelta:1});else{let n=he(e.timeToSampleTable);n.sampleCount+=s}e.timestampProcessingQueue.length=0;return}let i=e.timestampProcessingQueue.map(s=>s.timestamp).sort((s,n)=>s-n);for(let s=0;s<e.timestampProcessingQueue.length;s++){let n=e.timestampProcessingQueue[s];n.decodeTimestamp=i[s],!this.isFragmented&&e.lastTimescaleUnits===null&&(n.decodeTimestamp=0);let o=Fe(n.timestamp-n.decodeTimestamp,e.timescale),a=Fe(n.duration,e.timescale);if(e.lastTimescaleUnits!==null){w(e.lastSample);let c=Fe(n.decodeTimestamp,e.timescale,!1),u=Math.round(c-e.lastTimescaleUnits);if(w(u>=0),e.lastTimescaleUnits+=u,e.lastSample.timescaleUnitsToNextSample=u,!this.isFragmented){let l=he(e.timeToSampleTable);if(w(l),l.sampleCount===1){l.sampleDelta=u;let f=e.timeToSampleTable[e.timeToSampleTable.length-2];f&&f.sampleDelta===u&&(f.sampleCount++,e.timeToSampleTable.pop(),l=f)}else l.sampleDelta!==u&&(l.sampleCount--,e.timeToSampleTable.push(l={sampleCount:1,sampleDelta:u}));l.sampleDelta===a?l.sampleCount++:e.timeToSampleTable.push({sampleCount:1,sampleDelta:a});let h=he(e.compositionTimeOffsetTable);w(h),h.sampleCompositionTimeOffset===o?h.sampleCount++:e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:o})}}else e.lastTimescaleUnits=Fe(n.decodeTimestamp,e.timescale,!1),this.isFragmented||(e.timeToSampleTable.push({sampleCount:1,sampleDelta:a}),e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:o}));e.lastSample=n}if(e.timestampProcessingQueue.length=0,w(e.lastSample),w(e.lastTimescaleUnits!==null),t!==void 0&&e.lastSample.timescaleUnitsToNextSample===0){w(t.type==="key");let s=Fe(t.timestamp,e.timescale,!1),n=Math.round(s-e.lastTimescaleUnits);e.lastSample.timescaleUnitsToNextSample=n}}async registerSample(e,t){t.type==="key"&&this.processTimestamps(e,t),e.timestampProcessingQueue.push(t),this.isFragmented?(e.sampleQueue.push(t),await this.interleaveSamples()):await this.addSampleToTrack(e,t)}async addSampleToTrack(e,t){this.isFragmented||e.samples.push(t);let i=!1;if(!e.currentChunk)i=!0;else{e.currentChunk.startTimestamp=Math.min(e.currentChunk.startTimestamp,t.timestamp);let s=t.timestamp-e.currentChunk.startTimestamp;if(this.isFragmented){let n=this.trackDatas.every(o=>{if(e===o)return t.type==="key";let a=o.sampleQueue[0];return a?a.type==="key":o.track.source._closed});s>=this.minimumFragmentDuration&&n&&t.timestamp>this.maxWrittenTimestamp&&(i=!0,await this.finalizeFragment())}else i=s>=.5}i&&(e.currentChunk&&await this.finalizeCurrentChunk(e),e.currentChunk={startTimestamp:t.timestamp,samples:[],offset:null,moofOffset:null}),w(e.currentChunk),e.currentChunk.samples.push(t),this.isFragmented&&(this.maxWrittenTimestamp=Math.max(this.maxWrittenTimestamp,t.timestamp))}async finalizeCurrentChunk(e){if(w(!this.isFragmented),!e.currentChunk)return;e.finalizedChunks.push(e.currentChunk),this.finalizedChunks.push(e.currentChunk);let t=e.currentChunk.samples.length;if(e.type==="audio"&&e.info.requiresPcmTransformation&&(t=e.currentChunk.samples.reduce((i,s)=>i+Fe(s.duration,e.timescale),0)),(e.compactlyCodedChunkTable.length===0||he(e.compactlyCodedChunkTable).samplesPerChunk!==t)&&e.compactlyCodedChunkTable.push({firstChunk:e.finalizedChunks.length,samplesPerChunk:t}),this.fastStart==="in-memory"){e.currentChunk.offset=0;return}e.currentChunk.offset=this.writer.getPos();for(let i of e.currentChunk.samples)w(i.data),this.writer.write(i.data),i.data=null;await this.writer.flush()}async interleaveSamples(e=!1){if(w(this.isFragmented),!(!e&&!this.allTracksAreKnown()))e:for(;;){let t=null,i=1/0;for(let n of this.trackDatas){if(!e&&n.sampleQueue.length===0&&!n.track.source._closed)break e;n.sampleQueue.length>0&&n.sampleQueue[0].timestamp<i&&(t=n,i=n.sampleQueue[0].timestamp)}if(!t)break;let s=t.sampleQueue.shift();await this.addSampleToTrack(t,s)}}async finalizeFragment(e=!0){w(this.isFragmented);let t=this.nextFragmentNumber++;if(t===1){this.format._options.onMoov&&this.writer.startTrackingWrites();let d=Ln(this.trackDatas,this.creationTime,!0);if(this.boxWriter.writeBox(d),this.format._options.onMoov){let{data:m,start:x}=this.writer.stopTrackingWrites();this.format._options.onMoov(m,x)}}let i=this.trackDatas.filter(d=>d.currentChunk),s=Jh(t,i),n=this.writer.getPos(),o=n+this.boxWriter.measureBox(s),a=16,c=o+a,u=1/0;for(let d of i){d.currentChunk.offset=c,d.currentChunk.moofOffset=n;for(let m of d.currentChunk.samples)c+=m.size;u=Math.min(u,d.currentChunk.startTimestamp)}let l=c-o;this.format._options.onMoof&&this.writer.startTrackingWrites();let h=Jh(t,i);if(this.boxWriter.writeBox(h),this.format._options.onMoof){let{data:d,start:m}=this.writer.stopTrackingWrites();this.format._options.onMoof(d,m,u)}w(this.writer.getPos()===o),this.format._options.onMdat&&this.writer.startTrackingWrites();let f=qc(l>=2**32);f.size=l,this.boxWriter.writeBox(f),this.writer.seek(o+a);for(let d of i)for(let m of d.currentChunk.samples)this.writer.write(m.data),m.data=null;if(this.format._options.onMdat){let{data:d,start:m}=this.writer.stopTrackingWrites();this.format._options.onMdat(d,m)}for(let d of i)d.finalizedChunks.push(d.currentChunk),this.finalizedChunks.push(d.currentChunk),d.currentChunk=null;e&&await this.writer.flush()}async onTrackClose(e){let t=await this.mutex.acquire();if(e.type==="subtitle"&&e.source._codec==="webvtt"){let i=this.trackDatas.find(s=>s.track===e);i&&await this.processWebVTTCues(i,1/0)}this.allTracksAreKnown()&&this.allTracksKnown.resolve(),this.isFragmented&&await this.interleaveSamples(),t()}async finalize(){let e=await this.mutex.acquire();this.allTracksKnown.resolve();for(let t of this.trackDatas)t.type==="subtitle"&&t.track.source._codec==="webvtt"&&await this.processWebVTTCues(t,1/0);if(this.isFragmented){await this.interleaveSamples(!0);for(let t of this.trackDatas)this.processTimestamps(t);await this.finalizeFragment(!1)}else for(let t of this.trackDatas)this.processTimestamps(t),await this.finalizeCurrentChunk(t);if(this.fastStart==="in-memory"){w(this.mdat);let t;for(let s=0;s<2;s++){let n=Ln(this.trackDatas,this.creationTime),o=this.boxWriter.measureBox(n);t=this.boxWriter.measureBox(this.mdat);let a=this.writer.getPos()+o+t;for(let c of this.finalizedChunks){c.offset=a;for(let{data:u}of c.samples)w(u),a+=u.byteLength,t+=u.byteLength}if(a<2**32)break;t>=2**32&&(this.mdat.largeSize=!0)}this.format._options.onMoov&&this.writer.startTrackingWrites();let i=Ln(this.trackDatas,this.creationTime);if(this.boxWriter.writeBox(i),this.format._options.onMoov){let{data:s,start:n}=this.writer.stopTrackingWrites();this.format._options.onMoov(s,n)}this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat.size=t,this.boxWriter.writeBox(this.mdat);for(let s of this.finalizedChunks)for(let n of s.samples)w(n.data),this.writer.write(n.data),n.data=null;if(this.format._options.onMdat){let{data:s,start:n}=this.writer.stopTrackingWrites();this.format._options.onMdat(s,n)}}else if(this.isFragmented){let t=this.writer.getPos(),i=Ix(this.trackDatas);this.boxWriter.writeBox(i);let s=this.writer.getPos()-t;this.writer.seek(this.writer.getPos()-4),this.boxWriter.writeU32(s)}else{w(this.mdat);let t=this.boxWriter.offsets.get(this.mdat);w(t!==void 0);let i=this.writer.getPos()-t;if(this.mdat.size=i,this.mdat.largeSize=i>=2**32,this.boxWriter.patchBox(this.mdat),this.format._options.onMdat){let{data:n,start:o}=this.writer.stopTrackingWrites();this.format._options.onMdat(n,o)}this.format._options.onMoov&&this.writer.startTrackingWrites();let s=Ln(this.trackDatas,this.creationTime);if(this.boxWriter.writeBox(s),this.format._options.onMoov){let{data:n,start:o}=this.writer.stopTrackingWrites();this.format._options.onMoov(n,o)}}e()}};var I;(function(r){r[r.EBML=440786851]="EBML",r[r.EBMLVersion=17030]="EBMLVersion",r[r.EBMLReadVersion=17143]="EBMLReadVersion",r[r.EBMLMaxIDLength=17138]="EBMLMaxIDLength",r[r.EBMLMaxSizeLength=17139]="EBMLMaxSizeLength",r[r.DocType=17026]="DocType",r[r.DocTypeVersion=17031]="DocTypeVersion",r[r.DocTypeReadVersion=17029]="DocTypeReadVersion",r[r.SeekHead=290298740]="SeekHead",r[r.Seek=19899]="Seek",r[r.SeekID=21419]="SeekID",r[r.SeekPosition=21420]="SeekPosition",r[r.Duration=17545]="Duration",r[r.Info=357149030]="Info",r[r.TimestampScale=2807729]="TimestampScale",r[r.MuxingApp=19840]="MuxingApp",r[r.WritingApp=22337]="WritingApp",r[r.Tracks=374648427]="Tracks",r[r.TrackEntry=174]="TrackEntry",r[r.TrackNumber=215]="TrackNumber",r[r.TrackUID=29637]="TrackUID",r[r.TrackType=131]="TrackType",r[r.FlagEnabled=185]="FlagEnabled",r[r.FlagDefault=136]="FlagDefault",r[r.FlagForced=21930]="FlagForced",r[r.FlagLacing=156]="FlagLacing",r[r.Language=2274716]="Language",r[r.CodecID=134]="CodecID",r[r.CodecPrivate=25506]="CodecPrivate",r[r.CodecDelay=22186]="CodecDelay",r[r.SeekPreRoll=22203]="SeekPreRoll",r[r.DefaultDuration=2352003]="DefaultDuration",r[r.Video=224]="Video",r[r.PixelWidth=176]="PixelWidth",r[r.PixelHeight=186]="PixelHeight",r[r.Audio=225]="Audio",r[r.SamplingFrequency=181]="SamplingFrequency",r[r.Channels=159]="Channels",r[r.BitDepth=25188]="BitDepth",r[r.Segment=408125543]="Segment",r[r.SimpleBlock=163]="SimpleBlock",r[r.BlockGroup=160]="BlockGroup",r[r.Block=161]="Block",r[r.BlockAdditions=30113]="BlockAdditions",r[r.BlockMore=166]="BlockMore",r[r.BlockAdditional=165]="BlockAdditional",r[r.BlockAddID=238]="BlockAddID",r[r.BlockDuration=155]="BlockDuration",r[r.ReferenceBlock=251]="ReferenceBlock",r[r.Cluster=524531317]="Cluster",r[r.Timestamp=231]="Timestamp",r[r.Cues=475249515]="Cues",r[r.CuePoint=187]="CuePoint",r[r.CueTime=179]="CueTime",r[r.CueTrackPositions=183]="CueTrackPositions",r[r.CueTrack=247]="CueTrack",r[r.CueClusterPosition=241]="CueClusterPosition",r[r.Colour=21936]="Colour",r[r.MatrixCoefficients=21937]="MatrixCoefficients",r[r.TransferCharacteristics=21946]="TransferCharacteristics",r[r.Primaries=21947]="Primaries",r[r.Range=21945]="Range",r[r.Projection=30320]="Projection",r[r.ProjectionType=30321]="ProjectionType",r[r.ProjectionPoseRoll=30325]="ProjectionPoseRoll",r[r.Attachments=423732329]="Attachments",r[r.Chapters=272869232]="Chapters",r[r.Tags=307544935]="Tags"})(I||(I={}));var SA=[I.EBML,I.Segment],vA=[I.EBMLMaxIDLength,I.EBMLMaxSizeLength,I.SeekHead,I.Info,I.Cluster,I.Tracks,I.Cues,I.Attachments,I.Chapters,I.Tags],rd=[...SA,...vA];var Nx=8,Zc=2,Ci=4+Nx,Ei=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos++,e.getUint8(t)}readS16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getInt16(t,!1)}readVarIntSize(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1),i=e.getUint8(t),s=1,n=128;for(;(i&n)===0&&s<8;)s++,n>>=1;return s}readVarInt(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1),i=e.getUint8(t),s=1,n=128;for(;(i&n)===0&&s<Nx;)s++,n>>=1;let{view:o,offset:a}=this.reader.getViewAndOffset(this.pos,this.pos+s),c=i&n-1;for(let u=1;u<s;u++)c*=256,c+=o.getUint8(a+u);return this.pos+=s,c}readUnsignedInt(e){if(e<1||e>8)throw new Error("Bad unsigned int size "+e);let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e),s=0;for(let n=0;n<e;n++)s*=256,s+=t.getUint8(i+n);return this.pos+=e,s}readSignedInt(e){let t=this.readUnsignedInt(e);return t&1<<e*8-1&&(t-=2**(e*8)),t}readFloat(e){if(e===0)return 0;if(e!==4&&e!==8)throw new Error("Bad float size "+e);let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e),s=e===4?t.getFloat32(i,!1):t.getFloat64(i,!1);return this.pos+=e,s}readString(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,String.fromCharCode(...new Uint8Array(t.buffer,i,e))}readElementId(){let e=this.readVarIntSize();return this.readUnsignedInt(e)}readElementSize(){let e=this.readU8();return e===255?e=null:(this.pos--,e=this.readVarInt(),e===72057594037927940&&(e=null)),e}readElementHeader(){let e=this.readElementId(),t=this.readElementSize();return{id:e,size:t}}async searchForNextElementId(e,t){let s=new Set(e);for(;this.pos<t-Ci;){this.reader.rangeIsLoaded(this.pos,this.pos+Ci)||await this.reader.loadRange(this.pos,Math.min(this.pos+1048576,t));let n=this.pos,o=this.readElementHeader();if(s.has(o.id))return n;ki(o.size),this.pos+=o.size}return null}},Dt={avc:"V_MPEG4/ISO/AVC",hevc:"V_MPEGH/ISO/HEVC",vp8:"V_VP8",vp9:"V_VP9",av1:"V_AV1",aac:"A_AAC",mp3:"A_MPEG/L3",opus:"A_OPUS",vorbis:"A_VORBIS",flac:"A_FLAC","pcm-u8":"A_PCM/INT/LIT","pcm-s16":"A_PCM/INT/LIT","pcm-s16be":"A_PCM/INT/BIG","pcm-s24":"A_PCM/INT/LIT","pcm-s24be":"A_PCM/INT/BIG","pcm-s32":"A_PCM/INT/LIT","pcm-s32be":"A_PCM/INT/BIG","pcm-f32":"A_PCM/FLOAT/IEEE","pcm-f64":"A_PCM/FLOAT/IEEE",webvtt:"S_TEXT/WEBVTT"};function ki(r){if(r===null)throw new Error("Undefined element size is used in a place where it is not supported.")}var Lx=r=>{let t=(r.hasVideo?"video/":r.hasAudio?"audio/":"application/")+(r.isWebM?"webm":"x-matroska");if(r.codecStrings.length>0){let i=[...new Set(r.codecStrings.filter(Boolean))];t+=`; codecs="${i.join(", ")}"`}return t};var CA={1:[-1,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],2:[-1,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],3:[-1,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1]},EA={1:[-1,32,48,56,64,80,96,112,128,144,160,176,192,224,256,-1],2:[-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1],3:[-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1]},kA={0:[11025,12e3,8e3,-1],2:[22050,24e3,16e3,-1],3:[44100,48e3,32e3,-1]},zx=1483304551,Vx=1231971951,AA=(r,e,t,i)=>Math.floor(r===3?(12*e/t+i)*4:144*e/t+i),Hx=(r,e)=>r===3?e===3?21:36:e===3?13:21,Wx=(r,e)=>{let t=e.pos,i=r>>>24,s=r>>>16&255,n=r>>>8&255,o=r&255;if(i!==255&&s!==255&&n!==255&&o!==255)return e.pos+=4,null;if(e.pos+=1,i!==255||(s&224)!==224)return null;let a=s>>3&3,c=s>>1&3,u=n>>4&15,l=n>>2&3,h=n>>1&1,f=o>>6&3,d=o>>4&3,m=o>>3&1,x=o>>2&1,g=o&3,_=a===3?CA[c]?.[u]:EA[c]?.[u];if(!_||_===-1)return null;let y=_*1e3,S=kA[a]?.[l];if(!S||S===-1)return null;let T=AA(c,y,S,h);if(e.fileSize!==null&&e.fileSize-t<T)return null;let C;return a===3?C=c===3?384:1152:c===3?C=384:c===2?C=1152:C=576,{startPos:t,totalSize:T,mpegVersionId:a,layer:c,bitrate:y,frequencyIndex:l,sampleRate:S,channel:f,modeExtension:d,copyright:m,original:x,emphasis:g,audioSamplesInFrame:C}};var id=1399285583,PA=79764919,$x=new Uint32Array(256);for(let r=0;r<256;r++){let e=r<<24;for(let t=0;t<8;t++)e=e&2147483648?e<<1^PA:e<<1;$x[r]=e>>>0&4294967295}var qx=r=>{let e=St(r),t=e.getUint32(22,!0);e.setUint32(22,0,!0);let i=0;for(let s=0;s<r.length;s++){let n=r[s];i=(i<<8^$x[i>>>24^n])>>>0}return e.setUint32(22,t,!0),i},jx=(r,e,t)=>{let i=0,s=null;if(r.length>0)if(e.codec==="vorbis"){w(e.vorbisInfo);let n=e.vorbisInfo.modeBlockflags.length,a=(1<<Kg(n-1))-1<<1,c=(r[0]&a)>>1;if(c>=e.vorbisInfo.modeBlockflags.length)throw new Error("Invalid mode number.");let u=t,l=e.vorbisInfo.modeBlockflags[c];if(s=e.vorbisInfo.blocksizes[l],l===1){let h=(a|1)+1,f=r[0]&h?1:0;u=e.vorbisInfo.blocksizes[f]}i=u!==null?u+s>>2:0}else e.codec==="opus"&&(i=Sx(r).durationInSamples);return{durationInSamples:i,vorbisBlockSize:s}},Xx=r=>{let e="audio/ogg";if(r.codecStrings){let t=[...new Set(r.codecStrings)];e+=`; codecs="${t.join(", ")}"`}return e};var ps=27,Ai=282,Yx=Ai+255*255,ms=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos+=1,e.getUint8(t)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!0)}readI32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getInt32(t,!0)}readI64(){let e=this.readU32();return this.readI32()*4294967296+e}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}readPageHeader(){let e=this.pos;if(this.readU32()!==id)return null;this.pos+=1;let i=this.readU8(),s=this.readI64(),n=this.readU32(),o=this.readU32(),a=this.readU32(),c=this.readU8(),u=new Uint8Array(c);for(let d=0;d<c;d++)u[d]=this.readU8();let l=27+c,h=u.reduce((d,m)=>d+m,0),f=l+h;return{headerStartPos:e,totalSize:f,dataStartPos:e+l,dataSize:h,headerType:i,granulePosition:s,serialNumber:n,sequenceNumber:o,checksum:a,lacingValues:u}}findNextPageHeader(e){for(;this.pos<e-3;){let t=this.readU32(),i=t&255,s=t>>>8&255,n=t>>>16&255,o=t>>>24&255,a=79;if(!(i!==a&&s!==a&&n!==a&&o!==a)){if(this.pos-=4,t===id)return!0;this.pos+=1}}return!1}};var Ct=class{constructor(e){this.input=e}};var ot=new Uint8Array(0),ge=class r{constructor(e,t,i,s,n=-1,o){if(this.data=e,this.type=t,this.timestamp=i,this.duration=s,this.sequenceNumber=n,e===ot&&o===void 0)throw new Error("Internal error: byteLength must be explicitly provided when constructing metadata-only packets.");if(o===void 0&&(o=e.byteLength),!(e instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if(t!=="key"&&t!=="delta")throw new TypeError('type must be either "key" or "delta".');if(!Number.isFinite(i))throw new TypeError("timestamp must be a number.");if(!Number.isFinite(s)||s<0)throw new TypeError("duration must be a non-negative number.");if(!Number.isFinite(n))throw new TypeError("sequenceNumber must be a number.");if(!Number.isInteger(o)||o<0)throw new TypeError("byteLength must be a non-negative integer.");this.byteLength=o}get isMetadataOnly(){return this.data===ot}get microsecondTimestamp(){return Math.trunc(Vt*this.timestamp)}get microsecondDuration(){return Math.trunc(Vt*this.duration)}toEncodedVideoChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if(typeof EncodedVideoChunk>"u")throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}toEncodedAudioChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to an audio chunk.");if(typeof EncodedAudioChunk>"u")throw new Error("Your browser does not support EncodedAudioChunk.");return new EncodedAudioChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}static fromEncodedChunk(e){if(!(e instanceof EncodedVideoChunk||e instanceof EncodedAudioChunk))throw new TypeError("chunk must be an EncodedVideoChunk or EncodedAudioChunk.");let t=new Uint8Array(e.byteLength);return e.copyTo(t),new r(t,e.type,e.timestamp/1e6,(e.duration??0)/1e6)}clone(e){if(e!==void 0&&(typeof e!="object"||e===null))throw new TypeError("options, when provided, must be an object.");if(e?.timestamp!==void 0&&!Number.isFinite(e.timestamp))throw new TypeError("options.timestamp, when provided, must be a number.");if(e?.duration!==void 0&&!Number.isFinite(e.duration))throw new TypeError("options.duration, when provided, must be a number.");return new r(this.data,this.type,e?.timestamp??this.timestamp,e?.duration??this.duration,this.sequenceNumber,this.byteLength)}};var Kx=r=>{let i=r,s=4096,n=0,o=12,a=0;for(i<0&&(i=-i,n=128),i+=33,i>8191&&(i=8191);(i&s)!==s&&o>=5;)s>>=1,o--;return a=i>>o-4&15,~(n|o-5<<4|a)&255},Qx=r=>{let t=0,i=0,s=~r;s&128&&(s&=-129,t=-1),i=((s&240)>>4)+5;let n=(1<<i|(s&15)<<i-4|1<<i-5)-33;return t===0?n:-n},Zx=r=>{let t=2048,i=0,s=11,n=0,o=r;for(o<0&&(o=-o,i=128),o>4095&&(o=4095);(o&t)!==t&&s>=5;)t>>=1,s--;return n=o>>(s===4?1:s-4)&15,(i|s-4<<4|n)^85},Jx=r=>{let e=0,t=0,i=r^85;i&128&&(i&=-129,e=-1),t=((i&240)>>4)+4;let s=0;return t!==4?s=1<<t|(i&15)<<t-4|1<<t-5:s=i<<1|1,e===0?s:-s};var $t=class r{get displayWidth(){return this.rotation%180===0?this.codedWidth:this.codedHeight}get displayHeight(){return this.rotation%180===0?this.codedHeight:this.codedWidth}get microsecondTimestamp(){return Math.trunc(Vt*this.timestamp)}get microsecondDuration(){return Math.trunc(Vt*this.duration)}constructor(e,t){if(this._closed=!1,e instanceof ArrayBuffer||ArrayBuffer.isView(e)){if(!t||typeof t!="object")throw new TypeError("init must be an object.");if(!("format"in t)||typeof t.format!="string")throw new TypeError("init.format must be a string.");if(!Number.isInteger(t.codedWidth)||t.codedWidth<=0)throw new TypeError("init.codedWidth must be a positive integer.");if(!Number.isInteger(t.codedHeight)||t.codedHeight<=0)throw new TypeError("init.codedHeight must be a positive integer.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(t.timestamp))throw new TypeError("init.timestamp must be a number.");if(t.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");this._data=zt(e).slice(),this.format=t.format,this.codedWidth=t.codedWidth,this.codedHeight=t.codedHeight,this.rotation=t.rotation??0,this.timestamp=t.timestamp,this.duration=t.duration??0,this.colorSpace=new VideoColorSpace(t.colorSpace)}else if(typeof VideoFrame<"u"&&e instanceof VideoFrame){if(t?.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(t?.timestamp!==void 0&&!Number.isFinite(t?.timestamp))throw new TypeError("init.timestamp, when provided, must be a number.");if(t?.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");this._data=e,this.format=e.format,this.codedWidth=e.codedWidth,this.codedHeight=e.codedHeight,this.rotation=t?.rotation??0,this.timestamp=t?.timestamp??e.timestamp/1e6,this.duration=t?.duration??(e.duration??0)/1e6,this.colorSpace=e.colorSpace}else if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof SVGImageElement<"u"&&e instanceof SVGImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas){if(!t||typeof t!="object")throw new TypeError("init must be an object.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(t.timestamp))throw new TypeError("init.timestamp must be a number.");if(t.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");if(typeof VideoFrame<"u")return new r(new VideoFrame(e,{timestamp:Math.trunc(t.timestamp*Vt),duration:Math.trunc((t.duration??0)*Vt)}),t);let i=0,s=0;if("naturalWidth"in e?(i=e.naturalWidth,s=e.naturalHeight):"videoWidth"in e?(i=e.videoWidth,s=e.videoHeight):"width"in e&&(i=Number(e.width),s=Number(e.height)),!i||!s)throw new TypeError("Could not determine dimensions.");let n=new OffscreenCanvas(i,s),o=n.getContext("2d",{alpha:!1,willReadFrequently:!0});w(o),o.drawImage(e,0,0),this._data=n,this.format="RGBX",this.codedWidth=i,this.codedHeight=s,this.rotation=t.rotation??0,this.timestamp=t.timestamp,this.duration=t.duration??0,this.colorSpace=new VideoColorSpace({matrix:"rgb",primaries:"bt709",transfer:"iec61966-2-1",fullRange:!0})}else throw new TypeError("Invalid data type: Must be a BufferSource or CanvasImageSource.")}clone(){if(this._closed)throw new Error("VideoSample is closed.");return w(this._data!==null),Hn(this._data)?new r(this._data.clone(),{timestamp:this.timestamp,duration:this.duration}):this._data instanceof Uint8Array?new r(this._data.slice(),{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace}):new r(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace})}close(){this._closed||(Hn(this._data)?this._data.close():this._data=null,this._closed=!0)}allocationSize(){if(this._closed)throw new Error("VideoSample is closed.");return w(this._data!==null),Hn(this._data)?this._data.allocationSize():this._data instanceof Uint8Array?this._data.byteLength:this.codedWidth*this.codedHeight*4}async copyTo(e){if(!as(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(this._closed)throw new Error("VideoSample is closed.");if(w(this._data!==null),Hn(this._data))await this._data.copyTo(e);else if(this._data instanceof Uint8Array)zt(e).set(this._data);else{let i=this._data.getContext("2d",{alpha:!1});w(i);let s=i.getImageData(0,0,this.codedWidth,this.codedHeight);zt(e).set(s.data)}}toVideoFrame(){if(this._closed)throw new Error("VideoSample is closed.");return w(this._data!==null),Hn(this._data)?new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0}):this._data instanceof Uint8Array?new VideoFrame(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration,colorSpace:this.colorSpace}):new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}draw(e,t,i,s,n,o,a,c,u){let l=0,h=0,f=this.displayWidth,d=this.displayHeight,m=0,x=0,g=this.displayWidth,_=this.displayHeight;if(o!==void 0?(l=t,h=i,f=s,d=n,m=o,x=a,c!==void 0?(g=c,_=u):(g=f,_=d)):(m=t,x=i,s!==void 0&&(g=s,_=n)),!(typeof CanvasRenderingContext2D<"u"&&e instanceof CanvasRenderingContext2D||typeof OffscreenCanvasRenderingContext2D<"u"&&e instanceof OffscreenCanvasRenderingContext2D))throw new TypeError("context must be a CanvasRenderingContext2D or OffscreenCanvasRenderingContext2D.");if(!Number.isFinite(l))throw new TypeError("sx must be a number.");if(!Number.isFinite(h))throw new TypeError("sy must be a number.");if(!Number.isFinite(f)||f<0)throw new TypeError("sWidth must be a non-negative number.");if(!Number.isFinite(d)||d<0)throw new TypeError("sHeight must be a non-negative number.");if(!Number.isFinite(m))throw new TypeError("dx must be a number.");if(!Number.isFinite(x))throw new TypeError("dy must be a number.");if(!Number.isFinite(g)||g<0)throw new TypeError("dWidth must be a non-negative number.");if(!Number.isFinite(_)||_<0)throw new TypeError("dHeight must be a non-negative number.");if(this._closed)throw new Error("VideoSample is closed.");this.rotation===90?[l,h,f,d]=[h,this.codedHeight-l-f,d,f]:this.rotation===180?[l,h]=[this.codedWidth-l-f,this.codedHeight-h-d]:this.rotation===270&&([l,h,f,d]=[this.codedWidth-h-d,l,d,f]);let y=this.toCanvasImageSource();e.save();let S=m+g/2,T=x+_/2;e.translate(S,T),e.rotate(this.rotation*Math.PI/180);let C=this.rotation%180===0?1:g/_;e.scale(1/C,C),e.drawImage(y,l,h,f,d,-g/2,-_/2,g,_),e.restore()}toCanvasImageSource(){if(this._closed)throw new Error("VideoSample is closed.");if(w(this._data!==null),this._data instanceof Uint8Array){let e=this.toVideoFrame();return queueMicrotask(()=>e.close()),e}else return this._data}setRotation(e){if(![0,90,180,270].includes(e))throw new TypeError("newRotation must be 0, 90, 180, or 270.");this.rotation=e}setTimestamp(e){if(!Number.isFinite(e))throw new TypeError("newTimestamp must be a number.");this.timestamp=e}setDuration(e){if(!Number.isFinite(e)||e<0)throw new TypeError("newDuration must be a non-negative number.");this.duration=e}},Hn=r=>typeof VideoFrame<"u"&&r instanceof VideoFrame,sd=new Set(["f32","f32-planar","s16","s16-planar","s32","s32-planar","u8","u8-planar"]),Mt=class r{get microsecondTimestamp(){return Math.trunc(Vt*this.timestamp)}get microsecondDuration(){return Math.trunc(Vt*this.duration)}constructor(e){if(this._closed=!1,$n(e)){if(e.format===null)throw new TypeError("AudioData with null format is not supported.");this._data=e,this.format=e.format,this.sampleRate=e.sampleRate,this.numberOfFrames=e.numberOfFrames,this.numberOfChannels=e.numberOfChannels,this.timestamp=e.timestamp/1e6,this.duration=e.numberOfFrames/e.sampleRate}else{if(!e||typeof e!="object")throw new TypeError("Invalid AudioDataInit: must be an object.");if(!sd.has(e.format))throw new TypeError("Invalid AudioDataInit: invalid format.");if(!Number.isFinite(e.sampleRate)||e.sampleRate<=0)throw new TypeError("Invalid AudioDataInit: sampleRate must be > 0.");if(!Number.isInteger(e.numberOfChannels)||e.numberOfChannels===0)throw new TypeError("Invalid AudioDataInit: numberOfChannels must be an integer > 0.");if(!Number.isFinite(e?.timestamp))throw new TypeError("init.timestamp must be a number.");let t=e.data.byteLength/(Wn(e.format)*e.numberOfChannels);if(!Number.isInteger(t))throw new TypeError("Invalid AudioDataInit: data size is not a multiple of frame size.");this.format=e.format,this.sampleRate=e.sampleRate,this.numberOfFrames=t,this.numberOfChannels=e.numberOfChannels,this.timestamp=e.timestamp,this.duration=t/e.sampleRate;let i;if(e.data instanceof ArrayBuffer)i=new Uint8Array(e.data);else if(ArrayBuffer.isView(e.data))i=new Uint8Array(e.data.buffer,e.data.byteOffset,e.data.byteLength);else throw new TypeError("Invalid AudioDataInit: data is not a BufferSource.");let s=this.numberOfFrames*this.numberOfChannels*Wn(this.format);if(i.byteLength<s)throw new TypeError("Invalid AudioDataInit: insufficient data size.");this._data=i}}allocationSize(e){if(!e||typeof e!="object")throw new TypeError("options must be an object.");if(!Number.isInteger(e.planeIndex)||e.planeIndex<0)throw new TypeError("planeIndex must be a non-negative integer.");if(e.format!==void 0&&!sd.has(e.format))throw new TypeError("Invalid format.");if(e.frameOffset!==void 0&&(!Number.isInteger(e.frameOffset)||e.frameOffset<0))throw new TypeError("frameOffset must be a non-negative integer.");if(e.frameCount!==void 0&&(!Number.isInteger(e.frameCount)||e.frameCount<0))throw new TypeError("frameCount must be a non-negative integer.");if(this._closed)throw new Error("AudioSample is closed.");let t=e.format??this.format,i=e.frameOffset??0;if(i>=this.numberOfFrames)throw new RangeError("frameOffset out of range");let s=e.frameCount!==void 0?e.frameCount:this.numberOfFrames-i;if(s>this.numberOfFrames-i)throw new RangeError("frameCount out of range");let n=Wn(t),o=Jc(t);if(o&&e.planeIndex>=this.numberOfChannels)throw new RangeError("planeIndex out of range");if(!o&&e.planeIndex!==0)throw new RangeError("planeIndex out of range");return(o?s:s*this.numberOfChannels)*n}copyTo(e,t){if(!as(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(!Number.isInteger(t.planeIndex)||t.planeIndex<0)throw new TypeError("planeIndex must be a non-negative integer.");if(t.format!==void 0&&!sd.has(t.format))throw new TypeError("Invalid format.");if(t.frameOffset!==void 0&&(!Number.isInteger(t.frameOffset)||t.frameOffset<0))throw new TypeError("frameOffset must be a non-negative integer.");if(t.frameCount!==void 0&&(!Number.isInteger(t.frameCount)||t.frameCount<0))throw new TypeError("frameCount must be a non-negative integer.");if(this._closed)throw new Error("AudioSample is closed.");let{planeIndex:i,format:s,frameCount:n,frameOffset:o}=t,a=s??this.format;if(!a)throw new Error("Destination format not determined");let c=this.numberOfFrames,u=this.numberOfChannels,l=o??0;if(l>=c)throw new RangeError("frameOffset out of range");let h=n!==void 0?n:c-l;if(h>c-l)throw new RangeError("frameCount out of range");let f=Wn(a),d=Jc(a);if(d&&i>=u)throw new RangeError("planeIndex out of range");if(!d&&i!==0)throw new RangeError("planeIndex out of range");let x=(d?h:h*u)*f;if(e.byteLength<x)throw new RangeError("Destination buffer is too small");let g=St(e),_=RA(a);if($n(this._data))if(d)if(a==="f32-planar")this._data.copyTo(e,{planeIndex:i,frameOffset:l,frameCount:h,format:"f32-planar"});else{let y=new ArrayBuffer(h*4),S=new Float32Array(y);this._data.copyTo(S,{planeIndex:i,frameOffset:l,frameCount:h,format:"f32-planar"});let T=new DataView(y);for(let C=0;C<h;C++){let v=C*f,E=T.getFloat32(C*4,!0);_(g,v,E)}}else{let y=u,S=new Float32Array(h);for(let T=0;T<y;T++){this._data.copyTo(S,{planeIndex:T,frameOffset:l,frameCount:h,format:"f32-planar"});for(let C=0;C<h;C++){let E=(C*y+T)*f;_(g,E,S[C])}}}else{let y=this._data,S=new DataView(y.buffer,y.byteOffset,y.byteLength),T=this.format,C=BA(T),v=Wn(T),E=Jc(T);for(let D=0;D<h;D++)if(d){let A=D*f,P;E?P=(i*c+(D+l))*v:P=((D+l)*u+i)*v;let k=C(S,P);_(g,A,k)}else for(let A=0;A<u;A++){let k=(D*u+A)*f,G;E?G=(A*c+(D+l))*v:G=((D+l)*u+A)*v;let j=C(S,G);_(g,k,j)}}}clone(){if(this._closed)throw new Error("AudioSample is closed.");if($n(this._data)){let e=new r(this._data.clone());return e.setTimestamp(this.timestamp),e}else return new r({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.timestamp,data:this._data})}close(){this._closed||($n(this._data)?this._data.close():this._data=new Uint8Array(0),this._closed=!0)}toAudioData(){if(this._closed)throw new Error("AudioSample is closed.");if($n(this._data)){if(this._data.timestamp===this.microsecondTimestamp)return this._data.clone();if(Jc(this.format)){let e=this.allocationSize({planeIndex:0,format:this.format}),t=new ArrayBuffer(e*this.numberOfChannels);for(let i=0;i<this.numberOfChannels;i++)this.copyTo(new Uint8Array(t,i*e,e),{planeIndex:i,format:this.format});return new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:t})}else{let e=new ArrayBuffer(this.allocationSize({planeIndex:0,format:this.format}));return this.copyTo(e,{planeIndex:0,format:this.format}),new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:e})}}else return new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:this._data})}toAudioBuffer(){if(this._closed)throw new Error("AudioSample is closed.");let e=new AudioBuffer({numberOfChannels:this.numberOfChannels,length:this.numberOfFrames,sampleRate:this.sampleRate}),t=new Float32Array(this.allocationSize({planeIndex:0,format:"f32-planar"})/4);for(let i=0;i<this.numberOfChannels;i++)this.copyTo(t,{planeIndex:i,format:"f32-planar"}),e.copyToChannel(t,i);return e}setTimestamp(e){if(!Number.isFinite(e))throw new TypeError("newTimestamp must be a number.");this.timestamp=e}},Wn=r=>{switch(r){case"u8":case"u8-planar":return 1;case"s16":case"s16-planar":return 2;case"s32":case"s32-planar":return 4;case"f32":case"f32-planar":return 4;default:throw new Error("Unknown AudioSampleFormat")}},Jc=r=>{switch(r){case"u8-planar":case"s16-planar":case"s32-planar":case"f32-planar":return!0;default:return!1}},BA=r=>{switch(r){case"u8":case"u8-planar":return(e,t)=>(e.getUint8(t)-128)/128;case"s16":case"s16-planar":return(e,t)=>e.getInt16(t,!0)/32768;case"s32":case"s32-planar":return(e,t)=>e.getInt32(t,!0)/2147483648;case"f32":case"f32-planar":return(e,t)=>e.getFloat32(t,!0)}},RA=r=>{switch(r){case"u8":case"u8-planar":return(e,t,i)=>e.setUint8(t,$e((i+1)*127.5,0,255));case"s16":case"s16-planar":return(e,t,i)=>e.setInt16(t,$e(Math.round(i*32767),-32768,32767),!0);case"s32":case"s32-planar":return(e,t,i)=>e.setInt32(t,$e(Math.round(i*2147483647),-2147483648,2147483647),!0);case"f32":case"f32-planar":return(e,t,i)=>e.setFloat32(t,i,!0)}},$n=r=>typeof AudioData<"u"&&r instanceof AudioData;var gs=r=>{if(!r||typeof r!="object")throw new TypeError("options must be an object.");if(r.metadataOnly!==void 0&&typeof r.metadataOnly!="boolean")throw new TypeError("options.metadataOnly, when defined, must be a boolean.")},Pi=r=>{if(typeof r!="number"||Number.isNaN(r))throw new TypeError("timestamp must be a number.")},Bi=class{constructor(e){if(!(e instanceof xs))throw new TypeError("track must be an InputTrack.");this._track=e}getFirstPacket(e={}){return gs(e),this._track._backing.getFirstPacket(e)}getPacket(e,t={}){return Pi(e),gs(t),this._track._backing.getPacket(e,t)}getNextPacket(e,t={}){if(!(e instanceof ge))throw new TypeError("packet must be an EncodedPacket.");return gs(t),this._track._backing.getNextPacket(e,t)}getKeyPacket(e,t={}){return Pi(e),gs(t),this._track._backing.getKeyPacket(e,t)}getNextKeyPacket(e,t={}){if(!(e instanceof ge))throw new TypeError("packet must be an EncodedPacket.");return gs(t),this._track._backing.getNextKeyPacket(e,t)}packets(e,t,i={}){if(e!==void 0&&!(e instanceof ge))throw new TypeError("startPacket must be an EncodedPacket.");if(e!==void 0&&e.isMetadataOnly&&!i?.metadataOnly)throw new TypeError("startPacket can only be metadata-only if options.metadataOnly is enabled.");if(t!==void 0&&!(t instanceof ge))throw new TypeError("endPacket must be an EncodedPacket.");gs(i);let s=[],{promise:n,resolve:o}=Ke(),{promise:a,resolve:c}=Ke(),u=!1,l=!1,h=null,f=[],d=()=>Math.max(2,f.length);return(async()=>{let m=e??await this.getFirstPacket(i);for(;m&&!l&&!(t&&m.sequenceNumber>=t?.sequenceNumber);){if(s.length>d()){({promise:a,resolve:c}=Ke()),await a;continue}s.push(m),o(),{promise:n,resolve:o}=Ke(),m=await this.getNextPacket(m,i)}u=!0,o()})().catch(m=>{h||(h=m,o())}),{async next(){for(;;){if(l)return{value:void 0,done:!0};if(h)throw h;if(s.length>0){let m=s.shift(),x=performance.now();for(f.push(x);f.length>0&&x-f[0]>=1e3;)f.shift();return c(),{value:m,done:!1}}else{if(u)return{value:void 0,done:!0};await n}}},async return(){return l=!0,c(),o(),{value:void 0,done:!0}},async throw(m){throw m},[Symbol.asyncIterator](){return this}}}},qn=class{constructor(e,t){this.onSample=e,this.onError=t}},jn=class{mediaSamplesInRange(e=0,t=1/0){Pi(e),Pi(t);let i=[],s=!1,n=null,{promise:o,resolve:a}=Ke(),{promise:c,resolve:u}=Ke(),l=!1,h=!1,f=!1,d=null;return(async()=>{let m=new Error,x=await this._createDecoder(C=>{if(u(),C.timestamp>=t&&(h=!0),h){C.close();return}n&&(C.timestamp>e?(i.push(n),s=!0):n.close()),C.timestamp>=e&&(i.push(C),s=!0),n=s?null:C,i.length>0&&(a(),{promise:o,resolve:a}=Ke())},C=>{d||(C.stack=m.stack,d=C,a())}),g=this._createPacketSink(),_=await g.getKeyPacket(e)??await g.getFirstPacket();if(!_)return;let y=_,S;if(t<1/0){let C=await g.getPacket(t),v=C?C.type==="key"&&C.timestamp===t?C:await g.getNextKeyPacket(C):null;v&&(S=v)}let T=g.packets(_,S);for(await T.next();y&&!h;){let C=e0(i.length);if(i.length+x.getDecodeQueueSize()>C){({promise:c,resolve:u}=Ke()),await c;continue}x.decode(y);let v=await T.next();if(v.done)break;y=v.value}await T.return(),f||await x.flush(),x.close(),!s&&n&&i.push(n),l=!0,a()})().catch(m=>{d||(d=m,a())}),{async next(){for(;;){if(f)return{value:void 0,done:!0};if(d)throw d;if(i.length>0){let m=i.shift();return u(),{value:m,done:!1}}else if(!l)await o;else return{value:void 0,done:!0}}},async return(){f=!0,h=!0,u(),a(),n?.close();for(let m of i)m.close();return{value:void 0,done:!0}},async throw(m){throw m},[Symbol.asyncIterator](){return this}}}mediaSamplesAtTimestamps(e){qg(e);let t=$g(e),i=[],s=[],{promise:n,resolve:o}=Ke(),{promise:a,resolve:c}=Ke(),u=!1,l=!1,h=null,f=d=>{s.push(d),o(),{promise:n,resolve:o}=Ke()};return(async()=>{let d=new Error,m=await this._createDecoder(C=>{if(c(),l){C.close();return}let v=0;for(;i.length>0&&C.timestamp-i[0]>-1e-10;)v++,i.shift();if(v>0)for(let E=0;E<v;E++)f(E<v-1?C.clone():C);else C.close()},C=>{h||(C.stack=d.stack,h=C,o())}),x=this._createPacketSink(),g=null,_=null,y=-1,S=async()=>{w(_);let C=_;for(m.decode(C);C.sequenceNumber<y;){let v=e0(s.length);for(;s.length+m.getDecodeQueueSize()>v&&!l;)({promise:a,resolve:c}=Ke()),await a;if(l)break;let E=await x.getNextPacket(C);w(E),C=E,m.decode(E)}y=-1},T=async()=>{await m.flush();for(let C=0;C<i.length;C++)f(null);i.length=0};for await(let C of t){if(Pi(C),l)break;let v=await x.getPacket(C),E=v&&await x.getKeyPacket(C);if(!E){y!==-1&&(await S(),await T()),f(null),g=null;continue}g&&(E.sequenceNumber!==_.sequenceNumber||v.timestamp<g.timestamp)&&(await S(),await T()),i.push(v.timestamp),y=Math.max(v.sequenceNumber,y),g=v,_=E}l||(y!==-1&&await S(),await T()),m.close(),u=!0,o()})().catch(d=>{h||(h=d,o())}),{async next(){for(;;){if(l)return{value:void 0,done:!0};if(h)throw h;if(s.length>0){let d=s.shift();return w(d!==void 0),c(),{value:d,done:!1}}else if(!u)await n;else return{value:void 0,done:!0}}},async return(){l=!0,c(),o();for(let d of s)d?.close();return{value:void 0,done:!0}},async throw(d){throw d},[Symbol.asyncIterator](){return this}}}},e0=r=>r===0?40:8,nd=class extends qn{constructor(e,t,i,s,n,o){super(e,t),this.rotation=n,this.timeResolution=o,this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new Nr,this.customDecoderQueueSize=0,this.sampleQueue=[];let a=u=>{if(this.sampleQueue.length>0&&u.timestamp>=he(this.sampleQueue).timestamp){for(let h of this.sampleQueue)this.finalizeAndEmitSample(h);this.sampleQueue.length=0}let l=Z(this.sampleQueue,u.timestamp,h=>h.timestamp);this.sampleQueue.splice(l+1,0,u)},c=Uc.find(u=>u.supports(i,s));c?(this.customDecoder=new c,this.customDecoder.codec=i,this.customDecoder.config=s,this.customDecoder.onSample=u=>{if(!(u instanceof $t))throw new TypeError("The argument passed to onSample must be a VideoSample.");a(u)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init())):(this.decoder=new VideoDecoder({output:u=>a(new $t(u)),error:t}),this.decoder.configure(s))}finalizeAndEmitSample(e){e.setTimestamp(Math.round(e.timestamp*this.timeResolution)/this.timeResolution),e.setDuration(Math.round(e.duration*this.timeResolution)/this.timeResolution),e.setRotation(this.rotation),this.onSample(e)}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(w(this.decoder),this.decoder.decodeQueueSize)}decode(e){this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):(w(this.decoder),this.decoder.decode(e.toEncodedVideoChunk()))}async flush(){this.customDecoder?await this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(w(this.decoder),await this.decoder.flush());for(let e of this.sampleQueue)this.finalizeAndEmitSample(e);this.sampleQueue.length=0}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(w(this.decoder),this.decoder.close());for(let e of this.sampleQueue)e.close();this.sampleQueue.length=0}},Xn=class extends jn{constructor(e){if(!(e instanceof gr))throw new TypeError("videoTrack must be an InputVideoTrack.");super(),this._videoTrack=e}async _createDecoder(e,t){if(!await this._videoTrack.canDecode())throw new Error("This video track cannot be decoded by this browser. Make sure to check decodability before using a track.");let i=this._videoTrack.codec,s=this._videoTrack.rotation,n=await this._videoTrack.getDecoderConfig(),o=this._videoTrack.timeResolution;return w(i&&n),new nd(e,t,i,n,s,o)}_createPacketSink(){return new Bi(this._videoTrack)}async getSample(e){Pi(e);for await(let t of this.mediaSamplesAtTimestamps([e]))return t;throw new Error("Internal error: Iterator returned nothing.")}samples(e=0,t=1/0){return this.mediaSamplesInRange(e,t)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}};var od=class extends qn{constructor(e,t,i,s){super(e,t),this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new Nr,this.customDecoderQueueSize=0;let n=a=>{let c=s.sampleRate;a.setTimestamp(Math.round(a.timestamp*c)/c),e(a)},o=Oc.find(a=>a.supports(i,s));o?(this.customDecoder=new o,this.customDecoder.codec=i,this.customDecoder.config=s,this.customDecoder.onSample=a=>{if(!(a instanceof Mt))throw new TypeError("The argument passed to onSample must be an AudioSample.");n(a)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init())):(this.decoder=new AudioDecoder({output:a=>n(new Mt(a)),error:t}),this.decoder.configure(s))}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(w(this.decoder),this.decoder.decodeQueueSize)}decode(e){this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):(w(this.decoder),this.decoder.decode(e.toEncodedAudioChunk()))}flush(){return this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(w(this.decoder),this.decoder.flush())}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(w(this.decoder),this.decoder.close())}},ad=class extends qn{constructor(e,t,i){super(e,t),this.decoderConfig=i,this.currentTimestamp=null,w(Re.includes(i.codec)),this.codec=i.codec;let{dataType:s,sampleSize:n,littleEndian:o}=gt(this.codec);switch(this.inputSampleSize=n,n){case 1:s==="unsigned"?this.readInputValue=(a,c)=>a.getUint8(c)-2**7:s==="signed"?this.readInputValue=(a,c)=>a.getInt8(c):s==="ulaw"?this.readInputValue=(a,c)=>Qx(a.getUint8(c)):s==="alaw"?this.readInputValue=(a,c)=>Jx(a.getUint8(c)):w(!1);break;case 2:s==="unsigned"?this.readInputValue=(a,c)=>a.getUint16(c,o)-2**15:s==="signed"?this.readInputValue=(a,c)=>a.getInt16(c,o):w(!1);break;case 3:s==="unsigned"?this.readInputValue=(a,c)=>Nh(a,c,o)-2**23:s==="signed"?this.readInputValue=(a,c)=>jg(a,c,o):w(!1);break;case 4:s==="unsigned"?this.readInputValue=(a,c)=>a.getUint32(c,o)-2**31:s==="signed"?this.readInputValue=(a,c)=>a.getInt32(c,o):s==="float"?this.readInputValue=(a,c)=>a.getFloat32(c,o):w(!1);break;case 8:s==="float"?this.readInputValue=(a,c)=>a.getFloat64(c,o):w(!1);break;default:Gn(n),w(!1)}switch(n){case 1:s==="ulaw"||s==="alaw"?(this.outputSampleSize=2,this.outputFormat="s16",this.writeOutputValue=(a,c,u)=>a.setInt16(c,u,!0)):(this.outputSampleSize=1,this.outputFormat="u8",this.writeOutputValue=(a,c,u)=>a.setUint8(c,u+2**7));break;case 2:this.outputSampleSize=2,this.outputFormat="s16",this.writeOutputValue=(a,c,u)=>a.setInt16(c,u,!0);break;case 3:this.outputSampleSize=4,this.outputFormat="s32",this.writeOutputValue=(a,c,u)=>a.setInt32(c,u<<8,!0);break;case 4:this.outputSampleSize=4,s==="float"?(this.outputFormat="f32",this.writeOutputValue=(a,c,u)=>a.setFloat32(c,u,!0)):(this.outputFormat="s32",this.writeOutputValue=(a,c,u)=>a.setInt32(c,u,!0));break;case 8:this.outputSampleSize=4,this.outputFormat="f32",this.writeOutputValue=(a,c,u)=>a.setFloat32(c,u,!0);break;default:Gn(n),w(!1)}}getDecodeQueueSize(){return 0}decode(e){let t=St(e.data),i=e.byteLength/this.decoderConfig.numberOfChannels/this.inputSampleSize,s=i*this.decoderConfig.numberOfChannels*this.outputSampleSize,n=new ArrayBuffer(s),o=new DataView(n);for(let l=0;l<i*this.decoderConfig.numberOfChannels;l++){let h=l*this.inputSampleSize,f=l*this.outputSampleSize,d=this.readInputValue(t,h);this.writeOutputValue(o,f,d)}let a=i/this.decoderConfig.sampleRate;(this.currentTimestamp===null||Math.abs(e.timestamp-this.currentTimestamp)>=a)&&(this.currentTimestamp=e.timestamp);let c=this.currentTimestamp;this.currentTimestamp+=a;let u=new Mt({format:this.outputFormat,data:n,numberOfChannels:this.decoderConfig.numberOfChannels,sampleRate:this.decoderConfig.sampleRate,numberOfFrames:i,timestamp:c});this.onSample(u)}async flush(){}close(){}},Yn=class extends jn{constructor(e){if(!(e instanceof Ze))throw new TypeError("audioTrack must be an InputAudioTrack.");super(),this._audioTrack=e}async _createDecoder(e,t){if(!await this._audioTrack.canDecode())throw new Error("This audio track cannot be decoded by this browser. Make sure to check decodability before using a track.");let i=this._audioTrack.codec,s=await this._audioTrack.getDecoderConfig();return w(i&&s),Re.includes(s.codec)?new ad(e,t,s):new od(e,t,i,s)}_createPacketSink(){return new Bi(this._audioTrack)}async getSample(e){Pi(e);for await(let t of this.mediaSamplesAtTimestamps([e]))return t;throw new Error("Internal error: Iterator returned nothing.")}samples(e=0,t=1/0){return this.mediaSamplesInRange(e,t)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}};var xs=class{constructor(e){this._backing=e}isVideoTrack(){return this instanceof gr}isAudioTrack(){return this instanceof Ze}get id(){return this._backing.getId()}get languageCode(){return this._backing.getLanguageCode()}get timeResolution(){return this._backing.getTimeResolution()}getFirstTimestamp(){return this._backing.getFirstTimestamp()}computeDuration(){return this._backing.computeDuration()}async computePacketStats(e=1/0){let t=new Bi(this),i=1/0,s=-1/0,n=0,o=0;for await(let a of t.packets(void 0,void 0,{metadataOnly:!0})){if(n>=e&&a.timestamp>=s)break;i=Math.min(i,a.timestamp),s=Math.max(s,a.timestamp+a.duration),n++,o+=a.byteLength}return{packetCount:n,averagePacketRate:n?Number((n/(s-i)).toPrecision(16)):0,averageBitrate:n?Number((8*o/(s-i)).toPrecision(16)):0}}},gr=class extends xs{constructor(e){super(e),this._backing=e}get type(){return"video"}get codec(){return this._backing.getCodec()}get codedWidth(){return this._backing.getCodedWidth()}get codedHeight(){return this._backing.getCodedHeight()}get rotation(){return this._backing.getRotation()}get displayWidth(){return this._backing.getRotation()%180===0?this._backing.getCodedWidth():this._backing.getCodedHeight()}get displayHeight(){return this._backing.getRotation()%180===0?this._backing.getCodedHeight():this._backing.getCodedWidth()}getColorSpace(){return this._backing.getColorSpace()}async hasHighDynamicRange(){let e=await this._backing.getColorSpace();return e.primaries==="bt2020"||e.primaries==="smpte432"||e.transfer==="pg"||e.transfer==="hlg"||e.matrix==="bt2020-ncl"}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){return(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let t=this._backing.getCodec();return w(t!==null),Uc.some(s=>s.supports(t,e))?!0:typeof VideoDecoder>"u"?!1:(await VideoDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}},Ze=class extends xs{constructor(e){super(e),this._backing=e}get type(){return"audio"}get codec(){return this._backing.getCodec()}get numberOfChannels(){return this._backing.getNumberOfChannels()}get sampleRate(){return this._backing.getSampleRate()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){return(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let t=this._backing.getCodec();return w(t!==null),Oc.some(i=>i.supports(t,e))||e.codec.startsWith("pcm-")?!0:typeof AudioDecoder>"u"?!1:(await AudioDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}};var Et=class{constructor(e,t=1/0){this.source=e,this.maxStorableBytes=t,this.loadedSegments=[],this.loadingSegments=[],this.sourceSizePromise=null,this.nextAge=0,this.totalStoredBytes=0}async loadRange(e,t){if(t=Math.min(t,await this.source.getSize()),e>=t)return;let i=this.loadingSegments.find(c=>c.start<=e&&c.end>=t);if(i){await i.promise;return}let s=Z(this.loadedSegments,e,c=>c.start);if(s!==-1)for(let c=s;c<this.loadedSegments.length;c++){let u=this.loadedSegments[c];if(u.start>e)break;if(u.end>=t)return}this.source.onread?.(e,t);let n=this.source._read(e,t),o={start:e,end:t,promise:n};this.loadingSegments.push(o);let a=await n;Wg(this.loadingSegments,o),this.insertIntoLoadedSegments(e,a)}rangeIsLoaded(e,t){if(t<=e)return!0;let i=Z(this.loadedSegments,e,s=>s.start);if(i===-1)return!1;for(let s=i;s<this.loadedSegments.length;s++){let n=this.loadedSegments[s];if(n.start>e)break;if(n.end>=t)return!0}return!1}insertIntoLoadedSegments(e,t){let i={start:e,end:e+t.byteLength,bytes:t,view:new DataView(t.buffer),age:this.nextAge++},s=Z(this.loadedSegments,e,n=>n.start);(s===-1||this.loadedSegments[s].start<i.start)&&s++,this.loadedSegments.splice(s,0,i),this.totalStoredBytes+=t.byteLength;for(let n=s+1;n<this.loadedSegments.length;n++){let o=this.loadedSegments[n];if(o.start>=i.end)break;i.start<=o.start&&o.end<=i.end&&(this.loadedSegments.splice(n,1),n--)}for(;this.totalStoredBytes>this.maxStorableBytes&&this.loadedSegments.length>1;){let n=null,o=-1;for(let a=0;a<this.loadedSegments.length;a++){let c=this.loadedSegments[a];(!n||c.age<n.age)&&(n=c,o=a)}w(n),this.totalStoredBytes-=n.bytes.byteLength,this.loadedSegments.splice(o,1)}}getViewAndOffset(e,t){let i=Z(this.loadedSegments,e,n=>n.start),s=null;if(i!==-1)for(let n=i;n<this.loadedSegments.length;n++){let o=this.loadedSegments[n];if(o.start>e)break;if(t<=o.end){s=o;break}}if(!s)throw new Error(`No segment loaded for range [${e}, ${t}).`);return s.age=this.nextAge++,{view:s.view,offset:s.bytes.byteOffset+e-s.start}}forgetRange(e,t){if(t<=e)return;let i=Z(this.loadedSegments,e,n=>n.start);if(i===-1)return;let s=this.loadedSegments[i];s.start!==e||s.end!==t||(this.loadedSegments.splice(i,1),this.totalStoredBytes-=s.bytes.byteLength)}};var Ri=class{constructor(e){this.reader=e,this.pos=0,this.littleEndian=!0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,this.littleEndian)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,this.littleEndian)}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}};var xr;(function(r){r[r.PCM=1]="PCM",r[r.IEEE_FLOAT=3]="IEEE_FLOAT",r[r.ALAW=6]="ALAW",r[r.MULAW=7]="MULAW",r[r.EXTENSIBLE=65534]="EXTENSIBLE"})(xr||(xr={}));var eu=class extends Ct{constructor(e){super(e),this.metadataPromise=null,this.dataStart=-1,this.dataSize=-1,this.audioInfo=null,this.tracks=[],this.metadataReader=new Ri(e._mainReader),this.chunkReader=new Ri(new Et(e.source,64*2**20))}async readMetadata(){return this.metadataPromise??=(async()=>{let e=await this.metadataReader.reader.source.getSize(),t=this.metadataReader.readAscii(4);this.metadataReader.littleEndian=t==="RIFF";let i=Math.min(this.metadataReader.readU32()+8,e);if(this.metadataReader.readAscii(4)!=="WAVE")throw new Error("Invalid WAVE file - wrong format");for(this.metadataReader.pos=12;this.metadataReader.pos<i;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+8);let o=this.metadataReader.readAscii(4),a=this.metadataReader.readU32(),c=this.metadataReader.pos;o==="fmt "?await this.parseFmtChunk(a):o==="data"&&(this.dataStart=this.metadataReader.pos,this.dataSize=Math.min(a,i-this.dataStart)),this.metadataReader.pos=c+a+(a&1)}if(!this.audioInfo)throw new Error('Invalid WAVE file - missing "fmt " chunk');if(this.dataStart===-1)throw new Error('Invalid WAVE file - missing "data" chunk');let n=this.audioInfo.blockSizeInBytes;this.dataSize=Math.floor(this.dataSize/n)*n,this.tracks.push(new Ze(new cd(this)))})()}async parseFmtChunk(e){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+e);let t=this.metadataReader.readU16(),i=this.metadataReader.readU16(),s=this.metadataReader.readU32();this.metadataReader.pos+=4;let n=this.metadataReader.readU16(),o;if(e===14?o=8:o=this.metadataReader.readU16(),e>=18&&t!==357){let a=this.metadataReader.readU16(),c=e-18;if(Math.min(c,a)>=22&&t===xr.EXTENSIBLE){this.metadataReader.pos+=6;let l=this.metadataReader.readBytes(16);t=l[0]|l[1]<<8}}(t===xr.MULAW||t===xr.ALAW)&&(o=8),this.audioInfo={format:t,numberOfChannels:i,sampleRate:s,sampleSizeInBytes:Math.ceil(o/8),blockSizeInBytes:n}}getCodec(){if(w(this.audioInfo),this.audioInfo.format===xr.MULAW)return"ulaw";if(this.audioInfo.format===xr.ALAW)return"alaw";if(this.audioInfo.format===xr.PCM){if(this.audioInfo.sampleSizeInBytes===1)return"pcm-u8";if(this.audioInfo.sampleSizeInBytes===2)return"pcm-s16";if(this.audioInfo.sampleSizeInBytes===3)return"pcm-s24";if(this.audioInfo.sampleSizeInBytes===4)return"pcm-s32"}return this.audioInfo.format===xr.IEEE_FLOAT&&this.audioInfo.sampleSizeInBytes===4?"pcm-f32":null}async getMimeType(){return"audio/wav"}async computeDuration(){return await this.readMetadata(),w(this.audioInfo),this.dataSize/this.audioInfo.blockSizeInBytes/this.audioInfo.sampleRate}async getTracks(){return await this.readMetadata(),this.tracks}},_s=2048,cd=class{constructor(e){this.demuxer=e}getId(){return 1}getCodec(){return this.demuxer.getCodec()}async getDecoderConfig(){let e=this.demuxer.getCodec();return e?(w(this.demuxer.audioInfo),{codec:e,numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate}):null}computeDuration(){return this.demuxer.computeDuration()}getNumberOfChannels(){return w(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return w(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getTimeResolution(){return w(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getLanguageCode(){return nt}async getFirstTimestamp(){return 0}async getPacketAtIndex(e,t){w(this.demuxer.audioInfo);let i=e*_s*this.demuxer.audioInfo.blockSizeInBytes;if(i>=this.demuxer.dataSize)return null;let s=Math.min(_s*this.demuxer.audioInfo.blockSizeInBytes,this.demuxer.dataSize-i),n;if(t.metadataOnly)n=ot;else{let c=_s*this.demuxer.audioInfo.blockSizeInBytes,u=Math.ceil(2**19/c)*c,l=Math.floor(i/u)*u,h=l+u;await this.demuxer.chunkReader.reader.loadRange(this.demuxer.dataStart+l,this.demuxer.dataStart+h),this.demuxer.chunkReader.pos=this.demuxer.dataStart+i,n=this.demuxer.chunkReader.readBytes(s)}let o=e*_s/this.demuxer.audioInfo.sampleRate,a=s/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate;return new ge(n,"key",o,a,e,s)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}getPacket(e,t){w(this.demuxer.audioInfo);let i=Math.floor(e*this.demuxer.audioInfo.sampleRate/_s);return this.getPacketAtIndex(i,t)}getNextPacket(e,t){w(this.demuxer.audioInfo);let i=Math.round(e.timestamp*this.demuxer.audioInfo.sampleRate/_s);return this.getPacketAtIndex(i+1,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var bs=class{getSupportedVideoCodecs(){return this.getSupportedCodecs().filter(e=>mr.includes(e))}getSupportedAudioCodecs(){return this.getSupportedCodecs().filter(e=>Lr.includes(e))}getSupportedSubtitleCodecs(){return this.getSupportedCodecs().filter(e=>ls.includes(e))}_codecUnsupportedHint(e){return""}},Kn=class extends bs{constructor(e={}){if(!e||typeof e!="object")throw new TypeError("options must be an object.");if(e.fastStart!==void 0&&![!1,"in-memory","fragmented"].includes(e.fastStart))throw new TypeError('options.fastStart, when provided, must be false, "in-memory", or "fragmented".');if(e.minimumFragmentDuration!==void 0&&(!Number.isFinite(e.minimumFragmentDuration)||e.minimumFragmentDuration<0))throw new TypeError("options.minimumFragmentDuration, when provided, must be a non-negative number.");if(e.onFtyp!==void 0&&typeof e.onFtyp!="function")throw new TypeError("options.onFtyp, when provided, must be a function.");if(e.onMoov!==void 0&&typeof e.onMoov!="function")throw new TypeError("options.onMoov, when provided, must be a function.");if(e.onMdat!==void 0&&typeof e.onMdat!="function")throw new TypeError("options.onMdat, when provided, must be a function.");if(e.onMoof!==void 0&&typeof e.onMoof!="function")throw new TypeError("options.onMoof, when provided, must be a function.");super(),this._options=e}getSupportedTrackCounts(){return{video:{min:0,max:1/0},audio:{min:0,max:1/0},subtitle:{min:0,max:1/0},total:{min:1,max:2**32-1}}}get supportsVideoRotationMetadata(){return!0}_createMuxer(e){return new Qc(e,this)}},ys=class extends Kn{get _name(){return"MP4"}get fileExtension(){return".mp4"}get mimeType(){return"video/mp4"}getSupportedCodecs(){return[...mr,...Vh,"pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be",...ls]}_codecUnsupportedHint(e){return new fs().getSupportedCodecs().includes(e)?" Switching to MOV will grant support for this codec.":""}},fs=class extends Kn{get _name(){return"MOV"}get fileExtension(){return".mov"}get mimeType(){return"video/quicktime"}getSupportedCodecs(){return[...mr,...Lr]}_codecUnsupportedHint(e){return new ys().getSupportedCodecs().includes(e)?" Switching to MP4 will grant support for this codec.":""}};var Ts=class{constructor(){this._connectedTrack=null,this._closingPromise=null,this._closed=!1,this._timestampOffset=0}_ensureValidAdd(){if(!this._connectedTrack)throw new Error("Source is not connected to an output track.");if(this._connectedTrack.output.state==="canceled")throw new Error("Output has been canceled.");if(this._connectedTrack.output.state==="finalizing"||this._connectedTrack.output.state==="finalized")throw new Error("Output has been finalized.");if(this._connectedTrack.output.state==="pending")throw new Error("Output has not started.");if(this._closed)throw new Error("Source is closed.")}_start(){}async _flushAndClose(){}close(){if(this._closingPromise)return;let e=this._connectedTrack;if(!e)throw new Error("Cannot call close without connecting the source to an output track.");if(e.output.state==="pending")throw new Error("Cannot call close before output has been started.");this._closingPromise=(async()=>{await this._flushAndClose(),this._closed=!0,!(e.output.state==="finalizing"||e.output.state==="finalized")&&e.output._muxer.onTrackClose(e)})()}async _flushOrWaitForClose(){return this._closingPromise?this._closingPromise:this._flushAndClose()}},ws=class extends Ts{constructor(e){if(super(),this._connectedTrack=null,!mr.includes(e))throw new TypeError(`Invalid video codec '${e}'. Must be one of: ${mr.join(", ")}.`);this._codec=e}};var DA=r=>{if(!r||typeof r!="object")throw new TypeError("Encoding config must be an object.");if(!mr.includes(r.codec))throw new TypeError(`Invalid video codec '${r.codec}'. Must be one of: ${mr.join(", ")}.`);if(!(r.bitrate instanceof vt)&&(!Number.isInteger(r.bitrate)||r.bitrate<=0))throw new TypeError("config.bitrate must be a positive integer or a quality.");if(r.latencyMode!==void 0&&!["quality","realtime"].includes(r.latencyMode))throw new TypeError("config.latencyMode, when provided, must be 'quality' or 'realtime'.");if(r.keyFrameInterval!==void 0&&(!Number.isFinite(r.keyFrameInterval)||r.keyFrameInterval<0))throw new TypeError("config.keyFrameInterval, when provided, must be a non-negative number.");if(r.fullCodecString!==void 0&&typeof r.fullCodecString!="string")throw new TypeError("config.fullCodecString, when provided, must be a string.");if(r.fullCodecString!==void 0&&Wh(r.fullCodecString)!==r.codec)throw new TypeError(`config.fullCodecString, when provided, must be a string that matches the specified codec (${r.codec}).`);if(r.onEncodedPacket!==void 0&&typeof r.onEncodedPacket!="function")throw new TypeError("config.onEncodedChunk, when provided, must be a function.");if(r.onEncoderConfig!==void 0&&typeof r.onEncoderConfig!="function")throw new TypeError("config.onEncoderConfig, when provided, must be a function.")},ud=class{constructor(e,t){this.source=e,this.encodingConfig=t,this.ensureEncoderPromise=null,this.encoderInitialized=!1,this.encoder=null,this.muxer=null,this.lastMultipleOfKeyFrameInterval=-1,this.lastWidth=null,this.lastHeight=null,this.customEncoder=null,this.customEncoderCallSerializer=new Nr,this.customEncoderQueueSize=0,this.encoderError=null}async add(e,t,i){if(this.checkForEncoderError(),this.source._ensureValidAdd(),this.lastWidth!==null&&this.lastHeight!==null){if(e.codedWidth!==this.lastWidth||e.codedHeight!==this.lastHeight)throw new Error(`Video sample size must remain constant. Expected ${this.lastWidth}x${this.lastHeight}, got ${e.codedWidth}x${e.codedHeight}.`)}else this.lastWidth=e.codedWidth,this.lastHeight=e.codedHeight;this.encoderInitialized||(this.ensureEncoderPromise||this.ensureEncoder(e),this.encoderInitialized||await this.ensureEncoderPromise),w(this.encoderInitialized);let s=this.encodingConfig.keyFrameInterval??5,n=Math.floor(e.timestamp/s),o={...i,keyFrame:i?.keyFrame||s===0||n!==this.lastMultipleOfKeyFrameInterval};if(this.lastMultipleOfKeyFrameInterval=n,this.customEncoder){this.customEncoderQueueSize++;let a=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(e,o)).then(()=>{this.customEncoderQueueSize--,t&&e.close()}).catch(c=>{this.encoderError??=c});this.customEncoderQueueSize>=4&&await a}else{w(this.encoder);let a=e.toVideoFrame();this.encoder.encode(a,o),a.close(),t&&e.close(),this.encoder.encodeQueueSize>=4&&await new Promise(c=>this.encoder.addEventListener("dequeue",c,{once:!0}))}await this.muxer.mutex.currentPromise}async ensureEncoder(e){if(!this.encoder)return this.ensureEncoderPromise=(async()=>{let t=e.codedWidth,i=e.codedHeight,s=this.encodingConfig.bitrate instanceof vt?this.encodingConfig.bitrate._toVideoBitrate(this.encodingConfig.codec,t,i):this.encodingConfig.bitrate,n={codec:this.encodingConfig.fullCodecString??nx(this.encodingConfig.codec,t,i,s),width:t,height:i,bitrate:s,framerate:this.source._connectedTrack?.metadata.frameRate,latencyMode:this.encodingConfig.latencyMode,...lx(this.encodingConfig.codec)};this.encodingConfig.onEncoderConfig?.(n);let o=Zg.find(a=>a.supports(this.encodingConfig.codec,n));if(o)this.customEncoder=new o,this.customEncoder.codec=this.encodingConfig.codec,this.customEncoder.config=n,this.customEncoder.onPacket=(a,c)=>{if(!(a instanceof ge))throw new TypeError("The first argument passed to onPacket must be an EncodedPacket.");if(c!==void 0&&(!c||typeof c!="object"))throw new TypeError("The second argument passed to onPacket must be an object or undefined.");this.encodingConfig.onEncodedPacket?.(a,c),this.muxer.addEncodedVideoPacket(this.source._connectedTrack,a,c)},await this.customEncoder.init();else{if(typeof VideoEncoder>"u")throw new Error("VideoEncoder is not supported by this browser.");if(!(await VideoEncoder.isConfigSupported(n)).supported)throw new Error(`This specific encoder configuration (${n.codec}, ${n.bitrate} bps, ${n.width}x${n.height}) is not supported by this browser. Consider using another codec or changing your video parameters.`);this.encoder=new VideoEncoder({output:(c,u)=>{let l=ge.fromEncodedChunk(c);this.encodingConfig.onEncodedPacket?.(l,u),this.muxer.addEncodedVideoPacket(this.source._connectedTrack,l,u)},error:c=>{this.encoderError??=c}}),this.encoder.configure(n)}w(this.source._connectedTrack),this.muxer=this.source._connectedTrack.output._muxer,this.encoderInitialized=!0})()}async flushAndClose(){this.checkForEncoderError(),this.customEncoder?(this.customEncoderCallSerializer.call(()=>this.customEncoder.flush()),await this.customEncoderCallSerializer.call(()=>this.customEncoder.close())):this.encoder&&(await this.encoder.flush(),this.encoder.close()),this.checkForEncoderError()}getQueueSize(){return this.customEncoder?this.customEncoderQueueSize:this.encoder?.encodeQueueSize??0}checkForEncoderError(){if(this.encoderError)throw this.encoderError.stack=new Error().stack,this.encoderError}},Qn=class extends ws{constructor(e){DA(e),super(e.codec),this._encoder=new ud(this,e)}add(e,t){if(!(e instanceof $t))throw new TypeError("videoSample must be a VideoSample.");return this._encoder.add(e,!1,t)}_flushAndClose(){return this._encoder.flushAndClose()}};var Ss=class extends Ts{constructor(e){if(super(),this._connectedTrack=null,!Lr.includes(e))throw new TypeError(`Invalid audio codec '${e}'. Must be one of: ${Lr.join(", ")}.`);this._codec=e}};var MA=r=>{if(!r||typeof r!="object")throw new TypeError("Encoding config must be an object.");if(!Lr.includes(r.codec))throw new TypeError(`Invalid audio codec '${r.codec}'. Must be one of: ${Lr.join(", ")}.`);if(r.bitrate===void 0&&(!Re.includes(r.codec)||r.codec==="flac"))throw new TypeError("config.bitrate must be provided for compressed audio codecs.");if(r.bitrate!==void 0&&!(r.bitrate instanceof vt)&&(!Number.isInteger(r.bitrate)||r.bitrate<=0))throw new TypeError("config.bitrate, when provided, must be a positive integer or a quality.");if(r.fullCodecString!==void 0&&typeof r.fullCodecString!="string")throw new TypeError("config.fullCodecString, when provided, must be a string.");if(r.fullCodecString!==void 0&&Wh(r.fullCodecString)!==r.codec)throw new TypeError(`config.fullCodecString, when provided, must be a string that matches the specified codec (${r.codec}).`);if(r.onEncodedPacket!==void 0&&typeof r.onEncodedPacket!="function")throw new TypeError("config.onEncodedChunk, when provided, must be a function.");if(r.onEncoderConfig!==void 0&&typeof r.onEncoderConfig!="function")throw new TypeError("config.onEncoderConfig, when provided, must be a function.")},ld=class{constructor(e,t){this.source=e,this.encodingConfig=t,this.ensureEncoderPromise=null,this.encoderInitialized=!1,this.encoder=null,this.muxer=null,this.lastNumberOfChannels=null,this.lastSampleRate=null,this.isPcmEncoder=!1,this.outputSampleSize=null,this.writeOutputValue=null,this.customEncoder=null,this.customEncoderCallSerializer=new Nr,this.customEncoderQueueSize=0,this.encoderError=null}async add(e,t){if(this.checkForEncoderError(),this.source._ensureValidAdd(),this.lastNumberOfChannels!==null&&this.lastSampleRate!==null){if(e.numberOfChannels!==this.lastNumberOfChannels||e.sampleRate!==this.lastSampleRate)throw new Error(`Audio parameters must remain constant. Expected ${this.lastNumberOfChannels} channels at ${this.lastSampleRate} Hz, got ${e.numberOfChannels} channels at ${e.sampleRate} Hz.`)}else this.lastNumberOfChannels=e.numberOfChannels,this.lastSampleRate=e.sampleRate;if(this.encoderInitialized||(this.ensureEncoderPromise||this.ensureEncoder(e),this.encoderInitialized||await this.ensureEncoderPromise),w(this.encoderInitialized),this.customEncoder){this.customEncoderQueueSize++;let i=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(e)).then(()=>{this.customEncoderQueueSize--,t&&e.close()}).catch(s=>{this.encoderError??=s});this.customEncoderQueueSize>=4&&await i,await this.muxer.mutex.currentPromise}else if(this.isPcmEncoder)await this.doPcmEncoding(e,t);else{w(this.encoder);let i=e.toAudioData();this.encoder.encode(i),i.close(),t&&e.close(),this.encoder.encodeQueueSize>=4&&await new Promise(s=>this.encoder.addEventListener("dequeue",s,{once:!0})),await this.muxer.mutex.currentPromise}}async doPcmEncoding(e,t){w(this.outputSampleSize),w(this.writeOutputValue);let{numberOfChannels:i,numberOfFrames:s,sampleRate:n,timestamp:o}=e,a=2048,c=[];for(let f=0;f<s;f+=a){let d=Math.min(a,e.numberOfFrames-f),m=d*i*this.outputSampleSize,x=new ArrayBuffer(m),g=new DataView(x);c.push({frameCount:d,view:g})}let u=e.allocationSize({planeIndex:0,format:"f32-planar"}),l=new Float32Array(u/Float32Array.BYTES_PER_ELEMENT);for(let f=0;f<i;f++){e.copyTo(l,{planeIndex:f,format:"f32-planar"});for(let d=0;d<c.length;d++){let{frameCount:m,view:x}=c[d];for(let g=0;g<m;g++)this.writeOutputValue(x,(g*i+f)*this.outputSampleSize,l[d*a+g])}}t&&e.close();let h={decoderConfig:{codec:this.encodingConfig.codec,numberOfChannels:i,sampleRate:n}};for(let f=0;f<c.length;f++){let{frameCount:d,view:m}=c[f],x=m.buffer,g=f*a,_=new ge(new Uint8Array(x),"key",o+g/n,d/n);this.encodingConfig.onEncodedPacket?.(_,h),await this.muxer.addEncodedAudioPacket(this.source._connectedTrack,_,h)}}ensureEncoder(e){if(!this.encoderInitialized)return this.ensureEncoderPromise=(async()=>{let{numberOfChannels:t,sampleRate:i}=e,s=this.encodingConfig.bitrate instanceof vt?this.encodingConfig.bitrate._toAudioBitrate(this.encodingConfig.codec):this.encodingConfig.bitrate,n={codec:this.encodingConfig.fullCodecString??ax(this.encodingConfig.codec,t,i),numberOfChannels:t,sampleRate:i,bitrate:s,...hx(this.encodingConfig.codec)};this.encodingConfig.onEncoderConfig?.(n);let o=Jg.find(a=>a.supports(this.encodingConfig.codec,n));if(o)this.customEncoder=new o,this.customEncoder.codec=this.encodingConfig.codec,this.customEncoder.config=n,this.customEncoder.onPacket=(a,c)=>{if(!(a instanceof ge))throw new TypeError("The first argument passed to onPacket must be an EncodedPacket.");if(c!==void 0&&(!c||typeof c!="object"))throw new TypeError("The second argument passed to onPacket must be an object or undefined.");this.encodingConfig.onEncodedPacket?.(a,c),this.muxer.addEncodedAudioPacket(this.source._connectedTrack,a,c)},await this.customEncoder.init();else if(Re.includes(this.encodingConfig.codec))this.initPcmEncoder();else{if(typeof AudioEncoder>"u")throw new Error("AudioEncoder is not supported by this browser.");if(!(await AudioEncoder.isConfigSupported(n)).supported)throw new Error(`This specific encoder configuration (${n.codec}, ${n.bitrate} bps, ${n.numberOfChannels} channels, ${n.sampleRate} Hz) is not supported by this browser. Consider using another codec or changing your audio parameters.`);this.encoder=new AudioEncoder({output:(c,u)=>{let l=ge.fromEncodedChunk(c);this.encodingConfig.onEncodedPacket?.(l,u),this.muxer.addEncodedAudioPacket(this.source._connectedTrack,l,u)},error:c=>{this.encoderError??=c}}),this.encoder.configure(n)}w(this.source._connectedTrack),this.muxer=this.source._connectedTrack.output._muxer,this.encoderInitialized=!0})()}initPcmEncoder(){this.isPcmEncoder=!0;let e=this.encodingConfig.codec,{dataType:t,sampleSize:i,littleEndian:s}=gt(e);switch(this.outputSampleSize=i,i){case 1:t==="unsigned"?this.writeOutputValue=(n,o,a)=>n.setUint8(o,$e((a+1)*127.5,0,255)):t==="signed"?this.writeOutputValue=(n,o,a)=>{n.setInt8(o,$e(Math.round(a*128),-128,127))}:t==="ulaw"?this.writeOutputValue=(n,o,a)=>{let c=$e(Math.floor(a*32767),-32768,32767);n.setUint8(o,Kx(c))}:t==="alaw"?this.writeOutputValue=(n,o,a)=>{let c=$e(Math.floor(a*32767),-32768,32767);n.setUint8(o,Zx(c))}:w(!1);break;case 2:t==="unsigned"?this.writeOutputValue=(n,o,a)=>n.setUint16(o,$e((a+1)*32767.5,0,65535),s):t==="signed"?this.writeOutputValue=(n,o,a)=>n.setInt16(o,$e(Math.round(a*32767),-32768,32767),s):w(!1);break;case 3:t==="unsigned"?this.writeOutputValue=(n,o,a)=>Lh(n,o,$e((a+1)*83886075e-1,0,16777215),s):t==="signed"?this.writeOutputValue=(n,o,a)=>Xg(n,o,$e(Math.round(a*8388607),-8388608,8388607),s):w(!1);break;case 4:t==="unsigned"?this.writeOutputValue=(n,o,a)=>n.setUint32(o,$e((a+1)*21474836475e-1,0,4294967295),s):t==="signed"?this.writeOutputValue=(n,o,a)=>n.setInt32(o,$e(Math.round(a*2147483647),-2147483648,2147483647),s):t==="float"?this.writeOutputValue=(n,o,a)=>n.setFloat32(o,a,s):w(!1);break;case 8:t==="float"?this.writeOutputValue=(n,o,a)=>n.setFloat64(o,a,s):w(!1);break;default:Gn(i),w(!1)}}async flushAndClose(){this.checkForEncoderError(),this.customEncoder?(this.customEncoderCallSerializer.call(()=>this.customEncoder.flush()),await this.customEncoderCallSerializer.call(()=>this.customEncoder.close())):this.encoder&&(await this.encoder.flush(),this.encoder.close()),this.checkForEncoderError()}getQueueSize(){return this.customEncoder?this.customEncoderQueueSize:this.isPcmEncoder?0:this.encoder?.encodeQueueSize??0}checkForEncoderError(){if(this.encoderError)throw this.encoderError.stack=new Error().stack,this.encoderError}},Zn=class extends Ss{constructor(e){MA(e),super(e.codec),this._encoder=new ld(this,e)}add(e){if(!(e instanceof Mt))throw new TypeError("audioSample must be an AudioSample.");return this._encoder.add(e,!1)}_flushAndClose(){return this._encoder.flushAndClose()}};var Jn=class extends Ts{constructor(e){if(super(),this._connectedTrack=null,!ls.includes(e))throw new TypeError(`Invalid subtitle codec '${e}'. Must be one of: ${ls.join(", ")}.`);this._codec=e}};var t0=["video","audio","subtitle"],hd=r=>{if(!r||typeof r!="object")throw new TypeError("metadata must be an object.");if(r.languageCode!==void 0&&!us(r.languageCode))throw new TypeError("metadata.languageCode must be a three-letter, ISO 639-2/T language code.")},eo=class{constructor(e){if(this.state="pending",this._tracks=[],this._startPromise=null,this._cancelPromise=null,this._finalizePromise=null,this._mutex=new wt,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!(e.format instanceof bs))throw new TypeError("options.format must be an OutputFormat.");if(!(e.target instanceof vi))throw new TypeError("options.target must be a Target.");if(e.target._output)throw new Error("Target is already used for another output.");e.target._output=this,this.format=e.format,this.target=e.target,this._writer=e.target._createWriter(),this._muxer=e.format._createMuxer(this)}addVideoTrack(e,t={}){if(!(e instanceof ws))throw new TypeError("source must be a VideoSource.");if(hd(t),t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError(`Invalid video rotation: ${t.rotation}. Has to be 0, 90, 180 or 270.`);if(!this.format.supportsVideoRotationMetadata&&t.rotation)throw new Error(`${this.format._name} does not support video rotation metadata.`);if(t.frameRate!==void 0&&(!Number.isFinite(t.frameRate)||t.frameRate<=0))throw new TypeError(`Invalid video frame rate: ${t.frameRate}. Must be a positive number.`);this._addTrack("video",e,t)}addAudioTrack(e,t={}){if(!(e instanceof Ss))throw new TypeError("source must be an AudioSource.");hd(t),this._addTrack("audio",e,t)}addSubtitleTrack(e,t={}){if(!(e instanceof Jn))throw new TypeError("source must be a SubtitleSource.");hd(t),this._addTrack("subtitle",e,t)}_addTrack(e,t,i){if(this.state!=="pending")throw new Error("Cannot add track after output has been started or canceled.");if(t._connectedTrack)throw new Error("Source is already used for a track.");let s=this.format.getSupportedTrackCounts(),n=this._tracks.reduce((u,l)=>u+(l.type===e?1:0),0),o=s[e].max;if(n===o)throw new Error(o===0?`${this.format._name} does not support ${e} tracks.`:`${this.format._name} does not support more than ${o} ${e} track${o===1?"":"s"}.`);let a=s.total.max;if(this._tracks.length===a)throw new Error(`${this.format._name} does not support more than ${a} tracks${a===1?"":"s"} in total.`);let c={id:this._tracks.length+1,output:this,type:e,source:t,metadata:i};if(c.type==="video"){let u=this.format.getSupportedVideoCodecs();if(u.length===0)throw new Error(`${this.format._name} does not support video tracks.`+this.format._codecUnsupportedHint(c.source._codec));if(!u.includes(c.source._codec))throw new Error(`Codec '${c.source._codec}' cannot be contained within ${this.format._name}. Supported video codecs are: ${u.map(l=>`'${l}'`).join(", ")}.`+this.format._codecUnsupportedHint(c.source._codec))}else if(c.type==="audio"){let u=this.format.getSupportedAudioCodecs();if(u.length===0)throw new Error(`${this.format._name} does not support audio tracks.`+this.format._codecUnsupportedHint(c.source._codec));if(!u.includes(c.source._codec))throw new Error(`Codec '${c.source._codec}' cannot be contained within ${this.format._name}. Supported audio codecs are: ${u.map(l=>`'${l}'`).join(", ")}.`+this.format._codecUnsupportedHint(c.source._codec))}else if(c.type==="subtitle"){let u=this.format.getSupportedSubtitleCodecs();if(u.length===0)throw new Error(`${this.format._name} does not support subtitle tracks.`+this.format._codecUnsupportedHint(c.source._codec));if(!u.includes(c.source._codec))throw new Error(`Codec '${c.source._codec}' cannot be contained within ${this.format._name}. Supported subtitle codecs are: ${u.map(l=>`'${l}'`).join(", ")}.`+this.format._codecUnsupportedHint(c.source._codec))}this._tracks.push(c),t._connectedTrack=c}async start(){let e=this.format.getSupportedTrackCounts();for(let i of t0){let s=this._tracks.reduce((o,a)=>o+(a.type===i?1:0),0),n=e[i].min;if(s<n)throw new Error(n===e[i].max?`${this.format._name} requires exactly ${n} ${i} track${n===1?"":"s"}.`:`${this.format._name} requires at least ${n} ${i} track${n===1?"":"s"}.`)}let t=e.total.min;if(this._tracks.length<t)throw new Error(t===e.total.max?`${this.format._name} requires exactly ${t} track${t===1?"":"s"}.`:`${this.format._name} requires at least ${t} track${t===1?"":"s"}.`);if(this.state==="canceled")throw new Error("Output has been canceled.");return this._startPromise?(console.warn("Output has already been started."),this._startPromise):this._startPromise=(async()=>{this.state="started",this._writer.start();let i=await this._mutex.acquire();await this._muxer.start();for(let s of this._tracks)s.source._start();i()})()}getMimeType(){return this._muxer.getMimeType()}async cancel(){if(this._cancelPromise)return console.warn("Output has already been canceled."),this._cancelPromise;if(this.state==="finalizing"||this.state==="finalized"){console.warn("Output has already been finalized.");return}return this._cancelPromise=(async()=>{this.state="canceled";let e=await this._mutex.acquire(),t=this._tracks.map(i=>i.source._flushOrWaitForClose());await Promise.all(t),await this._writer.close(),e()})()}async finalize(){if(this.state==="pending")throw new Error("Cannot finalize before starting.");if(this.state==="canceled")throw new Error("Cannot finalize after canceling.");return this._finalizePromise?(console.warn("Output has already been finalized."),this._finalizePromise):this._finalizePromise=(async()=>{this.state="finalizing";let e=await this._mutex.acquire(),t=this._tracks.map(i=>i.source._flushOrWaitForClose());await Promise.all(t),await this._muxer.finalize(),await this._writer.flush(),await this._writer.finalize(),this.state="finalized",e()})()}};var Di=class{constructor(){this._sizePromise=null,this.onread=null}getSize(){return this._sizePromise??=this._retrieveSize()}};var to=class extends Di{constructor(e){if(!(e instanceof Blob))throw new TypeError("blob must be a Blob.");super(),this._blob=e}async _read(e,t){let s=await this._blob.slice(e,t).arrayBuffer();return new Uint8Array(s)}async _retrieveSize(){return this._blob.size}},ro=class extends Di{constructor(e,t={}){if(typeof e!="string"&&!(e instanceof URL))throw new TypeError("url must be a string or URL.");if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(t.requestInit!==void 0&&(!t.requestInit||typeof t.requestInit!="object"))throw new TypeError("options.requestInit, when provided, must be an object.");if(t.getRetryDelay!==void 0&&typeof t.getRetryDelay!="function")throw new TypeError("options.getRetryDelay, when provided, must be a function.");super(),this._fullData=null,this._url=e,this._options=t}async _makeRequest(e){let t={};e&&(t.Range=`bytes=${e.start}-${e.end-1}`);let i=await zh(this._url,Fc(this._options.requestInit??{},{method:"GET",headers:t}),this._options.getRetryDelay??(()=>null));if(!i.ok)throw new Error(`Error fetching ${this._url}: ${i.status} ${i.statusText}`);let s=await i.arrayBuffer();return e||(this._fullData=s),{response:s,statusCode:i.status}}async _read(e,t){if(this._fullData)return new Uint8Array(this._fullData,e,t-e);let{response:i,statusCode:s}=await this._makeRequest({start:e,end:t});return s===200?new Uint8Array(i).subarray(e,t):new Uint8Array(i)}async _retrieveSize(){if(this._fullData)return this._fullData.byteLength;let e=await zh(this._url,Fc(this._options.requestInit??{},{method:"GET",headers:{Range:"bytes=0-0"}}),this._options.getRetryDelay??(()=>null));if(e.status===206){let i=e.headers.get("Content-Range");if(i){let s=i.match(/bytes \d+-\d+\/(\d+)/);if(s&&s[1])return parseInt(s[1],10)}}let{response:t}=await this._makeRequest();return t.byteLength}};var Mi=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos++,e.getUint8(t)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,!1)}readI16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getInt16(t,!1)}readU24(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+3);this.pos+=3;let i=e.getUint16(t,!1),s=e.getUint8(t+2);return i*256+s}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!1)}readI32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getInt32(t,!1)}readU64(){let e=this.readU32(),t=this.readU32();return e*4294967296+t}readI64(){let e=this.readI32(),t=this.readU32();return e*4294967296+t}readF64(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+8);return this.pos+=8,e.getFloat64(t,!1)}readFixed_16_16(){return this.readI32()/65536}readFixed_2_30(){return this.readI32()/1073741824}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}readIsomVariableInteger(){let e=0;for(let t=0;t<4;t++){e<<=7;let i=this.readU8();if(e|=i&127,(i&128)===0)break}return e}readBoxHeader(){let e=this.readU32(),t=this.readAscii(4),i=8;return e===1&&(e=this.readU64(),i=16),{name:t,totalSize:e,headerSize:i,contentSize:e-i}}};var ru=class extends Ct{constructor(e){super(e),this.currentTrack=null,this.tracks=[],this.metadataPromise=null,this.movieTimescale=-1,this.movieDurationInTimescale=-1,this.isQuickTime=!1,this.isFragmented=!1,this.fragmentTrackDefaults=[],this.fragments=[],this.currentFragment=null,this.fragmentLookupMutex=new wt,this.metadataReader=new Mi(e._mainReader),this.chunkReader=new Mi(new Et(e.source,64*2**20))}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.computeDuration()));return Math.max(0,...t)}async getTracks(){return await this.readMetadata(),this.tracks.map(e=>e.inputTrack)}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(t=>t.inputTrack.getCodecParameterString()));return Kc({isQuickTime:this.isQuickTime,hasVideo:this.tracks.some(t=>t.info?.type==="video"),hasAudio:this.tracks.some(t=>t.info?.type==="audio"),codecStrings:e.filter(Boolean)})}readMetadata(){return this.metadataPromise??=(async()=>{let e=await this.metadataReader.reader.source.getSize();for(;this.metadataReader.pos<e;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+16);let t=this.metadataReader.pos,i=this.metadataReader.readBoxHeader();if(i.name==="ftyp"){let s=this.metadataReader.readAscii(4);this.isQuickTime=s==="qt "}else if(i.name==="moov"){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+i.contentSize),this.readContiguousBoxes(i.contentSize);for(let s of this.tracks){let n=s.editListPreviousSegmentDurations/this.movieTimescale;s.editListOffset-=Math.round(n*s.timescale)}break}this.metadataReader.pos=t+i.totalSize}if(this.isFragmented){await this.metadataReader.reader.loadRange(e-4,e),this.metadataReader.pos=e-4;let t=this.metadataReader.readU32(),i=e-t;if(i>=0&&i<e){await this.metadataReader.reader.loadRange(i,e),this.metadataReader.pos=i;let s=this.metadataReader.readBoxHeader();s.name==="mfra"&&this.readContiguousBoxes(s.contentSize)}}})()}getSampleTableForTrack(e){if(e.sampleTable)return e.sampleTable;let t={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};if(e.sampleTable=t,this.metadataReader.pos=e.sampleTableByteOffset,this.currentTrack=e,this.traverseBox(),this.currentTrack=null,e.info?.type==="audio"&&e.info.codec&&Re.includes(e.info.codec)&&t.sampleCompositionTimeOffsets.length===0){w(e.info?.type==="audio");let s=gt(e.info.codec),n=[],o=[];for(let a=0;a<t.sampleToChunk.length;a++){let c=t.sampleToChunk[a],u=t.sampleToChunk[a+1],l=(u?u.startChunkIndex:t.chunkOffsets.length)-c.startChunkIndex;for(let h=0;h<l;h++){let f=c.startSampleIndex+h*c.samplesPerChunk,d=f+c.samplesPerChunk,m=Z(t.sampleTimingEntries,f,E=>E.startIndex),x=t.sampleTimingEntries[m],g=Z(t.sampleTimingEntries,d,E=>E.startIndex),_=t.sampleTimingEntries[g],y=x.startDecodeTimestamp+(f-x.startIndex)*x.delta,T=_.startDecodeTimestamp+(d-_.startIndex)*_.delta-y,C=he(n);C&&C.delta===T?C.count++:n.push({startIndex:c.startChunkIndex+h,startDecodeTimestamp:y,count:1,delta:T});let v=c.samplesPerChunk*s.sampleSize*e.info.numberOfChannels;o.push(v)}c.startSampleIndex=c.startChunkIndex,c.samplesPerChunk=1}t.sampleTimingEntries=n,t.sampleSizes=o}if(t.sampleCompositionTimeOffsets.length>0){t.presentationTimestamps=[];for(let s of t.sampleTimingEntries)for(let n=0;n<s.count;n++)t.presentationTimestamps.push({presentationTimestamp:s.startDecodeTimestamp+n*s.delta,sampleIndex:s.startIndex+n});for(let s of t.sampleCompositionTimeOffsets)for(let n=0;n<s.count;n++){let o=s.startIndex+n,a=t.presentationTimestamps[o];a&&(a.presentationTimestamp+=s.offset)}t.presentationTimestamps.sort((s,n)=>s.presentationTimestamp-n.presentationTimestamp),t.presentationTimestampIndexMap=Array(t.presentationTimestamps.length).fill(-1);for(let s=0;s<t.presentationTimestamps.length;s++)t.presentationTimestampIndexMap[t.presentationTimestamps[s].sampleIndex]=s}return t}async readFragment(){let e=this.metadataReader.pos;await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+16);let t=this.metadataReader.readBoxHeader();w(t.name==="moof");let i=this.metadataReader.pos;await this.metadataReader.reader.loadRange(i,i+t.contentSize),this.metadataReader.pos=e,this.traverseBox();let s=Ae(this.fragments,e,o=>o.moofOffset);w(s!==-1);let n=this.fragments[s];w(n.moofOffset===e),this.metadataReader.reader.forgetRange(i,i+t.contentSize);for(let[o,a]of n.trackData){if(a.startTimestampIsFinal)continue;let c=this.tracks.find(d=>d.id===o);this.metadataReader.pos=0;let u=null,l=null,h=Z(c.fragments,e-1,d=>d.moofOffset);h!==-1&&(u=c.fragments[h],l=u,this.metadataReader.pos=u.moofOffset+u.moofSize);let f=this.metadataReader.pos===0;for(;this.metadataReader.pos<e;){if(u?.nextFragment)u=u.nextFragment,this.metadataReader.pos=u.moofOffset+u.moofSize;else{await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+16);let d=this.metadataReader.pos,m=this.metadataReader.readBoxHeader();if(m.name==="moof"){let x=Ae(this.fragments,d,_=>_.moofOffset),g;x===-1?(this.metadataReader.pos=d,g=await this.readFragment()):g=this.fragments[x],u&&(u.nextFragment=g),u=g,f&&(g.isKnownToBeFirstFragment=!0,f=!1)}this.metadataReader.pos=d+m.totalSize}u&&u.trackData.has(o)&&(l=u)}if(l){let d=l.trackData.get(o);w(d.startTimestampIsFinal),i0(a,d.endTimestamp)}a.startTimestampIsFinal=!0}return n}readContiguousBoxes(e){let t=this.metadataReader.pos;for(;this.metadataReader.pos-t<=e-8;)this.traverseBox()}traverseBox(){let e=this.metadataReader.pos,t=this.metadataReader.readBoxHeader(),i=e+t.totalSize;switch(t.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":this.readContiguousBoxes(t.contentSize);break;case"mvhd":{let s=this.metadataReader.readU8();this.metadataReader.pos+=3,s===1?(this.metadataReader.pos+=16,this.movieTimescale=this.metadataReader.readU32(),this.movieDurationInTimescale=this.metadataReader.readU64()):(this.metadataReader.pos+=8,this.movieTimescale=this.metadataReader.readU32(),this.movieDurationInTimescale=this.metadataReader.readU32())}break;case"trak":{let s={id:-1,demuxer:this,inputTrack:null,info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,languageCode:nt,sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:null,currentFragmentState:null,fragments:[],fragmentsWithKeyFrame:[],editListPreviousSegmentDurations:0,editListOffset:0};if(this.currentTrack=s,this.readContiguousBoxes(t.contentSize),s.id!==-1&&s.timescale!==-1&&s.info!==null){if(s.info.type==="video"&&s.info.width!==-1){let n=s;s.inputTrack=new gr(new dd(n)),this.tracks.push(s)}else if(s.info.type==="audio"&&s.info.numberOfChannels!==-1){let n=s;s.inputTrack=new Ze(new fd(n)),this.tracks.push(s)}}this.currentTrack=null}break;case"tkhd":{let s=this.currentTrack;w(s);let n=this.metadataReader.readU8();if(!((this.metadataReader.readU24()&1)!==0))break;if(n===0)this.metadataReader.pos+=8,s.id=this.metadataReader.readU32(),this.metadataReader.pos+=4,s.durationInMovieTimescale=this.metadataReader.readU32();else if(n===1)this.metadataReader.pos+=16,s.id=this.metadataReader.readU32(),this.metadataReader.pos+=4,s.durationInMovieTimescale=this.metadataReader.readU64();else throw new Error(`Incorrect track header version ${n}.`);this.metadataReader.pos+=2*4+2+2+2+2;let c=[this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_2_30(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_2_30(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_2_30()],u=Bc(Yg(GA(c),90));w(u===0||u===90||u===180||u===270),s.rotation=u}break;case"elst":{let s=this.currentTrack;w(s);let n=this.metadataReader.readU8();this.metadataReader.pos+=3;let o=!1,a=0,c=this.metadataReader.readU32();for(let u=0;u<c;u++){let l=n===1?this.metadataReader.readU64():this.metadataReader.readU32(),h=n===1?this.metadataReader.readI64():this.metadataReader.readI32(),f=this.metadataReader.readFixed_16_16();if(l!==0){if(o){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(h===-1){a+=l;continue}if(f!==1){console.warn("Unsupported edit list entry: media rate must be 1.");break}s.editListPreviousSegmentDurations=a,s.editListOffset=h,o=!0}}}break;case"mdhd":{let s=this.currentTrack;w(s);let n=this.metadataReader.readU8();this.metadataReader.pos+=3,n===0?(this.metadataReader.pos+=8,s.timescale=this.metadataReader.readU32(),s.durationInMediaTimescale=this.metadataReader.readU32()):n===1&&(this.metadataReader.pos+=16,s.timescale=this.metadataReader.readU32(),s.durationInMediaTimescale=this.metadataReader.readU64());let o=this.metadataReader.readU16();if(o>0){s.languageCode="";for(let a=0;a<3;a++)s.languageCode=String.fromCharCode(96+(o&31))+s.languageCode,o>>=5;us(s.languageCode)||(s.languageCode=nt)}}break;case"hdlr":{let s=this.currentTrack;w(s),this.metadataReader.pos+=8;let n=this.metadataReader.readAscii(4);n==="vide"?s.info={type:"video",width:-1,height:-1,codec:null,codecDescription:null,colorSpace:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:n==="soun"&&(s.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case"stbl":{let s=this.currentTrack;w(s),s.sampleTableByteOffset=e,this.readContiguousBoxes(t.contentSize)}break;case"stsd":{let s=this.currentTrack;if(w(s),s.info===null||s.sampleTable)break;let n=this.metadataReader.readU8();this.metadataReader.pos+=3;let o=this.metadataReader.readU32();for(let a=0;a<o;a++){let c=this.metadataReader.pos,u=this.metadataReader.readBoxHeader(),l=u.name.toLowerCase();if(s.info.type==="video")l==="avc1"?s.info.codec="avc":l==="hvc1"||l==="hev1"?s.info.codec="hevc":l==="vp08"?s.info.codec="vp8":l==="vp09"?s.info.codec="vp9":l==="av01"?s.info.codec="av1":console.warn(`Unsupported video codec (sample entry type '${u.name}').`),this.metadataReader.pos+=6*1+2+2+2+3*4,s.info.width=this.metadataReader.readU16(),s.info.height=this.metadataReader.readU16(),this.metadataReader.pos+=50,this.readContiguousBoxes(c+u.totalSize-this.metadataReader.pos);else{l==="mp4a"||(l==="opus"?s.info.codec="opus":l==="flac"?s.info.codec="flac":l==="twos"||l==="sowt"||l==="raw "||l==="in24"||l==="in32"||l==="fl32"||l==="fl64"||l==="lpcm"||l==="ipcm"||l==="fpcm"||(l==="ulaw"?s.info.codec="ulaw":l==="alaw"?s.info.codec="alaw":console.warn(`Unsupported audio codec (sample entry type '${u.name}').`))),this.metadataReader.pos+=6*1+2;let h=this.metadataReader.readU16();this.metadataReader.pos+=3*2;let f=this.metadataReader.readU16(),d=this.metadataReader.readU16();this.metadataReader.pos+=2*2;let m=this.metadataReader.readU32()/65536;if(n===0&&h>0){if(h===1)this.metadataReader.pos+=4,d=8*this.metadataReader.readU32(),this.metadataReader.pos+=2*4;else if(h===2){this.metadataReader.pos+=4,m=this.metadataReader.readF64(),f=this.metadataReader.readU32(),this.metadataReader.pos+=4,d=this.metadataReader.readU32();let x=this.metadataReader.readU32();if(this.metadataReader.pos+=2*4,l==="lpcm"){let g=d+7>>3,_=!!(x&1),y=!!(x&2),S=x&4?-1:0;d>0&&d<=64&&(_?d===32&&(s.info.codec=y?"pcm-f32be":"pcm-f32"):S&1<<g-1?g===1?s.info.codec="pcm-s8":g===2?s.info.codec=y?"pcm-s16be":"pcm-s16":g===3?s.info.codec=y?"pcm-s24be":"pcm-s24":g===4&&(s.info.codec=y?"pcm-s32be":"pcm-s32"):g===1&&(s.info.codec="pcm-u8")),s.info.codec===null&&console.warn("Unsupported PCM format.")}}}s.info.numberOfChannels=f,s.info.sampleRate=m,l==="twos"?d===8?s.info.codec="pcm-s8":d===16?s.info.codec="pcm-s16be":(console.warn(`Unsupported sample size ${d} for codec 'twos'.`),s.info.codec=null):l==="sowt"?d===8?s.info.codec="pcm-s8":d===16?s.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${d} for codec 'sowt'.`),s.info.codec=null):l==="raw "?s.info.codec="pcm-u8":l==="in24"?s.info.codec="pcm-s24be":l==="in32"?s.info.codec="pcm-s32be":l==="fl32"?s.info.codec="pcm-f32be":l==="fl64"?s.info.codec="pcm-f64be":l==="ipcm"?s.info.codec="pcm-s16be":l==="fpcm"&&(s.info.codec="pcm-f32be"),this.readContiguousBoxes(c+u.totalSize-this.metadataReader.pos)}}}break;case"avcC":{let s=this.currentTrack;w(s&&s.info),s.info.codecDescription=this.metadataReader.readBytes(t.contentSize)}break;case"hvcC":{let s=this.currentTrack;w(s&&s.info),s.info.codecDescription=this.metadataReader.readBytes(t.contentSize)}break;case"vpcC":{let s=this.currentTrack;w(s&&s.info?.type==="video"),this.metadataReader.pos+=4;let n=this.metadataReader.readU8(),o=this.metadataReader.readU8(),a=this.metadataReader.readU8(),c=a>>4,u=a>>1&7,l=a&1,h=this.metadataReader.readU8(),f=this.metadataReader.readU8(),d=this.metadataReader.readU8();s.info.vp9CodecInfo={profile:n,level:o,bitDepth:c,chromaSubsampling:u,videoFullRangeFlag:l,colourPrimaries:h,transferCharacteristics:f,matrixCoefficients:d}}break;case"av1C":{let s=this.currentTrack;w(s&&s.info?.type==="video"),this.metadataReader.pos+=1;let n=this.metadataReader.readU8(),o=n>>5,a=n&31,c=this.metadataReader.readU8(),u=c>>7,l=c>>6&1,h=c>>5&1,f=c>>4&1,d=c>>3&1,m=c>>2&1,x=c&3,g=o==2&&l?h?12:10:l?10:8;s.info.av1CodecInfo={profile:o,level:a,tier:u,bitDepth:g,monochrome:f,chromaSubsamplingX:d,chromaSubsamplingY:m,chromaSamplePosition:x}}break;case"colr":{let s=this.currentTrack;if(w(s&&s.info?.type==="video"),this.metadataReader.readAscii(4)!=="nclx")break;let o=this.metadataReader.readU16(),a=this.metadataReader.readU16(),c=this.metadataReader.readU16(),u=!!(this.metadataReader.readU8()&128);s.info.colorSpace={primaries:Rc[o],transfer:Dc[a],matrix:Mc[c],fullRange:u}}break;case"wave":this.readContiguousBoxes(t.contentSize);break;case"esds":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=4;let n=this.metadataReader.readU8();w(n===3),this.metadataReader.readIsomVariableInteger(),this.metadataReader.pos+=2;let o=this.metadataReader.readU8(),a=(o&128)!==0,c=(o&64)!==0,u=(o&32)!==0;if(a&&(this.metadataReader.pos+=2),c){let m=this.metadataReader.readU8();this.metadataReader.pos+=m}u&&(this.metadataReader.pos+=2);let l=this.metadataReader.readU8();w(l===4);let h=this.metadataReader.readIsomVariableInteger(),f=this.metadataReader.pos,d=this.metadataReader.readU8();if(d===64||d===103?(s.info.codec="aac",s.info.aacCodecInfo={isMpeg2:d===103}):d===105||d===107?s.info.codec="mp3":d===221?s.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${d}) - discarding track.`),this.metadataReader.pos+=12,h>this.metadataReader.pos-f){let m=this.metadataReader.readU8();w(m===5);let x=this.metadataReader.readIsomVariableInteger();if(s.info.codecDescription=this.metadataReader.readBytes(x),s.info.codec==="aac"){let g=Hh(s.info.codecDescription);g.numberOfChannels!==null&&(s.info.numberOfChannels=g.numberOfChannels),g.sampleRate!==null&&(s.info.sampleRate=g.sampleRate)}}}break;case"enda":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.readU16()&255&&(s.info.codec==="pcm-s16be"?s.info.codec="pcm-s16":s.info.codec==="pcm-s24be"?s.info.codec="pcm-s24":s.info.codec==="pcm-s32be"?s.info.codec="pcm-s32":s.info.codec==="pcm-f32be"?s.info.codec="pcm-f32":s.info.codec==="pcm-f64be"&&(s.info.codec="pcm-f64"))}break;case"pcmC":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=4;let o=!!(this.metadataReader.readU8()&1),a=this.metadataReader.readU8();s.info.codec==="pcm-s16be"?o?a===16?s.info.codec="pcm-s16":a===24?s.info.codec="pcm-s24":a===32?s.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${a}.`),s.info.codec=null):a===16?s.info.codec="pcm-s16be":a===24?s.info.codec="pcm-s24be":a===32?s.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${a}.`),s.info.codec=null):s.info.codec==="pcm-f32be"&&(o?a===32?s.info.codec="pcm-f32":a===64?s.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${a}.`),s.info.codec=null):a===32?s.info.codec="pcm-f32be":a===64?s.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${a}.`),s.info.codec=null));break}case"dOps":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=1;let n=this.metadataReader.readU8(),o=this.metadataReader.readU16(),a=this.metadataReader.readU32(),c=this.metadataReader.readI16(),u=this.metadataReader.readU8(),l;u!==0?l=this.metadataReader.readBytes(2+n):l=new Uint8Array(0);let h=new Uint8Array(19+l.byteLength),f=new DataView(h.buffer);f.setUint32(0,1332770163,!1),f.setUint32(4,1214603620,!1),f.setUint8(8,1),f.setUint8(9,n),f.setUint16(10,o,!0),f.setUint32(12,a,!0),f.setInt16(16,c,!0),f.setUint8(18,u),h.set(l,19),s.info.codecDescription=h,s.info.numberOfChannels=n,s.info.sampleRate=a}break;case"dfLa":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=4;let n=127,o=128,a=this.metadataReader.pos;for(;this.metadataReader.pos<i;){let f=this.metadataReader.readU8(),d=this.metadataReader.readU24();if((f&n)===0){this.metadataReader.pos+=10;let x=this.metadataReader.readU32(),g=x>>>12,_=(x>>9&7)+1;s.info.sampleRate=g,s.info.numberOfChannels=_,this.metadataReader.pos+=20}else this.metadataReader.pos+=d;if(f&o)break}let c=this.metadataReader.pos;this.metadataReader.pos=a;let u=this.metadataReader.readBytes(c-a),l=new Uint8Array(4+u.byteLength);new DataView(l.buffer).setUint32(0,1716281667,!1),l.set(u,4),s.info.codecDescription=l}break;case"stts":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32(),o=0,a=0;for(let c=0;c<n;c++){let u=this.metadataReader.readU32(),l=this.metadataReader.readU32();s.sampleTable.sampleTimingEntries.push({startIndex:o,startDecodeTimestamp:a,count:u,delta:l}),o+=u,a+=u*l}}break;case"ctts":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32(),o=0;for(let a=0;a<n;a++){let c=this.metadataReader.readU32(),u=this.metadataReader.readI32();s.sampleTable.sampleCompositionTimeOffsets.push({startIndex:o,count:c,offset:u}),o+=c}}break;case"stsz":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32(),o=this.metadataReader.readU32();if(n===0)for(let a=0;a<o;a++){let c=this.metadataReader.readU32();s.sampleTable.sampleSizes.push(c)}else s.sampleTable.sampleSizes.push(n)}break;case"stz2":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4,this.metadataReader.pos+=3;let n=this.metadataReader.readU8(),o=this.metadataReader.readU32(),a=this.metadataReader.readBytes(Math.ceil(o*n/8)),c=new pt(a);for(let u=0;u<o;u++){let l=c.readBits(n);s.sampleTable.sampleSizes.push(l)}}break;case"stss":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4,s.sampleTable.keySampleIndices=[];let n=this.metadataReader.readU32();for(let o=0;o<n;o++){let a=this.metadataReader.readU32()-1;s.sampleTable.keySampleIndices.push(a)}}break;case"stsc":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32();for(let a=0;a<n;a++){let c=this.metadataReader.readU32()-1,u=this.metadataReader.readU32(),l=this.metadataReader.readU32();s.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:c,samplesPerChunk:u,sampleDescriptionIndex:l})}let o=0;for(let a=0;a<s.sampleTable.sampleToChunk.length;a++)if(s.sampleTable.sampleToChunk[a].startSampleIndex=o,a<s.sampleTable.sampleToChunk.length-1){let u=s.sampleTable.sampleToChunk[a+1].startChunkIndex-s.sampleTable.sampleToChunk[a].startChunkIndex;o+=u*s.sampleTable.sampleToChunk[a].samplesPerChunk}}break;case"stco":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32();for(let o=0;o<n;o++){let a=this.metadataReader.readU32();s.sampleTable.chunkOffsets.push(a)}}break;case"co64":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32();for(let o=0;o<n;o++){let a=this.metadataReader.readU64();s.sampleTable.chunkOffsets.push(a)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(t.contentSize);break;case"mehd":{let s=this.metadataReader.readU8();this.metadataReader.pos+=3;let n=s===1?this.metadataReader.readU64():this.metadataReader.readU32();this.movieDurationInTimescale=n}break;case"trex":{this.metadataReader.pos+=4;let s=this.metadataReader.readU32(),n=this.metadataReader.readU32(),o=this.metadataReader.readU32(),a=this.metadataReader.readU32(),c=this.metadataReader.readU32();this.fragmentTrackDefaults.push({trackId:s,defaultSampleDescriptionIndex:n,defaultSampleDuration:o,defaultSampleSize:a,defaultSampleFlags:c})}break;case"tfra":{let s=this.metadataReader.readU8();this.metadataReader.pos+=3;let n=this.metadataReader.readU32(),o=this.tracks.find(_=>_.id===n);if(!o)break;o.fragmentLookupTable=[];let a=this.metadataReader.readU32(),c=(a&48)>>4,u=(a&12)>>2,l=a&3,h=this.metadataReader,f=[h.readU8.bind(h),h.readU16.bind(h),h.readU24.bind(h),h.readU32.bind(h)],d=f[c],m=f[u],x=f[l],g=this.metadataReader.readU32();for(let _=0;_<g;_++){let y=s===1?this.metadataReader.readU64():this.metadataReader.readU32(),S=s===1?this.metadataReader.readU64():this.metadataReader.readU32(),T=d(),C=m(),v=x();o.fragmentLookupTable.push({timestamp:y,moofOffset:S})}}break;case"moof":{this.currentFragment={moofOffset:e,moofSize:t.totalSize,implicitBaseDataOffset:e,trackData:new Map,dataStart:1/0,dataEnd:0,nextFragment:null,isKnownToBeFirstFragment:!1},this.readContiguousBoxes(t.contentSize);let s=Z(this.fragments,this.currentFragment.moofOffset,n=>n.moofOffset);this.fragments.splice(s+1,0,this.currentFragment);for(let[,n]of this.currentFragment.trackData){let o=n.samples[0],a=he(n.samples);this.currentFragment.dataStart=Math.min(this.currentFragment.dataStart,o.byteOffset),this.currentFragment.dataEnd=Math.max(this.currentFragment.dataEnd,a.byteOffset+a.byteSize)}this.currentFragment=null}break;case"traf":if(w(this.currentFragment),this.readContiguousBoxes(t.contentSize),this.currentTrack){let s=this.currentFragment.trackData.get(this.currentTrack.id);if(s){let n=Z(this.currentTrack.fragments,this.currentFragment.moofOffset,c=>c.moofOffset);if(this.currentTrack.fragments.splice(n+1,0,this.currentFragment),s.firstKeyFrameTimestamp!==null){let c=Z(this.currentTrack.fragmentsWithKeyFrame,this.currentFragment.moofOffset,u=>u.moofOffset);this.currentTrack.fragmentsWithKeyFrame.splice(c+1,0,this.currentFragment)}let{currentFragmentState:a}=this.currentTrack;w(a),a.startTimestamp!==null&&(i0(s,a.startTimestamp),s.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{w(this.currentFragment),this.metadataReader.pos+=1;let s=this.metadataReader.readU24(),n=!!(s&1),o=!!(s&2),a=!!(s&8),c=!!(s&16),u=!!(s&32),l=!!(s&65536),h=!!(s&131072),f=this.metadataReader.readU32(),d=this.tracks.find(x=>x.id===f);if(!d)break;let m=this.fragmentTrackDefaults.find(x=>x.trackId===f);this.currentTrack=d,d.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:m?.defaultSampleDescriptionIndex??null,defaultSampleDuration:m?.defaultSampleDuration??null,defaultSampleSize:m?.defaultSampleSize??null,defaultSampleFlags:m?.defaultSampleFlags??null,startTimestamp:null},n?d.currentFragmentState.baseDataOffset=this.metadataReader.readU64():h&&(d.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),o&&(d.currentFragmentState.sampleDescriptionIndex=this.metadataReader.readU32()),a&&(d.currentFragmentState.defaultSampleDuration=this.metadataReader.readU32()),c&&(d.currentFragmentState.defaultSampleSize=this.metadataReader.readU32()),u&&(d.currentFragmentState.defaultSampleFlags=this.metadataReader.readU32()),l&&(d.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{let s=this.currentTrack;if(!s)break;w(s.currentFragmentState);let n=this.metadataReader.readU8();this.metadataReader.pos+=3;let o=n===0?this.metadataReader.readU32():this.metadataReader.readU64();s.currentFragmentState.startTimestamp=o}break;case"trun":{let s=this.currentTrack;if(!s)break;if(w(this.currentFragment),w(s.currentFragmentState),this.currentFragment.trackData.has(s.id)){console.warn("Can't have two trun boxes for the same track in one fragment. Ignoring...");break}let n=this.metadataReader.readU8(),o=this.metadataReader.readU24(),a=!!(o&1),c=!!(o&4),u=!!(o&256),l=!!(o&512),h=!!(o&1024),f=!!(o&2048),d=this.metadataReader.readU32(),m=s.currentFragmentState.baseDataOffset;a&&(m+=this.metadataReader.readI32());let x=null;c&&(x=this.metadataReader.readU32());let g=m;if(d===0){this.currentFragment.implicitBaseDataOffset=g;break}let _=0,y={startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1};this.currentFragment.trackData.set(s.id,y);for(let C=0;C<d;C++){let v;u?v=this.metadataReader.readU32():(w(s.currentFragmentState.defaultSampleDuration!==null),v=s.currentFragmentState.defaultSampleDuration);let E;l?E=this.metadataReader.readU32():(w(s.currentFragmentState.defaultSampleSize!==null),E=s.currentFragmentState.defaultSampleSize);let D;h?D=this.metadataReader.readU32():(w(s.currentFragmentState.defaultSampleFlags!==null),D=s.currentFragmentState.defaultSampleFlags),C===0&&x!==null&&(D=x);let A=0;f&&(n===0?A=this.metadataReader.readU32():A=this.metadataReader.readI32());let P=!(D&65536);y.samples.push({presentationTimestamp:_+A,duration:v,byteOffset:g,byteSize:E,isKeyFrame:P}),g+=E,_+=v}y.presentationTimestamps=y.samples.map((C,v)=>({presentationTimestamp:C.presentationTimestamp,sampleIndex:v})).sort((C,v)=>C.presentationTimestamp-v.presentationTimestamp);for(let C=0;C<y.presentationTimestamps.length;C++){let v=y.presentationTimestamps[C],E=y.samples[v.sampleIndex];if(y.firstKeyFrameTimestamp===null&&E.isKeyFrame&&(y.firstKeyFrameTimestamp=E.presentationTimestamp),C<y.presentationTimestamps.length-1){let D=y.presentationTimestamps[C+1];E.duration=D.presentationTimestamp-v.presentationTimestamp}}let S=y.samples[y.presentationTimestamps[0].sampleIndex],T=y.samples[he(y.presentationTimestamps).sampleIndex];y.startTimestamp=S.presentationTimestamp,y.endTimestamp=T.presentationTimestamp+T.duration,this.currentFragment.implicitBaseDataOffset=g}break}this.metadataReader.pos=i}},iu=class{constructor(e){this.internalTrack=e,this.packetToSampleIndex=new WeakMap,this.packetToFragmentLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}getLanguageCode(){return this.internalTrack.languageCode}getTimeResolution(){return this.internalTrack.timescale}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}async getFirstTimestamp(){return(await this.getFirstPacket({metadataOnly:!0}))?.timestamp??0}async getFirstPacket(e){return this.internalTrack.demuxer.isFragmented?this.performFragmentedLookup(()=>{let t=this.internalTrack.demuxer.fragments[0]??null;if(t?.isKnownToBeFirstFragment){let i=t;for(;i;){if(i.trackData.get(this.internalTrack.id))return{fragmentIndex:Ae(this.internalTrack.fragments,i.moofOffset,n=>n.moofOffset),sampleIndex:0,correctSampleFound:!0};i=i.nextFragment}}return{fragmentIndex:-1,sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,e):this.fetchPacketForSampleIndex(0,e)}mapTimestampIntoTimescale(e){return cs(e*this.internalTrack.timescale,14)+this.internalTrack.editListOffset}async getPacket(e,t){let i=this.mapTimestampIntoTimescale(e);if(this.internalTrack.demuxer.isFragmented)return this.performFragmentedLookup(()=>this.findSampleInFragmentsForTimestamp(i),i,i,t);{let s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=r0(s,i);return this.fetchPacketForSampleIndex(n,t)}}async getNextPacket(e,t){if(this.internalTrack.demuxer.isFragmented){let s=this.packetToFragmentLocation.get(e);if(s===void 0)throw new Error("Packet was not created from this track.");let n=s.fragment.trackData.get(this.internalTrack.id),o=n.samples[s.sampleIndex],a=Ae(this.internalTrack.fragments,s.fragment.moofOffset,c=>c.moofOffset);return w(a!==-1),this.performFragmentedLookup(()=>{if(s.sampleIndex+1<n.samples.length)return{fragmentIndex:a,sampleIndex:s.sampleIndex+1,correctSampleFound:!0};{let c=s.fragment;for(;c.nextFragment;)if(c=c.nextFragment,c.trackData.get(this.internalTrack.id)){let l=Ae(this.internalTrack.fragments,c.moofOffset,h=>h.moofOffset);return w(l!==-1),{fragmentIndex:l,sampleIndex:0,correctSampleFound:!0}}return{fragmentIndex:a,sampleIndex:-1,correctSampleFound:!1}}},o.presentationTimestamp,1/0,t)}let i=this.packetToSampleIndex.get(e);if(i===void 0)throw new Error("Packet was not created from this track.");return this.fetchPacketForSampleIndex(i+1,t)}async getKeyPacket(e,t){let i=this.mapTimestampIntoTimescale(e);if(this.internalTrack.demuxer.isFragmented)return this.performFragmentedLookup(()=>this.findKeySampleInFragmentsForTimestamp(i),i,i,t);let s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=r0(s,i),o=n===-1?-1:UA(s,n);return this.fetchPacketForSampleIndex(o,t)}async getNextKeyPacket(e,t){if(this.internalTrack.demuxer.isFragmented){let o=this.packetToFragmentLocation.get(e);if(o===void 0)throw new Error("Packet was not created from this track.");let a=o.fragment.trackData.get(this.internalTrack.id),c=a.samples[o.sampleIndex],u=Ae(this.internalTrack.fragments,o.fragment.moofOffset,l=>l.moofOffset);return w(u!==-1),this.performFragmentedLookup(()=>{let l=a.samples.findIndex((h,f)=>h.isKeyFrame&&f>o.sampleIndex);if(l!==-1)return{fragmentIndex:u,sampleIndex:l,correctSampleFound:!0};{let h=o.fragment;for(;h.nextFragment;){h=h.nextFragment;let f=h.trackData.get(this.internalTrack.id);if(f&&f.firstKeyFrameTimestamp!==null){let d=Ae(this.internalTrack.fragments,h.moofOffset,x=>x.moofOffset);w(d!==-1);let m=f.samples.findIndex(x=>x.isKeyFrame);return w(m!==-1),{fragmentIndex:d,sampleIndex:m,correctSampleFound:!0}}}return{fragmentIndex:u,sampleIndex:-1,correctSampleFound:!1}}},c.presentationTimestamp,1/0,t)}let i=this.packetToSampleIndex.get(e);if(i===void 0)throw new Error("Packet was not created from this track.");let s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=OA(s,i);return this.fetchPacketForSampleIndex(n,t)}async fetchPacketForSampleIndex(e,t){if(e===-1)return null;let i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),s=FA(i,e);if(!s)return null;let n;t.metadataOnly?n=ot:(await this.internalTrack.demuxer.chunkReader.reader.loadRange(s.chunkOffset,s.chunkOffset+s.chunkSize),this.internalTrack.demuxer.chunkReader.pos=s.sampleOffset,n=this.internalTrack.demuxer.chunkReader.readBytes(s.sampleSize));let o=(s.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,a=s.duration/this.internalTrack.timescale,c=new ge(n,s.isKeyFrame?"key":"delta",o,a,e,s.sampleSize);return this.packetToSampleIndex.set(c,e),c}async fetchPacketInFragment(e,t,i){if(t===-1)return null;let n=e.trackData.get(this.internalTrack.id).samples[t];w(n);let o;i.metadataOnly?o=ot:(await this.internalTrack.demuxer.chunkReader.reader.loadRange(e.dataStart,e.dataEnd),this.internalTrack.demuxer.chunkReader.pos=n.byteOffset,o=this.internalTrack.demuxer.chunkReader.readBytes(n.byteSize));let a=(n.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,c=n.duration/this.internalTrack.timescale,u=new ge(o,n.isKeyFrame?"key":"delta",a,c,e.moofOffset+t,n.byteSize);return this.packetToFragmentLocation.set(u,{fragment:e,sampleIndex:t}),u}findSampleInFragmentsForTimestamp(e){let t=Z(this.internalTrack.fragments,e,n=>n.trackData.get(this.internalTrack.id).startTimestamp),i=-1,s=!1;if(t!==-1){let o=this.internalTrack.fragments[t].trackData.get(this.internalTrack.id),a=Z(o.presentationTimestamps,e,c=>c.presentationTimestamp);w(a!==-1),i=o.presentationTimestamps[a].sampleIndex,s=e<o.endTimestamp}return{fragmentIndex:t,sampleIndex:i,correctSampleFound:s}}findKeySampleInFragmentsForTimestamp(e){let t=Z(this.internalTrack.fragmentsWithKeyFrame,e,o=>o.trackData.get(this.internalTrack.id).startTimestamp),i=-1,s=-1,n=!1;if(t!==-1){let o=this.internalTrack.fragmentsWithKeyFrame[t];i=Ae(this.internalTrack.fragments,o.moofOffset,l=>l.moofOffset),w(i!==-1);let a=o.trackData.get(this.internalTrack.id),c=Ic(a.presentationTimestamps,l=>a.samples[l.sampleIndex].isKeyFrame&&l.presentationTimestamp<=e);w(c!==-1),s=a.presentationTimestamps[c].sampleIndex,n=e<a.endTimestamp}return{fragmentIndex:i,sampleIndex:s,correctSampleFound:n}}async performFragmentedLookup(e,t,i,s){let n=this.internalTrack.demuxer,o=await n.fragmentLookupMutex.acquire();try{let{fragmentIndex:a,sampleIndex:c,correctSampleFound:u}=e();if(u){let T=this.internalTrack.fragments[a];return this.fetchPacketInFragment(T,c,s)}let l=n.metadataReader,h=await l.reader.source.getSize(),f=null,d=a,m=c,x=this.internalTrack.fragmentLookupTable?Z(this.internalTrack.fragmentLookupTable,t,T=>T.timestamp):-1,g=x!==-1?this.internalTrack.fragmentLookupTable[x]:null,_=!1;if(a===-1)l.pos=g?.moofOffset??0,_=l.pos===0;else{let T=this.internalTrack.fragments[a];!g||T.moofOffset>=g.moofOffset?(l.pos=T.moofOffset+T.moofSize,f=T):l.pos=g.moofOffset}for(;l.pos<h;){if(f){let v=f.trackData.get(this.internalTrack.id);if(v&&v.startTimestamp>i)break;if(f.nextFragment){l.pos=f.nextFragment.moofOffset+f.nextFragment.moofSize,f=f.nextFragment;continue}}await l.reader.loadRange(l.pos,l.pos+16);let T=l.pos,C=l.readBoxHeader();if(C.name==="moof"){let v=Ae(n.fragments,T,k=>k.moofOffset),E;v===-1?(l.pos=T,E=await n.readFragment()):E=n.fragments[v],f&&(f.nextFragment=E),f=E,_&&(E.isKnownToBeFirstFragment=!0,_=!1);let{fragmentIndex:D,sampleIndex:A,correctSampleFound:P}=e();if(P){let k=this.internalTrack.fragments[D];return this.fetchPacketInFragment(k,A,s)}D!==-1&&(d=D,m=A)}l.pos=T+C.totalSize}let y=null,S=d!==-1?this.internalTrack.fragments[d]:null;if(S&&(y=await this.fetchPacketInFragment(S,m,s)),!y&&g&&(!S||S.moofOffset<g.moofOffset)){let C=this.internalTrack.fragmentLookupTable[x-1]?.timestamp??-1/0;return this.performFragmentedLookup(e,C,i,s)}return y}finally{o()}}},dd=class extends iu{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{if(this.internalTrack.info.codec==="vp9"&&!this.internalTrack.info.vp9CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=e&&Vc(e.data)}else if(this.internalTrack.info.codec==="av1"&&!this.internalTrack.info.av1CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=e&&Hc(e.data)}return{codec:Gc(this.internalTrack.info),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}},fd=class extends iu{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:Nc(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},r0=(r,e)=>{if(r.presentationTimestamps){let t=Z(r.presentationTimestamps,e,i=>i.presentationTimestamp);return t===-1?-1:r.presentationTimestamps[t].sampleIndex}else{let t=Z(r.sampleTimingEntries,e,s=>s.startDecodeTimestamp);if(t===-1)return-1;let i=r.sampleTimingEntries[t];return i.startIndex+Math.min(Math.floor((e-i.startDecodeTimestamp)/i.delta),i.count-1)}},FA=(r,e)=>{let t=Z(r.sampleTimingEntries,e,_=>_.startIndex),i=r.sampleTimingEntries[t];if(!i||i.startIndex+i.count<=e)return null;let n=i.startDecodeTimestamp+(e-i.startIndex)*i.delta,o=Z(r.sampleCompositionTimeOffsets,e,_=>_.startIndex),a=r.sampleCompositionTimeOffsets[o];a&&e-a.startIndex<a.count&&(n+=a.offset);let c=r.sampleSizes[Math.min(e,r.sampleSizes.length-1)],u=Z(r.sampleToChunk,e,_=>_.startSampleIndex),l=r.sampleToChunk[u];w(l);let h=l.startChunkIndex+Math.floor((e-l.startSampleIndex)/l.samplesPerChunk),f=r.chunkOffsets[h],d=l.startSampleIndex+(h-l.startChunkIndex)*l.samplesPerChunk,m=0,x=f;if(r.sampleSizes.length===1)x+=c*(e-d),m+=c*l.samplesPerChunk;else for(let _=d;_<d+l.samplesPerChunk;_++){let y=r.sampleSizes[_];_<e&&(x+=y),m+=y}let g=i.delta;if(r.presentationTimestamps){let _=r.presentationTimestampIndexMap[e];w(_!==void 0),_<r.presentationTimestamps.length-1&&(g=r.presentationTimestamps[_+1].presentationTimestamp-n)}return{presentationTimestamp:n,duration:g,sampleOffset:x,sampleSize:c,chunkOffset:f,chunkSize:m,isKeyFrame:r.keySampleIndices?Ae(r.keySampleIndices,e,_=>_)!==-1:!0}},UA=(r,e)=>{if(!r.keySampleIndices)return e;let t=Z(r.keySampleIndices,e,i=>i);return r.keySampleIndices[t]??-1},OA=(r,e)=>{if(!r.keySampleIndices)return e+1;let t=Z(r.keySampleIndices,e,i=>i);return r.keySampleIndices[t+1]??-1},i0=(r,e)=>{r.startTimestamp+=e,r.endTimestamp+=e;for(let t of r.samples)t.presentationTimestamp+=e;for(let t of r.presentationTimestamps)t.presentationTimestamp+=e},GA=r=>{let[e,,,t]=r,i=Math.hypot(e,t),s=e/i,n=t/i;return-Math.atan2(n,s)*(180/Math.PI)};var md=[{id:I.SeekHead,flag:"seekHeadSeen"},{id:I.Info,flag:"infoSeen"},{id:I.Tracks,flag:"tracksSeen"},{id:I.Cues,flag:"cuesSeen"}],su=class extends Ct{constructor(e){super(e),this.readMetadataPromise=null,this.segments=[],this.currentSegment=null,this.currentTrack=null,this.currentCluster=null,this.currentBlock=null,this.currentCueTime=null,this.isWebM=!1,this.metadataReader=new Ei(e._mainReader),this.clusterReader=new Ei(new Et(e.source,64*2**20))}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.computeDuration()));return Math.max(0,...t)}async getTracks(){return await this.readMetadata(),this.segments.flatMap(e=>e.tracks.map(t=>t.inputTrack))}async getMimeType(){await this.readMetadata();let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.getCodecParameterString()));return Lx({isWebM:this.isWebM,hasVideo:this.segments.some(i=>i.tracks.some(s=>s.info?.type==="video")),hasAudio:this.segments.some(i=>i.tracks.some(s=>s.info?.type==="audio")),codecStrings:t.filter(Boolean)})}readMetadata(){return this.readMetadataPromise??=(async()=>{this.metadataReader.pos=0;let e=await this.input.source.getSize();for(;this.metadataReader.pos<=e-Zc;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+Ci);let{id:t,size:i}=this.metadataReader.readElementHeader(),s=this.metadataReader.pos;if(t===I.EBML)ki(i),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+i),this.readContiguousElements(this.metadataReader,i);else if(t===I.Segment&&(await this.readSegment(i),i===null))break;ki(i),this.metadataReader.pos=s+i}})()}async readSegment(e){let t=this.metadataReader.pos;this.currentSegment={seekHeadSeen:!1,infoSeen:!1,tracksSeen:!1,cuesSeen:!1,timestampScale:-1,timestampFactor:-1,duration:-1,seekEntries:[],tracks:[],cuePoints:[],dataStartPos:t,elementEndPos:e===null?await this.input.source.getSize():t+e,clusterSeekStartPos:t,clusters:[],clusterLookupMutex:new wt},this.segments.push(this.currentSegment),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+2**14);let i=!1;for(;this.metadataReader.pos<this.currentSegment.elementEndPos;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+Ci);let c=this.metadataReader.pos,{id:u,size:l}=this.metadataReader.readElementHeader(),h=this.metadataReader.pos,f=md.findIndex(d=>d.id===u);if(f!==-1){let d=md[f].flag;this.currentSegment[d]=!0,ki(l),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+l),this.readContiguousElements(this.metadataReader,l)}else u===I.Cluster&&(i||(i=!0,this.currentSegment.clusterSeekStartPos=c));if(this.currentSegment.infoSeen&&this.currentSegment.tracksSeen&&this.currentSegment.cuesSeen)break;if(this.currentSegment.seekHeadSeen){let d=this.currentSegment.infoSeen,m=this.currentSegment.tracksSeen,x=this.currentSegment.cuesSeen;for(let g of this.currentSegment.seekEntries)g.id===I.Info?d=!0:g.id===I.Tracks?m=!0:g.id===I.Cues&&(x=!0);if(d&&m&&x)break}if(l===null)break;this.metadataReader.pos=h+l,i||(this.currentSegment.clusterSeekStartPos=this.metadataReader.pos)}for(let c of md){if(this.currentSegment[c.flag])continue;let u=this.currentSegment.seekEntries.find(f=>f.id===c.id);if(!u)continue;this.metadataReader.pos=t+u.segmentPosition,await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+2**12);let{id:l,size:h}=this.metadataReader.readElementHeader();l===c.id&&(ki(h),this.currentSegment[c.flag]=!0,await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+h),this.readContiguousElements(this.metadataReader,h))}this.currentSegment.tracks.sort((c,u)=>Number(u.isDefault)-Number(c.isDefault)),this.currentSegment.cuePoints.sort((c,u)=>c.clusterPosition-u.clusterPosition);let s=this.currentSegment.tracks.map(c=>c.id),n=new Set,o=null,a=null;for(let c of this.currentSegment.cuePoints){if(c.clusterPosition!==o){for(let l of n)w(a),this.currentSegment.tracks.find(f=>f.id===l).cuePoints.push(a);for(let l of s)n.add(l)}if(a=c,!n.has(c.trackId))continue;this.currentSegment.tracks.find(l=>l.id===c.trackId).cuePoints.push(c),n.delete(c.trackId),o=c.clusterPosition}for(let c of n)w(a),this.currentSegment.tracks.find(l=>l.id===c).cuePoints.push(a);for(let c of this.currentSegment.tracks)c.cuePoints.sort((u,l)=>u.time-l.time);this.currentSegment=null}async readCluster(e){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+Ci);let t=this.metadataReader.pos,i=this.metadataReader.readElementHeader(),s=i.id,n=i.size,o=this.metadataReader.pos;n===null&&(this.clusterReader.pos=o,n=(await this.clusterReader.searchForNextElementId(rd,e.elementEndPos)??e.elementEndPos)-o),w(s===I.Cluster),this.clusterReader.pos=o,await this.clusterReader.reader.loadRange(this.clusterReader.pos,this.clusterReader.pos+n);let a={elementStartPos:t,elementEndPos:o+n,dataStartPos:o,timestamp:-1,trackData:new Map,nextCluster:null,isKnownToBeFirstCluster:!1};this.currentCluster=a,this.readContiguousElements(this.clusterReader,n);for(let[u,l]of a.trackData){let h=!1;w(l.blocks.length>0);for(let x=0;x<l.blocks.length;x++){let g=l.blocks[x];g.timestamp+=a.timestamp,h||=g.referencedTimestamps.length>0}h&&(l.blocks=NA(l.blocks)),l.presentationTimestamps=l.blocks.map((x,g)=>({timestamp:x.timestamp,blockIndex:g})).sort((x,g)=>x.timestamp-g.timestamp);for(let x=0;x<l.presentationTimestamps.length;x++){let g=l.presentationTimestamps[x],_=l.blocks[g.blockIndex];if(l.firstKeyFrameTimestamp===null&&_.isKeyFrame&&(l.firstKeyFrameTimestamp=_.timestamp),x<l.presentationTimestamps.length-1){let y=l.presentationTimestamps[x+1];_.duration=y.timestamp-_.timestamp}}let f=l.blocks[l.presentationTimestamps[0].blockIndex],d=l.blocks[he(l.presentationTimestamps).blockIndex];l.startTimestamp=f.timestamp,l.endTimestamp=d.timestamp+d.duration;let m=e.tracks.find(x=>x.id===u);if(m){let x=Z(m.clusters,a.elementStartPos,_=>_.elementStartPos);if(m.clusters.splice(x+1,0,a),l.firstKeyFrameTimestamp!==null){let _=Z(m.clustersWithKeyFrame,a.elementStartPos,y=>y.elementStartPos);m.clustersWithKeyFrame.splice(_+1,0,a)}}}let c=Z(e.clusters,t,u=>u.elementStartPos);return e.clusters.splice(c+1,0,a),this.currentCluster=null,a}getTrackDataInCluster(e,t){let i=e.trackData.get(t);return i||(i={startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,blocks:[],presentationTimestamps:[]},e.trackData.set(t,i)),i}readContiguousElements(e,t){let i=e.pos;for(;e.pos-i<=t-Zc;)this.traverseElement(e)}traverseElement(e){let{id:t,size:i}=e.readElementHeader(),s=e.pos;switch(ki(i),t){case I.DocType:this.isWebM=e.readString(i)==="webm";break;case I.Seek:{if(!this.currentSegment)break;let n={id:-1,segmentPosition:-1};this.currentSegment.seekEntries.push(n),this.readContiguousElements(e,i),(n.id===-1||n.segmentPosition===-1)&&this.currentSegment.seekEntries.pop()}break;case I.SeekID:{let n=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!n)break;n.id=e.readUnsignedInt(i)}break;case I.SeekPosition:{let n=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!n)break;n.segmentPosition=e.readUnsignedInt(i)}break;case I.TimestampScale:{if(!this.currentSegment)break;this.currentSegment.timestampScale=e.readUnsignedInt(i),this.currentSegment.timestampFactor=1e9/this.currentSegment.timestampScale}break;case I.Duration:{if(!this.currentSegment)break;this.currentSegment.duration=e.readFloat(i)}break;case I.TrackEntry:{if(!this.currentSegment)break;if(this.currentTrack={id:-1,segment:this.currentSegment,demuxer:this,clusters:[],clustersWithKeyFrame:[],cuePoints:[],isDefault:!1,inputTrack:null,codecId:null,codecPrivate:null,languageCode:nt,info:null},this.readContiguousElements(e,i),this.currentTrack&&this.currentTrack.id!==-1&&this.currentTrack.codecId&&this.currentTrack.info){let n=this.currentTrack.codecId.indexOf("/"),o=n===-1?this.currentTrack.codecId:this.currentTrack.codecId.slice(0,n);if(this.currentTrack.info.type==="video"&&this.currentTrack.info.width!==-1&&this.currentTrack.info.height!==-1){this.currentTrack.codecId===Dt.avc?(this.currentTrack.info.codec="avc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Dt.hevc?(this.currentTrack.info.codec="hevc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Dt.vp8?this.currentTrack.info.codec="vp8":o===Dt.vp9?this.currentTrack.info.codec="vp9":o===Dt.av1&&(this.currentTrack.info.codec="av1");let a=this.currentTrack,c=new gr(new pd(a));this.currentTrack.inputTrack=c,this.currentSegment.tracks.push(this.currentTrack)}else if(this.currentTrack.info.type==="audio"&&this.currentTrack.info.numberOfChannels!==-1&&this.currentTrack.info.sampleRate!==-1){o===Dt.aac?(this.currentTrack.info.codec="aac",this.currentTrack.info.aacCodecInfo={isMpeg2:this.currentTrack.codecId.includes("MPEG2")},this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Dt.mp3?this.currentTrack.info.codec="mp3":o===Dt.opus?(this.currentTrack.info.codec="opus",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Dt.vorbis?(this.currentTrack.info.codec="vorbis",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Dt.flac?(this.currentTrack.info.codec="flac",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId==="A_PCM/INT/LIT"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32"):this.currentTrack.codecId==="A_PCM/INT/BIG"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16be":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24be":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32be"):this.currentTrack.codecId==="A_PCM/FLOAT/IEEE"&&(this.currentTrack.info.bitDepth===32?this.currentTrack.info.codec="pcm-f32":this.currentTrack.info.bitDepth===64&&(this.currentTrack.info.codec="pcm-f64"));let a=this.currentTrack,c=new Ze(new gd(a));this.currentTrack.inputTrack=c,this.currentSegment.tracks.push(this.currentTrack)}}this.currentTrack=null}break;case I.TrackNumber:{if(!this.currentTrack)break;this.currentTrack.id=e.readUnsignedInt(i)}break;case I.TrackType:{if(!this.currentTrack)break;let n=e.readUnsignedInt(i);n===1?this.currentTrack.info={type:"video",width:-1,height:-1,rotation:0,codec:null,codecDescription:null,colorSpace:null}:n===2&&(this.currentTrack.info={type:"audio",numberOfChannels:-1,sampleRate:-1,bitDepth:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case I.FlagEnabled:{if(!this.currentTrack)break;e.readUnsignedInt(i)||(this.currentSegment.tracks.pop(),this.currentTrack=null)}break;case I.FlagDefault:{if(!this.currentTrack)break;this.currentTrack.isDefault=!!e.readUnsignedInt(i)}break;case I.CodecID:{if(!this.currentTrack)break;this.currentTrack.codecId=e.readString(i)}break;case I.CodecPrivate:{if(!this.currentTrack)break;this.currentTrack.codecPrivate=e.readBytes(i)}break;case I.Language:{if(!this.currentTrack)break;this.currentTrack.languageCode=e.readString(i),us(this.currentTrack.languageCode)||(this.currentTrack.languageCode=nt)}break;case I.Video:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e,i)}break;case I.PixelWidth:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.width=e.readUnsignedInt(i)}break;case I.PixelHeight:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.height=e.readUnsignedInt(i)}break;case I.Colour:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.colorSpace={},this.readContiguousElements(e,i)}break;case I.MatrixCoefficients:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let n=e.readUnsignedInt(i),o=Mc[n]??null;this.currentTrack.info.colorSpace.matrix=o}break;case I.Range:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;this.currentTrack.info.colorSpace.fullRange=e.readUnsignedInt(i)===2}break;case I.TransferCharacteristics:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let n=e.readUnsignedInt(i),o=Dc[n]??null;this.currentTrack.info.colorSpace.transfer=o}break;case I.Primaries:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let n=e.readUnsignedInt(i),o=Rc[n]??null;this.currentTrack.info.colorSpace.primaries=o}break;case I.Projection:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e,i)}break;case I.ProjectionPoseRoll:{if(this.currentTrack?.info?.type!=="video")break;let o=-e.readFloat(i);try{this.currentTrack.info.rotation=Bc(o)}catch{}}break;case I.Audio:{if(this.currentTrack?.info?.type!=="audio")break;this.readContiguousElements(e,i)}break;case I.SamplingFrequency:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.sampleRate=e.readFloat(i)}break;case I.Channels:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.numberOfChannels=e.readUnsignedInt(i)}break;case I.BitDepth:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.bitDepth=e.readUnsignedInt(i)}break;case I.CuePoint:{if(!this.currentSegment)break;this.readContiguousElements(e,i),this.currentCueTime=null}break;case I.CueTime:this.currentCueTime=e.readUnsignedInt(i);break;case I.CueTrackPositions:{if(this.currentCueTime===null)break;w(this.currentSegment);let n={time:this.currentCueTime,trackId:-1,clusterPosition:-1};this.currentSegment.cuePoints.push(n),this.readContiguousElements(e,i),(n.trackId===-1||n.clusterPosition===-1)&&this.currentSegment.cuePoints.pop()}break;case I.CueTrack:{let n=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!n)break;n.trackId=e.readUnsignedInt(i)}break;case I.CueClusterPosition:{let n=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!n)break;w(this.currentSegment),n.clusterPosition=this.currentSegment.dataStartPos+e.readUnsignedInt(i)}break;case I.Timestamp:{if(!this.currentCluster)break;this.currentCluster.timestamp=e.readUnsignedInt(i)}break;case I.SimpleBlock:{if(!this.currentCluster)break;let n=e.readVarInt(),o=e.readS16(),c=!!(e.readU8()&128);this.getTrackDataInCluster(this.currentCluster,n).blocks.push({timestamp:o,duration:0,isKeyFrame:c,referencedTimestamps:[],data:e.readBytes(i-(e.pos-s))})}break;case I.BlockGroup:{if(!this.currentCluster)break;if(this.readContiguousElements(e,i),this.currentBlock){for(let n=0;n<this.currentBlock.referencedTimestamps.length;n++)this.currentBlock.referencedTimestamps[n]+=this.currentBlock.timestamp;this.currentBlock=null}}break;case I.Block:{if(!this.currentCluster)break;let n=e.readVarInt(),o=e.readS16(),a=e.readU8(),c=this.getTrackDataInCluster(this.currentCluster,n);this.currentBlock={timestamp:o,duration:0,isKeyFrame:!0,referencedTimestamps:[],data:e.readBytes(i-(e.pos-s))},c.blocks.push(this.currentBlock)}break;case I.BlockDuration:{if(!this.currentBlock)break;this.currentBlock.duration=e.readUnsignedInt(i)}break;case I.ReferenceBlock:{if(!this.currentBlock)break;this.currentBlock.isKeyFrame=!1;let n=e.readSignedInt(i);this.currentBlock.referencedTimestamps.push(n)}break}e.pos=s+i}},nu=class{constructor(e){this.internalTrack=e,this.packetToClusterLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getLanguageCode(){return this.internalTrack.languageCode}async getFirstTimestamp(){return(await this.getFirstPacket({metadataOnly:!0}))?.timestamp??0}getTimeResolution(){return this.internalTrack.segment.timestampFactor}async getFirstPacket(e){return this.performClusterLookup(()=>{let t=this.internalTrack.segment.clusters[0]??null;if(t?.isKnownToBeFirstCluster){let i=t;for(;i;){if(i.trackData.get(this.internalTrack.id))return{clusterIndex:Ae(this.internalTrack.clusters,i.elementStartPos,n=>n.elementStartPos),blockIndex:0,correctBlockFound:!0};i=i.nextCluster}}return{clusterIndex:-1,blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,e)}intoTimescale(e){return cs(e*this.internalTrack.segment.timestampFactor,14)}async getPacket(e,t){let i=this.intoTimescale(e);return this.performClusterLookup(()=>this.findBlockInClustersForTimestamp(i),i,i,t)}async getNextPacket(e,t){let i=this.packetToClusterLocation.get(e);if(i===void 0)throw new Error("Packet was not created from this track.");let s=i.cluster.trackData.get(this.internalTrack.id),n=s.blocks[i.blockIndex],o=Ae(this.internalTrack.clusters,i.cluster.elementStartPos,a=>a.elementStartPos);return w(o!==-1),this.performClusterLookup(()=>{if(i.blockIndex+1<s.blocks.length)return{clusterIndex:o,blockIndex:i.blockIndex+1,correctBlockFound:!0};{let a=i.cluster;for(;a.nextCluster;)if(a=a.nextCluster,a.trackData.get(this.internalTrack.id)){let u=Ae(this.internalTrack.clusters,a.elementStartPos,l=>l.elementStartPos);return w(u!==-1),{clusterIndex:u,blockIndex:0,correctBlockFound:!0}}return{clusterIndex:o,blockIndex:-1,correctBlockFound:!1}}},n.timestamp,1/0,t)}async getKeyPacket(e,t){let i=this.intoTimescale(e);return this.performClusterLookup(()=>this.findKeyBlockInClustersForTimestamp(i),i,i,t)}async getNextKeyPacket(e,t){let i=this.packetToClusterLocation.get(e);if(i===void 0)throw new Error("Packet was not created from this track.");let s=i.cluster.trackData.get(this.internalTrack.id),n=s.blocks[i.blockIndex],o=Ae(this.internalTrack.clusters,i.cluster.elementStartPos,a=>a.elementStartPos);return w(o!==-1),this.performClusterLookup(()=>{let a=s.blocks.findIndex((c,u)=>c.isKeyFrame&&u>i.blockIndex);if(a!==-1)return{clusterIndex:o,blockIndex:a,correctBlockFound:!0};{let c=i.cluster;for(;c.nextCluster;){c=c.nextCluster;let u=c.trackData.get(this.internalTrack.id);if(u&&u.firstKeyFrameTimestamp!==null){let l=Ae(this.internalTrack.clusters,c.elementStartPos,f=>f.elementStartPos);w(l!==-1);let h=u.blocks.findIndex(f=>f.isKeyFrame);return w(h!==-1),{clusterIndex:l,blockIndex:h,correctBlockFound:!0}}}return{clusterIndex:o,blockIndex:-1,correctBlockFound:!1}}},n.timestamp,1/0,t)}async fetchPacketInCluster(e,t,i){if(t===-1)return null;let n=e.trackData.get(this.internalTrack.id).blocks[t];w(n);let o=i.metadataOnly?ot:n.data,a=n.timestamp/this.internalTrack.segment.timestampFactor,c=n.duration/this.internalTrack.segment.timestampFactor,u=new ge(o,n.isKeyFrame?"key":"delta",a,c,e.dataStartPos+t,n.data.byteLength);return this.packetToClusterLocation.set(u,{cluster:e,blockIndex:t}),u}findBlockInClustersForTimestamp(e){let t=Z(this.internalTrack.clusters,e,n=>n.trackData.get(this.internalTrack.id).startTimestamp),i=-1,s=!1;if(t!==-1){let o=this.internalTrack.clusters[t].trackData.get(this.internalTrack.id),a=Z(o.presentationTimestamps,e,c=>c.timestamp);w(a!==-1),i=o.presentationTimestamps[a].blockIndex,s=e<o.endTimestamp}return{clusterIndex:t,blockIndex:i,correctBlockFound:s}}findKeyBlockInClustersForTimestamp(e){let t=Z(this.internalTrack.clustersWithKeyFrame,e,o=>o.trackData.get(this.internalTrack.id).firstKeyFrameTimestamp),i=-1,s=-1,n=!1;if(t!==-1){let o=this.internalTrack.clustersWithKeyFrame[t];i=Ae(this.internalTrack.clusters,o.elementStartPos,l=>l.elementStartPos),w(i!==-1);let a=o.trackData.get(this.internalTrack.id),c=Ic(a.presentationTimestamps,l=>a.blocks[l.blockIndex].isKeyFrame&&l.timestamp<=e);w(c!==-1),s=a.presentationTimestamps[c].blockIndex,n=e<a.endTimestamp}return{clusterIndex:i,blockIndex:s,correctBlockFound:n}}async performClusterLookup(e,t,i,s){let{demuxer:n,segment:o}=this.internalTrack,a=await o.clusterLookupMutex.acquire();try{let{clusterIndex:c,blockIndex:u,correctBlockFound:l}=e();if(l){let C=this.internalTrack.clusters[c];return this.fetchPacketInCluster(C,u,s)}let h=n.metadataReader,f=n.clusterReader,d=null,m=c,x=u,g=Z(this.internalTrack.cuePoints,t,C=>C.time),_=g!==-1?this.internalTrack.cuePoints[g]:null,y=!1;if(c===-1)h.pos=_?.clusterPosition??o.clusterSeekStartPos,y=h.pos===o.clusterSeekStartPos;else{let C=this.internalTrack.clusters[c];!_||C.elementStartPos>=_.clusterPosition?(h.pos=C.elementEndPos,d=C):h.pos=_.clusterPosition}for(;h.pos<o.elementEndPos;){if(d){let P=d.trackData.get(this.internalTrack.id);if(P&&P.startTimestamp>i)break;if(d.nextCluster){h.pos=d.nextCluster.elementEndPos,d=d.nextCluster;continue}}await h.reader.loadRange(h.pos,h.pos+Ci);let C=h.pos,v=h.readElementHeader(),E=v.id,D=v.size,A=h.pos;if(E===I.Cluster){let P=Ae(o.clusters,C,Tt=>Tt.elementStartPos),k;P===-1?(h.pos=C,k=await n.readCluster(o)):k=o.clusters[P],d&&(d.nextCluster=k),d=k,y&&(k.isKnownToBeFirstCluster=!0,y=!1);let{clusterIndex:G,blockIndex:j,correctBlockFound:be}=e();if(be){let Tt=this.internalTrack.clusters[G];return this.fetchPacketInCluster(Tt,j,s)}G!==-1&&(m=G,x=j)}if(D===null){E===I.Cluster?(w(d),D=d.elementEndPos-A):(f.pos=A,D=(await f.searchForNextElementId(rd,o.elementEndPos)??o.elementEndPos)-A);let P=A+D;if(P>o.elementEndPos-Zc)break;if(f.pos=P,f.readElementId()===I.Segment){o.elementEndPos=P;break}}h.pos=A+D}let S=null,T=m!==-1?this.internalTrack.clusters[m]:null;if(T&&(S=await this.fetchPacketInCluster(T,x,s)),!S&&_&&(!T||T.elementStartPos<_.clusterPosition)){let v=this.internalTrack.cuePoints[g-1]?.time??-1/0;return this.performClusterLookup(e,v,i,s)}return S}finally{a()}}},pd=class extends nu{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.info.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{let e=null;return(this.internalTrack.info.codec==="vp9"||this.internalTrack.info.codec==="av1"||this.internalTrack.info.codec==="avc"&&!this.internalTrack.info.codecDescription||this.internalTrack.info.codec==="hevc"&&!this.internalTrack.info.codecDescription)&&(e=await this.getFirstPacket({})),{codec:Gc({width:this.internalTrack.info.width,height:this.internalTrack.info.height,codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,colorSpace:this.internalTrack.info.colorSpace,avcCodecInfo:this.internalTrack.info.codec==="avc"&&e?Lc(e.data):null,hevcCodecInfo:this.internalTrack.info.codec==="hevc"&&e?zc(e.data):null,vp9CodecInfo:this.internalTrack.info.codec==="vp9"&&e?Vc(e.data):null,av1CodecInfo:this.internalTrack.info.codec==="av1"&&e?Hc(e.data):null}),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}},gd=class extends nu{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:Nc({codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,aacCodecInfo:this.internalTrack.info.aacCodecInfo}),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},NA=r=>{let e=new Map;for(let n=0;n<r.length;n++){let o=r[n];e.set(o.timestamp,o)}let t=new Set,i=[],s=n=>{if(!t.has(n)){t.add(n);for(let o=0;o<n.referencedTimestamps.length;o++){let a=n.referencedTimestamps[o],c=e.get(a);c&&s(c)}i.push(n)}};for(let n=0;n<r.length;n++)s(r[n]);return i};var vs=class{constructor(e){this.reader=e,this.pos=0,this.fileSize=null}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,!1)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!1)}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}readId3(){return this.readAscii(3)!=="ID3"?(this.pos-=3,null):(this.pos+=3,{size:LA(this.readU32())})}readNextFrameHeader(e){for(w(this.fileSize),e??=this.fileSize;this.pos<=e-4;){let t=this.readU32();this.pos-=4;let i=Wx(t,this);if(i)return i}return null}},LA=r=>{let e=2130706432,t=0;for(;e!==0;)t>>=1,t|=r&e,e>>=8;return t};var ou=class extends Ct{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.allSamples=[],this.tracks=[],this.reader=new vs(e._mainReader)}async readMetadata(){return this.metadataPromise??=(async()=>{let e=await this.input.source.getSize();this.reader.fileSize=e,await this.reader.reader.loadRange(0,e);let t=this.reader.readId3();t&&(this.reader.pos+=t.size);let i=0;for(;;){let s=this.reader.readNextFrameHeader();if(!s)break;let n=Hx(s.mpegVersionId,s.channel);this.reader.pos=s.startPos+n;let o=this.reader.readU32(),a=o===zx||o===Vx;if(this.reader.pos=s.startPos+s.totalSize-1,a)continue;this.firstFrameHeader||(this.firstFrameHeader=s);let c=s.audioSamplesInFrame/s.sampleRate,u={timestamp:i/s.sampleRate,duration:c,dataStart:s.startPos,dataSize:s.totalSize};this.allSamples.push(u),i+=s.audioSamplesInFrame}if(!this.firstFrameHeader)throw new Error("No MP3 frames found.");this.tracks=[new Ze(new _d(this))]})()}async getMimeType(){return"audio/mpeg"}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){await this.readMetadata();let e=he(this.allSamples);return w(e),e.timestamp+e.duration}},_d=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return w(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate/this.demuxer.firstFrameHeader.audioSamplesInFrame}computeDuration(){return this.demuxer.computeDuration()}getLanguageCode(){return nt}getCodec(){return"mp3"}getNumberOfChannels(){return w(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.channel===3?1:2}getSampleRate(){return w(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate}async getDecoderConfig(){return w(this.demuxer.firstFrameHeader),{codec:"mp3",numberOfChannels:this.demuxer.firstFrameHeader.channel===3?1:2,sampleRate:this.demuxer.firstFrameHeader.sampleRate}}getPacketAtIndex(e,t){if(e===-1)return null;let i=this.demuxer.allSamples[e];if(!i)return null;let s;return t.metadataOnly?s=ot:(this.demuxer.reader.pos=i.dataStart,s=this.demuxer.reader.readBytes(i.dataSize)),new ge(s,"key",i.timestamp,i.duration,e,i.dataSize)}async getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,t){let i=Ae(this.demuxer.allSamples,e.timestamp,s=>s.timestamp);if(i===-1)throw new Error("Packet was not created from this track.");return this.getPacketAtIndex(i+1,t)}async getPacket(e,t){let i=Z(this.demuxer.allSamples,e,s=>s.timestamp);return this.getPacketAtIndex(i,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var au=class extends Ct{constructor(e){super(e),this.readingMutex=new wt,this.metadataPromise=null,this.fileSize=null,this.bitstreams=[],this.tracks=[],this.reader=new ms(new Et(e.source,64*2**20))}async readMetadata(){return this.metadataPromise??=(async()=>{for(this.fileSize=await this.input.source.getSize();this.reader.pos<this.fileSize-ps;){await this.reader.reader.loadRange(this.reader.pos,this.reader.pos+Ai);let e=this.reader.readPageHeader();if(!e||!!!(e.headerType&2))break;this.bitstreams.push({serialNumber:e.serialNumber,bosPage:e,description:null,numberOfChannels:-1,sampleRate:-1,codecInfo:{codec:null,vorbisInfo:null,opusInfo:null},lastMetadataPacket:null}),this.reader.pos=e.headerStartPos+e.totalSize}for(let e of this.bitstreams){let t=await this.readPacket(this.reader,e.bosPage,0);t&&(t.data.byteLength>=7&&t.data[0]===1&&t.data[1]===118&&t.data[2]===111&&t.data[3]===114&&t.data[4]===98&&t.data[5]===105&&t.data[6]===115?await this.readVorbisMetadata(t,e):t.data.byteLength>=8&&t.data[0]===79&&t.data[1]===112&&t.data[2]===117&&t.data[3]===115&&t.data[4]===72&&t.data[5]===101&&t.data[6]===97&&t.data[7]===100&&await this.readOpusMetadata(t,e),e.codecInfo.codec!==null&&this.tracks.push(new Ze(new bd(e,this))))}})()}async readVorbisMetadata(e,t){let i=await this.findNextPacketStart(this.reader,e);if(!i)return;let s=await this.readPacket(this.reader,i.startPage,i.startSegmentIndex);if(!s||(i=await this.findNextPacketStart(this.reader,s),!i))return;let n=await this.readPacket(this.reader,i.startPage,i.startSegmentIndex);if(!n||s.data[0]!==3||n.data[0]!==5)return;let o=[],a=h=>{for(;o.push(Math.min(255,h)),!(h<255);)h-=255};a(e.data.length),a(s.data.length);let c=new Uint8Array(1+o.length+e.data.length+s.data.length+n.data.length);c[0]=o.length,c.set(o,1),c.set(e.data,1+o.length),c.set(s.data,1+o.length+e.data.length),c.set(n.data,1+o.length+e.data.length+s.data.length),t.codecInfo.codec="vorbis",t.description=c,t.lastMetadataPacket=n;let u=St(e.data);t.numberOfChannels=u.getUint8(11),t.sampleRate=u.getUint32(12,!0);let l=u.getUint8(28);t.codecInfo.vorbisInfo={blocksizes:[1<<(l&15),1<<(l>>4)],modeBlockflags:vx(n.data).modeBlockflags}}async readOpusMetadata(e,t){let i=await this.findNextPacketStart(this.reader,e);if(!i)return;let s=await this.readPacket(this.reader,i.startPage,i.startSegmentIndex);if(!s)return;t.codecInfo.codec="opus",t.description=e.data,t.lastMetadataPacket=s;let n=Wc(e.data);t.numberOfChannels=n.outputChannelCount,t.sampleRate=n.inputSampleRate,t.codecInfo.opusInfo={preSkip:n.preSkip}}async readPacket(e,t,i){w(i<t.lacingValues.length),w(this.fileSize);let s=0;for(let f=0;f<i;f++)s+=t.lacingValues[f];let n=t,o=s,a=i,c=[];e:for(;;){await e.reader.loadRange(n.dataStartPos,n.dataStartPos+n.dataSize),e.pos=n.dataStartPos;let f=e.readBytes(n.dataSize);for(;;){if(a===n.lacingValues.length){c.push(f.subarray(s,o));break}let d=n.lacingValues[a];if(o+=d,d<255){c.push(f.subarray(s,o));break e}a++}for(;;){if(e.pos=n.headerStartPos+n.totalSize,e.pos>=this.fileSize-ps)return null;await e.reader.loadRange(e.pos,e.pos+Ai);let d=e.readPageHeader();if(!d)return null;if(n=d,n.serialNumber===t.serialNumber)break}s=0,o=0,a=0}let u=c.reduce((f,d)=>f+d.length,0),l=new Uint8Array(u),h=0;for(let f=0;f<c.length;f++){let d=c[f];l.set(d,h),h+=d.length}return{data:l,endPage:n,endSegmentIndex:a}}async findNextPacketStart(e,t){if(w(this.fileSize!==null),t.endSegmentIndex<t.endPage.lacingValues.length-1)return{startPage:t.endPage,startSegmentIndex:t.endSegmentIndex+1};if(!!(t.endPage.headerType&4))return null;for(e.pos=t.endPage.headerStartPos+t.endPage.totalSize;;){if(e.pos>=this.fileSize-ps)return null;await e.reader.loadRange(e.pos,e.pos+Ai);let s=e.readPageHeader();if(!s)return null;if(s.serialNumber===t.endPage.serialNumber)return{startPage:s,startSegmentIndex:0};e.pos=s.headerStartPos+s.totalSize}}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(t=>t.getCodecParameterString()));return Xx({codecStrings:e.filter(Boolean)})}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.computeDuration()));return Math.max(0,...t)}},bd=class{constructor(e,t){this.bitstream=e,this.demuxer=t,this.encodedPacketToMetadata=new WeakMap,this.internalSampleRate=e.codecInfo.codec==="opus"?cx:e.sampleRate}getId(){return this.bitstream.serialNumber}getNumberOfChannels(){return this.bitstream.numberOfChannels}getSampleRate(){return this.bitstream.sampleRate}getTimeResolution(){return this.bitstream.sampleRate}getCodec(){return this.bitstream.codecInfo.codec}async getDecoderConfig(){return w(this.bitstream.codecInfo.codec),{codec:this.bitstream.codecInfo.codec,numberOfChannels:this.bitstream.numberOfChannels,sampleRate:this.bitstream.sampleRate,description:this.bitstream.description??void 0}}getLanguageCode(){return nt}async getFirstTimestamp(){return 0}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}granulePositionToTimestampInSamples(e){return this.bitstream.codecInfo.codec==="opus"?(w(this.bitstream.codecInfo.opusInfo),e-this.bitstream.codecInfo.opusInfo.preSkip):e}createEncodedPacketFromOggPacket(e,t,i){if(!e)return null;let{durationInSamples:s,vorbisBlockSize:n}=jx(e.data,this.bitstream.codecInfo,t.vorbisLastBlocksize),o=new ge(i.metadataOnly?ot:e.data,"key",Math.max(0,t.timestampInSamples)/this.internalSampleRate,s/this.internalSampleRate,e.endPage.headerStartPos+e.endSegmentIndex,e.data.byteLength);return this.encodedPacketToMetadata.set(o,{packet:e,timestampInSamples:t.timestampInSamples,durationInSamples:s,vorbisBlockSize:n}),o}async getFirstPacket(e,t=!0){let i=t?await this.demuxer.readingMutex.acquire():null;try{w(this.bitstream.lastMetadataPacket);let s=await this.demuxer.findNextPacketStart(this.demuxer.reader,this.bitstream.lastMetadataPacket);if(!s)return null;let n=0;this.bitstream.codecInfo.codec==="opus"&&(w(this.bitstream.codecInfo.opusInfo),n-=this.bitstream.codecInfo.opusInfo.preSkip);let o=await this.demuxer.readPacket(this.demuxer.reader,s.startPage,s.startSegmentIndex);return this.createEncodedPacketFromOggPacket(o,{timestampInSamples:n,vorbisLastBlocksize:null},e)}finally{i?.()}}async getNextPacket(e,t){let i=await this.demuxer.readingMutex.acquire();try{let s=this.encodedPacketToMetadata.get(e);if(!s)throw new Error("Packet was not created from this track.");let n=await this.demuxer.findNextPacketStart(this.demuxer.reader,s.packet);if(!n)return null;let o=s.timestampInSamples+s.durationInSamples,a=await this.demuxer.readPacket(this.demuxer.reader,n.startPage,n.startSegmentIndex);return this.createEncodedPacketFromOggPacket(a,{timestampInSamples:o,vorbisLastBlocksize:s.vorbisBlockSize},t)}finally{i()}}async getPacket(e,t){let i=await this.demuxer.readingMutex.acquire();try{w(this.demuxer.fileSize!==null);let s=cs(e*this.internalSampleRate,14);if(s===0)return this.getFirstPacket(t,!1);if(s<0)return null;let n=this.demuxer.reader;w(this.bitstream.lastMetadataPacket);let o=await this.demuxer.findNextPacketStart(n,this.bitstream.lastMetadataPacket);if(!o)return null;let a=o.startPage,c=this.demuxer.fileSize,u=[a];e:for(;a.headerStartPos+a.totalSize<c;){let T=a.headerStartPos,C=Math.floor((T+c)/2),v=C;for(;;){let E=Math.min(v+Yx,c-ps);if(await n.reader.loadRange(v,E),n.pos=v,!n.findNextPageHeader(E)){c=C+ps;continue e}await n.reader.loadRange(n.pos,n.pos+Ai);let A=n.readPageHeader();w(A);let P=!1;if(A.serialNumber===this.bitstream.serialNumber)P=!0;else{await n.reader.loadRange(A.headerStartPos,A.headerStartPos+A.totalSize),n.pos=A.headerStartPos;let G=n.readBytes(A.totalSize);P=qx(G)===A.checksum}if(!P){v=A.headerStartPos+4;continue}if(P&&A.serialNumber!==this.bitstream.serialNumber){v=A.headerStartPos+A.totalSize;continue}if(A.granulePosition===-1){v=A.headerStartPos+A.totalSize;continue}this.granulePositionToTimestampInSamples(A.granulePosition)>s?c=A.headerStartPos:(a=A,u.push(A));continue e}}let l=o.startPage;for(let T of u){if(T.granulePosition===a.granulePosition)break;(!l||T.headerStartPos>l.headerStartPos)&&(l=T)}let h=l,f=[h];for(;!(h.serialNumber===this.bitstream.serialNumber&&h.granulePosition===a.granulePosition);){n.pos=h.headerStartPos+h.totalSize,await n.reader.loadRange(n.pos,n.pos+Ai);let T=n.readPageHeader();w(T),h=T,h.serialNumber===this.bitstream.serialNumber&&f.push(h)}w(h.granulePosition!==-1);let d=null,m,x,g=h,_=0;if(h.headerStartPos===o.startPage.headerStartPos)m=this.granulePositionToTimestampInSamples(0),x=!0,d=0;else{m=0,x=!1;for(let v=h.lacingValues.length-1;v>=0;v--)if(h.lacingValues[v]<255){d=v+1;break}if(d===null)throw new Error("Invalid page with granule position: no packets end on this page.");_=d-1;let T={data:ot,endPage:g,endSegmentIndex:_};if(await this.demuxer.findNextPacketStart(n,T)){let v=n0(f,h,d);w(v);let E=s0(f,v.page,v.segmentIndex);E&&(h=E.page,d=E.segmentIndex)}else for(;;){let v=n0(f,h,d);if(!v)break;let E=s0(f,v.page,v.segmentIndex);if(!E)break;if(h=E.page,d=E.segmentIndex,v.page.headerStartPos!==g.headerStartPos){g=v.page,_=v.segmentIndex;break}}}let y=null,S=null;for(;h!==null;){w(d!==null);let T=await this.demuxer.readPacket(n,h,d);if(!T)break;if(!(h.headerStartPos===o.startPage.headerStartPos&&d<o.startSegmentIndex)){let E=this.createEncodedPacketFromOggPacket(T,{timestampInSamples:m,vorbisLastBlocksize:S?.vorbisBlockSize??null},t);w(E);let D=this.encodedPacketToMetadata.get(E);if(w(D),!x&&T.endPage.headerStartPos===g.headerStartPos&&T.endSegmentIndex===_?(m=this.granulePositionToTimestampInSamples(h.granulePosition),x=!0,E=this.createEncodedPacketFromOggPacket(T,{timestampInSamples:m-D.durationInSamples,vorbisLastBlocksize:S?.vorbisBlockSize??null},t),w(E),D=this.encodedPacketToMetadata.get(E),w(D)):m+=D.durationInSamples,y=E,S=D,x&&(Math.max(m,0)>s||Math.max(D.timestampInSamples,0)===s))break}let v=await this.demuxer.findNextPacketStart(n,T);if(!v)break;h=v.startPage,d=v.startSegmentIndex}return y}finally{i()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}},s0=(r,e,t)=>{let i=e,s=t;e:for(;;){for(s--,s;s>=0;s--)if(i.lacingValues[s]<255){s++;break e}if(w(s===-1),!(i.headerType&1)){s=0;break}let o=Gh(r,a=>a.headerStartPos<i.headerStartPos);if(!o)return null;i=o,s=i.lacingValues.length}if(w(s!==-1),s===i.lacingValues.length){let n=r[r.indexOf(i)+1];w(n),i=n,s=0}return{page:i,segmentIndex:s}},n0=(r,e,t)=>{if(t>0)return{page:e,segmentIndex:t-1};let i=Gh(r,s=>s.headerStartPos<e.headerStartPos);return i?{page:i,segmentIndex:i.lacingValues.length-1}:null};var qt=class{},io=class extends qt{async _getMajorBrand(e){if(await e._mainReader.source.getSize()<12)return null;let i=new Mi(e._mainReader);return i.pos=4,i.readAscii(4)!=="ftyp"?null:i.readAscii(4)}_createDemuxer(e){return new ru(e)}},cu=class extends io{async _canReadInput(e){let t=await this._getMajorBrand(e);return!!t&&t!=="qt "}get name(){return"MP4"}get mimeType(){return"video/mp4"}},uu=class extends io{async _canReadInput(e){return await this._getMajorBrand(e)==="qt "}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}},so=class extends qt{async isSupportedEBMLOfDocType(e,t){if(await e._mainReader.source.getSize()<8)return!1;let s=new Ei(e._mainReader),n=s.readVarIntSize();if(n<1||n>8||s.readUnsignedInt(n)!==I.EBML)return!1;let a=s.readElementSize();if(a===null)return!1;let c=s.pos;for(;s.pos<c+a;){let{id:u,size:l}=s.readElementHeader(),h=s.pos;if(l===null)return!1;switch(u){case I.EBMLVersion:if(s.readUnsignedInt(l)!==1)return!1;break;case I.EBMLReadVersion:if(s.readUnsignedInt(l)!==1)return!1;break;case I.DocType:if(s.readString(l)!==t)return!1;break;case I.DocTypeVersion:if(s.readUnsignedInt(l)>4)return!1;break}s.pos=h+l}return!0}_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"matroska")}_createDemuxer(e){return new su(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}},lu=class extends so{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}},hu=class extends qt{async _canReadInput(e){let t=await e._mainReader.source.getSize();if(t<4)return!1;let i=new vs(e._mainReader);i.fileSize=t;let s=i.readId3();s&&(i.pos+=s.size);let n=i.pos;await i.reader.loadRange(i.pos,i.pos+4096);let o=i.readNextFrameHeader(Math.min(n+4096,t));if(!o)return!1;if(s)return!0;i.pos=o.startPos+o.totalSize,await i.reader.loadRange(i.pos,i.pos+4);let a=i.readNextFrameHeader(i.pos+4);return!(!a||o.channel!==a.channel||o.sampleRate!==a.sampleRate)}_createDemuxer(e){return new ou(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}},du=class extends qt{async _canReadInput(e){if(await e._mainReader.source.getSize()<12)return!1;let i=new Ri(e._mainReader),s=i.readAscii(4);return s!=="RIFF"&&s!=="RIFX"?!1:(i.pos=8,i.readAscii(4)==="WAVE")}_createDemuxer(e){return new eu(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}},fu=class extends qt{async _canReadInput(e){return await e._mainReader.source.getSize()<4?!1:new ms(e._mainReader).readAscii(4)==="OggS"}_createDemuxer(e){return new au(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}},o0=new cu,a0=new uu,c0=new so,u0=new lu,l0=new hu,h0=new du,d0=new fu,yd=[o0,a0,c0,u0,h0,d0,l0];var no=class{constructor(e){if(this._demuxerPromise=null,this._format=null,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!Array.isArray(e.formats)||e.formats.some(t=>!(t instanceof qt)))throw new TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof Di))throw new TypeError("options.source must be a Source.");this._formats=e.formats,this._source=e.source,this._mainReader=new Et(e.source)}_getDemuxer(){return this._demuxerPromise??=(async()=>{await this._mainReader.loadRange(0,4096);for(let e of this._formats)if(await e._canReadInput(this))return this._format=e,e._createDemuxer(this);throw new Error("Input has an unsupported or unrecognizable format.")})()}get source(){return this._source}async getFormat(){return await this._getDemuxer(),w(this._format),this._format}async computeDuration(){return(await this._getDemuxer()).computeDuration()}async getTracks(){return(await this._getDemuxer()).getTracks()}async getVideoTracks(){return(await this.getTracks()).filter(t=>t.isVideoTrack())}async getPrimaryVideoTrack(){return(await this.getTracks()).find(t=>t.isVideoTrack())??null}async getAudioTracks(){return(await this.getTracks()).filter(t=>t.isAudioTrack())}async getPrimaryAudioTrack(){return(await this.getTracks()).find(t=>t.isAudioTrack())??null}async getMimeType(){return(await this._getDemuxer()).getMimeType()}};B();var fS={extension:{type:b.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then(()=>(dS(),QB))}};B();var pS={extension:{type:b.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(mS(),ZB))}};B();Hu();Uu();Ce();ra();var Ol;function SS(r){return Ol!==void 0||(Ol=(()=>{let e={stencil:!0,failIfMajorPerformanceCaveat:r??ti.defaultOptions.failIfMajorPerformanceCaveat};try{if(!W.get().getWebGLRenderingContext())return!1;let i=W.get().createCanvas().getContext("webgl",e),s=!!i?.getContextAttributes()?.stencil;if(i){let n=i.getExtension("WEBGL_lose_context");n&&n.loseContext()}return i=null,s}catch{return!1}})()),Ol}Ce();var Gl;async function vS(r={}){return Gl!==void 0||(Gl=await(async()=>{let e=W.get().getNavigator().gpu;if(!e)return!1;try{return await(await e.requestAdapter(r)).requestDevice(),!0}catch{return!1}})()),Gl}ra();var LC=["webgl","webgpu","canvas"];async function eg(r){let e=[];r.preference?(e.push(r.preference),LC.forEach(n=>{n!==r.preference&&e.push(n)})):e=LC.slice();let t,i={};for(let n=0;n<e.length;n++){let o=e[n];if(o==="webgpu"&&await vS()){let{WebGPURenderer:a}=await Promise.resolve().then(()=>(d1(),h1));t=a,i={...r,...r.webgpu};break}else if(o==="webgl"&&SS(r.failIfMajorPerformanceCaveat??ti.defaultOptions.failIfMajorPerformanceCaveat)){let{WebGLRenderer:a}=await Promise.resolve().then(()=>(NC(),GC));t=a,i={...r,...r.webgl};break}else if(o==="canvas")throw i={...r},new Error("CanvasRenderer is not yet implemented")}if(delete i.webgpu,delete i.webgl,!t)throw new Error("No available renderer for the current environment");let s=new t;return await s.init(i),s}var FE=Ch(IE(),1),gg={createCanvas:(r,e)=>new OffscreenCanvas(r??0,e??0),getCanvasRenderingContext2D:()=>OffscreenCanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>globalThis.location.href,getFontFaceSet:()=>globalThis.fonts,fetch:(r,e)=>fetch(r,e),parseXML:r=>new FE.DOMParser().parseFromString(r,"text/xml")};Ui();xu();ye();Fu();var yh=class extends qr{constructor(e,t){let{text:i,resolution:s,style:n,anchor:o,width:a,height:c,roundPixels:u,...l}=e;super({...l}),this.batched=!0,this._resolution=null,this._autoResolution=!0,this._didTextUpdate=!0,this._styleClass=t,this.text=i??"",this.style=n,this.resolution=s??null,this.allowChildren=!1,this._anchor=new We({_onUpdate:()=>{this.onViewUpdate()}}),o&&(this.anchor=o),this.roundPixels=u??!1,a!==void 0&&(this.width=a),c!==void 0&&(this.height=c)}get anchor(){return this._anchor}set anchor(e){typeof e=="number"?this._anchor.set(e):this._anchor.copyFrom(e)}set text(e){e=e.toString(),this._text!==e&&(this._text=e,this.onViewUpdate())}get text(){return this._text}set resolution(e){this._autoResolution=e===null,this._resolution=e,this.onViewUpdate()}get resolution(){return this._resolution}get style(){return this._style}set style(e){e||(e={}),this._style?.off("update",this.onViewUpdate,this),e instanceof this._styleClass?this._style=e:this._style=new this._styleClass(e),this._style.on("update",this.onViewUpdate,this),this.onViewUpdate()}get width(){return Math.abs(this.scale.x)*this.bounds.width}set width(e){this._setWidth(e,this.bounds.width)}get height(){return Math.abs(this.scale.y)*this.bounds.height}set height(e){this._setHeight(e,this.bounds.height)}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this.bounds.width,e.height=Math.abs(this.scale.y)*this.bounds.height,e}setSize(e,t){typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,this.bounds.width),t!==void 0&&this._setHeight(t,this.bounds.height)}containsPoint(e){let t=this.bounds.width,i=this.bounds.height,s=-t*this.anchor.x,n=0;return e.x>=s&&e.x<=s+t&&(n=-i*this.anchor.y,e.y>=n&&e.y<=n+i)}onViewUpdate(){this.didViewUpdate||(this._didTextUpdate=!0),super.onViewUpdate()}destroy(e=!1){super.destroy(e),this.owner=null,this._bounds=null,this._anchor=null,(typeof e=="boolean"?e:e?.style)&&this._style.destroy(e),this._style=null,this._text=null}};function UE(r,e){let t=r[0]??{};return(typeof t=="string"||r[1])&&(z($,`use new ${e}({ text: "hi!", style }) instead`),t={text:t,style:r[1]}),t}Om();sn();tn();var lc=class extends yh{constructor(...e){let t=UE(e,"Text");super(t,ht),this.renderPipeId="text",t.textureStyle&&(this.textureStyle=t.textureStyle instanceof et?t.textureStyle:new et(t.textureStyle))}updateBounds(){let e=this._bounds,t=this._anchor,i=0,s=0;if(this._style.trim){let{frame:n,canvasAndContext:o}=Ji.getCanvasAndContext({text:this.text,style:this._style,resolution:1});Ji.returnCanvasAndContext(o),i=n.width,s=n.height}else{let n=Xe.measureText(this._text,this._style);i=n.width,s=n.height}e.minX=-t._x*i,e.maxX=e.minX+i,e.minY=-t._y*s,e.maxY=e.minY+s}};Ce();le();Tf();jt();Gu();Ve();O.add(fS,pS);W.set(gg);var OE=Pc.work(({host:r},e)=>({async hello(){await r.world()},async decode({source:t,video:i,audio:s}){let n=async()=>{if(t instanceof FileSystemFileHandle){let d=await t.getFile();return new to(d)}else return new ro(t)},o=new no({source:await n(),formats:yd}),[a,c]=await Promise.all([o.getPrimaryVideoTrack(),o.getPrimaryAudioTrack()]),u=await a?.canDecode(),l=await c?.canDecode(),h=i.getWriter(),f=s.getWriter();await Promise.all([(async()=>{if(u&&a){let d=new Xn(a);for await(let m of d.samples()){let x=m.toVideoFrame();await h.write(x),m.close(),x.close()}await h.close()}})(),(async()=>{if(l&&c){let d=new Yn(c);for await(let m of d.samples()){let x=m.toAudioData();await f.write(x),m.close(),x.close()}await f.close()}})()])},async encode({readables:t,config:i,bridge:s}){let n=new eo({format:new ys,target:new Vn(s,{chunked:!0})}),o=new Qn(i.video);n.addVideoTrack(o);let a=new Zn(i.audio);n.addAudioTrack(a),await n.start();let c=t.video.getReader(),u=t.audio.getReader();await Promise.all([(async()=>{for(;;){let{done:l,value:h}=await c.read();if(l)break;let f=new $t(h);await o.add(f),f.close()}})(),(async()=>{for(;;){let{done:l,value:h}=await u.read();if(l)break;let f=new Mt(h);await a.add(f),f.close(),h.close()}})()]),await n.finalize()},async composite(t){let{stage:i,renderer:s}=await oD(1920,1080);i.removeChildren();let{baseFrame:n,disposables:o}=await GE(t,i);s.render(i);let a=new VideoFrame(s.canvas,{timestamp:n?.timestamp,duration:n?.duration??void 0});n?.close(),s.clear();for(let c of o)c.destroy(!0);return e.transfer=[a],a}})),Th=null;async function oD(r,e){if(Th)return Th;let t=await eg({width:r,height:e,preference:"webgl",background:"black",preferWebGLVersion:2}),i=new we;return Th={renderer:t,stage:i},Th}async function GE(r,e,t=[]){if(Array.isArray(r)){let i;for(let s of r){let n=await GE(s,e,t);i??=n.baseFrame}return{baseFrame:i,disposables:t}}if(!aD(r))return console.warn("Invalid layer",r),{disposables:t};switch(r.kind){case"text":return cD(r,e,t);case"image":return uD(r,e,t);default:return console.warn("Unknown layer kind",r.kind),{disposables:t}}}function aD(r){return!!r&&typeof r=="object"&&typeof r.kind=="string"}function cD(r,e,t){let i=new lc({text:r.content,style:{fontFamily:"sans-serif",fontSize:r.fontSize??48,fill:r.color??"white"}});return NE(i,r),e.addChild(i),t.push(i),{disposables:t}}function uD(r,e,t){let i=M.from(r.frame),s=new Kt(i);return NE(s,r),e.addChild(s),t.push(s,i),{baseFrame:r.frame,disposables:t}}function NE(r,e={}){e.x&&(r.x=e.x),e.y&&(r.y=e.y),e.scale&&r.scale.set(e.scale),e.opacity&&(r.alpha=e.opacity),e.anchor&&"anchor"in r&&r.anchor.set(e.anchor)}await Pc.worker(OE);
|
|
1099
|
+
`)});var bc=()=>({stdout:async r=>console.log(r),stderr:async r=>console.error(r)});var Cg=()=>Bh()?xc():Rh()?_c():bc();var Eg=()=>({stdout:async()=>{},stderr:async()=>{}});function kg(){return()=>({stdout:r=>r,stderr:r=>r})}var rs=class r{static writers={auto:Cg,void:Eg,deno:xc,node:_c,console:bc};static colors={auto:Dh,colorful:()=>Rn,colorless:()=>Bn};static themes={auto:Tg,basic:fc};static shapers={auto:vg,none:kg,errors:pc,timestamp:gc};writer=r.writers.auto();colors=r.colors.auto();theme=r.themes.auto();shaper=r.shapers.auto();async log(...e){await this.writer.stdout(this.shaper(this).stdout(e).join(" "))}async error(...e){await this.writer.stderr(this.shaper(this).stderr(e).join(" "))}setWriter(e){return this.writer=e,this}setColors(e){return this.colors=e,this}setTheme(e){return this.theme=e,this}setShaper(...e){return this.shaper=Dn(...e),this}};var Mn=class extends rs{static dummy(){return new this().setWriter(rs.writers.void())}rpcRequest=async({request:e,...t})=>{let i=this.colors.none;this.log(...this.#e(t),i(`${e.method}()`))};rpcError=async({request:e,error:t,...i})=>{this.error(...this.#e(i),`${e.method}()`,t)};#e({meta:e,label:t,remote:i}){let s=this.colors.mix(this.colors.blue,this.colors.dim),n=this.colors.mix(this.colors.cyan,this.colors.dim);return[e?this.#t(e):void 0,t||void 0,i===void 0?void 0:i?s("<-"):n("->")].filter(Boolean)}#t(e){let{headers:t}=e.request;return[this.colors.yellow(`[${e.ip}]`),this.colors.green(t.origin?t.origin:"(no-origin)")].join(" ")}};var zt=class extends Mn{rpcRequest=async()=>{}};var Vt=Object.freeze({eq(r,e){if(r.length!==e.length)return!1;for(let t=0;t<=r.length;t++)if(r.at(t)!==e.at(t))return!1;return!0},random(r){return crypto.getRandomValues(new Uint8Array(r))}});var di=Object.freeze({fromBytes(r){return[...r].map(e=>e.toString(16).padStart(2,"0")).join("")},toBytes(r){if(r.length%2!==0)throw new Error("must have even number of hex characters");let e=new Uint8Array(r.length/2);for(let t=0;t<r.length;t+=2)e[t/2]=parseInt(r.slice(t,t+2),16);return e},random(r=32){return this.fromBytes(Vt.random(r))},string(r){return di.fromBytes(r)},bytes(r){return di.toBytes(r)}});var Mh=58,yc="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Ih=Object.freeze({fromBytes(r){let e=BigInt("0x"+di.fromBytes(r)),t="";for(;e>0;){let i=e%BigInt(Mh);e=e/BigInt(Mh),t=yc[Number(i)]+t}for(let i of r)if(i===0)t=yc[0]+t;else break;return t},toBytes(r){let e=BigInt(0);for(let o of r){let a=yc.indexOf(o);if(a===-1)throw new Error(`Invalid character '${o}' in base58 string`);e=e*BigInt(Mh)+BigInt(a)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let i=di.toBytes(t),s=0;for(let o of r)if(o===yc[0])s++;else break;let n=new Uint8Array(s+i.length);return n.set(i,s),n},random(r=32){return this.fromBytes(Vt.random(r))},string(r){return Ih.fromBytes(r)},bytes(r){return Ih.toBytes(r)}});var Ag=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(e){this.lexicon=e,this.lookup=Object.fromEntries([...e.characters].map((t,i)=>[t,i])),this.negativePrefix=e.negativePrefix??"-"}toBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let a=0,c=0,u=[];for(let l of e){if(l===this.lexicon.padding?.character)continue;let h=this.lookup[l];if(h===void 0)throw new Error(`Invalid character: ${l}`);for(a=a<<t|h,c+=t;c>=8;)c-=8,u.push(a>>c&255)}return new Uint8Array(u)}let i=0n,s=BigInt(this.lexicon.characters.length),n=!1;e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),n=!0);for(let a of e){let c=this.lookup[a];if(c===void 0)throw new Error(`Invalid character: ${a}`);i=i*s+BigInt(c)}let o=[];for(;i>0n;)o.unshift(Number(i%256n)),i=i/256n;return new Uint8Array(o)}fromBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let o=0,a=0,c="";for(let u of e)for(o=o<<8|u,a+=8;a>=t;){a-=t;let l=o>>a&(1<<t)-1;c+=this.lexicon.characters[l]}if(a>0){let u=o<<t-a&(1<<t)-1;c+=this.lexicon.characters[u]}if(this.lexicon.padding)for(;c.length%this.lexicon.padding.size!==0;)c+=this.lexicon.padding.character;return c}let i=0n;for(let o of e)i=(i<<8n)+BigInt(o);if(i===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;i>0n;)n=this.lexicon.characters[Number(i%s)]+n,i=i/s;return n}toInteger(e){if(!e)return 0;let t=0n,i=!1,s=BigInt(this.lexicon.characters.length);e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),i=!0);for(let n of e){let o=this.lookup[n];if(o===void 0)throw new Error(`Invalid character: ${n}`);t=t*s+BigInt(o)}return Number(i?-t:t)}fromInteger(e){e=Math.floor(e);let t=e<0,i=BigInt(t?-e:e);if(i===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;i>0n;)n=this.lexicon.characters[Number(i%s)]+n,i=i/s;return t?`${this.negativePrefix}${n}`:n}random(e=32){return this.fromBytes(Vt.random(e))}};var Fh=Object.freeze({fromBytes(r){return typeof btoa=="function"?btoa(String.fromCharCode(...r)):Buffer.from(r).toString("base64")},toBytes(r){return typeof atob=="function"?Uint8Array.from(atob(r),e=>e.charCodeAt(0)):Uint8Array.from(Buffer.from(r,"base64"))},random(r=32){return this.fromBytes(Vt.random(r))},string(r){return Fh.fromBytes(r)},bytes(r){return Fh.toBytes(r)}});var Pg=Object.freeze({fromBytes(r){return new TextDecoder().decode(r)},toBytes(r){return new TextEncoder().encode(r)},string(r){return Pg.fromBytes(r)},bytes(r){return Pg.toBytes(r)}});var Tc=Object.freeze({set:r=>r!=null,unset:r=>r==null,boolean:r=>typeof r=="boolean",number:r=>typeof r=="number",string:r=>typeof r=="string",bigint:r=>typeof r=="bigint",object:r=>typeof r=="object"&&r!==null,array:r=>Array.isArray(r),fn:r=>typeof r=="function",symbol:r=>typeof r=="symbol"});var In=class extends Error{milliseconds;name=this.constructor.name;constructor(e){super(`deadline exceeded (${(e/1e3).toFixed(1)} seconds)`),this.milliseconds=e}};function wc(r,e){return r<=0||r===1/0?e():new Promise((t,i)=>{let s=setTimeout(()=>i(new In(r)),r);e().then(t).catch(i).finally(()=>clearTimeout(s))})}function Dt(){let r,e,t=new Promise((s,n)=>{r=s,e=n});function i(s){return s.then(r).catch(e),t}return{promise:t,resolve:r,reject:e,entangle:i}}function Bg(r,e){let t=r;for(let i of e)if(t=t[i],Tc.unset(t))break;return t}function ik(r){return{map:e=>Rg(r,e),filter:e=>Dg(r,e)}}ik.pipe=Object.freeze({map:r=>e=>Rg(e,r),filter:r=>e=>Dg(e,r)});var Rg=(r,e)=>Object.fromEntries(Object.entries(r).map(([t,i])=>[t,e(i,t)])),Dg=(r,e)=>Object.fromEntries(Object.entries(r).filter(([t,i])=>e(i,t)));function sk(){let r=new Set;function e(n){return r.add(n),()=>{r.delete(n)}}async function t(...n){await Promise.all([...r].map(o=>o(...n)))}async function i(){let{promise:n,resolve:o}=Dt(),a=e((...c)=>{o(c),a()});return n}function s(){r.clear()}return e.pub=t,e.sub=e,e.on=e,e.next=i,e.clear=s,t.pub=t,t.sub=e,t.on=e,t.next=i,t.clear=s,[t,e]}function Sc(r){let e=sk()[0];return r&&e.sub(r),e}var dr=class{#e=[];add(...e){return this.#e.push(...e),this}disposable(e){return this.bag(e,()=>e.dispose())}bag(e,t){return this.add(()=>t(e)),e}dispose(){for(let e of this.#e.reverse())e();this.#e=[]}};var Nr;(function(r){r.version="2.0";function e(t){return"id"in t?t.id:null}r.getId=e,r.errorCodes={serverError:-32e3,unexposedError:-32001}})(Nr||(Nr={}));var vc=class extends Error{name=this.constructor.name},fi=class extends Error{name=this.constructor.name};async function Mg({tap:r,request:e,action:t}){let i=Nr.getId(e);try{let s=await t();return i===null?null:{id:i,result:s,jsonrpc:Nr.version}}catch(s){return r.rpcError({request:e,error:s}),i===null?null:{id:i,jsonrpc:Nr.version,error:s instanceof vc?{code:Nr.errorCodes.serverError,message:s.message}:{code:Nr.errorCodes.unexposedError,message:"unexposed error"}}}}function Cc(r){let e=r.tap??new zt;return async t=>{let i=t.method.split("."),s=Bg(r.fns,i),n=async()=>await s(...t.params);return e.rpcRequest({request:t}),await Mg({tap:e,request:t,action:n})}}var Ig=Symbol("tune"),nk=Symbol("query"),ok=Symbol("notify"),ak=Symbol("settings");function Fg(r){function e(t){let i={notify:void 0};return new Proxy(()=>{},{apply:(s,n,o)=>r(t,o,i),get:(s,n)=>{if(n!=="then")return n===Ig?o=>(...a)=>r(t,a,{...i,...o}):n===ok?(...o)=>r(t,o,{...i,notify:!0}):n===nk?(...o)=>r(t,o,{...i,notify:!1}):n===ak?i:(s[n]||(s[n]=e([...t,n])),s[n])},set:(s,n,o)=>(s[n]=o,!0)})}return e([])}function mi(r){let{endpoint:e,tap:t=new zt}=r,i=1;return Fg(async(s,n,o)=>{let a=o.notify??r.notify??!1,c=o.transfer,u={jsonrpc:"2.0",method:s.join("."),params:n},l=a?u:{...u,id:i++};t.rpcRequest({request:l});let h=await e(l,{transfer:c});if(a&&!h)return null;if(!h)throw new fi("response was null, but shouldn't be, because the request was not a notification");if("error"in h)throw new fi(r.label?`${r.label}: ${h.error.message}`:h.error.message);return h.result})}function Fn(r){return mi({endpoint:Cc(r),tap:r.tap})}var pi=class{recv=Sc();sendRequest=Sc();sendResponse=Sc();static makeEntangledPair({origin:e="example.e280.org"}={}){let t=new this,i=new this,s=[t.sendRequest.sub(o=>i.recv(o,{origin:e})),t.sendResponse.sub(o=>i.recv(o,{origin:e})),i.sendRequest.sub(o=>t.recv(o,{origin:e})),i.sendResponse.sub(o=>t.recv(o,{origin:e}))];return[t,i,()=>s.forEach(o=>o())]}};function Ec(r,e){return r.addEventListener("message",e),()=>r.removeEventListener("message",e)}function Ug(r,e){return async(t,{transfer:i}={})=>{if("id"in t){let s=Dt();return e(t,i,s.promise),r.wait(t.id,t.method).then(n=>(s.resolve(n),n))}else{let s=Promise.resolve(null);return e(t,i,s),s}}}function Og(r){let e=[],t=[];for(let i of Array.isArray(r)?r:[r])"method"in i?e.push(i):t.push(i);return{requests:e,responses:t}}async function Gg(r,e){let t=(await Promise.all(e.map(async i=>r(i)))).filter(i=>i!==null);return t.length===0?null:t.length===1?t[0]:t}var is=class extends pi{#e=new dr;constructor(e){super(),this.#e.add(this.sendRequest.sub((t,i)=>e.postMessage(t,i)),this.sendResponse.sub((t,i)=>e.postMessage(t,i)),Ec(e,t=>this.recv(t.data,t)))}dispose(){this.#e.dispose()}};var kc=class{remote;transfer;constructor(e){this.remote=e}};var Uh=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var Ac=class{timeout;pending=new Map;constructor(e){this.timeout=e}async wait(e,t){let i=Dt();return this.pending.set(e,{method:t,deferred:i}),await wc(this.timeout,()=>i.promise).catch(s=>{throw s instanceof In&&(s.message=`request #${e} ${t}(), ${s.message}`),s})}deliverResponse(e){let t=this.pending.get(e.id);t&&("error"in e?t.deferred.reject(new fi(e.error.message)):t.deferred.resolve(e))}};var gi=class{options;remote;remoteEndpoint;#e;#t=new dr;constructor(e){this.options=e;let{conduit:t,tap:i}=e;this.#e=new Ac(e.timeout??Uh.timeout),this.remoteEndpoint=Ug(this.#e,t.sendRequest.pub.bind(t.sendRequest)),this.remote=mi({endpoint:this.remoteEndpoint,tap:i&&Ph(i,{remote:!0})}),this.#t.add(t.recv.sub(s=>this.recv(s)))}async recv(e){let t=new kc(this.remote),{conduit:i,rpc:s,tap:n}=this.options,{requests:o,responses:a}=Og(e);for(let h of a)this.#e.deliverResponse(h);if(!s)return;let c=await s(t),u=Cc({fns:c,tap:n&&Ph(n,{remote:!1})}),l=await Gg(u,o);l&&await i.sendResponse(l,t.transfer)}dispose(){this.#t.dispose()}};var fr={derive:{host:r=>({host:r.remote.host,get transfer(){return r.transfer},set transfer(e){r.transfer=e}}),work:r=>({work:r.remote,get transfer(){return r.transfer},set transfer(e){r.transfer=e}})},mock:{host:()=>({host:void 0,transfer:void 0}),work:()=>({work:void 0,transfer:void 0})}};var mr=new zt;async function Ng(r,e,t={}){let i=t.tap??mr,s=new gi({tap:i,timeout:t.timeout??1/0,conduit:new is(r.getSelf()),rpc:async n=>e(fr.derive.host(n))});return await s.remote.infra.ready(),s.remote.host}var ss=class{worker;messenger;constructor(e,t){this.worker=e,this.messenger=t}static async make(e,t){let i=t.tap??mr,s=t.label??"comrade",n=e.loadWorker(t.workerUrl,s),o=Dt(),a={async ready(){o.resolve()}},c=new gi({tap:i,timeout:t.timeout??1/0,conduit:new is(n),rpc:async u=>({infra:a,host:t.setupHost(fr.derive.work(u))})});return await o.promise,new this(n,c)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var Pc=class{threads;static async make(e,t){let i=t.workerCount??e.guessOptimalThreadCount(),s=await Promise.all([...Array(i)].map(async(n,o)=>ss.make(e,{...t,label:t.label??`${t.label??"comrade"}_${o+1}`})));return new this(s,{tap:t.tap})}work;#e=new Set;#t=[];constructor(e,t={}){this.threads=e;let i=t.tap??mr,s=async(n,o)=>this.#i({request:n,prom:Dt(),transfer:o?.transfer});this.work=mi({tap:i,endpoint:s}),e.forEach(n=>this.#e.add(n))}get threadCount(){return this.threads.length}terminate(){for(let e of this.threads)e.terminate()}#i(e){return this.#t.push(e),this.#r(),e.prom.promise}#r(){for(;this.#e.size>0&&this.#t.length>0;){let e=[...this.#e].pop();this.#e.delete(e);let t=this.#t.shift();this.#e.delete(e);let i=e.messenger.remoteEndpoint(t.request,{transfer:t.transfer});t.prom.entangle(i).finally(()=>{this.#e.add(e),this.#r()})}}};var Lg=r=>({thread:e=>ss.make(r,e),cluster:e=>Pc.make(r,e),worker:(e,t={})=>Ng(r,e,t),work:e=>e,host:e=>e,mocks(e){let{setupWork:t,setupHost:i,tap:s=mr}=e,n=fr.mock.host(),o=fr.mock.work();return o.work=Fn({tap:s,fns:t(n)}),n.host=Fn({tap:s,fns:i(o)}),{workShell:o,hostShell:n,work:o.work,host:n.host}},mockWork(e,t=mr){let i=fr.mock.host(),s=fr.mock.work();return s.work=Fn({tap:t,fns:e(i)}),{workShell:s,hostShell:i,work:s.work,mockHost:n=>(i.host=Fn({tap:t,fns:n(s)}),{workShell:s,hostShell:i,work:s.work,host:i.host})}}});var zg=()=>({getSelf(){return self},guessOptimalThreadCount(){let r=navigator.hardwareConcurrency??1;return Math.max(1,r-1)},loadWorker(r,e){return new window.Worker(r,{name:e,type:"module"})},async loadWasm(r){return WebAssembly.instantiateStreaming(fetch(r))}});var hk=zg(),Bc=Lg(hk);P();var VT={extension:{type:b.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then(()=>(zT(),wP))}};P();var WT={extension:{type:b.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(HT(),SP))}};P();ou();Jc();ve();Do();var el;function ZT(r){return el!==void 0||(el=(()=>{let e={stencil:!0,failIfMajorPerformanceCaveat:r??Zr.defaultOptions.failIfMajorPerformanceCaveat};try{if(!W.get().getWebGLRenderingContext())return!1;let i=W.get().createCanvas().getContext("webgl",e),s=!!i?.getContextAttributes()?.stencil;if(i){let n=i.getExtension("WEBGL_lose_context");n&&n.loseContext()}return i=null,s}catch{return!1}})()),el}ve();var tl;async function JT(r={}){return tl!==void 0||(tl=await(async()=>{let e=W.get().getNavigator().gpu;if(!e)return!1;try{return await(await e.requestAdapter(r)).requestDevice(),!0}catch{return!1}})()),tl}Do();var p1=["webgl","webgpu","canvas"];async function gp(r){let e=[];r.preference?(e.push(r.preference),p1.forEach(n=>{n!==r.preference&&e.push(n)})):e=p1.slice();let t,i={};for(let n=0;n<e.length;n++){let o=e[n];if(o==="webgpu"&&await JT()){let{WebGPURenderer:a}=await Promise.resolve().then(()=>(zS(),LS));t=a,i={...r,...r.webgpu};break}else if(o==="webgl"&&ZT(r.failIfMajorPerformanceCaveat??Zr.defaultOptions.failIfMajorPerformanceCaveat)){let{WebGLRenderer:a}=await Promise.resolve().then(()=>(m1(),f1));t=a,i={...r,...r.webgl};break}else if(o==="canvas")throw i={...r},new Error("CanvasRenderer is not yet implemented")}if(delete i.webgpu,delete i.webgl,!t)throw new Error("No available renderer for the current environment");let s=new t;return await s.init(i),s}var lC=Ah(uC(),1),Dp={createCanvas:(r,e)=>new OffscreenCanvas(r??0,e??0),getCanvasRenderingContext2D:()=>OffscreenCanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>globalThis.location.href,getFontFaceSet:()=>globalThis.fonts,fetch:(r,e)=>fetch(r,e),parseXML:r=>new lC.DOMParser().parseFromString(r,"text/xml")};bi();Ic();ye();Zc();var Ol=class extends Hr{constructor(e,t){let{text:i,resolution:s,style:n,anchor:o,width:a,height:c,roundPixels:u,...l}=e;super({...l}),this.batched=!0,this._resolution=null,this._autoResolution=!0,this._didTextUpdate=!0,this._styleClass=t,this.text=i??"",this.style=n,this.resolution=s??null,this.allowChildren=!1,this._anchor=new We({_onUpdate:()=>{this.onViewUpdate()}}),o&&(this.anchor=o),this.roundPixels=u??!1,a!==void 0&&(this.width=a),c!==void 0&&(this.height=c)}get anchor(){return this._anchor}set anchor(e){typeof e=="number"?this._anchor.set(e):this._anchor.copyFrom(e)}set text(e){e=e.toString(),this._text!==e&&(this._text=e,this.onViewUpdate())}get text(){return this._text}set resolution(e){this._autoResolution=e===null,this._resolution=e,this.onViewUpdate()}get resolution(){return this._resolution}get style(){return this._style}set style(e){e||(e={}),this._style?.off("update",this.onViewUpdate,this),e instanceof this._styleClass?this._style=e:this._style=new this._styleClass(e),this._style.on("update",this.onViewUpdate,this),this.onViewUpdate()}get width(){return Math.abs(this.scale.x)*this.bounds.width}set width(e){this._setWidth(e,this.bounds.width)}get height(){return Math.abs(this.scale.y)*this.bounds.height}set height(e){this._setHeight(e,this.bounds.height)}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this.bounds.width,e.height=Math.abs(this.scale.y)*this.bounds.height,e}setSize(e,t){typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,this.bounds.width),t!==void 0&&this._setHeight(t,this.bounds.height)}containsPoint(e){let t=this.bounds.width,i=this.bounds.height,s=-t*this.anchor.x,n=0;return e.x>=s&&e.x<=s+t&&(n=-i*this.anchor.y,e.y>=n&&e.y<=n+i)}onViewUpdate(){this.didViewUpdate||(this._didTextUpdate=!0),super.onViewUpdate()}destroy(e=!1){super.destroy(e),this.owner=null,this._bounds=null,this._anchor=null,(typeof e=="boolean"?e:e?.style)&&this._style.destroy(e),this._style=null,this._text=null}};function hC(r,e){let t=r[0]??{};return(typeof t=="string"||r[1])&&(z($,`use new ${e}({ text: "hi!", style }) instead`),t={text:t,style:r[1]}),t}Jf();Os();Fs();var La=class extends Ol{constructor(...e){let t=hC(e,"Text");super(t,lt),this.renderPipeId="text",t.textureStyle&&(this.textureStyle=t.textureStyle instanceof Je?t.textureStyle:new Je(t.textureStyle))}updateBounds(){let e=this._bounds,t=this._anchor,i=0,s=0;if(this._style.trim){let{frame:n,canvasAndContext:o}=Ui.getCanvasAndContext({text:this.text,style:this._style,resolution:1});Ui.returnCanvasAndContext(o),i=n.width,s=n.height}else{let n=Xe.measureText(this._text,this._style);i=n.width,s=n.height}e.minX=-t._x*i,e.maxX=e.minX+i,e.minY=-t._y*s,e.maxY=e.minY+s}};ve();le();Ud();Ht();tu();Ve();O.add(VT,WT);function w(r){if(!r)throw new Error("Assertion failed.")}var Gl=r=>{let e=(r%360+360)%360;if(e===0||e===90||e===180||e===270)return e;throw new Error(`Invalid rotation ${r}.`)},he=r=>r&&r[r.length-1],Ni=r=>r>=0&&r<2**32,$e=class r{constructor(e){this.bytes=e,this.pos=0}seekToByte(e){this.pos=8*e}readBit(){let e=Math.floor(this.pos/8),t=this.bytes[e]??0,i=7-(this.pos&7),s=(t&1<<i)>>i;return this.pos++,s}readBits(e){if(e===1)return this.readBit();let t=0;for(let i=0;i<e;i++)t<<=1,t|=this.readBit();return t}readAlignedByte(){if(this.pos%8!==0)throw new Error("Bitstream is not byte-aligned.");let e=this.pos/8,t=this.bytes[e]??0;return this.pos+=8,t}skipBits(e){this.pos+=e}getBitsLeft(){return this.bytes.length*8-this.pos}clone(){let e=new r(this.bytes);return e.pos=this.pos,e}},N=r=>{let e=0;for(;r.readBits(1)===0&&e<32;)e++;if(e>=32)throw new Error("Invalid exponential-Golomb code.");return(1<<e)-1+r.readBits(e)},an=r=>{let e=N(r);return(e&1)===0?-(e>>1):e+1>>1};var yt=r=>r instanceof Uint8Array?r:r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer,r.byteOffset,r.byteLength),At=r=>r instanceof DataView?r:r instanceof ArrayBuffer?new DataView(r):new DataView(r.buffer,r.byteOffset,r.byteLength),Li=new TextEncoder,Mp=r=>Object.fromEntries(Object.entries(r).map(([e,t])=>[t,e])),zi={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},Nl=Mp(zi),Vi={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pg:16,hlg:18},Ll=Mp(Vi),Hi={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},zl=Mp(Hi),dC=r=>!!r&&!!r.primaries&&!!r.transfer&&!!r.matrix&&r.fullRange!==void 0,cn=r=>r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer||ArrayBuffer.isView(r),kt=class{constructor(){this.currentPromise=Promise.resolve()}async acquire(){let e,t=new Promise(s=>{e=s}),i=this.currentPromise;return this.currentPromise=t,await i,e}},Ip=r=>[...r].map(e=>e.toString(16).padStart(2,"0")).join(""),Fp=r=>(r=r>>1&1431655765|(r&1431655765)<<1,r=r>>2&858993459|(r&858993459)<<2,r=r>>4&252645135|(r&252645135)<<4,r=r>>8&16711935|(r&16711935)<<8,r=r>>16&65535|(r&65535)<<16,r>>>0),Be=(r,e,t)=>{let i=0,s=r.length-1,n=-1;for(;i<=s;){let o=i+s>>1,a=t(r[o]);a===e?(n=o,s=o-1):a<e?i=o+1:s=o-1}return n},J=(r,e,t)=>{let i=0,s=r.length-1,n=-1;for(;i<=s;){let o=i+(s-i+1)/2|0;t(r[o])<=e?(n=o,i=o+1):s=o-1}return n},Ke=()=>{let r,e;return{promise:new Promise((i,s)=>{r=i,e=s}),resolve:r,reject:e}},fC=(r,e)=>{let t=r.indexOf(e);t!==-1&&r.splice(t,1)},Up=(r,e)=>{for(let t=r.length-1;t>=0;t--)if(e(r[t]))return r[t]},Vl=(r,e)=>{for(let t=r.length-1;t>=0;t--)if(e(r[t]))return t;return-1},mC=async function*(r){Symbol.iterator in r?yield*r[Symbol.iterator]():yield*r[Symbol.asyncIterator]()},pC=r=>{if(!(Symbol.iterator in r)&&!(Symbol.asyncIterator in r))throw new TypeError("Argument must be an iterable or async iterable.")},si=r=>{throw new Error(`Unexpected value: ${r}`)},Op=(r,e,t)=>{let i=r.getUint8(e),s=r.getUint8(e+1),n=r.getUint8(e+2);return t?i|s<<8|n<<16:i<<16|s<<8|n},gC=(r,e,t)=>Op(r,e,t)<<8>>8,Gp=(r,e,t,i)=>{t=t>>>0,t=t&16777215,i?(r.setUint8(e,t&255),r.setUint8(e+1,t>>>8&255),r.setUint8(e+2,t>>>16&255)):(r.setUint8(e,t>>>16&255),r.setUint8(e+1,t>>>8&255),r.setUint8(e+2,t&255))},xC=(r,e,t,i)=>{t=Qe(t,-8388608,8388607),t<0&&(t=t+16777216&16777215),Gp(r,e,t,i)};var Qe=(r,e,t)=>Math.max(e,Math.min(t,r)),mt="und",un=(r,e)=>{let t=10**e;return Math.round(r*t)/t},_C=(r,e)=>Math.round(r/e)*e,bC=r=>{let e=0;for(;r;)e++,r>>=1;return e},RB=/^[a-z]{3}$/,ln=r=>RB.test(r),ar=1e6*(1+Number.EPSILON),za=(r,e)=>{let t={...r};for(let i in e)typeof r[i]=="object"&&r[i]!==null&&typeof e[i]=="object"&&e[i]!==null?t[i]=za(r[i],e[i]):t[i]=e[i];return t},Hl=async(r,e,t)=>{let i=0;for(;;)try{return await fetch(r,e)}catch(s){i++;let n=t(i);if(n===null)throw s;if(console.error("Retrying failed fetch. Error:",s),!Number.isFinite(n)||n<0)throw new TypeError("Retry delay must be a non-negative finite number.");n>0&&await new Promise(o=>setTimeout(o,1e3*n))}},yC=(r,e)=>{let t=r<0?-1:1;r=Math.abs(r);let i=0,s=1,n=1,o=0,a=r;for(;;){let c=Math.floor(a),u=c*n+i,l=c*o+s;if(l>e)return{numerator:t*n,denominator:o};if(i=n,s=o,n=u,o=l,a=1/(a-c),!isFinite(a))break}return{numerator:t*n,denominator:o}},ii=class{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}};var Wl=[],$l=[],TC=[],wC=[];var Dr=["avc","hevc","vp9","av1","vp8"],Ie=["pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be","pcm-u8","pcm-s8","ulaw","alaw"],Np=["aac","opus","mp3","vorbis","flac"],ni=[...Np,...Ie],hn=["webvtt"],SC=[{maxMacroblocks:99,maxBitrate:64e3,level:10},{maxMacroblocks:396,maxBitrate:192e3,level:11},{maxMacroblocks:396,maxBitrate:384e3,level:12},{maxMacroblocks:396,maxBitrate:768e3,level:13},{maxMacroblocks:396,maxBitrate:2e6,level:20},{maxMacroblocks:792,maxBitrate:4e6,level:21},{maxMacroblocks:1620,maxBitrate:4e6,level:22},{maxMacroblocks:1620,maxBitrate:1e7,level:30},{maxMacroblocks:3600,maxBitrate:14e6,level:31},{maxMacroblocks:5120,maxBitrate:2e7,level:32},{maxMacroblocks:8192,maxBitrate:2e7,level:40},{maxMacroblocks:8192,maxBitrate:5e7,level:41},{maxMacroblocks:8704,maxBitrate:5e7,level:42},{maxMacroblocks:22080,maxBitrate:135e6,level:50},{maxMacroblocks:36864,maxBitrate:24e7,level:51},{maxMacroblocks:36864,maxBitrate:24e7,level:52},{maxMacroblocks:139264,maxBitrate:24e7,level:60},{maxMacroblocks:139264,maxBitrate:48e7,level:61},{maxMacroblocks:139264,maxBitrate:8e8,level:62}],vC=[{maxPictureSize:36864,maxBitrate:128e3,tier:"L",level:30},{maxPictureSize:122880,maxBitrate:15e5,tier:"L",level:60},{maxPictureSize:245760,maxBitrate:3e6,tier:"L",level:63},{maxPictureSize:552960,maxBitrate:6e6,tier:"L",level:90},{maxPictureSize:983040,maxBitrate:1e7,tier:"L",level:93},{maxPictureSize:2228224,maxBitrate:12e6,tier:"L",level:120},{maxPictureSize:2228224,maxBitrate:3e7,tier:"H",level:120},{maxPictureSize:2228224,maxBitrate:2e7,tier:"L",level:123},{maxPictureSize:2228224,maxBitrate:5e7,tier:"H",level:123},{maxPictureSize:8912896,maxBitrate:25e6,tier:"L",level:150},{maxPictureSize:8912896,maxBitrate:1e8,tier:"H",level:150},{maxPictureSize:8912896,maxBitrate:4e7,tier:"L",level:153},{maxPictureSize:8912896,maxBitrate:16e7,tier:"H",level:153},{maxPictureSize:8912896,maxBitrate:6e7,tier:"L",level:156},{maxPictureSize:8912896,maxBitrate:24e7,tier:"H",level:156},{maxPictureSize:35651584,maxBitrate:6e7,tier:"L",level:180},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:180},{maxPictureSize:35651584,maxBitrate:12e7,tier:"L",level:183},{maxPictureSize:35651584,maxBitrate:48e7,tier:"H",level:183},{maxPictureSize:35651584,maxBitrate:24e7,tier:"L",level:186},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:186}],Rr=[{maxPictureSize:36864,maxBitrate:2e5,level:10},{maxPictureSize:73728,maxBitrate:8e5,level:11},{maxPictureSize:122880,maxBitrate:18e5,level:20},{maxPictureSize:245760,maxBitrate:36e5,level:21},{maxPictureSize:552960,maxBitrate:72e5,level:30},{maxPictureSize:983040,maxBitrate:12e6,level:31},{maxPictureSize:2228224,maxBitrate:18e6,level:40},{maxPictureSize:2228224,maxBitrate:3e7,level:41},{maxPictureSize:8912896,maxBitrate:6e7,level:50},{maxPictureSize:8912896,maxBitrate:12e7,level:51},{maxPictureSize:8912896,maxBitrate:18e7,level:52},{maxPictureSize:35651584,maxBitrate:18e7,level:60},{maxPictureSize:35651584,maxBitrate:24e7,level:61},{maxPictureSize:35651584,maxBitrate:48e7,level:62}],CC=[{maxPictureSize:147456,maxBitrate:15e5,tier:"M",level:0},{maxPictureSize:278784,maxBitrate:3e6,tier:"M",level:1},{maxPictureSize:665856,maxBitrate:6e6,tier:"M",level:4},{maxPictureSize:1065024,maxBitrate:1e7,tier:"M",level:5},{maxPictureSize:2359296,maxBitrate:12e6,tier:"M",level:8},{maxPictureSize:2359296,maxBitrate:3e7,tier:"H",level:8},{maxPictureSize:2359296,maxBitrate:2e7,tier:"M",level:9},{maxPictureSize:2359296,maxBitrate:5e7,tier:"H",level:9},{maxPictureSize:8912896,maxBitrate:3e7,tier:"M",level:12},{maxPictureSize:8912896,maxBitrate:1e8,tier:"H",level:12},{maxPictureSize:8912896,maxBitrate:4e7,tier:"M",level:13},{maxPictureSize:8912896,maxBitrate:16e7,tier:"H",level:13},{maxPictureSize:8912896,maxBitrate:6e7,tier:"M",level:14},{maxPictureSize:8912896,maxBitrate:24e7,tier:"H",level:14},{maxPictureSize:35651584,maxBitrate:6e7,tier:"M",level:15},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:15},{maxPictureSize:35651584,maxBitrate:6e7,tier:"M",level:16},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:16},{maxPictureSize:35651584,maxBitrate:1e8,tier:"M",level:17},{maxPictureSize:35651584,maxBitrate:48e7,tier:"H",level:17},{maxPictureSize:35651584,maxBitrate:16e7,tier:"M",level:18},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:18},{maxPictureSize:35651584,maxBitrate:16e7,tier:"M",level:19},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:19}],EC=".01.01.01.01.00",kC=".0.110.01.01.01.0",AC=(r,e,t,i)=>{if(r==="avc"){let n=Math.ceil(e/16)*Math.ceil(t/16),o=SC.find(h=>n<=h.maxMacroblocks&&i<=h.maxBitrate)??he(SC),a=o?o.level:0,c="64".padStart(2,"0"),u="00",l=a.toString(16).padStart(2,"0");return`avc1.${c}${u}${l}`}else if(r==="hevc"){let a=e*t,c=vC.find(l=>a<=l.maxPictureSize&&i<=l.maxBitrate)??he(vC);return`hev1.1.6.${c.tier}${c.level}.B0`}else{if(r==="vp8")return"vp8";if(r==="vp9"){let n=e*t;return`vp09.00.${(Rr.find(c=>n<=c.maxPictureSize&&i<=c.maxBitrate)??he(Rr)).level.toString().padStart(2,"0")}.08`}else if(r==="av1"){let n=e*t,o=CC.find(u=>n<=u.maxPictureSize&&i<=u.maxBitrate)??he(CC);return`av01.0.${o.level.toString().padStart(2,"0")}${o.tier}.08`}}throw new TypeError(`Unhandled codec '${r}'.`)};var PC=r=>{let e=r.split("."),s=(1<<7)+1,n=Number(e[1]),o=e[2],a=Number(o.slice(0,-1)),c=(n<<5)+a,u=o.slice(-1)==="H"?1:0,h=Number(e[3])===8?0:1,f=0,d=e[4]?Number(e[4]):0,m=e[5]?Number(e[5][0]):1,x=e[5]?Number(e[5][1]):1,g=e[5]?Number(e[5][2]):0,_=(u<<7)+(h<<6)+(f<<5)+(d<<4)+(m<<3)+(x<<2)+g;return[s,c,_,0]},ql=r=>{let{codec:e,codecDescription:t,colorSpace:i,avcCodecInfo:s,hevcCodecInfo:n,vp9CodecInfo:o,av1CodecInfo:a}=r;if(e==="avc"){if(s){let c=new Uint8Array([s.avcProfileIndication,s.profileCompatibility,s.avcLevelIndication]);return`avc1.${Ip(c)}`}if(!t||t.byteLength<4)throw new TypeError("AVC decoder description is not provided or is not at least 4 bytes long.");return`avc1.${Ip(t.subarray(1,4))}`}else if(e==="hevc"){let c,u,l,h,f,d;if(n)c=n.generalProfileSpace,u=n.generalProfileIdc,l=Fp(n.generalProfileCompatibilityFlags),h=n.generalTierFlag,f=n.generalLevelIdc,d=[...n.generalConstraintIndicatorFlags];else{if(!t||t.byteLength<23)throw new TypeError("HEVC decoder description is not provided or is not at least 23 bytes long.");let x=At(t),g=x.getUint8(1);c=g>>6&3,u=g&31,l=Fp(x.getUint32(2)),h=g>>5&1,f=x.getUint8(12),d=[];for(let _=0;_<6;_++)d.push(x.getUint8(6+_))}let m="hev1.";for(m+=["","A","B","C"][c]+u,m+=".",m+=l.toString(16).toUpperCase(),m+=".",m+=h===0?"L":"H",m+=f;d.length>0&&d[d.length-1]===0;)d.pop();return d.length>0&&(m+=".",m+=d.map(x=>x.toString(16).toUpperCase()).join(".")),m}else{if(e==="vp8")return"vp8";if(e==="vp9"){if(!o){let _=r.width*r.height,y=he(Rr).level;for(let S of Rr)if(_<=S.maxPictureSize){y=S.level;break}return`vp09.00.${y.toString().padStart(2,"0")}.08`}let c=o.profile.toString().padStart(2,"0"),u=o.level.toString().padStart(2,"0"),l=o.bitDepth.toString().padStart(2,"0"),h=o.chromaSubsampling.toString().padStart(2,"0"),f=o.colourPrimaries.toString().padStart(2,"0"),d=o.transferCharacteristics.toString().padStart(2,"0"),m=o.matrixCoefficients.toString().padStart(2,"0"),x=o.videoFullRangeFlag.toString().padStart(2,"0"),g=`vp09.${c}.${u}.${l}.${h}`;return g+=`.${f}.${d}.${m}.${x}`,g.endsWith(EC)&&(g=g.slice(0,-EC.length)),g}else if(e==="av1"){if(!a){let S=r.width*r.height,T=he(Rr).level;for(let C of Rr)if(S<=C.maxPictureSize){T=C.level;break}return`av01.0.${T.toString().padStart(2,"0")}M.08`}let c=a.profile,u=a.level.toString().padStart(2,"0"),l=a.tier?"H":"M",h=a.bitDepth.toString().padStart(2,"0"),f=a.monochrome?"1":"0",d=100*a.chromaSubsamplingX+10*a.chromaSubsamplingY+1*(a.chromaSubsamplingX&&a.chromaSubsamplingY?a.chromaSamplePosition:0),m=i?.primaries?zi[i.primaries]:1,x=i?.transfer?Vi[i.transfer]:1,g=i?.matrix?Hi[i.matrix]:1,_=i?.fullRange?1:0,y=`av01.${c}.${u}${l}.${h}`;return y+=`.${f}.${d.toString().padStart(3,"0")}`,y+=`.${m.toString().padStart(2,"0")}`,y+=`.${x.toString().padStart(2,"0")}`,y+=`.${g.toString().padStart(2,"0")}`,y+=`.${_}`,y.endsWith(kC)&&(y=y.slice(0,-kC.length)),y}}throw new TypeError(`Unhandled codec '${e}'.`)},BC=(r,e,t)=>{if(r==="aac")return e>=2&&t<=24e3?"mp4a.40.29":t<=24e3?"mp4a.40.5":"mp4a.40.2";if(r==="mp3")return"mp3";if(r==="opus")return"opus";if(r==="vorbis")return"vorbis";if(r==="flac")return"flac";if(Ie.includes(r))return r;throw new TypeError(`Unhandled codec '${r}'.`)},jl=r=>{let{codec:e,codecDescription:t,aacCodecInfo:i}=r;if(e==="aac"){if(!i)throw new TypeError("AAC codec info must be provided.");return i.isMpeg2?"mp4a.67":`mp4a.40.${Lp(t).objectType}`}else{if(e==="mp3")return"mp3";if(e==="opus")return"opus";if(e==="vorbis")return"vorbis";if(e==="flac")return"flac";if(e&&Ie.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)},Lp=r=>{if(!r||r.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");let e=new $e(r),t=e.readBits(5);t===31&&(t=32+e.readBits(6));let i=e.readBits(4),s=null;if(i===15)s=e.readBits(24);else{let a=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];i<a.length&&(s=a[i])}let n=e.readBits(4),o=null;return n>=1&&n<=7&&(o={1:1,2:2,3:3,4:4,5:5,6:6,7:8}[n]),{objectType:t,frequencyIndex:i,sampleRate:s,channelConfiguration:n,numberOfChannels:o}},RC=48e3,DC=/^pcm-([usf])(\d+)+(be)?$/,Tt=r=>{if(w(Ie.includes(r)),r==="ulaw")return{dataType:"ulaw",sampleSize:1,littleEndian:!0,silentValue:255};if(r==="alaw")return{dataType:"alaw",sampleSize:1,littleEndian:!0,silentValue:213};let e=DC.exec(r);w(e);let t;e[1]==="u"?t="unsigned":e[1]==="s"?t="signed":t="float";let i=Number(e[2])/8,s=e[3]!=="be",n=r==="pcm-u8"?2**7:0;return{dataType:t,sampleSize:i,littleEndian:s,silentValue:n}},zp=r=>r.startsWith("avc1")||r.startsWith("avc3")?"avc":r.startsWith("hev1")||r.startsWith("hvc1")?"hevc":r==="vp8"?"vp8":r.startsWith("vp09")?"vp9":r.startsWith("av01")?"av1":r.startsWith("mp4a.40")||r==="mp4a.67"?"aac":r==="mp3"||r==="mp4a.69"||r==="mp4a.6B"||r==="mp4a.6b"?"mp3":r==="opus"?"opus":r==="vorbis"?"vorbis":r==="flac"?"flac":r==="ulaw"?"ulaw":r==="alaw"?"alaw":DC.test(r)?r:r==="webvtt"?"webvtt":null,MC=r=>r==="avc"?{avc:{format:"avc"}}:r==="hevc"?{hevc:{format:"hevc"}}:{},IC=r=>r==="aac"?{aac:{format:"aac"}}:r==="opus"?{opus:{format:"opus"}}:{},Pt=class{constructor(e){this._factor=e}_toVideoBitrate(e,t,i){let s=t*i,n={avc:1,hevc:.6,vp9:.6,av1:.4,vp8:1.2},o=1920*1080,a=3e6,c=Math.pow(s/o,.95),h=a*c*n[e]*this._factor;return Math.ceil(h/1e3)*1e3}_toAudioBitrate(e){if(Ie.includes(e)||e==="flac")return;let i={aac:128e3,opus:64e3,mp3:16e4,vorbis:64e3}[e];if(!i)throw new Error(`Unhandled codec: ${e}`);let s=i*this._factor;return e==="aac"?s=[96e3,128e3,16e4,192e3].reduce((o,a)=>Math.abs(a-s)<Math.abs(o-s)?a:o):e==="opus"||e==="vorbis"?s=Math.max(6e3,s):e==="mp3"&&(s=[8e3,16e3,24e3,32e3,4e4,48e3,64e3,8e4,96e3,112e3,128e3,16e4,192e3,224e3,256e3,32e4].reduce((o,a)=>Math.abs(a-s)<Math.abs(o-s)?a:o)),Math.round(s/1e3)*1e3}},vse=new Pt(.3),Cse=new Pt(.6),Ese=new Pt(1),kse=new Pt(2),Ase=new Pt(4),DB=["avc1","avc3","hev1","hvc1","vp8","vp09","av01"],MB=/^(avc1|avc3)\.[0-9a-fA-F]{6}$/,IB=/^(hev1|hvc1)\.(?:[ABC]?\d+)\.[0-9a-fA-F]{1,8}\.[LH]\d+(?:\.[0-9a-fA-F]{1,2}){0,6}$/,FB=/^vp09(?:\.\d{2}){3}(?:(?:\.\d{2}){5})?$/,UB=/^av01\.\d\.\d{2}[MH]\.\d{2}(?:\.\d\.\d{3}\.\d{2}\.\d{2}\.\d{2}\.\d)?$/,FC=r=>{if(!r)throw new TypeError("Video chunk metadata must be provided.");if(typeof r!="object")throw new TypeError("Video chunk metadata must be an object.");if(!r.decoderConfig)throw new TypeError("Video chunk metadata must include a decoder configuration.");if(typeof r.decoderConfig!="object")throw new TypeError("Video chunk metadata decoder configuration must be an object.");if(typeof r.decoderConfig.codec!="string")throw new TypeError("Video chunk metadata decoder configuration must specify a codec string.");if(!DB.some(e=>r.decoderConfig.codec.startsWith(e)))throw new TypeError("Video chunk metadata decoder configuration codec string must be a valid video codec string as specified in the WebCodecs Codec Registry.");if(!Number.isInteger(r.decoderConfig.codedWidth)||r.decoderConfig.codedWidth<=0)throw new TypeError("Video chunk metadata decoder configuration must specify a valid codedWidth (positive integer).");if(!Number.isInteger(r.decoderConfig.codedHeight)||r.decoderConfig.codedHeight<=0)throw new TypeError("Video chunk metadata decoder configuration must specify a valid codedHeight (positive integer).");if(r.decoderConfig.description!==void 0&&!cn(r.decoderConfig.description))throw new TypeError("Video chunk metadata decoder configuration description, when defined, must be an ArrayBuffer or an ArrayBuffer view.");if(r.decoderConfig.colorSpace!==void 0){let{colorSpace:e}=r.decoderConfig;if(typeof e!="object")throw new TypeError("Video chunk metadata decoder configuration colorSpace, when provided, must be an object.");let t=Object.keys(zi);if(e.primaries!=null&&!t.includes(e.primaries))throw new TypeError(`Video chunk metadata decoder configuration colorSpace primaries, when defined, must be one of ${t.join(", ")}.`);let i=Object.keys(Vi);if(e.transfer!=null&&!i.includes(e.transfer))throw new TypeError(`Video chunk metadata decoder configuration colorSpace transfer, when defined, must be one of ${i.join(", ")}.`);let s=Object.keys(Hi);if(e.matrix!=null&&!s.includes(e.matrix))throw new TypeError(`Video chunk metadata decoder configuration colorSpace matrix, when defined, must be one of ${s.join(", ")}.`);if(e.fullRange!=null&&typeof e.fullRange!="boolean")throw new TypeError("Video chunk metadata decoder configuration colorSpace fullRange, when defined, must be a boolean.")}if(r.decoderConfig.codec.startsWith("avc1")||r.decoderConfig.codec.startsWith("avc3")){if(!MB.test(r.decoderConfig.codec))throw new TypeError("Video chunk metadata decoder configuration codec string for AVC must be a valid AVC codec string as specified in Section 3.4 of RFC 6381.")}else if(r.decoderConfig.codec.startsWith("hev1")||r.decoderConfig.codec.startsWith("hvc1")){if(!IB.test(r.decoderConfig.codec))throw new TypeError("Video chunk metadata decoder configuration codec string for HEVC must be a valid HEVC codec string as specified in Section E.3 of ISO 14496-15.")}else if(r.decoderConfig.codec.startsWith("vp8")){if(r.decoderConfig.codec!=="vp8")throw new TypeError('Video chunk metadata decoder configuration codec string for VP8 must be "vp8".')}else if(r.decoderConfig.codec.startsWith("vp09")){if(!FB.test(r.decoderConfig.codec))throw new TypeError('Video chunk metadata decoder configuration codec string for VP9 must be a valid VP9 codec string as specified in Section "Codecs Parameter String" of https://www.webmproject.org/vp9/mp4/.')}else if(r.decoderConfig.codec.startsWith("av01")&&!UB.test(r.decoderConfig.codec))throw new TypeError('Video chunk metadata decoder configuration codec string for AV1 must be a valid AV1 codec string as specified in Section "Codecs Parameter String" of https://aomediacodec.github.io/av1-isobmff/.')},OB=["mp4a","mp3","opus","vorbis","flac","ulaw","alaw","pcm"],UC=r=>{if(!r)throw new TypeError("Audio chunk metadata must be provided.");if(typeof r!="object")throw new TypeError("Audio chunk metadata must be an object.");if(!r.decoderConfig)throw new TypeError("Audio chunk metadata must include a decoder configuration.");if(typeof r.decoderConfig!="object")throw new TypeError("Audio chunk metadata decoder configuration must be an object.");if(typeof r.decoderConfig.codec!="string")throw new TypeError("Audio chunk metadata decoder configuration must specify a codec string.");if(!OB.some(e=>r.decoderConfig.codec.startsWith(e)))throw new TypeError("Audio chunk metadata decoder configuration codec string must be a valid audio codec string as specified in the WebCodecs Codec Registry.");if(!Number.isInteger(r.decoderConfig.sampleRate)||r.decoderConfig.sampleRate<=0)throw new TypeError("Audio chunk metadata decoder configuration must specify a valid sampleRate (positive integer).");if(!Number.isInteger(r.decoderConfig.numberOfChannels)||r.decoderConfig.numberOfChannels<=0)throw new TypeError("Audio chunk metadata decoder configuration must specify a valid numberOfChannels (positive integer).");if(r.decoderConfig.description!==void 0&&!cn(r.decoderConfig.description))throw new TypeError("Audio chunk metadata decoder configuration description, when defined, must be an ArrayBuffer or an ArrayBuffer view.");if(r.decoderConfig.codec.startsWith("mp4a")&&r.decoderConfig.codec!=="mp4a.69"&&r.decoderConfig.codec!=="mp4a.6B"&&r.decoderConfig.codec!=="mp4a.6b"){if(!["mp4a.40.2","mp4a.40.02","mp4a.40.5","mp4a.40.05","mp4a.40.29","mp4a.67"].includes(r.decoderConfig.codec))throw new TypeError("Audio chunk metadata decoder configuration codec string for AAC must be a valid AAC codec string as specified in https://www.w3.org/TR/webcodecs-aac-codec-registration/.");if(!r.decoderConfig.description)throw new TypeError("Audio chunk metadata decoder configuration for AAC must include a description, which is expected to be an AudioSpecificConfig as specified in ISO 14496-3.")}else if(r.decoderConfig.codec.startsWith("mp3")||r.decoderConfig.codec.startsWith("mp4a")){if(r.decoderConfig.codec!=="mp3"&&r.decoderConfig.codec!=="mp4a.69"&&r.decoderConfig.codec!=="mp4a.6B"&&r.decoderConfig.codec!=="mp4a.6b")throw new TypeError('Audio chunk metadata decoder configuration codec string for MP3 must be "mp3", "mp4a.69" or "mp4a.6B".')}else if(r.decoderConfig.codec.startsWith("opus")){if(r.decoderConfig.codec!=="opus")throw new TypeError('Audio chunk metadata decoder configuration codec string for Opus must be "opus".');if(r.decoderConfig.description&&r.decoderConfig.description.byteLength<18)throw new TypeError("Audio chunk metadata decoder configuration description, when specified, is expected to be an Identification Header as specified in Section 5.1 of RFC 7845.")}else if(r.decoderConfig.codec.startsWith("vorbis")){if(r.decoderConfig.codec!=="vorbis")throw new TypeError('Audio chunk metadata decoder configuration codec string for Vorbis must be "vorbis".');if(!r.decoderConfig.description)throw new TypeError("Audio chunk metadata decoder configuration for Vorbis must include a description, which is expected to adhere to the format described in https://www.w3.org/TR/webcodecs-vorbis-codec-registration/.")}else if(r.decoderConfig.codec.startsWith("flac")){if(r.decoderConfig.codec!=="flac")throw new TypeError('Audio chunk metadata decoder configuration codec string for FLAC must be "flac".');if(!r.decoderConfig.description||r.decoderConfig.description.byteLength<42)throw new TypeError("Audio chunk metadata decoder configuration for FLAC must include a description, which is expected to adhere to the format described in https://www.w3.org/TR/webcodecs-flac-codec-registration/.")}else if((r.decoderConfig.codec.startsWith("pcm")||r.decoderConfig.codec.startsWith("ulaw")||r.decoderConfig.codec.startsWith("alaw"))&&!Ie.includes(r.decoderConfig.codec))throw new TypeError(`Audio chunk metadata decoder configuration codec string for PCM must be one of the supported PCM codecs (${Ie.join(", ")}).`)},OC=r=>{if(!r)throw new TypeError("Subtitle metadata must be provided.");if(typeof r!="object")throw new TypeError("Subtitle metadata must be an object.");if(!r.config)throw new TypeError("Subtitle metadata must include a config object.");if(typeof r.config!="object")throw new TypeError("Subtitle metadata config must be an object.");if(typeof r.config.description!="string")throw new TypeError("Subtitle metadata config description must be a string.")};var Vp=/<(?:(\d{2}):)?(\d{2}):(\d{2}).(\d{3})>/g;var GC=r=>{let e=Math.floor(r/36e5),t=Math.floor(r%(3600*1e3)/(60*1e3)),i=Math.floor(r%(60*1e3)/1e3),s=r%1e3;return e.toString().padStart(2,"0")+":"+t.toString().padStart(2,"0")+":"+i.toString().padStart(2,"0")+"."+s.toString().padStart(3,"0")};var Va=r=>{let e=[],t=0;for(;t<r.length;){let i=-1,s=0;for(let n=t;n<r.length-3;n++){if(r[n]===0&&r[n+1]===0&&r[n+2]===1){i=n,s=3;break}if(n<r.length-4&&r[n]===0&&r[n+1]===0&&r[n+2]===0&&r[n+3]===1){i=n,s=4;break}}if(i===-1)break;if(t>0&&i>t){let n=r.subarray(t,i);n.length>0&&e.push(n)}t=i+s}if(t<r.length){let i=r.subarray(t);i.length>0&&e.push(i)}return e},NC=(r,e)=>{let t=[],i=0,s=new DataView(r.buffer,r.byteOffset,r.byteLength);for(;i+e<=r.length;){let n;e===1?n=s.getUint8(i):e===2?n=s.getUint16(i,!1):e===3?n=(s.getUint16(i,!1)<<8)+s.getUint8(i+2):e===4?n=s.getUint32(i,!1):(si(e),w(!1)),i+=e;let o=r.subarray(i,i+n);t.push(o),i+=n}return t},Hp=r=>{let e=[],t=r.length;for(let i=0;i<t;i++)i+2<t&&r[i]===0&&r[i+1]===0&&r[i+2]===3?(e.push(0,0),i+=2):e.push(r[i]);return new Uint8Array(e)},WC=r=>{let t=Va(r);if(t.length===0)return null;let i=0;for(let a of t)i+=4+a.byteLength;let s=new Uint8Array(i),n=new DataView(s.buffer),o=0;for(let a of t){let c=a.byteLength;n.setUint32(o,c,!1),o+=4,s.set(a,o),o+=a.byteLength}return s},Xl=r=>r[0]&31,Yl=r=>{try{let e=Va(r),t=e.filter(f=>Xl(f)===7),i=e.filter(f=>Xl(f)===8),s=e.filter(f=>Xl(f)===13);if(t.length===0||i.length===0)return null;let n=t[0],o=new $e(Hp(n));if(o.skipBits(1),o.skipBits(2),o.readBits(5)!==7)return console.error("Invalid SPS NAL unit type"),null;let c=o.readAlignedByte(),u=o.readAlignedByte(),l=o.readAlignedByte(),h={configurationVersion:1,avcProfileIndication:c,profileCompatibility:u,avcLevelIndication:l,lengthSizeMinusOne:3,sequenceParameterSets:t,pictureParameterSets:i,chromaFormat:null,bitDepthLumaMinus8:null,bitDepthChromaMinus8:null,sequenceParameterSetExt:null};if(c===100||c===110||c===122||c===144){N(o);let f=N(o);f===3&&o.skipBits(1);let d=N(o),m=N(o);h.chromaFormat=f,h.bitDepthLumaMinus8=d,h.bitDepthChromaMinus8=m,h.sequenceParameterSetExt=s}return h}catch(e){return console.error("Error building AVC Decoder Configuration Record:",e),null}},$C=r=>{let e=[];e.push(r.configurationVersion),e.push(r.avcProfileIndication),e.push(r.profileCompatibility),e.push(r.avcLevelIndication),e.push(252|r.lengthSizeMinusOne&3),e.push(224|r.sequenceParameterSets.length&31);for(let t of r.sequenceParameterSets){let i=t.byteLength;e.push(i>>8),e.push(i&255);for(let s=0;s<i;s++)e.push(t[s])}e.push(r.pictureParameterSets.length);for(let t of r.pictureParameterSets){let i=t.byteLength;e.push(i>>8),e.push(i&255);for(let s=0;s<i;s++)e.push(t[s])}if(r.avcProfileIndication===100||r.avcProfileIndication===110||r.avcProfileIndication===122||r.avcProfileIndication===144){w(r.chromaFormat!==null),w(r.bitDepthLumaMinus8!==null),w(r.bitDepthChromaMinus8!==null),w(r.sequenceParameterSetExt!==null),e.push(252|r.chromaFormat&3),e.push(248|r.bitDepthLumaMinus8&7),e.push(248|r.bitDepthChromaMinus8&7),e.push(r.sequenceParameterSetExt.length);for(let t of r.sequenceParameterSetExt){let i=t.byteLength;e.push(i>>8),e.push(i&255);for(let s=0;s<i;s++)e.push(t[s])}}return new Uint8Array(e)},LC=32,zC=33,VC=34,GB=39,NB=40,Wi=r=>r[0]>>1&63,Kl=r=>{try{let e=Va(r),t=e.filter(B=>Wi(B)===LC),i=e.filter(B=>Wi(B)===zC),s=e.filter(B=>Wi(B)===VC),n=e.filter(B=>Wi(B)===GB||Wi(B)===NB);if(i.length===0||s.length===0)return null;let o=i[0],a=new $e(Hp(o));a.skipBits(16),a.readBits(4);let c=a.readBits(3),u=a.readBits(1),{general_profile_space:l,general_tier_flag:h,general_profile_idc:f,general_profile_compatibility_flags:d,general_constraint_indicator_flags:m,general_level_idc:x}=LB(a,c);N(a);let g=N(a);g===3&&a.skipBits(1),N(a),N(a),a.readBits(1)&&(N(a),N(a),N(a),N(a));let _=N(a),y=N(a);N(a);let T=a.readBits(1)?0:c;for(let B=T;B<=c;B++)N(a),N(a),N(a);N(a),N(a),N(a),N(a),N(a),N(a),a.readBits(1)&&a.readBits(1)&&zB(a),a.skipBits(1),a.skipBits(1),a.readBits(1)&&(a.skipBits(4),a.skipBits(4),N(a),N(a),a.skipBits(1));let C=N(a);if(VB(a,C),a.readBits(1)){let B=N(a);for(let k=0;k<B;k++)N(a),a.skipBits(1)}a.skipBits(1),a.skipBits(1);let v=0;a.readBits(1)&&(v=WB(a,c));let E=0;if(s.length>0){let B=s[0],k=new $e(Hp(B));k.skipBits(16),N(k),N(k),k.skipBits(1),k.skipBits(1),k.skipBits(3),k.skipBits(1),k.skipBits(1),N(k),N(k),an(k),k.skipBits(1),k.skipBits(1),k.readBits(1)&&N(k),an(k),an(k),k.skipBits(1),k.skipBits(1),k.skipBits(1),k.skipBits(1);let L=k.readBits(1),j=k.readBits(1);!L&&!j?E=0:L&&!j?E=2:!L&&j?E=3:E=0}let M=[...t.length?[{arrayCompleteness:1,nalUnitType:LC,nalUnits:t}]:[],...i.length?[{arrayCompleteness:1,nalUnitType:zC,nalUnits:i}]:[],...s.length?[{arrayCompleteness:1,nalUnitType:VC,nalUnits:s}]:[],...n.length?[{arrayCompleteness:1,nalUnitType:Wi(n[0]),nalUnits:n}]:[]];return{configurationVersion:1,generalProfileSpace:l,generalTierFlag:h,generalProfileIdc:f,generalProfileCompatibilityFlags:d,generalConstraintIndicatorFlags:m,generalLevelIdc:x,minSpatialSegmentationIdc:v,parallelismType:E,chromaFormatIdc:g,bitDepthLumaMinus8:_,bitDepthChromaMinus8:y,avgFrameRate:0,constantFrameRate:0,numTemporalLayers:c+1,temporalIdNested:u,lengthSizeMinusOne:3,arrays:M}}catch(e){return console.error("Error building HEVC Decoder Configuration Record:",e),null}},LB=(r,e)=>{let t=r.readBits(2),i=r.readBits(1),s=r.readBits(5),n=0;for(let l=0;l<32;l++)n=n<<1|r.readBits(1);let o=new Uint8Array(6);for(let l=0;l<6;l++)o[l]=r.readBits(8);let a=r.readBits(8),c=[],u=[];for(let l=0;l<e;l++)c.push(r.readBits(1)),u.push(r.readBits(1));if(e>0)for(let l=e;l<8;l++)r.skipBits(2);for(let l=0;l<e;l++)c[l]&&r.skipBits(88),u[l]&&r.skipBits(8);return{general_profile_space:t,general_tier_flag:i,general_profile_idc:s,general_profile_compatibility_flags:n,general_constraint_indicator_flags:o,general_level_idc:a}},zB=r=>{for(let e=0;e<4;e++)for(let t=0;t<(e===3?2:6);t++)if(!r.readBits(1))N(r);else{let s=Math.min(64,1<<4+(e<<1));e>1&&an(r);for(let n=0;n<s;n++)an(r)}},VB=(r,e)=>{let t=[];for(let i=0;i<e;i++)t[i]=HB(r,i,e,t)},HB=(r,e,t,i)=>{let s=0,n=0,o=0;if(e!==0&&(n=r.readBits(1)),n){if(e===t){let c=N(r);o=e-(c+1)}else o=e-1;r.readBits(1),N(r);let a=i[o]??0;for(let c=0;c<=a;c++)r.readBits(1)||r.readBits(1);s=i[o]}else{let a=N(r),c=N(r);for(let u=0;u<a;u++)N(r),r.readBits(1);for(let u=0;u<c;u++)N(r),r.readBits(1);s=a+c}return s},WB=(r,e)=>{if(r.readBits(1)&&r.readBits(8)===255&&(r.readBits(16),r.readBits(16)),r.readBits(1)&&r.readBits(1),r.readBits(1)&&(r.readBits(3),r.readBits(1),r.readBits(1)&&(r.readBits(8),r.readBits(8),r.readBits(8))),r.readBits(1)&&(N(r),N(r)),r.readBits(1),r.readBits(1),r.readBits(1),r.readBits(1)&&(N(r),N(r),N(r),N(r)),r.readBits(1)&&(r.readBits(32),r.readBits(32),r.readBits(1)&&N(r),r.readBits(1)&&$B(r,!0,e)),r.readBits(1)){r.readBits(1),r.readBits(1),r.readBits(1);let t=N(r);return N(r),N(r),N(r),N(r),t}return 0},$B=(r,e,t)=>{let i=!1,s=!1,n=!1;e&&(i=r.readBits(1)===1,s=r.readBits(1)===1,(i||s)&&(n=r.readBits(1)===1,n&&(r.readBits(8),r.readBits(5),r.readBits(1),r.readBits(5)),r.readBits(4),r.readBits(4),n&&r.readBits(4),r.readBits(5),r.readBits(5),r.readBits(5)));for(let o=0;o<=t;o++){let a=r.readBits(1)===1,c=!0;a||(c=r.readBits(1)===1);let u=!1;c?N(r):u=r.readBits(1)===1;let l=1;u||(l=N(r)+1),i&&HC(r,l,n),s&&HC(r,l,n)}},HC=(r,e,t)=>{for(let i=0;i<e;i++)N(r),N(r),t&&(N(r),N(r)),r.readBits(1)},qC=r=>{let e=[];e.push(r.configurationVersion),e.push((r.generalProfileSpace&3)<<6|(r.generalTierFlag&1)<<5|r.generalProfileIdc&31),e.push(r.generalProfileCompatibilityFlags>>>24&255),e.push(r.generalProfileCompatibilityFlags>>>16&255),e.push(r.generalProfileCompatibilityFlags>>>8&255),e.push(r.generalProfileCompatibilityFlags&255),e.push(...r.generalConstraintIndicatorFlags),e.push(r.generalLevelIdc&255),e.push(240|r.minSpatialSegmentationIdc>>8&15),e.push(r.minSpatialSegmentationIdc&255),e.push(252|r.parallelismType&3),e.push(252|r.chromaFormatIdc&3),e.push(248|r.bitDepthLumaMinus8&7),e.push(248|r.bitDepthChromaMinus8&7),e.push(r.avgFrameRate>>8&255),e.push(r.avgFrameRate&255),e.push((r.constantFrameRate&3)<<6|(r.numTemporalLayers&7)<<3|(r.temporalIdNested&1)<<2|r.lengthSizeMinusOne&3),e.push(r.arrays.length&255);for(let t of r.arrays){e.push((t.arrayCompleteness&1)<<7|0|t.nalUnitType&63),e.push(t.nalUnits.length>>8&255),e.push(t.nalUnits.length&255);for(let i of t.nalUnits){e.push(i.length>>8&255),e.push(i.length&255);for(let s=0;s<i.length;s++)e.push(i[s])}}return new Uint8Array(e)},Ql=r=>{let e=new $e(r);if(e.readBits(2)!==2)return null;let i=e.readBits(1),n=(e.readBits(1)<<1)+i;if(n===3&&e.skipBits(1),e.readBits(1)===1||e.readBits(1)!==0||(e.skipBits(2),e.readBits(24)!==4817730))return null;let u=8;n>=2&&(u=e.readBits(1)?12:10);let l=e.readBits(3),h=0,f=0;if(l!==7)if(f=e.readBits(1),n===1||n===3){let E=e.readBits(1),M=e.readBits(1);h=!E&&!M?3:E&&!M?2:1,e.skipBits(1)}else h=1;else h=3,f=1;let d=e.readBits(16),m=e.readBits(16),x=d+1,g=m+1,_=x*g,y=he(Rr).level;for(let v of Rr)if(_<=v.maxPictureSize){y=v.level;break}return{profile:n,level:y,bitDepth:u,chromaSubsampling:h,videoFullRangeFlag:f,colourPrimaries:l===2?1:l===1?6:2,transferCharacteristics:l===2?1:l===1?6:2,matrixCoefficients:l===7?0:l===2?1:l===1?6:2}};function*jC(r){let e=new $e(r),t=()=>{let i=0;for(let s=0;s<8;s++){let n=e.readAlignedByte();if(i|=(n&127)<<s*7,!(n&128))break;if(s===7&&n&128)return null}return i>=2**32-1?null:i};for(;e.getBitsLeft()>=8;){e.skipBits(1);let i=e.readBits(4),s=e.readBits(1),n=e.readBits(1);e.skipBits(1),s&&e.skipBits(8);let o;if(n){let a=t();if(a===null)return;o=a}else o=Math.floor(e.getBitsLeft()/8);w(e.pos%8===0),yield{type:i,data:r.subarray(e.pos/8,e.pos/8+o)},e.skipBits(o*8)}}var Zl=r=>{for(let{type:e,data:t}of jC(r)){if(e!==1)continue;let i=new $e(t),s=i.readBits(3),n=i.readBits(1),o=i.readBits(1),a=0,c=0,u=0;if(o)a=i.readBits(5);else{if(i.readBits(1)&&(i.skipBits(32),i.skipBits(32),i.readBits(1)))return null;let _=i.readBits(1);_&&(u=i.readBits(5),i.skipBits(32),i.skipBits(5),i.skipBits(5));let y=i.readBits(5);for(let S=0;S<=y;S++){i.skipBits(12);let T=i.readBits(5);if(S===0&&(a=T),T>7){let v=i.readBits(1);S===0&&(c=v)}if(_&&i.readBits(1)){let E=u+1;i.skipBits(E),i.skipBits(E),i.skipBits(1)}i.readBits(1)&&i.skipBits(4)}}let l=i.readBits(1),h=8;s===2&&l?h=i.readBits(1)?12:10:s<=2&&(h=l?10:8);let f=0;s!==1&&(f=i.readBits(1));let d=1,m=1,x=0;return f||(s===0?(d=1,m=1):s===1?(d=0,m=0):h===12&&(d=i.readBits(1),d&&(m=i.readBits(1))),d&&m&&(x=i.readBits(2))),{profile:s,level:a,tier:c,bitDepth:h,monochrome:f,chromaSubsamplingX:d,chromaSubsamplingY:m,chromaSamplePosition:x}}return null},Jl=r=>{let e=At(r),t=e.getUint8(9),i=e.getUint16(10,!0),s=e.getUint32(12,!0),n=e.getInt16(16,!0),o=e.getUint8(18),a=null;return o&&(a=r.subarray(19,21+t)),{outputChannelCount:t,preSkip:i,inputSampleRate:s,outputGain:n,channelMappingFamily:o,channelMappingTable:a}},qB=[480,960,1920,2880,480,960,1920,2880,480,960,1920,2880,480,960,480,960,120,240,480,960,120,240,480,960,120,240,480,960,120,240,480,960],XC=r=>{let e=r[0]>>3;return{durationInSamples:qB[e]}},YC=r=>{if(r.length<7)throw new Error("Setup header is too short.");if(r[0]!==5)throw new Error("Wrong packet type in Setup header.");if(String.fromCharCode(...r.slice(1,7))!=="vorbis")throw new Error("Invalid packet signature in Setup header.");let t=r.length,i=new Uint8Array(t);for(let h=0;h<t;h++)i[h]=r[t-1-h];let s=new $e(i),n=0;for(;s.getBitsLeft()>97;)if(s.readBits(1)===1){n=s.pos;break}if(n===0)throw new Error("Invalid Setup header: framing bit not found.");let o=0,a=!1,c=0;for(;s.getBitsLeft()>=97;){let h=s.pos,f=s.readBits(8),d=s.readBits(16),m=s.readBits(16);if(f>63||d!==0||m!==0){s.pos=h;break}if(s.skipBits(1),o++,o>64)break;s.clone().readBits(6)+1===o&&(a=!0,c=o)}if(!a)throw new Error("Invalid Setup header: mode header not found.");if(c>63)throw new Error(`Unsupported mode count: ${c}.`);let u=c;s.pos=0,s.skipBits(n);let l=Array(u).fill(0);for(let h=u-1;h>=0;h--)s.skipBits(40),l[h]=s.readBits(1);return{modeBlockflags:l}},KC=async(r,e)=>{switch(w(r.codec),r.codec){case"avc":{let t=await r.getDecoderConfig();w(t);let i;if(t.description){let a=(yt(t.description)[4]&3)+1;i=NC(e.data,a)}else i=Va(e.data);return i.some(n=>Xl(n)===5)?"key":"delta"}case"hevc":{let t=await r.getDecoderConfig();w(t);let i;if(t.description){let a=(yt(t.description)[21]&3)+1;i=NC(e.data,a)}else i=Va(e.data);return i.some(n=>{let o=Wi(n);return 16<=o&&o<=23})?"key":"delta"}case"vp8":return(e.data[0]&1)===0?"key":"delta";case"vp9":{let t=new $e(e.data);if(t.readBits(2)!==2)return null;let i=t.readBits(1);return(t.readBits(1)<<1)+i===3&&t.skipBits(1),t.readBits(1)?null:t.readBits(1)===0?"key":"delta"}case"av1":{let t=!1;for(let{type:i,data:s}of jC(e.data))if(i===1){let n=new $e(s);n.skipBits(4),t=!!n.readBits(1)}else if(i===3||i===6||i===7){if(t)return"key";let n=new $e(s);return n.readBits(1)?null:n.readBits(2)===0?"key":"delta"}return null}default:si(r.codec),w(!1)}};var Ha=class{constructor(e){this.writer=e,this.helper=new Uint8Array(8),this.helperView=new DataView(this.helper.buffer),this.offsets=new WeakMap}writeU32(e){this.helperView.setUint32(0,e,!1),this.writer.write(this.helper.subarray(0,4))}writeU64(e){this.helperView.setUint32(0,Math.floor(e/2**32),!1),this.helperView.setUint32(4,e,!1),this.writer.write(this.helper.subarray(0,8))}writeAscii(e){for(let t=0;t<e.length;t++)this.helperView.setUint8(t%8,e.charCodeAt(t)),t%8===7&&this.writer.write(this.helper);e.length%8!==0&&this.writer.write(this.helper.subarray(0,e.length%8))}writeBox(e){if(this.offsets.set(e,this.writer.getPos()),e.contents&&!e.children)this.writeBoxHeader(e,e.size??e.contents.byteLength+8),this.writer.write(e.contents);else{let t=this.writer.getPos();if(this.writeBoxHeader(e,0),e.contents&&this.writer.write(e.contents),e.children)for(let n of e.children)n&&this.writeBox(n);let i=this.writer.getPos(),s=e.size??i-t;this.writer.seek(t),this.writeBoxHeader(e,s),this.writer.seek(i)}}writeBoxHeader(e,t){this.writeU32(e.largeSize?1:t),this.writeAscii(e.type),e.largeSize&&this.writeU64(t)}measureBoxHeader(e){return 8+(e.largeSize?8:0)}patchBox(e){let t=this.offsets.get(e);w(t!==void 0);let i=this.writer.getPos();this.writer.seek(t),this.writeBox(e),this.writer.seek(i)}measureBox(e){if(e.contents&&!e.children)return this.measureBoxHeader(e)+e.contents.byteLength;{let t=this.measureBoxHeader(e);if(e.contents&&(t+=e.contents.byteLength),e.children)for(let i of e.children)i&&(t+=this.measureBox(i));return t}}},ie=new Uint8Array(8),ur=new DataView(ie.buffer),ke=r=>[(r%256+256)%256],X=r=>(ur.setUint16(0,r,!1),[ie[0],ie[1]]),ZC=r=>(ur.setInt16(0,r,!1),[ie[0],ie[1]]),JC=r=>(ur.setUint32(0,r,!1),[ie[1],ie[2],ie[3]]),F=r=>(ur.setUint32(0,r,!1),[ie[0],ie[1],ie[2],ie[3]]),ai=r=>(ur.setInt32(0,r,!1),[ie[0],ie[1],ie[2],ie[3]]),$i=r=>(ur.setUint32(0,Math.floor(r/2**32),!1),ur.setUint32(4,r,!1),[ie[0],ie[1],ie[2],ie[3],ie[4],ie[5],ie[6],ie[7]]),eE=r=>(ur.setInt16(0,2**8*r,!1),[ie[0],ie[1]]),Mr=r=>(ur.setInt32(0,2**16*r,!1),[ie[0],ie[1],ie[2],ie[3]]),Wp=r=>(ur.setInt32(0,2**30*r,!1),[ie[0],ie[1],ie[2],ie[3]]),$p=(r,e)=>{let t=[],i=r;do{let s=i&127;i>>=7,t.length>0&&(s|=128),t.push(s),e!==void 0&&e--}while(i>0||e);return t.reverse()},st=(r,e=!1)=>{let t=Array(r.length).fill(null).map((i,s)=>r.charCodeAt(s));return e&&t.push(0),t},jp=r=>{let e=null;for(let t of r)(!e||t.timestamp>e.timestamp)&&(e=t);return e},tE=r=>{let e=r*(Math.PI/180),t=Math.round(Math.cos(e)),i=Math.round(Math.sin(e));return[t,i,0,-i,t,0,0,0,1]},rE=tE(0),iE=r=>[Mr(r[0]),Mr(r[1]),Wp(r[2]),Mr(r[3]),Mr(r[4]),Wp(r[5]),Mr(r[6]),Mr(r[7]),Wp(r[8])],te=(r,e,t)=>({type:r,contents:e&&new Uint8Array(e.flat(10)),children:t}),ne=(r,e,t,i,s)=>te(r,[ke(e),JC(t),i??[]],s),sE=r=>r.isQuickTime?te("ftyp",[st("qt "),F(512),st("qt ")]):r.fragmented?te("ftyp",[st("iso5"),F(512),st("iso5"),st("iso6"),st("mp41")]):te("ftyp",[st("isom"),F(512),st("isom"),r.holdsAvc?st("avc1"):[],st("mp41")]),th=r=>({type:"mdat",largeSize:r}),Wa=(r,e,t=!1)=>te("moov",void 0,[jB(e,r),...r.map(i=>XB(i,e)),t?BR(r):null]),jB=(r,e)=>{let t=Fe(Math.max(0,...e.filter(o=>o.samples.length>0).map(o=>{let a=jp(o.samples);return a.timestamp+a.duration})),eh),i=Math.max(0,...e.map(o=>o.track.id))+1,s=!Ni(r)||!Ni(t),n=s?$i:F;return ne("mvhd",+s,0,[n(r),n(r),F(eh),n(t),Mr(1),eE(1),Array(10).fill(0),iE(rE),Array(24).fill(0),F(i)])},XB=(r,e)=>te("trak",void 0,[YB(r,e),KB(r,e)]),YB=(r,e)=>{let t=jp(r.samples),i=Fe(t?t.timestamp+t.duration:0,eh),s=!Ni(e)||!Ni(i),n=s?$i:F,o;if(r.type==="video"){let a=r.track.metadata.rotation;o=tE(a??0)}else o=rE;return ne("tkhd",+s,3,[n(e),n(e),F(r.track.id),F(0),n(i),Array(8).fill(0),X(0),X(r.track.id),eE(r.type==="audio"?1:0),X(0),iE(o),Mr(r.type==="video"?r.info.width:0),Mr(r.type==="video"?r.info.height:0)])},KB=(r,e)=>te("mdia",void 0,[QB(r,e),eR(r),tR(r)]),QB=(r,e)=>{let t=jp(r.samples),i=Fe(t?t.timestamp+t.duration:0,r.timescale),s=!Ni(e)||!Ni(i),n=s?$i:F,o=0;for(let a of r.track.metadata.languageCode??mt)o<<=5,o+=a.charCodeAt(0)-96;return ne("mdhd",+s,0,[n(e),n(e),F(r.timescale),n(i),X(o),X(0)])},ZB={video:"vide",audio:"soun",subtitle:"text"},JB={video:"MediabunnyVideoHandler",audio:"MediabunnySoundHandler",subtitle:"MediabunnyTextHandler"},eR=r=>ne("hdlr",0,0,[st("mhlr"),st(ZB[r.type]),F(0),F(0),F(0),st(JB[r.type],!0)]),tR=r=>te("minf",void 0,[nR[r.type](),oR(),uR(r)]),rR=()=>ne("vmhd",0,1,[X(0),X(0),X(0),X(0)]),iR=()=>ne("smhd",0,0,[X(0),X(0)]),sR=()=>ne("nmhd",0,0),nR={video:rR,audio:iR,subtitle:sR},oR=()=>te("dinf",void 0,[aR()]),aR=()=>ne("dref",0,0,[F(1)],[cR()]),cR=()=>ne("url ",0,1),uR=r=>{let e=r.compositionTimeOffsetTable.length>1||r.compositionTimeOffsetTable.some(t=>t.sampleCompositionTimeOffset!==0);return te("stbl",void 0,[lR(r),SR(r),e?AR(r):null,e?PR(r):null,CR(r),ER(r),kR(r),vR(r)])},lR=r=>{let e;if(r.type==="video")e=hR(NR[r.track.source._codec],r);else if(r.type==="audio"){let t=lE(r.track.source._codec,r.muxer.isQuickTime);w(t),e=gR(t,r)}else r.type==="subtitle"&&(e=TR(VR[r.track.source._codec],r));return w(e),ne("stsd",0,0,[F(1)],[e])},hR=(r,e)=>te(r,[Array(6).fill(0),X(1),X(0),X(0),Array(12).fill(0),X(e.info.width),X(e.info.height),F(4718592),F(4718592),F(0),X(1),Array(32).fill(0),X(24),ZC(65535)],[LR[e.track.source._codec](e),dC(e.info.decoderConfig.colorSpace)?dR(e):null]),dR=r=>te("colr",[st("nclx"),X(zi[r.info.decoderConfig.colorSpace.primaries]),X(Vi[r.info.decoderConfig.colorSpace.transfer]),X(Hi[r.info.decoderConfig.colorSpace.matrix]),ke((r.info.decoderConfig.colorSpace.fullRange?1:0)<<7)]),fR=r=>r.info.decoderConfig&&te("avcC",[...yt(r.info.decoderConfig.description)]),mR=r=>r.info.decoderConfig&&te("hvcC",[...yt(r.info.decoderConfig.description)]),QC=r=>{if(!r.info.decoderConfig)return null;let e=r.info.decoderConfig,t=e.codec.split("."),i=Number(t[1]),s=Number(t[2]),n=Number(t[3]),o=t[4]?Number(t[4]):1,a=t[8]?Number(t[8]):Number(e.colorSpace?.fullRange??0),c=(n<<4)+(o<<1)+a,u=t[5]?Number(t[5]):e.colorSpace?.primaries?zi[e.colorSpace.primaries]:2,l=t[6]?Number(t[6]):e.colorSpace?.transfer?Vi[e.colorSpace.transfer]:2,h=t[7]?Number(t[7]):e.colorSpace?.matrix?Hi[e.colorSpace.matrix]:2;return ne("vpcC",1,0,[ke(i),ke(s),ke(c),ke(u),ke(l),ke(h),X(0)])},pR=r=>te("av1C",PC(r.info.decoderConfig.codec)),gR=(r,e)=>{let t=0,i,s=16;if(Ie.includes(e.track.source._codec)){let n=e.track.source._codec,{sampleSize:o}=Tt(n);s=8*o,s>16&&(t=1)}return t===0?i=[Array(6).fill(0),X(1),X(t),X(0),F(0),X(e.info.numberOfChannels),X(s),X(0),X(0),X(e.info.sampleRate<2**16?e.info.sampleRate:0),X(0)]:i=[Array(6).fill(0),X(1),X(t),X(0),F(0),X(e.info.numberOfChannels),X(Math.min(s,16)),X(0),X(0),X(e.info.sampleRate<2**16?e.info.sampleRate:0),X(0),F(1),F(s/8),F(e.info.numberOfChannels*s/8),F(2)],te(r,i,[zR(e.track.source._codec,e.muxer.isQuickTime)?.(e)??null])},qp=r=>{let e;switch(r.track.source._codec){case"aac":e=64;break;case"mp3":e=107;break;case"vorbis":e=221;break;default:throw new Error(`Unhandled audio codec: ${r.track.source._codec}`)}let t=[...ke(e),...ke(21),...JC(0),...F(0),...F(0)];if(r.info.decoderConfig.description){let i=yt(r.info.decoderConfig.description);t=[...t,...ke(5),...$p(i.byteLength),...i]}return t=[...X(1),...ke(0),...ke(4),...$p(t.length),...t,...ke(6),...ke(1),...ke(2)],t=[...ke(3),...$p(t.length),...t],ne("esds",0,0,t)},oi=r=>te("wave",void 0,[xR(r),_R(r),te("\0\0\0\0")]),xR=r=>te("frma",[st(lE(r.track.source._codec,r.muxer.isQuickTime))]),_R=r=>{let{littleEndian:e}=Tt(r.track.source._codec);return te("enda",[X(+e)])},bR=r=>{let e=r.info.numberOfChannels,t=3840,i=r.info.sampleRate,s=0,n=0,o=new Uint8Array(0),a=r.info.decoderConfig?.description;if(a){w(a.byteLength>=18);let c=yt(a),u=Jl(c);e=u.outputChannelCount,t=u.preSkip,i=u.inputSampleRate,s=u.outputGain,n=u.channelMappingFamily,u.channelMappingTable&&(o=u.channelMappingTable)}return te("dOps",[ke(0),ke(e),X(t),F(i),ZC(s),ke(n),...o])},yR=r=>{let e=r.info.decoderConfig?.description;w(e);let t=yt(e);return ne("dfLa",0,0,[...t.subarray(4)])},cr=r=>{let{littleEndian:e,sampleSize:t}=Tt(r.track.source._codec),i=+e;return ne("pcmC",0,0,[ke(i),ke(8*t)])},TR=(r,e)=>te(r,[Array(6).fill(0),X(1)],[HR[e.track.source._codec](e)]),wR=r=>te("vttC",[...Li.encode(r.info.config.description)]);var SR=r=>ne("stts",0,0,[F(r.timeToSampleTable.length),r.timeToSampleTable.map(e=>[F(e.sampleCount),F(e.sampleDelta)])]),vR=r=>{if(r.samples.every(t=>t.type==="key"))return null;let e=[...r.samples.entries()].filter(([,t])=>t.type==="key");return ne("stss",0,0,[F(e.length),e.map(([t])=>F(t+1))])},CR=r=>ne("stsc",0,0,[F(r.compactlyCodedChunkTable.length),r.compactlyCodedChunkTable.map(e=>[F(e.firstChunk),F(e.samplesPerChunk),F(1)])]),ER=r=>{if(r.type==="audio"&&r.info.requiresPcmTransformation){let{sampleSize:e}=Tt(r.track.source._codec);return ne("stsz",0,0,[F(e*r.info.numberOfChannels),F(r.samples.reduce((t,i)=>t+Fe(i.duration,r.timescale),0))])}return ne("stsz",0,0,[F(0),F(r.samples.length),r.samples.map(e=>F(e.size))])},kR=r=>r.finalizedChunks.length>0&&he(r.finalizedChunks).offset>=2**32?ne("co64",0,0,[F(r.finalizedChunks.length),r.finalizedChunks.map(e=>$i(e.offset))]):ne("stco",0,0,[F(r.finalizedChunks.length),r.finalizedChunks.map(e=>F(e.offset))]),AR=r=>ne("ctts",1,0,[F(r.compositionTimeOffsetTable.length),r.compositionTimeOffsetTable.map(e=>[F(e.sampleCount),ai(e.sampleCompositionTimeOffset)])]),PR=r=>{let e=1/0,t=-1/0,i=1/0,s=-1/0;w(r.compositionTimeOffsetTable.length>0),w(r.samples.length>0);for(let o=0;o<r.compositionTimeOffsetTable.length;o++){let a=r.compositionTimeOffsetTable[o];e=Math.min(e,a.sampleCompositionTimeOffset),t=Math.max(t,a.sampleCompositionTimeOffset)}for(let o=0;o<r.samples.length;o++){let a=r.samples[o];i=Math.min(i,Fe(a.timestamp,r.timescale)),s=Math.max(s,Fe(a.timestamp+a.duration,r.timescale))}let n=Math.max(-e,0);return s>=2**31?null:ne("cslg",0,0,[ai(n),ai(e),ai(t),ai(i),ai(s)])},BR=r=>te("mvex",void 0,r.map(RR)),RR=r=>ne("trex",0,0,[F(r.track.id),F(1),F(0),F(0),F(0)]),Xp=(r,e)=>te("moof",void 0,[DR(r),...e.map(MR)]),DR=r=>ne("mfhd",0,0,[F(r)]),nE=r=>{let e=0,t=0,i=0,s=0,n=r.type==="delta";return t|=+n,n?e|=1:e|=2,e<<24|t<<16|i<<8|s},MR=r=>te("traf",void 0,[IR(r),FR(r),UR(r)]),IR=r=>{w(r.currentChunk);let e=0;e|=8,e|=16,e|=32,e|=131072;let t=r.currentChunk.samples[1]??r.currentChunk.samples[0],i={duration:t.timescaleUnitsToNextSample,size:t.size,flags:nE(t)};return ne("tfhd",0,e,[F(r.track.id),F(i.duration),F(i.size),F(i.flags)])},FR=r=>(w(r.currentChunk),ne("tfdt",1,0,[$i(Fe(r.currentChunk.startTimestamp,r.timescale))])),UR=r=>{w(r.currentChunk);let e=r.currentChunk.samples.map(x=>x.timescaleUnitsToNextSample),t=r.currentChunk.samples.map(x=>x.size),i=r.currentChunk.samples.map(nE),s=r.currentChunk.samples.map(x=>Fe(x.timestamp-x.decodeTimestamp,r.timescale)),n=new Set(e),o=new Set(t),a=new Set(i),c=new Set(s),u=a.size===2&&i[0]!==i[1],l=n.size>1,h=o.size>1,f=!u&&a.size>1,d=c.size>1||[...c].some(x=>x!==0),m=0;return m|=1,m|=4*+u,m|=256*+l,m|=512*+h,m|=1024*+f,m|=2048*+d,ne("trun",1,m,[F(r.currentChunk.samples.length),F(r.currentChunk.offset-r.currentChunk.moofOffset||0),u?F(i[0]):[],r.currentChunk.samples.map((x,g)=>[l?F(e[g]):[],h?F(t[g]):[],f?F(i[g]):[],d?ai(s[g]):[]])])},oE=r=>te("mfra",void 0,[...r.map(OR),GR()]),OR=(r,e)=>ne("tfra",1,0,[F(r.track.id),F(63),F(r.finalizedChunks.length),r.finalizedChunks.map(i=>[$i(Fe(i.samples[0].timestamp,r.timescale)),$i(i.moofOffset),F(e+1),F(1),F(1)])]),GR=()=>ne("mfro",0,0,[F(0)]),aE=()=>te("vtte"),cE=(r,e,t,i,s)=>te("vttc",void 0,[s!==null?te("vsid",[ai(s)]):null,t!==null?te("iden",[...Li.encode(t)]):null,e!==null?te("ctim",[...Li.encode(GC(e))]):null,i!==null?te("sttg",[...Li.encode(i)]):null,te("payl",[...Li.encode(r)])]),uE=r=>te("vtta",[...Li.encode(r)]),NR={avc:"avc1",hevc:"hvc1",vp8:"vp08",vp9:"vp09",av1:"av01"},LR={avc:fR,hevc:mR,vp8:QC,vp9:QC,av1:pR},lE=(r,e)=>{switch(r){case"aac":return"mp4a";case"mp3":return"mp4a";case"opus":return"Opus";case"vorbis":return"mp4a";case"flac":return"fLaC";case"ulaw":return"ulaw";case"alaw":return"alaw";case"pcm-u8":return"raw ";case"pcm-s8":return"sowt"}if(e)switch(r){case"pcm-s16":return"sowt";case"pcm-s16be":return"twos";case"pcm-s24":return"in24";case"pcm-s24be":return"in24";case"pcm-s32":return"in32";case"pcm-s32be":return"in32";case"pcm-f32":return"fl32";case"pcm-f32be":return"fl32";case"pcm-f64":return"fl64";case"pcm-f64be":return"fl64"}else switch(r){case"pcm-s16":return"ipcm";case"pcm-s16be":return"ipcm";case"pcm-s24":return"ipcm";case"pcm-s24be":return"ipcm";case"pcm-s32":return"ipcm";case"pcm-s32be":return"ipcm";case"pcm-f32":return"fpcm";case"pcm-f32be":return"fpcm";case"pcm-f64":return"fpcm";case"pcm-f64be":return"fpcm"}},zR=(r,e)=>{switch(r){case"aac":return qp;case"mp3":return qp;case"opus":return bR;case"vorbis":return qp;case"flac":return yR}if(e)switch(r){case"pcm-s24":return oi;case"pcm-s24be":return oi;case"pcm-s32":return oi;case"pcm-s32be":return oi;case"pcm-f32":return oi;case"pcm-f32be":return oi;case"pcm-f64":return oi;case"pcm-f64be":return oi}else switch(r){case"pcm-s16":return cr;case"pcm-s16be":return cr;case"pcm-s24":return cr;case"pcm-s24be":return cr;case"pcm-s32":return cr;case"pcm-s32be":return cr;case"pcm-f32":return cr;case"pcm-f32be":return cr;case"pcm-f64":return cr;case"pcm-f64be":return cr}return null},VR={webvtt:"wvtt"},HR={webvtt:wR};var rh=class{constructor(e){this.mutex=new kt,this.firstMediaStreamTimestamp=null,this.trackTimestampInfo=new WeakMap,this.output=e}onTrackClose(e){}validateAndNormalizeTimestamp(e,t,i){t+=e.source._timestampOffset;let s=this.trackTimestampInfo.get(e);if(!s){if(!i)throw new Error("First frame must be a key frame.");s={maxTimestamp:t,maxTimestampBeforeLastKeyFrame:t},this.trackTimestampInfo.set(e,s)}if(t<0)throw new Error(`Timestamps must be non-negative (got ${t}s).`);if(i&&(s.maxTimestampBeforeLastKeyFrame=s.maxTimestamp),t<s.maxTimestampBeforeLastKeyFrame)throw new Error(`Timestamps cannot be smaller than the highest timestamp of the previous run (a run begins with a key frame and ends right before the next key frame). Got ${t}s, but highest timestamp is ${s.maxTimestampBeforeLastKeyFrame}s.`);return s.maxTimestamp=Math.max(s.maxTimestamp,t),t}};var ih=class{constructor(){this.ensureMonotonicity=!1,this.trackedWrites=null,this.trackedStart=-1,this.trackedEnd=-1}start(){}maybeTrackWrites(e){if(!this.trackedWrites)return;let t=this.getPos();if(t<this.trackedStart){if(t+e.byteLength<=this.trackedStart)return;e=e.subarray(this.trackedStart-t),t=0}let i=t+e.byteLength-this.trackedStart,s=this.trackedWrites.byteLength;for(;s<i;)s*=2;if(s!==this.trackedWrites.byteLength){let n=new Uint8Array(s);n.set(this.trackedWrites,0),this.trackedWrites=n}this.trackedWrites.set(e,t-this.trackedStart),this.trackedEnd=Math.max(this.trackedEnd,t+e.byteLength)}startTrackingWrites(){this.trackedWrites=new Uint8Array(2**10),this.trackedStart=this.getPos(),this.trackedEnd=this.trackedStart}stopTrackingWrites(){if(!this.trackedWrites)throw new Error("Internal error: Can't get tracked writes since nothing was tracked.");let t={data:this.trackedWrites.subarray(0,this.trackedEnd-this.trackedStart),start:this.trackedStart,end:this.trackedEnd};return this.trackedWrites=null,t}},Yp=2**16,Kp=2**32,dn=class extends ih{constructor(e){if(super(),this.pos=0,this.maxPos=0,this.target=e,this.supportsResize="resize"in new ArrayBuffer(0),this.supportsResize)try{this.buffer=new ArrayBuffer(Yp,{maxByteLength:Kp})}catch{this.buffer=new ArrayBuffer(Yp),this.supportsResize=!1}else this.buffer=new ArrayBuffer(Yp);this.bytes=new Uint8Array(this.buffer)}ensureSize(e){let t=this.buffer.byteLength;for(;t<e;)t*=2;if(t!==this.buffer.byteLength){if(t>Kp)throw new Error(`ArrayBuffer exceeded maximum size of ${Kp} bytes. Please consider using another target.`);if(this.supportsResize)this.buffer.resize(t);else{let i=new ArrayBuffer(t),s=new Uint8Array(i);s.set(this.bytes,0),this.buffer=i,this.bytes=s}}}write(e){this.maybeTrackWrites(e),this.ensureSize(this.pos+e.byteLength),this.bytes.set(e,this.pos),this.pos+=e.byteLength,this.maxPos=Math.max(this.maxPos,this.pos)}seek(e){this.pos=e}getPos(){return this.pos}async flush(){}async finalize(){this.ensureSize(this.pos),this.target.buffer=this.buffer.slice(0,Math.max(this.maxPos,this.pos))}async close(){}getSlice(e,t){return this.bytes.slice(e,t)}},WR=2**24,$R=2,sh=class extends ih{constructor(e){super(),this.pos=0,this.sections=[],this.lastWriteEnd=0,this.lastFlushEnd=0,this.writer=null,this.chunks=[],this.target=e,this.chunked=e._options.chunked??!1,this.chunkSize=e._options.chunkSize??WR}start(){this.writer=this.target._writable.getWriter()}write(e){if(this.pos>this.lastWriteEnd){let t=this.pos-this.lastWriteEnd;this.pos=this.lastWriteEnd,this.write(new Uint8Array(t))}this.maybeTrackWrites(e),this.sections.push({data:e.slice(),start:this.pos}),this.pos+=e.byteLength,this.lastWriteEnd=Math.max(this.lastWriteEnd,this.pos)}seek(e){this.pos=e}getPos(){return this.pos}async flush(){if(this.pos>this.lastWriteEnd){let i=this.pos-this.lastWriteEnd;this.pos=this.lastWriteEnd,this.write(new Uint8Array(i))}if(w(this.writer),this.sections.length===0)return;let e=[],t=[...this.sections].sort((i,s)=>i.start-s.start);e.push({start:t[0].start,size:t[0].data.byteLength});for(let i=1;i<t.length;i++){let s=e[e.length-1],n=t[i];n.start<=s.start+s.size?s.size=Math.max(s.size,n.start+n.data.byteLength-s.start):e.push({start:n.start,size:n.data.byteLength})}for(let i of e){i.data=new Uint8Array(i.size);for(let s of this.sections)i.start<=s.start&&s.start<i.start+i.size&&i.data.set(s.data,s.start-i.start);if(this.writer.desiredSize!==null&&this.writer.desiredSize<=0&&await this.writer.ready,this.chunked)this.writeDataIntoChunks(i.data,i.start),this.tryToFlushChunks();else{if(this.ensureMonotonicity&&i.start!==this.lastFlushEnd)throw new Error("Internal error: Monotonicity violation.");this.writer.write({type:"write",data:i.data,position:i.start}),this.lastFlushEnd=i.start+i.data.byteLength}}this.sections.length=0}writeDataIntoChunks(e,t){let i=this.chunks.findIndex(c=>c.start<=t&&t<c.start+this.chunkSize);i===-1&&(i=this.createChunk(t));let s=this.chunks[i],n=t-s.start,o=e.subarray(0,Math.min(this.chunkSize-n,e.byteLength));s.data.set(o,n);let a={start:n,end:n+o.byteLength};if(this.insertSectionIntoChunk(s,a),s.written[0].start===0&&s.written[0].end===this.chunkSize&&(s.shouldFlush=!0),this.chunks.length>$R){for(let c=0;c<this.chunks.length-1;c++)this.chunks[c].shouldFlush=!0;this.tryToFlushChunks()}o.byteLength<e.byteLength&&this.writeDataIntoChunks(e.subarray(o.byteLength),t+o.byteLength)}insertSectionIntoChunk(e,t){let i=0,s=e.written.length-1,n=-1;for(;i<=s;){let o=Math.floor(i+(s-i+1)/2);e.written[o].start<=t.start?(i=o+1,n=o):s=o-1}for(e.written.splice(n+1,0,t),(n===-1||e.written[n].end<t.start)&&n++;n<e.written.length-1&&e.written[n].end>=e.written[n+1].start;)e.written[n].end=Math.max(e.written[n].end,e.written[n+1].end),e.written.splice(n+1,1)}createChunk(e){let i={start:Math.floor(e/this.chunkSize)*this.chunkSize,data:new Uint8Array(this.chunkSize),written:[],shouldFlush:!1};return this.chunks.push(i),this.chunks.sort((s,n)=>s.start-n.start),this.chunks.indexOf(i)}tryToFlushChunks(e=!1){w(this.writer);for(let t=0;t<this.chunks.length;t++){let i=this.chunks[t];if(!(!i.shouldFlush&&!e)){for(let s of i.written){let n=i.start+s.start;if(this.ensureMonotonicity&&n!==this.lastFlushEnd)throw new Error("Internal error: Monotonicity violation.");this.writer.write({type:"write",data:i.data.subarray(s.start,s.end),position:n}),this.lastFlushEnd=i.start+s.end}this.chunks.splice(t--,1)}}}finalize(){return this.chunked&&this.tryToFlushChunks(!0),w(this.writer),this.writer.close()}async close(){return this.writer?.close()}};var qi=class{constructor(){this._output=null}},$a=class extends qi{constructor(){super(...arguments),this.buffer=null}_createWriter(){return new dn(this)}},qa=class extends qi{constructor(e,t={}){if(super(),!(e instanceof WritableStream))throw new TypeError("StreamTarget requires a WritableStream instance.");if(t!=null&&typeof t!="object")throw new TypeError("StreamTarget options, when provided, must be an object.");if(t.chunked!==void 0&&typeof t.chunked!="boolean")throw new TypeError("options.chunked, when provided, must be a boolean.");if(t.chunkSize!==void 0&&(!Number.isInteger(t.chunkSize)||t.chunkSize<1024))throw new TypeError("options.chunkSize, when provided, must be an integer and not smaller than 1024.");this._writable=e,this._options=t}_createWriter(){return new sh(this)}};var nh=r=>{let t=(r.hasVideo?"video/":r.hasAudio?"audio/":"application/")+(r.isQuickTime?"quicktime":"mp4");if(r.codecStrings.length>0){let i=[...new Set(r.codecStrings)];t+=`; codecs="${i.join(", ")}"`}return t};var ji=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos++,e.getUint8(t)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,!1)}readI16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getInt16(t,!1)}readU24(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+3);this.pos+=3;let i=e.getUint16(t,!1),s=e.getUint8(t+2);return i*256+s}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!1)}readI32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getInt32(t,!1)}readU64(){let e=this.readU32(),t=this.readU32();return e*4294967296+t}readI64(){let e=this.readI32(),t=this.readU32();return e*4294967296+t}readF64(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+8);return this.pos+=8,e.getFloat64(t,!1)}readFixed_16_16(){return this.readI32()/65536}readFixed_2_30(){return this.readI32()/1073741824}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}readIsomVariableInteger(){let e=0;for(let t=0;t<4;t++){e<<=7;let i=this.readU8();if(e|=i&127,(i&128)===0)break}return e}readBoxHeader(){let e=this.readU32(),t=this.readAscii(4),i=8;return e===1&&(e=this.readU64(),i=16),{name:t,totalSize:e,headerSize:i,contentSize:e-i}}};var eh=1e3,qR=2082844800,Fe=(r,e,t=!0)=>{let i=r*e;return t?Math.round(i):i},ah=class extends rh{constructor(e,t){super(e),this.auxTarget=new $a,this.auxWriter=this.auxTarget._createWriter(),this.auxBoxWriter=new Ha(this.auxWriter),this.mdat=null,this.trackDatas=[],this.allTracksKnown=Ke(),this.creationTime=Math.floor(Date.now()/1e3)+qR,this.finalizedChunks=[],this.nextFragmentNumber=1,this.maxWrittenTimestamp=-1/0,this.format=t,this.writer=e._writer,this.boxWriter=new Ha(this.writer),this.isQuickTime=t instanceof mn;let i=this.writer instanceof dn?"in-memory":!1;this.fastStart=t._options.fastStart??i,this.isFragmented=this.fastStart==="fragmented",(this.fastStart==="in-memory"||this.isFragmented)&&(this.writer.ensureMonotonicity=!0),this.minimumFragmentDuration=t._options.minimumFragmentDuration??1}async start(){let e=await this.mutex.acquire(),t=this.output._tracks.some(i=>i.type==="video"&&i.source._codec==="avc");if(this.format._options.onFtyp&&this.writer.startTrackingWrites(),this.boxWriter.writeBox(sE({isQuickTime:this.isQuickTime,holdsAvc:t,fragmented:this.isFragmented})),this.format._options.onFtyp){let{data:i,start:s}=this.writer.stopTrackingWrites();this.format._options.onFtyp(i,s)}this.fastStart==="in-memory"?this.mdat=th(!1):this.isFragmented||(this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=th(!0),this.boxWriter.writeBox(this.mdat)),await this.writer.flush(),e()}allTracksAreKnown(){for(let e of this.output._tracks)if(!e.source._closed&&!this.trackDatas.some(t=>t.track===e))return!1;return!0}async getMimeType(){await this.allTracksKnown.promise;let e=this.trackDatas.map(t=>t.type==="video"||t.type==="audio"?t.info.decoderConfig.codec:{webvtt:"wvtt"}[t.track.source._codec]);return nh({isQuickTime:this.isQuickTime,hasVideo:this.trackDatas.some(t=>t.type==="video"),hasAudio:this.trackDatas.some(t=>t.type==="audio"),codecStrings:e})}getVideoTrackData(e,t,i){let s=this.trackDatas.find(u=>u.track===e);if(s)return s;FC(i),w(i),w(i.decoderConfig);let n={...i.decoderConfig};w(n.codedWidth!==void 0),w(n.codedHeight!==void 0);let o=!1;if(e.source._codec==="avc"&&!n.description){let u=Yl(t.data);if(!u)throw new Error("Couldn't extract an AVCDecoderConfigurationRecord from the AVC packet. Make sure the packets are in Annex B format (as specified in ITU-T-REC-H.264) when not providing a description, or provide a description (must be an AVCDecoderConfigurationRecord as specified in ISO 14496-15) and ensure the packets are in AVCC format.");n.description=$C(u),o=!0}else if(e.source._codec==="hevc"&&!n.description){let u=Kl(t.data);if(!u)throw new Error("Couldn't extract an HEVCDecoderConfigurationRecord from the HEVC packet. Make sure the packets are in Annex B format (as specified in ITU-T-REC-H.265) when not providing a description, or provide a description (must be an HEVCDecoderConfigurationRecord as specified in ISO 14496-15) and ensure the packets are in HEVC format.");n.description=qC(u),o=!0}let a=yC(1/(e.metadata.frameRate??57600),1e6).denominator,c={muxer:this,track:e,type:"video",info:{width:n.codedWidth,height:n.codedHeight,decoderConfig:n,requiresAnnexBTransformation:o},timescale:a,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[]};return this.trackDatas.push(c),this.trackDatas.sort((u,l)=>u.track.id-l.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),c}getAudioTrackData(e,t){let i=this.trackDatas.find(n=>n.track===e);if(i)return i;UC(t),w(t),w(t.decoderConfig);let s={muxer:this,track:e,type:"audio",info:{numberOfChannels:t.decoderConfig.numberOfChannels,sampleRate:t.decoderConfig.sampleRate,decoderConfig:t.decoderConfig,requiresPcmTransformation:!this.isFragmented&&Ie.includes(e.source._codec)},timescale:t.decoderConfig.sampleRate,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[]};return this.trackDatas.push(s),this.trackDatas.sort((n,o)=>n.track.id-o.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),s}getSubtitleTrackData(e,t){let i=this.trackDatas.find(n=>n.track===e);if(i)return i;OC(t),w(t),w(t.config);let s={muxer:this,track:e,type:"subtitle",info:{config:t.config},timescale:1e3,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[],lastCueEndTimestamp:0,cueQueue:[],nextSourceId:0,cueToSourceId:new WeakMap};return this.trackDatas.push(s),this.trackDatas.sort((n,o)=>n.track.id-o.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),s}async addEncodedVideoPacket(e,t,i){let s=await this.mutex.acquire();try{let n=this.getVideoTrackData(e,t,i),o=t.data;if(n.info.requiresAnnexBTransformation){let u=WC(o);if(!u)throw new Error("Failed to transform packet data. Make sure all packets are provided in Annex B format, as specified in ITU-T-REC-H.264 and ITU-T-REC-H.265.");o=u}let a=this.validateAndNormalizeTimestamp(n.track,t.timestamp,t.type==="key"),c=this.createSampleForTrack(n,o,a,t.duration,t.type);await this.registerSample(n,c)}finally{s()}}async addEncodedAudioPacket(e,t,i){let s=await this.mutex.acquire();try{let n=this.getAudioTrackData(e,i),o=this.validateAndNormalizeTimestamp(n.track,t.timestamp,t.type==="key"),a=this.createSampleForTrack(n,t.data,o,t.duration,t.type);n.info.requiresPcmTransformation&&await this.maybePadWithSilence(n,o),await this.registerSample(n,a)}finally{s()}}async maybePadWithSilence(e,t){let i=he(e.samples),s=i?i.timestamp+i.duration:0,n=t-s,o=Fe(n,e.timescale);if(o>0){let{sampleSize:a,silentValue:c}=Tt(e.info.decoderConfig.codec),u=o*e.info.numberOfChannels,l=new Uint8Array(a*u).fill(c),h=this.createSampleForTrack(e,new Uint8Array(l.buffer),s,n,"key");await this.registerSample(e,h)}}async addSubtitleCue(e,t,i){let s=await this.mutex.acquire();try{let n=this.getSubtitleTrackData(e,i);this.validateAndNormalizeTimestamp(n.track,t.timestamp,!0),e.source._codec==="webvtt"&&(n.cueQueue.push(t),await this.processWebVTTCues(n,t.timestamp))}finally{s()}}async processWebVTTCues(e,t){for(;e.cueQueue.length>0;){let i=new Set([]);for(let u of e.cueQueue)w(u.timestamp<=t),w(e.lastCueEndTimestamp<=u.timestamp+u.duration),i.add(Math.max(u.timestamp,e.lastCueEndTimestamp)),i.add(u.timestamp+u.duration);let s=[...i].sort((u,l)=>u-l),n=s[0],o=s[1]??n;if(t<o)break;if(e.lastCueEndTimestamp<n){this.auxWriter.seek(0);let u=aE();this.auxBoxWriter.writeBox(u);let l=this.auxWriter.getSlice(0,this.auxWriter.getPos()),h=this.createSampleForTrack(e,l,e.lastCueEndTimestamp,n-e.lastCueEndTimestamp,"key");await this.registerSample(e,h),e.lastCueEndTimestamp=n}this.auxWriter.seek(0);for(let u=0;u<e.cueQueue.length;u++){let l=e.cueQueue[u];if(l.timestamp>=o)break;Vp.lastIndex=0;let h=Vp.test(l.text),f=l.timestamp+l.duration,d=e.cueToSourceId.get(l);if(d===void 0&&o<f&&(d=e.nextSourceId++,e.cueToSourceId.set(l,d)),l.notes){let x=uE(l.notes);this.auxBoxWriter.writeBox(x)}let m=cE(l.text,h?n:null,l.identifier??null,l.settings??null,d??null);this.auxBoxWriter.writeBox(m),f===o&&e.cueQueue.splice(u--,1)}let a=this.auxWriter.getSlice(0,this.auxWriter.getPos()),c=this.createSampleForTrack(e,a,n,o-n,"key");await this.registerSample(e,c),e.lastCueEndTimestamp=o}}createSampleForTrack(e,t,i,s,n){return{timestamp:i,decodeTimestamp:i,duration:s,data:t,size:t.byteLength,type:n,timescaleUnitsToNextSample:Fe(s,e.timescale)}}processTimestamps(e,t){if(e.timestampProcessingQueue.length===0)return;if(e.type==="audio"&&e.info.requiresPcmTransformation){let s=0;for(let n=0;n<e.timestampProcessingQueue.length;n++){let o=e.timestampProcessingQueue[n],a=Fe(o.duration,e.timescale);s+=a}if(e.timeToSampleTable.length===0)e.timeToSampleTable.push({sampleCount:s,sampleDelta:1});else{let n=he(e.timeToSampleTable);n.sampleCount+=s}e.timestampProcessingQueue.length=0;return}let i=e.timestampProcessingQueue.map(s=>s.timestamp).sort((s,n)=>s-n);for(let s=0;s<e.timestampProcessingQueue.length;s++){let n=e.timestampProcessingQueue[s];n.decodeTimestamp=i[s],!this.isFragmented&&e.lastTimescaleUnits===null&&(n.decodeTimestamp=0);let o=Fe(n.timestamp-n.decodeTimestamp,e.timescale),a=Fe(n.duration,e.timescale);if(e.lastTimescaleUnits!==null){w(e.lastSample);let c=Fe(n.decodeTimestamp,e.timescale,!1),u=Math.round(c-e.lastTimescaleUnits);if(w(u>=0),e.lastTimescaleUnits+=u,e.lastSample.timescaleUnitsToNextSample=u,!this.isFragmented){let l=he(e.timeToSampleTable);if(w(l),l.sampleCount===1){l.sampleDelta=u;let f=e.timeToSampleTable[e.timeToSampleTable.length-2];f&&f.sampleDelta===u&&(f.sampleCount++,e.timeToSampleTable.pop(),l=f)}else l.sampleDelta!==u&&(l.sampleCount--,e.timeToSampleTable.push(l={sampleCount:1,sampleDelta:u}));l.sampleDelta===a?l.sampleCount++:e.timeToSampleTable.push({sampleCount:1,sampleDelta:a});let h=he(e.compositionTimeOffsetTable);w(h),h.sampleCompositionTimeOffset===o?h.sampleCount++:e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:o})}}else e.lastTimescaleUnits=Fe(n.decodeTimestamp,e.timescale,!1),this.isFragmented||(e.timeToSampleTable.push({sampleCount:1,sampleDelta:a}),e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:o}));e.lastSample=n}if(e.timestampProcessingQueue.length=0,w(e.lastSample),w(e.lastTimescaleUnits!==null),t!==void 0&&e.lastSample.timescaleUnitsToNextSample===0){w(t.type==="key");let s=Fe(t.timestamp,e.timescale,!1),n=Math.round(s-e.lastTimescaleUnits);e.lastSample.timescaleUnitsToNextSample=n}}async registerSample(e,t){t.type==="key"&&this.processTimestamps(e,t),e.timestampProcessingQueue.push(t),this.isFragmented?(e.sampleQueue.push(t),await this.interleaveSamples()):await this.addSampleToTrack(e,t)}async addSampleToTrack(e,t){this.isFragmented||e.samples.push(t);let i=!1;if(!e.currentChunk)i=!0;else{e.currentChunk.startTimestamp=Math.min(e.currentChunk.startTimestamp,t.timestamp);let s=t.timestamp-e.currentChunk.startTimestamp;if(this.isFragmented){let n=this.trackDatas.every(o=>{if(e===o)return t.type==="key";let a=o.sampleQueue[0];return a?a.type==="key":o.track.source._closed});s>=this.minimumFragmentDuration&&n&&t.timestamp>this.maxWrittenTimestamp&&(i=!0,await this.finalizeFragment())}else i=s>=.5}i&&(e.currentChunk&&await this.finalizeCurrentChunk(e),e.currentChunk={startTimestamp:t.timestamp,samples:[],offset:null,moofOffset:null}),w(e.currentChunk),e.currentChunk.samples.push(t),this.isFragmented&&(this.maxWrittenTimestamp=Math.max(this.maxWrittenTimestamp,t.timestamp))}async finalizeCurrentChunk(e){if(w(!this.isFragmented),!e.currentChunk)return;e.finalizedChunks.push(e.currentChunk),this.finalizedChunks.push(e.currentChunk);let t=e.currentChunk.samples.length;if(e.type==="audio"&&e.info.requiresPcmTransformation&&(t=e.currentChunk.samples.reduce((i,s)=>i+Fe(s.duration,e.timescale),0)),(e.compactlyCodedChunkTable.length===0||he(e.compactlyCodedChunkTable).samplesPerChunk!==t)&&e.compactlyCodedChunkTable.push({firstChunk:e.finalizedChunks.length,samplesPerChunk:t}),this.fastStart==="in-memory"){e.currentChunk.offset=0;return}e.currentChunk.offset=this.writer.getPos();for(let i of e.currentChunk.samples)w(i.data),this.writer.write(i.data),i.data=null;await this.writer.flush()}async interleaveSamples(e=!1){if(w(this.isFragmented),!(!e&&!this.allTracksAreKnown()))e:for(;;){let t=null,i=1/0;for(let n of this.trackDatas){if(!e&&n.sampleQueue.length===0&&!n.track.source._closed)break e;n.sampleQueue.length>0&&n.sampleQueue[0].timestamp<i&&(t=n,i=n.sampleQueue[0].timestamp)}if(!t)break;let s=t.sampleQueue.shift();await this.addSampleToTrack(t,s)}}async finalizeFragment(e=!0){w(this.isFragmented);let t=this.nextFragmentNumber++;if(t===1){this.format._options.onMoov&&this.writer.startTrackingWrites();let d=Wa(this.trackDatas,this.creationTime,!0);if(this.boxWriter.writeBox(d),this.format._options.onMoov){let{data:m,start:x}=this.writer.stopTrackingWrites();this.format._options.onMoov(m,x)}}let i=this.trackDatas.filter(d=>d.currentChunk),s=Xp(t,i),n=this.writer.getPos(),o=n+this.boxWriter.measureBox(s),a=o+8,c=1/0;for(let d of i){d.currentChunk.offset=a,d.currentChunk.moofOffset=n;for(let m of d.currentChunk.samples)a+=m.size;c=Math.min(c,d.currentChunk.startTimestamp)}let u=a-o,l=u>=2**32;if(l)for(let d of i)d.currentChunk.offset+=8;this.format._options.onMoof&&this.writer.startTrackingWrites();let h=Xp(t,i);if(this.boxWriter.writeBox(h),this.format._options.onMoof){let{data:d,start:m}=this.writer.stopTrackingWrites();this.format._options.onMoof(d,m,c)}w(this.writer.getPos()===o),this.format._options.onMdat&&this.writer.startTrackingWrites();let f=th(l);f.size=u,this.boxWriter.writeBox(f),this.writer.seek(o+(l?16:8));for(let d of i)for(let m of d.currentChunk.samples)this.writer.write(m.data),m.data=null;if(this.format._options.onMdat){let{data:d,start:m}=this.writer.stopTrackingWrites();this.format._options.onMdat(d,m)}for(let d of i)d.finalizedChunks.push(d.currentChunk),this.finalizedChunks.push(d.currentChunk),d.currentChunk=null;e&&await this.writer.flush()}async onTrackClose(e){let t=await this.mutex.acquire();if(e.type==="subtitle"&&e.source._codec==="webvtt"){let i=this.trackDatas.find(s=>s.track===e);i&&await this.processWebVTTCues(i,1/0)}this.allTracksAreKnown()&&this.allTracksKnown.resolve(),this.isFragmented&&await this.interleaveSamples(),t()}async finalize(){let e=await this.mutex.acquire();this.allTracksKnown.resolve();for(let t of this.trackDatas)t.type==="subtitle"&&t.track.source._codec==="webvtt"&&await this.processWebVTTCues(t,1/0);if(this.isFragmented){await this.interleaveSamples(!0);for(let t of this.trackDatas)this.processTimestamps(t);await this.finalizeFragment(!1)}else for(let t of this.trackDatas)this.processTimestamps(t),await this.finalizeCurrentChunk(t);if(this.fastStart==="in-memory"){w(this.mdat);let t;for(let s=0;s<2;s++){let n=Wa(this.trackDatas,this.creationTime),o=this.boxWriter.measureBox(n);t=this.boxWriter.measureBox(this.mdat);let a=this.writer.getPos()+o+t;for(let c of this.finalizedChunks){c.offset=a;for(let{data:u}of c.samples)w(u),a+=u.byteLength,t+=u.byteLength}if(a<2**32)break;t>=2**32&&(this.mdat.largeSize=!0)}this.format._options.onMoov&&this.writer.startTrackingWrites();let i=Wa(this.trackDatas,this.creationTime);if(this.boxWriter.writeBox(i),this.format._options.onMoov){let{data:s,start:n}=this.writer.stopTrackingWrites();this.format._options.onMoov(s,n)}this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat.size=t,this.boxWriter.writeBox(this.mdat);for(let s of this.finalizedChunks)for(let n of s.samples)w(n.data),this.writer.write(n.data),n.data=null;if(this.format._options.onMdat){let{data:s,start:n}=this.writer.stopTrackingWrites();this.format._options.onMdat(s,n)}}else if(this.isFragmented){let t=this.writer.getPos(),i=oE(this.trackDatas);this.boxWriter.writeBox(i);let s=this.writer.getPos()-t;this.writer.seek(this.writer.getPos()-4),this.boxWriter.writeU32(s)}else{w(this.mdat);let t=this.boxWriter.offsets.get(this.mdat);w(t!==void 0);let i=this.writer.getPos()-t;if(this.mdat.size=i,this.mdat.largeSize=i>=2**32,this.boxWriter.patchBox(this.mdat),this.format._options.onMdat){let{data:n,start:o}=this.writer.stopTrackingWrites();this.format._options.onMdat(n,o)}this.format._options.onMoov&&this.writer.startTrackingWrites();let s=Wa(this.trackDatas,this.creationTime);if(this.boxWriter.writeBox(s),this.format._options.onMoov){let{data:n,start:o}=this.writer.stopTrackingWrites();this.format._options.onMoov(n,o)}}e()}};var I;(function(r){r[r.EBML=440786851]="EBML",r[r.EBMLVersion=17030]="EBMLVersion",r[r.EBMLReadVersion=17143]="EBMLReadVersion",r[r.EBMLMaxIDLength=17138]="EBMLMaxIDLength",r[r.EBMLMaxSizeLength=17139]="EBMLMaxSizeLength",r[r.DocType=17026]="DocType",r[r.DocTypeVersion=17031]="DocTypeVersion",r[r.DocTypeReadVersion=17029]="DocTypeReadVersion",r[r.SeekHead=290298740]="SeekHead",r[r.Seek=19899]="Seek",r[r.SeekID=21419]="SeekID",r[r.SeekPosition=21420]="SeekPosition",r[r.Duration=17545]="Duration",r[r.Info=357149030]="Info",r[r.TimestampScale=2807729]="TimestampScale",r[r.MuxingApp=19840]="MuxingApp",r[r.WritingApp=22337]="WritingApp",r[r.Tracks=374648427]="Tracks",r[r.TrackEntry=174]="TrackEntry",r[r.TrackNumber=215]="TrackNumber",r[r.TrackUID=29637]="TrackUID",r[r.TrackType=131]="TrackType",r[r.FlagEnabled=185]="FlagEnabled",r[r.FlagDefault=136]="FlagDefault",r[r.FlagForced=21930]="FlagForced",r[r.FlagLacing=156]="FlagLacing",r[r.Language=2274716]="Language",r[r.CodecID=134]="CodecID",r[r.CodecPrivate=25506]="CodecPrivate",r[r.CodecDelay=22186]="CodecDelay",r[r.SeekPreRoll=22203]="SeekPreRoll",r[r.DefaultDuration=2352003]="DefaultDuration",r[r.Video=224]="Video",r[r.PixelWidth=176]="PixelWidth",r[r.PixelHeight=186]="PixelHeight",r[r.Audio=225]="Audio",r[r.SamplingFrequency=181]="SamplingFrequency",r[r.Channels=159]="Channels",r[r.BitDepth=25188]="BitDepth",r[r.Segment=408125543]="Segment",r[r.SimpleBlock=163]="SimpleBlock",r[r.BlockGroup=160]="BlockGroup",r[r.Block=161]="Block",r[r.BlockAdditions=30113]="BlockAdditions",r[r.BlockMore=166]="BlockMore",r[r.BlockAdditional=165]="BlockAdditional",r[r.BlockAddID=238]="BlockAddID",r[r.BlockDuration=155]="BlockDuration",r[r.ReferenceBlock=251]="ReferenceBlock",r[r.Cluster=524531317]="Cluster",r[r.Timestamp=231]="Timestamp",r[r.Cues=475249515]="Cues",r[r.CuePoint=187]="CuePoint",r[r.CueTime=179]="CueTime",r[r.CueTrackPositions=183]="CueTrackPositions",r[r.CueTrack=247]="CueTrack",r[r.CueClusterPosition=241]="CueClusterPosition",r[r.Colour=21936]="Colour",r[r.MatrixCoefficients=21937]="MatrixCoefficients",r[r.TransferCharacteristics=21946]="TransferCharacteristics",r[r.Primaries=21947]="Primaries",r[r.Range=21945]="Range",r[r.Projection=30320]="Projection",r[r.ProjectionType=30321]="ProjectionType",r[r.ProjectionPoseRoll=30325]="ProjectionPoseRoll",r[r.Attachments=423732329]="Attachments",r[r.Chapters=272869232]="Chapters",r[r.Tags=307544935]="Tags"})(I||(I={}));var jR=[I.EBML,I.Segment],XR=[I.EBMLMaxIDLength,I.EBMLMaxSizeLength,I.SeekHead,I.Info,I.Cluster,I.Tracks,I.Cues,I.Attachments,I.Chapters,I.Tags],ch=[...jR,...XR];var hE=8,uh=2,Xi=4+hE,Yi=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos++,e.getUint8(t)}readS16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getInt16(t,!1)}readVarIntSize(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1),i=e.getUint8(t),s=1,n=128;for(;(i&n)===0&&s<8;)s++,n>>=1;return s}readVarInt(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1),i=e.getUint8(t),s=1,n=128;for(;(i&n)===0&&s<hE;)s++,n>>=1;let{view:o,offset:a}=this.reader.getViewAndOffset(this.pos,this.pos+s),c=i&n-1;for(let u=1;u<s;u++)c*=256,c+=o.getUint8(a+u);return this.pos+=s,c}readUnsignedInt(e){if(e<1||e>8)throw new Error("Bad unsigned int size "+e);let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e),s=0;for(let n=0;n<e;n++)s*=256,s+=t.getUint8(i+n);return this.pos+=e,s}readSignedInt(e){let t=this.readUnsignedInt(e);return t&1<<e*8-1&&(t-=2**(e*8)),t}readFloat(e){if(e===0)return 0;if(e!==4&&e!==8)throw new Error("Bad float size "+e);let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e),s=e===4?t.getFloat32(i,!1):t.getFloat64(i,!1);return this.pos+=e,s}readString(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,String.fromCharCode(...new Uint8Array(t.buffer,i,e))}readElementId(){let e=this.readVarIntSize();return this.readUnsignedInt(e)}readElementSize(){let e=this.readU8();return e===255?e=null:(this.pos--,e=this.readVarInt(),e===72057594037927940&&(e=null)),e}readElementHeader(){let e=this.readElementId(),t=this.readElementSize();return{id:e,size:t}}async searchForNextElementId(e,t){let s=new Set(e);for(;this.pos<t-Xi;){this.reader.rangeIsLoaded(this.pos,this.pos+Xi)||await this.reader.loadRange(this.pos,Math.min(this.pos+1048576,t));let n=this.pos,o=this.readElementHeader();if(s.has(o.id))return n;Ki(o.size),this.pos+=o.size}return null}},Nt={avc:"V_MPEG4/ISO/AVC",hevc:"V_MPEGH/ISO/HEVC",vp8:"V_VP8",vp9:"V_VP9",av1:"V_AV1",aac:"A_AAC",mp3:"A_MPEG/L3",opus:"A_OPUS",vorbis:"A_VORBIS",flac:"A_FLAC","pcm-u8":"A_PCM/INT/LIT","pcm-s16":"A_PCM/INT/LIT","pcm-s16be":"A_PCM/INT/BIG","pcm-s24":"A_PCM/INT/LIT","pcm-s24be":"A_PCM/INT/BIG","pcm-s32":"A_PCM/INT/LIT","pcm-s32be":"A_PCM/INT/BIG","pcm-f32":"A_PCM/FLOAT/IEEE","pcm-f64":"A_PCM/FLOAT/IEEE",webvtt:"S_TEXT/WEBVTT"};function Ki(r){if(r===null)throw new Error("Undefined element size is used in a place where it is not supported.")}var dE=r=>{let t=(r.hasVideo?"video/":r.hasAudio?"audio/":"application/")+(r.isWebM?"webm":"x-matroska");if(r.codecStrings.length>0){let i=[...new Set(r.codecStrings.filter(Boolean))];t+=`; codecs="${i.join(", ")}"`}return t};var YR={1:[-1,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],2:[-1,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],3:[-1,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1]},KR={1:[-1,32,48,56,64,80,96,112,128,144,160,176,192,224,256,-1],2:[-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1],3:[-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1]},QR={0:[11025,12e3,8e3,-1],2:[22050,24e3,16e3,-1],3:[44100,48e3,32e3,-1]},fE=1483304551,mE=1231971951,ZR=(r,e,t,i)=>Math.floor(r===3?(12*e/t+i)*4:144*e/t+i),pE=(r,e)=>r===3?e===3?21:36:e===3?13:21,gE=(r,e)=>{let t=e.pos,i=r>>>24,s=r>>>16&255,n=r>>>8&255,o=r&255;if(i!==255&&s!==255&&n!==255&&o!==255)return e.pos+=4,null;if(e.pos+=1,i!==255||(s&224)!==224)return null;let a=s>>3&3,c=s>>1&3,u=n>>4&15,l=n>>2&3,h=n>>1&1,f=o>>6&3,d=o>>4&3,m=o>>3&1,x=o>>2&1,g=o&3,_=a===3?YR[c]?.[u]:KR[c]?.[u];if(!_||_===-1)return null;let y=_*1e3,S=QR[a]?.[l];if(!S||S===-1)return null;let T=ZR(c,y,S,h);if(e.fileSize!==null&&e.fileSize-t<T)return null;let C;return a===3?C=c===3?384:1152:c===3?C=384:c===2?C=1152:C=576,{startPos:t,totalSize:T,mpegVersionId:a,layer:c,bitrate:y,frequencyIndex:l,sampleRate:S,channel:f,modeExtension:d,copyright:m,original:x,emphasis:g,audioSamplesInFrame:C}};var Qp=1399285583,JR=79764919,xE=new Uint32Array(256);for(let r=0;r<256;r++){let e=r<<24;for(let t=0;t<8;t++)e=e&2147483648?e<<1^JR:e<<1;xE[r]=e>>>0&4294967295}var _E=r=>{let e=At(r),t=e.getUint32(22,!0);e.setUint32(22,0,!0);let i=0;for(let s=0;s<r.length;s++){let n=r[s];i=(i<<8^xE[i>>>24^n])>>>0}return e.setUint32(22,t,!0),i},bE=(r,e,t)=>{let i=0,s=null;if(r.length>0)if(e.codec==="vorbis"){w(e.vorbisInfo);let n=e.vorbisInfo.modeBlockflags.length,a=(1<<bC(n-1))-1<<1,c=(r[0]&a)>>1;if(c>=e.vorbisInfo.modeBlockflags.length)throw new Error("Invalid mode number.");let u=t,l=e.vorbisInfo.modeBlockflags[c];if(s=e.vorbisInfo.blocksizes[l],l===1){let h=(a|1)+1,f=r[0]&h?1:0;u=e.vorbisInfo.blocksizes[f]}i=u!==null?u+s>>2:0}else e.codec==="opus"&&(i=XC(r).durationInSamples);return{durationInSamples:i,vorbisBlockSize:s}},yE=r=>{let e="audio/ogg";if(r.codecStrings){let t=[...new Set(r.codecStrings)];e+=`; codecs="${t.join(", ")}"`}return e};var gn=27,Qi=282,TE=Qi+65025,pn=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos+=1,e.getUint8(t)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!0)}readI32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getInt32(t,!0)}readI64(){let e=this.readU32();return this.readI32()*4294967296+e}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}readPageHeader(){let e=this.pos;if(this.readU32()!==Qp)return null;this.pos+=1;let i=this.readU8(),s=this.readI64(),n=this.readU32(),o=this.readU32(),a=this.readU32(),c=this.readU8(),u=new Uint8Array(c);for(let d=0;d<c;d++)u[d]=this.readU8();let l=27+c,h=u.reduce((d,m)=>d+m,0),f=l+h;return{headerStartPos:e,totalSize:f,dataStartPos:e+l,dataSize:h,headerType:i,granulePosition:s,serialNumber:n,sequenceNumber:o,checksum:a,lacingValues:u}}findNextPageHeader(e){for(;this.pos<e-3;){let t=this.readU32(),i=t&255,s=t>>>8&255,n=t>>>16&255,o=t>>>24&255,a=79;if(!(i!==a&&s!==a&&n!==a&&o!==a)){if(this.pos-=4,t===Qp)return!0;this.pos+=1}}return!1}};var Bt=class{constructor(e){this.input=e}};var pt=new Uint8Array(0),de=class r{constructor(e,t,i,s,n=-1,o){if(this.data=e,this.type=t,this.timestamp=i,this.duration=s,this.sequenceNumber=n,e===pt&&o===void 0)throw new Error("Internal error: byteLength must be explicitly provided when constructing metadata-only packets.");if(o===void 0&&(o=e.byteLength),!(e instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if(t!=="key"&&t!=="delta")throw new TypeError('type must be either "key" or "delta".');if(!Number.isFinite(i))throw new TypeError("timestamp must be a number.");if(!Number.isFinite(s)||s<0)throw new TypeError("duration must be a non-negative number.");if(!Number.isFinite(n))throw new TypeError("sequenceNumber must be a number.");if(!Number.isInteger(o)||o<0)throw new TypeError("byteLength must be a non-negative integer.");this.byteLength=o}get isMetadataOnly(){return this.data===pt}get microsecondTimestamp(){return Math.trunc(ar*this.timestamp)}get microsecondDuration(){return Math.trunc(ar*this.duration)}toEncodedVideoChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if(typeof EncodedVideoChunk>"u")throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}toEncodedAudioChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to an audio chunk.");if(typeof EncodedAudioChunk>"u")throw new Error("Your browser does not support EncodedAudioChunk.");return new EncodedAudioChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}static fromEncodedChunk(e){if(!(e instanceof EncodedVideoChunk||e instanceof EncodedAudioChunk))throw new TypeError("chunk must be an EncodedVideoChunk or EncodedAudioChunk.");let t=new Uint8Array(e.byteLength);return e.copyTo(t),new r(t,e.type,e.timestamp/1e6,(e.duration??0)/1e6)}clone(e){if(e!==void 0&&(typeof e!="object"||e===null))throw new TypeError("options, when provided, must be an object.");if(e?.timestamp!==void 0&&!Number.isFinite(e.timestamp))throw new TypeError("options.timestamp, when provided, must be a number.");if(e?.duration!==void 0&&!Number.isFinite(e.duration))throw new TypeError("options.duration, when provided, must be a number.");return new r(this.data,this.type,e?.timestamp??this.timestamp,e?.duration??this.duration,this.sequenceNumber,this.byteLength)}};var wE=r=>{let i=r,s=4096,n=0,o=12,a=0;for(i<0&&(i=-i,n=128),i+=33,i>8191&&(i=8191);(i&s)!==s&&o>=5;)s>>=1,o--;return a=i>>o-4&15,~(n|o-5<<4|a)&255},SE=r=>{let t=0,i=0,s=~r;s&128&&(s&=-129,t=-1),i=((s&240)>>4)+5;let n=(1<<i|(s&15)<<i-4|1<<i-5)-33;return t===0?n:-n},vE=r=>{let t=2048,i=0,s=11,n=0,o=r;for(o<0&&(o=-o,i=128),o>4095&&(o=4095);(o&t)!==t&&s>=5;)t>>=1,s--;return n=o>>(s===4?1:s-4)&15,(i|s-4<<4|n)^85},CE=r=>{let e=0,t=0,i=r^85;i&128&&(i&=-129,e=-1),t=((i&240)>>4)+4;let s=0;return t!==4?s=1<<t|(i&15)<<t-4|1<<t-5:s=i<<1|1,e===0?s:-s};var lr=class r{get displayWidth(){return this.rotation%180===0?this.codedWidth:this.codedHeight}get displayHeight(){return this.rotation%180===0?this.codedHeight:this.codedWidth}get microsecondTimestamp(){return Math.trunc(ar*this.timestamp)}get microsecondDuration(){return Math.trunc(ar*this.duration)}constructor(e,t){if(this._closed=!1,e instanceof ArrayBuffer||ArrayBuffer.isView(e)){if(!t||typeof t!="object")throw new TypeError("init must be an object.");if(!("format"in t)||typeof t.format!="string")throw new TypeError("init.format must be a string.");if(!Number.isInteger(t.codedWidth)||t.codedWidth<=0)throw new TypeError("init.codedWidth must be a positive integer.");if(!Number.isInteger(t.codedHeight)||t.codedHeight<=0)throw new TypeError("init.codedHeight must be a positive integer.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(t.timestamp))throw new TypeError("init.timestamp must be a number.");if(t.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");this._data=yt(e).slice(),this.format=t.format,this.codedWidth=t.codedWidth,this.codedHeight=t.codedHeight,this.rotation=t.rotation??0,this.timestamp=t.timestamp,this.duration=t.duration??0,this.colorSpace=new VideoColorSpace(t.colorSpace)}else if(typeof VideoFrame<"u"&&e instanceof VideoFrame){if(t?.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(t?.timestamp!==void 0&&!Number.isFinite(t?.timestamp))throw new TypeError("init.timestamp, when provided, must be a number.");if(t?.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");this._data=e,this.format=e.format,this.codedWidth=e.codedWidth,this.codedHeight=e.codedHeight,this.rotation=t?.rotation??0,this.timestamp=t?.timestamp??e.timestamp/1e6,this.duration=t?.duration??(e.duration??0)/1e6,this.colorSpace=e.colorSpace}else if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof SVGImageElement<"u"&&e instanceof SVGImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas){if(!t||typeof t!="object")throw new TypeError("init must be an object.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(t.timestamp))throw new TypeError("init.timestamp must be a number.");if(t.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");if(typeof VideoFrame<"u")return new r(new VideoFrame(e,{timestamp:Math.trunc(t.timestamp*ar),duration:Math.trunc((t.duration??0)*ar)}),t);let i=0,s=0;if("naturalWidth"in e?(i=e.naturalWidth,s=e.naturalHeight):"videoWidth"in e?(i=e.videoWidth,s=e.videoHeight):"width"in e&&(i=Number(e.width),s=Number(e.height)),!i||!s)throw new TypeError("Could not determine dimensions.");let n=new OffscreenCanvas(i,s),o=n.getContext("2d",{alpha:!1,willReadFrequently:!0});w(o),o.drawImage(e,0,0),this._data=n,this.format="RGBX",this.codedWidth=i,this.codedHeight=s,this.rotation=t.rotation??0,this.timestamp=t.timestamp,this.duration=t.duration??0,this.colorSpace=new VideoColorSpace({matrix:"rgb",primaries:"bt709",transfer:"iec61966-2-1",fullRange:!0})}else throw new TypeError("Invalid data type: Must be a BufferSource or CanvasImageSource.")}clone(){if(this._closed)throw new Error("VideoSample is closed.");return w(this._data!==null),ja(this._data)?new r(this._data.clone(),{timestamp:this.timestamp,duration:this.duration,rotation:this.rotation}):this._data instanceof Uint8Array?new r(this._data.slice(),{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation}):new r(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation})}close(){this._closed||(ja(this._data)?this._data.close():this._data=null,this._closed=!0)}allocationSize(){if(this._closed)throw new Error("VideoSample is closed.");return w(this._data!==null),ja(this._data)?this._data.allocationSize():this._data instanceof Uint8Array?this._data.byteLength:this.codedWidth*this.codedHeight*4}async copyTo(e){if(!cn(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(this._closed)throw new Error("VideoSample is closed.");if(w(this._data!==null),ja(this._data))await this._data.copyTo(e);else if(this._data instanceof Uint8Array)yt(e).set(this._data);else{let i=this._data.getContext("2d",{alpha:!1});w(i);let s=i.getImageData(0,0,this.codedWidth,this.codedHeight);yt(e).set(s.data)}}toVideoFrame(){if(this._closed)throw new Error("VideoSample is closed.");return w(this._data!==null),ja(this._data)?new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0}):this._data instanceof Uint8Array?new VideoFrame(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration,colorSpace:this.colorSpace}):new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}draw(e,t,i,s,n,o,a,c,u){let l=0,h=0,f=this.displayWidth,d=this.displayHeight,m=0,x=0,g=this.displayWidth,_=this.displayHeight;if(o!==void 0?(l=t,h=i,f=s,d=n,m=o,x=a,c!==void 0?(g=c,_=u):(g=f,_=d)):(m=t,x=i,s!==void 0&&(g=s,_=n)),!(typeof CanvasRenderingContext2D<"u"&&e instanceof CanvasRenderingContext2D||typeof OffscreenCanvasRenderingContext2D<"u"&&e instanceof OffscreenCanvasRenderingContext2D))throw new TypeError("context must be a CanvasRenderingContext2D or OffscreenCanvasRenderingContext2D.");if(!Number.isFinite(l))throw new TypeError("sx must be a number.");if(!Number.isFinite(h))throw new TypeError("sy must be a number.");if(!Number.isFinite(f)||f<0)throw new TypeError("sWidth must be a non-negative number.");if(!Number.isFinite(d)||d<0)throw new TypeError("sHeight must be a non-negative number.");if(!Number.isFinite(m))throw new TypeError("dx must be a number.");if(!Number.isFinite(x))throw new TypeError("dy must be a number.");if(!Number.isFinite(g)||g<0)throw new TypeError("dWidth must be a non-negative number.");if(!Number.isFinite(_)||_<0)throw new TypeError("dHeight must be a non-negative number.");if(this._closed)throw new Error("VideoSample is closed.");this.rotation===90?[l,h,f,d]=[h,this.codedHeight-l-f,d,f]:this.rotation===180?[l,h]=[this.codedWidth-l-f,this.codedHeight-h-d]:this.rotation===270&&([l,h,f,d]=[this.codedWidth-h-d,l,d,f]);let y=this.toCanvasImageSource();e.save();let S=m+g/2,T=x+_/2;e.translate(S,T),e.rotate(this.rotation*Math.PI/180);let C=this.rotation%180===0?1:g/_;e.scale(1/C,C),e.drawImage(y,l,h,f,d,-g/2,-_/2,g,_),e.restore()}toCanvasImageSource(){if(this._closed)throw new Error("VideoSample is closed.");if(w(this._data!==null),this._data instanceof Uint8Array){let e=this.toVideoFrame();return queueMicrotask(()=>e.close()),e}else return this._data}setRotation(e){if(![0,90,180,270].includes(e))throw new TypeError("newRotation must be 0, 90, 180, or 270.");this.rotation=e}setTimestamp(e){if(!Number.isFinite(e))throw new TypeError("newTimestamp must be a number.");this.timestamp=e}setDuration(e){if(!Number.isFinite(e)||e<0)throw new TypeError("newDuration must be a non-negative number.");this.duration=e}},ja=r=>typeof VideoFrame<"u"&&r instanceof VideoFrame,Zp=new Set(["f32","f32-planar","s16","s16-planar","s32","s32-planar","u8","u8-planar"]),Lt=class r{get microsecondTimestamp(){return Math.trunc(ar*this.timestamp)}get microsecondDuration(){return Math.trunc(ar*this.duration)}constructor(e){if(this._closed=!1,Ya(e)){if(e.format===null)throw new TypeError("AudioData with null format is not supported.");this._data=e,this.format=e.format,this.sampleRate=e.sampleRate,this.numberOfFrames=e.numberOfFrames,this.numberOfChannels=e.numberOfChannels,this.timestamp=e.timestamp/1e6,this.duration=e.numberOfFrames/e.sampleRate}else{if(!e||typeof e!="object")throw new TypeError("Invalid AudioDataInit: must be an object.");if(!Zp.has(e.format))throw new TypeError("Invalid AudioDataInit: invalid format.");if(!Number.isFinite(e.sampleRate)||e.sampleRate<=0)throw new TypeError("Invalid AudioDataInit: sampleRate must be > 0.");if(!Number.isInteger(e.numberOfChannels)||e.numberOfChannels===0)throw new TypeError("Invalid AudioDataInit: numberOfChannels must be an integer > 0.");if(!Number.isFinite(e?.timestamp))throw new TypeError("init.timestamp must be a number.");let t=e.data.byteLength/(Xa(e.format)*e.numberOfChannels);if(!Number.isInteger(t))throw new TypeError("Invalid AudioDataInit: data size is not a multiple of frame size.");this.format=e.format,this.sampleRate=e.sampleRate,this.numberOfFrames=t,this.numberOfChannels=e.numberOfChannels,this.timestamp=e.timestamp,this.duration=t/e.sampleRate;let i;if(e.data instanceof ArrayBuffer)i=new Uint8Array(e.data);else if(ArrayBuffer.isView(e.data))i=new Uint8Array(e.data.buffer,e.data.byteOffset,e.data.byteLength);else throw new TypeError("Invalid AudioDataInit: data is not a BufferSource.");let s=this.numberOfFrames*this.numberOfChannels*Xa(this.format);if(i.byteLength<s)throw new TypeError("Invalid AudioDataInit: insufficient data size.");this._data=i}}allocationSize(e){if(!e||typeof e!="object")throw new TypeError("options must be an object.");if(!Number.isInteger(e.planeIndex)||e.planeIndex<0)throw new TypeError("planeIndex must be a non-negative integer.");if(e.format!==void 0&&!Zp.has(e.format))throw new TypeError("Invalid format.");if(e.frameOffset!==void 0&&(!Number.isInteger(e.frameOffset)||e.frameOffset<0))throw new TypeError("frameOffset must be a non-negative integer.");if(e.frameCount!==void 0&&(!Number.isInteger(e.frameCount)||e.frameCount<0))throw new TypeError("frameCount must be a non-negative integer.");if(this._closed)throw new Error("AudioSample is closed.");let t=e.format??this.format,i=e.frameOffset??0;if(i>=this.numberOfFrames)throw new RangeError("frameOffset out of range");let s=e.frameCount!==void 0?e.frameCount:this.numberOfFrames-i;if(s>this.numberOfFrames-i)throw new RangeError("frameCount out of range");let n=Xa(t),o=lh(t);if(o&&e.planeIndex>=this.numberOfChannels)throw new RangeError("planeIndex out of range");if(!o&&e.planeIndex!==0)throw new RangeError("planeIndex out of range");return(o?s:s*this.numberOfChannels)*n}copyTo(e,t){if(!cn(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(!Number.isInteger(t.planeIndex)||t.planeIndex<0)throw new TypeError("planeIndex must be a non-negative integer.");if(t.format!==void 0&&!Zp.has(t.format))throw new TypeError("Invalid format.");if(t.frameOffset!==void 0&&(!Number.isInteger(t.frameOffset)||t.frameOffset<0))throw new TypeError("frameOffset must be a non-negative integer.");if(t.frameCount!==void 0&&(!Number.isInteger(t.frameCount)||t.frameCount<0))throw new TypeError("frameCount must be a non-negative integer.");if(this._closed)throw new Error("AudioSample is closed.");let{planeIndex:i,format:s,frameCount:n,frameOffset:o}=t,a=s??this.format;if(!a)throw new Error("Destination format not determined");let c=this.numberOfFrames,u=this.numberOfChannels,l=o??0;if(l>=c)throw new RangeError("frameOffset out of range");let h=n!==void 0?n:c-l;if(h>c-l)throw new RangeError("frameCount out of range");let f=Xa(a),d=lh(a);if(d&&i>=u)throw new RangeError("planeIndex out of range");if(!d&&i!==0)throw new RangeError("planeIndex out of range");let x=(d?h:h*u)*f;if(e.byteLength<x)throw new RangeError("Destination buffer is too small");let g=At(e),_=tD(a);if(Ya(this._data))if(d)if(a==="f32-planar")this._data.copyTo(e,{planeIndex:i,frameOffset:l,frameCount:h,format:"f32-planar"});else{let y=new ArrayBuffer(h*4),S=new Float32Array(y);this._data.copyTo(S,{planeIndex:i,frameOffset:l,frameCount:h,format:"f32-planar"});let T=new DataView(y);for(let C=0;C<h;C++){let v=C*f,E=T.getFloat32(C*4,!0);_(g,v,E)}}else{let y=u,S=new Float32Array(h);for(let T=0;T<y;T++){this._data.copyTo(S,{planeIndex:T,frameOffset:l,frameCount:h,format:"f32-planar"});for(let C=0;C<h;C++){let E=(C*y+T)*f;_(g,E,S[C])}}}else{let y=this._data,S=new DataView(y.buffer,y.byteOffset,y.byteLength),T=this.format,C=eD(T),v=Xa(T),E=lh(T);for(let M=0;M<h;M++)if(d){let A=M*f,B;E?B=(i*c+(M+l))*v:B=((M+l)*u+i)*v;let k=C(S,B);_(g,A,k)}else for(let A=0;A<u;A++){let k=(M*u+A)*f,L;E?L=(A*c+(M+l))*v:L=((M+l)*u+A)*v;let j=C(S,L);_(g,k,j)}}}clone(){if(this._closed)throw new Error("AudioSample is closed.");if(Ya(this._data)){let e=new r(this._data.clone());return e.setTimestamp(this.timestamp),e}else return new r({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.timestamp,data:this._data})}close(){this._closed||(Ya(this._data)?this._data.close():this._data=new Uint8Array(0),this._closed=!0)}toAudioData(){if(this._closed)throw new Error("AudioSample is closed.");if(Ya(this._data)){if(this._data.timestamp===this.microsecondTimestamp)return this._data.clone();if(lh(this.format)){let e=this.allocationSize({planeIndex:0,format:this.format}),t=new ArrayBuffer(e*this.numberOfChannels);for(let i=0;i<this.numberOfChannels;i++)this.copyTo(new Uint8Array(t,i*e,e),{planeIndex:i,format:this.format});return new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:t})}else{let e=new ArrayBuffer(this.allocationSize({planeIndex:0,format:this.format}));return this.copyTo(e,{planeIndex:0,format:this.format}),new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:e})}}else return new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:this._data})}toAudioBuffer(){if(this._closed)throw new Error("AudioSample is closed.");let e=new AudioBuffer({numberOfChannels:this.numberOfChannels,length:this.numberOfFrames,sampleRate:this.sampleRate}),t=new Float32Array(this.allocationSize({planeIndex:0,format:"f32-planar"})/4);for(let i=0;i<this.numberOfChannels;i++)this.copyTo(t,{planeIndex:i,format:"f32-planar"}),e.copyToChannel(t,i);return e}setTimestamp(e){if(!Number.isFinite(e))throw new TypeError("newTimestamp must be a number.");this.timestamp=e}static fromAudioBuffer(e,t){if(!(e instanceof AudioBuffer))throw new TypeError("audioBuffer must be an AudioBuffer.");let i=64*1024*1024,s=e.numberOfChannels,n=e.sampleRate,o=e.length,a=Math.floor(i/s),c=0,u=o,l=[];for(;u>0;){let h=Math.min(a,u),f=new Float32Array(s*h);for(let m=0;m<s;m++)e.copyFromChannel(f.subarray(m*h,m*h+h),m,c);let d=new r({format:"f32-planar",sampleRate:n,numberOfFrames:h,numberOfChannels:s,timestamp:t+c/n,data:f});l.push(d),c+=h,u-=h}return l}},Xa=r=>{switch(r){case"u8":case"u8-planar":return 1;case"s16":case"s16-planar":return 2;case"s32":case"s32-planar":return 4;case"f32":case"f32-planar":return 4;default:throw new Error("Unknown AudioSampleFormat")}},lh=r=>{switch(r){case"u8-planar":case"s16-planar":case"s32-planar":case"f32-planar":return!0;default:return!1}},eD=r=>{switch(r){case"u8":case"u8-planar":return(e,t)=>(e.getUint8(t)-128)/128;case"s16":case"s16-planar":return(e,t)=>e.getInt16(t,!0)/32768;case"s32":case"s32-planar":return(e,t)=>e.getInt32(t,!0)/2147483648;case"f32":case"f32-planar":return(e,t)=>e.getFloat32(t,!0)}},tD=r=>{switch(r){case"u8":case"u8-planar":return(e,t,i)=>e.setUint8(t,Qe((i+1)*127.5,0,255));case"s16":case"s16-planar":return(e,t,i)=>e.setInt16(t,Qe(Math.round(i*32767),-32768,32767),!0);case"s32":case"s32-planar":return(e,t,i)=>e.setInt32(t,Qe(Math.round(i*2147483647),-2147483648,2147483647),!0);case"f32":case"f32-planar":return(e,t,i)=>e.setFloat32(t,i,!0)}},Ya=r=>typeof AudioData<"u"&&r instanceof AudioData;var xn=r=>{if(!r||typeof r!="object")throw new TypeError("options must be an object.");if(r.metadataOnly!==void 0&&typeof r.metadataOnly!="boolean")throw new TypeError("options.metadataOnly, when defined, must be a boolean.");if(r.verifyKeyPackets!==void 0&&typeof r.verifyKeyPackets!="boolean")throw new TypeError("options.verifyKeyPackets, when defined, must be a boolean.");if(r.verifyKeyPackets&&r.metadataOnly)throw new TypeError("options.verifyKeyPackets and options.metadataOnly cannot be enabled together.")},Zi=r=>{if(typeof r!="number"||Number.isNaN(r))throw new TypeError("timestamp must be a number.")},Jp=(r,e,t)=>t.verifyKeyPackets?e.then(async i=>{if(!i||i.type==="delta")return i;let s=await r.determinePacketType(i);return s&&(i.type=s),i}):e,Ji=class{constructor(e){if(!(e instanceof _n))throw new TypeError("track must be an InputTrack.");this._track=e}getFirstPacket(e={}){return xn(e),Jp(this._track,this._track._backing.getFirstPacket(e),e)}getPacket(e,t={}){return Zi(e),xn(t),Jp(this._track,this._track._backing.getPacket(e,t),t)}getNextPacket(e,t={}){if(!(e instanceof de))throw new TypeError("packet must be an EncodedPacket.");return xn(t),Jp(this._track,this._track._backing.getNextPacket(e,t),t)}async getKeyPacket(e,t={}){if(Zi(e),xn(t),!t.verifyKeyPackets)return this._track._backing.getKeyPacket(e,t);let i=await this._track._backing.getKeyPacket(e,t);return!i||i.type==="delta"?i:await this._track.determinePacketType(i)==="delta"?this.getKeyPacket(i.timestamp-1/this._track.timeResolution,t):i}async getNextKeyPacket(e,t={}){if(!(e instanceof de))throw new TypeError("packet must be an EncodedPacket.");if(xn(t),!t.verifyKeyPackets)return this._track._backing.getNextKeyPacket(e,t);let i=await this._track._backing.getNextKeyPacket(e,t);return!i||i.type==="delta"?i:await this._track.determinePacketType(i)==="delta"?this.getNextKeyPacket(i,t):i}packets(e,t,i={}){if(e!==void 0&&!(e instanceof de))throw new TypeError("startPacket must be an EncodedPacket.");if(e!==void 0&&e.isMetadataOnly&&!i?.metadataOnly)throw new TypeError("startPacket can only be metadata-only if options.metadataOnly is enabled.");if(t!==void 0&&!(t instanceof de))throw new TypeError("endPacket must be an EncodedPacket.");xn(i);let s=[],{promise:n,resolve:o}=Ke(),{promise:a,resolve:c}=Ke(),u=!1,l=!1,h=null,f=[],d=()=>Math.max(2,f.length);return(async()=>{let m=e??await this.getFirstPacket(i);for(;m&&!l&&!(t&&m.sequenceNumber>=t?.sequenceNumber);){if(s.length>d()){({promise:a,resolve:c}=Ke()),await a;continue}s.push(m),o(),{promise:n,resolve:o}=Ke(),m=await this.getNextPacket(m,i)}u=!0,o()})().catch(m=>{h||(h=m,o())}),{async next(){for(;;){if(l)return{value:void 0,done:!0};if(h)throw h;if(s.length>0){let m=s.shift(),x=performance.now();for(f.push(x);f.length>0&&x-f[0]>=1e3;)f.shift();return c(),{value:m,done:!1}}else{if(u)return{value:void 0,done:!0};await n}}},async return(){return l=!0,c(),o(),{value:void 0,done:!0}},async throw(m){throw m},[Symbol.asyncIterator](){return this}}}},Ka=class{constructor(e,t){this.onSample=e,this.onError=t}},Qa=class{mediaSamplesInRange(e=0,t=1/0){Zi(e),Zi(t);let i=[],s=!1,n=null,{promise:o,resolve:a}=Ke(),{promise:c,resolve:u}=Ke(),l=!1,h=!1,f=!1,d=null;return(async()=>{let m=new Error,x=await this._createDecoder(C=>{if(u(),C.timestamp>=t&&(h=!0),h){C.close();return}n&&(C.timestamp>e?(i.push(n),s=!0):n.close()),C.timestamp>=e&&(i.push(C),s=!0),n=s?null:C,i.length>0&&(a(),{promise:o,resolve:a}=Ke())},C=>{d||(C.stack=m.stack,d=C,a())}),g=this._createPacketSink(),_=await g.getKeyPacket(e,{verifyKeyPackets:!0})??await g.getFirstPacket();if(!_)return;let y=_,S;if(t<1/0){let C=await g.getPacket(t),v=C?C.type==="key"&&C.timestamp===t?C:await g.getNextKeyPacket(C,{verifyKeyPackets:!0}):null;v&&(S=v)}let T=g.packets(_,S);for(await T.next();y&&!h;){let C=EE(i.length);if(i.length+x.getDecodeQueueSize()>C){({promise:c,resolve:u}=Ke()),await c;continue}x.decode(y);let v=await T.next();if(v.done)break;y=v.value}await T.return(),f||await x.flush(),x.close(),!s&&n&&i.push(n),l=!0,a()})().catch(m=>{d||(d=m,a())}),{async next(){for(;;){if(f)return{value:void 0,done:!0};if(d)throw d;if(i.length>0){let m=i.shift();return u(),{value:m,done:!1}}else if(!l)await o;else return{value:void 0,done:!0}}},async return(){f=!0,h=!0,u(),a(),n?.close();for(let m of i)m.close();return{value:void 0,done:!0}},async throw(m){throw m},[Symbol.asyncIterator](){return this}}}mediaSamplesAtTimestamps(e){pC(e);let t=mC(e),i=[],s=[],{promise:n,resolve:o}=Ke(),{promise:a,resolve:c}=Ke(),u=!1,l=!1,h=null,f=d=>{s.push(d),o(),{promise:n,resolve:o}=Ke()};return(async()=>{let d=new Error,m=await this._createDecoder(C=>{if(c(),l){C.close();return}let v=0;for(;i.length>0&&C.timestamp-i[0]>-1e-10;)v++,i.shift();if(v>0)for(let E=0;E<v;E++)f(E<v-1?C.clone():C);else C.close()},C=>{h||(C.stack=d.stack,h=C,o())}),x=this._createPacketSink(),g=null,_=null,y=-1,S=async()=>{w(_);let C=_;for(m.decode(C);C.sequenceNumber<y;){let v=EE(s.length);for(;s.length+m.getDecodeQueueSize()>v&&!l;)({promise:a,resolve:c}=Ke()),await a;if(l)break;let E=await x.getNextPacket(C);w(E),C=E,m.decode(E)}y=-1},T=async()=>{await m.flush();for(let C=0;C<i.length;C++)f(null);i.length=0};for await(let C of t){if(Zi(C),l)break;let v=await x.getPacket(C),E=v&&await x.getKeyPacket(C,{verifyKeyPackets:!0});if(!E){y!==-1&&(await S(),await T()),f(null),g=null;continue}g&&(E.sequenceNumber!==_.sequenceNumber||v.timestamp<g.timestamp)&&(await S(),await T()),i.push(v.timestamp),y=Math.max(v.sequenceNumber,y),g=v,_=E}l||(y!==-1&&await S(),await T()),m.close(),u=!0,o()})().catch(d=>{h||(h=d,o())}),{async next(){for(;;){if(l)return{value:void 0,done:!0};if(h)throw h;if(s.length>0){let d=s.shift();return w(d!==void 0),c(),{value:d,done:!1}}else if(!u)await n;else return{value:void 0,done:!0}}},async return(){l=!0,c(),o();for(let d of s)d?.close();return{value:void 0,done:!0}},async throw(d){throw d},[Symbol.asyncIterator](){return this}}}},EE=r=>r===0?40:8,eg=class extends Ka{constructor(e,t,i,s,n,o){super(e,t),this.rotation=n,this.timeResolution=o,this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new ii,this.customDecoderQueueSize=0,this.sampleQueue=[];let a=u=>{if(this.sampleQueue.length>0&&u.timestamp>=he(this.sampleQueue).timestamp){for(let h of this.sampleQueue)this.finalizeAndEmitSample(h);this.sampleQueue.length=0}let l=J(this.sampleQueue,u.timestamp,h=>h.timestamp);this.sampleQueue.splice(l+1,0,u)},c=Wl.find(u=>u.supports(i,s));c?(this.customDecoder=new c,this.customDecoder.codec=i,this.customDecoder.config=s,this.customDecoder.onSample=u=>{if(!(u instanceof lr))throw new TypeError("The argument passed to onSample must be a VideoSample.");a(u)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init())):(this.decoder=new VideoDecoder({output:u=>a(new lr(u)),error:t}),this.decoder.configure(s))}finalizeAndEmitSample(e){e.setTimestamp(Math.round(e.timestamp*this.timeResolution)/this.timeResolution),e.setDuration(Math.round(e.duration*this.timeResolution)/this.timeResolution),e.setRotation(this.rotation),this.onSample(e)}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(w(this.decoder),this.decoder.decodeQueueSize)}decode(e){this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):(w(this.decoder),this.decoder.decode(e.toEncodedVideoChunk()))}async flush(){this.customDecoder?await this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(w(this.decoder),await this.decoder.flush());for(let e of this.sampleQueue)this.finalizeAndEmitSample(e);this.sampleQueue.length=0}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(w(this.decoder),this.decoder.close());for(let e of this.sampleQueue)e.close();this.sampleQueue.length=0}},Za=class extends Qa{constructor(e){if(!(e instanceof Ir))throw new TypeError("videoTrack must be an InputVideoTrack.");super(),this._videoTrack=e}async _createDecoder(e,t){if(!await this._videoTrack.canDecode())throw new Error("This video track cannot be decoded by this browser. Make sure to check decodability before using a track.");let i=this._videoTrack.codec,s=this._videoTrack.rotation,n=await this._videoTrack.getDecoderConfig(),o=this._videoTrack.timeResolution;return w(i&&n),new eg(e,t,i,n,s,o)}_createPacketSink(){return new Ji(this._videoTrack)}async getSample(e){Zi(e);for await(let t of this.mediaSamplesAtTimestamps([e]))return t;throw new Error("Internal error: Iterator returned nothing.")}samples(e=0,t=1/0){return this.mediaSamplesInRange(e,t)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}};var tg=class extends Ka{constructor(e,t,i,s){super(e,t),this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new ii,this.customDecoderQueueSize=0;let n=a=>{let c=s.sampleRate;a.setTimestamp(Math.round(a.timestamp*c)/c),e(a)},o=$l.find(a=>a.supports(i,s));o?(this.customDecoder=new o,this.customDecoder.codec=i,this.customDecoder.config=s,this.customDecoder.onSample=a=>{if(!(a instanceof Lt))throw new TypeError("The argument passed to onSample must be an AudioSample.");n(a)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init())):(this.decoder=new AudioDecoder({output:a=>n(new Lt(a)),error:t}),this.decoder.configure(s))}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(w(this.decoder),this.decoder.decodeQueueSize)}decode(e){this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):(w(this.decoder),this.decoder.decode(e.toEncodedAudioChunk()))}flush(){return this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(w(this.decoder),this.decoder.flush())}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(w(this.decoder),this.decoder.close())}},rg=class extends Ka{constructor(e,t,i){super(e,t),this.decoderConfig=i,this.currentTimestamp=null,w(Ie.includes(i.codec)),this.codec=i.codec;let{dataType:s,sampleSize:n,littleEndian:o}=Tt(this.codec);switch(this.inputSampleSize=n,n){case 1:s==="unsigned"?this.readInputValue=(a,c)=>a.getUint8(c)-2**7:s==="signed"?this.readInputValue=(a,c)=>a.getInt8(c):s==="ulaw"?this.readInputValue=(a,c)=>SE(a.getUint8(c)):s==="alaw"?this.readInputValue=(a,c)=>CE(a.getUint8(c)):w(!1);break;case 2:s==="unsigned"?this.readInputValue=(a,c)=>a.getUint16(c,o)-2**15:s==="signed"?this.readInputValue=(a,c)=>a.getInt16(c,o):w(!1);break;case 3:s==="unsigned"?this.readInputValue=(a,c)=>Op(a,c,o)-2**23:s==="signed"?this.readInputValue=(a,c)=>gC(a,c,o):w(!1);break;case 4:s==="unsigned"?this.readInputValue=(a,c)=>a.getUint32(c,o)-2**31:s==="signed"?this.readInputValue=(a,c)=>a.getInt32(c,o):s==="float"?this.readInputValue=(a,c)=>a.getFloat32(c,o):w(!1);break;case 8:s==="float"?this.readInputValue=(a,c)=>a.getFloat64(c,o):w(!1);break;default:si(n),w(!1)}switch(n){case 1:s==="ulaw"||s==="alaw"?(this.outputSampleSize=2,this.outputFormat="s16",this.writeOutputValue=(a,c,u)=>a.setInt16(c,u,!0)):(this.outputSampleSize=1,this.outputFormat="u8",this.writeOutputValue=(a,c,u)=>a.setUint8(c,u+2**7));break;case 2:this.outputSampleSize=2,this.outputFormat="s16",this.writeOutputValue=(a,c,u)=>a.setInt16(c,u,!0);break;case 3:this.outputSampleSize=4,this.outputFormat="s32",this.writeOutputValue=(a,c,u)=>a.setInt32(c,u<<8,!0);break;case 4:this.outputSampleSize=4,s==="float"?(this.outputFormat="f32",this.writeOutputValue=(a,c,u)=>a.setFloat32(c,u,!0)):(this.outputFormat="s32",this.writeOutputValue=(a,c,u)=>a.setInt32(c,u,!0));break;case 8:this.outputSampleSize=4,this.outputFormat="f32",this.writeOutputValue=(a,c,u)=>a.setFloat32(c,u,!0);break;default:si(n),w(!1)}}getDecodeQueueSize(){return 0}decode(e){let t=At(e.data),i=e.byteLength/this.decoderConfig.numberOfChannels/this.inputSampleSize,s=i*this.decoderConfig.numberOfChannels*this.outputSampleSize,n=new ArrayBuffer(s),o=new DataView(n);for(let l=0;l<i*this.decoderConfig.numberOfChannels;l++){let h=l*this.inputSampleSize,f=l*this.outputSampleSize,d=this.readInputValue(t,h);this.writeOutputValue(o,f,d)}let a=i/this.decoderConfig.sampleRate;(this.currentTimestamp===null||Math.abs(e.timestamp-this.currentTimestamp)>=a)&&(this.currentTimestamp=e.timestamp);let c=this.currentTimestamp;this.currentTimestamp+=a;let u=new Lt({format:this.outputFormat,data:n,numberOfChannels:this.decoderConfig.numberOfChannels,sampleRate:this.decoderConfig.sampleRate,numberOfFrames:i,timestamp:c});this.onSample(u)}async flush(){}close(){}},Ja=class extends Qa{constructor(e){if(!(e instanceof nt))throw new TypeError("audioTrack must be an InputAudioTrack.");super(),this._audioTrack=e}async _createDecoder(e,t){if(!await this._audioTrack.canDecode())throw new Error("This audio track cannot be decoded by this browser. Make sure to check decodability before using a track.");let i=this._audioTrack.codec,s=await this._audioTrack.getDecoderConfig();return w(i&&s),Ie.includes(s.codec)?new rg(e,t,s):new tg(e,t,i,s)}_createPacketSink(){return new Ji(this._audioTrack)}async getSample(e){Zi(e);for await(let t of this.mediaSamplesAtTimestamps([e]))return t;throw new Error("Internal error: Iterator returned nothing.")}samples(e=0,t=1/0){return this.mediaSamplesInRange(e,t)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}};var _n=class{constructor(e){this._backing=e}isVideoTrack(){return this instanceof Ir}isAudioTrack(){return this instanceof nt}get id(){return this._backing.getId()}get languageCode(){return this._backing.getLanguageCode()}get timeResolution(){return this._backing.getTimeResolution()}getFirstTimestamp(){return this._backing.getFirstTimestamp()}computeDuration(){return this._backing.computeDuration()}async computePacketStats(e=1/0){let t=new Ji(this),i=1/0,s=-1/0,n=0,o=0;for await(let a of t.packets(void 0,void 0,{metadataOnly:!0})){if(n>=e&&a.timestamp>=s)break;i=Math.min(i,a.timestamp),s=Math.max(s,a.timestamp+a.duration),n++,o+=a.byteLength}return{packetCount:n,averagePacketRate:n?Number((n/(s-i)).toPrecision(16)):0,averageBitrate:n?Number((8*o/(s-i)).toPrecision(16)):0}}},Ir=class extends _n{constructor(e){super(e),this._backing=e}get type(){return"video"}get codec(){return this._backing.getCodec()}get codedWidth(){return this._backing.getCodedWidth()}get codedHeight(){return this._backing.getCodedHeight()}get rotation(){return this._backing.getRotation()}get displayWidth(){return this._backing.getRotation()%180===0?this._backing.getCodedWidth():this._backing.getCodedHeight()}get displayHeight(){return this._backing.getRotation()%180===0?this._backing.getCodedHeight():this._backing.getCodedWidth()}getColorSpace(){return this._backing.getColorSpace()}async hasHighDynamicRange(){let e=await this._backing.getColorSpace();return e.primaries==="bt2020"||e.primaries==="smpte432"||e.transfer==="pg"||e.transfer==="hlg"||e.matrix==="bt2020-ncl"}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){return(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let t=this._backing.getCodec();return w(t!==null),Wl.some(s=>s.supports(t,e))?!0:typeof VideoDecoder>"u"?!1:(await VideoDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof de))throw new TypeError("packet must be an EncodedPacket.");if(e.isMetadataOnly)throw new TypeError("packet must not be metadata-only to determine its type.");return this.codec===null?null:KC(this,e)}},nt=class extends _n{constructor(e){super(e),this._backing=e}get type(){return"audio"}get codec(){return this._backing.getCodec()}get numberOfChannels(){return this._backing.getNumberOfChannels()}get sampleRate(){return this._backing.getSampleRate()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){return(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let t=this._backing.getCodec();return w(t!==null),$l.some(i=>i.supports(t,e))||e.codec.startsWith("pcm-")?!0:typeof AudioDecoder>"u"?!1:(await AudioDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof de))throw new TypeError("packet must be an EncodedPacket.");return this.codec===null?null:"key"}};var Rt=class{constructor(e,t=1/0){this.source=e,this.maxStorableBytes=t,this.loadedSegments=[],this.loadingSegments=[],this.sourceSizePromise=null,this.nextAge=0,this.totalStoredBytes=0}async loadRange(e,t){if(t=Math.min(t,await this.source.getSize()),e>=t)return;let i=this.loadingSegments.find(c=>c.start<=e&&c.end>=t);if(i){await i.promise;return}let s=J(this.loadedSegments,e,c=>c.start);if(s!==-1)for(let c=s;c<this.loadedSegments.length;c++){let u=this.loadedSegments[c];if(u.start>e)break;if(u.end>=t)return}this.source.onread?.(e,t);let n=this.source._read(e,t),o={start:e,end:t,promise:n};this.loadingSegments.push(o);let a=await n;fC(this.loadingSegments,o),this.insertIntoLoadedSegments(e,a)}rangeIsLoaded(e,t){if(t<=e)return!0;let i=J(this.loadedSegments,e,s=>s.start);if(i===-1)return!1;for(let s=i;s<this.loadedSegments.length;s++){let n=this.loadedSegments[s];if(n.start>e)break;if(n.end>=t)return!0}return!1}insertIntoLoadedSegments(e,t){let i={start:e,end:e+t.byteLength,bytes:t,view:new DataView(t.buffer),age:this.nextAge++},s=J(this.loadedSegments,e,n=>n.start);(s===-1||this.loadedSegments[s].start<i.start)&&s++,this.loadedSegments.splice(s,0,i),this.totalStoredBytes+=t.byteLength;for(let n=s+1;n<this.loadedSegments.length;n++){let o=this.loadedSegments[n];if(o.start>=i.end)break;i.start<=o.start&&o.end<=i.end&&(this.loadedSegments.splice(n,1),n--)}for(;this.totalStoredBytes>this.maxStorableBytes&&this.loadedSegments.length>1;){let n=null,o=-1;for(let a=0;a<this.loadedSegments.length;a++){let c=this.loadedSegments[a];(!n||c.age<n.age)&&(n=c,o=a)}w(n),this.totalStoredBytes-=n.bytes.byteLength,this.loadedSegments.splice(o,1)}}getViewAndOffset(e,t){let i=J(this.loadedSegments,e,n=>n.start),s=null;if(i!==-1)for(let n=i;n<this.loadedSegments.length;n++){let o=this.loadedSegments[n];if(o.start>e)break;if(t<=o.end){s=o;break}}if(!s)throw new Error(`No segment loaded for range [${e}, ${t}).`);return s.age=this.nextAge++,{view:s.view,offset:s.bytes.byteOffset+e-s.start}}forgetRange(e,t){if(t<=e)return;let i=J(this.loadedSegments,e,n=>n.start);if(i===-1)return;let s=this.loadedSegments[i];s.start!==e||s.end!==t||(this.loadedSegments.splice(i,1),this.totalStoredBytes-=s.bytes.byteLength)}};var es=class{constructor(e){this.reader=e,this.pos=0,this.littleEndian=!0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,this.littleEndian)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,this.littleEndian)}readU64(){let e,t;return this.littleEndian?(e=this.readU32(),t=this.readU32()):(t=this.readU32(),e=this.readU32()),t*4294967296+e}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}};var Fr;(function(r){r[r.PCM=1]="PCM",r[r.IEEE_FLOAT=3]="IEEE_FLOAT",r[r.ALAW=6]="ALAW",r[r.MULAW=7]="MULAW",r[r.EXTENSIBLE=65534]="EXTENSIBLE"})(Fr||(Fr={}));var hh=class extends Bt{constructor(e){super(e),this.metadataPromise=null,this.dataStart=-1,this.dataSize=-1,this.audioInfo=null,this.tracks=[],this.metadataReader=new es(e._mainReader),this.chunkReader=new es(new Rt(e.source,64*2**20))}async readMetadata(){return this.metadataPromise??=(async()=>{let e=await this.metadataReader.reader.source.getSize(),t=this.metadataReader.readAscii(4);this.metadataReader.littleEndian=t!=="RIFX";let i=t==="RF64",s=this.metadataReader.readU32(),n=i?e:Math.min(s+8,e);if(this.metadataReader.readAscii(4)!=="WAVE")throw new Error("Invalid WAVE file - wrong format");this.metadataReader.pos=12;let a=0,c=null;for(;this.metadataReader.pos<n;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+8);let l=this.metadataReader.readAscii(4),h=this.metadataReader.readU32(),f=this.metadataReader.pos;if(i&&a===0&&l!=="ds64")throw new Error('Invalid RF64 file: First chunk must be "ds64".');if(l==="fmt ")await this.parseFmtChunk(h);else if(l==="data")c??=h,this.dataStart=this.metadataReader.pos,this.dataSize=Math.min(c,n-this.dataStart);else if(l==="ds64"){let d=this.metadataReader.readU64();c=this.metadataReader.readU64(),n=Math.min(d+8,e)}this.metadataReader.pos=f+h+(h&1),a++}if(!this.audioInfo)throw new Error('Invalid WAVE file - missing "fmt " chunk');if(this.dataStart===-1)throw new Error('Invalid WAVE file - missing "data" chunk');let u=this.audioInfo.blockSizeInBytes;this.dataSize=Math.floor(this.dataSize/u)*u,this.tracks.push(new nt(new ig(this)))})()}async parseFmtChunk(e){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+e);let t=this.metadataReader.readU16(),i=this.metadataReader.readU16(),s=this.metadataReader.readU32();this.metadataReader.pos+=4;let n=this.metadataReader.readU16(),o;if(e===14?o=8:o=this.metadataReader.readU16(),e>=18&&t!==357){let a=this.metadataReader.readU16(),c=e-18;if(Math.min(c,a)>=22&&t===Fr.EXTENSIBLE){this.metadataReader.pos+=6;let l=this.metadataReader.readBytes(16);t=l[0]|l[1]<<8}}(t===Fr.MULAW||t===Fr.ALAW)&&(o=8),this.audioInfo={format:t,numberOfChannels:i,sampleRate:s,sampleSizeInBytes:Math.ceil(o/8),blockSizeInBytes:n}}getCodec(){if(w(this.audioInfo),this.audioInfo.format===Fr.MULAW)return"ulaw";if(this.audioInfo.format===Fr.ALAW)return"alaw";if(this.audioInfo.format===Fr.PCM){if(this.audioInfo.sampleSizeInBytes===1)return"pcm-u8";if(this.audioInfo.sampleSizeInBytes===2)return"pcm-s16";if(this.audioInfo.sampleSizeInBytes===3)return"pcm-s24";if(this.audioInfo.sampleSizeInBytes===4)return"pcm-s32"}return this.audioInfo.format===Fr.IEEE_FLOAT&&this.audioInfo.sampleSizeInBytes===4?"pcm-f32":null}async getMimeType(){return"audio/wav"}async computeDuration(){return await this.readMetadata(),w(this.audioInfo),this.dataSize/this.audioInfo.blockSizeInBytes/this.audioInfo.sampleRate}async getTracks(){return await this.readMetadata(),this.tracks}},bn=2048,ig=class{constructor(e){this.demuxer=e}getId(){return 1}getCodec(){return this.demuxer.getCodec()}async getDecoderConfig(){let e=this.demuxer.getCodec();return e?(w(this.demuxer.audioInfo),{codec:e,numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate}):null}computeDuration(){return this.demuxer.computeDuration()}getNumberOfChannels(){return w(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return w(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getTimeResolution(){return w(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getLanguageCode(){return mt}async getFirstTimestamp(){return 0}async getPacketAtIndex(e,t){w(this.demuxer.audioInfo);let i=e*bn*this.demuxer.audioInfo.blockSizeInBytes;if(i>=this.demuxer.dataSize)return null;let s=Math.min(bn*this.demuxer.audioInfo.blockSizeInBytes,this.demuxer.dataSize-i),n;if(t.metadataOnly)n=pt;else{let c=bn*this.demuxer.audioInfo.blockSizeInBytes,u=Math.ceil(2**19/c)*c,l=Math.floor(i/u)*u,h=l+u;await this.demuxer.chunkReader.reader.loadRange(this.demuxer.dataStart+l,this.demuxer.dataStart+h),this.demuxer.chunkReader.pos=this.demuxer.dataStart+i,n=this.demuxer.chunkReader.readBytes(s)}let o=e*bn/this.demuxer.audioInfo.sampleRate,a=s/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate;return new de(n,"key",o,a,e,s)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}getPacket(e,t){w(this.demuxer.audioInfo);let i=Math.floor(e*this.demuxer.audioInfo.sampleRate/bn);return this.getPacketAtIndex(i,t)}getNextPacket(e,t){w(this.demuxer.audioInfo);let i=Math.round(e.timestamp*this.demuxer.audioInfo.sampleRate/bn);return this.getPacketAtIndex(i+1,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var yn=class{getSupportedVideoCodecs(){return this.getSupportedCodecs().filter(e=>Dr.includes(e))}getSupportedAudioCodecs(){return this.getSupportedCodecs().filter(e=>ni.includes(e))}getSupportedSubtitleCodecs(){return this.getSupportedCodecs().filter(e=>hn.includes(e))}_codecUnsupportedHint(e){return""}},ec=class extends yn{constructor(e={}){if(!e||typeof e!="object")throw new TypeError("options must be an object.");if(e.fastStart!==void 0&&![!1,"in-memory","fragmented"].includes(e.fastStart))throw new TypeError('options.fastStart, when provided, must be false, "in-memory", or "fragmented".');if(e.minimumFragmentDuration!==void 0&&(!Number.isFinite(e.minimumFragmentDuration)||e.minimumFragmentDuration<0))throw new TypeError("options.minimumFragmentDuration, when provided, must be a non-negative number.");if(e.onFtyp!==void 0&&typeof e.onFtyp!="function")throw new TypeError("options.onFtyp, when provided, must be a function.");if(e.onMoov!==void 0&&typeof e.onMoov!="function")throw new TypeError("options.onMoov, when provided, must be a function.");if(e.onMdat!==void 0&&typeof e.onMdat!="function")throw new TypeError("options.onMdat, when provided, must be a function.");if(e.onMoof!==void 0&&typeof e.onMoof!="function")throw new TypeError("options.onMoof, when provided, must be a function.");super(),this._options=e}getSupportedTrackCounts(){return{video:{min:0,max:1/0},audio:{min:0,max:1/0},subtitle:{min:0,max:1/0},total:{min:1,max:2**32-1}}}get supportsVideoRotationMetadata(){return!0}_createMuxer(e){return new ah(e,this)}},Tn=class extends ec{get _name(){return"MP4"}get fileExtension(){return".mp4"}get mimeType(){return"video/mp4"}getSupportedCodecs(){return[...Dr,...Np,"pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be",...hn]}_codecUnsupportedHint(e){return new mn().getSupportedCodecs().includes(e)?" Switching to MOV will grant support for this codec.":""}},mn=class extends ec{get _name(){return"MOV"}get fileExtension(){return".mov"}get mimeType(){return"video/quicktime"}getSupportedCodecs(){return[...Dr,...ni]}_codecUnsupportedHint(e){return new Tn().getSupportedCodecs().includes(e)?" Switching to MP4 will grant support for this codec.":""}};var wn=class{constructor(){this._connectedTrack=null,this._closingPromise=null,this._closed=!1,this._timestampOffset=0}_ensureValidAdd(){if(!this._connectedTrack)throw new Error("Source is not connected to an output track.");if(this._connectedTrack.output.state==="canceled")throw new Error("Output has been canceled.");if(this._connectedTrack.output.state==="finalizing"||this._connectedTrack.output.state==="finalized")throw new Error("Output has been finalized.");if(this._connectedTrack.output.state==="pending")throw new Error("Output has not started.");if(this._closed)throw new Error("Source is closed.")}async _start(){}async _flushAndClose(){}close(){if(this._closingPromise)return;let e=this._connectedTrack;if(!e)throw new Error("Cannot call close without connecting the source to an output track.");if(e.output.state==="pending")throw new Error("Cannot call close before output has been started.");this._closingPromise=(async()=>{await this._flushAndClose(),this._closed=!0,!(e.output.state==="finalizing"||e.output.state==="finalized")&&e.output._muxer.onTrackClose(e)})()}async _flushOrWaitForClose(){return this._closingPromise?this._closingPromise:this._flushAndClose()}},Sn=class extends wn{constructor(e){if(super(),this._connectedTrack=null,!Dr.includes(e))throw new TypeError(`Invalid video codec '${e}'. Must be one of: ${Dr.join(", ")}.`);this._codec=e}};var rD=r=>{if(!r||typeof r!="object")throw new TypeError("Encoding config must be an object.");if(!Dr.includes(r.codec))throw new TypeError(`Invalid video codec '${r.codec}'. Must be one of: ${Dr.join(", ")}.`);if(!(r.bitrate instanceof Pt)&&(!Number.isInteger(r.bitrate)||r.bitrate<=0))throw new TypeError("config.bitrate must be a positive integer or a quality.");if(r.latencyMode!==void 0&&!["quality","realtime"].includes(r.latencyMode))throw new TypeError("config.latencyMode, when provided, must be 'quality' or 'realtime'.");if(r.keyFrameInterval!==void 0&&(!Number.isFinite(r.keyFrameInterval)||r.keyFrameInterval<0))throw new TypeError("config.keyFrameInterval, when provided, must be a non-negative number.");if(r.fullCodecString!==void 0&&typeof r.fullCodecString!="string")throw new TypeError("config.fullCodecString, when provided, must be a string.");if(r.fullCodecString!==void 0&&zp(r.fullCodecString)!==r.codec)throw new TypeError(`config.fullCodecString, when provided, must be a string that matches the specified codec (${r.codec}).`);if(r.onEncodedPacket!==void 0&&typeof r.onEncodedPacket!="function")throw new TypeError("config.onEncodedChunk, when provided, must be a function.");if(r.onEncoderConfig!==void 0&&typeof r.onEncoderConfig!="function")throw new TypeError("config.onEncoderConfig, when provided, must be a function.")},sg=class{constructor(e,t){this.source=e,this.encodingConfig=t,this.ensureEncoderPromise=null,this.encoderInitialized=!1,this.encoder=null,this.muxer=null,this.lastMultipleOfKeyFrameInterval=-1,this.lastWidth=null,this.lastHeight=null,this.customEncoder=null,this.customEncoderCallSerializer=new ii,this.customEncoderQueueSize=0,this.encoderError=null}async add(e,t,i){try{if(this.checkForEncoderError(),this.source._ensureValidAdd(),this.lastWidth!==null&&this.lastHeight!==null){if(e.codedWidth!==this.lastWidth||e.codedHeight!==this.lastHeight)throw new Error(`Video sample size must remain constant. Expected ${this.lastWidth}x${this.lastHeight}, got ${e.codedWidth}x${e.codedHeight}.`)}else this.lastWidth=e.codedWidth,this.lastHeight=e.codedHeight;this.encoderInitialized||(this.ensureEncoderPromise||this.ensureEncoder(e),this.encoderInitialized||await this.ensureEncoderPromise),w(this.encoderInitialized);let s=this.encodingConfig.keyFrameInterval??5,n=Math.floor(e.timestamp/s),o={...i,keyFrame:i?.keyFrame||s===0||n!==this.lastMultipleOfKeyFrameInterval};if(this.lastMultipleOfKeyFrameInterval=n,this.customEncoder){this.customEncoderQueueSize++;let a=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(e,o)).then(()=>{this.customEncoderQueueSize--,t&&e.close()}).catch(c=>{this.encoderError??=c});this.customEncoderQueueSize>=4&&await a}else{w(this.encoder);let a=e.toVideoFrame();this.encoder.encode(a,o),a.close(),t&&e.close(),this.encoder.encodeQueueSize>=4&&await new Promise(c=>this.encoder.addEventListener("dequeue",c,{once:!0}))}await this.muxer.mutex.currentPromise}finally{t&&e.close()}}async ensureEncoder(e){if(!this.encoder)return this.ensureEncoderPromise=(async()=>{let t=e.codedWidth,i=e.codedHeight,s=this.encodingConfig.bitrate instanceof Pt?this.encodingConfig.bitrate._toVideoBitrate(this.encodingConfig.codec,t,i):this.encodingConfig.bitrate,n={codec:this.encodingConfig.fullCodecString??AC(this.encodingConfig.codec,t,i,s),width:t,height:i,bitrate:s,framerate:this.source._connectedTrack?.metadata.frameRate,latencyMode:this.encodingConfig.latencyMode,...MC(this.encodingConfig.codec)};this.encodingConfig.onEncoderConfig?.(n);let o=TC.find(a=>a.supports(this.encodingConfig.codec,n));if(o)this.customEncoder=new o,this.customEncoder.codec=this.encodingConfig.codec,this.customEncoder.config=n,this.customEncoder.onPacket=(a,c)=>{if(!(a instanceof de))throw new TypeError("The first argument passed to onPacket must be an EncodedPacket.");if(c!==void 0&&(!c||typeof c!="object"))throw new TypeError("The second argument passed to onPacket must be an object or undefined.");this.encodingConfig.onEncodedPacket?.(a,c),this.muxer.addEncodedVideoPacket(this.source._connectedTrack,a,c)},await this.customEncoder.init();else{if(typeof VideoEncoder>"u")throw new Error("VideoEncoder is not supported by this browser.");if(!(await VideoEncoder.isConfigSupported(n)).supported)throw new Error(`This specific encoder configuration (${n.codec}, ${n.bitrate} bps, ${n.width}x${n.height}) is not supported by this browser. Consider using another codec or changing your video parameters.`);this.encoder=new VideoEncoder({output:(c,u)=>{let l=de.fromEncodedChunk(c);this.encodingConfig.onEncodedPacket?.(l,u),this.muxer.addEncodedVideoPacket(this.source._connectedTrack,l,u)},error:c=>{this.encoderError??=c}}),this.encoder.configure(n)}w(this.source._connectedTrack),this.muxer=this.source._connectedTrack.output._muxer,this.encoderInitialized=!0})()}async flushAndClose(){this.checkForEncoderError(),this.customEncoder?(this.customEncoderCallSerializer.call(()=>this.customEncoder.flush()),await this.customEncoderCallSerializer.call(()=>this.customEncoder.close())):this.encoder&&(await this.encoder.flush(),this.encoder.close()),this.checkForEncoderError()}getQueueSize(){return this.customEncoder?this.customEncoderQueueSize:this.encoder?.encodeQueueSize??0}checkForEncoderError(){if(this.encoderError)throw this.encoderError.stack=new Error().stack,this.encoderError}},tc=class extends Sn{constructor(e){rD(e),super(e.codec),this._encoder=new sg(this,e)}add(e,t){if(!(e instanceof lr))throw new TypeError("videoSample must be a VideoSample.");return this._encoder.add(e,!1,t)}_flushAndClose(){return this._encoder.flushAndClose()}};var vn=class extends wn{constructor(e){if(super(),this._connectedTrack=null,!ni.includes(e))throw new TypeError(`Invalid audio codec '${e}'. Must be one of: ${ni.join(", ")}.`);this._codec=e}};var iD=r=>{if(!r||typeof r!="object")throw new TypeError("Encoding config must be an object.");if(!ni.includes(r.codec))throw new TypeError(`Invalid audio codec '${r.codec}'. Must be one of: ${ni.join(", ")}.`);if(r.bitrate===void 0&&(!Ie.includes(r.codec)||r.codec==="flac"))throw new TypeError("config.bitrate must be provided for compressed audio codecs.");if(r.bitrate!==void 0&&!(r.bitrate instanceof Pt)&&(!Number.isInteger(r.bitrate)||r.bitrate<=0))throw new TypeError("config.bitrate, when provided, must be a positive integer or a quality.");if(r.fullCodecString!==void 0&&typeof r.fullCodecString!="string")throw new TypeError("config.fullCodecString, when provided, must be a string.");if(r.fullCodecString!==void 0&&zp(r.fullCodecString)!==r.codec)throw new TypeError(`config.fullCodecString, when provided, must be a string that matches the specified codec (${r.codec}).`);if(r.onEncodedPacket!==void 0&&typeof r.onEncodedPacket!="function")throw new TypeError("config.onEncodedChunk, when provided, must be a function.");if(r.onEncoderConfig!==void 0&&typeof r.onEncoderConfig!="function")throw new TypeError("config.onEncoderConfig, when provided, must be a function.")},ng=class{constructor(e,t){this.source=e,this.encodingConfig=t,this.ensureEncoderPromise=null,this.encoderInitialized=!1,this.encoder=null,this.muxer=null,this.lastNumberOfChannels=null,this.lastSampleRate=null,this.isPcmEncoder=!1,this.outputSampleSize=null,this.writeOutputValue=null,this.customEncoder=null,this.customEncoderCallSerializer=new ii,this.customEncoderQueueSize=0,this.encoderError=null}async add(e,t){try{if(this.checkForEncoderError(),this.source._ensureValidAdd(),this.lastNumberOfChannels!==null&&this.lastSampleRate!==null){if(e.numberOfChannels!==this.lastNumberOfChannels||e.sampleRate!==this.lastSampleRate)throw new Error(`Audio parameters must remain constant. Expected ${this.lastNumberOfChannels} channels at ${this.lastSampleRate} Hz, got ${e.numberOfChannels} channels at ${e.sampleRate} Hz.`)}else this.lastNumberOfChannels=e.numberOfChannels,this.lastSampleRate=e.sampleRate;if(this.encoderInitialized||(this.ensureEncoderPromise||this.ensureEncoder(e),this.encoderInitialized||await this.ensureEncoderPromise),w(this.encoderInitialized),this.customEncoder){this.customEncoderQueueSize++;let i=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(e)).then(()=>{this.customEncoderQueueSize--,t&&e.close()}).catch(s=>{this.encoderError??=s});this.customEncoderQueueSize>=4&&await i,await this.muxer.mutex.currentPromise}else if(this.isPcmEncoder)await this.doPcmEncoding(e,t);else{w(this.encoder);let i=e.toAudioData();this.encoder.encode(i),i.close(),t&&e.close(),this.encoder.encodeQueueSize>=4&&await new Promise(s=>this.encoder.addEventListener("dequeue",s,{once:!0})),await this.muxer.mutex.currentPromise}}finally{t&&e.close()}}async doPcmEncoding(e,t){w(this.outputSampleSize),w(this.writeOutputValue);let{numberOfChannels:i,numberOfFrames:s,sampleRate:n,timestamp:o}=e,a=2048,c=[];for(let f=0;f<s;f+=a){let d=Math.min(a,e.numberOfFrames-f),m=d*i*this.outputSampleSize,x=new ArrayBuffer(m),g=new DataView(x);c.push({frameCount:d,view:g})}let u=e.allocationSize({planeIndex:0,format:"f32-planar"}),l=new Float32Array(u/Float32Array.BYTES_PER_ELEMENT);for(let f=0;f<i;f++){e.copyTo(l,{planeIndex:f,format:"f32-planar"});for(let d=0;d<c.length;d++){let{frameCount:m,view:x}=c[d];for(let g=0;g<m;g++)this.writeOutputValue(x,(g*i+f)*this.outputSampleSize,l[d*a+g])}}t&&e.close();let h={decoderConfig:{codec:this.encodingConfig.codec,numberOfChannels:i,sampleRate:n}};for(let f=0;f<c.length;f++){let{frameCount:d,view:m}=c[f],x=m.buffer,g=f*a,_=new de(new Uint8Array(x),"key",o+g/n,d/n);this.encodingConfig.onEncodedPacket?.(_,h),await this.muxer.addEncodedAudioPacket(this.source._connectedTrack,_,h)}}ensureEncoder(e){if(!this.encoderInitialized)return this.ensureEncoderPromise=(async()=>{let{numberOfChannels:t,sampleRate:i}=e,s=this.encodingConfig.bitrate instanceof Pt?this.encodingConfig.bitrate._toAudioBitrate(this.encodingConfig.codec):this.encodingConfig.bitrate,n={codec:this.encodingConfig.fullCodecString??BC(this.encodingConfig.codec,t,i),numberOfChannels:t,sampleRate:i,bitrate:s,...IC(this.encodingConfig.codec)};this.encodingConfig.onEncoderConfig?.(n);let o=wC.find(a=>a.supports(this.encodingConfig.codec,n));if(o)this.customEncoder=new o,this.customEncoder.codec=this.encodingConfig.codec,this.customEncoder.config=n,this.customEncoder.onPacket=(a,c)=>{if(!(a instanceof de))throw new TypeError("The first argument passed to onPacket must be an EncodedPacket.");if(c!==void 0&&(!c||typeof c!="object"))throw new TypeError("The second argument passed to onPacket must be an object or undefined.");this.encodingConfig.onEncodedPacket?.(a,c),this.muxer.addEncodedAudioPacket(this.source._connectedTrack,a,c)},await this.customEncoder.init();else if(Ie.includes(this.encodingConfig.codec))this.initPcmEncoder();else{if(typeof AudioEncoder>"u")throw new Error("AudioEncoder is not supported by this browser.");if(!(await AudioEncoder.isConfigSupported(n)).supported)throw new Error(`This specific encoder configuration (${n.codec}, ${n.bitrate} bps, ${n.numberOfChannels} channels, ${n.sampleRate} Hz) is not supported by this browser. Consider using another codec or changing your audio parameters.`);this.encoder=new AudioEncoder({output:(c,u)=>{let l=de.fromEncodedChunk(c);this.encodingConfig.onEncodedPacket?.(l,u),this.muxer.addEncodedAudioPacket(this.source._connectedTrack,l,u)},error:c=>{this.encoderError??=c}}),this.encoder.configure(n)}w(this.source._connectedTrack),this.muxer=this.source._connectedTrack.output._muxer,this.encoderInitialized=!0})()}initPcmEncoder(){this.isPcmEncoder=!0;let e=this.encodingConfig.codec,{dataType:t,sampleSize:i,littleEndian:s}=Tt(e);switch(this.outputSampleSize=i,i){case 1:t==="unsigned"?this.writeOutputValue=(n,o,a)=>n.setUint8(o,Qe((a+1)*127.5,0,255)):t==="signed"?this.writeOutputValue=(n,o,a)=>{n.setInt8(o,Qe(Math.round(a*128),-128,127))}:t==="ulaw"?this.writeOutputValue=(n,o,a)=>{let c=Qe(Math.floor(a*32767),-32768,32767);n.setUint8(o,wE(c))}:t==="alaw"?this.writeOutputValue=(n,o,a)=>{let c=Qe(Math.floor(a*32767),-32768,32767);n.setUint8(o,vE(c))}:w(!1);break;case 2:t==="unsigned"?this.writeOutputValue=(n,o,a)=>n.setUint16(o,Qe((a+1)*32767.5,0,65535),s):t==="signed"?this.writeOutputValue=(n,o,a)=>n.setInt16(o,Qe(Math.round(a*32767),-32768,32767),s):w(!1);break;case 3:t==="unsigned"?this.writeOutputValue=(n,o,a)=>Gp(n,o,Qe((a+1)*83886075e-1,0,16777215),s):t==="signed"?this.writeOutputValue=(n,o,a)=>xC(n,o,Qe(Math.round(a*8388607),-8388608,8388607),s):w(!1);break;case 4:t==="unsigned"?this.writeOutputValue=(n,o,a)=>n.setUint32(o,Qe((a+1)*21474836475e-1,0,4294967295),s):t==="signed"?this.writeOutputValue=(n,o,a)=>n.setInt32(o,Qe(Math.round(a*2147483647),-2147483648,2147483647),s):t==="float"?this.writeOutputValue=(n,o,a)=>n.setFloat32(o,a,s):w(!1);break;case 8:t==="float"?this.writeOutputValue=(n,o,a)=>n.setFloat64(o,a,s):w(!1);break;default:si(i),w(!1)}}async flushAndClose(){this.checkForEncoderError(),this.customEncoder?(this.customEncoderCallSerializer.call(()=>this.customEncoder.flush()),await this.customEncoderCallSerializer.call(()=>this.customEncoder.close())):this.encoder&&(await this.encoder.flush(),this.encoder.close()),this.checkForEncoderError()}getQueueSize(){return this.customEncoder?this.customEncoderQueueSize:this.isPcmEncoder?0:this.encoder?.encodeQueueSize??0}checkForEncoderError(){if(this.encoderError)throw this.encoderError.stack=new Error().stack,this.encoderError}},rc=class extends vn{constructor(e){iD(e),super(e.codec),this._encoder=new ng(this,e)}add(e){if(!(e instanceof Lt))throw new TypeError("audioSample must be an AudioSample.");return this._encoder.add(e,!1)}_flushAndClose(){return this._encoder.flushAndClose()}};var ic=class extends wn{constructor(e){if(super(),this._connectedTrack=null,!hn.includes(e))throw new TypeError(`Invalid subtitle codec '${e}'. Must be one of: ${hn.join(", ")}.`);this._codec=e}};var kE=["video","audio","subtitle"],og=r=>{if(!r||typeof r!="object")throw new TypeError("metadata must be an object.");if(r.languageCode!==void 0&&!ln(r.languageCode))throw new TypeError("metadata.languageCode must be a three-letter, ISO 639-2/T language code.")},sc=class{constructor(e){if(this.state="pending",this._tracks=[],this._startPromise=null,this._cancelPromise=null,this._finalizePromise=null,this._mutex=new kt,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!(e.format instanceof yn))throw new TypeError("options.format must be an OutputFormat.");if(!(e.target instanceof qi))throw new TypeError("options.target must be a Target.");if(e.target._output)throw new Error("Target is already used for another output.");e.target._output=this,this.format=e.format,this.target=e.target,this._writer=e.target._createWriter(),this._muxer=e.format._createMuxer(this)}addVideoTrack(e,t={}){if(!(e instanceof Sn))throw new TypeError("source must be a VideoSource.");if(og(t),t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError(`Invalid video rotation: ${t.rotation}. Has to be 0, 90, 180 or 270.`);if(!this.format.supportsVideoRotationMetadata&&t.rotation)throw new Error(`${this.format._name} does not support video rotation metadata.`);if(t.frameRate!==void 0&&(!Number.isFinite(t.frameRate)||t.frameRate<=0))throw new TypeError(`Invalid video frame rate: ${t.frameRate}. Must be a positive number.`);this._addTrack("video",e,t)}addAudioTrack(e,t={}){if(!(e instanceof vn))throw new TypeError("source must be an AudioSource.");og(t),this._addTrack("audio",e,t)}addSubtitleTrack(e,t={}){if(!(e instanceof ic))throw new TypeError("source must be a SubtitleSource.");og(t),this._addTrack("subtitle",e,t)}_addTrack(e,t,i){if(this.state!=="pending")throw new Error("Cannot add track after output has been started or canceled.");if(t._connectedTrack)throw new Error("Source is already used for a track.");let s=this.format.getSupportedTrackCounts(),n=this._tracks.reduce((u,l)=>u+(l.type===e?1:0),0),o=s[e].max;if(n===o)throw new Error(o===0?`${this.format._name} does not support ${e} tracks.`:`${this.format._name} does not support more than ${o} ${e} track${o===1?"":"s"}.`);let a=s.total.max;if(this._tracks.length===a)throw new Error(`${this.format._name} does not support more than ${a} tracks${a===1?"":"s"} in total.`);let c={id:this._tracks.length+1,output:this,type:e,source:t,metadata:i};if(c.type==="video"){let u=this.format.getSupportedVideoCodecs();if(u.length===0)throw new Error(`${this.format._name} does not support video tracks.`+this.format._codecUnsupportedHint(c.source._codec));if(!u.includes(c.source._codec))throw new Error(`Codec '${c.source._codec}' cannot be contained within ${this.format._name}. Supported video codecs are: ${u.map(l=>`'${l}'`).join(", ")}.`+this.format._codecUnsupportedHint(c.source._codec))}else if(c.type==="audio"){let u=this.format.getSupportedAudioCodecs();if(u.length===0)throw new Error(`${this.format._name} does not support audio tracks.`+this.format._codecUnsupportedHint(c.source._codec));if(!u.includes(c.source._codec))throw new Error(`Codec '${c.source._codec}' cannot be contained within ${this.format._name}. Supported audio codecs are: ${u.map(l=>`'${l}'`).join(", ")}.`+this.format._codecUnsupportedHint(c.source._codec))}else if(c.type==="subtitle"){let u=this.format.getSupportedSubtitleCodecs();if(u.length===0)throw new Error(`${this.format._name} does not support subtitle tracks.`+this.format._codecUnsupportedHint(c.source._codec));if(!u.includes(c.source._codec))throw new Error(`Codec '${c.source._codec}' cannot be contained within ${this.format._name}. Supported subtitle codecs are: ${u.map(l=>`'${l}'`).join(", ")}.`+this.format._codecUnsupportedHint(c.source._codec))}this._tracks.push(c),t._connectedTrack=c}async start(){let e=this.format.getSupportedTrackCounts();for(let i of kE){let s=this._tracks.reduce((o,a)=>o+(a.type===i?1:0),0),n=e[i].min;if(s<n)throw new Error(n===e[i].max?`${this.format._name} requires exactly ${n} ${i} track${n===1?"":"s"}.`:`${this.format._name} requires at least ${n} ${i} track${n===1?"":"s"}.`)}let t=e.total.min;if(this._tracks.length<t)throw new Error(t===e.total.max?`${this.format._name} requires exactly ${t} track${t===1?"":"s"}.`:`${this.format._name} requires at least ${t} track${t===1?"":"s"}.`);if(this.state==="canceled")throw new Error("Output has been canceled.");return this._startPromise?(console.warn("Output has already been started."),this._startPromise):this._startPromise=(async()=>{this.state="started",this._writer.start();let i=await this._mutex.acquire();await this._muxer.start();let s=this._tracks.map(n=>n.source._start());await Promise.all(s),i()})()}getMimeType(){return this._muxer.getMimeType()}async cancel(){if(this._cancelPromise)return console.warn("Output has already been canceled."),this._cancelPromise;if(this.state==="finalizing"||this.state==="finalized"){console.warn("Output has already been finalized.");return}return this._cancelPromise=(async()=>{this.state="canceled";let e=await this._mutex.acquire(),t=this._tracks.map(i=>i.source._flushOrWaitForClose());await Promise.all(t),await this._writer.close(),e()})()}async finalize(){if(this.state==="pending")throw new Error("Cannot finalize before starting.");if(this.state==="canceled")throw new Error("Cannot finalize after canceling.");return this._finalizePromise?(console.warn("Output has already been finalized."),this._finalizePromise):this._finalizePromise=(async()=>{this.state="finalizing";let e=await this._mutex.acquire(),t=this._tracks.map(i=>i.source._flushOrWaitForClose());await Promise.all(t),await this._muxer.finalize(),await this._writer.flush(),await this._writer.finalize(),this.state="finalized",e()})()}};var ts=class{constructor(){this._sizePromise=null,this.onread=null}getSize(){return this._sizePromise??=this._retrieveSize()}};var nc=class extends ts{constructor(e){if(!(e instanceof Blob))throw new TypeError("blob must be a Blob.");super(),this._blob=e}async _read(e,t){let s=await this._blob.slice(e,t).arrayBuffer();return new Uint8Array(s)}async _retrieveSize(){return this._blob.size}},oc=class extends ts{constructor(e,t={}){if(typeof e!="string"&&!(e instanceof URL))throw new TypeError("url must be a string or URL.");if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(t.requestInit!==void 0&&(!t.requestInit||typeof t.requestInit!="object"))throw new TypeError("options.requestInit, when provided, must be an object.");if(t.getRetryDelay!==void 0&&typeof t.getRetryDelay!="function")throw new TypeError("options.getRetryDelay, when provided, must be a function.");super(),this._fullData=null,this._url=e,this._options=t}async _makeRequest(e){let t={};e&&(t.Range=`bytes=${e.start}-${e.end-1}`);let i=await Hl(this._url,za(this._options.requestInit??{},{method:"GET",headers:t}),this._options.getRetryDelay??(()=>null));if(!i.ok)throw new Error(`Error fetching ${this._url}: ${i.status} ${i.statusText}`);let s=await i.arrayBuffer();return i.status===200&&(this._fullData=s),{response:s,statusCode:i.status}}async _read(e,t){if(this._fullData)return new Uint8Array(this._fullData,e,t-e);let{response:i,statusCode:s}=await this._makeRequest({start:e,end:t});return s===200?new Uint8Array(i).subarray(e,t):new Uint8Array(i)}async _retrieveSize(){if(this._fullData)return this._fullData.byteLength;try{let i=await Hl(this._url,za(this._options.requestInit??{},{method:"HEAD"}),this._options.getRetryDelay??(()=>null));if(i.ok){let s=i.headers.get("Content-Length");if(s)return parseInt(s)}}catch{}let e=await Hl(this._url,za(this._options.requestInit??{},{method:"GET",headers:{Range:"bytes=0-0"}}),this._options.getRetryDelay??(()=>null));if(e.status===206){let i=e.headers.get("Content-Range");if(i){let s=i.match(/bytes \d+-\d+\/(\d+)/);if(s&&s[1])return parseInt(s[1])}}else if(e.status===200)return this._fullData=await e.arrayBuffer(),this._fullData.byteLength;let{response:t}=await this._makeRequest();return t.byteLength}};var dh=class extends Bt{constructor(e){super(e),this.currentTrack=null,this.tracks=[],this.metadataPromise=null,this.movieTimescale=-1,this.movieDurationInTimescale=-1,this.isQuickTime=!1,this.isFragmented=!1,this.fragmentTrackDefaults=[],this.fragments=[],this.currentFragment=null,this.fragmentLookupMutex=new kt,this.metadataReader=new ji(e._mainReader),this.chunkReader=new ji(new Rt(e.source,64*2**20))}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.computeDuration()));return Math.max(0,...t)}async getTracks(){return await this.readMetadata(),this.tracks.map(e=>e.inputTrack)}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(t=>t.inputTrack.getCodecParameterString()));return nh({isQuickTime:this.isQuickTime,hasVideo:this.tracks.some(t=>t.info?.type==="video"),hasAudio:this.tracks.some(t=>t.info?.type==="audio"),codecStrings:e.filter(Boolean)})}readMetadata(){return this.metadataPromise??=(async()=>{let e=await this.metadataReader.reader.source.getSize();for(;this.metadataReader.pos<e;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+16);let t=this.metadataReader.pos,i=this.metadataReader.readBoxHeader();if(i.name==="ftyp"){let s=this.metadataReader.readAscii(4);this.isQuickTime=s==="qt "}else if(i.name==="moov"){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+i.contentSize),this.readContiguousBoxes(i.contentSize);for(let s of this.tracks){let n=s.editListPreviousSegmentDurations/this.movieTimescale;s.editListOffset-=Math.round(n*s.timescale)}break}this.metadataReader.pos=t+i.totalSize}if(this.isFragmented){await this.metadataReader.reader.loadRange(e-4,e),this.metadataReader.pos=e-4;let t=this.metadataReader.readU32(),i=e-t;if(i>=0&&i<e){await this.metadataReader.reader.loadRange(i,e),this.metadataReader.pos=i;let s=this.metadataReader.readBoxHeader();s.name==="mfra"&&this.readContiguousBoxes(s.contentSize)}}})()}getSampleTableForTrack(e){if(e.sampleTable)return e.sampleTable;let t={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};if(e.sampleTable=t,this.metadataReader.pos=e.sampleTableByteOffset,this.currentTrack=e,this.traverseBox(),this.currentTrack=null,e.info?.type==="audio"&&e.info.codec&&Ie.includes(e.info.codec)&&t.sampleCompositionTimeOffsets.length===0){w(e.info?.type==="audio");let s=Tt(e.info.codec),n=[],o=[];for(let a=0;a<t.sampleToChunk.length;a++){let c=t.sampleToChunk[a],u=t.sampleToChunk[a+1],l=(u?u.startChunkIndex:t.chunkOffsets.length)-c.startChunkIndex;for(let h=0;h<l;h++){let f=c.startSampleIndex+h*c.samplesPerChunk,d=f+c.samplesPerChunk,m=J(t.sampleTimingEntries,f,E=>E.startIndex),x=t.sampleTimingEntries[m],g=J(t.sampleTimingEntries,d,E=>E.startIndex),_=t.sampleTimingEntries[g],y=x.startDecodeTimestamp+(f-x.startIndex)*x.delta,T=_.startDecodeTimestamp+(d-_.startIndex)*_.delta-y,C=he(n);C&&C.delta===T?C.count++:n.push({startIndex:c.startChunkIndex+h,startDecodeTimestamp:y,count:1,delta:T});let v=c.samplesPerChunk*s.sampleSize*e.info.numberOfChannels;o.push(v)}c.startSampleIndex=c.startChunkIndex,c.samplesPerChunk=1}t.sampleTimingEntries=n,t.sampleSizes=o}if(t.sampleCompositionTimeOffsets.length>0){t.presentationTimestamps=[];for(let s of t.sampleTimingEntries)for(let n=0;n<s.count;n++)t.presentationTimestamps.push({presentationTimestamp:s.startDecodeTimestamp+n*s.delta,sampleIndex:s.startIndex+n});for(let s of t.sampleCompositionTimeOffsets)for(let n=0;n<s.count;n++){let o=s.startIndex+n,a=t.presentationTimestamps[o];a&&(a.presentationTimestamp+=s.offset)}t.presentationTimestamps.sort((s,n)=>s.presentationTimestamp-n.presentationTimestamp),t.presentationTimestampIndexMap=Array(t.presentationTimestamps.length).fill(-1);for(let s=0;s<t.presentationTimestamps.length;s++)t.presentationTimestampIndexMap[t.presentationTimestamps[s].sampleIndex]=s}return t}async readFragment(){let e=this.metadataReader.pos;await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+16);let t=this.metadataReader.readBoxHeader();w(t.name==="moof");let i=this.metadataReader.pos;await this.metadataReader.reader.loadRange(i,i+t.contentSize),this.metadataReader.pos=e,this.traverseBox();let s=Be(this.fragments,e,o=>o.moofOffset);w(s!==-1);let n=this.fragments[s];w(n.moofOffset===e),this.metadataReader.reader.forgetRange(i,i+t.contentSize);for(let[o,a]of n.trackData){if(a.startTimestampIsFinal)continue;let c=this.tracks.find(d=>d.id===o);this.metadataReader.pos=0;let u=null,l=null,h=J(c.fragments,e-1,d=>d.moofOffset);h!==-1&&(u=c.fragments[h],l=u,this.metadataReader.pos=u.moofOffset+u.moofSize);let f=this.metadataReader.pos===0;for(;this.metadataReader.pos<e;){if(u?.nextFragment)u=u.nextFragment,this.metadataReader.pos=u.moofOffset+u.moofSize;else{await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+16);let d=this.metadataReader.pos,m=this.metadataReader.readBoxHeader();if(m.name==="moof"){let x=Be(this.fragments,d,_=>_.moofOffset),g;x===-1?(this.metadataReader.pos=d,g=await this.readFragment()):g=this.fragments[x],u&&(u.nextFragment=g),u=g,f&&(g.isKnownToBeFirstFragment=!0,f=!1)}this.metadataReader.pos=d+m.totalSize}u&&u.trackData.has(o)&&(l=u)}if(l){let d=l.trackData.get(o);w(d.startTimestampIsFinal),PE(a,d.endTimestamp)}a.startTimestampIsFinal=!0}return n}readContiguousBoxes(e){let t=this.metadataReader.pos;for(;this.metadataReader.pos-t<=e-8;)this.traverseBox()}traverseBox(){let e=this.metadataReader.pos,t=this.metadataReader.readBoxHeader(),i=e+t.totalSize;switch(t.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":this.readContiguousBoxes(t.contentSize);break;case"mvhd":{let s=this.metadataReader.readU8();this.metadataReader.pos+=3,s===1?(this.metadataReader.pos+=16,this.movieTimescale=this.metadataReader.readU32(),this.movieDurationInTimescale=this.metadataReader.readU64()):(this.metadataReader.pos+=8,this.movieTimescale=this.metadataReader.readU32(),this.movieDurationInTimescale=this.metadataReader.readU32())}break;case"trak":{let s={id:-1,demuxer:this,inputTrack:null,info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,languageCode:mt,sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:null,currentFragmentState:null,fragments:[],fragmentsWithKeyFrame:[],editListPreviousSegmentDurations:0,editListOffset:0};if(this.currentTrack=s,this.readContiguousBoxes(t.contentSize),s.id!==-1&&s.timescale!==-1&&s.info!==null){if(s.info.type==="video"&&s.info.width!==-1){let n=s;s.inputTrack=new Ir(new ag(n)),this.tracks.push(s)}else if(s.info.type==="audio"&&s.info.numberOfChannels!==-1){let n=s;s.inputTrack=new nt(new cg(n)),this.tracks.push(s)}}this.currentTrack=null}break;case"tkhd":{let s=this.currentTrack;w(s);let n=this.metadataReader.readU8();if(!((this.metadataReader.readU24()&1)!==0))break;if(n===0)this.metadataReader.pos+=8,s.id=this.metadataReader.readU32(),this.metadataReader.pos+=4,s.durationInMovieTimescale=this.metadataReader.readU32();else if(n===1)this.metadataReader.pos+=16,s.id=this.metadataReader.readU32(),this.metadataReader.pos+=4,s.durationInMovieTimescale=this.metadataReader.readU64();else throw new Error(`Incorrect track header version ${n}.`);this.metadataReader.pos+=16;let c=[this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_2_30(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_2_30(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_2_30()],u=Gl(_C(aD(c),90));w(u===0||u===90||u===180||u===270),s.rotation=u}break;case"elst":{let s=this.currentTrack;w(s);let n=this.metadataReader.readU8();this.metadataReader.pos+=3;let o=!1,a=0,c=this.metadataReader.readU32();for(let u=0;u<c;u++){let l=n===1?this.metadataReader.readU64():this.metadataReader.readU32(),h=n===1?this.metadataReader.readI64():this.metadataReader.readI32(),f=this.metadataReader.readFixed_16_16();if(l!==0){if(o){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(h===-1){a+=l;continue}if(f!==1){console.warn("Unsupported edit list entry: media rate must be 1.");break}s.editListPreviousSegmentDurations=a,s.editListOffset=h,o=!0}}}break;case"mdhd":{let s=this.currentTrack;w(s);let n=this.metadataReader.readU8();this.metadataReader.pos+=3,n===0?(this.metadataReader.pos+=8,s.timescale=this.metadataReader.readU32(),s.durationInMediaTimescale=this.metadataReader.readU32()):n===1&&(this.metadataReader.pos+=16,s.timescale=this.metadataReader.readU32(),s.durationInMediaTimescale=this.metadataReader.readU64());let o=this.metadataReader.readU16();if(o>0){s.languageCode="";for(let a=0;a<3;a++)s.languageCode=String.fromCharCode(96+(o&31))+s.languageCode,o>>=5;ln(s.languageCode)||(s.languageCode=mt)}}break;case"hdlr":{let s=this.currentTrack;w(s),this.metadataReader.pos+=8;let n=this.metadataReader.readAscii(4);n==="vide"?s.info={type:"video",width:-1,height:-1,codec:null,codecDescription:null,colorSpace:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:n==="soun"&&(s.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case"stbl":{let s=this.currentTrack;w(s),s.sampleTableByteOffset=e,this.readContiguousBoxes(t.contentSize)}break;case"stsd":{let s=this.currentTrack;if(w(s),s.info===null||s.sampleTable)break;let n=this.metadataReader.readU8();this.metadataReader.pos+=3;let o=this.metadataReader.readU32();for(let a=0;a<o;a++){let c=this.metadataReader.pos,u=this.metadataReader.readBoxHeader(),l=u.name.toLowerCase();if(s.info.type==="video")l==="avc1"?s.info.codec="avc":l==="hvc1"||l==="hev1"?s.info.codec="hevc":l==="vp08"?s.info.codec="vp8":l==="vp09"?s.info.codec="vp9":l==="av01"?s.info.codec="av1":console.warn(`Unsupported video codec (sample entry type '${u.name}').`),this.metadataReader.pos+=24,s.info.width=this.metadataReader.readU16(),s.info.height=this.metadataReader.readU16(),this.metadataReader.pos+=50,this.readContiguousBoxes(c+u.totalSize-this.metadataReader.pos);else{l==="mp4a"||(l==="opus"?s.info.codec="opus":l==="flac"?s.info.codec="flac":l==="twos"||l==="sowt"||l==="raw "||l==="in24"||l==="in32"||l==="fl32"||l==="fl64"||l==="lpcm"||l==="ipcm"||l==="fpcm"||(l==="ulaw"?s.info.codec="ulaw":l==="alaw"?s.info.codec="alaw":console.warn(`Unsupported audio codec (sample entry type '${u.name}').`))),this.metadataReader.pos+=8;let h=this.metadataReader.readU16();this.metadataReader.pos+=6;let f=this.metadataReader.readU16(),d=this.metadataReader.readU16();this.metadataReader.pos+=4;let m=this.metadataReader.readU32()/65536;if(n===0&&h>0){if(h===1)this.metadataReader.pos+=4,d=8*this.metadataReader.readU32(),this.metadataReader.pos+=8;else if(h===2){this.metadataReader.pos+=4,m=this.metadataReader.readF64(),f=this.metadataReader.readU32(),this.metadataReader.pos+=4,d=this.metadataReader.readU32();let x=this.metadataReader.readU32();if(this.metadataReader.pos+=8,l==="lpcm"){let g=d+7>>3,_=!!(x&1),y=!!(x&2),S=x&4?-1:0;d>0&&d<=64&&(_?d===32&&(s.info.codec=y?"pcm-f32be":"pcm-f32"):S&1<<g-1?g===1?s.info.codec="pcm-s8":g===2?s.info.codec=y?"pcm-s16be":"pcm-s16":g===3?s.info.codec=y?"pcm-s24be":"pcm-s24":g===4&&(s.info.codec=y?"pcm-s32be":"pcm-s32"):g===1&&(s.info.codec="pcm-u8")),s.info.codec===null&&console.warn("Unsupported PCM format.")}}}s.info.numberOfChannels=f,s.info.sampleRate=m,l==="twos"?d===8?s.info.codec="pcm-s8":d===16?s.info.codec="pcm-s16be":(console.warn(`Unsupported sample size ${d} for codec 'twos'.`),s.info.codec=null):l==="sowt"?d===8?s.info.codec="pcm-s8":d===16?s.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${d} for codec 'sowt'.`),s.info.codec=null):l==="raw "?s.info.codec="pcm-u8":l==="in24"?s.info.codec="pcm-s24be":l==="in32"?s.info.codec="pcm-s32be":l==="fl32"?s.info.codec="pcm-f32be":l==="fl64"?s.info.codec="pcm-f64be":l==="ipcm"?s.info.codec="pcm-s16be":l==="fpcm"&&(s.info.codec="pcm-f32be"),this.readContiguousBoxes(c+u.totalSize-this.metadataReader.pos)}}}break;case"avcC":{let s=this.currentTrack;w(s&&s.info),s.info.codecDescription=this.metadataReader.readBytes(t.contentSize)}break;case"hvcC":{let s=this.currentTrack;w(s&&s.info),s.info.codecDescription=this.metadataReader.readBytes(t.contentSize)}break;case"vpcC":{let s=this.currentTrack;w(s&&s.info?.type==="video"),this.metadataReader.pos+=4;let n=this.metadataReader.readU8(),o=this.metadataReader.readU8(),a=this.metadataReader.readU8(),c=a>>4,u=a>>1&7,l=a&1,h=this.metadataReader.readU8(),f=this.metadataReader.readU8(),d=this.metadataReader.readU8();s.info.vp9CodecInfo={profile:n,level:o,bitDepth:c,chromaSubsampling:u,videoFullRangeFlag:l,colourPrimaries:h,transferCharacteristics:f,matrixCoefficients:d}}break;case"av1C":{let s=this.currentTrack;w(s&&s.info?.type==="video"),this.metadataReader.pos+=1;let n=this.metadataReader.readU8(),o=n>>5,a=n&31,c=this.metadataReader.readU8(),u=c>>7,l=c>>6&1,h=c>>5&1,f=c>>4&1,d=c>>3&1,m=c>>2&1,x=c&3,g=o==2&&l?h?12:10:l?10:8;s.info.av1CodecInfo={profile:o,level:a,tier:u,bitDepth:g,monochrome:f,chromaSubsamplingX:d,chromaSubsamplingY:m,chromaSamplePosition:x}}break;case"colr":{let s=this.currentTrack;if(w(s&&s.info?.type==="video"),this.metadataReader.readAscii(4)!=="nclx")break;let o=this.metadataReader.readU16(),a=this.metadataReader.readU16(),c=this.metadataReader.readU16(),u=!!(this.metadataReader.readU8()&128);s.info.colorSpace={primaries:Nl[o],transfer:Ll[a],matrix:zl[c],fullRange:u}}break;case"wave":this.readContiguousBoxes(t.contentSize);break;case"esds":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=4;let n=this.metadataReader.readU8();w(n===3),this.metadataReader.readIsomVariableInteger(),this.metadataReader.pos+=2;let o=this.metadataReader.readU8(),a=(o&128)!==0,c=(o&64)!==0,u=(o&32)!==0;if(a&&(this.metadataReader.pos+=2),c){let m=this.metadataReader.readU8();this.metadataReader.pos+=m}u&&(this.metadataReader.pos+=2);let l=this.metadataReader.readU8();w(l===4);let h=this.metadataReader.readIsomVariableInteger(),f=this.metadataReader.pos,d=this.metadataReader.readU8();if(d===64||d===103?(s.info.codec="aac",s.info.aacCodecInfo={isMpeg2:d===103}):d===105||d===107?s.info.codec="mp3":d===221?s.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${d}) - discarding track.`),this.metadataReader.pos+=12,h>this.metadataReader.pos-f){let m=this.metadataReader.readU8();w(m===5);let x=this.metadataReader.readIsomVariableInteger();if(s.info.codecDescription=this.metadataReader.readBytes(x),s.info.codec==="aac"){let g=Lp(s.info.codecDescription);g.numberOfChannels!==null&&(s.info.numberOfChannels=g.numberOfChannels),g.sampleRate!==null&&(s.info.sampleRate=g.sampleRate)}}}break;case"enda":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.readU16()&255&&(s.info.codec==="pcm-s16be"?s.info.codec="pcm-s16":s.info.codec==="pcm-s24be"?s.info.codec="pcm-s24":s.info.codec==="pcm-s32be"?s.info.codec="pcm-s32":s.info.codec==="pcm-f32be"?s.info.codec="pcm-f32":s.info.codec==="pcm-f64be"&&(s.info.codec="pcm-f64"))}break;case"pcmC":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=4;let o=!!(this.metadataReader.readU8()&1),a=this.metadataReader.readU8();s.info.codec==="pcm-s16be"?o?a===16?s.info.codec="pcm-s16":a===24?s.info.codec="pcm-s24":a===32?s.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${a}.`),s.info.codec=null):a===16?s.info.codec="pcm-s16be":a===24?s.info.codec="pcm-s24be":a===32?s.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${a}.`),s.info.codec=null):s.info.codec==="pcm-f32be"&&(o?a===32?s.info.codec="pcm-f32":a===64?s.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${a}.`),s.info.codec=null):a===32?s.info.codec="pcm-f32be":a===64?s.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${a}.`),s.info.codec=null));break}case"dOps":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=1;let n=this.metadataReader.readU8(),o=this.metadataReader.readU16(),a=this.metadataReader.readU32(),c=this.metadataReader.readI16(),u=this.metadataReader.readU8(),l;u!==0?l=this.metadataReader.readBytes(2+n):l=new Uint8Array(0);let h=new Uint8Array(19+l.byteLength),f=new DataView(h.buffer);f.setUint32(0,1332770163,!1),f.setUint32(4,1214603620,!1),f.setUint8(8,1),f.setUint8(9,n),f.setUint16(10,o,!0),f.setUint32(12,a,!0),f.setInt16(16,c,!0),f.setUint8(18,u),h.set(l,19),s.info.codecDescription=h,s.info.numberOfChannels=n,s.info.sampleRate=a}break;case"dfLa":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=4;let n=127,o=128,a=this.metadataReader.pos;for(;this.metadataReader.pos<i;){let f=this.metadataReader.readU8(),d=this.metadataReader.readU24();if((f&n)===0){this.metadataReader.pos+=10;let x=this.metadataReader.readU32(),g=x>>>12,_=(x>>9&7)+1;s.info.sampleRate=g,s.info.numberOfChannels=_,this.metadataReader.pos+=20}else this.metadataReader.pos+=d;if(f&o)break}let c=this.metadataReader.pos;this.metadataReader.pos=a;let u=this.metadataReader.readBytes(c-a),l=new Uint8Array(4+u.byteLength);new DataView(l.buffer).setUint32(0,1716281667,!1),l.set(u,4),s.info.codecDescription=l}break;case"stts":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32(),o=0,a=0;for(let c=0;c<n;c++){let u=this.metadataReader.readU32(),l=this.metadataReader.readU32();s.sampleTable.sampleTimingEntries.push({startIndex:o,startDecodeTimestamp:a,count:u,delta:l}),o+=u,a+=u*l}}break;case"ctts":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32(),o=0;for(let a=0;a<n;a++){let c=this.metadataReader.readU32(),u=this.metadataReader.readI32();s.sampleTable.sampleCompositionTimeOffsets.push({startIndex:o,count:c,offset:u}),o+=c}}break;case"stsz":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32(),o=this.metadataReader.readU32();if(n===0)for(let a=0;a<o;a++){let c=this.metadataReader.readU32();s.sampleTable.sampleSizes.push(c)}else s.sampleTable.sampleSizes.push(n)}break;case"stz2":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4,this.metadataReader.pos+=3;let n=this.metadataReader.readU8(),o=this.metadataReader.readU32(),a=this.metadataReader.readBytes(Math.ceil(o*n/8)),c=new $e(a);for(let u=0;u<o;u++){let l=c.readBits(n);s.sampleTable.sampleSizes.push(l)}}break;case"stss":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4,s.sampleTable.keySampleIndices=[];let n=this.metadataReader.readU32();for(let o=0;o<n;o++){let a=this.metadataReader.readU32()-1;s.sampleTable.keySampleIndices.push(a)}}break;case"stsc":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32();for(let a=0;a<n;a++){let c=this.metadataReader.readU32()-1,u=this.metadataReader.readU32(),l=this.metadataReader.readU32();s.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:c,samplesPerChunk:u,sampleDescriptionIndex:l})}let o=0;for(let a=0;a<s.sampleTable.sampleToChunk.length;a++)if(s.sampleTable.sampleToChunk[a].startSampleIndex=o,a<s.sampleTable.sampleToChunk.length-1){let u=s.sampleTable.sampleToChunk[a+1].startChunkIndex-s.sampleTable.sampleToChunk[a].startChunkIndex;o+=u*s.sampleTable.sampleToChunk[a].samplesPerChunk}}break;case"stco":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32();for(let o=0;o<n;o++){let a=this.metadataReader.readU32();s.sampleTable.chunkOffsets.push(a)}}break;case"co64":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32();for(let o=0;o<n;o++){let a=this.metadataReader.readU64();s.sampleTable.chunkOffsets.push(a)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(t.contentSize);break;case"mehd":{let s=this.metadataReader.readU8();this.metadataReader.pos+=3;let n=s===1?this.metadataReader.readU64():this.metadataReader.readU32();this.movieDurationInTimescale=n}break;case"trex":{this.metadataReader.pos+=4;let s=this.metadataReader.readU32(),n=this.metadataReader.readU32(),o=this.metadataReader.readU32(),a=this.metadataReader.readU32(),c=this.metadataReader.readU32();this.fragmentTrackDefaults.push({trackId:s,defaultSampleDescriptionIndex:n,defaultSampleDuration:o,defaultSampleSize:a,defaultSampleFlags:c})}break;case"tfra":{let s=this.metadataReader.readU8();this.metadataReader.pos+=3;let n=this.metadataReader.readU32(),o=this.tracks.find(_=>_.id===n);if(!o)break;o.fragmentLookupTable=[];let a=this.metadataReader.readU32(),c=(a&48)>>4,u=(a&12)>>2,l=a&3,h=this.metadataReader,f=[h.readU8.bind(h),h.readU16.bind(h),h.readU24.bind(h),h.readU32.bind(h)],d=f[c],m=f[u],x=f[l],g=this.metadataReader.readU32();for(let _=0;_<g;_++){let y=s===1?this.metadataReader.readU64():this.metadataReader.readU32(),S=s===1?this.metadataReader.readU64():this.metadataReader.readU32(),T=d(),C=m(),v=x();o.fragmentLookupTable.push({timestamp:y,moofOffset:S})}}break;case"moof":{this.currentFragment={moofOffset:e,moofSize:t.totalSize,implicitBaseDataOffset:e,trackData:new Map,dataStart:1/0,dataEnd:0,nextFragment:null,isKnownToBeFirstFragment:!1},this.readContiguousBoxes(t.contentSize);let s=J(this.fragments,this.currentFragment.moofOffset,n=>n.moofOffset);this.fragments.splice(s+1,0,this.currentFragment);for(let[,n]of this.currentFragment.trackData){let o=n.samples[0],a=he(n.samples);this.currentFragment.dataStart=Math.min(this.currentFragment.dataStart,o.byteOffset),this.currentFragment.dataEnd=Math.max(this.currentFragment.dataEnd,a.byteOffset+a.byteSize)}this.currentFragment=null}break;case"traf":if(w(this.currentFragment),this.readContiguousBoxes(t.contentSize),this.currentTrack){let s=this.currentFragment.trackData.get(this.currentTrack.id);if(s){let n=J(this.currentTrack.fragments,this.currentFragment.moofOffset,c=>c.moofOffset);if(this.currentTrack.fragments.splice(n+1,0,this.currentFragment),s.firstKeyFrameTimestamp!==null){let c=J(this.currentTrack.fragmentsWithKeyFrame,this.currentFragment.moofOffset,u=>u.moofOffset);this.currentTrack.fragmentsWithKeyFrame.splice(c+1,0,this.currentFragment)}let{currentFragmentState:a}=this.currentTrack;w(a),a.startTimestamp!==null&&(PE(s,a.startTimestamp),s.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{w(this.currentFragment),this.metadataReader.pos+=1;let s=this.metadataReader.readU24(),n=!!(s&1),o=!!(s&2),a=!!(s&8),c=!!(s&16),u=!!(s&32),l=!!(s&65536),h=!!(s&131072),f=this.metadataReader.readU32(),d=this.tracks.find(x=>x.id===f);if(!d)break;let m=this.fragmentTrackDefaults.find(x=>x.trackId===f);this.currentTrack=d,d.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:m?.defaultSampleDescriptionIndex??null,defaultSampleDuration:m?.defaultSampleDuration??null,defaultSampleSize:m?.defaultSampleSize??null,defaultSampleFlags:m?.defaultSampleFlags??null,startTimestamp:null},n?d.currentFragmentState.baseDataOffset=this.metadataReader.readU64():h&&(d.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),o&&(d.currentFragmentState.sampleDescriptionIndex=this.metadataReader.readU32()),a&&(d.currentFragmentState.defaultSampleDuration=this.metadataReader.readU32()),c&&(d.currentFragmentState.defaultSampleSize=this.metadataReader.readU32()),u&&(d.currentFragmentState.defaultSampleFlags=this.metadataReader.readU32()),l&&(d.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{let s=this.currentTrack;if(!s)break;w(s.currentFragmentState);let n=this.metadataReader.readU8();this.metadataReader.pos+=3;let o=n===0?this.metadataReader.readU32():this.metadataReader.readU64();s.currentFragmentState.startTimestamp=o}break;case"trun":{let s=this.currentTrack;if(!s)break;if(w(this.currentFragment),w(s.currentFragmentState),this.currentFragment.trackData.has(s.id)){console.warn("Can't have two trun boxes for the same track in one fragment. Ignoring...");break}let n=this.metadataReader.readU8(),o=this.metadataReader.readU24(),a=!!(o&1),c=!!(o&4),u=!!(o&256),l=!!(o&512),h=!!(o&1024),f=!!(o&2048),d=this.metadataReader.readU32(),m=s.currentFragmentState.baseDataOffset;a&&(m+=this.metadataReader.readI32());let x=null;c&&(x=this.metadataReader.readU32());let g=m;if(d===0){this.currentFragment.implicitBaseDataOffset=g;break}let _=0,y={startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1};this.currentFragment.trackData.set(s.id,y);for(let C=0;C<d;C++){let v;u?v=this.metadataReader.readU32():(w(s.currentFragmentState.defaultSampleDuration!==null),v=s.currentFragmentState.defaultSampleDuration);let E;l?E=this.metadataReader.readU32():(w(s.currentFragmentState.defaultSampleSize!==null),E=s.currentFragmentState.defaultSampleSize);let M;h?M=this.metadataReader.readU32():(w(s.currentFragmentState.defaultSampleFlags!==null),M=s.currentFragmentState.defaultSampleFlags),C===0&&x!==null&&(M=x);let A=0;f&&(n===0?A=this.metadataReader.readU32():A=this.metadataReader.readI32());let B=!(M&65536);y.samples.push({presentationTimestamp:_+A,duration:v,byteOffset:g,byteSize:E,isKeyFrame:B}),g+=E,_+=v}y.presentationTimestamps=y.samples.map((C,v)=>({presentationTimestamp:C.presentationTimestamp,sampleIndex:v})).sort((C,v)=>C.presentationTimestamp-v.presentationTimestamp);for(let C=0;C<y.presentationTimestamps.length;C++){let v=y.presentationTimestamps[C],E=y.samples[v.sampleIndex];if(y.firstKeyFrameTimestamp===null&&E.isKeyFrame&&(y.firstKeyFrameTimestamp=E.presentationTimestamp),C<y.presentationTimestamps.length-1){let M=y.presentationTimestamps[C+1];E.duration=M.presentationTimestamp-v.presentationTimestamp}}let S=y.samples[y.presentationTimestamps[0].sampleIndex],T=y.samples[he(y.presentationTimestamps).sampleIndex];y.startTimestamp=S.presentationTimestamp,y.endTimestamp=T.presentationTimestamp+T.duration,this.currentFragment.implicitBaseDataOffset=g}break}this.metadataReader.pos=i}},fh=class{constructor(e){this.internalTrack=e,this.packetToSampleIndex=new WeakMap,this.packetToFragmentLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}getLanguageCode(){return this.internalTrack.languageCode}getTimeResolution(){return this.internalTrack.timescale}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}async getFirstTimestamp(){return(await this.getFirstPacket({metadataOnly:!0}))?.timestamp??0}async getFirstPacket(e){let t=await this.fetchPacketForSampleIndex(0,e);return t||!this.internalTrack.demuxer.isFragmented?t:this.performFragmentedLookup(()=>{let i=this.internalTrack.demuxer.fragments[0]??null;if(i?.isKnownToBeFirstFragment){let s=i;for(;s;){if(s.trackData.get(this.internalTrack.id))return{fragmentIndex:Be(this.internalTrack.fragments,s.moofOffset,o=>o.moofOffset),sampleIndex:0,correctSampleFound:!0};s=s.nextFragment}}return{fragmentIndex:-1,sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,e)}mapTimestampIntoTimescale(e){return un(e*this.internalTrack.timescale,14)+this.internalTrack.editListOffset}async getPacket(e,t){let i=this.mapTimestampIntoTimescale(e),s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=AE(s,i),o=await this.fetchPacketForSampleIndex(n,t);return!BE(s)||!this.internalTrack.demuxer.isFragmented?o:this.performFragmentedLookup(()=>this.findSampleInFragmentsForTimestamp(i),i,i,t)}async getNextPacket(e,t){let i=this.packetToSampleIndex.get(e);if(i!==void 0)return this.fetchPacketForSampleIndex(i+1,t);let s=this.packetToFragmentLocation.get(e);if(s===void 0)throw new Error("Packet was not created from this track.");let n=s.fragment.trackData.get(this.internalTrack.id),o=n.samples[s.sampleIndex],a=Be(this.internalTrack.fragments,s.fragment.moofOffset,c=>c.moofOffset);return w(a!==-1),this.performFragmentedLookup(()=>{if(s.sampleIndex+1<n.samples.length)return{fragmentIndex:a,sampleIndex:s.sampleIndex+1,correctSampleFound:!0};{let c=s.fragment;for(;c.nextFragment;)if(c=c.nextFragment,c.trackData.get(this.internalTrack.id)){let l=Be(this.internalTrack.fragments,c.moofOffset,h=>h.moofOffset);return w(l!==-1),{fragmentIndex:l,sampleIndex:0,correctSampleFound:!0}}return{fragmentIndex:a,sampleIndex:-1,correctSampleFound:!1}}},o.presentationTimestamp,1/0,t)}async getKeyPacket(e,t){let i=this.mapTimestampIntoTimescale(e),s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=AE(s,i),o=n===-1?-1:nD(s,n),a=await this.fetchPacketForSampleIndex(o,t);return!BE(s)||!this.internalTrack.demuxer.isFragmented?a:this.performFragmentedLookup(()=>this.findKeySampleInFragmentsForTimestamp(i),i,i,t)}async getNextKeyPacket(e,t){let i=this.packetToSampleIndex.get(e);if(i!==void 0){let c=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),u=oD(c,i);return this.fetchPacketForSampleIndex(u,t)}let s=this.packetToFragmentLocation.get(e);if(s===void 0)throw new Error("Packet was not created from this track.");let n=s.fragment.trackData.get(this.internalTrack.id),o=n.samples[s.sampleIndex],a=Be(this.internalTrack.fragments,s.fragment.moofOffset,c=>c.moofOffset);return w(a!==-1),this.performFragmentedLookup(()=>{let c=n.samples.findIndex((u,l)=>u.isKeyFrame&&l>s.sampleIndex);if(c!==-1)return{fragmentIndex:a,sampleIndex:c,correctSampleFound:!0};{let u=s.fragment;for(;u.nextFragment;){u=u.nextFragment;let l=u.trackData.get(this.internalTrack.id);if(l&&l.firstKeyFrameTimestamp!==null){let h=Be(this.internalTrack.fragments,u.moofOffset,d=>d.moofOffset);w(h!==-1);let f=l.samples.findIndex(d=>d.isKeyFrame);return w(f!==-1),{fragmentIndex:h,sampleIndex:f,correctSampleFound:!0}}}return{fragmentIndex:a,sampleIndex:-1,correctSampleFound:!1}}},o.presentationTimestamp,1/0,t)}async fetchPacketForSampleIndex(e,t){if(e===-1)return null;let i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),s=sD(i,e);if(!s)return null;let n;t.metadataOnly?n=pt:(await this.internalTrack.demuxer.chunkReader.reader.loadRange(s.chunkOffset,s.chunkOffset+s.chunkSize),this.internalTrack.demuxer.chunkReader.pos=s.sampleOffset,n=this.internalTrack.demuxer.chunkReader.readBytes(s.sampleSize));let o=(s.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,a=s.duration/this.internalTrack.timescale,c=new de(n,s.isKeyFrame?"key":"delta",o,a,e,s.sampleSize);return this.packetToSampleIndex.set(c,e),c}async fetchPacketInFragment(e,t,i){if(t===-1)return null;let n=e.trackData.get(this.internalTrack.id).samples[t];w(n);let o;i.metadataOnly?o=pt:(await this.internalTrack.demuxer.chunkReader.reader.loadRange(e.dataStart,e.dataEnd),this.internalTrack.demuxer.chunkReader.pos=n.byteOffset,o=this.internalTrack.demuxer.chunkReader.readBytes(n.byteSize));let a=(n.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,c=n.duration/this.internalTrack.timescale,u=new de(o,n.isKeyFrame?"key":"delta",a,c,e.moofOffset+t,n.byteSize);return this.packetToFragmentLocation.set(u,{fragment:e,sampleIndex:t}),u}findSampleInFragmentsForTimestamp(e){let t=J(this.internalTrack.fragments,e,n=>n.trackData.get(this.internalTrack.id).startTimestamp),i=-1,s=!1;if(t!==-1){let o=this.internalTrack.fragments[t].trackData.get(this.internalTrack.id),a=J(o.presentationTimestamps,e,c=>c.presentationTimestamp);w(a!==-1),i=o.presentationTimestamps[a].sampleIndex,s=e<o.endTimestamp}return{fragmentIndex:t,sampleIndex:i,correctSampleFound:s}}findKeySampleInFragmentsForTimestamp(e){let t=J(this.internalTrack.fragmentsWithKeyFrame,e,o=>o.trackData.get(this.internalTrack.id).startTimestamp),i=-1,s=-1,n=!1;if(t!==-1){let o=this.internalTrack.fragmentsWithKeyFrame[t];i=Be(this.internalTrack.fragments,o.moofOffset,l=>l.moofOffset),w(i!==-1);let a=o.trackData.get(this.internalTrack.id),c=Vl(a.presentationTimestamps,l=>a.samples[l.sampleIndex].isKeyFrame&&l.presentationTimestamp<=e);w(c!==-1),s=a.presentationTimestamps[c].sampleIndex,n=e<a.endTimestamp}return{fragmentIndex:i,sampleIndex:s,correctSampleFound:n}}async performFragmentedLookup(e,t,i,s){let n=this.internalTrack.demuxer,o=await n.fragmentLookupMutex.acquire();try{let{fragmentIndex:a,sampleIndex:c,correctSampleFound:u}=e();if(u){let T=this.internalTrack.fragments[a];return this.fetchPacketInFragment(T,c,s)}let l=n.metadataReader,h=await l.reader.source.getSize(),f=null,d=a,m=c,x=this.internalTrack.fragmentLookupTable?J(this.internalTrack.fragmentLookupTable,t,T=>T.timestamp):-1,g=x!==-1?this.internalTrack.fragmentLookupTable[x]:null,_=!1;if(a===-1)l.pos=g?.moofOffset??0,_=l.pos===0;else{let T=this.internalTrack.fragments[a];!g||T.moofOffset>=g.moofOffset?(l.pos=T.moofOffset+T.moofSize,f=T):l.pos=g.moofOffset}for(;l.pos<h;){if(f){let v=f.trackData.get(this.internalTrack.id);if(v&&v.startTimestamp>i)break;if(f.nextFragment){l.pos=f.nextFragment.moofOffset+f.nextFragment.moofSize,f=f.nextFragment;continue}}await l.reader.loadRange(l.pos,l.pos+16);let T=l.pos,C=l.readBoxHeader();if(C.name==="moof"){let v=Be(n.fragments,T,k=>k.moofOffset),E;v===-1?(l.pos=T,E=await n.readFragment()):E=n.fragments[v],f&&(f.nextFragment=E),f=E,_&&(E.isKnownToBeFirstFragment=!0,_=!1);let{fragmentIndex:M,sampleIndex:A,correctSampleFound:B}=e();if(B){let k=this.internalTrack.fragments[M];return this.fetchPacketInFragment(k,A,s)}M!==-1&&(d=M,m=A)}l.pos=T+C.totalSize}let y=null,S=d!==-1?this.internalTrack.fragments[d]:null;if(S&&(y=await this.fetchPacketInFragment(S,m,s)),!y&&g&&(!S||S.moofOffset<g.moofOffset)){let C=this.internalTrack.fragmentLookupTable[x-1]?.timestamp??-1/0;return this.performFragmentedLookup(e,C,i,s)}return y}finally{o()}}},ag=class extends fh{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{if(this.internalTrack.info.codec==="vp9"&&!this.internalTrack.info.vp9CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=e&&Ql(e.data)}else if(this.internalTrack.info.codec==="av1"&&!this.internalTrack.info.av1CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=e&&Zl(e.data)}return{codec:ql(this.internalTrack.info),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}},cg=class extends fh{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:jl(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},AE=(r,e)=>{if(r.presentationTimestamps){let t=J(r.presentationTimestamps,e,i=>i.presentationTimestamp);return t===-1?-1:r.presentationTimestamps[t].sampleIndex}else{let t=J(r.sampleTimingEntries,e,s=>s.startDecodeTimestamp);if(t===-1)return-1;let i=r.sampleTimingEntries[t];return i.startIndex+Math.min(Math.floor((e-i.startDecodeTimestamp)/i.delta),i.count-1)}},sD=(r,e)=>{let t=J(r.sampleTimingEntries,e,_=>_.startIndex),i=r.sampleTimingEntries[t];if(!i||i.startIndex+i.count<=e)return null;let n=i.startDecodeTimestamp+(e-i.startIndex)*i.delta,o=J(r.sampleCompositionTimeOffsets,e,_=>_.startIndex),a=r.sampleCompositionTimeOffsets[o];a&&e-a.startIndex<a.count&&(n+=a.offset);let c=r.sampleSizes[Math.min(e,r.sampleSizes.length-1)],u=J(r.sampleToChunk,e,_=>_.startSampleIndex),l=r.sampleToChunk[u];w(l);let h=l.startChunkIndex+Math.floor((e-l.startSampleIndex)/l.samplesPerChunk),f=r.chunkOffsets[h],d=l.startSampleIndex+(h-l.startChunkIndex)*l.samplesPerChunk,m=0,x=f;if(r.sampleSizes.length===1)x+=c*(e-d),m+=c*l.samplesPerChunk;else for(let _=d;_<d+l.samplesPerChunk;_++){let y=r.sampleSizes[_];_<e&&(x+=y),m+=y}let g=i.delta;if(r.presentationTimestamps){let _=r.presentationTimestampIndexMap[e];w(_!==void 0),_<r.presentationTimestamps.length-1&&(g=r.presentationTimestamps[_+1].presentationTimestamp-n)}return{presentationTimestamp:n,duration:g,sampleOffset:x,sampleSize:c,chunkOffset:f,chunkSize:m,isKeyFrame:r.keySampleIndices?Be(r.keySampleIndices,e,_=>_)!==-1:!0}},nD=(r,e)=>{if(!r.keySampleIndices)return e;let t=J(r.keySampleIndices,e,i=>i);return r.keySampleIndices[t]??-1},oD=(r,e)=>{if(!r.keySampleIndices)return e+1;let t=J(r.keySampleIndices,e,i=>i);return r.keySampleIndices[t+1]??-1},PE=(r,e)=>{r.startTimestamp+=e,r.endTimestamp+=e;for(let t of r.samples)t.presentationTimestamp+=e;for(let t of r.presentationTimestamps)t.presentationTimestamp+=e},aD=r=>{let[e,,,t]=r,i=Math.hypot(e,t),s=e/i,n=t/i;return-Math.atan2(n,s)*(180/Math.PI)},BE=r=>r.sampleSizes.length===0;var ug=[{id:I.SeekHead,flag:"seekHeadSeen"},{id:I.Info,flag:"infoSeen"},{id:I.Tracks,flag:"tracksSeen"},{id:I.Cues,flag:"cuesSeen"}],mh=class extends Bt{constructor(e){super(e),this.readMetadataPromise=null,this.segments=[],this.currentSegment=null,this.currentTrack=null,this.currentCluster=null,this.currentBlock=null,this.currentCueTime=null,this.isWebM=!1,this.metadataReader=new Yi(e._mainReader),this.clusterReader=new Yi(new Rt(e.source,64*2**20))}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.computeDuration()));return Math.max(0,...t)}async getTracks(){return await this.readMetadata(),this.segments.flatMap(e=>e.tracks.map(t=>t.inputTrack))}async getMimeType(){await this.readMetadata();let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.getCodecParameterString()));return dE({isWebM:this.isWebM,hasVideo:this.segments.some(i=>i.tracks.some(s=>s.info?.type==="video")),hasAudio:this.segments.some(i=>i.tracks.some(s=>s.info?.type==="audio")),codecStrings:t.filter(Boolean)})}readMetadata(){return this.readMetadataPromise??=(async()=>{this.metadataReader.pos=0;let e=await this.input.source.getSize();for(;this.metadataReader.pos<=e-uh;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+Xi);let t=this.metadataReader.readElementHeader(),i=t.id,s=t.size,n=this.metadataReader.pos;if(i===I.EBML)Ki(s),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+s),this.readContiguousElements(this.metadataReader,s);else if(i===I.Segment){if(await this.readSegment(s),s===null)break}else if(i===I.Cluster){s===null&&(s=(await this.clusterReader.searchForNextElementId(ch,e)??e)-n);let o=he(this.segments);o&&(o.elementEndPos=n+s)}Ki(s),this.metadataReader.pos=n+s}})()}async readSegment(e){let t=this.metadataReader.pos;this.currentSegment={seekHeadSeen:!1,infoSeen:!1,tracksSeen:!1,cuesSeen:!1,timestampScale:-1,timestampFactor:-1,duration:-1,seekEntries:[],tracks:[],cuePoints:[],dataStartPos:t,elementEndPos:e===null?await this.input.source.getSize():t+e,clusterSeekStartPos:t,clusters:[],clusterLookupMutex:new kt},this.segments.push(this.currentSegment),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+2**14);let i=!1;for(;this.metadataReader.pos<this.currentSegment.elementEndPos;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+Xi);let c=this.metadataReader.pos,{id:u,size:l}=this.metadataReader.readElementHeader(),h=this.metadataReader.pos,f=ug.findIndex(d=>d.id===u);if(f!==-1){let d=ug[f].flag;this.currentSegment[d]=!0,Ki(l),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+l),this.readContiguousElements(this.metadataReader,l)}else u===I.Cluster&&(i||(i=!0,this.currentSegment.clusterSeekStartPos=c));if(this.currentSegment.infoSeen&&this.currentSegment.tracksSeen&&this.currentSegment.cuesSeen)break;if(this.currentSegment.seekHeadSeen){let d=this.currentSegment.infoSeen,m=this.currentSegment.tracksSeen,x=this.currentSegment.cuesSeen;for(let g of this.currentSegment.seekEntries)g.id===I.Info?d=!0:g.id===I.Tracks?m=!0:g.id===I.Cues&&(x=!0);if(d&&m&&x)break}if(l===null)break;this.metadataReader.pos=h+l,i||(this.currentSegment.clusterSeekStartPos=this.metadataReader.pos)}for(let c of ug){if(this.currentSegment[c.flag])continue;let u=this.currentSegment.seekEntries.find(f=>f.id===c.id);if(!u)continue;this.metadataReader.pos=t+u.segmentPosition,await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+2**12);let{id:l,size:h}=this.metadataReader.readElementHeader();l===c.id&&(Ki(h),this.currentSegment[c.flag]=!0,await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+h),this.readContiguousElements(this.metadataReader,h))}this.currentSegment.timestampScale===-1&&(this.currentSegment.timestampScale=1e6,this.currentSegment.timestampFactor=1e9/1e6),this.currentSegment.tracks.sort((c,u)=>Number(u.isDefault)-Number(c.isDefault)),this.currentSegment.cuePoints.sort((c,u)=>c.clusterPosition-u.clusterPosition);let s=this.currentSegment.tracks.map(c=>c.id),n=new Set,o=null,a=null;for(let c of this.currentSegment.cuePoints){if(c.clusterPosition!==o){for(let l of n)w(a),this.currentSegment.tracks.find(f=>f.id===l).cuePoints.push(a);for(let l of s)n.add(l)}if(a=c,!n.has(c.trackId))continue;this.currentSegment.tracks.find(l=>l.id===c.trackId).cuePoints.push(c),n.delete(c.trackId),o=c.clusterPosition}for(let c of n)w(a),this.currentSegment.tracks.find(l=>l.id===c).cuePoints.push(a);for(let c of this.currentSegment.tracks)c.cuePoints.sort((u,l)=>u.time-l.time);this.currentSegment=null}async readCluster(e){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+Xi);let t=this.metadataReader.pos,i=this.metadataReader.readElementHeader(),s=i.id,n=i.size,o=this.metadataReader.pos;n===null&&(this.clusterReader.pos=o,n=(await this.clusterReader.searchForNextElementId(ch,e.elementEndPos)??e.elementEndPos)-o),w(s===I.Cluster),this.clusterReader.pos=o,await this.clusterReader.reader.loadRange(this.clusterReader.pos,this.clusterReader.pos+n);let a={elementStartPos:t,elementEndPos:o+n,dataStartPos:o,timestamp:-1,trackData:new Map,nextCluster:null,isKnownToBeFirstCluster:!1};this.currentCluster=a,this.readContiguousElements(this.clusterReader,n);for(let[u,l]of a.trackData){let h=!1;w(l.blocks.length>0);for(let x=0;x<l.blocks.length;x++){let g=l.blocks[x];g.timestamp+=a.timestamp,h||=g.referencedTimestamps.length>0}h&&(l.blocks=cD(l.blocks)),l.presentationTimestamps=l.blocks.map((x,g)=>({timestamp:x.timestamp,blockIndex:g})).sort((x,g)=>x.timestamp-g.timestamp);for(let x=0;x<l.presentationTimestamps.length;x++){let g=l.presentationTimestamps[x],_=l.blocks[g.blockIndex];if(l.firstKeyFrameTimestamp===null&&_.isKeyFrame&&(l.firstKeyFrameTimestamp=_.timestamp),x<l.presentationTimestamps.length-1){let y=l.presentationTimestamps[x+1];_.duration=y.timestamp-_.timestamp}}let f=l.blocks[l.presentationTimestamps[0].blockIndex],d=l.blocks[he(l.presentationTimestamps).blockIndex];l.startTimestamp=f.timestamp,l.endTimestamp=d.timestamp+d.duration;let m=e.tracks.find(x=>x.id===u);if(m){let x=J(m.clusters,a.elementStartPos,_=>_.elementStartPos);if(m.clusters.splice(x+1,0,a),l.firstKeyFrameTimestamp!==null){let _=J(m.clustersWithKeyFrame,a.elementStartPos,y=>y.elementStartPos);m.clustersWithKeyFrame.splice(_+1,0,a)}}}let c=J(e.clusters,t,u=>u.elementStartPos);return e.clusters.splice(c+1,0,a),this.currentCluster=null,a}getTrackDataInCluster(e,t){let i=e.trackData.get(t);return i||(i={startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,blocks:[],presentationTimestamps:[]},e.trackData.set(t,i)),i}readContiguousElements(e,t){let i=e.pos;for(;e.pos-i<=t-uh;)this.traverseElement(e)}traverseElement(e){let{id:t,size:i}=e.readElementHeader(),s=e.pos;switch(Ki(i),t){case I.DocType:this.isWebM=e.readString(i)==="webm";break;case I.Seek:{if(!this.currentSegment)break;let n={id:-1,segmentPosition:-1};this.currentSegment.seekEntries.push(n),this.readContiguousElements(e,i),(n.id===-1||n.segmentPosition===-1)&&this.currentSegment.seekEntries.pop()}break;case I.SeekID:{let n=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!n)break;n.id=e.readUnsignedInt(i)}break;case I.SeekPosition:{let n=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!n)break;n.segmentPosition=e.readUnsignedInt(i)}break;case I.TimestampScale:{if(!this.currentSegment)break;this.currentSegment.timestampScale=e.readUnsignedInt(i),this.currentSegment.timestampFactor=1e9/this.currentSegment.timestampScale}break;case I.Duration:{if(!this.currentSegment)break;this.currentSegment.duration=e.readFloat(i)}break;case I.TrackEntry:{if(!this.currentSegment)break;if(this.currentTrack={id:-1,segment:this.currentSegment,demuxer:this,clusters:[],clustersWithKeyFrame:[],cuePoints:[],isDefault:!1,inputTrack:null,codecId:null,codecPrivate:null,languageCode:mt,info:null},this.readContiguousElements(e,i),this.currentTrack&&this.currentTrack.id!==-1&&this.currentTrack.codecId&&this.currentTrack.info){let n=this.currentTrack.codecId.indexOf("/"),o=n===-1?this.currentTrack.codecId:this.currentTrack.codecId.slice(0,n);if(this.currentTrack.info.type==="video"&&this.currentTrack.info.width!==-1&&this.currentTrack.info.height!==-1){this.currentTrack.codecId===Nt.avc?(this.currentTrack.info.codec="avc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Nt.hevc?(this.currentTrack.info.codec="hevc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Nt.vp8?this.currentTrack.info.codec="vp8":o===Nt.vp9?this.currentTrack.info.codec="vp9":o===Nt.av1&&(this.currentTrack.info.codec="av1");let a=this.currentTrack,c=new Ir(new lg(a));this.currentTrack.inputTrack=c,this.currentSegment.tracks.push(this.currentTrack)}else if(this.currentTrack.info.type==="audio"&&this.currentTrack.info.numberOfChannels!==-1&&this.currentTrack.info.sampleRate!==-1){o===Nt.aac?(this.currentTrack.info.codec="aac",this.currentTrack.info.aacCodecInfo={isMpeg2:this.currentTrack.codecId.includes("MPEG2")},this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Nt.mp3?this.currentTrack.info.codec="mp3":o===Nt.opus?(this.currentTrack.info.codec="opus",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Nt.vorbis?(this.currentTrack.info.codec="vorbis",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Nt.flac?(this.currentTrack.info.codec="flac",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId==="A_PCM/INT/LIT"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32"):this.currentTrack.codecId==="A_PCM/INT/BIG"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16be":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24be":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32be"):this.currentTrack.codecId==="A_PCM/FLOAT/IEEE"&&(this.currentTrack.info.bitDepth===32?this.currentTrack.info.codec="pcm-f32":this.currentTrack.info.bitDepth===64&&(this.currentTrack.info.codec="pcm-f64"));let a=this.currentTrack,c=new nt(new hg(a));this.currentTrack.inputTrack=c,this.currentSegment.tracks.push(this.currentTrack)}}this.currentTrack=null}break;case I.TrackNumber:{if(!this.currentTrack)break;this.currentTrack.id=e.readUnsignedInt(i)}break;case I.TrackType:{if(!this.currentTrack)break;let n=e.readUnsignedInt(i);n===1?this.currentTrack.info={type:"video",width:-1,height:-1,rotation:0,codec:null,codecDescription:null,colorSpace:null}:n===2&&(this.currentTrack.info={type:"audio",numberOfChannels:-1,sampleRate:-1,bitDepth:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case I.FlagEnabled:{if(!this.currentTrack)break;e.readUnsignedInt(i)||(this.currentSegment.tracks.pop(),this.currentTrack=null)}break;case I.FlagDefault:{if(!this.currentTrack)break;this.currentTrack.isDefault=!!e.readUnsignedInt(i)}break;case I.CodecID:{if(!this.currentTrack)break;this.currentTrack.codecId=e.readString(i)}break;case I.CodecPrivate:{if(!this.currentTrack)break;this.currentTrack.codecPrivate=e.readBytes(i)}break;case I.Language:{if(!this.currentTrack)break;this.currentTrack.languageCode=e.readString(i),ln(this.currentTrack.languageCode)||(this.currentTrack.languageCode=mt)}break;case I.Video:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e,i)}break;case I.PixelWidth:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.width=e.readUnsignedInt(i)}break;case I.PixelHeight:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.height=e.readUnsignedInt(i)}break;case I.Colour:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.colorSpace={},this.readContiguousElements(e,i)}break;case I.MatrixCoefficients:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let n=e.readUnsignedInt(i),o=zl[n]??null;this.currentTrack.info.colorSpace.matrix=o}break;case I.Range:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;this.currentTrack.info.colorSpace.fullRange=e.readUnsignedInt(i)===2}break;case I.TransferCharacteristics:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let n=e.readUnsignedInt(i),o=Ll[n]??null;this.currentTrack.info.colorSpace.transfer=o}break;case I.Primaries:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let n=e.readUnsignedInt(i),o=Nl[n]??null;this.currentTrack.info.colorSpace.primaries=o}break;case I.Projection:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e,i)}break;case I.ProjectionPoseRoll:{if(this.currentTrack?.info?.type!=="video")break;let o=-e.readFloat(i);try{this.currentTrack.info.rotation=Gl(o)}catch{}}break;case I.Audio:{if(this.currentTrack?.info?.type!=="audio")break;this.readContiguousElements(e,i)}break;case I.SamplingFrequency:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.sampleRate=e.readFloat(i)}break;case I.Channels:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.numberOfChannels=e.readUnsignedInt(i)}break;case I.BitDepth:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.bitDepth=e.readUnsignedInt(i)}break;case I.CuePoint:{if(!this.currentSegment)break;this.readContiguousElements(e,i),this.currentCueTime=null}break;case I.CueTime:this.currentCueTime=e.readUnsignedInt(i);break;case I.CueTrackPositions:{if(this.currentCueTime===null)break;w(this.currentSegment);let n={time:this.currentCueTime,trackId:-1,clusterPosition:-1};this.currentSegment.cuePoints.push(n),this.readContiguousElements(e,i),(n.trackId===-1||n.clusterPosition===-1)&&this.currentSegment.cuePoints.pop()}break;case I.CueTrack:{let n=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!n)break;n.trackId=e.readUnsignedInt(i)}break;case I.CueClusterPosition:{let n=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!n)break;w(this.currentSegment),n.clusterPosition=this.currentSegment.dataStartPos+e.readUnsignedInt(i)}break;case I.Timestamp:{if(!this.currentCluster)break;this.currentCluster.timestamp=e.readUnsignedInt(i)}break;case I.SimpleBlock:{if(!this.currentCluster)break;let n=e.readVarInt(),o=e.readS16(),c=!!(e.readU8()&128);this.getTrackDataInCluster(this.currentCluster,n).blocks.push({timestamp:o,duration:0,isKeyFrame:c,referencedTimestamps:[],data:e.readBytes(i-(e.pos-s))})}break;case I.BlockGroup:{if(!this.currentCluster)break;if(this.readContiguousElements(e,i),this.currentBlock){for(let n=0;n<this.currentBlock.referencedTimestamps.length;n++)this.currentBlock.referencedTimestamps[n]+=this.currentBlock.timestamp;this.currentBlock=null}}break;case I.Block:{if(!this.currentCluster)break;let n=e.readVarInt(),o=e.readS16(),a=e.readU8(),c=this.getTrackDataInCluster(this.currentCluster,n);this.currentBlock={timestamp:o,duration:0,isKeyFrame:!0,referencedTimestamps:[],data:e.readBytes(i-(e.pos-s))},c.blocks.push(this.currentBlock)}break;case I.BlockDuration:{if(!this.currentBlock)break;this.currentBlock.duration=e.readUnsignedInt(i)}break;case I.ReferenceBlock:{if(!this.currentBlock)break;this.currentBlock.isKeyFrame=!1;let n=e.readSignedInt(i);this.currentBlock.referencedTimestamps.push(n)}break}e.pos=s+i}},ph=class{constructor(e){this.internalTrack=e,this.packetToClusterLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getLanguageCode(){return this.internalTrack.languageCode}async getFirstTimestamp(){return(await this.getFirstPacket({metadataOnly:!0}))?.timestamp??0}getTimeResolution(){return this.internalTrack.segment.timestampFactor}async getFirstPacket(e){return this.performClusterLookup(()=>{let t=this.internalTrack.segment.clusters[0]??null;if(t?.isKnownToBeFirstCluster){let i=t;for(;i;){if(i.trackData.get(this.internalTrack.id))return{clusterIndex:Be(this.internalTrack.clusters,i.elementStartPos,n=>n.elementStartPos),blockIndex:0,correctBlockFound:!0};i=i.nextCluster}}return{clusterIndex:-1,blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,e)}intoTimescale(e){return un(e*this.internalTrack.segment.timestampFactor,14)}async getPacket(e,t){let i=this.intoTimescale(e);return this.performClusterLookup(()=>this.findBlockInClustersForTimestamp(i),i,i,t)}async getNextPacket(e,t){let i=this.packetToClusterLocation.get(e);if(i===void 0)throw new Error("Packet was not created from this track.");let s=i.cluster.trackData.get(this.internalTrack.id),n=s.blocks[i.blockIndex],o=Be(this.internalTrack.clusters,i.cluster.elementStartPos,a=>a.elementStartPos);return w(o!==-1),this.performClusterLookup(()=>{if(i.blockIndex+1<s.blocks.length)return{clusterIndex:o,blockIndex:i.blockIndex+1,correctBlockFound:!0};{let a=i.cluster;for(;a.nextCluster;)if(a=a.nextCluster,a.trackData.get(this.internalTrack.id)){let u=Be(this.internalTrack.clusters,a.elementStartPos,l=>l.elementStartPos);return w(u!==-1),{clusterIndex:u,blockIndex:0,correctBlockFound:!0}}return{clusterIndex:o,blockIndex:-1,correctBlockFound:!1}}},n.timestamp,1/0,t)}async getKeyPacket(e,t){let i=this.intoTimescale(e);return this.performClusterLookup(()=>this.findKeyBlockInClustersForTimestamp(i),i,i,t)}async getNextKeyPacket(e,t){let i=this.packetToClusterLocation.get(e);if(i===void 0)throw new Error("Packet was not created from this track.");let s=i.cluster.trackData.get(this.internalTrack.id),n=s.blocks[i.blockIndex],o=Be(this.internalTrack.clusters,i.cluster.elementStartPos,a=>a.elementStartPos);return w(o!==-1),this.performClusterLookup(()=>{let a=s.blocks.findIndex((c,u)=>c.isKeyFrame&&u>i.blockIndex);if(a!==-1)return{clusterIndex:o,blockIndex:a,correctBlockFound:!0};{let c=i.cluster;for(;c.nextCluster;){c=c.nextCluster;let u=c.trackData.get(this.internalTrack.id);if(u&&u.firstKeyFrameTimestamp!==null){let l=Be(this.internalTrack.clusters,c.elementStartPos,f=>f.elementStartPos);w(l!==-1);let h=u.blocks.findIndex(f=>f.isKeyFrame);return w(h!==-1),{clusterIndex:l,blockIndex:h,correctBlockFound:!0}}}return{clusterIndex:o,blockIndex:-1,correctBlockFound:!1}}},n.timestamp,1/0,t)}async fetchPacketInCluster(e,t,i){if(t===-1)return null;let n=e.trackData.get(this.internalTrack.id).blocks[t];w(n);let o=i.metadataOnly?pt:n.data,a=n.timestamp/this.internalTrack.segment.timestampFactor,c=n.duration/this.internalTrack.segment.timestampFactor,u=new de(o,n.isKeyFrame?"key":"delta",a,c,e.dataStartPos+t,n.data.byteLength);return this.packetToClusterLocation.set(u,{cluster:e,blockIndex:t}),u}findBlockInClustersForTimestamp(e){let t=J(this.internalTrack.clusters,e,n=>n.trackData.get(this.internalTrack.id).startTimestamp),i=-1,s=!1;if(t!==-1){let o=this.internalTrack.clusters[t].trackData.get(this.internalTrack.id),a=J(o.presentationTimestamps,e,c=>c.timestamp);w(a!==-1),i=o.presentationTimestamps[a].blockIndex,s=e<o.endTimestamp}return{clusterIndex:t,blockIndex:i,correctBlockFound:s}}findKeyBlockInClustersForTimestamp(e){let t=J(this.internalTrack.clustersWithKeyFrame,e,o=>o.trackData.get(this.internalTrack.id).firstKeyFrameTimestamp),i=-1,s=-1,n=!1;if(t!==-1){let o=this.internalTrack.clustersWithKeyFrame[t];i=Be(this.internalTrack.clusters,o.elementStartPos,l=>l.elementStartPos),w(i!==-1);let a=o.trackData.get(this.internalTrack.id),c=Vl(a.presentationTimestamps,l=>a.blocks[l.blockIndex].isKeyFrame&&l.timestamp<=e);w(c!==-1),s=a.presentationTimestamps[c].blockIndex,n=e<a.endTimestamp}return{clusterIndex:i,blockIndex:s,correctBlockFound:n}}async performClusterLookup(e,t,i,s){let{demuxer:n,segment:o}=this.internalTrack,a=await o.clusterLookupMutex.acquire();try{let{clusterIndex:c,blockIndex:u,correctBlockFound:l}=e();if(l){let C=this.internalTrack.clusters[c];return this.fetchPacketInCluster(C,u,s)}let h=n.metadataReader,f=n.clusterReader,d=null,m=c,x=u,g=J(this.internalTrack.cuePoints,t,C=>C.time),_=g!==-1?this.internalTrack.cuePoints[g]:null,y=!1;if(c===-1)h.pos=_?.clusterPosition??o.clusterSeekStartPos,y=h.pos===o.clusterSeekStartPos;else{let C=this.internalTrack.clusters[c];!_||C.elementStartPos>=_.clusterPosition?(h.pos=C.elementEndPos,d=C):h.pos=_.clusterPosition}for(;h.pos<o.elementEndPos;){if(d){let B=d.trackData.get(this.internalTrack.id);if(B&&B.startTimestamp>i)break;if(d.nextCluster){h.pos=d.nextCluster.elementEndPos,d=d.nextCluster;continue}}await h.reader.loadRange(h.pos,h.pos+Xi);let C=h.pos,v=h.readElementHeader(),E=v.id,M=v.size,A=h.pos;if(E===I.Cluster){let B=Be(o.clusters,C,wt=>wt.elementStartPos),k;B===-1?(h.pos=C,k=await n.readCluster(o)):k=o.clusters[B],d&&(d.nextCluster=k),d=k,y&&(k.isKnownToBeFirstCluster=!0,y=!1);let{clusterIndex:L,blockIndex:j,correctBlockFound:be}=e();if(be){let wt=this.internalTrack.clusters[L];return this.fetchPacketInCluster(wt,j,s)}L!==-1&&(m=L,x=j)}if(M===null){E===I.Cluster?(w(d),M=d.elementEndPos-A):(f.pos=A,M=(await f.searchForNextElementId(ch,o.elementEndPos)??o.elementEndPos)-A);let B=A+M;if(B>o.elementEndPos-uh)break;if(f.pos=B,f.readElementId()===I.Segment){o.elementEndPos=B;break}}h.pos=A+M}let S=null,T=m!==-1?this.internalTrack.clusters[m]:null;if(T&&(S=await this.fetchPacketInCluster(T,x,s)),!S&&_&&(!T||T.elementStartPos<_.clusterPosition)){let v=this.internalTrack.cuePoints[g-1]?.time??-1/0;return this.performClusterLookup(e,v,i,s)}return S}finally{a()}}},lg=class extends ph{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.info.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{let e=null;return(this.internalTrack.info.codec==="vp9"||this.internalTrack.info.codec==="av1"||this.internalTrack.info.codec==="avc"&&!this.internalTrack.info.codecDescription||this.internalTrack.info.codec==="hevc"&&!this.internalTrack.info.codecDescription)&&(e=await this.getFirstPacket({})),{codec:ql({width:this.internalTrack.info.width,height:this.internalTrack.info.height,codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,colorSpace:this.internalTrack.info.colorSpace,avcCodecInfo:this.internalTrack.info.codec==="avc"&&e?Yl(e.data):null,hevcCodecInfo:this.internalTrack.info.codec==="hevc"&&e?Kl(e.data):null,vp9CodecInfo:this.internalTrack.info.codec==="vp9"&&e?Ql(e.data):null,av1CodecInfo:this.internalTrack.info.codec==="av1"&&e?Zl(e.data):null}),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}},hg=class extends ph{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:jl({codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,aacCodecInfo:this.internalTrack.info.aacCodecInfo}),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},cD=r=>{let e=new Map;for(let n=0;n<r.length;n++){let o=r[n];e.set(o.timestamp,o)}let t=new Set,i=[],s=n=>{if(!t.has(n)){t.add(n);for(let o=0;o<n.referencedTimestamps.length;o++){let a=n.referencedTimestamps[o],c=e.get(a);c&&s(c)}i.push(n)}};for(let n=0;n<r.length;n++)s(r[n]);return i};var Cn=class{constructor(e){this.reader=e,this.pos=0,this.fileSize=null}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,!1)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!1)}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}readId3(){return this.readAscii(3)!=="ID3"?(this.pos-=3,null):(this.pos+=3,{size:uD(this.readU32())})}readNextFrameHeader(e){for(w(this.fileSize),e??=this.fileSize;this.pos<=e-4;){let t=this.readU32();this.pos-=4;let i=gE(t,this);if(i)return i}return null}},uD=r=>{let e=2130706432,t=0;for(;e!==0;)t>>=1,t|=r&e,e>>=8;return t};var gh=class extends Bt{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.allSamples=[],this.tracks=[],this.reader=new Cn(e._mainReader)}async readMetadata(){return this.metadataPromise??=(async()=>{let e=await this.input.source.getSize();this.reader.fileSize=e,await this.reader.reader.loadRange(0,e);let t=this.reader.readId3();t&&(this.reader.pos+=t.size);let i=0;for(;;){let s=this.reader.readNextFrameHeader();if(!s)break;let n=pE(s.mpegVersionId,s.channel);this.reader.pos=s.startPos+n;let o=this.reader.readU32(),a=o===fE||o===mE;if(this.reader.pos=s.startPos+s.totalSize-1,a)continue;this.firstFrameHeader||(this.firstFrameHeader=s);let c=s.audioSamplesInFrame/s.sampleRate,u={timestamp:i/s.sampleRate,duration:c,dataStart:s.startPos,dataSize:s.totalSize};this.allSamples.push(u),i+=s.audioSamplesInFrame}if(!this.firstFrameHeader)throw new Error("No MP3 frames found.");this.tracks=[new nt(new fg(this))]})()}async getMimeType(){return"audio/mpeg"}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){await this.readMetadata();let e=he(this.allSamples);return w(e),e.timestamp+e.duration}},fg=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return w(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate/this.demuxer.firstFrameHeader.audioSamplesInFrame}computeDuration(){return this.demuxer.computeDuration()}getLanguageCode(){return mt}getCodec(){return"mp3"}getNumberOfChannels(){return w(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.channel===3?1:2}getSampleRate(){return w(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate}async getDecoderConfig(){return w(this.demuxer.firstFrameHeader),{codec:"mp3",numberOfChannels:this.demuxer.firstFrameHeader.channel===3?1:2,sampleRate:this.demuxer.firstFrameHeader.sampleRate}}getPacketAtIndex(e,t){if(e===-1)return null;let i=this.demuxer.allSamples[e];if(!i)return null;let s;return t.metadataOnly?s=pt:(this.demuxer.reader.pos=i.dataStart,s=this.demuxer.reader.readBytes(i.dataSize)),new de(s,"key",i.timestamp,i.duration,e,i.dataSize)}async getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,t){let i=Be(this.demuxer.allSamples,e.timestamp,s=>s.timestamp);if(i===-1)throw new Error("Packet was not created from this track.");return this.getPacketAtIndex(i+1,t)}async getPacket(e,t){let i=J(this.demuxer.allSamples,e,s=>s.timestamp);return this.getPacketAtIndex(i,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var xh=class extends Bt{constructor(e){super(e),this.readingMutex=new kt,this.metadataPromise=null,this.fileSize=null,this.bitstreams=[],this.tracks=[],this.reader=new pn(new Rt(e.source,64*2**20))}async readMetadata(){return this.metadataPromise??=(async()=>{for(this.fileSize=await this.input.source.getSize();this.reader.pos<this.fileSize-gn;){await this.reader.reader.loadRange(this.reader.pos,this.reader.pos+Qi);let e=this.reader.readPageHeader();if(!e||!!!(e.headerType&2))break;this.bitstreams.push({serialNumber:e.serialNumber,bosPage:e,description:null,numberOfChannels:-1,sampleRate:-1,codecInfo:{codec:null,vorbisInfo:null,opusInfo:null},lastMetadataPacket:null}),this.reader.pos=e.headerStartPos+e.totalSize}for(let e of this.bitstreams){let t=await this.readPacket(this.reader,e.bosPage,0);t&&(t.data.byteLength>=7&&t.data[0]===1&&t.data[1]===118&&t.data[2]===111&&t.data[3]===114&&t.data[4]===98&&t.data[5]===105&&t.data[6]===115?await this.readVorbisMetadata(t,e):t.data.byteLength>=8&&t.data[0]===79&&t.data[1]===112&&t.data[2]===117&&t.data[3]===115&&t.data[4]===72&&t.data[5]===101&&t.data[6]===97&&t.data[7]===100&&await this.readOpusMetadata(t,e),e.codecInfo.codec!==null&&this.tracks.push(new nt(new mg(e,this))))}})()}async readVorbisMetadata(e,t){let i=await this.findNextPacketStart(this.reader,e);if(!i)return;let s=await this.readPacket(this.reader,i.startPage,i.startSegmentIndex);if(!s||(i=await this.findNextPacketStart(this.reader,s),!i))return;let n=await this.readPacket(this.reader,i.startPage,i.startSegmentIndex);if(!n||s.data[0]!==3||n.data[0]!==5)return;let o=[],a=h=>{for(;o.push(Math.min(255,h)),!(h<255);)h-=255};a(e.data.length),a(s.data.length);let c=new Uint8Array(1+o.length+e.data.length+s.data.length+n.data.length);c[0]=o.length,c.set(o,1),c.set(e.data,1+o.length),c.set(s.data,1+o.length+e.data.length),c.set(n.data,1+o.length+e.data.length+s.data.length),t.codecInfo.codec="vorbis",t.description=c,t.lastMetadataPacket=n;let u=At(e.data);t.numberOfChannels=u.getUint8(11),t.sampleRate=u.getUint32(12,!0);let l=u.getUint8(28);t.codecInfo.vorbisInfo={blocksizes:[1<<(l&15),1<<(l>>4)],modeBlockflags:YC(n.data).modeBlockflags}}async readOpusMetadata(e,t){let i=await this.findNextPacketStart(this.reader,e);if(!i)return;let s=await this.readPacket(this.reader,i.startPage,i.startSegmentIndex);if(!s)return;t.codecInfo.codec="opus",t.description=e.data,t.lastMetadataPacket=s;let n=Jl(e.data);t.numberOfChannels=n.outputChannelCount,t.sampleRate=n.inputSampleRate,t.codecInfo.opusInfo={preSkip:n.preSkip}}async readPacket(e,t,i){w(i<t.lacingValues.length),w(this.fileSize);let s=0;for(let f=0;f<i;f++)s+=t.lacingValues[f];let n=t,o=s,a=i,c=[];e:for(;;){await e.reader.loadRange(n.dataStartPos,n.dataStartPos+n.dataSize),e.pos=n.dataStartPos;let f=e.readBytes(n.dataSize);for(;;){if(a===n.lacingValues.length){c.push(f.subarray(s,o));break}let d=n.lacingValues[a];if(o+=d,d<255){c.push(f.subarray(s,o));break e}a++}for(;;){if(e.pos=n.headerStartPos+n.totalSize,e.pos>=this.fileSize-gn)return null;await e.reader.loadRange(e.pos,e.pos+Qi);let d=e.readPageHeader();if(!d)return null;if(n=d,n.serialNumber===t.serialNumber)break}s=0,o=0,a=0}let u=c.reduce((f,d)=>f+d.length,0),l=new Uint8Array(u),h=0;for(let f=0;f<c.length;f++){let d=c[f];l.set(d,h),h+=d.length}return{data:l,endPage:n,endSegmentIndex:a}}async findNextPacketStart(e,t){if(w(this.fileSize!==null),t.endSegmentIndex<t.endPage.lacingValues.length-1)return{startPage:t.endPage,startSegmentIndex:t.endSegmentIndex+1};if(!!(t.endPage.headerType&4))return null;for(e.pos=t.endPage.headerStartPos+t.endPage.totalSize;;){if(e.pos>=this.fileSize-gn)return null;await e.reader.loadRange(e.pos,e.pos+Qi);let s=e.readPageHeader();if(!s)return null;if(s.serialNumber===t.endPage.serialNumber)return{startPage:s,startSegmentIndex:0};e.pos=s.headerStartPos+s.totalSize}}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(t=>t.getCodecParameterString()));return yE({codecStrings:e.filter(Boolean)})}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.computeDuration()));return Math.max(0,...t)}},mg=class{constructor(e,t){this.bitstream=e,this.demuxer=t,this.encodedPacketToMetadata=new WeakMap,this.internalSampleRate=e.codecInfo.codec==="opus"?RC:e.sampleRate}getId(){return this.bitstream.serialNumber}getNumberOfChannels(){return this.bitstream.numberOfChannels}getSampleRate(){return this.bitstream.sampleRate}getTimeResolution(){return this.bitstream.sampleRate}getCodec(){return this.bitstream.codecInfo.codec}async getDecoderConfig(){return w(this.bitstream.codecInfo.codec),{codec:this.bitstream.codecInfo.codec,numberOfChannels:this.bitstream.numberOfChannels,sampleRate:this.bitstream.sampleRate,description:this.bitstream.description??void 0}}getLanguageCode(){return mt}async getFirstTimestamp(){return 0}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}granulePositionToTimestampInSamples(e){return this.bitstream.codecInfo.codec==="opus"?(w(this.bitstream.codecInfo.opusInfo),e-this.bitstream.codecInfo.opusInfo.preSkip):e}createEncodedPacketFromOggPacket(e,t,i){if(!e)return null;let{durationInSamples:s,vorbisBlockSize:n}=bE(e.data,this.bitstream.codecInfo,t.vorbisLastBlocksize),o=new de(i.metadataOnly?pt:e.data,"key",Math.max(0,t.timestampInSamples)/this.internalSampleRate,s/this.internalSampleRate,e.endPage.headerStartPos+e.endSegmentIndex,e.data.byteLength);return this.encodedPacketToMetadata.set(o,{packet:e,timestampInSamples:t.timestampInSamples,durationInSamples:s,vorbisBlockSize:n}),o}async getFirstPacket(e,t=!0){let i=t?await this.demuxer.readingMutex.acquire():null;try{w(this.bitstream.lastMetadataPacket);let s=await this.demuxer.findNextPacketStart(this.demuxer.reader,this.bitstream.lastMetadataPacket);if(!s)return null;let n=0;this.bitstream.codecInfo.codec==="opus"&&(w(this.bitstream.codecInfo.opusInfo),n-=this.bitstream.codecInfo.opusInfo.preSkip);let o=await this.demuxer.readPacket(this.demuxer.reader,s.startPage,s.startSegmentIndex);return this.createEncodedPacketFromOggPacket(o,{timestampInSamples:n,vorbisLastBlocksize:null},e)}finally{i?.()}}async getNextPacket(e,t){let i=await this.demuxer.readingMutex.acquire();try{let s=this.encodedPacketToMetadata.get(e);if(!s)throw new Error("Packet was not created from this track.");let n=await this.demuxer.findNextPacketStart(this.demuxer.reader,s.packet);if(!n)return null;let o=s.timestampInSamples+s.durationInSamples,a=await this.demuxer.readPacket(this.demuxer.reader,n.startPage,n.startSegmentIndex);return this.createEncodedPacketFromOggPacket(a,{timestampInSamples:o,vorbisLastBlocksize:s.vorbisBlockSize},t)}finally{i()}}async getPacket(e,t){let i=await this.demuxer.readingMutex.acquire();try{w(this.demuxer.fileSize!==null);let s=un(e*this.internalSampleRate,14);if(s===0)return this.getFirstPacket(t,!1);if(s<0)return null;let n=this.demuxer.reader;w(this.bitstream.lastMetadataPacket);let o=await this.demuxer.findNextPacketStart(n,this.bitstream.lastMetadataPacket);if(!o)return null;let a=o.startPage,c=this.demuxer.fileSize,u=[a];e:for(;a.headerStartPos+a.totalSize<c;){let T=a.headerStartPos,C=Math.floor((T+c)/2),v=C;for(;;){let E=Math.min(v+TE,c-gn);if(await n.reader.loadRange(v,E),n.pos=v,!n.findNextPageHeader(E)){c=C+gn;continue e}await n.reader.loadRange(n.pos,n.pos+Qi);let A=n.readPageHeader();w(A);let B=!1;if(A.serialNumber===this.bitstream.serialNumber)B=!0;else{await n.reader.loadRange(A.headerStartPos,A.headerStartPos+A.totalSize),n.pos=A.headerStartPos;let L=n.readBytes(A.totalSize);B=_E(L)===A.checksum}if(!B){v=A.headerStartPos+4;continue}if(B&&A.serialNumber!==this.bitstream.serialNumber){v=A.headerStartPos+A.totalSize;continue}if(A.granulePosition===-1){v=A.headerStartPos+A.totalSize;continue}this.granulePositionToTimestampInSamples(A.granulePosition)>s?c=A.headerStartPos:(a=A,u.push(A));continue e}}let l=o.startPage;for(let T of u){if(T.granulePosition===a.granulePosition)break;(!l||T.headerStartPos>l.headerStartPos)&&(l=T)}let h=l,f=[h];for(;!(h.serialNumber===this.bitstream.serialNumber&&h.granulePosition===a.granulePosition);){n.pos=h.headerStartPos+h.totalSize,await n.reader.loadRange(n.pos,n.pos+Qi);let T=n.readPageHeader();w(T),h=T,h.serialNumber===this.bitstream.serialNumber&&f.push(h)}w(h.granulePosition!==-1);let d=null,m,x,g=h,_=0;if(h.headerStartPos===o.startPage.headerStartPos)m=this.granulePositionToTimestampInSamples(0),x=!0,d=0;else{m=0,x=!1;for(let v=h.lacingValues.length-1;v>=0;v--)if(h.lacingValues[v]<255){d=v+1;break}if(d===null)throw new Error("Invalid page with granule position: no packets end on this page.");_=d-1;let T={data:pt,endPage:g,endSegmentIndex:_};if(await this.demuxer.findNextPacketStart(n,T)){let v=DE(f,h,d);w(v);let E=RE(f,v.page,v.segmentIndex);E&&(h=E.page,d=E.segmentIndex)}else for(;;){let v=DE(f,h,d);if(!v)break;let E=RE(f,v.page,v.segmentIndex);if(!E)break;if(h=E.page,d=E.segmentIndex,v.page.headerStartPos!==g.headerStartPos){g=v.page,_=v.segmentIndex;break}}}let y=null,S=null;for(;h!==null;){w(d!==null);let T=await this.demuxer.readPacket(n,h,d);if(!T)break;if(!(h.headerStartPos===o.startPage.headerStartPos&&d<o.startSegmentIndex)){let E=this.createEncodedPacketFromOggPacket(T,{timestampInSamples:m,vorbisLastBlocksize:S?.vorbisBlockSize??null},t);w(E);let M=this.encodedPacketToMetadata.get(E);if(w(M),!x&&T.endPage.headerStartPos===g.headerStartPos&&T.endSegmentIndex===_?(m=this.granulePositionToTimestampInSamples(h.granulePosition),x=!0,E=this.createEncodedPacketFromOggPacket(T,{timestampInSamples:m-M.durationInSamples,vorbisLastBlocksize:S?.vorbisBlockSize??null},t),w(E),M=this.encodedPacketToMetadata.get(E),w(M)):m+=M.durationInSamples,y=E,S=M,x&&(Math.max(m,0)>s||Math.max(M.timestampInSamples,0)===s))break}let v=await this.demuxer.findNextPacketStart(n,T);if(!v)break;h=v.startPage,d=v.startSegmentIndex}return y}finally{i()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}},RE=(r,e,t)=>{let i=e,s=t;e:for(;;){for(s--,s;s>=0;s--)if(i.lacingValues[s]<255){s++;break e}if(w(s===-1),!(i.headerType&1)){s=0;break}let o=Up(r,a=>a.headerStartPos<i.headerStartPos);if(!o)return null;i=o,s=i.lacingValues.length}if(w(s!==-1),s===i.lacingValues.length){let n=r[r.indexOf(i)+1];w(n),i=n,s=0}return{page:i,segmentIndex:s}},DE=(r,e,t)=>{if(t>0)return{page:e,segmentIndex:t-1};let i=Up(r,s=>s.headerStartPos<e.headerStartPos);return i?{page:i,segmentIndex:i.lacingValues.length-1}:null};var hr=class{},ac=class extends hr{async _getMajorBrand(e){if(await e._mainReader.source.getSize()<12)return null;let i=new ji(e._mainReader);return i.pos=4,i.readAscii(4)!=="ftyp"?null:i.readAscii(4)}_createDemuxer(e){return new dh(e)}},_h=class extends ac{async _canReadInput(e){let t=await this._getMajorBrand(e);return!!t&&t!=="qt "}get name(){return"MP4"}get mimeType(){return"video/mp4"}},bh=class extends ac{async _canReadInput(e){return await this._getMajorBrand(e)==="qt "}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}},cc=class extends hr{async isSupportedEBMLOfDocType(e,t){if(await e._mainReader.source.getSize()<8)return!1;let s=new Yi(e._mainReader),n=s.readVarIntSize();if(n<1||n>8||s.readUnsignedInt(n)!==I.EBML)return!1;let a=s.readElementSize();if(a===null)return!1;let c=s.pos;for(;s.pos<c+a;){let{id:u,size:l}=s.readElementHeader(),h=s.pos;if(l===null)return!1;switch(u){case I.EBMLVersion:if(s.readUnsignedInt(l)!==1)return!1;break;case I.EBMLReadVersion:if(s.readUnsignedInt(l)!==1)return!1;break;case I.DocType:if(s.readString(l)!==t)return!1;break;case I.DocTypeVersion:if(s.readUnsignedInt(l)>4)return!1;break}s.pos=h+l}return!0}_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"matroska")}_createDemuxer(e){return new mh(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}},yh=class extends cc{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}},Th=class extends hr{async _canReadInput(e){let t=await e._mainReader.source.getSize();if(t<4)return!1;let i=new Cn(e._mainReader);i.fileSize=t;let s=i.readId3();s&&(i.pos+=s.size);let n=i.pos;await i.reader.loadRange(i.pos,i.pos+4096);let o=i.readNextFrameHeader(Math.min(n+4096,t));if(!o)return!1;if(s)return!0;i.pos=o.startPos+o.totalSize,await i.reader.loadRange(i.pos,i.pos+4);let a=i.readNextFrameHeader(i.pos+4);return!(!a||o.channel!==a.channel||o.sampleRate!==a.sampleRate)}_createDemuxer(e){return new gh(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}},wh=class extends hr{async _canReadInput(e){if(await e._mainReader.source.getSize()<12)return!1;let i=new es(e._mainReader),s=i.readAscii(4);return s!=="RIFF"&&s!=="RIFX"&&s!=="RF64"?!1:(i.pos=8,i.readAscii(4)==="WAVE")}_createDemuxer(e){return new hh(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}},Sh=class extends hr{async _canReadInput(e){return await e._mainReader.source.getSize()<4?!1:new pn(e._mainReader).readAscii(4)==="OggS"}_createDemuxer(e){return new xh(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}},ME=new _h,IE=new bh,FE=new cc,UE=new yh,OE=new Th,GE=new wh,NE=new Sh,pg=[ME,IE,FE,UE,GE,NE,OE];var uc=class{constructor(e){if(this._demuxerPromise=null,this._format=null,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!Array.isArray(e.formats)||e.formats.some(t=>!(t instanceof hr)))throw new TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof ts))throw new TypeError("options.source must be a Source.");this._formats=e.formats,this._source=e.source,this._mainReader=new Rt(e.source)}_getDemuxer(){return this._demuxerPromise??=(async()=>{await this._mainReader.loadRange(0,4096);for(let e of this._formats)if(await e._canReadInput(this))return this._format=e,e._createDemuxer(this);throw new Error("Input has an unsupported or unrecognizable format.")})()}get source(){return this._source}async getFormat(){return await this._getDemuxer(),w(this._format),this._format}async computeDuration(){return(await this._getDemuxer()).computeDuration()}async getTracks(){return(await this._getDemuxer()).getTracks()}async getVideoTracks(){return(await this.getTracks()).filter(t=>t.isVideoTrack())}async getPrimaryVideoTrack(){return(await this.getTracks()).find(t=>t.isVideoTrack())??null}async getAudioTracks(){return(await this.getTracks()).filter(t=>t.isAudioTrack())}async getPrimaryAudioTrack(){return(await this.getTracks()).find(t=>t.isAudioTrack())??null}async getMimeType(){return(await this._getDemuxer()).getMimeType()}};W.set(Dp);var LE=Bc.work(r=>({async hello(){await r.host.world()},async decode({source:e,video:t,audio:i}){let s=async()=>e instanceof Blob?new nc(e):new oc(e),n=new uc({source:await s(),formats:pg}),[o,a]=await Promise.all([n.getPrimaryVideoTrack(),n.getPrimaryAudioTrack()]),c=await o?.canDecode(),u=await a?.canDecode(),l=t.getWriter(),h=i.getWriter();await Promise.all([(async()=>{if(c&&o){let f=new Za(o);for await(let d of f.samples()){let m=d.toVideoFrame();await l.write(m),d.close(),m.close()}await l.close()}})(),(async()=>{if(u&&a){let f=new Ja(a);for await(let d of f.samples()){let m=d.toAudioData();await h.write(m),d.close(),m.close()}await h.close()}})()])},async encode({readables:e,config:t,bridge:i}){let s=new sc({format:new Tn,target:new qa(i,{chunked:!0})}),n=new tc(t.video);s.addVideoTrack(n);let o=new rc(t.audio);s.addAudioTrack(o),await s.start();let a=e.video.getReader(),c=e.audio.getReader();await Promise.all([(async()=>{for(;;){let{done:u,value:l}=await a.read();if(u)break;let h=new lr(l);await n.add(h),h.close()}})(),(async()=>{for(;;){let{done:u,value:l}=await c.read();if(u)break;let h=new Lt(l);await o.add(h),h.close(),l.close()}})()]),await s.finalize()},async composite(e){let{stage:t,renderer:i}=await lD(1920,1080);t.removeChildren();let{baseFrame:s,disposables:n}=await zE(e,t);i.render(t);let o=new VideoFrame(i.canvas,{timestamp:s?.timestamp,duration:s?.duration??void 0});s?.close(),i.clear();for(let a of n)a.destroy(!0);return r.transfer=[o],o}})),vh=null;async function lD(r,e){if(vh)return vh;let t=await gp({width:r,height:e,preference:"webgl",background:"black",preferWebGLVersion:2}),i=new we;return vh={renderer:t,stage:i},vh}async function zE(r,e,t=[]){if(Array.isArray(r)){let i;for(let s of r){let n=await zE(s,e,t);i??=n.baseFrame}return{baseFrame:i,disposables:t}}if(!hD(r))return console.warn("Invalid layer",r),{disposables:t};switch(r.kind){case"text":return dD(r,e,t);case"image":return fD(r,e,t);default:return console.warn("Unknown layer kind",r.kind),{disposables:t}}}function hD(r){return!!r&&typeof r=="object"&&typeof r.kind=="string"}function dD(r,e,t){let i=new La({text:r.content,style:{fontFamily:"sans-serif",fontSize:r.fontSize??48,fill:r.color??"white"}});return VE(i,r),e.addChild(i),t.push(i),{disposables:t}}function fD(r,e,t){let i=D.from(r.frame),s=new qt(i);return VE(s,r),e.addChild(s),t.push(s,i),{baseFrame:r.frame,disposables:t}}function VE(r,e={}){e.x&&(r.x=e.x),e.y&&(r.y=e.y),e.scale&&r.scale.set(e.scale),e.opacity&&(r.alpha=e.opacity),e.anchor&&"anchor"in r&&r.anchor.set(e.anchor)}await Bc.worker(LE);
|
|
1100
1100
|
/*! Bundled license information:
|
|
1101
1101
|
|
|
1102
1102
|
mediabunny/dist/modules/misc.js:
|
|
@@ -1109,6 +1109,7 @@ mediabunny/dist/modules/muxer.js:
|
|
|
1109
1109
|
mediabunny/dist/modules/writer.js:
|
|
1110
1110
|
mediabunny/dist/modules/target.js:
|
|
1111
1111
|
mediabunny/dist/modules/isobmff/isobmff-misc.js:
|
|
1112
|
+
mediabunny/dist/modules/isobmff/isobmff-reader.js:
|
|
1112
1113
|
mediabunny/dist/modules/isobmff/isobmff-muxer.js:
|
|
1113
1114
|
mediabunny/dist/modules/matroska/ebml.js:
|
|
1114
1115
|
mediabunny/dist/modules/matroska/matroska-misc.js:
|
|
@@ -1128,7 +1129,6 @@ mediabunny/dist/modules/output-format.js:
|
|
|
1128
1129
|
mediabunny/dist/modules/media-source.js:
|
|
1129
1130
|
mediabunny/dist/modules/output.js:
|
|
1130
1131
|
mediabunny/dist/modules/source.js:
|
|
1131
|
-
mediabunny/dist/modules/isobmff/isobmff-reader.js:
|
|
1132
1132
|
mediabunny/dist/modules/isobmff/isobmff-demuxer.js:
|
|
1133
1133
|
mediabunny/dist/modules/matroska/matroska-demuxer.js:
|
|
1134
1134
|
mediabunny/dist/modules/mp3/mp3-reader.js:
|